diff --git a/.trivyignore b/.trivyignore new file mode 100644 index 0000000000..c7fffdf307 --- /dev/null +++ b/.trivyignore @@ -0,0 +1,6 @@ +# CVE-2020-36460 (RUSTSEC-2021-0103, "Data races in model") applies to the +# unrelated crates.io `model` crate. Trivy matches it by name and version +# against our own workspace crate `crates/model` (also named `model`, version +# 0.1.0), which is a different crate and is not affected. We do not depend on +# the crates.io `model` crate. +CVE-2020-36460 diff --git a/Cargo.lock b/Cargo.lock index f7e258d1df..d506bd8ceb 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -2,6 +2,16 @@ # It is not intended for manual editing. version = 4 +[[package]] +name = "Inflector" +version = "0.11.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fe438c63458706e03479442743baae6c88256498e6431708f6dfc520a26515d3" +dependencies = [ + "lazy_static", + "regex", +] + [[package]] name = "account-balances" version = "0.1.0" @@ -39,6 +49,117 @@ version = "2.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "320119579fcad9c21884f5c4861d16174d0e06250625266f50fe6898340abefa" +[[package]] +name = "aead" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d122413f284cf2d62fb1b7db97e02edb8cda96d769b16e443a4f6195e35662b0" +dependencies = [ + "crypto-common 0.1.7", + "generic-array", +] + +[[package]] +name = "aes" +version = "0.8.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b169f7a6d4742236a0a00c541b845991d0ac43e546831af1249753ab4c3aa3a0" +dependencies = [ + "cfg-if", + "cipher", + "cpufeatures 0.2.17", +] + +[[package]] +name = "aes-gcm-siv" +version = "0.11.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ae0784134ba9375416d469ec31e7c5f9fa94405049cf08c5ce5b4698be673e0d" +dependencies = [ + "aead", + "aes", + "cipher", + "ctr", + "polyval", + "subtle", + "zeroize", +] + +[[package]] +name = "agave-feature-set" +version = "4.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b7ae81d25cfe3b23f2ece079d34763e7e4a6971da50234b93e156ae6b60638be" +dependencies = [ + "ahash", + "solana-epoch-schedule", + "solana-hash 4.4.0", + "solana-keypair", + "solana-pubkey 4.2.0", + "solana-sha256-hasher", + "solana-svm-feature-set", +] + +[[package]] +name = "agave-transaction-view" +version = "4.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "19bc681340a1a874ce1b5d0287e5381756492d29b847725b0bca003ec8e10c20" +dependencies = [ + "solana-hash 4.4.0", + "solana-message", + "solana-packet 4.1.0", + "solana-program-runtime", + "solana-pubkey 4.2.0", + "solana-sdk-ids", + "solana-short-vec", + "solana-signature", + "solana-svm-transaction", + "solana-transaction", + "solana-transaction-context", +] + +[[package]] +name = "agave-xdp" +version = "4.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "84d8bd6d566d9d50683e06614b74ce608f4a026903d49f2033808ce90b9c7fe5" +dependencies = [ + "agave-xdp-ebpf", + "arc-swap", + "aya", + "bytes", + "caps", + "core_affinity", + "crossbeam-channel", + "libc", + "log", + "thiserror 2.0.18", +] + +[[package]] +name = "agave-xdp-ebpf" +version = "4.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1fa617284eb075231a86c5ec2caf5477c43fffa089b248aa90ba1c2056a01811" +dependencies = [ + "aya", + "aya-ebpf", +] + +[[package]] +name = "ahash" +version = "0.8.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5a15f179cd60c4584b8a8c596927aadc462e27f2ca70c04e0071964a73ba7a75" +dependencies = [ + "cfg-if", + "getrandom 0.3.4", + "once_cell", + "version_check", + "zerocopy", +] + [[package]] name = "aho-corasick" version = "1.1.4" @@ -351,7 +472,7 @@ dependencies = [ "foldhash 0.2.0", "getrandom 0.4.2", "hashbrown 0.16.1", - "indexmap 2.13.0", + "indexmap 2.14.0", "itoa", "k256", "keccak-asm", @@ -393,14 +514,14 @@ dependencies = [ "async-stream", "async-trait", "auto_impl", - "dashmap", + "dashmap 6.1.0", "either", "futures", "futures-utils-wasm", "lru", "parking_lot", "pin-project", - "reqwest", + "reqwest 0.13.4", "serde", "serde_json", "thiserror 2.0.18", @@ -468,7 +589,7 @@ dependencies = [ "alloy-transport-ws", "futures", "pin-project", - "reqwest", + "reqwest 0.13.4", "serde", "serde_json", "tokio", @@ -667,7 +788,7 @@ dependencies = [ "alloy-sol-macro-input", "const-hex", "heck", - "indexmap 2.13.0", + "indexmap 2.14.0", "proc-macro-error2", "proc-macro2", "quote", @@ -748,7 +869,7 @@ dependencies = [ "alloy-json-rpc", "alloy-transport", "itertools 0.14.0", - "reqwest", + "reqwest 0.13.4", "serde_json", "tower 0.5.3", "tracing", @@ -863,9 +984,9 @@ dependencies = [ [[package]] name = "anyhow" -version = "1.0.100" +version = "1.0.103" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a23eb6b1614318a8071c9b2521f36b424b2c83db5eb3a0fead4a6c0809af6e61" +checksum = "2a4385e2e34eb35d6b3efe798b9eb88096925d87726c0798709bf56d9ed84af3" [[package]] name = "app-data" @@ -885,9 +1006,9 @@ dependencies = [ [[package]] name = "arc-swap" -version = "1.8.0" +version = "1.9.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "51d03449bb8ca2cc2ef70869af31463d1ae5ccc8fa3e334b307203fbf815207e" +checksum = "c049c0be4daef0b145cb3555416b3b8ef5b7888a38aea1a3a155801fe7b0810b" dependencies = [ "rustversion", ] @@ -903,7 +1024,7 @@ dependencies = [ "ark-serialize 0.3.0", "ark-std 0.3.0", "derivative", - "num-bigint", + "num-bigint 0.4.6", "num-traits", "paste", "rustc_version 0.3.3", @@ -923,7 +1044,7 @@ dependencies = [ "derivative", "digest 0.10.7", "itertools 0.10.5", - "num-bigint", + "num-bigint 0.4.6", "num-traits", "paste", "rustc_version 0.4.1", @@ -944,7 +1065,7 @@ dependencies = [ "digest 0.10.7", "educe", "itertools 0.13.0", - "num-bigint", + "num-bigint 0.4.6", "num-traits", "paste", "zeroize", @@ -986,7 +1107,7 @@ version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "db2fd794a08ccb318058009eefdf15bcaaaaf6f8161eb3345f907222bac38b20" dependencies = [ - "num-bigint", + "num-bigint 0.4.6", "num-traits", "quote", "syn 1.0.109", @@ -998,7 +1119,7 @@ version = "0.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7abe79b0e4288889c4574159ab790824d0033b9fdcb2a112a3182fac2e514565" dependencies = [ - "num-bigint", + "num-bigint 0.4.6", "num-traits", "proc-macro2", "quote", @@ -1011,7 +1132,7 @@ version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "09be120733ee33f7693ceaa202ca41accd5653b779563608f1234f78ae07c4b3" dependencies = [ - "num-bigint", + "num-bigint 0.4.6", "num-traits", "proc-macro2", "quote", @@ -1036,7 +1157,7 @@ checksum = "adb7b85a02b83d2f22f89bd5cac66c9c89474240cb6207cb1efc16d098e822a5" dependencies = [ "ark-std 0.4.0", "digest 0.10.7", - "num-bigint", + "num-bigint 0.4.6", ] [[package]] @@ -1048,7 +1169,7 @@ dependencies = [ "ark-std 0.5.0", "arrayvec", "digest 0.10.7", - "num-bigint", + "num-bigint 0.4.6", ] [[package]] @@ -1096,6 +1217,57 @@ dependencies = [ "serde", ] +[[package]] +name = "ascii" +version = "0.9.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "eab1c04a571841102f5345a8fc0f6bb3d31c315dec879b5c6e42e40ce7ffa34e" + +[[package]] +name = "asn1-rs" +version = "0.7.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b7f43a50ac4fdca5df8e885c21b835997f0a1cdee65494a6847694a98652d9d8" +dependencies = [ + "asn1-rs-derive", + "asn1-rs-impl", + "displaydoc", + "nom", + "num-traits", + "rusticata-macros", + "thiserror 2.0.18", + "time", +] + +[[package]] +name = "asn1-rs-derive" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3109e49b1e4909e9db6515a30c633684d68cdeaa252f215214cb4fa1a5bfee2c" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.118", + "synstructure", +] + +[[package]] +name = "asn1-rs-impl" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7b18050c2cd6fe86c3a76584ef5e0baf286d038cda203eb6223df2cc413565f7" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.118", +] + +[[package]] +name = "assert_matches" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9b34d609dfbaf33d6889b2b7106d3ca345eacad44200913df5ba02bfd31d2ba9" + [[package]] name = "async-compression" version = "0.4.37" @@ -1253,7 +1425,7 @@ dependencies = [ "const-hex", "contracts", "cow-amm", - "dashmap", + "dashmap 6.1.0", "database", "derive_more 1.0.0", "eth-domain-types", @@ -1265,13 +1437,13 @@ dependencies = [ "http-client", "humantime", "humantime-serde", - "indexmap 2.13.0", + "indexmap 2.14.0", "itertools 0.14.0", "maplit", "mimalloc", "mockall", "model", - "num", + "num 0.4.3", "number", "observe", "order-validation", @@ -1279,7 +1451,7 @@ dependencies = [ "prometheus", "prometheus-metric-storage", "rand 0.9.4", - "reqwest", + "reqwest 0.13.4", "rust_decimal", "s3", "serde", @@ -1856,6 +2028,90 @@ dependencies = [ "tracing", ] +[[package]] +name = "aya" +version = "0.13.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d18bc4e506fbb85ab7392ed993a7db4d1a452c71b75a246af4a80ab8c9d2dd50" +dependencies = [ + "assert_matches", + "aya-obj", + "bitflags 2.10.0", + "bytes", + "libc", + "log", + "object 0.36.7", + "once_cell", + "thiserror 1.0.69", +] + +[[package]] +name = "aya-build" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "59bc42f3c5ddacc34eca28a420b47e3cbb3f0f484137cb2bf1ad2153d0eae52a" +dependencies = [ + "anyhow", + "cargo_metadata", +] + +[[package]] +name = "aya-ebpf" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d8dbaf5409a1a0982e5c9bdc0f499a55fe5ead39fe9c846012053faf0d404f73" +dependencies = [ + "aya-ebpf-bindings", + "aya-ebpf-cty", + "aya-ebpf-macros", + "rustversion", +] + +[[package]] +name = "aya-ebpf-bindings" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "71ee8e6a617f040d8da7565ec4010aea75e33cda4662f64c019c66ee97d17889" +dependencies = [ + "aya-build", + "aya-ebpf-cty", +] + +[[package]] +name = "aya-ebpf-cty" +version = "0.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e6f33396742e7fd0f519c1e0de5141d84e1a8df69146a557c08cc222b0ceace4" +dependencies = [ + "aya-build", +] + +[[package]] +name = "aya-ebpf-macros" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "96fd02363736177e7e91d6c95d7effbca07be87502c7b5b32fc194aed8b177a0" +dependencies = [ + "proc-macro2", + "proc-macro2-diagnostics", + "quote", + "syn 2.0.118", +] + +[[package]] +name = "aya-obj" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c51b96c5a8ed8705b40d655273bc4212cbbf38d4e3be2788f36306f154523ec7" +dependencies = [ + "bytes", + "core-error", + "hashbrown 0.15.5", + "log", + "object 0.36.7", + "thiserror 1.0.69", +] + [[package]] name = "backtrace" version = "0.3.76" @@ -1866,7 +2122,7 @@ dependencies = [ "cfg-if", "libc", "miniz_oxide", - "object", + "object 0.37.3", "rustc-demangle", "windows-link", ] @@ -1937,6 +2193,12 @@ dependencies = [ "match-lookup", ] +[[package]] +name = "base64" +version = "0.13.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9e1b586273c5702936fe7b7d6896644d8be71e6314cfe09d3167c95f712589e8" + [[package]] name = "base64" version = "0.21.7" @@ -1979,7 +2241,7 @@ checksum = "4d6867f1565b3aad85681f1015055b087fcfd840d6aeee6eee7f2da317603695" dependencies = [ "autocfg", "libm", - "num-bigint", + "num-bigint 0.4.6", "num-integer", "num-traits", "serde", @@ -2184,6 +2446,9 @@ name = "bytemuck" version = "1.25.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c8efb64bd706a16a1bdde310ae86b351e4d21550d98d056f22f8a7f7a2183fec" +dependencies = [ + "bytemuck_derive", +] [[package]] name = "bytemuck_derive" @@ -2258,6 +2523,48 @@ dependencies = [ "thiserror 1.0.69", ] +[[package]] +name = "camino" +version = "1.2.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5f2d30e4173c4026932d51d31d6b0613b1fd3014bf3f9f8943d4ba139c437ba0" +dependencies = [ + "serde_core", +] + +[[package]] +name = "caps" +version = "0.5.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fd1ddba47aba30b6a889298ad0109c3b8dcb0e8fc993b459daa7067d46f865e0" +dependencies = [ + "libc", +] + +[[package]] +name = "cargo-platform" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dd0061da739915fae12ea00e16397555ed4371a6bb285431aab930f61b0aa4ba" +dependencies = [ + "serde", + "serde_core", +] + +[[package]] +name = "cargo_metadata" +version = "0.23.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ef987d17b0a113becdd19d3d0022d04d7ef41f9efe4f3fb63ac44ba61df3ade9" +dependencies = [ + "camino", + "cargo-platform", + "semver 1.0.28", + "serde", + "serde_json", + "thiserror 2.0.18", +] + [[package]] name = "cc" version = "1.2.52" @@ -2288,6 +2595,17 @@ version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "613afe47fcd5fac7ccf1db93babcb082c5994d996f20b8b159f2ad1658eb5724" +[[package]] +name = "cfg_eval" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "45565fc9416b9896014f5732ac776f810ee53a66730c17e4020c3ec064a8f88f" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.118", +] + [[package]] name = "chacha20" version = "0.10.0" @@ -2320,6 +2638,16 @@ dependencies = [ "windows-link", ] +[[package]] +name = "cipher" +version = "0.4.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "773f3b9af64447d2ce9850330c473515014aa235e6a783b02db81ff39e4a3dad" +dependencies = [ + "crypto-common 0.1.7", + "inout", +] + [[package]] name = "clap" version = "4.5.54" @@ -2432,6 +2760,19 @@ version = "1.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b05b61dc5112cbb17e4b6cd61790d9845d13888356391624cbe7e41efeac1e75" +[[package]] +name = "combine" +version = "3.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "da3da6baa321ec19e1cc41d31bf599f00c783d0517095cdaf0332e3fe8d20680" +dependencies = [ + "ascii", + "byteorder", + "either", + "memchr", + "unreachable", +] + [[package]] name = "combine" version = "4.6.7" @@ -2490,6 +2831,18 @@ dependencies = [ "url", ] +[[package]] +name = "console" +version = "0.16.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d64e8af5551369d19cf50138de61f1c42074ab970f74e99be916646777f8fc87" +dependencies = [ + "encode_unicode", + "libc", + "unicode-width", + "windows-sys 0.61.2", +] + [[package]] name = "console-api" version = "0.7.0" @@ -2706,6 +3059,15 @@ dependencies = [ "url", ] +[[package]] +name = "core-error" +version = "0.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "efcdb2972eb64230b4c50646d8498ff73f5128d196a90c7236eec4cbe8619b8f" +dependencies = [ + "version_check", +] + [[package]] name = "core-foundation" version = "0.9.4" @@ -2733,9 +3095,20 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "773648b94d0e5d620f64f280777445740e61fe701025087ec8b57f45c791888b" [[package]] -name = "cow-amm" -version = "0.1.0" -dependencies = [ +name = "core_affinity" +version = "0.8.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a034b3a7b624016c6e13f5df875747cc25f884156aad2abd12b6c46797971342" +dependencies = [ + "libc", + "num_cpus", + "winapi", +] + +[[package]] +name = "cow-amm" +version = "0.1.0" +dependencies = [ "alloy-contract", "alloy-primitives", "alloy-provider", @@ -3654,6 +4027,16 @@ dependencies = [ "crossbeam-utils", ] +[[package]] +name = "crossbeam-deque" +version = "0.8.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9dd111b7b7f7d55b72c0a6ae361660ee5853c9af73f70c3c2ef6858b950e2e51" +dependencies = [ + "crossbeam-epoch", + "crossbeam-utils", +] + [[package]] name = "crossbeam-epoch" version = "0.9.18" @@ -3703,6 +4086,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "78c8292055d1c1df0cce5d180393dc8cce0abec0a7102adb6c7b1eef6016d60a" dependencies = [ "generic-array", + "rand_core 0.6.4", "typenum", ] @@ -3715,6 +4099,15 @@ dependencies = [ "hybrid-array", ] +[[package]] +name = "ctr" +version = "0.9.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0369ee1ad671834580515889b80f2ea915f23b8be8d0daa4bbaf2ac5c7590835" +dependencies = [ + "cipher", +] + [[package]] name = "ctutils" version = "0.4.2" @@ -3737,6 +4130,7 @@ dependencies = [ "fiat-crypto", "rand_core 0.6.4", "rustc_version 0.4.1", + "serde", "subtle", "zeroize", ] @@ -3822,6 +4216,19 @@ dependencies = [ "syn 2.0.118", ] +[[package]] +name = "dashmap" +version = "5.5.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "978747c1d849a7d2ee5e8adc0159961c48fb7e5db2f06af6723b80123bb53856" +dependencies = [ + "cfg-if", + "hashbrown 0.14.5", + "lock_api", + "once_cell", + "parking_lot_core", +] + [[package]] name = "dashmap" version = "6.1.0" @@ -3859,7 +4266,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7ab67060fc6b8ef687992d439ca0fa36e7ed17e9a0b16b25b601e8757df720de" dependencies = [ "data-encoding", - "syn 1.0.109", + "syn 2.0.118", ] [[package]] @@ -3890,6 +4297,20 @@ dependencies = [ "zeroize", ] +[[package]] +name = "der-parser" +version = "10.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "07da5016415d5a3c4dd39b11ed26f915f52fc4e0dc197d87908bc916e51bc1a6" +dependencies = [ + "asn1-rs", + "displaydoc", + "nom", + "num-bigint 0.4.6", + "num-traits", + "rusticata-macros", +] + [[package]] name = "deranged" version = "0.5.5" @@ -4048,7 +4469,7 @@ dependencies = [ "const-hex", "contracts", "cow-amm", - "dashmap", + "dashmap 6.1.0", "derive_more 1.0.0", "eth-domain-types", "ethrpc", @@ -4065,7 +4486,7 @@ dependencies = [ "mimalloc", "model", "moka", - "num", + "num 0.4.3", "number", "observe", "price-estimation", @@ -4073,7 +4494,7 @@ dependencies = [ "prometheus-metric-storage", "rand 0.9.4", "request-sharing", - "reqwest", + "reqwest 0.13.4", "s3", "serde", "serde-ext", @@ -4142,7 +4563,7 @@ dependencies = [ "pool-indexer", "price-estimation", "refunder", - "reqwest", + "reqwest 0.13.4", "rstest", "serde", "serde_json", @@ -4161,6 +4582,12 @@ dependencies = [ "url", ] +[[package]] +name = "eager" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "abe71d579d1812060163dff96056261deb5bf6729b100fa2e36a68b9649ba3d3" + [[package]] name = "ecdsa" version = "0.16.9" @@ -4255,6 +4682,12 @@ dependencies = [ "zeroize", ] +[[package]] +name = "encode_unicode" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "34aa73646ffb006b8f5147f3dc182bd4bcb190227ce861fc4a4844bf8e3cb2c0" + [[package]] name = "encoding_rs" version = "0.8.35" @@ -4264,6 +4697,26 @@ dependencies = [ "cfg-if", ] +[[package]] +name = "enum-iterator" +version = "2.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a4549325971814bda7a44061bf3fe7e487d447cba01e4220a4b454d630d7a016" +dependencies = [ + "enum-iterator-derive", +] + +[[package]] +name = "enum-iterator-derive" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "685adfa4d6f3d765a26bc5dbc936577de9abf756c1feeb3089b01dd395034842" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.118", +] + [[package]] name = "enum-ordinalize" version = "4.3.2" @@ -4319,7 +4772,7 @@ dependencies = [ "alloy-primitives", "alloy-rpc-types", "derive_more 1.0.0", - "num", + "num 0.4.3", "number", ] @@ -4348,7 +4801,7 @@ dependencies = [ "prometheus", "prometheus-metric-storage", "rand 0.9.4", - "reqwest", + "reqwest 0.13.4", "scopeguard", "serde", "serde_json", @@ -4404,6 +4857,18 @@ dependencies = [ "pin-project-lite", ] +[[package]] +name = "fastbloom" +version = "0.14.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4e7f34442dbe69c60fe8eaf58a8cafff81a1f278816d8ab4db255b3bef4ac3c4" +dependencies = [ + "getrandom 0.3.4", + "libm", + "rand 0.9.4", + "siphasher 1.0.3", +] + [[package]] name = "fastrand" version = "2.3.0" @@ -4585,9 +5050,9 @@ checksum = "e6d5a32815ae3f33302d95fdcb2ce17862f8c65363dcfd29360480ba1001fc9c" [[package]] name = "futures" -version = "0.3.31" +version = "0.3.32" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "65bc07b1a8bc7c85c5f2e110c476c7389b4554ba72af57d8445ea63a576b0876" +checksum = "8b147ee9d1f6d097cef9ce628cd2ee62288d963e16fb287bd9286455b241382d" dependencies = [ "futures-channel", "futures-core", @@ -4600,9 +5065,9 @@ dependencies = [ [[package]] name = "futures-channel" -version = "0.3.31" +version = "0.3.32" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2dff15bf788c671c1934e366d07e30c1814a8ef514e1af724a602e8a2fbe1b10" +checksum = "07bbe89c50d7a535e539b8c17bc0b49bdb77747034daa8087407d655f3f7cc1d" dependencies = [ "futures-core", "futures-sink", @@ -4610,15 +5075,15 @@ dependencies = [ [[package]] name = "futures-core" -version = "0.3.31" +version = "0.3.32" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "05f29059c0c2090612e8d742178b0580d2dc940c837851ad723096f87af6663e" +checksum = "7e3450815272ef58cec6d564423f6e755e25379b217b0bc688e295ba24df6b1d" [[package]] name = "futures-executor" -version = "0.3.31" +version = "0.3.32" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e28d1d997f585e54aebc3f97d39e72338912123a67330d723fdbb564d646c9f" +checksum = "baf29c38818342a3b26b5b923639e7b1f4a61fc5e76102d4b1981c6dc7a7579d" dependencies = [ "futures-core", "futures-task", @@ -4638,15 +5103,15 @@ dependencies = [ [[package]] name = "futures-io" -version = "0.3.31" +version = "0.3.32" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9e5c1b78ca4aae1ac06c48a526a655760685149f0d465d21f37abfe57ce075c6" +checksum = "cecba35d7ad927e23624b22ad55235f2239cfa44fd10428eecbeba6d6a717718" [[package]] name = "futures-macro" -version = "0.3.31" +version = "0.3.32" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "162ee34ebcb7c64a8abebc059ce0fee27c2262618d7b60ed8faf72fef13c3650" +checksum = "e835b70203e41293343137df5c0664546da5745f82ec9b84d40be8336958447b" dependencies = [ "proc-macro2", "quote", @@ -4655,15 +5120,15 @@ dependencies = [ [[package]] name = "futures-sink" -version = "0.3.31" +version = "0.3.32" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e575fab7d1e0dcb8d0c7bcf9a63ee213816ab51902e6d244a95819acacf1d4f7" +checksum = "c39754e157331b013978ec91992bde1ac089843443c49cbc7f46150b0fad0893" [[package]] name = "futures-task" -version = "0.3.31" +version = "0.3.32" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f90f7dce0722e95104fcb095585910c0977252f286e354b5e3bd38902cd99988" +checksum = "037711b3d59c33004d3856fbdc83b99d4ff37a24768fa1be9ce3538a1cde4393" [[package]] name = "futures-timer" @@ -4673,9 +5138,9 @@ checksum = "f288b0a4f20f9a56b5d1da57e2227c661b7b16168e2f72365f57b63326e29b24" [[package]] name = "futures-util" -version = "0.3.31" +version = "0.3.32" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9fa08315bb612088cc391249efdc3bc77536f16c91f6cf495e6fbe85b20a4a81" +checksum = "389ca41296e6190b48053de0321d02a77f32f8a5d2461dd38762c0593805c6d6" dependencies = [ "futures-channel", "futures-core", @@ -4685,7 +5150,6 @@ dependencies = [ "futures-task", "memchr", "pin-project-lite", - "pin-utils", "slab", ] @@ -4710,7 +5174,7 @@ dependencies = [ "observe", "prometheus", "prometheus-metric-storage", - "reqwest", + "reqwest 0.13.4", "tokio", "tracing", "url", @@ -4727,6 +5191,16 @@ dependencies = [ "zeroize", ] +[[package]] +name = "gethostname" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1bd49230192a3797a9a4d6abe9b3eed6f7fa4c8a8a4947977c6f80025f92cbd8" +dependencies = [ + "rustix", + "windows-link", +] + [[package]] name = "getrandom" version = "0.2.17" @@ -4803,7 +5277,7 @@ dependencies = [ "futures-sink", "futures-util", "http 0.2.12", - "indexmap 2.13.0", + "indexmap 2.14.0", "slab", "tokio", "tokio-util", @@ -4822,13 +5296,22 @@ dependencies = [ "futures-core", "futures-sink", "http 1.4.0", - "indexmap 2.13.0", + "indexmap 2.14.0", "slab", "tokio", "tokio-util", "tracing", ] +[[package]] +name = "hash32" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "47d60b12902ba28e2730cd37e95b8c9223af2808df9e902d4df49588d1470606" +dependencies = [ + "byteorder", +] + [[package]] name = "hashbrown" version = "0.12.3" @@ -4865,6 +5348,12 @@ dependencies = [ "serde_core", ] +[[package]] +name = "hashbrown" +version = "0.17.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ed5909b6e89a2db4456e54cd5f673791d7eca6732202bbf2a9cc504fe2f9b84a" + [[package]] name = "hashlink" version = "0.10.0" @@ -4990,6 +5479,12 @@ dependencies = [ "tracing", ] +[[package]] +name = "histogram" +version = "0.6.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "12cb882ccb290b8646e554b157ab0b71e64e8d5bef775cd66b6531e52d302669" + [[package]] name = "hkdf" version = "0.12.4" @@ -5079,7 +5574,7 @@ dependencies = [ "clap", "configs", "humantime", - "reqwest", + "reqwest 0.13.4", ] [[package]] @@ -5181,6 +5676,7 @@ dependencies = [ "tokio", "tokio-rustls", "tower-service", + "webpki-roots 1.0.6", ] [[package]] @@ -5226,7 +5722,7 @@ dependencies = [ "libc", "percent-encoding", "pin-project-lite", - "socket2 0.6.1", + "socket2 0.5.10", "system-configuration 0.5.1", "tokio", "tower-service", @@ -5405,16 +5901,38 @@ dependencies = [ [[package]] name = "indexmap" -version = "2.13.0" +version = "2.14.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7714e70437a7dc3ac8eb7e6f8df75fd8eb422675fc7678aff7364301092b1017" +checksum = "d466e9454f08e4a911e14806c24e16fba1b4c121d1ea474396f396069cf949d9" dependencies = [ "equivalent", - "hashbrown 0.16.1", + "hashbrown 0.17.1", "serde", "serde_core", ] +[[package]] +name = "indicatif" +version = "0.18.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "993f007684f2e9727160da8b960ec161264703bfd1af084fd2e34d040c9a0dd4" +dependencies = [ + "console", + "portable-atomic", + "unicode-width", + "unit-prefix", + "web-time", +] + +[[package]] +name = "inout" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "879f10e63c20629ecabbb64a8010319738c66a5cd0c29b02d63d272b03751d01" +dependencies = [ + "generic-array", +] + [[package]] name = "instant" version = "0.1.13" @@ -5430,7 +5948,7 @@ version = "0.3.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4d40460c0ce33d6ce4b0630ad68ff63d6661961c48b6dba35e5a4d81cfb48222" dependencies = [ - "socket2 0.6.1", + "socket2 0.6.4", "widestring", "windows-registry", "windows-result", @@ -5529,7 +6047,7 @@ checksum = "1a87aa2bb7d2af34197c04845522473242e1aa17c12f4935d5856491a7fb8c97" dependencies = [ "cesu8", "cfg-if", - "combine", + "combine 4.6.7", "jni-sys 0.3.0", "log", "thiserror 1.0.69", @@ -5544,7 +6062,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5efd9a482cf3a427f00d6b35f14332adc7902ce91efb778580e180ff90fa3498" dependencies = [ "cfg-if", - "combine", + "combine 4.6.7", "jni-macros", "jni-sys 0.4.1", "log", @@ -5612,6 +6130,21 @@ dependencies = [ "wasm-bindgen", ] +[[package]] +name = "jsonrpc-core" +version = "18.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "14f7f76aef2d054868398427f6c54943cf3d1caa9a7ec7d0c38d69df97a965eb" +dependencies = [ + "futures", + "futures-executor", + "futures-util", + "log", + "serde", + "serde_derive", + "serde_json", +] + [[package]] name = "k256" version = "0.13.4" @@ -5663,9 +6196,9 @@ checksum = "09edd9e8b54e49e587e4f6295a7d29c3ea94d469cb40ab8ca70b288248a81db2" [[package]] name = "libc" -version = "0.2.180" +version = "0.2.186" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bcc35a38544a891a5f7c865aca548a982ccb3b8650a5b06d0fd33a10283c56fc" +checksum = "68ab91017fe16c622486840e4c83c9a37afeff978bd239b5293d61ece587de66" [[package]] name = "libm" @@ -5732,14 +6265,14 @@ dependencies = [ "maplit", "mockall", "model", - "num", + "num 0.4.3", "number", "observe", "prometheus", "prometheus-metric-storage", "regex", "request-sharing", - "reqwest", + "reqwest 0.13.4", "serde", "serde_json", "serde_with", @@ -5880,6 +6413,18 @@ dependencies = [ "autocfg", ] +[[package]] +name = "merlin" +version = "3.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "58c38e2799fc0978b65dfff8023ec7843e2330bb462f19198840b34b6582397d" +dependencies = [ + "byteorder", + "keccak", + "rand_core 0.6.4", + "zeroize", +] + [[package]] name = "mimalloc" version = "0.1.48" @@ -5913,9 +6458,9 @@ dependencies = [ [[package]] name = "mio" -version = "1.1.1" +version = "1.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a69bcab0ad47271a0234d9422b131806bf3968021e5dc9328caf2d4cd58557fc" +checksum = "02bd0af71c67b473010cbbc60715ee815645a4dc942899111f494b4b737d6fda" dependencies = [ "libc", "wasi", @@ -5966,7 +6511,7 @@ dependencies = [ "derive_more 1.0.0", "hex-literal", "maplit", - "num", + "num 0.4.3", "number", "serde", "serde-ext", @@ -6037,6 +6582,19 @@ version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "27b02d87554356db9e9a873add8782d4ea6e3e58ea071a9adb9a2e8ddb884a8b" +[[package]] +name = "nix" +version = "0.31.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cf20d2fde8ff38632c426f1165ed7436270b44f199fc55284c38276f9db47c3d" +dependencies = [ + "bitflags 2.10.0", + "cfg-if", + "cfg_aliases", + "libc", + "memoffset", +] + [[package]] name = "nkeys" version = "0.4.5" @@ -6080,17 +6638,42 @@ dependencies = [ "rand 0.8.5", ] +[[package]] +name = "num" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b8536030f9fea7127f841b45bb6243b27255787fb4eb83958aa1ef9d2fdc0c36" +dependencies = [ + "num-bigint 0.2.6", + "num-complex 0.2.4", + "num-integer", + "num-iter", + "num-rational 0.2.4", + "num-traits", +] + [[package]] name = "num" version = "0.4.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "35bd024e8b2ff75562e5f34e7f4905839deb4b22955ef5e73d2fea1b9813cb23" dependencies = [ - "num-bigint", - "num-complex", + "num-bigint 0.4.6", + "num-complex 0.4.6", "num-integer", "num-iter", - "num-rational", + "num-rational 0.4.2", + "num-traits", +] + +[[package]] +name = "num-bigint" +version = "0.2.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "090c7f9998ee0ff65aa5b723e4009f7b217707f1fb5ea551329cc4d6231fb304" +dependencies = [ + "autocfg", + "num-integer", "num-traits", ] @@ -6120,6 +6703,16 @@ dependencies = [ "zeroize", ] +[[package]] +name = "num-complex" +version = "0.2.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b6b19411a9719e753aff12e5187b74d60d3dc449ec3f4dc21e3989c3f554bc95" +dependencies = [ + "autocfg", + "num-traits", +] + [[package]] name = "num-complex" version = "0.4.6" @@ -6135,6 +6728,17 @@ version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "cf97ec579c3c42f953ef76dbf8d55ac91fb219dde70e49aa4a6b7d74e9919050" +[[package]] +name = "num-derive" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ed3955f1a9c7c0c15e092f9c887db08b1fc683305fdf6eb6684f22555355e202" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.118", +] + [[package]] name = "num-integer" version = "0.1.46" @@ -6155,13 +6759,25 @@ dependencies = [ "num-traits", ] +[[package]] +name = "num-rational" +version = "0.2.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5c000134b5dbf44adc5cb772486d335293351644b801551abe8f75c84cfa4aef" +dependencies = [ + "autocfg", + "num-bigint 0.2.6", + "num-integer", + "num-traits", +] + [[package]] name = "num-rational" version = "0.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f83d14da390562dca69fc84082e73e548e1ad308d24accdedd2720017cb37824" dependencies = [ - "num-bigint", + "num-bigint 0.4.6", "num-integer", "num-traits", ] @@ -6224,7 +6840,7 @@ dependencies = [ "alloy-primitives", "anyhow", "bigdecimal", - "num", + "num 0.4.3", "ruint", "serde", "serde_with", @@ -6244,6 +6860,18 @@ dependencies = [ "smallvec", ] +[[package]] +name = "object" +version = "0.36.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "62948e14d923ea95ea2c7c86c71013138b66525b86bdc08d2dcc262bdb497b87" +dependencies = [ + "crc32fast", + "hashbrown 0.15.5", + "indexmap 2.14.0", + "memchr", +] + [[package]] name = "object" version = "0.37.3" @@ -6285,6 +6913,15 @@ dependencies = [ "url", ] +[[package]] +name = "oid-registry" +version = "0.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "12f40cff3dde1b6087cc5d5f5d4d65712f34016a03ed60e9c08dcc392736b5b7" +dependencies = [ + "asn1-rs", +] + [[package]] name = "once_cell" version = "1.21.3" @@ -6301,6 +6938,12 @@ version = "1.70.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "384b8ab6d37215f3c5301a95a4accb5d64aa607f1fcb26a11b5303878451b4fe" +[[package]] +name = "opaque-debug" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c08d65885ee38876c4f86fa503fb49d7b507c2b62552df7c70b2fce627e06381" + [[package]] name = "openssl" version = "0.10.75" @@ -6375,7 +7018,7 @@ dependencies = [ "bytes", "http 1.4.0", "opentelemetry", - "reqwest", + "reqwest 0.13.4", ] [[package]] @@ -6390,7 +7033,7 @@ dependencies = [ "opentelemetry-proto", "opentelemetry_sdk", "prost 0.14.3", - "reqwest", + "reqwest 0.13.4", "thiserror 2.0.18", "tokio", "tonic 0.14.4", @@ -6438,7 +7081,7 @@ dependencies = [ "futures", "hmac", "moka", - "reqwest", + "reqwest 0.13.4", "sha2", "thiserror 1.0.69", "tokio", @@ -6480,14 +7123,14 @@ dependencies = [ "mockall", "model", "multibase", - "num", + "num 0.4.3", "number", "observe", "order-validation", "price-estimation", "prometheus", "prometheus-metric-storage", - "reqwest", + "reqwest 0.13.4", "serde", "serde_json", "serde_with", @@ -6603,6 +7246,15 @@ dependencies = [ "hmac", ] +[[package]] +name = "pem" +version = "1.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a8835c273a76a90455d7344889b0964598e3316e2a79ede8e36f16bdcf2228b8" +dependencies = [ + "base64 0.13.1", +] + [[package]] name = "pem-rfc7468" version = "0.7.0" @@ -6618,6 +7270,15 @@ version = "2.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9b4f627cb1b25917193a259e49bdad08f671f8d9708acfd5fe0a8c1455d87220" +[[package]] +name = "percentage" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2fd23b938276f14057220b707937bcb42fa76dda7560e57a2da30cb52d557937" +dependencies = [ + "num 0.2.1", +] + [[package]] name = "pest" version = "2.8.5" @@ -6636,7 +7297,7 @@ checksum = "8701b58ea97060d5e5b155d383a69952a60943f0e6dfe30b04c287beb0b27455" dependencies = [ "fixedbitset", "hashbrown 0.15.5", - "indexmap 2.13.0", + "indexmap 2.14.0", ] [[package]] @@ -6708,6 +7369,18 @@ version = "0.3.32" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7edddbd0b52d732b21ad9a5fab5c704c14cd949e5e9a1ec5929a24fded1b904c" +[[package]] +name = "polyval" +version = "0.6.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9d1fe60d06143b2430aa532c94cfe9e29783047f06c0d7fd359a9a51b729fa25" +dependencies = [ + "cfg-if", + "cpufeatures 0.2.17", + "opaque-debug", + "universal-hash", +] + [[package]] name = "pool-indexer" version = "0.1.0" @@ -6729,12 +7402,12 @@ dependencies = [ "futures", "itertools 0.14.0", "mimalloc", - "num", + "num 0.4.3", "number", "observe", "prometheus", "prometheus-metric-storage", - "reqwest", + "reqwest 0.13.4", "scopeguard", "serde", "serde_json", @@ -6779,7 +7452,7 @@ dependencies = [ "anyhow", "backtrace", "flate2", - "num", + "num 0.4.3", "paste", "prost 0.13.5", ] @@ -6860,7 +7533,7 @@ dependencies = [ "configs", "const-hex", "contracts", - "dashmap", + "dashmap 6.1.0", "derive_more 1.0.0", "ethrpc", "futures", @@ -6874,7 +7547,7 @@ dependencies = [ "mockall", "model", "moka", - "num", + "num 0.4.3", "number", "observe", "prometheus", @@ -6882,7 +7555,7 @@ dependencies = [ "rand 0.9.4", "rate-limit", "request-sharing", - "reqwest", + "reqwest 0.13.4", "rust_decimal", "serde", "serde_json", @@ -6949,10 +7622,22 @@ dependencies = [ ] [[package]] -name = "prometheus" -version = "0.14.0" +name = "proc-macro2-diagnostics" +version = "0.10.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3ca5326d8d0b950a9acd87e6a3f94745394f62e4dae1b1ee22b2bc0c394af43a" +checksum = "af066a9c399a26e020ada66a034357a868728e72cd426f3adcd35f80d88d88c8" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.118", + "version_check", +] + +[[package]] +name = "prometheus" +version = "0.14.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3ca5326d8d0b950a9acd87e6a3f94745394f62e4dae1b1ee22b2bc0c394af43a" dependencies = [ "cfg-if", "fnv", @@ -7259,7 +7944,7 @@ dependencies = [ "quinn-udp", "rustc-hash", "rustls", - "socket2 0.6.1", + "socket2 0.5.10", "thiserror 2.0.18", "tokio", "tracing", @@ -7274,6 +7959,7 @@ checksum = "4fcb935c5bec503c2f0e306bdd3e58bb9029dcb14fa8d9ac76e3a5256ac0763e" dependencies = [ "aws-lc-rs", "bytes", + "fastbloom", "getrandom 0.3.4", "lru-slab", "rand 0.9.4", @@ -7281,6 +7967,7 @@ dependencies = [ "rustc-hash", "rustls", "rustls-pki-types", + "rustls-platform-verifier", "slab", "thiserror 2.0.18", "tinyvec", @@ -7297,7 +7984,7 @@ dependencies = [ "cfg_aliases", "libc", "once_cell", - "socket2 0.6.1", + "socket2 0.5.10", "tracing", "windows-sys 0.60.2", ] @@ -7438,7 +8125,7 @@ dependencies = [ "observe", "prometheus", "prometheus-metric-storage", - "reqwest", + "reqwest 0.13.4", "serde", "serde_json", "thiserror 1.0.69", @@ -7446,6 +8133,26 @@ dependencies = [ "tracing", ] +[[package]] +name = "rayon" +version = "1.12.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fb39b166781f92d482534ef4b4b1b2568f42613b53e5b6c160e24cfbfa30926d" +dependencies = [ + "either", + "rayon-core", +] + +[[package]] +name = "rayon-core" +version = "1.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "22e18b0f0062d30d4230b2e85ff77fdfe4326feb054b9783a3460d8435c8ab91" +dependencies = [ + "crossbeam-deque", + "crossbeam-utils", +] + [[package]] name = "redox_syscall" version = "0.5.18" @@ -7568,6 +8275,46 @@ dependencies = [ "tokio", ] +[[package]] +name = "reqwest" +version = "0.12.28" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "eddd3ca559203180a307f12d114c268abf583f59b03cb906fd0b3ff8646c1147" +dependencies = [ + "base64 0.22.1", + "bytes", + "futures-channel", + "futures-core", + "futures-util", + "http 1.4.0", + "http-body 1.0.1", + "http-body-util", + "hyper 1.8.1", + "hyper-rustls", + "hyper-util", + "js-sys", + "log", + "percent-encoding", + "pin-project-lite", + "quinn", + "rustls", + "rustls-pki-types", + "serde", + "serde_json", + "serde_urlencoded", + "sync_wrapper 1.0.2", + "tokio", + "tokio-rustls", + "tower 0.5.3", + "tower-http", + "tower-service", + "url", + "wasm-bindgen", + "wasm-bindgen-futures", + "web-sys", + "webpki-roots 1.0.6", +] + [[package]] name = "reqwest" version = "0.13.4" @@ -7617,6 +8364,21 @@ dependencies = [ "web-sys", ] +[[package]] +name = "reqwest-middleware" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "57f17d28a6e6acfe1733fe24bcd30774d13bffa4b8a22535b4c8c98423088d4e" +dependencies = [ + "anyhow", + "async-trait", + "http 1.4.0", + "reqwest 0.12.28", + "serde", + "thiserror 1.0.69", + "tower-service", +] + [[package]] name = "resolv-conf" version = "0.7.6" @@ -7728,7 +8490,7 @@ dependencies = [ "bytes", "fastrlp 0.3.1", "fastrlp 0.4.0", - "num-bigint", + "num-bigint 0.4.6", "num-integer", "num-traits", "parity-scale-codec", @@ -7795,7 +8557,16 @@ version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "cfcb3a22ef46e85b45de6ee7e79d063319ebb6594faafcf1c225ea92ab6e9b92" dependencies = [ - "semver 1.0.27", + "semver 1.0.28", +] + +[[package]] +name = "rusticata-macros" +version = "4.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "faf0c4a6ece9950b9abdb62b1cfcf2a68b3b67a10ba445b3bb85be2a293d0632" +dependencies = [ + "nom", ] [[package]] @@ -7813,9 +8584,9 @@ dependencies = [ [[package]] name = "rustls" -version = "0.23.36" +version = "0.23.41" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c665f33d38cea657d9614f766881e4d510e0eda4239891eea56b4cadcf01801b" +checksum = "6b92b125634d9b795e7beca796cc790df15a7fb38323bf3196fda83292d06b1f" dependencies = [ "aws-lc-rs", "once_cell", @@ -8057,9 +8828,13 @@ dependencies = [ [[package]] name = "semver" -version = "1.0.27" +version = "1.0.28" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d767eb0aabc880b29956c35734170f26ed551a859dbd361d140cdbeca61ab1e2" +checksum = "8a7852d02fc848982e0c167ef163aaff9cd91dc640ba85e263cb1ce46fae51cd" +dependencies = [ + "serde", + "serde_core", +] [[package]] name = "semver-parser" @@ -8210,7 +8985,7 @@ dependencies = [ "chrono", "hex", "indexmap 1.9.3", - "indexmap 2.13.0", + "indexmap 2.14.0", "schemars 0.9.0", "schemars 1.2.0", "serde_core", @@ -8320,7 +9095,7 @@ dependencies = [ "configs", "const-hex", "contracts", - "dashmap", + "dashmap 6.1.0", "database", "derive_more 1.0.0", "ethrpc", @@ -8328,14 +9103,14 @@ dependencies = [ "gas-price-estimation", "hex-literal", "humantime", - "indexmap 2.13.0", + "indexmap 2.14.0", "itertools 0.14.0", "liquidity-sources", "maplit", "mockall", "model", "moka", - "num", + "num 0.4.3", "number", "observe", "order-validation", @@ -8346,7 +9121,7 @@ dependencies = [ "rate-limit", "regex", "request-sharing", - "reqwest", + "reqwest 0.13.4", "rust_decimal", "serde", "serde_json", @@ -8480,7 +9255,7 @@ dependencies = [ "observe", "prometheus", "prometheus-metric-storage", - "reqwest", + "reqwest 0.13.4", "serde", "serde-ext", "serde_json", @@ -8531,12 +9306,25 @@ dependencies = [ [[package]] name = "socket2" -version = "0.6.1" +version = "0.6.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "17129e116933cf371d018bb80ae557e889637989d8638274fb25622827b03881" +checksum = "52d1cfed4120b4d927bf7c0f86d2087a4a7d6027c906d9f9d525a80573b9be51" dependencies = [ "libc", - "windows-sys 0.60.2", + "windows-sys 0.61.2", +] + +[[package]] +name = "solana-account" +version = "3.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "efc0ed36decb689413b9da5d57f2be49eea5bebb3cf7897015167b0c4336e731" +dependencies = [ + "solana-account-info", + "solana-clock", + "solana-instruction-error", + "solana-pubkey 4.2.0", + "solana-sdk-ids", ] [[package]] @@ -8557,6 +9345,63 @@ dependencies = [ "solana-sysvar", ] +[[package]] +name = "solana-account-decoder" +version = "4.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1488c098ea9b5ae328a31c77940d277a0066cff52f4b3b99d11035198df8b590" +dependencies = [ + "Inflector", + "base64 0.22.1", + "bincode", + "bs58", + "bv", + "serde", + "serde_json", + "solana-account 4.3.1", + "solana-account-decoder-client-types", + "solana-address-lookup-table-interface", + "solana-clock", + "solana-config-interface", + "solana-epoch-schedule", + "solana-fee-calculator", + "solana-instruction", + "solana-loader-v3-interface", + "solana-nonce", + "solana-program-option", + "solana-program-pack", + "solana-pubkey 4.2.0", + "solana-rent", + "solana-sdk-ids", + "solana-slot-hashes", + "solana-slot-history", + "solana-stake-interface", + "solana-sysvar", + "solana-vote-interface", + "spl-generic-token", + "spl-token-2022-interface", + "spl-token-group-interface", + "spl-token-interface", + "spl-token-metadata-interface", + "thiserror 2.0.18", + "zstd", +] + +[[package]] +name = "solana-account-decoder-client-types" +version = "4.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "86bccd07485e9769567b5bc715bade925be41ee94c5da7808e41a3a1e6a5b989" +dependencies = [ + "base64 0.22.1", + "bs58", + "serde", + "serde_json", + "solana-account 4.3.1", + "solana-pubkey 4.2.0", + "zstd", +] + [[package]] name = "solana-account-info" version = "3.1.1" @@ -8597,12 +9442,31 @@ dependencies = [ "sha2-const-stable", "solana-atomic-u64", "solana-define-syscall 5.1.0", + "solana-nullable", "solana-program-error", "solana-sanitize", "solana-sha256-hasher", "wincode", ] +[[package]] +name = "solana-address-lookup-table-interface" +version = "3.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "115b4f773acc4f3f3cb986b0d335e9845c0368c82b0940410935bc11ae065578" +dependencies = [ + "bincode", + "bytemuck", + "serde", + "serde_derive", + "solana-clock", + "solana-instruction", + "solana-instruction-error", + "solana-pubkey 4.2.0", + "solana-sdk-ids", + "solana-slot-hashes", +] + [[package]] name = "solana-atomic-u64" version = "3.0.1" @@ -8618,7 +9482,7 @@ version = "3.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "30c80fb6d791b3925d5ec4bf23a7c169ef5090c013059ec3ed7d0b2c04efa085" dependencies = [ - "num-bigint", + "num-bigint 0.4.6", "num-traits", "solana-define-syscall 3.0.0", ] @@ -8643,6 +9507,64 @@ dependencies = [ "borsh", ] +[[package]] +name = "solana-client" +version = "4.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "063d4d79728ccc6f1eb42592218f9cf7b9d2c0f70e3de834632752b04242271f" +dependencies = [ + "async-trait", + "bincode", + "dashmap 5.5.3", + "futures-util", + "indicatif", + "log", + "solana-commitment-config", + "solana-connection-cache", + "solana-hash 4.4.0", + "solana-keypair", + "solana-measure", + "solana-message", + "solana-net-utils", + "solana-pubkey 4.2.0", + "solana-pubsub-client", + "solana-quic-client", + "solana-rpc-client", + "solana-rpc-client-api", + "solana-rpc-client-nonce-utils", + "solana-signature", + "solana-signer", + "solana-streamer", + "solana-time-utils", + "solana-tls-utils", + "solana-tpu-client", + "solana-transaction", + "solana-transaction-error", + "solana-udp-client", + "tokio", +] + +[[package]] +name = "solana-client-traits" +version = "4.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "19635cc703678bcb26eb6faee4a363c71f4a0d622c445d9b70c048c42f4cbcd3" +dependencies = [ + "solana-account 4.3.1", + "solana-commitment-config", + "solana-epoch-info", + "solana-hash 4.4.0", + "solana-instruction", + "solana-keypair", + "solana-message", + "solana-pubkey 4.2.0", + "solana-signature", + "solana-signer", + "solana-system-interface 3.2.0", + "solana-transaction", + "solana-transaction-error", +] + [[package]] name = "solana-clock" version = "3.1.1" @@ -8657,6 +9579,61 @@ dependencies = [ "solana-sysvar-id", ] +[[package]] +name = "solana-cluster-type" +version = "3.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3a494cf8eda7d98d9f0144b288bb409c88308d2e86f15cc1045aa77b83304718" +dependencies = [ + "solana-hash 4.4.0", +] + +[[package]] +name = "solana-commitment-config" +version = "3.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1517aa49dcfa9cb793ef90e7aac81346d62ca4a546bb1a754030a033e3972e1c" +dependencies = [ + "serde", + "serde_derive", +] + +[[package]] +name = "solana-config-interface" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "63e401ae56aed512821cc7a0adaa412ff97fecd2dff4602be7b1330d2daec0c4" +dependencies = [ + "bincode", + "serde", + "serde_derive", + "solana-account 3.4.0", + "solana-instruction", + "solana-pubkey 3.0.0", + "solana-sdk-ids", + "solana-short-vec", + "solana-system-interface 2.0.0", +] + +[[package]] +name = "solana-connection-cache" +version = "4.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f027ecaba1d83bf9b637bfffa57e2f74f515af7750a5307cfd56a6bfa9c24e63" +dependencies = [ + "async-trait", + "crossbeam-channel", + "indexmap 2.14.0", + "log", + "rand 0.9.4", + "solana-keypair", + "solana-measure", + "solana-metrics", + "solana-time-utils", + "solana-transaction-error", + "thiserror 2.0.18", +] + [[package]] name = "solana-cpi" version = "3.1.0" @@ -8671,6 +9648,20 @@ dependencies = [ "solana-stable-layout", ] +[[package]] +name = "solana-curve25519" +version = "3.1.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5aff7432cdf2ec6a44ac06b4d64d2ee006f6c0066d6456e032a7fe25be40cd5c" +dependencies = [ + "bytemuck", + "bytemuck_derive", + "curve25519-dalek", + "solana-define-syscall 3.0.0", + "subtle", + "thiserror 2.0.18", +] + [[package]] name = "solana-define-syscall" version = "3.0.0" @@ -8774,17 +9765,30 @@ dependencies = [ "solana-nonce", "solana-pubkey 4.2.0", "solana-sdk-ids", - "solana-system-interface", + "solana-system-interface 3.2.0", "thiserror 2.0.18", ] [[package]] -name = "solana-fee-calculator" -version = "3.2.2" +name = "solana-feature-gate-interface" +version = "4.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ef67f01cc6a0c72e99a08d0d484683f995de4c80e9568728fa77d1537f9b7e09" +checksum = "bd7545e02f91da1d6996f32b18f7796aa01e0682f8f3a7434b82cd1a10448add" dependencies = [ - "log", + "serde", + "serde_derive", + "solana-program-error", + "solana-pubkey 4.2.0", + "solana-sdk-ids", +] + +[[package]] +name = "solana-fee-calculator" +version = "3.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ef67f01cc6a0c72e99a08d0d484683f995de4c80e9568728fa77d1537f9b7e09" +dependencies = [ + "log", "serde", "serde_derive", ] @@ -8846,8 +9850,10 @@ dependencies = [ name = "solana-indexer" version = "0.1.0" dependencies = [ + "async-trait", "bytes", "derive_more 1.0.0", + "solana-client", "solana-sdk", "thiserror 1.0.69", "tracing", @@ -8877,6 +9883,7 @@ dependencies = [ "solana-define-syscall 5.1.0", "solana-instruction-error", "solana-pubkey 4.2.0", + "wincode", ] [[package]] @@ -8952,6 +9959,26 @@ dependencies = [ "solana-sysvar-id", ] +[[package]] +name = "solana-loader-v3-interface" +version = "7.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "68029ab11d9c891d4ce23ada75745e40f983c5674af366f447b672569634231b" +dependencies = [ + "serde", + "serde_bytes", + "serde_derive", + "solana-instruction", + "solana-pubkey 4.2.0", + "solana-sdk-ids", +] + +[[package]] +name = "solana-measure" +version = "4.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "328a75731e2fd4be60ee5e6f87ae8ee7764c45e37d70cc50045422b6c5c67a49" + [[package]] name = "solana-message" version = "4.2.3" @@ -8971,6 +9998,22 @@ dependencies = [ "wincode", ] +[[package]] +name = "solana-metrics" +version = "4.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f38db61e9c40a133ccfab5bc78e0057604c953ba6a8c92ae7409998c2db7934e" +dependencies = [ + "crossbeam-channel", + "gethostname", + "log", + "reqwest 0.12.28", + "solana-cluster-type", + "solana-sha256-hasher", + "solana-time-utils", + "thiserror 2.0.18", +] + [[package]] name = "solana-msg" version = "3.1.0" @@ -8986,18 +10029,52 @@ version = "3.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ae8dd4c280dca9d046139eb5b7a5ac9ad10403fbd64964c7d7571214950d758f" +[[package]] +name = "solana-net-utils" +version = "4.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ceef4d1c6d1370e9e68e3896e82322d5b898660a54fb39e438da65291f7a831a" +dependencies = [ + "bincode", + "bytes", + "cfg-if", + "dashmap 5.5.3", + "itertools 0.14.0", + "log", + "nix", + "rand 0.9.4", + "serde", + "socket2 0.6.4", + "solana-serde", + "solana-svm-type-overrides", + "thiserror 2.0.18", + "tokio", + "url", +] + [[package]] name = "solana-nonce" version = "3.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d95dbc9f2e33b6c10e231df15cb2a3bff9ea7eab6347f9e316fe75c97fd67bbb" dependencies = [ + "serde", + "serde_derive", "solana-fee-calculator", "solana-hash 4.4.0", "solana-pubkey 4.2.0", "solana-sha256-hasher", ] +[[package]] +name = "solana-nullable" +version = "1.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a0f95d3028ef0f682bb174b77379c19d5dae2904a649f4a103fe29be7a139980" +dependencies = [ + "bytemuck", +] + [[package]] name = "solana-offchain-message" version = "3.0.0" @@ -9006,7 +10083,7 @@ checksum = "f6e2a1141a673f72a05cf406b99e4b2b8a457792b7c01afa07b3f00d4e2de393" dependencies = [ "num_enum", "solana-hash 3.1.0", - "solana-packet", + "solana-packet 3.0.0", "solana-pubkey 3.0.0", "solana-sanitize", "solana-sha256-hasher", @@ -9023,6 +10100,60 @@ dependencies = [ "bitflags 2.10.0", ] +[[package]] +name = "solana-packet" +version = "4.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0ad62e1045c2347a0c0e219a6ceb0abfe904be622920996bfcac8d116fabe3c7" +dependencies = [ + "bincode", + "bitflags 2.10.0", + "cfg_eval", + "serde", + "serde_derive", + "serde_with", + "solana-pubkey 4.2.0", +] + +[[package]] +name = "solana-perf" +version = "4.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "94037058419b5413c1f7b17417a8fe72fd4b624431576d30a13be867937e1f28" +dependencies = [ + "agave-transaction-view", + "ahash", + "bincode", + "bytes", + "caps", + "libc", + "log", + "nix", + "num_cpus", + "rand 0.9.4", + "rayon", + "serde", + "solana-hash 4.4.0", + "solana-message", + "solana-metrics", + "solana-packet 4.1.0", + "solana-pubkey 4.2.0", + "solana-sdk-ids", + "solana-short-vec", + "solana-signature", + "solana-time-utils", + "solana-transaction-context", +] + +[[package]] +name = "solana-precompile-error" +version = "3.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cafcd950de74c6c39d55dc8ca108bbb007799842ab370ef26cf45a34453c31e1" +dependencies = [ + "num-traits", +] + [[package]] name = "solana-presigner" version = "3.0.0" @@ -9128,6 +10259,52 @@ dependencies = [ "solana-program-error", ] +[[package]] +name = "solana-program-runtime" +version = "4.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1d6c2bbd88868b36d089ae44d7cb72d8cd099426e30554b68a57b358b0c7935c" +dependencies = [ + "base64 0.22.1", + "bincode", + "cfg-if", + "itertools 0.14.0", + "log", + "percentage", + "rand 0.9.4", + "serde", + "solana-account 4.3.1", + "solana-account-info", + "solana-clock", + "solana-epoch-rewards", + "solana-epoch-schedule", + "solana-fee-structure", + "solana-hash 4.4.0", + "solana-instruction", + "solana-last-restart-slot", + "solana-loader-v3-interface", + "solana-program-entrypoint", + "solana-pubkey 4.2.0", + "solana-rent", + "solana-sbpf", + "solana-sdk-ids", + "solana-slot-hashes", + "solana-stable-layout", + "solana-stake-interface", + "solana-svm-callback", + "solana-svm-feature-set", + "solana-svm-log-collector", + "solana-svm-measure", + "solana-svm-timings", + "solana-svm-transaction", + "solana-svm-type-overrides", + "solana-system-interface 3.2.0", + "solana-sysvar", + "solana-sysvar-id", + "solana-transaction-context", + "thiserror 2.0.18", +] + [[package]] name = "solana-pubkey" version = "3.0.0" @@ -9147,6 +10324,56 @@ dependencies = [ "solana-address 2.6.1", ] +[[package]] +name = "solana-pubsub-client" +version = "4.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e5c2ac0e80064fa5a7057ee747665514417b48f8d60c45dd9a1da141fd943431" +dependencies = [ + "crossbeam-channel", + "futures-util", + "log", + "serde", + "serde_json", + "solana-account-decoder-client-types", + "solana-clock", + "solana-pubkey 4.2.0", + "solana-rpc-client-types", + "solana-signature", + "thiserror 2.0.18", + "tokio", + "tokio-stream", + "tokio-tungstenite", + "tungstenite", + "url", +] + +[[package]] +name = "solana-quic-client" +version = "4.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "abb6f16b28e01f01094f1964d565a18d183ac4a2a4a31e8dafb9eafc397a722c" +dependencies = [ + "async-lock", + "async-trait", + "futures", + "log", + "quinn", + "solana-connection-cache", + "solana-keypair", + "solana-measure", + "solana-metrics", + "solana-net-utils", + "solana-pubkey 4.2.0", + "solana-rpc-client-api", + "solana-signer", + "solana-streamer", + "solana-tls-utils", + "solana-transaction-error", + "thiserror 2.0.18", + "tokio", +] + [[package]] name = "solana-rent" version = "4.3.0" @@ -9161,12 +10388,142 @@ dependencies = [ "solana-sysvar-id", ] +[[package]] +name = "solana-reward-info" +version = "6.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dc553b782111862cd6c56bdeba696dcba9722a42154ef1248c5a06ca1d983797" +dependencies = [ + "serde", + "serde_derive", + "wincode", +] + +[[package]] +name = "solana-rpc-client" +version = "4.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cd76ba809dbfcad50ebfe2bc6f39059eb0649ffc476c4c12bbfe772c2e43e543" +dependencies = [ + "async-trait", + "base64 0.22.1", + "bincode", + "bs58", + "futures", + "indicatif", + "log", + "reqwest 0.12.28", + "reqwest-middleware", + "semver 1.0.28", + "serde", + "serde_json", + "solana-account 4.3.1", + "solana-account-decoder", + "solana-account-decoder-client-types", + "solana-clock", + "solana-commitment-config", + "solana-epoch-info", + "solana-epoch-schedule", + "solana-feature-gate-interface", + "solana-hash 4.4.0", + "solana-instruction", + "solana-message", + "solana-pubkey 4.2.0", + "solana-rpc-client-api", + "solana-signature", + "solana-transaction", + "solana-transaction-error", + "solana-transaction-status-client-types", + "solana-version", + "solana-vote-interface", + "tokio", +] + +[[package]] +name = "solana-rpc-client-api" +version = "4.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "90365b03c5b66cbdb90584feca791045bc0cb2b372563c4558768e78058e1258" +dependencies = [ + "anyhow", + "jsonrpc-core", + "reqwest 0.12.28", + "reqwest-middleware", + "serde", + "serde_json", + "solana-clock", + "solana-rpc-client-types", + "solana-signer", + "solana-transaction-error", + "solana-transaction-status-client-types", + "thiserror 2.0.18", +] + +[[package]] +name = "solana-rpc-client-nonce-utils" +version = "4.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f1d016f834b8c7ba33cf626db0a7baa951b231a7aca1f56f550cd95257380e43" +dependencies = [ + "solana-account 4.3.1", + "solana-commitment-config", + "solana-hash 4.4.0", + "solana-message", + "solana-nonce", + "solana-pubkey 4.2.0", + "solana-rpc-client", + "solana-sdk-ids", + "thiserror 2.0.18", +] + +[[package]] +name = "solana-rpc-client-types" +version = "4.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2905cdfa9214f13a56d72af9a360fd43d00c3cf0e0dddef7e5a7c56f9ddd40b2" +dependencies = [ + "base64 0.22.1", + "bs58", + "semver 1.0.28", + "serde", + "serde_json", + "solana-account-decoder-client-types", + "solana-address 2.6.1", + "solana-clock", + "solana-commitment-config", + "solana-fee-calculator", + "solana-inflation", + "solana-reward-info", + "solana-transaction", + "solana-transaction-error", + "solana-transaction-status-client-types", + "solana-version", + "thiserror 2.0.18", +] + [[package]] name = "solana-sanitize" version = "3.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "dcf09694a0fc14e5ffb18f9b7b7c0f15ecb6eac5b5610bf76a1853459d19daf9" +[[package]] +name = "solana-sbpf" +version = "0.21.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7f84c593fa3d4131045b606dec5acf9d8eac73791bc786ca9911057aec8f43ec" +dependencies = [ + "byteorder", + "combine 3.8.1", + "hash32", + "libc", + "log", + "rand 0.8.5", + "rustc-demangle", + "thiserror 2.0.18", + "winapi", +] + [[package]] name = "solana-sdk" version = "4.0.1" @@ -9176,7 +10533,7 @@ dependencies = [ "bincode", "bs58", "serde", - "solana-account", + "solana-account 4.3.1", "solana-epoch-info", "solana-epoch-rewards-hasher", "solana-fee-structure", @@ -9397,6 +10754,145 @@ dependencies = [ "solana-sysvar-id", ] +[[package]] +name = "solana-stake-interface" +version = "3.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f49eb5c77484214c3484921e2cdda79d185373118b5458c1b2df0f1a04c3bc30" +dependencies = [ + "num-traits", + "serde", + "serde_derive", + "solana-clock", + "solana-cpi", + "solana-instruction", + "solana-program-error", + "solana-pubkey 4.2.0", + "solana-system-interface 3.2.0", + "solana-sysvar", + "solana-sysvar-id", +] + +[[package]] +name = "solana-streamer" +version = "4.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5b1010bd2a5c56943452f608d42522455e2f4706946c5a04326e3032dacfd167" +dependencies = [ + "agave-xdp", + "bytes", + "crossbeam-channel", + "futures", + "histogram", + "indexmap 2.14.0", + "itertools 0.14.0", + "libc", + "log", + "nix", + "num_cpus", + "pem", + "percentage", + "quinn", + "rand 0.9.4", + "rustls", + "smallvec", + "solana-keypair", + "solana-metrics", + "solana-net-utils", + "solana-packet 4.1.0", + "solana-perf", + "solana-pubkey 4.2.0", + "solana-signer", + "solana-time-utils", + "solana-tls-utils", + "solana-transaction-error", + "thiserror 2.0.18", + "tokio", + "tokio-util", +] + +[[package]] +name = "solana-svm-callback" +version = "4.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2729a125fc14aaafe32a725f6d7903a2ba7f2473b02f9775c00345a33b6a68e5" +dependencies = [ + "solana-account 4.3.1", + "solana-clock", + "solana-precompile-error", + "solana-pubkey 4.2.0", +] + +[[package]] +name = "solana-svm-feature-set" +version = "4.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f947656f2cf5d057e89c5846d782f62950fe0a3d4c81f752336f423a6c1e3dfe" + +[[package]] +name = "solana-svm-log-collector" +version = "4.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d62e5fbd48f5169c51a06c8a722ff04a31533436acfa11640bedc2bf36f5d066" +dependencies = [ + "log", +] + +[[package]] +name = "solana-svm-measure" +version = "4.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "41ee59a7293aa8d1e5be8a232d8d66f3825e515579b56c7eef0f77b2c09ea01e" + +[[package]] +name = "solana-svm-timings" +version = "4.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0553502e916f7751b0184e23a3007866d4e60753888e3f9b55b0856efc1235cd" +dependencies = [ + "eager", + "enum-iterator", + "solana-pubkey 4.2.0", +] + +[[package]] +name = "solana-svm-transaction" +version = "4.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4d2442156f23affc40f02a314f1d962480e24fe1ad56f1dfe04c5bccd55a2e1c" +dependencies = [ + "solana-hash 4.4.0", + "solana-message", + "solana-pubkey 4.2.0", + "solana-sdk-ids", + "solana-signature", + "solana-transaction", +] + +[[package]] +name = "solana-svm-type-overrides" +version = "4.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "aee52c4a78dd722dc7529384b4b0d3f552a82a94427f58c103bc916144aa7a0a" +dependencies = [ + "rand 0.9.4", +] + +[[package]] +name = "solana-system-interface" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4e1790547bfc3061f1ee68ea9d8dc6c973c02a163697b24263a8e9f2e6d4afa2" +dependencies = [ + "num-traits", + "serde", + "serde_derive", + "solana-instruction", + "solana-msg", + "solana-program-error", + "solana-pubkey 3.0.0", +] + [[package]] name = "solana-system-interface" version = "3.2.0" @@ -9404,9 +10900,13 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "55b54965bf0b76fa8e2b35376583efddd4d916618cfe595bf48c7d7b55a9e628" dependencies = [ "num-traits", + "serde", + "serde_derive", "solana-address 2.6.1", + "solana-instruction", "solana-msg", "solana-program-error", + "wincode", ] [[package]] @@ -9461,6 +10961,48 @@ version = "3.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0ced92c60aa76ec4780a9d93f3bd64dfa916e1b998eacc6f1c110f3f444f02c9" +[[package]] +name = "solana-tls-utils" +version = "4.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fccdefea32f73bcb02505fb9062deb25d2faedcfcdec48aad260ffa6a009f8e0" +dependencies = [ + "rustls", + "solana-keypair", + "solana-pubkey 4.2.0", + "solana-signer", + "x509-parser", +] + +[[package]] +name = "solana-tpu-client" +version = "4.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fde9bb38075089c7efee52711683e4e8587313633b764f61bbe212d10091d4f7" +dependencies = [ + "futures-util", + "indicatif", + "log", + "rayon", + "solana-client-traits", + "solana-clock", + "solana-commitment-config", + "solana-connection-cache", + "solana-epoch-schedule", + "solana-message", + "solana-pubkey 4.2.0", + "solana-pubsub-client", + "solana-rpc-client", + "solana-rpc-client-api", + "solana-signature", + "solana-signer", + "solana-transaction", + "solana-transaction-error", + "thiserror 2.0.18", + "tokio", + "wincode", +] + [[package]] name = "solana-transaction" version = "4.1.4" @@ -9484,15 +11026,158 @@ dependencies = [ ] [[package]] -name = "solana-transaction-error" -version = "3.3.0" +name = "solana-transaction-context" +version = "4.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b3b410c00c16e2a25e1257e751bb06577ba1309d0fe6ad793af92990c274e1e5" +dependencies = [ + "bincode", + "serde", + "solana-account 4.3.1", + "solana-instruction", + "solana-instructions-sysvar", + "solana-pubkey 4.2.0", + "solana-rent", + "solana-sbpf", + "solana-sdk-ids", +] + +[[package]] +name = "solana-transaction-error" +version = "3.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "757a648388ab1e7350a806ffceb31ce656dc5b5fe607b9f8209aa56f63040179" +dependencies = [ + "serde", + "serde_derive", + "solana-instruction-error", + "solana-sanitize", +] + +[[package]] +name = "solana-transaction-status-client-types" +version = "4.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0df3d42afe0d82741c0b4ab30ae490817eb4ce10a6d67433321ca3b29acdd82a" +dependencies = [ + "base64 0.22.1", + "bincode", + "bs58", + "serde", + "serde_json", + "solana-account-decoder-client-types", + "solana-commitment-config", + "solana-instruction", + "solana-message", + "solana-reward-info", + "solana-signature", + "solana-transaction", + "solana-transaction-context", + "solana-transaction-error", + "thiserror 2.0.18", + "wincode", +] + +[[package]] +name = "solana-udp-client" +version = "4.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3c1ccb261d86104071a9077b947727ca15541cd0122e429d8f790d4df01d7e2d" +dependencies = [ + "async-trait", + "solana-connection-cache", + "solana-keypair", + "solana-net-utils", + "solana-streamer", + "solana-transaction-error", +] + +[[package]] +name = "solana-version" +version = "4.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f4d71dcd5bb23d6790749f5cfb94968d3bbe4abfffb7f97db96e5340ec5fae4d" +dependencies = [ + "agave-feature-set", + "rand 0.9.4", + "semver 1.0.28", + "serde", + "solana-sanitize", + "solana-serde-varint", +] + +[[package]] +name = "solana-vote-interface" +version = "6.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "61843d7be827cac5e025c3a16c1101a34fcdd8cf593f6a82eafdd253bd55a26b" +dependencies = [ + "bincode", + "cfg_eval", + "num-derive", + "num-traits", + "serde", + "serde_derive", + "serde_with", + "solana-clock", + "solana-hash 4.4.0", + "solana-instruction", + "solana-instruction-error", + "solana-pubkey 4.2.0", + "solana-rent", + "solana-sdk-ids", + "solana-serde-varint", + "solana-serialize-utils", + "solana-short-vec", + "solana-system-interface 3.2.0", +] + +[[package]] +name = "solana-zero-copy" +version = "1.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8ea15126ebdc7e270c50d43884369af9f51d2308156d46a18e351522a164844d" +dependencies = [ + "borsh", + "bytemuck", + "bytemuck_derive", +] + +[[package]] +name = "solana-zk-sdk" +version = "4.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "757a648388ab1e7350a806ffceb31ce656dc5b5fe607b9f8209aa56f63040179" +checksum = "9602bcb1f7af15caef92b91132ec2347e1c51a72ecdbefdaefa3eac4b8711475" dependencies = [ + "aes-gcm-siv", + "base64 0.22.1", + "bincode", + "bytemuck", + "bytemuck_derive", + "curve25519-dalek", + "getrandom 0.2.17", + "itertools 0.12.1", + "js-sys", + "merlin", + "num-derive", + "num-traits", + "rand 0.8.5", "serde", "serde_derive", - "solana-instruction-error", - "solana-sanitize", + "serde_json", + "sha3", + "solana-derivation-path", + "solana-instruction", + "solana-pubkey 3.0.0", + "solana-sdk-ids", + "solana-seed-derivable", + "solana-seed-phrase", + "solana-signature", + "solana-signer", + "subtle", + "thiserror 2.0.18", + "wasm-bindgen", + "zeroize", ] [[package]] @@ -9513,7 +11198,7 @@ dependencies = [ "maplit", "mockall", "model", - "num", + "num 0.4.3", "number", "observe", "prometheus", @@ -9555,14 +11240,14 @@ dependencies = [ "mimalloc", "model", "moka", - "num", + "num 0.4.3", "number", "observe", "price-estimation", "prometheus", "prometheus-metric-storage", "rate-limit", - "reqwest", + "reqwest 0.13.4", "serde", "serde_json", "serde_with", @@ -9627,6 +11312,206 @@ dependencies = [ "der", ] +[[package]] +name = "spl-discriminator" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e597c5ff9ed7c74a54dbc47bae2f06e4db8c98f4356ad280200dc11878266db1" +dependencies = [ + "bytemuck", + "solana-program-error", + "solana-sha256-hasher", + "spl-discriminator-derive", +] + +[[package]] +name = "spl-discriminator-derive" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d9e8418ea6269dcfb01c712f0444d2c75542c04448b480e87de59d2865edc750" +dependencies = [ + "quote", + "spl-discriminator-syn", + "syn 2.0.118", +] + +[[package]] +name = "spl-discriminator-syn" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5d1dbc82ab91422345b6df40a79e2b78c7bce1ebb366da323572dd60b7076b67" +dependencies = [ + "proc-macro2", + "quote", + "sha2", + "syn 2.0.118", + "thiserror 1.0.69", +] + +[[package]] +name = "spl-generic-token" +version = "2.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "233df81b75ab99b42f002b5cdd6e65a7505ffa930624f7096a7580a56765e9cf" +dependencies = [ + "bytemuck", + "solana-pubkey 3.0.0", +] + +[[package]] +name = "spl-pod" +version = "0.7.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2f9c6e142cdf1e7e77f480053ec9f0ce989890768ddf91f619b50f39d1b456f5" +dependencies = [ + "borsh", + "bytemuck", + "bytemuck_derive", + "num-derive", + "num-traits", + "num_enum", + "solana-program-error", + "solana-program-option", + "solana-pubkey 3.0.0", + "solana-zero-copy", + "solana-zk-sdk", + "thiserror 2.0.18", +] + +[[package]] +name = "spl-token-2022-interface" +version = "2.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2fcd81188211f4b3c8a5eba7fd534c7142f9dd026123b3472492782cc72f4dc6" +dependencies = [ + "arrayref", + "bytemuck", + "num-derive", + "num-traits", + "num_enum", + "solana-account-info", + "solana-instruction", + "solana-program-error", + "solana-program-option", + "solana-program-pack", + "solana-pubkey 3.0.0", + "solana-sdk-ids", + "solana-zk-sdk", + "spl-pod", + "spl-token-confidential-transfer-proof-extraction", + "spl-token-confidential-transfer-proof-generation", + "spl-token-group-interface", + "spl-token-metadata-interface", + "spl-type-length-value", + "thiserror 2.0.18", +] + +[[package]] +name = "spl-token-confidential-transfer-proof-extraction" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "879a9ebad0d77383d3ea71e7de50503554961ff0f4ef6cbca39ad126e6f6da3a" +dependencies = [ + "bytemuck", + "solana-account-info", + "solana-curve25519", + "solana-instruction", + "solana-instructions-sysvar", + "solana-msg", + "solana-program-error", + "solana-pubkey 3.0.0", + "solana-sdk-ids", + "solana-zk-sdk", + "spl-pod", + "thiserror 2.0.18", +] + +[[package]] +name = "spl-token-confidential-transfer-proof-generation" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a0cd59fce3dc00f563c6fa364d67c3f200d278eae681f4dc250240afcfe044b1" +dependencies = [ + "curve25519-dalek", + "solana-zk-sdk", + "thiserror 2.0.18", +] + +[[package]] +name = "spl-token-group-interface" +version = "0.7.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "841cbd6f2322d02719be4da1affedbe6495b1048b7b985ec9796032564026e22" +dependencies = [ + "bytemuck", + "num-derive", + "num-traits", + "num_enum", + "solana-address 2.6.1", + "solana-instruction", + "solana-nullable", + "solana-program-error", + "solana-zero-copy", + "spl-discriminator", + "thiserror 2.0.18", +] + +[[package]] +name = "spl-token-interface" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8c564ac05a7c8d8b12e988a37d82695b5ba4db376d07ea98bc4882c81f96c7f3" +dependencies = [ + "arrayref", + "bytemuck", + "num-derive", + "num-traits", + "num_enum", + "solana-instruction", + "solana-program-error", + "solana-program-option", + "solana-program-pack", + "solana-pubkey 3.0.0", + "solana-sdk-ids", + "thiserror 2.0.18", +] + +[[package]] +name = "spl-token-metadata-interface" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9c467c7c3bd056f8fe60119e7ec34ddd6f23052c2fa8f1f51999098063b72676" +dependencies = [ + "borsh", + "num-derive", + "num-traits", + "solana-borsh", + "solana-instruction", + "solana-program-error", + "solana-pubkey 3.0.0", + "spl-discriminator", + "spl-pod", + "spl-type-length-value", + "thiserror 2.0.18", +] + +[[package]] +name = "spl-type-length-value" +version = "0.9.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2504631748c48d2a937414d64a12dcac4588d34bd07d355d648619c189d29435" +dependencies = [ + "bytemuck", + "num-derive", + "num-traits", + "num_enum", + "solana-account-info", + "solana-program-error", + "solana-zero-copy", + "spl-discriminator", + "thiserror 2.0.18", +] + [[package]] name = "sqlx" version = "0.8.6" @@ -9660,7 +11545,7 @@ dependencies = [ "futures-util", "hashbrown 0.15.5", "hashlink", - "indexmap 2.13.0", + "indexmap 2.14.0", "log", "memchr", "native-tls", @@ -9785,7 +11670,7 @@ dependencies = [ "log", "md-5", "memchr", - "num-bigint", + "num-bigint 0.4.6", "once_cell", "rand 0.8.5", "serde", @@ -10189,16 +12074,17 @@ dependencies = [ [[package]] name = "tokio" -version = "1.49.0" +version = "1.52.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "72a2903cd7736441aac9df9d7688bd0ce48edccaadf181c3b90be801e81d3d86" +checksum = "8fc7f01b389ac15039e4dc9531aa973a135d7a4135281b12d7c1bc79fd57fffe" dependencies = [ "bytes", "libc", "mio", + "parking_lot", "pin-project-lite", "signal-hook-registry", - "socket2 0.6.1", + "socket2 0.6.4", "tokio-macros", "tracing", "windows-sys 0.61.2", @@ -10216,9 +12102,9 @@ dependencies = [ [[package]] name = "tokio-macros" -version = "2.6.0" +version = "2.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "af407857209536a95c8e56f8231ef2c2e2aff839b22e07a1ffcbc617e9db9fa5" +checksum = "385a6cb71ab9ab790c5fe8d67f1645e6c450a7ce006a33de03daa956cf70a496" dependencies = [ "proc-macro2", "quote", @@ -10272,6 +12158,7 @@ dependencies = [ "bytes", "futures-core", "futures-sink", + "futures-util", "pin-project-lite", "tokio", ] @@ -10333,7 +12220,7 @@ version = "0.22.27" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "41fe8c660ae4257887cf66394862d21dbca4a6ddd26f04a3560410406a2f819a" dependencies = [ - "indexmap 2.13.0", + "indexmap 2.14.0", "serde", "serde_spanned", "toml_datetime 0.6.11", @@ -10347,7 +12234,7 @@ version = "0.23.10+spec-1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "84c8b9f757e028cee9fa244aea147aab2a9ec09d5325a9b01e0a49730c2b5269" dependencies = [ - "indexmap 2.13.0", + "indexmap 2.14.0", "toml_datetime 0.7.5+spec-1.1.0", "toml_parser", "winnow", @@ -10499,7 +12386,7 @@ checksum = "ebe5ef63511595f1344e2d5cfa636d973292adc0eec1f0ad45fae9f0851ab1d4" dependencies = [ "futures-core", "futures-util", - "indexmap 2.13.0", + "indexmap 2.14.0", "pin-project-lite", "slab", "sync_wrapper 1.0.2", @@ -10671,6 +12558,7 @@ dependencies = [ "sha1", "thiserror 2.0.18", "utf-8", + "webpki-roots 0.26.11", ] [[package]] @@ -10742,12 +12630,43 @@ version = "1.12.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f6ccf251212114b54433ec949fd6a7841275f9ada20dddd2f29e9ceea4501493" +[[package]] +name = "unicode-width" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b4ac048d71ede7ee76d585517add45da530660ef4390e49b098733c6e897f254" + [[package]] name = "unicode-xid" version = "0.2.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ebc1c04c71510c7f702b52b7c350734c9ff1295c464a03335b00bb84fc54f853" +[[package]] +name = "unit-prefix" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "81e544489bf3d8ef66c953931f56617f423cd4b5494be343d9b9d3dda037b9a3" + +[[package]] +name = "universal-hash" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fc1de2c688dc15305988b563c3854064043356019f97a4b46276fe734c4f07ea" +dependencies = [ + "crypto-common 0.1.7", + "subtle", +] + +[[package]] +name = "unreachable" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "382810877fe448991dfc7f0dd6e3ae5d58088fd0ea5e35189655f84e6814fa56" +dependencies = [ + "void", +] + [[package]] name = "untrusted" version = "0.9.0" @@ -10842,6 +12761,12 @@ version = "0.9.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0b928f33d975fc6ad9f86c8f283853ad26bdd5b10b7f1542aa2fa15e2289105a" +[[package]] +name = "void" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6a02e4885ed3bc0f2de90ea6dd45ebcbb66dacffe03547fadbb0eeae2770887d" + [[package]] name = "vsimd" version = "0.8.0" @@ -10982,7 +12907,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bb0e353e6a2fbdc176932bbaab493762eb1255a7900fe0fea1a2f96c296cc909" dependencies = [ "anyhow", - "indexmap 2.13.0", + "indexmap 2.14.0", "wasm-encoder", "wasmparser", ] @@ -11008,8 +12933,8 @@ checksum = "47b807c72e1bac69382b3a6fb3dbe8ea4c0ed87ff5629b8685ae6b9a611028fe" dependencies = [ "bitflags 2.10.0", "hashbrown 0.15.5", - "indexmap 2.13.0", - "semver 1.0.27", + "indexmap 2.14.0", + "semver 1.0.28", ] [[package]] @@ -11089,6 +13014,22 @@ version = "1.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "72069c3113ab32ab29e5584db3c6ec55d416895e60715417b5b883a357c3e471" +[[package]] +name = "winapi" +version = "0.3.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419" +dependencies = [ + "winapi-i686-pc-windows-gnu", + "winapi-x86_64-pc-windows-gnu", +] + +[[package]] +name = "winapi-i686-pc-windows-gnu" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" + [[package]] name = "winapi-util" version = "0.1.11" @@ -11098,6 +13039,12 @@ dependencies = [ "windows-sys 0.61.2", ] +[[package]] +name = "winapi-x86_64-pc-windows-gnu" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" + [[package]] name = "wincode" version = "0.5.5" @@ -11536,7 +13483,7 @@ checksum = "b7c566e0f4b284dd6561c786d9cb0142da491f46a9fbed79ea69cdad5db17f21" dependencies = [ "anyhow", "heck", - "indexmap 2.13.0", + "indexmap 2.14.0", "prettyplease", "syn 2.0.118", "wasm-metadata", @@ -11567,7 +13514,7 @@ checksum = "9d66ea20e9553b30172b5e831994e35fbde2d165325bec84fc43dbf6f4eb9cb2" dependencies = [ "anyhow", "bitflags 2.10.0", - "indexmap 2.13.0", + "indexmap 2.14.0", "log", "serde", "serde_derive", @@ -11586,9 +13533,9 @@ checksum = "ecc8ac4bc1dc3381b7f59c34f00b67e18f910c2c0f50015669dde7def656a736" dependencies = [ "anyhow", "id-arena", - "indexmap 2.13.0", + "indexmap 2.14.0", "log", - "semver 1.0.27", + "semver 1.0.28", "serde", "serde_derive", "serde_json", @@ -11630,6 +13577,23 @@ dependencies = [ "tap", ] +[[package]] +name = "x509-parser" +version = "0.18.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d43b0f71ce057da06bc0851b23ee24f3f86190b07203dd8f567d0b706a185202" +dependencies = [ + "asn1-rs", + "data-encoding", + "der-parser", + "lazy_static", + "nom", + "oid-registry", + "rusticata-macros", + "thiserror 2.0.18", + "time", +] + [[package]] name = "xmlparser" version = "0.13.6" @@ -11774,3 +13738,31 @@ name = "zmij" version = "1.0.14" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bd8f3f50b848df28f887acb68e41201b5aea6bc8a8dacc00fb40635ff9a72fea" + +[[package]] +name = "zstd" +version = "0.13.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e91ee311a569c327171651566e07972200e76fcfe2242a4fa446149a3881c08a" +dependencies = [ + "zstd-safe", +] + +[[package]] +name = "zstd-safe" +version = "7.2.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8f49c4d5f0abb602a93fb8736af2a4f4dd9512e36f7f570d66e65ff867ed3b9d" +dependencies = [ + "zstd-sys", +] + +[[package]] +name = "zstd-sys" +version = "2.0.16+zstd.1.5.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "91e19ebc2adc8f83e43039e79776e3fda8ca919132d68a1fed6a5faca2683748" +dependencies = [ + "cc", + "pkg-config", +] diff --git a/Cargo.toml b/Cargo.toml index cbb6bc1df2..b1fed72582 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -118,6 +118,7 @@ sha2 = "0.10" shared = { path = "crates/shared" } signature-validator = { path = "crates/signature-validator" } simulator = { path = "crates/simulator" } +solana-client = "4" solana-indexer = { path = "crates/solana-indexer" } solana-sdk = "4" solver = { path = "crates/solver" } diff --git a/crates/solana-indexer/Cargo.toml b/crates/solana-indexer/Cargo.toml index c11b2d4d7c..f9f840b4e5 100644 --- a/crates/solana-indexer/Cargo.toml +++ b/crates/solana-indexer/Cargo.toml @@ -16,8 +16,10 @@ name = "solana-indexer" path = "src/main.rs" [dependencies] +async-trait = { workspace = true } bytes = { workspace = true } derive_more = { workspace = true } +solana-client = { workspace = true } solana-sdk = { workspace = true } thiserror = { workspace = true } tracing = { workspace = true } diff --git a/crates/solana-indexer/src/lib.rs b/crates/solana-indexer/src/lib.rs index dcb7fa8832..aada6dc51b 100644 --- a/crates/solana-indexer/src/lib.rs +++ b/crates/solana-indexer/src/lib.rs @@ -1,3 +1,7 @@ //! `solana-indexer` — Solana settlement indexer. +#![warn(missing_docs)] + +pub mod persistence; +pub mod traits; pub mod types; diff --git a/crates/solana-indexer/src/persistence.rs b/crates/solana-indexer/src/persistence.rs new file mode 100644 index 0000000000..4c87e62f8d --- /dev/null +++ b/crates/solana-indexer/src/persistence.rs @@ -0,0 +1,114 @@ +#![expect(dead_code, unused_variables)] +//! PostgreSQL persistence layer for decoded events and slot state. + +use { + crate::types::{ + commitment::{Commitment, UnfinalizedRow}, + dead_letter::DeadLetterEntry, + errors::PersistenceError, + events::DecodedEvent, + recovery::PdaSnapshot, + slot::Slot, + }, + std::ops::RangeInclusive, +}; + +/// PostgreSQL persistence. Used by Decoder, Watchdog, and FinalizationWorker. +/// +/// Cheap to clone: wraps a shared pool. The method bodies are stubbed until the +/// Postgres adapter lands. +// TODO: hold `postgres: Arc` once the adapter is added. +#[derive(Clone)] +pub(crate) struct Persistence {} + +impl Persistence { + /// Save decoded events and advance the slot watermark atomically. + pub(crate) async fn persist_events( + &self, + events: Vec, + new_watermark: u64, + ) -> Result<(), PersistenceError> { + todo!() + } + + /// Record a slot checkpoint. Rejects downward writes. + pub(crate) async fn write_watermark(&self, slot: u64) -> Result<(), PersistenceError> { + todo!() + } + + /// Read persisted watermark for resuming after reconnect. + pub(crate) async fn read_watermark(&self) -> Result, PersistenceError> { + todo!() + } + + /// Move stale partials (>32 slots behind) to dead letter table. + pub(crate) async fn write_dead_letter( + &self, + entry: DeadLetterEntry, + ) -> Result<(), PersistenceError> { + todo!() + } + + /// Record gaps that fell outside the replay window (write-only in v0.1). + pub(crate) async fn record_lost_slot_range( + &self, + range: RangeInclusive, + ) -> Result<(), PersistenceError> { + todo!() + } + + /// Primary promotion pass: fetch `confirmed` rows whose `slot` is old + /// enough to be finalized (typically `slot <= tip - 32`) but new enough to + /// still be within the RPC signature-status retention horizon. + /// + /// `limit` is a DB fetch bound (page size), not the RPC batch size. The + /// finalization worker chunks the returned rows into <=256-signature + /// `getSignatureStatuses` calls. Returns `Err` on backend failure so the + /// caller can back off rather than silently stall on a dead store. + pub(crate) async fn get_confirmed_rows( + &self, + max_slot: Slot, + limit: usize, + ) -> Result, PersistenceError> { + todo!() + } + + /// Safety-net sweep for `confirmed` rows the primary promotion pass missed + /// (i.e. rows that aged past the signature-status retention horizon, + /// ~150 slots behind the chain tip). Returns `Err` on backend failure + /// (see `get_confirmed_rows`). + pub(crate) async fn get_aged_rows( + &self, + retention_horizon_slot: u64, + ) -> Result, PersistenceError> { + todo!() + } + + /// Flip the `commitment` label on a specific row. + /// + /// The row's `table` field tells the implementer which `solana.*` table to + /// UPDATE. + pub(crate) async fn update_commitment( + &self, + row: &UnfinalizedRow, + new_commitment: Commitment, + ) -> Result<(), PersistenceError> { + todo!() + } + + /// Persist a single event during recovery/backfills, not the live ingestion + /// path. + /// + /// Unlike `persist_events`, this does not advance the watermark. + pub(crate) async fn backfill_event(&self, event: DecodedEvent) -> Result<(), PersistenceError> { + todo!() + } + + /// Upsert on-chain PDA state for reconciliation. + pub(crate) async fn upsert_pda_snapshot( + &self, + snapshot: PdaSnapshot, + ) -> Result<(), PersistenceError> { + todo!() + } +} diff --git a/crates/solana-indexer/src/traits/mod.rs b/crates/solana-indexer/src/traits/mod.rs new file mode 100644 index 0000000000..a39719ea2c --- /dev/null +++ b/crates/solana-indexer/src/traits/mod.rs @@ -0,0 +1,3 @@ +//! Traits for external dependencies. + +pub mod solana_client; diff --git a/crates/solana-indexer/src/traits/solana_client.rs b/crates/solana-indexer/src/traits/solana_client.rs new file mode 100644 index 0000000000..ee5c464b68 --- /dev/null +++ b/crates/solana-indexer/src/traits/solana_client.rs @@ -0,0 +1,44 @@ +#![expect(dead_code)] +//! Solana RPC interface for the finalization worker. + +use { + crate::types::{ + commitment::{AccountInfo, SignatureStatus}, + recovery::GetSignaturesOpts, + wire::SubscribeUpdateTransactionInfo, + }, + async_trait::async_trait, + solana_client::client_error::ClientError, + solana_sdk::{pubkey::Pubkey, signature::Signature}, +}; + +/// Interface for RPC calls the finalization worker needs: +/// promoting confirmed transactions to finalized, sweeping aged rows, +/// and reading account state for recovery. +#[async_trait] +pub(crate) trait SolanaClient: Send + Sync { + /// Fetch status for multiple transaction signatures (up to 256). + /// `None` = transaction signature not found. + async fn get_signature_statuses( + &self, + signatures: &[Signature], + ) -> Result>, ClientError>; + + /// Fetch a transaction by its signature. `Ok(None)` = never landed. + async fn get_transaction( + &self, + signature: &Signature, + ) -> Result, ClientError>; + + /// List all transaction signatures for a program address (used for + /// backfill). + async fn get_signatures_for_address( + &self, + address: &Pubkey, + opts: GetSignaturesOpts, + ) -> Result, ClientError>; + + /// Read account data. `Ok(None)` = account does not exist (deleted or not + /// initialized). + async fn get_account_info(&self, address: &Pubkey) -> Result, ClientError>; +} diff --git a/crates/solana-indexer/src/types/channel.rs b/crates/solana-indexer/src/types/channel.rs index 6775492094..bcfb25fa5f 100644 --- a/crates/solana-indexer/src/types/channel.rs +++ b/crates/solana-indexer/src/types/channel.rs @@ -30,8 +30,8 @@ pub(crate) enum StreamUpdate { Account { /// Slot the message was observed at. slot: Slot, - /// Optional signature linking the write back to its originating - /// transaction. + /// Optional transaction signature linking the write back to its + /// originating transaction. txn_signature: Option, /// Wire message body. inner: Box, diff --git a/crates/solana-indexer/src/types/errors.rs b/crates/solana-indexer/src/types/errors.rs index 27607bc304..fac0323376 100644 --- a/crates/solana-indexer/src/types/errors.rs +++ b/crates/solana-indexer/src/types/errors.rs @@ -22,14 +22,14 @@ pub(crate) enum DecodeError { /// Failures surfaced from the persistence boundary. #[derive(Debug, Error, PartialEq, Eq)] -pub(crate) enum StoreError { +pub(crate) enum PersistenceError { /// The SQL `ON CONFLICT` clause rejected the write (e.g. watermark /// regression). - #[error("store conflict")] + #[error("persistence conflict")] Conflict, - /// The store is temporarily unavailable (e.g. connection lost, pool - /// exhausted). The caller is expected to retry. - #[error("store unavailable")] + /// The persistence layer is temporarily unavailable (e.g. connection lost, + /// pool exhausted). The caller is expected to retry. + #[error("persistence unavailable")] Unavailable, } diff --git a/crates/solana-indexer/src/types/recovery.rs b/crates/solana-indexer/src/types/recovery.rs index 59ba628623..0b4c490b48 100644 --- a/crates/solana-indexer/src/types/recovery.rs +++ b/crates/solana-indexer/src/types/recovery.rs @@ -2,7 +2,7 @@ //! Recovery-flow types: PDA snapshots and the options struct for //! `getSignaturesForAddress` backfills. -use {crate::types::order::OrderUid, solana_sdk::pubkey::Pubkey}; +use crate::types::order::OrderUid; /// Current on-chain snapshot of an order PDA, read by `getAccountInfo` for /// reconciliation. @@ -27,9 +27,6 @@ pub(crate) struct GetSignaturesOpts { pub from_slot: Option, /// End slot (inclusive). `None` means "to the tip". pub to_slot: Option, - /// Cap on the number of signatures returned. + /// Cap on the number of transaction signatures returned. pub limit: Option, - /// Optional address filter (used when back-filling both programs - /// in a single pass). - pub address: Option, }