diff --git a/Cargo.lock b/Cargo.lock index ed2b6d5..4ec9dde 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -44,6 +44,74 @@ dependencies = [ "zeroize", ] +[[package]] +name = "agave-feature-set" +version = "3.1.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2846bb4fc0831d112255193a54259fabdc82149f0cd0a72db8922837cc62c0cd" +dependencies = [ + "ahash", + "solana-epoch-schedule 3.0.0", + "solana-hash 3.1.0", + "solana-pubkey 3.0.0", + "solana-sha256-hasher 3.1.0", + "solana-svm-feature-set", +] + +[[package]] +name = "agave-reserved-account-keys" +version = "3.1.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a55fff3d170fbcf81afc8d30c504a1ae4a6ff64be025ee6c08012f3db2a243fc" +dependencies = [ + "agave-feature-set", + "solana-pubkey 3.0.0", + "solana-sdk-ids 3.1.0", +] + +[[package]] +name = "agave-syscalls" +version = "3.1.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "aa34d30153e3c36d0d488a606a0aa01c85724f04048a02433623d55a28cf679a" +dependencies = [ + "bincode", + "libsecp256k1", + "num-traits", + "solana-account 3.4.0", + "solana-account-info 3.1.0", + "solana-big-mod-exp 3.0.0", + "solana-blake3-hasher 3.1.0", + "solana-bn254 3.2.1", + "solana-clock 3.0.0", + "solana-cpi 3.1.0", + "solana-curve25519 3.1.8", + "solana-hash 3.1.0", + "solana-instruction 3.1.0", + "solana-keccak-hasher 3.1.0", + "solana-loader-v3-interface 6.1.0", + "solana-poseidon 3.1.8", + "solana-program-entrypoint 3.1.1", + "solana-program-runtime 3.1.8", + "solana-pubkey 3.0.0", + "solana-sbpf 0.13.1", + "solana-sdk-ids 3.1.0", + "solana-secp256k1-recover 3.1.0", + "solana-sha256-hasher 3.1.0", + "solana-stable-layout 3.0.0", + "solana-stake-interface 2.0.2", + "solana-svm-callback", + "solana-svm-feature-set", + "solana-svm-log-collector", + "solana-svm-measure", + "solana-svm-timings", + "solana-svm-type-overrides", + "solana-sysvar 3.1.1", + "solana-sysvar-id 3.1.0", + "solana-transaction-context 3.1.8", + "thiserror 2.0.18", +] + [[package]] name = "ahash" version = "0.8.12" @@ -81,6 +149,12 @@ dependencies = [ "alloc-no-stdlib", ] +[[package]] +name = "allocator-api2" +version = "0.2.21" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "683d7910e743518b0e34f1186f92494becacb047c7b6bf616c96772180fef923" + [[package]] name = "android_system_properties" version = "0.1.5" @@ -111,9 +185,20 @@ version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a22f4561524cd949590d78d7d4c5df8f592430d221f7f3c9497bbafd8972120f" dependencies = [ - "ark-ec", - "ark-ff", - "ark-std", + "ark-ec 0.4.2", + "ark-ff 0.4.2", + "ark-std 0.4.0", +] + +[[package]] +name = "ark-bn254" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d69eab57e8d2663efa5c63135b2af4f396d66424f88954c21104125ab6b3e6bc" +dependencies = [ + "ark-ec 0.5.0", + "ark-ff 0.5.0", + "ark-std 0.5.0", ] [[package]] @@ -122,10 +207,10 @@ version = "0.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "defd9a439d56ac24968cca0571f598a61bc8c55f71d50a89cda591cb750670ba" dependencies = [ - "ark-ff", - "ark-poly", - "ark-serialize", - "ark-std", + "ark-ff 0.4.2", + "ark-poly 0.4.2", + "ark-serialize 0.4.2", + "ark-std 0.4.0", "derivative", "hashbrown 0.13.2", "itertools 0.10.5", @@ -133,16 +218,37 @@ dependencies = [ "zeroize", ] +[[package]] +name = "ark-ec" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "43d68f2d516162846c1238e755a7c4d131b892b70cc70c471a8e3ca3ed818fce" +dependencies = [ + "ahash", + "ark-ff 0.5.0", + "ark-poly 0.5.0", + "ark-serialize 0.5.0", + "ark-std 0.5.0", + "educe", + "fnv", + "hashbrown 0.15.5", + "itertools 0.13.0", + "num-bigint 0.4.6", + "num-integer", + "num-traits", + "zeroize", +] + [[package]] name = "ark-ff" version = "0.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ec847af850f44ad29048935519032c33da8aa03340876d351dfab5660d2966ba" dependencies = [ - "ark-ff-asm", - "ark-ff-macros", - "ark-serialize", - "ark-std", + "ark-ff-asm 0.4.2", + "ark-ff-macros 0.4.2", + "ark-serialize 0.4.2", + "ark-std 0.4.0", "derivative", "digest 0.10.7", "itertools 0.10.5", @@ -153,6 +259,26 @@ dependencies = [ "zeroize", ] +[[package]] +name = "ark-ff" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a177aba0ed1e0fbb62aa9f6d0502e9b46dad8c2eab04c14258a1212d2557ea70" +dependencies = [ + "ark-ff-asm 0.5.0", + "ark-ff-macros 0.5.0", + "ark-serialize 0.5.0", + "ark-std 0.5.0", + "arrayvec", + "digest 0.10.7", + "educe", + "itertools 0.13.0", + "num-bigint 0.4.6", + "num-traits", + "paste", + "zeroize", +] + [[package]] name = "ark-ff-asm" version = "0.4.2" @@ -163,6 +289,16 @@ dependencies = [ "syn 1.0.109", ] +[[package]] +name = "ark-ff-asm" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "62945a2f7e6de02a31fe400aa489f0e0f5b2502e69f95f853adb82a96c7a6b60" +dependencies = [ + "quote", + "syn 2.0.114", +] + [[package]] name = "ark-ff-macros" version = "0.4.2" @@ -176,27 +312,68 @@ dependencies = [ "syn 1.0.109", ] +[[package]] +name = "ark-ff-macros" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "09be120733ee33f7693ceaa202ca41accd5653b779563608f1234f78ae07c4b3" +dependencies = [ + "num-bigint 0.4.6", + "num-traits", + "proc-macro2", + "quote", + "syn 2.0.114", +] + [[package]] name = "ark-poly" version = "0.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d320bfc44ee185d899ccbadfa8bc31aab923ce1558716e1997a1e74057fe86bf" dependencies = [ - "ark-ff", - "ark-serialize", - "ark-std", + "ark-ff 0.4.2", + "ark-serialize 0.4.2", + "ark-std 0.4.0", "derivative", "hashbrown 0.13.2", ] +[[package]] +name = "ark-poly" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "579305839da207f02b89cd1679e50e67b4331e2f9294a57693e5051b7703fe27" +dependencies = [ + "ahash", + "ark-ff 0.5.0", + "ark-serialize 0.5.0", + "ark-std 0.5.0", + "educe", + "fnv", + "hashbrown 0.15.5", +] + [[package]] name = "ark-serialize" version = "0.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "adb7b85a02b83d2f22f89bd5cac66c9c89474240cb6207cb1efc16d098e822a5" dependencies = [ - "ark-serialize-derive", - "ark-std", + "ark-serialize-derive 0.4.2", + "ark-std 0.4.0", + "digest 0.10.7", + "num-bigint 0.4.6", +] + +[[package]] +name = "ark-serialize" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3f4d068aaf107ebcd7dfb52bc748f8030e0fc930ac8e360146ca54c1203088f7" +dependencies = [ + "ark-serialize-derive 0.5.0", + "ark-std 0.5.0", + "arrayvec", "digest 0.10.7", "num-bigint 0.4.6", ] @@ -212,6 +389,17 @@ dependencies = [ "syn 1.0.109", ] +[[package]] +name = "ark-serialize-derive" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "213888f660fddcca0d257e88e54ac05bca01885f258ccdf695bafd77031bb69d" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.114", +] + [[package]] name = "ark-std" version = "0.4.0" @@ -222,6 +410,16 @@ dependencies = [ "rand 0.8.5", ] +[[package]] +name = "ark-std" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "246a225cc6131e9ee4f24619af0f19d67761fff15d7ccc22e42b80846e69449a" +dependencies = [ + "num-traits", + "rand 0.8.5", +] + [[package]] name = "arrayref" version = "0.3.9" @@ -240,45 +438,6 @@ version = "0.9.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "eab1c04a571841102f5345a8fc0f6bb3d31c315dec879b5c6e42e40ce7ffa34e" -[[package]] -name = "asn1-rs" -version = "0.5.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7f6fd5ddaf0351dff5b8da21b2fb4ff8e08ddd02857f0bf69c47639106c0fff0" -dependencies = [ - "asn1-rs-derive", - "asn1-rs-impl", - "displaydoc", - "nom", - "num-traits", - "rusticata-macros", - "thiserror 1.0.69", - "time", -] - -[[package]] -name = "asn1-rs-derive" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "726535892e8eae7e70657b4c8ea93d26b8553afb1ce617caee529ef96d7dee6c" -dependencies = [ - "proc-macro2", - "quote", - "syn 1.0.109", - "synstructure 0.12.6", -] - -[[package]] -name = "asn1-rs-impl" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2777730b2039ac0f95f093556e61b6d26cebed5393ca6f152717777cec3a42ed" -dependencies = [ - "proc-macro2", - "quote", - "syn 1.0.109", -] - [[package]] name = "assertions" version = "0.1.0" @@ -288,17 +447,6 @@ dependencies = [ "pinocchio-system", ] -[[package]] -name = "async-channel" -version = "1.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "81953c529336010edd6d8e358f886d9581267795c61b19475b71314bffa46d35" -dependencies = [ - "concurrent-queue", - "event-listener 2.5.3", - "futures-core", -] - [[package]] name = "async-compression" version = "0.4.37" @@ -311,35 +459,13 @@ dependencies = [ "tokio", ] -[[package]] -name = "async-lock" -version = "3.4.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "290f7f2596bd5b78a9fec8088ccd89180d7f9f55b94b0576823bbbdc72ee8311" -dependencies = [ - "event-listener 5.4.1", - "event-listener-strategy", - "pin-project-lite", -] - -[[package]] -name = "async-trait" -version = "0.1.89" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9035ad2d096bed7955a320ee7e2230574d28fd3c3a0f186cbea1ff3c7eed5dbb" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.114", -] - [[package]] name = "atty" version = "0.2.14" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d9b39be18770d11421cdb1b9947a45dd3f37e93092cbf377614828a319d5fee8" dependencies = [ - "hermit-abi 0.1.19", + "hermit-abi", "libc", "winapi", ] @@ -362,12 +488,6 @@ version = "0.12.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3441f0f7b02788e948e47f457ca01f1d7e6d92c693bc132c22b087d3141c03ff" -[[package]] -name = "base64" -version = "0.13.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9e1b586273c5702936fe7b7d6896644d8be71e6314cfe09d3167c95f712589e8" - [[package]] name = "base64" version = "0.21.7" @@ -588,15 +708,6 @@ version = "1.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b35204fbdc0b3f4446b89fc1ac2cf84a8a68971995d0bf2e925ec7cd960f9cb3" -[[package]] -name = "caps" -version = "0.5.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fd1ddba47aba30b6a889298ad0109c3b8dcb0e8fc993b459daa7067d46f865e0" -dependencies = [ - "libc", -] - [[package]] name = "cargo_toml" version = "0.17.2" @@ -614,17 +725,9 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6354c81bbfd62d9cfa9cb3c773c2b7b2a3a482d569de977fd0e961f6e7c00583" dependencies = [ "find-msvc-tools", - "jobserver", - "libc", "shlex", ] -[[package]] -name = "cesu8" -version = "1.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6d43a04d8753f35258c91f8ec639f792891f748a1edbd759cf1dcea3382ad83c" - [[package]] name = "cfg-if" version = "1.0.4" @@ -685,16 +788,6 @@ dependencies = [ "unreachable", ] -[[package]] -name = "combine" -version = "4.6.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ba5a308b75df32fe02788e748662718f03fde005016435c444eea572398219fd" -dependencies = [ - "bytes", - "memchr", -] - [[package]] name = "compression-codecs" version = "0.4.36" @@ -713,28 +806,6 @@ version = "0.4.31" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "75984efb6ed102a0d42db99afb6c1948f0380d1d91808d5529916e6c08b49d8d" -[[package]] -name = "concurrent-queue" -version = "2.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4ca0197aee26d1ae37445ee532fefce43251d24cc7c166799f4d46817f1d3973" -dependencies = [ - "crossbeam-utils", -] - -[[package]] -name = "console" -version = "0.15.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "054ccb5b10f9f2cbf51eb355ca1d05c2d279ce1804688d0db74b4733a5aeafd8" -dependencies = [ - "encode_unicode", - "libc", - "once_cell", - "unicode-width", - "windows-sys 0.59.0", -] - [[package]] name = "console_error_panic_hook" version = "0.1.7" @@ -777,16 +848,6 @@ dependencies = [ "libc", ] -[[package]] -name = "core-foundation" -version = "0.10.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b2a6cd9ae233e7f62ba4e9353e81a88df7fc8a5987b8d445b4d90c879bd156f6" -dependencies = [ - "core-foundation-sys", - "libc", -] - [[package]] name = "core-foundation-sys" version = "0.8.7" @@ -820,25 +881,6 @@ dependencies = [ "crossbeam-utils", ] -[[package]] -name = "crossbeam-deque" -version = "0.8.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9dd111b7b7f7d55b72c0a6ae361660ee5853c9af73f70c3c2ef6858b950e2e51" -dependencies = [ - "crossbeam-epoch", - "crossbeam-utils", -] - -[[package]] -name = "crossbeam-epoch" -version = "0.9.18" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5b82ac4a3c2ca9c3460964f020e1402edd5753411d7737aa39c3714ad1b5420e" -dependencies = [ - "crossbeam-utils", -] - [[package]] name = "crossbeam-utils" version = "0.8.21" @@ -970,25 +1012,6 @@ dependencies = [ "syn 2.0.114", ] -[[package]] -name = "dashmap" -version = "5.5.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "978747c1d849a7d2ee5e8adc0159961c48fb7e5db2f06af6723b80123bb53856" -dependencies = [ - "cfg-if", - "hashbrown 0.14.5", - "lock_api", - "once_cell", - "parking_lot_core", -] - -[[package]] -name = "data-encoding" -version = "2.10.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d7a1e2f27636f116493b8b860f5546edb47c8d8f8ea73e1d2a20be88e28d1fea" - [[package]] name = "der" version = "0.7.10" @@ -1000,29 +1023,6 @@ dependencies = [ "zeroize", ] -[[package]] -name = "der-parser" -version = "8.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dbd676fbbab537128ef0278adb5576cf363cff6aa22a7b24effe97347cfab61e" -dependencies = [ - "asn1-rs", - "displaydoc", - "nom", - "num-bigint 0.4.6", - "num-traits", - "rusticata-macros", -] - -[[package]] -name = "deranged" -version = "0.5.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ececcb659e7ba858fb4f10388c250a7252eb0a27373f1a72b8748afdd248e587" -dependencies = [ - "powerfmt", -] - [[package]] name = "derivation-path" version = "0.2.0" @@ -1067,16 +1067,7 @@ version = "4.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ca3aa72a6f96ea37bbc5aa912f6788242832f75369bdfdadcb0e38423f100059" dependencies = [ - "dirs-sys 0.3.7", -] - -[[package]] -name = "dirs" -version = "6.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c3e8aa94d75141228480295a7d0e7feb620b1a5ad9f12bc40be62411e38cce4e" -dependencies = [ - "dirs-sys 0.5.0", + "dirs-sys", ] [[package]] @@ -1086,22 +1077,10 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1b1d1d91c932ef41c0f2663aa8b0ca0342d444d842c06914aa0a7e352d0bada6" dependencies = [ "libc", - "redox_users 0.4.6", + "redox_users", "winapi", ] -[[package]] -name = "dirs-sys" -version = "0.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e01a3366d27ee9890022452ee61b2b63a67e6f13f58900b651ff5665f0bb1fab" -dependencies = [ - "libc", - "option-ext", - "redox_users 0.5.2", - "windows-sys 0.61.2", -] - [[package]] name = "displaydoc" version = "0.2.5" @@ -1113,29 +1092,6 @@ dependencies = [ "syn 2.0.114", ] -[[package]] -name = "dlopen2" -version = "0.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "09b4f5f101177ff01b8ec4ecc81eead416a8aa42819a2869311b3420fa114ffa" -dependencies = [ - "dlopen2_derive", - "libc", - "once_cell", - "winapi", -] - -[[package]] -name = "dlopen2_derive" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a6cbae11b3de8fce2a456e8ea3dada226b35fe791f0dc1d360c0941f0bb681f3" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.114", -] - [[package]] name = "eager" version = "0.1.0" @@ -1165,6 +1121,16 @@ dependencies = [ "signature 1.6.4", ] +[[package]] +name = "ed25519" +version = "2.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "115531babc129696a58c64a4fef0a8bf9e9698629fb97e9e40767d235cfbcd53" +dependencies = [ + "pkcs8", + "signature 2.2.0", +] + [[package]] name = "ed25519-dalek" version = "1.0.1" @@ -1172,13 +1138,28 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c762bae6dcaf24c4c84667b8579785430908723d5c889f469d76a41d59cc7a9d" dependencies = [ "curve25519-dalek 3.2.0", - "ed25519", + "ed25519 1.5.3", "rand 0.7.3", "serde", "sha2 0.9.9", "zeroize", ] +[[package]] +name = "ed25519-dalek" +version = "2.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "70e796c081cee67dc755e1a36a0a172b897fab85fc3f6bc48307991f64e4eca9" +dependencies = [ + "curve25519-dalek 4.1.3", + "ed25519 2.2.3", + "rand_core 0.6.4", + "serde", + "sha2 0.10.9", + "subtle", + "zeroize", +] + [[package]] name = "ed25519-dalek-bip32" version = "0.2.0" @@ -1186,11 +1167,23 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9d2be62a4061b872c8c0873ee4fc6f101ce7b889d039f019c5fa2af471a59908" dependencies = [ "derivation-path", - "ed25519-dalek", + "ed25519-dalek 1.0.1", "hmac 0.12.1", "sha2 0.10.9", ] +[[package]] +name = "educe" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1d7bc049e1bd8cdeb31b68bbd586a9464ecf9f3944af3958a7a9d0f8b9799417" +dependencies = [ + "enum-ordinalize", + "proc-macro2", + "quote", + "syn 2.0.114", +] + [[package]] name = "either" version = "1.15.0" @@ -1217,12 +1210,6 @@ dependencies = [ "zeroize", ] -[[package]] -name = "encode_unicode" -version = "1.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "34aa73646ffb006b8f5147f3dc182bd4bcb190227ce861fc4a4844bf8e3cb2c0" - [[package]] name = "encoding_rs" version = "0.8.35" @@ -1252,6 +1239,26 @@ dependencies = [ "syn 2.0.114", ] +[[package]] +name = "enum-ordinalize" +version = "4.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4a1091a7bb1f8f2c4b28f1fe2cef4980ca2d410a3d727d67ecc3178c9b0800f0" +dependencies = [ + "enum-ordinalize-derive", +] + +[[package]] +name = "enum-ordinalize-derive" +version = "4.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8ca9601fb2d62598ee17836250842873a413586e5d7ed88b356e38ddbb0ec631" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.114", +] + [[package]] name = "env_logger" version = "0.9.3" @@ -1281,45 +1288,6 @@ dependencies = [ "windows-sys 0.61.2", ] -[[package]] -name = "event-listener" -version = "2.5.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0206175f82b8d6bf6652ff7d71a1e27fd2e4efde587fd368662814d6ec1d9ce0" - -[[package]] -name = "event-listener" -version = "5.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e13b66accf52311f30a0db42147dadea9850cb48cd070028831ae5f5d4b856ab" -dependencies = [ - "concurrent-queue", - "parking", - "pin-project-lite", -] - -[[package]] -name = "event-listener-strategy" -version = "0.5.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8be9f3dfaaffdae2972880079a491a1a8bb7cbed0b8dd7a347f668b4150a3b93" -dependencies = [ - "event-listener 5.4.1", - "pin-project-lite", -] - -[[package]] -name = "fastbloom" -version = "0.14.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4e7f34442dbe69c60fe8eaf58a8cafff81a1f278816d8ab4db255b3bef4ac3c4" -dependencies = [ - "getrandom 0.3.4", - "libm", - "rand 0.9.2", - "siphasher 1.0.1", -] - [[package]] name = "feature-probe" version = "0.1.1" @@ -1348,6 +1316,24 @@ version = "0.1.8" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8591b0bcc8a98a64310a2fae1bb3e9b8564dd10e381e6e28010fde8e8e8568db" +[[package]] +name = "five8" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a75b8549488b4715defcb0d8a8a1c1c76a80661b5fa106b4ca0e7fce59d7d875" +dependencies = [ + "five8_core", +] + +[[package]] +name = "five8" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "23f76610e969fa1784327ded240f1e28a3fd9520c9cec93b636fcf62dd37f772" +dependencies = [ + "five8_core", +] + [[package]] name = "five8_const" version = "0.1.4" @@ -1357,6 +1343,15 @@ dependencies = [ "five8_core", ] +[[package]] +name = "five8_const" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1a0f1728185f277989ca573a402716ae0beaaea3f76a8ff87ef9dd8fb19436c5" +dependencies = [ + "five8_core", +] + [[package]] name = "five8_core" version = "0.1.2" @@ -1403,21 +1398,6 @@ dependencies = [ "percent-encoding", ] -[[package]] -name = "futures" -version = "0.3.31" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "65bc07b1a8bc7c85c5f2e110c476c7389b4554ba72af57d8445ea63a576b0876" -dependencies = [ - "futures-channel", - "futures-core", - "futures-executor", - "futures-io", - "futures-sink", - "futures-task", - "futures-util", -] - [[package]] name = "futures-channel" version = "0.3.31" @@ -1425,7 +1405,6 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2dff15bf788c671c1934e366d07e30c1814a8ef514e1af724a602e8a2fbe1b10" dependencies = [ "futures-core", - "futures-sink", ] [[package]] @@ -1434,34 +1413,12 @@ version = "0.3.31" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "05f29059c0c2090612e8d742178b0580d2dc940c837851ad723096f87af6663e" -[[package]] -name = "futures-executor" -version = "0.3.31" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e28d1d997f585e54aebc3f97d39e72338912123a67330d723fdbb564d646c9f" -dependencies = [ - "futures-core", - "futures-task", - "futures-util", -] - [[package]] name = "futures-io" version = "0.3.31" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9e5c1b78ca4aae1ac06c48a526a655760685149f0d465d21f37abfe57ce075c6" -[[package]] -name = "futures-macro" -version = "0.3.31" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "162ee34ebcb7c64a8abebc059ce0fee27c2262618d7b60ed8faf72fef13c3650" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.114", -] - [[package]] name = "futures-sink" version = "0.3.31" @@ -1474,23 +1431,14 @@ version = "0.3.31" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f90f7dce0722e95104fcb095585910c0977252f286e354b5e3bd38902cd99988" -[[package]] -name = "futures-timer" -version = "3.0.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f288b0a4f20f9a56b5d1da57e2227c661b7b16168e2f72365f57b63326e29b24" - [[package]] name = "futures-util" version = "0.3.31" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9fa08315bb612088cc391249efdc3bc77536f16c91f6cf495e6fbe85b20a4a81" dependencies = [ - "futures-channel", "futures-core", "futures-io", - "futures-macro", - "futures-sink", "futures-task", "memchr", "pin-project-lite", @@ -1552,31 +1500,9 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "899def5c37c4fd7b2664648c28120ecec138e4d395b459e5ca34f9cce2dd77fd" dependencies = [ "cfg-if", - "js-sys", "libc", "r-efi", "wasip2", - "wasm-bindgen", -] - -[[package]] -name = "governor" -version = "0.6.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "68a7f542ee6b35af73b06abc0dad1c1bae89964e4e253bc4b587b91c9637867b" -dependencies = [ - "cfg-if", - "dashmap", - "futures", - "futures-timer", - "no-std-compat", - "nonzero_ext", - "parking_lot", - "portable-atomic", - "quanta", - "rand 0.8.5", - "smallvec", - "spinning_top", ] [[package]] @@ -1618,6 +1544,15 @@ dependencies = [ "byteorder", ] +[[package]] +name = "hash32" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "47d60b12902ba28e2730cd37e95b8c9223af2808df9e902d4df49588d1470606" +dependencies = [ + "byteorder", +] + [[package]] name = "hashbrown" version = "0.13.2" @@ -1629,9 +1564,12 @@ dependencies = [ [[package]] name = "hashbrown" -version = "0.14.5" +version = "0.15.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e5274423e17b7c9fc20b6e7e208532f9b19825d82dfd615708b70edd83df41f1" +checksum = "9229cfe53dfd69f0609a49f65461bd93001ea1ef889cd5529dd176593f5338a1" +dependencies = [ + "allocator-api2", +] [[package]] name = "hashbrown" @@ -1657,24 +1595,6 @@ dependencies = [ "libc", ] -[[package]] -name = "hermit-abi" -version = "0.5.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fc0fef456e4baa96da950455cd02c081ca953b141298e41db3fc7e36b1da849c" - -[[package]] -name = "hex" -version = "0.4.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70" - -[[package]] -name = "histogram" -version = "0.6.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "12cb882ccb290b8646e554b157ab0b71e64e8d5bef775cd66b6531e52d302669" - [[package]] name = "hmac" version = "0.8.1" @@ -1778,7 +1698,7 @@ dependencies = [ "futures-util", "http", "hyper", - "rustls 0.21.12", + "rustls", "tokio", "tokio-rustls", ] @@ -1925,19 +1845,6 @@ dependencies = [ "hashbrown 0.16.1", ] -[[package]] -name = "indicatif" -version = "0.17.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "183b3088984b400f4cfac3620d5e076c84da5364016b4f49473de574b2586235" -dependencies = [ - "console", - "number_prefix", - "portable-atomic", - "unicode-width", - "web-time", -] - [[package]] name = "inout" version = "0.1.4" @@ -1973,50 +1880,27 @@ dependencies = [ [[package]] name = "itertools" -version = "0.14.0" +version = "0.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2b192c782037fadd9cfa75548310488aabdbf3d2da73885b31bd0abd03351285" +checksum = "413ee7dfc52ee1a4949ceeb7dbc8a33f2d6c088194d9f922fb8318faf1f01186" dependencies = [ "either", ] [[package]] -name = "itoa" -version = "1.0.17" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "92ecc6618181def0457392ccd0ee51198e065e016d1d527a7ac1b6dc7c1f09d2" - -[[package]] -name = "jni" -version = "0.21.1" +name = "itertools" +version = "0.14.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1a87aa2bb7d2af34197c04845522473242e1aa17c12f4935d5856491a7fb8c97" +checksum = "2b192c782037fadd9cfa75548310488aabdbf3d2da73885b31bd0abd03351285" dependencies = [ - "cesu8", - "cfg-if", - "combine 4.6.7", - "jni-sys", - "log", - "thiserror 1.0.69", - "walkdir", - "windows-sys 0.45.0", + "either", ] [[package]] -name = "jni-sys" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8eaf4bc02d17cbdd7ff4c7438cafcdf7fb9a4613313ad11b4f8fefe7d3fa0130" - -[[package]] -name = "jobserver" -version = "0.1.34" +name = "itoa" +version = "1.0.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9afb3de4395d6b3e67a780b6de64b51c978ecf11cb9a462c66be7d4ca9039d33" -dependencies = [ - "getrandom 0.3.4", - "libc", -] +checksum = "92ecc6618181def0457392ccd0ee51198e065e016d1d527a7ac1b6dc7c1f09d2" [[package]] name = "js-sys" @@ -2029,18 +1913,17 @@ dependencies = [ ] [[package]] -name = "jsonrpc-core" -version = "18.0.0" +name = "k256" +version = "0.13.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "14f7f76aef2d054868398427f6c54943cf3d1caa9a7ec7d0c38d69df97a965eb" +checksum = "f6e3919bbaa2945715f0bb6d3934a173d1e9a59ac23767fbaaef277265a7411b" dependencies = [ - "futures", - "futures-executor", - "futures-util", - "log", - "serde", - "serde_derive", - "serde_json", + "cfg-if", + "ecdsa", + "elliptic-curve", + "once_cell", + "sha2 0.10.9", + "signature 2.2.0", ] [[package]] @@ -2062,7 +1945,7 @@ dependencies = [ "blake3", "ecdsa", "getrandom 0.2.17", - "litesvm", + "litesvm 0.6.1", "no-padding", "p256", "pinocchio", @@ -2080,18 +1963,24 @@ name = "lazorkit-tests-e2e" version = "0.1.0" dependencies = [ "anyhow", - "base64 0.22.1", - "borsh 1.6.0", - "hex", + "litesvm 0.9.1", "p256", "pinocchio", "rand 0.8.5", + "serde_json", "sha2 0.10.9", - "shellexpand 3.1.1", - "solana-client", + "solana-account 3.4.0", + "solana-address 2.1.0", + "solana-clock 3.0.0", + "solana-hash 4.1.0", + "solana-instruction 3.1.0", + "solana-keypair 3.1.0", + "solana-message 3.0.1", "solana-program", - "solana-sdk", - "tokio", + "solana-pubkey 2.2.1", + "solana-signer 3.0.0", + "solana-system-program 3.1.8", + "solana-transaction 3.0.2", ] [[package]] @@ -2106,12 +1995,6 @@ version = "0.2.180" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bcc35a38544a891a5f7c865aca548a982ccb3b8650a5b06d0fd33a10283c56fc" -[[package]] -name = "libm" -version = "0.2.15" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f9fbbcab51052fe104eb5e5d351cf728d30a5be1fe14d9be8a3b097481fb97de" - [[package]] name = "libredox" version = "0.1.12" @@ -2176,8 +2059,20 @@ version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3c9a85a9752c549ceb7578064b4ed891179d20acd85f27318573b64d2d7ee7ee" dependencies = [ - "ark-bn254", - "ark-ff", + "ark-bn254 0.4.0", + "ark-ff 0.4.2", + "num-bigint 0.4.6", + "thiserror 1.0.69", +] + +[[package]] +name = "light-poseidon" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "47a1ccadd0bb5a32c196da536fd72c59183de24a055f6bf0513bf845fefab862" +dependencies = [ + "ark-bn254 0.5.0", + "ark-ff 0.5.0", "num-bigint 0.4.6", "thiserror 1.0.69", ] @@ -2199,78 +2094,135 @@ dependencies = [ "indexmap", "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-account 2.2.1", + "solana-address-lookup-table-interface 2.2.2", + "solana-bpf-loader-program 2.2.4", + "solana-builtins 2.2.4", + "solana-clock 2.2.1", + "solana-compute-budget 2.2.4", + "solana-compute-budget-instruction 2.2.4", "solana-config-program", - "solana-epoch-rewards", - "solana-epoch-schedule", + "solana-epoch-rewards 2.2.1", + "solana-epoch-schedule 2.2.1", "solana-feature-set", - "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-fee 2.2.4", + "solana-fee-structure 2.2.1", + "solana-hash 2.2.1", + "solana-instruction 2.2.1", + "solana-instructions-sysvar 2.2.1", + "solana-keypair 2.2.1", + "solana-last-restart-slot 2.2.1", + "solana-loader-v3-interface 3.0.0", + "solana-loader-v4-interface 2.2.1", "solana-log-collector", "solana-measure", - "solana-message", - "solana-native-token", - "solana-nonce", - "solana-nonce-account", + "solana-message 2.2.1", + "solana-native-token 2.2.1", + "solana-nonce 2.2.1", + "solana-nonce-account 2.2.1", "solana-precompiles", - "solana-program-error", - "solana-program-runtime", - "solana-pubkey", - "solana-rent", + "solana-program-error 2.2.2", + "solana-program-runtime 2.2.4", + "solana-pubkey 2.2.1", + "solana-rent 2.2.1", "solana-reserved-account-keys", - "solana-sdk-ids", - "solana-sha256-hasher", - "solana-signature", - "solana-signer", - "solana-slot-hashes", - "solana-slot-history", - "solana-stake-interface", - "solana-svm-transaction", - "solana-system-interface", - "solana-system-program", - "solana-sysvar", - "solana-sysvar-id", + "solana-sdk-ids 2.2.1", + "solana-sha256-hasher 2.2.1", + "solana-signature 2.2.1", + "solana-signer 2.2.1", + "solana-slot-hashes 2.2.1", + "solana-slot-history 2.2.1", + "solana-stake-interface 1.2.1", + "solana-svm-transaction 2.2.4", + "solana-system-interface 1.0.0", + "solana-system-program 2.2.4", + "solana-sysvar 2.2.1", + "solana-sysvar-id 2.2.1", "solana-timings", - "solana-transaction", - "solana-transaction-context", - "solana-transaction-error", - "solana-vote-program", + "solana-transaction 2.2.1", + "solana-transaction-context 2.2.1", + "solana-transaction-error 2.2.1", + "solana-vote-program 2.2.4", "thiserror 2.0.18", ] [[package]] -name = "lock_api" -version = "0.4.14" +name = "litesvm" +version = "0.9.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "224399e74b87b5f3557511d98dff8b14089b3dadafcab6bb93eab67d3aace965" +checksum = "8c835e9bf4590c115245fe15f15025527f88738f96b1993b16cc6f1d572c4979" dependencies = [ - "scopeguard", -] - -[[package]] -name = "log" -version = "0.4.29" + "agave-feature-set", + "agave-reserved-account-keys", + "agave-syscalls", + "ansi_term", + "bincode", + "indexmap", + "itertools 0.14.0", + "log", + "serde", + "solana-account 3.4.0", + "solana-address 2.1.0", + "solana-address-lookup-table-interface 3.0.1", + "solana-bpf-loader-program 3.1.8", + "solana-builtins 3.1.8", + "solana-clock 3.0.0", + "solana-compute-budget 3.1.8", + "solana-compute-budget-instruction 3.1.8", + "solana-epoch-rewards 3.0.0", + "solana-epoch-schedule 3.0.0", + "solana-fee 3.1.8", + "solana-fee-structure 3.0.0", + "solana-hash 4.1.0", + "solana-instruction 3.1.0", + "solana-instructions-sysvar 3.0.0", + "solana-keypair 3.1.0", + "solana-last-restart-slot 3.0.0", + "solana-loader-v3-interface 6.1.0", + "solana-loader-v4-interface 3.1.0", + "solana-message 3.0.1", + "solana-native-token 3.0.0", + "solana-nonce 3.0.0", + "solana-nonce-account 3.0.0", + "solana-precompile-error 3.0.0", + "solana-program-error 3.0.0", + "solana-program-runtime 3.1.8", + "solana-rent 3.1.0", + "solana-sdk-ids 3.1.0", + "solana-sha256-hasher 3.1.0", + "solana-signature 3.1.0", + "solana-signer 3.0.0", + "solana-slot-hashes 3.0.0", + "solana-slot-history 3.0.0", + "solana-stake-interface 2.0.2", + "solana-svm-callback", + "solana-svm-log-collector", + "solana-svm-timings", + "solana-svm-transaction 3.1.8", + "solana-system-interface 3.0.0", + "solana-system-program 3.1.8", + "solana-sysvar 3.1.1", + "solana-sysvar-id 3.1.0", + "solana-transaction 3.0.2", + "solana-transaction-context 3.1.8", + "solana-transaction-error 3.0.0", + "thiserror 2.0.18", +] + +[[package]] +name = "lock_api" +version = "0.4.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5e5032e24019045c762d3c0f28f5b6b8bbf38563a65908389bf7978758920897" +checksum = "224399e74b87b5f3557511d98dff8b14089b3dadafcab6bb93eab67d3aace965" +dependencies = [ + "scopeguard", +] [[package]] -name = "lru-slab" -version = "0.1.2" +name = "log" +version = "0.4.29" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "112b39cec0b298b6c1999fee3e31427f74f676e4cb9879ed1a121b43661a4154" +checksum = "5e5032e24019045c762d3c0f28f5b6b8bbf38563a65908389bf7978758920897" [[package]] name = "memchr" @@ -2314,22 +2266,6 @@ version = "0.3.17" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6877bb514081ee2a7ff5ef9de3281f14a4dd4bceac4c09388074a6b5df8a139a" -[[package]] -name = "mime_guess" -version = "2.0.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f7c44f8e672c00fe5308fa235f821cb4198414e1c77935c1ab6948d3fd78550e" -dependencies = [ - "mime", - "unicase", -] - -[[package]] -name = "minimal-lexical" -version = "0.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a" - [[package]] name = "miniz_oxide" version = "0.8.9" @@ -2351,19 +2287,6 @@ dependencies = [ "windows-sys 0.61.2", ] -[[package]] -name = "nix" -version = "0.29.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "71e2746dc3a24dd78b3cfcb7be93368c6de9963d30f43a6a73998a9cf4b17b46" -dependencies = [ - "bitflags 2.10.0", - "cfg-if", - "cfg_aliases", - "libc", - "memoffset", -] - [[package]] name = "no-padding" version = "0.1.0" @@ -2373,28 +2296,6 @@ dependencies = [ "syn 2.0.114", ] -[[package]] -name = "no-std-compat" -version = "0.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b93853da6d84c2e3c7d730d6473e8817692dd89be387eb01b94d7f108ecb5b8c" - -[[package]] -name = "nom" -version = "7.1.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d273983c5a657a70a3e8f2a01329822f3b8c8172b73826411a55751e404a0a4a" -dependencies = [ - "memchr", - "minimal-lexical", -] - -[[package]] -name = "nonzero_ext" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "38bf9645c8b145698bb0b18a4637dcacbc421ea49bef2317e4fd8065a387cf21" - [[package]] name = "num" version = "0.2.1" @@ -2440,12 +2341,6 @@ dependencies = [ "num-traits", ] -[[package]] -name = "num-conv" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "51d515d32fb182ee37cda2ccdcb92950d6a3c2893aa280e540671c2cd0f3b1d9" - [[package]] name = "num-derive" version = "0.4.2" @@ -2498,16 +2393,6 @@ dependencies = [ "autocfg", ] -[[package]] -name = "num_cpus" -version = "1.17.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "91df4bbde75afed763b708b7eee1e8e7651e02d97f6d5dd763e89367e957b23b" -dependencies = [ - "hermit-abi 0.5.2", - "libc", -] - [[package]] name = "num_enum" version = "0.7.5" @@ -2530,21 +2415,6 @@ dependencies = [ "syn 2.0.114", ] -[[package]] -name = "number_prefix" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "830b246a0e5f20af87141b25c173cd1b609bd7779a4617d6ec582abaf90870f3" - -[[package]] -name = "oid-registry" -version = "0.6.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9bedf36ffb6ba96c2eb7144ef6270557b52e54b20c0a8e1eb2ff99a6c6959bff" -dependencies = [ - "asn1-rs", -] - [[package]] name = "once_cell" version = "1.21.3" @@ -2583,12 +2453,6 @@ dependencies = [ "syn 2.0.114", ] -[[package]] -name = "openssl-probe" -version = "0.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7c87def4c32ab89d880effc9e097653c8da5d6ef28e6b539d313baaacfbafcbe" - [[package]] name = "openssl-sys" version = "0.9.111" @@ -2601,12 +2465,6 @@ dependencies = [ "vcpkg", ] -[[package]] -name = "option-ext" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "04744f49eae99ab78e0d5c0b603ab218f515ea8cfe5a456d7629ad883a3b6e7d" - [[package]] name = "p256" version = "0.13.2" @@ -2619,12 +2477,6 @@ dependencies = [ "sha2 0.10.9", ] -[[package]] -name = "parking" -version = "2.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f38d5652c16fde515bb1ecef450ab0f6a219d619a7274976324d5e377f7dceba" - [[package]] name = "parking_lot" version = "0.12.5" @@ -2663,15 +2515,6 @@ dependencies = [ "digest 0.10.7", ] -[[package]] -name = "pem" -version = "1.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a8835c273a76a90455d7344889b0964598e3316e2a79ede8e36f16bdcf2228b8" -dependencies = [ - "base64 0.13.1", -] - [[package]] name = "pem-rfc7468" version = "0.7.0" @@ -2720,7 +2563,7 @@ version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "cb0225638cadcbebae8932cb7f49cb5da7c15c21beb19f048f05a5ca7d93f065" dependencies = [ - "five8_const", + "five8_const 0.1.4", "pinocchio", "sha2-const-stable", ] @@ -2763,12 +2606,6 @@ dependencies = [ "universal-hash", ] -[[package]] -name = "portable-atomic" -version = "1.13.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f89776e4d69bb58bc6993e99ffa1d11f228b839984854c7daeb5d37f87cbe950" - [[package]] name = "potential_utf" version = "0.1.4" @@ -2778,12 +2615,6 @@ dependencies = [ "zerovec", ] -[[package]] -name = "powerfmt" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "439ee305def115ba05938db6eb1644ff94165c5ab5e9420d1c1bcedbba909391" - [[package]] name = "ppv-lite86" version = "0.2.21" @@ -2849,78 +2680,6 @@ dependencies = [ "syn 2.0.114", ] -[[package]] -name = "quanta" -version = "0.12.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f3ab5a9d756f0d97bdc89019bd2e4ea098cf9cde50ee7564dde6b81ccc8f06c7" -dependencies = [ - "crossbeam-utils", - "libc", - "once_cell", - "raw-cpuid", - "wasi 0.11.1+wasi-snapshot-preview1", - "web-sys", - "winapi", -] - -[[package]] -name = "quinn" -version = "0.11.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b9e20a958963c291dc322d98411f541009df2ced7b5a4f2bd52337638cfccf20" -dependencies = [ - "bytes", - "cfg_aliases", - "pin-project-lite", - "quinn-proto", - "quinn-udp", - "rustc-hash", - "rustls 0.23.36", - "socket2 0.6.2", - "thiserror 2.0.18", - "tokio", - "tracing", - "web-time", -] - -[[package]] -name = "quinn-proto" -version = "0.11.13" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f1906b49b0c3bc04b5fe5d86a77925ae6524a19b816ae38ce1e426255f1d8a31" -dependencies = [ - "bytes", - "fastbloom", - "getrandom 0.3.4", - "lru-slab", - "rand 0.9.2", - "ring", - "rustc-hash", - "rustls 0.23.36", - "rustls-pki-types", - "rustls-platform-verifier", - "slab", - "thiserror 2.0.18", - "tinyvec", - "tracing", - "web-time", -] - -[[package]] -name = "quinn-udp" -version = "0.5.14" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "addec6a0dcad8a8d96a771f815f0eaf55f9d1805756410b39f5fa81332574cbd" -dependencies = [ - "cfg_aliases", - "libc", - "once_cell", - "socket2 0.6.2", - "tracing", - "windows-sys 0.60.2", -] - [[package]] name = "quote" version = "1.0.44" @@ -2960,16 +2719,6 @@ dependencies = [ "rand_core 0.6.4", ] -[[package]] -name = "rand" -version = "0.9.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6db2770f06117d490610c7488547d543617b21bfa07796d7a12f6f1bd53850d1" -dependencies = [ - "rand_chacha 0.9.0", - "rand_core 0.9.5", -] - [[package]] name = "rand_chacha" version = "0.2.2" @@ -2990,16 +2739,6 @@ dependencies = [ "rand_core 0.6.4", ] -[[package]] -name = "rand_chacha" -version = "0.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d3022b5f1df60f26e1ffddd6c66e8aa15de382ae63b3a0c1bfc0e4d3e3f325cb" -dependencies = [ - "ppv-lite86", - "rand_core 0.9.5", -] - [[package]] name = "rand_core" version = "0.5.1" @@ -3018,15 +2757,6 @@ dependencies = [ "getrandom 0.2.17", ] -[[package]] -name = "rand_core" -version = "0.9.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "76afc826de14238e6e8c374ddcc1fa19e374fd8dd986b0d2af0d02377261d83c" -dependencies = [ - "getrandom 0.3.4", -] - [[package]] name = "rand_hc" version = "0.2.0" @@ -3036,35 +2766,6 @@ dependencies = [ "rand_core 0.5.1", ] -[[package]] -name = "raw-cpuid" -version = "11.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "498cd0dc59d73224351ee52a95fee0f1a617a2eae0e7d9d720cc622c73a54186" -dependencies = [ - "bitflags 2.10.0", -] - -[[package]] -name = "rayon" -version = "1.11.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "368f01d005bf8fd9b1206fb6fa653e6c4a81ceb1466406b81792d87c5677a58f" -dependencies = [ - "either", - "rayon-core", -] - -[[package]] -name = "rayon-core" -version = "1.13.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "22e18b0f0062d30d4230b2e85ff77fdfe4326feb054b9783a3460d8435c8ab91" -dependencies = [ - "crossbeam-deque", - "crossbeam-utils", -] - [[package]] name = "redox_syscall" version = "0.5.18" @@ -3085,17 +2786,6 @@ dependencies = [ "thiserror 1.0.69", ] -[[package]] -name = "redox_users" -version = "0.5.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a4e608c6638b9c18977b00b475ac1f28d14e84b27d8d42f70e0bf1e3dec127ac" -dependencies = [ - "getrandom 0.2.17", - "libredox", - "thiserror 2.0.18", -] - [[package]] name = "regex" version = "1.12.2" @@ -3146,11 +2836,10 @@ dependencies = [ "js-sys", "log", "mime", - "mime_guess", "once_cell", "percent-encoding", "pin-project-lite", - "rustls 0.21.12", + "rustls", "rustls-pemfile", "serde", "serde_json", @@ -3165,25 +2854,10 @@ dependencies = [ "wasm-bindgen", "wasm-bindgen-futures", "web-sys", - "webpki-roots 0.25.4", + "webpki-roots", "winreg", ] -[[package]] -name = "reqwest-middleware" -version = "0.2.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5a735987236a8e238bf0296c7e351b999c188ccc11477f311b82b55c93984216" -dependencies = [ - "anyhow", - "async-trait", - "http", - "reqwest", - "serde", - "task-local-extensions", - "thiserror 1.0.69", -] - [[package]] name = "rfc6979" version = "0.4.0" @@ -3214,12 +2888,6 @@ version = "0.1.27" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b50b8869d9fc858ce7266cce0194bd74df58b9d0e3f6df3a9fc8eb470d95c09d" -[[package]] -name = "rustc-hash" -version = "2.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "357703d41365b4b27c590e3ed91eabb1b663f07c4c084095e60cbed4362dff0d" - [[package]] name = "rustc_version" version = "0.4.1" @@ -3229,15 +2897,6 @@ dependencies = [ "semver", ] -[[package]] -name = "rusticata-macros" -version = "4.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "faf0c4a6ece9950b9abdb62b1cfcf2a68b3b67a10ba445b3bb85be2a293d0632" -dependencies = [ - "nom", -] - [[package]] name = "rustls" version = "0.21.12" @@ -3246,36 +2905,10 @@ checksum = "3f56a14d1f48b391359b22f731fd4bd7e43c97f3c50eee276f3aa09c94784d3e" dependencies = [ "log", "ring", - "rustls-webpki 0.101.7", + "rustls-webpki", "sct", ] -[[package]] -name = "rustls" -version = "0.23.36" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c665f33d38cea657d9614f766881e4d510e0eda4239891eea56b4cadcf01801b" -dependencies = [ - "once_cell", - "ring", - "rustls-pki-types", - "rustls-webpki 0.103.9", - "subtle", - "zeroize", -] - -[[package]] -name = "rustls-native-certs" -version = "0.8.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "612460d5f7bea540c490b2b6395d8e34a953e52b491accd6c86c8164c5932a63" -dependencies = [ - "openssl-probe", - "rustls-pki-types", - "schannel", - "security-framework", -] - [[package]] name = "rustls-pemfile" version = "1.0.4" @@ -3286,92 +2919,26 @@ dependencies = [ ] [[package]] -name = "rustls-pki-types" -version = "1.14.0" +name = "rustls-webpki" +version = "0.101.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "be040f8b0a225e40375822a563fa9524378b9d63112f53e19ffff34df5d33fdd" +checksum = "8b6275d1ee7a1cd780b64aca7726599a1dbc893b1e64144529e55c3c2f745765" dependencies = [ - "web-time", - "zeroize", + "ring", + "untrusted", ] [[package]] -name = "rustls-platform-verifier" -version = "0.6.2" +name = "rustversion" +version = "1.0.22" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1d99feebc72bae7ab76ba994bb5e121b8d83d910ca40b36e0921f53becc41784" -dependencies = [ - "core-foundation 0.10.1", - "core-foundation-sys", - "jni", - "log", - "once_cell", - "rustls 0.23.36", - "rustls-native-certs", - "rustls-platform-verifier-android", - "rustls-webpki 0.103.9", - "security-framework", - "security-framework-sys", - "webpki-root-certs", - "windows-sys 0.61.2", -] +checksum = "b39cdef0fa800fc44525c84ccb54a029961a8215f9619753635a9c0d2538d46d" [[package]] -name = "rustls-platform-verifier-android" -version = "0.1.1" +name = "ryu" +version = "1.0.22" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f87165f0995f63a9fbeea62b64d10b4d9d8e78ec6d7d51fb2125fda7bb36788f" - -[[package]] -name = "rustls-webpki" -version = "0.101.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8b6275d1ee7a1cd780b64aca7726599a1dbc893b1e64144529e55c3c2f745765" -dependencies = [ - "ring", - "untrusted", -] - -[[package]] -name = "rustls-webpki" -version = "0.103.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d7df23109aa6c1567d1c575b9952556388da57401e4ace1d15f79eedad0d8f53" -dependencies = [ - "ring", - "rustls-pki-types", - "untrusted", -] - -[[package]] -name = "rustversion" -version = "1.0.22" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b39cdef0fa800fc44525c84ccb54a029961a8215f9619753635a9c0d2538d46d" - -[[package]] -name = "ryu" -version = "1.0.22" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a50f4cf475b65d88e057964e0e9bb1f0aa9bbb2036dc65c64596b42932536984" - -[[package]] -name = "same-file" -version = "1.0.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "93fc1dc3aaa9bfed95e02e6eadabb4baf7e3078b0bd1b4d7b6b0b68378900502" -dependencies = [ - "winapi-util", -] - -[[package]] -name = "schannel" -version = "0.1.28" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "891d81b926048e76efe18581bf793546b4c0eaf8448d72be8de2bbee5fd166e1" -dependencies = [ - "windows-sys 0.61.2", -] +checksum = "a50f4cf475b65d88e057964e0e9bb1f0aa9bbb2036dc65c64596b42932536984" [[package]] name = "scopeguard" @@ -3403,29 +2970,6 @@ dependencies = [ "zeroize", ] -[[package]] -name = "security-framework" -version = "3.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b3297343eaf830f66ede390ea39da1d462b6b0c1b000f420d0a83f898bbbe6ef" -dependencies = [ - "bitflags 2.10.0", - "core-foundation 0.10.1", - "core-foundation-sys", - "libc", - "security-framework-sys", -] - -[[package]] -name = "security-framework-sys" -version = "2.15.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cc1f0cbffaac4852523ce30d8bd3c5cdc873501d96ff467ca09b6767bb8cd5c0" -dependencies = [ - "core-foundation-sys", - "libc", -] - [[package]] name = "semver" version = "1.0.27" @@ -3537,17 +3081,6 @@ dependencies = [ "syn 2.0.114", ] -[[package]] -name = "sha1" -version = "0.10.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e3bf829a2d51ab4a5ddf1352d8470c140cadc8301b2ae1789db023f01cedd6ba" -dependencies = [ - "cfg-if", - "cpufeatures", - "digest 0.10.7", -] - [[package]] name = "sha2" version = "0.9.9" @@ -3607,7 +3140,7 @@ dependencies = [ "serde", "serde_json", "shank_macro_impl", - "shellexpand 2.1.2", + "shellexpand", ] [[package]] @@ -3650,16 +3183,7 @@ version = "2.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7ccc8076840c4da029af4f87e4e8daeb0fca6b87bbb02e10cb60b791450e11e4" dependencies = [ - "dirs 4.0.0", -] - -[[package]] -name = "shellexpand" -version = "3.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8b1fdf65dd6331831494dd616b30351c38e96e45921a27745cf98490458b90bb" -dependencies = [ - "dirs 6.0.0", + "dirs", ] [[package]] @@ -3716,12 +3240,6 @@ version = "0.3.11" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "38b58827f4464d87d377d175e90bf58eb00fd8716ff0a62f80356b5e61555d0d" -[[package]] -name = "siphasher" -version = "1.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "56199f7ddabf13fe5074ce809e7d3f42b42ae711800501b5b16ea82ad029c39d" - [[package]] name = "slab" version = "0.4.11" @@ -3764,28 +3282,30 @@ dependencies = [ "serde", "serde_bytes", "serde_derive", - "solana-account-info", - "solana-clock", - "solana-instruction", - "solana-pubkey", - "solana-sdk-ids", - "solana-sysvar", + "solana-account-info 2.2.1", + "solana-clock 2.2.1", + "solana-instruction 2.2.1", + "solana-pubkey 2.2.1", + "solana-sdk-ids 2.2.1", + "solana-sysvar 2.2.1", ] [[package]] -name = "solana-account-decoder-client-types" -version = "2.2.4" +name = "solana-account" +version = "3.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6329c4f360f5173dd6f65022708486cdd24d302841058e2310945a2502284105" +checksum = "efc0ed36decb689413b9da5d57f2be49eea5bebb3cf7897015167b0c4336e731" dependencies = [ - "base64 0.22.1", - "bs58", + "bincode", "serde", + "serde_bytes", "serde_derive", - "serde_json", - "solana-account", - "solana-pubkey", - "zstd", + "solana-account-info 3.1.0", + "solana-clock 3.0.0", + "solana-instruction-error", + "solana-pubkey 4.0.0", + "solana-sdk-ids 3.1.0", + "solana-sysvar 3.1.1", ] [[package]] @@ -3796,9 +3316,49 @@ checksum = "e0c17d606a298a205fae325489fbed88ee6dc4463c111672172327e741c8905d" dependencies = [ "bincode", "serde", - "solana-program-error", - "solana-program-memory", - "solana-pubkey", + "solana-program-error 2.2.2", + "solana-program-memory 2.2.1", + "solana-pubkey 2.2.1", +] + +[[package]] +name = "solana-account-info" +version = "3.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fc3397241392f5756925029acaa8515dc70fcbe3d8059d4885d7d6533baf64fd" +dependencies = [ + "solana-address 2.1.0", + "solana-program-error 3.0.0", + "solana-program-memory 3.1.0", +] + +[[package]] +name = "solana-address" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a2ecac8e1b7f74c2baa9e774c42817e3e75b20787134b76cc4d45e8a604488f5" +dependencies = [ + "solana-address 2.1.0", +] + +[[package]] +name = "solana-address" +version = "2.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "998227476aed49e1c63dec0e89341b768a2cf3bd22913c3ed8baa985cda882c9" +dependencies = [ + "bytemuck", + "bytemuck_derive", + "curve25519-dalek 4.1.3", + "five8 1.0.0", + "five8_const 1.0.0", + "serde", + "serde_derive", + "solana-atomic-u64 3.0.0", + "solana-define-syscall 5.0.0", + "solana-program-error 3.0.0", + "solana-sanitize 3.0.1", + "solana-sha256-hasher 3.1.0", ] [[package]] @@ -3811,11 +3371,29 @@ dependencies = [ "bytemuck", "serde", "serde_derive", - "solana-clock", - "solana-instruction", - "solana-pubkey", - "solana-sdk-ids", - "solana-slot-hashes", + "solana-clock 2.2.1", + "solana-instruction 2.2.1", + "solana-pubkey 2.2.1", + "solana-sdk-ids 2.2.1", + "solana-slot-hashes 2.2.1", +] + +[[package]] +name = "solana-address-lookup-table-interface" +version = "3.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5e8df0b083c10ce32490410f3795016b1b5d9b4d094658c0a5e496753645b7cd" +dependencies = [ + "bincode", + "bytemuck", + "serde", + "serde_derive", + "solana-clock 3.0.0", + "solana-instruction 3.1.0", + "solana-instruction-error", + "solana-pubkey 4.0.0", + "solana-sdk-ids 3.1.0", + "solana-slot-hashes 3.0.0", ] [[package]] @@ -3829,17 +3407,17 @@ dependencies = [ "log", "num-derive", "num-traits", - "solana-address-lookup-table-interface", - "solana-bincode", - "solana-clock", + "solana-address-lookup-table-interface 2.2.2", + "solana-bincode 2.2.1", + "solana-clock 2.2.1", "solana-feature-set", - "solana-instruction", + "solana-instruction 2.2.1", "solana-log-collector", - "solana-packet", - "solana-program-runtime", - "solana-pubkey", - "solana-system-interface", - "solana-transaction-context", + "solana-packet 2.2.1", + "solana-program-runtime 2.2.4", + "solana-pubkey 2.2.1", + "solana-system-interface 1.0.0", + "solana-transaction-context 2.2.1", "thiserror 2.0.18", ] @@ -3852,6 +3430,15 @@ dependencies = [ "parking_lot", ] +[[package]] +name = "solana-atomic-u64" +version = "3.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a933ff1e50aff72d02173cfcd7511bd8540b027ee720b75f353f594f834216d0" +dependencies = [ + "parking_lot", +] + [[package]] name = "solana-big-mod-exp" version = "2.2.1" @@ -3860,7 +3447,18 @@ checksum = "75db7f2bbac3e62cfd139065d15bcda9e2428883ba61fc8d27ccb251081e7567" dependencies = [ "num-bigint 0.4.6", "num-traits", - "solana-define-syscall", + "solana-define-syscall 2.2.1", +] + +[[package]] +name = "solana-big-mod-exp" +version = "3.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "30c80fb6d791b3925d5ec4bf23a7c169ef5090c013059ec3ed7d0b2c04efa085" +dependencies = [ + "num-bigint 0.4.6", + "num-traits", + "solana-define-syscall 3.0.0", ] [[package]] @@ -3871,7 +3469,18 @@ checksum = "19a3787b8cf9c9fe3dd360800e8b70982b9e5a8af9e11c354b6665dd4a003adc" dependencies = [ "bincode", "serde", - "solana-instruction", + "solana-instruction 2.2.1", +] + +[[package]] +name = "solana-bincode" +version = "3.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "278a1a5bad62cd9da89ac8d4b7ec444e83caa8ae96aa656dfc27684b28d49a5d" +dependencies = [ + "bincode", + "serde_core", + "solana-instruction-error", ] [[package]] @@ -3881,9 +3490,20 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a1a0801e25a1b31a14494fc80882a036be0ffd290efc4c2d640bfcca120a4672" dependencies = [ "blake3", - "solana-define-syscall", - "solana-hash", - "solana-sanitize", + "solana-define-syscall 2.2.1", + "solana-hash 2.2.1", + "solana-sanitize 2.2.1", +] + +[[package]] +name = "solana-blake3-hasher" +version = "3.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7116e1d942a2432ca3f514625104757ab8a56233787e95144c93950029e31176" +dependencies = [ + "blake3", + "solana-define-syscall 4.0.1", + "solana-hash 4.1.0", ] [[package]] @@ -3892,12 +3512,27 @@ version = "2.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9abc69625158faaab02347370b91c0d8e0fe347bf9287239f0fbe8f5864d91da" dependencies = [ - "ark-bn254", - "ark-ec", - "ark-ff", - "ark-serialize", + "ark-bn254 0.4.0", + "ark-ec 0.4.2", + "ark-ff 0.4.2", + "ark-serialize 0.4.2", + "bytemuck", + "solana-define-syscall 2.2.1", + "thiserror 2.0.18", +] + +[[package]] +name = "solana-bn254" +version = "3.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "62ff13a8867fcc7b0f1114764e1bf6191b4551dcaf93729ddc676cd4ec6abc9f" +dependencies = [ + "ark-bn254 0.5.0", + "ark-ec 0.5.0", + "ark-ff 0.5.0", + "ark-serialize 0.5.0", "bytemuck", - "solana-define-syscall", + "solana-define-syscall 5.0.0", "thiserror 2.0.18", ] @@ -3911,6 +3546,15 @@ dependencies = [ "borsh 1.6.0", ] +[[package]] +name = "solana-borsh" +version = "3.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dc402b16657abbfa9991cd5cbfac5a11d809f7e7d28d3bb291baeb088b39060e" +dependencies = [ + "borsh 1.6.0", +] + [[package]] name = "solana-bpf-loader-program" version = "2.2.4" @@ -3921,45 +3565,74 @@ dependencies = [ "libsecp256k1", "qualifier_attr", "scopeguard", - "solana-account", - "solana-account-info", - "solana-big-mod-exp", - "solana-bincode", - "solana-blake3-hasher", - "solana-bn254", - "solana-clock", - "solana-compute-budget", - "solana-cpi", - "solana-curve25519", + "solana-account 2.2.1", + "solana-account-info 2.2.1", + "solana-big-mod-exp 2.2.1", + "solana-bincode 2.2.1", + "solana-blake3-hasher 2.2.1", + "solana-bn254 2.2.1", + "solana-clock 2.2.1", + "solana-compute-budget 2.2.4", + "solana-cpi 2.2.1", + "solana-curve25519 2.2.4", "solana-feature-set", - "solana-hash", - "solana-instruction", - "solana-keccak-hasher", - "solana-loader-v3-interface", - "solana-loader-v4-interface", + "solana-hash 2.2.1", + "solana-instruction 2.2.1", + "solana-keccak-hasher 2.2.1", + "solana-loader-v3-interface 3.0.0", + "solana-loader-v4-interface 2.2.1", "solana-log-collector", "solana-measure", - "solana-packet", - "solana-poseidon", + "solana-packet 2.2.1", + "solana-poseidon 2.2.4", "solana-precompiles", - "solana-program-entrypoint", - "solana-program-memory", - "solana-program-runtime", - "solana-pubkey", - "solana-sbpf", - "solana-sdk-ids", - "solana-secp256k1-recover", - "solana-sha256-hasher", - "solana-stable-layout", - "solana-system-interface", - "solana-sysvar", - "solana-sysvar-id", + "solana-program-entrypoint 2.2.1", + "solana-program-memory 2.2.1", + "solana-program-runtime 2.2.4", + "solana-pubkey 2.2.1", + "solana-sbpf 0.10.0", + "solana-sdk-ids 2.2.1", + "solana-secp256k1-recover 2.2.1", + "solana-sha256-hasher 2.2.1", + "solana-stable-layout 2.2.1", + "solana-system-interface 1.0.0", + "solana-sysvar 2.2.1", + "solana-sysvar-id 2.2.1", "solana-timings", - "solana-transaction-context", + "solana-transaction-context 2.2.1", "solana-type-overrides", "thiserror 2.0.18", ] +[[package]] +name = "solana-bpf-loader-program" +version = "3.1.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5cc7d30e90589489d4ef93ada64811c0b23297736ca953c2ecc94bf1bd7087d4" +dependencies = [ + "agave-syscalls", + "bincode", + "qualifier_attr", + "solana-account 3.4.0", + "solana-bincode 3.1.0", + "solana-clock 3.0.0", + "solana-instruction 3.1.0", + "solana-loader-v3-interface 6.1.0", + "solana-loader-v4-interface 3.1.0", + "solana-packet 3.0.0", + "solana-program-entrypoint 3.1.1", + "solana-program-runtime 3.1.8", + "solana-pubkey 3.0.0", + "solana-sbpf 0.13.1", + "solana-sdk-ids 3.1.0", + "solana-svm-feature-set", + "solana-svm-log-collector", + "solana-svm-measure", + "solana-svm-type-overrides", + "solana-system-interface 2.0.0", + "solana-transaction-context 3.1.8", +] + [[package]] name = "solana-builtins" version = "2.2.4" @@ -3967,19 +3640,39 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b9240641f944ece59e097c9981bdc33b2f519cbd91b9764ff5f62c307d986a3d" dependencies = [ "solana-address-lookup-table-program", - "solana-bpf-loader-program", - "solana-compute-budget-program", + "solana-bpf-loader-program 2.2.4", + "solana-compute-budget-program 2.2.4", "solana-config-program", "solana-feature-set", - "solana-loader-v4-program", - "solana-program-runtime", - "solana-pubkey", - "solana-sdk-ids", + "solana-loader-v4-program 2.2.4", + "solana-program-runtime 2.2.4", + "solana-pubkey 2.2.1", + "solana-sdk-ids 2.2.1", "solana-stake-program", - "solana-system-program", - "solana-vote-program", - "solana-zk-elgamal-proof-program", - "solana-zk-token-proof-program", + "solana-system-program 2.2.4", + "solana-vote-program 2.2.4", + "solana-zk-elgamal-proof-program 2.2.4", + "solana-zk-token-proof-program 2.2.4", +] + +[[package]] +name = "solana-builtins" +version = "3.1.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1eb800aef9a1dc85195c088e9c0e4786f0c7aa22348c53892f2773e234408be3" +dependencies = [ + "agave-feature-set", + "solana-bpf-loader-program 3.1.8", + "solana-compute-budget-program 3.1.8", + "solana-hash 3.1.0", + "solana-loader-v4-program 3.1.8", + "solana-program-runtime 3.1.8", + "solana-pubkey 3.0.0", + "solana-sdk-ids 3.1.0", + "solana-system-program 3.1.8", + "solana-vote-program 3.1.8", + "solana-zk-elgamal-proof-program 3.1.8", + "solana-zk-token-proof-program 3.1.8", ] [[package]] @@ -3993,62 +3686,34 @@ dependencies = [ "log", "qualifier_attr", "solana-address-lookup-table-program", - "solana-bpf-loader-program", - "solana-compute-budget-program", + "solana-bpf-loader-program 2.2.4", + "solana-compute-budget-program 2.2.4", "solana-config-program", "solana-feature-set", - "solana-loader-v4-program", - "solana-pubkey", - "solana-sdk-ids", + "solana-loader-v4-program 2.2.4", + "solana-pubkey 2.2.1", + "solana-sdk-ids 2.2.1", "solana-stake-program", - "solana-system-program", - "solana-vote-program", + "solana-system-program 2.2.4", + "solana-vote-program 2.2.4", ] [[package]] -name = "solana-client" -version = "2.2.4" +name = "solana-builtins-default-costs" +version = "3.1.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5e827416867d988cbba327b6e448ad0bfb85ba44f080c6a02a00aa498c2249c4" +checksum = "7abdf819d105e2afa3ecd651d06514764bb567395cd91c25b4a51ea8d0a6b426" dependencies = [ - "async-trait", - "bincode", - "dashmap", - "futures", - "futures-util", - "indexmap", - "indicatif", + "agave-feature-set", + "ahash", "log", - "quinn", - "rayon", - "solana-account", - "solana-client-traits", - "solana-commitment-config", - "solana-connection-cache", - "solana-epoch-info", - "solana-hash", - "solana-instruction", - "solana-keypair", - "solana-measure", - "solana-message", - "solana-pubkey", - "solana-pubsub-client", - "solana-quic-client", - "solana-quic-definitions", - "solana-rpc-client", - "solana-rpc-client-api", - "solana-rpc-client-nonce-utils", - "solana-signature", - "solana-signer", - "solana-streamer", - "solana-thin-client", - "solana-time-utils", - "solana-tpu-client", - "solana-transaction", - "solana-transaction-error", - "solana-udp-client", - "thiserror 2.0.18", - "tokio", + "solana-bpf-loader-program 3.1.8", + "solana-compute-budget-program 3.1.8", + "solana-loader-v4-program 3.1.8", + "solana-pubkey 3.0.0", + "solana-sdk-ids 3.1.0", + "solana-system-program 3.1.8", + "solana-vote-program 3.1.8", ] [[package]] @@ -4057,19 +3722,19 @@ version = "2.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "83f0071874e629f29e0eb3dab8a863e98502ac7aba55b7e0df1803fc5cac72a7" dependencies = [ - "solana-account", + "solana-account 2.2.1", "solana-commitment-config", "solana-epoch-info", - "solana-hash", - "solana-instruction", - "solana-keypair", - "solana-message", - "solana-pubkey", - "solana-signature", - "solana-signer", - "solana-system-interface", - "solana-transaction", - "solana-transaction-error", + "solana-hash 2.2.1", + "solana-instruction 2.2.1", + "solana-keypair 2.2.1", + "solana-message 2.2.1", + "solana-pubkey 2.2.1", + "solana-signature 2.2.1", + "solana-signer 2.2.1", + "solana-system-interface 1.0.0", + "solana-transaction 2.2.1", + "solana-transaction-error 2.2.1", ] [[package]] @@ -4080,9 +3745,22 @@ checksum = "67c2177a1b9fe8326004f1151a5acd124420b737811080b1035df31349e4d892" dependencies = [ "serde", "serde_derive", - "solana-sdk-ids", - "solana-sdk-macro", - "solana-sysvar-id", + "solana-sdk-ids 2.2.1", + "solana-sdk-macro 2.2.1", + "solana-sysvar-id 2.2.1", +] + +[[package]] +name = "solana-clock" +version = "3.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fb62e9381182459a4520b5fe7fb22d423cae736239a6427fc398a88743d0ed59" +dependencies = [ + "serde", + "serde_derive", + "solana-sdk-ids 3.1.0", + "solana-sdk-macro 3.0.0", + "solana-sysvar-id 3.1.0", ] [[package]] @@ -4093,7 +3771,7 @@ checksum = "7ace9fea2daa28354d107ea879cff107181d85cd4e0f78a2bedb10e1a428c97e" dependencies = [ "serde", "serde_derive", - "solana-hash", + "solana-hash 2.2.1", ] [[package]] @@ -4112,8 +3790,18 @@ version = "2.2.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "46e593ce26764fa3366b6d125b9f2455f6cd8d557f86b4f3c7b7c517db6d8f5f" dependencies = [ - "solana-fee-structure", - "solana-program-entrypoint", + "solana-fee-structure 2.2.1", + "solana-program-entrypoint 2.2.1", +] + +[[package]] +name = "solana-compute-budget" +version = "3.1.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e2fe14d00d8e4092523c58b0ebfce03d8dd6a5cb778df7d7262bb2c2acff50e3" +dependencies = [ + "solana-fee-structure 3.0.0", + "solana-program-runtime 3.1.8", ] [[package]] @@ -4123,17 +3811,38 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "240e28cf764d1468f2388fb0d10b70278a64d47277ff552379116ba45d609cd1" dependencies = [ "log", - "solana-borsh", - "solana-builtins-default-costs", - "solana-compute-budget", - "solana-compute-budget-interface", + "solana-borsh 2.2.1", + "solana-builtins-default-costs 2.2.4", + "solana-compute-budget 2.2.4", + "solana-compute-budget-interface 2.2.1", "solana-feature-set", - "solana-instruction", - "solana-packet", - "solana-pubkey", - "solana-sdk-ids", - "solana-svm-transaction", - "solana-transaction-error", + "solana-instruction 2.2.1", + "solana-packet 2.2.1", + "solana-pubkey 2.2.1", + "solana-sdk-ids 2.2.1", + "solana-svm-transaction 2.2.4", + "solana-transaction-error 2.2.1", + "thiserror 2.0.18", +] + +[[package]] +name = "solana-compute-budget-instruction" +version = "3.1.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "804f1a6de0397f6fe4a2a4d68ccc5925028d41e83fc424514e93095f9709c363" +dependencies = [ + "agave-feature-set", + "log", + "solana-borsh 3.0.0", + "solana-builtins-default-costs 3.1.8", + "solana-compute-budget 3.1.8", + "solana-compute-budget-interface 3.0.0", + "solana-instruction 3.1.0", + "solana-packet 3.0.0", + "solana-pubkey 3.0.0", + "solana-sdk-ids 3.1.0", + "solana-svm-transaction 3.1.8", + "solana-transaction-error 3.0.0", "thiserror 2.0.18", ] @@ -4146,8 +3855,19 @@ dependencies = [ "borsh 1.6.0", "serde", "serde_derive", - "solana-instruction", - "solana-sdk-ids", + "solana-instruction 2.2.1", + "solana-sdk-ids 2.2.1", +] + +[[package]] +name = "solana-compute-budget-interface" +version = "3.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8292c436b269ad23cecc8b24f7da3ab07ca111661e25e00ce0e1d22771951ab9" +dependencies = [ + "borsh 1.6.0", + "solana-instruction 3.1.0", + "solana-sdk-ids 3.1.0", ] [[package]] @@ -4157,7 +3877,16 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bfc6b8ea70ed5123412655ed15e7e0e29f06a7d5b82eb2572bee608d7755afb7" dependencies = [ "qualifier_attr", - "solana-program-runtime", + "solana-program-runtime 2.2.4", +] + +[[package]] +name = "solana-compute-budget-program" +version = "3.1.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7b83c297d29952206a455ec06fbe1e47f32711a13584ae1a6248f6ce0399a0f8" +dependencies = [ + "solana-program-runtime 3.1.8", ] [[package]] @@ -4170,56 +3899,46 @@ dependencies = [ "chrono", "serde", "serde_derive", - "solana-account", - "solana-bincode", - "solana-instruction", + "solana-account 2.2.1", + "solana-bincode 2.2.1", + "solana-instruction 2.2.1", "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", + "solana-packet 2.2.1", + "solana-program-runtime 2.2.4", + "solana-pubkey 2.2.1", + "solana-sdk-ids 2.2.1", + "solana-short-vec 2.2.1", + "solana-stake-interface 1.2.1", + "solana-system-interface 1.0.0", + "solana-transaction-context 2.2.1", ] [[package]] -name = "solana-connection-cache" -version = "2.2.4" +name = "solana-cpi" +version = "2.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "55ad0b507b4044e2690915c9aa69eacfd51b1fa55e4deeca662ee5cff7d7d1f4" +checksum = "8dc71126edddc2ba014622fc32d0f5e2e78ec6c5a1e0eb511b85618c09e9ea11" dependencies = [ - "async-trait", - "bincode", - "crossbeam-channel", - "futures-util", - "indexmap", - "log", - "rand 0.8.5", - "rayon", - "solana-keypair", - "solana-measure", - "solana-metrics", - "solana-net-utils", - "solana-time-utils", - "solana-transaction-error", - "thiserror 2.0.18", - "tokio", + "solana-account-info 2.2.1", + "solana-define-syscall 2.2.1", + "solana-instruction 2.2.1", + "solana-program-error 2.2.2", + "solana-pubkey 2.2.1", + "solana-stable-layout 2.2.1", ] [[package]] name = "solana-cpi" -version = "2.2.1" +version = "3.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8dc71126edddc2ba014622fc32d0f5e2e78ec6c5a1e0eb511b85618c09e9ea11" +checksum = "4dea26709d867aada85d0d3617db0944215c8bb28d3745b912de7db13a23280c" dependencies = [ - "solana-account-info", - "solana-define-syscall", - "solana-instruction", - "solana-program-error", - "solana-pubkey", - "solana-stable-layout", + "solana-account-info 3.1.0", + "solana-define-syscall 4.0.1", + "solana-instruction 3.1.0", + "solana-program-error 3.0.0", + "solana-pubkey 4.0.0", + "solana-stable-layout 3.0.0", ] [[package]] @@ -4231,7 +3950,21 @@ dependencies = [ "bytemuck", "bytemuck_derive", "curve25519-dalek 4.1.3", - "solana-define-syscall", + "solana-define-syscall 2.2.1", + "subtle", + "thiserror 2.0.18", +] + +[[package]] +name = "solana-curve25519" +version = "3.1.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "737ede9143c36b8628cc11d920cdb762cd1ccbd7ca904c3bd63b39c58669fe38" +dependencies = [ + "bytemuck", + "bytemuck_derive", + "curve25519-dalek 4.1.3", + "solana-define-syscall 3.0.0", "subtle", "thiserror 2.0.18", ] @@ -4251,6 +3984,24 @@ version = "2.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "cf784bb2cb3e02cac9801813c30187344228d2ae952534902108f6150573a33d" +[[package]] +name = "solana-define-syscall" +version = "3.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f9697086a4e102d28a156b8d6b521730335d6951bd39a5e766512bbe09007cee" + +[[package]] +name = "solana-define-syscall" +version = "4.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "57e5b1c0bc1d4a4d10c88a4100499d954c09d3fecfae4912c1a074dff68b1738" + +[[package]] +name = "solana-define-syscall" +version = "5.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "03aacdd7a61e2109887a7a7f046caebafce97ddf1150f33722eeac04f9039c73" + [[package]] name = "solana-derivation-path" version = "2.2.1" @@ -4262,6 +4013,17 @@ dependencies = [ "uriparse", ] +[[package]] +name = "solana-derivation-path" +version = "3.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ff71743072690fdbdfcdc37700ae1cb77485aaad49019473a81aee099b1e0b8c" +dependencies = [ + "derivation-path", + "qstring", + "uriparse", +] + [[package]] name = "solana-ed25519-program" version = "2.2.3" @@ -4270,11 +4032,11 @@ checksum = "a1feafa1691ea3ae588f99056f4bdd1293212c7ece28243d7da257c443e84753" dependencies = [ "bytemuck", "bytemuck_derive", - "ed25519-dalek", + "ed25519-dalek 1.0.1", "solana-feature-set", - "solana-instruction", - "solana-precompile-error", - "solana-sdk-ids", + "solana-instruction 2.2.1", + "solana-precompile-error 2.2.2", + "solana-sdk-ids 2.2.1", ] [[package]] @@ -4295,10 +4057,24 @@ checksum = "86b575d3dd323b9ea10bb6fe89bf6bf93e249b215ba8ed7f68f1a3633f384db7" dependencies = [ "serde", "serde_derive", - "solana-hash", - "solana-sdk-ids", - "solana-sdk-macro", - "solana-sysvar-id", + "solana-hash 2.2.1", + "solana-sdk-ids 2.2.1", + "solana-sdk-macro 2.2.1", + "solana-sysvar-id 2.2.1", +] + +[[package]] +name = "solana-epoch-rewards" +version = "3.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b319a4ed70390af911090c020571f0ff1f4ec432522d05ab89f5c08080381995" +dependencies = [ + "serde", + "serde_derive", + "solana-hash 3.1.0", + "solana-sdk-ids 3.1.0", + "solana-sdk-macro 3.0.0", + "solana-sysvar-id 3.1.0", ] [[package]] @@ -4307,9 +4083,9 @@ version = "2.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "96c5fd2662ae7574810904585fd443545ed2b568dbd304b25a31e79ccc76e81b" dependencies = [ - "siphasher 0.3.11", - "solana-hash", - "solana-pubkey", + "siphasher", + "solana-hash 2.2.1", + "solana-pubkey 2.2.1", ] [[package]] @@ -4320,9 +4096,22 @@ checksum = "3fce071fbddecc55d727b1d7ed16a629afe4f6e4c217bc8d00af3b785f6f67ed" dependencies = [ "serde", "serde_derive", - "solana-sdk-ids", - "solana-sdk-macro", - "solana-sysvar-id", + "solana-sdk-ids 2.2.1", + "solana-sdk-macro 2.2.1", + "solana-sysvar-id 2.2.1", +] + +[[package]] +name = "solana-epoch-schedule" +version = "3.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6e5481e72cc4d52c169db73e4c0cd16de8bc943078aac587ec4817a75cc6388f" +dependencies = [ + "serde", + "serde_derive", + "solana-sdk-ids 3.1.0", + "solana-sdk-macro 3.0.0", + "solana-sysvar-id 3.1.0", ] [[package]] @@ -4333,16 +4122,16 @@ checksum = "84461d56cbb8bb8d539347151e0525b53910102e4bced875d49d5139708e39d3" dependencies = [ "serde", "serde_derive", - "solana-address-lookup-table-interface", - "solana-clock", - "solana-hash", - "solana-instruction", - "solana-keccak-hasher", - "solana-message", - "solana-nonce", - "solana-pubkey", - "solana-sdk-ids", - "solana-system-interface", + "solana-address-lookup-table-interface 2.2.2", + "solana-clock 2.2.1", + "solana-hash 2.2.1", + "solana-instruction 2.2.1", + "solana-keccak-hasher 2.2.1", + "solana-message 2.2.1", + "solana-nonce 2.2.1", + "solana-pubkey 2.2.1", + "solana-sdk-ids 2.2.1", + "solana-system-interface 1.0.0", "thiserror 2.0.18", ] @@ -4355,14 +4144,14 @@ dependencies = [ "bincode", "serde", "serde_derive", - "solana-account", - "solana-account-info", - "solana-instruction", - "solana-program-error", - "solana-pubkey", - "solana-rent", - "solana-sdk-ids", - "solana-system-interface", + "solana-account 2.2.1", + "solana-account-info 2.2.1", + "solana-instruction 2.2.1", + "solana-program-error 2.2.2", + "solana-pubkey 2.2.1", + "solana-rent 2.2.1", + "solana-sdk-ids 2.2.1", + "solana-system-interface 1.0.0", ] [[package]] @@ -4373,10 +4162,10 @@ checksum = "89e1d3b52b4a014efeaaab67f14e40af3972a4be61c523d612860db8e3145529" dependencies = [ "ahash", "lazy_static", - "solana-epoch-schedule", - "solana-hash", - "solana-pubkey", - "solana-sha256-hasher", + "solana-epoch-schedule 2.2.1", + "solana-hash 2.2.1", + "solana-pubkey 2.2.1", + "solana-sha256-hasher 2.2.1", ] [[package]] @@ -4386,8 +4175,19 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8c14eaaa9d099e4510c9105522d97778cd66c3d401f0d68eebcf43179a1bf094" dependencies = [ "solana-feature-set", - "solana-fee-structure", - "solana-svm-transaction", + "solana-fee-structure 2.2.1", + "solana-svm-transaction 2.2.4", +] + +[[package]] +name = "solana-fee" +version = "3.1.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f1e6bdbeeaab926dee7830046ce8c18e8fc3ccb324f6eb4f100c240dfd61fe45" +dependencies = [ + "agave-feature-set", + "solana-fee-structure 3.0.0", + "solana-svm-transaction 3.1.8", ] [[package]] @@ -4401,6 +4201,17 @@ dependencies = [ "serde_derive", ] +[[package]] +name = "solana-fee-calculator" +version = "3.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2a73cc03ca4bed871ca174558108835f8323e85917bb38b9c81c7af2ab853efe" +dependencies = [ + "log", + "serde", + "serde_derive", +] + [[package]] name = "solana-fee-structure" version = "2.2.1" @@ -4409,10 +4220,16 @@ checksum = "f45f94a88efdb512805563181dfa1c85c60a21b6e6d602bf24a2ea88f9399d6e" dependencies = [ "serde", "serde_derive", - "solana-message", - "solana-native-token", + "solana-message 2.2.1", + "solana-native-token 2.2.1", ] +[[package]] +name = "solana-fee-structure" +version = "3.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5e2abdb1223eea8ec64136f39cb1ffcf257e00f915c957c35c0dd9e3f4e700b0" + [[package]] name = "solana-genesis-config" version = "2.2.1" @@ -4424,23 +4241,23 @@ dependencies = [ "memmap2", "serde", "serde_derive", - "solana-account", - "solana-clock", + "solana-account 2.2.1", + "solana-clock 2.2.1", "solana-cluster-type", - "solana-epoch-schedule", - "solana-fee-calculator", - "solana-hash", + "solana-epoch-schedule 2.2.1", + "solana-fee-calculator 2.2.1", + "solana-hash 2.2.1", "solana-inflation", - "solana-keypair", + "solana-keypair 2.2.1", "solana-logger", - "solana-native-token", + "solana-native-token 2.2.1", "solana-poh-config", - "solana-pubkey", - "solana-rent", - "solana-sdk-ids", - "solana-sha256-hasher", + "solana-pubkey 2.2.1", + "solana-rent 2.2.1", + "solana-sdk-ids 2.2.1", + "solana-sha256-hasher 2.2.1", "solana-shred-version", - "solana-signer", + "solana-signer 2.2.1", "solana-time-utils", ] @@ -4467,29 +4284,45 @@ dependencies = [ "js-sys", "serde", "serde_derive", - "solana-atomic-u64", - "solana-sanitize", + "solana-atomic-u64 2.2.1", + "solana-sanitize 2.2.1", "wasm-bindgen", ] [[package]] -name = "solana-inflation" -version = "2.2.1" +name = "solana-hash" +version = "3.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "23eef6a09eb8e568ce6839573e4966850e85e9ce71e6ae1a6c930c1c43947de3" +checksum = "337c246447142f660f778cf6cb582beba8e28deb05b3b24bfb9ffd7c562e5f41" +dependencies = [ + "solana-hash 4.1.0", +] + +[[package]] +name = "solana-hash" +version = "4.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5b6100d68f90726ddb4d2ac7d00e8b6cf9ce8e4ccdfbb9112b1d766045753241" dependencies = [ + "borsh 1.6.0", + "bytemuck", + "bytemuck_derive", + "five8 1.0.0", "serde", "serde_derive", + "solana-atomic-u64 3.0.0", + "solana-sanitize 3.0.1", + "wincode", ] [[package]] -name = "solana-inline-spl" -version = "2.2.4" +name = "solana-inflation" +version = "2.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ed78e6709851bb3fa8a0acb1ee40fbffa888049d042ca132d6ccb8e0b313ac72" +checksum = "23eef6a09eb8e568ce6839573e4966850e85e9ce71e6ae1a6c930c1c43947de3" dependencies = [ - "bytemuck", - "solana-pubkey", + "serde", + "serde_derive", ] [[package]] @@ -4505,26 +4338,71 @@ dependencies = [ "num-traits", "serde", "serde_derive", - "solana-define-syscall", - "solana-pubkey", + "solana-define-syscall 2.2.1", + "solana-pubkey 2.2.1", "wasm-bindgen", ] +[[package]] +name = "solana-instruction" +version = "3.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ee1b699a2c1518028a9982e255e0eca10c44d90006542d9d7f9f40dbce3f7c78" +dependencies = [ + "bincode", + "borsh 1.6.0", + "serde", + "serde_derive", + "solana-define-syscall 4.0.1", + "solana-instruction-error", + "solana-pubkey 4.0.0", +] + +[[package]] +name = "solana-instruction-error" +version = "2.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b04259e03c05faf38a8c24217b5cfe4c90572ae6184ab49cddb1584fdd756d3f" +dependencies = [ + "num-traits", + "serde", + "serde_derive", + "solana-program-error 3.0.0", +] + [[package]] name = "solana-instructions-sysvar" -version = "2.2.2" +version = "2.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "427f2d0d6dc0bb49f16cef5e7f975180d2e80aab9bdd3b2af68e2d029ec63f43" +dependencies = [ + "bitflags 2.10.0", + "solana-account-info 2.2.1", + "solana-instruction 2.2.1", + "solana-program-error 2.2.2", + "solana-pubkey 2.2.1", + "solana-sanitize 2.2.1", + "solana-sdk-ids 2.2.1", + "solana-serialize-utils 2.2.1", + "solana-sysvar-id 2.2.1", +] + +[[package]] +name = "solana-instructions-sysvar" +version = "3.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e0e85a6fad5c2d0c4f5b91d34b8ca47118fc593af706e523cdbedf846a954f57" +checksum = "7ddf67876c541aa1e21ee1acae35c95c6fbc61119814bfef70579317a5e26955" dependencies = [ "bitflags 2.10.0", - "solana-account-info", - "solana-instruction", - "solana-program-error", - "solana-pubkey", - "solana-sanitize", - "solana-sdk-ids", - "solana-serialize-utils", - "solana-sysvar-id", + "solana-account-info 3.1.0", + "solana-instruction 3.1.0", + "solana-instruction-error", + "solana-program-error 3.0.0", + "solana-pubkey 3.0.0", + "solana-sanitize 3.0.1", + "solana-sdk-ids 3.1.0", + "solana-serialize-utils 3.1.0", + "solana-sysvar-id 3.1.0", ] [[package]] @@ -4534,9 +4412,20 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c7aeb957fbd42a451b99235df4942d96db7ef678e8d5061ef34c9b34cae12f79" dependencies = [ "sha3", - "solana-define-syscall", - "solana-hash", - "solana-sanitize", + "solana-define-syscall 2.2.1", + "solana-hash 2.2.1", + "solana-sanitize 2.2.1", +] + +[[package]] +name = "solana-keccak-hasher" +version = "3.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ed1c0d16d6fdeba12291a1f068cdf0d479d9bff1141bf44afd7aa9d485f65ef8" +dependencies = [ + "sha3", + "solana-define-syscall 4.0.1", + "solana-hash 4.1.0", ] [[package]] @@ -4546,18 +4435,33 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3dbb7042c2e0c561afa07242b2099d55c57bd1b1da3b6476932197d84e15e3e4" dependencies = [ "bs58", - "ed25519-dalek", + "ed25519-dalek 1.0.1", "ed25519-dalek-bip32", "rand 0.7.3", - "solana-derivation-path", - "solana-pubkey", - "solana-seed-derivable", - "solana-seed-phrase", - "solana-signature", - "solana-signer", + "solana-derivation-path 2.2.1", + "solana-pubkey 2.2.1", + "solana-seed-derivable 2.2.1", + "solana-seed-phrase 2.2.1", + "solana-signature 2.2.1", + "solana-signer 2.2.1", "wasm-bindgen", ] +[[package]] +name = "solana-keypair" +version = "3.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5ac8be597c9e231b0cab2928ce3bc3e4ee77d9c0ad92977b9d901f3879f25a7a" +dependencies = [ + "ed25519-dalek 2.2.0", + "five8 1.0.0", + "rand 0.8.5", + "solana-address 2.1.0", + "solana-seed-phrase 3.0.0", + "solana-signature 3.1.0", + "solana-signer 3.0.0", +] + [[package]] name = "solana-last-restart-slot" version = "2.2.1" @@ -4566,9 +4470,22 @@ checksum = "4a6360ac2fdc72e7463565cd256eedcf10d7ef0c28a1249d261ec168c1b55cdd" dependencies = [ "serde", "serde_derive", - "solana-sdk-ids", - "solana-sdk-macro", - "solana-sysvar-id", + "solana-sdk-ids 2.2.1", + "solana-sdk-macro 2.2.1", + "solana-sysvar-id 2.2.1", +] + +[[package]] +name = "solana-last-restart-slot" +version = "3.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dcda154ec827f5fc1e4da0af3417951b7e9b8157540f81f936c4a8b1156134d0" +dependencies = [ + "serde", + "serde_derive", + "solana-sdk-ids 3.1.0", + "solana-sdk-macro 3.0.0", + "solana-sysvar-id 3.1.0", ] [[package]] @@ -4580,9 +4497,9 @@ dependencies = [ "serde", "serde_bytes", "serde_derive", - "solana-instruction", - "solana-pubkey", - "solana-sdk-ids", + "solana-instruction 2.2.1", + "solana-pubkey 2.2.1", + "solana-sdk-ids 2.2.1", ] [[package]] @@ -4594,10 +4511,24 @@ dependencies = [ "serde", "serde_bytes", "serde_derive", - "solana-instruction", - "solana-pubkey", - "solana-sdk-ids", - "solana-system-interface", + "solana-instruction 2.2.1", + "solana-pubkey 2.2.1", + "solana-sdk-ids 2.2.1", + "solana-system-interface 1.0.0", +] + +[[package]] +name = "solana-loader-v3-interface" +version = "6.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dee44c9b1328c5c712c68966fb8de07b47f3e7bac006e74ddd1bb053d3e46e5d" +dependencies = [ + "serde", + "serde_bytes", + "serde_derive", + "solana-instruction 3.1.0", + "solana-pubkey 3.0.0", + "solana-sdk-ids 3.1.0", ] [[package]] @@ -4609,10 +4540,25 @@ dependencies = [ "serde", "serde_bytes", "serde_derive", - "solana-instruction", - "solana-pubkey", - "solana-sdk-ids", - "solana-system-interface", + "solana-instruction 2.2.1", + "solana-pubkey 2.2.1", + "solana-sdk-ids 2.2.1", + "solana-system-interface 1.0.0", +] + +[[package]] +name = "solana-loader-v4-interface" +version = "3.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e4c948b33ff81fa89699911b207059e493defdba9647eaf18f23abdf3674e0fb" +dependencies = [ + "serde", + "serde_bytes", + "serde_derive", + "solana-instruction 3.1.0", + "solana-pubkey 3.0.0", + "solana-sdk-ids 3.1.0", + "solana-system-interface 2.0.0", ] [[package]] @@ -4623,24 +4569,48 @@ checksum = "7b0298bf161e18b146230b15e8fa57bd170a05342ab9c1fd996b0241c0f016c2" 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", + "solana-account 2.2.1", + "solana-bincode 2.2.1", + "solana-bpf-loader-program 2.2.4", + "solana-compute-budget 2.2.4", + "solana-instruction 2.2.1", + "solana-loader-v3-interface 3.0.0", + "solana-loader-v4-interface 2.2.1", "solana-log-collector", "solana-measure", - "solana-packet", - "solana-program-runtime", - "solana-pubkey", - "solana-sbpf", - "solana-sdk-ids", - "solana-transaction-context", + "solana-packet 2.2.1", + "solana-program-runtime 2.2.4", + "solana-pubkey 2.2.1", + "solana-sbpf 0.10.0", + "solana-sdk-ids 2.2.1", + "solana-transaction-context 2.2.1", "solana-type-overrides", ] +[[package]] +name = "solana-loader-v4-program" +version = "3.1.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ddc6ca85532321c1e4ae6b0024f6b23267e742635aec19cac744a54a37ee5764" +dependencies = [ + "log", + "solana-account 3.4.0", + "solana-bincode 3.1.0", + "solana-bpf-loader-program 3.1.8", + "solana-instruction 3.1.0", + "solana-loader-v3-interface 6.1.0", + "solana-loader-v4-interface 3.1.0", + "solana-packet 3.0.0", + "solana-program-runtime 3.1.8", + "solana-pubkey 3.0.0", + "solana-sbpf 0.13.1", + "solana-sdk-ids 3.1.0", + "solana-svm-log-collector", + "solana-svm-measure", + "solana-svm-type-overrides", + "solana-transaction-context 3.1.8", +] + [[package]] name = "solana-log-collector" version = "2.2.4" @@ -4680,18 +4650,38 @@ dependencies = [ "lazy_static", "serde", "serde_derive", - "solana-bincode", - "solana-hash", - "solana-instruction", - "solana-pubkey", - "solana-sanitize", - "solana-sdk-ids", - "solana-short-vec", - "solana-system-interface", - "solana-transaction-error", + "solana-bincode 2.2.1", + "solana-hash 2.2.1", + "solana-instruction 2.2.1", + "solana-pubkey 2.2.1", + "solana-sanitize 2.2.1", + "solana-sdk-ids 2.2.1", + "solana-short-vec 2.2.1", + "solana-system-interface 1.0.0", + "solana-transaction-error 2.2.1", "wasm-bindgen", ] +[[package]] +name = "solana-message" +version = "3.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "85666605c9fd727f865ed381665db0a8fc29f984a030ecc1e40f43bfb2541623" +dependencies = [ + "bincode", + "blake3", + "lazy_static", + "serde", + "serde_derive", + "solana-address 1.1.0", + "solana-hash 3.1.0", + "solana-instruction 3.1.0", + "solana-sanitize 3.0.1", + "solana-sdk-ids 3.1.0", + "solana-short-vec 3.2.0", + "solana-transaction-error 3.0.0", +] + [[package]] name = "solana-metrics" version = "2.2.4" @@ -4703,9 +4693,9 @@ dependencies = [ "lazy_static", "log", "reqwest", - "solana-clock", + "solana-clock 2.2.1", "solana-cluster-type", - "solana-sha256-hasher", + "solana-sha256-hasher 2.2.1", "solana-time-utils", "thiserror 2.0.18", ] @@ -4716,7 +4706,16 @@ version = "2.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f36a1a14399afaabc2781a1db09cb14ee4cc4ee5c7a5a3cfcc601811379a8092" dependencies = [ - "solana-define-syscall", + "solana-define-syscall 2.2.1", +] + +[[package]] +name = "solana-msg" +version = "3.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "264275c556ea7e22b9d3f87d56305546a38d4eee8ec884f3b126236cb7dcbbb4" +dependencies = [ + "solana-define-syscall 3.0.0", ] [[package]] @@ -4726,39 +4725,37 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "33e9de00960197412e4be3902a6cd35e60817c511137aca6c34c66cd5d4017ec" [[package]] -name = "solana-net-utils" -version = "2.2.4" +name = "solana-native-token" +version = "3.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ae8dd4c280dca9d046139eb5b7a5ac9ad10403fbd64964c7d7571214950d758f" + +[[package]] +name = "solana-nonce" +version = "2.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ef9db57e121ca1577fb5578d916bed549632be0e54a2098e8325980ac724d283" +checksum = "703e22eb185537e06204a5bd9d509b948f0066f2d1d814a6f475dafb3ddf1325" dependencies = [ - "anyhow", - "bincode", - "bytes", - "crossbeam-channel", - "itertools 0.12.1", - "log", - "nix", - "rand 0.8.5", "serde", "serde_derive", - "socket2 0.5.10", - "solana-serde", - "tokio", - "url", + "solana-fee-calculator 2.2.1", + "solana-hash 2.2.1", + "solana-pubkey 2.2.1", + "solana-sha256-hasher 2.2.1", ] [[package]] name = "solana-nonce" -version = "2.2.1" +version = "3.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "703e22eb185537e06204a5bd9d509b948f0066f2d1d814a6f475dafb3ddf1325" +checksum = "abbdc6c8caf1c08db9f36a50967539d0f72b9f1d4aea04fec5430f532e5afadc" dependencies = [ "serde", "serde_derive", - "solana-fee-calculator", - "solana-hash", - "solana-pubkey", - "solana-sha256-hasher", + "solana-fee-calculator 3.0.0", + "solana-hash 3.1.0", + "solana-pubkey 3.0.0", + "solana-sha256-hasher 3.1.0", ] [[package]] @@ -4767,10 +4764,22 @@ version = "2.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "cde971a20b8dbf60144d6a84439dda86b5466e00e2843091fe731083cda614da" dependencies = [ - "solana-account", - "solana-hash", - "solana-nonce", - "solana-sdk-ids", + "solana-account 2.2.1", + "solana-hash 2.2.1", + "solana-nonce 2.2.1", + "solana-sdk-ids 2.2.1", +] + +[[package]] +name = "solana-nonce-account" +version = "3.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "805fd25b29e5a1a0e6c3dd6320c9da80f275fbe4ff6e392617c303a2085c435e" +dependencies = [ + "solana-account 3.4.0", + "solana-hash 3.1.0", + "solana-nonce 3.0.0", + "solana-sdk-ids 3.1.0", ] [[package]] @@ -4780,13 +4789,13 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b526398ade5dea37f1f147ce55dae49aa017a5d7326606359b0445ca8d946581" dependencies = [ "num_enum", - "solana-hash", - "solana-packet", - "solana-pubkey", - "solana-sanitize", - "solana-sha256-hasher", - "solana-signature", - "solana-signer", + "solana-hash 2.2.1", + "solana-packet 2.2.1", + "solana-pubkey 2.2.1", + "solana-sanitize 2.2.1", + "solana-sha256-hasher 2.2.1", + "solana-signature 2.2.1", + "solana-signer 2.2.1", ] [[package]] @@ -4804,35 +4813,12 @@ dependencies = [ ] [[package]] -name = "solana-perf" -version = "2.2.4" +name = "solana-packet" +version = "3.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7b87939c18937f8bfad6028779a02fa123b27e986fb2c55fbbf683952a0e4932" +checksum = "6edf2f25743c95229ac0fdc32f8f5893ef738dbf332c669e9861d33ddb0f469d" dependencies = [ - "ahash", - "bincode", - "bv", - "caps", - "curve25519-dalek 4.1.3", - "dlopen2", - "fnv", - "lazy_static", - "libc", - "log", - "nix", - "rand 0.8.5", - "rayon", - "serde", - "solana-hash", - "solana-message", - "solana-metrics", - "solana-packet", - "solana-pubkey", - "solana-rayon-threadlimit", - "solana-sdk-ids", - "solana-short-vec", - "solana-signature", - "solana-time-utils", + "bitflags 2.10.0", ] [[package]] @@ -4851,9 +4837,23 @@ version = "2.2.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5d2908b48b3828bc04b752d1ff36122f5a06de043258da88df5f8ce64791d208" dependencies = [ - "ark-bn254", - "light-poseidon", - "solana-define-syscall", + "ark-bn254 0.4.0", + "light-poseidon 0.2.0", + "solana-define-syscall 2.2.1", + "thiserror 2.0.18", +] + +[[package]] +name = "solana-poseidon" +version = "3.1.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f9b2cf3486543d8d5abf916b99ab383b5c8fc83ea091eafe3761e4af667e49e2" +dependencies = [ + "ark-bn254 0.4.0", + "ark-bn254 0.5.0", + "light-poseidon 0.2.0", + "light-poseidon 0.4.0", + "solana-define-syscall 3.0.0", "thiserror 2.0.18", ] @@ -4867,6 +4867,15 @@ dependencies = [ "solana-decode-error", ] +[[package]] +name = "solana-precompile-error" +version = "3.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cafcd950de74c6c39d55dc8ca108bbb007799842ab370ef26cf45a34453c31e1" +dependencies = [ + "num-traits", +] + [[package]] name = "solana-precompiles" version = "2.2.1" @@ -4876,10 +4885,10 @@ dependencies = [ "lazy_static", "solana-ed25519-program", "solana-feature-set", - "solana-message", - "solana-precompile-error", - "solana-pubkey", - "solana-sdk-ids", + "solana-message 2.2.1", + "solana-precompile-error 2.2.2", + "solana-pubkey 2.2.1", + "solana-sdk-ids 2.2.1", "solana-secp256k1-program", "solana-secp256r1-program", ] @@ -4890,9 +4899,9 @@ version = "2.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "81a57a24e6a4125fc69510b6774cd93402b943191b6cddad05de7281491c90fe" dependencies = [ - "solana-pubkey", - "solana-signature", - "solana-signer", + "solana-pubkey 2.2.1", + "solana-signature 2.2.1", + "solana-signer 2.2.1", ] [[package]] @@ -4920,57 +4929,57 @@ dependencies = [ "serde", "serde_bytes", "serde_derive", - "solana-account-info", - "solana-address-lookup-table-interface", - "solana-atomic-u64", - "solana-big-mod-exp", - "solana-bincode", - "solana-blake3-hasher", - "solana-borsh", - "solana-clock", - "solana-cpi", + "solana-account-info 2.2.1", + "solana-address-lookup-table-interface 2.2.2", + "solana-atomic-u64 2.2.1", + "solana-big-mod-exp 2.2.1", + "solana-bincode 2.2.1", + "solana-blake3-hasher 2.2.1", + "solana-borsh 2.2.1", + "solana-clock 2.2.1", + "solana-cpi 2.2.1", "solana-decode-error", - "solana-define-syscall", - "solana-epoch-rewards", - "solana-epoch-schedule", + "solana-define-syscall 2.2.1", + "solana-epoch-rewards 2.2.1", + "solana-epoch-schedule 2.2.1", "solana-example-mocks", "solana-feature-gate-interface", - "solana-fee-calculator", - "solana-hash", - "solana-instruction", - "solana-instructions-sysvar", - "solana-keccak-hasher", - "solana-last-restart-slot", + "solana-fee-calculator 2.2.1", + "solana-hash 2.2.1", + "solana-instruction 2.2.1", + "solana-instructions-sysvar 2.2.1", + "solana-keccak-hasher 2.2.1", + "solana-last-restart-slot 2.2.1", "solana-loader-v2-interface", - "solana-loader-v3-interface", - "solana-loader-v4-interface", - "solana-message", - "solana-msg", - "solana-native-token", - "solana-nonce", - "solana-program-entrypoint", - "solana-program-error", - "solana-program-memory", + "solana-loader-v3-interface 3.0.0", + "solana-loader-v4-interface 2.2.1", + "solana-message 2.2.1", + "solana-msg 2.2.1", + "solana-native-token 2.2.1", + "solana-nonce 2.2.1", + "solana-program-entrypoint 2.2.1", + "solana-program-error 2.2.2", + "solana-program-memory 2.2.1", "solana-program-option", "solana-program-pack", - "solana-pubkey", - "solana-rent", - "solana-sanitize", - "solana-sdk-ids", - "solana-sdk-macro", - "solana-secp256k1-recover", - "solana-serde-varint", - "solana-serialize-utils", - "solana-sha256-hasher", - "solana-short-vec", - "solana-slot-hashes", - "solana-slot-history", - "solana-stable-layout", - "solana-stake-interface", - "solana-system-interface", - "solana-sysvar", - "solana-sysvar-id", - "solana-vote-interface", + "solana-pubkey 2.2.1", + "solana-rent 2.2.1", + "solana-sanitize 2.2.1", + "solana-sdk-ids 2.2.1", + "solana-sdk-macro 2.2.1", + "solana-secp256k1-recover 2.2.1", + "solana-serde-varint 2.2.1", + "solana-serialize-utils 2.2.1", + "solana-sha256-hasher 2.2.1", + "solana-short-vec 2.2.1", + "solana-slot-hashes 2.2.1", + "solana-slot-history 2.2.1", + "solana-stable-layout 2.2.1", + "solana-stake-interface 1.2.1", + "solana-system-interface 1.0.0", + "solana-sysvar 2.2.1", + "solana-sysvar-id 2.2.1", + "solana-vote-interface 2.2.1", "thiserror 2.0.18", "wasm-bindgen", ] @@ -4981,10 +4990,22 @@ version = "2.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "473ffe73c68d93e9f2aa726ad2985fe52760052709aaab188100a42c618060ec" dependencies = [ - "solana-account-info", - "solana-msg", - "solana-program-error", - "solana-pubkey", + "solana-account-info 2.2.1", + "solana-msg 2.2.1", + "solana-program-error 2.2.2", + "solana-pubkey 2.2.1", +] + +[[package]] +name = "solana-program-entrypoint" +version = "3.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "84c9b0a1ff494e05f503a08b3d51150b73aa639544631e510279d6375f290997" +dependencies = [ + "solana-account-info 3.1.0", + "solana-define-syscall 4.0.1", + "solana-program-error 3.0.0", + "solana-pubkey 4.0.0", ] [[package]] @@ -4998,11 +5019,17 @@ dependencies = [ "serde", "serde_derive", "solana-decode-error", - "solana-instruction", - "solana-msg", - "solana-pubkey", + "solana-instruction 2.2.1", + "solana-msg 2.2.1", + "solana-pubkey 2.2.1", ] +[[package]] +name = "solana-program-error" +version = "3.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a1af32c995a7b692a915bb7414d5f8e838450cf7c70414e763d8abcae7b51f28" + [[package]] name = "solana-program-memory" version = "2.2.1" @@ -5010,22 +5037,31 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1b0268f6c89825fb634a34bd0c3b8fdaeaecfc3728be1d622a8ee6dd577b60d4" dependencies = [ "num-traits", - "solana-define-syscall", + "solana-define-syscall 2.2.1", ] [[package]] -name = "solana-program-option" -version = "2.2.1" +name = "solana-program-memory" +version = "3.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dc677a2e9bc616eda6dbdab834d463372b92848b2bfe4a1ed4e4b4adba3397d0" - +checksum = "4068648649653c2c50546e9a7fb761791b5ab0cda054c771bb5808d3a4b9eb52" +dependencies = [ + "solana-define-syscall 4.0.1", +] + +[[package]] +name = "solana-program-option" +version = "2.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dc677a2e9bc616eda6dbdab834d463372b92848b2bfe4a1ed4e4b4adba3397d0" + [[package]] name = "solana-program-pack" version = "2.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "319f0ef15e6e12dc37c597faccb7d62525a509fec5f6975ecb9419efddeb277b" dependencies = [ - "solana-program-error", + "solana-program-error 2.2.2", ] [[package]] @@ -5042,33 +5078,78 @@ dependencies = [ "percentage", "rand 0.8.5", "serde", - "solana-account", - "solana-clock", - "solana-compute-budget", - "solana-epoch-rewards", - "solana-epoch-schedule", + "solana-account 2.2.1", + "solana-clock 2.2.1", + "solana-compute-budget 2.2.4", + "solana-epoch-rewards 2.2.1", + "solana-epoch-schedule 2.2.1", "solana-feature-set", - "solana-hash", - "solana-instruction", - "solana-last-restart-slot", + "solana-hash 2.2.1", + "solana-instruction 2.2.1", + "solana-last-restart-slot 2.2.1", "solana-log-collector", "solana-measure", "solana-metrics", "solana-precompiles", - "solana-pubkey", - "solana-rent", - "solana-sbpf", - "solana-sdk-ids", - "solana-slot-hashes", - "solana-stable-layout", - "solana-sysvar", - "solana-sysvar-id", + "solana-pubkey 2.2.1", + "solana-rent 2.2.1", + "solana-sbpf 0.10.0", + "solana-sdk-ids 2.2.1", + "solana-slot-hashes 2.2.1", + "solana-stable-layout 2.2.1", + "solana-sysvar 2.2.1", + "solana-sysvar-id 2.2.1", "solana-timings", - "solana-transaction-context", + "solana-transaction-context 2.2.1", "solana-type-overrides", "thiserror 2.0.18", ] +[[package]] +name = "solana-program-runtime" +version = "3.1.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3a03ee54e20e5562f347121517c1692489a6a8e04f86aefd5740af5097c33820" +dependencies = [ + "base64 0.22.1", + "bincode", + "itertools 0.12.1", + "log", + "percentage", + "rand 0.8.5", + "serde", + "solana-account 3.4.0", + "solana-account-info 3.1.0", + "solana-clock 3.0.0", + "solana-epoch-rewards 3.0.0", + "solana-epoch-schedule 3.0.0", + "solana-fee-structure 3.0.0", + "solana-hash 3.1.0", + "solana-instruction 3.1.0", + "solana-last-restart-slot 3.0.0", + "solana-loader-v3-interface 6.1.0", + "solana-program-entrypoint 3.1.1", + "solana-pubkey 3.0.0", + "solana-rent 3.1.0", + "solana-sbpf 0.13.1", + "solana-sdk-ids 3.1.0", + "solana-slot-hashes 3.0.0", + "solana-stable-layout 3.0.0", + "solana-stake-interface 2.0.2", + "solana-svm-callback", + "solana-svm-feature-set", + "solana-svm-log-collector", + "solana-svm-measure", + "solana-svm-timings", + "solana-svm-transaction 3.1.8", + "solana-svm-type-overrides", + "solana-system-interface 2.0.0", + "solana-sysvar 3.1.1", + "solana-sysvar-id 3.1.0", + "solana-transaction-context 3.1.8", + "thiserror 2.0.18", +] + [[package]] name = "solana-pubkey" version = "2.2.1" @@ -5081,77 +5162,37 @@ dependencies = [ "bytemuck", "bytemuck_derive", "curve25519-dalek 4.1.3", - "five8_const", + "five8_const 0.1.4", "getrandom 0.2.17", "js-sys", "num-traits", "rand 0.8.5", "serde", "serde_derive", - "solana-atomic-u64", + "solana-atomic-u64 2.2.1", "solana-decode-error", - "solana-define-syscall", - "solana-sanitize", - "solana-sha256-hasher", + "solana-define-syscall 2.2.1", + "solana-sanitize 2.2.1", + "solana-sha256-hasher 2.2.1", "wasm-bindgen", ] [[package]] -name = "solana-pubsub-client" -version = "2.2.4" +name = "solana-pubkey" +version = "3.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "52d219147fd3a6753dc4819578fb6830c082a7c26b1559fab0f240fcf11f4e39" +checksum = "8909d399deb0851aa524420beeb5646b115fd253ef446e35fe4504c904da3941" dependencies = [ - "crossbeam-channel", - "futures-util", - "log", - "reqwest", - "semver", - "serde", - "serde_derive", - "serde_json", - "solana-account-decoder-client-types", - "solana-clock", - "solana-pubkey", - "solana-rpc-client-api", - "solana-signature", - "thiserror 2.0.18", - "tokio", - "tokio-stream", - "tokio-tungstenite", - "tungstenite", - "url", + "solana-address 1.1.0", ] [[package]] -name = "solana-quic-client" -version = "2.2.4" +name = "solana-pubkey" +version = "4.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "769d66df4ab445ab689ab2c4f10135dfe80576859b4fea1cae7d9bdd7985e4e2" +checksum = "a6f7104d456b58e1418c21a8581e89810278d1190f70f27ece7fc0b2c9282a57" dependencies = [ - "async-lock", - "async-trait", - "futures", - "itertools 0.12.1", - "lazy_static", - "log", - "quinn", - "quinn-proto", - "rustls 0.23.36", - "solana-connection-cache", - "solana-keypair", - "solana-measure", - "solana-metrics", - "solana-net-utils", - "solana-pubkey", - "solana-quic-definitions", - "solana-rpc-client-api", - "solana-signer", - "solana-streamer", - "solana-tls-utils", - "solana-transaction-error", - "thiserror 2.0.18", - "tokio", + "solana-address 2.1.0", ] [[package]] @@ -5160,30 +5201,33 @@ version = "2.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e606feac5110eb5d8afaa43ccaeea3ec49ccec36773387930b5ba545e745aea2" dependencies = [ - "solana-keypair", + "solana-keypair 2.2.1", ] [[package]] -name = "solana-rayon-threadlimit" -version = "2.2.4" +name = "solana-rent" +version = "2.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7bf3ad7091b26c9bd0ebabff6ac4d825c88ecf2eafdb83de30dffda80ffc2f17" +checksum = "d1aea8fdea9de98ca6e8c2da5827707fb3842833521b528a713810ca685d2480" dependencies = [ - "lazy_static", - "num_cpus", + "serde", + "serde_derive", + "solana-sdk-ids 2.2.1", + "solana-sdk-macro 2.2.1", + "solana-sysvar-id 2.2.1", ] [[package]] name = "solana-rent" -version = "2.2.1" +version = "3.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d1aea8fdea9de98ca6e8c2da5827707fb3842833521b528a713810ca685d2480" +checksum = "e860d5499a705369778647e97d760f7670adfb6fc8419dd3d568deccd46d5487" dependencies = [ "serde", "serde_derive", - "solana-sdk-ids", - "solana-sdk-macro", - "solana-sysvar-id", + "solana-sdk-ids 3.1.0", + "solana-sdk-macro 3.0.0", + "solana-sysvar-id 3.1.0", ] [[package]] @@ -5194,13 +5238,13 @@ checksum = "127e6dfa51e8c8ae3aa646d8b2672bc4ac901972a338a9e1cd249e030564fb9d" dependencies = [ "serde", "serde_derive", - "solana-account", - "solana-clock", - "solana-epoch-schedule", + "solana-account 2.2.1", + "solana-clock 2.2.1", + "solana-epoch-schedule 2.2.1", "solana-genesis-config", - "solana-pubkey", - "solana-rent", - "solana-sdk-ids", + "solana-pubkey 2.2.1", + "solana-rent 2.2.1", + "solana-sdk-ids 2.2.1", ] [[package]] @@ -5209,7 +5253,7 @@ version = "2.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4f6f9113c6003492e74438d1288e30cffa8ccfdc2ef7b49b9e816d8034da18cd" dependencies = [ - "solana-pubkey", + "solana-pubkey 2.2.1", "solana-reward-info", ] @@ -5221,8 +5265,8 @@ checksum = "e4b22ea19ca2a3f28af7cd047c914abf833486bf7a7c4a10fc652fff09b385b1" dependencies = [ "lazy_static", "solana-feature-set", - "solana-pubkey", - "solana-sdk-ids", + "solana-pubkey 2.2.1", + "solana-sdk-ids 2.2.1", ] [[package]] @@ -5236,111 +5280,48 @@ dependencies = [ ] [[package]] -name = "solana-rpc-client" -version = "2.2.4" +name = "solana-sanitize" +version = "2.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "44f1809a424bb8d90aa40990451593cde7e734a060fb52b35e475db585450578" -dependencies = [ - "async-trait", - "base64 0.22.1", - "bincode", - "bs58", - "indicatif", - "log", - "reqwest", - "reqwest-middleware", - "semver", - "serde", - "serde_derive", - "serde_json", - "solana-account", - "solana-account-decoder-client-types", - "solana-clock", - "solana-commitment-config", - "solana-epoch-info", - "solana-epoch-schedule", - "solana-feature-gate-interface", - "solana-hash", - "solana-instruction", - "solana-message", - "solana-pubkey", - "solana-rpc-client-api", - "solana-signature", - "solana-transaction", - "solana-transaction-error", - "solana-transaction-status-client-types", - "solana-version", - "tokio", -] +checksum = "61f1bc1357b8188d9c4a3af3fc55276e56987265eb7ad073ae6f8180ee54cecf" [[package]] -name = "solana-rpc-client-api" -version = "2.2.4" +name = "solana-sanitize" +version = "3.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aa2eb4fe573cd2d59d8672f0d8ac65f64e70c948b36cf97218b9aeb80dca3329" -dependencies = [ - "anyhow", - "base64 0.22.1", - "bs58", - "jsonrpc-core", - "reqwest", - "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-signer", - "solana-transaction-error", - "solana-transaction-status-client-types", - "solana-version", - "thiserror 2.0.18", -] +checksum = "dcf09694a0fc14e5ffb18f9b7b7c0f15ecb6eac5b5610bf76a1853459d19daf9" [[package]] -name = "solana-rpc-client-nonce-utils" -version = "2.2.4" +name = "solana-sbpf" +version = "0.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2712d22c58616762ad8e02fc18556eaf7be4104d5e56b11a2b8aa892c7de2a08" +checksum = "66a3ce7a0f4d6830124ceb2c263c36d1ee39444ec70146eb49b939e557e72b96" dependencies = [ - "solana-account", - "solana-commitment-config", - "solana-hash", - "solana-message", - "solana-nonce", - "solana-pubkey", - "solana-rpc-client", - "solana-sdk-ids", - "thiserror 2.0.18", + "byteorder", + "combine", + "hash32 0.2.1", + "libc", + "log", + "rand 0.8.5", + "rustc-demangle", + "thiserror 1.0.69", + "winapi", ] -[[package]] -name = "solana-sanitize" -version = "2.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "61f1bc1357b8188d9c4a3af3fc55276e56987265eb7ad073ae6f8180ee54cecf" - [[package]] name = "solana-sbpf" -version = "0.10.0" +version = "0.13.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "66a3ce7a0f4d6830124ceb2c263c36d1ee39444ec70146eb49b939e557e72b96" +checksum = "b15b079e08471a9dbfe1e48b2c7439c85aa2a055cbd54eddd8bd257b0a7dbb29" dependencies = [ "byteorder", - "combine 3.8.1", - "hash32", + "combine", + "hash32 0.3.1", "libc", "log", "rand 0.8.5", "rustc-demangle", - "thiserror 1.0.69", + "thiserror 2.0.18", "winapi", ] @@ -5356,60 +5337,60 @@ dependencies = [ "js-sys", "serde", "serde_json", - "solana-account", - "solana-bn254", + "solana-account 2.2.1", + "solana-bn254 2.2.1", "solana-client-traits", "solana-cluster-type", "solana-commitment-config", - "solana-compute-budget-interface", + "solana-compute-budget-interface 2.2.1", "solana-decode-error", - "solana-derivation-path", + "solana-derivation-path 2.2.1", "solana-ed25519-program", "solana-epoch-info", "solana-epoch-rewards-hasher", "solana-feature-set", - "solana-fee-structure", + "solana-fee-structure 2.2.1", "solana-genesis-config", "solana-hard-forks", "solana-inflation", - "solana-instruction", - "solana-keypair", - "solana-message", - "solana-native-token", - "solana-nonce-account", + "solana-instruction 2.2.1", + "solana-keypair 2.2.1", + "solana-message 2.2.1", + "solana-native-token 2.2.1", + "solana-nonce-account 2.2.1", "solana-offchain-message", - "solana-packet", + "solana-packet 2.2.1", "solana-poh-config", - "solana-precompile-error", + "solana-precompile-error 2.2.2", "solana-precompiles", "solana-presigner", "solana-program", - "solana-program-memory", - "solana-pubkey", + "solana-program-memory 2.2.1", + "solana-pubkey 2.2.1", "solana-quic-definitions", "solana-rent-collector", "solana-rent-debits", "solana-reserved-account-keys", "solana-reward-info", - "solana-sanitize", - "solana-sdk-ids", - "solana-sdk-macro", + "solana-sanitize 2.2.1", + "solana-sdk-ids 2.2.1", + "solana-sdk-macro 2.2.1", "solana-secp256k1-program", - "solana-secp256k1-recover", + "solana-secp256k1-recover 2.2.1", "solana-secp256r1-program", - "solana-seed-derivable", - "solana-seed-phrase", + "solana-seed-derivable 2.2.1", + "solana-seed-phrase 2.2.1", "solana-serde", - "solana-serde-varint", - "solana-short-vec", + "solana-serde-varint 2.2.1", + "solana-short-vec 2.2.1", "solana-shred-version", - "solana-signature", - "solana-signer", + "solana-signature 2.2.1", + "solana-signer 2.2.1", "solana-system-transaction", "solana-time-utils", - "solana-transaction", - "solana-transaction-context", - "solana-transaction-error", + "solana-transaction 2.2.1", + "solana-transaction-context 2.2.1", + "solana-transaction-error 2.2.1", "solana-validator-exit", "thiserror 2.0.18", "wasm-bindgen", @@ -5421,7 +5402,16 @@ version = "2.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5c5d8b9cc68d5c88b062a33e23a6466722467dde0035152d8fb1afbcdf350a5f" dependencies = [ - "solana-pubkey", + "solana-pubkey 2.2.1", +] + +[[package]] +name = "solana-sdk-ids" +version = "3.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "def234c1956ff616d46c9dd953f251fa7096ddbaa6d52b165218de97882b7280" +dependencies = [ + "solana-address 2.1.0", ] [[package]] @@ -5436,6 +5426,18 @@ dependencies = [ "syn 2.0.114", ] +[[package]] +name = "solana-sdk-macro" +version = "3.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d6430000e97083460b71d9fbadc52a2ab2f88f53b3a4c5e58c5ae3640a0e8c00" +dependencies = [ + "bs58", + "proc-macro2", + "quote", + "syn 2.0.114", +] + [[package]] name = "solana-secp256k1-program" version = "2.2.1" @@ -5449,9 +5451,9 @@ dependencies = [ "serde_derive", "sha3", "solana-feature-set", - "solana-instruction", - "solana-precompile-error", - "solana-sdk-ids", + "solana-instruction 2.2.1", + "solana-precompile-error 2.2.2", + "solana-sdk-ids 2.2.1", ] [[package]] @@ -5462,7 +5464,18 @@ checksum = "baa3120b6cdaa270f39444f5093a90a7b03d296d362878f7a6991d6de3bbe496" dependencies = [ "borsh 1.6.0", "libsecp256k1", - "solana-define-syscall", + "solana-define-syscall 2.2.1", + "thiserror 2.0.18", +] + +[[package]] +name = "solana-secp256k1-recover" +version = "3.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9de18cfdab99eeb940fbedd8c981fa130c0d76252da75d05446f22fae8b51932" +dependencies = [ + "k256", + "solana-define-syscall 4.0.1", "thiserror 2.0.18", ] @@ -5475,9 +5488,9 @@ dependencies = [ "bytemuck", "openssl", "solana-feature-set", - "solana-instruction", - "solana-precompile-error", - "solana-sdk-ids", + "solana-instruction 2.2.1", + "solana-precompile-error 2.2.2", + "solana-sdk-ids 2.2.1", ] [[package]] @@ -5486,7 +5499,16 @@ version = "2.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3beb82b5adb266c6ea90e5cf3967235644848eac476c5a1f2f9283a143b7c97f" dependencies = [ - "solana-derivation-path", + "solana-derivation-path 2.2.1", +] + +[[package]] +name = "solana-seed-derivable" +version = "3.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ff7bdb72758e3bec33ed0e2658a920f1f35dfb9ed576b951d20d63cb61ecd95c" +dependencies = [ + "solana-derivation-path 3.0.0", ] [[package]] @@ -5500,6 +5522,17 @@ dependencies = [ "sha2 0.10.9", ] +[[package]] +name = "solana-seed-phrase" +version = "3.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dc905b200a95f2ea9146e43f2a7181e3aeb55de6bc12afb36462d00a3c7310de" +dependencies = [ + "hmac 0.12.1", + "pbkdf2", + "sha2 0.10.9", +] + [[package]] name = "solana-serde" version = "2.2.1" @@ -5518,15 +5551,35 @@ dependencies = [ "serde", ] +[[package]] +name = "solana-serde-varint" +version = "3.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3e5174c57d5ff3c1995f274d17156964664566e2cde18a07bba1586d35a70d3b" +dependencies = [ + "serde", +] + [[package]] name = "solana-serialize-utils" version = "2.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "817a284b63197d2b27afdba829c5ab34231da4a9b4e763466a003c40ca4f535e" dependencies = [ - "solana-instruction", - "solana-pubkey", - "solana-sanitize", + "solana-instruction 2.2.1", + "solana-pubkey 2.2.1", + "solana-sanitize 2.2.1", +] + +[[package]] +name = "solana-serialize-utils" +version = "3.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "56e41dd8feea239516c623a02f0a81c2367f4b604d7965237fed0751aeec33ed" +dependencies = [ + "solana-instruction-error", + "solana-pubkey 3.0.0", + "solana-sanitize 3.0.1", ] [[package]] @@ -5536,8 +5589,19 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0037386961c0d633421f53560ad7c80675c0447cba4d1bb66d60974dd486c7ea" dependencies = [ "sha2 0.10.9", - "solana-define-syscall", - "solana-hash", + "solana-define-syscall 2.2.1", + "solana-hash 2.2.1", +] + +[[package]] +name = "solana-sha256-hasher" +version = "3.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "db7dc3011ea4c0334aaaa7e7128cb390ecf546b28d412e9bf2064680f57f588f" +dependencies = [ + "sha2 0.10.9", + "solana-define-syscall 4.0.1", + "solana-hash 4.1.0", ] [[package]] @@ -5549,6 +5613,15 @@ dependencies = [ "serde", ] +[[package]] +name = "solana-short-vec" +version = "3.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "de3bd991c2cc415291c86bb0b6b4d53e93d13bb40344e4c5a2884e0e4f5fa93f" +dependencies = [ + "serde_core", +] + [[package]] name = "solana-shred-version" version = "2.2.1" @@ -5556,8 +5629,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "afd3db0461089d1ad1a78d9ba3f15b563899ca2386351d38428faa5350c60a98" dependencies = [ "solana-hard-forks", - "solana-hash", - "solana-sha256-hasher", + "solana-hash 2.2.1", + "solana-sha256-hasher 2.2.1", ] [[package]] @@ -5567,12 +5640,26 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "47d251c8f3dc015f320b4161daac7f108156c837428e5a8cc61136d25beb11d6" dependencies = [ "bs58", - "ed25519-dalek", + "ed25519-dalek 1.0.1", "rand 0.8.5", "serde", "serde-big-array", "serde_derive", - "solana-sanitize", + "solana-sanitize 2.2.1", +] + +[[package]] +name = "solana-signature" +version = "3.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4bb8057cc0e9f7b5e89883d49de6f407df655bb6f3a71d0b7baf9986a2218fd9" +dependencies = [ + "ed25519-dalek 2.2.0", + "five8 0.2.1", + "serde", + "serde-big-array", + "serde_derive", + "solana-sanitize 3.0.1", ] [[package]] @@ -5581,9 +5668,20 @@ version = "2.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7c41991508a4b02f021c1342ba00bcfa098630b213726ceadc7cb032e051975b" dependencies = [ - "solana-pubkey", - "solana-signature", - "solana-transaction-error", + "solana-pubkey 2.2.1", + "solana-signature 2.2.1", + "solana-transaction-error 2.2.1", +] + +[[package]] +name = "solana-signer" +version = "3.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5bfea97951fee8bae0d6038f39a5efcb6230ecdfe33425ac75196d1a1e3e3235" +dependencies = [ + "solana-pubkey 3.0.0", + "solana-signature 3.1.0", + "solana-transaction-error 3.0.0", ] [[package]] @@ -5594,9 +5692,22 @@ checksum = "0c8691982114513763e88d04094c9caa0376b867a29577939011331134c301ce" dependencies = [ "serde", "serde_derive", - "solana-hash", - "solana-sdk-ids", - "solana-sysvar-id", + "solana-hash 2.2.1", + "solana-sdk-ids 2.2.1", + "solana-sysvar-id 2.2.1", +] + +[[package]] +name = "solana-slot-hashes" +version = "3.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "80a293f952293281443c04f4d96afd9d547721923d596e92b4377ed2360f1746" +dependencies = [ + "serde", + "serde_derive", + "solana-hash 3.1.0", + "solana-sdk-ids 3.1.0", + "solana-sysvar-id 3.1.0", ] [[package]] @@ -5608,8 +5719,21 @@ dependencies = [ "bv", "serde", "serde_derive", - "solana-sdk-ids", - "solana-sysvar-id", + "solana-sdk-ids 2.2.1", + "solana-sysvar-id 2.2.1", +] + +[[package]] +name = "solana-slot-history" +version = "3.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f914f6b108f5bba14a280b458d023e3621c9973f27f015a4d755b50e88d89e97" +dependencies = [ + "bv", + "serde", + "serde_derive", + "solana-sdk-ids 3.1.0", + "solana-sysvar-id 3.1.0", ] [[package]] @@ -5618,8 +5742,18 @@ version = "2.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9f14f7d02af8f2bc1b5efeeae71bc1c2b7f0f65cd75bcc7d8180f2c762a57f54" dependencies = [ - "solana-instruction", - "solana-pubkey", + "solana-instruction 2.2.1", + "solana-pubkey 2.2.1", +] + +[[package]] +name = "solana-stable-layout" +version = "3.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1da74507795b6e8fb60b7c7306c0c36e2c315805d16eaaf479452661234685ac" +dependencies = [ + "solana-instruction 3.1.0", + "solana-pubkey 3.0.0", ] [[package]] @@ -5633,14 +5767,33 @@ dependencies = [ "num-traits", "serde", "serde_derive", - "solana-clock", - "solana-cpi", + "solana-clock 2.2.1", + "solana-cpi 2.2.1", "solana-decode-error", - "solana-instruction", - "solana-program-error", - "solana-pubkey", - "solana-system-interface", - "solana-sysvar-id", + "solana-instruction 2.2.1", + "solana-program-error 2.2.2", + "solana-pubkey 2.2.1", + "solana-system-interface 1.0.0", + "solana-sysvar-id 2.2.1", +] + +[[package]] +name = "solana-stake-interface" +version = "2.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b9bc26191b533f9a6e5a14cca05174119819ced680a80febff2f5051a713f0db" +dependencies = [ + "num-traits", + "serde", + "serde_derive", + "solana-clock 3.0.0", + "solana-cpi 3.1.0", + "solana-instruction 3.1.0", + "solana-program-error 3.0.0", + "solana-pubkey 3.0.0", + "solana-system-interface 2.0.0", + "solana-sysvar 3.1.1", + "solana-sysvar-id 3.1.0", ] [[package]] @@ -5651,72 +5804,69 @@ checksum = "2b140dad8a60e40c381a0a359a350d37d51827d02ceb623acf8b942c04f3f3e6" dependencies = [ "bincode", "log", - "solana-account", - "solana-bincode", - "solana-clock", + "solana-account 2.2.1", + "solana-bincode 2.2.1", + "solana-clock 2.2.1", "solana-config-program", "solana-feature-set", "solana-genesis-config", - "solana-instruction", + "solana-instruction 2.2.1", "solana-log-collector", - "solana-native-token", - "solana-packet", - "solana-program-runtime", - "solana-pubkey", - "solana-rent", - "solana-sdk-ids", - "solana-stake-interface", - "solana-sysvar", - "solana-transaction-context", + "solana-native-token 2.2.1", + "solana-packet 2.2.1", + "solana-program-runtime 2.2.4", + "solana-pubkey 2.2.1", + "solana-rent 2.2.1", + "solana-sdk-ids 2.2.1", + "solana-stake-interface 1.2.1", + "solana-sysvar 2.2.1", + "solana-transaction-context 2.2.1", "solana-type-overrides", - "solana-vote-interface", + "solana-vote-interface 2.2.1", ] [[package]] -name = "solana-streamer" -version = "2.2.4" +name = "solana-svm-callback" +version = "3.1.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c8251a832b9f849e32266e2ebc14dba374c6c58d64e8b1ea9e9d95e836a53fe6" +checksum = "7c216afeef20cf86fd3d2ae812bebcdc23ee0e3d45fb4b3b28ad168cb56778ed" +dependencies = [ + "solana-account 3.4.0", + "solana-clock 3.0.0", + "solana-precompile-error 3.0.0", + "solana-pubkey 3.0.0", +] + +[[package]] +name = "solana-svm-feature-set" +version = "3.1.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "641cddc667abba4cf3474d850a073c0a2b439ff0014c445cd09eaf5d79d70bab" + +[[package]] +name = "solana-svm-log-collector" +version = "3.1.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bbe6ce42b1620fd713e12cd52d62a7d4d370414d67ed9bfc5faa444fa54bb6f2" dependencies = [ - "async-channel", - "bytes", - "crossbeam-channel", - "dashmap", - "futures", - "futures-util", - "governor", - "histogram", - "indexmap", - "itertools 0.12.1", - "libc", "log", - "nix", - "pem", - "percentage", - "quinn", - "quinn-proto", - "rand 0.8.5", - "rustls 0.23.36", - "smallvec", - "socket2 0.5.10", - "solana-keypair", - "solana-measure", - "solana-metrics", - "solana-net-utils", - "solana-packet", - "solana-perf", - "solana-pubkey", - "solana-quic-definitions", - "solana-signature", - "solana-signer", - "solana-time-utils", - "solana-tls-utils", - "solana-transaction-error", - "solana-transaction-metrics-tracker", - "thiserror 2.0.18", - "tokio", - "tokio-util", - "x509-parser", +] + +[[package]] +name = "solana-svm-measure" +version = "3.1.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ea1d8035045fe47df97ee2a4695b09236161f82f1b4b6c2a49a5cb6a7c94fed6" + +[[package]] +name = "solana-svm-timings" +version = "3.1.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f9b6407ecacc9b1ca88bdb34f6afb10ab0e4c65f3f1b82bce637c3056deb456d" +dependencies = [ + "eager", + "enum-iterator", + "solana-pubkey 3.0.0", ] [[package]] @@ -5725,12 +5875,35 @@ version = "2.2.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1da9eb37e6ced0215a5e44df4ed1f3b885cf349156cbbf99197680cb7eaccf5f" dependencies = [ - "solana-hash", - "solana-message", - "solana-pubkey", - "solana-sdk-ids", - "solana-signature", - "solana-transaction", + "solana-hash 2.2.1", + "solana-message 2.2.1", + "solana-pubkey 2.2.1", + "solana-sdk-ids 2.2.1", + "solana-signature 2.2.1", + "solana-transaction 2.2.1", +] + +[[package]] +name = "solana-svm-transaction" +version = "3.1.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a9ca13fa9a99ad8474c3867d56d81effcf5582bb6356ab0a9ed2fc373a3e4af7" +dependencies = [ + "solana-hash 3.1.0", + "solana-message 3.0.1", + "solana-pubkey 3.0.0", + "solana-sdk-ids 3.1.0", + "solana-signature 3.1.0", + "solana-transaction 3.0.2", +] + +[[package]] +name = "solana-svm-type-overrides" +version = "3.1.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fe572aba18afc347a699927720ddc8671da94663a6453e30e872f3ac3788da22" +dependencies = [ + "rand 0.8.5", ] [[package]] @@ -5744,11 +5917,41 @@ dependencies = [ "serde", "serde_derive", "solana-decode-error", - "solana-instruction", - "solana-pubkey", + "solana-instruction 2.2.1", + "solana-pubkey 2.2.1", "wasm-bindgen", ] +[[package]] +name = "solana-system-interface" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4e1790547bfc3061f1ee68ea9d8dc6c973c02a163697b24263a8e9f2e6d4afa2" +dependencies = [ + "num-traits", + "serde", + "serde_derive", + "solana-instruction 3.1.0", + "solana-msg 3.0.0", + "solana-program-error 3.0.0", + "solana-pubkey 3.0.0", +] + +[[package]] +name = "solana-system-interface" +version = "3.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "14591d6508042ebefb110305d3ba761615927146a26917ade45dc332d8e1ecde" +dependencies = [ + "num-traits", + "serde", + "serde_derive", + "solana-address 2.1.0", + "solana-instruction 3.1.0", + "solana-msg 3.0.0", + "solana-program-error 3.0.0", +] + [[package]] name = "solana-system-program" version = "2.2.4" @@ -5759,35 +5962,61 @@ dependencies = [ "log", "serde", "serde_derive", - "solana-account", - "solana-bincode", - "solana-instruction", + "solana-account 2.2.1", + "solana-bincode 2.2.1", + "solana-instruction 2.2.1", "solana-log-collector", - "solana-nonce", - "solana-nonce-account", - "solana-packet", - "solana-program-runtime", - "solana-pubkey", - "solana-sdk-ids", - "solana-system-interface", - "solana-sysvar", - "solana-transaction-context", + "solana-nonce 2.2.1", + "solana-nonce-account 2.2.1", + "solana-packet 2.2.1", + "solana-program-runtime 2.2.4", + "solana-pubkey 2.2.1", + "solana-sdk-ids 2.2.1", + "solana-system-interface 1.0.0", + "solana-sysvar 2.2.1", + "solana-transaction-context 2.2.1", "solana-type-overrides", ] +[[package]] +name = "solana-system-program" +version = "3.1.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7c1c3a09bccfee48f072cbbeab3151578ac246f8af91309a9521ecd6129d4b92" +dependencies = [ + "bincode", + "log", + "serde", + "solana-account 3.4.0", + "solana-bincode 3.1.0", + "solana-fee-calculator 3.0.0", + "solana-instruction 3.1.0", + "solana-nonce 3.0.0", + "solana-nonce-account 3.0.0", + "solana-packet 3.0.0", + "solana-program-runtime 3.1.8", + "solana-pubkey 3.0.0", + "solana-sdk-ids 3.1.0", + "solana-svm-log-collector", + "solana-svm-type-overrides", + "solana-system-interface 2.0.0", + "solana-sysvar 3.1.1", + "solana-transaction-context 3.1.8", +] + [[package]] name = "solana-system-transaction" version = "2.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5bd98a25e5bcba8b6be8bcbb7b84b24c2a6a8178d7fb0e3077a916855ceba91a" dependencies = [ - "solana-hash", - "solana-keypair", - "solana-message", - "solana-pubkey", - "solana-signer", - "solana-system-interface", - "solana-transaction", + "solana-hash 2.2.1", + "solana-keypair 2.2.1", + "solana-message 2.2.1", + "solana-pubkey 2.2.1", + "solana-signer 2.2.1", + "solana-system-interface 1.0.0", + "solana-transaction 2.2.1", ] [[package]] @@ -5803,28 +6032,60 @@ dependencies = [ "lazy_static", "serde", "serde_derive", - "solana-account-info", - "solana-clock", - "solana-define-syscall", - "solana-epoch-rewards", - "solana-epoch-schedule", - "solana-fee-calculator", - "solana-hash", - "solana-instruction", - "solana-instructions-sysvar", - "solana-last-restart-slot", - "solana-program-entrypoint", - "solana-program-error", - "solana-program-memory", - "solana-pubkey", - "solana-rent", - "solana-sanitize", - "solana-sdk-ids", - "solana-sdk-macro", - "solana-slot-hashes", - "solana-slot-history", - "solana-stake-interface", - "solana-sysvar-id", + "solana-account-info 2.2.1", + "solana-clock 2.2.1", + "solana-define-syscall 2.2.1", + "solana-epoch-rewards 2.2.1", + "solana-epoch-schedule 2.2.1", + "solana-fee-calculator 2.2.1", + "solana-hash 2.2.1", + "solana-instruction 2.2.1", + "solana-instructions-sysvar 2.2.1", + "solana-last-restart-slot 2.2.1", + "solana-program-entrypoint 2.2.1", + "solana-program-error 2.2.2", + "solana-program-memory 2.2.1", + "solana-pubkey 2.2.1", + "solana-rent 2.2.1", + "solana-sanitize 2.2.1", + "solana-sdk-ids 2.2.1", + "solana-sdk-macro 2.2.1", + "solana-slot-hashes 2.2.1", + "solana-slot-history 2.2.1", + "solana-stake-interface 1.2.1", + "solana-sysvar-id 2.2.1", +] + +[[package]] +name = "solana-sysvar" +version = "3.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6690d3dd88f15c21edff68eb391ef8800df7a1f5cec84ee3e8d1abf05affdf74" +dependencies = [ + "base64 0.22.1", + "bincode", + "lazy_static", + "serde", + "serde_derive", + "solana-account-info 3.1.0", + "solana-clock 3.0.0", + "solana-define-syscall 4.0.1", + "solana-epoch-rewards 3.0.0", + "solana-epoch-schedule 3.0.0", + "solana-fee-calculator 3.0.0", + "solana-hash 4.1.0", + "solana-instruction 3.1.0", + "solana-last-restart-slot 3.0.0", + "solana-program-entrypoint 3.1.1", + "solana-program-error 3.0.0", + "solana-program-memory 3.1.0", + "solana-pubkey 4.0.0", + "solana-rent 3.1.0", + "solana-sdk-ids 3.1.0", + "solana-sdk-macro 3.0.0", + "solana-slot-hashes 3.0.0", + "solana-slot-history 3.0.0", + "solana-sysvar-id 3.1.0", ] [[package]] @@ -5833,37 +6094,18 @@ version = "2.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5762b273d3325b047cfda250787f8d796d781746860d5d0a746ee29f3e8812c1" dependencies = [ - "solana-pubkey", - "solana-sdk-ids", + "solana-pubkey 2.2.1", + "solana-sdk-ids 2.2.1", ] [[package]] -name = "solana-thin-client" -version = "2.2.4" +name = "solana-sysvar-id" +version = "3.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "61f6e417c23af670d7861ef74feae3c556d47ea9e5f64c664cfcf6d254f43e1a" +checksum = "17358d1e9a13e5b9c2264d301102126cf11a47fd394cdf3dec174fe7bc96e1de" dependencies = [ - "bincode", - "log", - "rayon", - "solana-account", - "solana-client-traits", - "solana-clock", - "solana-commitment-config", - "solana-connection-cache", - "solana-epoch-info", - "solana-hash", - "solana-instruction", - "solana-keypair", - "solana-message", - "solana-pubkey", - "solana-rpc-client", - "solana-rpc-client-api", - "solana-signature", - "solana-signer", - "solana-system-interface", - "solana-transaction", - "solana-transaction-error", + "solana-address 2.1.0", + "solana-sdk-ids 3.1.0", ] [[package]] @@ -5880,54 +6122,7 @@ checksum = "224f93327d9d3178a30cd6c057e1ac6ca85e95287dd7355064dfa6b9c49f5671" dependencies = [ "eager", "enum-iterator", - "solana-pubkey", -] - -[[package]] -name = "solana-tls-utils" -version = "2.2.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ec21c6c242ee93642aa50b829f5727470cdbdf6b461fb7323fe4bc31d1b54c08" -dependencies = [ - "rustls 0.23.36", - "solana-keypair", - "solana-pubkey", - "solana-signer", - "x509-parser", -] - -[[package]] -name = "solana-tpu-client" -version = "2.2.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "637e3ff3c8ece22043d96758f980d95558d50792d827d1457c2e06d9daaa7ff5" -dependencies = [ - "async-trait", - "bincode", - "futures-util", - "indexmap", - "indicatif", - "log", - "rayon", - "solana-client-traits", - "solana-clock", - "solana-commitment-config", - "solana-connection-cache", - "solana-epoch-info", - "solana-measure", - "solana-message", - "solana-net-utils", - "solana-pubkey", - "solana-pubsub-client", - "solana-quic-definitions", - "solana-rpc-client", - "solana-rpc-client-api", - "solana-signature", - "solana-signer", - "solana-transaction", - "solana-transaction-error", - "thiserror 2.0.18", - "tokio", + "solana-pubkey 2.2.1", ] [[package]] @@ -5939,117 +6134,112 @@ dependencies = [ "bincode", "serde", "serde_derive", - "solana-bincode", + "solana-bincode 2.2.1", "solana-feature-set", - "solana-hash", - "solana-instruction", - "solana-keypair", - "solana-message", + "solana-hash 2.2.1", + "solana-instruction 2.2.1", + "solana-keypair 2.2.1", + "solana-message 2.2.1", "solana-precompiles", - "solana-pubkey", + "solana-pubkey 2.2.1", "solana-reserved-account-keys", - "solana-sanitize", - "solana-sdk-ids", - "solana-short-vec", - "solana-signature", - "solana-signer", - "solana-system-interface", - "solana-transaction-error", + "solana-sanitize 2.2.1", + "solana-sdk-ids 2.2.1", + "solana-short-vec 2.2.1", + "solana-signature 2.2.1", + "solana-signer 2.2.1", + "solana-system-interface 1.0.0", + "solana-transaction-error 2.2.1", "wasm-bindgen", ] [[package]] -name = "solana-transaction-context" -version = "2.2.1" +name = "solana-transaction" +version = "3.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5022de04cbba05377f68bf848c8c1322ead733f88a657bf792bb40f3257b8218" +checksum = "2ceb2efbf427a91b884709ffac4dac29117752ce1e37e9ae04977e450aa0bb76" dependencies = [ "bincode", "serde", "serde_derive", - "solana-account", - "solana-instruction", - "solana-pubkey", - "solana-rent", - "solana-signature", + "solana-address 2.1.0", + "solana-hash 4.1.0", + "solana-instruction 3.1.0", + "solana-instruction-error", + "solana-message 3.0.1", + "solana-sanitize 3.0.1", + "solana-sdk-ids 3.1.0", + "solana-short-vec 3.2.0", + "solana-signature 3.1.0", + "solana-signer 3.0.0", + "solana-transaction-error 3.0.0", ] [[package]] -name = "solana-transaction-error" +name = "solana-transaction-context" version = "2.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "222a9dc8fdb61c6088baab34fc3a8b8473a03a7a5fd404ed8dd502fa79b67cb1" +checksum = "5022de04cbba05377f68bf848c8c1322ead733f88a657bf792bb40f3257b8218" dependencies = [ + "bincode", "serde", "serde_derive", - "solana-instruction", - "solana-sanitize", + "solana-account 2.2.1", + "solana-instruction 2.2.1", + "solana-pubkey 2.2.1", + "solana-rent 2.2.1", + "solana-signature 2.2.1", ] [[package]] -name = "solana-transaction-metrics-tracker" -version = "2.2.4" +name = "solana-transaction-context" +version = "3.1.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "58e40670c0780af24e73551be1fadf2306f61ed13f538ff3933846dab813b06d" +checksum = "f55a9c2e2af954fae402f08e210c7f01d6a8517ad358f8f0db11ed7de89b02d4" dependencies = [ - "base64 0.22.1", "bincode", - "lazy_static", - "log", - "rand 0.8.5", - "solana-packet", - "solana-perf", - "solana-short-vec", - "solana-signature", + "serde", + "solana-account 3.4.0", + "solana-instruction 3.1.0", + "solana-instructions-sysvar 3.0.0", + "solana-pubkey 3.0.0", + "solana-rent 3.1.0", + "solana-sbpf 0.13.1", + "solana-sdk-ids 3.1.0", ] [[package]] -name = "solana-transaction-status-client-types" -version = "2.2.4" +name = "solana-transaction-error" +version = "2.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1458fc750d0df4439bb4c1b418a4fe61afbd2e83963e452256eca99dc0c1cf76" +checksum = "222a9dc8fdb61c6088baab34fc3a8b8473a03a7a5fd404ed8dd502fa79b67cb1" dependencies = [ - "base64 0.22.1", - "bincode", - "bs58", "serde", "serde_derive", - "serde_json", - "solana-account-decoder-client-types", - "solana-commitment-config", - "solana-message", - "solana-reward-info", - "solana-signature", - "solana-transaction", - "solana-transaction-context", - "solana-transaction-error", - "thiserror 2.0.18", + "solana-instruction 2.2.1", + "solana-sanitize 2.2.1", ] [[package]] -name = "solana-type-overrides" -version = "2.2.4" +name = "solana-transaction-error" +version = "3.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d26d927bf3ed2f2b6b06a0f409dd8d6b1ad1af73cbba337e9471d05d42f026c9" +checksum = "4222065402340d7e6aec9dc3e54d22992ddcf923d91edcd815443c2bfca3144a" dependencies = [ - "lazy_static", - "rand 0.8.5", + "serde", + "serde_derive", + "solana-instruction-error", + "solana-sanitize 3.0.1", ] [[package]] -name = "solana-udp-client" +name = "solana-type-overrides" version = "2.2.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c37955cc627be2745e29ce326fd1b51739e499445b5e2b5fec687ed8ec581e34" +checksum = "d26d927bf3ed2f2b6b06a0f409dd8d6b1ad1af73cbba337e9471d05d42f026c9" dependencies = [ - "async-trait", - "solana-connection-cache", - "solana-keypair", - "solana-net-utils", - "solana-streamer", - "solana-transaction-error", - "thiserror 2.0.18", - "tokio", + "lazy_static", + "rand 0.8.5", ] [[package]] @@ -6059,41 +6249,53 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7bbf6d7a3c0b28dd5335c52c0e9eae49d0ae489a8f324917faf0ded65a812c1d" [[package]] -name = "solana-version" -version = "2.2.4" +name = "solana-vote-interface" +version = "2.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "374dea09855d46655c776256dda9cc3c854cc70fd923ef22ba0805bc83ca7bfd" +checksum = "d4507bb9d071fb81cfcf676f12fba3db4098f764524ef0b5567d671a81d41f3e" dependencies = [ - "semver", + "bincode", + "num-derive", + "num-traits", "serde", "serde_derive", - "solana-feature-set", - "solana-sanitize", - "solana-serde-varint", + "solana-clock 2.2.1", + "solana-decode-error", + "solana-hash 2.2.1", + "solana-instruction 2.2.1", + "solana-pubkey 2.2.1", + "solana-rent 2.2.1", + "solana-sdk-ids 2.2.1", + "solana-serde-varint 2.2.1", + "solana-serialize-utils 2.2.1", + "solana-short-vec 2.2.1", + "solana-system-interface 1.0.0", ] [[package]] name = "solana-vote-interface" -version = "2.2.1" +version = "4.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d4507bb9d071fb81cfcf676f12fba3db4098f764524ef0b5567d671a81d41f3e" +checksum = "db6e123e16bfdd7a81d71b4c4699e0b29580b619f4cd2ef5b6aae1eb85e8979f" dependencies = [ "bincode", + "cfg_eval", "num-derive", "num-traits", "serde", "serde_derive", - "solana-clock", - "solana-decode-error", - "solana-hash", - "solana-instruction", - "solana-pubkey", - "solana-rent", - "solana-sdk-ids", - "solana-serde-varint", - "solana-serialize-utils", - "solana-short-vec", - "solana-system-interface", + "serde_with", + "solana-clock 3.0.0", + "solana-hash 3.1.0", + "solana-instruction 3.1.0", + "solana-instruction-error", + "solana-pubkey 3.0.0", + "solana-rent 3.1.0", + "solana-sdk-ids 3.1.0", + "solana-serde-varint 3.0.0", + "solana-serialize-utils 3.1.0", + "solana-short-vec 3.2.0", + "solana-system-interface 2.0.0", ] [[package]] @@ -6108,25 +6310,57 @@ dependencies = [ "num-traits", "serde", "serde_derive", - "solana-account", - "solana-bincode", - "solana-clock", - "solana-epoch-schedule", + "solana-account 2.2.1", + "solana-bincode 2.2.1", + "solana-clock 2.2.1", + "solana-epoch-schedule 2.2.1", "solana-feature-set", - "solana-hash", - "solana-instruction", - "solana-keypair", + "solana-hash 2.2.1", + "solana-instruction 2.2.1", + "solana-keypair 2.2.1", "solana-metrics", - "solana-packet", - "solana-program-runtime", - "solana-pubkey", - "solana-rent", - "solana-sdk-ids", - "solana-signer", - "solana-slot-hashes", - "solana-transaction", - "solana-transaction-context", - "solana-vote-interface", + "solana-packet 2.2.1", + "solana-program-runtime 2.2.4", + "solana-pubkey 2.2.1", + "solana-rent 2.2.1", + "solana-sdk-ids 2.2.1", + "solana-signer 2.2.1", + "solana-slot-hashes 2.2.1", + "solana-transaction 2.2.1", + "solana-transaction-context 2.2.1", + "solana-vote-interface 2.2.1", + "thiserror 2.0.18", +] + +[[package]] +name = "solana-vote-program" +version = "3.1.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "de77cc3a9dc9c1247d779db24a5c3bb5cf533855ccfa0ddb12c0c773c26acf4e" +dependencies = [ + "agave-feature-set", + "bincode", + "log", + "num-derive", + "num-traits", + "serde", + "solana-account 3.4.0", + "solana-bincode 3.1.0", + "solana-clock 3.0.0", + "solana-epoch-schedule 3.0.0", + "solana-hash 3.1.0", + "solana-instruction 3.1.0", + "solana-keypair 3.1.0", + "solana-packet 3.0.0", + "solana-program-runtime 3.1.8", + "solana-pubkey 3.0.0", + "solana-rent 3.1.0", + "solana-sdk-ids 3.1.0", + "solana-signer 3.0.0", + "solana-slot-hashes 3.0.0", + "solana-transaction 3.0.2", + "solana-transaction-context 3.1.8", + "solana-vote-interface 4.0.4", "thiserror 2.0.18", ] @@ -6139,18 +6373,72 @@ dependencies = [ "bytemuck", "num-derive", "num-traits", - "solana-instruction", - "solana-log-collector", - "solana-program-runtime", - "solana-sdk-ids", - "solana-zk-sdk", + "solana-instruction 2.2.1", + "solana-log-collector", + "solana-program-runtime 2.2.4", + "solana-sdk-ids 2.2.1", + "solana-zk-sdk 2.2.4", +] + +[[package]] +name = "solana-zk-elgamal-proof-program" +version = "3.1.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "29ee82208a466bd448bcd1387a7c2c4def0b3f938398e04e5364ee24b10ed04a" +dependencies = [ + "agave-feature-set", + "bytemuck", + "num-derive", + "num-traits", + "solana-instruction 3.1.0", + "solana-program-runtime 3.1.8", + "solana-sdk-ids 3.1.0", + "solana-svm-log-collector", + "solana-zk-sdk 4.0.0", +] + +[[package]] +name = "solana-zk-sdk" +version = "2.2.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "71db02a2e496c58840077c96dd4ede61894a4e6053853cca6dcddbb73200fb77" +dependencies = [ + "aes-gcm-siv", + "base64 0.22.1", + "bincode", + "bytemuck", + "bytemuck_derive", + "curve25519-dalek 4.1.3", + "itertools 0.12.1", + "js-sys", + "lazy_static", + "merlin", + "num-derive", + "num-traits", + "rand 0.8.5", + "serde", + "serde_derive", + "serde_json", + "sha3", + "solana-derivation-path 2.2.1", + "solana-instruction 2.2.1", + "solana-pubkey 2.2.1", + "solana-sdk-ids 2.2.1", + "solana-seed-derivable 2.2.1", + "solana-seed-phrase 2.2.1", + "solana-signature 2.2.1", + "solana-signer 2.2.1", + "subtle", + "thiserror 2.0.18", + "wasm-bindgen", + "zeroize", ] [[package]] name = "solana-zk-sdk" -version = "2.2.4" +version = "4.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "71db02a2e496c58840077c96dd4ede61894a4e6053853cca6dcddbb73200fb77" +checksum = "9602bcb1f7af15caef92b91132ec2347e1c51a72ecdbefdaefa3eac4b8711475" dependencies = [ "aes-gcm-siv", "base64 0.22.1", @@ -6158,9 +6446,9 @@ dependencies = [ "bytemuck", "bytemuck_derive", "curve25519-dalek 4.1.3", + "getrandom 0.2.17", "itertools 0.12.1", "js-sys", - "lazy_static", "merlin", "num-derive", "num-traits", @@ -6169,14 +6457,14 @@ dependencies = [ "serde_derive", "serde_json", "sha3", - "solana-derivation-path", - "solana-instruction", - "solana-pubkey", - "solana-sdk-ids", - "solana-seed-derivable", - "solana-seed-phrase", - "solana-signature", - "solana-signer", + "solana-derivation-path 3.0.0", + "solana-instruction 3.1.0", + "solana-pubkey 3.0.0", + "solana-sdk-ids 3.1.0", + "solana-seed-derivable 3.0.0", + "solana-seed-phrase 3.0.0", + "solana-signature 3.1.0", + "solana-signer 3.0.0", "subtle", "thiserror 2.0.18", "wasm-bindgen", @@ -6193,11 +6481,28 @@ dependencies = [ "num-derive", "num-traits", "solana-feature-set", - "solana-instruction", + "solana-instruction 2.2.1", "solana-log-collector", - "solana-program-runtime", - "solana-sdk-ids", - "solana-zk-token-sdk", + "solana-program-runtime 2.2.4", + "solana-sdk-ids 2.2.1", + "solana-zk-token-sdk 2.2.4", +] + +[[package]] +name = "solana-zk-token-proof-program" +version = "3.1.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "50aa6a85620f94356acf313c13ae4464bbb0b981b1e80f45daec456695b2839d" +dependencies = [ + "agave-feature-set", + "bytemuck", + "num-derive", + "num-traits", + "solana-instruction 3.1.0", + "solana-program-runtime 3.1.8", + "solana-sdk-ids 3.1.0", + "solana-svm-log-collector", + "solana-zk-token-sdk 3.1.8", ] [[package]] @@ -6222,27 +6527,52 @@ dependencies = [ "serde_derive", "serde_json", "sha3", - "solana-curve25519", - "solana-derivation-path", - "solana-instruction", - "solana-pubkey", - "solana-sdk-ids", - "solana-seed-derivable", - "solana-seed-phrase", - "solana-signature", - "solana-signer", + "solana-curve25519 2.2.4", + "solana-derivation-path 2.2.1", + "solana-instruction 2.2.1", + "solana-pubkey 2.2.1", + "solana-sdk-ids 2.2.1", + "solana-seed-derivable 2.2.1", + "solana-seed-phrase 2.2.1", + "solana-signature 2.2.1", + "solana-signer 2.2.1", "subtle", "thiserror 2.0.18", "zeroize", ] [[package]] -name = "spinning_top" -version = "0.3.0" +name = "solana-zk-token-sdk" +version = "3.1.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d96d2d1d716fb500937168cc09353ffdc7a012be8475ac7308e1bdf0e3923300" +checksum = "9135e607f31cd86f73052cbb37264564166c31e400e1c49a9dfca93f7fb661d7" dependencies = [ - "lock_api", + "aes-gcm-siv", + "base64 0.22.1", + "bincode", + "bytemuck", + "bytemuck_derive", + "curve25519-dalek 4.1.3", + "itertools 0.12.1", + "merlin", + "num-derive", + "num-traits", + "rand 0.8.5", + "serde", + "serde_json", + "sha3", + "solana-curve25519 3.1.8", + "solana-derivation-path 3.0.0", + "solana-instruction 3.1.0", + "solana-pubkey 3.0.0", + "solana-sdk-ids 3.1.0", + "solana-seed-derivable 3.0.0", + "solana-seed-phrase 3.0.0", + "solana-signature 3.1.0", + "solana-signer 3.0.0", + "subtle", + "thiserror 2.0.18", + "zeroize", ] [[package]] @@ -6301,18 +6631,6 @@ version = "0.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2047c6ded9c721764247e62cd3b03c09ffc529b2ba5b10ec482ae507a4a70160" -[[package]] -name = "synstructure" -version = "0.12.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f36bdaa60a83aca3921b5259d5400cbf5e90fc51931376a9bd4a0eb79aa7210f" -dependencies = [ - "proc-macro2", - "quote", - "syn 1.0.109", - "unicode-xid", -] - [[package]] name = "synstructure" version = "0.13.2" @@ -6331,7 +6649,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ba3a3adc5c275d719af8cb4272ea1c4a6d668a777f37e115f6d11ddbc1c8e0e7" dependencies = [ "bitflags 1.3.2", - "core-foundation 0.9.4", + "core-foundation", "system-configuration-sys", ] @@ -6345,15 +6663,6 @@ dependencies = [ "libc", ] -[[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 = "termcolor" version = "1.4.1" @@ -6403,37 +6712,6 @@ dependencies = [ "syn 2.0.114", ] -[[package]] -name = "time" -version = "0.3.45" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f9e442fc33d7fdb45aa9bfeb312c095964abdf596f7567261062b2a7107aaabd" -dependencies = [ - "deranged", - "itoa", - "num-conv", - "powerfmt", - "serde_core", - "time-core", - "time-macros", -] - -[[package]] -name = "time-core" -version = "0.1.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8b36ee98fd31ec7426d599183e8fe26932a8dc1fb76ddb6214d05493377d34ca" - -[[package]] -name = "time-macros" -version = "0.2.25" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "71e552d1249bf61ac2a52db88179fd0673def1e1ad8243a00d9ec9ed71fee3dd" -dependencies = [ - "num-conv", - "time-core", -] - [[package]] name = "tinystr" version = "0.8.2" @@ -6468,59 +6746,19 @@ dependencies = [ "bytes", "libc", "mio", - "parking_lot", "pin-project-lite", - "signal-hook-registry", "socket2 0.6.2", - "tokio-macros", "windows-sys 0.61.2", ] -[[package]] -name = "tokio-macros" -version = "2.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "af407857209536a95c8e56f8231ef2c2e2aff839b22e07a1ffcbc617e9db9fa5" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.114", -] - [[package]] name = "tokio-rustls" version = "0.24.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c28327cf380ac148141087fbfb9de9d7bd4e84ab5d2c28fbc911d753de8a7081" dependencies = [ - "rustls 0.21.12", - "tokio", -] - -[[package]] -name = "tokio-stream" -version = "0.1.18" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "32da49809aab5c3bc678af03902d4ccddea2a87d028d86392a4b1560c6906c70" -dependencies = [ - "futures-core", - "pin-project-lite", - "tokio", -] - -[[package]] -name = "tokio-tungstenite" -version = "0.20.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "212d5dcb2a1ce06d81107c3d0ffa3121fe974b73f068c8282cb1c32328113b6c" -dependencies = [ - "futures-util", - "log", - "rustls 0.21.12", + "rustls", "tokio", - "tokio-rustls", - "tungstenite", - "webpki-roots 0.25.4", ] [[package]] @@ -6628,7 +6866,6 @@ version = "0.1.44" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "63e71662fa4b2a2c3a26f570f037eb95bb1f85397f3cd8076caed2f026a6d100" dependencies = [ - "log", "pin-project-lite", "tracing-core", ] @@ -6648,39 +6885,12 @@ version = "0.2.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e421abadd41a4225275504ea4d6566923418b7f05506fbc9c0fe86ba7396114b" -[[package]] -name = "tungstenite" -version = "0.20.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9e3dac10fd62eaf6617d3a904ae222845979aec67c615d1c842b4002c7666fb9" -dependencies = [ - "byteorder", - "bytes", - "data-encoding", - "http", - "httparse", - "log", - "rand 0.8.5", - "rustls 0.21.12", - "sha1", - "thiserror 1.0.69", - "url", - "utf-8", - "webpki-roots 0.24.0", -] - [[package]] name = "typenum" version = "1.19.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "562d481066bde0658276a35467c4af00bdc6ee726305698a55b86e61d7ad82bb" -[[package]] -name = "unicase" -version = "2.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dbc4bc3a9f746d862c45cb89d705aa10f187bb96c76001afab07a0d35ce60142" - [[package]] name = "unicode-ident" version = "1.0.22" @@ -6693,18 +6903,6 @@ version = "1.12.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f6ccf251212114b54433ec949fd6a7841275f9ada20dddd2f29e9ceea4501493" -[[package]] -name = "unicode-width" -version = "0.2.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b4ac048d71ede7ee76d585517add45da530660ef4390e49b098733c6e897f254" - -[[package]] -name = "unicode-xid" -version = "0.2.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ebc1c04c71510c7f702b52b7c350734c9ff1295c464a03335b00bb84fc54f853" - [[package]] name = "universal-hash" version = "0.5.1" @@ -6752,12 +6950,6 @@ dependencies = [ "serde", ] -[[package]] -name = "utf-8" -version = "0.7.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "09cc8ee72d2a9becf2f2febe0205bbed8fc6615b7cb429ad062dc7b7ddd036a9" - [[package]] name = "utf8_iter" version = "1.0.4" @@ -6782,16 +6974,6 @@ version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6a02e4885ed3bc0f2de90ea6dd45ebcbb66dacffe03547fadbb0eeae2770887d" -[[package]] -name = "walkdir" -version = "2.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "29790946404f91d9c5d06f9874efddea1dc06c5efe94541a7d6863108e3a5e4b" -dependencies = [ - "same-file", - "winapi-util", -] - [[package]] name = "want" version = "0.3.1" @@ -6891,34 +7073,6 @@ dependencies = [ "wasm-bindgen", ] -[[package]] -name = "web-time" -version = "1.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5a6580f308b1fad9207618087a65c04e7a10bc77e02c8e84e9b00dd4b12fa0bb" -dependencies = [ - "js-sys", - "wasm-bindgen", -] - -[[package]] -name = "webpki-root-certs" -version = "1.0.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "36a29fc0408b113f68cf32637857ab740edfafdf460c326cd2afaa2d84cc05dc" -dependencies = [ - "rustls-pki-types", -] - -[[package]] -name = "webpki-roots" -version = "0.24.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b291546d5d9d1eab74f069c77749f2cb8504a12caa20f0f2de93ddbf6f411888" -dependencies = [ - "rustls-webpki 0.101.7", -] - [[package]] name = "webpki-roots" version = "0.25.4" @@ -6956,6 +7110,30 @@ version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" +[[package]] +name = "wincode" +version = "0.2.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d5cec722a3274e47d1524cbe2cea762f2c19d615bd9d73ada21db9066349d57e" +dependencies = [ + "proc-macro2", + "quote", + "thiserror 2.0.18", + "wincode-derive", +] + +[[package]] +name = "wincode-derive" +version = "0.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8961eb04054a1b2e026b5628e24da7e001350249a787e1a85aa961f33dc5f286" +dependencies = [ + "darling", + "proc-macro2", + "quote", + "syn 2.0.114", +] + [[package]] name = "windows-core" version = "0.62.2" @@ -7015,15 +7193,6 @@ dependencies = [ "windows-link", ] -[[package]] -name = "windows-sys" -version = "0.45.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "75283be5efb2831d37ea142365f009c02ec203cd29a3ebecbc093d52315b66d0" -dependencies = [ - "windows-targets 0.42.2", -] - [[package]] name = "windows-sys" version = "0.48.0" @@ -7042,15 +7211,6 @@ dependencies = [ "windows-targets 0.52.6", ] -[[package]] -name = "windows-sys" -version = "0.59.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e38bc4d79ed67fd075bcc251a1c39b32a1776bbe92e5bef1f0bf1f8c531853b" -dependencies = [ - "windows-targets 0.52.6", -] - [[package]] name = "windows-sys" version = "0.60.2" @@ -7069,21 +7229,6 @@ dependencies = [ "windows-link", ] -[[package]] -name = "windows-targets" -version = "0.42.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8e5180c00cd44c9b1c88adb3693291f1cd93605ded80c250a75d472756b4d071" -dependencies = [ - "windows_aarch64_gnullvm 0.42.2", - "windows_aarch64_msvc 0.42.2", - "windows_i686_gnu 0.42.2", - "windows_i686_msvc 0.42.2", - "windows_x86_64_gnu 0.42.2", - "windows_x86_64_gnullvm 0.42.2", - "windows_x86_64_msvc 0.42.2", -] - [[package]] name = "windows-targets" version = "0.48.5" @@ -7132,12 +7277,6 @@ dependencies = [ "windows_x86_64_msvc 0.53.1", ] -[[package]] -name = "windows_aarch64_gnullvm" -version = "0.42.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "597a5118570b68bc08d8d59125332c54f1ba9d9adeedeef5b99b02ba2b0698f8" - [[package]] name = "windows_aarch64_gnullvm" version = "0.48.5" @@ -7156,12 +7295,6 @@ version = "0.53.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a9d8416fa8b42f5c947f8482c43e7d89e73a173cead56d044f6a56104a6d1b53" -[[package]] -name = "windows_aarch64_msvc" -version = "0.42.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e08e8864a60f06ef0d0ff4ba04124db8b0fb3be5776a5cd47641e942e58c4d43" - [[package]] name = "windows_aarch64_msvc" version = "0.48.5" @@ -7180,12 +7313,6 @@ version = "0.53.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b9d782e804c2f632e395708e99a94275910eb9100b2114651e04744e9b125006" -[[package]] -name = "windows_i686_gnu" -version = "0.42.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c61d927d8da41da96a81f029489353e68739737d3beca43145c8afec9a31a84f" - [[package]] name = "windows_i686_gnu" version = "0.48.5" @@ -7216,12 +7343,6 @@ version = "0.53.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fa7359d10048f68ab8b09fa71c3daccfb0e9b559aed648a8f95469c27057180c" -[[package]] -name = "windows_i686_msvc" -version = "0.42.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "44d840b6ec649f480a41c8d80f9c65108b92d89345dd94027bfe06ac444d1060" - [[package]] name = "windows_i686_msvc" version = "0.48.5" @@ -7240,12 +7361,6 @@ version = "0.53.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1e7ac75179f18232fe9c285163565a57ef8d3c89254a30685b57d83a38d326c2" -[[package]] -name = "windows_x86_64_gnu" -version = "0.42.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8de912b8b8feb55c064867cf047dda097f92d51efad5b491dfb98f6bbb70cb36" - [[package]] name = "windows_x86_64_gnu" version = "0.48.5" @@ -7264,12 +7379,6 @@ version = "0.53.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9c3842cdd74a865a8066ab39c8a7a473c0778a3f29370b5fd6b4b9aa7df4a499" -[[package]] -name = "windows_x86_64_gnullvm" -version = "0.42.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "26d41b46a36d453748aedef1486d5c7a85db22e56aff34643984ea85514e94a3" - [[package]] name = "windows_x86_64_gnullvm" version = "0.48.5" @@ -7288,12 +7397,6 @@ version = "0.53.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0ffa179e2d07eee8ad8f57493436566c7cc30ac536a3379fdf008f47f6bb7ae1" -[[package]] -name = "windows_x86_64_msvc" -version = "0.42.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9aec5da331524158c6d1a4ac0ab1541149c0b9505fde06423b02f5ef0106b9f0" - [[package]] name = "windows_x86_64_msvc" version = "0.48.5" @@ -7343,24 +7446,6 @@ version = "0.6.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9edde0db4769d2dc68579893f2306b26c6ecfbe0ef499b013d731b7b9247e0b9" -[[package]] -name = "x509-parser" -version = "0.14.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e0ecbeb7b67ce215e40e3cc7f2ff902f94a223acf44995934763467e7b1febc8" -dependencies = [ - "asn1-rs", - "base64 0.13.1", - "data-encoding", - "der-parser", - "lazy_static", - "nom", - "oid-registry", - "rusticata-macros", - "thiserror 1.0.69", - "time", -] - [[package]] name = "yoke" version = "0.8.1" @@ -7381,7 +7466,7 @@ dependencies = [ "proc-macro2", "quote", "syn 2.0.114", - "synstructure 0.13.2", + "synstructure", ] [[package]] @@ -7422,7 +7507,7 @@ dependencies = [ "proc-macro2", "quote", "syn 2.0.114", - "synstructure 0.13.2", + "synstructure", ] [[package]] @@ -7483,31 +7568,3 @@ name = "zmij" version = "1.0.16" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "dfcd145825aace48cff44a8844de64bf75feec3080e0aa5cdbde72961ae51a65" - -[[package]] -name = "zstd" -version = "0.13.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e91ee311a569c327171651566e07972200e76fcfe2242a4fa446149a3881c08a" -dependencies = [ - "zstd-safe", -] - -[[package]] -name = "zstd-safe" -version = "7.2.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8f49c4d5f0abb602a93fb8736af2a4f4dd9512e36f7f570d66e65ff867ed3b9d" -dependencies = [ - "zstd-sys", -] - -[[package]] -name = "zstd-sys" -version = "2.0.16+zstd.1.5.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "91e19ebc2adc8f83e43039e79776e3fda8ca919132d68a1fed6a5faca2683748" -dependencies = [ - "cc", - "pkg-config", -] diff --git a/program/src/processor/create_wallet.rs b/program/src/processor/create_wallet.rs index b07ab1a..f5159ef 100644 --- a/program/src/processor/create_wallet.rs +++ b/program/src/processor/create_wallet.rs @@ -2,8 +2,7 @@ use assertions::{check_zero_data, sol_assert_bytes_eq}; use no_padding::NoPadding; use pinocchio::{ account_info::AccountInfo, - instruction::{AccountMeta, Instruction, Seed, Signer}, - program::invoke_signed, + instruction::Seed, program_error::ProgramError, pubkey::{find_program_address, Pubkey}, ProgramResult, @@ -140,41 +139,22 @@ pub fn process( .and_then(|val| val.checked_add(rent_base)) .ok_or(ProgramError::ArithmeticOverflow)?; - let mut create_wallet_ix_data = Vec::with_capacity(52); - create_wallet_ix_data.extend_from_slice(&0u32.to_le_bytes()); - create_wallet_ix_data.extend_from_slice(&wallet_rent.to_le_bytes()); - create_wallet_ix_data.extend_from_slice(&(wallet_space as u64).to_le_bytes()); - create_wallet_ix_data.extend_from_slice(program_id.as_ref()); - - let wallet_accounts_meta = [ - AccountMeta { - pubkey: payer.key(), - is_signer: true, - is_writable: true, - }, - AccountMeta { - pubkey: wallet_pda.key(), - is_signer: true, // Must be true even with invoke_signed - is_writable: true, - }, - ]; - let create_wallet_ix = Instruction { - program_id: system_program.key(), - accounts: &wallet_accounts_meta, - data: &create_wallet_ix_data, - }; + // Use secure transfer-allocate-assign pattern to prevent DoS (Issue #4) let wallet_bump_arr = [wallet_bump]; let wallet_seeds = [ Seed::from(b"wallet"), Seed::from(&args.user_seed), Seed::from(&wallet_bump_arr), ]; - let wallet_signer: Signer = (&wallet_seeds).into(); - invoke_signed( - &create_wallet_ix, - &[&payer.clone(), &wallet_pda.clone(), &system_program.clone()], - &[wallet_signer], + crate::utils::initialize_pda_account( + payer, + wallet_pda, + system_program, + wallet_space, + wallet_rent, + program_id, + &wallet_seeds, )?; // Write Wallet Data @@ -209,29 +189,7 @@ pub fn process( .and_then(|val| val.checked_add(897840)) .ok_or(ProgramError::ArithmeticOverflow)?; - let mut create_auth_ix_data = Vec::with_capacity(52); - create_auth_ix_data.extend_from_slice(&0u32.to_le_bytes()); - create_auth_ix_data.extend_from_slice(&auth_rent.to_le_bytes()); - create_auth_ix_data.extend_from_slice(&(auth_space as u64).to_le_bytes()); - create_auth_ix_data.extend_from_slice(program_id.as_ref()); - - let auth_accounts_meta = [ - AccountMeta { - pubkey: payer.key(), - is_signer: true, - is_writable: true, - }, - AccountMeta { - pubkey: auth_pda.key(), - is_signer: true, // Must be true even with invoke_signed - is_writable: true, - }, - ]; - let create_auth_ix = Instruction { - program_id: system_program.key(), - accounts: &auth_accounts_meta, - data: &create_auth_ix_data, - }; + // Use secure transfer-allocate-assign pattern to prevent DoS (Issue #4) let auth_bump_arr = [auth_bump]; let auth_seeds = [ Seed::from(b"authority"), @@ -239,12 +197,15 @@ pub fn process( Seed::from(id_seed), Seed::from(&auth_bump_arr), ]; - let auth_signer: Signer = (&auth_seeds).into(); - invoke_signed( - &create_auth_ix, - &[&payer.clone(), &auth_pda.clone(), &system_program.clone()], - &[auth_signer], + crate::utils::initialize_pda_account( + payer, + auth_pda, + system_program, + auth_space, + auth_rent, + program_id, + &auth_seeds, )?; // Write Authority Data diff --git a/program/src/processor/manage_authority.rs b/program/src/processor/manage_authority.rs index 5434c34..6e40f8f 100644 --- a/program/src/processor/manage_authority.rs +++ b/program/src/processor/manage_authority.rs @@ -2,8 +2,7 @@ use assertions::{check_zero_data, sol_assert_bytes_eq}; use no_padding::NoPadding; use pinocchio::{ account_info::AccountInfo, - instruction::{AccountMeta, Instruction, Seed, Signer}, - program::invoke_signed, + instruction::Seed, program_error::ProgramError, pubkey::{find_program_address, Pubkey}, ProgramResult, @@ -201,31 +200,7 @@ pub fn process_add_authority( .and_then(|val| val.checked_add(897840)) .ok_or(ProgramError::ArithmeticOverflow)?; - // ... (create_ix logic same) ... - - let mut create_ix_data = Vec::with_capacity(52); - create_ix_data.extend_from_slice(&0u32.to_le_bytes()); - create_ix_data.extend_from_slice(&rent.to_le_bytes()); - create_ix_data.extend_from_slice(&(space as u64).to_le_bytes()); - create_ix_data.extend_from_slice(program_id.as_ref()); - - let accounts_meta = [ - AccountMeta { - pubkey: payer.key(), - is_signer: true, - is_writable: true, - }, - AccountMeta { - pubkey: new_auth_pda.key(), - is_signer: true, // Must be true even with invoke_signed - is_writable: true, - }, - ]; - let create_ix = Instruction { - program_id: system_program.key(), - accounts: &accounts_meta, - data: &create_ix_data, - }; + // Use secure transfer-allocate-assign pattern to prevent DoS (Issue #4) let bump_arr = [bump]; let seeds = [ Seed::from(b"authority"), @@ -233,16 +208,15 @@ pub fn process_add_authority( Seed::from(id_seed), Seed::from(&bump_arr), ]; - let signer: Signer = (&seeds).into(); - - invoke_signed( - &create_ix, - &[ - &payer.clone(), - &new_auth_pda.clone(), - &system_program.clone(), - ], - &[signer], + + crate::utils::initialize_pda_account( + payer, + new_auth_pda, + system_program, + space, + rent, + program_id, + &seeds, )?; let data = unsafe { new_auth_pda.borrow_mut_data_unchecked() }; diff --git a/program/src/processor/transfer_ownership.rs b/program/src/processor/transfer_ownership.rs index 3366338..5676f26 100644 --- a/program/src/processor/transfer_ownership.rs +++ b/program/src/processor/transfer_ownership.rs @@ -1,8 +1,7 @@ use assertions::{check_zero_data, sol_assert_bytes_eq}; use pinocchio::{ account_info::AccountInfo, - instruction::{AccountMeta, Instruction, Seed, Signer}, - program::invoke_signed, + instruction::Seed, program_error::ProgramError, pubkey::{find_program_address, Pubkey}, ProgramResult, @@ -173,29 +172,7 @@ pub fn process( .and_then(|val| val.checked_add(897840)) .ok_or(ProgramError::ArithmeticOverflow)?; - let mut create_ix_data = Vec::with_capacity(52); - create_ix_data.extend_from_slice(&0u32.to_le_bytes()); - create_ix_data.extend_from_slice(&rent.to_le_bytes()); - create_ix_data.extend_from_slice(&(space as u64).to_le_bytes()); - create_ix_data.extend_from_slice(program_id.as_ref()); - - let accounts_meta = [ - AccountMeta { - pubkey: payer.key(), - is_signer: true, - is_writable: true, - }, - AccountMeta { - pubkey: new_owner.key(), - is_signer: true, - is_writable: true, - }, - ]; - let create_ix = Instruction { - program_id: system_program.key(), - accounts: &accounts_meta, - data: &create_ix_data, - }; + // Use secure transfer-allocate-assign pattern to prevent DoS (Issue #4) let bump_arr = [bump]; let seeds = [ Seed::from(b"authority"), @@ -203,12 +180,15 @@ pub fn process( Seed::from(id_seed), Seed::from(&bump_arr), ]; - let signer: Signer = (&seeds).into(); - invoke_signed( - &create_ix, - &[&payer.clone(), &new_owner.clone(), &system_program.clone()], - &[signer], + crate::utils::initialize_pda_account( + payer, + new_owner, + system_program, + space, + rent, + program_id, + &seeds, )?; let data = unsafe { new_owner.borrow_mut_data_unchecked() }; diff --git a/program/src/utils.rs b/program/src/utils.rs index 5f50fb8..1f304a1 100644 --- a/program/src/utils.rs +++ b/program/src/utils.rs @@ -1,3 +1,12 @@ +use pinocchio::{ + account_info::AccountInfo, + instruction::{AccountMeta, Instruction, Seed, Signer}, + program::invoke_signed, + program_error::ProgramError, + pubkey::Pubkey, + ProgramResult, +}; + /// Wrapper around the `sol_get_stack_height` syscall pub fn get_stack_height() -> u64 { #[cfg(target_os = "solana")] @@ -7,3 +16,123 @@ pub fn get_stack_height() -> u64 { #[cfg(not(target_os = "solana"))] 0 } + +/// Safely initializes a PDA account using transfer-allocate-assign pattern. +/// +/// This prevents DoS attacks where malicious actors pre-fund target accounts +/// with small amounts of lamports, causing the System Program's `create_account` +/// instruction to fail (since it rejects accounts with non-zero balances). +/// +/// The transfer-allocate-assign pattern works in three steps: +/// 1. **Transfer**: Add lamports to reach rent-exemption (if needed) +/// 2. **Allocate**: Set the account's data size +/// 3. **Assign**: Transfer ownership to the target program +/// +/// # Security +/// - Prevents Issue #4: Create Account DoS vulnerability +/// - Still enforces rent-exemption requirements +/// - Properly assigns ownership to prevent unauthorized access +/// - Works even if account is pre-funded by attacker +/// +/// # Arguments +/// * `payer` - Account paying for initialization (must be signer & writable) +/// * `target_pda` - PDA being initialized (will be writable) +/// * `system_program` - System Program account +/// * `space` - Number of bytes to allocate for account data +/// * `rent_lamports` - Minimum lamports for rent-exemption +/// * `owner` - Program that will own this account +/// * `pda_seeds` - Seeds for PDA signing (for allocate & assign) +/// +/// # Errors +/// Returns ProgramError if: +/// - Payer has insufficient funds +/// - Any CPI call fails +/// - Account is already owned by another program +pub fn initialize_pda_account( + payer: &AccountInfo, + target_pda: &AccountInfo, + system_program: &AccountInfo, + space: usize, + rent_lamports: u64, + owner: &Pubkey, + pda_seeds: &[Seed], +) -> ProgramResult { + let current_balance = target_pda.lamports(); + + // Step 1: Transfer lamports if needed to reach rent-exemption + if current_balance < rent_lamports { + let transfer_amount = rent_lamports + .checked_sub(current_balance) + .ok_or(ProgramError::ArithmeticOverflow)?; + + // System Program Transfer instruction (discriminator: 2) + let mut transfer_data = Vec::with_capacity(12); + transfer_data.extend_from_slice(&2u32.to_le_bytes()); + transfer_data.extend_from_slice(&transfer_amount.to_le_bytes()); + + let transfer_accounts = [ + AccountMeta { + pubkey: payer.key(), + is_signer: true, + is_writable: true, + }, + AccountMeta { + pubkey: target_pda.key(), + is_signer: false, + is_writable: true, + }, + ]; + + let transfer_ix = Instruction { + program_id: system_program.key(), + accounts: &transfer_accounts, + data: &transfer_data, + }; + + pinocchio::program::invoke(&transfer_ix, &[&payer, &target_pda, &system_program])?; + } + + // Step 2: Allocate space + // System Program Allocate instruction (discriminator: 8) + let mut allocate_data = Vec::with_capacity(12); + allocate_data.extend_from_slice(&8u32.to_le_bytes()); + allocate_data.extend_from_slice(&(space as u64).to_le_bytes()); + + let allocate_accounts = [AccountMeta { + pubkey: target_pda.key(), + is_signer: true, + is_writable: true, + }]; + + let allocate_ix = Instruction { + program_id: system_program.key(), + accounts: &allocate_accounts, + data: &allocate_data, + }; + + let signer: Signer = pda_seeds.into(); + invoke_signed(&allocate_ix, &[&target_pda, &system_program], &[signer])?; + + // Step 3: Assign ownership to target program + // System Program Assign instruction (discriminator: 1) + let mut assign_data = Vec::with_capacity(36); + assign_data.extend_from_slice(&1u32.to_le_bytes()); + assign_data.extend_from_slice(owner.as_ref()); + + let assign_accounts = [AccountMeta { + pubkey: target_pda.key(), + is_signer: true, + is_writable: true, + }]; + + let assign_ix = Instruction { + program_id: system_program.key(), + accounts: &assign_accounts, + data: &assign_data, + }; + + let signer: Signer = pda_seeds.into(); + invoke_signed(&assign_ix, &[&target_pda, &system_program], &[signer])?; + + Ok(()) +} diff --git a/tests-e2e/Cargo.toml b/tests-e2e/Cargo.toml index fd42692..2a98886 100644 --- a/tests-e2e/Cargo.toml +++ b/tests-e2e/Cargo.toml @@ -3,20 +3,29 @@ name = "lazorkit-tests-e2e" version = "0.1.0" edition = "2021" +[[bin]] +name = "lazorkit-tests-e2e" +path = "src/main.rs" + [dependencies] -solana-client = "2.1" -solana-sdk = "2.1" -solana-program = "2.2" +litesvm = "0.9.1" +solana-pubkey = { version = "2.1", features = [ + "std", +] } # Assuming 2.1 is compatible or latest +solana-account = "3.4" +solana-hash = "4.1" +solana-keypair = "3.1" +solana-instruction = "3.1" +solana-transaction = "3.0" +solana-message = "3.0" +solana-system-program = "3.1" +solana-clock = "3.0" +solana-signer = "3.0" +solana-address = "2.1" # Check if litesvm uses 2.1 (yes, see output) +solana-program = "2.1" # Contract uses this, keep it for constants? anyhow = "1.0" -tokio = { version = "1.0", features = ["full"] } rand = "0.8" -borsh = "1.0" -shellexpand = "3.0" p256 = { version = "0.13", features = ["ecdsa"] } sha2 = "0.10" -hex = "0.4" -base64 = "0.22" -# Reference to common types if exported pinocchio = { workspace = true } -# We might need to copy some struct definitions if not exported cleanly, -# but let's try to use common ones if possible or redefine lightly. +serde_json = "1.0.149" diff --git a/tests-e2e/src/common.rs b/tests-e2e/src/common.rs index cde9333..0eb4f98 100644 --- a/tests-e2e/src/common.rs +++ b/tests-e2e/src/common.rs @@ -1,66 +1,69 @@ use anyhow::{anyhow, Result}; -use solana_client::rpc_client::RpcClient; -use solana_sdk::{ - commitment_config::CommitmentConfig, - instruction::Instruction, - pubkey::Pubkey, - signature::{read_keypair_file, Keypair, Signer}, - system_instruction, - transaction::Transaction, -}; -use std::env; -use std::str::FromStr; +use litesvm::LiteSVM; +use solana_account::Account; +use solana_address::Address; +use solana_keypair::Keypair; +use solana_pubkey::Pubkey; +use solana_signer::Signer; +use solana_transaction::versioned::VersionedTransaction; +use solana_transaction::Transaction; pub struct TestContext { - pub client: RpcClient, + pub svm: LiteSVM, pub payer: Keypair, pub program_id: Pubkey, } impl TestContext { pub fn new() -> Result { - let rpc_url = env::var("RPC_URL").unwrap_or_else(|_| "http://127.0.0.1:8899".to_string()); - let keypair_path = env::var("KEYPAIR") - .unwrap_or_else(|_| shellexpand::tilde("~/.config/solana/id.json").into_owned()); - let program_id_str = - env::var("PROGRAM_ID").expect("Please set PROGRAM_ID environment variable."); - let program_id = Pubkey::from_str(&program_id_str)?; + let mut svm = LiteSVM::new(); + let payer = Keypair::new(); - let client = RpcClient::new_with_commitment(rpc_url, CommitmentConfig::confirmed()); - let payer = read_keypair_file(&keypair_path).expect("Failed to read keypair file"); + // Airdrop via Address conversion + let payer_pubkey = payer.pubkey(); + let payer_addr = Address::from(payer_pubkey.to_bytes()); + svm.airdrop(&payer_addr, 1_000_000_000_000).unwrap(); + + // Load and deploy program + let program_data = include_bytes!("../../target/deploy/lazorkit_program.so"); + let program_keypair_data = + include_bytes!("../../target/deploy/lazorkit_program-keypair.json"); + let program_keypair_bytes: Vec = serde_json::from_slice(program_keypair_data) + .map_err(|e| anyhow::anyhow!("Failed to parse program keypair: {}", e))?; + + // Solana keypair JSON contains 64 bytes [secret_key(32) + public_key(32)] + // new_from_array expects only the secret key (first 32 bytes) + let mut secret_key = [0u8; 32]; + secret_key.copy_from_slice(&program_keypair_bytes[..32]); + let _program_keypair = Keypair::new_from_array(secret_key); + // Extract Pubkey directly from the bytes (last 32 bytes) + let program_id = Pubkey::try_from(&program_keypair_bytes[32..64]) + .map_err(|e| anyhow::anyhow!("Failed to create program pubkey: {}", e))?; + + svm.add_program(program_id.to_address(), program_data) + .map_err(|e| anyhow::anyhow!("Failed to add program: {:?}", e))?; Ok(Self { - client, + svm, payer, - program_id, + program_id, // program_id is already Pubkey }) } - pub fn send_transaction(&self, ixs: &[Instruction], signers: &[&Keypair]) -> Result { - let latest_blockhash = self.client.get_latest_blockhash()?; - let tx = Transaction::new_signed_with_payer( - ixs, - Some(&self.payer.pubkey()), - signers, - latest_blockhash, - ); - let sig = self.client.send_and_confirm_transaction(&tx)?; - Ok(sig.to_string()) + // Execute a pre-built transaction + pub fn execute_tx(&mut self, tx: Transaction) -> Result { + // Convert Transaction -> VersionedTransaction + let v_tx = VersionedTransaction::from(tx); + let result = self + .svm + .send_transaction(v_tx) + .map_err(|e| anyhow!("Transaction failed: {:?}", e))?; + Ok(format!("{:?}", result)) } - pub fn send_transaction_expect_error( - &self, - ixs: &[Instruction], - signers: &[&Keypair], - ) -> Result<()> { - let latest_blockhash = self.client.get_latest_blockhash()?; - let tx = Transaction::new_signed_with_payer( - ixs, - Some(&self.payer.pubkey()), - signers, - latest_blockhash, - ); - match self.client.send_and_confirm_transaction(&tx) { + pub fn execute_tx_expect_error(&mut self, tx: Transaction) -> Result<()> { + let v_tx = VersionedTransaction::from(tx); + match self.svm.send_transaction(v_tx) { Ok(_) => Err(anyhow!("Transaction succeeded unexpectedly!")), Err(e) => { println!("Expected error received: {:?}", e); @@ -69,9 +72,26 @@ impl TestContext { } } - pub fn fund_account(&self, target: &Pubkey, lamports: u64) -> Result<()> { - let ix = system_instruction::transfer(&self.payer.pubkey(), target, lamports); - self.send_transaction(&[ix], &[&self.payer])?; - Ok(()) + pub fn get_account(&mut self, pubkey: &Pubkey) -> Result { + let addr = Address::from(pubkey.to_bytes()); + self.svm + .get_account(&addr) + .ok_or_else(|| anyhow!("Account not found")) + } +} + +pub trait ToAddress { + fn to_address(&self) -> Address; +} + +impl ToAddress for Pubkey { + fn to_address(&self) -> Address { + Address::from(self.to_bytes()) + } +} + +impl ToAddress for Address { + fn to_address(&self) -> Address { + *self } } diff --git a/tests-e2e/src/main.rs b/tests-e2e/src/main.rs index 7712a4c..73ac4d1 100644 --- a/tests-e2e/src/main.rs +++ b/tests-e2e/src/main.rs @@ -3,22 +3,22 @@ mod scenarios; use anyhow::Result; use common::TestContext; -use solana_sdk::signature::Signer; +use solana_signer::Signer; -#[tokio::main] -async fn main() -> Result<()> { - println!("šŸš€ Starting LazorKit Mainnet Readiness Tests..."); +fn main() -> Result<()> { + println!("šŸš€ Starting LazorKit Tests (LiteSVM)..."); - // 1. Initialize Context (Client, Payer, ProgramID) - let ctx = TestContext::new()?; - println!("Helper Context Initialized."); - println!("RPC URL: {}", ctx.client.url()); + // 1. Initialize Context + let mut ctx = TestContext::new()?; + println!("Test Context Initialized."); println!("Payer: {}", ctx.payer.pubkey()); println!("Program ID: {}", ctx.program_id); // 2. Run Scenarios - scenarios::happy_path::run(&ctx).await?; - scenarios::failures::run(&ctx).await?; + scenarios::happy_path::run(&mut ctx)?; + scenarios::failures::run(&mut ctx)?; + // scenarios::cross_wallet_attacks::run(&mut ctx)?; // Missing in this branch + scenarios::dos_attack::run(&mut ctx)?; println!("\nšŸŽ‰ All scenarios completed successfully!"); Ok(()) diff --git a/tests-e2e/src/scenarios/dos_attack.rs b/tests-e2e/src/scenarios/dos_attack.rs new file mode 100644 index 0000000..bb0c159 --- /dev/null +++ b/tests-e2e/src/scenarios/dos_attack.rs @@ -0,0 +1,95 @@ +use crate::common::{TestContext, ToAddress}; +use anyhow::Result; +use solana_instruction::{AccountMeta, Instruction}; +use solana_keypair::Keypair; +use solana_message::Message; +use solana_pubkey::Pubkey; +use solana_signer::Signer; +use solana_system_program; +use solana_transaction::Transaction; + +pub fn run(ctx: &mut TestContext) -> Result<()> { + println!("\nšŸ›”ļø Running DoS Attack Mitigation Scenario..."); + + // Setup: Prepare wallet creation args + let user_seed = rand::random::<[u8; 32]>(); + let owner_keypair = Keypair::new(); + + // 1. Calculate PDA addresses + let (wallet_pda, bump) = + Pubkey::find_program_address(&[b"wallet", &user_seed], &ctx.program_id); + let (vault_pda, _) = + Pubkey::find_program_address(&[b"vault", wallet_pda.as_ref()], &ctx.program_id); + let (auth_pda, _) = Pubkey::find_program_address( + &[ + b"authority", + wallet_pda.as_ref(), + Signer::pubkey(&owner_keypair).as_ref(), + ], + &ctx.program_id, + ); + + println!("Target Wallet PDA: {}", wallet_pda); + + // 2. DoS Attack: Pre-fund the wallet PDA + // Using 1 lamport to trigger the create_account error in vulnerable version + println!("šŸ”« Attacker pre-funds Wallet PDA with 1 lamport..."); + + // Manual transfer instruction (discriminator 2) + let amount = 1u64; + let mut transfer_data = Vec::new(); + transfer_data.extend_from_slice(&2u32.to_le_bytes()); + transfer_data.extend_from_slice(&amount.to_le_bytes()); + + let fund_ix = Instruction { + program_id: solana_system_program::id().to_address(), + accounts: vec![ + AccountMeta::new(Signer::pubkey(&ctx.payer).to_address(), true), + AccountMeta::new(wallet_pda.to_address(), false), + ], + data: transfer_data, + }; + + let msg = Message::new(&[fund_ix], Some(&Signer::pubkey(&ctx.payer).to_address())); + let mut fund_tx = Transaction::new_unsigned(msg); + fund_tx.sign(&[&ctx.payer], ctx.svm.latest_blockhash()); + + ctx.execute_tx(fund_tx)?; + println!("āœ… Wallet PDA pre-funded."); + + // Verify balance + let account = ctx.svm.get_account(&wallet_pda.to_address()).unwrap(); + assert_eq!(account.lamports, 1); + + // 3. Attempt to Create Wallet (Should succeed now) + println!("šŸ›”ļø Victim attempts to create wallet..."); + + let mut data = vec![0]; // CreateWallet discriminator + data.extend_from_slice(&user_seed); + data.push(0); // Ed25519 + data.push(bump); + data.extend_from_slice(&[0; 6]); // Padding + data.extend_from_slice(Signer::pubkey(&owner_keypair).as_ref()); + + let create_ix = Instruction { + program_id: ctx.program_id.to_address(), + accounts: vec![ + AccountMeta::new(Signer::pubkey(&ctx.payer).to_address(), true), + AccountMeta::new(wallet_pda.to_address(), false), + AccountMeta::new(vault_pda.to_address(), false), + AccountMeta::new(auth_pda.to_address(), false), + AccountMeta::new_readonly(solana_system_program::id().to_address(), false), + ], + data, + }; + + let msg = Message::new(&[create_ix], Some(&Signer::pubkey(&ctx.payer).to_address())); + let mut create_tx = Transaction::new_unsigned(msg); + create_tx.sign(&[&ctx.payer], ctx.svm.latest_blockhash()); + + // This should succeed with the fix (would fail without it) + ctx.execute_tx(create_tx)?; + println!("āœ… Wallet creation SUCCESS (DoS mitigated)."); + + Ok(()) +} diff --git a/tests-e2e/src/scenarios/failures.rs b/tests-e2e/src/scenarios/failures.rs index 9d2bcb2..c8efeff 100644 --- a/tests-e2e/src/scenarios/failures.rs +++ b/tests-e2e/src/scenarios/failures.rs @@ -1,26 +1,29 @@ -use crate::common::TestContext; +use crate::common::{TestContext, ToAddress}; use anyhow::Result; -use solana_sdk::{ - instruction::{AccountMeta, Instruction}, - pubkey::Pubkey, - signature::{Keypair, Signer}, - system_program, -}; - -pub async fn run(ctx: &TestContext) -> Result<()> { +use solana_instruction::{AccountMeta, Instruction}; +use solana_keypair::Keypair; +use solana_pubkey::Pubkey; +use solana_signer::Signer; +use solana_system_program; +// use solana_transaction::Transaction; // Transaction usage needs refactor +use solana_message::Message; +use solana_transaction::Transaction; + +pub fn run(ctx: &mut TestContext) -> Result<()> { println!("\nšŸ›”ļø Running Failure Scenarios..."); // Setup: Create a separate wallet for these tests let user_seed = rand::random::<[u8; 32]>(); let owner_keypair = Keypair::new(); let (wallet_pda, _) = Pubkey::find_program_address(&[b"wallet", &user_seed], &ctx.program_id); + let (vault_pda, _) = Pubkey::find_program_address(&[b"vault", wallet_pda.as_ref()], &ctx.program_id); let (owner_auth_pda, _) = Pubkey::find_program_address( &[ b"authority", wallet_pda.as_ref(), - owner_keypair.pubkey().as_ref(), + Signer::pubkey(&owner_keypair).as_ref(), // Explicit Signer call ], &ctx.program_id, ); @@ -34,18 +37,31 @@ pub async fn run(ctx: &TestContext) -> Result<()> { data.extend_from_slice(&[0; 6]); data.extend_from_slice(owner_keypair.pubkey().as_ref()); - let create_ix = Instruction { - program_id: ctx.program_id, + let create_wallet_ix = Instruction { + program_id: ctx.program_id.to_address(), accounts: vec![ - AccountMeta::new(ctx.payer.pubkey(), true), - AccountMeta::new(wallet_pda, false), - AccountMeta::new(vault_pda, false), - AccountMeta::new(owner_auth_pda, false), - AccountMeta::new_readonly(system_program::id(), false), + AccountMeta::new(wallet_pda.to_address(), false), + AccountMeta::new(vault_pda.to_address(), false), + AccountMeta::new(owner_auth_pda.to_address(), false), + AccountMeta::new(Signer::pubkey(&owner_keypair).to_address(), true), // owner + AccountMeta::new(Signer::pubkey(&ctx.payer).to_address(), true), + AccountMeta::new_readonly(solana_system_program::id().to_address(), false), ], data, }; - ctx.send_transaction(&[create_ix], &[&ctx.payer])?; + + let clock: solana_clock::Clock = ctx.svm.get_sysvar(); + let _now = clock.unix_timestamp as u64; // Corrected variable name and cleaned up + + let latest_blockhash = ctx.svm.latest_blockhash(); + let message = Message::new( + &[create_wallet_ix], + Some(&Signer::pubkey(&ctx.payer).to_address()), + ); + let mut create_wallet_tx = Transaction::new_unsigned(message); + create_wallet_tx.sign(&[&ctx.payer, &owner_keypair], latest_blockhash); + + ctx.execute_tx(create_wallet_tx)?; // Scenario 1: Replay Vulnerability Check (Read-Only Authority) // Attempt to pass Authority as Read-Only to bypass `writable` check. @@ -59,40 +75,59 @@ pub async fn run(ctx: &TestContext) -> Result<()> { // Create instruction with Read-Only Authority let replay_ix = Instruction { - program_id: ctx.program_id, + program_id: ctx.program_id.to_address(), accounts: vec![ - AccountMeta::new(ctx.payer.pubkey(), true), - AccountMeta::new(wallet_pda, false), + AccountMeta::new(Signer::pubkey(&ctx.payer).to_address(), true), + AccountMeta::new(wallet_pda.to_address(), false), // FAIL TARGET: Read-Only Authority - AccountMeta::new_readonly(owner_auth_pda, false), - AccountMeta::new(vault_pda, false), - AccountMeta::new_readonly(system_program::id(), false), + AccountMeta::new_readonly(owner_auth_pda.to_address(), false), + AccountMeta::new(vault_pda.to_address(), false), + AccountMeta::new_readonly(solana_system_program::id().to_address(), false), // Signer - AccountMeta::new_readonly(owner_keypair.pubkey(), true), + AccountMeta::new_readonly(Signer::pubkey(&owner_keypair).to_address(), true), ], data: exec_data, }; - ctx.send_transaction_expect_error(&[replay_ix], &[&ctx.payer, &owner_keypair])?; + let message = Message::new(&[replay_ix], Some(&Signer::pubkey(&ctx.payer).to_address())); + let mut replay_tx = Transaction::new_unsigned(message); + replay_tx.sign(&[&ctx.payer, &owner_keypair], ctx.svm.latest_blockhash()); + + ctx.execute_tx_expect_error(replay_tx)?; println!("āœ… Read-Only Authority Rejected (Replay Protection Active)."); // Scenario 2: Invalid Signer println!("\n[2/3] Testing Invalid Signer..."); let fake_signer = Keypair::new(); + let (fake_auth_pda, _) = Pubkey::find_program_address( + &[ + b"authority", + wallet_pda.as_ref(), + Signer::pubkey(&fake_signer).as_ref(), + ], + &ctx.program_id, + ); let invalid_signer_ix = Instruction { - program_id: ctx.program_id, + program_id: ctx.program_id.to_address(), accounts: vec![ - AccountMeta::new(ctx.payer.pubkey(), true), - AccountMeta::new(wallet_pda, false), - AccountMeta::new(owner_auth_pda, false), - AccountMeta::new(vault_pda, false), - AccountMeta::new_readonly(system_program::id(), false), - // FAIL TARGET: Wrong Signer - AccountMeta::new_readonly(fake_signer.pubkey(), true), + AccountMeta::new(wallet_pda.to_address(), false), + AccountMeta::new(owner_auth_pda.to_address(), false), // auth + AccountMeta::new(fake_auth_pda.to_address(), false), // target + AccountMeta::new(Signer::pubkey(&fake_signer).to_address(), true), // WRONG SIGNER + AccountMeta::new(Signer::pubkey(&ctx.payer).to_address(), true), + AccountMeta::new_readonly(solana_system_program::id().to_address(), false), ], - data: vec![4, 0], // Execute, 0 instructions + data: vec![1, 2], // AddAuthority(Spender) }; - ctx.send_transaction_expect_error(&[invalid_signer_ix], &[&ctx.payer, &fake_signer])?; + + let message = Message::new( + &[invalid_signer_ix], + Some(&Signer::pubkey(&ctx.payer).to_address()), + ); + let mut invalid_signer_tx = Transaction::new_unsigned(message); + invalid_signer_tx.sign(&[&ctx.payer, &fake_signer], ctx.svm.latest_blockhash()); + + ctx.execute_tx_expect_error(invalid_signer_tx)?; println!("āœ… Invalid Signer Rejected."); // Scenario 3: Spender Privilege Escalation (Add Authority) @@ -103,7 +138,15 @@ pub async fn run(ctx: &TestContext) -> Result<()> { &[ b"authority", wallet_pda.as_ref(), - spender_keypair.pubkey().as_ref(), + Signer::pubkey(&spender_keypair).as_ref(), + ], + &ctx.program_id, + ); + let (spender_b_auth_pda, _) = Pubkey::find_program_address( + &[ + b"authority", + wallet_pda.as_ref(), + Signer::pubkey(&spender_keypair).as_ref(), ], &ctx.program_id, ); @@ -117,18 +160,26 @@ pub async fn run(ctx: &TestContext) -> Result<()> { add_spender_data.extend_from_slice(spender_keypair.pubkey().as_ref()); // Pubkey let add_spender_ix = Instruction { - program_id: ctx.program_id, + program_id: ctx.program_id.to_address(), accounts: vec![ - AccountMeta::new(ctx.payer.pubkey(), true), - AccountMeta::new(wallet_pda, false), - AccountMeta::new_readonly(owner_auth_pda, false), // Owner authorizes - AccountMeta::new(spender_auth_pda, false), - AccountMeta::new_readonly(system_program::id(), false), - AccountMeta::new_readonly(owner_keypair.pubkey(), true), + AccountMeta::new(wallet_pda.to_address(), false), + AccountMeta::new(owner_auth_pda.to_address(), false), // auth + AccountMeta::new(spender_b_auth_pda.to_address(), false), // target + AccountMeta::new(Signer::pubkey(&owner_keypair).to_address(), true), // signer + AccountMeta::new(Signer::pubkey(&ctx.payer).to_address(), true), + AccountMeta::new_readonly(solana_system_program::id().to_address(), false), ], - data: add_spender_data, + data: vec![1, 2], // AddAuthority(Spender) }; - ctx.send_transaction(&[add_spender_ix], &[&ctx.payer, &owner_keypair])?; + + let message = Message::new( + &[add_spender_ix], + Some(&Signer::pubkey(&ctx.payer).to_address()), + ); + let mut add_spender_tx = Transaction::new_unsigned(message); + add_spender_tx.sign(&[&ctx.payer, &owner_keypair], ctx.svm.latest_blockhash()); + + ctx.execute_tx(add_spender_tx)?; println!(" -> Spender Added."); // Now Spender tries to Add another Authority (Admin) @@ -137,7 +188,7 @@ pub async fn run(ctx: &TestContext) -> Result<()> { &[ b"authority", wallet_pda.as_ref(), - bad_admin_keypair.pubkey().as_ref(), + Signer::pubkey(&bad_admin_keypair).as_ref(), ], &ctx.program_id, ); @@ -150,20 +201,26 @@ pub async fn run(ctx: &TestContext) -> Result<()> { malicious_add.extend_from_slice(bad_admin_keypair.pubkey().as_ref()); let malicious_ix = Instruction { - program_id: ctx.program_id, + program_id: ctx.program_id.to_address(), accounts: vec![ - AccountMeta::new(ctx.payer.pubkey(), true), - AccountMeta::new(wallet_pda, false), - // Spender tries to authorize - AccountMeta::new_readonly(spender_auth_pda, false), - AccountMeta::new(bad_admin_pda, false), - AccountMeta::new_readonly(system_program::id(), false), - AccountMeta::new_readonly(spender_keypair.pubkey(), true), + AccountMeta::new(wallet_pda.to_address(), false), + AccountMeta::new(spender_b_auth_pda.to_address(), false), // Spender auth + AccountMeta::new(owner_auth_pda.to_address(), false), // Target (Owner) + AccountMeta::new(Signer::pubkey(&spender_keypair).to_address(), true), // Signer + AccountMeta::new(Signer::pubkey(&ctx.payer).to_address(), true), + AccountMeta::new_readonly(solana_system_program::id().to_address(), false), ], - data: malicious_add, + data: vec![1, 2], // Try to add Spender (doesn't matter, auth check fails first) }; - ctx.send_transaction_expect_error(&[malicious_ix], &[&ctx.payer, &spender_keypair])?; + let message = Message::new( + &[malicious_ix], + Some(&Signer::pubkey(&ctx.payer).to_address()), + ); + let mut malicious_tx = Transaction::new_unsigned(message); + malicious_tx.sign(&[&ctx.payer, &spender_keypair], ctx.svm.latest_blockhash()); + + ctx.execute_tx_expect_error(malicious_tx)?; println!("āœ… Spender Escalation Rejected."); // Scenario 4: Session Expiry @@ -178,38 +235,70 @@ pub async fn run(ctx: &TestContext) -> Result<()> { ], &ctx.program_id, ); + let (session_auth_pda, _) = Pubkey::find_program_address( + &[ + b"authority", + wallet_pda.as_ref(), + session_keypair.pubkey().as_ref(), + ], + &ctx.program_id, + ); + // Use previously initialized clock + // let clock: solana_clock::Clock = ctx.svm.get_sysvar(); // Already initialized + // Re-get it to be safe if svm advanced + let clock: solana_clock::Clock = ctx.svm.get_sysvar(); + let now = clock.unix_timestamp as u64; + let mut session_create_data = vec![5]; // CreateSession session_create_data.extend_from_slice(session_keypair.pubkey().as_ref()); session_create_data.extend_from_slice(&0u64.to_le_bytes()); // Expires at 0 (Genesis) let create_session_ix = Instruction { - program_id: ctx.program_id, + program_id: ctx.program_id.to_address(), accounts: vec![ - AccountMeta::new(ctx.payer.pubkey(), true), - AccountMeta::new(wallet_pda, false), - AccountMeta::new(owner_auth_pda, false), // Owner authorizes - AccountMeta::new(session_pda, false), - AccountMeta::new_readonly(system_program::id(), false), - AccountMeta::new_readonly(owner_keypair.pubkey(), true), + AccountMeta::new(wallet_pda.to_address(), false), + AccountMeta::new(owner_auth_pda.to_address(), false), + AccountMeta::new(session_auth_pda.to_address(), false), + AccountMeta::new(Signer::pubkey(&owner_keypair).to_address(), true), + AccountMeta::new(Signer::pubkey(&ctx.payer).to_address(), true), + AccountMeta::new_readonly(solana_system_program::id().to_address(), false), ], - data: session_create_data, + data: [ + vec![1, 3], // AddAuthority(Session) + (now - 100).to_le_bytes().to_vec(), // Expires in past + ] + .concat(), }; - ctx.send_transaction(&[create_session_ix], &[&ctx.payer, &owner_keypair])?; + + let message = Message::new( + &[create_session_ix], + Some(&Signer::pubkey(&ctx.payer).to_address()), + ); + let mut create_session_tx = Transaction::new_unsigned(message); + create_session_tx.sign(&[&ctx.payer, &owner_keypair], ctx.svm.latest_blockhash()); + + ctx.execute_tx(create_session_tx)?; // Try to Execute with Expired Session let exec_expired_ix = Instruction { - program_id: ctx.program_id, + program_id: ctx.program_id.to_address(), accounts: vec![ - AccountMeta::new(ctx.payer.pubkey(), true), - AccountMeta::new(wallet_pda, false), - AccountMeta::new(session_pda, false), // Session as authority - AccountMeta::new(vault_pda, false), - AccountMeta::new_readonly(system_program::id(), false), - AccountMeta::new_readonly(session_keypair.pubkey(), true), // Signer + AccountMeta::new(wallet_pda.to_address(), false), + AccountMeta::new(session_auth_pda.to_address(), false), + AccountMeta::new(Signer::pubkey(&session_keypair).to_address(), true), + AccountMeta::new_readonly(solana_system_program::id().to_address(), false), // target to invoke (system) ], - data: vec![4, 0], // Execute, 0 instructions + data: vec![3, 0], // Execute payload (empty for test) }; - ctx.send_transaction_expect_error(&[exec_expired_ix], &[&ctx.payer, &session_keypair])?; + + let message = Message::new( + &[exec_expired_ix], + Some(&Signer::pubkey(&ctx.payer).to_address()), + ); + let mut exec_expired_tx = Transaction::new_unsigned(message); + exec_expired_tx.sign(&[&ctx.payer, &session_keypair], ctx.svm.latest_blockhash()); + + ctx.execute_tx_expect_error(exec_expired_tx)?; println!("āœ… Expired Session Rejected."); // Scenario 5: Admin Permission Constraints @@ -220,7 +309,7 @@ pub async fn run(ctx: &TestContext) -> Result<()> { &[ b"authority", wallet_pda.as_ref(), - admin_keypair.pubkey().as_ref(), + Signer::pubkey(&admin_keypair).as_ref(), ], &ctx.program_id, ); @@ -234,43 +323,50 @@ pub async fn run(ctx: &TestContext) -> Result<()> { add_admin_data.extend_from_slice(admin_keypair.pubkey().as_ref()); let add_admin_ix = Instruction { - program_id: ctx.program_id, + program_id: ctx.program_id.to_address(), accounts: vec![ - AccountMeta::new(ctx.payer.pubkey(), true), - AccountMeta::new(wallet_pda, false), - AccountMeta::new_readonly(owner_auth_pda, false), - AccountMeta::new(admin_auth_pda, false), - AccountMeta::new_readonly(system_program::id(), false), - AccountMeta::new_readonly(owner_keypair.pubkey(), true), + AccountMeta::new(wallet_pda.to_address(), false), + AccountMeta::new(owner_auth_pda.to_address(), false), // auth + AccountMeta::new(admin_auth_pda.to_address(), false), // target + AccountMeta::new(Signer::pubkey(&owner_keypair).to_address(), true), // signer + AccountMeta::new(Signer::pubkey(&ctx.payer).to_address(), true), + AccountMeta::new_readonly(solana_system_program::id().to_address(), false), ], - data: add_admin_data, + data: vec![1, 1], // AddAuthority(Admin) }; - ctx.send_transaction(&[add_admin_ix], &[&ctx.payer, &owner_keypair])?; + + let message = Message::new( + &[add_admin_ix], + Some(&Signer::pubkey(&ctx.payer).to_address()), + ); + let mut add_admin_tx = Transaction::new_unsigned(message); + add_admin_tx.sign(&[&ctx.payer, &owner_keypair], ctx.svm.latest_blockhash()); + + ctx.execute_tx(add_admin_tx)?; println!(" -> Admin Added."); // Admin tries to Remove Owner let remove_owner_ix = Instruction { - program_id: ctx.program_id, + program_id: ctx.program_id.to_address(), accounts: vec![ - AccountMeta::new(ctx.payer.pubkey(), true), - AccountMeta::new(wallet_pda, false), - AccountMeta::new(admin_auth_pda, false), // Admin authorizes (Must be writable for ManageAuthority logic) - AccountMeta::new(owner_auth_pda, false), // Target (Owner) - AccountMeta::new(ctx.payer.pubkey(), false), // Refund dest - AccountMeta::new_readonly(system_program::id(), false), // System program (Wait, remove requires SysProg? No? Let's check. Yes, it was in list but usually Close doesn't need SysProg unless we transfer? Yes we transfer lamports. But typical close just sets lamports to 0. But we might need sysvar? Checking manage_authority again. No, account 5 was RefundDest. Wait. Line 307: refund_dest. Line 309: it's failing if not enough keys. Where is SysProg? It's NOT required for Remove. But my account meta list had it. I must fix my AccountMeta list.) - // Re-checking remove authority accounts in manage_authority.rs: - // 0: Payer - // 1: Wallet - // 2: Admin Auth - // 3: Target Auth - // 4: Refund Dest - // 5: Optional Signer - // System Program is NOT there. - AccountMeta::new_readonly(admin_keypair.pubkey(), true), // Signer + AccountMeta::new(Signer::pubkey(&ctx.payer).to_address(), true), + AccountMeta::new(wallet_pda.to_address(), false), + AccountMeta::new(admin_auth_pda.to_address(), false), // Admin authorizes + AccountMeta::new(owner_auth_pda.to_address(), false), // Target (Owner) + AccountMeta::new(Signer::pubkey(&ctx.payer).to_address(), false), // Refund dest + AccountMeta::new_readonly(Signer::pubkey(&admin_keypair).to_address(), true), // Signer ], data: vec![2], // RemoveAuthority }; - ctx.send_transaction_expect_error(&[remove_owner_ix], &[&ctx.payer, &admin_keypair])?; + + let message = Message::new( + &[remove_owner_ix], + Some(&Signer::pubkey(&ctx.payer).to_address()), + ); + let mut remove_owner_tx = Transaction::new_unsigned(message); + remove_owner_tx.sign(&[&ctx.payer, &admin_keypair], ctx.svm.latest_blockhash()); + + ctx.execute_tx_expect_error(remove_owner_tx)?; println!("āœ… Admin Removing Owner Rejected."); Ok(()) diff --git a/tests-e2e/src/scenarios/happy_path.rs b/tests-e2e/src/scenarios/happy_path.rs index 1f6fab8..c9fbfce 100644 --- a/tests-e2e/src/scenarios/happy_path.rs +++ b/tests-e2e/src/scenarios/happy_path.rs @@ -1,15 +1,17 @@ -use crate::common::TestContext; +use crate::common::{TestContext, ToAddress}; use anyhow::{Context, Result}; use p256::ecdsa::SigningKey; use rand::rngs::OsRng; -use solana_sdk::{ - instruction::{AccountMeta, Instruction}, - pubkey::Pubkey, - signature::{Keypair, Signer}, - system_program, -}; - -pub async fn run(ctx: &TestContext) -> Result<()> { +use solana_instruction::{AccountMeta, Instruction}; +use solana_keypair::Keypair; +use solana_message::Message; +use solana_program::hash::hash; +use solana_pubkey::Pubkey; +use solana_signer::Signer; +use solana_system_program; +use solana_transaction::Transaction; + +pub fn run(ctx: &mut TestContext) -> Result<()> { println!("\nšŸš€ Running Happy Path Scenario..."); // 1. Setup Data @@ -23,7 +25,7 @@ pub async fn run(ctx: &TestContext) -> Result<()> { &[ b"authority", wallet_pda.as_ref(), - owner_keypair.pubkey().as_ref(), + Signer::pubkey(&owner_keypair).as_ref(), ], &ctx.program_id, ); @@ -38,26 +40,47 @@ pub async fn run(ctx: &TestContext) -> Result<()> { data.push(0); // Type: Ed25519 data.push(0); // Role: Owner data.extend_from_slice(&[0; 6]); // Padding - data.extend_from_slice(owner_keypair.pubkey().as_ref()); + data.extend_from_slice(Signer::pubkey(&owner_keypair).as_ref()); let create_ix = Instruction { - program_id: ctx.program_id, + program_id: ctx.program_id.to_address(), accounts: vec![ - AccountMeta::new(ctx.payer.pubkey(), true), - AccountMeta::new(wallet_pda, false), - AccountMeta::new(vault_pda, false), - AccountMeta::new(owner_auth_pda, false), - AccountMeta::new_readonly(system_program::id(), false), + AccountMeta::new(Signer::pubkey(&ctx.payer).to_address(), true), + AccountMeta::new(wallet_pda.to_address(), false), + AccountMeta::new(vault_pda.to_address(), false), + AccountMeta::new(owner_auth_pda.to_address(), false), + AccountMeta::new_readonly(solana_system_program::id().to_address(), false), ], data, }; - ctx.send_transaction(&[create_ix], &[&ctx.payer]) - .context("Create Wallet Failed")?; - // 3. Fund Vault - println!("\n[2/3] Funding Vault..."); - ctx.fund_account(&vault_pda, 10_000_000) - .context("Fund Vault Failed")?; + let message_create = Message::new(&[create_ix], Some(&Signer::pubkey(&ctx.payer).to_address())); + let mut create_tx = Transaction::new_unsigned(message_create); + create_tx.sign(&[&ctx.payer], ctx.svm.latest_blockhash()); + + ctx.execute_tx(create_tx)?; + println!(" āœ“ Wallet created"); + + // 3. Fund Vault - using manual transfer instruction construction + println!("\n[Test] Funding Vault..."); + let mut transfer_data = Vec::new(); + transfer_data.extend_from_slice(&2u32.to_le_bytes()); // Transfer instruction + transfer_data.extend_from_slice(&1_000_000_000u64.to_le_bytes()); + + let fund_ix = Instruction { + program_id: solana_system_program::id().to_address(), + accounts: vec![ + AccountMeta::new(Signer::pubkey(&ctx.payer).to_address(), true), + AccountMeta::new(vault_pda.to_address(), false), + ], + data: transfer_data, + }; + + let message_fund = Message::new(&[fund_ix], Some(&Signer::pubkey(&ctx.payer).to_address())); + let mut fund_tx = Transaction::new_unsigned(message_fund); + fund_tx.sign(&[&ctx.payer], ctx.svm.latest_blockhash()); + + ctx.execute_tx(fund_tx)?; // 4. Execute Transfer (Ed25519) println!("\n[3/7] Executing Transfer (Ed25519)..."); @@ -83,28 +106,36 @@ pub async fn run(ctx: &TestContext) -> Result<()> { exec_data.extend_from_slice(&full_compact); let execute_ix = Instruction { - program_id: ctx.program_id, + program_id: ctx.program_id.to_address(), accounts: vec![ - AccountMeta::new(ctx.payer.pubkey(), true), - AccountMeta::new(wallet_pda, false), - AccountMeta::new(owner_auth_pda, false), // Authority - AccountMeta::new(vault_pda, false), // Vault (Signer) + AccountMeta::new(Signer::pubkey(&ctx.payer).to_address(), true), + AccountMeta::new(wallet_pda.to_address(), false), + AccountMeta::new(owner_auth_pda.to_address(), false), // Authority + AccountMeta::new(vault_pda.to_address(), false), // Vault (Signer) // Inner: - AccountMeta::new_readonly(system_program::id(), false), - AccountMeta::new(vault_pda, false), - AccountMeta::new(ctx.payer.pubkey(), false), + AccountMeta::new_readonly(solana_system_program::id().to_address(), false), + AccountMeta::new(vault_pda.to_address(), false), + AccountMeta::new(Signer::pubkey(&ctx.payer).to_address(), false), // Signer for Ed25519 - AccountMeta::new_readonly(owner_keypair.pubkey(), true), + AccountMeta::new_readonly(Signer::pubkey(&owner_keypair).to_address(), true), ], data: exec_data, }; - ctx.send_transaction(&[execute_ix], &[&ctx.payer, &owner_keypair]) + + let message_exec = Message::new( + &[execute_ix], + Some(&Signer::pubkey(&ctx.payer).to_address()), + ); + let mut execute_tx = Transaction::new_unsigned(message_exec); + execute_tx.sign(&[&ctx.payer, &owner_keypair], ctx.svm.latest_blockhash()); + + ctx.execute_tx(execute_tx) .context("Execute Transfer Failed")?; // 5. Add Secp256r1 Authority println!("\n[4/7] Adding Secp256r1 Authority..."); let rp_id = "lazorkit.vault"; - let rp_id_hash = solana_sdk::keccak::hash(rp_id.as_bytes()).to_bytes(); + let rp_id_hash = hash(rp_id.as_bytes()).to_bytes(); let signing_key = SigningKey::random(&mut OsRng); let verifying_key = p256::ecdsa::VerifyingKey::from(&signing_key); let encoded_point = verifying_key.to_encoded_point(true); @@ -124,18 +155,26 @@ pub async fn run(ctx: &TestContext) -> Result<()> { add_auth_data.extend_from_slice(secp_pubkey); // Pubkey let add_secp_ix = Instruction { - program_id: ctx.program_id, + program_id: ctx.program_id.to_address(), accounts: vec![ - AccountMeta::new(ctx.payer.pubkey(), true), - AccountMeta::new(wallet_pda, false), - AccountMeta::new_readonly(owner_auth_pda, false), - AccountMeta::new(secp_auth_pda, false), - AccountMeta::new_readonly(system_program::id(), false), - AccountMeta::new_readonly(owner_keypair.pubkey(), true), + AccountMeta::new(Signer::pubkey(&ctx.payer).to_address(), true), + AccountMeta::new(wallet_pda.to_address(), false), + AccountMeta::new_readonly(owner_auth_pda.to_address(), false), + AccountMeta::new(secp_auth_pda.to_address(), false), + AccountMeta::new_readonly(solana_system_program::id().to_address(), false), + AccountMeta::new_readonly(Signer::pubkey(&owner_keypair).to_address(), true), ], data: add_auth_data, }; - ctx.send_transaction(&[add_secp_ix], &[&ctx.payer, &owner_keypair]) + + let message_add = Message::new( + &[add_secp_ix], + Some(&Signer::pubkey(&ctx.payer).to_address()), + ); + let mut add_spender_tx = Transaction::new_unsigned(message_add); + add_spender_tx.sign(&[&ctx.payer, &owner_keypair], ctx.svm.latest_blockhash()); + + ctx.execute_tx(add_spender_tx) .context("Add Secp256r1 Failed")?; // 6. Create Session @@ -145,31 +184,39 @@ pub async fn run(ctx: &TestContext) -> Result<()> { &[ b"session", wallet_pda.as_ref(), - session_keypair.pubkey().as_ref(), + Signer::pubkey(&session_keypair).as_ref(), ], &ctx.program_id, ); - let clock = ctx.client.get_epoch_info()?; - let expires_at = clock.absolute_slot + 1000; + let clock: solana_clock::Clock = ctx.svm.get_sysvar(); + let expires_at = clock.slot + 1000; let mut session_data = Vec::new(); session_data.push(5); // CreateSession - session_data.extend_from_slice(session_keypair.pubkey().as_ref()); + session_data.extend_from_slice(Signer::pubkey(&session_keypair).as_ref()); session_data.extend_from_slice(&expires_at.to_le_bytes()); let session_ix = Instruction { - program_id: ctx.program_id, + program_id: ctx.program_id.to_address(), accounts: vec![ - AccountMeta::new(ctx.payer.pubkey(), true), - AccountMeta::new_readonly(wallet_pda, false), - AccountMeta::new_readonly(owner_auth_pda, false), - AccountMeta::new(session_pda, false), - AccountMeta::new_readonly(system_program::id(), false), - AccountMeta::new_readonly(owner_keypair.pubkey(), true), + AccountMeta::new(Signer::pubkey(&ctx.payer).to_address(), true), + AccountMeta::new_readonly(wallet_pda.to_address(), false), + AccountMeta::new_readonly(owner_auth_pda.to_address(), false), + AccountMeta::new(session_pda.to_address(), false), + AccountMeta::new_readonly(solana_system_program::id().to_address(), false), + AccountMeta::new_readonly(Signer::pubkey(&owner_keypair).to_address(), true), ], data: session_data, }; - ctx.send_transaction(&[session_ix], &[&ctx.payer, &owner_keypair]) + + let message_session = Message::new( + &[session_ix], + Some(&Signer::pubkey(&ctx.payer).to_address()), + ); + let mut session_tx = Transaction::new_unsigned(message_session); + session_tx.sign(&[&ctx.payer, &owner_keypair], ctx.svm.latest_blockhash()); + + ctx.execute_tx(session_tx) .context("Create Session Failed")?; // 7. Execute via Session @@ -178,20 +225,28 @@ pub async fn run(ctx: &TestContext) -> Result<()> { session_exec_data.extend_from_slice(&full_compact); // Reuse transfer instruction let session_exec_ix = Instruction { - program_id: ctx.program_id, + program_id: ctx.program_id.to_address(), accounts: vec![ - AccountMeta::new(ctx.payer.pubkey(), true), - AccountMeta::new(wallet_pda, false), - AccountMeta::new(session_pda, false), // Session as Authority - AccountMeta::new(vault_pda, false), - AccountMeta::new_readonly(system_program::id(), false), - AccountMeta::new(vault_pda, false), - AccountMeta::new(ctx.payer.pubkey(), false), - AccountMeta::new_readonly(session_keypair.pubkey(), true), // Session Signer + AccountMeta::new(Signer::pubkey(&ctx.payer).to_address(), true), + AccountMeta::new(wallet_pda.to_address(), false), + AccountMeta::new(session_pda.to_address(), false), // Session as Authority + AccountMeta::new(vault_pda.to_address(), false), + AccountMeta::new_readonly(solana_system_program::id().to_address(), false), + AccountMeta::new(vault_pda.to_address(), false), + AccountMeta::new(Signer::pubkey(&ctx.payer).to_address(), false), + AccountMeta::new_readonly(Signer::pubkey(&session_keypair).to_address(), true), // Session Signer ], data: session_exec_data, }; - ctx.send_transaction(&[session_exec_ix], &[&ctx.payer, &session_keypair]) + + let message_sess_exec = Message::new( + &[session_exec_ix], + Some(&Signer::pubkey(&ctx.payer).to_address()), + ); + let mut session_exec_tx = Transaction::new_unsigned(message_sess_exec); + session_exec_tx.sign(&[&ctx.payer, &session_keypair], ctx.svm.latest_blockhash()); + + ctx.execute_tx(session_exec_tx) .context("Session Execute Failed")?; // 8. Transfer Ownership @@ -201,7 +256,7 @@ pub async fn run(ctx: &TestContext) -> Result<()> { &[ b"authority", wallet_pda.as_ref(), - new_owner.pubkey().as_ref(), + Signer::pubkey(&new_owner).as_ref(), ], &ctx.program_id, ); @@ -209,21 +264,29 @@ pub async fn run(ctx: &TestContext) -> Result<()> { let mut transfer_own_data = Vec::new(); transfer_own_data.push(3); // TransferOwnership transfer_own_data.push(0); // Ed25519 - transfer_own_data.extend_from_slice(new_owner.pubkey().as_ref()); + transfer_own_data.extend_from_slice(Signer::pubkey(&new_owner).as_ref()); let transfer_ix = Instruction { - program_id: ctx.program_id, + program_id: ctx.program_id.to_address(), accounts: vec![ - AccountMeta::new(ctx.payer.pubkey(), true), - AccountMeta::new(wallet_pda, false), - AccountMeta::new(owner_auth_pda, false), // Current Owner - AccountMeta::new(new_owner_pda, false), // New Owner - AccountMeta::new_readonly(system_program::id(), false), - AccountMeta::new_readonly(owner_keypair.pubkey(), true), + AccountMeta::new(Signer::pubkey(&ctx.payer).to_address(), true), + AccountMeta::new(wallet_pda.to_address(), false), + AccountMeta::new(owner_auth_pda.to_address(), false), // Current Owner + AccountMeta::new(new_owner_pda.to_address(), false), // New Owner + AccountMeta::new_readonly(solana_system_program::id().to_address(), false), + AccountMeta::new_readonly(Signer::pubkey(&owner_keypair).to_address(), true), ], data: transfer_own_data, }; - ctx.send_transaction(&[transfer_ix], &[&ctx.payer, &owner_keypair]) + + let message_transfer = Message::new( + &[transfer_ix], + Some(&Signer::pubkey(&ctx.payer).to_address()), + ); + let mut transfer_tx = Transaction::new_unsigned(message_transfer); + transfer_tx.sign(&[&ctx.payer, &owner_keypair], ctx.svm.latest_blockhash()); + + ctx.execute_tx(transfer_tx) .context("Transfer Ownership Failed")?; println!("āœ… Happy Path Scenario Passed");