diff --git a/Cargo.lock b/Cargo.lock index d451bf0a0..412eb94bb 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -8,7 +8,7 @@ version = "0.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d122413f284cf2d62fb1b7db97e02edb8cda96d769b16e443a4f6195e35662b0" dependencies = [ - "crypto-common", + "crypto-common 0.1.7", "generic-array", ] @@ -20,7 +20,7 @@ checksum = "b169f7a6d4742236a0a00c541b845991d0ac43e546831af1249753ab4c3aa3a0" dependencies = [ "cfg-if", "cipher", - "cpufeatures", + "cpufeatures 0.2.17", ] [[package]] @@ -38,37 +38,52 @@ dependencies = [ "zeroize", ] +[[package]] +name = "agave-bls12-381" +version = "4.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "210b1ef312273aa81ccb4c52687d96e3cf07621f3619a7998be20eb9741b08e3" +dependencies = [ + "blst", + "blstrs", + "bytemuck", + "bytemuck_derive", + "group", + "pairing", +] + [[package]] name = "agave-feature-set" -version = "3.1.11" +version = "4.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e631ba26aeffe98dee3db0b8612fc7c67cda71bc57b0f82f28dc48231df6bc8" +checksum = "dde74a2d1f2f99a3ea59938d1533c7973c344e47d24c1b645ee81e958c54226a" dependencies = [ "ahash", "solana-epoch-schedule", - "solana-hash 3.1.0", - "solana-pubkey 3.0.0", + "solana-hash 4.2.0", + "solana-keypair", + "solana-pubkey 4.1.0", "solana-sha256-hasher", "solana-svm-feature-set", ] [[package]] name = "agave-precompiles" -version = "3.1.11" +version = "4.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "58acc95455da4ba868f723d2170af9bb3009a3f430580aae359eecc9b057fb3f" +checksum = "22a48ac39333d364f102b03ef00b59cd5b1f878ccb3c5f0f67df20f44824d51f" dependencies = [ "agave-feature-set", "bincode", "digest 0.10.7", "ed25519-dalek 1.0.1", - "libsecp256k1", + "libsecp256k1 0.6.0", "openssl", "sha3", "solana-ed25519-program", "solana-message", "solana-precompile-error", - "solana-pubkey 3.0.0", + "solana-pubkey 4.1.0", "solana-sdk-ids", "solana-secp256k1-program", "solana-secp256r1-program", @@ -76,23 +91,24 @@ dependencies = [ [[package]] name = "agave-reserved-account-keys" -version = "3.1.11" +version = "4.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d062865aedfbdc7511726d47e472687db0db4fb08e3c3ab2ac68570106c2f1b6" +checksum = "798e559c514af005950ea81586a3856f9297ecb80a7359057c19bf6717f5f537" dependencies = [ "agave-feature-set", - "solana-pubkey 3.0.0", + "solana-pubkey 4.1.0", "solana-sdk-ids", ] [[package]] name = "agave-syscalls" -version = "3.1.11" +version = "4.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3c89f228e93d1bc769578efd0c5a445715ae04ad96f9b6f8d16d018ad7f9221a" +checksum = "84debd4abe0cbab5a6aac2ee50e3969ef0e0961f7dff7e8f96bda0be7998bca2" dependencies = [ + "agave-bls12-381", "bincode", - "libsecp256k1", + "libsecp256k1 0.6.0", "num-traits", "solana-account", "solana-account-info", @@ -101,15 +117,15 @@ dependencies = [ "solana-bn254", "solana-clock", "solana-cpi", - "solana-curve25519", - "solana-hash 3.1.0", + "solana-curve25519 4.0.1", + "solana-hash 4.2.0", "solana-instruction", "solana-keccak-hasher", "solana-loader-v3-interface", "solana-poseidon", "solana-program-entrypoint", "solana-program-runtime", - "solana-pubkey 3.0.0", + "solana-pubkey 4.1.0", "solana-sbpf", "solana-sdk-ids", "solana-secp256k1-recover", @@ -230,6 +246,12 @@ dependencies = [ "windows-sys", ] +[[package]] +name = "anyhow" +version = "1.0.102" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7f202df86484c868dbad7eaa557ef785d5c66295e41b460ef922eca0723b842c" + [[package]] name = "ark-bn254" version = "0.4.0" @@ -458,7 +480,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "94893f1e0c6eeab764ade8dc4c0db24caf4fe7cbbaafc0eba0a9030f447b5185" dependencies = [ "num-traits", - "rand 0.8.5", + "rand 0.8.6", ] [[package]] @@ -468,7 +490,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "246a225cc6131e9ee4f24619af0f19d67761fff15d7ccc22e42b80846e69449a" dependencies = [ "num-traits", - "rand 0.8.5", + "rand 0.8.6", ] [[package]] @@ -491,9 +513,9 @@ checksum = "eab1c04a571841102f5345a8fc0f6bb3d31c315dec879b5c6e42e40ce7ffa34e" [[package]] name = "autocfg" -version = "1.5.0" +version = "1.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c08606f8c3cbf4ce6ec8e28fb0014a2c086708fe954eaa885384a6165172e7e8" +checksum = "f2032f911046de80f0a198e0901378627c33f59ea0ac00e363d481118bd70a53" [[package]] name = "base16ct" @@ -530,23 +552,35 @@ dependencies = [ [[package]] name = "bitflags" -version = "2.11.0" +version = "2.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b4388bee8683e3d04af747c73422af53102d2bd24d9eadb6cbc100baef4b43f8" + +[[package]] +name = "bitvec" +version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "843867be96c8daad0d758b57df9392b6d8d271134fce549de6ce169ff98a92af" +checksum = "1bc2832c24239b0141d5674bb9174f9d68a8b5b3f2753311927c172ca46f7e9c" +dependencies = [ + "funty", + "radium", + "tap", + "wyz", +] [[package]] name = "blake3" -version = "1.8.3" +version = "1.8.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2468ef7d57b3fb7e16b576e8377cdbde2320c60e1491e961d11da40fc4f02a2d" +checksum = "0aa83c34e62843d924f905e0f5c866eb1dd6545fc4d719e803d9ba6030371fce" dependencies = [ "arrayref", "arrayvec", "cc", "cfg-if", "constant_time_eq", - "cpufeatures", - "digest 0.10.7", + "cpufeatures 0.3.0", + "digest 0.11.3", ] [[package]] @@ -567,6 +601,43 @@ dependencies = [ "generic-array", ] +[[package]] +name = "block-buffer" +version = "0.12.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d2f6c7dbe95a6ed67ad9f18e57daf93a2f034c524b99fd2b76d18fdfeb6660aa" +dependencies = [ + "hybrid-array", +] + +[[package]] +name = "blst" +version = "0.3.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dcdb4c7013139a150f9fc55d123186dbfaba0d912817466282c73ac49e71fb45" +dependencies = [ + "cc", + "glob", + "threadpool", + "zeroize", +] + +[[package]] +name = "blstrs" +version = "0.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7a8a8ed6fefbeef4a8c7b460e4110e12c5e22a5b7cf32621aae6ad650c4dcf29" +dependencies = [ + "blst", + "byte-slice-cast", + "ff", + "group", + "pairing", + "rand_core 0.6.4", + "serde", + "subtle", +] + [[package]] name = "borsh" version = "1.6.1" @@ -602,9 +673,9 @@ dependencies = [ [[package]] name = "bumpalo" -version = "3.20.2" +version = "3.20.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5d20789868f4b01b2f2caec9f5c4e0213b41e3e5702a50157d699ae31ced2fcb" +checksum = "72f5acc6cb2ba439de613abc23857ec3d78374d8ed5ac84e9d11336e87da8649" [[package]] name = "bv" @@ -616,6 +687,12 @@ dependencies = [ "serde", ] +[[package]] +name = "byte-slice-cast" +version = "1.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7575182f7272186991736b70173b0ea045398f984bf5ebbb3804736ce1330c9d" + [[package]] name = "bytemuck" version = "1.25.0" @@ -656,9 +733,9 @@ checksum = "37b2a672a2cb129a2e41c10b1224bb368f9f37a2b16b612598138befd7b37eb5" [[package]] name = "cc" -version = "1.2.58" +version = "1.2.64" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e1e928d4b69e3077709075a938a05ffbedfa53a84c8f766efbf8220bb1ff60e1" +checksum = "dad887fd958be91b5098c0248def011f4523ab786cd411be668777e55063501f" dependencies = [ "find-msvc-tools", "shlex", @@ -720,15 +797,15 @@ version = "0.4.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "773f3b9af64447d2ce9850330c473515014aa235e6a783b02db81ff39e4a3dad" dependencies = [ - "crypto-common", + "crypto-common 0.1.7", "inout", ] [[package]] name = "clap" -version = "4.6.0" +version = "4.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b193af5b67834b676abd72466a96c1024e6a6ad978a1f484bd90b85c94041351" +checksum = "1ddb117e43bbf7dacf0a4190fef4d345b9bad68dfc649cb349e7d17d28428e51" dependencies = [ "clap_builder", ] @@ -749,6 +826,12 @@ version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c8d4a3bb8b1e0c1050499d1815f5ab16d04f0959b233085fb31653fbfc9d98f9" +[[package]] +name = "cmov" +version = "0.5.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0c9ea0ac24bc397ab3c98583a3c9ba74fa56b09a4449bbe172b9b1ddb016027a" + [[package]] name = "colorchoice" version = "1.0.5" @@ -798,6 +881,15 @@ dependencies = [ "libc", ] +[[package]] +name = "cpufeatures" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8b2a41393f66f16b0823bb79094d54ac5fbd34ab292ddafb9a0456ac9f87d201" +dependencies = [ + "libc", +] + [[package]] name = "criterion" version = "0.8.2" @@ -888,30 +980,29 @@ dependencies = [ ] [[package]] -name = "crypto-mac" -version = "0.8.0" +name = "crypto-common" +version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b584a330336237c1eecd3e94266efb216c56ed91225d634cb2991c5f3fd1aeab" +checksum = "ce6e4c961d6cd6c9a86db418387425e8bdeaf05b3c8bc1411e6dca4c252f1453" dependencies = [ - "generic-array", - "subtle", + "hybrid-array", ] [[package]] -name = "ctor" +name = "crypto-mac" version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "352d39c2f7bef1d6ad73db6f5160efcaed66d94ef8c6c573a8410c00bf909a98" +checksum = "b584a330336237c1eecd3e94266efb216c56ed91225d634cb2991c5f3fd1aeab" dependencies = [ - "ctor-proc-macro", - "dtor", + "generic-array", + "subtle", ] [[package]] -name = "ctor-proc-macro" -version = "0.0.7" +name = "ctor" +version = "1.0.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "52560adf09603e58c9a7ee1fe1dcb95a16927b17c127f0ac02d6e768a0e25bc1" +checksum = "01334b89b69ff726750c5ce5073fc8bd860e99aa9a8fc5ca11b04730e3aee97a" [[package]] name = "ctr" @@ -922,6 +1013,15 @@ dependencies = [ "cipher", ] +[[package]] +name = "ctutils" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7d5515a3834141de9eafb9717ad39eea8247b5674e6066c404e8c4b365d2a29e" +dependencies = [ + "cmov", +] + [[package]] name = "curve25519-dalek" version = "3.2.0" @@ -942,7 +1042,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "97fb8b7c4503de7d6ae7b42ab72a5a59857b4c937ec27a3d4539dba95b5ab2be" dependencies = [ "cfg-if", - "cpufeatures", + "cpufeatures 0.2.17", "curve25519-dalek-derive", "digest 0.10.7", "fiat-crypto", @@ -964,38 +1064,14 @@ dependencies = [ "syn 2.0.117", ] -[[package]] -name = "darling" -version = "0.21.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9cdf337090841a411e2a7f3deb9187445851f91b309c0c0a29e05f74a00a48c0" -dependencies = [ - "darling_core 0.21.3", - "darling_macro 0.21.3", -] - [[package]] name = "darling" version = "0.23.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "25ae13da2f202d56bd7f91c25fba009e7717a1e4a1cc98a76d844b65ae912e9d" dependencies = [ - "darling_core 0.23.0", - "darling_macro 0.23.0", -] - -[[package]] -name = "darling_core" -version = "0.21.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1247195ecd7e3c85f83c8d2a366e4210d588e802133e1e355180a9870b517ea4" -dependencies = [ - "fnv", - "ident_case", - "proc-macro2", - "quote", - "strsim", - "syn 2.0.117", + "darling_core", + "darling_macro", ] [[package]] @@ -1011,24 +1087,13 @@ dependencies = [ "syn 2.0.117", ] -[[package]] -name = "darling_macro" -version = "0.21.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d38308df82d1080de0afee5d069fa14b0326a88c14f15c5ccda35b4a6c414c81" -dependencies = [ - "darling_core 0.21.3", - "quote", - "syn 2.0.117", -] - [[package]] name = "darling_macro" version = "0.23.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ac3984ec7bd6cfa798e62b4a642426a5be0e68f9401cfc2a01e3fa9ea2fcdb8d" dependencies = [ - "darling_core 0.23.0", + "darling_core", "quote", "syn 2.0.117", ] @@ -1077,25 +1142,21 @@ checksum = "9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292" dependencies = [ "block-buffer 0.10.4", "const-oid", - "crypto-common", + "crypto-common 0.1.7", "subtle", ] [[package]] -name = "dtor" -version = "0.3.0" +name = "digest" +version = "0.11.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f1057d6c64987086ff8ed0fd3fbf377a6b7d205cc7715868cd401705f715cbe4" +checksum = "f1dd6dbb5841937940781866fa1281a1ff7bd3bf827091440879f9994983d5c2" dependencies = [ - "dtor-proc-macro", + "block-buffer 0.12.1", + "crypto-common 0.2.2", + "ctutils", ] -[[package]] -name = "dtor-proc-macro" -version = "0.0.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f678cf4a922c215c63e0de95eb1ff08a958a81d47e485cf9da1e27bf6305cfa5" - [[package]] name = "eager" version = "0.1.0" @@ -1151,9 +1212,9 @@ dependencies = [ [[package]] name = "ed25519-dalek" -version = "2.2.0" +version = "2.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "70e796c081cee67dc755e1a36a0a172b897fab85fc3f6bc48307991f64e4eca9" +checksum = "4a3daa8e81a3963a60642bcc1f90a670680bd4a77535faa384e9d1c79d620871" dependencies = [ "curve25519-dalek 4.1.3", "ed25519 2.2.3", @@ -1178,9 +1239,9 @@ dependencies = [ [[package]] name = "either" -version = "1.15.0" +version = "1.16.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "48c757948c5ede0e46177b7add2e67155f70e33c07fea8284df6576da70b3719" +checksum = "91622ff5e7162018101f2fea40d6ebf4a78bbe5a49736a2020649edf9693679e" [[package]] name = "elliptic-curve" @@ -1203,9 +1264,9 @@ dependencies = [ [[package]] name = "enum-iterator" -version = "1.5.0" +version = "2.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9fd242f399be1da0a5354aa462d57b4ab2b4ee0683cc552f7c007d2d12d36e94" +checksum = "a4549325971814bda7a44061bf3fe7e487d447cba01e4220a4b454d630d7a016" dependencies = [ "enum-iterator-derive", ] @@ -1296,6 +1357,7 @@ version = "0.13.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c0b50bfb653653f9ca9095b427bed08ab8d75a137839d9ad64eb11810d5b6393" dependencies = [ + "bitvec", "rand_core 0.6.4", "subtle", ] @@ -1342,6 +1404,12 @@ version = "1.0.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" +[[package]] +name = "foldhash" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d9c4f5dac5e15c24eb999c26181a6ca40b39fe946cbe4c263c7209467bc83af2" + [[package]] name = "foldhash" version = "0.2.0" @@ -1363,6 +1431,12 @@ version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b" +[[package]] +name = "funty" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e6d5a32815ae3f33302d95fdcb2ce17862f8c65363dcfd29360480ba1001fc9c" + [[package]] name = "futures" version = "0.3.32" @@ -1494,10 +1568,29 @@ checksum = "899def5c37c4fd7b2664648c28120ecec138e4d395b459e5ca34f9cce2dd77fd" dependencies = [ "cfg-if", "libc", - "r-efi", + "r-efi 5.3.0", + "wasip2", +] + +[[package]] +name = "getrandom" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0de51e6874e94e7bf76d726fc5d13ba782deca734ff60d5bb2fb2607c7406555" +dependencies = [ + "cfg-if", + "libc", + "r-efi 6.0.0", "wasip2", + "wasip3", ] +[[package]] +name = "glob" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0cc23270f6e1808e30a928bdc84dea0b9b4136a8bc82338574f23baf47bbd280" + [[package]] name = "group" version = "0.13.0" @@ -1505,7 +1598,9 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f0f9ef7462f7c099f518d754361858f86d8a07af53ba9af0fe635bbccb151a63" dependencies = [ "ff", + "rand 0.8.6", "rand_core 0.6.4", + "rand_xorshift", "subtle", ] @@ -1545,6 +1640,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9229cfe53dfd69f0609a49f65461bd93001ea1ef889cd5529dd176593f5338a1" dependencies = [ "allocator-api2", + "foldhash 0.1.5", ] [[package]] @@ -1555,9 +1651,27 @@ checksum = "841d1cc9bed7f9236f321df977030373f4a4163ae1a7dbfe1a51a2c1a51d9100" dependencies = [ "allocator-api2", "equivalent", - "foldhash", + "foldhash 0.2.0", ] +[[package]] +name = "hashbrown" +version = "0.17.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ed5909b6e89a2db4456e54cd5f673791d7eca6732202bbf2a9cc504fe2f9b84a" + +[[package]] +name = "heck" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea" + +[[package]] +name = "hermit-abi" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fc0fef456e4baa96da950455cd02c081ca953b141298e41db3fc7e36b1da849c" + [[package]] name = "hex" version = "0.4.3" @@ -1594,6 +1708,21 @@ dependencies = [ "hmac 0.8.1", ] +[[package]] +name = "hybrid-array" +version = "0.4.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9155a582abd142abc056962c29e3ce5ff2ad5469f4246b537ed42c5deba857da" +dependencies = [ + "typenum", +] + +[[package]] +name = "id-arena" +version = "2.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3d3067d79b975e8844ca9eb072e16b31c3c1c36928edf9c6789548c524d0d954" + [[package]] name = "ident_case" version = "1.0.1" @@ -1602,12 +1731,14 @@ checksum = "b9e0384b61958566e926dc50660321d12159025e767c18e043daf26b70104c39" [[package]] name = "indexmap" -version = "2.13.0" +version = "2.14.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7714e70437a7dc3ac8eb7e6f8df75fd8eb422675fc7678aff7364301092b1017" +checksum = "d466e9454f08e4a911e14806c24e16fba1b4c121d1ea474396f396069cf949d9" dependencies = [ "equivalent", - "hashbrown 0.16.1", + "hashbrown 0.17.1", + "serde", + "serde_core", ] [[package]] @@ -1669,11 +1800,12 @@ checksum = "8f42a60cbdf9a97f5d2305f08a87dc4e09308d1276d28c869c684d7777685682" [[package]] name = "js-sys" -version = "0.3.92" +version = "0.3.102" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cc4c90f45aa2e6eacbe8645f77fdea542ac97a494bcd117a67df9ff4d611f995" +checksum = "03d04c30968dffe80775bd4d7fb676131cd04a1fb46d2686dbffbaec2d9dfd31" dependencies = [ - "once_cell", + "cfg-if", + "futures-util", "wasm-bindgen", ] @@ -1697,7 +1829,7 @@ version = "0.1.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "cb26cec98cce3a3d96cbb7bced3c4b16e3d13f27ec56dbd62cbc8f39cfb9d653" dependencies = [ - "cpufeatures", + "cpufeatures 0.2.17", ] [[package]] @@ -1706,11 +1838,17 @@ version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bbd2bcb4c963f2ddae06a2efc7e9f3591312473c50c6685e1f298068316e66fe" +[[package]] +name = "leb128fmt" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "09edd9e8b54e49e587e4f6295a7d29c3ea94d469cb40ab8ca70b288248a81db2" + [[package]] name = "libc" -version = "0.2.183" +version = "0.2.186" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b5b646652bf6661599e1da8901b3b9522896f01e736bad5f723fe7a3a27f899d" +checksum = "68ab91017fe16c622486840e4c83c9a37afeff978bd239b5293d61ece587de66" [[package]] name = "libloading" @@ -1732,15 +1870,34 @@ dependencies = [ "base64 0.12.3", "digest 0.9.0", "hmac-drbg", - "libsecp256k1-core", - "libsecp256k1-gen-ecmult", - "libsecp256k1-gen-genmult", + "libsecp256k1-core 0.2.2", + "libsecp256k1-gen-ecmult 0.2.1", + "libsecp256k1-gen-genmult 0.2.1", "rand 0.7.3", "serde", "sha2 0.9.9", "typenum", ] +[[package]] +name = "libsecp256k1" +version = "0.7.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e79019718125edc905a079a70cfa5f3820bc76139fc91d6f9abc27ea2a887139" +dependencies = [ + "arrayref", + "base64 0.22.1", + "digest 0.9.0", + "hmac-drbg", + "libsecp256k1-core 0.3.0", + "libsecp256k1-gen-ecmult 0.3.0", + "libsecp256k1-gen-genmult 0.3.0", + "rand 0.8.6", + "serde", + "sha2 0.9.9", + "typenum", +] + [[package]] name = "libsecp256k1-core" version = "0.2.2" @@ -1752,13 +1909,33 @@ dependencies = [ "subtle", ] +[[package]] +name = "libsecp256k1-core" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5be9b9bb642d8522a44d533eab56c16c738301965504753b03ad1de3425d5451" +dependencies = [ + "crunchy", + "digest 0.9.0", + "subtle", +] + [[package]] name = "libsecp256k1-gen-ecmult" version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ccab96b584d38fac86a83f07e659f0deafd0253dc096dab5a36d53efe653c5c3" dependencies = [ - "libsecp256k1-core", + "libsecp256k1-core 0.2.2", +] + +[[package]] +name = "libsecp256k1-gen-ecmult" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3038c808c55c87e8a172643a7d87187fc6c4174468159cb3090659d55bcb4809" +dependencies = [ + "libsecp256k1-core 0.3.0", ] [[package]] @@ -1767,7 +1944,16 @@ version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "67abfe149395e3aa1c48a2beb32b068e2334402df8181f818d3aee2b304c4f5d" dependencies = [ - "libsecp256k1-core", + "libsecp256k1-core 0.2.2", +] + +[[package]] +name = "libsecp256k1-gen-genmult" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3db8d6ba2cec9eacc40e6e8ccc98931840301f1006e95647ceb2dd5c3aa06f7c" +dependencies = [ + "libsecp256k1-core 0.3.0", ] [[package]] @@ -1811,18 +1997,18 @@ dependencies = [ "ansi_term", "bincode", "criterion", - "ed25519-dalek 1.0.1", + "ed25519-dalek 2.1.1", "hashbrown 0.16.1", "hex", "indexmap", "itertools 0.14.0", - "libsecp256k1", + "libsecp256k1 0.7.2", "log", "qualifier_attr", "serde", "sha2 0.10.9", "solana-account", - "solana-address 2.6.0", + "solana-address 2.2.0", "solana-address-lookup-table-interface", "solana-bpf-loader-program", "solana-builtins", @@ -1836,13 +2022,14 @@ dependencies = [ "solana-feature-gate-interface", "solana-fee", "solana-fee-structure", - "solana-hash 3.1.0", + "solana-hash 4.2.0", "solana-instruction", "solana-instructions-sysvar", "solana-keypair", "solana-last-restart-slot", "solana-loader-v3-interface", "solana-loader-v4-interface", + "solana-loader-v4-program", "solana-message", "solana-native-token", "solana-nonce", @@ -1865,14 +2052,14 @@ dependencies = [ "solana-svm-log-collector", "solana-svm-timings", "solana-svm-transaction", - "solana-system-interface 3.2.0", + "solana-system-interface 3.1.0", "solana-system-program", "solana-sysvar", "solana-sysvar-id", "solana-transaction", "solana-transaction-context", "solana-transaction-error", - "solana-vote-interface 5.1.1", + "solana-vote-interface", "spl-associated-token-account-interface", "spl-token-interface", "test-log", @@ -1885,7 +2072,7 @@ version = "0.12.0" dependencies = [ "agave-feature-set", "litesvm", - "solana-address 2.6.0", + "solana-address 2.2.0", "solana-instruction", "solana-keypair", "solana-loader-v3-interface", @@ -1907,12 +2094,12 @@ dependencies = [ "napi-build", "napi-derive", "solana-account", - "solana-address 2.6.0", + "solana-address 2.2.0", "solana-clock", "solana-compute-budget", "solana-epoch-rewards", "solana-epoch-schedule", - "solana-hash 3.1.0", + "solana-hash 4.2.0", "solana-instruction", "solana-last-restart-slot", "solana-message", @@ -1933,18 +2120,18 @@ dependencies = [ "agave-feature-set", "litesvm", "solana-account", - "solana-address 2.6.0", + "solana-address 2.2.0", "solana-clock", "solana-compute-budget", "solana-fee-structure", - "solana-hash 3.1.0", + "solana-hash 4.2.0", "solana-instruction", "solana-keypair", "solana-message", "solana-native-token", "solana-signature", "solana-signer", - "solana-system-interface 3.2.0", + "solana-system-interface 3.1.0", "solana-transaction", "solana-transaction-context", "solana-transaction-error", @@ -1961,14 +2148,14 @@ dependencies = [ "litesvm", "smallvec", "solana-account", - "solana-address 2.6.0", + "solana-address 2.2.0", "solana-keypair", "solana-native-token", "solana-program-option", "solana-program-pack", "solana-rent 3.1.0", "solana-signer", - "solana-system-interface 3.2.0", + "solana-system-interface 3.1.0", "solana-transaction", "solana-transaction-error", "spl-associated-token-account-interface", @@ -1987,9 +2174,9 @@ dependencies = [ [[package]] name = "log" -version = "0.4.29" +version = "0.4.32" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5e5032e24019045c762d3c0f28f5b6b8bbf38563a65908389bf7978758920897" +checksum = "953f07c43838f8e6f9758cab68bf5bed85465e7587ebe0b823f1bcd81978ad3a" [[package]] name = "matchers" @@ -2002,9 +2189,9 @@ dependencies = [ [[package]] name = "memchr" -version = "2.8.0" +version = "2.8.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f8ca58f447f06ed17d5fc4043ce1b10dd205e060fb3ce5b979b8ed8e59ff3f79" +checksum = "88904434abc2901f197fe8cc55f0445e7ded921dba5911dad2e2b39b48e663c4" [[package]] name = "merlin" @@ -2020,9 +2207,9 @@ dependencies = [ [[package]] name = "napi" -version = "3.8.4" +version = "3.9.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fb7848c221fb7bb789e02f01875287ebb1e078b92a6566a34de01ef8806e7c2b" +checksum = "26d3c7dd60231116a47854321c9ac8df6f13435d11aa3a59d8533a76e07a3730" dependencies = [ "bitflags", "ctor", @@ -2035,15 +2222,15 @@ dependencies = [ [[package]] name = "napi-build" -version = "2.3.1" +version = "2.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d376940fd5b723c6893cd1ee3f33abbfd86acb1cd1ec079f3ab04a2a3bc4d3b1" +checksum = "c9c366d2c8c60b86fa632df75f745509b52f9128f91a6bad4c796e44abb505e1" [[package]] name = "napi-derive" -version = "3.5.3" +version = "3.5.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "60867ff9a6f76e82350e0c3420cb0736f5866091b61d7d8a024baa54b0ec17dd" +checksum = "89b3f766e04667e6da0e181e2da4f85475d5a6513b7cf6a80bea184e224a5b42" dependencies = [ "convert_case", "ctor", @@ -2055,9 +2242,9 @@ dependencies = [ [[package]] name = "napi-derive-backend" -version = "5.0.2" +version = "5.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f0864cf6a82e2cfb69067374b64c9253d7e910e5b34db833ed7495dda56ccb18" +checksum = "0d5af30503edf933ce7377cf6d4c877a62b0f1107ea05585f1b5e430e88d5baf" dependencies = [ "convert_case", "proc-macro2", @@ -2068,9 +2255,9 @@ dependencies = [ [[package]] name = "napi-sys" -version = "3.2.1" +version = "3.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8eb602b84d7c1edae45e50bbf1374696548f36ae179dfa667f577e384bb90c2b" +checksum = "1f5bcdf71abd3a50d00b49c1c2c75251cb3c913777d6139cd37dabc093a5e400" dependencies = [ "libloading", ] @@ -2187,6 +2374,16 @@ dependencies = [ "autocfg", ] +[[package]] +name = "num_cpus" +version = "1.17.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "91df4bbde75afed763b708b7eee1e8e7651e02d97f6d5dd763e89367e957b23b" +dependencies = [ + "hermit-abi", + "libc", +] + [[package]] name = "num_enum" version = "0.7.6" @@ -2235,15 +2432,14 @@ checksum = "c08d65885ee38876c4f86fa503fb49d7b507c2b62552df7c70b2fce627e06381" [[package]] name = "openssl" -version = "0.10.76" +version = "0.10.81" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "951c002c75e16ea2c65b8c7e4d3d51d5530d8dfa7d060b4776828c88cfb18ecf" +checksum = "77823a27f0babb03091cb9ed9ef80af3b39dbc82f97e8fa530374b7dafd87a45" dependencies = [ "bitflags", "cfg-if", "foreign-types", "libc", - "once_cell", "openssl-macros", "openssl-sys", ] @@ -2261,18 +2457,18 @@ dependencies = [ [[package]] name = "openssl-src" -version = "300.5.5+3.5.5" +version = "300.6.1+3.6.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3f1787d533e03597a7934fd0a765f0d28e94ecc5fb7789f8053b1e699a56f709" +checksum = "46eb8fb9fb3b61ce1c0f8a026c4c1a0714d3a9e138e7fbde78753ce2babc3846" dependencies = [ "cc", ] [[package]] name = "openssl-sys" -version = "0.9.112" +version = "0.9.117" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "57d55af3b3e226502be1526dfdba67ab0e9c96fc293004e79576b2b9edb0dbdb" +checksum = "b47e7e6bb2c38cd930d25a23b40fa52e068c10e85f3e03a7f5ba5aaca5713695" dependencies = [ "cc", "libc", @@ -2291,6 +2487,15 @@ dependencies = [ "winapi", ] +[[package]] +name = "pairing" +version = "0.23.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "81fec4625e73cf41ef4bb6846cafa6d44736525f442ba45e407c4a000a13996f" +dependencies = [ + "group", +] + [[package]] name = "parking_lot" version = "0.12.5" @@ -2322,9 +2527,9 @@ checksum = "57c0d7b74b563b49d38dae00a0c37d4d6de9b432382b2892f0574ddcae73fd0a" [[package]] name = "pastey" -version = "0.2.1" +version = "0.2.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b867cad97c0791bbd3aaa6472142568c6c9e8f71937e98379f584cfb0cf35bec" +checksum = "2ee67f1008b1ba2321834326597b8e186293b049a023cdef258527550b9935b4" [[package]] name = "pbkdf2" @@ -2368,9 +2573,9 @@ dependencies = [ [[package]] name = "pkg-config" -version = "0.3.32" +version = "0.3.33" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7edddbd0b52d732b21ad9a5fab5c704c14cd949e5e9a1ec5929a24fded1b904c" +checksum = "19f132c84eca552bf34cab8ec81f1c1dcc229b811638f9d283dceabe58c5569e" [[package]] name = "plotters" @@ -2407,7 +2612,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9d1fe60d06143b2430aa532c94cfe9e29783047f06c0d7fd359a9a51b729fa25" dependencies = [ "cfg-if", - "cpufeatures", + "cpufeatures 0.2.17", "opaque-debug", "universal-hash", ] @@ -2421,6 +2626,16 @@ dependencies = [ "zerocopy", ] +[[package]] +name = "prettyplease" +version = "0.2.37" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "479ca8adacdd7ce8f1fb39ce9ecccbfe93a3f1344b3d0d97f20bc0196208f62b" +dependencies = [ + "proc-macro2", + "syn 2.0.117", +] + [[package]] name = "proc-macro-crate" version = "3.5.0" @@ -2474,6 +2689,18 @@ version = "5.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "69cdb34c158ceb288df11e18b4bd39de994f6657d83847bdffdbd7f346754b0f" +[[package]] +name = "r-efi" +version = "6.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f8dcc9c7d52a811697d2151c701e0d08956f92b0e24136cf4cf27b57a6a0d9bf" + +[[package]] +name = "radium" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dc33ff2d4973d518d823d61aa239014831e521c75da58e3df4840d3f47749d09" + [[package]] name = "rand" version = "0.7.3" @@ -2489,9 +2716,9 @@ dependencies = [ [[package]] name = "rand" -version = "0.8.5" +version = "0.8.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404" +checksum = "5ca0ecfa931c29007047d1bc58e623ab12e5590e8c7cc53200d5202b69266d8a" dependencies = [ "libc", "rand_chacha 0.3.1", @@ -2500,9 +2727,9 @@ dependencies = [ [[package]] name = "rand" -version = "0.9.2" +version = "0.9.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6db2770f06117d490610c7488547d543617b21bfa07796d7a12f6f1bd53850d1" +checksum = "44c5af06bb1b7d3216d91932aed5265164bf384dc89cd6ba05cf59a35f5f76ea" dependencies = [ "rand_chacha 0.9.0", "rand_core 0.9.5", @@ -2574,11 +2801,20 @@ dependencies = [ "rand_core 0.5.1", ] +[[package]] +name = "rand_xorshift" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d25bf25ec5ae4a3f1b92f929810509a2f53d7dca2f50b794ff57e3face536c8f" +dependencies = [ + "rand_core 0.6.4", +] + [[package]] name = "rayon" -version = "1.11.0" +version = "1.12.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "368f01d005bf8fd9b1206fb6fa653e6c4a81ceb1466406b81792d87c5677a58f" +checksum = "fb39b166781f92d482534ef4b4b1b2568f42613b53e5b6c160e24cfbfa30926d" dependencies = [ "either", "rayon-core", @@ -2605,9 +2841,9 @@ dependencies = [ [[package]] name = "regex" -version = "1.12.3" +version = "1.12.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e10754a14b9137dd7b1e3e5b0493cc9171fdd105e0ab477f51b72e7f3ac0e276" +checksum = "f1292b7759ae1cb9ec195452d1390a074f0cd8541ab7a5a8c31cd6db45d4a6ba" dependencies = [ "aho-corasick", "memchr", @@ -2628,9 +2864,9 @@ dependencies = [ [[package]] name = "regex-syntax" -version = "0.8.10" +version = "0.8.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dc897dd8d9e8bd1ed8cdad82b5966c3e0ecae09fb1907d58efaa013543185d0a" +checksum = "d6f6ff9a378485b298a5286656da665ba74413d36db0979633275d2e708145d4" [[package]] name = "rfc6979" @@ -2713,9 +2949,9 @@ dependencies = [ [[package]] name = "semver" -version = "1.0.27" +version = "1.0.28" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d767eb0aabc880b29956c35734170f26ed551a859dbd361d140cdbeca61ab1e2" +checksum = "8a7852d02fc848982e0c167ef163aaff9cd91dc640ba85e263cb1ce46fae51cd" [[package]] name = "serde" @@ -2768,9 +3004,9 @@ dependencies = [ [[package]] name = "serde_json" -version = "1.0.149" +version = "1.0.150" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "83fc039473c5595ace860d8c4fafa220ff474b3fc6bfdb4293327f1a37e94d86" +checksum = "e8014e44b4736ed0538adeecded0fce2a272f22dc9578a7eb6b2d9993c74cfb9" dependencies = [ "itoa", "memchr", @@ -2781,9 +3017,9 @@ dependencies = [ [[package]] name = "serde_with" -version = "3.18.0" +version = "3.21.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dd5414fad8e6907dbdd5bc441a50ae8d6e26151a03b1de04d89a5576de61d01f" +checksum = "76a5c54c7310e7b8b9577c286d7e399ddd876c3e12b3ed917a8aabc4b96e9e8c" dependencies = [ "serde_core", "serde_with_macros", @@ -2791,11 +3027,11 @@ dependencies = [ [[package]] name = "serde_with_macros" -version = "3.18.0" +version = "3.21.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d3db8978e608f1fe7357e211969fd9abdcae80bac1ba7a3369bb7eb6b404eb65" +checksum = "84d57bc0c8b9a17920c178daa6bb924850d54a9c97ab45194bb8c17ad66bb660" dependencies = [ - "darling 0.23.0", + "darling", "proc-macro2", "quote", "syn 2.0.117", @@ -2809,7 +3045,7 @@ checksum = "4d58a1e1bf39749807d89cf2d98ac2dfa0ff1cb3faa38fbb64dd88ac8013d800" dependencies = [ "block-buffer 0.9.0", "cfg-if", - "cpufeatures", + "cpufeatures 0.2.17", "digest 0.9.0", "opaque-debug", ] @@ -2821,7 +3057,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a7507d819769d01a365ab707794a4084392c824f54a7a6a7862f8c3d0892b283" dependencies = [ "cfg-if", - "cpufeatures", + "cpufeatures 0.2.17", "digest 0.10.7", ] @@ -2833,9 +3069,9 @@ checksum = "5f179d4e11094a893b82fff208f74d448a7512f99f5a0acbd5c679b705f83ed9" [[package]] name = "sha3" -version = "0.10.8" +version = "0.10.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "75872d278a8f37ef87fa0ddbda7802605cb18344497949862c0d4dcb291eba60" +checksum = "77fd7028345d415a4034cf8777cd4f8ab1851274233b45f84e3d955502d93874" dependencies = [ "digest 0.10.7", "keccak", @@ -2852,9 +3088,9 @@ dependencies = [ [[package]] name = "shlex" -version = "1.3.0" +version = "2.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64" +checksum = "f8fadd59c855ef2080decdef8ff161eb6661b86933c9d82e5ba29dc602a55aba" [[package]] name = "signature" @@ -2880,9 +3116,9 @@ checksum = "0c790de23124f9ab44544d7ac05d60440adc586479ce501c1d6d7da3cd8c9cf5" [[package]] name = "smallvec" -version = "1.15.1" +version = "1.15.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "67b1b7a3b5fe4f1376887184045fcf45c69e92af734b7aaddc05fb777b6fbd03" +checksum = "8ed6a63f02c8539c91a8685a86f4099661ba3da017932f6ebbea6de3f0fa7c90" [[package]] name = "solana-account" @@ -2897,7 +3133,7 @@ dependencies = [ "solana-account-info", "solana-clock", "solana-instruction-error", - "solana-pubkey 4.2.0", + "solana-pubkey 4.1.0", "solana-sdk-ids", "solana-sysvar", ] @@ -2908,7 +3144,7 @@ version = "3.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a9cf16495d9eb53e3d04e72366a33bb1c20c24e78c171d8b8f5978357b63ae95" dependencies = [ - "solana-address 2.6.0", + "solana-address 2.2.0", "solana-program-error", "solana-program-memory", ] @@ -2919,14 +3155,14 @@ version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a2ecac8e1b7f74c2baa9e774c42817e3e75b20787134b76cc4d45e8a604488f5" dependencies = [ - "solana-address 2.6.0", + "solana-address 2.2.0", ] [[package]] name = "solana-address" -version = "2.6.0" +version = "2.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f1384b52c435a750cc9c538760fc7bb472fd78e65a9900a2d07312c5bb335b72" +checksum = "68c5d02824391b072dc5cd0aaa85fb0af9784a21d23286a767994d1e8a322131" dependencies = [ "borsh", "bytemuck", @@ -2938,8 +3174,7 @@ dependencies = [ "serde_derive", "sha2-const-stable", "solana-atomic-u64", - "solana-define-syscall 5.0.0", - "solana-nullable", + "solana-define-syscall 5.1.0", "solana-program-error", "solana-sanitize", "solana-sha256-hasher", @@ -2959,7 +3194,7 @@ dependencies = [ "solana-clock", "solana-instruction", "solana-instruction-error", - "solana-pubkey 4.2.0", + "solana-pubkey 4.1.0", "solana-sdk-ids", "solana-slot-hashes", ] @@ -3003,7 +3238,27 @@ checksum = "7116e1d942a2432ca3f514625104757ab8a56233787e95144c93950029e31176" dependencies = [ "blake3", "solana-define-syscall 4.0.1", - "solana-hash 4.3.0", + "solana-hash 4.2.0", +] + +[[package]] +name = "solana-bls-signatures" +version = "3.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8a3d8a6e1a009bddbdbfe13ee6ff206c16afa9f8fae7d04612d779ac2254ad5f" +dependencies = [ + "base64 0.22.1", + "blst", + "blstrs", + "cfg_eval", + "ff", + "group", + "pairing", + "rand 0.8.6", + "serde", + "serde_json", + "serde_with", + "thiserror 2.0.18", ] [[package]] @@ -3017,7 +3272,7 @@ dependencies = [ "ark-ff 0.5.0", "ark-serialize 0.5.0", "bytemuck", - "solana-define-syscall 5.0.0", + "solana-define-syscall 5.1.0", "thiserror 2.0.18", ] @@ -3032,9 +3287,9 @@ dependencies = [ [[package]] name = "solana-bpf-loader-program" -version = "3.1.11" +version = "4.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fe15f3c804c37fbff5971d34d81d5d2853ae2d03f11947f44f1d10c5b84c9df0" +checksum = "219bfba64973ac9e64aa181f03fd56ac319e2d50d8a23d16c54bbd7fa9807a47" dependencies = [ "agave-syscalls", "bincode", @@ -3048,30 +3303,30 @@ dependencies = [ "solana-packet", "solana-program-entrypoint", "solana-program-runtime", - "solana-pubkey 3.0.0", + "solana-pubkey 4.1.0", "solana-sbpf", "solana-sdk-ids", "solana-svm-feature-set", "solana-svm-log-collector", "solana-svm-measure", "solana-svm-type-overrides", - "solana-system-interface 2.0.0", + "solana-system-interface 3.1.0", "solana-transaction-context", ] [[package]] name = "solana-builtins" -version = "3.1.11" +version = "4.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d196c19ba1caf61782eba5de053061f298f36d9f2aec57073e2cf27403a926d3" +checksum = "dda9d147935c741533496edf72c5b712885d4793a0bca13a21bd75d8f5dc30e9" dependencies = [ "agave-feature-set", "solana-bpf-loader-program", "solana-compute-budget-program", - "solana-hash 3.1.0", + "solana-hash 4.2.0", "solana-loader-v4-program", "solana-program-runtime", - "solana-pubkey 3.0.0", + "solana-pubkey 4.1.0", "solana-sdk-ids", "solana-system-program", "solana-vote-program", @@ -3081,9 +3336,9 @@ dependencies = [ [[package]] name = "solana-builtins-default-costs" -version = "3.1.11" +version = "4.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0da4d19885c5ee02d942a9e13354a39ef3ff591ee31d55353070c204ae7b8fed" +checksum = "3167997e8ac0fe100c4ed54503568d22204aeda56f4d3549e0c09a700b609aa8" dependencies = [ "agave-feature-set", "ahash", @@ -3091,7 +3346,7 @@ dependencies = [ "solana-bpf-loader-program", "solana-compute-budget-program", "solana-loader-v4-program", - "solana-pubkey 3.0.0", + "solana-pubkey 4.1.0", "solana-sdk-ids", "solana-system-program", "solana-vote-program", @@ -3099,9 +3354,9 @@ dependencies = [ [[package]] name = "solana-clock" -version = "3.0.1" +version = "3.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "95cf11109c3b6115cc510f1e31f06fdd52f504271bc24ef5f1249fbbcae5f9f3" +checksum = "5ea35d8f69b67daddb921a9da7f78ca591b533cf5e98833cd9ae62fdc2e4652c" dependencies = [ "serde", "serde_derive", @@ -3112,9 +3367,9 @@ dependencies = [ [[package]] name = "solana-compute-budget" -version = "3.1.11" +version = "4.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "98426b2f7788c089f4ab840347bff55901e65ceb5d76b850194f0802a733cd4e" +checksum = "b591fbaed6d9ab4cba6a5a82eb5df208072ced2e5b74c59e9d309ff87af0615f" dependencies = [ "solana-fee-structure", "solana-program-runtime", @@ -3122,9 +3377,9 @@ dependencies = [ [[package]] name = "solana-compute-budget-instruction" -version = "3.1.11" +version = "4.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3eb3ea80152fc745fa95d9cd2fc019c3591cdc7598cb4d85a6acdea7a40938f0" +checksum = "006d9b6a34f9d7b719100653317990ed55e572107702104c054133b40f587306" dependencies = [ "agave-feature-set", "log", @@ -3134,7 +3389,7 @@ dependencies = [ "solana-compute-budget-interface", "solana-instruction", "solana-packet", - "solana-pubkey 3.0.0", + "solana-pubkey 4.1.0", "solana-sdk-ids", "solana-svm-transaction", "solana-transaction-error", @@ -3154,9 +3409,9 @@ dependencies = [ [[package]] name = "solana-compute-budget-program" -version = "3.1.11" +version = "4.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "688491544a91b94fcb17cffb5cc4dca4be93bc96460fa27325a404c24b584130" +checksum = "a22bcf5088ebe5cb2aa548580d0a466de813032b425707a7745a2a63a7764cdc" dependencies = [ "solana-program-runtime", ] @@ -3171,15 +3426,15 @@ dependencies = [ "solana-define-syscall 4.0.1", "solana-instruction", "solana-program-error", - "solana-pubkey 4.2.0", + "solana-pubkey 4.1.0", "solana-stable-layout", ] [[package]] name = "solana-curve25519" -version = "3.1.11" +version = "3.1.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9a9eaec815ed773919bc7269c027933fc2472d7b9876f68ea6f1281c7daa5278" +checksum = "5aff7432cdf2ec6a44ac06b4d64d2ee006f6c0066d6456e032a7fe25be40cd5c" dependencies = [ "bytemuck", "bytemuck_derive", @@ -3189,6 +3444,20 @@ dependencies = [ "thiserror 2.0.18", ] +[[package]] +name = "solana-curve25519" +version = "4.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "14b4d2a4bf0d0b0a86c22111917e86e8bd39a7b31420fb2c7d73eb83761fc7af" +dependencies = [ + "bytemuck", + "bytemuck_derive", + "curve25519-dalek 4.1.3", + "solana-define-syscall 5.1.0", + "subtle", + "thiserror 2.0.18", +] + [[package]] name = "solana-define-syscall" version = "3.0.0" @@ -3203,9 +3472,9 @@ checksum = "57e5b1c0bc1d4a4d10c88a4100499d954c09d3fecfae4912c1a074dff68b1738" [[package]] name = "solana-define-syscall" -version = "5.0.0" +version = "5.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "03aacdd7a61e2109887a7a7f046caebafce97ddf1150f33722eeac04f9039c73" +checksum = "21e14a4f604117f379840956a8fc8695e4c84f5b0ebed192f31f60d9b85d581d" [[package]] name = "solana-derivation-path" @@ -3238,7 +3507,7 @@ checksum = "f5e7b0ba210593ba8ddd39d6d234d81795d1671cebf3026baa10d5dc23ac42f0" dependencies = [ "serde", "serde_derive", - "solana-hash 4.3.0", + "solana-hash 4.2.0", "solana-sdk-ids", "solana-sdk-macro", "solana-sysvar-id", @@ -3270,17 +3539,17 @@ dependencies = [ "solana-account-info", "solana-instruction", "solana-program-error", - "solana-pubkey 4.2.0", - "solana-rent 4.1.0", + "solana-pubkey 4.1.0", + "solana-rent 4.2.0", "solana-sdk-ids", - "solana-system-interface 3.2.0", + "solana-system-interface 3.1.0", ] [[package]] name = "solana-fee" -version = "3.1.11" +version = "4.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "487e4ba57d889e2ecf94a0cac3a3f385fe26d17425aaef3514b79975af2b5d7f" +checksum = "e506f6ec94e5733b0f2114b43bd8a2abac33a0256e19c65e1d119de008981339" dependencies = [ "agave-feature-set", "solana-fee-structure", @@ -3289,9 +3558,9 @@ dependencies = [ [[package]] name = "solana-fee-calculator" -version = "3.1.0" +version = "3.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4b2a5675b2cf8d407c672dc1776492b1f382337720ddf566645ae43237a3d8c3" +checksum = "97ee18959f176ba6229105c6c2a2ddaaa04bd53615af9277d834b113571bd205" dependencies = [ "log", "serde", @@ -3310,16 +3579,15 @@ version = "3.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "337c246447142f660f778cf6cb582beba8e28deb05b3b24bfb9ffd7c562e5f41" dependencies = [ - "solana-hash 4.3.0", + "solana-hash 4.2.0", ] [[package]] name = "solana-hash" -version = "4.3.0" +version = "4.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f1b113239362cee7093bfb250467138f079a2a03673181dc15bff6ccd677912d" +checksum = "8064ea1d591ec791be95245058ca40f4f5345d390c200069d0f79bbf55bfae55" dependencies = [ - "borsh", "bytemuck", "bytemuck_derive", "five8", @@ -3327,28 +3595,28 @@ dependencies = [ "serde_derive", "solana-atomic-u64", "solana-sanitize", - "wincode", ] [[package]] name = "solana-instruction" -version = "3.4.0" +version = "3.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "37ebb0ffd19263051bc3f683fcc086134b8ff23af894dcb63f7563c7137b42f1" +checksum = "c6a6d22d0a6fdf345be294bb9afdcd40c296cdc095e64e7ceaa3bb3c2f608c1c" dependencies = [ "bincode", + "borsh", "serde", "serde_derive", - "solana-define-syscall 5.0.0", + "solana-define-syscall 5.1.0", "solana-instruction-error", - "solana-pubkey 4.2.0", + "solana-pubkey 4.1.0", ] [[package]] name = "solana-instruction-error" -version = "2.3.0" +version = "2.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a0b188842592fdf6cb96f55263ae1bf11713ab5114401d1d5a881ed7cc41bef6" +checksum = "7d3d048edaaeef5a3dc8c01853e585539a74417e4c2d43a9e2c161270045b838" dependencies = [ "num-traits", "serde", @@ -3383,7 +3651,7 @@ checksum = "ed1c0d16d6fdeba12291a1f068cdf0d479d9bff1141bf44afd7aa9d485f65ef8" dependencies = [ "sha3", "solana-define-syscall 4.0.1", - "solana-hash 4.3.0", + "solana-hash 4.2.0", ] [[package]] @@ -3392,11 +3660,11 @@ version = "3.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "263d614c12aa267a3278703175fd6440552ca61bc960b5a02a4482720c53438b" dependencies = [ - "ed25519-dalek 2.2.0", + "ed25519-dalek 2.1.1", "five8", "five8_core", - "rand 0.9.2", - "solana-address 2.6.0", + "rand 0.9.4", + "solana-address 2.2.0", "solana-seed-phrase", "solana-signature", "solana-signer", @@ -3404,9 +3672,9 @@ dependencies = [ [[package]] name = "solana-last-restart-slot" -version = "3.0.0" +version = "3.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dcda154ec827f5fc1e4da0af3417951b7e9b8157540f81f936c4a8b1156134d0" +checksum = "426711c6564b790026e45cabec3c64b971864c48b6b2d83c0ebf52a118bb4cda" dependencies = [ "serde", "serde_derive", @@ -3447,9 +3715,9 @@ dependencies = [ [[package]] name = "solana-loader-v4-program" -version = "3.1.11" +version = "4.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9b79ecebf56ff8acf46d5c0d77a11e1cb9a0f8eeb6dd1a69d739f3bf8ea8570e" +checksum = "4b5191cd34f04e4ec9fd5f2ac8a431ba9ffd6c827511fd35f2cae0256a0c6b12" dependencies = [ "log", "solana-account", @@ -3460,7 +3728,7 @@ dependencies = [ "solana-loader-v4-interface", "solana-packet", "solana-program-runtime", - "solana-pubkey 3.0.0", + "solana-pubkey 4.1.0", "solana-sbpf", "solana-sdk-ids", "solana-svm-log-collector", @@ -3480,8 +3748,8 @@ dependencies = [ "lazy_static", "serde", "serde_derive", - "solana-address 2.6.0", - "solana-hash 4.3.0", + "solana-address 2.2.0", + "solana-hash 4.2.0", "solana-instruction", "solana-sanitize", "solana-sdk-ids", @@ -3495,7 +3763,7 @@ version = "3.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "726b7cbbc6be6f1c6f29146ac824343b9415133eee8cce156452ad1db93f8008" dependencies = [ - "solana-define-syscall 5.0.0", + "solana-define-syscall 5.1.0", ] [[package]] @@ -3513,8 +3781,8 @@ dependencies = [ "serde", "serde_derive", "solana-fee-calculator", - "solana-hash 4.3.0", - "solana-pubkey 4.2.0", + "solana-hash 4.2.0", + "solana-pubkey 4.1.0", "solana-sha256-hasher", ] @@ -3530,35 +3798,27 @@ dependencies = [ "solana-sdk-ids", ] -[[package]] -name = "solana-nullable" -version = "1.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "da028344c595c7416769ff648d206de7962571291a4cea24c38a60b6f40d53bb" -dependencies = [ - "bytemuck", -] - [[package]] name = "solana-packet" -version = "3.0.0" +version = "4.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6edf2f25743c95229ac0fdc32f8f5893ef738dbf332c669e9861d33ddb0f469d" +checksum = "0ad62e1045c2347a0c0e219a6ceb0abfe904be622920996bfcac8d116fabe3c7" dependencies = [ "bitflags", + "solana-pubkey 4.1.0", ] [[package]] name = "solana-poseidon" -version = "3.1.11" +version = "4.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "38d213ef5dc664927b43725e9aae1f0848e06d556e7a5f2857f37af9dbf9856c" +checksum = "737b8ab25bf4cc8e618f80f1fe40709b2ace708bc764a36b8a4c81eea8c07034" dependencies = [ "ark-bn254 0.4.0", "ark-bn254 0.5.0", "light-poseidon 0.2.0", "light-poseidon 0.4.0", - "solana-define-syscall 3.0.0", + "solana-define-syscall 4.0.1", "thiserror 2.0.18", ] @@ -3580,7 +3840,7 @@ dependencies = [ "solana-account-info", "solana-define-syscall 4.0.1", "solana-program-error", - "solana-pubkey 4.2.0", + "solana-pubkey 4.1.0", ] [[package]] @@ -3618,16 +3878,17 @@ dependencies = [ [[package]] name = "solana-program-runtime" -version = "3.1.11" +version = "4.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "527e07453b083fa814e35bb56b8aaddb34d20eeeadeb0d13c115780365355c88" +checksum = "f6c7f89c89d5ff25f64a41c8cb00478b1d62f941f14a7dd8537c9e50bb2acc92" dependencies = [ "base64 0.22.1", "bincode", - "itertools 0.12.1", + "cfg-if", + "itertools 0.14.0", "log", "percentage", - "rand 0.8.5", + "rand 0.9.4", "serde", "solana-account", "solana-account-info", @@ -3635,12 +3896,12 @@ dependencies = [ "solana-epoch-rewards", "solana-epoch-schedule", "solana-fee-structure", - "solana-hash 3.1.0", + "solana-hash 4.2.0", "solana-instruction", "solana-last-restart-slot", "solana-loader-v3-interface", "solana-program-entrypoint", - "solana-pubkey 3.0.0", + "solana-pubkey 4.1.0", "solana-rent 3.1.0", "solana-sbpf", "solana-sdk-ids", @@ -3654,7 +3915,7 @@ dependencies = [ "solana-svm-timings", "solana-svm-transaction", "solana-svm-type-overrides", - "solana-system-interface 2.0.0", + "solana-system-interface 3.1.0", "solana-sysvar", "solana-sysvar-id", "solana-transaction-context", @@ -3672,11 +3933,11 @@ dependencies = [ [[package]] name = "solana-pubkey" -version = "4.2.0" +version = "4.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7db719574990de7e8b0f55a8593ac92a5ccb42c8ce67b3e4bf05b139d5d9ee71" +checksum = "1b06bd918d60111ee1f97de817113e2040ca0cedb740099ee8d646233f6b906c" dependencies = [ - "solana-address 2.6.0", + "solana-address 2.2.0", ] [[package]] @@ -3694,9 +3955,9 @@ dependencies = [ [[package]] name = "solana-rent" -version = "4.1.0" +version = "4.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a1771d726d4854f1818c750e14aff40b19d84720d0b1b6d53e50e8f16cb6bd62" +checksum = "f9809b081e99bc142ce803bcd7ee18306759ce3b30a96a9da3f6f41c45e50ef0" dependencies = [ "solana-sdk-macro", ] @@ -3709,16 +3970,16 @@ checksum = "dcf09694a0fc14e5ffb18f9b7b7c0f15ecb6eac5b5610bf76a1853459d19daf9" [[package]] name = "solana-sbpf" -version = "0.13.1" +version = "0.14.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b15b079e08471a9dbfe1e48b2c7439c85aa2a055cbd54eddd8bd257b0a7dbb29" +checksum = "733b3657a0fab205102b799dbe17f85d3972cf984232c1b0b108fa6ba438e382" dependencies = [ "byteorder", "combine", "hash32", "libc", "log", - "rand 0.8.5", + "rand 0.8.6", "rustc-demangle", "thiserror 2.0.18", "winapi", @@ -3730,7 +3991,7 @@ version = "3.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "def234c1956ff616d46c9dd953f251fa7096ddbaa6d52b165218de97882b7280" dependencies = [ - "solana-address 2.6.0", + "solana-address 2.2.0", ] [[package]] @@ -3769,7 +4030,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e7c5f18893d62e6c73117dcba48f8f5e3266d90e5ec3d0a0a90f9785adac36c1" dependencies = [ "k256", - "solana-define-syscall 5.0.0", + "solana-define-syscall 5.1.0", "thiserror 2.0.18", ] @@ -3821,7 +4082,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5d7cc401931d178472358e6b78dc72d031dc08f752d7410f0e8bd259dd6f02fa" dependencies = [ "solana-instruction-error", - "solana-pubkey 4.2.0", + "solana-pubkey 4.1.0", "solana-sanitize", ] @@ -3833,25 +4094,25 @@ checksum = "db7dc3011ea4c0334aaaa7e7128cb390ecf546b28d412e9bf2064680f57f588f" dependencies = [ "sha2 0.10.9", "solana-define-syscall 4.0.1", - "solana-hash 4.3.0", + "solana-hash 4.2.0", ] [[package]] name = "solana-short-vec" -version = "3.2.0" +version = "3.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "de3bd991c2cc415291c86bb0b6b4d53e93d13bb40344e4c5a2884e0e4f5fa93f" +checksum = "7d8250a4495aad49ad20556a607da53bdcb20de78da10b65afbf918b7f1de647" dependencies = [ "serde_core", ] [[package]] name = "solana-signature" -version = "3.4.0" +version = "3.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e7a73c6e97cc2108be0adf6a6ea326434f8398df9d7eed81da2a4548b69e971c" +checksum = "132a93134f1262aa832f1849b83bec6c9945669b866da18661a427943b9e801e" dependencies = [ - "ed25519-dalek 2.2.0", + "ed25519-dalek 2.1.1", "five8", "serde", "serde-big-array", @@ -3879,16 +4140,16 @@ checksum = "2585f70191623887329dfb5078da3a00e15e3980ea67f42c2e10b07028419f43" dependencies = [ "serde", "serde_derive", - "solana-hash 4.3.0", + "solana-hash 4.2.0", "solana-sdk-ids", "solana-sysvar-id", ] [[package]] name = "solana-slot-history" -version = "3.0.0" +version = "3.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f914f6b108f5bba14a280b458d023e3621c9973f27f015a4d755b50e88d89e97" +checksum = "0622d03a823770f7763afd866e012b296d5a3cbbbe51e110b5bd9ab3441efdca" dependencies = [ "bv", "serde", @@ -3904,7 +4165,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c9f6a291ba063a37780af29e7db14bdd3dc447584d8ba5b3fc4b88e2bbc982fa" dependencies = [ "solana-instruction", - "solana-pubkey 4.2.0", + "solana-pubkey 4.1.0", ] [[package]] @@ -3928,57 +4189,57 @@ dependencies = [ [[package]] name = "solana-svm-callback" -version = "3.1.11" +version = "4.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c895f1add5c9ceff634f485554ddbcbceb88cba71b2f753c4caaba461690d2c6" +checksum = "4006b0da7e50cba514ced6b47bcf8f9591552458200e361fd4bdef4068cb2fed" dependencies = [ "solana-account", "solana-clock", "solana-precompile-error", - "solana-pubkey 3.0.0", + "solana-pubkey 4.1.0", ] [[package]] name = "solana-svm-feature-set" -version = "3.1.11" +version = "4.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5addc8fc7beb262aed2df0c34322a04a1b07b82d35fac0a34cd01f5263f7e971" +checksum = "24ea15c0d91403375e3d017cc09780cf138b629abba4ccaaa7cf66b1afea1059" [[package]] name = "solana-svm-log-collector" -version = "3.1.11" +version = "4.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3e985304ae8370c2b14c5c31c3e4dfdd18bc38ba806ee341655119430116c1f0" +checksum = "efb7d3ccd3a51b85807ff16b2f513069e8b55e220b280774a3e9b899bcb81987" dependencies = [ "log", ] [[package]] name = "solana-svm-measure" -version = "3.1.11" +version = "4.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d8bc239ef12213c45a4077799a154f340b290938973ad11dc4aaedee8fe39319" +checksum = "d70c9972c1f03cb2bbc64d23dc2079419a66d89b49d6b44f79206530551ddc8c" [[package]] name = "solana-svm-timings" -version = "3.1.11" +version = "4.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "df7bc8099ec662531e751607c096a2b336502b592ddd2cf584ec8312fd499fa8" +checksum = "20f3d66aa88c9001a076362108f7967d6a00d121ba38428e56928935566ed5bd" dependencies = [ "eager", "enum-iterator", - "solana-pubkey 3.0.0", + "solana-pubkey 4.1.0", ] [[package]] name = "solana-svm-transaction" -version = "3.1.11" +version = "4.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "29a9d25c729620fc70664e17d787a7804e52903da6fc94810e5dac7ca3217064" +checksum = "067861db805d135a6fbe489bf2b74d701f270df8d03afd3257f7d51a2ff3467e" dependencies = [ - "solana-hash 3.1.0", + "solana-hash 4.2.0", "solana-message", - "solana-pubkey 3.0.0", + "solana-pubkey 4.1.0", "solana-sdk-ids", "solana-signature", "solana-transaction", @@ -3986,11 +4247,11 @@ dependencies = [ [[package]] name = "solana-svm-type-overrides" -version = "3.1.11" +version = "4.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5093201eaac4a41edcaab9fc0060712d5bce2d2a0ca6134d18e9bcac2b3739bc" +checksum = "8e41661ebf0edcc296b15251c08fee0ad2da3257e6ab86cea2a0a8f6fba642c6" dependencies = [ - "rand 0.8.5", + "rand 0.9.4", ] [[package]] @@ -4010,14 +4271,14 @@ dependencies = [ [[package]] name = "solana-system-interface" -version = "3.2.0" +version = "3.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "55b54965bf0b76fa8e2b35376583efddd4d916618cfe595bf48c7d7b55a9e628" +checksum = "a95a6f2e23ed861d6444ad4a6d6896c418d7d101b960787e65a8e33157cee81b" dependencies = [ "num-traits", "serde", "serde_derive", - "solana-address 2.6.0", + "solana-address 2.2.0", "solana-instruction", "solana-msg", "solana-program-error", @@ -4025,9 +4286,9 @@ dependencies = [ [[package]] name = "solana-system-program" -version = "3.1.11" +version = "4.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ab198a979e1bfa90e5a481fd3cec77326660e182668a248020cbd427c0ea1b5f" +checksum = "450479004fee3396c88cc4aa2f9b2b8db9c77be42ee7c1c53e6fac9eaec5fd51" dependencies = [ "bincode", "log", @@ -4040,11 +4301,11 @@ dependencies = [ "solana-nonce-account", "solana-packet", "solana-program-runtime", - "solana-pubkey 3.0.0", + "solana-pubkey 4.1.0", "solana-sdk-ids", "solana-svm-log-collector", "solana-svm-type-overrides", - "solana-system-interface 2.0.0", + "solana-system-interface 3.1.0", "solana-sysvar", "solana-transaction-context", ] @@ -4066,13 +4327,13 @@ dependencies = [ "solana-epoch-rewards", "solana-epoch-schedule", "solana-fee-calculator", - "solana-hash 4.3.0", + "solana-hash 4.2.0", "solana-instruction", "solana-last-restart-slot", "solana-program-entrypoint", "solana-program-error", "solana-program-memory", - "solana-pubkey 4.2.0", + "solana-pubkey 4.1.0", "solana-rent 3.1.0", "solana-sdk-ids", "solana-sdk-macro", @@ -4087,7 +4348,7 @@ version = "3.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "17358d1e9a13e5b9c2264d301102126cf11a47fd394cdf3dec174fe7bc96e1de" dependencies = [ - "solana-address 2.6.0", + "solana-address 2.2.0", "solana-sdk-ids", ] @@ -4100,8 +4361,8 @@ dependencies = [ "bincode", "serde", "serde_derive", - "solana-address 2.6.0", - "solana-hash 4.3.0", + "solana-address 2.2.0", + "solana-hash 4.2.0", "solana-instruction", "solana-instruction-error", "solana-message", @@ -4115,16 +4376,16 @@ dependencies = [ [[package]] name = "solana-transaction-context" -version = "3.1.11" +version = "4.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "15c4936df4b86a943ea6d552ca2c64fcc0d1a06dee2193cbf463eaedc372736d" +checksum = "ecefe8b30e334e2891ca82da35becd9a3f4c16021d9ca782e2a82adf31084fa3" dependencies = [ "bincode", "serde", "solana-account", "solana-instruction", "solana-instructions-sysvar", - "solana-pubkey 3.0.0", + "solana-pubkey 4.1.0", "solana-rent 3.1.0", "solana-sbpf", "solana-sdk-ids", @@ -4132,9 +4393,9 @@ dependencies = [ [[package]] name = "solana-transaction-error" -version = "3.2.0" +version = "3.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4a2165ad25b694c654d5395fc7a049452a192376e4c96a7fad05580f6ba5ba1c" +checksum = "8396904805b0b385b9de115a652fe80fd01e5b98ce0513f4fcd8184ada9bb792" dependencies = [ "serde", "serde_derive", @@ -4143,32 +4404,6 @@ dependencies = [ "wincode", ] -[[package]] -name = "solana-vote-interface" -version = "4.0.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "db6e123e16bfdd7a81d71b4c4699e0b29580b619f4cd2ef5b6aae1eb85e8979f" -dependencies = [ - "bincode", - "cfg_eval", - "num-derive", - "num-traits", - "serde", - "serde_derive", - "serde_with", - "solana-clock", - "solana-hash 3.1.0", - "solana-instruction", - "solana-instruction-error", - "solana-pubkey 3.0.0", - "solana-rent 3.1.0", - "solana-sdk-ids", - "solana-serde-varint", - "solana-serialize-utils", - "solana-short-vec", - "solana-system-interface 2.0.0", -] - [[package]] name = "solana-vote-interface" version = "5.1.1" @@ -4183,23 +4418,23 @@ dependencies = [ "serde_derive", "serde_with", "solana-clock", - "solana-hash 4.3.0", + "solana-hash 4.2.0", "solana-instruction", "solana-instruction-error", - "solana-pubkey 4.2.0", - "solana-rent 4.1.0", + "solana-pubkey 4.1.0", + "solana-rent 4.2.0", "solana-sdk-ids", "solana-serde-varint", "solana-serialize-utils", "solana-short-vec", - "solana-system-interface 3.2.0", + "solana-system-interface 3.1.0", ] [[package]] name = "solana-vote-program" -version = "3.1.11" +version = "4.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "55e2eab8557ff61ae2f58ebdb63aabf3579e04eb3dd07e8b4c4102704a137bae" +checksum = "4537fd6efe65f53ccd28d54d2ad43275b024834a4a8ca4dfa4babfa01e6d11ab" dependencies = [ "agave-feature-set", "bincode", @@ -4209,39 +4444,42 @@ dependencies = [ "serde", "solana-account", "solana-bincode", + "solana-bls-signatures", "solana-clock", "solana-epoch-schedule", - "solana-hash 3.1.0", + "solana-hash 4.2.0", "solana-instruction", "solana-keypair", "solana-packet", "solana-program-runtime", - "solana-pubkey 3.0.0", + "solana-pubkey 4.1.0", "solana-rent 3.1.0", "solana-sdk-ids", "solana-signer", "solana-slot-hashes", + "solana-system-interface 3.1.0", "solana-transaction", "solana-transaction-context", - "solana-vote-interface 4.0.4", + "solana-vote-interface", "thiserror 2.0.18", ] [[package]] name = "solana-zero-copy" -version = "1.0.0" +version = "1.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "94f52dd8f733a13f6a18e55de83cf97c4c3f5fdf27ea3830bcff0b35313efcc2" +checksum = "8ea15126ebdc7e270c50d43884369af9f51d2308156d46a18e351522a164844d" dependencies = [ + "borsh", "bytemuck", "bytemuck_derive", ] [[package]] name = "solana-zk-elgamal-proof-program" -version = "3.1.11" +version = "4.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "98ebd77845de672972a32c357d7a68f2cc16c1037cc0ebf550ebba167827c10c" +checksum = "fdf97ec816e8c6d45b5f05e21381bcc4b856cb3c89b69e465ee20972368b4c31" dependencies = [ "agave-feature-set", "bytemuck", @@ -4251,7 +4489,7 @@ dependencies = [ "solana-program-runtime", "solana-sdk-ids", "solana-svm-log-collector", - "solana-zk-sdk", + "solana-zk-sdk 5.0.1", ] [[package]] @@ -4272,7 +4510,7 @@ dependencies = [ "merlin", "num-derive", "num-traits", - "rand 0.8.5", + "rand 0.8.6", "serde", "serde_derive", "serde_json", @@ -4292,27 +4530,10 @@ dependencies = [ ] [[package]] -name = "solana-zk-token-proof-program" -version = "3.1.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2c13a05831857b4e3320d98cdd77a3f7b645566508d8f66a07c9168ac1e8bc68" -dependencies = [ - "agave-feature-set", - "bytemuck", - "num-derive", - "num-traits", - "solana-instruction", - "solana-program-runtime", - "solana-sdk-ids", - "solana-svm-log-collector", - "solana-zk-token-sdk", -] - -[[package]] -name = "solana-zk-token-sdk" -version = "3.1.11" +name = "solana-zk-sdk" +version = "5.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cd8dab3f2df045b7bec3cb3e1cff0889ec46d776191c3a2af19a77ddd3c4c6fc" +checksum = "09670ff59f60e6ddc2209c2e4353992a9b9f01d4e244f3e9d67bd5146e33d388" dependencies = [ "aes-gcm-siv", "base64 0.22.1", @@ -4320,18 +4541,18 @@ dependencies = [ "bytemuck", "bytemuck_derive", "curve25519-dalek 4.1.3", - "itertools 0.12.1", + "itertools 0.14.0", "merlin", "num-derive", "num-traits", - "rand 0.8.5", + "rand 0.8.6", "serde", + "serde_derive", "serde_json", "sha3", - "solana-curve25519", + "solana-address 2.2.0", "solana-derivation-path", "solana-instruction", - "solana-pubkey 3.0.0", "solana-sdk-ids", "solana-seed-derivable", "solana-seed-phrase", @@ -4342,6 +4563,15 @@ dependencies = [ "zeroize", ] +[[package]] +name = "solana-zk-token-proof-program" +version = "4.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5f08a8be7008cec95d74c0ded5ae10b6869bd06bd9761c800e7e098bd45097e6" +dependencies = [ + "solana-program-runtime", +] + [[package]] name = "spki" version = "0.7.3" @@ -4400,9 +4630,9 @@ dependencies = [ [[package]] name = "spl-pod" -version = "0.7.2" +version = "0.7.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d6f3df240f67bea453d4bc5749761e45436d14b9457ed667e0300555d5c271f3" +checksum = "2f9c6e142cdf1e7e77f480053ec9f0ce989890768ddf91f619b50f39d1b456f5" dependencies = [ "borsh", "bytemuck", @@ -4413,7 +4643,8 @@ dependencies = [ "solana-program-error", "solana-program-option", "solana-pubkey 3.0.0", - "solana-zk-sdk", + "solana-zero-copy", + "solana-zk-sdk 4.0.0", "thiserror 2.0.18", ] @@ -4435,7 +4666,7 @@ dependencies = [ "solana-program-pack", "solana-pubkey 3.0.0", "solana-sdk-ids", - "solana-zk-sdk", + "solana-zk-sdk 4.0.0", "spl-pod", "spl-token-confidential-transfer-proof-extraction", "spl-token-confidential-transfer-proof-generation", @@ -4453,14 +4684,14 @@ checksum = "879a9ebad0d77383d3ea71e7de50503554961ff0f4ef6cbca39ad126e6f6da3a" dependencies = [ "bytemuck", "solana-account-info", - "solana-curve25519", + "solana-curve25519 3.1.14", "solana-instruction", "solana-instructions-sysvar", "solana-msg", "solana-program-error", "solana-pubkey 3.0.0", "solana-sdk-ids", - "solana-zk-sdk", + "solana-zk-sdk 4.0.0", "spl-pod", "thiserror 2.0.18", ] @@ -4472,26 +4703,25 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a0cd59fce3dc00f563c6fa364d67c3f200d278eae681f4dc250240afcfe044b1" dependencies = [ "curve25519-dalek 4.1.3", - "solana-zk-sdk", + "solana-zk-sdk 4.0.0", "thiserror 2.0.18", ] [[package]] name = "spl-token-group-interface" -version = "0.7.2" +version = "0.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "841cbd6f2322d02719be4da1affedbe6495b1048b7b985ec9796032564026e22" +checksum = "452d0f758af20caaa10d9a6f7608232e000d4c74462f248540b3d2ddfa419776" dependencies = [ "bytemuck", "num-derive", "num-traits", "num_enum", - "solana-address 2.6.0", "solana-instruction", - "solana-nullable", "solana-program-error", - "solana-zero-copy", + "solana-pubkey 3.0.0", "spl-discriminator", + "spl-pod", "thiserror 2.0.18", ] @@ -4585,6 +4815,12 @@ dependencies = [ "unicode-ident", ] +[[package]] +name = "tap" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "55937e1799185b12863d447f42597ed69d9928686b8d88a1df17376a097d8369" + [[package]] name = "tempfile" version = "3.27.0" @@ -4592,7 +4828,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "32497e9a4c7b38532efcdebeef879707aa9f794296a4f0244f6f69e9bc8574bd" dependencies = [ "fastrand", - "getrandom 0.3.4", + "getrandom 0.4.2", "once_cell", "rustix", "windows-sys", @@ -4600,9 +4836,9 @@ dependencies = [ [[package]] name = "test-log" -version = "0.2.19" +version = "0.2.21" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "37d53ac171c92a39e4769491c4b4dde7022c60042254b5fc044ae409d34a24d4" +checksum = "9b9c218384242b5c89b68303ab6f6fc53a312d923f0c14dc6bb860c6aeee40f1" dependencies = [ "env_logger", "test-log-macros", @@ -4610,16 +4846,26 @@ dependencies = [ ] [[package]] -name = "test-log-macros" -version = "0.2.19" +name = "test-log-core" +version = "0.2.21" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "be35209fd0781c5401458ab66e4f98accf63553e8fae7425503e92fdd319783b" +checksum = "c26ef8b00e4d382e59f6a8ddb3cd790b3a5bb29f21a358a9a69ea2f29f13f27b" dependencies = [ "proc-macro2", "quote", "syn 2.0.117", ] +[[package]] +name = "test-log-macros" +version = "0.2.21" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "944ad38adcbb71eaa682c56bceeb079e4ca82b4b3edc2a0fde5cb297b77dac8d" +dependencies = [ + "syn 2.0.117", + "test-log-core", +] + [[package]] name = "thiserror" version = "1.0.69" @@ -4669,6 +4915,15 @@ dependencies = [ "cfg-if", ] +[[package]] +name = "threadpool" +version = "1.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d050e60b33d41c19108b32cea32164033a9013fe3b46cbd4457559bfbf77afaa" +dependencies = [ + "num_cpus", +] + [[package]] name = "tinytemplate" version = "1.2.1" @@ -4696,18 +4951,18 @@ checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" [[package]] name = "toml_datetime" -version = "1.1.0+spec-1.1.0" +version = "1.1.1+spec-1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "97251a7c317e03ad83774a8752a7e81fb6067740609f75ea2b585b569a59198f" +checksum = "3165f65f62e28e0115a00b2ebdd37eb6f3b641855f9d636d3cd4103767159ad7" dependencies = [ "serde_core", ] [[package]] name = "toml_edit" -version = "0.25.8+spec-1.1.0" +version = "0.25.12+spec-1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "16bff38f1d86c47f9ff0647e6838d7bb362522bdf44006c7068c2b1e606f1f3c" +checksum = "d2153edc6955a6c354fad8f5efd38b6a8769bdccf9fe50f8e1329f81b0baa5d7" dependencies = [ "indexmap", "toml_datetime", @@ -4717,9 +4972,9 @@ dependencies = [ [[package]] name = "toml_parser" -version = "1.1.0+spec-1.1.0" +version = "1.1.2+spec-1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2334f11ee363607eb04df9b8fc8a13ca1715a72ba8662a26ac285c98aabb4011" +checksum = "a2abe9b86193656635d2411dc43050282ca48aa31c2451210f4202550afb7526" dependencies = [ "winnow", ] @@ -4774,9 +5029,9 @@ dependencies = [ [[package]] name = "typenum" -version = "1.19.0" +version = "1.20.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "562d481066bde0658276a35467c4af00bdc6ee726305698a55b86e61d7ad82bb" +checksum = "b6f5e870be6c3b371b77fe0ee0bafb859fa4964b4404c27de1d380043c4dda20" [[package]] name = "unicode-ident" @@ -4786,9 +5041,15 @@ checksum = "e6e4313cd5fcd3dad5cafa179702e2b244f760991f45397d14d4ebf38247da75" [[package]] name = "unicode-segmentation" -version = "1.13.2" +version = "1.13.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c6f5d3c3b1bf09027a88a6bc961fc00497d651009560b5463668dc81b0fa87a8" + +[[package]] +name = "unicode-xid" +version = "0.2.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9629274872b2bfaf8d66f5f15725007f635594914870f65218920345aa11aa8c" +checksum = "ebc1c04c71510c7f702b52b7c350734c9ff1295c464a03335b00bb84fc54f853" [[package]] name = "universal-hash" @@ -4796,7 +5057,7 @@ version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fc1de2c688dc15305988b563c3854064043356019f97a4b46276fe734c4f07ea" dependencies = [ - "crypto-common", + "crypto-common 0.1.7", "subtle", ] @@ -4873,18 +5134,27 @@ checksum = "ccf3ec651a847eb01de73ccad15eb7d99f80485de043efb2f370cd654f4ea44b" [[package]] name = "wasip2" -version = "1.0.2+wasi-0.2.9" +version = "1.0.4+wasi-0.2.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b67efb37e106e55ce722a510d6b5f9c17f083e5fc79afc2badeb12cc313d9487" +dependencies = [ + "wit-bindgen 0.57.1", +] + +[[package]] +name = "wasip3" +version = "0.4.0+wasi-0.3.0-rc-2026-01-06" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9517f9239f02c069db75e65f174b3da828fe5f5b945c4dd26bd25d89c03ebcf5" +checksum = "5428f8bf88ea5ddc08faddef2ac4a67e390b88186c703ce6dbd955e1c145aca5" dependencies = [ - "wit-bindgen", + "wit-bindgen 0.51.0", ] [[package]] name = "wasm-bindgen" -version = "0.2.115" +version = "0.2.125" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6523d69017b7633e396a89c5efab138161ed5aafcbc8d3e5c5a42ae38f50495a" +checksum = "8ddb3f79143bced6de84270411622a2699cee572fc0875aeaf1e7867cf9fca1a" dependencies = [ "cfg-if", "once_cell", @@ -4895,9 +5165,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro" -version = "0.2.115" +version = "0.2.125" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4e3a6c758eb2f701ed3d052ff5737f5bfe6614326ea7f3bbac7156192dc32e67" +checksum = "4e21a184b13fb19e157296e2c46056aec9092264fab83e4ba59e68c61b323c3d" dependencies = [ "quote", "wasm-bindgen-macro-support", @@ -4905,9 +5175,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro-support" -version = "0.2.115" +version = "0.2.125" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "921de2737904886b52bcbb237301552d05969a6f9c40d261eb0533c8b055fedf" +checksum = "fecefd9c35bd935a20fc3fc344b5f29138961e4f47fb03297d88f2587afb5ebd" dependencies = [ "bumpalo", "proc-macro2", @@ -4918,18 +5188,52 @@ dependencies = [ [[package]] name = "wasm-bindgen-shared" -version = "0.2.115" +version = "0.2.125" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a93e946af942b58934c604527337bad9ae33ba1d5c6900bbb41c2c07c2364a93" +checksum = "23939e44bb9a5d7576fa2b563dc2e136628f1224e88a8deed09e04858b77871f" dependencies = [ "unicode-ident", ] +[[package]] +name = "wasm-encoder" +version = "0.244.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "990065f2fe63003fe337b932cfb5e3b80e0b4d0f5ff650e6985b1048f62c8319" +dependencies = [ + "leb128fmt", + "wasmparser", +] + +[[package]] +name = "wasm-metadata" +version = "0.244.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bb0e353e6a2fbdc176932bbaab493762eb1255a7900fe0fea1a2f96c296cc909" +dependencies = [ + "anyhow", + "indexmap", + "wasm-encoder", + "wasmparser", +] + +[[package]] +name = "wasmparser" +version = "0.244.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "47b807c72e1bac69382b3a6fb3dbe8ea4c0ed87ff5629b8685ae6b9a611028fe" +dependencies = [ + "bitflags", + "hashbrown 0.15.5", + "indexmap", + "semver", +] + [[package]] name = "web-sys" -version = "0.3.92" +version = "0.3.102" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "84cde8507f4d7cfcb1185b8cb5890c494ffea65edbe1ba82cfd63661c805ed94" +checksum = "a6430a72df5eb332242960fe84b3002a241163998241eb596d4f739b9757061d" dependencies = [ "js-sys", "wasm-bindgen", @@ -4968,9 +5272,9 @@ checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" [[package]] name = "wincode" -version = "0.5.3" +version = "0.4.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b4c754f1fc41250f2f742a27ba0fcc9f73df1dec23f6878490770855d43c322d" +checksum = "657690780ce23e6f66576a782ffd88eb353512381817029cc1d7a99154bb6d1f" dependencies = [ "pastey", "proc-macro2", @@ -4981,11 +5285,11 @@ dependencies = [ [[package]] name = "wincode-derive" -version = "0.4.4" +version = "0.4.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3e070787599c7c067b89598cd3eda440cca1b69eda9e0ff7c725fc8679ce9eb4" +checksum = "15ab90b719560d0fda79c74550ad1c948d17b118765942838055ebaf34d67071" dependencies = [ - "darling 0.21.3", + "darling", "proc-macro2", "quote", "syn 2.0.117", @@ -5008,9 +5312,9 @@ dependencies = [ [[package]] name = "winnow" -version = "1.0.0" +version = "1.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a90e88e4667264a994d34e6d1ab2d26d398dcdca8b7f52bec8668957517fc7d8" +checksum = "0592e1c9d151f854e6fd382574c3a0855250e1d9b2f99d9281c6e6391af352f1" dependencies = [ "memchr", ] @@ -5020,21 +5324,118 @@ name = "wit-bindgen" version = "0.51.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d7249219f66ced02969388cf2bb044a09756a083d0fab1e566056b04d9fbcaa5" +dependencies = [ + "wit-bindgen-rust-macro", +] + +[[package]] +name = "wit-bindgen" +version = "0.57.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1ebf944e87a7c253233ad6766e082e3cd714b5d03812acc24c318f549614536e" + +[[package]] +name = "wit-bindgen-core" +version = "0.51.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ea61de684c3ea68cb082b7a88508a8b27fcc8b797d738bfc99a82facf1d752dc" +dependencies = [ + "anyhow", + "heck", + "wit-parser", +] + +[[package]] +name = "wit-bindgen-rust" +version = "0.51.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b7c566e0f4b284dd6561c786d9cb0142da491f46a9fbed79ea69cdad5db17f21" +dependencies = [ + "anyhow", + "heck", + "indexmap", + "prettyplease", + "syn 2.0.117", + "wasm-metadata", + "wit-bindgen-core", + "wit-component", +] + +[[package]] +name = "wit-bindgen-rust-macro" +version = "0.51.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0c0f9bfd77e6a48eccf51359e3ae77140a7f50b1e2ebfe62422d8afdaffab17a" +dependencies = [ + "anyhow", + "prettyplease", + "proc-macro2", + "quote", + "syn 2.0.117", + "wit-bindgen-core", + "wit-bindgen-rust", +] + +[[package]] +name = "wit-component" +version = "0.244.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9d66ea20e9553b30172b5e831994e35fbde2d165325bec84fc43dbf6f4eb9cb2" +dependencies = [ + "anyhow", + "bitflags", + "indexmap", + "log", + "serde", + "serde_derive", + "serde_json", + "wasm-encoder", + "wasm-metadata", + "wasmparser", + "wit-parser", +] + +[[package]] +name = "wit-parser" +version = "0.244.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ecc8ac4bc1dc3381b7f59c34f00b67e18f910c2c0f50015669dde7def656a736" +dependencies = [ + "anyhow", + "id-arena", + "indexmap", + "log", + "semver", + "serde", + "serde_derive", + "serde_json", + "unicode-xid", + "wasmparser", +] + +[[package]] +name = "wyz" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "05f360fc0b24296329c78fda852a1e9ae82de9cf7b27dae4b7f62f118f77b9ed" +dependencies = [ + "tap", +] [[package]] name = "zerocopy" -version = "0.8.48" +version = "0.8.52" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eed437bf9d6692032087e337407a86f04cd8d6a16a37199ed57949d415bd68e9" +checksum = "ce1022995ff5ff5d841ad7d994facc23098cd40152f2c1d11cd607c6f530653f" dependencies = [ "zerocopy-derive", ] [[package]] name = "zerocopy-derive" -version = "0.8.48" +version = "0.8.52" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "70e3cd084b1788766f53af483dd21f93881ff30d7320490ec3ef7526d203bad4" +checksum = "1ae7f38b72ec2a254e2b87ef277cf2cd4fb97cbebf944faa6f33354da0867930" dependencies = [ "proc-macro2", "quote", @@ -5043,18 +5444,18 @@ dependencies = [ [[package]] name = "zeroize" -version = "1.8.2" +version = "1.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b97154e67e32c85465826e8bcc1c59429aaaf107c1e4a9e53c8d8ccd5eff88d0" +checksum = "e13c156562582aa81c60cb29407084cdb54c4164760106ab78e6c5b0858cf64e" dependencies = [ "zeroize_derive", ] [[package]] name = "zeroize_derive" -version = "1.4.3" +version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "85a5b4158499876c763cb03bc4e49185d3cccbabb15b33c627f7884f43db852e" +checksum = "3c50655cbb0fe3fc43170059e702f1ce5e19b84cec58dc87b037a09935c2f328" dependencies = [ "proc-macro2", "quote", diff --git a/Cargo.toml b/Cargo.toml index e1a3063c0..4be234fe2 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -11,20 +11,20 @@ repository = "https://github.com/LiteSVM/litesvm" rust-version = "1.86.0" [workspace.dependencies] -agave-feature-set = "3.1.0" -agave-precompiles = "3.1.0" -agave-reserved-account-keys = "3.1.0" -agave-syscalls = "3.1.0" +agave-feature-set = "4.0.0" +agave-precompiles = "4.0.0" +agave-reserved-account-keys = "4.0.0" +agave-syscalls = "4.0.0" ansi_term = "0.12" bincode = "1.3.3" bv = "0.11.1" -criterion = "0.8" -ed25519-dalek = "=1.0.1" +criterion = "0.8.2" +ed25519-dalek = "=2.1.1" hashbrown = "0.16.0" hex = "0.4.3" indexmap = "2.12" itertools = "0.14" -libsecp256k1 = "0.6.0" +libsecp256k1 = "0.7.2" litesvm = { path = "crates/litesvm", version = "0.12" } log = "0.4" napi = { version = "3.8.3", default-features = false } @@ -34,66 +34,67 @@ qualifier_attr = "0.2.2" serde = "1.0.203" sha2 = "0.10.9" smallvec = "1.13" -solana-account = "3.2.0" -solana-address = "2.6" -solana-address-lookup-table-interface = "3.0" -solana-bpf-loader-program = "3.1.0" -solana-builtins = "3.1.0" -solana-clock = "3.0" -solana-compute-budget = "3.1.0" -solana-compute-budget-instruction = "3.1.0" +solana-account = "3.4.0" +solana-address = "=2.2.0" +solana-address-lookup-table-interface = "=3.0.1" +solana-bpf-loader-program = "4.0.0" +solana-builtins = "4.0.0" +solana-clock = "3.0.1" +solana-compute-budget = "4.0.0" +solana-compute-budget-instruction = "4.0.0" solana-compute-budget-interface = "3.0" -solana-ed25519-program = "3.0" -solana-epoch-rewards = "3.0" -solana-epoch-schedule = "3.0" -solana-fee = "3.1" +solana-ed25519-program = "3.0.0" +solana-epoch-rewards = "3.0.0" +solana-epoch-schedule = "3.0.0" +solana-fee = "4.0.0" solana-feature-gate-interface = "3.1.0" solana-fee-structure = "3.0" -solana-hash = "3.1.0" -solana-instruction = "3.4" -solana-instructions-sysvar = "3.0" +solana-hash = "4.2.0" +solana-instruction = "=3.2.0" +solana-instructions-sysvar = "3.0.0" solana-keypair = "3.1" solana-last-restart-slot = "3.0" solana-loader-v3-interface = "6.1.0" solana-loader-v4-interface = "3.1.0" -solana-message = "3.1" -solana-native-token = "3.0" +solana-loader-v4-program = "4.0.0" +solana-message = "=3.1.0" +solana-native-token = "3.0.0" solana-nonce = "3.0" -solana-nonce-account = "3.0" -solana-precompile-error = "3.0" -solana-program-error = "3.0" +solana-nonce-account = "3.0.0" +solana-precompile-error = "3.0.0" +solana-program-error = "3.0.0" solana-program-option = "3.0" -solana-program-pack = "3.0" -solana-program-runtime = "3.0" -solana-rent = "3.0" -solana-sdk-ids = "3.0" -solana-secp256k1-program = "3.0" +solana-program-pack = "3.1.0" +solana-program-runtime = "4.0.0" +solana-rent = "3.1.0" +solana-sdk-ids = "3.1.0" +solana-secp256k1-program = "3.0.1" solana-sha256-hasher = "3.1.0" -solana-signature = "3.4" -solana-signer = "3.0" -solana-slot-hashes = "3.0" -solana-slot-history = "3.0" -solana-stake-interface = "2.0.1" -solana-svm-callback = "3.1.0" -solana-svm-log-collector = "3.1.0" -solana-svm-timings = "3.1.0" -solana-svm-transaction = "3.0.0" -solana-system-interface = "3.2" -solana-system-program = "3.1.0" -solana-sysvar = "3.0" -solana-sysvar-id = "3.0" -solana-transaction = "3.0" -solana-transaction-context = "3.1.0" -solana-transaction-error = "3.2" -solana-vote-interface = "5.0.0" +solana-signature = "3.3.0" +solana-signer = "3.0.0" +solana-slot-hashes = "3.0.1" +solana-slot-history = "3.0.1" +solana-stake-interface = "2.0.2" +solana-svm-callback = "4.0.0" +solana-svm-log-collector = "4.0.0" +solana-svm-timings = "4.0.0" +solana-svm-transaction = "4.0.0" +solana-system-interface = "3.0" +solana-system-program = "4.0.0" +solana-sysvar = "3.1.1" +solana-sysvar-id = "3.1.0" +solana-transaction = "3.1.0" +solana-transaction-context = "4.0.0" +solana-transaction-error = "3.1.0" +solana-vote-interface = "=5.1.1" spl-associated-token-account-interface = "2.0.0" spl-token-2022-interface = "2.0.0" spl-token-interface = "2.0.0" tempfile = "3" test-log = "0.2" -thiserror = "2.0" -wincode = "0.5.3" -wincode-derive = "0.4.4" +thiserror = "2.0.17" +wincode = "0.4.9" +wincode-derive = "0.4.6" [profile.bench] debug = true diff --git a/crates/litesvm/Cargo.toml b/crates/litesvm/Cargo.toml index 87e2cff1e..2f5f0da81 100644 --- a/crates/litesvm/Cargo.toml +++ b/crates/litesvm/Cargo.toml @@ -64,6 +64,7 @@ solana-keypair.workspace = true solana-last-restart-slot.workspace = true solana-loader-v3-interface.workspace = true solana-loader-v4-interface.workspace = true +solana-loader-v4-program.workspace = true solana-message.workspace = true solana-native-token.workspace = true solana-nonce.workspace = true diff --git a/crates/litesvm/src/error.rs b/crates/litesvm/src/error.rs index 6c8f5c717..251ed753a 100644 --- a/crates/litesvm/src/error.rs +++ b/crates/litesvm/src/error.rs @@ -32,4 +32,6 @@ pub enum LiteSVMError { InvalidPath(#[from] std::io::Error), #[error("{0}")] InvalidLoader(String), + #[error("{0}")] + ProgramLoad(String), } diff --git a/crates/litesvm/src/lib.rs b/crates/litesvm/src/lib.rs index f28d8737e..df37e5fff 100644 --- a/crates/litesvm/src/lib.rs +++ b/crates/litesvm/src/lib.rs @@ -373,7 +373,7 @@ use { solana_stake_interface::stake_history::StakeHistory, solana_svm_log_collector::LogCollector, solana_svm_timings::ExecuteTimings, - solana_svm_transaction::svm_message::SVMMessage, + solana_svm_transaction::svm_message::SVMStaticMessage, solana_system_program::{get_system_account_kind, SystemAccountKind}, solana_sysvar::{Sysvar, SysvarSerialize}, solana_sysvar_id::SysvarId, @@ -381,7 +381,10 @@ use { sanitized::{MessageHash, SanitizedTransaction, MAX_TX_ACCOUNT_LOCKS}, versioned::VersionedTransaction, }, - solana_transaction_context::{ExecutionRecord, IndexOfAccount, TransactionContext}, + solana_transaction_context::{ + transaction::{ExecutionRecord, TransactionContext}, + IndexOfAccount, + }, solana_transaction_error::TransactionError, std::{cell::RefCell, path::Path, rc::Rc, sync::Arc}, types::SimulatedTransactionInfo, @@ -973,17 +976,33 @@ impl LiteSVM { ))); }; - let mut loaded_program = solana_bpf_loader_program::load_program_from_bytes( - None, - &mut LoadProgramMetrics::default(), - program_bytes, - loader_id, - program_size, - current_slot, - self.accounts.environments.program_runtime_v1.clone(), - PREVERIFIED, - ) - .map_err(LiteSVMError::from)?; + let effective_slot = current_slot + .saturating_add(solana_program_runtime::loaded_programs::DELAY_VISIBILITY_SLOT_OFFSET); + let mut loaded_program = if PREVERIFIED { + // Safety: PREVERIFIED means the program was previously verified. + unsafe { + ProgramCacheEntry::reload( + loader_id, + self.accounts.environments.program_runtime_v1.clone(), + current_slot, + effective_slot, + program_bytes, + program_size, + &mut LoadProgramMetrics::default(), + ) + } + } else { + ProgramCacheEntry::new( + loader_id, + self.accounts.environments.program_runtime_v1.clone(), + current_slot, + effective_slot, + program_bytes, + program_size, + &mut LoadProgramMetrics::default(), + ) + } + .map_err(|e| LiteSVMError::ProgramLoad(e.to_string()))?; loaded_program.effective_slot = current_slot; self.accounts @@ -1031,12 +1050,14 @@ impl LiteSVM { &self, compute_budget: ComputeBudget, accounts: Vec<(Address, AccountSharedData)>, + number_of_top_level_instructions: usize, ) -> TransactionContext<'_> { TransactionContext::new( accounts, self.get_sysvar(), compute_budget.max_instruction_stack_depth, compute_budget.max_instruction_trace_length, + number_of_top_level_instructions, ) } @@ -1232,7 +1253,11 @@ impl LiteSVM { match maybe_program_indices { Ok(program_indices) => { - let mut context = self.create_transaction_context(compute_budget, accounts); + let mut context = self.create_transaction_context( + compute_budget, + accounts, + message.num_instructions(), + ); let feature_set = self.feature_set.runtime_features(); let mut invoke_context = InvokeContext::new( &mut context, @@ -1841,7 +1866,7 @@ fn execute_tx_helper( ctx: TransactionContext, ) -> ( Signature, - solana_transaction_context::TransactionReturnData, + solana_transaction_context::transaction::TransactionReturnData, InnerInstructionsList, Vec<(Address, AccountSharedData)>, ) { @@ -1866,14 +1891,11 @@ fn get_compute_budget_limits( sanitized_tx: &SanitizedTransaction, feature_set: &FeatureSet, ) -> Result { - process_compute_budget_instructions( - SVMMessage::program_instructions_iter(sanitized_tx), - feature_set, - ) - .map_err(|e| ExecutionResult { - tx_result: Err(e), - ..Default::default() - }) + process_compute_budget_instructions(sanitized_tx.program_instructions_iter(), feature_set) + .map_err(|e| ExecutionResult { + tx_result: Err(e), + ..Default::default() + }) } /// Get the max number of accounts that a transaction may lock in this block diff --git a/crates/litesvm/src/register_tracing.rs b/crates/litesvm/src/register_tracing.rs index cfc681584..c30ae24c7 100644 --- a/crates/litesvm/src/register_tracing.rs +++ b/crates/litesvm/src/register_tracing.rs @@ -4,7 +4,7 @@ use { solana_address::Address, solana_program_runtime::invoke_context::{Executable, InvokeContext, RegisterTrace}, solana_transaction::sanitized::SanitizedTransaction, - solana_transaction_context::{IndexOfAccount, InstructionContext}, + solana_transaction_context::{instruction::InstructionContext, IndexOfAccount}, std::{fs::File, io::Write}, }; diff --git a/crates/litesvm/src/types.rs b/crates/litesvm/src/types.rs index 352f1c01e..6e0267b9e 100644 --- a/crates/litesvm/src/types.rs +++ b/crates/litesvm/src/types.rs @@ -6,7 +6,7 @@ use { solana_message::inner_instruction::InnerInstructionsList, solana_program_error::ProgramError, solana_signature::Signature, - solana_transaction_context::TransactionReturnData, + solana_transaction_context::transaction::TransactionReturnData, solana_transaction_error::{TransactionError, TransactionResult as Result}, }; diff --git a/crates/litesvm/src/utils/inner_instructions.rs b/crates/litesvm/src/utils/inner_instructions.rs index 6d17a4631..5ac849771 100644 --- a/crates/litesvm/src/utils/inner_instructions.rs +++ b/crates/litesvm/src/utils/inner_instructions.rs @@ -4,7 +4,7 @@ use { compiled_instruction::CompiledInstruction, inner_instruction::{InnerInstruction, InnerInstructionsList}, }, - solana_transaction_context::TransactionContext, + solana_transaction_context::transaction::TransactionContext, }; /// Pulled verbatim from `solana-svm` crate, `transaction_processor.rs` diff --git a/crates/litesvm/tests/counter_test.rs b/crates/litesvm/tests/counter_test.rs index 84fc04f15..f224a5ed4 100644 --- a/crates/litesvm/tests/counter_test.rs +++ b/crates/litesvm/tests/counter_test.rs @@ -175,7 +175,7 @@ fn test_register_tracing_handler() { litesvm::InvocationInspectCallback, solana_program_runtime::invoke_context::{Executable, InvokeContext, RegisterTrace}, solana_transaction::{sanitized::SanitizedTransaction, Address}, - solana_transaction_context::{IndexOfAccount, InstructionContext}, + solana_transaction_context::{instruction::InstructionContext, IndexOfAccount}, std::{ collections::HashMap, sync::{Arc, Mutex}, @@ -218,8 +218,8 @@ fn test_register_tracing_handler() { ) }) .filter(|(_registers, insn)| { - insn.opc & 7 == solana_program_runtime::solana_sbpf::ebpf::BPF_JMP - && insn.opc != solana_program_runtime::solana_sbpf::ebpf::BPF_JA + insn.opc & 7 == solana_program_runtime::solana_sbpf::ebpf::BPF_JMP64 + && insn.opc != solana_program_runtime::solana_sbpf::ebpf::JA }) .count(); let entry = tracing_data.entry(*program_id).or_insert(TracingData { diff --git a/crates/litesvm/tests/precompiles.rs b/crates/litesvm/tests/precompiles.rs index 24f633d6c..2be41bc0a 100644 --- a/crates/litesvm/tests/precompiles.rs +++ b/crates/litesvm/tests/precompiles.rs @@ -1,5 +1,5 @@ use { - ed25519_dalek::ed25519::signature::Signer, + ed25519_dalek::Signer as DalekSigner, litesvm::LiteSVM, solana_ed25519_program::{self as ed25519_instruction, new_ed25519_instruction_with_signature}, solana_instruction::error::InstructionError, @@ -17,7 +17,7 @@ use { #[test_log::test] fn ed25519_precompile_ok() { let kp = Keypair::new(); - let kp_dalek = ed25519_dalek::Keypair::from_bytes(&kp.to_bytes()).unwrap(); + let kp_dalek = ed25519_dalek::SigningKey::from_bytes(&kp.to_bytes()[..32].try_into().unwrap()); let mut svm = LiteSVM::new(); svm.airdrop(&kp.pubkey(), 10u64.pow(9)).unwrap(); @@ -44,7 +44,7 @@ fn ed25519_precompile_ok() { #[test_log::test] fn ed25519_precompile_err() { let kp = Keypair::new(); - let kp_dalek = ed25519_dalek::Keypair::from_bytes(&kp.to_bytes()).unwrap(); + let kp_dalek = ed25519_dalek::SigningKey::from_bytes(&kp.to_bytes()[..32].try_into().unwrap()); let mut svm = LiteSVM::new(); svm.airdrop(&kp.pubkey(), 10u64.pow(9)).unwrap(); diff --git a/crates/node-litesvm/src/compute_budget.rs b/crates/node-litesvm/src/compute_budget.rs index 7f1118ad8..46ae48a80 100644 --- a/crates/node-litesvm/src/compute_budget.rs +++ b/crates/node-litesvm/src/compute_budget.rs @@ -266,19 +266,19 @@ impl ComputeBudget { } #[napi(setter)] pub fn set_alt_bn128_addition_cost(&mut self, val: BigInt) -> Result<()> { - Ok(self.0.alt_bn128_addition_cost = bigint_to_u64(&val)?) + Ok(self.0.alt_bn128_g1_addition_cost = bigint_to_u64(&val)?) } #[napi(getter)] pub fn alt_bn128_addition_cost(&self) -> u64 { - self.0.alt_bn128_addition_cost + self.0.alt_bn128_g1_addition_cost } #[napi(setter)] pub fn set_alt_bn128_multiplication_cost(&mut self, val: BigInt) -> Result<()> { - Ok(self.0.alt_bn128_multiplication_cost = bigint_to_u64(&val)?) + Ok(self.0.alt_bn128_g1_multiplication_cost = bigint_to_u64(&val)?) } #[napi(getter)] pub fn alt_bn128_multiplication_cost(&self) -> u64 { - self.0.alt_bn128_multiplication_cost + self.0.alt_bn128_g1_multiplication_cost } #[napi(setter)] pub fn set_alt_bn128_pairing_one_pair_cost_first(&mut self, val: BigInt) -> Result<()> { diff --git a/crates/node-litesvm/src/transaction_metadata.rs b/crates/node-litesvm/src/transaction_metadata.rs index b6c1244b3..9fe812daa 100644 --- a/crates/node-litesvm/src/transaction_metadata.rs +++ b/crates/node-litesvm/src/transaction_metadata.rs @@ -15,7 +15,7 @@ use { compiled_instruction::CompiledInstruction as CompiledInstructionOriginal, inner_instruction::InnerInstruction as InnerInstructionOriginal, }, - solana_transaction_context::TransactionReturnData as TransactionReturnDataOriginal, + solana_transaction_context::transaction::TransactionReturnData as TransactionReturnDataOriginal, }; #[derive(Debug, Clone)] diff --git a/crates/persistence/src/lib.rs b/crates/persistence/src/lib.rs index f59e0a748..531fcafe3 100644 --- a/crates/persistence/src/lib.rs +++ b/crates/persistence/src/lib.rs @@ -6,11 +6,11 @@ use { litesvm::LiteSVM, std::{ fs::File, - io::{BufReader, BufWriter, Read, Write}, + io::{BufWriter, Read, Write}, path::Path, }, types::{FeatureSetSnapshot, LiteSvmSnapshot, TxResult}, - wincode::{Deserialize, DeserializeOwned, Serialize}, + wincode::{Deserialize, Serialize}, }; const STATE_VERSION: u8 = 1; @@ -77,27 +77,29 @@ fn restore_from_snapshot(snapshot: LiteSvmSnapshot) -> Result) -> Result<(), PersistenceError> { let snapshot = extract_snapshot(svm); let mut writer = BufWriter::new(File::create(path)?); + let payload_size = LiteSvmSnapshot::serialized_size(&snapshot)? as usize; + let mut payload = Vec::with_capacity(payload_size); + LiteSvmSnapshot::serialize_into(&mut payload, &snapshot)?; writer.write_all(&[STATE_VERSION])?; - LiteSvmSnapshot::serialize_into(&mut writer, &snapshot)?; + writer.write_all(&payload)?; writer.flush()?; Ok(()) } -/// Loads a full LiteSVM state from a file. Reads directly from disk via `BufReader` -/// without buffering the full file in memory first. +/// Loads a full LiteSVM state from a file. pub fn load_from_file(path: impl AsRef) -> Result { - let mut reader = BufReader::new(File::open(path)?); - let mut version = [0u8; 1]; - reader.read_exact(&mut version)?; - if version[0] != STATE_VERSION { - return Err(PersistenceError::UnsupportedVersion(version[0])); + let mut reader = File::open(path)?; + let mut bytes = Vec::new(); + reader.read_to_end(&mut bytes)?; + let (version, rest) = bytes.split_first().ok_or(PersistenceError::EmptyInput)?; + if *version != STATE_VERSION { + return Err(PersistenceError::UnsupportedVersion(*version)); } - let snapshot: LiteSvmSnapshot = LiteSvmSnapshot::deserialize_from(reader)?; + let snapshot: LiteSvmSnapshot = LiteSvmSnapshot::deserialize(rest)?; restore_from_snapshot(snapshot) } diff --git a/crates/persistence/src/types.rs b/crates/persistence/src/types.rs index 61a34681b..f5d973a63 100644 --- a/crates/persistence/src/types.rs +++ b/crates/persistence/src/types.rs @@ -12,7 +12,7 @@ use { inner_instruction::{InnerInstruction, InnerInstructionsList}, }, solana_signature::Signature, - solana_transaction_context::TransactionReturnData, + solana_transaction_context::transaction::TransactionReturnData, solana_transaction_error::TransactionError, wincode::{ config::Config, @@ -138,8 +138,10 @@ pub(crate) struct ComputeBudgetWire { pub heap_size: u32, pub heap_cost: u64, pub mem_op_base_cost: u64, - pub alt_bn128_addition_cost: u64, - pub alt_bn128_multiplication_cost: u64, + pub alt_bn128_g1_addition_cost: u64, + pub alt_bn128_g2_addition_cost: u64, + pub alt_bn128_g1_multiplication_cost: u64, + pub alt_bn128_g2_multiplication_cost: u64, pub alt_bn128_pairing_one_pair_cost_first: u64, pub alt_bn128_pairing_one_pair_cost_other: u64, pub big_modular_exponentiation_base_cost: u64, @@ -151,6 +153,18 @@ pub(crate) struct ComputeBudgetWire { pub alt_bn128_g1_decompress: u64, pub alt_bn128_g2_compress: u64, pub alt_bn128_g2_decompress: u64, + pub bls12_381_g1_add_cost: u64, + pub bls12_381_g2_add_cost: u64, + pub bls12_381_g1_subtract_cost: u64, + pub bls12_381_g2_subtract_cost: u64, + pub bls12_381_g1_multiply_cost: u64, + pub bls12_381_g2_multiply_cost: u64, + pub bls12_381_g1_decompress_cost: u64, + pub bls12_381_g2_decompress_cost: u64, + pub bls12_381_g1_validate_cost: u64, + pub bls12_381_g2_validate_cost: u64, + pub bls12_381_one_pair_cost: u64, + pub bls12_381_additional_pair_cost: u64, } #[derive(SchemaWrite, SchemaRead)]