diff --git a/Cargo.lock b/Cargo.lock index 45f4769..44ea500 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -9,17 +9,17 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "512761e0bb2578dd7380c6baaa0f4ce03e84f95e960231d1dec8bf4d7d6e2627" [[package]] -name = "agave-feature-set" -version = "2.3.4" +name = "agave-bls12-381" +version = "4.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2733340e0429d146d4b77d265ae80b22e253507b30a2257ff68eccb78eab210b" +checksum = "210b1ef312273aa81ccb4c52687d96e3cf07621f3619a7998be20eb9741b08e3" dependencies = [ - "ahash", - "solana-epoch-schedule 2.2.1", - "solana-hash 2.3.0", - "solana-pubkey 2.4.0", - "solana-sha256-hasher 2.2.1", - "solana-svm-feature-set 2.3.4", + "blst", + "blstrs", + "bytemuck", + "bytemuck_derive", + "group", + "pairing", ] [[package]] @@ -29,7 +29,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1cf33c329313ce6f88702d02013def48afeff133ea897ee7071d57b8655b9af1" dependencies = [ "ahash", - "solana-epoch-schedule 3.1.0", + "solana-epoch-schedule 3.0.0", "solana-hash 3.1.0", "solana-pubkey 3.0.0", "solana-sha256-hasher 3.1.0", @@ -37,25 +37,47 @@ dependencies = [ ] [[package]] -name = "agave-precompiles" -version = "2.3.4" +name = "agave-syscalls" +version = "4.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ba42f630a219a103926b63472fa8cef512cb578ad3be7975250af639c1bce2a7" +checksum = "84debd4abe0cbab5a6aac2ee50e3969ef0e0961f7dff7e8f96bda0be7998bca2" dependencies = [ - "agave-feature-set 2.3.4", + "agave-bls12-381", "bincode", - "digest 0.10.7", - "ed25519-dalek", "libsecp256k1", - "openssl", - "sha3", - "solana-ed25519-program", - "solana-message 2.4.0", - "solana-precompile-error", - "solana-pubkey 2.4.0", - "solana-sdk-ids 2.2.1", - "solana-secp256k1-program", - "solana-secp256r1-program", + "num-traits", + "solana-account 3.4.0", + "solana-account-info 3.1.1", + "solana-big-mod-exp 3.0.0", + "solana-blake3-hasher 3.1.0", + "solana-bn254 3.2.1", + "solana-clock 3.0.1", + "solana-cpi 3.1.0", + "solana-curve25519", + "solana-hash 4.2.0", + "solana-instruction 3.3.0", + "solana-keccak-hasher 3.1.0", + "solana-loader-v3-interface 6.1.1", + "solana-poseidon", + "solana-program-entrypoint 3.1.1", + "solana-program-runtime", + "solana-pubkey 4.1.0", + "solana-sbpf 0.14.4", + "solana-sdk-ids 3.1.0", + "solana-secp256k1-recover 3.1.1", + "solana-sha256-hasher 3.1.0", + "solana-stable-layout 3.0.1", + "solana-stake-interface 2.0.2", + "solana-svm-callback", + "solana-svm-feature-set 4.0.0", + "solana-svm-log-collector", + "solana-svm-measure", + "solana-svm-timings", + "solana-svm-type-overrides", + "solana-sysvar 3.1.1", + "solana-sysvar-id 3.1.0", + "solana-transaction-context 4.0.0", + "thiserror 2.0.18", ] [[package]] @@ -95,6 +117,12 @@ dependencies = [ "alloc-no-stdlib", ] +[[package]] +name = "allocator-api2" +version = "0.2.21" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "683d7910e743518b0e34f1186f92494becacb047c7b6bf616c96772180fef923" + [[package]] name = "android-tzdata" version = "0.1.1" @@ -110,6 +138,56 @@ dependencies = [ "libc", ] +[[package]] +name = "anstream" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "824a212faf96e9acacdbd09febd34438f8f711fb84e09a8916013cd7815ca28d" +dependencies = [ + "anstyle", + "anstyle-parse", + "anstyle-query", + "anstyle-wincon", + "colorchoice", + "is_terminal_polyfill", + "utf8parse", +] + +[[package]] +name = "anstyle" +version = "1.0.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "940b3a0ca603d1eade50a4846a2afffd5ef57a9feac2c0e2ec2e14f9ead76000" + +[[package]] +name = "anstyle-parse" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "52ce7f38b242319f7cabaa6813055467063ecdc9d355bbb4ce0c68908cd8130e" +dependencies = [ + "utf8parse", +] + +[[package]] +name = "anstyle-query" +version = "1.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "40c48f72fd53cd289104fc64099abca73db4166ad86ea0b4341abe65af83dadc" +dependencies = [ + "windows-sys 0.61.2", +] + +[[package]] +name = "anstyle-wincon" +version = "3.0.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "291e6a250ff86cd4a820112fb8898808a366d8f9f58ce16d1f538353ad55747d" +dependencies = [ + "anstyle", + "once_cell_polyfill", + "windows-sys 0.61.2", +] + [[package]] name = "anyhow" version = "1.0.102" @@ -122,9 +200,20 @@ version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a22f4561524cd949590d78d7d4c5df8f592430d221f7f3c9497bbafd8972120f" dependencies = [ - "ark-ec", - "ark-ff", - "ark-std", + "ark-ec 0.4.2", + "ark-ff 0.4.2", + "ark-std 0.4.0", +] + +[[package]] +name = "ark-bn254" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d69eab57e8d2663efa5c63135b2af4f396d66424f88954c21104125ab6b3e6bc" +dependencies = [ + "ark-ec 0.5.0", + "ark-ff 0.5.0", + "ark-std 0.5.0", ] [[package]] @@ -133,10 +222,10 @@ version = "0.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "defd9a439d56ac24968cca0571f598a61bc8c55f71d50a89cda591cb750670ba" dependencies = [ - "ark-ff", - "ark-poly", - "ark-serialize", - "ark-std", + "ark-ff 0.4.2", + "ark-poly 0.4.2", + "ark-serialize 0.4.2", + "ark-std 0.4.0", "derivative", "hashbrown 0.13.2", "itertools 0.10.5", @@ -144,16 +233,37 @@ dependencies = [ "zeroize", ] +[[package]] +name = "ark-ec" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "43d68f2d516162846c1238e755a7c4d131b892b70cc70c471a8e3ca3ed818fce" +dependencies = [ + "ahash", + "ark-ff 0.5.0", + "ark-poly 0.5.0", + "ark-serialize 0.5.0", + "ark-std 0.5.0", + "educe", + "fnv", + "hashbrown 0.15.2", + "itertools 0.13.0", + "num-bigint 0.4.6", + "num-integer", + "num-traits", + "zeroize", +] + [[package]] name = "ark-ff" version = "0.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ec847af850f44ad29048935519032c33da8aa03340876d351dfab5660d2966ba" dependencies = [ - "ark-ff-asm", - "ark-ff-macros", - "ark-serialize", - "ark-std", + "ark-ff-asm 0.4.2", + "ark-ff-macros 0.4.2", + "ark-serialize 0.4.2", + "ark-std 0.4.0", "derivative", "digest 0.10.7", "itertools 0.10.5", @@ -164,6 +274,26 @@ dependencies = [ "zeroize", ] +[[package]] +name = "ark-ff" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a177aba0ed1e0fbb62aa9f6d0502e9b46dad8c2eab04c14258a1212d2557ea70" +dependencies = [ + "ark-ff-asm 0.5.0", + "ark-ff-macros 0.5.0", + "ark-serialize 0.5.0", + "ark-std 0.5.0", + "arrayvec", + "digest 0.10.7", + "educe", + "itertools 0.13.0", + "num-bigint 0.4.6", + "num-traits", + "paste", + "zeroize", +] + [[package]] name = "ark-ff-asm" version = "0.4.2" @@ -174,6 +304,16 @@ dependencies = [ "syn 1.0.109", ] +[[package]] +name = "ark-ff-asm" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "62945a2f7e6de02a31fe400aa489f0e0f5b2502e69f95f853adb82a96c7a6b60" +dependencies = [ + "quote", + "syn 2.0.117", +] + [[package]] name = "ark-ff-macros" version = "0.4.2" @@ -187,27 +327,68 @@ dependencies = [ "syn 1.0.109", ] +[[package]] +name = "ark-ff-macros" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "09be120733ee33f7693ceaa202ca41accd5653b779563608f1234f78ae07c4b3" +dependencies = [ + "num-bigint 0.4.6", + "num-traits", + "proc-macro2", + "quote", + "syn 2.0.117", +] + [[package]] name = "ark-poly" version = "0.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d320bfc44ee185d899ccbadfa8bc31aab923ce1558716e1997a1e74057fe86bf" dependencies = [ - "ark-ff", - "ark-serialize", - "ark-std", + "ark-ff 0.4.2", + "ark-serialize 0.4.2", + "ark-std 0.4.0", "derivative", "hashbrown 0.13.2", ] +[[package]] +name = "ark-poly" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "579305839da207f02b89cd1679e50e67b4331e2f9294a57693e5051b7703fe27" +dependencies = [ + "ahash", + "ark-ff 0.5.0", + "ark-serialize 0.5.0", + "ark-std 0.5.0", + "educe", + "fnv", + "hashbrown 0.15.2", +] + [[package]] name = "ark-serialize" version = "0.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "adb7b85a02b83d2f22f89bd5cac66c9c89474240cb6207cb1efc16d098e822a5" dependencies = [ - "ark-serialize-derive", - "ark-std", + "ark-serialize-derive 0.4.2", + "ark-std 0.4.0", + "digest 0.10.7", + "num-bigint 0.4.6", +] + +[[package]] +name = "ark-serialize" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3f4d068aaf107ebcd7dfb52bc748f8030e0fc930ac8e360146ca54c1203088f7" +dependencies = [ + "ark-serialize-derive 0.5.0", + "ark-std 0.5.0", + "arrayvec", "digest 0.10.7", "num-bigint 0.4.6", ] @@ -223,6 +404,17 @@ dependencies = [ "syn 1.0.109", ] +[[package]] +name = "ark-serialize-derive" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "213888f660fddcca0d257e88e54ac05bca01885f258ccdf695bafd77031bb69d" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.117", +] + [[package]] name = "ark-std" version = "0.4.0" @@ -233,6 +425,16 @@ dependencies = [ "rand 0.8.5", ] +[[package]] +name = "ark-std" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "246a225cc6131e9ee4f24619af0f19d67761fff15d7ccc22e42b80846e69449a" +dependencies = [ + "num-traits", + "rand 0.8.5", +] + [[package]] name = "arrayref" version = "0.3.9" @@ -282,7 +484,7 @@ version = "0.2.14" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d9b39be18770d11421cdb1b9947a45dd3f37e93092cbf377614828a319d5fee8" dependencies = [ - "hermit-abi", + "hermit-abi 0.1.19", "libc", "winapi", ] @@ -293,6 +495,12 @@ version = "1.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ace50bade8e6234aa140d9a2f552bbee1db4d353f69b8217bc503490fc1a9f26" +[[package]] +name = "base16ct" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4c7f02d4ea65f2c1853089ffd8d2787bdbc63de2f0d29dedbcf8ccdfa0ccd4cf" + [[package]] name = "base64" version = "0.12.3" @@ -305,6 +513,12 @@ version = "0.22.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "72b3254f16251a8381aa12e40e3c4d2f0199f8c6508fbecb9d91f575e0fbb8c6" +[[package]] +name = "base64ct" +version = "1.8.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2af50177e190e07a26ab74f8b1efbfe2ef87da2116221318cb1c2e82baf7de06" + [[package]] name = "bincode" version = "1.3.3" @@ -323,6 +537,18 @@ dependencies = [ "serde", ] +[[package]] +name = "bitvec" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1bc2832c24239b0141d5674bb9174f9d68a8b5b3f2753311927c172ca46f7e9c" +dependencies = [ + "funty", + "radium", + "tap", + "wyz", +] + [[package]] name = "blake3" version = "1.7.0" @@ -355,6 +581,34 @@ dependencies = [ "generic-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 = "0.10.4" @@ -469,6 +723,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" @@ -514,9 +774,9 @@ dependencies = [ [[package]] name = "cfg-if" -version = "1.0.0" +version = "1.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" +checksum = "9330f8b2ff13f34540b44e946ef35111825727b38d33286ef986142615121801" [[package]] name = "cfg_aliases" @@ -548,6 +808,12 @@ dependencies = [ "windows-link 0.1.1", ] +[[package]] +name = "colorchoice" +version = "1.0.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1d07550c9036bf2ae0c684c4297d503f838287c83c53686d05370d0e139ae570" + [[package]] name = "combine" version = "3.8.1" @@ -593,6 +859,12 @@ dependencies = [ "web-sys", ] +[[package]] +name = "const-oid" +version = "0.9.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c2459377285ad874054d797f3ccebf984978aa39129f6eafde5cdc8315b612f8" + [[package]] name = "constant_time_eq" version = "0.3.1" @@ -623,27 +895,24 @@ dependencies = [ "cfg-if", ] -[[package]] -name = "crossbeam-channel" -version = "0.5.15" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "82b8f8f868b36967f9606790d1903570de9ceaf870a7bf9fbbd3016d636a2cb2" -dependencies = [ - "crossbeam-utils", -] - -[[package]] -name = "crossbeam-utils" -version = "0.8.21" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d0a5c400df2834b80a4c3327b3aad3a4c4cd4de0629063962b03235697506a28" - [[package]] name = "crunchy" version = "0.2.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "43da5946c66ffcc7745f48db692ffbb10a83bfe0afd96235c5c2a4fb23994929" +[[package]] +name = "crypto-bigint" +version = "0.5.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0dc92fb57ca44df6db8059111ab3af99a63d5d0f8375d9972e319a379c6bab76" +dependencies = [ + "generic-array", + "rand_core 0.6.4", + "subtle", + "zeroize", +] + [[package]] name = "crypto-common" version = "0.1.6" @@ -776,6 +1045,16 @@ dependencies = [ "syn 2.0.117", ] +[[package]] +name = "der" +version = "0.7.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e7c1832837b905bbfb5101e07cc24c8deddf52f93225eee6ead5f4d63d53ddcb" +dependencies = [ + "const-oid", + "zeroize", +] + [[package]] name = "deranged" version = "0.4.1" @@ -819,6 +1098,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292" dependencies = [ "block-buffer 0.10.4", + "const-oid", "crypto-common", "subtle", ] @@ -840,13 +1120,27 @@ version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "abe71d579d1812060163dff96056261deb5bf6729b100fa2e36a68b9649ba3d3" +[[package]] +name = "ecdsa" +version = "0.16.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ee27f32b5c5292967d2d4a9d7f1e0b0aed2c15daded5a60300e4abb9d8020bca" +dependencies = [ + "der", + "digest 0.10.7", + "elliptic-curve", + "rfc6979", + "signature 2.2.0", + "spki", +] + [[package]] name = "ed25519" version = "1.5.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "91cff35c70bba8a626e3185d8cd48cc11b5437e1a5bcd15b9b5fa3c64b6dfee7" dependencies = [ - "signature", + "signature 1.6.4", ] [[package]] @@ -875,12 +1169,43 @@ dependencies = [ "sha2 0.10.8", ] +[[package]] +name = "educe" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1d7bc049e1bd8cdeb31b68bbd586a9464ecf9f3944af3958a7a9d0f8b9799417" +dependencies = [ + "enum-ordinalize", + "proc-macro2", + "quote", + "syn 2.0.117", +] + [[package]] name = "either" version = "1.15.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "48c757948c5ede0e46177b7add2e67155f70e33c07fea8284df6576da70b3719" +[[package]] +name = "elliptic-curve" +version = "0.13.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b5e6043086bf7973472e0c7dff2142ea0b680d30e18d9cc40f267efbf222bd47" +dependencies = [ + "base16ct", + "crypto-bigint", + "digest 0.10.7", + "ff", + "generic-array", + "group", + "pkcs8", + "rand_core 0.6.4", + "sec1", + "subtle", + "zeroize", +] + [[package]] name = "encode_unicode" version = "1.0.0" @@ -889,24 +1214,54 @@ checksum = "34aa73646ffb006b8f5147f3dc182bd4bcb190227ce861fc4a4844bf8e3cb2c0" [[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", ] [[package]] name = "enum-iterator-derive" -version = "1.4.0" +version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a1ab991c1362ac86c61ab6f556cff143daa22e5a15e4e189df818b2fd19fe65b" +checksum = "685adfa4d6f3d765a26bc5dbc936577de9abf756c1feeb3089b01dd395034842" dependencies = [ "proc-macro2", "quote", "syn 2.0.117", ] +[[package]] +name = "enum-ordinalize" +version = "4.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4a1091a7bb1f8f2c4b28f1fe2cef4980ca2d410a3d727d67ecc3178c9b0800f0" +dependencies = [ + "enum-ordinalize-derive", +] + +[[package]] +name = "enum-ordinalize-derive" +version = "4.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8ca9601fb2d62598ee17836250842873a413586e5d7ed88b356e38ddbb0ec631" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.117", +] + +[[package]] +name = "env_filter" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "32e90c2accc4b07a8456ea0debdc2e7587bdd890680d71173a15d4ae604f6eef" +dependencies = [ + "log", + "regex", +] + [[package]] name = "env_logger" version = "0.9.3" @@ -920,6 +1275,19 @@ dependencies = [ "termcolor", ] +[[package]] +name = "env_logger" +version = "0.11.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0621c04f2196ac3f488dd583365b9c09be011a4ab8b9f37248ffcc8f6198b56a" +dependencies = [ + "anstream", + "anstyle", + "env_filter", + "jiff", + "log", +] + [[package]] name = "equivalent" version = "1.0.2" @@ -932,6 +1300,17 @@ version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "835a3dc7d1ec9e75e2b5fb4ba75396837112d2060b03f7d43bc1897c7f7211da" +[[package]] +name = "ff" +version = "0.13.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c0b50bfb653653f9ca9095b427bed08ab8d75a137839d9ad64eb11810d5b6393" +dependencies = [ + "bitvec", + "rand_core 0.6.4", + "subtle", +] + [[package]] name = "fiat-crypto" version = "0.2.9" @@ -1020,6 +1399,12 @@ dependencies = [ "percent-encoding", ] +[[package]] +name = "funty" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e6d5a32815ae3f33302d95fdcb2ce17862f8c65363dcfd29360480ba1001fc9c" + [[package]] name = "futures" version = "0.3.31" @@ -1117,16 +1502,7 @@ checksum = "85649ca51fd72272d7821adaf274ad91c288277713d9c18820d8499a7ff69e9a" dependencies = [ "typenum", "version_check", -] - -[[package]] -name = "gethostname" -version = "0.2.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c1ebd34e35c46e00bb73e81363248d627782724609fe1b6396f553f68fe3862e" -dependencies = [ - "libc", - "winapi", + "zeroize", ] [[package]] @@ -1169,6 +1545,25 @@ dependencies = [ "wasm-bindgen", ] +[[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" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f0f9ef7462f7c099f518d754361858f86d8a07af53ba9af0fe635bbccb151a63" +dependencies = [ + "ff", + "rand 0.8.5", + "rand_core 0.6.4", + "rand_xorshift", + "subtle", +] + [[package]] name = "hash32" version = "0.3.1" @@ -1198,6 +1593,9 @@ name = "hashbrown" version = "0.15.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bf151400ff0baff5465007dd2f3e717f3fe502074ca563069ce3a6629d07b289" +dependencies = [ + "allocator-api2", +] [[package]] name = "hermit-abi" @@ -1208,6 +1606,12 @@ dependencies = [ "libc", ] +[[package]] +name = "hermit-abi" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fc0fef456e4baa96da950455cd02c081ca953b141298e41db3fc7e36b1da849c" + [[package]] name = "hex" version = "0.4.3" @@ -1560,6 +1964,12 @@ version = "2.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "469fb0b9cefa57e3ef31275ee7cacb78f2fdca44e4765491884a2b119d4eb130" +[[package]] +name = "is_terminal_polyfill" +version = "1.70.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a6cb138bb79a146c1bd460005623e142ef0181e3d0219cb493e02f7d08a35695" + [[package]] name = "itertools" version = "0.10.5" @@ -1571,9 +1981,18 @@ dependencies = [ [[package]] name = "itertools" -version = "0.12.1" +version = "0.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ba291022dbbd398a455acf126c1e341954079855bc60dfdda641363bd6922569" +checksum = "413ee7dfc52ee1a4949ceeb7dbc8a33f2d6c088194d9f922fb8318faf1f01186" +dependencies = [ + "either", +] + +[[package]] +name = "itertools" +version = "0.14.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2b192c782037fadd9cfa75548310488aabdbf3d2da73885b31bd0abd03351285" dependencies = [ "either", ] @@ -1584,6 +2003,30 @@ version = "1.0.15" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4a5f13b858c8d314ee3e8f639011f7ccefe71f97f96e50151fb991f267928e2c" +[[package]] +name = "jiff" +version = "0.2.28" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4603d3033e49e2b0e31229fcab20a5d40089c607d975cd9c80551dc69eed9102" +dependencies = [ + "jiff-static", + "log", + "portable-atomic", + "portable-atomic-util", + "serde_core", +] + +[[package]] +name = "jiff-static" +version = "0.2.28" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "782d32378dddf207193ac91cefb848ad41abb58195c95168e1291227a0832b47" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.117", +] + [[package]] name = "jobserver" version = "0.1.32" @@ -1618,6 +2061,20 @@ dependencies = [ "serde_json", ] +[[package]] +name = "k256" +version = "0.13.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f6e3919bbaa2945715f0bb6d3934a173d1e9a59ac23767fbaaef277265a7411b" +dependencies = [ + "cfg-if", + "ecdsa", + "elliptic-curve", + "once_cell", + "sha2 0.10.8", + "signature 2.2.0", +] + [[package]] name = "keccak" version = "0.1.5" @@ -1693,8 +2150,20 @@ version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3c9a85a9752c549ceb7578064b4ed891179d20acd85f27318573b64d2d7ee7ee" dependencies = [ - "ark-bn254", - "ark-ff", + "ark-bn254 0.4.0", + "ark-ff 0.4.2", + "num-bigint 0.4.6", + "thiserror 1.0.69", +] + +[[package]] +name = "light-poseidon" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "47a1ccadd0bb5a32c196da536fd72c59183de24a055f6bf0513bf845fefab862" +dependencies = [ + "ark-bn254 0.5.0", + "ark-ff 0.5.0", "num-bigint 0.4.6", "thiserror 1.0.69", ] @@ -1717,9 +2186,9 @@ dependencies = [ [[package]] name = "log" -version = "0.4.27" +version = "0.4.32" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "13dc2df351e3202783a1fe0d44375f7295ffb4049267b0f3018346dc122a1d94" +checksum = "953f07c43838f8e6f9758cab68bf5bed85465e7587ebe0b823f1bcd81978ad3a" [[package]] name = "lru-slab" @@ -1766,85 +2235,77 @@ version = "1.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2886843bf800fba2e3377cff24abf6379b4c4d5c6681eaf9ea5b0d15090450bd" dependencies = [ - "libc", - "wasi 0.11.0+wasi-snapshot-preview1", - "windows-sys 0.52.0", -] - -[[package]] -name = "mollusk-svm" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "977c5b38bc1e8c91dfac0d1425dcec293280c90eb785c364eff150be1ad51156" -dependencies = [ - "agave-feature-set 2.3.4", - "agave-precompiles", - "bincode", - "mollusk-svm-error", - "mollusk-svm-keys", - "mollusk-svm-result", - "solana-account 2.2.1", - "solana-bpf-loader-program", - "solana-clock 2.2.2", - "solana-compute-budget", - "solana-epoch-rewards 2.2.1", - "solana-epoch-schedule 2.2.1", - "solana-hash 2.3.0", - "solana-instruction 2.3.0", - "solana-loader-v3-interface 3.0.0", - "solana-loader-v4-interface", - "solana-log-collector", - "solana-logger", - "solana-precompile-error", - "solana-program-error 2.2.1", - "solana-program-runtime", - "solana-pubkey 2.4.0", - "solana-rent 2.2.1", - "solana-sdk-ids 2.2.1", - "solana-slot-hashes 2.2.1", - "solana-stake-interface", - "solana-svm-callback", - "solana-system-program", - "solana-sysvar 2.2.2", - "solana-sysvar-id 2.2.1", - "solana-timings", - "solana-transaction-context 2.3.4", + "libc", + "wasi 0.11.0+wasi-snapshot-preview1", + "windows-sys 0.52.0", ] [[package]] -name = "mollusk-svm-error" -version = "0.4.0" +name = "mollusk-svm" +version = "0.13.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0b6dbd427ad309c5a2334dafe5664a100b20abf6cf10ddd0c1b2b92db894eda3" +checksum = "5a40ed0975036e96eb343c4da34193d53bcdbcdad6415523c666bcc85ffc5395" dependencies = [ - "solana-pubkey 2.4.0", - "thiserror 1.0.69", + "agave-syscalls", + "bincode", + "mollusk-svm-error", + "mollusk-svm-result", + "solana-account 3.4.0", + "solana-bpf-loader-program", + "solana-clock 3.0.1", + "solana-compute-budget", + "solana-epoch-rewards 3.0.1", + "solana-epoch-schedule 3.0.0", + "solana-hash 4.2.0", + "solana-instruction 3.3.0", + "solana-instruction-error", + "solana-instructions-sysvar 3.0.0", + "solana-loader-v3-interface 6.1.1", + "solana-loader-v4-interface 3.1.0", + "solana-logger 3.0.0", + "solana-message 3.1.0", + "solana-precompile-error 3.0.0", + "solana-program-error 3.0.1", + "solana-program-runtime", + "solana-pubkey 4.1.0", + "solana-rent 3.1.0", + "solana-sdk-ids 3.1.0", + "solana-slot-hashes 3.0.1", + "solana-stake-interface 2.0.2", + "solana-svm-callback", + "solana-svm-feature-set 4.0.0", + "solana-svm-log-collector", + "solana-svm-timings", + "solana-svm-transaction", + "solana-system-program", + "solana-sysvar 3.1.1", + "solana-sysvar-id 3.1.0", + "solana-transaction-context 4.0.0", + "solana-transaction-error 3.2.0", ] [[package]] -name = "mollusk-svm-keys" -version = "0.4.0" +name = "mollusk-svm-error" +version = "0.13.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2707b65c79ad330365c43a793868932ed32ffa893818b4b8b1d70e2acf88f783" +checksum = "17e39e46139ca095fd0f0fdc8a86c754c25f90442d45935f9f53dcc27e8b9f0b" dependencies = [ - "mollusk-svm-error", - "solana-account 2.2.1", - "solana-instruction 2.3.0", - "solana-pubkey 2.4.0", - "solana-transaction-context 2.3.4", + "solana-pubkey 4.1.0", + "thiserror 2.0.18", ] [[package]] name = "mollusk-svm-result" -version = "0.4.0" +version = "0.13.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ed0bb72e20d0f2429eeb8a4bbc85d95a0ac7e042c415b56494069cef26a70cca" +checksum = "6f7e2ab13fca35c9602f32053ef23ee5b63dd99b035d5342ab4cf5c239c813bd" dependencies = [ - "solana-account 2.2.1", - "solana-instruction 2.3.0", - "solana-program-error 2.2.1", - "solana-pubkey 2.4.0", - "solana-rent 2.2.1", + "solana-account 3.4.0", + "solana-instruction 3.3.0", + "solana-program-error 3.0.1", + "solana-pubkey 4.1.0", + "solana-rent 3.1.0", + "solana-transaction-error 3.2.0", ] [[package]] @@ -1950,6 +2411,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 0.5.2", + "libc", +] + [[package]] name = "num_enum" version = "0.7.3" @@ -1977,6 +2448,12 @@ version = "1.21.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "42f5e15c9953c5e4ccceeb2e7382a716482c34515315f7b03532b8b4e8393d2d" +[[package]] +name = "once_cell_polyfill" +version = "1.70.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "384b8ab6d37215f3c5301a95a4accb5d64aa607f1fcb26a11b5303878451b4fe" + [[package]] name = "opaque-debug" version = "0.3.1" @@ -2009,15 +2486,6 @@ dependencies = [ "syn 2.0.117", ] -[[package]] -name = "openssl-src" -version = "300.4.2+3.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "168ce4e058f975fe43e89d9ccf78ca668601887ae736090aacc23ae353c298e2" -dependencies = [ - "cc", -] - [[package]] name = "openssl-sys" version = "0.9.107" @@ -2026,11 +2494,19 @@ checksum = "8288979acd84749c744a9014b4382d42b8f7b2592847b5afb2ed29e5d16ede07" dependencies = [ "cc", "libc", - "openssl-src", "pkg-config", "vcpkg", ] +[[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.3" @@ -2125,6 +2601,16 @@ dependencies = [ "solana-address 2.6.0", ] +[[package]] +name = "pkcs8" +version = "0.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f950b2377845cebe5cf8b5165cb3cc1a5e0fa5cfa3e1f7f55707d8fd82e0a7b7" +dependencies = [ + "der", + "spki", +] + [[package]] name = "pkg-config" version = "0.3.32" @@ -2137,6 +2623,15 @@ version = "1.13.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c33a9471896f1c69cecef8d20cbe2f7accd12527ce60845ff44c153bb2a21b49" +[[package]] +name = "portable-atomic-util" +version = "0.2.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c2a106d1259c23fac8e543272398ae0e3c0b8d33c88ed73d0cc71b0f1d902618" +dependencies = [ + "portable-atomic", +] + [[package]] name = "powerfmt" version = "0.2.0" @@ -2228,7 +2723,7 @@ dependencies = [ "bytes", "getrandom 0.3.2", "lru-slab", - "rand 0.9.0", + "rand 0.9.4", "ring", "rustc-hash", "rustls", @@ -2269,6 +2764,12 @@ version = "5.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "74765f6d916ee2faa39bc8e68e4f3ed8949b48cccdac59983d287a7cb71ce9c5" +[[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" @@ -2295,13 +2796,12 @@ dependencies = [ [[package]] name = "rand" -version = "0.9.0" +version = "0.9.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3779b94aeb87e8bd4e834cee3650289ee9e0d5677f976ecdb6d219e5f4f6cd94" +checksum = "44c5af06bb1b7d3216d91932aed5265164bf384dc89cd6ba05cf59a35f5f76ea" dependencies = [ "rand_chacha 0.9.0", "rand_core 0.9.3", - "zerocopy 0.8.24", ] [[package]] @@ -2370,6 +2870,15 @@ dependencies = [ "rand_core 0.5.1", ] +[[package]] +name = "rand_xorshift" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d25bf25ec5ae4a3f1b92f929810509a2f53d7dca2f50b794ff57e3face536c8f" +dependencies = [ + "rand_core 0.6.4", +] + [[package]] name = "redox_syscall" version = "0.5.10" @@ -2381,9 +2890,9 @@ dependencies = [ [[package]] name = "regex" -version = "1.11.1" +version = "1.12.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b544ef1b4eac5dc2db33ea63606ae9ffcfac26c1416a2806ae0bf5f56b201191" +checksum = "e10754a14b9137dd7b1e3e5b0493cc9171fdd105e0ab477f51b72e7f3ac0e276" dependencies = [ "aho-corasick", "memchr", @@ -2393,9 +2902,9 @@ dependencies = [ [[package]] name = "regex-automata" -version = "0.4.9" +version = "0.4.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "809e8dc61f6de73b46c85f4c96486310fe304c434cfa43669d7b40f711150908" +checksum = "6e1dd4122fc1595e8162618945476892eefca7b88c52820e74af6262213cae8f" dependencies = [ "aho-corasick", "memchr", @@ -2463,6 +2972,16 @@ dependencies = [ "tower-service", ] +[[package]] +name = "rfc6979" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f8dd2a808d456c4a54e300a23e9f5a67e122c3024119acbfd73e3bf664491cb2" +dependencies = [ + "hmac 0.12.1", + "subtle", +] + [[package]] name = "ring" version = "0.17.14" @@ -2551,6 +3070,20 @@ version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49" +[[package]] +name = "sec1" +version = "0.7.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d3e97a565f76233a6003f9f5c54be1d9c5bdfa3eccfb189469f11ec4901c47dc" +dependencies = [ + "base16ct", + "der", + "generic-array", + "pkcs8", + "subtle", + "zeroize", +] + [[package]] name = "semver" version = "1.0.26" @@ -2731,6 +3264,16 @@ version = "1.6.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "74233d3b3b2f6d4b006dc19dee745e73e2a6bfb6f93607cd3b02bd5b00797d7c" +[[package]] +name = "signature" +version = "2.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "77549399552de45a898a580c1b41d445bf730df867cc44e6c0233bbc4b8329de" +dependencies = [ + "digest 0.10.7", + "rand_core 0.6.4", +] + [[package]] name = "siphasher" version = "0.3.11" @@ -2779,7 +3322,6 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0f949fe4edaeaea78c844023bfc1c898e0b1f5a100f8a8d2d0f85d0a7b090258" dependencies = [ "bincode", - "qualifier_attr", "serde", "serde_bytes", "serde_derive", @@ -2793,18 +3335,19 @@ dependencies = [ [[package]] name = "solana-account" -version = "3.0.0" +version = "3.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f885ce7f937871ecb56aadbeaaec963b234a580b7d6ebbdb8fa4249a36f92433" +checksum = "efc0ed36decb689413b9da5d57f2be49eea5bebb3cf7897015167b0c4336e731" dependencies = [ "bincode", + "qualifier_attr", "serde", "serde_bytes", "serde_derive", "solana-account-info 3.1.1", "solana-clock 3.0.1", "solana-instruction-error", - "solana-pubkey 3.0.0", + "solana-pubkey 4.1.0", "solana-sdk-ids 3.1.0", "solana-sysvar 3.1.1", ] @@ -2820,7 +3363,7 @@ dependencies = [ "serde", "serde_derive", "serde_json", - "solana-account 3.0.0", + "solana-account 3.4.0", "solana-pubkey 3.0.0", "zstd", ] @@ -2888,7 +3431,7 @@ dependencies = [ "solana-program-error 3.0.1", "solana-sanitize 3.0.1", "solana-sha256-hasher 3.1.0", - "wincode", + "wincode 0.5.4", ] [[package]] @@ -2937,6 +3480,17 @@ dependencies = [ "solana-define-syscall 2.3.0", ] +[[package]] +name = "solana-big-mod-exp" +version = "3.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "30c80fb6d791b3925d5ec4bf23a7c169ef5090c013059ec3ed7d0b2c04efa085" +dependencies = [ + "num-bigint 0.4.6", + "num-traits", + "solana-define-syscall 3.0.0", +] + [[package]] name = "solana-bincode" version = "2.2.1" @@ -2948,6 +3502,17 @@ dependencies = [ "solana-instruction 2.3.0", ] +[[package]] +name = "solana-bincode" +version = "3.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "278a1a5bad62cd9da89ac8d4b7ec444e83caa8ae96aa656dfc27684b28d49a5d" +dependencies = [ + "bincode", + "serde_core", + "solana-instruction-error", +] + [[package]] name = "solana-blake3-hasher" version = "2.2.1" @@ -2960,21 +3525,47 @@ dependencies = [ "solana-sanitize 2.2.1", ] +[[package]] +name = "solana-blake3-hasher" +version = "3.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7116e1d942a2432ca3f514625104757ab8a56233787e95144c93950029e31176" +dependencies = [ + "blake3", + "solana-define-syscall 4.0.1", + "solana-hash 4.2.0", +] + [[package]] name = "solana-bn254" version = "2.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4420f125118732833f36facf96a27e7b78314b2d642ba07fa9ffdacd8d79e243" dependencies = [ - "ark-bn254", - "ark-ec", - "ark-ff", - "ark-serialize", + "ark-bn254 0.4.0", + "ark-ec 0.4.2", + "ark-ff 0.4.2", + "ark-serialize 0.4.2", "bytemuck", "solana-define-syscall 2.3.0", "thiserror 2.0.18", ] +[[package]] +name = "solana-bn254" +version = "3.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "62ff13a8867fcc7b0f1114764e1bf6191b4551dcaf93729ddc676cd4ec6abc9f" +dependencies = [ + "ark-bn254 0.5.0", + "ark-ec 0.5.0", + "ark-ff 0.5.0", + "ark-serialize 0.5.0", + "bytemuck", + "solana-define-syscall 5.1.0", + "thiserror 2.0.18", +] + [[package]] name = "solana-borsh" version = "2.2.1" @@ -2987,49 +3578,31 @@ dependencies = [ [[package]] name = "solana-bpf-loader-program" -version = "2.3.4" +version = "4.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a33b37dd45d3e9cadb29e748d83b5eeaa322df59b14645787a55efe27e6b2a14" +checksum = "219bfba64973ac9e64aa181f03fd56ac319e2d50d8a23d16c54bbd7fa9807a47" dependencies = [ + "agave-syscalls", "bincode", - "libsecp256k1", - "num-traits", "qualifier_attr", - "scopeguard", - "solana-account 2.2.1", - "solana-account-info 2.3.0", - "solana-big-mod-exp", - "solana-bincode", - "solana-blake3-hasher", - "solana-bn254", - "solana-clock 2.2.2", - "solana-cpi 2.2.1", - "solana-curve25519", - "solana-hash 2.3.0", - "solana-instruction 2.3.0", - "solana-keccak-hasher", - "solana-loader-v3-interface 5.0.0", - "solana-loader-v4-interface", - "solana-log-collector", - "solana-measure", - "solana-packet", - "solana-poseidon", - "solana-program-entrypoint 2.2.1", + "solana-account 3.4.0", + "solana-bincode 3.1.0", + "solana-clock 3.0.1", + "solana-instruction 3.3.0", + "solana-loader-v3-interface 6.1.1", + "solana-loader-v4-interface 3.1.0", + "solana-packet 4.1.0", + "solana-program-entrypoint 3.1.1", "solana-program-runtime", - "solana-pubkey 2.4.0", - "solana-sbpf 0.11.1", - "solana-sdk-ids 2.2.1", - "solana-secp256k1-recover", - "solana-sha256-hasher 2.2.1", - "solana-stable-layout 2.2.1", - "solana-svm-feature-set 2.3.4", - "solana-system-interface", - "solana-sysvar 2.2.2", - "solana-sysvar-id 2.2.1", - "solana-timings", - "solana-transaction-context 2.3.4", - "solana-type-overrides", - "thiserror 2.0.18", + "solana-pubkey 4.1.0", + "solana-sbpf 0.14.4", + "solana-sdk-ids 3.1.0", + "solana-svm-feature-set 4.0.0", + "solana-svm-log-collector", + "solana-svm-measure", + "solana-svm-type-overrides", + "solana-system-interface 3.1.0", + "solana-transaction-context 4.0.0", ] [[package]] @@ -3048,7 +3621,7 @@ dependencies = [ "solana-pubkey 2.4.0", "solana-signature 2.3.0", "solana-signer 2.2.1", - "solana-system-interface", + "solana-system-interface 1.0.0", "solana-transaction 2.2.2", "solana-transaction-error 2.2.1", ] @@ -3112,11 +3685,11 @@ dependencies = [ [[package]] name = "solana-compute-budget" -version = "2.3.4" +version = "4.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "920340599f6e67fe6a49188609105edf983195787489265c98ff50b41d6ce1b4" +checksum = "b591fbaed6d9ab4cba6a5a82eb5df208072ced2e5b74c59e9d309ff87af0615f" dependencies = [ - "solana-fee-structure", + "solana-fee-structure 3.0.0", "solana-program-runtime", ] @@ -3155,22 +3728,22 @@ checksum = "4dea26709d867aada85d0d3617db0944215c8bb28d3745b912de7db13a23280c" dependencies = [ "solana-account-info 3.1.1", "solana-define-syscall 4.0.1", - "solana-instruction 3.2.0", + "solana-instruction 3.3.0", "solana-program-error 3.0.1", - "solana-pubkey 4.2.0", + "solana-pubkey 4.1.0", "solana-stable-layout 3.0.1", ] [[package]] name = "solana-curve25519" -version = "2.3.4" +version = "4.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "be64f4005f30cb8de8850a0e03356521da7e35b8c06d85bc79d78f9a74df028a" +checksum = "14b4d2a4bf0d0b0a86c22111917e86e8bd39a7b31420fb2c7d73eb83761fc7af" dependencies = [ "bytemuck", "bytemuck_derive", "curve25519-dalek 4.1.3", - "solana-define-syscall 2.3.0", + "solana-define-syscall 5.1.0", "subtle", "thiserror 2.0.18", ] @@ -3190,6 +3763,12 @@ version = "2.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2ae3e2abcf541c8122eafe9a625d4d194b4023c20adde1e251f94e056bb1aee2" +[[package]] +name = "solana-define-syscall" +version = "3.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f9697086a4e102d28a156b8d6b521730335d6951bd39a5e766512bbe09007cee" + [[package]] name = "solana-define-syscall" version = "4.0.1" @@ -3224,7 +3803,7 @@ dependencies = [ "ed25519-dalek", "solana-feature-set", "solana-instruction 2.3.0", - "solana-precompile-error", + "solana-precompile-error 2.2.2", "solana-sdk-ids 2.2.1", ] @@ -3270,7 +3849,7 @@ checksum = "f5e7b0ba210593ba8ddd39d6d234d81795d1671cebf3026baa10d5dc23ac42f0" dependencies = [ "serde", "serde_derive", - "solana-hash 4.3.0", + "solana-hash 4.2.0", "solana-sdk-ids 3.1.0", "solana-sdk-macro 3.0.1", "solana-sysvar-id 3.1.0", @@ -3302,9 +3881,9 @@ dependencies = [ [[package]] name = "solana-epoch-schedule" -version = "3.1.0" +version = "3.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9ce264b7b42322325947c4136a09460bf5c73d9aa8262c9b0a2064be63ba8639" +checksum = "6e5481e72cc4d52c169db73e4c0cd16de8bc943078aac587ec4817a75cc6388f" dependencies = [ "serde", "serde_derive", @@ -3325,12 +3904,12 @@ dependencies = [ "solana-clock 2.2.2", "solana-hash 2.3.0", "solana-instruction 2.3.0", - "solana-keccak-hasher", + "solana-keccak-hasher 2.2.1", "solana-message 2.4.0", - "solana-nonce", + "solana-nonce 2.2.1", "solana-pubkey 2.4.0", "solana-sdk-ids 2.2.1", - "solana-system-interface", + "solana-system-interface 1.0.0", "thiserror 2.0.18", ] @@ -3350,7 +3929,7 @@ dependencies = [ "solana-pubkey 2.4.0", "solana-rent 2.2.1", "solana-sdk-ids 2.2.1", - "solana-system-interface", + "solana-system-interface 1.0.0", ] [[package]] @@ -3362,7 +3941,7 @@ dependencies = [ "serde", "serde_derive", "solana-program-error 3.0.1", - "solana-pubkey 4.2.0", + "solana-pubkey 4.1.0", "solana-sdk-ids 3.1.0", ] @@ -3414,6 +3993,12 @@ dependencies = [ "solana-native-token", ] +[[package]] +name = "solana-fee-structure" +version = "3.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5e2abdb1223eea8ec64136f39cb1ffcf257e00f915c957c35c0dd9e3f4e700b0" + [[package]] name = "solana-genesis-config" version = "2.2.1" @@ -3433,7 +4018,7 @@ dependencies = [ "solana-hash 2.3.0", "solana-inflation 2.2.1", "solana-keypair", - "solana-logger", + "solana-logger 2.3.1", "solana-native-token", "solana-poh-config", "solana-pubkey 2.4.0", @@ -3479,14 +4064,14 @@ 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 1.5.7", "bytemuck", @@ -3496,7 +4081,7 @@ dependencies = [ "serde_derive", "solana-atomic-u64 3.0.1", "solana-sanitize 3.0.1", - "wincode", + "wincode 0.4.9", ] [[package]] @@ -3535,15 +4120,16 @@ dependencies = [ [[package]] name = "solana-instruction" -version = "3.2.0" +version = "3.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c6a6d22d0a6fdf345be294bb9afdcd40c296cdc095e64e7ceaa3bb3c2f608c1c" +checksum = "a97881335fc698deb46c6571945969aae6d93a14e2fff792a368b4fac872f116" dependencies = [ - "borsh 1.5.7", + "bincode", "serde", + "serde_derive", "solana-define-syscall 5.1.0", "solana-instruction-error", - "solana-pubkey 4.2.0", + "solana-pubkey 4.1.0", ] [[package]] @@ -3595,7 +4181,7 @@ checksum = "7ddf67876c541aa1e21ee1acae35c95c6fbc61119814bfef70579317a5e26955" dependencies = [ "bitflags", "solana-account-info 3.1.1", - "solana-instruction 3.2.0", + "solana-instruction 3.3.0", "solana-instruction-error", "solana-program-error 3.0.1", "solana-pubkey 3.0.0", @@ -3617,6 +4203,17 @@ dependencies = [ "solana-sanitize 2.2.1", ] +[[package]] +name = "solana-keccak-hasher" +version = "3.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ed1c0d16d6fdeba12291a1f068cdf0d479d9bff1141bf44afd7aa9d485f65ef8" +dependencies = [ + "sha3", + "solana-define-syscall 4.0.1", + "solana-hash 4.2.0", +] + [[package]] name = "solana-keypair" version = "2.2.1" @@ -3688,21 +4285,21 @@ dependencies = [ "solana-instruction 2.3.0", "solana-pubkey 2.4.0", "solana-sdk-ids 2.2.1", - "solana-system-interface", + "solana-system-interface 1.0.0", ] [[package]] name = "solana-loader-v3-interface" -version = "5.0.0" +version = "6.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6f7162a05b8b0773156b443bccd674ea78bb9aa406325b467ea78c06c99a63a2" +checksum = "2e0538d4dbc9022e01616f1c58f2db98ece739c5d5ed4a2ef8737a953e76a2d4" dependencies = [ "serde", "serde_bytes", "serde_derive", - "solana-instruction 2.3.0", - "solana-pubkey 2.4.0", - "solana-sdk-ids 2.2.1", + "solana-instruction 3.3.0", + "solana-pubkey 4.1.0", + "solana-sdk-ids 3.1.0", ] [[package]] @@ -3717,16 +4314,22 @@ dependencies = [ "solana-instruction 2.3.0", "solana-pubkey 2.4.0", "solana-sdk-ids 2.2.1", - "solana-system-interface", + "solana-system-interface 1.0.0", ] [[package]] -name = "solana-log-collector" -version = "2.3.4" +name = "solana-loader-v4-interface" +version = "3.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "045fb9230cb591f1a0f548932ed0ebc246a83aad5cc5e63f24e3ebddd3cf2a54" +checksum = "e4c948b33ff81fa89699911b207059e493defdba9647eaf18f23abdf3674e0fb" dependencies = [ - "log", + "serde", + "serde_bytes", + "serde_derive", + "solana-instruction 3.3.0", + "solana-pubkey 3.0.0", + "solana-sdk-ids 3.1.0", + "solana-system-interface 2.0.0", ] [[package]] @@ -3735,7 +4338,7 @@ version = "2.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "db8e777ec1afd733939b532a42492d888ec7c88d8b4127a5d867eb45c6eb5cd5" dependencies = [ - "env_logger", + "env_logger 0.9.3", "lazy_static", "libc", "log", @@ -3743,10 +4346,17 @@ dependencies = [ ] [[package]] -name = "solana-measure" -version = "2.3.4" +name = "solana-logger" +version = "3.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c17d033a8c8725e39998c51e36969fe079e8edb91a8019d3e941da9dc88c0ef3" +checksum = "ef7421d1092680d72065edbf5c7605856719b021bf5f173656c71febcdd5d003" +dependencies = [ + "env_logger 0.11.10", + "lazy_static", + "libc", + "log", + "signal-hook", +] [[package]] name = "solana-message" @@ -3759,14 +4369,14 @@ dependencies = [ "lazy_static", "serde", "serde_derive", - "solana-bincode", + "solana-bincode 2.2.1", "solana-hash 2.3.0", "solana-instruction 2.3.0", "solana-pubkey 2.4.0", "solana-sanitize 2.2.1", "solana-sdk-ids 2.2.1", "solana-short-vec 2.2.1", - "solana-system-interface", + "solana-system-interface 1.0.0", "solana-transaction-error 2.2.1", "wasm-bindgen", ] @@ -3782,8 +4392,8 @@ dependencies = [ "serde", "serde_derive", "solana-address 2.6.0", - "solana-hash 4.3.0", - "solana-instruction 3.2.0", + "solana-hash 4.2.0", + "solana-instruction 3.3.0", "solana-sanitize 3.0.1", "solana-sdk-ids 3.1.0", "solana-short-vec 3.2.1", @@ -3791,28 +4401,21 @@ dependencies = [ ] [[package]] -name = "solana-metrics" -version = "2.3.4" +name = "solana-msg" +version = "2.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d41316e2545a117810f9507a382123a8af357a04e09adab189eead1fcc90c4b4" +checksum = "f36a1a14399afaabc2781a1db09cb14ee4cc4ee5c7a5a3cfcc601811379a8092" dependencies = [ - "crossbeam-channel", - "gethostname", - "log", - "reqwest", - "solana-cluster-type", - "solana-sha256-hasher 2.2.1", - "solana-time-utils", - "thiserror 2.0.18", + "solana-define-syscall 2.3.0", ] [[package]] name = "solana-msg" -version = "2.2.1" +version = "3.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f36a1a14399afaabc2781a1db09cb14ee4cc4ee5c7a5a3cfcc601811379a8092" +checksum = "726b7cbbc6be6f1c6f29146ac824343b9415133eee8cce156452ad1db93f8008" dependencies = [ - "solana-define-syscall 2.3.0", + "solana-define-syscall 5.1.0", ] [[package]] @@ -3835,6 +4438,20 @@ dependencies = [ "solana-sha256-hasher 2.2.1", ] +[[package]] +name = "solana-nonce" +version = "3.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cbc469152a63284ef959b80c59cda015262a021da55d3b8fe42171d89c4b64f8" +dependencies = [ + "serde", + "serde_derive", + "solana-fee-calculator 3.2.0", + "solana-hash 4.2.0", + "solana-pubkey 4.1.0", + "solana-sha256-hasher 3.1.0", +] + [[package]] name = "solana-nonce-account" version = "2.2.1" @@ -3843,10 +4460,22 @@ checksum = "cde971a20b8dbf60144d6a84439dda86b5466e00e2843091fe731083cda614da" dependencies = [ "solana-account 2.2.1", "solana-hash 2.3.0", - "solana-nonce", + "solana-nonce 2.2.1", "solana-sdk-ids 2.2.1", ] +[[package]] +name = "solana-nonce-account" +version = "3.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "805fd25b29e5a1a0e6c3dd6320c9da80f275fbe4ff6e392617c303a2085c435e" +dependencies = [ + "solana-account 3.4.0", + "solana-hash 3.1.0", + "solana-nonce 3.1.0", + "solana-sdk-ids 3.1.0", +] + [[package]] name = "solana-offchain-message" version = "2.2.1" @@ -3855,7 +4484,7 @@ checksum = "b526398ade5dea37f1f147ce55dae49aa017a5d7326606359b0445ca8d946581" dependencies = [ "num_enum", "solana-hash 2.3.0", - "solana-packet", + "solana-packet 2.2.1", "solana-pubkey 2.4.0", "solana-sanitize 2.2.1", "solana-sha256-hasher 2.2.1", @@ -3877,6 +4506,16 @@ dependencies = [ "serde_with", ] +[[package]] +name = "solana-packet" +version = "4.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0ad62e1045c2347a0c0e219a6ceb0abfe904be622920996bfcac8d116fabe3c7" +dependencies = [ + "bitflags", + "solana-pubkey 4.1.0", +] + [[package]] name = "solana-poh-config" version = "2.2.1" @@ -3889,13 +4528,15 @@ dependencies = [ [[package]] name = "solana-poseidon" -version = "2.3.4" +version = "4.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "65143c77c1d4864c05e238f25b7d41b5a14b4d56352afab38fe89d97a78fff7f" +checksum = "737b8ab25bf4cc8e618f80f1fe40709b2ace708bc764a36b8a4c81eea8c07034" dependencies = [ - "ark-bn254", - "light-poseidon", - "solana-define-syscall 2.3.0", + "ark-bn254 0.4.0", + "ark-bn254 0.5.0", + "light-poseidon 0.2.0", + "light-poseidon 0.4.0", + "solana-define-syscall 4.0.1", "thiserror 2.0.18", ] @@ -3909,6 +4550,15 @@ dependencies = [ "solana-decode-error", ] +[[package]] +name = "solana-precompile-error" +version = "3.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cafcd950de74c6c39d55dc8ca108bbb007799842ab370ef26cf45a34453c31e1" +dependencies = [ + "num-traits", +] + [[package]] name = "solana-precompiles" version = "2.2.1" @@ -3919,7 +4569,7 @@ dependencies = [ "solana-ed25519-program", "solana-feature-set", "solana-message 2.4.0", - "solana-precompile-error", + "solana-precompile-error 2.2.2", "solana-pubkey 2.4.0", "solana-sdk-ids 2.2.1", "solana-secp256k1-program", @@ -3965,9 +4615,9 @@ dependencies = [ "solana-account-info 2.3.0", "solana-address-lookup-table-interface", "solana-atomic-u64 2.2.1", - "solana-big-mod-exp", - "solana-bincode", - "solana-blake3-hasher", + "solana-big-mod-exp 2.2.1", + "solana-bincode 2.2.1", + "solana-blake3-hasher 2.2.1", "solana-borsh", "solana-clock 2.2.2", "solana-cpi 2.2.1", @@ -3981,15 +4631,15 @@ dependencies = [ "solana-hash 2.3.0", "solana-instruction 2.3.0", "solana-instructions-sysvar 2.2.2", - "solana-keccak-hasher", + "solana-keccak-hasher 2.2.1", "solana-last-restart-slot 2.2.1", "solana-loader-v2-interface", "solana-loader-v3-interface 3.0.0", - "solana-loader-v4-interface", + "solana-loader-v4-interface 2.2.1", "solana-message 2.4.0", - "solana-msg", + "solana-msg 2.2.1", "solana-native-token", - "solana-nonce", + "solana-nonce 2.2.1", "solana-program-entrypoint 2.2.1", "solana-program-error 2.2.1", "solana-program-memory 2.2.1", @@ -4000,7 +4650,7 @@ dependencies = [ "solana-sanitize 2.2.1", "solana-sdk-ids 2.2.1", "solana-sdk-macro 2.2.1", - "solana-secp256k1-recover", + "solana-secp256k1-recover 2.2.1", "solana-serde-varint 2.2.2", "solana-serialize-utils 2.2.1", "solana-sha256-hasher 2.2.1", @@ -4008,8 +4658,8 @@ dependencies = [ "solana-slot-hashes 2.2.1", "solana-slot-history 2.2.1", "solana-stable-layout 2.2.1", - "solana-stake-interface", - "solana-system-interface", + "solana-stake-interface 1.2.1", + "solana-system-interface 1.0.0", "solana-sysvar 2.2.2", "solana-sysvar-id 2.2.1", "solana-vote-interface 2.2.5", @@ -4024,7 +4674,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "473ffe73c68d93e9f2aa726ad2985fe52760052709aaab188100a42c618060ec" dependencies = [ "solana-account-info 2.3.0", - "solana-msg", + "solana-msg 2.2.1", "solana-program-error 2.2.1", "solana-pubkey 2.4.0", ] @@ -4038,7 +4688,7 @@ dependencies = [ "solana-account-info 3.1.1", "solana-define-syscall 4.0.1", "solana-program-error 3.0.1", - "solana-pubkey 4.2.0", + "solana-pubkey 4.1.0", ] [[package]] @@ -4053,7 +4703,7 @@ dependencies = [ "serde_derive", "solana-decode-error", "solana-instruction 2.3.0", - "solana-msg", + "solana-msg 2.2.1", "solana-pubkey 2.4.0", ] @@ -4108,44 +4758,47 @@ dependencies = [ [[package]] name = "solana-program-runtime" -version = "2.3.4" +version = "4.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "faaed80488a55ba4a5a124b264ef6a807a1225b1753f781cbdf6ea114e5f41a8" +checksum = "f6c7f89c89d5ff25f64a41c8cb00478b1d62f941f14a7dd8537c9e50bb2acc92" dependencies = [ "base64 0.22.1", "bincode", - "enum-iterator", - "itertools 0.12.1", + "cfg-if", + "itertools 0.14.0", "log", "percentage", - "rand 0.8.5", + "rand 0.9.4", "serde", - "solana-account 2.2.1", - "solana-clock 2.2.2", - "solana-epoch-rewards 2.2.1", - "solana-epoch-schedule 2.2.1", - "solana-fee-structure", - "solana-hash 2.3.0", - "solana-instruction 2.3.0", - "solana-last-restart-slot 2.2.1", - "solana-log-collector", - "solana-measure", - "solana-metrics", - "solana-program-entrypoint 2.2.1", - "solana-pubkey 2.4.0", - "solana-rent 2.2.1", - "solana-sbpf 0.11.1", - "solana-sdk-ids 2.2.1", - "solana-slot-hashes 2.2.1", - "solana-stable-layout 2.2.1", + "solana-account 3.4.0", + "solana-account-info 3.1.1", + "solana-clock 3.0.1", + "solana-epoch-rewards 3.0.1", + "solana-epoch-schedule 3.0.0", + "solana-fee-structure 3.0.0", + "solana-hash 4.2.0", + "solana-instruction 3.3.0", + "solana-last-restart-slot 3.0.0", + "solana-loader-v3-interface 6.1.1", + "solana-program-entrypoint 3.1.1", + "solana-pubkey 4.1.0", + "solana-rent 3.1.0", + "solana-sbpf 0.14.4", + "solana-sdk-ids 3.1.0", + "solana-slot-hashes 3.0.1", + "solana-stable-layout 3.0.1", + "solana-stake-interface 2.0.2", "solana-svm-callback", - "solana-svm-feature-set 2.3.4", - "solana-system-interface", - "solana-sysvar 2.2.2", - "solana-sysvar-id 2.2.1", - "solana-timings", - "solana-transaction-context 2.3.4", - "solana-type-overrides", + "solana-svm-feature-set 4.0.0", + "solana-svm-log-collector", + "solana-svm-measure", + "solana-svm-timings", + "solana-svm-transaction", + "solana-svm-type-overrides", + "solana-system-interface 3.1.0", + "solana-sysvar 3.1.1", + "solana-sysvar-id 3.1.0", + "solana-transaction-context 4.0.0", "thiserror 2.0.18", ] @@ -4187,9 +4840,9 @@ 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", ] @@ -4307,19 +4960,19 @@ dependencies = [ "serde", "serde_derive", "serde_json", - "solana-account 3.0.0", + "solana-account 3.4.0", "solana-account-decoder-client-types", "solana-clock 3.0.1", "solana-commitment-config 3.1.1", "solana-epoch-info 3.1.0", - "solana-epoch-schedule 3.1.0", + "solana-epoch-schedule 3.0.0", "solana-feature-gate-interface 3.1.0", "solana-hash 3.1.0", - "solana-instruction 3.2.0", + "solana-instruction 3.3.0", "solana-message 3.1.0", "solana-pubkey 3.0.0", "solana-rpc-client-api", - "solana-signature 3.4.0", + "solana-signature 3.3.0", "solana-transaction 3.1.0", "solana-transaction-error 3.2.0", "solana-transaction-status-client-types", @@ -4362,7 +5015,7 @@ dependencies = [ "serde", "serde_derive", "serde_json", - "solana-account 3.0.0", + "solana-account 3.4.0", "solana-account-decoder-client-types", "solana-clock 3.0.1", "solana-commitment-config 3.1.1", @@ -4390,33 +5043,33 @@ checksum = "dcf09694a0fc14e5ffb18f9b7b7c0f15ecb6eac5b5610bf76a1853459d19daf9" [[package]] name = "solana-sbpf" -version = "0.11.1" +version = "0.12.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "474a2d95dc819898ded08d24f29642d02189d3e1497bbb442a92a3997b7eb55f" +checksum = "0f224d906c14efc7ed7f42bc5fe9588f3f09db8cabe7f6023adda62a69678e1a" dependencies = [ "byteorder", "combine", "hash32", - "libc", "log", - "rand 0.8.5", "rustc-demangle", "thiserror 2.0.18", - "winapi", ] [[package]] name = "solana-sbpf" -version = "0.12.2" +version = "0.14.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0f224d906c14efc7ed7f42bc5fe9588f3f09db8cabe7f6023adda62a69678e1a" +checksum = "733b3657a0fab205102b799dbe17f85d3972cf984232c1b0b108fa6ba438e382" dependencies = [ "byteorder", "combine", "hash32", + "libc", "log", + "rand 0.8.5", "rustc-demangle", "thiserror 2.0.18", + "winapi", ] [[package]] @@ -4432,7 +5085,7 @@ dependencies = [ "serde", "serde_json", "solana-account 2.2.1", - "solana-bn254", + "solana-bn254 2.2.2", "solana-client-traits", "solana-cluster-type", "solana-commitment-config 2.2.1", @@ -4443,7 +5096,7 @@ dependencies = [ "solana-epoch-info 2.2.1", "solana-epoch-rewards-hasher", "solana-feature-set", - "solana-fee-structure", + "solana-fee-structure 2.3.0", "solana-genesis-config", "solana-hard-forks", "solana-inflation 2.2.1", @@ -4451,11 +5104,11 @@ dependencies = [ "solana-keypair", "solana-message 2.4.0", "solana-native-token", - "solana-nonce-account", + "solana-nonce-account 2.2.1", "solana-offchain-message", - "solana-packet", + "solana-packet 2.2.1", "solana-poh-config", - "solana-precompile-error", + "solana-precompile-error 2.2.2", "solana-precompiles", "solana-presigner", "solana-program", @@ -4470,7 +5123,7 @@ dependencies = [ "solana-sdk-ids 2.2.1", "solana-sdk-macro 2.2.1", "solana-secp256k1-program", - "solana-secp256k1-recover", + "solana-secp256k1-recover 2.2.1", "solana-secp256r1-program", "solana-seed-derivable", "solana-seed-phrase", @@ -4546,7 +5199,7 @@ dependencies = [ "sha3", "solana-feature-set", "solana-instruction 2.3.0", - "solana-precompile-error", + "solana-precompile-error 2.2.2", "solana-sdk-ids 2.2.1", ] @@ -4562,6 +5215,17 @@ dependencies = [ "thiserror 2.0.18", ] +[[package]] +name = "solana-secp256k1-recover" +version = "3.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e7c5f18893d62e6c73117dcba48f8f5e3266d90e5ec3d0a0a90f9785adac36c1" +dependencies = [ + "k256", + "solana-define-syscall 5.1.0", + "thiserror 2.0.18", +] + [[package]] name = "solana-secp256r1-program" version = "2.2.4" @@ -4572,7 +5236,7 @@ dependencies = [ "openssl", "solana-feature-set", "solana-instruction 2.3.0", - "solana-precompile-error", + "solana-precompile-error 2.2.2", "solana-sdk-ids 2.2.1", ] @@ -4647,7 +5311,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 3.0.1", ] @@ -4670,7 +5334,7 @@ checksum = "db7dc3011ea4c0334aaaa7e7128cb390ecf546b28d412e9bf2064680f57f588f" dependencies = [ "sha2 0.10.8", "solana-define-syscall 4.0.1", - "solana-hash 4.3.0", + "solana-hash 4.2.0", ] [[package]] @@ -4719,9 +5383,9 @@ dependencies = [ [[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 = [ "five8 1.0.0", "serde", @@ -4748,7 +5412,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5bfea97951fee8bae0d6038f39a5efcb6230ecdfe33425ac75196d1a1e3e3235" dependencies = [ "solana-pubkey 3.0.0", - "solana-signature 3.4.0", + "solana-signature 3.3.0", "solana-transaction-error 3.2.0", ] @@ -4773,7 +5437,7 @@ checksum = "2585f70191623887329dfb5078da3a00e15e3980ea67f42c2e10b07028419f43" dependencies = [ "serde", "serde_derive", - "solana-hash 4.3.0", + "solana-hash 4.2.0", "solana-sdk-ids 3.1.0", "solana-sysvar-id 3.1.0", ] @@ -4820,8 +5484,8 @@ version = "3.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c9f6a291ba063a37780af29e7db14bdd3dc447584d8ba5b3fc4b88e2bbc982fa" dependencies = [ - "solana-instruction 3.2.0", - "solana-pubkey 4.2.0", + "solana-instruction 3.3.0", + "solana-pubkey 4.1.0", ] [[package]] @@ -4841,26 +5505,40 @@ dependencies = [ "solana-instruction 2.3.0", "solana-program-error 2.2.1", "solana-pubkey 2.4.0", - "solana-system-interface", + "solana-system-interface 1.0.0", "solana-sysvar-id 2.2.1", ] [[package]] -name = "solana-svm-callback" -version = "2.3.4" +name = "solana-stake-interface" +version = "2.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4aa58b3b9410f377b572cb2e7fd1910900295bce47b9dcdbcbc42569a2b192c9" +checksum = "b9bc26191b533f9a6e5a14cca05174119819ced680a80febff2f5051a713f0db" dependencies = [ - "solana-account 2.2.1", - "solana-precompile-error", - "solana-pubkey 2.4.0", + "num-traits", + "serde", + "serde_derive", + "solana-clock 3.0.1", + "solana-cpi 3.1.0", + "solana-instruction 3.3.0", + "solana-program-error 3.0.1", + "solana-pubkey 3.0.0", + "solana-system-interface 2.0.0", + "solana-sysvar 3.1.1", + "solana-sysvar-id 3.1.0", ] [[package]] -name = "solana-svm-feature-set" -version = "2.3.4" +name = "solana-svm-callback" +version = "4.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c75d9e63442629ecf438f9fbb5647b92c1d7f66c5eb1d46bcfa4eb34cd457f86" +checksum = "4006b0da7e50cba514ced6b47bcf8f9591552458200e361fd4bdef4068cb2fed" +dependencies = [ + "solana-account 3.4.0", + "solana-clock 3.0.1", + "solana-precompile-error 3.0.0", + "solana-pubkey 4.1.0", +] [[package]] name = "solana-svm-feature-set" @@ -4868,6 +5546,61 @@ version = "3.0.14" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "22e960a99c5620874b1deb5f00139f78753d67ec5626216f75c90842988f6c23" +[[package]] +name = "solana-svm-feature-set" +version = "4.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "24ea15c0d91403375e3d017cc09780cf138b629abba4ccaaa7cf66b1afea1059" + +[[package]] +name = "solana-svm-log-collector" +version = "4.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "efb7d3ccd3a51b85807ff16b2f513069e8b55e220b280774a3e9b899bcb81987" +dependencies = [ + "log", +] + +[[package]] +name = "solana-svm-measure" +version = "4.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d70c9972c1f03cb2bbc64d23dc2079419a66d89b49d6b44f79206530551ddc8c" + +[[package]] +name = "solana-svm-timings" +version = "4.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "20f3d66aa88c9001a076362108f7967d6a00d121ba38428e56928935566ed5bd" +dependencies = [ + "eager", + "enum-iterator", + "solana-pubkey 4.1.0", +] + +[[package]] +name = "solana-svm-transaction" +version = "4.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "067861db805d135a6fbe489bf2b74d701f270df8d03afd3257f7d51a2ff3467e" +dependencies = [ + "solana-hash 4.2.0", + "solana-message 3.1.0", + "solana-pubkey 4.1.0", + "solana-sdk-ids 3.1.0", + "solana-signature 3.3.0", + "solana-transaction 3.1.0", +] + +[[package]] +name = "solana-svm-type-overrides" +version = "4.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8e41661ebf0edcc296b15251c08fee0ad2da3257e6ab86cea2a0a8f6fba642c6" +dependencies = [ + "rand 0.9.4", +] + [[package]] name = "solana-system-interface" version = "1.0.0" @@ -4884,31 +5617,60 @@ dependencies = [ "wasm-bindgen", ] +[[package]] +name = "solana-system-interface" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4e1790547bfc3061f1ee68ea9d8dc6c973c02a163697b24263a8e9f2e6d4afa2" +dependencies = [ + "num-traits", + "serde", + "serde_derive", + "solana-instruction 3.3.0", + "solana-msg 3.1.0", + "solana-program-error 3.0.1", + "solana-pubkey 3.0.0", +] + +[[package]] +name = "solana-system-interface" +version = "3.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a95a6f2e23ed861d6444ad4a6d6896c418d7d101b960787e65a8e33157cee81b" +dependencies = [ + "num-traits", + "serde", + "serde_derive", + "solana-address 2.6.0", + "solana-instruction 3.3.0", + "solana-msg 3.1.0", + "solana-program-error 3.0.1", +] + [[package]] name = "solana-system-program" -version = "2.3.4" +version = "4.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "17a208cce4205cac8386ea2750ab8cd453f469a0ef55769cf0e4abf78ace735b" +checksum = "450479004fee3396c88cc4aa2f9b2b8db9c77be42ee7c1c53e6fac9eaec5fd51" dependencies = [ "bincode", "log", "serde", - "serde_derive", - "solana-account 2.2.1", - "solana-bincode", - "solana-fee-calculator 2.2.1", - "solana-instruction 2.3.0", - "solana-log-collector", - "solana-nonce", - "solana-nonce-account", - "solana-packet", + "solana-account 3.4.0", + "solana-bincode 3.1.0", + "solana-fee-calculator 3.2.0", + "solana-instruction 3.3.0", + "solana-nonce 3.1.0", + "solana-nonce-account 3.0.0", + "solana-packet 4.1.0", "solana-program-runtime", - "solana-pubkey 2.4.0", - "solana-sdk-ids 2.2.1", - "solana-system-interface", - "solana-sysvar 2.2.2", - "solana-transaction-context 2.3.4", - "solana-type-overrides", + "solana-pubkey 4.1.0", + "solana-sdk-ids 3.1.0", + "solana-svm-log-collector", + "solana-svm-type-overrides", + "solana-system-interface 3.1.0", + "solana-sysvar 3.1.1", + "solana-transaction-context 4.0.0", ] [[package]] @@ -4922,7 +5684,7 @@ dependencies = [ "solana-message 2.4.0", "solana-pubkey 2.4.0", "solana-signer 2.2.1", - "solana-system-interface", + "solana-system-interface 1.0.0", "solana-transaction 2.2.2", ] @@ -4959,7 +5721,7 @@ dependencies = [ "solana-sdk-macro 2.2.1", "solana-slot-hashes 2.2.1", "solana-slot-history 2.2.1", - "solana-stake-interface", + "solana-stake-interface 1.2.1", "solana-sysvar-id 2.2.1", ] @@ -4978,15 +5740,15 @@ dependencies = [ "solana-clock 3.0.1", "solana-define-syscall 4.0.1", "solana-epoch-rewards 3.0.1", - "solana-epoch-schedule 3.1.0", + "solana-epoch-schedule 3.0.0", "solana-fee-calculator 3.2.0", - "solana-hash 4.3.0", - "solana-instruction 3.2.0", + "solana-hash 4.2.0", + "solana-instruction 3.3.0", "solana-last-restart-slot 3.0.0", "solana-program-entrypoint 3.1.1", "solana-program-error 3.0.1", "solana-program-memory 3.1.0", - "solana-pubkey 4.2.0", + "solana-pubkey 4.1.0", "solana-rent 3.1.0", "solana-sdk-ids 3.1.0", "solana-sdk-macro 3.0.1", @@ -5021,17 +5783,6 @@ version = "2.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6af261afb0e8c39252a04d026e3ea9c405342b08c871a2ad8aa5448e068c784c" -[[package]] -name = "solana-timings" -version = "2.3.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9e6b2450d6c51c25b57cc067e0ab93015feb27347c34a81ddd540f9979a2b125" -dependencies = [ - "eager", - "enum-iterator", - "solana-pubkey 2.4.0", -] - [[package]] name = "solana-transaction" version = "2.2.2" @@ -5041,7 +5792,7 @@ dependencies = [ "bincode", "serde", "serde_derive", - "solana-bincode", + "solana-bincode 2.2.1", "solana-feature-set", "solana-hash 2.3.0", "solana-instruction 2.3.0", @@ -5054,7 +5805,7 @@ dependencies = [ "solana-short-vec 2.2.1", "solana-signature 2.3.0", "solana-signer 2.2.1", - "solana-system-interface", + "solana-system-interface 1.0.0", "solana-transaction-error 2.2.1", "wasm-bindgen", ] @@ -5069,14 +5820,14 @@ dependencies = [ "serde", "serde_derive", "solana-address 2.6.0", - "solana-hash 4.3.0", - "solana-instruction 3.2.0", + "solana-hash 4.2.0", + "solana-instruction 3.3.0", "solana-instruction-error", "solana-message 3.1.0", "solana-sanitize 3.0.1", "solana-sdk-ids 3.1.0", "solana-short-vec 3.2.1", - "solana-signature 3.4.0", + "solana-signature 3.3.0", "solana-signer 3.0.0", "solana-transaction-error 3.2.0", ] @@ -5107,8 +5858,8 @@ dependencies = [ "bincode", "serde", "serde_derive", - "solana-account 3.0.0", - "solana-instruction 3.2.0", + "solana-account 3.4.0", + "solana-instruction 3.3.0", "solana-instructions-sysvar 3.0.0", "solana-pubkey 3.0.0", "solana-rent 3.1.0", @@ -5116,6 +5867,24 @@ dependencies = [ "solana-sdk-ids 3.1.0", ] +[[package]] +name = "solana-transaction-context" +version = "4.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ecefe8b30e334e2891ca82da35becd9a3f4c16021d9ca782e2a82adf31084fa3" +dependencies = [ + "bincode", + "qualifier_attr", + "serde", + "solana-account 3.4.0", + "solana-instruction 3.3.0", + "solana-instructions-sysvar 3.0.0", + "solana-pubkey 4.1.0", + "solana-rent 3.1.0", + "solana-sbpf 0.14.4", + "solana-sdk-ids 3.1.0", +] + [[package]] name = "solana-transaction-error" version = "2.2.1" @@ -5154,26 +5923,17 @@ dependencies = [ "serde_json", "solana-account-decoder-client-types", "solana-commitment-config 3.1.1", - "solana-instruction 3.2.0", + "solana-instruction 3.3.0", "solana-message 3.1.0", "solana-pubkey 3.0.0", "solana-reward-info 3.0.0", - "solana-signature 3.4.0", + "solana-signature 3.3.0", "solana-transaction 3.1.0", "solana-transaction-context 3.0.14", "solana-transaction-error 3.2.0", "thiserror 2.0.18", ] -[[package]] -name = "solana-type-overrides" -version = "2.3.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "38f826f38dba90fcd24832edb75394a7140c5816b2416d93aad50edf33a0a93a" -dependencies = [ - "rand 0.8.5", -] - [[package]] name = "solana-validator-exit" version = "2.2.1" @@ -5186,7 +5946,7 @@ version = "3.0.14" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8ecfc3e251efb5c31ca4d94a50b0ce5d18b5de5b965bbdf8cac4c0597ed787a4" dependencies = [ - "agave-feature-set 3.0.14", + "agave-feature-set", "rand 0.8.5", "semver", "serde", @@ -5216,7 +5976,7 @@ dependencies = [ "solana-serde-varint 2.2.2", "solana-serialize-utils 2.2.1", "solana-short-vec 2.2.1", - "solana-system-interface", + "solana-system-interface 1.0.0", ] [[package]] @@ -5229,7 +5989,7 @@ dependencies = [ "num-traits", "solana-clock 3.0.1", "solana-hash 3.1.0", - "solana-instruction 3.2.0", + "solana-instruction 3.3.0", "solana-instruction-error", "solana-pubkey 3.0.0", "solana-rent 3.1.0", @@ -5237,6 +5997,16 @@ dependencies = [ "solana-serialize-utils 3.1.1", ] +[[package]] +name = "spki" +version = "0.7.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d91ed6c858b01f942cd56b37a94b3e0a1798290327d1236e4d9cf4eaca44d29d" +dependencies = [ + "base64ct", + "der", +] + [[package]] name = "spl-collections" version = "0.1.1" @@ -5263,13 +6033,14 @@ dependencies = [ "mollusk-svm", "pinocchio", "pinocchio-system", - "solana-account 2.2.1", - "solana-instruction 2.3.0", - "solana-program-error 2.2.1", + "solana-account 3.4.0", + "solana-instruction 3.3.0", + "solana-logger 3.0.0", + "solana-program-error 3.0.1", "solana-program-log", - "solana-pubkey 2.4.0", - "solana-rent 2.2.1", - "solana-sdk-ids 2.2.1", + "solana-pubkey 4.1.0", + "solana-rent 3.1.0", + "solana-sdk-ids 3.1.0", "solana-security-txt", ] @@ -5282,12 +6053,12 @@ dependencies = [ "num-traits", "serde", "serde_with", - "solana-account 3.0.0", + "solana-account 3.4.0", "solana-account-info 3.1.1", "solana-address 2.6.0", "solana-cpi 3.1.0", "solana-decode-error", - "solana-instruction 3.2.0", + "solana-instruction 3.3.0", "solana-program-error 3.0.1", "solana-rpc-client", "solana-sdk", @@ -5355,6 +6126,12 @@ dependencies = [ "syn 2.0.117", ] +[[package]] +name = "tap" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "55937e1799185b12863d447f42597ed69d9928686b8d88a1df17376a097d8369" + [[package]] name = "termcolor" version = "1.4.1" @@ -5404,6 +6181,15 @@ dependencies = [ "syn 2.0.117", ] +[[package]] +name = "threadpool" +version = "1.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d050e60b33d41c19108b32cea32164033a9013fe3b46cbd4457559bfbf77afaa" +dependencies = [ + "num_cpus", +] + [[package]] name = "time" version = "0.3.41" @@ -5684,6 +6470,12 @@ version = "1.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b6c140620e7ffbb22c2dee59cafe6084a59b5ffc27a8859a5f0d494b5d52b6be" +[[package]] +name = "utf8parse" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "06abde3611657adf66d383f00b093d7faecc7fa57071cce2578660c9f1010821" + [[package]] name = "vcpkg" version = "0.2.15" @@ -5863,6 +6655,19 @@ version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" +[[package]] +name = "wincode" +version = "0.4.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "657690780ce23e6f66576a782ffd88eb353512381817029cc1d7a99154bb6d1f" +dependencies = [ + "pastey", + "proc-macro2", + "quote", + "thiserror 2.0.18", + "wincode-derive", +] + [[package]] name = "wincode" version = "0.5.4" @@ -6030,6 +6835,15 @@ version = "0.5.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1e9df38ee2d2c3c5948ea468a8406ff0db0b29ae1ffde1bcf20ef305bcc95c51" +[[package]] +name = "wyz" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "05f360fc0b24296329c78fda852a1e9ae82de9cf7b27dae4b7f62f118f77b9ed" +dependencies = [ + "tap", +] + [[package]] name = "yoke" version = "0.7.5" diff --git a/program/Cargo.toml b/program/Cargo.toml index 68f9744..c1bc032 100644 --- a/program/Cargo.toml +++ b/program/Cargo.toml @@ -27,13 +27,14 @@ solana-program-log = { version = "1.0", default-features = false } solana-security-txt = "1.1.3" [dev-dependencies] -mollusk-svm = { version = "0.4" } -solana-account = "2.2.1" -solana-instruction = "2.2.1" -solana-program-error = "2.2.1" -solana-pubkey = "2.2.1" -solana-rent = "2.2.1" -solana-sdk-ids = "2.2.1" +mollusk-svm = "0.13" +solana-account = "3.4" +solana-instruction = "3.2" +solana-logger = "3.0" +solana-program-error = "3.0" +solana-pubkey = "4.1" +solana-rent = "3.1" +solana-sdk-ids = "3.1" [features] logging = [] diff --git a/program/src/processor/allocate.rs b/program/src/processor/allocate.rs index a0c2bfc..ac3baf9 100644 --- a/program/src/processor/allocate.rs +++ b/program/src/processor/allocate.rs @@ -1,9 +1,5 @@ -use pinocchio::{ - cpi::{Seed, Signer}, - error::ProgramError, - AccountView, ProgramResult, -}; -use pinocchio_system::instructions::{Allocate, Assign}; +use pinocchio::{cpi::Signer, error::ProgramError, instruction::seeds, AccountView, ProgramResult}; +use pinocchio_system::instructions::{Assign, CreateAccountAllowPrefund}; use crate::{ error::ProgramMetadataError, @@ -90,28 +86,38 @@ pub fn allocate(accounts: &mut [AccountView], instruction_data: &[u8]) -> Progra match (is_pda, canonical) { // canonical - (true, true) => allocate_and_assign( - buffer, + (true, true) => CreateAccountAllowPrefund { + to: buffer, space, - &[ - Seed::from(program.address().as_array()), - Seed::from(instruction_data), - Seed::from(&[bump]), - ], - )?, + owner: &crate::ID, + funding: None, + } + .invoke_signed(&[Signer::from(&seeds!( + program.address().as_ref(), + instruction_data, + &[bump] + ))])?, // non-canonical - (true, false) => allocate_and_assign( - buffer, + (true, false) => CreateAccountAllowPrefund { + to: buffer, space, - &[ - Seed::from(program.address().as_array()), - Seed::from(authority.address().as_array()), - Seed::from(instruction_data), - Seed::from(&[bump]), - ], - )?, + owner: &crate::ID, + funding: None, + } + .invoke_signed(&[Signer::from(&seeds!( + program.address().as_ref(), + authority.address().as_ref(), + instruction_data, + &[bump] + ))])?, // keypair - (false, _) => allocate_and_assign(buffer, space, &[])?, + (false, _) => CreateAccountAllowPrefund { + to: buffer, + space, + owner: &crate::ID, + funding: None, + } + .invoke()?, } } n if n >= Buffer::LEN => { @@ -163,23 +169,3 @@ pub fn allocate(accounts: &mut [AccountView], instruction_data: &[u8]) -> Progra Ok(()) } - -/// Allocates the space for the account and assigns it to the program. -/// -/// When the `account` is a PDA, the `seeds` are used to create the signer. -#[inline(always)] -fn allocate_and_assign(account: &AccountView, space: u64, seeds: &[Seed]) -> ProgramResult { - let signer: &[Signer] = if seeds.is_empty() { - &[] - } else { - &[Signer::from(seeds)] - }; - - Allocate { account, space }.invoke_signed(signer)?; - - Assign { - account, - owner: &crate::ID, - } - .invoke_signed(signer) -} diff --git a/program/src/processor/initialize.rs b/program/src/processor/initialize.rs index dd9846a..549b4fd 100644 --- a/program/src/processor/initialize.rs +++ b/program/src/processor/initialize.rs @@ -6,7 +6,7 @@ use pinocchio::{ instruction::seeds, AccountView, Address, ProgramResult, }; -use pinocchio_system::instructions::{Allocate, Assign}; +use pinocchio_system::instructions::CreateAccountAllowPrefund; use crate::{ processor::derive_program_address, @@ -139,15 +139,11 @@ pub fn initialize(accounts: &mut [AccountView], instruction_data: &[u8]) -> Prog // Instruction data is limited to ~1232 bytes. let space = Header::LEN + remaining_data.len(); - Allocate { - account: metadata, + CreateAccountAllowPrefund { + to: metadata, space: space as u64, - } - .invoke_signed(signer)?; - - Assign { - account: metadata, owner: &crate::ID, + funding: None, } .invoke_signed(signer)?; diff --git a/program/tests/allocate.rs b/program/tests/allocate.rs index f3cf636..5065c0f 100644 --- a/program/tests/allocate.rs +++ b/program/tests/allocate.rs @@ -122,7 +122,6 @@ fn test_allocate_keypair() { ), &[ (buffer_key, buffer_account), - (PROGRAM_ID, Account::default()), keyed_account_for_system_program(), ], ); @@ -148,7 +147,6 @@ fn test_allocate_with_empty_account() { ), &[ (buffer_key, buffer_account), - (PROGRAM_ID, Account::default()), keyed_account_for_system_program(), ], ); @@ -168,7 +166,6 @@ fn test_allocate_with_unsufficient_length() { ), &[ (buffer_key, buffer_account), - (PROGRAM_ID, Account::default()), keyed_account_for_system_program(), ], ); @@ -287,7 +284,6 @@ fn test_allocate_with_funded_keypair_account() { ), &[ (buffer_key, buffer_account), - (PROGRAM_ID, Account::default()), keyed_account_for_system_program(), ], ); @@ -313,7 +309,6 @@ fn test_allocate_with_allocated_keypair_account() { ), &[ (buffer_key, buffer_account), - (PROGRAM_ID, Account::default()), keyed_account_for_system_program(), ], ); @@ -412,7 +407,6 @@ fn test_allocate_with_unfunded_account() { ), &[ (buffer_key, buffer_account), - (PROGRAM_ID, Account::default()), keyed_account_for_system_program(), ], ); @@ -434,7 +428,6 @@ fn fail_allocate_keypair_with_seed() { ), &[ (buffer_key, buffer_account), - (PROGRAM_ID, Account::default()), keyed_account_for_system_program(), ], ); @@ -541,7 +534,6 @@ fn fail_allocate_already_initialized_buffer() { ], &[ (buffer_key, buffer_account), - (PROGRAM_ID, Account::default()), keyed_account_for_system_program(), ], ); diff --git a/program/tests/close.rs b/program/tests/close.rs index 9af3168..7cc8bb8 100644 --- a/program/tests/close.rs +++ b/program/tests/close.rs @@ -77,7 +77,6 @@ fn test_close_metadata() { ], &[ (metadata_key, metadata_account), - (PROGRAM_ID, Account::default()), (authority_key, Account::default()), (program_key, program_account), (program_data_key, program_data_account), @@ -120,7 +119,6 @@ fn test_close_buffer() { ], &[ (buffer_key, buffer_account), - (PROGRAM_ID, Account::default()), (destination_key, Account::default()), keyed_account_for_system_program(), ], @@ -155,7 +153,6 @@ fn fail_close_with_wrong_authority() { ], &[ (buffer_key, buffer_account), - (PROGRAM_ID, Account::default()), (wrong_authority_key, Account::default()), (destination_key, Account::default()), keyed_account_for_system_program(), @@ -175,7 +172,6 @@ fn fail_close_uninitialized_account() { ), &[ (account_key, Account::default()), - (PROGRAM_ID, Account::default()), (destination_key, Account::default()), ], ); @@ -194,7 +190,6 @@ fn fail_close_account_with_empty_discriminator() { ), &[ (account_key, account), - (PROGRAM_ID, Account::default()), (destination_key, Account::default()), ], ); @@ -265,7 +260,6 @@ fn fail_close_immutable_metadata() { ], &[ (metadata_key, metadata_account), - (PROGRAM_ID, Account::default()), (authority_key, Account::default()), (program_key, program_account), (program_data_key, program_data_account), diff --git a/program/tests/extend.rs b/program/tests/extend.rs index 9cda525..83e1373 100644 --- a/program/tests/extend.rs +++ b/program/tests/extend.rs @@ -188,7 +188,6 @@ fn test_extend_keypair_buffer() { ], &[ (buffer_key, buffer_account), - (PROGRAM_ID, Account::default()), keyed_account_for_system_program(), ], ); @@ -255,7 +254,6 @@ fn test_extend_metadata() { ], &[ (metadata_key, metadata_account), - (PROGRAM_ID, Account::default()), (authority_key, Account::default()), (program_key, program_account), (program_data_key, program_data_account), @@ -292,7 +290,6 @@ fn fail_extend_with_wrong_authority() { ], &[ (buffer_key, buffer_account), - (PROGRAM_ID, Account::default()), (wrong_authority_key, Account::default()), keyed_account_for_system_program(), ], @@ -308,10 +305,7 @@ fn fail_extend_uninitialized_account() { &extend(&account_key, &account_key, None, None, EXTEND_LENGTH as u16), &[Check::err(ProgramError::InvalidAccountData)], ), - &[ - (account_key, Account::default()), - (PROGRAM_ID, Account::default()), - ], + &[(account_key, Account::default())], ); } @@ -326,9 +320,6 @@ fn fail_extend_with_invalid_instruction_data() { &instruction, &[Check::err(ProgramError::InvalidInstructionData)], ), - &[ - (buffer_key, Account::default()), - (PROGRAM_ID, Account::default()), - ], + &[(buffer_key, Account::default())], ); } diff --git a/program/tests/initialize.rs b/program/tests/initialize.rs index 6b737cd..60d21c7 100644 --- a/program/tests/initialize.rs +++ b/program/tests/initialize.rs @@ -59,7 +59,6 @@ fn test_initialize_canonical() { ), &[ (metadata_key, metadata_account), - (PROGRAM_ID, Account::default()), (authority_key, Account::default()), (program_key, program_account), (program_data_key, program_data_account), @@ -118,7 +117,6 @@ fn test_initialize_non_canonical() { ), &[ (metadata_key, metadata_account), - (PROGRAM_ID, Account::default()), (authority_key, Account::default()), (program_key, program_account), (program_data_key, program_data_account), @@ -198,7 +196,6 @@ fn test_initialize_from_buffer() { ], &[ (metadata_key, metadata_account), - (PROGRAM_ID, Account::default()), (authority_key, Account::default()), (program_key, program_account), (program_data_key, program_data_account), @@ -255,7 +252,6 @@ fn fail_initialize_already_initialized_metadata() { ], &[ (metadata_key, metadata_account), - (PROGRAM_ID, Account::default()), (authority_key, Account::default()), (program_key, program_account), (program_data_key, program_data_account), @@ -322,7 +318,6 @@ fn fail_initialize_from_buffer_with_instruction_data() { ], &[ (metadata_key, buffer_account), - (PROGRAM_ID, Account::default()), (authority_key, Account::default()), (program_key, program_account), (program_data_key, program_data_account), @@ -368,7 +363,6 @@ fn fail_initialize_with_wrong_metadata_pda() { (&instruction, &[Check::err(ProgramError::InvalidSeeds)]), &[ (wrong_metadata_key, metadata_account), - (PROGRAM_ID, Account::default()), (authority_key, Account::default()), (program_key, program_account), (program_data_key, program_data_account), @@ -414,7 +408,6 @@ fn fail_initialize_unfunded_metadata() { ), &[ (metadata_key, metadata_account), - (PROGRAM_ID, Account::default()), (authority_key, Account::default()), (program_key, program_account), (program_data_key, program_data_account), @@ -461,7 +454,6 @@ fn fail_initialize_without_data() { ), &[ (metadata_key, metadata_account), - (PROGRAM_ID, Account::default()), (authority_key, Account::default()), (program_key, program_account), (program_data_key, program_data_account), @@ -508,7 +500,6 @@ fn fail_initialize_with_invalid_encoding() { ), &[ (metadata_key, metadata_account), - (PROGRAM_ID, Account::default()), (authority_key, Account::default()), (program_key, program_account), (program_data_key, program_data_account), @@ -557,7 +548,6 @@ fn fail_initialize_external_data_with_wrong_length() { ), &[ (metadata_key, metadata_account), - (PROGRAM_ID, Account::default()), (authority_key, Account::default()), (program_key, program_account), (program_data_key, program_data_account), diff --git a/program/tests/set_authority.rs b/program/tests/set_authority.rs index 1ca1303..c53393f 100644 --- a/program/tests/set_authority.rs +++ b/program/tests/set_authority.rs @@ -90,7 +90,6 @@ fn test_set_authority_metadata() { ], &[ (metadata_key, metadata_account), - (PROGRAM_ID, Account::default()), (authority_key, Account::default()), (new_authority_key, Account::default()), (program_key, program_account), @@ -185,7 +184,6 @@ fn test_remove_metadata_authority() { ], &[ (metadata_key, metadata_account), - (PROGRAM_ID, Account::default()), (authority_key, Account::default()), (new_authority_key, Account::default()), (program_key, program_account), @@ -239,7 +237,6 @@ fn test_set_authority_buffer() { ], &[ (buffer_key, buffer_account), - (PROGRAM_ID, Account::default()), (new_authority_key, Account::default()), keyed_account_for_system_program(), ], @@ -308,7 +305,6 @@ fn fail_set_authority_immutable_metadata() { ], &[ (metadata_key, metadata_account), - (PROGRAM_ID, Account::default()), (authority_key, Account::default()), (program_key, program_account), (program_data_key, program_data_account), @@ -370,7 +366,6 @@ fn test_set_authority_non_canonical_metadata() { ], &[ (metadata_key, metadata_account), - (PROGRAM_ID, Account::default()), (authority_key, Account::default()), (program_key, program_account), (program_data_key, program_data_account), @@ -431,7 +426,6 @@ fn fail_set_authority_with_wrong_authority() { ], &[ (metadata_key, metadata_account), - (PROGRAM_ID, Account::default()), (authority_key, Account::default()), (wrong_authority_key, Account::default()), (program_key, program_account), @@ -460,7 +454,6 @@ fn fail_set_authority_remove_buffer_authority() { ], &[ (buffer_key, buffer_account), - (PROGRAM_ID, Account::default()), keyed_account_for_system_program(), ], ); @@ -495,7 +488,6 @@ fn fail_set_authority_with_missing_new_authority_bytes() { ], &[ (buffer_key, buffer_account), - (PROGRAM_ID, Account::default()), keyed_account_for_system_program(), ], ); diff --git a/program/tests/set_data.rs b/program/tests/set_data.rs index 6e0b696..8e4ee90 100644 --- a/program/tests/set_data.rs +++ b/program/tests/set_data.rs @@ -89,7 +89,6 @@ fn test_set_data_instruction_data() { ], &[ (metadata_key, metadata_account), - (PROGRAM_ID, Account::default()), (authority_key, Account::default()), (program_key, program_account), (program_data_key, program_data_account), @@ -201,7 +200,6 @@ fn test_set_data_buffer() { &[ (metadata_key, metadata_account), (buffer_key, buffer_account), - (PROGRAM_ID, Account::default()), (authority_key, Account::default()), (program_key, program_account), (program_data_key, program_data_account), @@ -279,7 +277,6 @@ fn test_set_data_without_replacing_data() { ], &[ (metadata_key, metadata_account), - (PROGRAM_ID, Account::default()), (authority_key, Account::default()), (program_key, program_account), (program_data_key, program_data_account), @@ -359,7 +356,6 @@ fn test_set_data_shrinks_metadata_account() { ], &[ (metadata_key, metadata_account), - (PROGRAM_ID, Account::default()), (authority_key, Account::default()), (program_key, program_account), (program_data_key, program_data_account), @@ -429,7 +425,6 @@ fn fail_set_data_with_wrong_authority() { ], &[ (metadata_key, metadata_account), - (PROGRAM_ID, Account::default()), (authority_key, Account::default()), (wrong_authority_key, Account::default()), (program_key, program_account), @@ -510,7 +505,6 @@ fn fail_set_data_from_empty_buffer_as_direct_data() { &[ (metadata_key, metadata_account), (buffer_key, buffer_account), - (PROGRAM_ID, Account::default()), (authority_key, Account::default()), (program_key, program_account), (program_data_key, program_data_account), @@ -580,7 +574,6 @@ fn fail_set_data_with_invalid_compression() { ], &[ (metadata_key, metadata_account), - (PROGRAM_ID, Account::default()), (authority_key, Account::default()), (program_key, program_account), (program_data_key, program_data_account), @@ -650,7 +643,6 @@ fn fail_set_data_with_invalid_data_source() { ], &[ (metadata_key, metadata_account), - (PROGRAM_ID, Account::default()), (authority_key, Account::default()), (program_key, program_account), (program_data_key, program_data_account), @@ -724,7 +716,6 @@ fn fail_set_data_from_wrong_owner_buffer() { &[ (metadata_key, metadata_account), (buffer_key, buffer_account), - (PROGRAM_ID, Account::default()), (authority_key, Account::default()), (program_key, program_account), (program_data_key, program_data_account), @@ -793,7 +784,6 @@ fn fail_set_data_with_invalid_encoding() { ], &[ (metadata_key, metadata_account), - (PROGRAM_ID, Account::default()), (authority_key, Account::default()), (program_key, program_account), (program_data_key, program_data_account), diff --git a/program/tests/set_immutable.rs b/program/tests/set_immutable.rs index a04f1a6..aa6e029 100644 --- a/program/tests/set_immutable.rs +++ b/program/tests/set_immutable.rs @@ -83,7 +83,6 @@ fn test_set_immutable_canonical() { ], &[ (metadata_key, metadata_account), - (PROGRAM_ID, Account::default()), (authority_key, Account::default()), (program_key, program_account), (program_data_key, program_data_account), @@ -161,7 +160,6 @@ fn test_set_immutable_non_canonical() { ], &[ (metadata_key, metadata_account), - (PROGRAM_ID, Account::default()), (authority_key, Account::default()), (program_key, program_account), (program_data_key, program_data_account), @@ -224,7 +222,6 @@ fn fail_set_immutable_with_wrong_authority() { ], &[ (metadata_key, metadata_account), - (PROGRAM_ID, Account::default()), (authority_key, Account::default()), (wrong_authority_key, Account::default()), (program_key, program_account), @@ -253,7 +250,6 @@ fn fail_set_immutable_buffer_account() { ], &[ (buffer_key, buffer_account), - (PROGRAM_ID, Account::default()), keyed_account_for_system_program(), ], ); @@ -323,7 +319,6 @@ fn fail_set_immutable_twice() { ], &[ (metadata_key, metadata_account), - (PROGRAM_ID, Account::default()), (authority_key, Account::default()), (program_key, program_account), (program_data_key, program_data_account), diff --git a/program/tests/setup/mod.rs b/program/tests/setup/mod.rs index e0e66b6..7b71c51 100644 --- a/program/tests/setup/mod.rs +++ b/program/tests/setup/mod.rs @@ -22,10 +22,10 @@ use mollusk_svm::{result::Check, Mollusk}; use solana_account::{create_account_for_test, Account}; use solana_instruction::Instruction; use solana_pubkey::Pubkey; -use solana_rent::Rent; +use solana_rent::{Rent, DEFAULT_LAMPORTS_PER_BYTE}; use solana_sdk_ids::bpf_loader_upgradeable; -pub const PROGRAM_ID: Pubkey = Pubkey::new_from_array(*spl_program_metadata::ID.as_array()); +pub const PROGRAM_ID: Pubkey = spl_program_metadata::ID; pub fn create_account(data: Vec, executable: bool, owner: Pubkey) -> Account { let space = data.len(); @@ -76,36 +76,12 @@ pub fn process_instructions( instructions: &[(&Instruction, &[Check])], accounts: &[(Pubkey, Account)], ) { - let mut mollusk = Mollusk::new(&PROGRAM_ID, "spl_program_metadata"); - // The latest pinocchio version computes the rent using `lamports_per_byte` - // instead of `lamports_per_byte_year * exemption_threshold` as described in - // SIMD-0194, so we need to adjust the rent sysvar accordingly to avoid - // underfunding accounts in tests. - // - // This can be removed once mollusk is updated to a version using agave - // v4.0 dependencies. - let mut rent = Rent::default(); - rent.lamports_per_byte_year = rent - .lamports_per_byte_year - .saturating_mul(rent.exemption_threshold as u64); - mollusk.sysvars.rent = rent; - + let mollusk = Mollusk::new(&PROGRAM_ID, "spl_program_metadata"); mollusk.process_and_validate_instruction_chain(instructions, accounts); } pub fn rent_sysvar() -> Account { - // The latest pinocchio version computes the rent using `lamports_per_byte` - // instead of `lamports_per_byte_year * exemption_threshold` as described in - // SIMD-0194, so we need to adjust the rent sysvar accordingly to avoid - // underfunding accounts in tests. - // - // This can be removed once mollusk is updated to a version using agave - // v4.0 dependencies. - let mut rent = Rent::default(); - rent.lamports_per_byte_year = rent - .lamports_per_byte_year - .saturating_mul(rent.exemption_threshold as u64); - create_account_for_test(&rent) + create_account_for_test(&Rent::with_lamports_per_byte(DEFAULT_LAMPORTS_PER_BYTE)) } pub fn setup_program_account(program_data: &Pubkey) -> Account { diff --git a/program/tests/trim.rs b/program/tests/trim.rs index 45d71dc..68cc032 100644 --- a/program/tests/trim.rs +++ b/program/tests/trim.rs @@ -92,7 +92,6 @@ fn test_trim_canonical() { ], &[ (metadata_key, metadata_account), - (PROGRAM_ID, Account::default()), (authority_key, Account::default()), (program_key, program_account), (program_data_key, program_data_account), @@ -187,7 +186,6 @@ fn test_trim_non_canonical() { ], &[ (metadata_key, metadata_account), - (PROGRAM_ID, Account::default()), (authority_key, Account::default()), (program_key, program_account), (program_data_key, program_data_account), @@ -246,7 +244,6 @@ fn test_trim_buffer() { ], &[ (buffer_key, buffer_account), - (PROGRAM_ID, Account::default()), (destination_key, Account::default()), keyed_account_for_system_program(), (solana_rent::sysvar::ID, rent_sysvar()), @@ -292,7 +289,6 @@ fn fail_trim_non_rent_exempt_account() { )], &[ (fake_buffer_key, fake_buffer_account), - (PROGRAM_ID, Account::default()), (destination_key, destination_account), keyed_account_for_system_program(), (rent::ID, rent_sysvar()), @@ -330,7 +326,6 @@ fn fail_trim_with_wrong_authority() { ], &[ (buffer_key, buffer_account), - (PROGRAM_ID, Account::default()), (wrong_authority_key, Account::default()), (destination_key, Account::default()), keyed_account_for_system_program(), @@ -352,7 +347,6 @@ fn fail_trim_account_with_empty_discriminator() { ), &[ (account_key, account), - (PROGRAM_ID, Account::default()), (destination_key, Account::default()), keyed_account_for_system_program(), (rent::ID, rent_sysvar()), diff --git a/program/tests/write.rs b/program/tests/write.rs index 5fa17c6..e983180 100644 --- a/program/tests/write.rs +++ b/program/tests/write.rs @@ -46,7 +46,6 @@ fn test_write_instruction_data() { ], &[ (buffer_key, buffer_account), - (PROGRAM_ID, Account::default()), keyed_account_for_system_program(), ], ); @@ -109,7 +108,6 @@ fn test_write_from_buffer() { &[ (source_key, source_account), (target_key, target_account), - (PROGRAM_ID, Account::default()), keyed_account_for_system_program(), ], ); @@ -150,7 +148,6 @@ fn test_write_with_non_zero_offset_and_overwrite() { ], &[ (buffer_key, buffer_account), - (PROGRAM_ID, Account::default()), keyed_account_for_system_program(), ], ); @@ -179,7 +176,6 @@ fn fail_write_with_wrong_authority() { ], &[ (buffer_key, buffer_account), - (PROGRAM_ID, Account::default()), (wrong_authority_key, Account::default()), keyed_account_for_system_program(), ], @@ -210,7 +206,6 @@ fn fail_write_from_wrong_owner_source_buffer() { &[ (source_key, Account::default()), (target_key, target_account), - (PROGRAM_ID, Account::default()), keyed_account_for_system_program(), ], ); @@ -235,7 +230,6 @@ fn fail_write_empty_data_without_source_buffer() { ], &[ (buffer_key, buffer_account), - (PROGRAM_ID, Account::default()), keyed_account_for_system_program(), ], ); @@ -260,7 +254,6 @@ fn fail_write_from_same_buffer() { ], &[ (buffer_key, buffer_account), - (PROGRAM_ID, Account::default()), keyed_account_for_system_program(), ], );