diff --git a/Cargo.lock b/Cargo.lock index 357831ccb66..c6d934b981f 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -73,9 +73,9 @@ checksum = "683d7910e743518b0e34f1186f92494becacb047c7b6bf616c96772180fef923" [[package]] name = "alloy" -version = "1.7.3" +version = "2.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4973038846323e4e69a433916522195dce2947770076c03078fc21c80ea0f1c4" +checksum = "85805c194576017df6c11057504e1d60b36f3913f8e365945486931f6ee81e40" dependencies = [ "alloy-consensus", "alloy-contract", @@ -111,9 +111,9 @@ dependencies = [ [[package]] name = "alloy-consensus" -version = "1.7.3" +version = "2.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b0c0dc44157867da82c469c13186015b86abef209bf0e41625e4b68bac61d728" +checksum = "8dbe4e5e9107bf6854e7550b666ca654ff2027eabf8153913e2e31ac4b089779" dependencies = [ "alloy-eips", "alloy-primitives", @@ -139,9 +139,9 @@ dependencies = [ [[package]] name = "alloy-consensus-any" -version = "1.7.3" +version = "2.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ba4cdb42df3871cd6b346d6a938ec2ba69a9a0f49d1f82714bc5c48349268434" +checksum = "88fc7bbfb98cf5605a35aadf0ba43a7d9f1608d6f220d05e4fbd5144d3b0b625" dependencies = [ "alloy-consensus", "alloy-eips", @@ -154,9 +154,9 @@ dependencies = [ [[package]] name = "alloy-contract" -version = "1.7.3" +version = "2.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ca63b7125a981415898ffe2a2a696c83696c9c6bdb1671c8a912946bbd8e49e7" +checksum = "f4c16fa30b623e40a5b216da00f3b61870f5cbe863b59816ac1ecc2489515a40" dependencies = [ "alloy-consensus", "alloy-dyn-abi", @@ -173,6 +173,7 @@ dependencies = [ "futures-util", "serde_json", "thiserror 2.0.18", + "tracing", ] [[package]] @@ -266,9 +267,9 @@ dependencies = [ [[package]] name = "alloy-eips" -version = "1.7.3" +version = "2.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b9f7ef09f21bd1e9cb8a686f168cb4a206646804567f0889eadb8dcc4c9288c8" +checksum = "afb4919fa34b268842f434bfafa9c09136ab7b1a87ce0dd40a61befa35b5408c" dependencies = [ "alloy-eip2124", "alloy-eip2930", @@ -286,14 +287,13 @@ dependencies = [ "serde", "serde_with", "sha2 0.10.9", - "thiserror 2.0.18", ] [[package]] name = "alloy-genesis" -version = "1.7.3" +version = "2.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7c9cf3b99f46615fbf7dc1add0c96553abb7bf88fc9ec70dfbe7ad0b47ba7fe8" +checksum = "1e111e22c1a2133e9ebfd9051ea0eaf63559594d2f50d43cbc6762fbb95fc3c2" dependencies = [ "alloy-eips", "alloy-primitives", @@ -318,9 +318,9 @@ dependencies = [ [[package]] name = "alloy-json-rpc" -version = "1.7.3" +version = "2.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ff42cd777eea61f370c0b10f2648a1c81e0b783066cd7269228aa993afd487f7" +checksum = "31b6af6f374c1eeef8ab8dc26232cd440db167322a4207a3debd3d1ee565ca47" dependencies = [ "alloy-primitives", "alloy-sol-types", @@ -333,9 +333,9 @@ dependencies = [ [[package]] name = "alloy-network" -version = "1.7.3" +version = "2.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8cbca04f9b410fdc51aaaf88433cbac761213905a65fe832058bcf6690585762" +checksum = "f0a3f5a7f3678b71d33fcc45b714fab8928dbc647d5aff2145e72032d5c849bb" dependencies = [ "alloy-consensus", "alloy-consensus-any", @@ -359,9 +359,9 @@ dependencies = [ [[package]] name = "alloy-network-primitives" -version = "1.7.3" +version = "2.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "42d6d15e069a8b11f56bef2eccbad2a873c6dd4d4c81d04dda29710f5ea52f04" +checksum = "fb50dc1fb0e0b2c8748d5bee1aa7acdd18f9e036311bc93a71d97be624030317" dependencies = [ "alloy-consensus", "alloy-eips", @@ -384,7 +384,7 @@ dependencies = [ "derive_more", "foldhash 0.2.0", "hashbrown 0.16.1", - "indexmap 2.13.1", + "indexmap 2.14.0", "itoa", "k256", "keccak-asm", @@ -394,7 +394,7 @@ dependencies = [ "rand 0.9.2", "rapidhash", "ruint", - "rustc-hash 2.1.1", + "rustc-hash", "serde", "sha3", "tiny-keccak 2.0.2", @@ -402,9 +402,9 @@ dependencies = [ [[package]] name = "alloy-provider" -version = "1.7.3" +version = "2.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d181c8cc7cf4805d7e589bf4074d56d55064fa1a979f005a45a62b047616d870" +checksum = "f2ba5468f78c8893be2d68a7f2fda61753336e5653f006af19781001b5f99e6c" dependencies = [ "alloy-chains", "alloy-consensus", @@ -436,7 +436,7 @@ dependencies = [ "lru", "parking_lot", "pin-project", - "reqwest", + "reqwest 0.13.2", "serde", "serde_json", "thiserror 2.0.18", @@ -448,9 +448,9 @@ dependencies = [ [[package]] name = "alloy-pubsub" -version = "1.7.3" +version = "2.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e8bd82953194dec221aa4cbbbb0b1e2df46066fe9d0333ac25b43a311e122d13" +checksum = "ffcefb5d3391a320eadb95d398e4135f8cc35c7bf29a6bdb357eadcfc5ee5638" dependencies = [ "alloy-json-rpc", "alloy-primitives", @@ -492,9 +492,9 @@ dependencies = [ [[package]] name = "alloy-rpc-client" -version = "1.7.3" +version = "2.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f2792758a93ae32a32e9047c843d536e1448044f78422d71bf7d7c05149e103f" +checksum = "222fd4efff0fb9a25184684742c44fe9fa9a16c4ab5bf97583e71c86598ef8f0" dependencies = [ "alloy-json-rpc", "alloy-primitives", @@ -505,7 +505,7 @@ dependencies = [ "alloy-transport-ws", "futures 0.3.31", "pin-project", - "reqwest", + "reqwest 0.13.2", "serde", "serde_json", "tokio", @@ -518,9 +518,9 @@ dependencies = [ [[package]] name = "alloy-rpc-types" -version = "1.7.3" +version = "2.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7bdcbf9dfd5eea8bfeb078b1d906da8cd3a39c4d4dbe7a628025648e323611f6" +checksum = "974df1e56405c27cb8242381f45d8b212ba9df5006046ccf704764a2a4634366" dependencies = [ "alloy-primitives", "alloy-rpc-types-anvil", @@ -535,9 +535,9 @@ dependencies = [ [[package]] name = "alloy-rpc-types-anvil" -version = "1.7.3" +version = "2.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e0a3100b76987c1b1dc81f3abe592b7edc29e92b1242067a69d65e0030b35cf9" +checksum = "06bc10b0dca4f5bfc3cd30ed46eab5d651b5bb2cd300d683bdcdf5d2bfe6e82c" dependencies = [ "alloy-primitives", "alloy-rpc-types-eth", @@ -547,22 +547,27 @@ dependencies = [ [[package]] name = "alloy-rpc-types-any" -version = "1.7.3" +version = "2.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dd720b63f82b457610f2eaaf1f32edf44efffe03ae25d537632e7d23e7929e1a" +checksum = "949c0f16a94ae33cdb1139b8dbf9e34d7f26ebfe97962e2a4d620b5f65f48fe4" dependencies = [ "alloy-consensus-any", + "alloy-network-primitives", + "alloy-primitives", "alloy-rpc-types-eth", "alloy-serde", + "serde", + "serde_json", ] [[package]] name = "alloy-rpc-types-debug" -version = "1.7.3" +version = "2.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e1b21e1ad18ff1b31ff1030e046462ab8168cf8894e6778cd805c8bdfe2bd649" +checksum = "301249e3c9e43661cfd7ebbb4746a00af6ce1ef58b5c968451882cd60438417d" dependencies = [ "alloy-primitives", + "alloy-rlp", "derive_more", "serde", "serde_with", @@ -570,9 +575,9 @@ dependencies = [ [[package]] name = "alloy-rpc-types-engine" -version = "1.7.3" +version = "2.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e4ac61f03f1edabccde1c687b5b25fff28f183afee64eaa2e767def3929e4457" +checksum = "e59bc947935732cae5b072753e5e034c0b70a8b031c2839f45e2659ba07df9ae" dependencies = [ "alloy-consensus", "alloy-eips", @@ -588,9 +593,9 @@ dependencies = [ [[package]] name = "alloy-rpc-types-eth" -version = "1.7.3" +version = "2.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9b2dc411f13092f237d2bf6918caf80977fc2f51485f9b90cb2a2f956912c8c9" +checksum = "cc280a41931bd419af86e9e859dd9726b73313aaa2e479b33c0e344f4b892ddb" dependencies = [ "alloy-consensus", "alloy-consensus-any", @@ -610,9 +615,9 @@ dependencies = [ [[package]] name = "alloy-rpc-types-trace" -version = "1.7.3" +version = "2.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1ad79f1e27e161943b5a4f99fe5534ef0849876214be411e0032c12f38e94daa" +checksum = "ede0458c51bef23620aa6bd01a0b4f608be7bcb61d98e91b8530208ae545f3c2" dependencies = [ "alloy-primitives", "alloy-rpc-types-eth", @@ -624,9 +629,9 @@ dependencies = [ [[package]] name = "alloy-rpc-types-txpool" -version = "1.7.3" +version = "2.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d459f902a2313737bc66d18ed094c25d2aeb268b74d98c26bbbda2aa44182ab0" +checksum = "d3f4df183248b57f3e0b99054b1b6786769d3fdff6d01a702234068140c8ba76" dependencies = [ "alloy-primitives", "alloy-rpc-types-eth", @@ -636,9 +641,9 @@ dependencies = [ [[package]] name = "alloy-serde" -version = "1.7.3" +version = "2.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e2ce1e0dbf7720eee747700e300c99aac01b1a95bb93f493a01e78ee28bb1a37" +checksum = "4848831ff994c88b1c32b7df9c4c1c3eedea4b535bde5eb3c421ef0bdc5ac052" dependencies = [ "alloy-primitives", "arbitrary", @@ -648,9 +653,9 @@ dependencies = [ [[package]] name = "alloy-signer" -version = "1.7.3" +version = "2.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2425c6f314522c78e8198979c8cbf6769362be4da381d4152ea8eefce383535d" +checksum = "84b8ad9890b212e224291024b1aecfeef72127d27a2f6eebc5e347c40275c4bf" dependencies = [ "alloy-primitives", "async-trait", @@ -663,9 +668,9 @@ dependencies = [ [[package]] name = "alloy-signer-local" -version = "1.7.3" +version = "2.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c3ecb71ee53d8d9c3fa7bac17542c8116ebc7a9726c91b1bf333ec3d04f5a789" +checksum = "3c67d2372aada343130d41e249b59a3cef29b1678dcd3fd80f1c2c4d6b5318f2" dependencies = [ "alloy-consensus", "alloy-network", @@ -701,7 +706,7 @@ dependencies = [ "alloy-sol-macro-input", "const-hex", "heck 0.5.0", - "indexmap 2.13.1", + "indexmap 2.14.0", "proc-macro-error2", "proc-macro2", "quote", @@ -752,9 +757,9 @@ dependencies = [ [[package]] name = "alloy-transport" -version = "1.7.3" +version = "2.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fa186e560d523d196580c48bf00f1bf62e63041f28ecf276acc22f8b27bb9f53" +checksum = "32b7b755e64ae6b5de0d762ed2c780e072167ea5e542076a559e00314352a0bf" dependencies = [ "alloy-json-rpc", "auto_impl", @@ -775,14 +780,14 @@ dependencies = [ [[package]] name = "alloy-transport-http" -version = "1.7.3" +version = "2.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aa501ad58dd20acddbfebc65b52e60f05ebf97c52fa40d1b35e91f5e2da0ad0e" +checksum = "a29980e69119444ed26b75e7ee5bed2043870f904a64318297e55800db686564" dependencies = [ "alloy-json-rpc", "alloy-transport", "itertools 0.14.0", - "reqwest", + "reqwest 0.13.2", "serde_json", "tower 0.5.2", "tracing", @@ -791,9 +796,9 @@ dependencies = [ [[package]] name = "alloy-transport-ipc" -version = "1.7.3" +version = "2.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c2ef85688e5ac2da72afc804e0a1f153a1f309f05a864b1998bbbed7804dbaab" +checksum = "7b27802653330740c88c28394cdaf1d55190b15b48ef9b99a946f37c9cdb19fa" dependencies = [ "alloy-json-rpc", "alloy-pubsub", @@ -811,18 +816,20 @@ dependencies = [ [[package]] name = "alloy-transport-ws" -version = "1.7.3" +version = "2.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b9f00445db69d63298e2b00a0ea1d859f00e6424a3144ffc5eba9c31da995e16" +checksum = "e4b71dc951db66795cfb52eef835f64cf15163bc93b656e061b457ce5ebff370" dependencies = [ "alloy-pubsub", "alloy-transport", "futures 0.3.31", "http 1.4.0", + "rustls", "serde_json", "tokio", - "tokio-tungstenite 0.26.2", + "tokio-tungstenite 0.28.0", "tracing", + "url", "ws_stream_wasm", ] @@ -848,11 +855,11 @@ dependencies = [ [[package]] name = "alloy-tx-macros" -version = "1.7.3" +version = "2.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6fa0c53e8c1e1ef4d01066b01c737fb62fc9397ab52c6e7bb5669f97d281b9bc" +checksum = "8d8228b9236479ff16b03041b64b86c2bd4e53da1caa45d59b5868cd1571131e" dependencies = [ - "darling 0.21.3", + "darling 0.23.0", "proc-macro2", "quote", "syn 2.0.117", @@ -1326,7 +1333,7 @@ dependencies = [ "arrow-schema", "chrono", "half", - "indexmap 2.13.1", + "indexmap 2.14.0", "itoa", "lexical-core", "memchr", @@ -1450,7 +1457,7 @@ dependencies = [ "futures-util", "handlebars", "http 1.4.0", - "indexmap 2.13.1", + "indexmap 2.14.0", "mime", "multer", "num-traits", @@ -1517,7 +1524,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3e3ef112905abea9dea592fc868a6873b10ebd3f983e83308f995d6284e9ba41" dependencies = [ "bytes", - "indexmap 2.13.1", + "indexmap 2.14.0", "serde", "serde_json", ] @@ -1654,6 +1661,28 @@ version = "1.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0c4b4d0bd25bd0b74681c0ad21497610ce1b7c91b1022cd21c80c6fbdd9476b0" +[[package]] +name = "aws-lc-rs" +version = "1.16.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a054912289d18629dc78375ba2c3726a3afe3ff71b4edba9dedfca0e3446d1fc" +dependencies = [ + "aws-lc-sys", + "zeroize", +] + +[[package]] +name = "aws-lc-sys" +version = "0.39.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "83a25cf98105baa966497416dbd42565ce3a8cf8dbfd59803ec9ad46f3126399" +dependencies = [ + "cc", + "cmake", + "dunce", + "fs_extra", +] + [[package]] name = "axum" version = "0.8.9" @@ -1816,9 +1845,9 @@ checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" [[package]] name = "bitflags" -version = "2.9.0" +version = "2.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5c8214115b7bf84099f1309324e63141d4c5d7cc26862f97a0a857dbefe165bd" +checksum = "843867be96c8daad0d758b57df9392b6d8d271134fce549de6ce169ff98a92af" [[package]] name = "bitvec" @@ -2008,9 +2037,9 @@ dependencies = [ [[package]] name = "cc" -version = "1.2.43" +version = "1.2.60" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "739eb0f94557554b3ca9a86d2d37bebd49c5e6d0c1d2bda35ba5bdac830befc2" +checksum = "43c5703da9466b66a946814e1adf53ea2c90f10063b86290cc9eb67ce3478a20" dependencies = [ "find-msvc-tools", "jobserver", @@ -2018,6 +2047,12 @@ dependencies = [ "shlex", ] +[[package]] +name = "cesu8" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6d43a04d8753f35258c91f8ec639f792891f748a1edbd759cf1dcea3382ad83c" + [[package]] name = "cfg-if" version = "0.1.10" @@ -2098,9 +2133,9 @@ dependencies = [ [[package]] name = "clap_complete" -version = "4.6.2" +version = "4.5.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3ff7a1dccbdd8b078c2bdebff47e404615151534d5043da397ec50286816f9cb" +checksum = "5b4be9c4c4b1f30b78d8a750e0822b6a6102d97e62061c583a6c1dea2dfb33ae" dependencies = [ "clap", ] @@ -2123,6 +2158,15 @@ version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c8d4a3bb8b1e0c1050499d1815f5ab16d04f0959b233085fb31653fbfc9d98f9" +[[package]] +name = "cmake" +version = "0.1.58" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c0f78a02292a74a88ac736019ab962ece0bc380e3f977bf72e376c5d78ff0678" +dependencies = [ + "cc", +] + [[package]] name = "cobs" version = "0.2.3" @@ -2367,7 +2411,7 @@ dependencies = [ "log", "pulley-interpreter", "regalloc2", - "rustc-hash 2.1.1", + "rustc-hash", "serde", "smallvec", "target-lexicon", @@ -2534,7 +2578,7 @@ version = "0.29.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d8b9f2e4c67f833b660cdb0a3523065869fb35570177239812ed4c905aeff87b" dependencies = [ - "bitflags 2.9.0", + "bitflags 2.11.0", "crossterm_winapi", "derive_more", "document-features", @@ -2677,7 +2721,6 @@ dependencies = [ "ident_case", "proc-macro2", "quote", - "serde", "strsim", "syn 2.0.117", ] @@ -2691,6 +2734,7 @@ dependencies = [ "ident_case", "proc-macro2", "quote", + "serde", "strsim", "syn 2.0.117", ] @@ -2924,7 +2968,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e8496eeb328dce26ee9d9b73275d396d9bddb433fa30106cf6056dd8c3c2764c" dependencies = [ "bigdecimal 0.3.1", - "bitflags 2.9.0", + "bitflags 2.11.0", "byteorder", "chrono", "diesel_derives", @@ -3415,9 +3459,9 @@ dependencies = [ [[package]] name = "find-msvc-tools" -version = "0.1.4" +version = "0.1.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "52051878f80a721bb68ebfbc930e07b65ba72f2da88968ea5c06fd6ca3d3a127" +checksum = "5baebc0774151f905a1a2cc41989300b1e6fbb29aff0ceffa1064fdd3088d582" [[package]] name = "firestorm" @@ -3455,7 +3499,7 @@ version = "25.12.19" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "35f6839d7b3b98adde531effaf34f0c2badc6f4735d26fe74709d8e513a96ef3" dependencies = [ - "bitflags 2.9.0", + "bitflags 2.11.0", "rustc_version 0.4.0", ] @@ -3512,6 +3556,12 @@ dependencies = [ "percent-encoding", ] +[[package]] +name = "fs_extra" +version = "1.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "42703706b716c37f96a77aea830392ad231f44c9e9a67872fa5548707e11b11c" + [[package]] name = "fsevent-sys" version = "4.1.0" @@ -3654,9 +3704,9 @@ version = "0.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "25234f20a3ec0a962a61770cfe39ecf03cb529a6e474ad8cff025ed497eda557" dependencies = [ - "bitflags 2.9.0", + "bitflags 2.11.0", "debugid", - "rustc-hash 2.1.1", + "rustc-hash", "serde", "serde_derive", "serde_json", @@ -3721,7 +3771,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e629b9b98ef3dd8afe6ca2bd0f89306cec16d43d907889945bc5d6687f2f13c7" dependencies = [ "fallible-iterator 0.3.0", - "indexmap 2.13.1", + "indexmap 2.14.0", "stable_deref_trait", ] @@ -3795,7 +3845,7 @@ dependencies = [ "pgtemp", "pq-sys", "regex", - "reqwest", + "reqwest 0.12.23", "semver 1.0.28", "serde", "serde_json", @@ -3870,7 +3920,8 @@ dependencies = [ "rand 0.9.2", "redis", "regex", - "reqwest", + "reqwest 0.12.23", + "rustls", "semver 1.0.28", "serde", "serde_derive", @@ -4234,7 +4285,7 @@ dependencies = [ "graphman", "graphman-store", "lazy_static", - "reqwest", + "reqwest 0.12.23", "serde", "serde_json", "slog", @@ -4294,7 +4345,7 @@ dependencies = [ "futures-core", "futures-sink", "http 1.4.0", - "indexmap 2.13.1", + "indexmap 2.14.0", "slab", "tokio", "tokio-util", @@ -4364,6 +4415,12 @@ dependencies = [ "serde_core", ] +[[package]] +name = "hashbrown" +version = "0.17.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4f467dd6dccf739c208452f8014c75c18bb8301b050ad1cfb27153803edb0f51" + [[package]] name = "hdrhistogram" version = "7.5.4" @@ -4546,7 +4603,6 @@ dependencies = [ "tokio", "tokio-rustls", "tower-service 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)", - "webpki-roots 0.26.11", ] [[package]] @@ -4595,7 +4651,7 @@ dependencies = [ "libc", "percent-encoding", "pin-project-lite", - "socket2 0.6.0", + "socket2", "system-configuration", "tokio", "tower-layer 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)", @@ -4823,13 +4879,13 @@ dependencies = [ [[package]] name = "indexmap" -version = "2.13.1" +version = "2.14.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "45a8a2b9cb3e0b0c1803dbb0758ffac5de2f425b23c28f518faabd9d805342ff" +checksum = "d466e9454f08e4a911e14806c24e16fba1b4c121d1ea474396f396069cf949d9" dependencies = [ "arbitrary", "equivalent", - "hashbrown 0.16.1", + "hashbrown 0.17.0", "serde", "serde_core", ] @@ -4862,7 +4918,7 @@ version = "0.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f37dccff2791ab604f9babef0ba14fbe0be30bd368dc541e2b08d07c8aa908f3" dependencies = [ - "bitflags 2.9.0", + "bitflags 2.11.0", "inotify-sys", "libc", ] @@ -4882,7 +4938,7 @@ version = "0.9.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6654738b8024300cf062d04a1c13c10c8e2cea598ec1c47dc9b6641159429756" dependencies = [ - "bitflags 2.9.0", + "bitflags 2.11.0", "crossterm", "dyn-clone", "fuzzy-matcher", @@ -5040,6 +5096,50 @@ dependencies = [ "syn 2.0.117", ] +[[package]] +name = "jni" +version = "0.21.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1a87aa2bb7d2af34197c04845522473242e1aa17c12f4935d5856491a7fb8c97" +dependencies = [ + "cesu8", + "cfg-if 1.0.0", + "combine", + "jni-sys 0.3.1", + "log", + "thiserror 1.0.61", + "walkdir", + "windows-sys 0.45.0", +] + +[[package]] +name = "jni-sys" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "41a652e1f9b6e0275df1f15b32661cf0d4b78d4d87ddec5e0c3c20f097433258" +dependencies = [ + "jni-sys 0.4.1", +] + +[[package]] +name = "jni-sys" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c6377a88cb3910bee9b0fa88d4f42e1d2da8e79915598f65fb0c7ee14c878af2" +dependencies = [ + "jni-sys-macros", +] + +[[package]] +name = "jni-sys-macros" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "38c0b942f458fe50cdac086d2f946512305e5631e720728f2a61aabcd47a6264" +dependencies = [ + "quote", + "syn 2.0.117", +] + [[package]] name = "jobserver" version = "0.1.31" @@ -5255,7 +5355,7 @@ version = "0.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c0ff37bd590ca25063e35af745c343cb7a0271906fb7b37e4813e8f79f00268d" dependencies = [ - "bitflags 2.9.0", + "bitflags 2.11.0", "libc", ] @@ -5517,7 +5617,7 @@ version = "8.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4d3d07927151ff8575b7087f245456e549fea62edf0ec4e565a5ee50c8402bc3" dependencies = [ - "bitflags 2.9.0", + "bitflags 2.11.0", "fsevent-sys", "inotify", "kqueue", @@ -5660,7 +5760,7 @@ checksum = "ff76201f031d8863c38aa7f905eca4f53abbfa15f609db4277d44cd8938f33fe" dependencies = [ "crc32fast", "hashbrown 0.15.2", - "indexmap 2.13.1", + "indexmap 2.14.0", "memchr", ] @@ -5687,7 +5787,7 @@ dependencies = [ "percent-encoding", "quick-xml", "rand 0.10.0", - "reqwest", + "reqwest 0.12.23", "ring", "rustls-pki-types", "serde", @@ -5716,9 +5816,9 @@ checksum = "384b8ab6d37215f3c5301a95a4accb5d64aa607f1fcb26a11b5303878451b4fe" [[package]] name = "open" -version = "5.3.4" +version = "5.3.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9f3bab717c29a857abf75fcef718d441ec7cb2725f937343c734740a985d37fd" +checksum = "43bb73a7fa3799b198970490a51174027ba0d4ec504b03cd08caf513d40024bc" dependencies = [ "is-wsl", "libc", @@ -5727,11 +5827,11 @@ dependencies = [ [[package]] name = "openssl" -version = "0.10.77" +version = "0.10.78" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bfe4646e360ec77dff7dde40ed3d6c5fee52d156ef4a62f53973d38294dad87f" +checksum = "f38c4372413cdaaf3cc79dd92d29d7d9f5ab09b51b10dded508fb90bb70b9222" dependencies = [ - "bitflags 2.9.0", + "bitflags 2.11.0", "cfg-if 1.0.0", "foreign-types", "libc", @@ -5768,9 +5868,9 @@ dependencies = [ [[package]] name = "openssl-sys" -version = "0.9.113" +version = "0.9.114" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ad2f2c0eba47118757e4c6d2bff2838f3e0523380021356e7875e858372ce644" +checksum = "13ce1245cd07fcc4cfdb438f7507b0c7e4f3849a69fd84d52374c66d83741bb6" dependencies = [ "cc", "libc", @@ -5959,7 +6059,7 @@ checksum = "8701b58ea97060d5e5b155d383a69952a60943f0e6dfe30b04c287beb0b27455" dependencies = [ "fixedbitset", "hashbrown 0.15.2", - "indexmap 2.13.1", + "indexmap 2.14.0", "serde", ] @@ -6219,7 +6319,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "93980406f12d9f8140ed5abe7155acb10bb1e69ea55c88960b9c2f117445ef96" dependencies = [ "equivalent", - "indexmap 2.13.1", + "indexmap 2.14.0", "serde", ] @@ -6287,7 +6387,7 @@ dependencies = [ "memchr", "parking_lot", "protobuf", - "reqwest", + "reqwest 0.12.23", "thiserror 2.0.18", ] @@ -6299,7 +6399,7 @@ checksum = "bee689443a2bd0a16ab0348b52ee43e3b2d1b1f931c8aa5c9f8de4c86fbe8c40" dependencies = [ "bit-set", "bit-vec", - "bitflags 2.9.0", + "bitflags 2.11.0", "num-traits", "rand 0.9.2", "rand_chacha 0.9.0", @@ -6403,7 +6503,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b4aeaa1f2460f1d348eeaeed86aea999ce98c1bded6f089ff8514c9d9dbdc973" dependencies = [ "anyhow", - "indexmap 2.13.1", + "indexmap 2.14.0", "log", "protobuf", "protobuf-support", @@ -6436,7 +6536,7 @@ version = "0.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1e8bbe1a966bd2f362681a44f6edce3c2310ac21e4d5067a6e7ec396297a6ea0" dependencies = [ - "bitflags 2.9.0", + "bitflags 2.11.0", "memchr", "unicase", ] @@ -6491,19 +6591,22 @@ dependencies = [ [[package]] name = "quinn" -version = "0.11.2" +version = "0.11.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e4ceeeeabace7857413798eb1ffa1e9c905a9946a57d81fb69b4b71c4d8eb3ad" +checksum = "b9e20a958963c291dc322d98411f541009df2ced7b5a4f2bd52337638cfccf20" dependencies = [ "bytes", + "cfg_aliases", "pin-project-lite", "quinn-proto", "quinn-udp", - "rustc-hash 1.1.0", + "rustc-hash", "rustls", - "thiserror 1.0.61", + "socket2", + "thiserror 2.0.18", "tokio", "tracing", + "web-time", ] [[package]] @@ -6512,12 +6615,13 @@ version = "0.11.14" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "434b42fec591c96ef50e21e886936e66d3cc3f737104fdb9b737c40ffb94c098" dependencies = [ + "aws-lc-rs", "bytes", "getrandom 0.3.1", "lru-slab", "rand 0.9.2", "ring", - "rustc-hash 2.1.1", + "rustc-hash", "rustls", "rustls-pki-types", "slab", @@ -6529,15 +6633,16 @@ dependencies = [ [[package]] name = "quinn-udp" -version = "0.5.2" +version = "0.5.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9096629c45860fc7fb143e125eb826b5e721e10be3263160c7d60ca832cf8c46" +checksum = "addec6a0dcad8a8d96a771f815f0eaf55f9d1805756410b39f5fa81332574cbd" dependencies = [ + "cfg_aliases", "libc", "once_cell", - "socket2 0.5.7", + "socket2", "tracing", - "windows-sys 0.52.0", + "windows-sys 0.60.2", ] [[package]] @@ -6736,7 +6841,7 @@ dependencies = [ "pin-project-lite", "ryu", "sha1_smol", - "socket2 0.6.0", + "socket2", "tokio", "tokio-util", "url", @@ -6758,7 +6863,7 @@ version = "0.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c82cf8cff14456045f55ec4241383baeff27af886adb72ffb2162f99911de0fd" dependencies = [ - "bitflags 2.9.0", + "bitflags 2.11.0", ] [[package]] @@ -6782,7 +6887,7 @@ dependencies = [ "bumpalo", "hashbrown 0.15.2", "log", - "rustc-hash 2.1.1", + "rustc-hash", "smallvec", ] @@ -6863,7 +6968,43 @@ dependencies = [ "wasm-bindgen-futures", "wasm-streams", "web-sys", - "webpki-roots 1.0.5", +] + +[[package]] +name = "reqwest" +version = "0.13.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ab3f43e3283ab1488b624b44b0e988d0acea0b3214e694730a055cb6b2efa801" +dependencies = [ + "base64 0.22.1", + "bytes", + "futures-core", + "http 1.4.0", + "http-body", + "http-body-util", + "hyper", + "hyper-rustls", + "hyper-util", + "js-sys", + "log", + "percent-encoding", + "pin-project-lite", + "quinn", + "rustls", + "rustls-pki-types", + "rustls-platform-verifier", + "serde", + "serde_json", + "sync_wrapper", + "tokio", + "tokio-rustls", + "tower 0.5.2", + "tower-http", + "tower-service 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)", + "url", + "wasm-bindgen", + "wasm-bindgen-futures", + "web-sys", ] [[package]] @@ -6941,12 +7082,6 @@ version = "0.1.24" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "719b953e2095829ee67db738b3bfa9fa368c94900df327b3f07fe6e794d2fe1f" -[[package]] -name = "rustc-hash" -version = "1.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "08d43f7aa6b08d49f382cde6a7982047c3426db949b1424bc4b7ec9ae12c6ce2" - [[package]] name = "rustc-hash" version = "2.1.1" @@ -6983,7 +7118,7 @@ version = "0.38.34" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "70dc5ec042f7a43c4a73241207cecc9873a06d45debb38b329f8541d85c2730f" dependencies = [ - "bitflags 2.9.0", + "bitflags 2.11.0", "errno", "libc", "linux-raw-sys 0.4.14", @@ -6996,7 +7131,7 @@ version = "1.0.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c71e83d6afe7ff64890ec6b71d6a69bb8a610ab78ce364b3352876bb4c801266" dependencies = [ - "bitflags 2.9.0", + "bitflags 2.11.0", "errno", "libc", "linux-raw-sys 0.9.4", @@ -7009,6 +7144,7 @@ version = "0.23.28" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7160e3e10bf4535308537f3c4e1641468cd0e485175d6163087c0393c7d46643" dependencies = [ + "aws-lc-rs", "log", "once_cell", "ring", @@ -7040,7 +7176,7 @@ dependencies = [ "openssl-probe", "rustls-pki-types", "schannel", - "security-framework 3.2.0", + "security-framework 3.7.0", ] [[package]] @@ -7062,12 +7198,40 @@ dependencies = [ "web-time", ] +[[package]] +name = "rustls-platform-verifier" +version = "0.6.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1d99feebc72bae7ab76ba994bb5e121b8d83d910ca40b36e0921f53becc41784" +dependencies = [ + "core-foundation 0.10.0", + "core-foundation-sys", + "jni", + "log", + "once_cell", + "rustls", + "rustls-native-certs 0.8.1", + "rustls-platform-verifier-android", + "rustls-webpki", + "security-framework 3.7.0", + "security-framework-sys", + "webpki-root-certs", + "windows-sys 0.61.1", +] + +[[package]] +name = "rustls-platform-verifier-android" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f87165f0995f63a9fbeea62b64d10b4d9d8e78ec6d7d51fb2125fda7bb36788f" + [[package]] name = "rustls-webpki" version = "0.103.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e4a72fe2bcf7a6ac6fd7d0b9e5cb68aeb7d4c0a0271730218b3e92d43b4eb435" dependencies = [ + "aws-lc-rs", "ring", "rustls-pki-types", "untrusted", @@ -7181,7 +7345,7 @@ version = "2.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c627723fd09706bacdb5cf41499e95098555af3c3c29d014dc3c458ef6be11c0" dependencies = [ - "bitflags 2.9.0", + "bitflags 2.11.0", "core-foundation 0.9.4", "core-foundation-sys", "libc", @@ -7190,11 +7354,11 @@ dependencies = [ [[package]] name = "security-framework" -version = "3.2.0" +version = "3.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "271720403f46ca04f7ba6f55d438f8bd878d6b8ca0a1046e8228c4145bcbb316" +checksum = "b7f4bc775c73d9a02cde8bf7b2ec4c9d12743edf609006c7facc23998404cd1d" dependencies = [ - "bitflags 2.9.0", + "bitflags 2.11.0", "core-foundation 0.10.0", "core-foundation-sys", "libc", @@ -7203,9 +7367,9 @@ dependencies = [ [[package]] name = "security-framework-sys" -version = "2.14.0" +version = "2.17.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "49db231d56a190491cb4aeda9527f1ad45345af50b0851622a7adb8c03b01c32" +checksum = "6ce2691df843ecc5d231c0b14ece2acc3efb62c0a398c7e1d875f3983ce020e3" dependencies = [ "core-foundation-sys", "libc", @@ -7361,7 +7525,7 @@ dependencies = [ "chrono", "hex", "indexmap 1.9.3", - "indexmap 2.13.1", + "indexmap 2.14.0", "serde", "serde_derive", "serde_json", @@ -7387,7 +7551,7 @@ version = "0.9.34+deprecated" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6a8b1a1a2ebf674015cc02edccce75287f1a0130d394307b36743c2f5d504b47" dependencies = [ - "indexmap 2.13.1", + "indexmap 2.14.0", "itoa", "ryu", "serde", @@ -7543,9 +7707,9 @@ checksum = "e3a9fe34e3e7a50316060351f37187a3f546bce95496156754b601a5fa71b76e" [[package]] name = "similar" -version = "3.1.0" +version = "3.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "04d93e861ede2e497b47833469b8ec9d5c07fa4c78ce7a00f6eb7dd8168b4b3f" +checksum = "26d0b06eba54f0ca0770f970a3e89823e766ca638dd940f8469fa0fa50c75396" dependencies = [ "bstr", ] @@ -7655,16 +7819,6 @@ version = "1.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1b6b67fb9a61334225b5b790716f609cd58395f895b3fe8b328786812a40bc3b" -[[package]] -name = "socket2" -version = "0.5.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ce305eb0b4296696835b71df73eb912e0f1ffd2556a501fcede6e0c50349191c" -dependencies = [ - "libc", - "windows-sys 0.52.0", -] - [[package]] name = "socket2" version = "0.6.0" @@ -7919,7 +8073,7 @@ version = "0.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a13f3d0daba03132c0aa9767f98351b3488edc2c100cda2d2ec2b04f3d8d3c8b" dependencies = [ - "bitflags 2.9.0", + "bitflags 2.11.0", "core-foundation 0.9.4", "system-configuration-sys", ] @@ -8172,7 +8326,7 @@ dependencies = [ "parking_lot", "pin-project-lite", "signal-hook-registry", - "socket2 0.6.0", + "socket2", "tokio-macros", "windows-sys 0.61.1", ] @@ -8230,7 +8384,7 @@ dependencies = [ "postgres-protocol", "postgres-types", "rand 0.9.2", - "socket2 0.6.0", + "socket2", "tokio", "tokio-util", "whoami", @@ -8284,9 +8438,9 @@ dependencies = [ [[package]] name = "tokio-tungstenite" -version = "0.26.2" +version = "0.28.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7a9daff607c6d2bf6c16fd681ccb7eecc83e4e2cdc1ca067ffaadfca5de7f084" +checksum = "d25a406cddcc431a75d3d9afc6a7c0f7428d4891dd973e4d54c56b46127bf857" dependencies = [ "futures-util", "log", @@ -8294,7 +8448,7 @@ dependencies = [ "rustls-pki-types", "tokio", "tokio-rustls", - "tungstenite 0.26.2", + "tungstenite 0.28.0", "webpki-roots 0.26.11", ] @@ -8355,7 +8509,7 @@ version = "1.1.2+spec-1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "81f3d15e84cbcd896376e6730314d59fb5a87f31e4b038454184435cd57defee" dependencies = [ - "indexmap 2.13.1", + "indexmap 2.14.0", "serde_core", "serde_spanned 1.1.1", "toml_datetime 1.1.1+spec-1.1.0", @@ -8397,7 +8551,7 @@ version = "0.21.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6a8534fd7f78b5405e860340ad6575217ce99f38d4d5c8f2442cb5ecb50090e1" dependencies = [ - "indexmap 2.13.1", + "indexmap 2.14.0", "toml_datetime 0.6.6", "winnow 0.5.40", ] @@ -8408,7 +8562,7 @@ version = "0.22.16" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "278f3d518e152219c994ce877758516bca5e118eaed6996192a774fb9fbf0788" dependencies = [ - "indexmap 2.13.1", + "indexmap 2.14.0", "serde", "serde_spanned 0.6.6", "toml_datetime 0.6.6", @@ -8451,7 +8605,7 @@ dependencies = [ "percent-encoding", "pin-project", "rustls-native-certs 0.8.1", - "socket2 0.6.0", + "socket2", "sync_wrapper", "tokio", "tokio-rustls", @@ -8510,7 +8664,7 @@ dependencies = [ "futures-core", "futures-util", "hdrhistogram", - "indexmap 2.13.1", + "indexmap 2.14.0", "pin-project-lite", "slab", "sync_wrapper", @@ -8529,7 +8683,7 @@ dependencies = [ "futures-core", "futures-util", "hdrhistogram", - "indexmap 2.13.1", + "indexmap 2.14.0", "pin-project-lite", "slab", "sync_wrapper", @@ -8546,7 +8700,7 @@ version = "0.6.8" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d4e6559d53cc268e5031cd8429d05415bc4cb4aefc4aa5d6cc35fbf5b924a1f8" dependencies = [ - "bitflags 2.9.0", + "bitflags 2.11.0", "bytes", "futures-util", "http 1.4.0", @@ -8632,9 +8786,9 @@ checksum = "e421abadd41a4225275504ea4d6566923418b7f05506fbc9c0fe86ba7396114b" [[package]] name = "tungstenite" -version = "0.26.2" +version = "0.28.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4793cb5e56680ecbb1d843515b23b6de9a75eb04b66643e256a396d43be33c13" +checksum = "8628dcc84e5a09eb3d8423d6cb682965dea9133204e8fb3efee74c2a0c259442" dependencies = [ "bytes", "data-encoding", @@ -9031,7 +9185,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bb0e353e6a2fbdc176932bbaab493762eb1255a7900fe0fea1a2f96c296cc909" dependencies = [ "anyhow", - "indexmap 2.13.1", + "indexmap 2.14.0", "wasm-encoder 0.244.0", "wasmparser 0.244.0", ] @@ -9055,7 +9209,7 @@ version = "0.118.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "77f1154f1ab868e2a01d9834a805faca7bf8b50d041b4ca714d005d0dab1c50c" dependencies = [ - "indexmap 2.13.1", + "indexmap 2.14.0", "semver 1.0.28", ] @@ -9065,9 +9219,9 @@ version = "0.239.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8c9d90bb93e764f6beabf1d02028c70a2156a6583e63ac4218dd07ef733368b0" dependencies = [ - "bitflags 2.9.0", + "bitflags 2.11.0", "hashbrown 0.15.2", - "indexmap 2.13.1", + "indexmap 2.14.0", "semver 1.0.28", "serde", ] @@ -9078,9 +9232,9 @@ version = "0.244.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "47b807c72e1bac69382b3a6fb3dbe8ea4c0ed87ff5629b8685ae6b9a611028fe" dependencies = [ - "bitflags 2.9.0", + "bitflags 2.11.0", "hashbrown 0.15.2", - "indexmap 2.13.1", + "indexmap 2.14.0", "semver 1.0.28", ] @@ -9104,7 +9258,7 @@ dependencies = [ "addr2line", "anyhow", "async-trait", - "bitflags 2.9.0", + "bitflags 2.11.0", "bumpalo", "cc", "cfg-if 1.0.0", @@ -9112,7 +9266,7 @@ dependencies = [ "fxprof-processed-profile", "gimli", "hashbrown 0.15.2", - "indexmap 2.13.1", + "indexmap 2.14.0", "ittapi", "libc", "log", @@ -9160,7 +9314,7 @@ dependencies = [ "cranelift-bitset", "cranelift-entity", "gimli", - "indexmap 2.13.1", + "indexmap 2.14.0", "log", "object", "postcard", @@ -9348,9 +9502,9 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5f758625553fe33fdce0713f63bb7784c4f5fecb7f7cd4813414519ec24b6a4c" dependencies = [ "anyhow", - "bitflags 2.9.0", + "bitflags 2.11.0", "heck 0.5.0", - "indexmap 2.13.1", + "indexmap 2.14.0", "wit-parser 0.239.0", ] @@ -9410,6 +9564,15 @@ dependencies = [ "wasm-bindgen", ] +[[package]] +name = "webpki-root-certs" +version = "1.0.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "804f18a4ac2676ffb4e8b5b5fa9ae38af06df08162314f96a68d2a363e21a8ca" +dependencies = [ + "rustls-pki-types", +] + [[package]] name = "webpki-roots" version = "0.26.11" @@ -9558,6 +9721,15 @@ dependencies = [ "windows-link 0.1.3", ] +[[package]] +name = "windows-sys" +version = "0.45.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "75283be5efb2831d37ea142365f009c02ec203cd29a3ebecbc093d52315b66d0" +dependencies = [ + "windows-targets 0.42.2", +] + [[package]] name = "windows-sys" version = "0.48.0" @@ -9603,6 +9775,21 @@ dependencies = [ "windows-link 0.2.0", ] +[[package]] +name = "windows-targets" +version = "0.42.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8e5180c00cd44c9b1c88adb3693291f1cd93605ded80c250a75d472756b4d071" +dependencies = [ + "windows_aarch64_gnullvm 0.42.2", + "windows_aarch64_msvc 0.42.2", + "windows_i686_gnu 0.42.2", + "windows_i686_msvc 0.42.2", + "windows_x86_64_gnu 0.42.2", + "windows_x86_64_gnullvm 0.42.2", + "windows_x86_64_msvc 0.42.2", +] + [[package]] name = "windows-targets" version = "0.48.5" @@ -9651,6 +9838,12 @@ dependencies = [ "windows_x86_64_msvc 0.53.0", ] +[[package]] +name = "windows_aarch64_gnullvm" +version = "0.42.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "597a5118570b68bc08d8d59125332c54f1ba9d9adeedeef5b99b02ba2b0698f8" + [[package]] name = "windows_aarch64_gnullvm" version = "0.48.5" @@ -9669,6 +9862,12 @@ version = "0.53.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "86b8d5f90ddd19cb4a147a5fa63ca848db3df085e25fee3cc10b39b6eebae764" +[[package]] +name = "windows_aarch64_msvc" +version = "0.42.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e08e8864a60f06ef0d0ff4ba04124db8b0fb3be5776a5cd47641e942e58c4d43" + [[package]] name = "windows_aarch64_msvc" version = "0.48.5" @@ -9687,6 +9886,12 @@ version = "0.53.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c7651a1f62a11b8cbd5e0d42526e55f2c99886c77e007179efff86c2b137e66c" +[[package]] +name = "windows_i686_gnu" +version = "0.42.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c61d927d8da41da96a81f029489353e68739737d3beca43145c8afec9a31a84f" + [[package]] name = "windows_i686_gnu" version = "0.48.5" @@ -9717,6 +9922,12 @@ version = "0.53.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9ce6ccbdedbf6d6354471319e781c0dfef054c81fbc7cf83f338a4296c0cae11" +[[package]] +name = "windows_i686_msvc" +version = "0.42.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "44d840b6ec649f480a41c8d80f9c65108b92d89345dd94027bfe06ac444d1060" + [[package]] name = "windows_i686_msvc" version = "0.48.5" @@ -9735,6 +9946,12 @@ version = "0.53.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "581fee95406bb13382d2f65cd4a908ca7b1e4c2f1917f143ba16efe98a589b5d" +[[package]] +name = "windows_x86_64_gnu" +version = "0.42.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8de912b8b8feb55c064867cf047dda097f92d51efad5b491dfb98f6bbb70cb36" + [[package]] name = "windows_x86_64_gnu" version = "0.48.5" @@ -9753,6 +9970,12 @@ version = "0.53.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2e55b5ac9ea33f2fc1716d1742db15574fd6fc8dadc51caab1c16a3d3b4190ba" +[[package]] +name = "windows_x86_64_gnullvm" +version = "0.42.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "26d41b46a36d453748aedef1486d5c7a85db22e56aff34643984ea85514e94a3" + [[package]] name = "windows_x86_64_gnullvm" version = "0.48.5" @@ -9771,6 +9994,12 @@ version = "0.53.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0a6e035dd0599267ce1ee132e51c27dd29437f63325753051e71dd9e42406c57" +[[package]] +name = "windows_x86_64_msvc" +version = "0.42.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9aec5da331524158c6d1a4ac0ab1541149c0b9505fde06423b02f5ef0106b9f0" + [[package]] name = "windows_x86_64_msvc" version = "0.48.5" @@ -9871,7 +10100,7 @@ version = "0.33.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3268f3d866458b787f390cf61f4bbb563b922d091359f9608842999eaee3943c" dependencies = [ - "bitflags 2.9.0", + "bitflags 2.11.0", ] [[package]] @@ -9882,7 +10111,7 @@ checksum = "b7c566e0f4b284dd6561c786d9cb0142da491f46a9fbed79ea69cdad5db17f21" dependencies = [ "anyhow", "heck 0.5.0", - "indexmap 2.13.1", + "indexmap 2.14.0", "prettyplease", "syn 2.0.117", "wasm-metadata", @@ -9912,8 +10141,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9d66ea20e9553b30172b5e831994e35fbde2d165325bec84fc43dbf6f4eb9cb2" dependencies = [ "anyhow", - "bitflags 2.9.0", - "indexmap 2.13.1", + "bitflags 2.11.0", + "indexmap 2.14.0", "log", "serde", "serde_derive", @@ -9932,7 +10161,7 @@ checksum = "55c92c939d667b7bf0c6bf2d1f67196529758f99a2a45a3355cc56964fd5315d" dependencies = [ "anyhow", "id-arena", - "indexmap 2.13.1", + "indexmap 2.14.0", "log", "semver 1.0.28", "serde", @@ -9950,7 +10179,7 @@ checksum = "ecc8ac4bc1dc3381b7f59c34f00b67e18f910c2c0f50015669dde7def656a736" dependencies = [ "anyhow", "id-arena", - "indexmap 2.13.1", + "indexmap 2.14.0", "log", "semver 1.0.28", "serde", diff --git a/Cargo.toml b/Cargo.toml index a34047015f3..63831cb1ee5 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -35,8 +35,13 @@ repository = "https://github.com/graphprotocol/graph-node" license = "MIT OR Apache-2.0" [workspace.dependencies] -alloy = { version = "1.7.3", features = ["dyn-abi", "json-abi", "full", "arbitrary", "json-rpc", "serde"] } -alloy-rpc-types = "1.0.33" +alloy = { version = "2.0.0", features = ["dyn-abi", "json-abi", "full", "arbitrary", "json-rpc", "serde"] } +alloy-rpc-types = "2.0.0" +# rustls is pulled in transitively by alloy (aws_lc_rs) and object_store via +# reqwest (ring). With both providers linked, rustls 0.23 requires an explicit +# default provider to be installed before any TLS use. We install aws_lc_rs +# explicitly in each binary/test entry point. +rustls = { version = "0.23", default-features = false, features = ["aws_lc_rs"] } anyhow = "1.0" async-graphql = { version = "7.2.1", features = ["chrono"] } async-graphql-axum = "7.2.1" diff --git a/chain/ethereum/src/codec.rs b/chain/ethereum/src/codec.rs index d809713aefd..b40bcd11910 100644 --- a/chain/ethereum/src/codec.rs +++ b/chain/ethereum/src/codec.rs @@ -162,6 +162,11 @@ impl<'a> TryInto> for TransactionTraceAt<'a> { // Extract data from trace and block let block_hash = self.block.hash.try_decode_proto("transaction block hash")?; let block_number = self.block.number; + let block_timestamp = self + .block + .header + .as_ref() + .and_then(|h| h.timestamp.as_ref().map(|t| t.seconds as u64)); let transaction_index = Some(self.trace.index as u64); let from_address = self .trace @@ -241,6 +246,7 @@ impl<'a> TryInto> for TransactionTraceAt<'a> { inner: recovered, block_hash: Some(block_hash), block_number: Some(block_number), + block_timestamp, transaction_index, effective_gas_price: if gas_price > 0 { Some(gas_price) } else { None }, }); @@ -451,6 +457,7 @@ impl<'a> TryInto> for TransactionTraceAt<'a> { inner: recovered, block_hash: Some(block_hash), block_number: Some(block_number), + block_timestamp, transaction_index, effective_gas_price: if gas_price > 0 { Some(gas_price) } else { None }, // gas_price already contains effective gas price per protobuf spec }) @@ -528,6 +535,8 @@ impl TryInto for &Block { } else { Some(header.requests_hash.try_decode_proto("requests hash")?) }, + block_access_list_hash: None, + slot_number: None, }; let rpc_header = alloy::rpc::types::Header { diff --git a/chain/ethereum/src/data_source.rs b/chain/ethereum/src/data_source.rs index 98b63c46fb2..3edb4241b3b 100644 --- a/chain/ethereum/src/data_source.rs +++ b/chain/ethereum/src/data_source.rs @@ -468,6 +468,7 @@ fn create_dummy_transaction( inner: recovered, block_hash: Some(block_hash), block_number: Some(block_number), + block_timestamp: None, transaction_index, effective_gas_price: None, }) diff --git a/chain/ethereum/src/ethereum_adapter.rs b/chain/ethereum/src/ethereum_adapter.rs index 2f5ee56dd77..5a9382a8691 100644 --- a/chain/ethereum/src/ethereum_adapter.rs +++ b/chain/ethereum/src/ethereum_adapter.rs @@ -174,13 +174,11 @@ impl EthereumAdapter { Transport::RPC(client) => Arc::new( alloy::providers::ProviderBuilder::<_, _, AnyNetworkBare>::default() .network::() - .with_recommended_fillers() .connect_client(client.clone()), ), Transport::IPC(ipc_connect) => Arc::new( alloy::providers::ProviderBuilder::<_, _, AnyNetworkBare>::default() .network::() - .with_recommended_fillers() .connect_ipc(ipc_connect.clone()) .await .expect("Failed to connect to Ethereum IPC"), @@ -188,7 +186,6 @@ impl EthereumAdapter { Transport::WS(ws_connect) => Arc::new( alloy::providers::ProviderBuilder::<_, _, AnyNetworkBare>::default() .network::() - .with_recommended_fillers() .connect_ws(ws_connect.clone()) .await .expect("Failed to connect to Ethereum WS"), @@ -2790,7 +2787,6 @@ mod tests { let asserter = Asserter::new(); let provider = ProviderBuilder::<_, _, AnyNetworkBare>::default() .network::() - .with_recommended_fillers() .connect_mocked_client(asserter.clone()); asserter.push_success(&json_value); diff --git a/gnd/src/commands/test/trigger.rs b/gnd/src/commands/test/trigger.rs index 297e6a064ff..6ac11557678 100644 --- a/gnd/src/commands/test/trigger.rs +++ b/gnd/src/commands/test/trigger.rs @@ -446,6 +446,7 @@ fn dummy_transaction( inner: Recovered::new_unchecked(envelope, Address::ZERO), block_hash: Some(block_hash), block_number: Some(block_number), + block_timestamp: None, transaction_index: Some(transaction_index), effective_gas_price: None, } diff --git a/gnd/src/main.rs b/gnd/src/main.rs index 9760d5c48f2..092674e5da0 100644 --- a/gnd/src/main.rs +++ b/gnd/src/main.rs @@ -224,6 +224,7 @@ fn run_indexer(args: Vec) -> Result<()> { #[tokio::main] async fn main() -> Result<()> { + graph::tls::install_default_crypto_provider(); unsafe { std::env::set_var("ETHEREUM_REORG_THRESHOLD", "10"); std::env::set_var("GRAPH_NODE_DISABLE_DEPLOYMENT_HASH_VALIDATION", "true"); diff --git a/graph/Cargo.toml b/graph/Cargo.toml index 4aefbd0af0b..d83b39ab544 100644 --- a/graph/Cargo.toml +++ b/graph/Cargo.toml @@ -27,6 +27,7 @@ chrono = "0.4.44" envconfig = { workspace = true } Inflector = "0.11.3" reqwest = { version = "0.12.23", features = ["json", "stream", "multipart", "gzip", "brotli", "deflate"] } +rustls = { workspace = true } hex = "0.4.3" http0 = { version = "0", package = "http" } http = "1" diff --git a/graph/src/components/ethereum/network.rs b/graph/src/components/ethereum/network.rs index e2407cc8e23..8460ad7bdf1 100644 --- a/graph/src/components/ethereum/network.rs +++ b/graph/src/components/ethereum/network.rs @@ -1,15 +1,20 @@ +use alloy::consensus::BlobTransactionSidecarVariant; +use alloy::eips::eip7702::SignedAuthorization; use alloy::network::{ - AnyHeader, AnyReceiptEnvelope, AnyTxEnvelope, AnyTxType, AnyTypedTransaction, BuildResult, - Network, NetworkWallet, TransactionBuilder, TransactionBuilderError, + AnyHeader, AnyReceiptEnvelope, AnyRpcTransaction, AnyTxEnvelope, AnyTxType, + AnyTypedTransaction, BuildResult, Network, NetworkTransactionBuilder, NetworkWallet, + TransactionBuilder, TransactionBuilder4844, TransactionBuilder7702, TransactionBuilderError, }; use alloy::primitives::{Address, Bytes, ChainId, TxKind, U256}; use alloy::providers::fillers::{ BlobGasFiller, ChainIdFiller, GasFiller, JoinFill, NonceFiller, RecommendedFillers, }; use alloy::rpc::types::{ - AccessList, Block, Header, Log, TransactionInputKind, TransactionReceipt, TransactionRequest, + AccessList, Block, Header, Log, Transaction, TransactionInputKind, TransactionReceipt, + TransactionRequest, }; use alloy::serde::WithOtherFields; +use serde::{Deserialize, Serialize}; use std::ops::{Deref, DerefMut}; use super::types::AnyTransaction; @@ -32,6 +37,59 @@ use super::types::AnyTransaction; #[derive(Clone, Copy, Debug)] pub struct AnyNetworkBare; +/// Newtype around `WithOtherFields` needed because +/// `Network::TransactionRequest` requires `From` and our +/// `TransactionResponse` is `Transaction` (not wrapped in `WithOtherFields`). +/// Upstream only provides `From>>`, so we need +/// this local type to bridge the conversion. Additionally, `NetworkTransactionBuilder` +/// requires `TransactionBuilder + TransactionBuilder4844 + TransactionBuilder7702` as +/// supertraits, so we must re-implement those by delegation since Rust doesn't auto-delegate +/// trait impls through `Deref`. +#[derive(Clone, Debug, Default, Deserialize, Serialize)] +#[serde(transparent)] +pub struct AnyTransactionRequest(WithOtherFields); + +impl Deref for AnyTransactionRequest { + type Target = WithOtherFields; + + fn deref(&self) -> &Self::Target { + &self.0 + } +} + +impl DerefMut for AnyTransactionRequest { + fn deref_mut(&mut self) -> &mut Self::Target { + &mut self.0 + } +} + +impl From for AnyTransactionRequest { + fn from(value: AnyTxEnvelope) -> Self { + Self(value.into()) + } +} + +impl From for AnyTransactionRequest { + fn from(value: TransactionRequest) -> Self { + Self(value.into()) + } +} + +impl From for AnyTransactionRequest { + fn from(value: AnyTypedTransaction) -> Self { + Self(value.into()) + } +} + +impl From for AnyTransactionRequest { + fn from(value: AnyTransaction) -> Self { + // Upstream only has From for WithOtherFields, + // so we wrap in WithOtherFields first to match that impl. + let tx = WithOtherFields::>::new(value); + Self(AnyRpcTransaction::from(tx).into()) + } +} + impl Network for AnyNetworkBare { type TxType = AnyTxType; type TxEnvelope = AnyTxEnvelope; @@ -39,7 +97,7 @@ impl Network for AnyNetworkBare { type ReceiptEnvelope = AnyReceiptEnvelope; type Header = AnyHeader; - type TransactionRequest = WithOtherFields; + type TransactionRequest = AnyTransactionRequest; type TransactionResponse = AnyTransaction; type ReceiptResponse = TransactionReceipt>; type HeaderResponse = Header; @@ -55,140 +113,179 @@ impl RecommendedFillers for AnyNetworkBare { } } -impl TransactionBuilder for WithOtherFields { +// Delegate `TransactionBuilder` to the inner `WithOtherFields`. +// Required as a supertrait of `NetworkTransactionBuilder`. +impl TransactionBuilder for AnyTransactionRequest { fn chain_id(&self) -> Option { - self.deref().chain_id() + self.0.chain_id() } fn set_chain_id(&mut self, chain_id: ChainId) { - self.deref_mut().set_chain_id(chain_id) + self.0.set_chain_id(chain_id) } fn nonce(&self) -> Option { - self.deref().nonce() + self.0.nonce() } fn set_nonce(&mut self, nonce: u64) { - self.deref_mut().set_nonce(nonce) + self.0.set_nonce(nonce) } fn take_nonce(&mut self) -> Option { - self.deref_mut().nonce.take() + self.0.deref_mut().nonce.take() } fn input(&self) -> Option<&Bytes> { - self.deref().input() + self.0.input() } fn set_input>(&mut self, input: T) { - self.deref_mut().set_input(input); + self.0.set_input(input); } fn set_input_kind>(&mut self, input: T, kind: TransactionInputKind) { - self.deref_mut().set_input_kind(input, kind) + self.0.set_input_kind(input, kind) } fn from(&self) -> Option
{ - self.deref().from() + self.0.from() } fn set_from(&mut self, from: Address) { - self.deref_mut().set_from(from); + self.0.set_from(from); } fn kind(&self) -> Option { - self.deref().kind() + self.0.kind() } fn clear_kind(&mut self) { - self.deref_mut().clear_kind() + self.0.clear_kind() } fn set_kind(&mut self, kind: TxKind) { - self.deref_mut().set_kind(kind) + self.0.set_kind(kind) } fn value(&self) -> Option { - self.deref().value() + self.0.value() } fn set_value(&mut self, value: U256) { - self.deref_mut().set_value(value) + self.0.set_value(value) } fn gas_price(&self) -> Option { - self.deref().gas_price() + self.0.gas_price() } fn set_gas_price(&mut self, gas_price: u128) { - self.deref_mut().set_gas_price(gas_price); + self.0.set_gas_price(gas_price); } fn max_fee_per_gas(&self) -> Option { - self.deref().max_fee_per_gas() + self.0.max_fee_per_gas() } fn set_max_fee_per_gas(&mut self, max_fee_per_gas: u128) { - self.deref_mut().set_max_fee_per_gas(max_fee_per_gas); + self.0.set_max_fee_per_gas(max_fee_per_gas); } fn max_priority_fee_per_gas(&self) -> Option { - self.deref().max_priority_fee_per_gas() + self.0.max_priority_fee_per_gas() } fn set_max_priority_fee_per_gas(&mut self, max_priority_fee_per_gas: u128) { - self.deref_mut() + self.0 .set_max_priority_fee_per_gas(max_priority_fee_per_gas); } fn gas_limit(&self) -> Option { - self.deref().gas_limit() + self.0.gas_limit() } fn set_gas_limit(&mut self, gas_limit: u64) { - self.deref_mut().set_gas_limit(gas_limit); + self.0.set_gas_limit(gas_limit); } fn access_list(&self) -> Option<&AccessList> { - self.deref().access_list() + self.0.access_list() } fn set_access_list(&mut self, access_list: AccessList) { - self.deref_mut().set_access_list(access_list) + self.0.set_access_list(access_list) + } +} + +// Delegate `TransactionBuilder4844` — required as a supertrait of `NetworkTransactionBuilder`. +impl TransactionBuilder4844 for AnyTransactionRequest { + fn max_fee_per_blob_gas(&self) -> Option { + self.0.max_fee_per_blob_gas() + } + + fn set_max_fee_per_blob_gas(&mut self, max_fee_per_blob_gas: u128) { + self.0.set_max_fee_per_blob_gas(max_fee_per_blob_gas) + } + + fn blob_sidecar(&self) -> Option<&BlobTransactionSidecarVariant> { + self.0.blob_sidecar() + } + + fn has_blob_sidecar(&self) -> bool { + self.0.has_blob_sidecar() + } + + fn set_blob_sidecar(&mut self, sidecar: BlobTransactionSidecarVariant) { + self.0.set_blob_sidecar(sidecar) } +} + +// Delegate `TransactionBuilder7702` — required as a supertrait of `NetworkTransactionBuilder`. +impl TransactionBuilder7702 for AnyTransactionRequest { + fn authorization_list(&self) -> Option<&Vec> { + self.0.authorization_list() + } + + fn set_authorization_list(&mut self, authorization_list: Vec) { + self.0.set_authorization_list(authorization_list) + } +} +impl NetworkTransactionBuilder for AnyTransactionRequest { fn complete_type( &self, ty: ::TxType, ) -> Result<(), Vec<&'static str>> { - self.deref() + self.0 + .deref() .complete_type(ty.try_into().map_err(|_| vec!["supported tx type"])?) } fn can_submit(&self) -> bool { - self.deref().can_submit() + self.0.deref().can_submit() } fn can_build(&self) -> bool { - self.deref().can_build() + self.0.deref().can_build() } fn output_tx_type(&self) -> ::TxType { - self.deref().output_tx_type().into() + self.0.deref().output_tx_type().into() } fn output_tx_type_checked(&self) -> Option<::TxType> { - self.deref().output_tx_type_checked().map(Into::into) + self.0.deref().output_tx_type_checked().map(Into::into) } fn prep_for_submission(&mut self) { - self.deref_mut().prep_for_submission() + self.0.deref_mut().prep_for_submission() } fn build_unsigned( self, ) -> BuildResult<::UnsignedTx, AnyNetworkBare> { - if let Err((tx_type, missing)) = self.missing_keys() { + if let Err((tx_type, missing)) = self.0.missing_keys() { return Err(TransactionBuilderError::InvalidTransactionRequest( tx_type.into(), missing, @@ -196,6 +293,7 @@ impl TransactionBuilder for WithOtherFields .into_unbuilt(self)); } Ok(self + .0 .inner .build_typed_tx() .expect("checked by missing_keys") diff --git a/graph/src/lib.rs b/graph/src/lib.rs index 5b6ede158db..8e974b4752f 100644 --- a/graph/src/lib.rs +++ b/graph/src/lib.rs @@ -33,6 +33,8 @@ pub mod env; pub mod ipfs; +pub mod tls; + pub mod abi; pub mod amp; diff --git a/graph/src/tls.rs b/graph/src/tls.rs new file mode 100644 index 00000000000..6c54cfc955d --- /dev/null +++ b/graph/src/tls.rs @@ -0,0 +1,12 @@ +//! Process-wide TLS crypto provider setup. +//! +//! Our deps pull in `rustls` with both `aws_lc_rs` (via alloy) and `ring` +//! (via object_store/reqwest). With multiple providers linked, `rustls` +//! 0.23 panics on first TLS use unless a default is installed explicitly. +//! Must be called once per process before any TLS connection is built. + +/// Install `aws_lc_rs` as the process-wide default `rustls` crypto provider. +/// Idempotent: later calls are no-ops. +pub fn install_default_crypto_provider() { + let _ = rustls::crypto::aws_lc_rs::default_provider().install_default(); +} diff --git a/graph/src/util/test_utils.rs b/graph/src/util/test_utils.rs index 2375f411b33..0bd954aabf4 100644 --- a/graph/src/util/test_utils.rs +++ b/graph/src/util/test_utils.rs @@ -54,6 +54,7 @@ pub fn create_dummy_transaction( inner: recovered, block_hash: Some(block_hash), block_number: Some(block_number), + block_timestamp: None, transaction_index, effective_gas_price: None, } diff --git a/node/src/bin/manager.rs b/node/src/bin/manager.rs index 42f86730b8e..3db9a288dc0 100644 --- a/node/src/bin/manager.rs +++ b/node/src/bin/manager.rs @@ -1133,6 +1133,7 @@ impl Context { #[tokio::main] async fn main() -> anyhow::Result<()> { + graph::tls::install_default_crypto_provider(); // Disable load management for graphman commands unsafe { env::set_var("GRAPH_LOAD_THRESHOLD", "0"); diff --git a/node/src/main.rs b/node/src/main.rs index da6838635a2..652258c734d 100644 --- a/node/src/main.rs +++ b/node/src/main.rs @@ -15,6 +15,7 @@ lazy_static! { } fn main() { + graph::tls::install_default_crypto_provider(); tokio::runtime::Builder::new_multi_thread() .enable_all() .max_blocking_threads(*MAX_BLOCKING_THREADS) diff --git a/store/test-store/src/store.rs b/store/test-store/src/store.rs index 106ab2b0cfe..1abd13fcd58 100644 --- a/store/test-store/src/store.rs +++ b/store/test-store/src/store.rs @@ -619,6 +619,7 @@ pub fn all_shards() -> Vec { } fn build_store() -> (Arc, ConnectionPool, Config, Arc) { + graph::tls::install_default_crypto_provider(); let mut opt = Opt::default(); let url = std::env::var_os("THEGRAPH_STORE_POSTGRES_DIESEL_URL").filter(|s| !s.is_empty()); let file = std::env::var_os("GRAPH_NODE_TEST_CONFIG").filter(|s| !s.is_empty()); diff --git a/tests/src/fixture/mod.rs b/tests/src/fixture/mod.rs index 7577cd7e8fe..a1e1b9b7e1a 100644 --- a/tests/src/fixture/mod.rs +++ b/tests/src/fixture/mod.rs @@ -365,6 +365,7 @@ fn test_logger(test_name: &str) -> Logger { #[allow(clippy::await_holding_lock)] pub async fn stores(test_name: &str, store_config_path: &str) -> Stores { + graph::tls::install_default_crypto_provider(); let _mutex_guard = STORE_MUTEX.lock().unwrap(); let config = {