From a141819465911465ca2b0db5d7f64c7393392a51 Mon Sep 17 00:00:00 2001 From: Perelyn <64838956+Perelyn-sama@users.noreply.github.com> Date: Fri, 24 Oct 2025 02:47:57 +0100 Subject: [PATCH 1/3] add litesvm test for native account data example --- Cargo.lock | 1999 ++++++++++++++++- basics/account-data/native/program/Cargo.toml | 4 + .../native/program/tests/tests.rs | 67 + basics/account-data/native/tests/test.ts | 156 +- 4 files changed, 2036 insertions(+), 190 deletions(-) create mode 100644 basics/account-data/native/program/tests/tests.rs diff --git a/Cargo.lock b/Cargo.lock index bf9ad0d6..16e9a24a 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -15,7 +15,9 @@ version = "0.1.0" dependencies = [ "borsh 1.5.7", "borsh-derive 1.5.7", + "litesvm", "solana-program 3.0.0", + "solana-sdk", "solana-system-interface 2.0.0", ] @@ -55,6 +57,96 @@ dependencies = [ "zeroize", ] +[[package]] +name = "agave-feature-set" +version = "3.0.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "716de4309d921e2d0908d6bc601e82b2b15f3e77423aebd7f92f54c1ce93dffe" +dependencies = [ + "ahash 0.8.12", + "solana-epoch-schedule 3.0.0", + "solana-hash 3.0.0", + "solana-pubkey 3.0.0", + "solana-sha256-hasher 3.0.0", + "solana-svm-feature-set", +] + +[[package]] +name = "agave-precompiles" +version = "3.0.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b984ab75ac40e68a73c3bc953f732c1da1f08c71fa866454da3d41d44f739c41" +dependencies = [ + "agave-feature-set", + "bincode", + "digest 0.10.7", + "ed25519-dalek 1.0.1", + "libsecp256k1", + "openssl", + "sha3", + "solana-ed25519-program", + "solana-message 3.0.1", + "solana-precompile-error", + "solana-pubkey 3.0.0", + "solana-sdk-ids 3.0.0", + "solana-secp256k1-program", + "solana-secp256r1-program", +] + +[[package]] +name = "agave-reserved-account-keys" +version = "3.0.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d31eb6b96ba26b7af016232a31f40194309a81530c9695e7dd7967fe7edffd9f" +dependencies = [ + "agave-feature-set", + "solana-pubkey 3.0.0", + "solana-sdk-ids 3.0.0", +] + +[[package]] +name = "agave-syscalls" +version = "3.0.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2eca001c34a043ceae1c069d72d5d7e8314f682d08224f6d09308e30de5f3a39" +dependencies = [ + "bincode", + "libsecp256k1", + "num-traits", + "solana-account 3.1.0", + "solana-account-info 3.0.0", + "solana-big-mod-exp 3.0.0", + "solana-blake3-hasher 3.0.0", + "solana-bn254", + "solana-clock 3.0.0", + "solana-cpi 3.0.0", + "solana-curve25519 3.0.7", + "solana-hash 3.0.0", + "solana-instruction 3.0.0", + "solana-keccak-hasher 3.0.0", + "solana-loader-v3-interface 6.1.0", + "solana-poseidon", + "solana-program-entrypoint 3.1.0", + "solana-program-runtime", + "solana-pubkey 3.0.0", + "solana-sbpf", + "solana-sdk-ids 3.0.0", + "solana-secp256k1-recover 3.0.0", + "solana-sha256-hasher 3.0.0", + "solana-stable-layout 3.0.0", + "solana-stake-interface 2.0.1", + "solana-svm-callback", + "solana-svm-feature-set", + "solana-svm-log-collector", + "solana-svm-measure", + "solana-svm-timings", + "solana-svm-type-overrides", + "solana-sysvar 3.0.0", + "solana-sysvar-id 3.0.0", + "solana-transaction-context", + "thiserror 2.0.17", +] + [[package]] name = "ahash" version = "0.7.8" @@ -73,6 +165,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5a15f179cd60c4584b8a8c596927aadc462e27f2ca70c04e0071964a73ba7a75" dependencies = [ "cfg-if", + "getrandom 0.3.4", "once_cell", "version_check", "zerocopy", @@ -292,12 +385,138 @@ dependencies = [ "thiserror 1.0.69", ] +[[package]] +name = "ansi_term" +version = "0.12.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d52a9bb7ec0cf484c551830a7ce27bd20d67eac647e1befb56b0be4ee39a55d2" +dependencies = [ + "winapi", +] + [[package]] name = "anyhow" version = "1.0.100" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a23eb6b1614318a8071c9b2521f36b424b2c83db5eb3a0fead4a6c0809af6e61" +[[package]] +name = "ark-bn254" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a22f4561524cd949590d78d7d4c5df8f592430d221f7f3c9497bbafd8972120f" +dependencies = [ + "ark-ec", + "ark-ff", + "ark-std", +] + +[[package]] +name = "ark-ec" +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", + "derivative", + "hashbrown 0.13.2", + "itertools 0.10.5", + "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", + "derivative", + "digest 0.10.7", + "itertools 0.10.5", + "num-bigint 0.4.6", + "num-traits", + "paste", + "rustc_version", + "zeroize", +] + +[[package]] +name = "ark-ff-asm" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3ed4aa4fe255d0bc6d79373f7e31d2ea147bcf486cba1be5ba7ea85abdb92348" +dependencies = [ + "quote", + "syn 1.0.109", +] + +[[package]] +name = "ark-ff-macros" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7abe79b0e4288889c4574159ab790824d0033b9fdcb2a112a3182fac2e514565" +dependencies = [ + "num-bigint 0.4.6", + "num-traits", + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "ark-poly" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d320bfc44ee185d899ccbadfa8bc31aab923ce1558716e1997a1e74057fe86bf" +dependencies = [ + "ark-ff", + "ark-serialize", + "ark-std", + "derivative", + "hashbrown 0.13.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", + "digest 0.10.7", + "num-bigint 0.4.6", +] + +[[package]] +name = "ark-serialize-derive" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ae3281bc6d0fd7e549af32b52511e1302185bd688fd3359fa36423346ff682ea" +dependencies = [ + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "ark-std" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "94893f1e0c6eeab764ade8dc4c0db24caf4fe7cbbaafc0eba0a9030f447b5185" +dependencies = [ + "num-traits", + "rand 0.8.5", +] + [[package]] name = "arrayref" version = "0.3.9" @@ -310,6 +529,12 @@ version = "0.7.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7c02d123df017efcdfbd739ef81735b36c5ba83ec3c59c80a9d7ecc718f92e50" +[[package]] +name = "ascii" +version = "0.9.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "eab1c04a571841102f5345a8fc0f6bb3d31c315dec879b5c6e42e40ce7ffa34e" + [[package]] name = "autocfg" version = "1.4.0" @@ -595,6 +820,17 @@ version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "613afe47fcd5fac7ccf1db93babcb082c5994d996f20b8b159f2ad1658eb5724" +[[package]] +name = "cfg_eval" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "45565fc9416b9896014f5732ac776f810ee53a66730c17e4020c3ec064a8f88f" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.101", +] + [[package]] name = "checking-accounts-anchor-program-example" version = "0.1.0" @@ -610,6 +846,15 @@ dependencies = [ "solana-system-interface 2.0.0", ] +[[package]] +name = "chrono" +version = "0.4.42" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "145052bdd345b87320e369255277e3fb5152762ad123a901ef5c262dd38fe8d2" +dependencies = [ + "num-traits", +] + [[package]] name = "cipher" version = "0.4.4" @@ -637,6 +882,19 @@ dependencies = [ "anchor-lang", ] +[[package]] +name = "combine" +version = "3.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "da3da6baa321ec19e1cc41d31bf599f00c783d0517095cdaf0332e3fe8d20680" +dependencies = [ + "ascii", + "byteorder", + "either", + "memchr", + "unreachable", +] + [[package]] name = "console_error_panic_hook" version = "0.1.7" @@ -747,6 +1005,16 @@ dependencies = [ "typenum", ] +[[package]] +name = "crypto-mac" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b584a330336237c1eecd3e94266efb216c56ed91225d634cb2991c5f3fd1aeab" +dependencies = [ + "generic-array", + "subtle", +] + [[package]] name = "ctr" version = "0.9.2" @@ -756,6 +1024,19 @@ dependencies = [ "cipher", ] +[[package]] +name = "curve25519-dalek" +version = "3.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0b9fdf9972b2bd6af2d913799d9ebc165ea4d2e65878e329d9c6b372c4491b61" +dependencies = [ + "byteorder", + "digest 0.9.0", + "rand_core 0.5.1", + "subtle", + "zeroize", +] + [[package]] name = "curve25519-dalek" version = "4.1.3" @@ -785,6 +1066,41 @@ dependencies = [ "syn 2.0.101", ] +[[package]] +name = "darling" +version = "0.21.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9cdf337090841a411e2a7f3deb9187445851f91b309c0c0a29e05f74a00a48c0" +dependencies = [ + "darling_core", + "darling_macro", +] + +[[package]] +name = "darling_core" +version = "0.21.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1247195ecd7e3c85f83c8d2a366e4210d588e802133e1e355180a9870b517ea4" +dependencies = [ + "fnv", + "ident_case", + "proc-macro2", + "quote", + "strsim", + "syn 2.0.101", +] + +[[package]] +name = "darling_macro" +version = "0.21.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d38308df82d1080de0afee5d069fa14b0326a88c14f15c5ccda35b4a6c414c81" +dependencies = [ + "darling_core", + "quote", + "syn 2.0.101", +] + [[package]] name = "der" version = "0.7.10" @@ -801,6 +1117,17 @@ version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6e5c37193a1db1d8ed868c03ec7b152175f26160a5b740e5e484143877e0adf0" +[[package]] +name = "derivative" +version = "2.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fcc3dd5e9e9c0b295d6e1e4d811fb6f157d5ffd784b8d202fc62eac8035a770b" +dependencies = [ + "proc-macro2", + "quote", + "syn 1.0.109", +] + [[package]] name = "digest" version = "0.9.0" @@ -822,6 +1149,12 @@ dependencies = [ "subtle", ] +[[package]] +name = "eager" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "abe71d579d1812060163dff96056261deb5bf6729b100fa2e36a68b9649ba3d3" + [[package]] name = "ecdsa" version = "0.16.9" @@ -832,10 +1165,70 @@ dependencies = [ "digest 0.10.7", "elliptic-curve", "rfc6979", - "signature", + "signature 2.2.0", "spki", ] +[[package]] +name = "ed25519" +version = "1.5.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "91cff35c70bba8a626e3185d8cd48cc11b5437e1a5bcd15b9b5fa3c64b6dfee7" +dependencies = [ + "signature 1.6.4", +] + +[[package]] +name = "ed25519" +version = "2.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "115531babc129696a58c64a4fef0a8bf9e9698629fb97e9e40767d235cfbcd53" +dependencies = [ + "pkcs8", + "signature 2.2.0", +] + +[[package]] +name = "ed25519-dalek" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c762bae6dcaf24c4c84667b8579785430908723d5c889f469d76a41d59cc7a9d" +dependencies = [ + "curve25519-dalek 3.2.0", + "ed25519 1.5.3", + "rand 0.7.3", + "serde", + "sha2 0.9.9", + "zeroize", +] + +[[package]] +name = "ed25519-dalek" +version = "2.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "70e796c081cee67dc755e1a36a0a172b897fab85fc3f6bc48307991f64e4eca9" +dependencies = [ + "curve25519-dalek 4.1.3", + "ed25519 2.2.3", + "rand_core 0.6.4", + "serde", + "sha2 0.10.9", + "subtle", + "zeroize", +] + +[[package]] +name = "ed25519-dalek-bip32" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6b49a684b133c4980d7ee783936af771516011c8cd15f429dbda77245e282f03" +dependencies = [ + "derivation-path", + "ed25519-dalek 2.2.0", + "hmac 0.12.1", + "sha2 0.10.9", +] + [[package]] name = "either" version = "1.15.0" @@ -862,11 +1255,31 @@ dependencies = [ ] [[package]] -name = "equivalent" -version = "1.0.2" +name = "enum-iterator" +version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "877a4ace8713b0bcf2a4e7eec82529c029f1d0619886d18145fea96c3ffe5c0f" - +checksum = "9fd242f399be1da0a5354aa462d57b4ab2b4ee0683cc552f7c007d2d12d36e94" +dependencies = [ + "enum-iterator-derive", +] + +[[package]] +name = "enum-iterator-derive" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "685adfa4d6f3d765a26bc5dbc936577de9abf756c1feeb3089b01dd395034842" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.101", +] + +[[package]] +name = "equivalent" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "877a4ace8713b0bcf2a4e7eec82529c029f1d0619886d18145fea96c3ffe5c0f" + [[package]] name = "favorites-native" version = "0.1.0" @@ -929,6 +1342,21 @@ version = "1.0.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" +[[package]] +name = "foreign-types" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f6f339eb8adc052cd2ca78910fda869aefa38d22d5cb648e6485e4d3fc06f3b1" +dependencies = [ + "foreign-types-shared", +] + +[[package]] +name = "foreign-types-shared" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b" + [[package]] name = "generic-array" version = "0.14.7" @@ -964,6 +1392,18 @@ dependencies = [ "wasm-bindgen", ] +[[package]] +name = "getrandom" +version = "0.3.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "899def5c37c4fd7b2664648c28120ecec138e4d395b459e5ca34f9cce2dd77fd" +dependencies = [ + "cfg-if", + "libc", + "r-efi", + "wasip2", +] + [[package]] name = "group" version = "0.13.0" @@ -982,6 +1422,15 @@ dependencies = [ "anchor-lang", ] +[[package]] +name = "hash32" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "47d60b12902ba28e2730cd37e95b8c9223af2808df9e902d4df49588d1470606" +dependencies = [ + "byteorder", +] + [[package]] name = "hashbrown" version = "0.11.2" @@ -1037,6 +1486,16 @@ dependencies = [ "pinocchio-log", ] +[[package]] +name = "hmac" +version = "0.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "126888268dcc288495a26bf004b38c5fdbb31682f992c84ceb046a1f0fe38840" +dependencies = [ + "crypto-mac", + "digest 0.9.0", +] + [[package]] name = "hmac" version = "0.12.1" @@ -1046,6 +1505,23 @@ dependencies = [ "digest 0.10.7", ] +[[package]] +name = "hmac-drbg" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "17ea0a1394df5b6574da6e0c1ade9e78868c9fb0a4e5ef4428e32da4676b85b1" +dependencies = [ + "digest 0.9.0", + "generic-array", + "hmac 0.8.1", +] + +[[package]] +name = "ident_case" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b9e0384b61958566e926dc50660321d12159025e767c18e043daf26b70104c39" + [[package]] name = "indexmap" version = "2.9.0" @@ -1065,6 +1541,15 @@ dependencies = [ "generic-array", ] +[[package]] +name = "itertools" +version = "0.10.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b0fd2260e829bddf4cb6ea802289de2f86d6a7a690192fbe91b3f46e0f2c8473" +dependencies = [ + "either", +] + [[package]] name = "itertools" version = "0.12.1" @@ -1074,6 +1559,15 @@ dependencies = [ "either", ] +[[package]] +name = "itertools" +version = "0.14.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2b192c782037fadd9cfa75548310488aabdbf3d2da73885b31bd0abd03351285" +dependencies = [ + "either", +] + [[package]] name = "itoa" version = "1.0.15" @@ -1101,7 +1595,7 @@ dependencies = [ "elliptic-curve", "once_cell", "sha2 0.10.9", - "signature", + "signature 2.2.0", ] [[package]] @@ -1141,12 +1635,14 @@ dependencies = [ "arrayref", "base64 0.12.3", "digest 0.9.0", + "hmac-drbg", "libsecp256k1-core", "libsecp256k1-gen-ecmult", "libsecp256k1-gen-genmult", "rand 0.7.3", "serde", "sha2 0.9.9", + "typenum", ] [[package]] @@ -1178,6 +1674,82 @@ dependencies = [ "libsecp256k1-core", ] +[[package]] +name = "light-poseidon" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3c9a85a9752c549ceb7578064b4ed891179d20acd85f27318573b64d2d7ee7ee" +dependencies = [ + "ark-bn254", + "ark-ff", + "num-bigint 0.4.6", + "thiserror 1.0.69", +] + +[[package]] +name = "litesvm" +version = "0.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a22c52e9daf4680aee15e84c877808d94bbd4f3f66cdd32e0ba059d930d581e4" +dependencies = [ + "agave-feature-set", + "agave-precompiles", + "agave-reserved-account-keys", + "agave-syscalls", + "ansi_term", + "bincode", + "indexmap", + "itertools 0.14.0", + "log", + "serde", + "solana-account 3.1.0", + "solana-address-lookup-table-interface 3.0.0", + "solana-bpf-loader-program", + "solana-builtins", + "solana-clock 3.0.0", + "solana-compute-budget", + "solana-compute-budget-instruction", + "solana-epoch-rewards 3.0.0", + "solana-epoch-schedule 3.0.0", + "solana-fee", + "solana-fee-structure", + "solana-hash 3.0.0", + "solana-instruction 3.0.0", + "solana-instructions-sysvar 3.0.0", + "solana-keypair", + "solana-last-restart-slot 3.0.0", + "solana-loader-v3-interface 6.1.0", + "solana-loader-v4-interface 3.1.0", + "solana-message 3.0.1", + "solana-native-token 3.0.0", + "solana-nonce 3.0.0", + "solana-nonce-account", + "solana-precompile-error", + "solana-program-error 3.0.0", + "solana-program-runtime", + "solana-pubkey 3.0.0", + "solana-rent 3.0.0", + "solana-sdk-ids 3.0.0", + "solana-sha256-hasher 3.0.0", + "solana-signature", + "solana-signer", + "solana-slot-hashes 3.0.0", + "solana-slot-history 3.0.0", + "solana-stake-interface 2.0.1", + "solana-svm-callback", + "solana-svm-log-collector", + "solana-svm-timings", + "solana-svm-transaction", + "solana-system-interface 2.0.0", + "solana-system-program", + "solana-sysvar 3.0.0", + "solana-sysvar-id 3.0.0", + "solana-transaction", + "solana-transaction-context", + "solana-transaction-error 3.0.0", + "thiserror 2.0.17", +] + [[package]] name = "lock_api" version = "0.4.12" @@ -1200,6 +1772,15 @@ version = "2.7.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "78ca9ab1a0babb1e7d5695e3530886289c18cf2f87ec19a575a0abdce112e3a3" +[[package]] +name = "memmap2" +version = "0.5.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "83faa42c0a078c393f6b29d5db232d8be22776a891f8f56e5284faee4a20b327" +dependencies = [ + "libc", +] + [[package]] name = "memoffset" version = "0.9.1" @@ -1221,6 +1802,31 @@ dependencies = [ "zeroize", ] +[[package]] +name = "num" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b8536030f9fea7127f841b45bb6243b27255787fb4eb83958aa1ef9d2fdc0c36" +dependencies = [ + "num-bigint 0.2.6", + "num-complex", + "num-integer", + "num-iter", + "num-rational", + "num-traits", +] + +[[package]] +name = "num-bigint" +version = "0.2.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "090c7f9998ee0ff65aa5b723e4009f7b217707f1fb5ea551329cc4d6231fb304" +dependencies = [ + "autocfg", + "num-integer", + "num-traits", +] + [[package]] name = "num-bigint" version = "0.4.6" @@ -1231,6 +1837,16 @@ dependencies = [ "num-traits", ] +[[package]] +name = "num-complex" +version = "0.2.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b6b19411a9719e753aff12e5187b74d60d3dc449ec3f4dc21e3989c3f554bc95" +dependencies = [ + "autocfg", + "num-traits", +] + [[package]] name = "num-derive" version = "0.4.2" @@ -1251,6 +1867,29 @@ dependencies = [ "num-traits", ] +[[package]] +name = "num-iter" +version = "0.1.45" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1429034a0490724d0075ebb2bc9e875d6503c3cf69e235a8941aa757d83ef5bf" +dependencies = [ + "autocfg", + "num-integer", + "num-traits", +] + +[[package]] +name = "num-rational" +version = "0.2.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5c000134b5dbf44adc5cb772486d335293351644b801551abe8f75c84cfa4aef" +dependencies = [ + "autocfg", + "num-bigint 0.2.6", + "num-integer", + "num-traits", +] + [[package]] name = "num-traits" version = "0.2.19" @@ -1294,6 +1933,54 @@ version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c08d65885ee38876c4f86fa503fb49d7b507c2b62552df7c70b2fce627e06381" +[[package]] +name = "openssl" +version = "0.10.74" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "24ad14dd45412269e1a30f52ad8f0664f0f4f4a89ee8fe28c3b3527021ebb654" +dependencies = [ + "bitflags", + "cfg-if", + "foreign-types", + "libc", + "once_cell", + "openssl-macros", + "openssl-sys", +] + +[[package]] +name = "openssl-macros" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a948666b637a0f465e8564c73e89d4dde00d72d4d473cc972f390fc3dcee7d9c" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.101", +] + +[[package]] +name = "openssl-src" +version = "300.5.4+3.5.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a507b3792995dae9b0df8a1c1e3771e8418b7c2d9f0baeba32e6fe8b06c7cb72" +dependencies = [ + "cc", +] + +[[package]] +name = "openssl-sys" +version = "0.9.110" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0a9f0075ba3c21b09f8e8b2026584b1d18d49388648f2fbbf3c97ea8deced8e2" +dependencies = [ + "cc", + "libc", + "openssl-src", + "pkg-config", + "vcpkg", +] + [[package]] name = "parking_lot" version = "0.12.3" @@ -1317,6 +2004,12 @@ dependencies = [ "windows-targets", ] +[[package]] +name = "paste" +version = "1.0.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "57c0d7b74b563b49d38dae00a0c37d4d6de9b432382b2892f0574ddcae73fd0a" + [[package]] name = "pbkdf2" version = "0.11.0" @@ -1349,6 +2042,15 @@ version = "2.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9b4f627cb1b25917193a259e49bdad08f671f8d9708acfd5fe0a8c1455d87220" +[[package]] +name = "percentage" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2fd23b938276f14057220b707937bcb42fa76dda7560e57a2da30cb52d557937" +dependencies = [ + "num", +] + [[package]] name = "pinocchio" version = "0.8.1" @@ -1385,6 +2087,12 @@ dependencies = [ "spki", ] +[[package]] +name = "pkg-config" +version = "0.3.32" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7edddbd0b52d732b21ad9a5fab5c704c14cd949e5e9a1ec5929a24fded1b904c" + [[package]] name = "polyval" version = "0.6.2" @@ -1485,6 +2193,17 @@ dependencies = [ "percent-encoding", ] +[[package]] +name = "qualifier_attr" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9e2e25ee72f5b24d773cae88422baddefff7714f97aab68d96fe2b6fc4a28fb2" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.101", +] + [[package]] name = "quote" version = "1.0.40" @@ -1494,6 +2213,12 @@ dependencies = [ "proc-macro2", ] +[[package]] +name = "r-efi" +version = "5.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "69cdb34c158ceb288df11e18b4bd39de994f6657d83847bdffdbd7f346754b0f" + [[package]] name = "rand" version = "0.7.3" @@ -1635,10 +2360,16 @@ version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f8dd2a808d456c4a54e300a23e9f5a67e122c3024119acbfd73e3bf664491cb2" dependencies = [ - "hmac", + "hmac 0.12.1", "subtle", ] +[[package]] +name = "rustc-demangle" +version = "0.1.26" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "56f7d92ca342cea22a06f2121d944b4fd82af56988c270852495420f961d4ace" + [[package]] name = "rustc_version" version = "0.4.1" @@ -1688,13 +2419,23 @@ checksum = "56e6fa9c48d24d85fb3de5ad847117517440f6beceb7798af16b4a87d616b8d0" [[package]] name = "serde" -version = "1.0.219" +version = "1.0.228" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5f0e2c6ed6606019b4e29e69dbaba95b11854410e5347d525002456dbbb786b6" +checksum = "9a8e94ea7f378bd32cbbd37198a4a91436180c5bb472411e48b5ec2e2124ae9e" dependencies = [ + "serde_core", "serde_derive", ] +[[package]] +name = "serde-big-array" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "11fc7cc2c76d73e0f27ee52abbd64eec84d46f370c88371120433196934e4b7f" +dependencies = [ + "serde", +] + [[package]] name = "serde_bytes" version = "0.11.17" @@ -1704,11 +2445,20 @@ dependencies = [ "serde", ] +[[package]] +name = "serde_core" +version = "1.0.228" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "41d385c7d4ca58e59fc732af25c3983b67ac852c1a25000afe1175de458b67ad" +dependencies = [ + "serde_derive", +] + [[package]] name = "serde_derive" -version = "1.0.219" +version = "1.0.228" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5b0276cf7f2c73365f7157c8123c21cd9a50fbbd844757af28ca1f5925fc2a00" +checksum = "d540f220d3187173da220f885ab66608367b6574e925011a9353e4badda91d79" dependencies = [ "proc-macro2", "quote", @@ -1736,6 +2486,28 @@ dependencies = [ "serde", ] +[[package]] +name = "serde_with" +version = "3.15.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "aa66c845eee442168b2c8134fec70ac50dc20e760769c8ba0ad1319ca1959b04" +dependencies = [ + "serde_core", + "serde_with_macros", +] + +[[package]] +name = "serde_with_macros" +version = "3.15.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b91a903660542fced4e99881aa481bdbaec1634568ee02e0b8bd57c64cb38955" +dependencies = [ + "darling", + "proc-macro2", + "quote", + "syn 2.0.101", +] + [[package]] name = "sha2" version = "0.9.9" @@ -1810,6 +2582,12 @@ version = "1.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64" +[[package]] +name = "signature" +version = "1.6.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "74233d3b3b2f6d4b006dc19dee745e73e2a6bfb6f93607cd3b02bd5b00797d7c" + [[package]] name = "signature" version = "2.2.0" @@ -1820,6 +2598,12 @@ dependencies = [ "rand_core 0.6.4", ] +[[package]] +name = "siphasher" +version = "0.3.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "38b58827f4464d87d377d175e90bf58eb00fd8716ff0a62f80356b5e61555d0d" + [[package]] name = "smallvec" version = "1.15.0" @@ -1839,6 +2623,24 @@ dependencies = [ "solana-sdk-ids 2.2.1", ] +[[package]] +name = "solana-account" +version = "3.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "39e5a5c395c41a30f0e36fa487b8cda3280f0d9e4c7b461c0881fa23564f4c28" +dependencies = [ + "bincode", + "serde", + "serde_bytes", + "serde_derive", + "solana-account-info 3.0.0", + "solana-clock 3.0.0", + "solana-instruction-error", + "solana-pubkey 3.0.0", + "solana-sdk-ids 3.0.0", + "solana-sysvar 3.0.0", +] + [[package]] name = "solana-account-info" version = "2.3.0" @@ -1874,9 +2676,10 @@ dependencies = [ "borsh 1.5.7", "bytemuck", "bytemuck_derive", - "curve25519-dalek", + "curve25519-dalek 4.1.3", "five8", "five8_const", + "rand 0.8.5", "serde", "serde_derive", "solana-atomic-u64 3.0.0", @@ -1909,7 +2712,13 @@ version = "3.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e2f56cac5e70517a2f27d05e5100b20de7182473ffd0035b23ea273307905987" dependencies = [ + "bincode", + "bytemuck", + "serde", + "serde_derive", "solana-clock 3.0.0", + "solana-instruction 3.0.0", + "solana-instruction-error", "solana-pubkey 3.0.0", "solana-sdk-ids 3.0.0", "solana-slot-hashes 3.0.0", @@ -1939,7 +2748,7 @@ version = "2.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "75db7f2bbac3e62cfd139065d15bcda9e2428883ba61fc8d27ccb251081e7567" dependencies = [ - "num-bigint", + "num-bigint 0.4.6", "num-traits", "solana-define-syscall 2.3.0", ] @@ -1950,7 +2759,7 @@ version = "3.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "30c80fb6d791b3925d5ec4bf23a7c169ef5090c013059ec3ed7d0b2c04efa085" dependencies = [ - "num-bigint", + "num-bigint 0.4.6", "num-traits", "solana-define-syscall 3.0.0", ] @@ -1966,6 +2775,17 @@ dependencies = [ "solana-instruction 2.3.0", ] +[[package]] +name = "solana-bincode" +version = "3.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "534a37aecd21986089224d0c01006a75b96ac6fb2f418c24edc15baf0d2a4c99" +dependencies = [ + "bincode", + "serde", + "solana-instruction-error", +] + [[package]] name = "solana-blake3-hasher" version = "2.2.1" @@ -1989,6 +2809,21 @@ dependencies = [ "solana-hash 3.0.0", ] +[[package]] +name = "solana-bn254" +version = "3.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8d08583be08d2d5f19aa21efbb6fbdb968ba7fd0de74562441437a7d776772bf" +dependencies = [ + "ark-bn254", + "ark-ec", + "ark-ff", + "ark-serialize", + "bytemuck", + "solana-define-syscall 3.0.0", + "thiserror 2.0.17", +] + [[package]] name = "solana-borsh" version = "2.2.1" @@ -2008,6 +2843,75 @@ dependencies = [ "borsh 1.5.7", ] +[[package]] +name = "solana-bpf-loader-program" +version = "3.0.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4d96a21a7271f0c59b9b28c3a5a08a8f78325231ed9d459c02f049b4c52adff2" +dependencies = [ + "agave-syscalls", + "bincode", + "qualifier_attr", + "solana-account 3.1.0", + "solana-bincode 3.0.0", + "solana-clock 3.0.0", + "solana-instruction 3.0.0", + "solana-loader-v3-interface 6.1.0", + "solana-loader-v4-interface 3.1.0", + "solana-packet", + "solana-program-entrypoint 3.1.0", + "solana-program-runtime", + "solana-pubkey 3.0.0", + "solana-sbpf", + "solana-sdk-ids 3.0.0", + "solana-svm-feature-set", + "solana-svm-log-collector", + "solana-svm-measure", + "solana-svm-type-overrides", + "solana-system-interface 2.0.0", + "solana-transaction-context", +] + +[[package]] +name = "solana-builtins" +version = "3.0.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1366152cef79982bec10c8848af28ecadedb45a0f95f9137cc84b39006b16c34" +dependencies = [ + "agave-feature-set", + "solana-bpf-loader-program", + "solana-compute-budget-program", + "solana-hash 3.0.0", + "solana-loader-v4-program", + "solana-program-runtime", + "solana-pubkey 3.0.0", + "solana-sdk-ids 3.0.0", + "solana-stake-program", + "solana-system-program", + "solana-vote-program", + "solana-zk-elgamal-proof-program", + "solana-zk-token-proof-program", +] + +[[package]] +name = "solana-builtins-default-costs" +version = "3.0.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d7547b04505cd465b6cc5436b7bfeed2c5f90133a4a81a9b6f945f40389f45e6" +dependencies = [ + "agave-feature-set", + "ahash 0.8.12", + "log", + "solana-bpf-loader-program", + "solana-compute-budget-program", + "solana-loader-v4-program", + "solana-pubkey 3.0.0", + "solana-sdk-ids 3.0.0", + "solana-stake-program", + "solana-system-program", + "solana-vote-program", +] + [[package]] name = "solana-clock" version = "2.2.2" @@ -2034,6 +2938,83 @@ dependencies = [ "solana-sysvar-id 3.0.0", ] +[[package]] +name = "solana-cluster-type" +version = "3.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "eb7692fa6bf10a1a86b450c4775526f56d7e0e2116a53313f2533b5694abea64" +dependencies = [ + "solana-hash 3.0.0", +] + +[[package]] +name = "solana-compute-budget" +version = "3.0.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "93e828825846ebc6d9d1b10f91b7d50cdd071e56579cf1dff91ee15a457104c7" +dependencies = [ + "solana-fee-structure", + "solana-program-runtime", +] + +[[package]] +name = "solana-compute-budget-instruction" +version = "3.0.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "870173bd5426617b5dbd65d571ea9bd63ebe700b9b623ffe8a2fe1da6e5ddfe2" +dependencies = [ + "agave-feature-set", + "log", + "solana-borsh 3.0.0", + "solana-builtins-default-costs", + "solana-compute-budget", + "solana-compute-budget-interface", + "solana-instruction 3.0.0", + "solana-packet", + "solana-pubkey 3.0.0", + "solana-sdk-ids 3.0.0", + "solana-svm-transaction", + "solana-transaction-error 3.0.0", + "thiserror 2.0.17", +] + +[[package]] +name = "solana-compute-budget-interface" +version = "3.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8292c436b269ad23cecc8b24f7da3ab07ca111661e25e00ce0e1d22771951ab9" +dependencies = [ + "borsh 1.5.7", + "solana-instruction 3.0.0", + "solana-sdk-ids 3.0.0", +] + +[[package]] +name = "solana-compute-budget-program" +version = "3.0.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "03f5f8b9b3b4f77a2db4a3aabd42c0e2329f12be6327e9bfa176fc3b4952d3ec" +dependencies = [ + "solana-program-runtime", +] + +[[package]] +name = "solana-config-interface" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "63e401ae56aed512821cc7a0adaa412ff97fecd2dff4602be7b1330d2daec0c4" +dependencies = [ + "bincode", + "serde", + "serde_derive", + "solana-account 3.1.0", + "solana-instruction 3.0.0", + "solana-pubkey 3.0.0", + "solana-sdk-ids 3.0.0", + "solana-short-vec 3.0.0", + "solana-system-interface 2.0.0", +] + [[package]] name = "solana-cpi" version = "2.2.1" @@ -2070,10 +3051,24 @@ checksum = "fa77936de1910002e7ad5817e38c3990402c2d8e92517cdd736df51485c76d88" dependencies = [ "bytemuck", "bytemuck_derive", - "curve25519-dalek", + "curve25519-dalek 4.1.3", "solana-define-syscall 2.3.0", "subtle", - "thiserror 2.0.12", + "thiserror 2.0.17", +] + +[[package]] +name = "solana-curve25519" +version = "3.0.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "09b5a8c8d7017e6b16d7e97faabe10e1adb5b8dfe6b7bc223503041169837a3c" +dependencies = [ + "bytemuck", + "bytemuck_derive", + "curve25519-dalek 4.1.3", + "solana-define-syscall 3.0.0", + "subtle", + "thiserror 2.0.17", ] [[package]] @@ -2108,6 +3103,28 @@ dependencies = [ "uriparse", ] +[[package]] +name = "solana-ed25519-program" +version = "3.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e1419197f1c06abf760043f6d64ba9d79a03ad5a43f18c7586471937122094da" +dependencies = [ + "bytemuck", + "bytemuck_derive", + "solana-instruction 3.0.0", + "solana-sdk-ids 3.0.0", +] + +[[package]] +name = "solana-epoch-info" +version = "3.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f8a6b69bd71386f61344f2bcf0f527f5fd6dd3b22add5880e2e1bf1dd1fa8059" +dependencies = [ + "serde", + "serde_derive", +] + [[package]] name = "solana-epoch-rewards" version = "2.2.1" @@ -2136,6 +3153,17 @@ dependencies = [ "solana-sysvar-id 3.0.0", ] +[[package]] +name = "solana-epoch-rewards-hasher" +version = "3.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e507099d0c2c5d7870c9b1848281ea67bbeee80d171ca85003ee5767994c9c38" +dependencies = [ + "siphasher", + "solana-hash 3.0.0", + "solana-pubkey 3.0.0", +] + [[package]] name = "solana-epoch-schedule" version = "2.2.1" @@ -2190,7 +3218,7 @@ dependencies = [ "solana-pubkey 2.4.0", "solana-sdk-ids 2.2.1", "solana-system-interface 1.0.0", - "thiserror 2.0.12", + "thiserror 2.0.17", ] [[package]] @@ -2211,7 +3239,7 @@ dependencies = [ "solana-pubkey 3.0.0", "solana-sdk-ids 3.0.0", "solana-system-interface 2.0.0", - "thiserror 2.0.12", + "thiserror 2.0.17", ] [[package]] @@ -2223,7 +3251,7 @@ dependencies = [ "bincode", "serde", "serde_derive", - "solana-account", + "solana-account 2.2.1", "solana-account-info 2.3.0", "solana-instruction 2.3.0", "solana-program-error 2.2.2", @@ -2233,6 +3261,17 @@ dependencies = [ "solana-system-interface 1.0.0", ] +[[package]] +name = "solana-fee" +version = "3.0.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6ab2d1b0f8c246263c366122916cb37d7c91d0bf3697e6d1368616effb501522" +dependencies = [ + "agave-feature-set", + "solana-fee-structure", + "solana-svm-transaction", +] + [[package]] name = "solana-fee-calculator" version = "2.2.1" @@ -2255,6 +3294,49 @@ dependencies = [ "serde_derive", ] +[[package]] +name = "solana-fee-structure" +version = "3.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5e2abdb1223eea8ec64136f39cb1ffcf257e00f915c957c35c0dd9e3f4e700b0" +dependencies = [ + "serde", + "serde_derive", +] + +[[package]] +name = "solana-genesis-config" +version = "3.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "749eccc960e85c9b33608450093d256006253e1cb436b8380e71777840a3f675" +dependencies = [ + "bincode", + "chrono", + "memmap2", + "solana-account 3.1.0", + "solana-clock 3.0.0", + "solana-cluster-type", + "solana-epoch-schedule 3.0.0", + "solana-fee-calculator 3.0.0", + "solana-hash 3.0.0", + "solana-inflation", + "solana-keypair", + "solana-poh-config", + "solana-pubkey 3.0.0", + "solana-rent 3.0.0", + "solana-sdk-ids 3.0.0", + "solana-sha256-hasher 3.0.0", + "solana-shred-version", + "solana-signer", + "solana-time-utils", +] + +[[package]] +name = "solana-hard-forks" +version = "3.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0abacc4b66ce471f135f48f22facf75cbbb0f8a252fbe2c1e0aa59d5b203f519" + [[package]] name = "solana-hash" version = "2.3.0" @@ -2289,6 +3371,16 @@ dependencies = [ "solana-sanitize 3.0.1", ] +[[package]] +name = "solana-inflation" +version = "3.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e92f37a14e7c660628752833250dd3dcd8e95309876aee751d7f8769a27947c6" +dependencies = [ + "serde", + "serde_derive", +] + [[package]] name = "solana-instruction" version = "2.3.0" @@ -2329,6 +3421,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b1f0d483b8ae387178d9210e0575b666b05cdd4bd0f2f188128249f6e454d39d" dependencies = [ "num-traits", + "serde", + "serde_derive", "solana-program-error 3.0.0", ] @@ -2403,6 +3497,24 @@ dependencies = [ "solana-hash 3.0.0", ] +[[package]] +name = "solana-keypair" +version = "3.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "952ed9074c12edd2060cb09c2a8c664303f4ab7f7056a407ac37dd1da7bdaa3e" +dependencies = [ + "ed25519-dalek 2.2.0", + "ed25519-dalek-bip32", + "five8", + "rand 0.8.5", + "solana-derivation-path", + "solana-pubkey 3.0.0", + "solana-seed-derivable", + "solana-seed-phrase", + "solana-signature", + "solana-signer", +] + [[package]] name = "solana-last-restart-slot" version = "2.2.1" @@ -2473,6 +3585,20 @@ dependencies = [ "solana-system-interface 1.0.0", ] +[[package]] +name = "solana-loader-v3-interface" +version = "6.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dee44c9b1328c5c712c68966fb8de07b47f3e7bac006e74ddd1bb053d3e46e5d" +dependencies = [ + "serde", + "serde_bytes", + "serde_derive", + "solana-instruction 3.0.0", + "solana-pubkey 3.0.0", + "solana-sdk-ids 3.0.0", +] + [[package]] name = "solana-loader-v4-interface" version = "2.2.1" @@ -2488,6 +3614,46 @@ dependencies = [ "solana-system-interface 1.0.0", ] +[[package]] +name = "solana-loader-v4-interface" +version = "3.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e4c948b33ff81fa89699911b207059e493defdba9647eaf18f23abdf3674e0fb" +dependencies = [ + "serde", + "serde_bytes", + "serde_derive", + "solana-instruction 3.0.0", + "solana-pubkey 3.0.0", + "solana-sdk-ids 3.0.0", + "solana-system-interface 2.0.0", +] + +[[package]] +name = "solana-loader-v4-program" +version = "3.0.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "51d3f8156365529bff005cc211056a9634c2d5953d54279cc56364e48c0c9a7c" +dependencies = [ + "log", + "qualifier_attr", + "solana-account 3.1.0", + "solana-bincode 3.0.0", + "solana-bpf-loader-program", + "solana-instruction 3.0.0", + "solana-loader-v3-interface 6.1.0", + "solana-loader-v4-interface 3.1.0", + "solana-packet", + "solana-program-runtime", + "solana-pubkey 3.0.0", + "solana-sbpf", + "solana-sdk-ids 3.0.0", + "solana-svm-log-collector", + "solana-svm-measure", + "solana-svm-type-overrides", + "solana-transaction-context", +] + [[package]] name = "solana-message" version = "2.4.0" @@ -2499,7 +3665,7 @@ 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", @@ -2517,6 +3683,8 @@ version = "3.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "85666605c9fd727f865ed381665db0a8fc29f984a030ecc1e40f43bfb2541623" dependencies = [ + "bincode", + "blake3", "lazy_static", "serde", "serde_derive", @@ -2579,6 +3747,8 @@ version = "3.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "abbdc6c8caf1c08db9f36a50967539d0f72b9f1d4aea04fec5430f532e5afadc" dependencies = [ + "serde", + "serde_derive", "solana-fee-calculator 3.0.0", "solana-hash 3.0.0", "solana-pubkey 3.0.0", @@ -2586,8 +3756,83 @@ dependencies = [ ] [[package]] -name = "solana-program" -version = "2.3.0" +name = "solana-nonce-account" +version = "3.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "805fd25b29e5a1a0e6c3dd6320c9da80f275fbe4ff6e392617c303a2085c435e" +dependencies = [ + "solana-account 3.1.0", + "solana-hash 3.0.0", + "solana-nonce 3.0.0", + "solana-sdk-ids 3.0.0", +] + +[[package]] +name = "solana-offchain-message" +version = "3.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f6e2a1141a673f72a05cf406b99e4b2b8a457792b7c01afa07b3f00d4e2de393" +dependencies = [ + "num_enum", + "solana-hash 3.0.0", + "solana-packet", + "solana-pubkey 3.0.0", + "solana-sanitize 3.0.1", + "solana-sha256-hasher 3.0.0", + "solana-signature", + "solana-signer", +] + +[[package]] +name = "solana-packet" +version = "3.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6edf2f25743c95229ac0fdc32f8f5893ef738dbf332c669e9861d33ddb0f469d" +dependencies = [ + "bitflags", +] + +[[package]] +name = "solana-poh-config" +version = "3.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2f1fef1f2ff2480fdbcc64bef5e3c47bec6e1647270db88b43f23e3a55f8d9cf" + +[[package]] +name = "solana-poseidon" +version = "3.0.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4a9a6bf2b300b7b65a89f2c5b59832a86c46be8b6b67507231ee58f9343d7e9a" +dependencies = [ + "ark-bn254", + "light-poseidon", + "solana-define-syscall 3.0.0", + "thiserror 2.0.17", +] + +[[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-presigner" +version = "3.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0f704eaf825be3180832445b9e4983b875340696e8e7239bf2d535b0f86c14a2" +dependencies = [ + "solana-pubkey 3.0.0", + "solana-signature", + "solana-signer", +] + +[[package]] +name = "solana-program" +version = "2.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "98eca145bd3545e2fbb07166e895370576e47a00a7d824e325390d33bf467210" dependencies = [ @@ -2603,7 +3848,7 @@ dependencies = [ "lazy_static", "log", "memoffset", - "num-bigint", + "num-bigint 0.4.6", "num-derive", "num-traits", "rand 0.8.5", @@ -2614,7 +3859,7 @@ dependencies = [ "solana-address-lookup-table-interface 2.2.2", "solana-atomic-u64 2.2.1", "solana-big-mod-exp 2.2.1", - "solana-bincode", + "solana-bincode 2.2.1", "solana-blake3-hasher 2.2.1", "solana-borsh 2.2.1", "solana-clock 2.2.2", @@ -2633,7 +3878,7 @@ dependencies = [ "solana-last-restart-slot 2.2.1", "solana-loader-v2-interface", "solana-loader-v3-interface 5.0.0", - "solana-loader-v4-interface", + "solana-loader-v4-interface 2.2.1", "solana-message 2.4.0", "solana-msg 2.2.1", "solana-native-token 2.3.0", @@ -2656,12 +3901,12 @@ dependencies = [ "solana-slot-hashes 2.2.1", "solana-slot-history 2.2.1", "solana-stable-layout 2.2.1", - "solana-stake-interface", + "solana-stake-interface 1.2.1", "solana-system-interface 1.0.0", "solana-sysvar 2.3.0", "solana-sysvar-id 2.2.1", - "solana-vote-interface", - "thiserror 2.0.12", + "solana-vote-interface 2.2.6", + "thiserror 2.0.17", "wasm-bindgen", ] @@ -2812,6 +4057,47 @@ dependencies = [ "solana-program-error 3.0.0", ] +[[package]] +name = "solana-program-runtime" +version = "3.0.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cb7c0120b8925e979b2fd4a060d65428c2929162cca38307d1db9dfe3b6cce4a" +dependencies = [ + "base64 0.22.1", + "bincode", + "itertools 0.12.1", + "log", + "percentage", + "rand 0.8.5", + "serde", + "solana-account 3.1.0", + "solana-clock 3.0.0", + "solana-epoch-rewards 3.0.0", + "solana-epoch-schedule 3.0.0", + "solana-fee-structure", + "solana-hash 3.0.0", + "solana-instruction 3.0.0", + "solana-last-restart-slot 3.0.0", + "solana-program-entrypoint 3.1.0", + "solana-pubkey 3.0.0", + "solana-rent 3.0.0", + "solana-sbpf", + "solana-sdk-ids 3.0.0", + "solana-slot-hashes 3.0.0", + "solana-stake-interface 2.0.1", + "solana-svm-callback", + "solana-svm-feature-set", + "solana-svm-log-collector", + "solana-svm-measure", + "solana-svm-timings", + "solana-svm-transaction", + "solana-svm-type-overrides", + "solana-system-interface 2.0.0", + "solana-sysvar 3.0.0", + "solana-sysvar-id 3.0.0", + "solana-transaction-context", +] + [[package]] name = "solana-pubkey" version = "2.4.0" @@ -2822,7 +4108,7 @@ dependencies = [ "borsh 1.5.7", "bytemuck", "bytemuck_derive", - "curve25519-dalek", + "curve25519-dalek 4.1.3", "five8", "five8_const", "getrandom 0.2.16", @@ -2844,6 +4130,7 @@ version = "3.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8909d399deb0851aa524420beeb5646b115fd253ef446e35fe4504c904da3941" dependencies = [ + "rand 0.8.5", "solana-address", ] @@ -2885,6 +4172,61 @@ version = "3.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "dcf09694a0fc14e5ffb18f9b7b7c0f15ecb6eac5b5610bf76a1853459d19daf9" +[[package]] +name = "solana-sbpf" +version = "0.12.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0f224d906c14efc7ed7f42bc5fe9588f3f09db8cabe7f6023adda62a69678e1a" +dependencies = [ + "byteorder", + "combine", + "hash32", + "libc", + "log", + "rand 0.8.5", + "rustc-demangle", + "thiserror 2.0.17", + "winapi", +] + +[[package]] +name = "solana-sdk" +version = "3.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3f03df7969f5e723ad31b6c9eadccc209037ac4caa34d8dc259316b05c11e82b" +dependencies = [ + "bincode", + "bs58", + "serde", + "solana-account 3.1.0", + "solana-epoch-info", + "solana-epoch-rewards-hasher", + "solana-fee-structure", + "solana-inflation", + "solana-keypair", + "solana-message 3.0.1", + "solana-offchain-message", + "solana-presigner", + "solana-program 3.0.0", + "solana-program-memory 3.0.0", + "solana-pubkey 3.0.0", + "solana-sanitize 3.0.1", + "solana-sdk-ids 3.0.0", + "solana-sdk-macro 3.0.0", + "solana-seed-derivable", + "solana-seed-phrase", + "solana-serde", + "solana-serde-varint 3.0.0", + "solana-short-vec 3.0.0", + "solana-shred-version", + "solana-signature", + "solana-signer", + "solana-time-utils", + "solana-transaction", + "solana-transaction-error 3.0.0", + "thiserror 2.0.17", +] + [[package]] name = "solana-sdk-ids" version = "2.2.1" @@ -2927,6 +4269,20 @@ dependencies = [ "syn 2.0.101", ] +[[package]] +name = "solana-secp256k1-program" +version = "3.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8efa767b0188f577edae7080e8bf080e5db9458e2b6ee5beaa73e2e6bb54e99d" +dependencies = [ + "digest 0.10.7", + "k256", + "serde", + "serde_derive", + "sha3", + "solana-signature", +] + [[package]] name = "solana-secp256k1-recover" version = "2.2.1" @@ -2935,7 +4291,7 @@ checksum = "baa3120b6cdaa270f39444f5093a90a7b03d296d362878f7a6991d6de3bbe496" dependencies = [ "libsecp256k1", "solana-define-syscall 2.3.0", - "thiserror 2.0.12", + "thiserror 2.0.17", ] [[package]] @@ -2946,7 +4302,19 @@ checksum = "394a4470477d66296af5217970a905b1c5569032a7732c367fb69e5666c8607e" dependencies = [ "k256", "solana-define-syscall 3.0.0", - "thiserror 2.0.12", + "thiserror 2.0.17", +] + +[[package]] +name = "solana-secp256r1-program" +version = "3.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "445d8e12592631d76fc4dc57858bae66c9fd7cc838c306c62a472547fc9d0ce6" +dependencies = [ + "bytemuck", + "openssl", + "solana-instruction 3.0.0", + "solana-sdk-ids 3.0.0", ] [[package]] @@ -2964,11 +4332,20 @@ version = "3.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "dc905b200a95f2ea9146e43f2a7181e3aeb55de6bc12afb36462d00a3c7310de" dependencies = [ - "hmac", + "hmac 0.12.1", "pbkdf2", "sha2 0.10.9", ] +[[package]] +name = "solana-serde" +version = "3.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "709a93cab694c70f40b279d497639788fc2ccbcf9b4aa32273d4b361322c02dd" +dependencies = [ + "serde", +] + [[package]] name = "solana-serde-varint" version = "2.2.2" @@ -3049,13 +4426,29 @@ dependencies = [ "serde", ] +[[package]] +name = "solana-shred-version" +version = "3.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "94953e22ca28fe4541a3447d6baeaf519cc4ddc063253bfa673b721f34c136bb" +dependencies = [ + "solana-hard-forks", + "solana-hash 3.0.0", + "solana-sha256-hasher 3.0.0", +] + [[package]] name = "solana-signature" version = "3.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4bb8057cc0e9f7b5e89883d49de6f407df655bb6f3a71d0b7baf9986a2218fd9" dependencies = [ + "ed25519-dalek 2.2.0", "five8", + "rand 0.8.5", + "serde", + "serde-big-array", + "serde_derive", "solana-sanitize 3.0.1", ] @@ -3071,96 +4464,211 @@ dependencies = [ ] [[package]] -name = "solana-slot-hashes" -version = "2.2.1" +name = "solana-slot-hashes" +version = "2.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0c8691982114513763e88d04094c9caa0376b867a29577939011331134c301ce" +dependencies = [ + "serde", + "serde_derive", + "solana-hash 2.3.0", + "solana-sdk-ids 2.2.1", + "solana-sysvar-id 2.2.1", +] + +[[package]] +name = "solana-slot-hashes" +version = "3.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "80a293f952293281443c04f4d96afd9d547721923d596e92b4377ed2360f1746" +dependencies = [ + "serde", + "serde_derive", + "solana-hash 3.0.0", + "solana-sdk-ids 3.0.0", + "solana-sysvar-id 3.0.0", +] + +[[package]] +name = "solana-slot-history" +version = "2.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "97ccc1b2067ca22754d5283afb2b0126d61eae734fc616d23871b0943b0d935e" +dependencies = [ + "bv", + "serde", + "serde_derive", + "solana-sdk-ids 2.2.1", + "solana-sysvar-id 2.2.1", +] + +[[package]] +name = "solana-slot-history" +version = "3.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f914f6b108f5bba14a280b458d023e3621c9973f27f015a4d755b50e88d89e97" +dependencies = [ + "bv", + "serde", + "serde_derive", + "solana-sdk-ids 3.0.0", + "solana-sysvar-id 3.0.0", +] + +[[package]] +name = "solana-stable-layout" +version = "2.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9f14f7d02af8f2bc1b5efeeae71bc1c2b7f0f65cd75bcc7d8180f2c762a57f54" +dependencies = [ + "solana-instruction 2.3.0", + "solana-pubkey 2.4.0", +] + +[[package]] +name = "solana-stable-layout" +version = "3.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1da74507795b6e8fb60b7c7306c0c36e2c315805d16eaaf479452661234685ac" +dependencies = [ + "solana-instruction 3.0.0", + "solana-pubkey 3.0.0", +] + +[[package]] +name = "solana-stake-interface" +version = "1.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5269e89fde216b4d7e1d1739cf5303f8398a1ff372a81232abbee80e554a838c" +dependencies = [ + "borsh 0.10.4", + "borsh 1.5.7", + "num-traits", + "serde", + "serde_derive", + "solana-clock 2.2.2", + "solana-cpi 2.2.1", + "solana-decode-error", + "solana-instruction 2.3.0", + "solana-program-error 2.2.2", + "solana-pubkey 2.4.0", + "solana-system-interface 1.0.0", + "solana-sysvar-id 2.2.1", +] + +[[package]] +name = "solana-stake-interface" +version = "2.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f6f912ae679b683365348dea482dbd9468d22ff258b554fd36e3d3683c2122e3" +dependencies = [ + "num-traits", + "serde", + "serde_derive", + "solana-clock 3.0.0", + "solana-cpi 3.0.0", + "solana-instruction 3.0.0", + "solana-program-error 3.0.0", + "solana-pubkey 3.0.0", + "solana-system-interface 2.0.0", + "solana-sysvar 3.0.0", + "solana-sysvar-id 3.0.0", +] + +[[package]] +name = "solana-stake-program" +version = "3.0.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1325e6afc36a946d97be5e14351df21243ee7171a3eee2b6c967b694317f6abc" +dependencies = [ + "agave-feature-set", + "bincode", + "log", + "solana-account 3.1.0", + "solana-bincode 3.0.0", + "solana-clock 3.0.0", + "solana-config-interface", + "solana-genesis-config", + "solana-instruction 3.0.0", + "solana-native-token 3.0.0", + "solana-packet", + "solana-program-runtime", + "solana-pubkey 3.0.0", + "solana-rent 3.0.0", + "solana-sdk-ids 3.0.0", + "solana-stake-interface 2.0.1", + "solana-svm-log-collector", + "solana-svm-type-overrides", + "solana-sysvar 3.0.0", + "solana-transaction-context", + "solana-vote-interface 3.0.0", +] + +[[package]] +name = "solana-svm-callback" +version = "3.0.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0c8691982114513763e88d04094c9caa0376b867a29577939011331134c301ce" +checksum = "a591bceb6b4ed365b6bddaace64469a736c5f2ab6ac0b6f7171c39c275977588" dependencies = [ - "serde", - "serde_derive", - "solana-hash 2.3.0", - "solana-sdk-ids 2.2.1", - "solana-sysvar-id 2.2.1", + "solana-account 3.1.0", + "solana-clock 3.0.0", + "solana-precompile-error", + "solana-pubkey 3.0.0", ] [[package]] -name = "solana-slot-hashes" -version = "3.0.0" +name = "solana-svm-feature-set" +version = "3.0.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "80a293f952293281443c04f4d96afd9d547721923d596e92b4377ed2360f1746" -dependencies = [ - "serde", - "serde_derive", - "solana-hash 3.0.0", - "solana-sdk-ids 3.0.0", - "solana-sysvar-id 3.0.0", -] +checksum = "0db171398f959c9a5b4bd1a918d2f2a096a32760c9c633b6f19e09155e124151" [[package]] -name = "solana-slot-history" -version = "2.2.1" +name = "solana-svm-log-collector" +version = "3.0.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "97ccc1b2067ca22754d5283afb2b0126d61eae734fc616d23871b0943b0d935e" +checksum = "f38b5f90d905995fd99069c895498c27542d367825f67dd8a760e458b4859cf8" dependencies = [ - "bv", - "serde", - "serde_derive", - "solana-sdk-ids 2.2.1", - "solana-sysvar-id 2.2.1", + "log", ] [[package]] -name = "solana-slot-history" -version = "3.0.0" +name = "solana-svm-measure" +version = "3.0.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f914f6b108f5bba14a280b458d023e3621c9973f27f015a4d755b50e88d89e97" -dependencies = [ - "bv", - "serde", - "serde_derive", - "solana-sdk-ids 3.0.0", - "solana-sysvar-id 3.0.0", -] +checksum = "b057ed8bcd36b2ea591dc6d9fcd4684256efbc10293abc6218c4bb9a81919d5a" [[package]] -name = "solana-stable-layout" -version = "2.2.1" +name = "solana-svm-timings" +version = "3.0.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9f14f7d02af8f2bc1b5efeeae71bc1c2b7f0f65cd75bcc7d8180f2c762a57f54" +checksum = "14a893daf8425e56595827dde03bef1b7aa38f5dec6772c0053eb92e41a636e6" dependencies = [ - "solana-instruction 2.3.0", - "solana-pubkey 2.4.0", + "eager", + "enum-iterator", + "solana-pubkey 3.0.0", ] [[package]] -name = "solana-stable-layout" -version = "3.0.0" +name = "solana-svm-transaction" +version = "3.0.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1da74507795b6e8fb60b7c7306c0c36e2c315805d16eaaf479452661234685ac" +checksum = "0126d08c8bdc526b669d2fc92f3b61570bb557618614f1b98a7a6e8e9547d624" dependencies = [ - "solana-instruction 3.0.0", + "solana-hash 3.0.0", + "solana-message 3.0.1", "solana-pubkey 3.0.0", + "solana-sdk-ids 3.0.0", + "solana-signature", + "solana-transaction", ] [[package]] -name = "solana-stake-interface" -version = "1.2.1" +name = "solana-svm-type-overrides" +version = "3.0.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5269e89fde216b4d7e1d1739cf5303f8398a1ff372a81232abbee80e554a838c" +checksum = "afca78aac8c36a41b3bdd00f12eed423fcc7efe9305d261004c52a8fd1439187" dependencies = [ - "borsh 0.10.4", - "borsh 1.5.7", - "num-traits", - "serde", - "serde_derive", - "solana-clock 2.2.2", - "solana-cpi 2.2.1", - "solana-decode-error", - "solana-instruction 2.3.0", - "solana-program-error 2.2.2", - "solana-pubkey 2.4.0", - "solana-system-interface 1.0.0", - "solana-sysvar-id 2.2.1", + "rand 0.8.5", ] [[package]] @@ -3194,6 +4702,33 @@ dependencies = [ "solana-pubkey 3.0.0", ] +[[package]] +name = "solana-system-program" +version = "3.0.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d536678eb0110d98adf5d4fbf73b5b304ac8809bc1946c0ca095dd19e1f026ce" +dependencies = [ + "bincode", + "log", + "serde", + "serde_derive", + "solana-account 3.1.0", + "solana-bincode 3.0.0", + "solana-fee-calculator 3.0.0", + "solana-instruction 3.0.0", + "solana-nonce 3.0.0", + "solana-nonce-account", + "solana-packet", + "solana-program-runtime", + "solana-pubkey 3.0.0", + "solana-sdk-ids 3.0.0", + "solana-svm-log-collector", + "solana-svm-type-overrides", + "solana-system-interface 2.0.0", + "solana-sysvar 3.0.0", + "solana-transaction-context", +] + [[package]] name = "solana-sysvar" version = "2.3.0" @@ -3227,7 +4762,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", ] @@ -3285,6 +4820,52 @@ dependencies = [ "solana-sdk-ids 3.0.0", ] +[[package]] +name = "solana-time-utils" +version = "3.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0ced92c60aa76ec4780a9d93f3bd64dfa916e1b998eacc6f1c110f3f444f02c9" + +[[package]] +name = "solana-transaction" +version = "3.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "64928e6af3058dcddd6da6680cbe08324b4e071ad73115738235bbaa9e9f72a5" +dependencies = [ + "bincode", + "serde", + "serde_derive", + "solana-address", + "solana-hash 3.0.0", + "solana-instruction 3.0.0", + "solana-instruction-error", + "solana-message 3.0.1", + "solana-sanitize 3.0.1", + "solana-sdk-ids 3.0.0", + "solana-short-vec 3.0.0", + "solana-signature", + "solana-signer", + "solana-transaction-error 3.0.0", +] + +[[package]] +name = "solana-transaction-context" +version = "3.0.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cd6e951b985f5cb926592a72f1c8d63cbda317017d20c7e225ac30c4e736424f" +dependencies = [ + "bincode", + "serde", + "serde_derive", + "solana-account 3.1.0", + "solana-instruction 3.0.0", + "solana-instructions-sysvar 3.0.0", + "solana-pubkey 3.0.0", + "solana-rent 3.0.0", + "solana-sbpf", + "solana-sdk-ids 3.0.0", +] + [[package]] name = "solana-transaction-error" version = "2.2.1" @@ -3301,6 +4882,8 @@ version = "3.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4222065402340d7e6aec9dc3e54d22992ddcf923d91edcd815443c2bfca3144a" dependencies = [ + "serde", + "serde_derive", "solana-instruction-error", "solana-sanitize 3.0.1", ] @@ -3329,6 +4912,82 @@ dependencies = [ "solana-system-interface 1.0.0", ] +[[package]] +name = "solana-vote-interface" +version = "3.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "66631ddbe889dab5ec663294648cd1df395ec9df7a4476e7b3e095604cfdb539" +dependencies = [ + "bincode", + "cfg_eval", + "num-derive", + "num-traits", + "serde", + "serde_derive", + "serde_with", + "solana-clock 3.0.0", + "solana-hash 3.0.0", + "solana-instruction 3.0.0", + "solana-instruction-error", + "solana-pubkey 3.0.0", + "solana-rent 3.0.0", + "solana-sdk-ids 3.0.0", + "solana-serde-varint 3.0.0", + "solana-serialize-utils 3.1.0", + "solana-short-vec 3.0.0", + "solana-system-interface 2.0.0", +] + +[[package]] +name = "solana-vote-program" +version = "3.0.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "584786205560c911c31d56487da21de5c9b13b22e3380a4529cda6a4fb45a84b" +dependencies = [ + "agave-feature-set", + "bincode", + "log", + "num-derive", + "num-traits", + "serde", + "serde_derive", + "solana-account 3.1.0", + "solana-bincode 3.0.0", + "solana-clock 3.0.0", + "solana-epoch-schedule 3.0.0", + "solana-hash 3.0.0", + "solana-instruction 3.0.0", + "solana-keypair", + "solana-packet", + "solana-program-runtime", + "solana-pubkey 3.0.0", + "solana-rent 3.0.0", + "solana-sdk-ids 3.0.0", + "solana-signer", + "solana-slot-hashes 3.0.0", + "solana-transaction", + "solana-transaction-context", + "solana-vote-interface 3.0.0", + "thiserror 2.0.17", +] + +[[package]] +name = "solana-zk-elgamal-proof-program" +version = "3.0.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dbed18c3299d434b33b0d5aaee0cc4bcc3d1ea51516488819e261dea35c324e6" +dependencies = [ + "agave-feature-set", + "bytemuck", + "num-derive", + "num-traits", + "solana-instruction 3.0.0", + "solana-program-runtime", + "solana-sdk-ids 3.0.0", + "solana-svm-log-collector", + "solana-zk-sdk", +] + [[package]] name = "solana-zk-sdk" version = "4.0.0" @@ -3340,9 +4999,9 @@ dependencies = [ "bincode", "bytemuck", "bytemuck_derive", - "curve25519-dalek", + "curve25519-dalek 4.1.3", "getrandom 0.2.16", - "itertools", + "itertools 0.12.1", "js-sys", "merlin", "num-derive", @@ -3361,11 +5020,63 @@ dependencies = [ "solana-signature", "solana-signer", "subtle", - "thiserror 2.0.12", + "thiserror 2.0.17", "wasm-bindgen", "zeroize", ] +[[package]] +name = "solana-zk-token-proof-program" +version = "3.0.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7441cfffde254bfb4c28658284624951dc1e08d4fa9e3c547b31673150bc4c92" +dependencies = [ + "agave-feature-set", + "bytemuck", + "num-derive", + "num-traits", + "solana-instruction 3.0.0", + "solana-program-runtime", + "solana-sdk-ids 3.0.0", + "solana-svm-log-collector", + "solana-zk-token-sdk", +] + +[[package]] +name = "solana-zk-token-sdk" +version = "3.0.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8aea259ea80581de2af20a75e433ad92de410348f438b32df2ba41761e1dcc81" +dependencies = [ + "aes-gcm-siv", + "base64 0.22.1", + "bincode", + "bytemuck", + "bytemuck_derive", + "curve25519-dalek 4.1.3", + "itertools 0.12.1", + "merlin", + "num-derive", + "num-traits", + "rand 0.8.5", + "serde", + "serde_derive", + "serde_json", + "sha3", + "solana-curve25519 3.0.7", + "solana-derivation-path", + "solana-instruction 3.0.0", + "solana-pubkey 3.0.0", + "solana-sdk-ids 3.0.0", + "solana-seed-derivable", + "solana-seed-phrase", + "solana-signature", + "solana-signer", + "subtle", + "thiserror 2.0.17", + "zeroize", +] + [[package]] name = "spki" version = "0.7.3" @@ -3438,7 +5149,7 @@ dependencies = [ "solana-program-option 3.0.0", "solana-pubkey 3.0.0", "solana-zk-sdk", - "thiserror 2.0.12", + "thiserror 2.0.17", ] [[package]] @@ -3466,7 +5177,7 @@ dependencies = [ "spl-token-group-interface", "spl-token-metadata-interface", "spl-type-length-value", - "thiserror 2.0.12", + "thiserror 2.0.17", ] [[package]] @@ -3477,7 +5188,7 @@ checksum = "7a22217af69b7a61ca813f47c018afb0b00b02a74a4c70ff099cd4287740bc3d" dependencies = [ "bytemuck", "solana-account-info 3.0.0", - "solana-curve25519", + "solana-curve25519 2.3.12", "solana-instruction 3.0.0", "solana-instructions-sysvar 3.0.0", "solana-msg 3.0.0", @@ -3486,7 +5197,7 @@ dependencies = [ "solana-sdk-ids 3.0.0", "solana-zk-sdk", "spl-pod", - "thiserror 2.0.12", + "thiserror 2.0.17", ] [[package]] @@ -3495,9 +5206,9 @@ version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f63a2b41095945dc15274b924b21ccae9b3ec9dc2fdd43dbc08de8c33bbcd915" dependencies = [ - "curve25519-dalek", + "curve25519-dalek 4.1.3", "solana-zk-sdk", - "thiserror 2.0.12", + "thiserror 2.0.17", ] [[package]] @@ -3515,7 +5226,7 @@ dependencies = [ "solana-pubkey 3.0.0", "spl-discriminator", "spl-pod", - "thiserror 2.0.12", + "thiserror 2.0.17", ] [[package]] @@ -3535,7 +5246,7 @@ dependencies = [ "solana-program-pack 3.0.0", "solana-pubkey 3.0.0", "solana-sdk-ids 3.0.0", - "thiserror 2.0.12", + "thiserror 2.0.17", ] [[package]] @@ -3554,7 +5265,7 @@ dependencies = [ "spl-discriminator", "spl-pod", "spl-type-length-value", - "thiserror 2.0.12", + "thiserror 2.0.17", ] [[package]] @@ -3572,9 +5283,15 @@ dependencies = [ "solana-program-error 3.0.0", "spl-discriminator", "spl-pod", - "thiserror 2.0.12", + "thiserror 2.0.17", ] +[[package]] +name = "strsim" +version = "0.11.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7da8b5736845d9f2fcb837ea5d9e2628564b3b043a70948a3f0b778838c5fb4f" + [[package]] name = "subtle" version = "2.6.1" @@ -3614,11 +5331,11 @@ dependencies = [ [[package]] name = "thiserror" -version = "2.0.12" +version = "2.0.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "567b8a2dae586314f7be2a752ec7474332959c6460e02bde30d702a66d488708" +checksum = "f63587ca0f12b72a0600bcba1d40081f830876000bb46dd2337a3051618f4fc8" dependencies = [ - "thiserror-impl 2.0.12", + "thiserror-impl 2.0.17", ] [[package]] @@ -3634,9 +5351,9 @@ dependencies = [ [[package]] name = "thiserror-impl" -version = "2.0.12" +version = "2.0.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7f7cf42b4507d8ea322120659672cf1b9dbb93f8f2d4ecfd6e51350ff5b17a1d" +checksum = "3ff15c8ecd7de3849db632e14d18d2571fa09dfc5ed93479bc4485c7a517c913" dependencies = [ "proc-macro2", "quote", @@ -3810,6 +5527,15 @@ dependencies = [ "subtle", ] +[[package]] +name = "unreachable" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "382810877fe448991dfc7f0dd6e3ae5d58088fd0ea5e35189655f84e6814fa56" +dependencies = [ + "void", +] + [[package]] name = "uriparse" version = "0.6.4" @@ -3820,12 +5546,24 @@ dependencies = [ "lazy_static", ] +[[package]] +name = "vcpkg" +version = "0.2.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "accd4ea62f7bb7a82fe23066fb0957d48ef677f6eeb8215f372f52e48bb32426" + [[package]] name = "version_check" version = "0.9.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0b928f33d975fc6ad9f86c8f283853ad26bdd5b10b7f1542aa2fa15e2289105a" +[[package]] +name = "void" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6a02e4885ed3bc0f2de90ea6dd45ebcbb66dacffe03547fadbb0eeae2770887d" + [[package]] name = "wasi" version = "0.9.0+wasi-snapshot-preview1" @@ -3838,6 +5576,15 @@ version = "0.11.0+wasi-snapshot-preview1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" +[[package]] +name = "wasip2" +version = "1.0.1+wasi-0.2.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0562428422c63773dad2c345a1882263bbf4d65cf3f42e90921f787ef5ad58e7" +dependencies = [ + "wit-bindgen", +] + [[package]] name = "wasm-bindgen" version = "0.2.104" @@ -3907,6 +5654,28 @@ dependencies = [ "wasm-bindgen", ] +[[package]] +name = "winapi" +version = "0.3.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419" +dependencies = [ + "winapi-i686-pc-windows-gnu", + "winapi-x86_64-pc-windows-gnu", +] + +[[package]] +name = "winapi-i686-pc-windows-gnu" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" + +[[package]] +name = "winapi-x86_64-pc-windows-gnu" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" + [[package]] name = "windows-targets" version = "0.52.6" @@ -3980,6 +5749,12 @@ dependencies = [ "memchr", ] +[[package]] +name = "wit-bindgen" +version = "0.46.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f17a85883d4e6d00e8a97c586de764dabcc06133f7f1d55dce5cdc070ad7fe59" + [[package]] name = "zerocopy" version = "0.8.27" diff --git a/basics/account-data/native/program/Cargo.toml b/basics/account-data/native/program/Cargo.toml index f386a015..4fd6260a 100644 --- a/basics/account-data/native/program/Cargo.toml +++ b/basics/account-data/native/program/Cargo.toml @@ -19,3 +19,7 @@ custom-panic = [] [lints.rust] unexpected_cfgs = { level = "warn", check-cfg = ['cfg(target_os, values("solana"))'] } + +[dev-dependencies] +litesvm = "0.8.1" +solana-sdk = "3.0.0" diff --git a/basics/account-data/native/program/tests/tests.rs b/basics/account-data/native/program/tests/tests.rs new file mode 100644 index 00000000..ecaf88fe --- /dev/null +++ b/basics/account-data/native/program/tests/tests.rs @@ -0,0 +1,67 @@ +use account_data_native_program::state::AddressInfo; +use borsh::BorshDeserialize; +use litesvm::LiteSVM; +use solana_sdk::{ + message::{AccountMeta, Instruction}, + native_token::LAMPORTS_PER_SOL, + pubkey::Pubkey, + signature::Keypair, + signer::Signer, + transaction::Transaction, +}; + +#[test] +fn test_account_data() { + let mut svm = LiteSVM::new(); + + let address_info_account = Keypair::new(); + let payer = Keypair::new(); + let program_id = Pubkey::new_unique(); + + svm.airdrop(&payer.pubkey(), LAMPORTS_PER_SOL * 10).unwrap(); + + let program_bytes = + include_bytes!("../../../../../target/deploy/account_data_native_program.so"); + + svm.add_program(program_id, program_bytes).unwrap(); + + let accounts = vec![ + AccountMeta::new(address_info_account.pubkey(), true), + AccountMeta::new(payer.pubkey(), true), + AccountMeta::new(solana_system_interface::program::ID, false), + ]; + + let data = AddressInfo::new( + "Joe C".to_string(), + 136, + "Mile High Dr.".to_string(), + "Solana Beach".to_string(), + ); + + let ix = Instruction { + program_id, + accounts, + data: borsh::to_vec(&data).unwrap(), + }; + + let tx = Transaction::new_signed_with_payer( + &[ix], + Some(&payer.pubkey()), + &[&payer, &address_info_account], + svm.latest_blockhash(), + ); + + svm.send_transaction(tx).unwrap(); + + let address_info_account_data = &svm + .get_account(&address_info_account.pubkey()) + .unwrap() + .data; + + let serialized_data = AddressInfo::try_from_slice(address_info_account_data).unwrap(); + + assert_eq!(serialized_data.name, data.name); + assert_eq!(serialized_data.house_number, data.house_number); + assert_eq!(serialized_data.street, data.street); + assert_eq!(serialized_data.city, data.city); +} diff --git a/basics/account-data/native/tests/test.ts b/basics/account-data/native/tests/test.ts index 48ebcf54..a75f56ad 100644 --- a/basics/account-data/native/tests/test.ts +++ b/basics/account-data/native/tests/test.ts @@ -1,103 +1,103 @@ import { Buffer } from "node:buffer"; import { describe, test } from "node:test"; import { - Keypair, - PublicKey, - SystemProgram, - Transaction, - TransactionInstruction, + Keypair, + PublicKey, + SystemProgram, + Transaction, + TransactionInstruction, } from "@solana/web3.js"; import * as borsh from "borsh"; import { start } from "solana-bankrun"; class Assignable { - constructor(properties) { - for (const [key, value] of Object.entries(properties)) { - this[key] = value; - } - } + constructor(properties) { + for (const [key, value] of Object.entries(properties)) { + this[key] = value; + } + } } class AddressInfo extends Assignable { - street: string; - city: string; - name: string; - house_number: number; - toBuffer() { - return Buffer.from(borsh.serialize(AddressInfoSchema, this)); - } + street: string; + city: string; + name: string; + house_number: number; + toBuffer() { + return Buffer.from(borsh.serialize(AddressInfoSchema, this)); + } - static fromBuffer(buffer: Buffer) { - return borsh.deserialize(AddressInfoSchema, AddressInfo, buffer); - } + static fromBuffer(buffer: Buffer) { + return borsh.deserialize(AddressInfoSchema, AddressInfo, buffer); + } } const AddressInfoSchema = new Map([ - [ - AddressInfo, - { - kind: "struct", - fields: [ - ["name", "string"], - ["house_number", "u8"], - ["street", "string"], - ["city", "string"], - ], - }, - ], + [ + AddressInfo, + { + kind: "struct", + fields: [ + ["name", "string"], + ["house_number", "u8"], + ["street", "string"], + ["city", "string"], + ], + }, + ], ]); describe("Account Data!", async () => { - const addressInfoAccount = Keypair.generate(); - const PROGRAM_ID = PublicKey.unique(); - const context = await start( - [{ name: "account_data_native_program", programId: PROGRAM_ID }], - [], - ); - const client = context.banksClient; + const addressInfoAccount = Keypair.generate(); + const PROGRAM_ID = PublicKey.unique(); + const context = await start( + [{ name: "account_data_native_program", programId: PROGRAM_ID }], + [], + ); + const client = context.banksClient; - test("Create the address info account", async () => { - const payer = context.payer; + test("Create the address info account", async () => { + const payer = context.payer; - console.log(`Program Address : ${PROGRAM_ID}`); - console.log(`Payer Address : ${payer.publicKey}`); - console.log(`Address Info Acct : ${addressInfoAccount.publicKey}`); + console.log(`Program Address : ${PROGRAM_ID}`); + console.log(`Payer Address : ${payer.publicKey}`); + console.log(`Address Info Acct : ${addressInfoAccount.publicKey}`); - const ix = new TransactionInstruction({ - keys: [ - { - pubkey: addressInfoAccount.publicKey, - isSigner: true, - isWritable: true, - }, - { pubkey: payer.publicKey, isSigner: true, isWritable: true }, - { pubkey: SystemProgram.programId, isSigner: false, isWritable: false }, - ], - programId: PROGRAM_ID, - data: new AddressInfo({ - name: "Joe C", - house_number: 136, - street: "Mile High Dr.", - city: "Solana Beach", - }).toBuffer(), - }); + const ix = new TransactionInstruction({ + keys: [ + { + pubkey: addressInfoAccount.publicKey, + isSigner: true, + isWritable: true, + }, + { pubkey: payer.publicKey, isSigner: true, isWritable: true }, + { pubkey: SystemProgram.programId, isSigner: false, isWritable: false }, + ], + programId: PROGRAM_ID, + data: new AddressInfo({ + name: "Joe C", + house_number: 136, + street: "Mile High Dr.", + city: "Solana Beach", + }).toBuffer(), + }); - const blockhash = context.lastBlockhash; + const blockhash = context.lastBlockhash; - const tx = new Transaction(); - tx.recentBlockhash = blockhash; - tx.add(ix).sign(payer, addressInfoAccount); - await client.processTransaction(tx); - }); + const tx = new Transaction(); + tx.recentBlockhash = blockhash; + tx.add(ix).sign(payer, addressInfoAccount); + await client.processTransaction(tx); + }); - test("Read the new account's data", async () => { - const accountInfo = await client.getAccount(addressInfoAccount.publicKey); + test("Read the new account's data", async () => { + const accountInfo = await client.getAccount(addressInfoAccount.publicKey); - const readAddressInfo = AddressInfo.fromBuffer( - Buffer.from(accountInfo.data), - ); - console.log(`Name : ${readAddressInfo.name}`); - console.log(`House Num: ${readAddressInfo.house_number}`); - console.log(`Street : ${readAddressInfo.street}`); - console.log(`City : ${readAddressInfo.city}`); - }); + const readAddressInfo = AddressInfo.fromBuffer( + Buffer.from(accountInfo.data), + ); + console.log(`Name : ${readAddressInfo.name}`); + console.log(`House Num: ${readAddressInfo.house_number}`); + console.log(`Street : ${readAddressInfo.street}`); + console.log(`City : ${readAddressInfo.city}`); + }); }); From 39f77752b8b6bedc63c476a490a578cf8cc09f16 Mon Sep 17 00:00:00 2001 From: Perelyn <64838956+Perelyn-sama@users.noreply.github.com> Date: Fri, 24 Oct 2025 03:06:36 +0100 Subject: [PATCH 2/3] revert test.ts format --- basics/account-data/native/tests/test.ts | 157 ++++++++++++----------- 1 file changed, 79 insertions(+), 78 deletions(-) diff --git a/basics/account-data/native/tests/test.ts b/basics/account-data/native/tests/test.ts index a75f56ad..22b48f99 100644 --- a/basics/account-data/native/tests/test.ts +++ b/basics/account-data/native/tests/test.ts @@ -1,103 +1,104 @@ import { Buffer } from "node:buffer"; import { describe, test } from "node:test"; import { - Keypair, - PublicKey, - SystemProgram, - Transaction, - TransactionInstruction, + Keypair, + PublicKey, + SystemProgram, + Transaction, + TransactionInstruction, } from "@solana/web3.js"; import * as borsh from "borsh"; import { start } from "solana-bankrun"; class Assignable { - constructor(properties) { - for (const [key, value] of Object.entries(properties)) { - this[key] = value; - } - } + constructor(properties) { + for (const [key, value] of Object.entries(properties)) { + this[key] = value; + } + } } class AddressInfo extends Assignable { - street: string; - city: string; - name: string; - house_number: number; - toBuffer() { - return Buffer.from(borsh.serialize(AddressInfoSchema, this)); - } + street: string; + city: string; + name: string; + house_number: number; + toBuffer() { + return Buffer.from(borsh.serialize(AddressInfoSchema, this)); + } - static fromBuffer(buffer: Buffer) { - return borsh.deserialize(AddressInfoSchema, AddressInfo, buffer); - } + static fromBuffer(buffer: Buffer) { + return borsh.deserialize(AddressInfoSchema, AddressInfo, buffer); + } } const AddressInfoSchema = new Map([ - [ - AddressInfo, - { - kind: "struct", - fields: [ - ["name", "string"], - ["house_number", "u8"], - ["street", "string"], - ["city", "string"], - ], - }, - ], + [ + AddressInfo, + { + kind: "struct", + fields: [ + ["name", "string"], + ["house_number", "u8"], + ["street", "string"], + ["city", "string"], + ], + }, + ], ]); describe("Account Data!", async () => { - const addressInfoAccount = Keypair.generate(); - const PROGRAM_ID = PublicKey.unique(); - const context = await start( - [{ name: "account_data_native_program", programId: PROGRAM_ID }], - [], - ); - const client = context.banksClient; + const addressInfoAccount = Keypair.generate(); + const PROGRAM_ID = PublicKey.unique(); + const context = await start( + [{ name: "account_data_native_program", programId: PROGRAM_ID }], + [], + ); + const client = context.banksClient; - test("Create the address info account", async () => { - const payer = context.payer; + test("Create the address info account", async () => { + const payer = context.payer; - console.log(`Program Address : ${PROGRAM_ID}`); - console.log(`Payer Address : ${payer.publicKey}`); - console.log(`Address Info Acct : ${addressInfoAccount.publicKey}`); + console.log(`Program Address : ${PROGRAM_ID}`); + console.log(`Payer Address : ${payer.publicKey}`); + console.log(`Address Info Acct : ${addressInfoAccount.publicKey}`); - const ix = new TransactionInstruction({ - keys: [ - { - pubkey: addressInfoAccount.publicKey, - isSigner: true, - isWritable: true, - }, - { pubkey: payer.publicKey, isSigner: true, isWritable: true }, - { pubkey: SystemProgram.programId, isSigner: false, isWritable: false }, - ], - programId: PROGRAM_ID, - data: new AddressInfo({ - name: "Joe C", - house_number: 136, - street: "Mile High Dr.", - city: "Solana Beach", - }).toBuffer(), - }); + const ix = new TransactionInstruction({ + keys: [ + { + pubkey: addressInfoAccount.publicKey, + isSigner: true, + isWritable: true, + }, + { pubkey: payer.publicKey, isSigner: true, isWritable: true }, + { pubkey: SystemProgram.programId, isSigner: false, isWritable: false }, + ], + programId: PROGRAM_ID, + data: new AddressInfo({ + name: "Joe C", + house_number: 136, + street: "Mile High Dr.", + city: "Solana Beach", + }).toBuffer(), + }); - const blockhash = context.lastBlockhash; + const blockhash = context.lastBlockhash; - const tx = new Transaction(); - tx.recentBlockhash = blockhash; - tx.add(ix).sign(payer, addressInfoAccount); - await client.processTransaction(tx); - }); + const tx = new Transaction(); + tx.recentBlockhash = blockhash; + tx.add(ix).sign(payer, addressInfoAccount); + await client.processTransaction(tx); + }); - test("Read the new account's data", async () => { - const accountInfo = await client.getAccount(addressInfoAccount.publicKey); + test("Read the new account's data", async () => { + const accountInfo = await client.getAccount(addressInfoAccount.publicKey); - const readAddressInfo = AddressInfo.fromBuffer( - Buffer.from(accountInfo.data), - ); - console.log(`Name : ${readAddressInfo.name}`); - console.log(`House Num: ${readAddressInfo.house_number}`); - console.log(`Street : ${readAddressInfo.street}`); - console.log(`City : ${readAddressInfo.city}`); - }); + const readAddressInfo = AddressInfo.fromBuffer( + Buffer.from(accountInfo.data), + ); + console.log(`Name : ${readAddressInfo.name}`); + console.log(`House Num: ${readAddressInfo.house_number}`); + console.log(`Street : ${readAddressInfo.street}`); + console.log(`City : ${readAddressInfo.city}`); + }); }); + From 7f2a885f83bf9fcb79b51f177d498da04f007461 Mon Sep 17 00:00:00 2001 From: Perelyn <64838956+Perelyn-sama@users.noreply.github.com> Date: Fri, 24 Oct 2025 03:15:59 +0100 Subject: [PATCH 3/3] reduce deps --- Cargo.lock | 138 +----------------- basics/account-data/native/program/Cargo.toml | 8 +- .../native/program/tests/tests.rs | 15 +- 3 files changed, 19 insertions(+), 142 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 16e9a24a..f4696c4a 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -16,9 +16,14 @@ dependencies = [ "borsh 1.5.7", "borsh-derive 1.5.7", "litesvm", + "solana-keypair", + "solana-message 3.0.1", + "solana-native-token 3.0.0", "solana-program 3.0.0", - "solana-sdk", + "solana-pubkey 3.0.0", + "solana-signer", "solana-system-interface 2.0.0", + "solana-transaction", ] [[package]] @@ -1217,18 +1222,6 @@ dependencies = [ "zeroize", ] -[[package]] -name = "ed25519-dalek-bip32" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6b49a684b133c4980d7ee783936af771516011c8cd15f429dbda77245e282f03" -dependencies = [ - "derivation-path", - "ed25519-dalek 2.2.0", - "hmac 0.12.1", - "sha2 0.10.9", -] - [[package]] name = "either" version = "1.15.0" @@ -2598,12 +2591,6 @@ dependencies = [ "rand_core 0.6.4", ] -[[package]] -name = "siphasher" -version = "0.3.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "38b58827f4464d87d377d175e90bf58eb00fd8716ff0a62f80356b5e61555d0d" - [[package]] name = "smallvec" version = "1.15.0" @@ -2679,7 +2666,6 @@ dependencies = [ "curve25519-dalek 4.1.3", "five8", "five8_const", - "rand 0.8.5", "serde", "serde_derive", "solana-atomic-u64 3.0.0", @@ -3115,16 +3101,6 @@ dependencies = [ "solana-sdk-ids 3.0.0", ] -[[package]] -name = "solana-epoch-info" -version = "3.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f8a6b69bd71386f61344f2bcf0f527f5fd6dd3b22add5880e2e1bf1dd1fa8059" -dependencies = [ - "serde", - "serde_derive", -] - [[package]] name = "solana-epoch-rewards" version = "2.2.1" @@ -3153,17 +3129,6 @@ dependencies = [ "solana-sysvar-id 3.0.0", ] -[[package]] -name = "solana-epoch-rewards-hasher" -version = "3.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e507099d0c2c5d7870c9b1848281ea67bbeee80d171ca85003ee5767994c9c38" -dependencies = [ - "siphasher", - "solana-hash 3.0.0", - "solana-pubkey 3.0.0", -] - [[package]] name = "solana-epoch-schedule" version = "2.2.1" @@ -3299,10 +3264,6 @@ name = "solana-fee-structure" version = "3.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5e2abdb1223eea8ec64136f39cb1ffcf257e00f915c957c35c0dd9e3f4e700b0" -dependencies = [ - "serde", - "serde_derive", -] [[package]] name = "solana-genesis-config" @@ -3376,10 +3337,6 @@ name = "solana-inflation" version = "3.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e92f37a14e7c660628752833250dd3dcd8e95309876aee751d7f8769a27947c6" -dependencies = [ - "serde", - "serde_derive", -] [[package]] name = "solana-instruction" @@ -3421,8 +3378,6 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b1f0d483b8ae387178d9210e0575b666b05cdd4bd0f2f188128249f6e454d39d" dependencies = [ "num-traits", - "serde", - "serde_derive", "solana-program-error 3.0.0", ] @@ -3504,12 +3459,9 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "952ed9074c12edd2060cb09c2a8c664303f4ab7f7056a407ac37dd1da7bdaa3e" dependencies = [ "ed25519-dalek 2.2.0", - "ed25519-dalek-bip32", "five8", "rand 0.8.5", - "solana-derivation-path", "solana-pubkey 3.0.0", - "solana-seed-derivable", "solana-seed-phrase", "solana-signature", "solana-signer", @@ -3767,22 +3719,6 @@ dependencies = [ "solana-sdk-ids 3.0.0", ] -[[package]] -name = "solana-offchain-message" -version = "3.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f6e2a1141a673f72a05cf406b99e4b2b8a457792b7c01afa07b3f00d4e2de393" -dependencies = [ - "num_enum", - "solana-hash 3.0.0", - "solana-packet", - "solana-pubkey 3.0.0", - "solana-sanitize 3.0.1", - "solana-sha256-hasher 3.0.0", - "solana-signature", - "solana-signer", -] - [[package]] name = "solana-packet" version = "3.0.0" @@ -3819,17 +3755,6 @@ dependencies = [ "num-traits", ] -[[package]] -name = "solana-presigner" -version = "3.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0f704eaf825be3180832445b9e4983b875340696e8e7239bf2d535b0f86c14a2" -dependencies = [ - "solana-pubkey 3.0.0", - "solana-signature", - "solana-signer", -] - [[package]] name = "solana-program" version = "2.3.0" @@ -4130,7 +4055,6 @@ version = "3.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8909d399deb0851aa524420beeb5646b115fd253ef446e35fe4504c904da3941" dependencies = [ - "rand 0.8.5", "solana-address", ] @@ -4189,44 +4113,6 @@ dependencies = [ "winapi", ] -[[package]] -name = "solana-sdk" -version = "3.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3f03df7969f5e723ad31b6c9eadccc209037ac4caa34d8dc259316b05c11e82b" -dependencies = [ - "bincode", - "bs58", - "serde", - "solana-account 3.1.0", - "solana-epoch-info", - "solana-epoch-rewards-hasher", - "solana-fee-structure", - "solana-inflation", - "solana-keypair", - "solana-message 3.0.1", - "solana-offchain-message", - "solana-presigner", - "solana-program 3.0.0", - "solana-program-memory 3.0.0", - "solana-pubkey 3.0.0", - "solana-sanitize 3.0.1", - "solana-sdk-ids 3.0.0", - "solana-sdk-macro 3.0.0", - "solana-seed-derivable", - "solana-seed-phrase", - "solana-serde", - "solana-serde-varint 3.0.0", - "solana-short-vec 3.0.0", - "solana-shred-version", - "solana-signature", - "solana-signer", - "solana-time-utils", - "solana-transaction", - "solana-transaction-error 3.0.0", - "thiserror 2.0.17", -] - [[package]] name = "solana-sdk-ids" version = "2.2.1" @@ -4337,15 +4223,6 @@ dependencies = [ "sha2 0.10.9", ] -[[package]] -name = "solana-serde" -version = "3.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "709a93cab694c70f40b279d497639788fc2ccbcf9b4aa32273d4b361322c02dd" -dependencies = [ - "serde", -] - [[package]] name = "solana-serde-varint" version = "2.2.2" @@ -4445,7 +4322,6 @@ checksum = "4bb8057cc0e9f7b5e89883d49de6f407df655bb6f3a71d0b7baf9986a2218fd9" dependencies = [ "ed25519-dalek 2.2.0", "five8", - "rand 0.8.5", "serde", "serde-big-array", "serde_derive", @@ -4882,8 +4758,6 @@ version = "3.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4222065402340d7e6aec9dc3e54d22992ddcf923d91edcd815443c2bfca3144a" dependencies = [ - "serde", - "serde_derive", "solana-instruction-error", "solana-sanitize 3.0.1", ] diff --git a/basics/account-data/native/program/Cargo.toml b/basics/account-data/native/program/Cargo.toml index 4fd6260a..968f41b7 100644 --- a/basics/account-data/native/program/Cargo.toml +++ b/basics/account-data/native/program/Cargo.toml @@ -13,7 +13,6 @@ solana-system-interface.workspace = true crate-type = ["cdylib", "lib"] [features] -anchor-debug = [] custom-heap = [] custom-panic = [] @@ -22,4 +21,9 @@ unexpected_cfgs = { level = "warn", check-cfg = ['cfg(target_os, values("solana" [dev-dependencies] litesvm = "0.8.1" -solana-sdk = "3.0.0" +solana-keypair = "3.0.1" +solana-message = "3.0.1" +solana-native-token = "3.0.0" +solana-pubkey = "3.0.0" +solana-signer = "3.0.0" +solana-transaction = "3.0.1" diff --git a/basics/account-data/native/program/tests/tests.rs b/basics/account-data/native/program/tests/tests.rs index ecaf88fe..540d8eb9 100644 --- a/basics/account-data/native/program/tests/tests.rs +++ b/basics/account-data/native/program/tests/tests.rs @@ -1,14 +1,13 @@ use account_data_native_program::state::AddressInfo; use borsh::BorshDeserialize; use litesvm::LiteSVM; -use solana_sdk::{ - message::{AccountMeta, Instruction}, - native_token::LAMPORTS_PER_SOL, - pubkey::Pubkey, - signature::Keypair, - signer::Signer, - transaction::Transaction, -}; + +use solana_keypair::Keypair; +use solana_message::{AccountMeta, Instruction}; +use solana_native_token::LAMPORTS_PER_SOL; +use solana_pubkey::Pubkey; +use solana_signer::Signer; +use solana_transaction::Transaction; #[test] fn test_account_data() {