diff --git a/Cargo.lock b/Cargo.lock index e462488b6d..e232d96bbd 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -35,7 +35,7 @@ dependencies = [ "rand 0.8.5", "solana-sdk", "solana-security-txt", - "zerocopy 0.8.25", + "zerocopy", ] [[package]] @@ -124,15 +124,15 @@ dependencies = [ [[package]] name = "ahash" -version = "0.8.11" +version = "0.8.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e89da841a80418a9b391ebaea17f5c112ffaaa96f621d2c285b5174da76b9011" +checksum = "5a15f179cd60c4584b8a8c596927aadc462e27f2ca70c04e0071964a73ba7a75" dependencies = [ "cfg-if", - "getrandom 0.2.15", + "getrandom 0.3.3", "once_cell", "version_check", - "zerocopy 0.7.35", + "zerocopy", ] [[package]] @@ -150,7 +150,7 @@ version = "1.1.0" dependencies = [ "proc-macro2", "quote", - "syn 2.0.100", + "syn 2.0.101", ] [[package]] @@ -321,7 +321,7 @@ dependencies = [ "regex", "serde", "serde_json", - "sha2 0.10.8", + "sha2 0.10.9", ] [[package]] @@ -363,7 +363,7 @@ dependencies = [ "quote", "serde", "serde_json", - "sha2 0.10.8", + "sha2 0.10.9", "syn 1.0.109", "thiserror 1.0.69", ] @@ -394,9 +394,9 @@ dependencies = [ [[package]] name = "anstream" -version = "0.6.18" +version = "0.6.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8acc5369981196006228e28809f761875c0327210a891e941f4c683b3a99529b" +checksum = "301af1932e46185686725e0fad2f8f2aa7da69dd70bf6ecc44d6b703844a3933" dependencies = [ "anstyle", "anstyle-parse", @@ -409,36 +409,36 @@ dependencies = [ [[package]] name = "anstyle" -version = "1.0.10" +version = "1.0.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "55cc3b69f167a1ef2e161439aa98aed94e6028e5f9a59be9a6ffb47aef1651f9" +checksum = "862ed96ca487e809f1c8e5a8447f6ee2cf102f846893800b20cebdf541fc6bbd" [[package]] name = "anstyle-parse" -version = "0.2.6" +version = "0.2.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3b2d16507662817a6a20a9ea92df6652ee4f94f914589377d69f3b21bc5798a9" +checksum = "4e7644824f0aa2c7b9384579234ef10eb7efb6a0deb83f9630a49594dd9c15c2" dependencies = [ "utf8parse", ] [[package]] name = "anstyle-query" -version = "1.1.2" +version = "1.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "79947af37f4177cfead1110013d678905c37501914fba0efea834c3fe9a8d60c" +checksum = "6c8bdeb6047d8983be085bab0ba1472e6dc604e7041dbf6fcd5e71523014fae9" dependencies = [ "windows-sys 0.59.0", ] [[package]] name = "anstyle-wincon" -version = "3.0.7" +version = "3.0.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ca3534e77181a9cc07539ad51f2141fe32f6c3ffd4df76db8ad92346b003ae4e" +checksum = "403f75924867bb1033c59fbf0797484329750cfbe3c4325cd33127941fabc882" dependencies = [ "anstyle", - "once_cell", + "once_cell_polyfill", "windows-sys 0.59.0", ] @@ -500,7 +500,7 @@ dependencies = [ "ark-std 0.5.0", "educe 0.6.0", "fnv", - "hashbrown 0.15.2", + "hashbrown 0.15.3", "itertools 0.13.0", "num-bigint 0.4.6", "num-integer", @@ -565,7 +565,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "62945a2f7e6de02a31fe400aa489f0e0f5b2502e69f95f853adb82a96c7a6b60" dependencies = [ "quote", - "syn 2.0.100", + "syn 2.0.101", ] [[package]] @@ -591,7 +591,7 @@ dependencies = [ "num-traits", "proc-macro2", "quote", - "syn 2.0.100", + "syn 2.0.101", ] [[package]] @@ -619,7 +619,7 @@ dependencies = [ "ark-std 0.5.0", "educe 0.6.0", "fnv", - "hashbrown 0.15.2", + "hashbrown 0.15.3", ] [[package]] @@ -666,7 +666,7 @@ checksum = "213888f660fddcca0d257e88e54ac05bca01885f258ccdf695bafd77031bb69d" dependencies = [ "proc-macro2", "quote", - "syn 2.0.100", + "syn 2.0.101", ] [[package]] @@ -760,9 +760,9 @@ dependencies = [ [[package]] name = "async-compression" -version = "0.4.22" +version = "0.4.23" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "59a194f9d963d8099596278594b3107448656ba73831c9d8c783e613ce86da64" +checksum = "b37fc50485c4f3f736a4fb14199f6d5f5ba008d7f28fe710306c92780f004c07" dependencies = [ "brotli", "flate2", @@ -791,7 +791,7 @@ checksum = "e539d3fca749fcee5236ab05e93a52867dd549cc157c8cb7f99595f3cedffdb5" dependencies = [ "proc-macro2", "quote", - "syn 2.0.100", + "syn 2.0.101", ] [[package]] @@ -819,9 +819,9 @@ checksum = "ace50bade8e6234aa140d9a2f552bbee1db4d353f69b8217bc503490fc1a9f26" [[package]] name = "backtrace" -version = "0.3.74" +version = "0.3.75" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8d82cb332cdfaed17ae235a638438ac4d4839913cc2af585c3c6746e8f8bee1a" +checksum = "6806a6321ec58106fea15becdad98371e28d92ccbc7c8f1b3b6dd724fe8f1002" dependencies = [ "addr2line", "cfg-if", @@ -885,9 +885,9 @@ checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" [[package]] name = "bitflags" -version = "2.9.0" +version = "2.9.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5c8214115b7bf84099f1309324e63141d4c5d7cc26862f97a0a857dbefe165bd" +checksum = "1b8e56985ec62d17e9c1001dc89c88ecd7dc08e47eba5ec7c29c7b5eeecde967" dependencies = [ "serde", ] @@ -906,9 +906,9 @@ dependencies = [ [[package]] name = "blake3" -version = "1.8.1" +version = "1.8.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "389a099b34312839e16420d499a9cad9650541715937ffbdd40d36f49e77eeb3" +checksum = "3888aaa89e4b2a40fca9848e400f6a658a5a3978de7be858e209cafa8be9a4a0" dependencies = [ "arrayref", "arrayvec", @@ -979,7 +979,7 @@ dependencies = [ "proc-macro-crate 3.3.0", "proc-macro2", "quote", - "syn 2.0.100", + "syn 2.0.101", ] [[package]] @@ -1006,9 +1006,9 @@ dependencies = [ [[package]] name = "brotli" -version = "7.0.0" +version = "8.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cc97b8f16f944bba54f0433f07e30be199b6dc2bd25937444bbad560bcea29bd" +checksum = "9991eea70ea4f293524138648e41ee89b0b2b12ddef3b255effa43c8056e0e0d" dependencies = [ "alloc-no-stdlib", "alloc-stdlib", @@ -1017,9 +1017,9 @@ dependencies = [ [[package]] name = "brotli-decompressor" -version = "4.0.3" +version = "5.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a334ef7c9e23abf0ce748e8cd309037da93e606ad52eb372e4ce327a0dcfbdfd" +checksum = "874bb8112abecc98cbd6d81ea4fa7e94fb9449648c93cc89aa40c81c24d7de03" dependencies = [ "alloc-no-stdlib", "alloc-stdlib", @@ -1036,9 +1036,9 @@ dependencies = [ [[package]] name = "bumpalo" -version = "3.17.0" +version = "3.18.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1628fb46dfa0b37568d12e5edd512553eccf6a22a78e8bde00bb4aed84d5bdbf" +checksum = "793db76d6187cd04dff33004d8e6c9cc4e05cd330500379d2394209271b4aeee" [[package]] name = "bv" @@ -1052,15 +1052,15 @@ dependencies = [ [[package]] name = "bytecount" -version = "0.6.8" +version = "0.6.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5ce89b21cab1437276d2650d57e971f9d548a2d9037cc231abdc0562b97498ce" +checksum = "175812e0be2bccb6abe50bb8d566126198344f707e304f45c648fd8f2cc0365e" [[package]] name = "bytemuck" -version = "1.22.0" +version = "1.23.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b6b1fc10dbac614ebc03540c9dbd60e83887fda27794998c6528f1782047d540" +checksum = "9134a6ef01ce4b366b50689c94f82c14bc72bc5d0386829828a2e2752ef7958c" dependencies = [ "bytemuck_derive", ] @@ -1073,7 +1073,7 @@ checksum = "7ecc273b49b3205b83d648f0690daa588925572cc5063745bfe547fe7ec8e1a1" dependencies = [ "proc-macro2", "quote", - "syn 2.0.100", + "syn 2.0.101", ] [[package]] @@ -1105,14 +1105,14 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a98356df42a2eb1bd8f1793ae4ee4de48e384dd974ce5eac8eee802edb7492be" dependencies = [ "serde", - "toml 0.8.20", + "toml 0.8.23", ] [[package]] name = "cc" -version = "1.2.19" +version = "1.2.26" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8e3a13707ac958681c13b39b458c073d0d9bc8a22cb1b2f4c8e55eb72c13f362" +checksum = "956a5e21988b87f372569b66183b78babf23ebc2e744b733e4350a752c4dafac" dependencies = [ "jobserver", "libc", @@ -1145,14 +1145,14 @@ checksum = "45565fc9416b9896014f5732ac776f810ee53a66730c17e4020c3ec064a8f88f" dependencies = [ "proc-macro2", "quote", - "syn 2.0.100", + "syn 2.0.101", ] [[package]] name = "chrono" -version = "0.4.40" +version = "0.4.41" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1a7964611d71df112cb1730f2ee67324fcf4d0fc6606acbbe9bfe06df124637c" +checksum = "c469d952047f47f91b68d1cba3f10d63c11d73e4636f24f08daf0278abf01c4d" dependencies = [ "android-tzdata", "iana-time-zone", @@ -1190,9 +1190,9 @@ dependencies = [ [[package]] name = "clap" -version = "4.5.37" +version = "4.5.39" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eccb054f56cbd38340b380d4a8e69ef1f02f1af43db2f0cc817a4774d80ae071" +checksum = "fd60e63e9be68e5fb56422e397cf9baddded06dae1d2e523401542383bc72a9f" dependencies = [ "clap_builder", "clap_derive", @@ -1200,9 +1200,9 @@ dependencies = [ [[package]] name = "clap_builder" -version = "4.5.37" +version = "4.5.39" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "efd9466fac8543255d3b1fcad4762c5e116ffe808c8a3043d4263cd4fd4862a2" +checksum = "89cc6392a1f72bbeb820d71f32108f61fdaf18bc526e1d23954168a67759ef51" dependencies = [ "anstream", "anstyle", @@ -1219,7 +1219,7 @@ dependencies = [ "heck 0.5.0", "proc-macro2", "quote", - "syn 2.0.100", + "syn 2.0.101", ] [[package]] @@ -1267,9 +1267,9 @@ dependencies = [ [[package]] name = "colorchoice" -version = "1.0.3" +version = "1.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5b63caa9aa9397e2d9480a9b13673856c78d8ac123288526c37d7839f2a86990" +checksum = "b05b61dc5112cbb17e4b6cd61790d9845d13888356391624cbe7e41efeac1e75" [[package]] name = "combine" @@ -1380,9 +1380,9 @@ dependencies = [ [[package]] name = "core-foundation" -version = "0.10.0" +version = "0.10.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b55271e5c8c478ad3f38ad24ef34923091e0548492a266d19b3c0b4d82574c63" +checksum = "b2a6cd9ae233e7f62ba4e9353e81a88df7fc8a5987b8d445b4d90c879bd156f6" dependencies = [ "core-foundation-sys", "libc", @@ -1547,7 +1547,7 @@ checksum = "f46882e17999c6cc590af592290432be3bce0428cb0d5f8b6715e4dc7b383eb3" dependencies = [ "proc-macro2", "quote", - "syn 2.0.100", + "syn 2.0.101", ] [[package]] @@ -1571,7 +1571,7 @@ dependencies = [ "proc-macro2", "quote", "strsim 0.11.1", - "syn 2.0.100", + "syn 2.0.101", ] [[package]] @@ -1582,7 +1582,7 @@ checksum = "fc34b93ccb385b40dc71c6fceac4b2ad23662c7eeb248cf10d529b7e055b6ead" dependencies = [ "darling_core", "quote", - "syn 2.0.100", + "syn 2.0.101", ] [[package]] @@ -1741,7 +1741,7 @@ checksum = "97369cbbc041bc366949bc74d34658d6cda5621039731c6310521892a3a20ae0" dependencies = [ "proc-macro2", "quote", - "syn 2.0.100", + "syn 2.0.101", ] [[package]] @@ -1764,7 +1764,7 @@ checksum = "a6cbae11b3de8fce2a456e8ea3dada226b35fe791f0dc1d360c0941f0bb681f3" dependencies = [ "proc-macro2", "quote", - "syn 2.0.100", + "syn 2.0.101", ] [[package]] @@ -1826,7 +1826,7 @@ dependencies = [ "derivation-path", "ed25519-dalek", "hmac 0.12.1", - "sha2 0.10.8", + "sha2 0.10.9", ] [[package]] @@ -1850,7 +1850,7 @@ dependencies = [ "enum-ordinalize 4.3.0", "proc-macro2", "quote", - "syn 2.0.100", + "syn 2.0.101", ] [[package]] @@ -1891,7 +1891,7 @@ checksum = "a1ab991c1362ac86c61ab6f556cff143daa22e5a15e4e189df818b2fd19fe65b" dependencies = [ "proc-macro2", "quote", - "syn 2.0.100", + "syn 2.0.101", ] [[package]] @@ -1904,7 +1904,7 @@ dependencies = [ "num-traits", "proc-macro2", "quote", - "syn 2.0.100", + "syn 2.0.101", ] [[package]] @@ -1924,7 +1924,7 @@ checksum = "0d28318a75d4aead5c4db25382e8ef717932d0346600cacae6357eb5941bc5ff" dependencies = [ "proc-macro2", "quote", - "syn 2.0.100", + "syn 2.0.101", ] [[package]] @@ -1971,9 +1971,9 @@ checksum = "877a4ace8713b0bcf2a4e7eec82529c029f1d0619886d18145fea96c3ffe5c0f" [[package]] name = "errno" -version = "0.3.11" +version = "0.3.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "976dd42dc7e85965fe702eb8164f21f450704bdde31faefd6471dba214cb594e" +checksum = "cea14ef9355e3beab063703aa9dab15afd25f0667c341310c1e5274bb1d0da18" dependencies = [ "libc", "windows-sys 0.59.0", @@ -2006,6 +2006,18 @@ dependencies = [ "pin-project-lite", ] +[[package]] +name = "fastbloom" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "27cea6e7f512d43b098939ff4d5a5d6fe3db07971e1d05176fe26c642d33f5b8" +dependencies = [ + "getrandom 0.3.3", + "rand 0.9.1", + "siphasher 1.0.1", + "wide", +] + [[package]] name = "fastmurmur3" version = "0.2.0" @@ -2087,7 +2099,7 @@ dependencies = [ "bb8", "borsh 0.10.4", "bs58", - "clap 4.5.37", + "clap 4.5.39", "create-address-test-program", "dashmap 6.1.0", "dotenvy", @@ -2239,7 +2251,7 @@ checksum = "162ee34ebcb7c64a8abebc059ce0fee27c2262618d7b60ed8faf72fef13c3650" dependencies = [ "proc-macro2", "quote", - "syn 2.0.100", + "syn 2.0.101", ] [[package]] @@ -2313,9 +2325,9 @@ dependencies = [ [[package]] name = "getrandom" -version = "0.2.15" +version = "0.2.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c4567c8db10ae91089c99af84c68c38da3ec2f087c3f82960bcdbf3656b6f4d7" +checksum = "335ff9f135e4384c8150d6f27c6daed433577f86b4750418338c01a1a2528592" dependencies = [ "cfg-if", "js-sys", @@ -2326,9 +2338,9 @@ dependencies = [ [[package]] name = "getrandom" -version = "0.3.2" +version = "0.3.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "73fea8450eea4bac3940448fb7ae50d91f034f941199fcd9d909a5a07aa455f0" +checksum = "26145e563e54f2cadc477553f1ec5ee650b00862f0a58bcd12cbdc5f0ea2d2f4" dependencies = [ "cfg-if", "js-sys", @@ -2375,7 +2387,7 @@ dependencies = [ "futures-sink", "futures-timer", "futures-util", - "getrandom 0.3.2", + "getrandom 0.3.3", "no-std-compat", "nonzero_ext", "parking_lot", @@ -2416,7 +2428,7 @@ dependencies = [ "indexmap 2.9.0", "slab", "tokio", - "tokio-util 0.7.14", + "tokio-util 0.7.15", "tracing", ] @@ -2435,7 +2447,7 @@ dependencies = [ "indexmap 2.9.0", "slab", "tokio", - "tokio-util 0.7.14", + "tokio-util 0.7.15", "tracing", ] @@ -2471,9 +2483,9 @@ checksum = "e5274423e17b7c9fc20b6e7e208532f9b19825d82dfd615708b70edd83df41f1" [[package]] name = "hashbrown" -version = "0.15.2" +version = "0.15.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bf151400ff0baff5465007dd2f3e717f3fe502074ca563069ce3a6629d07b289" +checksum = "84b26c544d002229e640969970a2e74021aadf6e2f96372b9c58eff97de08eb3" dependencies = [ "allocator-api2", ] @@ -2528,9 +2540,9 @@ dependencies = [ [[package]] name = "hermit-abi" -version = "0.3.9" +version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d231dfb89cfffdbc30e7fc41579ed6066ad03abda9e567ccafae602b97ec5024" +checksum = "f154ce46856750ed433c8649605bf7ed2de3bc35fd9d2a9f30cddd873c80cb08" [[package]] name = "hex" @@ -2721,14 +2733,14 @@ dependencies = [ [[package]] name = "hyper-rustls" -version = "0.27.6" +version = "0.27.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "03a01595e11bdcec50946522c32dde3fc6914743000a68b93000965f2f02406d" +checksum = "e3c93eb611681b207e1fe55d5a71ecf91572ec8a6705cdb6857f7d8d5242cf58" dependencies = [ "http 1.3.1", "hyper 1.6.0", "hyper-util", - "rustls 0.23.26", + "rustls 0.23.27", "rustls-pki-types", "tokio", "tokio-rustls 0.26.2", @@ -2767,9 +2779,9 @@ dependencies = [ [[package]] name = "hyper-util" -version = "0.1.13" +version = "0.1.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b1c293b6b3d21eca78250dc7dbebd6b9210ec5530e038cbfe0661b5c47ab06e8" +checksum = "dc2fdfdbff08affe55bb779f33b053aa1fe5dd5b54c257343c17edfa55711bdb" dependencies = [ "base64 0.22.1", "bytes", @@ -2817,21 +2829,22 @@ dependencies = [ [[package]] name = "icu_collections" -version = "1.5.0" +version = "2.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "db2fa452206ebee18c4b5c2274dbf1de17008e874b4dc4f0aea9d01ca79e4526" +checksum = "200072f5d0e3614556f94a9930d5dc3e0662a652823904c3a75dc3b0af7fee47" dependencies = [ "displaydoc", + "potential_utf", "yoke", "zerofrom", "zerovec", ] [[package]] -name = "icu_locid" -version = "1.5.0" +name = "icu_locale_core" +version = "2.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "13acbb8371917fc971be86fc8057c41a64b521c184808a698c02acc242dbf637" +checksum = "0cde2700ccaed3872079a65fb1a78f6c0a36c91570f28755dda67bc8f7d9f00a" dependencies = [ "displaydoc", "litemap", @@ -2840,31 +2853,11 @@ dependencies = [ "zerovec", ] -[[package]] -name = "icu_locid_transform" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "01d11ac35de8e40fdeda00d9e1e9d92525f3f9d887cdd7aa81d727596788b54e" -dependencies = [ - "displaydoc", - "icu_locid", - "icu_locid_transform_data", - "icu_provider", - "tinystr", - "zerovec", -] - -[[package]] -name = "icu_locid_transform_data" -version = "1.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7515e6d781098bf9f7205ab3fc7e9709d34554ae0b21ddbcb5febfa4bc7df11d" - [[package]] name = "icu_normalizer" -version = "1.5.0" +version = "2.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "19ce3e0da2ec68599d193c93d088142efd7f9c5d6fc9b803774855747dc6a84f" +checksum = "436880e8e18df4d7bbc06d58432329d6458cc84531f7ac5f024e93deadb37979" dependencies = [ "displaydoc", "icu_collections", @@ -2872,67 +2865,54 @@ dependencies = [ "icu_properties", "icu_provider", "smallvec", - "utf16_iter", - "utf8_iter", - "write16", "zerovec", ] [[package]] name = "icu_normalizer_data" -version = "1.5.1" +version = "2.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c5e8338228bdc8ab83303f16b797e177953730f601a96c25d10cb3ab0daa0cb7" +checksum = "00210d6893afc98edb752b664b8890f0ef174c8adbb8d0be9710fa66fbbf72d3" [[package]] name = "icu_properties" -version = "1.5.1" +version = "2.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "93d6020766cfc6302c15dbbc9c8778c37e62c14427cb7f6e601d849e092aeef5" +checksum = "016c619c1eeb94efb86809b015c58f479963de65bdb6253345c1a1276f22e32b" dependencies = [ "displaydoc", "icu_collections", - "icu_locid_transform", + "icu_locale_core", "icu_properties_data", "icu_provider", - "tinystr", + "potential_utf", + "zerotrie", "zerovec", ] [[package]] name = "icu_properties_data" -version = "1.5.1" +version = "2.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "85fb8799753b75aee8d2a21d7c14d9f38921b54b3dbda10f5a3c7a7b82dba5e2" +checksum = "298459143998310acd25ffe6810ed544932242d3f07083eee1084d83a71bd632" [[package]] name = "icu_provider" -version = "1.5.0" +version = "2.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6ed421c8a8ef78d3e2dbc98a973be2f3770cb42b606e3ab18d6237c4dfde68d9" +checksum = "03c80da27b5f4187909049ee2d72f276f0d9f99a42c306bd0131ecfe04d8e5af" dependencies = [ "displaydoc", - "icu_locid", - "icu_provider_macros", + "icu_locale_core", "stable_deref_trait", "tinystr", "writeable", "yoke", "zerofrom", + "zerotrie", "zerovec", ] -[[package]] -name = "icu_provider_macros" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1ec89e9337638ecdc08744df490b221a7399bf8d164eb52a665454e60e075ad6" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.100", -] - [[package]] name = "ident_case" version = "1.0.1" @@ -2952,9 +2932,9 @@ dependencies = [ [[package]] name = "idna_adapter" -version = "1.2.0" +version = "1.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "daca1df1c957320b2cf139ac61e7bd64fed304c5040df000a745aa1de3b4ef71" +checksum = "3acae9609540aa318d1bc588455225fb2085b9ed0c4f6bd0d9d5bcd86f1a0344" dependencies = [ "icu_normalizer", "icu_properties", @@ -2978,7 +2958,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "cea70ddb795996207ad57735b50c5982d8844f38ba9ee5f1aedcfb708a2aa11e" dependencies = [ "equivalent", - "hashbrown 0.15.2", + "hashbrown 0.15.3", "serde", ] @@ -3070,9 +3050,9 @@ checksum = "4a5f13b858c8d314ee3e8f639011f7ccefe71f97f96e50151fb991f267928e2c" [[package]] name = "jiff" -version = "0.2.8" +version = "0.2.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e5ad87c89110f55e4cd4dc2893a9790820206729eaf221555f742d540b0724a0" +checksum = "a194df1107f33c79f4f93d02c80798520551949d59dfad22b6157048a88cca93" dependencies = [ "jiff-static", "log", @@ -3083,13 +3063,13 @@ dependencies = [ [[package]] name = "jiff-static" -version = "0.2.8" +version = "0.2.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d076d5b64a7e2fe6f0743f02c43ca4a6725c0f904203bfe276a5b3e793103605" +checksum = "6c6e1db7ed32c6c71b759497fae34bf7933636f75a251b9e736555da426f6442" dependencies = [ "proc-macro2", "quote", - "syn 2.0.100", + "syn 2.0.101", ] [[package]] @@ -3120,7 +3100,7 @@ version = "0.1.33" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "38f262f097c174adebe41eb73d66ae9c06b2844fb0da69969647bbddd9b0538a" dependencies = [ - "getrandom 0.3.2", + "getrandom 0.3.3", "libc", ] @@ -3176,7 +3156,7 @@ version = "0.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c0ff37bd590ca25063e35af745c343cb7a0271906fb7b37e4813e8f79f00268d" dependencies = [ - "bitflags 2.9.0", + "bitflags 2.9.1", "libc", ] @@ -3269,7 +3249,7 @@ dependencies = [ "solana-sysvar", "thiserror 2.0.12", "tokio", - "zerocopy 0.8.25", + "zerocopy", ] [[package]] @@ -3362,7 +3342,7 @@ dependencies = [ "solana-program-error", "solana-pubkey", "thiserror 2.0.12", - "zerocopy 0.8.25", + "zerocopy", ] [[package]] @@ -3383,7 +3363,7 @@ dependencies = [ "solana-security-txt", "spl-token", "spl-token-2022 7.0.0", - "zerocopy 0.8.25", + "zerocopy", ] [[package]] @@ -3433,7 +3413,7 @@ dependencies = [ "num-bigint 0.4.6", "pinocchio", "rand 0.8.5", - "sha2 0.10.8", + "sha2 0.10.9", "sha3", "solana-program-error", "solana-pubkey", @@ -3482,7 +3462,7 @@ dependencies = [ "bs58", "proc-macro2", "quote", - "syn 2.0.100", + "syn 2.0.101", ] [[package]] @@ -3498,7 +3478,7 @@ dependencies = [ "solana-program-error", "solana-sysvar", "thiserror 2.0.12", - "zerocopy 0.8.25", + "zerocopy", ] [[package]] @@ -3653,7 +3633,7 @@ dependencies = [ "proc-macro2", "quote", "solana-pubkey", - "syn 2.0.100", + "syn 2.0.101", ] [[package]] @@ -3678,7 +3658,7 @@ dependencies = [ "anchor-lang", "light-compressed-account", "light-zero-copy", - "zerocopy 0.8.25", + "zerocopy", ] [[package]] @@ -3704,7 +3684,7 @@ dependencies = [ "solana-pubkey", "solana-security-txt", "thiserror 2.0.12", - "zerocopy 0.8.25", + "zerocopy", ] [[package]] @@ -3765,7 +3745,7 @@ dependencies = [ "rand 0.8.5", "solana-program-error", "thiserror 2.0.12", - "zerocopy 0.8.25", + "zerocopy", ] [[package]] @@ -3776,9 +3756,9 @@ checksum = "cd945864f07fe9f5371a27ad7b52a172b4b499999f1d97574c9fa68373937e12" [[package]] name = "litemap" -version = "0.7.5" +version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "23fb14cb19457329c82206317a5663005a4d404783dc74f4252769b0d5f42856" +checksum = "241eaef5fd12c88705a01fc1066c48c4b36e0dd4377dcdc7ec3942cea7a69956" [[package]] name = "litesvm" @@ -3845,9 +3825,9 @@ dependencies = [ [[package]] name = "lock_api" -version = "0.4.12" +version = "0.4.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "07af8b9cdd281b7915f413fa73f29ebd5d55d0d3f0155584dade1ff18cea1b17" +checksum = "96936507f153605bddfcda068dd804796c84324ed2510809e5b2a624c81da765" dependencies = [ "autocfg", "scopeguard", @@ -3859,6 +3839,12 @@ version = "0.4.27" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "13dc2df351e3202783a1fe0d44375f7295ffb4049267b0f3018346dc122a1d94" +[[package]] +name = "lru-slab" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "112b39cec0b298b6c1999fee3e31427f74f676e4cb9879ed1a121b43661a4154" + [[package]] name = "matchers" version = "0.1.0" @@ -3937,13 +3923,13 @@ dependencies = [ [[package]] name = "mio" -version = "1.0.3" +version = "1.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2886843bf800fba2e3377cff24abf6379b4c4d5c6681eaf9ea5b0d15090450bd" +checksum = "78bed444cc8a2160f01cbcf811ef18cac863ad68ae8ca62092e8db51d51c761c" dependencies = [ "libc", "wasi 0.11.0+wasi-snapshot-preview1", - "windows-sys 0.52.0", + "windows-sys 0.59.0", ] [[package]] @@ -3987,7 +3973,7 @@ version = "0.29.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "71e2746dc3a24dd78b3cfcb7be93368c6de9963d30f43a6a73998a9cf4b17b46" dependencies = [ - "bitflags 2.9.0", + "bitflags 2.9.1", "cfg-if", "cfg_aliases", "libc", @@ -4087,7 +4073,7 @@ checksum = "ed3955f1a9c7c0c15e092f9c887db08b1fc683305fdf6eb6684f22555355e202" dependencies = [ "proc-macro2", "quote", - "syn 2.0.100", + "syn 2.0.101", ] [[package]] @@ -4133,11 +4119,11 @@ dependencies = [ [[package]] name = "num_cpus" -version = "1.16.0" +version = "1.17.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4161fcb6d602d4d2081af7c3a45852d875a03dd337a6bfdd6e06407b61342a43" +checksum = "91df4bbde75afed763b708b7eee1e8e7651e02d97f6d5dd763e89367e957b23b" dependencies = [ - "hermit-abi 0.3.9", + "hermit-abi 0.5.1", "libc", ] @@ -4159,7 +4145,7 @@ dependencies = [ "proc-macro-crate 3.3.0", "proc-macro2", "quote", - "syn 2.0.100", + "syn 2.0.101", ] [[package]] @@ -4192,6 +4178,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.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a4895175b425cb1f87721b59f0f286c2092bd4af812243672510e1ac53e2e0ad" + [[package]] name = "opaque-debug" version = "0.3.1" @@ -4200,11 +4192,11 @@ checksum = "c08d65885ee38876c4f86fa503fb49d7b507c2b62552df7c70b2fce627e06381" [[package]] name = "openssl" -version = "0.10.72" +version = "0.10.73" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fedfea7d58a1f73118430a55da6a286e7b044961736ce96a16a17068ea25e5da" +checksum = "8505734d46c8ab1e19a1dce3aef597ad87dcb4c37e7188231769bd6bd51cebf8" dependencies = [ - "bitflags 2.9.0", + "bitflags 2.9.1", "cfg-if", "foreign-types", "libc", @@ -4221,7 +4213,7 @@ checksum = "a948666b637a0f465e8564c73e89d4dde00d72d4d473cc972f390fc3dcee7d9c" dependencies = [ "proc-macro2", "quote", - "syn 2.0.100", + "syn 2.0.101", ] [[package]] @@ -4232,9 +4224,9 @@ checksum = "d05e27ee213611ffe7d6348b942e8f942b37114c00cc03cec254295a4a17852e" [[package]] name = "openssl-sys" -version = "0.9.107" +version = "0.9.109" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8288979acd84749c744a9014b4382d42b8f7b2592847b5afb2ed29e5d16ede07" +checksum = "90096e2e47630d78b7d1c20952dc621f957103f8bc2c8359ec81290d75238571" dependencies = [ "cc", "libc", @@ -4292,9 +4284,9 @@ checksum = "f38d5652c16fde515bb1ecef450ab0f6a219d619a7274976324d5e377f7dceba" [[package]] name = "parking_lot" -version = "0.12.3" +version = "0.12.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f1bf18183cf54e8d6059647fc3063646a1801cf30896933ec2311622cc4b9a27" +checksum = "70d58bf43669b5795d1576d0641cfb6fbb2057bf629506267a92807158584a13" dependencies = [ "lock_api", "parking_lot_core", @@ -4302,9 +4294,9 @@ dependencies = [ [[package]] name = "parking_lot_core" -version = "0.9.10" +version = "0.9.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e401f977ab385c9e4e3ab30627d6f26d00e2c73eef317493c4ec6d468726cf8" +checksum = "bc838d2a56b5b1a6c25f55575dfc605fabb63bb2365f6c2353ef9159aa69e4a5" dependencies = [ "cfg-if", "libc", @@ -4391,7 +4383,7 @@ checksum = "6e918e4ff8c4549eb882f14b3a4bc8c8bc93de829416eacf579f1207a8fbf861" dependencies = [ "proc-macro2", "quote", - "syn 2.0.100", + "syn 2.0.101", ] [[package]] @@ -4452,9 +4444,9 @@ dependencies = [ [[package]] name = "portable-atomic" -version = "1.11.0" +version = "1.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "350e9b48cbc6b0e028b0473b114454c6316e57336ee184ceab6e53f72c178b3e" +checksum = "f84267b20a16ea918e43c6a88433c2d54fa145c92a811b5b047ccbe153674483" [[package]] name = "portable-atomic-util" @@ -4465,6 +4457,15 @@ dependencies = [ "portable-atomic", ] +[[package]] +name = "potential_utf" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e5a7c30837279ca13e7c867e9e40053bc68740f988cb07f7ca6df43cc734b585" +dependencies = [ + "zerovec", +] + [[package]] name = "powerfmt" version = "0.2.0" @@ -4477,7 +4478,7 @@ version = "0.2.21" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "85eae3c4ed2f50dcfe72643da4befc30deadb458a9b590d720cde2f2b1e97da9" dependencies = [ - "zerocopy 0.8.25", + "zerocopy", ] [[package]] @@ -4488,12 +4489,12 @@ checksum = "c6fa0831dd7cc608c38a5e323422a0077678fa5744aa2be4ad91c4ece8eec8d5" [[package]] name = "prettyplease" -version = "0.2.32" +version = "0.2.33" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "664ec5419c51e34154eec046ebcba56312d5a2fc3b09a06da188e1ad21afadf6" +checksum = "9dee91521343f4c5c6a63edd65e54f31f5c92fe8978c40a4282f8372194c6a7d" dependencies = [ "proc-macro2", - "syn 2.0.100", + "syn 2.0.101", ] [[package]] @@ -4533,7 +4534,7 @@ dependencies = [ "proc-macro-error-attr2", "proc-macro2", "quote", - "syn 2.0.100", + "syn 2.0.101", ] [[package]] @@ -4583,7 +4584,7 @@ checksum = "9e2e25ee72f5b24d773cae88422baddefff7714f97aab68d96fe2b6fc4a28fb2" dependencies = [ "proc-macro2", "quote", - "syn 2.0.100", + "syn 2.0.101", ] [[package]] @@ -4603,9 +4604,9 @@ dependencies = [ [[package]] name = "quinn" -version = "0.11.7" +version = "0.11.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c3bd15a6f2967aef83887dcb9fec0014580467e33720d073560cf015a5683012" +checksum = "626214629cda6781b6dc1d316ba307189c85ba657213ce642d9c77670f8202c8" dependencies = [ "bytes", "cfg_aliases", @@ -4613,7 +4614,7 @@ dependencies = [ "quinn-proto", "quinn-udp", "rustc-hash 2.1.1", - "rustls 0.23.26", + "rustls 0.23.27", "socket2", "thiserror 2.0.12", "tokio", @@ -4623,16 +4624,18 @@ dependencies = [ [[package]] name = "quinn-proto" -version = "0.11.10" +version = "0.11.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b820744eb4dc9b57a3398183639c511b5a26d2ed702cedd3febaa1393caa22cc" +checksum = "49df843a9161c85bb8aae55f101bc0bac8bcafd637a620d9122fd7e0b2f7422e" dependencies = [ "bytes", - "getrandom 0.3.2", + "fastbloom", + "getrandom 0.3.3", + "lru-slab", "rand 0.9.1", "ring", "rustc-hash 2.1.1", - "rustls 0.23.26", + "rustls 0.23.27", "rustls-pki-types", "rustls-platform-verifier", "slab", @@ -4644,9 +4647,9 @@ dependencies = [ [[package]] name = "quinn-udp" -version = "0.5.11" +version = "0.5.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "541d0f57c6ec747a90738a52741d3221f7960e8ac2f0ff4b1a63680e033b4ab5" +checksum = "ee4e529991f949c5e25755532370b8af5d114acae52326361d68d47af64aa842" dependencies = [ "cfg_aliases", "libc", @@ -4756,7 +4759,7 @@ version = "0.6.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c" dependencies = [ - "getrandom 0.2.15", + "getrandom 0.2.16", ] [[package]] @@ -4765,7 +4768,7 @@ version = "0.9.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "99d9a13982dcf210057a8a78572b2217b667c3beacbf3a0d8b454f6f82837d38" dependencies = [ - "getrandom 0.3.2", + "getrandom 0.3.3", ] [[package]] @@ -4783,7 +4786,7 @@ version = "11.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c6df7ab838ed27997ba19a4664507e6f82b41fe6e20be42929332156e5e85146" dependencies = [ - "bitflags 2.9.0", + "bitflags 2.9.1", ] [[package]] @@ -4808,11 +4811,11 @@ dependencies = [ [[package]] name = "redox_syscall" -version = "0.5.11" +version = "0.5.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d2f103c6d277498fbceb16e84d317e2a400f160f46904d5f5410848c829511a3" +checksum = "928fca9cf2aa042393a8325b9ead81d2f0df4cb12e1e24cef072922ccd99c5af" dependencies = [ - "bitflags 2.9.0", + "bitflags 2.9.1", ] [[package]] @@ -4821,7 +4824,7 @@ version = "0.4.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ba009ff324d1fc1b900bd1fdb31564febe58a8ccc8a6fdbb93b543d33b13ca43" dependencies = [ - "getrandom 0.2.15", + "getrandom 0.2.16", "libredox", "thiserror 1.0.69", ] @@ -4832,7 +4835,7 @@ version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "dd6f9d3d47bdd2ad6945c5015a226ec6155d0bcdfd8f7cd29f86b71f8de99d2b" dependencies = [ - "getrandom 0.2.15", + "getrandom 0.2.16", "libredox", "thiserror 2.0.12", ] @@ -4939,7 +4942,7 @@ dependencies = [ "tokio", "tokio-native-tls", "tokio-rustls 0.24.1", - "tokio-util 0.7.14", + "tokio-util 0.7.15", "tower-service", "url", "wasm-bindgen", @@ -4966,7 +4969,7 @@ dependencies = [ "http-body 1.0.1", "http-body-util", "hyper 1.6.0", - "hyper-rustls 0.27.6", + "hyper-rustls 0.27.7", "hyper-tls 0.6.0", "hyper-util", "ipnet", @@ -4979,7 +4982,7 @@ dependencies = [ "percent-encoding", "pin-project-lite", "quinn", - "rustls 0.23.26", + "rustls 0.23.27", "rustls-pki-types", "serde", "serde_json", @@ -5021,7 +5024,7 @@ checksum = "a4689e6c2294d81e88dc6261c768b63bc4fcdb852be6d1352498b114f61383b7" dependencies = [ "cc", "cfg-if", - "getrandom 0.2.15", + "getrandom 0.2.16", "libc", "untrusted", "windows-sys 0.52.0", @@ -5029,23 +5032,23 @@ dependencies = [ [[package]] name = "rpassword" -version = "7.3.1" +version = "7.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "80472be3c897911d0137b2d2b9055faf6eeac5b14e324073d83bc17b191d7e3f" +checksum = "66d4c8b64f049c6721ec8ccec37ddfc3d641c4a7fca57e8f2a89de509c73df39" dependencies = [ "libc", "rtoolbox", - "windows-sys 0.48.0", + "windows-sys 0.59.0", ] [[package]] name = "rtoolbox" -version = "0.0.2" +version = "0.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c247d24e63230cdb56463ae328478bd5eac8b8faa8c69461a77e8e323afac90e" +checksum = "a7cc970b249fbe527d6e02e0a227762c9108b2f49d81094fe357ffc6d14d7f6f" dependencies = [ "libc", - "windows-sys 0.48.0", + "windows-sys 0.52.0", ] [[package]] @@ -5086,11 +5089,11 @@ dependencies = [ [[package]] name = "rustix" -version = "1.0.5" +version = "1.0.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d97817398dd4bb2e6da002002db259209759911da105da92bec29ccb12cf58bf" +checksum = "c71e83d6afe7ff64890ec6b71d6a69bb8a610ab78ce364b3352876bb4c801266" dependencies = [ - "bitflags 2.9.0", + "bitflags 2.9.1", "errno", "libc", "linux-raw-sys", @@ -5111,14 +5114,14 @@ dependencies = [ [[package]] name = "rustls" -version = "0.23.26" +version = "0.23.27" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "df51b5869f3a441595eac5e8ff14d486ff285f7b8c0df8770e49c3b56351f0f0" +checksum = "730944ca083c1c233a75c09f199e973ca499344a2b7ba9e755c457e86fb4a321" dependencies = [ "once_cell", "ring", "rustls-pki-types", - "rustls-webpki 0.103.1", + "rustls-webpki 0.103.3", "subtle", "zeroize", ] @@ -5146,31 +5149,32 @@ dependencies = [ [[package]] name = "rustls-pki-types" -version = "1.11.0" +version = "1.12.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "917ce264624a4b4db1c364dcc35bfca9ded014d0a958cd47ad3e960e988ea51c" +checksum = "229a4a4c221013e7e1f1a043678c5cc39fe5171437c88fb47151a21e6f5b5c79" dependencies = [ "web-time", + "zeroize", ] [[package]] name = "rustls-platform-verifier" -version = "0.5.1" +version = "0.5.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4a5467026f437b4cb2a533865eaa73eb840019a0916f4b9ec563c6e617e086c9" +checksum = "19787cda76408ec5404443dc8b31795c87cd8fec49762dc75fa727740d34acc1" dependencies = [ - "core-foundation 0.10.0", + "core-foundation 0.10.1", "core-foundation-sys", "jni", "log", "once_cell", - "rustls 0.23.26", + "rustls 0.23.27", "rustls-native-certs", "rustls-platform-verifier-android", - "rustls-webpki 0.103.1", + "rustls-webpki 0.103.3", "security-framework 3.2.0", "security-framework-sys", - "webpki-root-certs", + "webpki-root-certs 0.26.11", "windows-sys 0.59.0", ] @@ -5192,9 +5196,9 @@ dependencies = [ [[package]] name = "rustls-webpki" -version = "0.103.1" +version = "0.103.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fef8b8769aaccf73098557a87cd1816b4f9c7c16811c9c77142aa695c16f2c03" +checksum = "e4a72fe2bcf7a6ac6fd7d0b9e5cb68aeb7d4c0a0271730218b3e92d43b4eb435" dependencies = [ "ring", "rustls-pki-types", @@ -5203,9 +5207,9 @@ dependencies = [ [[package]] name = "rustversion" -version = "1.0.20" +version = "1.0.21" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eded382c5f5f786b989652c49544c4877d9f015cc22e145a5ea8ea66c2921cd2" +checksum = "8a0d197bd2c9dc6e53b84da9556a69ba4cdfab8619eb41a8bd1cc2027a0f6b1d" [[package]] name = "ryu" @@ -5213,6 +5217,15 @@ version = "1.0.20" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "28d3b2b1366ec20994f1fd18c3c594f05c5dd4bc44d8bb0c1c632c8d6829481f" +[[package]] +name = "safe_arch" +version = "0.7.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "96b02de82ddbe1b636e6170c21be622223aea188ef2e139be0a5b219ec215323" +dependencies = [ + "bytemuck", +] + [[package]] name = "same-file" version = "1.0.6" @@ -5224,9 +5237,9 @@ dependencies = [ [[package]] name = "scc" -version = "2.3.3" +version = "2.3.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ea091f6cac2595aa38993f04f4ee692ed43757035c36e67c180b6828356385b1" +checksum = "22b2d775fb28f245817589471dd49c5edf64237f4a19d10ce9a92ff4651a27f4" dependencies = [ "sdd", ] @@ -5305,7 +5318,7 @@ version = "2.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "897b2245f0b511c87893af39b033e5ca9cce68824c4d7e7630b5a1d339658d02" dependencies = [ - "bitflags 2.9.0", + "bitflags 2.9.1", "core-foundation 0.9.4", "core-foundation-sys", "libc", @@ -5318,8 +5331,8 @@ version = "3.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "271720403f46ca04f7ba6f55d438f8bd878d6b8ca0a1046e8228c4145bcbb316" dependencies = [ - "bitflags 2.9.0", - "core-foundation 0.10.0", + "bitflags 2.9.1", + "core-foundation 0.10.1", "core-foundation-sys", "libc", "security-framework-sys", @@ -5376,7 +5389,7 @@ checksum = "5b0276cf7f2c73365f7157c8123c21cd9a50fbbd844757af28ca1f5925fc2a00" dependencies = [ "proc-macro2", "quote", - "syn 2.0.100", + "syn 2.0.101", ] [[package]] @@ -5393,9 +5406,9 @@ dependencies = [ [[package]] name = "serde_spanned" -version = "0.6.8" +version = "0.6.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "87607cb1398ed59d48732e575a4c28a7a8ebf2454b964fe3f224f2afc07909e1" +checksum = "bf41e0cfaf7226dca15e8197172c295a782857fcb97fad1808a166870dee75a3" dependencies = [ "serde", ] @@ -5439,7 +5452,7 @@ dependencies = [ "darling", "proc-macro2", "quote", - "syn 2.0.100", + "syn 2.0.101", ] [[package]] @@ -5477,7 +5490,7 @@ checksum = "5d69265a08751de7844521fd15003ae0a888e035773ba05695c5c759a6f89eef" dependencies = [ "proc-macro2", "quote", - "syn 2.0.100", + "syn 2.0.101", ] [[package]] @@ -5506,9 +5519,9 @@ dependencies = [ [[package]] name = "sha2" -version = "0.10.8" +version = "0.10.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "793db75ad2bcafc3ffa7c68b215fee268f537982cd901d132f89c6343f3a3dc8" +checksum = "a7507d819769d01a365ab707794a4084392c824f54a7a6a7862f8c3d0892b283" dependencies = [ "cfg-if", "cpufeatures", @@ -5548,9 +5561,9 @@ checksum = "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64" [[package]] name = "signal-hook" -version = "0.3.17" +version = "0.3.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8621587d4798caf8eb44879d42e56b9a93ea5dcd315a6487c357130095b62801" +checksum = "d881a16cf4426aa584979d30bd82cb33429027e42122b169753d6ef1085ed6e2" dependencies = [ "libc", "signal-hook-registry", @@ -5558,9 +5571,9 @@ dependencies = [ [[package]] name = "signal-hook-registry" -version = "1.4.2" +version = "1.4.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a9e9e0b4211b72e7b8b6e85c807d36c212bdb33ea8587f7569562a84df5465b1" +checksum = "9203b8055f63a2a00e2f593bb0510367fe707d7ff1e5c872de2f537b339e5410" dependencies = [ "libc", ] @@ -5577,6 +5590,12 @@ version = "0.3.11" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "38b58827f4464d87d377d175e90bf58eb00fd8716ff0a62f80356b5e61555d0d" +[[package]] +name = "siphasher" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "56199f7ddabf13fe5074ce809e7d3f42b42ae711800501b5b16ea82ad029c39d" + [[package]] name = "slab" version = "0.4.9" @@ -5588,15 +5607,15 @@ dependencies = [ [[package]] name = "smallvec" -version = "1.15.0" +version = "1.15.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8917285742e9f3e1683f0a9c4e6b57960b7314d0b08d30d1ecd426713ee2eee9" +checksum = "67b1b7a3b5fe4f1376887184045fcf45c69e92af734b7aaddc05fb777b6fbd03" [[package]] name = "socket2" -version = "0.5.9" +version = "0.5.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4f5fd57c80058a56cf5c777ab8a126398ece8e442983605d280a44ce79d0edef" +checksum = "e22376abed350d73dd1cd119b57ffccad95b4e585a7cda43e286245ce23c0678" dependencies = [ "libc", "windows-sys 0.52.0", @@ -6242,9 +6261,9 @@ dependencies = [ [[package]] name = "solana-decode-error" -version = "2.2.1" +version = "2.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "10a6a6383af236708048f8bd8d03db8ca4ff7baf4a48e5d580f4cce545925470" +checksum = "8c781686a18db2f942e70913f7ca15dc120ec38dcab42ff7557db2c70c625a35" dependencies = [ "num-traits", ] @@ -6311,7 +6330,7 @@ version = "2.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "96c5fd2662ae7574810904585fd443545ed2b568dbd304b25a31e79ccc76e81b" dependencies = [ - "siphasher", + "siphasher 0.3.11", "solana-hash", "solana-pubkey", ] @@ -6504,7 +6523,7 @@ checksum = "9ce496a475e5062ba5de97215ab39d9c358f9c9df4bb7f3a45a1f1a8bd9065ed" dependencies = [ "bincode", "borsh 1.5.7", - "getrandom 0.2.15", + "getrandom 0.2.16", "js-sys", "num-traits", "serde", @@ -6516,11 +6535,11 @@ dependencies = [ [[package]] name = "solana-instructions-sysvar" -version = "2.2.1" +version = "2.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "427f2d0d6dc0bb49f16cef5e7f975180d2e80aab9bdd3b2af68e2d029ec63f43" +checksum = "e0e85a6fad5c2d0c4f5b91d34b8ca47118fc593af706e523cdbedf846a954f57" dependencies = [ - "bitflags 2.9.0", + "bitflags 2.9.1", "solana-account-info", "solana-instruction", "solana-program-error", @@ -6800,7 +6819,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "004f2d2daf407b3ec1a1ca5ec34b3ccdfd6866dd2d3c7d0715004a96e4b6d127" dependencies = [ "bincode", - "bitflags 2.9.0", + "bitflags 2.9.1", "cfg_eval", "serde", "serde_derive", @@ -6863,9 +6882,9 @@ dependencies = [ [[package]] name = "solana-precompile-error" -version = "2.2.1" +version = "2.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4ff64daa2933c22982b323d88d0cdf693201ef56ac381ae16737fd5f579e07d6" +checksum = "4d87b2c1f5de77dfe2b175ee8dd318d196aaca4d0f66f02842f80c852811f9f8" dependencies = [ "num-traits", "solana-decode-error", @@ -6913,7 +6932,7 @@ dependencies = [ "bytemuck", "console_error_panic_hook", "console_log", - "getrandom 0.2.15", + "getrandom 0.2.16", "lazy_static", "log", "memoffset", @@ -6993,9 +7012,9 @@ dependencies = [ [[package]] name = "solana-program-error" -version = "2.2.1" +version = "2.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d8ae2c1a8d0d4ae865882d5770a7ebca92bab9c685e43f0461682c6c05a35bfa" +checksum = "9ee2e0217d642e2ea4bee237f37bd61bb02aec60da3647c48ff88f6556ade775" dependencies = [ "borsh 1.5.7", "num-traits", @@ -7086,7 +7105,7 @@ dependencies = [ "bytemuck_derive", "curve25519-dalek 4.1.3", "five8_const", - "getrandom 0.2.15", + "getrandom 0.2.16", "js-sys", "num-traits", "rand 0.8.5", @@ -7141,7 +7160,7 @@ dependencies = [ "log", "quinn", "quinn-proto", - "rustls 0.23.26", + "rustls 0.23.27", "solana-connection-cache", "solana-keypair", "solana-measure", @@ -7461,7 +7480,7 @@ dependencies = [ "bs58", "proc-macro2", "quote", - "syn 2.0.100", + "syn 2.0.101", ] [[package]] @@ -7531,7 +7550,7 @@ checksum = "36187af2324f079f65a675ec22b31c24919cb4ac22c79472e85d819db9bbbc15" dependencies = [ "hmac 0.12.1", "pbkdf2 0.11.0", - "sha2 0.10.8", + "sha2 0.10.9", ] [[package]] @@ -7569,7 +7588,7 @@ version = "2.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0037386961c0d633421f53560ad7c80675c0447cba4d1bb66d60974dd486c7ea" dependencies = [ - "sha2 0.10.8", + "sha2 0.10.9", "solana-define-syscall", "solana-hash", ] @@ -7730,7 +7749,7 @@ dependencies = [ "quinn", "quinn-proto", "rand 0.8.5", - "rustls 0.23.26", + "rustls 0.23.27", "smallvec", "socket2", "solana-keypair", @@ -7749,7 +7768,7 @@ dependencies = [ "solana-transaction-metrics-tracker", "thiserror 2.0.12", "tokio", - "tokio-util 0.7.14", + "tokio-util 0.7.15", "x509-parser", ] @@ -7923,7 +7942,7 @@ version = "2.2.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ec21c6c242ee93642aa50b829f5727470cdbdf6b461fb7323fe4bc31d1b54c08" dependencies = [ - "rustls 0.23.26", + "rustls 0.23.27", "solana-keypair", "solana-pubkey", "solana-signer", @@ -8372,7 +8391,7 @@ checksum = "d9e8418ea6269dcfb01c712f0444d2c75542c04448b480e87de59d2865edc750" dependencies = [ "quote", "spl-discriminator-syn", - "syn 2.0.100", + "syn 2.0.101", ] [[package]] @@ -8383,8 +8402,8 @@ checksum = "8c1f05593b7ca9eac7caca309720f2eafb96355e037e6d373b909a80fe7b69b9" dependencies = [ "proc-macro2", "quote", - "sha2 0.10.8", - "syn 2.0.100", + "sha2 0.10.9", + "syn 2.0.101", "thiserror 1.0.69", ] @@ -8456,8 +8475,8 @@ checksum = "e6d375dd76c517836353e093c2dbb490938ff72821ab568b545fd30ab3256b3e" dependencies = [ "proc-macro2", "quote", - "sha2 0.10.8", - "syn 2.0.100", + "sha2 0.10.9", + "syn 2.0.101", ] [[package]] @@ -8727,9 +8746,9 @@ dependencies = [ [[package]] name = "syn" -version = "2.0.100" +version = "2.0.101" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b09a44accad81e1ba1cd74a32461ba89dee89095ba17b32f5d03683b1b1fc2a0" +checksum = "8ce2b7fc941b3a24138a0a7cf8e858bfc6a992e7978a068a5c760deb0ed43caf" dependencies = [ "proc-macro2", "quote", @@ -8765,13 +8784,13 @@ dependencies = [ [[package]] name = "synstructure" -version = "0.13.1" +version = "0.13.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c8af7666ab7b6390ab78131fb5b0fce11d6b7a6951602017c35fa82800708971" +checksum = "728a70f3dbaf5bab7f0c4b1ac8d7ae5ea60a4b5549c8a5914361c99147a709d2" dependencies = [ "proc-macro2", "quote", - "syn 2.0.100", + "syn 2.0.101", ] [[package]] @@ -8791,7 +8810,7 @@ version = "0.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3c879d448e9d986b661742763247d3693ed13609438cf3d006f51f5368a5ba6b" dependencies = [ - "bitflags 2.9.0", + "bitflags 2.9.1", "core-foundation 0.9.4", "system-configuration-sys 0.6.0", ] @@ -8920,7 +8939,7 @@ dependencies = [ "proc-macro-error2", "proc-macro2", "quote", - "syn 2.0.100", + "syn 2.0.101", ] [[package]] @@ -8975,12 +8994,12 @@ dependencies = [ [[package]] name = "tempfile" -version = "3.19.1" +version = "3.20.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7437ac7763b9b123ccf33c338a5cc1bac6f69b45a136c19bdd8a65e3916435bf" +checksum = "e8a64e3985349f2441a1a9ef0b853f869006c3855f2cda6862a94d26ebb9d6a1" dependencies = [ "fastrand", - "getrandom 0.3.2", + "getrandom 0.3.3", "once_cell", "rustix", "windows-sys 0.59.0", @@ -9039,7 +9058,7 @@ checksum = "4fee6c4efc90059e10f81e6d42c60a18f76588c3d74cb83a0b242a2b6c7504c1" dependencies = [ "proc-macro2", "quote", - "syn 2.0.100", + "syn 2.0.101", ] [[package]] @@ -9050,7 +9069,7 @@ checksum = "7f7cf42b4507d8ea322120659672cf1b9dbb93f8f2d4ecfd6e51350ff5b17a1d" dependencies = [ "proc-macro2", "quote", - "syn 2.0.100", + "syn 2.0.101", ] [[package]] @@ -9115,9 +9134,9 @@ dependencies = [ [[package]] name = "tinystr" -version = "0.7.6" +version = "0.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9117f5d4db391c1cf6927e7bea3db74b9a1c1add8f7eda9ffd5364f40f57b82f" +checksum = "5d4f6d1145dcb577acf783d4e601bc1d76a13337bb54e6233add580b07344c8b" dependencies = [ "displaydoc", "zerovec", @@ -9185,7 +9204,7 @@ checksum = "6e06d43f1345a3bcd39f6a56dbb7dcab2ba47e68e8ac134855e7e2bdbaf8cab8" dependencies = [ "proc-macro2", "quote", - "syn 2.0.100", + "syn 2.0.101", ] [[package]] @@ -9214,7 +9233,7 @@ version = "0.26.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8e727b36a1a0e8b74c376ac2211e40c2c8af09fb4013c60d910495810f008e9b" dependencies = [ - "rustls 0.23.26", + "rustls 0.23.27", "tokio", ] @@ -9289,9 +9308,9 @@ dependencies = [ [[package]] name = "tokio-util" -version = "0.7.14" +version = "0.7.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6b9590b93e6fcc1739458317cccd391ad3955e2bde8913edf6f95f9e65a8f034" +checksum = "66a539a9ad6d5d281510d5bd368c973d636c02dbf8a67300bfb6b950696ad7df" dependencies = [ "bytes", "futures-core", @@ -9311,9 +9330,9 @@ dependencies = [ [[package]] name = "toml" -version = "0.8.20" +version = "0.8.23" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cd87a5cdd6ffab733b2f74bc4fd7ee5fff6634124999ac278c35fc78c6120148" +checksum = "dc1beb996b9d83529a9e75c17a1686767d148d70663143c7854d8b4a09ced362" dependencies = [ "serde", "serde_spanned", @@ -9323,26 +9342,33 @@ dependencies = [ [[package]] name = "toml_datetime" -version = "0.6.8" +version = "0.6.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0dd7358ecb8fc2f8d014bf86f6f638ce72ba252a2c3a2572f2a795f1d23efb41" +checksum = "22cddaf88f4fbc13c51aebbf5f8eceb5c7c5a9da2ac40a13519eb5b0a0e8f11c" dependencies = [ "serde", ] [[package]] name = "toml_edit" -version = "0.22.24" +version = "0.22.27" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "17b4795ff5edd201c7cd6dca065ae59972ce77d1b80fa0a84d94950ece7d1474" +checksum = "41fe8c660ae4257887cf66394862d21dbca4a6ddd26f04a3560410406a2f819a" dependencies = [ "indexmap 2.9.0", "serde", "serde_spanned", "toml_datetime", + "toml_write", "winnow", ] +[[package]] +name = "toml_write" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5d99f8c9a7727884afe522e9bd5edbfc91a3312b36a77b5fb8926e4c31a41801" + [[package]] name = "tower" version = "0.5.2" @@ -9360,11 +9386,11 @@ dependencies = [ [[package]] name = "tower-http" -version = "0.6.5" +version = "0.6.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5cc2d9e086a412a451384326f521c8123a99a466b329941a9403696bff9b0da2" +checksum = "adc82fd73de2a9722ac5da747f12383d2bfdb93591ee6c58486e0097890f05f2" dependencies = [ - "bitflags 2.9.0", + "bitflags 2.9.1", "bytes", "futures-util", "http 1.3.1", @@ -9414,20 +9440,20 @@ dependencies = [ [[package]] name = "tracing-attributes" -version = "0.1.28" +version = "0.1.29" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "395ae124c09f9e6918a2310af6038fba074bcf474ac352496d5910dd59a2226d" +checksum = "1b1ffbcf9c6f6b99d386e7444eb608ba646ae452a36b39737deb9663b610f662" dependencies = [ "proc-macro2", "quote", - "syn 2.0.100", + "syn 2.0.101", ] [[package]] name = "tracing-core" -version = "0.1.33" +version = "0.1.34" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e672c95779cf947c5311f83787af4fa8fffd12fb27e4993211a84bdfd9610f9c" +checksum = "b9d12581f227e93f094d3af2ae690a574abb8a2b9b7a96e7cfe9647b2b617678" dependencies = [ "once_cell", "valuable", @@ -9643,12 +9669,6 @@ version = "0.7.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "09cc8ee72d2a9becf2f2febe0205bbed8fc6615b7cb429ad062dc7b7ddd036a9" -[[package]] -name = "utf16_iter" -version = "1.0.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c8232dd3cdaed5356e0f716d285e4b40b932ac434100fe9b7e0e8e935b9e6246" - [[package]] name = "utf8_iter" version = "1.0.4" @@ -9663,12 +9683,14 @@ checksum = "06abde3611657adf66d383f00b093d7faecc7fa57071cce2578660c9f1010821" [[package]] name = "uuid" -version = "1.16.0" +version = "1.17.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "458f7a779bf54acc9f347480ac654f68407d3aab21269a6e3c9f922acd9e2da9" +checksum = "3cf4199d1e5d15ddd86a694e4d0dffa9c323ce759fea589f00fef9d81cc1931d" dependencies = [ - "getrandom 0.3.2", + "getrandom 0.3.3", + "js-sys", "serde", + "wasm-bindgen", ] [[package]] @@ -9744,7 +9766,7 @@ dependencies = [ "serde_urlencoded", "tokio", "tokio-tungstenite 0.21.0", - "tokio-util 0.7.14", + "tokio-util 0.7.15", "tower-service", "tracing", ] @@ -9792,7 +9814,7 @@ dependencies = [ "log", "proc-macro2", "quote", - "syn 2.0.100", + "syn 2.0.101", "wasm-bindgen-shared", ] @@ -9827,7 +9849,7 @@ checksum = "8ae87ea40c9f689fc23f209965b6fb8a99ad69aeeb0231408be24920604395de" dependencies = [ "proc-macro2", "quote", - "syn 2.0.100", + "syn 2.0.101", "wasm-bindgen-backend", "wasm-bindgen-shared", ] @@ -9863,9 +9885,18 @@ dependencies = [ [[package]] name = "webpki-root-certs" -version = "0.26.8" +version = "0.26.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "09aed61f5e8d2c18344b3faa33a4c837855fe56642757754775548fee21386c4" +checksum = "75c7f0ef91146ebfb530314f5f1d24528d7f0767efbfd31dce919275413e393e" +dependencies = [ + "webpki-root-certs 1.0.0", +] + +[[package]] +name = "webpki-root-certs" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "01a83f7e1a9f8712695c03eabe9ed3fbca0feff0152f33f12593e5a6303cb1a4" dependencies = [ "rustls-pki-types", ] @@ -9894,6 +9925,16 @@ dependencies = [ "rustls-pki-types", ] +[[package]] +name = "wide" +version = "0.7.32" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "41b5576b9a81633f3e8df296ce0063042a73507636cbe956c61133dd7034ab22" +dependencies = [ + "bytemuck", + "safe_arch", +] + [[package]] name = "winapi" version = "0.3.9" @@ -9927,36 +9968,37 @@ checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" [[package]] name = "windows-core" -version = "0.57.0" +version = "0.61.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d2ed2439a290666cd67ecce2b0ffaad89c2a56b976b736e6ece670297897832d" +checksum = "c0fdd3ddb90610c7638aa2b3a3ab2904fb9e5cdbecc643ddb3647212781c4ae3" dependencies = [ "windows-implement", "windows-interface", - "windows-result 0.1.2", - "windows-targets 0.52.6", + "windows-link", + "windows-result", + "windows-strings", ] [[package]] name = "windows-implement" -version = "0.57.0" +version = "0.60.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9107ddc059d5b6fbfbffdfa7a7fe3e22a226def0b2608f72e9d552763d3e1ad7" +checksum = "a47fddd13af08290e67f4acabf4b459f647552718f683a7b415d290ac744a836" dependencies = [ "proc-macro2", "quote", - "syn 2.0.100", + "syn 2.0.101", ] [[package]] name = "windows-interface" -version = "0.57.0" +version = "0.59.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "29bee4b38ea3cde66011baa44dba677c432a78593e202392d1e9070cf2a7fca7" +checksum = "bd9211b69f8dcdfa817bfd14bf1c97c9188afa36f4750130fcdf3f400eca9fa8" dependencies = [ "proc-macro2", "quote", - "syn 2.0.100", + "syn 2.0.101", ] [[package]] @@ -9967,22 +10009,13 @@ checksum = "76840935b766e1b0a05c0066835fb9ec80071d4c09a16f6bd5f7e655e3c14c38" [[package]] name = "windows-registry" -version = "0.4.0" +version = "0.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4286ad90ddb45071efd1a66dfa43eb02dd0dfbae1545ad6cc3c51cf34d7e8ba3" +checksum = "b3bab093bdd303a1240bb99b8aba8ea8a69ee19d34c9e2ef9594e708a4878820" dependencies = [ - "windows-result 0.3.4", + "windows-link", + "windows-result", "windows-strings", - "windows-targets 0.53.0", -] - -[[package]] -name = "windows-result" -version = "0.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5e383302e8ec8515204254685643de10811af0ed97ea37210dc26fb0032647f8" -dependencies = [ - "windows-targets 0.52.6", ] [[package]] @@ -9996,9 +10029,9 @@ dependencies = [ [[package]] name = "windows-strings" -version = "0.3.1" +version = "0.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "87fa48cc5d406560701792be122a10132491cff9d0aeb23583cc2dcafc847319" +checksum = "56e6c93f3a0c3b36176cb1327a4958a0353d5d166c2a35cb268ace15e91d3b57" dependencies = [ "windows-link", ] @@ -10078,29 +10111,13 @@ dependencies = [ "windows_aarch64_gnullvm 0.52.6", "windows_aarch64_msvc 0.52.6", "windows_i686_gnu 0.52.6", - "windows_i686_gnullvm 0.52.6", + "windows_i686_gnullvm", "windows_i686_msvc 0.52.6", "windows_x86_64_gnu 0.52.6", "windows_x86_64_gnullvm 0.52.6", "windows_x86_64_msvc 0.52.6", ] -[[package]] -name = "windows-targets" -version = "0.53.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b1e4c7e8ceaaf9cb7d7507c974735728ab453b67ef8f18febdd7c11fe59dca8b" -dependencies = [ - "windows_aarch64_gnullvm 0.53.0", - "windows_aarch64_msvc 0.53.0", - "windows_i686_gnu 0.53.0", - "windows_i686_gnullvm 0.53.0", - "windows_i686_msvc 0.53.0", - "windows_x86_64_gnu 0.53.0", - "windows_x86_64_gnullvm 0.53.0", - "windows_x86_64_msvc 0.53.0", -] - [[package]] name = "windows_aarch64_gnullvm" version = "0.42.2" @@ -10119,12 +10136,6 @@ version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "32a4622180e7a0ec044bb555404c800bc9fd9ec262ec147edd5989ccd0c02cd3" -[[package]] -name = "windows_aarch64_gnullvm" -version = "0.53.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "86b8d5f90ddd19cb4a147a5fa63ca848db3df085e25fee3cc10b39b6eebae764" - [[package]] name = "windows_aarch64_msvc" version = "0.42.2" @@ -10143,12 +10154,6 @@ version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "09ec2a7bb152e2252b53fa7803150007879548bc709c039df7627cabbd05d469" -[[package]] -name = "windows_aarch64_msvc" -version = "0.53.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c7651a1f62a11b8cbd5e0d42526e55f2c99886c77e007179efff86c2b137e66c" - [[package]] name = "windows_i686_gnu" version = "0.42.2" @@ -10167,24 +10172,12 @@ version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8e9b5ad5ab802e97eb8e295ac6720e509ee4c243f69d781394014ebfe8bbfa0b" -[[package]] -name = "windows_i686_gnu" -version = "0.53.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c1dc67659d35f387f5f6c479dc4e28f1d4bb90ddd1a5d3da2e5d97b42d6272c3" - [[package]] name = "windows_i686_gnullvm" version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0eee52d38c090b3caa76c563b86c3a4bd71ef1a819287c19d586d7334ae8ed66" -[[package]] -name = "windows_i686_gnullvm" -version = "0.53.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9ce6ccbdedbf6d6354471319e781c0dfef054c81fbc7cf83f338a4296c0cae11" - [[package]] name = "windows_i686_msvc" version = "0.42.2" @@ -10203,12 +10196,6 @@ version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "240948bc05c5e7c6dabba28bf89d89ffce3e303022809e73deaefe4f6ec56c66" -[[package]] -name = "windows_i686_msvc" -version = "0.53.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "581fee95406bb13382d2f65cd4a908ca7b1e4c2f1917f143ba16efe98a589b5d" - [[package]] name = "windows_x86_64_gnu" version = "0.42.2" @@ -10227,12 +10214,6 @@ version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "147a5c80aabfbf0c7d901cb5895d1de30ef2907eb21fbbab29ca94c5b08b1a78" -[[package]] -name = "windows_x86_64_gnu" -version = "0.53.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2e55b5ac9ea33f2fc1716d1742db15574fd6fc8dadc51caab1c16a3d3b4190ba" - [[package]] name = "windows_x86_64_gnullvm" version = "0.42.2" @@ -10251,12 +10232,6 @@ version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "24d5b23dc417412679681396f2b49f3de8c1473deb516bd34410872eff51ed0d" -[[package]] -name = "windows_x86_64_gnullvm" -version = "0.53.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0a6e035dd0599267ce1ee132e51c27dd29437f63325753051e71dd9e42406c57" - [[package]] name = "windows_x86_64_msvc" version = "0.42.2" @@ -10275,17 +10250,11 @@ version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec" -[[package]] -name = "windows_x86_64_msvc" -version = "0.53.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "271414315aff87387382ec3d271b52d7ae78726f5d44ac98b4f4030c91880486" - [[package]] name = "winnow" -version = "0.7.6" +version = "0.7.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "63d3fcd9bba44b03821e7d699eeee959f3126dcc4aa8e4ae18ec617c2a5cea10" +checksum = "c06928c8748d81b05c9be96aad92e1b6ff01833332f281e8cfca3be4b35fc9ec" dependencies = [ "memchr", ] @@ -10306,20 +10275,14 @@ version = "0.39.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6f42320e61fe2cfd34354ecb597f86f413484a798ba44a8ca1165c58d42da6c1" dependencies = [ - "bitflags 2.9.0", + "bitflags 2.9.1", ] -[[package]] -name = "write16" -version = "1.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d1890f4022759daae28ed4fe62859b1236caebfc61ede2f63ed4e695f3f6d936" - [[package]] name = "writeable" -version = "0.5.5" +version = "0.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e9df38ee2d2c3c5948ea468a8406ff0db0b29ae1ffde1bcf20ef305bcc95c51" +checksum = "ea2f10b9bb0928dfb1b42b65e1f9e36f7f54dbdf08457afefb38afcdec4fa2bb" [[package]] name = "wyz" @@ -10356,7 +10319,7 @@ dependencies = [ "anyhow", "ark-bn254 0.5.0", "ark-ff 0.5.0", - "clap 4.5.37", + "clap 4.5.39", "dirs", "groth16-solana", "light-batched-merkle-tree", @@ -10374,7 +10337,7 @@ dependencies = [ "quote", "rand 0.8.5", "serde_json", - "sha2 0.10.8", + "sha2 0.10.9", "solana-client", "solana-program", "solana-sdk", @@ -10385,9 +10348,9 @@ dependencies = [ [[package]] name = "yoke" -version = "0.7.5" +version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "120e6aef9aa629e3d4f52dc8cc43a015c7724194c97dfaf45180d2daf2b77f40" +checksum = "5f41bb01b8226ef4bfd589436a297c53d118f65921786300e427be8d487695cc" dependencies = [ "serde", "stable_deref_trait", @@ -10397,23 +10360,14 @@ dependencies = [ [[package]] name = "yoke-derive" -version = "0.7.5" +version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2380878cad4ac9aac1e2435f3eb4020e8374b5f13c296cb75b4620ff8e229154" +checksum = "38da3c9736e16c5d3c8c597a9aaa5d1fa565d0532ae05e27c24aa62fb32c0ab6" dependencies = [ "proc-macro2", "quote", - "syn 2.0.100", - "synstructure 0.13.1", -] - -[[package]] -name = "zerocopy" -version = "0.7.35" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1b9b4fd18abc82b8136838da5d50bae7bdea537c574d8dc1a34ed098d6c166f0" -dependencies = [ - "zerocopy-derive 0.7.35", + "syn 2.0.101", + "synstructure 0.13.2", ] [[package]] @@ -10422,18 +10376,7 @@ version = "0.8.25" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a1702d9583232ddb9174e01bb7c15a2ab8fb1bc6f227aa1233858c351a3ba0cb" dependencies = [ - "zerocopy-derive 0.8.25", -] - -[[package]] -name = "zerocopy-derive" -version = "0.7.35" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fa4f8080344d4671fb4e831a13ad1e68092748387dfc4f55e356242fae12ce3e" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.100", + "zerocopy-derive", ] [[package]] @@ -10444,7 +10387,7 @@ checksum = "28a6e20d751156648aa063f3800b706ee209a32c0b4d9f24be3d980b01be55ef" dependencies = [ "proc-macro2", "quote", - "syn 2.0.100", + "syn 2.0.101", ] [[package]] @@ -10464,8 +10407,8 @@ checksum = "d71e5d6e06ab090c67b5e44993ec16b72dcbaabc526db883a360057678b48502" dependencies = [ "proc-macro2", "quote", - "syn 2.0.100", - "synstructure 0.13.1", + "syn 2.0.101", + "synstructure 0.13.2", ] [[package]] @@ -10485,14 +10428,25 @@ checksum = "ce36e65b0d2999d2aafac989fb249189a141aee1f53c612c1f37d72631959f69" dependencies = [ "proc-macro2", "quote", - "syn 2.0.100", + "syn 2.0.101", +] + +[[package]] +name = "zerotrie" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "36f0bbd478583f79edad978b407914f61b2972f5af6fa089686016be8f9af595" +dependencies = [ + "displaydoc", + "yoke", + "zerofrom", ] [[package]] name = "zerovec" -version = "0.10.4" +version = "0.11.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aa2b893d79df23bfb12d5461018d408ea19dfafe76c2c7ef6d4eba614f8ff079" +checksum = "4a05eb080e015ba39cc9e23bbe5e7fb04d5fb040350f99f34e338d5fdd294428" dependencies = [ "yoke", "zerofrom", @@ -10501,13 +10455,13 @@ dependencies = [ [[package]] name = "zerovec-derive" -version = "0.10.3" +version = "0.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6eafa6dfb17584ea3e2bd6e76e0cc15ad7af12b09abdd1ca55961bed9b1063c6" +checksum = "5b96237efa0c878c64bd89c436f661be4e46b2f3eff1ebb976f7ef2321d2f58f" dependencies = [ "proc-macro2", "quote", - "syn 2.0.100", + "syn 2.0.101", ] [[package]] diff --git a/Cargo.toml b/Cargo.toml index cd00d86c91..815598d32c 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -112,6 +112,10 @@ anchor-spl = "=0.31.1" # Anchor compatibility borsh = "0.10.0" +# Serialization +serde = { version = "1.0", features = ["derive"] } +serde_json = "1.0" + # Macro helpers proc-macro2 = "1.0" quote = "1.0" diff --git a/cli/src/commands/compress-spl/index.ts b/cli/src/commands/compress-spl/index.ts index c5c8c09236..63582cfe11 100644 --- a/cli/src/commands/compress-spl/index.ts +++ b/cli/src/commands/compress-spl/index.ts @@ -73,9 +73,6 @@ class CompressSplCommand extends Command { payer, sourceAta, toPublicKey, - undefined, - undefined, - undefined, ); loader.stop(false); diff --git a/cli/src/commands/start-prover/index.ts b/cli/src/commands/start-prover/index.ts index d47d34e929..792e75f935 100644 --- a/cli/src/commands/start-prover/index.ts +++ b/cli/src/commands/start-prover/index.ts @@ -62,7 +62,7 @@ class StartProver extends Command { const proverPort = flags["prover-port"] || 3001; const force = flags["force"] || false; - const redisUrl = flags["redisUrl"] || process.env.REDIS_URL; + const redisUrl = flags["redisUrl"] || process.env.REDIS_URL || undefined; await startProver( proverPort, flags["run-mode"], diff --git a/js/compressed-token/package.json b/js/compressed-token/package.json index adad57fe49..9b0fab25b5 100644 --- a/js/compressed-token/package.json +++ b/js/compressed-token/package.json @@ -82,6 +82,7 @@ "test:unit:all": "EXCLUDE_E2E=true vitest run", "test-all:verbose": "vitest run --reporter=verbose", "test-validator": "./../../cli/test_bin/run test-validator --prover-run-mode rpc", + "test-validator-skip-prover": "./../../cli/test_bin/run test-validator --skip-prover", "test:e2e:create-mint": "pnpm test-validator && NODE_OPTIONS='--trace-deprecation' vitest run tests/e2e/create-mint.test.ts --reporter=verbose", "test:e2e:layout": "vitest run tests/e2e/layout.test.ts --reporter=verbose --bail=1", "test:e2e:select-accounts": "vitest run tests/e2e/select-accounts.test.ts --reporter=verbose", @@ -99,7 +100,7 @@ "test:e2e:rpc-token-interop": "pnpm test-validator && vitest run tests/e2e/rpc-token-interop.test.ts --reporter=verbose", "test:e2e:rpc-multi-trees": "pnpm test-validator && vitest run tests/e2e/rpc-multi-trees.test.ts --reporter=verbose", "test:e2e:multi-pool": "pnpm test-validator && vitest run tests/e2e/multi-pool.test.ts --reporter=verbose", - "test:e2e:all": "pnpm test-validator && vitest run tests/e2e/create-mint.test.ts && vitest run tests/e2e/mint-to.test.ts && vitest run tests/e2e/transfer.test.ts && vitest run tests/e2e/delegate.test.ts && vitest run tests/e2e/transfer-delegated.test.ts && vitest run tests/e2e/multi-pool.test.ts && vitest run tests/e2e/decompress-delegated.test.ts && pnpm test-validator &&vitest run tests/e2e/compress.test.ts && vitest run tests/e2e/compress-spl-token-account.test.ts && vitest run tests/e2e/decompress.test.ts && vitest run tests/e2e/create-token-pool.test.ts && vitest run tests/e2e/approve-and-mint-to.test.ts && vitest run tests/e2e/rpc-token-interop.test.ts && vitest run tests/e2e/rpc-multi-trees.test.ts && vitest run tests/e2e/layout.test.ts && vitest run tests/e2e/select-accounts.test.ts", + "test:e2e:all": "pnpm test-validator && vitest run tests/e2e/create-mint.test.ts && vitest run tests/e2e/mint-to.test.ts && vitest run tests/e2e/transfer.test.ts && vitest run tests/e2e/delegate.test.ts && vitest run tests/e2e/transfer-delegated.test.ts && vitest run tests/e2e/multi-pool.test.ts && vitest run tests/e2e/decompress-delegated.test.ts && pnpm test-validator-skip-prover && vitest run tests/e2e/compress.test.ts && vitest run tests/e2e/compress-spl-token-account.test.ts && vitest run tests/e2e/decompress.test.ts && vitest run tests/e2e/create-token-pool.test.ts && vitest run tests/e2e/approve-and-mint-to.test.ts && vitest run tests/e2e/rpc-token-interop.test.ts && vitest run tests/e2e/rpc-multi-trees.test.ts && vitest run tests/e2e/layout.test.ts && vitest run tests/e2e/select-accounts.test.ts", "pull-idl": "../../scripts/push-compressed-token-idl.sh", "build": "rimraf dist && pnpm build:bundle", "build:bundle": "rollup -c", diff --git a/js/compressed-token/src/actions/approve-and-mint-to.ts b/js/compressed-token/src/actions/approve-and-mint-to.ts index c9601c451f..e4dc13ccc9 100644 --- a/js/compressed-token/src/actions/approve-and-mint-to.ts +++ b/js/compressed-token/src/actions/approve-and-mint-to.ts @@ -11,9 +11,9 @@ import { buildAndSignTx, Rpc, dedupeSigner, - StateTreeInfo, selectStateTreeInfo, toArray, + TreeInfo, } from '@lightprotocol/stateless.js'; import { CompressedTokenProgram } from '../program'; import { getOrCreateAssociatedTokenAccount } from '@solana/spl-token'; @@ -48,7 +48,7 @@ export async function approveAndMintTo( toPubkey: PublicKey, authority: Signer, amount: number | BN, - outputStateTreeInfo?: StateTreeInfo, + outputStateTreeInfo?: TreeInfo, tokenPoolInfo?: TokenPoolInfo, confirmOptions?: ConfirmOptions, ): Promise { diff --git a/js/compressed-token/src/actions/compress-spl-token-account.ts b/js/compressed-token/src/actions/compress-spl-token-account.ts index d151a507ae..40bdc1e526 100644 --- a/js/compressed-token/src/actions/compress-spl-token-account.ts +++ b/js/compressed-token/src/actions/compress-spl-token-account.ts @@ -10,12 +10,10 @@ import { buildAndSignTx, Rpc, dedupeSigner, - StateTreeInfo, selectStateTreeInfo, + TreeInfo, } from '@lightprotocol/stateless.js'; - import BN from 'bn.js'; - import { getTokenPoolInfos, selectTokenPoolInfo, @@ -48,7 +46,7 @@ export async function compressSplTokenAccount( owner: Signer, tokenAccount: PublicKey, remainingAmount?: BN, - outputStateTreeInfo?: StateTreeInfo, + outputStateTreeInfo?: TreeInfo, tokenPoolInfo?: TokenPoolInfo, confirmOptions?: ConfirmOptions, ): Promise { diff --git a/js/compressed-token/src/actions/compress.ts b/js/compressed-token/src/actions/compress.ts index 9eb6aa6af2..464a5a2985 100644 --- a/js/compressed-token/src/actions/compress.ts +++ b/js/compressed-token/src/actions/compress.ts @@ -10,13 +10,11 @@ import { buildAndSignTx, Rpc, dedupeSigner, - StateTreeInfo, selectStateTreeInfo, toArray, + TreeInfo, } from '@lightprotocol/stateless.js'; - import BN from 'bn.js'; - import { CompressedTokenProgram } from '../program'; import { getTokenPoolInfos, @@ -50,7 +48,7 @@ export async function compress( owner: Signer, sourceTokenAccount: PublicKey, toAddress: PublicKey | Array, - outputStateTreeInfo?: StateTreeInfo, + outputStateTreeInfo?: TreeInfo, tokenPoolInfo?: TokenPoolInfo, confirmOptions?: ConfirmOptions, ): Promise { diff --git a/js/compressed-token/src/actions/decompress-delegated.ts b/js/compressed-token/src/actions/decompress-delegated.ts index 81597ffe89..00dd1b31a6 100644 --- a/js/compressed-token/src/actions/decompress-delegated.ts +++ b/js/compressed-token/src/actions/decompress-delegated.ts @@ -11,8 +11,6 @@ import { buildAndSignTx, Rpc, dedupeSigner, - selectStateTreeInfo, - StateTreeInfo, } from '@lightprotocol/stateless.js'; import BN from 'bn.js'; diff --git a/js/compressed-token/src/actions/mint-to.ts b/js/compressed-token/src/actions/mint-to.ts index f6d497ba06..e50f20b57c 100644 --- a/js/compressed-token/src/actions/mint-to.ts +++ b/js/compressed-token/src/actions/mint-to.ts @@ -11,8 +11,8 @@ import { buildAndSignTx, Rpc, dedupeSigner, - StateTreeInfo, selectStateTreeInfo, + TreeInfo, } from '@lightprotocol/stateless.js'; import { CompressedTokenProgram } from '../program'; import { @@ -48,7 +48,7 @@ export async function mintTo( toPubkey: PublicKey | PublicKey[], authority: Signer, amount: number | BN | number[] | BN[], - outputStateTreeInfo?: StateTreeInfo, + outputStateTreeInfo?: TreeInfo, tokenPoolInfo?: TokenPoolInfo, confirmOptions?: ConfirmOptions, ): Promise { diff --git a/js/compressed-token/src/actions/transfer-delegated.ts b/js/compressed-token/src/actions/transfer-delegated.ts index 6f6fad7230..a788050163 100644 --- a/js/compressed-token/src/actions/transfer-delegated.ts +++ b/js/compressed-token/src/actions/transfer-delegated.ts @@ -11,8 +11,6 @@ import { buildAndSignTx, Rpc, dedupeSigner, - StateTreeInfo, - selectStateTreeInfo, } from '@lightprotocol/stateless.js'; import BN from 'bn.js'; import { CompressedTokenProgram } from '../program'; diff --git a/js/compressed-token/src/layout.ts b/js/compressed-token/src/layout.ts index 2245ff128d..eba7faa70e 100644 --- a/js/compressed-token/src/layout.ts +++ b/js/compressed-token/src/layout.ts @@ -46,8 +46,6 @@ const PackedTokenTransferOutputDataLayout = struct([ option(vecU8(), 'tlv'), ]); -// const QueueIndexLayout = struct([u8('queueId'), u16('index')]); - const InputTokenDataWithContextLayout = struct([ u64('amount'), option(u8(), 'delegateIndex'), diff --git a/js/compressed-token/src/program.ts b/js/compressed-token/src/program.ts index 5c34db71d1..02e3eb90ae 100644 --- a/js/compressed-token/src/program.ts +++ b/js/compressed-token/src/program.ts @@ -20,7 +20,7 @@ import { validateSameOwner, validateSufficientBalance, defaultTestStateTreeAccounts, - StateTreeInfo, + TreeInfo, CompressedProof, featureFlags, } from '@lightprotocol/stateless.js'; @@ -93,7 +93,7 @@ export type CompressParams = { /** * State tree to write to */ - outputStateTreeInfo: StateTreeInfo; + outputStateTreeInfo: TreeInfo; /** * Token pool */ @@ -124,7 +124,7 @@ export type CompressSplTokenAccountParams = { /** * State tree to write to */ - outputStateTreeInfo: StateTreeInfo; + outputStateTreeInfo: TreeInfo; /** * Token pool */ @@ -330,7 +330,7 @@ export type MintToParams = { /** * State tree for minted tokens */ - outputStateTreeInfo: StateTreeInfo; + outputStateTreeInfo: TreeInfo; /** * Token pool */ @@ -406,7 +406,7 @@ export type ApproveAndMintToParams = { /** * State tree to write to */ - outputStateTreeInfo: StateTreeInfo; + outputStateTreeInfo: TreeInfo; /** * Token pool */ @@ -1171,12 +1171,16 @@ export class CompressedTokenProgram { checkTokenPoolInfo(tokenPoolInfo, mint); + if (amountArray.length !== toAddressArray.length) { + throw new Error( + 'Amount and toAddress arrays must have the same length', + ); + } if (featureFlags.isV2()) { const [index, bump] = this.findTokenPoolIndexAndBump( tokenPoolInfo.tokenPoolPda, mint, ); - const rawData: BatchCompressInstructionData = { pubkeys: toAddressArray, amounts: @@ -1185,11 +1189,10 @@ export class CompressedTokenProgram { : null, lamports: null, amount: amountArray.length === 1 ? bn(amountArray[0]) : null, - index: index, - bump: bump, + index, + bump, }; - console.log('rawData', rawData); const data = encodeBatchCompressInstructionData(rawData); const keys = mintToAccountsLayout({ mint, @@ -1211,19 +1214,12 @@ export class CompressedTokenProgram { isSigner: false, }); - console.log('keys', keys.length); - return new TransactionInstruction({ programId: this.programId, keys, data, }); } else { - if (amountArray.length !== toAddressArray.length) { - throw new Error( - 'Amount and toAddress arrays must have the same length', - ); - } tokenTransferOutputs = amountArray.map((amt, index) => { const amountBN = bn(amt); return { diff --git a/js/compressed-token/src/utils/pack-compressed-token-accounts.ts b/js/compressed-token/src/utils/pack-compressed-token-accounts.ts index e21d26e754..99719fec1b 100644 --- a/js/compressed-token/src/utils/pack-compressed-token-accounts.ts +++ b/js/compressed-token/src/utils/pack-compressed-token-accounts.ts @@ -4,9 +4,9 @@ import { getIndexOrAdd, bn, padOutputStateMerkleTrees, - StateTreeInfo, TreeType, featureFlags, + TreeInfo, } from '@lightprotocol/stateless.js'; import { PublicKey, AccountMeta } from '@solana/web3.js'; import { @@ -22,7 +22,7 @@ export type PackCompressedTokenAccountsParams = { * state tree of the input state. Gets padded to the length of * outputCompressedAccounts. */ - outputStateTreeInfo?: StateTreeInfo; + outputStateTreeInfo?: TreeInfo; /** Optional remaining accounts to append to */ remainingAccounts?: PublicKey[]; /** @@ -102,7 +102,7 @@ export function packCompressedTokenAccounts( ); } - let treeInfo: StateTreeInfo; + let treeInfo: TreeInfo; if (inputCompressedTokenAccounts.length > 0) { treeInfo = inputCompressedTokenAccounts[0].compressedAccount.treeInfo; } else if (outputStateTreeInfo) { diff --git a/js/compressed-token/tests/e2e/approve-and-mint-to.test.ts b/js/compressed-token/tests/e2e/approve-and-mint-to.test.ts index 4f2f11c39b..fe52f5d701 100644 --- a/js/compressed-token/tests/e2e/approve-and-mint-to.test.ts +++ b/js/compressed-token/tests/e2e/approve-and-mint-to.test.ts @@ -16,7 +16,7 @@ import { sendAndConfirmTx, getTestRpc, defaultTestStateTreeAccounts, - StateTreeInfo, + TreeInfo, selectStateTreeInfo, } from '@lightprotocol/stateless.js'; import { WasmFactory } from '@lightprotocol/hasher.rs'; @@ -72,7 +72,7 @@ describe('approveAndMintTo', () => { let mint: PublicKey; let mintAuthority: Keypair; let tokenPoolInfo: TokenPoolInfo; - let stateTreeInfo: StateTreeInfo; + let stateTreeInfo: TreeInfo; beforeAll(async () => { const lightWasm = await WasmFactory.getInstance(); diff --git a/js/compressed-token/tests/e2e/compress-spl-token-account.test.ts b/js/compressed-token/tests/e2e/compress-spl-token-account.test.ts index bd9ec6a109..34ac9a55ce 100644 --- a/js/compressed-token/tests/e2e/compress-spl-token-account.test.ts +++ b/js/compressed-token/tests/e2e/compress-spl-token-account.test.ts @@ -6,7 +6,7 @@ import { defaultTestStateTreeAccounts, newAccountWithLamports, getTestRpc, - StateTreeInfo, + TreeInfo, selectStateTreeInfo, } from '@lightprotocol/stateless.js'; import { @@ -36,7 +36,7 @@ describe('compressSplTokenAccount', () => { let aliceAta: PublicKey; let mint: PublicKey; let mintAuthority: Keypair; - let stateTreeInfo: StateTreeInfo; + let stateTreeInfo: TreeInfo; let tokenPoolInfo: TokenPoolInfo; beforeAll(async () => { diff --git a/js/compressed-token/tests/e2e/compress.test.ts b/js/compressed-token/tests/e2e/compress.test.ts index f8ee1f926e..329f845063 100644 --- a/js/compressed-token/tests/e2e/compress.test.ts +++ b/js/compressed-token/tests/e2e/compress.test.ts @@ -15,7 +15,7 @@ import { buildAndSignTx, sendAndConfirmTx, getTestRpc, - StateTreeInfo, + TreeInfo, selectStateTreeInfo, } from '@lightprotocol/stateless.js'; import { @@ -98,10 +98,10 @@ describe('compress', () => { let mint: PublicKey; let mintAuthority: Keypair; let lut: PublicKey; - let stateTreeInfo: StateTreeInfo; + let stateTreeInfo: TreeInfo; let tokenPoolInfo: TokenPoolInfo; - const maxBatchSize = 26; + const maxBatchSize = 15; const recipients = Array.from( { length: maxBatchSize }, () => Keypair.generate().publicKey, @@ -289,7 +289,7 @@ describe('compress', () => { owner: bob.publicKey, source: bobAta, toAddress: recipients, - amount: bn(2), + amount: recipients.map(() => bn(2)), mint, outputStateTreeInfo: stateTreeInfo, tokenPoolInfo, diff --git a/js/compressed-token/tests/e2e/decompress-delegated.test.ts b/js/compressed-token/tests/e2e/decompress-delegated.test.ts index d676b88e70..f1b62f65e2 100644 --- a/js/compressed-token/tests/e2e/decompress-delegated.test.ts +++ b/js/compressed-token/tests/e2e/decompress-delegated.test.ts @@ -6,7 +6,7 @@ import { bn, newAccountWithLamports, getTestRpc, - StateTreeInfo, + TreeInfo, selectStateTreeInfo, ParsedTokenAccount, } from '@lightprotocol/stateless.js'; @@ -103,7 +103,7 @@ describe('decompressDelegated', () => { let charlieAta: PublicKey; let mint: PublicKey; let mintAuthority: Keypair; - let stateTreeInfo: StateTreeInfo; + let stateTreeInfo: TreeInfo; let tokenPoolInfos: TokenPoolInfo[]; beforeAll(async () => { diff --git a/js/compressed-token/tests/e2e/decompress.test.ts b/js/compressed-token/tests/e2e/decompress.test.ts index 886add0f18..b3ec1400ca 100644 --- a/js/compressed-token/tests/e2e/decompress.test.ts +++ b/js/compressed-token/tests/e2e/decompress.test.ts @@ -9,7 +9,7 @@ import { newAccountWithLamports, getTestRpc, selectStateTreeInfo, - StateTreeInfo, + TreeInfo, } from '@lightprotocol/stateless.js'; import { WasmFactory } from '@lightprotocol/hasher.rs'; import { createMint, mintTo, decompress } from '../../src/actions'; @@ -73,7 +73,7 @@ describe('decompress', () => { let charlieAta: PublicKey; let mint: PublicKey; let mintAuthority: Keypair; - let stateTreeInfo: StateTreeInfo; + let stateTreeInfo: TreeInfo; let tokenPoolInfos: TokenPoolInfo[]; beforeAll(async () => { diff --git a/js/compressed-token/tests/e2e/delegate.test.ts b/js/compressed-token/tests/e2e/delegate.test.ts index 7c69f6b434..e60b25515f 100644 --- a/js/compressed-token/tests/e2e/delegate.test.ts +++ b/js/compressed-token/tests/e2e/delegate.test.ts @@ -6,7 +6,7 @@ import { bn, newAccountWithLamports, getTestRpc, - StateTreeInfo, + TreeInfo, selectStateTreeInfo, ParsedTokenAccount, } from '@lightprotocol/stateless.js'; @@ -109,7 +109,7 @@ describe('delegate', () => { let bob: Signer; let mint: PublicKey; let mintAuthority: Keypair; - let stateTreeInfo: StateTreeInfo; + let stateTreeInfo: TreeInfo; let tokenPoolInfo: TokenPoolInfo; beforeAll(async () => { diff --git a/js/compressed-token/tests/e2e/merge-token-accounts.test.ts b/js/compressed-token/tests/e2e/merge-token-accounts.test.ts index 5496475790..e63a4a7434 100644 --- a/js/compressed-token/tests/e2e/merge-token-accounts.test.ts +++ b/js/compressed-token/tests/e2e/merge-token-accounts.test.ts @@ -6,7 +6,7 @@ import { defaultTestStateTreeAccounts, newAccountWithLamports, getTestRpc, - StateTreeInfo, + TreeInfo, selectStateTreeInfo, } from '@lightprotocol/stateless.js'; import { WasmFactory } from '@lightprotocol/hasher.rs'; @@ -19,7 +19,7 @@ describe('mergeTokenAccounts', () => { let owner: Signer; let mint: PublicKey; let mintAuthority: Keypair; - let stateTreeInfo: StateTreeInfo; + let stateTreeInfo: TreeInfo; beforeAll(async () => { const lightWasm = await WasmFactory.getInstance(); diff --git a/js/compressed-token/tests/e2e/mint-to.test.ts b/js/compressed-token/tests/e2e/mint-to.test.ts index 11b8cd5b4c..741639679b 100644 --- a/js/compressed-token/tests/e2e/mint-to.test.ts +++ b/js/compressed-token/tests/e2e/mint-to.test.ts @@ -20,7 +20,7 @@ import { buildAndSignTx, dedupeSigner, getTestRpc, - StateTreeInfo, + TreeInfo, selectStateTreeInfo, } from '@lightprotocol/stateless.js'; @@ -67,7 +67,7 @@ describe('mintTo', () => { let mint: PublicKey; let mintAuthority: Keypair; let lut: PublicKey; - let stateTreeInfo: StateTreeInfo; + let stateTreeInfo: TreeInfo; let tokenPoolInfo: TokenPoolInfo; beforeAll(async () => { diff --git a/js/compressed-token/tests/e2e/rpc-multi-trees.test.ts b/js/compressed-token/tests/e2e/rpc-multi-trees.test.ts index 93c8384569..254b777cfd 100644 --- a/js/compressed-token/tests/e2e/rpc-multi-trees.test.ts +++ b/js/compressed-token/tests/e2e/rpc-multi-trees.test.ts @@ -5,7 +5,7 @@ import { newAccountWithLamports, bn, createRpc, - StateTreeInfo, + TreeInfo, featureFlags, selectStateTreeInfo, } from '@lightprotocol/stateless.js'; @@ -27,8 +27,8 @@ describe('rpc-multi-trees', () => { let mint: PublicKey; let mintAuthority: Keypair; - let stateTreeInfo: StateTreeInfo; - let stateTreeInfo2: StateTreeInfo; + let stateTreeInfo: TreeInfo; + let stateTreeInfo2: TreeInfo; let tokenPoolInfo: TokenPoolInfo; beforeAll(async () => { diff --git a/js/compressed-token/tests/e2e/rpc-token-interop.test.ts b/js/compressed-token/tests/e2e/rpc-token-interop.test.ts index f58ff4c21b..6bdcdfc7c1 100644 --- a/js/compressed-token/tests/e2e/rpc-token-interop.test.ts +++ b/js/compressed-token/tests/e2e/rpc-token-interop.test.ts @@ -7,7 +7,7 @@ import { createRpc, getTestRpc, defaultTestStateTreeAccounts, - StateTreeInfo, + TreeInfo, selectStateTreeInfo, } from '@lightprotocol/stateless.js'; import { WasmFactory } from '@lightprotocol/hasher.rs'; @@ -28,7 +28,7 @@ describe('rpc-interop token', () => { let charlie: Signer; let mint: PublicKey; let mintAuthority: Keypair; - let stateTreeInfo: StateTreeInfo; + let stateTreeInfo: TreeInfo; let tokenPoolInfo: TokenPoolInfo; beforeAll(async () => { diff --git a/js/compressed-token/tests/e2e/transfer-delegated.test.ts b/js/compressed-token/tests/e2e/transfer-delegated.test.ts index 53e9ab9343..be2d66d2da 100644 --- a/js/compressed-token/tests/e2e/transfer-delegated.test.ts +++ b/js/compressed-token/tests/e2e/transfer-delegated.test.ts @@ -6,7 +6,7 @@ import { bn, newAccountWithLamports, getTestRpc, - StateTreeInfo, + TreeInfo, selectStateTreeInfo, ParsedTokenAccount, } from '@lightprotocol/stateless.js'; @@ -172,7 +172,7 @@ describe('transferDelegated', () => { let bob: Signer; let mint: PublicKey; let mintAuthority: Keypair; - let stateTreeInfo: StateTreeInfo; + let stateTreeInfo: TreeInfo; let tokenPoolInfo: TokenPoolInfo; beforeAll(async () => { diff --git a/js/compressed-token/tests/e2e/transfer.test.ts b/js/compressed-token/tests/e2e/transfer.test.ts index ebff6a5734..92aa5c4773 100644 --- a/js/compressed-token/tests/e2e/transfer.test.ts +++ b/js/compressed-token/tests/e2e/transfer.test.ts @@ -16,7 +16,7 @@ import { dedupeSigner, buildAndSignTx, sendAndConfirmTx, - StateTreeInfo, + TreeInfo, selectStateTreeInfo, } from '@lightprotocol/stateless.js'; import { WasmFactory } from '@lightprotocol/hasher.rs'; @@ -97,7 +97,7 @@ describe('transfer', () => { let mint: PublicKey; let mintAuthority: Keypair; - let stateTreeInfo: StateTreeInfo; + let stateTreeInfo: TreeInfo; beforeAll(async () => { const lightWasm = await WasmFactory.getInstance(); @@ -296,7 +296,7 @@ describe('e2e transfer with multiple accounts', () => { let mint: PublicKey; let mintAuthority: Keypair; - let stateTreeInfo: StateTreeInfo; + let stateTreeInfo: TreeInfo; beforeAll(async () => { rpc = await getTestRpc(await WasmFactory.getInstance()); @@ -380,7 +380,6 @@ describe('e2e transfer with multiple accounts', () => { sender, transferAmount, recipient, - stateTreeInfo, ); assertTransfer( @@ -401,7 +400,6 @@ async function transferHelper( owner: Signer, amount: BN, toAddress: PublicKey, - stateTreeInfo: StateTreeInfo, ) { const compressedTokenAccounts = await rpc.getCompressedTokenAccountsByOwner( owner.publicKey, diff --git a/js/stateless.js/package.json b/js/stateless.js/package.json index 504a8bd9a4..f5430e0bb9 100644 --- a/js/stateless.js/package.json +++ b/js/stateless.js/package.json @@ -91,13 +91,14 @@ "test:unit:tree-info": "vitest run tests/unit/utils/tree-info.test.ts --reporter=verbose", "test:conversions": "vitest run tests/unit/utils/conversion.test.ts --reporter=verbose", "test-validator": "./../../cli/test_bin/run test-validator --prover-run-mode rpc", + "test-validator-skip-prover": "./../../cli/test_bin/run test-validator --skip-prover", "test:e2e:transfer": "pnpm test-validator && vitest run tests/e2e/transfer.test.ts --reporter=verbose", "test:e2e:compress": "pnpm test-validator && vitest run tests/e2e/compress.test.ts --reporter=verbose", "test:e2e:test-rpc": "pnpm test-validator && vitest run tests/e2e/test-rpc.test.ts --reporter=verbose --bail=1", "test:e2e:rpc-interop": "pnpm test-validator && vitest run tests/e2e/rpc-interop.test.ts --reporter=verbose --bail=1", "test:e2e:rpc-multi-trees": "pnpm test-validator && vitest run tests/e2e/rpc-multi-trees.test.ts", "test:e2e:browser": "pnpm playwright test", - "test:e2e:all": "pnpm test-validator && vitest run tests/e2e/test-rpc.test.ts && vitest run tests/e2e/compress.test.ts && vitest run tests/e2e/transfer.test.ts && vitest run tests/e2e/rpc-interop.test.ts && pnpm test-validator && vitest run tests/e2e/rpc-multi-trees.test.ts && vitest run tests/e2e/layout.test.ts && vitest run tests/e2e/safe-conversion.test.ts", + "test:e2e:all": "pnpm test-validator && vitest run tests/e2e/test-rpc.test.ts && vitest run tests/e2e/compress.test.ts && vitest run tests/e2e/transfer.test.ts && vitest run tests/e2e/rpc-interop.test.ts && pnpm test-validator-skip-prover && vitest run tests/e2e/rpc-multi-trees.test.ts && vitest run tests/e2e/layout.test.ts && vitest run tests/e2e/safe-conversion.test.ts", "test:index": "vitest run tests/e2e/program.test.ts", "test:e2e:layout": "vitest run tests/e2e/layout.test.ts --reporter=verbose", "test:e2e:safe-conversion": "vitest run tests/e2e/safe-conversion.test.ts --reporter=verbose", diff --git a/js/stateless.js/src/actions/compress.ts b/js/stateless.js/src/actions/compress.ts index e70e6292d2..3477678d2d 100644 --- a/js/stateless.js/src/actions/compress.ts +++ b/js/stateless.js/src/actions/compress.ts @@ -5,7 +5,6 @@ import { Signer, TransactionSignature, } from '@solana/web3.js'; - import { LightSystemProgram } from '../programs'; import { Rpc } from '../rpc'; import { @@ -13,9 +12,8 @@ import { selectStateTreeInfo, sendAndConfirmTx, } from '../utils'; - import BN from 'bn.js'; -import { StateTreeInfo } from '../state'; +import { TreeInfo } from '../state'; /** * Compress lamports to a solana address @@ -30,13 +28,12 @@ import { StateTreeInfo } from '../state'; * * @return Transaction signature */ - export async function compress( rpc: Rpc, payer: Signer, lamports: number | BN, toAddress: PublicKey, - outputStateTreeInfo?: StateTreeInfo, + outputStateTreeInfo?: TreeInfo, confirmOptions?: ConfirmOptions, ): Promise { const { blockhash } = await rpc.getLatestBlockhash(); diff --git a/js/stateless.js/src/actions/create-account.ts b/js/stateless.js/src/actions/create-account.ts index 63e67c7aa2..6f69521bfe 100644 --- a/js/stateless.js/src/actions/create-account.ts +++ b/js/stateless.js/src/actions/create-account.ts @@ -19,7 +19,7 @@ import { sendAndConfirmTx, } from '../utils'; import { getDefaultAddressTreeInfo } from '../constants'; -import { AddressTreeInfo, bn, StateTreeInfo } from '../state'; +import { AddressTreeInfo, bn, TreeInfo } from '../state'; import BN from 'bn.js'; /** @@ -43,7 +43,7 @@ export async function createAccount( seeds: Uint8Array[], programId: PublicKey, addressTreeInfo?: AddressTreeInfo, - outputStateTreeInfo?: StateTreeInfo, + outputStateTreeInfo?: TreeInfo, confirmOptions?: ConfirmOptions, ): Promise { const { blockhash } = await rpc.getLatestBlockhash(); @@ -117,7 +117,7 @@ export async function createAccountWithLamports( lamports: number | BN, programId: PublicKey, addressTreeInfo?: AddressTreeInfo, - outputStateTreeInfo?: StateTreeInfo, + outputStateTreeInfo?: TreeInfo, confirmOptions?: ConfirmOptions, ): Promise { lamports = bn(lamports); diff --git a/js/stateless.js/src/actions/transfer.ts b/js/stateless.js/src/actions/transfer.ts index ab2930058f..44a681e343 100644 --- a/js/stateless.js/src/actions/transfer.ts +++ b/js/stateless.js/src/actions/transfer.ts @@ -11,11 +11,7 @@ import { selectMinCompressedSolAccountsForTransfer, } from '../programs'; import { Rpc } from '../rpc'; -import { - bn, - CompressedAccountWithMerkleContext, - StateTreeInfo, -} from '../state'; +import { bn, CompressedAccountWithMerkleContext, TreeInfo } from '../state'; import { buildAndSignTx, sendAndConfirmTx } from '../utils'; import { GetCompressedAccountsByOwnerConfig } from '../rpc-interface'; @@ -37,7 +33,6 @@ export async function transfer( lamports: number | BN, owner: Signer, toAddress: PublicKey, - outputStateTreeInfo?: StateTreeInfo, confirmOptions?: ConfirmOptions, ): Promise { let accumulatedLamports = bn(0); diff --git a/js/stateless.js/src/constants.ts b/js/stateless.js/src/constants.ts index b924dd71a8..4f58008a76 100644 --- a/js/stateless.js/src/constants.ts +++ b/js/stateless.js/src/constants.ts @@ -1,7 +1,7 @@ import BN from 'bn.js'; import { Buffer } from 'buffer'; import { ConfirmOptions, PublicKey } from '@solana/web3.js'; -import { StateTreeInfo, TreeType } from './state/types'; +import { TreeInfo, TreeType } from './state/types'; /** /** @@ -127,7 +127,7 @@ export const isLocalTest = (url: string) => { /** * @internal */ -export const localTestActiveStateTreeInfo = (): StateTreeInfo[] => { +export const localTestActiveStateTreeInfo = (): TreeInfo[] => { return [ { tree: new PublicKey(merkletreePubkey), diff --git a/js/stateless.js/src/programs/system/pack.ts b/js/stateless.js/src/programs/system/pack.ts index fd0a7bbfb9..37c749ab88 100644 --- a/js/stateless.js/src/programs/system/pack.ts +++ b/js/stateless.js/src/programs/system/pack.ts @@ -3,7 +3,7 @@ import { CompressedAccount, OutputCompressedAccountWithPackedContext, PackedCompressedAccountWithMerkleContext, - StateTreeInfo, + TreeInfo, TreeType, } from '../../state'; import { CompressedAccountWithMerkleContext } from '../../state/compressed-account'; @@ -89,7 +89,7 @@ export function packCompressedAccounts( inputCompressedAccounts: CompressedAccountWithMerkleContext[], inputStateRootIndices: number[], outputCompressedAccounts: CompressedAccount[], - outputStateTreeInfo?: StateTreeInfo, + outputStateTreeInfo?: TreeInfo, remainingAccounts: PublicKey[] = [], ): { packedInputCompressedAccounts: PackedCompressedAccountWithMerkleContext[]; @@ -139,7 +139,7 @@ export function packCompressedAccounts( ); } - let treeInfo: StateTreeInfo; + let treeInfo: TreeInfo; if (inputCompressedAccounts.length > 0) { treeInfo = inputCompressedAccounts[0].treeInfo; } else if (outputStateTreeInfo) { diff --git a/js/stateless.js/src/programs/system/program.ts b/js/stateless.js/src/programs/system/program.ts index d294d9017d..ea8a26e1bc 100644 --- a/js/stateless.js/src/programs/system/program.ts +++ b/js/stateless.js/src/programs/system/program.ts @@ -10,7 +10,7 @@ import { CompressedAccountWithMerkleContext, ValidityProof, InstructionDataInvoke, - StateTreeInfo, + TreeInfo, bn, createCompressedAccount, } from '../../state'; @@ -59,7 +59,7 @@ type CreateAccountWithSeedParams = { /** * State tree pubkey. Defaults to a public state tree if unspecified. */ - outputStateTreeInfo?: StateTreeInfo; + outputStateTreeInfo?: TreeInfo; /** * Public key of the program to assign as the owner of the created account. */ @@ -131,7 +131,7 @@ type CompressParams = { /** * The state tree that the tx output should be inserted into. */ - outputStateTreeInfo: StateTreeInfo; + outputStateTreeInfo: TreeInfo; }; /** @@ -215,7 +215,6 @@ export class LightSystemProgram { const outputCompressedAccounts: CompressedAccount[] = [ createCompressedAccount( inputCompressedAccounts[0].owner, - changeLamports, ), createCompressedAccount(toAddress, lamports), diff --git a/js/stateless.js/src/rpc-interface.ts b/js/stateless.js/src/rpc-interface.ts index bd2795afc3..89376fa00f 100644 --- a/js/stateless.js/src/rpc-interface.ts +++ b/js/stateless.js/src/rpc-interface.ts @@ -24,7 +24,7 @@ import { MerkleContextWithMerkleProof, bn, TokenData, - StateTreeInfo, + TreeInfo, AddressTreeInfo, CompressedProof, } from './state'; @@ -83,7 +83,7 @@ export interface HashWithTreeInfo { /** * State tree info. */ - stateTreeInfo: StateTreeInfo; + stateTreeInfo: TreeInfo; } /** @@ -182,7 +182,7 @@ export type ValidityProofWithContext = { /** * Tree infos. */ - treeInfos: StateTreeInfo[]; + treeInfos: TreeInfo[]; /** * Whether to prove by indices. */ @@ -580,6 +580,9 @@ const CompressedProofResult = pick({ c: array(number()), }); +/** + * @internal + */ export const RootIndexResultV2 = pick({ rootIndex: number(), proveByIndex: boolean(), @@ -599,16 +602,24 @@ export const ValidityProofResult = pick({ // nullifierQueues: array(PublicKeyFromString), }); -/** - * @internal - */ +const AccountProofInputsResult = pick({ + hash: BN254FromString, + root: BN254FromString, + rootIndex: RootIndexResultV2, + merkleContext: TreeInfoResultV2, + leafIndex: number(), +}); +const AddressProofInputsResult = pick({ + address: BN254FromString, + root: BN254FromString, + rootIndex: number(), + merkleContext: TreeInfoResultV2, +}); + export const ValidityProofResultV2 = pick({ compressedProof: nullable(CompressedProofResult), - roots: array(BN254FromString), - rootIndices: array(RootIndexResultV2), - leafIndices: array(number()), - leaves: array(BN254FromString), - merkleContexts: array(TreeInfoResultV2), + accounts: array(AccountProofInputsResult), + addresses: array(AddressProofInputsResult), }); /** diff --git a/js/stateless.js/src/rpc.ts b/js/stateless.js/src/rpc.ts index 80873a7ac2..2424a76c40 100644 --- a/js/stateless.js/src/rpc.ts +++ b/js/stateless.js/src/rpc.ts @@ -87,7 +87,7 @@ import { getAllStateTreeInfos, getStateTreeInfoByPubkey, } from './utils/get-state-tree-infos'; -import { StateTreeInfo } from './state/types'; +import { TreeInfo } from './state/types'; import { validateNumbersForProof } from './utils'; /** @internal */ @@ -613,10 +613,10 @@ function buildCompressedAccountWithMaybeTokenData( export class Rpc extends Connection implements CompressionApiInterface { compressionApiEndpoint: string; proverEndpoint: string; - allStateTreeInfos: StateTreeInfo[] | null = null; + allStateTreeInfos: TreeInfo[] | null = null; lastStateTreeFetchTime: number | null = null; CACHE_TTL = 1000 * 60 * 60; // 1 hour in ms - fetchPromise: Promise | null = null; + fetchPromise: Promise | null = null; constructor( endpoint: string, @@ -638,7 +638,7 @@ export class Rpc extends Connection implements CompressionApiInterface { * Get a list of all state tree infos. If not already cached, fetches from * the cluster. */ - async getStateTreeInfos(): Promise { + async getStateTreeInfos(): Promise { if (isLocalTest(this.rpcEndpoint)) { return localTestActiveStateTreeInfo(); } @@ -655,7 +655,7 @@ export class Rpc extends Connection implements CompressionApiInterface { return this.fetchPromise; } - let info: StateTreeInfo[] | undefined; + let info: TreeInfo[] | undefined; try { this.fetchPromise = this.doFetch(); info = await this.fetchPromise; @@ -670,7 +670,7 @@ export class Rpc extends Connection implements CompressionApiInterface { /** * @internal */ - async doFetch(): Promise { + async doFetch(): Promise { const { mainnet, devnet } = defaultStateTreeLookupTables(); /// Mainnet keys are not available on devnet and vice versa. Chaining @@ -1856,6 +1856,7 @@ export class Rpc extends Connection implements CompressionApiInterface { jsonRpcResultAndContext(ValidityProofResultV2), ); } else { + throw new Error('V1 is not supported'); res = create( unsafeRes, jsonRpcResultAndContext(ValidityProofResult), @@ -1878,16 +1879,41 @@ export class Rpc extends Connection implements CompressionApiInterface { return { value: { compressedProof: value.compressedProof, - roots: value.roots, - rootIndices: value.rootIndices.map((r: any) => r.rootIndex), - leafIndices: value.leafIndices, - leaves: value.leaves, - treeInfos: value.merkleContexts, - proveByIndices: value.rootIndices.map( - (r: any) => r.proveByIndex, - ), + leaves: value.accounts + .map((r: any) => r.hash) + .concat(value.addresses.map((r: any) => r.address)), + roots: value.accounts + .map((r: any) => r.root) + .concat(value.addresses.map((r: any) => r.root)), + rootIndices: value.accounts + .map((r: any) => r.rootIndex.rootIndex) + .concat(value.addresses.map((r: any) => r.rootIndex)), + proveByIndices: value.accounts + .map((r: any) => r.rootIndex.proveByIndex) + .concat(value.addresses.map((r: any) => false)), + treeInfos: value.accounts + .map((r: any) => r.merkleContext) + .concat(value.addresses.map((r: any) => r.merkleContext)), + leafIndices: value.accounts + .map((r: any) => r.leafIndex) + .concat(value.addresses.map((r: any) => 0)), }, context: res.result.context, }; + // TODO: enable with v1 support. + // return { + // value: { + // compressedProof: value.compressedProof, + // roots: value.roots, + // rootIndices: value.rootIndices.map((r: any) => r.rootIndex), + // leafIndices: value.leafIndices, + // leaves: value.leaves, + // treeInfos: value.merkleContexts, + // proveByIndices: value.rootIndices.map( + // (r: any) => r.proveByIndex, + // ), + // }, + // context: res.result.context, + // }; } } diff --git a/js/stateless.js/src/state/compressed-account.ts b/js/stateless.js/src/state/compressed-account.ts index c6f06c2e6a..a6d7d02a22 100644 --- a/js/stateless.js/src/state/compressed-account.ts +++ b/js/stateless.js/src/state/compressed-account.ts @@ -2,19 +2,43 @@ import { PublicKey } from '@solana/web3.js'; import { CompressedAccount, CompressedAccountData, - StateTreeInfo, + CompressedAccountLegacy, + TreeInfo, } from './types'; import BN from 'bn.js'; import { BN254 } from './BN254'; import { bn } from './bn'; -export type CompressedAccountWithMerkleContext = CompressedAccount & - MerkleContext & { - readOnly: boolean; - }; +// @deprecated use {@link CompressedAccount} instead +// export type CompressedAccountWithMerkleContext = CompressedAccount & +// MerkleContext & { +// readOnly: boolean; +// }; -export type CompressedAccountWithMerkleContextLegacy = CompressedAccount & - MerkleContextLegacy; +export type CompressedAccountWithMerkleContext = MerkleContext & { + /** + * Public key of program or user owning the account. + */ + owner: PublicKey; + /** + * Lamports attached to the account. + */ + lamports: BN; + /** + * Optional unique account ID that is persistent across transactions. + */ + address: number[] | null; + /** + * Optional data attached to the account. + */ + data: CompressedAccountData | null; +} & { + readOnly: boolean; +}; + +// @deprecated use {@link CompressedAccount} instead +// export type CompressedAccountWithMerkleContextLegacy = CompressedAccount & +// MerkleContextLegacy; /** * @deprecated use {@link MerkleContext} instead. @@ -47,7 +71,7 @@ export type MerkleContext = { /** * Tree info */ - treeInfo: StateTreeInfo; + treeInfo: TreeInfo; /** * Poseidon hash of the account. Stored as leaf in state tree */ @@ -105,7 +129,7 @@ export const createCompressedAccountWithMerkleContext = ( }); export const createMerkleContext = ( - treeInfo: StateTreeInfo, + treeInfo: TreeInfo, hash: BN254, leafIndex: number, proveByIndex: boolean = false, diff --git a/js/stateless.js/src/state/types.ts b/js/stateless.js/src/state/types.ts index 6a5e9e0aa8..f2e7a3c070 100644 --- a/js/stateless.js/src/state/types.ts +++ b/js/stateless.js/src/state/types.ts @@ -23,7 +23,7 @@ export enum TreeType { } /** - * @deprecated Use {@link StateTreeInfo} instead. + * @deprecated Use {@link TreeInfo} instead. * * A bundle of active trees for a given tree type. */ @@ -47,13 +47,21 @@ export type ActiveTreeBundle = { }; /** + * @deprecated Use {@link TreeInfo} instead. + * * State tree info, versioned via {@link TreeType}. The protocol * stores compressed accounts in state trees. + */ +export type StateTreeInfo = TreeInfo; + +/** + * Tree info, versioned via {@link TreeType}. The protocol + * stores compressed accounts in state trees, and PDAs in address trees. * * Onchain Accounts are subject to Solana's write-lock limits. * * To load balance transactions, use {@link selectStateTreeInfo} to - * select a random tree from a range of active trees. + * randomly select a tree from a range of active trees. * * Example: * ```typescript @@ -65,7 +73,7 @@ export type ActiveTreeBundle = { * }); * ``` */ -export type StateTreeInfo = { +export type TreeInfo = { /** * Pubkey of the tree account. */ @@ -86,10 +94,12 @@ export type StateTreeInfo = { * Next tree info. Is `some` if the next tree should be used for the next * state transition. */ - nextTreeInfo: StateTreeInfo | null; + nextTreeInfo: TreeInfo | null; }; /** + * @deprecated Use {@link TreeInfo} instead. + * * Address tree info, versioned via {@link TreeType}. The protocol * stores PDAs in address trees. */ @@ -170,6 +180,31 @@ export interface CompressedAccount { data: CompressedAccountData | null; } +/** + * @deprecated Use {@link CompressedAccount} instead. + * + * Describe the generic compressed account details applicable to every + * compressed account. + * + * */ +export interface CompressedAccountLegacy { + /** + * Public key of program or user owning the account. + */ + owner: PublicKey; + /** + * Lamports attached to the account. + */ + lamports: BN; + /** + * Optional unique account ID that is persistent across transactions. + */ + address: number[] | null; + /** + * Optional data attached to the account. + */ + data: CompressedAccountData | null; +} /** * Describe the generic compressed account details applicable to every * compressed account. diff --git a/js/stateless.js/src/test-helpers/test-rpc/test-rpc.ts b/js/stateless.js/src/test-helpers/test-rpc/test-rpc.ts index d8613c8498..651ca87a7c 100644 --- a/js/stateless.js/src/test-helpers/test-rpc/test-rpc.ts +++ b/js/stateless.js/src/test-helpers/test-rpc/test-rpc.ts @@ -42,7 +42,6 @@ import { MerkleContextWithMerkleProof, PublicTransactionEvent, TreeType, - ValidityProof, bn, } from '../../state'; import { IndexedArray } from '../merkle-tree'; @@ -52,7 +51,7 @@ import { convertNonInclusionMerkleProofInputsToHex, proverRequest, } from '../../rpc'; -import { StateTreeInfo } from '../../state/types'; +import { TreeInfo } from '../../state/types'; import { getStateTreeInfoByPubkey } from '../../utils/get-state-tree-infos'; export interface TestRpcConfig { @@ -124,9 +123,9 @@ export class TestRpc extends Connection implements CompressionApiInterface { lightWasm: LightWasm; depth: number; log = false; - allStateTreeInfos: StateTreeInfo[] | null = null; + allStateTreeInfos: TreeInfo[] | null = null; lastStateTreeFetchTime: number | null = null; - fetchPromise: Promise | null = null; + fetchPromise: Promise | null = null; CACHE_TTL = 1000 * 60 * 60; // 1 hour /** @@ -169,10 +168,10 @@ export class TestRpc extends Connection implements CompressionApiInterface { /** * Returns local test state trees. */ - async getStateTreeInfos(): Promise { + async getStateTreeInfos(): Promise { return localTestActiveStateTreeInfo(); } - async doFetch(): Promise { + async doFetch(): Promise { throw new Error('doFetch not supported in test-rpc'); } @@ -266,7 +265,7 @@ export class TestRpc extends Connection implements CompressionApiInterface { { leaves: number[][]; leafIndices: number[]; - treeInfo: StateTreeInfo; + treeInfo: TreeInfo; } > = new Map(); @@ -768,8 +767,8 @@ export class TestRpc extends Connection implements CompressionApiInterface { throw new Error('AddressWithTree is not supported in test-rpc'); } let validityProof: ValidityProofWithContext | null; - const treeInfos = await this.getStateTreeInfos(); - const treeInfosUsed: StateTreeInfo[] = []; + + const treeInfosUsed: TreeInfo[] = []; if (hashes.length === 0 && newAddresses.length === 0) { throw new Error( @@ -803,7 +802,6 @@ export class TestRpc extends Connection implements CompressionApiInterface { 'inclusion', inputs, this.log, - // true, ); validityProof = { compressedProof, @@ -863,9 +861,6 @@ export class TestRpc extends Connection implements CompressionApiInterface { validityProof = { compressedProof, roots: newAddressProofs.map(proof => proof.root), - // TODO(crank): make dynamic to enable forester support in - // test-rpc.ts. Currently this is a static root because the - // address tree doesn't advance. rootIndices: newAddressProofs.map(_ => 3), leafIndices: newAddressProofs.map(proof => proof.indexHashedIndexedElementLeaf.toNumber(), diff --git a/js/stateless.js/src/utils/get-state-tree-infos.ts b/js/stateless.js/src/utils/get-state-tree-infos.ts index c65d0c9006..f77794aecc 100644 --- a/js/stateless.js/src/utils/get-state-tree-infos.ts +++ b/js/stateless.js/src/utils/get-state-tree-infos.ts @@ -1,37 +1,37 @@ import { Connection, PublicKey } from '@solana/web3.js'; -import { StateTreeInfo, TreeType } from '../state/types'; +import { TreeInfo, TreeType } from '../state/types'; import { featureFlags, StateTreeLUTPair } from '../constants'; /** - * Get the info for a given tree or queue - * - * @param info The active state tree addresses - * @param treeOrQueue The tree or queue to get the info for - * @returns The info for the given tree or queue, or throws an error if not - * found + * @deprecated use {@link getTreeInfoByPubkey} instead */ export function getStateTreeInfoByPubkey( - treeInfos: StateTreeInfo[], + treeInfos: TreeInfo[], treeOrQueue: PublicKey, -): StateTreeInfo { - const info = treeInfos.find( - t => t.queue?.equals(treeOrQueue) || t.tree.equals(treeOrQueue), - ); +): TreeInfo { + return getTreeInfoByPubkey(treeInfos, treeOrQueue); +} - if (!info) { +export function getTreeInfoByPubkey( + treeInfos: TreeInfo[], + treeOrQueue: PublicKey, +): TreeInfo { + const treeInfo = treeInfos.find( + info => info.tree.equals(treeOrQueue) || info.queue.equals(treeOrQueue), + ); + if (!treeInfo) { throw new Error( - `No associated StateTreeInfo found for tree or queue. Please set activeStateTreeInfos with latest Tree accounts. If you use custom state trees, set manually. Pubkey: ${treeOrQueue.toBase58()}`, + `No associated TreeInfo found for tree or queue. Please set activeStateTreeInfos with latest Tree accounts. If you use custom state trees, set manually. Pubkey: ${treeOrQueue.toBase58()}`, ); } - - if (!info.queue) { + if (!treeInfo.queue) { throw new Error( 'Queue must not be null for state tree. Please set activeStateTreeInfos with latest Tree accounts. If you use custom state trees, set manually. Pubkey: ' + treeOrQueue.toBase58(), ); } - return info; + return treeInfo; } /** @@ -42,20 +42,26 @@ export function getStateTreeInfoByPubkey( * @param infos Set of state tree infos * @returns A random tree and queue */ -export function pickRandomTreeAndQueue(infos: StateTreeInfo[]): { +export function pickRandomTreeAndQueue(infos: TreeInfo[]): { tree: PublicKey; queue: PublicKey; } { const length = infos.length; const index = Math.floor(Math.random() * length); - if (!infos[index].queue) { - throw new Error('Queue must not be null for state tree'); + let selectedIndex: number; + if (index !== undefined) { + if (index < 0 || index >= infos.length) { + throw new Error( + `Index ${index} out of bounds for infos array of length ${infos.length}`, + ); + } + selectedIndex = index; + } else { + selectedIndex = Math.floor(Math.random() * infos.length); } - return { - tree: infos[index].tree, - queue: infos[index].queue, - }; + + return infos[selectedIndex]; } const MAX_HOTSPOTS = 5; @@ -76,12 +82,12 @@ const MAX_HOTSPOTS = 5; * @returns A pseudo-randomly selected tree info */ export function selectStateTreeInfo( - infos: StateTreeInfo[], + infos: TreeInfo[], treeType: TreeType = featureFlags.isV2() ? TreeType.StateV2 : TreeType.StateV1, useMaxConcurrency: boolean = false, -): StateTreeInfo { +): TreeInfo { const activeInfos = infos.filter(t => !t.nextTreeInfo); const filteredInfos = activeInfos.filter(t => t.treeType === treeType); @@ -117,7 +123,7 @@ export async function getAllStateTreeInfos({ }: { connection: Connection; stateTreeLUTPairs: StateTreeLUTPair[]; -}): Promise { +}): Promise { const stateTreeLookupTablesAndNullifyLookupTables = await Promise.all( stateTreeLUTPairs.map(async lutPair => { return { @@ -131,7 +137,7 @@ export async function getAllStateTreeInfos({ }), ); - const contexts: StateTreeInfo[] = []; + const contexts: TreeInfo[] = []; for (const { stateTreeLookupTable, @@ -159,7 +165,7 @@ export async function getAllStateTreeInfos({ const tree = stateTreePubkeys[i]; const queue = stateTreePubkeys[i + 1]; const cpiContext = stateTreePubkeys[i + 2]; - let nextTreeInfo: StateTreeInfo | null = null; + let nextTreeInfo: TreeInfo | null = null; if (!tree || !queue || !cpiContext) { throw new Error('Invalid state tree pubkeys structure'); diff --git a/js/stateless.js/tests/e2e/compress.test.ts b/js/stateless.js/tests/e2e/compress.test.ts index 7234411a32..843db5492c 100644 --- a/js/stateless.js/tests/e2e/compress.test.ts +++ b/js/stateless.js/tests/e2e/compress.test.ts @@ -10,7 +10,7 @@ import { newAccountWithLamports } from '../../src/test-helpers/test-utils'; import { Rpc } from '../../src/rpc'; import { LightSystemProgram, - StateTreeInfo, + TreeInfo, bn, compress, createAccount, @@ -66,7 +66,7 @@ function txFees( describe('compress', () => { let rpc: Rpc; let payer: Signer; - let stateTreeInfo: StateTreeInfo; + let stateTreeInfo: TreeInfo; beforeAll(async () => { const lightWasm = await WasmFactory.getInstance(); diff --git a/js/stateless.js/tests/e2e/rpc-interop.test.ts b/js/stateless.js/tests/e2e/rpc-interop.test.ts index 017d98b3bf..b175435633 100644 --- a/js/stateless.js/tests/e2e/rpc-interop.test.ts +++ b/js/stateless.js/tests/e2e/rpc-interop.test.ts @@ -4,7 +4,7 @@ import { newAccountWithLamports } from '../../src/test-helpers/test-utils'; import { Rpc, createRpc } from '../../src/rpc'; import { LightSystemProgram, - StateTreeInfo, + TreeInfo, bn, compress, createAccount, @@ -47,7 +47,7 @@ describe('rpc-interop', () => { let rpc: Rpc; let testRpc: TestRpc; let executedTxs = 0; - let stateTreeInfo: StateTreeInfo; + let stateTreeInfo: TreeInfo; beforeAll(async () => { const lightWasm = await WasmFactory.getInstance(); rpc = createRpc(); @@ -133,18 +133,11 @@ describe('rpc-interop', () => { }); /// Executes a transfer using a 'validityProof' from Photon - await transfer(rpc, payer, 1e5, payer, bob.publicKey, stateTreeInfo); + await transfer(rpc, payer, 1e5, payer, bob.publicKey); executedTxs++; /// Executes a transfer using a 'validityProof' directly from a prover. - await transfer( - testRpc, - payer, - 1e5, - payer, - bob.publicKey, - stateTreeInfo, - ); + await transfer(testRpc, payer, 1e5, payer, bob.publicKey); executedTxs++; }); @@ -445,14 +438,7 @@ describe('rpc-interop', () => { assert.isTrue(bn(proofs[0].root).eq(bn(testProofs[0].root))); - await transfer( - rpc, - payer, - transferAmount, - payer, - bob.publicKey, - stateTreeInfo, - ); + await transfer(rpc, payer, transferAmount, payer, bob.publicKey); executedTxs++; const postSenderAccs = await rpc.getCompressedAccountsByOwner( payer.publicKey, @@ -608,7 +594,7 @@ describe('rpc-interop', () => { account.lamports.gt(acc.lamports) ? account : acc, ); - await transfer(rpc, payer, 1, payer, bob.publicKey, stateTreeInfo); + await transfer(rpc, payer, 1, payer, bob.publicKey); executedTxs++; const signaturesSpent = await rpc.getCompressionSignaturesForAccount( diff --git a/js/stateless.js/tests/e2e/rpc-multi-trees.test.ts b/js/stateless.js/tests/e2e/rpc-multi-trees.test.ts index e17115f05f..f5ade6426a 100644 --- a/js/stateless.js/tests/e2e/rpc-multi-trees.test.ts +++ b/js/stateless.js/tests/e2e/rpc-multi-trees.test.ts @@ -4,7 +4,7 @@ import { newAccountWithLamports } from '../../src/test-helpers/test-utils'; import { Rpc, createRpc } from '../../src/rpc'; import { LightSystemProgram, - StateTreeInfo, + TreeInfo, bn, compress, createAccount, @@ -28,7 +28,7 @@ describe('rpc-multi-trees', () => { const randTrees: PublicKey[] = []; const randQueues: PublicKey[] = []; - let stateTreeInfo2: StateTreeInfo; + let stateTreeInfo2: TreeInfo; beforeAll(async () => { const lightWasm = await WasmFactory.getInstance(); rpc = createRpc(); @@ -123,13 +123,13 @@ describe('rpc-multi-trees', () => { /// Executes transfers using random output trees const tree1 = selectStateTreeInfo(await rpc.getStateTreeInfos()); - await transfer(rpc, payer, 1e5, payer, bob.publicKey, tree1); + await transfer(rpc, payer, 1e5, payer, bob.publicKey); executedTxs++; randTrees.push(tree1.tree); randQueues.push(tree1.queue); const tree2 = selectStateTreeInfo(await rpc.getStateTreeInfos()); - await transfer(rpc, payer, 1e5, payer, bob.publicKey, tree2); + await transfer(rpc, payer, 1e5, payer, bob.publicKey); executedTxs++; randTrees.push(tree2.tree); randQueues.push(tree2.queue); @@ -232,14 +232,7 @@ describe('rpc-multi-trees', () => { }); const tree = selectStateTreeInfo(await rpc.getStateTreeInfos()); - await transfer( - rpc, - payer, - transferAmount, - payer, - bob.publicKey, - tree, - ); + await transfer(rpc, payer, transferAmount, payer, bob.publicKey); executedTxs++; } }); diff --git a/js/stateless.js/tests/unit/utils/tree-info.test.ts b/js/stateless.js/tests/unit/utils/tree-info.test.ts index 240f81703d..672f0d54a1 100644 --- a/js/stateless.js/tests/unit/utils/tree-info.test.ts +++ b/js/stateless.js/tests/unit/utils/tree-info.test.ts @@ -1,5 +1,5 @@ import { describe, expect, it } from 'vitest'; -import { StateTreeInfo, TreeType } from '../../../src/state'; +import { TreeType, TreeInfo } from '../../../src/state'; import { selectStateTreeInfo } from '../../../src/utils'; import { PublicKey } from '@solana/web3.js'; import { @@ -12,56 +12,56 @@ import { } from '../../../src'; describe('selectStateTreeInfo', () => { - const info1: StateTreeInfo = { + const info1: TreeInfo = { tree: new PublicKey(merkletreePubkey), queue: new PublicKey(nullifierQueuePubkey), cpiContext: new PublicKey(cpiContextPubkey), treeType: TreeType.StateV1, nextTreeInfo: null, }; - const info2: StateTreeInfo = { + const info2: TreeInfo = { tree: new PublicKey(merkleTree2Pubkey), queue: new PublicKey(nullifierQueue2Pubkey), cpiContext: new PublicKey(cpiContext2Pubkey), treeType: TreeType.StateV1, nextTreeInfo: null, }; - const infoV2: StateTreeInfo = { + const infoV2: TreeInfo = { tree: new PublicKey(merkleTree2Pubkey), queue: new PublicKey(nullifierQueue2Pubkey), cpiContext: new PublicKey(cpiContext2Pubkey), treeType: TreeType.StateV2, nextTreeInfo: null, }; - const info3: StateTreeInfo = { + const info3: TreeInfo = { tree: PublicKey.unique(), queue: PublicKey.unique(), cpiContext: PublicKey.unique(), treeType: TreeType.StateV1, nextTreeInfo: null, }; - const info4: StateTreeInfo = { + const info4: TreeInfo = { tree: PublicKey.unique(), queue: PublicKey.unique(), cpiContext: PublicKey.unique(), treeType: TreeType.StateV1, nextTreeInfo: null, }; - const info5: StateTreeInfo = { + const info5: TreeInfo = { tree: PublicKey.unique(), queue: PublicKey.unique(), cpiContext: PublicKey.unique(), treeType: TreeType.StateV1, nextTreeInfo: null, }; - const info6: StateTreeInfo = { + const info6: TreeInfo = { tree: PublicKey.unique(), queue: PublicKey.unique(), cpiContext: PublicKey.unique(), treeType: TreeType.StateV1, nextTreeInfo: null, }; - const infoInactive: StateTreeInfo = { + const infoInactive: TreeInfo = { tree: PublicKey.unique(), queue: PublicKey.unique(), cpiContext: PublicKey.unique(), @@ -69,7 +69,7 @@ describe('selectStateTreeInfo', () => { nextTreeInfo: info1, }; - const info1V2: StateTreeInfo = { + const info1V2: TreeInfo = { tree: new PublicKey(merkletreePubkey), queue: new PublicKey(nullifierQueuePubkey), cpiContext: new PublicKey(cpiContextPubkey), diff --git a/js/stateless.js/vitest.config.ts b/js/stateless.js/vitest.config.ts index 3200b3d12b..2d24a436c1 100644 --- a/js/stateless.js/vitest.config.ts +++ b/js/stateless.js/vitest.config.ts @@ -5,6 +5,7 @@ export default defineConfig({ include: ['tests/**/*.test.ts'], exclude: process.env.EXCLUDE_E2E ? ['tests/e2e/**'] : [], testTimeout: 30000, + hookTimeout: 20000, reporters: ['verbose'], }, });