diff --git a/Cargo.lock b/Cargo.lock index 8573722a..67ca88c1 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -31,27 +31,18 @@ checksum = "6e4503c46a5c0c7844e948c9a4d6acd9f50cccb4de1c48eb9e291ea17470c678" dependencies = [ "cpp_demangle", "fallible-iterator", - "gimli 0.29.0", - "memmap2 0.9.5", + "gimli", + "memmap2 0.9.4", "object 0.35.0", "rustc-demangle", "smallvec", ] [[package]] -name = "addr2line" -version = "0.24.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dfbe277e56a376000877090da837660b4427aad530e3028d44e0bffe4f89a1c1" -dependencies = [ - "gimli 0.31.1", -] - -[[package]] -name = "adler2" -version = "2.0.0" +name = "adler" +version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "512761e0bb2578dd7380c6baaa0f4ce03e84f95e960231d1dec8bf4d7d6e2627" +checksum = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe" [[package]] name = "adler32" @@ -116,7 +107,7 @@ dependencies = [ "getrandom 0.2.15", "once_cell", "version_check", - "zerocopy", + "zerocopy 0.7.35", ] [[package]] @@ -128,15 +119,6 @@ dependencies = [ "memchr", ] -[[package]] -name = "aligned-vec" -version = "0.6.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7e0966165eaf052580bd70eb1b32cb3d6245774c0104d1b2793e9650bf83b52a" -dependencies = [ - "equator", -] - [[package]] name = "alloc-no-stdlib" version = "2.0.4" @@ -160,13 +142,12 @@ checksum = "5c6cb57a04249c6480766f7f7cef5467412af1490f8d1e243141daddada3264f" [[package]] name = "alloy-chains" -version = "0.1.40" +version = "0.1.23" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d4932d790c723181807738cf1ac68198ab581cd699545b155601332541ee47bd" +checksum = "1752d7d62e2665da650a36d84abbf239f812534475d51f072a49a533513b7cdd" dependencies = [ - "alloy-primitives 0.8.9", "alloy-rlp", - "num_enum 0.7.3", + "num_enum 0.7.2", "serde", "strum 0.26.3", ] @@ -178,10 +159,10 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "da374e868f54c7f4ad2ad56829827badca388efd645f8cf5fccc61c2b5343504" dependencies = [ "alloy-eips", - "alloy-primitives 0.7.7", + "alloy-primitives", "alloy-rlp", "alloy-serde", - "c-kzg 1.0.3", + "c-kzg 1.0.2", "serde", ] @@ -194,7 +175,7 @@ dependencies = [ "alloy-dyn-abi", "alloy-json-abi", "alloy-network", - "alloy-primitives 0.7.7", + "alloy-primitives", "alloy-provider", "alloy-rpc-types-eth", "alloy-sol-types", @@ -211,14 +192,14 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "413902aa18a97569e60f679c23f46a18db1656d87ab4d4e49d0e1e52042f66df" dependencies = [ "alloy-json-abi", - "alloy-primitives 0.7.7", + "alloy-primitives", "alloy-sol-type-parser", "alloy-sol-types", "const-hex", "itoa", "serde", "serde_json", - "winnow 0.6.20", + "winnow 0.6.15", ] [[package]] @@ -227,11 +208,11 @@ version = "0.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f76ecab54890cdea1e4808fc0891c7e6cfcf71fe1a9fe26810c7280ef768f4ed" dependencies = [ - "alloy-primitives 0.7.7", + "alloy-primitives", "alloy-rlp", "alloy-serde", - "c-kzg 1.0.3", - "derive_more 0.99.18", + "c-kzg 1.0.2", + "derive_more", "once_cell", "serde", "sha2", @@ -243,7 +224,7 @@ version = "0.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bca15afde1b6d15e3fc1c97421262b1bbb37aee45752e3c8b6d6f13f776554ff" dependencies = [ - "alloy-primitives 0.7.7", + "alloy-primitives", "alloy-serde", "serde", ] @@ -254,7 +235,7 @@ version = "0.7.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bc05b04ac331a9f07e3a4036ef7926e49a8bf84a99a1ccfc7e2ab55a5fcbb372" dependencies = [ - "alloy-primitives 0.7.7", + "alloy-primitives", "alloy-sol-type-parser", "serde", "serde_json", @@ -266,7 +247,7 @@ version = "0.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6d6f34930b7e3e2744bcc79056c217f00cb2abb33bc5d4ff88da7623c5bb078b" dependencies = [ - "alloy-primitives 0.7.7", + "alloy-primitives", "serde", "serde_json", "thiserror", @@ -282,7 +263,7 @@ dependencies = [ "alloy-consensus", "alloy-eips", "alloy-json-rpc", - "alloy-primitives 0.7.7", + "alloy-primitives", "alloy-rpc-types-eth", "alloy-serde", "alloy-signer", @@ -303,7 +284,7 @@ dependencies = [ "bytes", "cfg-if", "const-hex", - "derive_more 0.99.18", + "derive_more", "getrandom 0.2.15", "hex-literal", "itoa", @@ -316,34 +297,6 @@ dependencies = [ "tiny-keccak", ] -[[package]] -name = "alloy-primitives" -version = "0.8.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c71738eb20c42c5fb149571e76536a0f309d142f3957c28791662b96baf77a3d" -dependencies = [ - "alloy-rlp", - "bytes", - "cfg-if", - "const-hex", - "derive_more 1.0.0", - "foldhash", - "hashbrown 0.15.0", - "hex-literal", - "indexmap 2.6.0", - "itoa", - "k256", - "keccak-asm", - "paste", - "proptest", - "rand 0.8.5", - "ruint", - "rustc-hash 2.0.0", - "serde", - "sha3", - "tiny-keccak", -] - [[package]] name = "alloy-provider" version = "0.1.4" @@ -355,7 +308,7 @@ dependencies = [ "alloy-eips", "alloy-json-rpc", "alloy-network", - "alloy-primitives 0.7.7", + "alloy-primitives", "alloy-rpc-client", "alloy-rpc-types-eth", "alloy-transport", @@ -368,7 +321,7 @@ dependencies = [ "futures-utils-wasm", "lru", "pin-project", - "reqwest 0.12.8", + "reqwest 0.12.5", "serde", "serde_json", "tokio", @@ -378,9 +331,9 @@ dependencies = [ [[package]] name = "alloy-rlp" -version = "0.3.8" +version = "0.3.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "26154390b1d205a4a7ac7352aa2eb4f81f391399d4e2f546fb81a2f8bb383f62" +checksum = "f542548a609dca89fcd72b3b9f355928cf844d4363c5eed9c5273a3dd225e097" dependencies = [ "alloy-rlp-derive", "arrayvec", @@ -389,13 +342,13 @@ dependencies = [ [[package]] name = "alloy-rlp-derive" -version = "0.3.8" +version = "0.3.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4d0f2d905ebd295e7effec65e5f6868d153936130ae718352771de3e7d03c75c" +checksum = "5a833d97bf8a5f0f878daf2c8451fff7de7f9de38baa5a45d936ec718d81255a" dependencies = [ "proc-macro2", "quote", - "syn 2.0.82", + "syn 2.0.95", ] [[package]] @@ -409,7 +362,7 @@ dependencies = [ "alloy-transport-http", "futures", "pin-project", - "reqwest 0.12.8", + "reqwest 0.12.5", "serde", "serde_json", "tokio", @@ -437,7 +390,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7e953064025c49dc9f6a3f3ac07a713487849065692228b33948f2714f2bb60d" dependencies = [ "alloy-genesis", - "alloy-primitives 0.7.7", + "alloy-primitives", "serde", "serde_json", ] @@ -448,7 +401,7 @@ version = "0.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8c7cf4356a9d00df76d6e90d002e2a7b5edc1c8476e90e6f17ab868d99db6435" dependencies = [ - "alloy-primitives 0.7.7", + "alloy-primitives", "alloy-serde", "serde", ] @@ -460,10 +413,10 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a5f2e67d3e2478902b71bbadcd564ee5bbcc71945a0010a1f0e87a2339c6f3f9" dependencies = [ "alloy-eips", - "alloy-primitives 0.7.7", + "alloy-primitives", "alloy-rpc-types-engine", "serde", - "serde_with 3.11.0", + "serde_with 3.9.0", "thiserror", ] @@ -475,7 +428,7 @@ checksum = "6e765962e3b82fd6f276a0873b5bd897e5d75a25f78fa9a6a21bd350d8e98a4e" dependencies = [ "alloy-consensus", "alloy-eips", - "alloy-primitives 0.7.7", + "alloy-primitives", "alloy-rlp", "alloy-rpc-types-eth", "alloy-serde", @@ -494,7 +447,7 @@ checksum = "ab4123ee21f99ba4bd31bfa36ba89112a18a500f8b452f02b35708b1b951e2b9" dependencies = [ "alloy-consensus", "alloy-eips", - "alloy-primitives 0.7.7", + "alloy-primitives", "alloy-rlp", "alloy-serde", "alloy-sol-types", @@ -511,7 +464,7 @@ version = "0.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "567933b1d95fd42cb70b75126e32afec2e5e2c3c16e7100a3f83dc1c80f4dc0e" dependencies = [ - "alloy-primitives 0.7.7", + "alloy-primitives", "alloy-rpc-types-eth", "alloy-serde", "serde", @@ -525,7 +478,7 @@ version = "0.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3115f4eb1bb9ae9aaa0b24ce875a1d86d6689b16438a12377832def2b09e373c" dependencies = [ - "alloy-primitives 0.7.7", + "alloy-primitives", "alloy-rpc-types-eth", "alloy-serde", "serde", @@ -536,7 +489,7 @@ name = "alloy-serde" version = "0.1.4" source = "git+https://github.com/CeciliaZ030/alloy.git?branch=v0.1.4-fix#a95c679c0a6a38803f76d0406a636765e265e378" dependencies = [ - "alloy-primitives 0.7.7", + "alloy-primitives", "serde", "serde_json", ] @@ -547,7 +500,7 @@ version = "0.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b33753c09fa1ad85e5b092b8dc2372f1e337a42e84b9b4cff9fede75ba4adb32" dependencies = [ - "alloy-primitives 0.7.7", + "alloy-primitives", "async-trait", "auto_impl", "elliptic-curve", @@ -563,7 +516,7 @@ checksum = "6dfc9c26fe6c6f1bad818c9a976de9044dd12e1f75f1f156a801ee3e8148c1b6" dependencies = [ "alloy-consensus", "alloy-network", - "alloy-primitives 0.7.7", + "alloy-primitives", "alloy-signer", "async-trait", "k256", @@ -582,7 +535,7 @@ dependencies = [ "proc-macro-error", "proc-macro2", "quote", - "syn 2.0.82", + "syn 2.0.95", ] [[package]] @@ -594,11 +547,11 @@ dependencies = [ "alloy-sol-macro-input", "const-hex", "heck 0.5.0", - "indexmap 2.6.0", + "indexmap 2.7.0", "proc-macro-error", "proc-macro2", "quote", - "syn 2.0.82", + "syn 2.0.95", "syn-solidity", "tiny-keccak", ] @@ -614,7 +567,7 @@ dependencies = [ "heck 0.5.0", "proc-macro2", "quote", - "syn 2.0.82", + "syn 2.0.95", "syn-solidity", ] @@ -625,7 +578,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "cbcba3ca07cf7975f15d871b721fb18031eec8bce51103907f6dcce00b255d98" dependencies = [ "serde", - "winnow 0.6.20", + "winnow 0.6.15", ] [[package]] @@ -634,7 +587,7 @@ version = "0.7.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a91ca40fa20793ae9c3841b83e74569d1cc9af29a2f5237314fd3452d51e38c7" dependencies = [ - "alloy-primitives 0.7.7", + "alloy-primitives", "alloy-sol-macro", "const-hex", "serde", @@ -667,7 +620,7 @@ checksum = "86d65871f9f1cafe1ed25cde2f1303be83e6473e995a2d56c275ae4fcce6119c" dependencies = [ "alloy-json-rpc", "alloy-transport", - "reqwest 0.12.8", + "reqwest 0.12.5", "serde_json", "tower 0.4.13", "tracing", @@ -680,9 +633,9 @@ version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "03704f265cbbb943b117ecb5055fd46e8f41e7dc8a58b1aed20bcd40ace38c15" dependencies = [ - "alloy-primitives 0.7.7", + "alloy-primitives", "alloy-rlp", - "derive_more 0.99.18", + "derive_more", "hashbrown 0.14.5", "nybbles", "serde", @@ -716,9 +669,9 @@ dependencies = [ [[package]] name = "anstream" -version = "0.6.15" +version = "0.6.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "64e15c1ab1f89faffbf04a634d5e1962e9074f2741eef6d97f3c4e322426d526" +checksum = "418c75fa768af9c03be99d17643f93f79bbba589895012a80e3452a19ddda15b" dependencies = [ "anstyle", "anstyle-parse", @@ -731,33 +684,33 @@ dependencies = [ [[package]] name = "anstyle" -version = "1.0.8" +version = "1.0.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1bec1de6f59aedf83baf9ff929c98f2ad654b97c9510f4e70cf6f661d49fd5b1" +checksum = "038dfcf04a5feb68e9c60b21c9625a54c2c0616e79b72b0fd87075a056ae1d1b" [[package]] name = "anstyle-parse" -version = "0.2.5" +version = "0.2.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eb47de1e80c2b463c735db5b217a0ddc39d612e7ac9e2e96a5aed1f57616c1cb" +checksum = "c03a11a9034d92058ceb6ee011ce58af4a9bf61491aa7e1e59ecd24bd40d22d4" dependencies = [ "utf8parse", ] [[package]] name = "anstyle-query" -version = "1.1.1" +version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6d36fc52c7f6c869915e99412912f22093507da8d9e942ceaf66fe4b7c14422a" +checksum = "ad186efb764318d35165f1758e7dcef3b10628e26d41a44bc5550652e6804391" dependencies = [ "windows-sys 0.52.0", ] [[package]] name = "anstyle-wincon" -version = "3.0.4" +version = "3.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5bf74e1b6e971609db8ca7a9ce79fd5768ab6ae46441c572e46cf596f59e57f8" +checksum = "61a38449feb7068f52bb06c12759005cf459ee52bb4adc1d5a7c4322d716fb19" dependencies = [ "anstyle", "windows-sys 0.52.0", @@ -765,9 +718,9 @@ dependencies = [ [[package]] name = "anyhow" -version = "1.0.91" +version = "1.0.86" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c042108f3ed77fd83760a5fd79b53be043192bb3b9dba91d8c574c0ada7850c8" +checksum = "b3d1d046238990b9cf5bcde22a3fb3584ee5cf65fb2765f454ed428c7a0063da" [[package]] name = "approx" @@ -873,7 +826,7 @@ dependencies = [ "num-bigint 0.4.6", "num-traits", "paste", - "rustc_version 0.4.1", + "rustc_version 0.4.0", "zeroize", ] @@ -1029,26 +982,25 @@ dependencies = [ [[package]] name = "arrayref" -version = "0.3.9" +version = "0.3.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "76a2e8124351fda1ef8aaaa3bbd7ebbcb486bbcd4225aca0aa0d84bb2db8fecb" +checksum = "9d151e35f61089500b617991b791fc8bfd237ae50cd5950803758a179b41e67a" [[package]] name = "arrayvec" -version = "0.7.6" +version = "0.7.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7c02d123df017efcdfbd739ef81735b36c5ba83ec3c59c80a9d7ecc718f92e50" +checksum = "96d30a06541fbafbc7f82ed10c06164cfbd2c401138f6addd8404629c4b16711" [[package]] name = "assert_cmd" -version = "2.0.16" +version = "2.0.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dc1835b7f27878de8525dc71410b5a31cdcc5f230aed5ba5df968e09c201b23d" +checksum = "ed72493ac66d5804837f480ab3766c72bdfab91a65e565fc54fa9e42db0073a8" dependencies = [ "anstyle", "bstr", "doc-comment", - "libc", "predicates", "predicates-core", "predicates-tree", @@ -1057,9 +1009,9 @@ dependencies = [ [[package]] name = "async-compression" -version = "0.4.17" +version = "0.4.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0cb8f1d480b0ea3783ab015936d2a55c87e219676f0c0b7dec61494043f21857" +checksum = "fec134f64e2bc57411226dfc4e52dec859ddfc7e711fc5e07b612584f000e4aa" dependencies = [ "brotli", "flate2", @@ -1073,9 +1025,9 @@ dependencies = [ [[package]] name = "async-stream" -version = "0.3.6" +version = "0.3.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0b5a71a6f37880a80d1d7f19efd781e4b5de42c88f0722cc13bcb6cc2cfe8476" +checksum = "cd56dd203fef61ac097dd65721a419ddccb106b2d2b70ba60a6b529f03961a51" dependencies = [ "async-stream-impl", "futures-core", @@ -1084,24 +1036,24 @@ dependencies = [ [[package]] name = "async-stream-impl" -version = "0.3.6" +version = "0.3.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c7c24de15d275a1ecfd47a380fb4d5ec9bfe0933f309ed5e705b775596a3574d" +checksum = "16e62a023e7c117e27523144c5d2459f4397fcc3cab0085af8e2224f643a0193" dependencies = [ "proc-macro2", "quote", - "syn 2.0.82", + "syn 2.0.95", ] [[package]] name = "async-trait" -version = "0.1.83" +version = "0.1.81" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "721cae7de5c34fbb2acd27e21e6d2cf7b886dce0c27388d46c4e6c47ea4318dd" +checksum = "6e0c28dcc82d7c8ead5cb13beb15405b57b8546e93215673ff8ca0349a028107" dependencies = [ "proc-macro2", "quote", - "syn 2.0.82", + "syn 2.0.95", ] [[package]] @@ -1112,7 +1064,7 @@ checksum = "b6d7b9decdf35d8908a7e3ef02f64c5e9b1695e230154c0e8de3969142d9b94c" dependencies = [ "futures", "pharos", - "rustc_version 0.4.1", + "rustc_version 0.4.0", ] [[package]] @@ -1150,20 +1102,20 @@ checksum = "3c87f3f15e7794432337fc718554eaa4dc8f04c9677a950ffe366f20a162ae42" dependencies = [ "proc-macro2", "quote", - "syn 2.0.82", + "syn 2.0.95", ] [[package]] name = "autocfg" -version = "1.4.0" +version = "1.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ace50bade8e6234aa140d9a2f552bbee1db4d353f69b8217bc503490fc1a9f26" +checksum = "0c4b4d0bd25bd0b74681c0ad21497610ce1b7c91b1022cd21c80c6fbdd9476b0" [[package]] name = "axum" -version = "0.7.7" +version = "0.7.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "504e3947307ac8326a5437504c517c4b56716c9d98fac0028c2acc7ca47d70ae" +checksum = "1236b4b292f6c4d6dc34604bb5120d85c3fe1d1aa596bd5cc52ca054d13e7b9e" dependencies = [ "async-trait", "axum-core", @@ -1173,7 +1125,7 @@ dependencies = [ "http 1.1.0", "http-body 1.0.1", "http-body-util", - "hyper 1.5.0", + "hyper 1.4.1", "hyper-util", "itoa", "matchit", @@ -1186,9 +1138,9 @@ dependencies = [ "serde_json", "serde_path_to_error", "serde_urlencoded", - "sync_wrapper 1.0.1", + "sync_wrapper 0.1.2", "tokio", - "tower 0.5.1", + "tower 0.4.13", "tower-layer", "tower-service", "tracing", @@ -1196,9 +1148,9 @@ dependencies = [ [[package]] name = "axum-core" -version = "0.4.5" +version = "0.4.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "09f2bd6146b97ae3359fa0cc6d6b376d9539582c7b4220f041a33ec24c226199" +checksum = "a15c63fd72d41492dc4f497196f5da1fb04fb7529e631d73630d1b491e47a2e3" dependencies = [ "async-trait", "bytes", @@ -1209,7 +1161,7 @@ dependencies = [ "mime", "pin-project-lite", "rustversion", - "sync_wrapper 1.0.1", + "sync_wrapper 0.1.2", "tower-layer", "tower-service", "tracing", @@ -1217,13 +1169,14 @@ dependencies = [ [[package]] name = "axum-macros" -version = "0.4.2" +version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "57d123550fa8d071b7255cb0cc04dc302baa6c8c4a79f55701552684d8399bce" +checksum = "00c055ee2d014ae5981ce1016374e8213682aa14d9bf40e48ab48b5f3ef20eaa" dependencies = [ + "heck 0.4.1", "proc-macro2", "quote", - "syn 2.0.82", + "syn 2.0.95", ] [[package]] @@ -1239,18 +1192,18 @@ dependencies = [ [[package]] name = "backtrace" -version = "0.3.74" +version = "0.3.73" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8d82cb332cdfaed17ae235a638438ac4d4839913cc2af585c3c6746e8f8bee1a" +checksum = "5cc23269a4f8976d0a4d2e7109211a419fe30e8d88d677cd60b6bc79c5732e0a" dependencies = [ - "addr2line 0.24.2", + "addr2line", + "cc", "cfg-if", "libc", "miniz_oxide", - "object 0.36.5", + "object 0.36.1", "rustc-demangle", "serde", - "windows-targets 0.52.6", ] [[package]] @@ -1332,16 +1285,16 @@ dependencies = [ "proc-macro2", "quote", "regex", - "rustc-hash 1.1.0", + "rustc-hash", "shlex", - "syn 2.0.82", + "syn 2.0.95", ] [[package]] name = "binout" -version = "0.3.0" +version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "581d67184175e0c94926cb5e82df97bb6e0d8261d27a88a6ead80994ee73a4ac" +checksum = "b60b1af88a588fca5fe424ae7d735bc52814f80ff57614f57043cc4e2024f2ea" [[package]] name = "bit-set" @@ -1375,9 +1328,9 @@ dependencies = [ [[package]] name = "bitm" -version = "0.4.3" +version = "0.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e7edec3daafc233e78a219c85a77bcf535ee267b0fae7a1aad96bd1a67add5d3" +checksum = "b06e8e5bec3490b9f6f3adbb78aa4f53e8396fd9994e8a62a346b44ea7c15f35" dependencies = [ "dyn_size_of", ] @@ -1498,16 +1451,16 @@ checksum = "94032d3eece78099780ba07605d8ba6943e47ee152f76d73f1682e2f40cf889c" dependencies = [ "duplicate", "maybe-async", - "reqwest 0.12.8", + "reqwest 0.12.5", "serde", "thiserror", ] [[package]] name = "borsh" -version = "1.5.1" +version = "1.5.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a6362ed55def622cddc70a4746a68554d7b687713770de539e59a739b249f8ed" +checksum = "2506947f73ad44e344215ccd6403ac2ae18cd8e046e581a441bf8d199f257f03" dependencies = [ "borsh-derive", "cfg_aliases", @@ -1515,23 +1468,22 @@ dependencies = [ [[package]] name = "borsh-derive" -version = "1.5.1" +version = "1.5.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c3ef8005764f53cd4dca619f5bf64cafd4664dada50ece25e4d81de54c80cc0b" +checksum = "c2593a3b8b938bd68373196c9832f516be11fa487ef4ae745eb282e6a56a7244" dependencies = [ "once_cell", - "proc-macro-crate 3.2.0", + "proc-macro-crate 3.1.0", "proc-macro2", "quote", - "syn 2.0.82", - "syn_derive", + "syn 2.0.95", ] [[package]] name = "brotli" -version = "7.0.0" +version = "6.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cc97b8f16f944bba54f0433f07e30be199b6dc2bd25937444bbad560bcea29bd" +checksum = "74f7971dbd9326d58187408ab83117d8ac1bb9c17b085fdacd1cf2f598719b6b" dependencies = [ "alloc-no-stdlib", "alloc-stdlib", @@ -1560,12 +1512,12 @@ dependencies = [ [[package]] name = "bstr" -version = "1.10.0" +version = "1.9.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "40723b8fb387abc38f4f4a37c09073622e41dd12327033091ef8950659e6dc0c" +checksum = "05efc5cfd9110c8416e471df0e96702d58690178e206e61b7173706673c93706" dependencies = [ "memchr", - "regex-automata 0.4.8", + "regex-automata 0.4.9", "serde", ] @@ -1583,22 +1535,22 @@ checksum = "c3ac9f8b63eca6fd385229b3675f6cc0dc5c8a5c8a54a59d4f52ffd670d87b0c" [[package]] name = "bytemuck" -version = "1.19.0" +version = "1.21.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8334215b81e418a0a7bdb8ef0849474f40bb10c8b71f1c4ed315cff49f32494d" +checksum = "ef657dfab802224e671f5818e9a4935f9b1957ed18e58292690cc39e7a4092a3" dependencies = [ "bytemuck_derive", ] [[package]] name = "bytemuck_derive" -version = "1.8.0" +version = "1.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bcfcc3cd946cb52f0bbfdbbcfa2f4e24f75ebb6c0e1002f7c25904fada18b9ec" +checksum = "1ee891b04274a59bd38b412188e24b849617b2e45a0fd8d057deb63e7403761b" dependencies = [ "proc-macro2", "quote", - "syn 2.0.82", + "syn 2.0.95", ] [[package]] @@ -1609,9 +1561,9 @@ checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b" [[package]] name = "bytes" -version = "1.8.0" +version = "1.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9ac0150caa2ae65ca5bd83f25c7de183dea78d4d366469f148435e2acfbad0da" +checksum = "325918d6fe32f23b19878fe4b34794ae41fc19ddbe53b10571a4874d44ffd39b" dependencies = [ "serde", ] @@ -1631,24 +1583,23 @@ dependencies = [ [[package]] name = "c-kzg" -version = "1.0.3" +version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f0307f72feab3300336fb803a57134159f6e20139af1357f36c54cb90d8e8928" +checksum = "cdf100c4cea8f207e883ff91ca886d621d8a166cb04971dfaa9bb8fd99ed95df" dependencies = [ "blst", "cc", "glob", "hex", "libc", - "once_cell", "serde", ] [[package]] name = "camino" -version = "1.1.9" +version = "1.1.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8b96ec4966b5813e2c0507c1f86115c8c5abaadc3980879c3424042a02fd1ad3" +checksum = "e0ec6b951b160caa93cc0c7b209e5a3bff7aae9062213451ac99493cd844c239" dependencies = [ "serde", ] @@ -1697,9 +1648,9 @@ dependencies = [ [[package]] name = "cc" -version = "1.1.31" +version = "1.2.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c2e7962b54006dcfcc61cb72735f4d89bb97061dd6a7ed882ec6b8ee53714c6f" +checksum = "ad0cf6e91fde44c773c6ee7ec6bba798504641a8bc2eb7e37a04ffbf4dfaa55a" dependencies = [ "jobserver", "libc", @@ -1789,9 +1740,9 @@ dependencies = [ [[package]] name = "clap" -version = "4.5.20" +version = "4.5.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b97f376d85a664d5837dbae44bf546e6477a679ff6610010f17276f686d867e8" +checksum = "64acc1846d54c1fe936a78dc189c34e28d3f5afc348403f28ecf53660b9b8462" dependencies = [ "clap_builder", "clap_derive", @@ -1799,9 +1750,9 @@ dependencies = [ [[package]] name = "clap_builder" -version = "4.5.20" +version = "4.5.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "19bc80abd44e4bed93ca373a0704ccbd1b710dc5749406201bb018272808dc54" +checksum = "6fb8393d67ba2e7bfaf28a23458e4e2b543cc73a99595511eb207fdb8aede942" dependencies = [ "anstream", "anstyle", @@ -1811,21 +1762,21 @@ dependencies = [ [[package]] name = "clap_derive" -version = "4.5.18" +version = "4.5.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4ac6a0c7b1a9e9a5186361f67dfa1b88213572f427fb9ab038efb2bd8c582dab" +checksum = "2bac35c6dafb060fd4d275d9a4ffae97917c13a6327903a8be2153cd964f7085" dependencies = [ "heck 0.5.0", "proc-macro2", "quote", - "syn 2.0.82", + "syn 2.0.95", ] [[package]] name = "clap_lex" -version = "0.7.2" +version = "0.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1462739cb27611015575c0c11df5df7601141071f07518d56fcc1be504cbec97" +checksum = "4b82cf0babdbd58558212896d1a4272303a57bdb245c2bf1147185fb45640e70" [[package]] name = "coins-bip32" @@ -1881,9 +1832,9 @@ dependencies = [ [[package]] name = "colorchoice" -version = "1.0.2" +version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d3fd119d74b830634cea2a0f58bbd0d54540518a14397557951e79340abc28c0" +checksum = "0b6a852b24ab71dffc585bcb46eaf7959d175cb865a7152e35b348d1b2960422" [[package]] name = "combine" @@ -1919,9 +1870,9 @@ dependencies = [ [[package]] name = "const-hex" -version = "1.13.1" +version = "1.14.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0121754e84117e65f9d90648ee6aa4882a6e63110307ab73967a4c5e7e69e586" +checksum = "4b0485bab839b018a8f1723fc5391819fea5f8f0f32288ef8a735fd096b6160c" dependencies = [ "cfg-if", "cpufeatures", @@ -1938,9 +1889,9 @@ checksum = "c2459377285ad874054d797f3ccebf984978aa39129f6eafde5cdc8315b612f8" [[package]] name = "constant_time_eq" -version = "0.3.1" +version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7c74b8349d32d297c9134b8c88677813a227df8f779daa29bfc29c183fe3dca6" +checksum = "f7144d30dcf0fafbce74250a3963025d8d52177934239851c917d29f1df280c2" [[package]] name = "convert_case" @@ -1969,9 +1920,9 @@ dependencies = [ [[package]] name = "core-foundation-sys" -version = "0.8.7" +version = "0.8.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "773648b94d0e5d620f64f280777445740e61fe701025087ec8b57f45c791888b" +checksum = "06ea2b9bc92be3c2baa9334a323ebca2d6f074ff852cd1d7b11064035cd3868f" [[package]] name = "core-graphics-types" @@ -1995,18 +1946,18 @@ dependencies = [ [[package]] name = "cpp_demangle" -version = "0.4.4" +version = "0.4.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "96e58d342ad113c2b878f16d5d034c03be492ae460cdbc02b7f0f2284d310c7d" +checksum = "7e8227005286ec39567949b33df9896bcadfa6051bccca2488129f108ca23119" dependencies = [ "cfg-if", ] [[package]] name = "cpufeatures" -version = "0.2.14" +version = "0.2.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "608697df725056feaccfa42cffdaeeec3fccc4ffc38358ecd19b243e716a78e0" +checksum = "53fe5e26ff1b7aef8bca9c6080520cfb8d9333c7568e1829cef191a9723e5504" dependencies = [ "libc", ] @@ -2171,7 +2122,7 @@ dependencies = [ "curve25519-dalek-derive", "digest 0.10.7", "fiat-crypto", - "rustc_version 0.4.1", + "rustc_version 0.4.0", "subtle", "zeroize", ] @@ -2184,7 +2135,7 @@ checksum = "f46882e17999c6cc590af592290432be3bce0428cb0d5f8b6715e4dc7b383eb3" dependencies = [ "proc-macro2", "quote", - "syn 2.0.82", + "syn 2.0.95", ] [[package]] @@ -2254,7 +2205,7 @@ dependencies = [ "proc-macro2", "quote", "strsim 0.11.1", - "syn 2.0.82", + "syn 2.0.95", ] [[package]] @@ -2265,14 +2216,14 @@ checksum = "d336a2a514f6ccccaa3e09b02d41d35330c07ddf03a62165fcec10bb561c7806" dependencies = [ "darling_core", "quote", - "syn 2.0.82", + "syn 2.0.95", ] [[package]] name = "dary_heap" -version = "0.3.7" +version = "0.3.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "04d2cd9c18b9f454ed67da600630b021a8a80bf33f8c95896ab33aaf1c26b728" +checksum = "7762d17f1241643615821a8455a0b2c3e803784b058693d990b11f2dce25a0ca" [[package]] name = "dashmap" @@ -2431,7 +2382,7 @@ checksum = "67e77553c4162a157adbf834ebae5b415acbecbeafc7a74b0e886657506a7611" dependencies = [ "proc-macro2", "quote", - "syn 2.0.82", + "syn 2.0.95", ] [[package]] @@ -2443,29 +2394,8 @@ dependencies = [ "convert_case 0.4.0", "proc-macro2", "quote", - "rustc_version 0.4.1", - "syn 2.0.82", -] - -[[package]] -name = "derive_more" -version = "1.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4a9b99b9cbbe49445b21764dc0625032a89b145a2642e67603e1c936f5458d05" -dependencies = [ - "derive_more-impl", -] - -[[package]] -name = "derive_more-impl" -version = "1.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cb7330aeadfbe296029522e6c40f315320aba36fc43a5b3632f3795348f3bd22" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.82", - "unicode-xid", + "rustc_version 0.4.0", + "syn 2.0.95", ] [[package]] @@ -2563,7 +2493,7 @@ checksum = "97369cbbc041bc366949bc74d34658d6cda5621039731c6310521892a3a20ae0" dependencies = [ "proc-macro2", "quote", - "syn 2.0.82", + "syn 2.0.95", ] [[package]] @@ -2592,23 +2522,23 @@ checksum = "75b325c5dbd37f80359721ad39aca5a29fb04c89279657cffdda8736d0c0b9d2" [[package]] name = "downloader" -version = "0.2.8" +version = "0.2.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9ac1e888d6830712d565b2f3a974be3200be9296bc1b03db8251a4cbf18a4a34" +checksum = "d05213e96f184578b5f70105d4d0a644a168e99e12d7bea0b200c15d67b5c182" dependencies = [ "digest 0.10.7", "futures", "rand 0.8.5", - "reqwest 0.12.8", + "reqwest 0.11.27", "thiserror", "tokio", ] [[package]] name = "dunce" -version = "1.0.5" +version = "1.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "92773504d58c093f6de2459af4af33faa518c13451eb8f2b5698ed3d36e7c813" +checksum = "56ce8c6da7551ec6c462cbaf3bfbc75131ebbfa1c944aeaa9dab51ca1c5f0c3b" [[package]] name = "duplicate" @@ -2628,9 +2558,9 @@ checksum = "0d6ef0072f8a535281e4876be788938b528e9a1d43900b82c2569af7da799125" [[package]] name = "dyn_size_of" -version = "0.4.3" +version = "0.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fdbac012a81cc46ca554aceae23c52f4f55adb343f2f32ca99bb4e5ef868cee2" +checksum = "33d4f78a40b1ec35bf8cafdaaf607ba2f773c366b0b3bda48937cacd7a8d5134" [[package]] name = "ecdsa" @@ -2791,25 +2721,25 @@ checksum = "f282cfdfe92516eb26c2af8589c274c7c17681f5ecc03c18255fe741c6aa64eb" dependencies = [ "proc-macro2", "quote", - "syn 2.0.82", + "syn 2.0.95", ] [[package]] name = "enumn" -version = "0.1.14" +version = "0.1.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2f9ed6b3789237c8a0c1c505af1c7eb2c560df6186f01b098c3a1064ea532f38" +checksum = "6fd000fd6988e73bbe993ea3db9b1aa64906ab88766d654973924340c8cddb42" dependencies = [ "proc-macro2", "quote", - "syn 2.0.82", + "syn 2.0.95", ] [[package]] name = "env_filter" -version = "0.1.2" +version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4f2c92ceda6ceec50f43169f9ee8424fe2db276791afde7b2cd8bc084cb376ab" +checksum = "a009aa4810eb158359dda09d0c87378e4bbb89b5a801f016885a4707ba24f7ea" dependencies = [ "log", "regex", @@ -2817,9 +2747,9 @@ dependencies = [ [[package]] name = "env_logger" -version = "0.11.5" +version = "0.11.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e13fa619b91fb2381732789fc5de83b45675e882f66623b7d8cb4f643017018d" +checksum = "38b35839ba51819680ba087cd351788c9a3c476841207e0b8cee0b04722343b9" dependencies = [ "anstream", "anstyle", @@ -2828,26 +2758,6 @@ dependencies = [ "log", ] -[[package]] -name = "equator" -version = "0.2.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c35da53b5a021d2484a7cc49b2ac7f2d840f8236a286f84202369bd338d761ea" -dependencies = [ - "equator-macro", -] - -[[package]] -name = "equator-macro" -version = "0.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3bf679796c0322556351f287a51b49e48f7c4986e727b5dd78c972d30e2e16cc" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.82", -] - [[package]] name = "equivalent" version = "1.0.1" @@ -2866,12 +2776,12 @@ dependencies = [ [[package]] name = "errno" -version = "0.3.9" +version = "0.3.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "534c5cf6194dfab3db3242765c03bbe257cf92f22b38f6bc0c58d59108a820ba" +checksum = "33d852cb9b869c2a9b3df2f71a3074817f01e1844f839a144f5fcef059a4eb5d" dependencies = [ "libc", - "windows-sys 0.52.0", + "windows-sys 0.59.0", ] [[package]] @@ -3023,7 +2933,7 @@ dependencies = [ "regex", "serde", "serde_json", - "syn 2.0.82", + "syn 2.0.95", "toml 0.7.8", "walkdir", ] @@ -3045,8 +2955,8 @@ dependencies = [ "regex", "serde", "serde_json", - "syn 2.0.82", - "toml 0.8.19", + "syn 2.0.95", + "toml 0.8.15", "walkdir", ] @@ -3062,7 +2972,7 @@ dependencies = [ "proc-macro2", "quote", "serde_json", - "syn 2.0.82", + "syn 2.0.95", ] [[package]] @@ -3078,7 +2988,7 @@ dependencies = [ "proc-macro2", "quote", "serde_json", - "syn 2.0.82", + "syn 2.0.95", ] [[package]] @@ -3095,7 +3005,7 @@ dependencies = [ "ethabi", "generic-array 0.14.7", "k256", - "num_enum 0.7.3", + "num_enum 0.7.2", "once_cell", "open-fastrlp", "rand 0.8.5", @@ -3103,7 +3013,7 @@ dependencies = [ "serde", "serde_json", "strum 0.25.0", - "syn 2.0.82", + "syn 2.0.95", "tempfile", "thiserror", "tiny-keccak", @@ -3125,7 +3035,7 @@ dependencies = [ "ethabi", "generic-array 0.14.7", "k256", - "num_enum 0.7.3", + "num_enum 0.7.2", "once_cell", "open-fastrlp", "rand 0.8.5", @@ -3133,7 +3043,7 @@ dependencies = [ "serde", "serde_json", "strum 0.26.3", - "syn 2.0.82", + "syn 2.0.95", "tempfile", "thiserror", "tiny-keccak", @@ -3276,9 +3186,9 @@ checksum = "2acce4a10f12dc2fb14a218589d4f1f62ef011b2d0cc4b3cb1bba8e94da14649" [[package]] name = "fastrand" -version = "2.1.1" +version = "2.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e8c02a5121d4ea3eb16a80748c74f5549a5665e4c21333c6098f283870fbdea6" +checksum = "37909eebbb50d72f9059c3b6d82c0463f2ff062c9e95845c43a6c9c0355411be" [[package]] name = "fastrlp" @@ -3370,9 +3280,9 @@ dependencies = [ [[package]] name = "flate2" -version = "1.0.34" +version = "1.0.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a1b589b4dc103969ad3cf85c950899926ec64300a1a46d76c03a6072957036f0" +checksum = "5f54427cfd1c7829e2a139fcefea601bf088ebca651d2bf53ebc600eac295dae" dependencies = [ "crc32fast", "miniz_oxide", @@ -3386,9 +3296,9 @@ checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" [[package]] name = "foldhash" -version = "0.1.3" +version = "0.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f81ec6369c545a7d40e4589b5597581fa1c441fe1cce96dd1de43159910a36a2" +checksum = "a0d2fde1f7b3d48b8395d5f2de76c18a528bd6a9cdde438df747bfcba3e05d6f" [[package]] name = "foreign-types" @@ -3417,7 +3327,7 @@ checksum = "1a5c6c585bc94aaf2c7b51dd4c2ba22680844aba4c687be581871a6f518c5742" dependencies = [ "proc-macro2", "quote", - "syn 2.0.82", + "syn 2.0.95", ] [[package]] @@ -3449,9 +3359,9 @@ checksum = "e6d5a32815ae3f33302d95fdcb2ce17862f8c65363dcfd29360480ba1001fc9c" [[package]] name = "futures" -version = "0.3.31" +version = "0.3.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "65bc07b1a8bc7c85c5f2e110c476c7389b4554ba72af57d8445ea63a576b0876" +checksum = "645c6916888f6cb6350d2550b80fb63e734897a8498abe35cfb732b6487804b0" dependencies = [ "futures-channel", "futures-core", @@ -3464,9 +3374,9 @@ dependencies = [ [[package]] name = "futures-channel" -version = "0.3.31" +version = "0.3.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2dff15bf788c671c1934e366d07e30c1814a8ef514e1af724a602e8a2fbe1b10" +checksum = "eac8f7d7865dcb88bd4373ab671c8cf4508703796caa2b1985a9ca867b3fcb78" dependencies = [ "futures-core", "futures-sink", @@ -3474,15 +3384,15 @@ dependencies = [ [[package]] name = "futures-core" -version = "0.3.31" +version = "0.3.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "05f29059c0c2090612e8d742178b0580d2dc940c837851ad723096f87af6663e" +checksum = "dfc6580bb841c5a68e9ef15c77ccc837b40a7504914d52e47b8b0e9bbda25a1d" [[package]] name = "futures-executor" -version = "0.3.31" +version = "0.3.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e28d1d997f585e54aebc3f97d39e72338912123a67330d723fdbb564d646c9f" +checksum = "a576fc72ae164fca6b9db127eaa9a9dda0d61316034f33a0a0d4eda41f02b01d" dependencies = [ "futures-core", "futures-task", @@ -3491,9 +3401,9 @@ dependencies = [ [[package]] name = "futures-io" -version = "0.3.31" +version = "0.3.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9e5c1b78ca4aae1ac06c48a526a655760685149f0d465d21f37abfe57ce075c6" +checksum = "a44623e20b9681a318efdd71c299b6b222ed6f231972bfe2f224ebad6311f0c1" [[package]] name = "futures-locks" @@ -3507,26 +3417,26 @@ dependencies = [ [[package]] name = "futures-macro" -version = "0.3.31" +version = "0.3.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "162ee34ebcb7c64a8abebc059ce0fee27c2262618d7b60ed8faf72fef13c3650" +checksum = "87750cf4b7a4c0625b1529e4c543c2182106e4dedc60a2a6455e00d212c489ac" dependencies = [ "proc-macro2", "quote", - "syn 2.0.82", + "syn 2.0.95", ] [[package]] name = "futures-sink" -version = "0.3.31" +version = "0.3.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e575fab7d1e0dcb8d0c7bcf9a63ee213816ab51902e6d244a95819acacf1d4f7" +checksum = "9fb8e00e87438d937621c1c6269e53f536c14d3fbd6a042bb24879e57d474fb5" [[package]] name = "futures-task" -version = "0.3.31" +version = "0.3.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f90f7dce0722e95104fcb095585910c0977252f286e354b5e3bd38902cd99988" +checksum = "38d84fa142264698cdce1a9f9172cf383a0c82de1bddcf3092901442c4097004" [[package]] name = "futures-timer" @@ -3540,9 +3450,9 @@ dependencies = [ [[package]] name = "futures-util" -version = "0.3.31" +version = "0.3.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9fa08315bb612088cc391249efdc3bc77536f16c91f6cf495e6fbe85b20a4a81" +checksum = "3d6401deb83407ab3da39eba7e33987a73c3df0c82b4bb5813ee871c19c41d48" dependencies = [ "futures-channel", "futures-core", @@ -3642,12 +3552,6 @@ dependencies = [ "stable_deref_trait", ] -[[package]] -name = "gimli" -version = "0.31.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "07e28edb80900c19c28f1072f2e8aeca7fa06b23cd4169cefe1af5aa3260783f" - [[package]] name = "git2" version = "0.19.0" @@ -3723,7 +3627,7 @@ dependencies = [ "futures-sink", "futures-util", "http 0.2.12", - "indexmap 2.6.0", + "indexmap 2.7.0", "slab", "tokio", "tokio-util", @@ -3732,9 +3636,9 @@ dependencies = [ [[package]] name = "h2" -version = "0.4.6" +version = "0.4.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "524e8ac6999421f49a846c2d4411f337e53497d8ec55d67753beffa43c5d9205" +checksum = "fa82e28a107a8cc405f0839610bdc9b15f1e25ec7d696aa5cf173edbcb1486ab" dependencies = [ "atomic-waker", "bytes", @@ -3742,7 +3646,7 @@ dependencies = [ "futures-core", "futures-sink", "http 1.1.0", - "indexmap 2.6.0", + "indexmap 2.7.0", "slab", "tokio", "tokio-util", @@ -3778,7 +3682,7 @@ version = "0.1.0" dependencies = [ "proc-macro2", "quote", - "syn 2.0.82", + "syn 2.0.95", ] [[package]] @@ -3788,7 +3692,7 @@ dependencies = [ "once_cell", "proc-macro2", "quote", - "syn 2.0.82", + "syn 2.0.95", ] [[package]] @@ -3819,14 +3723,13 @@ dependencies = [ [[package]] name = "hashbrown" -version = "0.15.0" +version = "0.15.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e087f84d4f86bf4b218b927129862374b72199ae7d8657835f1e89000eea4fb" +checksum = "bf151400ff0baff5465007dd2f3e717f3fe502074ca563069ce3a6629d07b289" dependencies = [ "allocator-api2", "equivalent", "foldhash", - "serde", ] [[package]] @@ -3999,9 +3902,9 @@ checksum = "08a397c49fec283e3d6211adbe480be95aae5f304cfb923e9970e08956d5168a" [[package]] name = "httparse" -version = "1.9.5" +version = "1.9.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7d71d3574edd2771538b901e6549113b4006ece66150fb69c0fb6d9a2adae946" +checksum = "0fcc0b4a115bf80b728eb8ea024ad5bd707b615bfed49e0665b6e0f86fd082d9" [[package]] name = "httpdate" @@ -4017,9 +3920,9 @@ checksum = "9a3a5bfb195931eeb336b2a7b4d761daec841b97f947d34394601737a7bba5e4" [[package]] name = "hyper" -version = "0.14.31" +version = "0.14.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8c08302e8fa335b151b788c775ff56e7a03ae64ff85c548ee820fecb70356e85" +checksum = "a152ddd61dfaec7273fe8419ab357f33aee0d914c5f4efbf0d96fa749eea5ec9" dependencies = [ "bytes", "futures-channel", @@ -4041,14 +3944,14 @@ dependencies = [ [[package]] name = "hyper" -version = "1.5.0" +version = "1.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bbbff0a806a4728c99295b254c8838933b5b082d75e3cb70c8dab21fdfbcfa9a" +checksum = "50dfd22e0e76d0f662d429a5f80fcaf3855009297eab6a0a9f8543834744ba05" dependencies = [ "bytes", "futures-channel", "futures-util", - "h2 0.4.6", + "h2 0.4.5", "http 1.1.0", "http-body 1.0.1", "httparse", @@ -4068,7 +3971,7 @@ checksum = "ec3efd23720e2049821a693cbc7e65ea87c72f1c58ff2f9522ff332b1491e590" dependencies = [ "futures-util", "http 0.2.12", - "hyper 0.14.31", + "hyper 0.14.30", "rustls 0.21.12", "tokio", "tokio-rustls 0.24.1", @@ -4076,20 +3979,20 @@ dependencies = [ [[package]] name = "hyper-rustls" -version = "0.27.3" +version = "0.27.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "08afdbb5c31130e3034af566421053ab03787c640246a446327f550d11bcb333" +checksum = "5ee4be2c948921a1a5320b629c4193916ed787a7f7f293fd3f7f5a6c9de74155" dependencies = [ "futures-util", "http 1.1.0", - "hyper 1.5.0", + "hyper 1.4.1", "hyper-util", - "rustls 0.23.15", + "rustls 0.23.11", "rustls-pki-types", "tokio", "tokio-rustls 0.26.0", "tower-service", - "webpki-roots 0.26.6", + "webpki-roots 0.26.3", ] [[package]] @@ -4099,7 +4002,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d6183ddfa99b85da61a140bea0efc93fdf56ceaa041b37d553518030827f9905" dependencies = [ "bytes", - "hyper 0.14.31", + "hyper 0.14.30", "native-tls", "tokio", "tokio-native-tls", @@ -4113,7 +4016,7 @@ checksum = "70206fc6890eaca9fde8a0bf71caa2ddfc9fe045ac9e5c70df101a7dbde866e0" dependencies = [ "bytes", "http-body-util", - "hyper 1.5.0", + "hyper 1.4.1", "hyper-util", "native-tls", "tokio", @@ -4123,16 +4026,16 @@ dependencies = [ [[package]] name = "hyper-util" -version = "0.1.9" +version = "0.1.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "41296eb09f183ac68eec06e03cdbea2e759633d4067b2f6552fc2e009bcad08b" +checksum = "df2dcfbe0677734ab2f3ffa7fa7bfd4706bfdc1ef393f2ee30184aed67e631b4" dependencies = [ "bytes", "futures-channel", "futures-util", "http 1.1.0", "http-body 1.0.1", - "hyper 1.5.0", + "hyper 1.4.1", "pin-project-lite", "socket2 0.5.7", "tokio", @@ -4142,9 +4045,9 @@ dependencies = [ [[package]] name = "iana-time-zone" -version = "0.1.61" +version = "0.1.60" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "235e081f3925a06703c2d0117ea8b91f042756fd6e7a6e5d901e8ca1a996b220" +checksum = "e7ffbb5a1b541ea2561f8c41c087286cc091e21e556a4f09a8f6cbf17b69b141" dependencies = [ "android_system_properties", "core-foundation-sys", @@ -4236,12 +4139,12 @@ dependencies = [ [[package]] name = "indexmap" -version = "2.6.0" +version = "2.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "707907fe3c25f5424cce2cb7e1cbcafee6bdbe735ca90ef77c29e84591e5b9da" +checksum = "62f822373a4fe84d4bb149bf54e584a7f4abec90e072ed49cda0edea5b95471f" dependencies = [ "equivalent", - "hashbrown 0.15.0", + "hashbrown 0.15.2", "serde", ] @@ -4285,15 +4188,15 @@ checksum = "f958d3d68f4167080a18141e10381e7634563984a537f2a49a30fd8e53ac5767" [[package]] name = "ipnet" -version = "2.10.1" +version = "2.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ddc24109865250148c2e0f3d25d4f0f479571723792d3802153c60922a4fb708" +checksum = "8f518f335dce6725a761382244631d86cf0ccb2863413590b31338feb467f9c3" [[package]] name = "iri-string" -version = "0.7.7" +version = "0.7.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dc0f0a572e8ffe56e2ff4f769f32ffe919282c3916799f8b68688b6030063bea" +checksum = "7f5f6c2df22c009ac44f6f1499308e7a3ac7ba42cd2378475cc691510e1eef1b" dependencies = [ "memchr", "serde", @@ -4301,9 +4204,9 @@ dependencies = [ [[package]] name = "is_terminal_polyfill" -version = "1.70.1" +version = "1.70.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7943c866cc5cd64cbc25b2e01621d07fa8eb2a1a23160ee81ce38704e97b8ecf" +checksum = "f8478577c03552c21db0e2724ffb8986a5ce7af88107e6be5d2ee6e158c12800" [[package]] name = "itertools" @@ -4340,18 +4243,18 @@ checksum = "49f1f14873335454500d59611f1cf4a4b0f786f9ac11f4312a78e4cf2566695b" [[package]] name = "jobserver" -version = "0.1.32" +version = "0.1.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "48d1dbcbbeb6a7fec7e059840aa538bd62aaccf972c7346c4d9d2059312853d0" +checksum = "d2b099aaa34a9751c5bf0878add70444e1ed2dd73f347be99003d4577277de6e" dependencies = [ "libc", ] [[package]] name = "js-sys" -version = "0.3.72" +version = "0.3.69" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6a88f1bda2bd75b0452a14784937d796722fdebfe50df998aeb3f0b7603019a9" +checksum = "29c15563dc2726973df627357ce0c9ddddbea194836909d655df6a75d2cf296d" dependencies = [ "wasm-bindgen", ] @@ -4414,9 +4317,9 @@ dependencies = [ [[package]] name = "k256" -version = "0.13.4" +version = "0.13.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f6e3919bbaa2945715f0bb6d3934a173d1e9a59ac23767fbaaef277265a7411b" +checksum = "956ff9b67e26e1a6a866cb758f12c6f8746208489e3e4a4b5580802f2f0a587b" dependencies = [ "cfg-if", "ecdsa", @@ -4437,9 +4340,9 @@ dependencies = [ [[package]] name = "keccak-asm" -version = "0.1.4" +version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "505d1856a39b200489082f90d897c3f07c455563880bc5952e38eabf731c83b6" +checksum = "47a3633291834c4fbebf8673acbc1b04ec9d151418ff9b8e26dcd79129928758" dependencies = [ "digest 0.10.7", "sha3-asm", @@ -4459,9 +4362,9 @@ dependencies = [ [[package]] name = "lazy-regex" -version = "3.3.0" +version = "3.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8d8e41c97e6bc7ecb552016274b99fbb5d035e8de288c582d9b933af6677bfda" +checksum = "f82f270298cdeeffe3ce09272627714a227bce8b499afa71fc47efb84dc582b7" dependencies = [ "lazy-regex-proc_macros", "once_cell", @@ -4470,14 +4373,14 @@ dependencies = [ [[package]] name = "lazy-regex-proc_macros" -version = "3.3.0" +version = "3.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "76e1d8b05d672c53cb9c7b920bbba8783845ae4f0b076e02a3db1d02c81b4163" +checksum = "4ba01db5ef81e17eb10a5e0f2109d1b3a3e29bac3070fdbd7d156bf7dbd206a1" dependencies = [ "proc-macro2", "quote", "regex", - "syn 2.0.82", + "syn 2.0.95", ] [[package]] @@ -4491,9 +4394,9 @@ dependencies = [ [[package]] name = "libc" -version = "0.2.161" +version = "0.2.169" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8e9489c2807c139ffd9c1794f4af0ebe86a828db53ecdc7fea2111d0fed085d1" +checksum = "b5aba8db14291edd000dfcc4d620c7ebfb122c613afb886ca8803fa4e128a20a" [[package]] name = "libflate" @@ -4559,9 +4462,9 @@ dependencies = [ [[package]] name = "libz-sys" -version = "1.1.20" +version = "1.1.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d2d16453e800a8cf6dd2fc3eb4bc99b786a9b90c663b8559a5b1a041bf89e472" +checksum = "c15da26e5af7e25c90b37a2d75cdbf940cf4a55316de9d84c679c9b8bfabf82e" dependencies = [ "cc", "libc", @@ -4603,7 +4506,7 @@ version = "0.12.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "234cf4f4a04dc1f57e24b96cc0cd600cf2af460d4161ac5ecdd0af8e1f3b2a38" dependencies = [ - "hashbrown 0.15.0", + "hashbrown 0.15.2", ] [[package]] @@ -4644,9 +4547,9 @@ checksum = "0e7465ac9959cc2b1404e8e2367b43684a6d13790fe23056cc8c6c5a6b7bcb94" [[package]] name = "matrixmultiply" -version = "0.3.9" +version = "0.3.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9380b911e3e96d10c1f415da0876389aaf1b56759054eeb0de7df940c456ba1a" +checksum = "7574c1cf36da4798ab73da5b215bbf444f50718207754cb522201d78d1cd0ff2" dependencies = [ "autocfg", "rawpointer", @@ -4660,7 +4563,7 @@ checksum = "5cf92c10c7e361d6b99666ec1c6f9805b0bea2c3bd8c78dc6fe98ac5bd78db11" dependencies = [ "proc-macro2", "quote", - "syn 2.0.82", + "syn 2.0.95", ] [[package]] @@ -4680,9 +4583,9 @@ dependencies = [ [[package]] name = "memmap2" -version = "0.9.5" +version = "0.9.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fd3f7eed9d3848f8b98834af67102b720745c4ec028fcd0aa0239277e7de374f" +checksum = "fe751422e4a8caa417e13c3ea66452215d7d63e19e604f4980461212f3ae1322" dependencies = [ "libc", ] @@ -4742,11 +4645,11 @@ checksum = "68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a" [[package]] name = "miniz_oxide" -version = "0.8.0" +version = "0.7.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e2d80299ef12ff69b16a84bb182e3b9df68b5a91574d3d4fa6e41b65deec4df1" +checksum = "b8a240ddb74feaf34a79a7add65a741f3167852fba007066dcac1ca548d89c08" dependencies = [ - "adler2", + "adler", ] [[package]] @@ -4757,11 +4660,10 @@ checksum = "e53debba6bda7a793e5f99b8dacf19e626084f525f7829104ba9898f367d85ff" [[package]] name = "mio" -version = "1.0.2" +version = "1.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "80e04d1dcff3aae0704555fe5fee3bcfaf3d1fdf8a7e521d5b9d2b42acb52cec" +checksum = "2886843bf800fba2e3377cff24abf6379b4c4d5c6681eaf9ea5b0d15090450bd" dependencies = [ - "hermit-abi 0.3.9", "libc", "wasi 0.11.0+wasi-snapshot-preview1", "windows-sys 0.52.0", @@ -4989,11 +4891,11 @@ dependencies = [ [[package]] name = "num_enum" -version = "0.7.3" +version = "0.7.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4e613fc340b2220f734a8595782c551f1250e969d87d3be1ae0579e8d4065179" +checksum = "02339744ee7253741199f897151b38e72257d13802d4ee837285cc2990a90845" dependencies = [ - "num_enum_derive 0.7.3", + "num_enum_derive 0.7.2", ] [[package]] @@ -5010,14 +4912,14 @@ dependencies = [ [[package]] name = "num_enum_derive" -version = "0.7.3" +version = "0.7.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "af1844ef2428cc3e1cb900be36181049ef3d3193c63e43026cfe202983b27a56" +checksum = "681030a937600a36906c185595136d26abfebb4aa9c65701cefcaf8578bb982b" dependencies = [ - "proc-macro-crate 3.2.0", + "proc-macro-crate 3.1.0", "proc-macro2", "quote", - "syn 2.0.82", + "syn 2.0.95", ] [[package]] @@ -5079,18 +4981,18 @@ dependencies = [ [[package]] name = "object" -version = "0.36.5" +version = "0.36.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aedf0a2d09c573ed1d8d85b30c119153926a2b36dce0ab28322c09a117a4683e" +checksum = "081b846d1d56ddfc18fdf1a922e4f6e07a11768ea1b92dec44e42b72712ccfce" dependencies = [ "memchr", ] [[package]] name = "once_cell" -version = "1.20.2" +version = "1.19.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1261fe7e33c73b354eab43b1273a57c8f967d0391e80353e51f764ac02cf6775" +checksum = "3fdb12b2476b595f9358c5161aa467c2438859caa136dec86c26fdd2efe17b92" [[package]] name = "opaque-debug" @@ -5125,9 +5027,9 @@ dependencies = [ [[package]] name = "openssl" -version = "0.10.68" +version = "0.10.66" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6174bc48f102d208783c2c84bf931bb75927a617866870de8a4ea85597f871f5" +checksum = "9529f4786b70a3e8c61e11179af17ab6188ad8d0ded78c5529441ed39d4bd9c1" dependencies = [ "bitflags 2.6.0", "cfg-if", @@ -5146,7 +5048,7 @@ checksum = "a948666b637a0f465e8564c73e89d4dde00d72d4d473cc972f390fc3dcee7d9c" dependencies = [ "proc-macro2", "quote", - "syn 2.0.82", + "syn 2.0.95", ] [[package]] @@ -5157,9 +5059,9 @@ checksum = "ff011a302c396a5197692431fc1948019154afc178baf7d8e37367442a4601cf" [[package]] name = "openssl-sys" -version = "0.9.104" +version = "0.9.103" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "45abf306cbf99debc8195b66b7346498d7b10c210de50418b5ccd7ceba08c741" +checksum = "7f9e8deee91df40a943c71b917e5874b951d32a802526c85721ce3b776c929d6" dependencies = [ "cc", "libc", @@ -5477,7 +5379,7 @@ version = "3.6.12" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d830939c76d294956402033aee57a6da7b438f2294eb94864c37b0569053a42c" dependencies = [ - "proc-macro-crate 3.2.0", + "proc-macro-crate 3.1.0", "proc-macro2", "quote", "syn 1.0.109", @@ -5526,7 +5428,7 @@ checksum = "1e401f977ab385c9e4e3ab30627d6f26d00e2c73eef317493c4ec6d468726cf8" dependencies = [ "cfg-if", "libc", - "redox_syscall 0.5.7", + "redox_syscall 0.5.3", "smallvec", "windows-targets 0.52.6", ] @@ -5569,9 +5471,9 @@ checksum = "57c0d7b74b563b49d38dae00a0c37d4d6de9b432382b2892f0574ddcae73fd0a" [[package]] name = "pathdiff" -version = "0.2.2" +version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d61c5ce1153ab5b689d0c074c4e7fc613e942dfb7dd9eea5ab202d2ad91fe361" +checksum = "8835116a5c179084a830efb3adc117ab007512b535bc1a21c991d3b32a6b44dd" [[package]] name = "pbkdf2" @@ -5619,9 +5521,9 @@ checksum = "e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e" [[package]] name = "pest" -version = "2.7.14" +version = "2.7.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "879952a81a83930934cbf1786752d6dedc3b1f29e8f8fb2ad1d0a36f377cf442" +checksum = "cd53dff83f26735fdc1ca837098ccf133605d794cdae66acfc2bfac3ec809d95" dependencies = [ "memchr", "thiserror", @@ -5630,16 +5532,15 @@ dependencies = [ [[package]] name = "ph" -version = "0.8.5" +version = "0.8.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b2fbaf8da280599aae4047ea0659a1e79cf61739bce5bdc50ca88dc7e6357060" +checksum = "86b7b74d575d7c11fb653fae69688be5206cafc1ead33c01ce61ac7f36eae45b" dependencies = [ - "aligned-vec", "binout", "bitm", "dyn_size_of", "rayon", - "seedable_hash", + "wyhash", ] [[package]] @@ -5649,27 +5550,27 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e9567389417feee6ce15dd6527a8a1ecac205ef62c2932bcf3d9f6fc5b78b414" dependencies = [ "futures", - "rustc_version 0.4.1", + "rustc_version 0.4.0", ] [[package]] name = "pin-project" -version = "1.1.6" +version = "1.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "baf123a161dde1e524adf36f90bc5d8d3462824a9c43553ad07a8183161189ec" +checksum = "b6bf43b791c5b9e34c3d182969b4abb522f9343702850a2e57f460d00d09b4b3" dependencies = [ "pin-project-internal", ] [[package]] name = "pin-project-internal" -version = "1.1.6" +version = "1.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a4502d8515ca9f32f1fb543d987f63d95a14934883db45bdb48060b6b69257f8" +checksum = "2f38a4412a78282e09a2cf38d195ea5420d15ba0602cb375210efbc877243965" dependencies = [ "proc-macro2", "quote", - "syn 2.0.82", + "syn 2.0.95", ] [[package]] @@ -5696,9 +5597,9 @@ dependencies = [ [[package]] name = "pkg-config" -version = "0.3.31" +version = "0.3.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "953ec861398dccce10c670dfeaf3ec4911ca479e9c02154b3a215178c5f566f2" +checksum = "d231b230927b5e4ad203db57bbcbee2802f6bce620b1e4a9024a07d94e2907ec" [[package]] name = "polyval" @@ -5714,15 +5615,15 @@ dependencies = [ [[package]] name = "portable-atomic" -version = "1.9.0" +version = "1.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cc9c68a3f6da06753e9335d63e27f6b9754dd1920d941135b7ea8224f141adb2" +checksum = "da544ee218f0d287a911e9c99a39a8c9bc8fcad3cb8db5959940044ecfc67265" [[package]] name = "portable-atomic-util" -version = "0.2.3" +version = "0.2.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "90a7d5beecc52a491b54d6dd05c7a45ba1801666a5baad9fdbfc6fef8d2d206c" +checksum = "d8a2f0d8d040d7848a709caf78912debcc3f33ee4b3cac47d73d1e1069e83507" dependencies = [ "portable-atomic", ] @@ -5735,18 +5636,15 @@ checksum = "439ee305def115ba05938db6eb1644ff94165c5ab5e9420d1c1bcedbba909391" [[package]] name = "ppv-lite86" -version = "0.2.20" +version = "0.2.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "77957b295656769bb8ad2b6a6b09d897d94f05c41b069aede1fcdaa675eaea04" -dependencies = [ - "zerocopy", -] +checksum = "5b40af805b3121feab8a3c29f04d8ad262fa8e0561883e7653e024ae4479e6de" [[package]] name = "predicates" -version = "3.1.2" +version = "3.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7e9086cc7640c29a356d1a29fd134380bee9d8f79a17410aa76e7ad295f42c97" +checksum = "68b87bfd4605926cdfefc1c3b5f8fe560e3feca9d5552cf68c466d3d8236c7e8" dependencies = [ "anstyle", "difflib", @@ -5755,15 +5653,15 @@ dependencies = [ [[package]] name = "predicates-core" -version = "1.0.8" +version = "1.0.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ae8177bee8e75d6846599c6b9ff679ed51e882816914eec639944d7c9aa11931" +checksum = "b794032607612e7abeb4db69adb4e33590fa6cf1149e95fd7cb00e634b92f174" [[package]] name = "predicates-tree" -version = "1.0.11" +version = "1.0.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "41b740d195ed3166cd147c8047ec98db0e22ec019eb8eeb76d343b795304fb13" +checksum = "368ba315fb8c5052ab692e68a0eefec6ec57b23a36959c14496f0b0df2c0cecf" dependencies = [ "predicates-core", "termtree", @@ -5771,12 +5669,12 @@ dependencies = [ [[package]] name = "prettyplease" -version = "0.2.24" +version = "0.2.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "910d41a655dac3b764f1ade94821093d3610248694320cd072303a8eedcf221d" +checksum = "5f12335488a2f3b0a83b14edad48dca9879ce89b2edd10e80237e4e852dd645e" dependencies = [ "proc-macro2", - "syn 2.0.82", + "syn 2.0.95", ] [[package]] @@ -5805,11 +5703,11 @@ dependencies = [ [[package]] name = "proc-macro-crate" -version = "3.2.0" +version = "3.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8ecf48c7ca261d60b74ab1a7b20da18bede46776b2e55535cb958eb595c5fa7b" +checksum = "6d37c51ca738a55da99dc0c4a34860fd675453b8b36209178c2249bb13651284" dependencies = [ - "toml_edit 0.22.22", + "toml_edit 0.21.1", ] [[package]] @@ -5838,9 +5736,9 @@ dependencies = [ [[package]] name = "proc-macro2" -version = "1.0.89" +version = "1.0.92" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f139b0662de085916d1fb67d2b4169d1addddda1919e696f3252b740b629986e" +checksum = "37d3544b3f2748c54e147655edb5025752e2303145b5aefb3c3ea2c78b973bb0" dependencies = [ "unicode-ident", ] @@ -5907,9 +5805,9 @@ dependencies = [ [[package]] name = "prost" -version = "0.13.3" +version = "0.13.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7b0487d90e047de87f984913713b85c601c05609aad5b0df4b4573fbf69aa13f" +checksum = "2c0fef6c4230e4ccf618a35c59d7ede15dea37de8427500f50aff708806e42ec" dependencies = [ "bytes", "prost-derive", @@ -5917,15 +5815,15 @@ dependencies = [ [[package]] name = "prost-derive" -version = "0.13.3" +version = "0.13.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e9552f850d5f0964a4e4d0bf306459ac29323ddfbae05e35a7c0d35cb0803cc5" +checksum = "157c5a9d7ea5c2ed2d9fb8f495b64759f7816c7eaea54ba3978f0d63000162e3" dependencies = [ "anyhow", "itertools 0.13.0", "proc-macro2", "quote", - "syn 2.0.82", + "syn 2.0.95", ] [[package]] @@ -5956,17 +5854,16 @@ checksum = "a1d01941d82fa2ab50be1e79e6714289dd7cde78eba4c074bc5a4374f650dfe0" [[package]] name = "quinn" -version = "0.11.5" +version = "0.11.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8c7c5fdde3cdae7203427dc4f0a68fe0ed09833edc525a03456b153b79828684" +checksum = "e4ceeeeabace7857413798eb1ffa1e9c905a9946a57d81fb69b4b71c4d8eb3ad" dependencies = [ "bytes", "pin-project-lite", "quinn-proto", "quinn-udp", - "rustc-hash 2.0.0", - "rustls 0.23.15", - "socket2 0.5.7", + "rustc-hash", + "rustls 0.23.11", "thiserror", "tokio", "tracing", @@ -5974,15 +5871,15 @@ dependencies = [ [[package]] name = "quinn-proto" -version = "0.11.8" +version = "0.11.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fadfaed2cd7f389d0161bb73eeb07b7b78f8691047a6f3e73caaeae55310a4a6" +checksum = "ddf517c03a109db8100448a4be38d498df8a210a99fe0e1b9eaf39e78c640efe" dependencies = [ "bytes", "rand 0.8.5", "ring 0.17.8", - "rustc-hash 2.0.0", - "rustls 0.23.15", + "rustc-hash", + "rustls 0.23.11", "slab", "thiserror", "tinyvec", @@ -5991,22 +5888,21 @@ dependencies = [ [[package]] name = "quinn-udp" -version = "0.5.5" +version = "0.5.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4fe68c2e9e1a1234e218683dbdf9f9dfcb094113c5ac2b938dfcb9bab4c4140b" +checksum = "8bffec3605b73c6f1754535084a85229fa8a30f86014e6c81aeec4abb68b0285" dependencies = [ "libc", "once_cell", "socket2 0.5.7", - "tracing", - "windows-sys 0.59.0", + "windows-sys 0.52.0", ] [[package]] name = "quote" -version = "1.0.37" +version = "1.0.36" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b5b9d34b8991d19d98081b46eacdd8eb58c6f2b201139f7c5f643cc155a633af" +checksum = "0fa76aaf39101c457836aec0ce2316dbdc3ab723cdda1c6bd4e6ad4208acaca7" dependencies = [ "proc-macro2", ] @@ -6023,7 +5919,7 @@ version = "0.1.0" dependencies = [ "alloy-consensus", "alloy-network", - "alloy-primitives 0.7.7", + "alloy-primitives", "alloy-provider", "alloy-rlp", "alloy-rlp-derive", @@ -6034,12 +5930,13 @@ dependencies = [ "anyhow", "assert_cmd", "bincode", - "clap 4.5.20", + "clap 4.5.9", + "env_logger", "ethers-core 2.0.10", "kzg", "raiko-lib", "reqwest 0.11.27", - "reqwest 0.12.8", + "reqwest 0.12.5", "reth-evm", "reth-evm-ethereum", "reth-primitives", @@ -6050,7 +5947,7 @@ dependencies = [ "rust-kzg-zkcrypto", "serde", "serde_json", - "serde_with 3.11.0", + "serde_with 3.9.0", "sgx-prover", "sp1-driver", "thiserror", @@ -6065,7 +5962,7 @@ version = "0.1.0" dependencies = [ "alloy-consensus", "alloy-network", - "alloy-primitives 0.7.7", + "alloy-primitives", "alloy-provider", "alloy-rlp", "alloy-rlp-derive", @@ -6080,7 +5977,7 @@ dependencies = [ "bytemuck", "cap", "cfg-if", - "clap 4.5.20", + "clap 4.5.9", "dotenv", "env_logger", "ethers-core 2.0.10", @@ -6096,7 +5993,7 @@ dependencies = [ "raiko-tasks", "rand 0.8.5", "reqwest 0.11.27", - "reqwest 0.12.8", + "reqwest 0.12.5", "reth-evm", "reth-evm-ethereum", "reth-primitives", @@ -6107,7 +6004,7 @@ dependencies = [ "rust-kzg-zkcrypto", "serde", "serde_json", - "serde_with 3.11.0", + "serde_with 3.9.0", "sgx-prover", "sha2", "sp1-driver", @@ -6131,7 +6028,7 @@ version = "0.1.0" dependencies = [ "alloy-consensus", "alloy-eips", - "alloy-primitives 0.7.7", + "alloy-primitives", "alloy-rlp", "alloy-rlp-derive", "alloy-rpc-types", @@ -6157,7 +6054,7 @@ dependencies = [ "rust-kzg-zkcrypto", "serde", "serde_json", - "serde_with 3.11.0", + "serde_with 3.9.0", "sha2", "sha3", "thiserror", @@ -6191,7 +6088,7 @@ version = "0.1.0" dependencies = [ "alloy-consensus", "alloy-network", - "alloy-primitives 0.7.7", + "alloy-primitives", "alloy-provider", "alloy-rlp", "alloy-rlp-derive", @@ -6205,7 +6102,7 @@ dependencies = [ "bytemuck", "cap", "cfg-if", - "clap 4.5.20", + "clap 4.5.9", "dirs", "env_logger", "ethers-core 2.0.10", @@ -6218,12 +6115,12 @@ dependencies = [ "proptest", "raiko-lib", "reqwest 0.11.27", - "reqwest 0.12.8", + "reqwest 0.12.5", "rlp", "rstest", "serde", "serde_json", - "serde_with 3.11.0", + "serde_with 3.9.0", "sgx-prover", "sha2", "structopt", @@ -6240,17 +6137,17 @@ dependencies = [ name = "raiko-tasks" version = "0.1.0" dependencies = [ - "alloy-primitives 0.7.7", + "alloy-primitives", "anyhow", "async-trait", "backoff", "chrono", "hex", - "num_enum 0.7.3", + "num_enum 0.7.2", "raiko-core", "raiko-lib", - "rand 0.9.0-alpha.2", - "rand_chacha 0.9.0-alpha.2", + "rand 0.9.0-alpha.1", + "rand_chacha 0.9.0-alpha.1", "redis", "serde", "serde_json", @@ -6283,18 +6180,17 @@ dependencies = [ "libc", "rand_chacha 0.3.1", "rand_core 0.6.4", - "serde", ] [[package]] name = "rand" -version = "0.9.0-alpha.2" +version = "0.9.0-alpha.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c3e256ff62cee3e03def855c4d4260106d2bb1696fdc01af03e9935b993720a5" +checksum = "8d31e63ea85be51c423e52ba8f2e68a3efd53eed30203ee029dd09947333693e" dependencies = [ - "rand_chacha 0.9.0-alpha.2", - "rand_core 0.9.0-alpha.2", - "zerocopy", + "rand_chacha 0.9.0-alpha.1", + "rand_core 0.9.0-alpha.1", + "zerocopy 0.8.0-alpha.6", ] [[package]] @@ -6319,12 +6215,12 @@ dependencies = [ [[package]] name = "rand_chacha" -version = "0.9.0-alpha.2" +version = "0.9.0-alpha.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d299e9db34f6623b2a9e86c015d6e173d5f46d64d4b9b8cc46ae8a982a50b04c" +checksum = "78674ef918c19451dbd250f8201f8619b494f64c9aa6f3adb28fd8a0f1f6da46" dependencies = [ "ppv-lite86", - "rand_core 0.9.0-alpha.2", + "rand_core 0.9.0-alpha.1", ] [[package]] @@ -6347,12 +6243,12 @@ dependencies = [ [[package]] name = "rand_core" -version = "0.9.0-alpha.2" +version = "0.9.0-alpha.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f4e93f5a5e3c528cda9acb0928c31b2ba868c551cc46e67b778075e34aab9906" +checksum = "cc89dffba8377c5ec847d12bb41492bda235dba31a25e8b695cd0fe6589eb8c9" dependencies = [ "getrandom 0.2.15", - "zerocopy", + "zerocopy 0.8.0-alpha.6", ] [[package]] @@ -6436,18 +6332,18 @@ dependencies = [ [[package]] name = "redox_syscall" -version = "0.5.7" +version = "0.5.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9b6dfecf2c74bce2466cabf93f6664d6998a69eb21e39f4207930065b27b771f" +checksum = "2a908a6e00f1fdd0dfd9c0eb08ce85126f6d8bbda50017e74bc4a4b7d4a926a4" dependencies = [ "bitflags 2.6.0", ] [[package]] name = "redox_users" -version = "0.4.6" +version = "0.4.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ba009ff324d1fc1b900bd1fdb31564febe58a8ccc8a6fdbb93b543d33b13ca43" +checksum = "bd283d9651eeda4b2a83a43c1c91b266c40fd76ecd39a50a8c630ae69dc72891" dependencies = [ "getrandom 0.2.15", "libredox", @@ -6456,13 +6352,13 @@ dependencies = [ [[package]] name = "regex" -version = "1.11.0" +version = "1.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "38200e5ee88914975b69f657f0801b6f6dccafd44fd9326302a4aaeecfacb1d8" +checksum = "b544ef1b4eac5dc2db33ea63606ae9ffcfac26c1416a2806ae0bf5f56b201191" dependencies = [ "aho-corasick", "memchr", - "regex-automata 0.4.8", + "regex-automata 0.4.9", "regex-syntax 0.8.5", ] @@ -6477,9 +6373,9 @@ dependencies = [ [[package]] name = "regex-automata" -version = "0.4.8" +version = "0.4.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "368758f23274712b504848e9d5a6f010445cc8b87a7cdb4d7cbee666c1288da3" +checksum = "809e8dc61f6de73b46c85f4c96486310fe304c434cfa43669d7b40f711150908" dependencies = [ "aho-corasick", "memchr", @@ -6518,7 +6414,7 @@ dependencies = [ "h2 0.3.26", "http 0.2.12", "http-body 0.4.6", - "hyper 0.14.31", + "hyper 0.14.30", "hyper-rustls 0.24.2", "hyper-tls 0.5.0", "ipnet", @@ -6535,7 +6431,7 @@ dependencies = [ "serde_json", "serde_urlencoded", "sync_wrapper 0.1.2", - "system-configuration 0.5.1", + "system-configuration", "tokio", "tokio-native-tls", "tokio-rustls 0.24.1", @@ -6545,14 +6441,14 @@ dependencies = [ "wasm-bindgen-futures", "web-sys", "webpki-roots 0.25.4", - "winreg", + "winreg 0.50.0", ] [[package]] name = "reqwest" -version = "0.12.8" +version = "0.12.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f713147fbe92361e52392c73b8c9e48c04c6625bce969ef54dc901e58e042a7b" +checksum = "c7d6d2a27d57148378eb5e111173f4276ad26340ecc5c49a4a2152167a2d6a37" dependencies = [ "base64 0.22.1", "bytes", @@ -6560,12 +6456,12 @@ dependencies = [ "futures-channel", "futures-core", "futures-util", - "h2 0.4.6", + "h2 0.4.5", "http 1.1.0", "http-body 1.0.1", "http-body-util", - "hyper 1.5.0", - "hyper-rustls 0.27.3", + "hyper 1.4.1", + "hyper-rustls 0.27.2", "hyper-tls 0.6.0", "hyper-util", "ipnet", @@ -6577,14 +6473,14 @@ dependencies = [ "percent-encoding", "pin-project-lite", "quinn", - "rustls 0.23.15", - "rustls-pemfile 2.2.0", + "rustls 0.23.11", + "rustls-pemfile 2.1.2", "rustls-pki-types", "serde", "serde_json", "serde_urlencoded", "sync_wrapper 1.0.1", - "system-configuration 0.6.1", + "system-configuration", "tokio", "tokio-native-tls", "tokio-rustls 0.26.0", @@ -6595,20 +6491,20 @@ dependencies = [ "wasm-bindgen-futures", "wasm-streams", "web-sys", - "webpki-roots 0.26.6", - "windows-registry", + "webpki-roots 0.26.3", + "winreg 0.52.0", ] [[package]] name = "reqwest-middleware" -version = "0.3.3" +version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "562ceb5a604d3f7c885a792d42c199fd8af239d0a51b2fa6a78aafa092452b04" +checksum = "39346a33ddfe6be00cbc17a34ce996818b97b230b87229f10114693becca1268" dependencies = [ "anyhow", "async-trait", "http 1.1.0", - "reqwest 0.12.8", + "reqwest 0.12.5", "serde", "thiserror", "tower-service", @@ -6634,9 +6530,9 @@ dependencies = [ "alloy-chains", "alloy-eips", "alloy-genesis", - "alloy-primitives 0.7.7", + "alloy-primitives", "alloy-trie", - "derive_more 0.99.18", + "derive_more", "once_cell", "reth-ethereum-forks", "reth-primitives-traits", @@ -6653,7 +6549,7 @@ dependencies = [ "alloy-consensus", "alloy-eips", "alloy-genesis", - "alloy-primitives 0.7.7", + "alloy-primitives", "bytes", "modular-bitfield", "reth-codecs-derive", @@ -6668,7 +6564,7 @@ dependencies = [ "convert_case 0.6.0", "proc-macro2", "quote", - "syn 2.0.82", + "syn 2.0.95", ] [[package]] @@ -6697,7 +6593,7 @@ version = "1.0.0-rc.2" source = "git+https://github.com/taikoxyz/taiko-reth.git?branch=v1.0.0-rc.2-taiko#f124fe7bbf636ec53fbb1c8efb95ff1275bfd711" dependencies = [ "bytes", - "derive_more 0.99.18", + "derive_more", "eyre", "metrics", "paste", @@ -6710,7 +6606,7 @@ dependencies = [ "reth-storage-errors", "reth-tracing", "reth-trie-common", - "rustc-hash 1.1.0", + "rustc-hash", "serde", "strum 0.26.3", "sysinfo", @@ -6723,7 +6619,7 @@ version = "1.0.0-rc.2" source = "git+https://github.com/taikoxyz/taiko-reth.git?branch=v1.0.0-rc.2-taiko#f124fe7bbf636ec53fbb1c8efb95ff1275bfd711" dependencies = [ "bytes", - "derive_more 0.99.18", + "derive_more", "metrics", "modular-bitfield", "parity-scale-codec", @@ -6741,7 +6637,7 @@ name = "reth-discv4" version = "1.0.0-rc.2" source = "git+https://github.com/taikoxyz/taiko-reth.git?branch=v1.0.0-rc.2-taiko#f124fe7bbf636ec53fbb1c8efb95ff1275bfd711" dependencies = [ - "alloy-primitives 0.7.7", + "alloy-primitives", "alloy-rlp", "discv5", "enr 0.12.1", @@ -6766,7 +6662,7 @@ version = "1.0.0-rc.2" source = "git+https://github.com/taikoxyz/taiko-reth.git?branch=v1.0.0-rc.2-taiko#f124fe7bbf636ec53fbb1c8efb95ff1275bfd711" dependencies = [ "aes 0.8.4", - "alloy-primitives 0.7.7", + "alloy-primitives", "alloy-rlp", "block-padding", "byteorder", @@ -6811,7 +6707,7 @@ source = "git+https://github.com/taikoxyz/taiko-reth.git?branch=v1.0.0-rc.2-taik dependencies = [ "alloy-rlp", "bytes", - "derive_more 0.99.18", + "derive_more", "futures", "pin-project", "reth-chainspec", @@ -6838,7 +6734,7 @@ source = "git+https://github.com/taikoxyz/taiko-reth.git?branch=v1.0.0-rc.2-taik dependencies = [ "alloy-rlp", "bytes", - "derive_more 0.99.18", + "derive_more", "reth-chainspec", "reth-codecs-derive", "reth-primitives", @@ -6864,7 +6760,7 @@ version = "1.0.0-rc.2" source = "git+https://github.com/taikoxyz/taiko-reth.git?branch=v1.0.0-rc.2-taiko#f124fe7bbf636ec53fbb1c8efb95ff1275bfd711" dependencies = [ "alloy-chains", - "alloy-primitives 0.7.7", + "alloy-primitives", "alloy-rlp", "crc", "serde", @@ -6914,7 +6810,7 @@ version = "1.0.0-rc.2" source = "git+https://github.com/taikoxyz/taiko-reth.git?branch=v1.0.0-rc.2-taiko#f124fe7bbf636ec53fbb1c8efb95ff1275bfd711" dependencies = [ "alloy-eips", - "alloy-primitives 0.7.7", + "alloy-primitives", "reth-consensus", "reth-prune-types", "reth-storage-errors", @@ -6960,7 +6856,7 @@ dependencies = [ "proc-macro2", "quote", "regex", - "syn 2.0.82", + "syn 2.0.95", ] [[package]] @@ -6968,7 +6864,7 @@ name = "reth-net-common" version = "1.0.0-rc.2" source = "git+https://github.com/taikoxyz/taiko-reth.git?branch=v1.0.0-rc.2-taiko#f124fe7bbf636ec53fbb1c8efb95ff1275bfd711" dependencies = [ - "alloy-primitives 0.7.7", + "alloy-primitives", "tokio", ] @@ -6978,8 +6874,8 @@ version = "1.0.0-rc.2" source = "git+https://github.com/taikoxyz/taiko-reth.git?branch=v1.0.0-rc.2-taiko#f124fe7bbf636ec53fbb1c8efb95ff1275bfd711" dependencies = [ "futures-util", - "reqwest 0.12.8", - "serde_with 3.11.0", + "reqwest 0.12.5", + "serde_with 3.9.0", "thiserror", "tokio", ] @@ -6989,7 +6885,7 @@ name = "reth-network-api" version = "1.0.0-rc.2" source = "git+https://github.com/taikoxyz/taiko-reth.git?branch=v1.0.0-rc.2-taiko#f124fe7bbf636ec53fbb1c8efb95ff1275bfd711" dependencies = [ - "alloy-primitives 0.7.7", + "alloy-primitives", "enr 0.12.1", "reth-eth-wire", "reth-network-peers", @@ -7022,11 +6918,11 @@ name = "reth-network-peers" version = "1.0.0-rc.2" source = "git+https://github.com/taikoxyz/taiko-reth.git?branch=v1.0.0-rc.2-taiko#f124fe7bbf636ec53fbb1c8efb95ff1275bfd711" dependencies = [ - "alloy-primitives 0.7.7", + "alloy-primitives", "alloy-rlp", "enr 0.12.1", "secp256k1", - "serde_with 3.11.0", + "serde_with 3.9.0", "thiserror", "tokio", "url", @@ -7040,7 +6936,7 @@ dependencies = [ "anyhow", "bincode", "cuckoofilter", - "derive_more 0.99.18", + "derive_more", "lz4_flex", "memmap2 0.7.1", "ph", @@ -7060,13 +6956,13 @@ dependencies = [ "alloy-consensus", "alloy-eips", "alloy-genesis", - "alloy-primitives 0.7.7", + "alloy-primitives", "alloy-rlp", "alloy-rpc-types", "byteorder", "bytes", - "c-kzg 1.0.3", - "derive_more 0.99.18", + "c-kzg 1.0.2", + "derive_more", "modular-bitfield", "once_cell", "rayon", @@ -7094,11 +6990,11 @@ dependencies = [ "alloy-consensus", "alloy-eips", "alloy-genesis", - "alloy-primitives 0.7.7", + "alloy-primitives", "alloy-rlp", "alloy-rpc-types-eth", "bytes", - "derive_more 0.99.18", + "derive_more", "modular-bitfield", "reth-codecs", "revm-primitives", @@ -7148,9 +7044,9 @@ name = "reth-prune-types" version = "1.0.0-rc.2" source = "git+https://github.com/taikoxyz/taiko-reth.git?branch=v1.0.0-rc.2-taiko#f124fe7bbf636ec53fbb1c8efb95ff1275bfd711" dependencies = [ - "alloy-primitives 0.7.7", + "alloy-primitives", "bytes", - "derive_more 0.99.18", + "derive_more", "modular-bitfield", "reth-codecs", "serde", @@ -7180,7 +7076,7 @@ name = "reth-rpc-types" version = "1.0.0-rc.2" source = "git+https://github.com/taikoxyz/taiko-reth.git?branch=v1.0.0-rc.2-taiko#f124fe7bbf636ec53fbb1c8efb95ff1275bfd711" dependencies = [ - "alloy-primitives 0.7.7", + "alloy-primitives", "alloy-rpc-types", "alloy-rpc-types-admin", "alloy-rpc-types-anvil", @@ -7199,7 +7095,7 @@ name = "reth-stages-types" version = "1.0.0-rc.2" source = "git+https://github.com/taikoxyz/taiko-reth.git?branch=v1.0.0-rc.2-taiko#f124fe7bbf636ec53fbb1c8efb95ff1275bfd711" dependencies = [ - "alloy-primitives 0.7.7", + "alloy-primitives", "bytes", "modular-bitfield", "reth-codecs", @@ -7212,8 +7108,8 @@ name = "reth-static-file-types" version = "1.0.0-rc.2" source = "git+https://github.com/taikoxyz/taiko-reth.git?branch=v1.0.0-rc.2-taiko#f124fe7bbf636ec53fbb1c8efb95ff1275bfd711" dependencies = [ - "alloy-primitives 0.7.7", - "derive_more 0.99.18", + "alloy-primitives", + "derive_more", "serde", "strum 0.26.3", ] @@ -7250,7 +7146,7 @@ name = "reth-tracing" version = "1.0.0-rc.2" source = "git+https://github.com/taikoxyz/taiko-reth.git?branch=v1.0.0-rc.2-taiko#f124fe7bbf636ec53fbb1c8efb95ff1275bfd711" dependencies = [ - "clap 4.5.20", + "clap 4.5.9", "eyre", "rolling-file", "tracing", @@ -7267,7 +7163,7 @@ source = "git+https://github.com/taikoxyz/taiko-reth.git?branch=v1.0.0-rc.2-taik dependencies = [ "alloy-rlp", "auto_impl", - "derive_more 0.99.18", + "derive_more", "metrics", "rayon", "reth-db", @@ -7288,11 +7184,11 @@ source = "git+https://github.com/taikoxyz/taiko-reth.git?branch=v1.0.0-rc.2-taik dependencies = [ "alloy-consensus", "alloy-genesis", - "alloy-primitives 0.7.7", + "alloy-primitives", "alloy-rlp", "alloy-trie", "bytes", - "derive_more 0.99.18", + "derive_more", "itertools 0.12.1", "nybbles", "reth-codecs", @@ -7346,13 +7242,13 @@ name = "revm-primitives" version = "4.0.0" source = "git+https://github.com/taikoxyz/revm.git?branch=v36-taiko#337a98f982e165c5a84cfc25d965344bfd4081bc" dependencies = [ - "alloy-primitives 0.7.7", + "alloy-primitives", "auto_impl", "bitflags 2.6.0", "bitvec", "c-kzg 1.0.0", "cfg-if", - "derive_more 0.99.18", + "derive_more", "dyn-clone", "enumn", "hashbrown 0.14.5", @@ -7446,9 +7342,9 @@ dependencies = [ [[package]] name = "risc0-build-kernel" -version = "1.1.2" +version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b186137d4b2b16f7fd017491032e888c56f55ba539812453adc7d3639eaf0113" +checksum = "4442d03cc80f55629df6eb79dbb406d0e637ea2b683a430404dd25b46eadcd33" dependencies = [ "cc", "directories", @@ -7457,7 +7353,7 @@ dependencies = [ "rayon", "sha2", "tempfile", - "which 6.0.3", + "which 6.0.1", ] [[package]] @@ -7469,9 +7365,9 @@ dependencies = [ [[package]] name = "risc0-circuit-recursion" -version = "1.1.2" +version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "436c762db677faf2cd616c55a69012d6b4f46c426b7d553c1b3d717e0c7e9438" +checksum = "d8b0736401dd72a60a775e675bd0adba2e0e0e2ce2b73b63fda2899d9d7889b0" dependencies = [ "anyhow", "bytemuck", @@ -7490,14 +7386,14 @@ dependencies = [ "serde", "sha2", "tracing", - "zip 2.2.0", + "zip 2.1.5", ] [[package]] name = "risc0-circuit-recursion-sys" -version = "1.1.2" +version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e632f0cba360b49ab69755b49eca1e6c33bd2302d5eec5693f4b3202e6cb3334" +checksum = "0cdee375eb66d84b1f2e78e756071734e9a8271018b4351a7f158ea806838afa" dependencies = [ "glob", "risc0-build-kernel", @@ -7536,9 +7432,9 @@ dependencies = [ [[package]] name = "risc0-circuit-rv32im-sys" -version = "1.1.2" +version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b3eea90914f44cd1227a23b40c2c9d12bee9923a3a7566ef0e6b5b3f3a85db9e" +checksum = "964920cf4c65ed1a5bb211debb31ef6147160a858d55ec12975a2da3062064b3" dependencies = [ "glob", "risc0-build-kernel", @@ -7549,9 +7445,9 @@ dependencies = [ [[package]] name = "risc0-core" -version = "1.1.2" +version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1714b8968a5e4583a15018dc2ae95878c76f4cdbc643268a34670fde5b08252a" +checksum = "733491635d50b742d1f30a923aa3b83d62f35cef724bbf402dfc02e6f10f587a" dependencies = [ "bytemuck", "nvtx", @@ -7563,7 +7459,7 @@ dependencies = [ name = "risc0-driver" version = "0.1.0" dependencies = [ - "alloy-primitives 0.7.7", + "alloy-primitives", "alloy-sol-types", "anyhow", "bincode", @@ -7582,7 +7478,7 @@ dependencies = [ "risc0-zkvm", "serde", "serde_json", - "serde_with 3.11.0", + "serde_with 3.9.0", "thiserror", "tokio", "tokio-util", @@ -7616,10 +7512,11 @@ dependencies = [ [[package]] name = "risc0-sys" -version = "1.1.2" +version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2a3afe2e8e95cec6317a75bb6eb13519f643e22c53c67a22a31c355117b7c447" +checksum = "a93d549191707c61dfb45b61ccc6b1de11fe054ae24cf73efedd6ea850dc0690" dependencies = [ + "anyhow", "cc", "cust", "risc0-build-kernel", @@ -7628,9 +7525,9 @@ dependencies = [ [[package]] name = "risc0-zkp" -version = "1.1.2" +version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "285aa3993827b4a646d70e68240e138f71574680a02d2e97ad30b1db80efda80" +checksum = "21eadc5099bf0d8ecaed718810dc5deaf237ae39a2fcb66e542e8f9660132617" dependencies = [ "anyhow", "blake2", @@ -7663,7 +7560,7 @@ version = "1.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "614fad8046130321e3be9ca3a36d9edad6ff4c538549ae191ec4d82576bb3893" dependencies = [ - "addr2line 0.22.0", + "addr2line", "anyhow", "bincode", "bonsai-sdk", @@ -7698,9 +7595,9 @@ dependencies = [ [[package]] name = "risc0-zkvm-platform" -version = "1.1.2" +version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b6acf0b0d7a55578f892e0460ed1f2ca06d0380e32440531d80ca82530d41272" +checksum = "26bbcc486222a0086d36244ae1f388cac1318270bca2dd23d77af2005d679edf" dependencies = [ "bytemuck", "getrandom 0.2.15", @@ -7785,7 +7682,7 @@ dependencies = [ "futures", "futures-timer", "rstest_macros", - "rustc_version 0.4.1", + "rustc_version 0.4.0", ] [[package]] @@ -7796,13 +7693,13 @@ checksum = "4165dfae59a39dd41d8dec720d3cbfbc71f69744efb480a3920f5d4e0cc6798d" dependencies = [ "cfg-if", "glob", - "proc-macro-crate 3.2.0", + "proc-macro-crate 3.1.0", "proc-macro2", "quote", "regex", "relative-path", - "rustc_version 0.4.1", - "syn 2.0.82", + "rustc_version 0.4.0", + "syn 2.0.95", "unicode-ident", ] @@ -7856,7 +7753,7 @@ dependencies = [ "proc-macro2", "quote", "rust-embed-utils", - "syn 2.0.82", + "syn 2.0.95", "walkdir", ] @@ -7899,12 +7796,6 @@ version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "08d43f7aa6b08d49f382cde6a7982047c3426db949b1424bc4b7ec9ae12c6ce2" -[[package]] -name = "rustc-hash" -version = "2.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "583034fd73374156e66797ed8e5b0d5690409c9226b22d87cb7f19821c05d152" - [[package]] name = "rustc-hex" version = "2.1.0" @@ -7922,24 +7813,24 @@ dependencies = [ [[package]] name = "rustc_version" -version = "0.4.1" +version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cfcb3a22ef46e85b45de6ee7e79d063319ebb6594faafcf1c225ea92ab6e9b92" +checksum = "bfa0f585226d2e68097d4f95d113b15b83a82e819ab25717ec0590d9584ef366" dependencies = [ "semver 1.0.23", ] [[package]] name = "rustix" -version = "0.38.37" +version = "0.38.43" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8acb788b847c24f28525660c4d7758620a7210875711f79e7f663cc152726811" +checksum = "a78891ee6bf2340288408954ac787aa063d8e8817e9f53abb37c695c6d834ef6" dependencies = [ "bitflags 2.6.0", "errno", "libc", "linux-raw-sys", - "windows-sys 0.52.0", + "windows-sys 0.59.0", ] [[package]] @@ -7956,14 +7847,14 @@ dependencies = [ [[package]] name = "rustls" -version = "0.23.15" +version = "0.23.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5fbb44d7acc4e873d613422379f69f237a1b141928c02f6bc6ccfddddc2d7993" +checksum = "4828ea528154ae444e5a642dbb7d5623354030dc9822b83fd9bb79683c7399d0" dependencies = [ "once_cell", "ring 0.17.8", "rustls-pki-types", - "rustls-webpki 0.102.8", + "rustls-webpki 0.102.6", "subtle", "zeroize", ] @@ -7979,18 +7870,19 @@ dependencies = [ [[package]] name = "rustls-pemfile" -version = "2.2.0" +version = "2.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dce314e5fee3f39953d46bb63bb8a46d40c2f8fb7cc5a3b6cab2bde9721d6e50" +checksum = "29993a25686778eb88d4189742cd713c9bce943bc54251a33509dc63cbacf73d" dependencies = [ + "base64 0.22.1", "rustls-pki-types", ] [[package]] name = "rustls-pki-types" -version = "1.10.0" +version = "1.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "16f1201b3c9a7ee8039bcadc17b7e605e2945b27eee7631788c1bd2b0643674b" +checksum = "976295e77ce332211c0d24d92c0e83e50f5c5f046d11082cea19f3df13a3562d" [[package]] name = "rustls-webpki" @@ -8004,9 +7896,9 @@ dependencies = [ [[package]] name = "rustls-webpki" -version = "0.102.8" +version = "0.102.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "64ca1bc8749bd4cf37b5ce386cc146580777b4e8572c7b97baf22c83f444bee9" +checksum = "8e6b52d4fda176fd835fdc55a835d4a89b8499cad995885a21149d5ad62f852e" dependencies = [ "ring 0.17.8", "rustls-pki-types", @@ -8015,9 +7907,9 @@ dependencies = [ [[package]] name = "rustversion" -version = "1.0.18" +version = "1.0.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0e819f2bc632f285be6d7cd36e25940d45b2391dd6d9b939e79de557f7014248" +checksum = "955d28af4278de8121b7ebeb796b6a45735dc01436d898801014aced2773a3d6" [[package]] name = "rusty-fork" @@ -8038,7 +7930,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5174a470eeb535a721ae9fdd6e291c2411a906b96592182d05217591d5c5cf7b" dependencies = [ "byteorder", - "derive_more 0.99.18", + "derive_more", "twox-hash", ] @@ -8068,23 +7960,23 @@ dependencies = [ [[package]] name = "scale-info" -version = "2.11.4" +version = "2.11.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "22760a375f81a31817aeaf6f5081e9ccb7ffd7f2da1809a6e3fc82b6656f10d5" +checksum = "eca070c12893629e2cc820a9761bedf6ce1dcddc9852984d1dc734b8bd9bd024" dependencies = [ "cfg-if", - "derive_more 1.0.0", + "derive_more", "parity-scale-codec", "scale-info-derive", ] [[package]] name = "scale-info-derive" -version = "2.11.4" +version = "2.11.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "abc61ebe25a5c410c0e245028fc9934bf8fa4817199ef5a24a68092edfd34614" +checksum = "2d35494501194174bda522a32605929eefc9ecf7e0a326c26db1fdd85881eb62" dependencies = [ - "proc-macro-crate 3.2.0", + "proc-macro-crate 3.1.0", "proc-macro2", "quote", "syn 1.0.109", @@ -8092,20 +7984,20 @@ dependencies = [ [[package]] name = "scc" -version = "2.2.2" +version = "2.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f2c1f7fc6deb21665a9060dfc7d271be784669295a31babdcd4dd2c79ae8cbfb" +checksum = "a4465c22496331e20eb047ff46e7366455bc01c0c02015c4a376de0b2cd3a1af" dependencies = [ "sdd", ] [[package]] name = "schannel" -version = "0.1.26" +version = "0.1.23" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "01227be5826fa0690321a2ba6c5cd57a19cf3f6a09e76973b58e61de6ab9d1c1" +checksum = "fbc91545643bcf3a0bbb6569265615222618bdf33ce4ffbbd13c4bbd4c093534" dependencies = [ - "windows-sys 0.59.0", + "windows-sys 0.52.0", ] [[package]] @@ -8149,9 +8041,9 @@ dependencies = [ [[package]] name = "sdd" -version = "3.0.4" +version = "1.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "49c1eeaf4b6a87c7479688c6d52b9f1153cedd3c489300564f932b065c6eab95" +checksum = "85f05a494052771fc5bd0619742363b5e24e5ad72ab3111ec2e27925b8edc5f3" [[package]] name = "sec1" @@ -8200,23 +8092,14 @@ dependencies = [ [[package]] name = "security-framework-sys" -version = "2.12.0" +version = "2.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ea4a292869320c0272d7bc55a5a6aafaff59b4f63404a003887b679a2e05b4b6" +checksum = "75da29fe9b9b08fe9d6b22b5b4bcbc75d8db3aa31e639aa56bb62e9d46bfceaf" dependencies = [ "core-foundation-sys", "libc", ] -[[package]] -name = "seedable_hash" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ed064ed6aaf88eb6a28ae191f5871a7fcdd2858e1cd6e1ffcc746baef8cd3cfd" -dependencies = [ - "wyhash", -] - [[package]] name = "semver" version = "0.11.0" @@ -8258,9 +8141,9 @@ checksum = "cd0b0ec5f1c1ca621c432a25813d8d60c88abe6d3e08a3eb9cf37d97a0fe3d73" [[package]] name = "serde" -version = "1.0.213" +version = "1.0.217" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3ea7893ff5e2466df8d720bb615088341b295f849602c6956047f8f80f0e9bc1" +checksum = "02fc4265df13d6fa1d00ecff087228cc0a2b5f3c0e87e258d8b94a156e984c70" dependencies = [ "serde_derive", ] @@ -8276,22 +8159,22 @@ dependencies = [ [[package]] name = "serde_derive" -version = "1.0.213" +version = "1.0.217" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7e85ad2009c50b58e87caa8cd6dac16bdf511bbfb7af6c33df902396aa480fa5" +checksum = "5a9bf7cf98d04a2b28aead066b7496853d4779c9cc183c440dbac457641e19a0" dependencies = [ "proc-macro2", "quote", - "syn 2.0.82", + "syn 2.0.95", ] [[package]] name = "serde_json" -version = "1.0.132" +version = "1.0.135" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d726bfaff4b320266d395898905d0eba0345aae23b54aee3a737e260fd46db03" +checksum = "2b0d7ba2887406110130a978386c4e1befb98c674b4fba677954e4db976630d9" dependencies = [ - "indexmap 2.6.0", + "indexmap 2.7.0", "itoa", "memchr", "ryu", @@ -8310,9 +8193,9 @@ dependencies = [ [[package]] name = "serde_spanned" -version = "0.6.8" +version = "0.6.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "87607cb1398ed59d48732e575a4c28a7a8ebf2454b964fe3f224f2afc07909e1" +checksum = "79e674e01f999af37c49f70a6ede167a8a60b2503e56c5599532a65baa5969a0" dependencies = [ "serde", ] @@ -8347,19 +8230,19 @@ dependencies = [ [[package]] name = "serde_with" -version = "3.11.0" +version = "3.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8e28bdad6db2b8340e449f7108f020b3b092e8583a9e3fb82713e1d4e71fe817" +checksum = "69cecfa94848272156ea67b2b1a53f20fc7bc638c4a46d2f8abde08f05f4b857" dependencies = [ "base64 0.22.1", "chrono", "hex", "indexmap 1.9.3", - "indexmap 2.6.0", + "indexmap 2.7.0", "serde", "serde_derive", "serde_json", - "serde_with_macros 3.11.0", + "serde_with_macros 3.9.0", "time", ] @@ -8372,19 +8255,19 @@ dependencies = [ "darling", "proc-macro2", "quote", - "syn 2.0.82", + "syn 2.0.95", ] [[package]] name = "serde_with_macros" -version = "3.11.0" +version = "3.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9d846214a9854ef724f3da161b426242d8de7c1fc7de2f89bb1efcb154dca79d" +checksum = "a8fee4991ef4f274617a51ad4af30519438dacb2f56ac773b08a1922ff743350" dependencies = [ "darling", "proc-macro2", "quote", - "syn 2.0.82", + "syn 2.0.95", ] [[package]] @@ -8409,7 +8292,7 @@ checksum = "82fe9db325bcef1fbcde82e078a5cc4efdf787e96b3b9cf45b50b529f2083d67" dependencies = [ "proc-macro2", "quote", - "syn 2.0.82", + "syn 2.0.95", ] [[package]] @@ -8420,7 +8303,7 @@ dependencies = [ "base64 0.22.1", "base64-serde", "bincode", - "clap 4.5.20", + "clap 4.5.9", "dirs", "hex", "raiko-lib", @@ -8453,7 +8336,7 @@ dependencies = [ "raiko-lib", "serde", "serde_json", - "serde_with 3.11.0", + "serde_with 3.9.0", "tokio", "url", ] @@ -8498,9 +8381,9 @@ dependencies = [ [[package]] name = "sha3-asm" -version = "0.1.4" +version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c28efc5e327c837aa837c59eae585fc250715ef939ac32881bcc11677cd02d46" +checksum = "a9b57fd861253bff08bb1919e995f90ba8f4889de2726091c8876f3a4e823b40" dependencies = [ "cc", "cfg-if", @@ -8626,14 +8509,14 @@ dependencies = [ [[package]] name = "sp1-build" -version = "3.3.0" +version = "3.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e64438370a9c565926f6234d3a36ae32a23d01ac815c5512cdc4f8cb160974a3" +checksum = "e58e5f49cf1481363abb74b55104e215f3b6e58dc2adb748bde7a6e4ea61b51d" dependencies = [ "anyhow", "cargo_metadata 0.18.1", "chrono", - "clap 4.5.20", + "clap 4.5.9", "dirs", ] @@ -8646,9 +8529,9 @@ dependencies = [ [[package]] name = "sp1-core-executor" -version = "3.3.0" +version = "3.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "afae417b311ba7923b32711a7b7a12ae9d59923e121ace68f9f547a31baad77c" +checksum = "8324d09601526d2ddfb796efb24996d3cc33ea8802bbd085bdefe93a4989b4dd" dependencies = [ "bincode", "bytemuck", @@ -8680,9 +8563,9 @@ dependencies = [ [[package]] name = "sp1-core-machine" -version = "3.3.0" +version = "3.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6c8de226e4abccdef87a1e975ba90417012ceb5198aaa2c9baee1e9b5946f803" +checksum = "357af5138c7a591d1a612d105d75c1c01cad0ed6cc383d1ae38b7254e85ea227" dependencies = [ "bincode", "cfg-if", @@ -8728,12 +8611,11 @@ dependencies = [ [[package]] name = "sp1-curves" -version = "3.3.0" +version = "3.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e4a68cf91e565d8d13a876775ec9a55b9e84078c99cf281fbd5ec2afafd72a93" +checksum = "f8dd206bc1fc44b7a215be0ae17c9b79e25ecfc2774dcd4e3753c0a03dee784e" dependencies = [ "cfg-if", - "curve25519-dalek", "dashu", "elliptic-curve", "generic-array 1.1.0", @@ -8750,9 +8632,9 @@ dependencies = [ [[package]] name = "sp1-derive" -version = "3.3.0" +version = "3.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9bdcf03d7e67fb93eb46d019e130be264258bef1412471b6e0950a5cd1ff5ac2" +checksum = "cf59bbd55ee20f0decb602809aadc73f09defb6f6d27067acf16029e84191b4a" dependencies = [ "quote", "syn 1.0.109", @@ -8764,7 +8646,7 @@ version = "0.1.0" dependencies = [ "alloy-contract", "alloy-eips", - "alloy-primitives 0.7.7", + "alloy-primitives", "alloy-provider", "alloy-sol-types", "anyhow", @@ -8780,7 +8662,7 @@ dependencies = [ "reth-primitives", "serde", "serde_json", - "serde_with 3.11.0", + "serde_with 3.9.0", "sha3", "sp1-helper", "sp1-sdk", @@ -8799,9 +8681,9 @@ dependencies = [ [[package]] name = "sp1-primitives" -version = "3.3.0" +version = "3.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3442b59d2606ed4517c09b5daaa39e0e0d0ef75fb8e75b6f50334fd87a966b42" +checksum = "9d10c2078a5dfc5c3a632da1bc59b57a19dadc9c03968047d8ffb06c0f83b476" dependencies = [ "bincode", "hex", @@ -8817,13 +8699,13 @@ dependencies = [ [[package]] name = "sp1-prover" -version = "3.3.0" +version = "3.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6131dea3589aa9206adfde6e10b6a6fb35cd3a3e1bb9ba53bc45f31bb65d353a" +checksum = "bc363eda811717369513ca72abafbb5cdec0ed16cda12458ca5321e4167e97ff" dependencies = [ "anyhow", "bincode", - "clap 4.5.20", + "clap 4.5.9", "dirs", "eyre", "itertools 0.13.0", @@ -8859,9 +8741,9 @@ dependencies = [ [[package]] name = "sp1-recursion-circuit" -version = "3.3.0" +version = "3.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "80e30f8b451d9bf98af24b287d388f4f894f9212c344d0cfb6b1691b2c383bb4" +checksum = "108607ce729ab2fedb25f039284baaad022c5df242e0530c5b453e89cc8306a3" dependencies = [ "hashbrown 0.14.5", "itertools 0.13.0", @@ -8893,9 +8775,9 @@ dependencies = [ [[package]] name = "sp1-recursion-compiler" -version = "3.3.0" +version = "3.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "292c2f36280ca179fb4693c27605bed6a7f40edbc74d4eba092c176302c479f1" +checksum = "673d2c66a48e6d17e1165b5ea38b59de5e80bf64fd45f17ebc9d75e67c4ff414" dependencies = [ "backtrace", "itertools 0.13.0", @@ -8915,9 +8797,9 @@ dependencies = [ [[package]] name = "sp1-recursion-core" -version = "3.3.0" +version = "3.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "26fc9ed0bc176ae7be49f7469f5a47bd13637077628485c1f610610cb37cb160" +checksum = "f2fb84b20d8ffb922d4c05843406c458a6abef296bc31e68cf5eb64fa739c921" dependencies = [ "backtrace", "ff 0.13.0", @@ -8951,9 +8833,9 @@ dependencies = [ [[package]] name = "sp1-recursion-derive" -version = "3.3.0" +version = "3.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3eb4316348ed134afc392a9a1f376bd99793362080ace5bfe12a9b16b5ec3ea5" +checksum = "3125726165ff77fb2650ae031075ba747099a6e218e5c10f84ac2715545a2332" dependencies = [ "quote", "syn 1.0.109", @@ -8961,9 +8843,9 @@ dependencies = [ [[package]] name = "sp1-recursion-gnark-ffi" -version = "3.3.0" +version = "3.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ccbcf2a4a62a9a4e882cbe6af6f88602cdee65c6322b82e1b903ff943ec60e6d" +checksum = "a049cdff6b64bc1cd2bebdf494fd314bc4b45eff9058ea69dace55a0fa77e483" dependencies = [ "anyhow", "bincode", @@ -9008,7 +8890,7 @@ dependencies = [ "p3-field", "p3-fri", "prost", - "reqwest 0.12.8", + "reqwest 0.12.5", "reqwest-middleware", "serde", "sp1-core-executor", @@ -9028,9 +8910,9 @@ dependencies = [ [[package]] name = "sp1-stark" -version = "3.3.0" +version = "3.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8fe6fec8caf6beffb063ce9aeda889dda156183d40c0b6da69ee521ee8b21e25" +checksum = "a597ed68cd03f80d9cdb9f4b50924e3c890c35c39956f7e87dd2262b72b2d12b" dependencies = [ "arrayref", "getrandom 0.2.15", @@ -9086,9 +8968,9 @@ dependencies = [ [[package]] name = "sppark" -version = "0.1.8" +version = "0.1.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c55f3833d30846a26110dccb1d5366314c2c52516a9173b74238c16b24b1a9f9" +checksum = "16bf457036c0a778140ce4c3bcf9ff30c5c70a9d9c0bb04fe513af025b647b2c" dependencies = [ "cc", "which 4.4.2", @@ -9101,7 +8983,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d904e7009df136af5297832a3ace3370cd14ff1546a232f4f185036c2736fcac" dependencies = [ "quote", - "syn 2.0.82", + "syn 2.0.95", ] [[package]] @@ -9180,7 +9062,7 @@ dependencies = [ "proc-macro2", "quote", "rustversion", - "syn 2.0.82", + "syn 2.0.95", ] [[package]] @@ -9193,7 +9075,7 @@ dependencies = [ "proc-macro2", "quote", "rustversion", - "syn 2.0.82", + "syn 2.0.95", ] [[package]] @@ -9247,9 +9129,9 @@ dependencies = [ [[package]] name = "syn" -version = "2.0.82" +version = "2.0.95" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "83540f837a8afc019423a8edb95b52a8effe46957ee402287f4292fae35be021" +checksum = "46f71c0377baf4ef1cc3e3402ded576dccc315800fbc62dfc7fe04b009773b4a" dependencies = [ "proc-macro2", "quote", @@ -9265,19 +9147,7 @@ dependencies = [ "paste", "proc-macro2", "quote", - "syn 2.0.82", -] - -[[package]] -name = "syn_derive" -version = "0.1.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1329189c02ff984e9736652b1631330da25eaa6bc639089ed4915d25446cbe7b" -dependencies = [ - "proc-macro-error", - "proc-macro2", - "quote", - "syn 2.0.82", + "syn 2.0.95", ] [[package]] @@ -9291,9 +9161,6 @@ name = "sync_wrapper" version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a7065abeca94b6a8a577f9bd45aa0867a2238b74e8eb67cf10d492bc39351394" -dependencies = [ - "futures-core", -] [[package]] name = "sysinfo" @@ -9318,18 +9185,7 @@ checksum = "ba3a3adc5c275d719af8cb4272ea1c4a6d668a777f37e115f6d11ddbc1c8e0e7" dependencies = [ "bitflags 1.3.2", "core-foundation", - "system-configuration-sys 0.5.0", -] - -[[package]] -name = "system-configuration" -version = "0.6.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3c879d448e9d986b661742763247d3693ed13609438cf3d006f51f5368a5ba6b" -dependencies = [ - "bitflags 2.6.0", - "core-foundation", - "system-configuration-sys 0.6.0", + "system-configuration-sys", ] [[package]] @@ -9342,16 +9198,6 @@ dependencies = [ "libc", ] -[[package]] -name = "system-configuration-sys" -version = "0.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8e1d1b10ced5ca923a1fcb8d03e96b8d3268065d724548c0211415ff6ac6bac4" -dependencies = [ - "core-foundation-sys", - "libc", -] - [[package]] name = "tap" version = "1.0.1" @@ -9360,12 +9206,13 @@ checksum = "55937e1799185b12863d447f42597ed69d9928686b8d88a1df17376a097d8369" [[package]] name = "tempfile" -version = "3.13.0" +version = "3.15.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f0f2c9fc62d0beef6951ccffd757e241266a2c833136efbe35af6cd2567dca5b" +checksum = "9a8a559c81686f576e8cd0290cd2a24a2a9ad80c98b3478856500fcbd7acd704" dependencies = [ "cfg-if", "fastrand", + "getrandom 0.2.15", "once_cell", "rustix", "windows-sys 0.59.0", @@ -9388,22 +9235,22 @@ dependencies = [ [[package]] name = "thiserror" -version = "1.0.65" +version = "1.0.69" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5d11abd9594d9b38965ef50805c5e469ca9cc6f197f883f717e0269a3057b3d5" +checksum = "b6aaf5339b578ea85b50e080feb250a3e8ae8cfcdff9a461c9ec2904bc923f52" dependencies = [ "thiserror-impl", ] [[package]] name = "thiserror-impl" -version = "1.0.65" +version = "1.0.69" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ae71770322cbd277e69d762a16c444af02aa0575ac0d174f0b9562d3b37f8602" +checksum = "4fee6c4efc90059e10f81e6d42c60a18f76588c3d74cb83a0b242a2b6c7504c1" dependencies = [ "proc-macro2", "quote", - "syn 2.0.82", + "syn 2.0.95", ] [[package]] @@ -9504,9 +9351,9 @@ checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" [[package]] name = "tokio" -version = "1.41.0" +version = "1.43.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "145f3413504347a2be84393cc8a7d2fb4d863b375909ea59f2158261aa258bbb" +checksum = "3d61fa4ffa3de412bfea335c6ecff681de2b609ba3c77ef3e00e521813a9ed9e" dependencies = [ "backtrace", "bytes", @@ -9522,13 +9369,13 @@ dependencies = [ [[package]] name = "tokio-macros" -version = "2.4.0" +version = "2.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "693d596312e88961bc67d7f1f97af8a70227d9f90c31bba5806eec004978d752" +checksum = "6e06d43f1345a3bcd39f6a56dbb7dcab2ba47e68e8ac134855e7e2bdbaf8cab8" dependencies = [ "proc-macro2", "quote", - "syn 2.0.82", + "syn 2.0.95", ] [[package]] @@ -9557,16 +9404,16 @@ version = "0.26.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0c7bc40d0e5a97695bb96e27995cd3a08538541b0a846f65bba7a359f36700d4" dependencies = [ - "rustls 0.23.15", + "rustls 0.23.11", "rustls-pki-types", "tokio", ] [[package]] name = "tokio-stream" -version = "0.1.16" +version = "0.1.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4f4e6ce100d0eb49a2734f8c0812bcd324cf357d21810932c5df6b96ef2b86f1" +checksum = "eca58d7bba4a75707817a2c44174253f9236b2d5fbd055602e9d5c07c139a047" dependencies = [ "futures-core", "pin-project-lite", @@ -9591,9 +9438,9 @@ dependencies = [ [[package]] name = "tokio-util" -version = "0.7.12" +version = "0.7.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "61e7c3654c13bcd040d4a03abee2c75b1d14a37b423cf5a813ceae1cc903ec6a" +checksum = "9cf6b47b3771c49ac75ad09a6162f53ad4b8088b76ac60e8ec1455b31a189fe1" dependencies = [ "bytes", "futures-core", @@ -9617,21 +9464,21 @@ dependencies = [ [[package]] name = "toml" -version = "0.8.19" +version = "0.8.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a1ed1f98e3fdc28d6d910e6737ae6ab1a93bf1985935a1193e68f93eeb68d24e" +checksum = "ac2caab0bf757388c6c0ae23b3293fdb463fee59434529014f85e3263b995c28" dependencies = [ "serde", "serde_spanned", "toml_datetime", - "toml_edit 0.22.22", + "toml_edit 0.22.16", ] [[package]] name = "toml_datetime" -version = "0.6.8" +version = "0.6.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0dd7358ecb8fc2f8d014bf86f6f638ce72ba252a2c3a2572f2a795f1d23efb41" +checksum = "4badfd56924ae69bcc9039335b2e017639ce3f9b001c393c1b2d1ef846ce2cbf" dependencies = [ "serde", ] @@ -9642,7 +9489,7 @@ version = "0.19.15" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1b5bb770da30e5cbfde35a2d7b9b8a2c4b8ef89548a7a6aeab5c9a576e3e7421" dependencies = [ - "indexmap 2.6.0", + "indexmap 2.7.0", "serde", "serde_spanned", "toml_datetime", @@ -9651,15 +9498,26 @@ dependencies = [ [[package]] name = "toml_edit" -version = "0.22.22" +version = "0.21.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4ae48d6208a266e853d946088ed816055e556cc6028c5e8e2b84d9fa5dd7c7f5" +checksum = "6a8534fd7f78b5405e860340ad6575217ce99f38d4d5c8f2442cb5ecb50090e1" dependencies = [ - "indexmap 2.6.0", + "indexmap 2.7.0", + "toml_datetime", + "winnow 0.5.40", +] + +[[package]] +name = "toml_edit" +version = "0.22.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "278f3d518e152219c994ce877758516bca5e118eaed6996192a774fb9fbf0788" +dependencies = [ + "indexmap 2.7.0", "serde", "serde_spanned", "toml_datetime", - "winnow 0.6.20", + "winnow 0.6.15", ] [[package]] @@ -9685,18 +9543,12 @@ dependencies = [ [[package]] name = "tower" -version = "0.5.1" +version = "0.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2873938d487c3cfb9aed7546dc9f2711d867c9f90c46b889989a2cb84eba6b4f" +checksum = "d039ad9159c98b70ecfd540b2573b97f7f52c3e8d9f8ad57a24b916a536975f9" dependencies = [ - "futures-core", - "futures-util", - "pin-project-lite", - "sync_wrapper 0.1.2", - "tokio", "tower-layer", "tower-service", - "tracing", ] [[package]] @@ -9727,7 +9579,7 @@ dependencies = [ "tower-layer", "tower-service", "tracing", - "uuid 1.11.0", + "uuid 1.10.0", ] [[package]] @@ -9774,7 +9626,7 @@ checksum = "34704c8d6ebcbc939824180af020566b01a7c01f80641264eba0999f6c2b6be7" dependencies = [ "proc-macro2", "quote", - "syn 2.0.82", + "syn 2.0.95", ] [[package]] @@ -9834,9 +9686,9 @@ dependencies = [ [[package]] name = "tracing-logfmt" -version = "0.3.5" +version = "0.3.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6b1f47d22deb79c3f59fcf2a1f00f60cbdc05462bf17d1cd356c1fefa3f444bd" +checksum = "22b8e455f6caa5212a102ec530bf86b8dc5a4c536299bffd84b238fed9119be7" dependencies = [ "time", "tracing", @@ -9921,14 +9773,14 @@ dependencies = [ "futures", "http 1.1.0", "http-body-util", - "hyper 1.5.0", + "hyper 1.4.1", "prost", - "reqwest 0.12.8", + "reqwest 0.12.5", "serde", "serde_json", "thiserror", "tokio", - "tower 0.5.1", + "tower 0.5.2", "url", ] @@ -9944,9 +9796,9 @@ dependencies = [ [[package]] name = "typeid" -version = "1.0.2" +version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0e13db2e0ccd5e14a544e8a246ba2312cd25223f616442d7f2cb0e3db614236e" +checksum = "059d83cc991e7a42fc37bd50941885db0888e34209f8cfd9aab07ddec03bc9cf" [[package]] name = "typenum" @@ -9956,9 +9808,9 @@ checksum = "42ff0bf0c66b8238c6f3b578df37d0b7848e55df8577b3f74f92a69acceeb825" [[package]] name = "typetag" -version = "0.2.18" +version = "0.2.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "52ba3b6e86ffe0054b2c44f2d86407388b933b16cb0a70eea3929420db1d9bbe" +checksum = "661d18414ec032a49ece2d56eee03636e43c4e8d577047ab334c0ba892e29aaf" dependencies = [ "erased-serde", "inventory", @@ -9969,20 +9821,20 @@ dependencies = [ [[package]] name = "typetag-impl" -version = "0.2.18" +version = "0.2.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "70b20a22c42c8f1cd23ce5e34f165d4d37038f5b663ad20fb6adbdf029172483" +checksum = "ac73887f47b9312552aa90ef477927ff014d63d1920ca8037c6c1951eab64bb1" dependencies = [ "proc-macro2", "quote", - "syn 2.0.82", + "syn 2.0.95", ] [[package]] name = "ucd-trie" -version = "0.1.7" +version = "0.1.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2896d95c02a80c6d6a5d6e953d479f5ddf2dfdb6a244441010e373ac0fb88971" +checksum = "ed646292ffc8188ef8ea4d1e0e0150fb15a5c2e12ad9b8fc191ae7a8a7f3c4b9" [[package]] name = "uint" @@ -10004,48 +9856,51 @@ checksum = "eaea85b334db583fe3274d12b4cd1880032beab409c0d774be044d4480ab9a94" [[package]] name = "unicase" -version = "2.8.0" +version = "2.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7e51b68083f157f853b6379db119d1c1be0e6e4dec98101079dec41f6f5cf6df" +checksum = "f7d2d4dafb69621809a81864c9c1b864479e1235c0dd4e199924b9742439ed89" +dependencies = [ + "version_check", +] [[package]] name = "unicode-bidi" -version = "0.3.17" +version = "0.3.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5ab17db44d7388991a428b2ee655ce0c212e862eff1768a455c58f9aad6e7893" +checksum = "08f95100a766bf4f8f28f90d77e0a5461bbdb219042e7679bebe79004fed8d75" [[package]] name = "unicode-ident" -version = "1.0.13" +version = "1.0.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e91b56cd4cadaeb79bbf1a5645f6b4f8dc5bde8834ad5894a8db35fda9efa1fe" +checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b" [[package]] name = "unicode-normalization" -version = "0.1.24" +version = "0.1.23" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5033c97c4262335cded6d6fc3e5c18ab755e1a3dc96376350f3d8e9f009ad956" +checksum = "a56d1686db2308d901306f92a263857ef59ea39678a5458e7cb17f01415101f5" dependencies = [ "tinyvec", ] [[package]] name = "unicode-segmentation" -version = "1.12.0" +version = "1.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f6ccf251212114b54433ec949fd6a7841275f9ada20dddd2f29e9ceea4501493" +checksum = "d4c87d22b6e3f4a18d4d40ef354e97c90fcb14dd91d7dc0aa9d8a1172ebf7202" [[package]] name = "unicode-width" -version = "0.1.14" +version = "0.1.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7dd6e30e90baa6f72411720665d41d89b9a3d039dc45b8faea1ddd07f617f6af" +checksum = "0336d538f7abc86d282a4189614dfaa90810dfc2c6f6427eaf88e16311dd225d" [[package]] name = "unicode-xid" -version = "0.2.6" +version = "0.2.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ebc1c04c71510c7f702b52b7c350734c9ff1295c464a03335b00bb84fc54f853" +checksum = "f962df74c8c05a667b5ee8bcf162993134c104e96440b663c8daa176dc772d8c" [[package]] name = "universal-hash" @@ -10098,7 +9953,7 @@ version = "4.2.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c5afb1a60e207dca502682537fefcfd9921e71d0b83e9576060f09abc6efab23" dependencies = [ - "indexmap 2.6.0", + "indexmap 2.7.0", "serde", "serde_json", "utoipa-gen", @@ -10106,15 +9961,15 @@ dependencies = [ [[package]] name = "utoipa-gen" -version = "4.3.1" +version = "4.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "20c24e8ab68ff9ee746aad22d39b5535601e6416d1b0feeabf78be986a5c4392" +checksum = "7bf0e16c02bc4bf5322ab65f10ab1149bdbcaa782cba66dc7057370a3f8190be" dependencies = [ "proc-macro-error", "proc-macro2", "quote", "regex", - "syn 2.0.82", + "syn 2.0.95", ] [[package]] @@ -10138,7 +9993,7 @@ dependencies = [ "axum", "mime_guess", "regex", - "reqwest 0.12.8", + "reqwest 0.12.5", "rust-embed", "serde", "serde_json", @@ -10159,9 +10014,9 @@ dependencies = [ [[package]] name = "uuid" -version = "1.11.0" +version = "1.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f8c5f0a0af699448548ad1a2fbf920fb4bee257eae39953ba95cb84891a0446a" +checksum = "81dfa00651efa65069b0b6b651f4aaa31ba9e3c3ce0137aaad053604ee7e0314" dependencies = [ "getrandom 0.2.15", ] @@ -10196,7 +10051,7 @@ dependencies = [ "approx", "num-integer", "num-traits", - "rustc_version 0.4.1", + "rustc_version 0.4.0", ] [[package]] @@ -10214,9 +10069,9 @@ dependencies = [ [[package]] name = "version_check" -version = "0.9.5" +version = "0.9.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0b928f33d975fc6ad9f86c8f283853ad26bdd5b10b7f1542aa2fa15e2289105a" +checksum = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f" [[package]] name = "wait-timeout" @@ -10260,35 +10115,34 @@ checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" [[package]] name = "wasm-bindgen" -version = "0.2.95" +version = "0.2.92" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "128d1e363af62632b8eb57219c8fd7877144af57558fb2ef0368d0087bddeb2e" +checksum = "4be2531df63900aeb2bca0daaaddec08491ee64ceecbee5076636a3b026795a8" dependencies = [ "cfg-if", - "once_cell", "wasm-bindgen-macro", ] [[package]] name = "wasm-bindgen-backend" -version = "0.2.95" +version = "0.2.92" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cb6dd4d3ca0ddffd1dd1c9c04f94b868c37ff5fac97c30b97cff2d74fce3a358" +checksum = "614d787b966d3989fa7bb98a654e369c762374fd3213d212cfc0251257e747da" dependencies = [ "bumpalo", "log", "once_cell", "proc-macro2", "quote", - "syn 2.0.82", + "syn 2.0.95", "wasm-bindgen-shared", ] [[package]] name = "wasm-bindgen-futures" -version = "0.4.45" +version = "0.4.42" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cc7ec4f8827a71586374db3e87abdb5a2bb3a15afed140221307c3ec06b1f63b" +checksum = "76bc14366121efc8dbb487ab05bcc9d346b3b5ec0eaa76e46594cabbe51762c0" dependencies = [ "cfg-if", "js-sys", @@ -10298,9 +10152,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro" -version = "0.2.95" +version = "0.2.92" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e79384be7f8f5a9dd5d7167216f022090cf1f9ec128e6e6a482a2cb5c5422c56" +checksum = "a1f8823de937b71b9460c0c34e25f3da88250760bec0ebac694b49997550d726" dependencies = [ "quote", "wasm-bindgen-macro-support", @@ -10308,28 +10162,28 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro-support" -version = "0.2.95" +version = "0.2.92" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "26c6ab57572f7a24a4985830b120de1594465e5d500f24afe89e16b4e833ef68" +checksum = "e94f17b526d0a461a191c78ea52bbce64071ed5c04c9ffe424dcb38f74171bb7" dependencies = [ "proc-macro2", "quote", - "syn 2.0.82", + "syn 2.0.95", "wasm-bindgen-backend", "wasm-bindgen-shared", ] [[package]] name = "wasm-bindgen-shared" -version = "0.2.95" +version = "0.2.92" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "65fc09f10666a9f147042251e0dda9c18f166ff7de300607007e96bdebc1068d" +checksum = "af190c94f2773fdb3729c55b007a722abb5384da03bc0986df4c289bf5567e96" [[package]] name = "wasm-streams" -version = "0.4.1" +version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4e072d4e72f700fb3443d8fe94a39315df013eef1104903cdb0a2abd322bbecd" +checksum = "b65dc4c90b63b118468cf747d8bf3566c1913ef60be765b5730ead9e0a3ba129" dependencies = [ "futures-util", "js-sys", @@ -10340,9 +10194,9 @@ dependencies = [ [[package]] name = "web-sys" -version = "0.3.72" +version = "0.3.69" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f6488b90108c040df0fe62fa815cbdee25124641df01814dd7282749234c6112" +checksum = "77afa9a11836342370f4817622a2f0f418b134426d91a82dfb48f532d2ec13ef" dependencies = [ "js-sys", "wasm-bindgen", @@ -10366,9 +10220,9 @@ checksum = "5f20c57d8d7db6d3b86154206ae5d8fba62dd39573114de97c2cb0578251f8e1" [[package]] name = "webpki-roots" -version = "0.26.6" +version = "0.26.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "841c67bff177718f1d4dfefde8d8f0e78f9b6589319ba88312f567fc5841a958" +checksum = "bd7c23921eeb1713a4e851530e9b9756e4fb0e89978582942612524cf09f01cd" dependencies = [ "rustls-pki-types", ] @@ -10387,9 +10241,9 @@ dependencies = [ [[package]] name = "which" -version = "6.0.3" +version = "6.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b4ee928febd44d98f2f459a4a79bd4d928591333a494a10a868418ac1b39cf1f" +checksum = "8211e4f58a2b2805adfbefbc07bab82958fc91e3836339b1ab7ae32465dce0d7" dependencies = [ "either", "home", @@ -10415,11 +10269,11 @@ checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" [[package]] name = "winapi-util" -version = "0.1.9" +version = "0.1.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cf221c93e13a30d793f7645a0e7762c55d169dbb0a49671918a2319d289b10bb" +checksum = "4d4cc384e1e73b93bafa6fb4f1df8c41695c8a91cf9c4c64358067d15a7b6c6b" dependencies = [ - "windows-sys 0.59.0", + "windows-sys 0.52.0", ] [[package]] @@ -10447,36 +10301,6 @@ dependencies = [ "windows-targets 0.52.6", ] -[[package]] -name = "windows-registry" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e400001bb720a623c1c69032f8e3e4cf09984deec740f007dd2b03ec864804b0" -dependencies = [ - "windows-result", - "windows-strings", - "windows-targets 0.52.6", -] - -[[package]] -name = "windows-result" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1d1043d8214f791817bab27572aaa8af63732e11bf84aa21a45a78d6c317ae0e" -dependencies = [ - "windows-targets 0.52.6", -] - -[[package]] -name = "windows-strings" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4cd9b125c486025df0eabcb585e62173c6c9eddcec5d117d3b6e8c30e2ee4d10" -dependencies = [ - "windows-result", - "windows-targets 0.52.6", -] - [[package]] name = "windows-sys" version = "0.48.0" @@ -10636,9 +10460,9 @@ dependencies = [ [[package]] name = "winnow" -version = "0.6.20" +version = "0.6.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "36c1fec1a2bb5866f07c25f68c26e565c4c200aebb96d7e55710c19d3e8ac49b" +checksum = "557404e450152cd6795bb558bca69e43c585055f4606e3bcae5894fc6dac9ba0" dependencies = [ "memchr", ] @@ -10653,6 +10477,16 @@ dependencies = [ "windows-sys 0.48.0", ] +[[package]] +name = "winreg" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a277a57398d4bfa075df44f501a17cfdf8542d224f0d36095a2adc7aee4ef0a5" +dependencies = [ + "cfg-if", + "windows-sys 0.48.0", +] + [[package]] name = "winsafe" version = "0.0.19" @@ -10670,7 +10504,7 @@ dependencies = [ "js-sys", "log", "pharos", - "rustc_version 0.4.1", + "rustc_version 0.4.0", "send_wrapper 0.6.0", "thiserror", "wasm-bindgen", @@ -10702,8 +10536,16 @@ version = "0.7.35" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1b9b4fd18abc82b8136838da5d50bae7bdea537c574d8dc1a34ed098d6c166f0" dependencies = [ - "byteorder", - "zerocopy-derive", + "zerocopy-derive 0.7.35", +] + +[[package]] +name = "zerocopy" +version = "0.8.0-alpha.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "db678a6ee512bd06adf35c35be471cae2f9c82a5aed2b5d15e03628c98bddd57" +dependencies = [ + "zerocopy-derive 0.8.0-alpha.6", ] [[package]] @@ -10714,7 +10556,18 @@ checksum = "fa4f8080344d4671fb4e831a13ad1e68092748387dfc4f55e356242fae12ce3e" dependencies = [ "proc-macro2", "quote", - "syn 2.0.82", + "syn 2.0.95", +] + +[[package]] +name = "zerocopy-derive" +version = "0.8.0-alpha.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "201585ea96d37ee69f2ac769925ca57160cef31acb137c16f38b02b76f4c1e62" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.95", ] [[package]] @@ -10734,7 +10587,7 @@ checksum = "ce36e65b0d2999d2aafac989fb249189a141aee1f53c612c1f37d72631959f69" dependencies = [ "proc-macro2", "quote", - "syn 2.0.82", + "syn 2.0.95", ] [[package]] @@ -10748,23 +10601,23 @@ dependencies = [ "crossbeam-utils", "displaydoc", "flate2", - "indexmap 2.6.0", - "num_enum 0.7.3", + "indexmap 2.7.0", + "num_enum 0.7.2", "thiserror", ] [[package]] name = "zip" -version = "2.2.0" +version = "2.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dc5e4288ea4057ae23afc69a4472434a87a2495cafce6632fd1c4ec9f5cf3494" +checksum = "b895748a3ebcb69b9d38dcfdf21760859a4b0d0b0015277640c2ef4c69640e6f" dependencies = [ "arbitrary", "crc32fast", "crossbeam-utils", "displaydoc", "flate2", - "indexmap 2.6.0", + "indexmap 2.7.0", "memchr", "thiserror", "zopfli", @@ -10822,18 +10675,18 @@ dependencies = [ [[package]] name = "zstd-safe" -version = "7.2.1" +version = "7.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "54a3ab4db68cea366acc5c897c7b4d4d1b8994a9cd6e6f841f8964566a419059" +checksum = "fa556e971e7b568dc775c136fc9de8c779b1c2fc3a63defaafadffdbd3181afa" dependencies = [ "zstd-sys", ] [[package]] name = "zstd-sys" -version = "2.0.13+zstd.1.5.6" +version = "2.0.12+zstd.1.5.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "38ff0f21cfee8f97d94cef41359e0c89aa6113028ab0291aa8ca0038995a95aa" +checksum = "0a4e40c320c3cb459d9a9ff6de98cff88f4751ee9275d140e2be94a2b74e4c13" dependencies = [ "cc", "pkg-config", diff --git a/core/Cargo.toml b/core/Cargo.toml index 8509db15..c756236c 100644 --- a/core/Cargo.toml +++ b/core/Cargo.toml @@ -64,6 +64,7 @@ clap = { workspace = true } assert_cmd = { workspace = true } rstest = { workspace = true } ethers-core = { workspace = true } +env_logger = { workspace = true } [features] # powdr = ["dep:powdr"] diff --git a/core/src/lib.rs b/core/src/lib.rs index fa7adc02..cd135b60 100644 --- a/core/src/lib.rs +++ b/core/src/lib.rs @@ -16,7 +16,7 @@ use tracing::{debug, error, info, warn}; use crate::{ interfaces::{ProofRequest, RaikoError, RaikoResult}, - preflight::{preflight, PreflightData}, + preflight::{preflight, preflight_v2, PreflightData}, provider::BlockDataProvider, }; @@ -31,6 +31,7 @@ pub struct Raiko { l1_chain_spec: ChainSpec, taiko_chain_spec: ChainSpec, request: ProofRequest, + v2_preflight: bool, } impl Raiko { @@ -38,11 +39,13 @@ impl Raiko { l1_chain_spec: ChainSpec, taiko_chain_spec: ChainSpec, request: ProofRequest, + v2_preflight: bool, ) -> Self { Self { l1_chain_spec, taiko_chain_spec, request, + v2_preflight, } } @@ -63,15 +66,46 @@ impl Raiko { pub async fn generate_input( &self, provider: BDP, + ) -> RaikoResult { + if self.v2_preflight { + self.generate_input_v2(provider).await + } else { + self.generate_input_v1(provider).await + } + } + + // v1 uses the geth node & batched rpc calls + pub async fn generate_input_v1( + &self, + provider: BDP, ) -> RaikoResult { //TODO: read fork from config let preflight_data = self.get_preflight_data(); - info!("Generating input for block {}", self.request.block_number); + info!( + "Generating v1(common-batch) input for block {}", + self.request.block_number + ); preflight(provider, preflight_data) .await .map_err(Into::::into) } + // v2 uses the taiko node & single preflight rpc call together with the block rpc calls + pub async fn generate_input_v2( + &self, + provider: BDP, + ) -> RaikoResult { + //TODO: read fork from config + let preflight_data = self.get_preflight_data(); + info!( + "Generating v2(reth-preflight) input for block {}", + self.request.block_number + ); + preflight_v2(provider, preflight_data) + .await + .map_err(Into::::into) + } + pub fn get_output(&self, input: &GuestInput) -> RaikoResult { let db = create_mem_db(&mut input.clone()).unwrap(); let mut builder = RethBlockBuilder::new(input, db); @@ -215,9 +249,14 @@ pub fn merge(a: &mut Value, b: &Value) { #[cfg(test)] mod tests { use crate::interfaces::aggregate_proofs; - use crate::{interfaces::ProofRequest, provider::rpc::RpcBlockDataProvider, ChainSpec, Raiko}; + use crate::{ + interfaces::ProofRequest, + provider::{BlockDataProviderType, RethPreflightBlockDataProvider, RpcBlockDataProvider}, + ChainSpec, Raiko, + }; use alloy_primitives::Address; use alloy_provider::Provider; + use env_logger; use raiko_lib::{ consts::{Network, SupportedChainSpecs}, input::{AggregationGuestInput, AggregationGuestOutput, BlobProofType}, @@ -288,10 +327,36 @@ mod tests { taiko_chain_spec: ChainSpec, proof_request: ProofRequest, ) -> Proof { - let provider = - RpcBlockDataProvider::new(&taiko_chain_spec.rpc, proof_request.block_number - 1) - .expect("Could not create RpcBlockDataProvider"); - let raiko = Raiko::new(l1_chain_spec, taiko_chain_spec, proof_request.clone()); + let v2_preflight = std::env::var("V2_PREFLIGHT") + .unwrap_or("false".to_string()) + .parse() + .unwrap(); + let provider = if v2_preflight { + let mut provider: RethPreflightBlockDataProvider = RethPreflightBlockDataProvider::new( + &taiko_chain_spec.rpc.clone(), + proof_request.block_number - 1, + ) + .expect("new RethPreflightBlockDataProvider should be ok"); + provider.fetch_preflight_data().await.unwrap(); + BlockDataProviderType::PreflightRpc(provider) + } else { + let provider = RpcBlockDataProvider::new( + &taiko_chain_spec.rpc.clone(), + taiko_chain_spec.preflight_rpc.clone(), + proof_request.block_number - 1, + ) + .await + .expect("new RpcBlockDataProvider should be ok"); + BlockDataProviderType::CommonRpc(provider) + }; + + let raiko = Raiko::new( + l1_chain_spec, + taiko_chain_spec, + proof_request.clone(), + v2_preflight, + ); + let input = raiko .generate_input(provider) .await @@ -303,44 +368,16 @@ mod tests { .expect("proof generation failed") } - #[ignore] - #[tokio::test(flavor = "multi_thread")] - async fn test_prove_block_taiko_dev() { - let proof_type = get_proof_type_from_env(); - let l1_network = "taiko_dev_l1".to_owned(); - let network = "taiko_dev".to_owned(); - // Give the CI an simpler block to test because it doesn't have enough memory. - // Unfortunately that also means that kzg is not getting fully verified by CI. - let block_number = 20; - let chain_specs = SupportedChainSpecs::merge_from_file( - "../host/config/chain_spec_list_devnet.json".into(), - ) - .unwrap(); - let taiko_chain_spec = chain_specs.get_chain_spec(&network).unwrap(); - let l1_chain_spec = chain_specs.get_chain_spec(&l1_network).unwrap(); - - let proof_request = ProofRequest { - block_number, - l1_inclusion_block_number: 80, - network, - graffiti: B256::ZERO, - prover: Address::ZERO, - l1_network, - proof_type, - blob_proof_type: BlobProofType::ProofOfEquivalence, - prover_args: test_proof_params(false), - }; - prove_block(l1_chain_spec, taiko_chain_spec, proof_request).await; - } - #[tokio::test(flavor = "multi_thread")] async fn test_prove_block_taiko_a7() { + let _ = env_logger::builder().is_test(true).try_init(); + let proof_type = get_proof_type_from_env(); let l1_network = Network::Holesky.to_string(); let network = Network::TaikoA7.to_string(); // Give the CI an simpler block to test because it doesn't have enough memory. // Unfortunately that also means that kzg is not getting fully verified by CI. - let block_number = if is_ci() { 105987 } else { 101368 }; + let block_number = if is_ci() { 105987 } else { 0x111bf7 }; let taiko_chain_spec = SupportedChainSpecs::default() .get_chain_spec(&network) .unwrap(); @@ -363,7 +400,9 @@ mod tests { } async fn get_recent_block_num(chain_spec: &ChainSpec) -> u64 { - let provider = RpcBlockDataProvider::new(&chain_spec.rpc, 0).unwrap(); + let provider = RpcBlockDataProvider::new(&chain_spec.rpc, None, 0) + .await + .unwrap(); let height = provider.provider.get_block_number().await.unwrap(); height - 100 } diff --git a/core/src/preflight/mod.rs b/core/src/preflight/mod.rs index a8bf0cfc..383cea70 100644 --- a/core/src/preflight/mod.rs +++ b/core/src/preflight/mod.rs @@ -3,8 +3,7 @@ use std::collections::HashSet; use alloy_primitives::Bytes; use raiko_lib::{ builder::RethBlockBuilder, - consts::ChainSpec, - input::{BlobProofType, GuestInput, TaikoGuestInput, TaikoProverData}, + input::{GuestInput, TaikoGuestInput}, primitives::mpt::proofs_to_tries, Measurement, }; @@ -16,36 +15,10 @@ use crate::{ use util::{execute_txs, get_block_and_parent_data, prepare_taiko_chain_input}; +mod reth_preflight; mod util; - -pub struct PreflightData { - pub block_number: u64, - pub l1_chain_spec: ChainSpec, - pub l1_inclusion_block_number: u64, - pub taiko_chain_spec: ChainSpec, - pub prover_data: TaikoProverData, - pub blob_proof_type: BlobProofType, -} - -impl PreflightData { - pub fn new( - block_number: u64, - l1_inclusion_block_number: u64, - l1_chain_spec: ChainSpec, - taiko_chain_spec: ChainSpec, - prover_data: TaikoProverData, - blob_proof_type: BlobProofType, - ) -> Self { - Self { - block_number, - l1_chain_spec, - l1_inclusion_block_number, - taiko_chain_spec, - prover_data, - blob_proof_type, - } - } -} +pub use reth_preflight::{preflight_v2, PreFlightRpcData}; +pub use util::PreflightData; pub async fn preflight( provider: BDP, @@ -115,6 +88,11 @@ pub async fn preflight( "[{} Account/{num_storage_proofs} Storage]", parent_proofs.len() + proofs.len(), )); + tracing::trace!( + "Fetched {:?} and {:?} storage proofs", + parent_proofs, + proofs + ); // Construct the state trie and storage from the storage proofs. let measurement = Measurement::start("Constructing MPT...", true); @@ -131,11 +109,21 @@ pub async fn preflight( let measurement = Measurement::start("Fetching contract code...", true); let contracts = HashSet::::from_iter(db.initial_db.accounts.values().filter_map(|account| { - account - .info - .code - .clone() - .map(|code| Bytes(code.bytecode().0.clone())) + tracing::info!( + "--- Fetching contract code with hash {:?}", + account.info.code_hash + ); + account.info.code.clone().map(|code| { + let bytes = Bytes(code.bytecode().0.clone()); + if bytes.len() > 0 { + tracing::info!( + "--- Calc contract code {:?} hash {:?}", + bytes.to_vec(), + raiko_lib::primitives::keccak::keccak(&bytes) + ); + } + bytes + }) })) .into_iter() .collect::>(); diff --git a/core/src/preflight/reth_preflight.rs b/core/src/preflight/reth_preflight.rs new file mode 100644 index 00000000..7fbe8feb --- /dev/null +++ b/core/src/preflight/reth_preflight.rs @@ -0,0 +1,263 @@ +use std::collections::{HashMap, HashSet}; + +use crate::{ + interfaces::{RaikoError, RaikoResult}, + provider::{db::ProviderDb, BlockDataProvider}, +}; +use alloy_primitives::{Bytes, B256}; +use alloy_rpc_types::eth::{ + Block as AlloyEthBlock, EIP1186AccountProofResponse, Header as AlloyEthHeader, +}; +use raiko_lib::{ + builder::RethBlockBuilder, input::GuestInput, primitives::mpt::proofs_to_tries, Measurement, +}; +use serde::{Deserialize, Serialize}; +use tracing::error; + +use crate::preflight::util::{ + execute_txs, get_block_and_parent_data, prepare_taiko_chain_input, PreflightData, +}; + +/// `PreFlightRpcData` is the pre-flight data for the proving process. +#[derive(Clone, Debug, Serialize, Deserialize)] +#[serde(rename_all = "camelCase")] +pub struct PreFlightRpcData { + /// The block to be proven. + // pub block: alloy_rpc_types_eth::Block, + pub block: AlloyEthBlock, + /// The parent header. + pub parent_header: AlloyEthHeader, + /// The account proofs. + pub account_proofs: Vec, + /// The parent account proofs. + pub parent_account_proofs: Vec, + /// The contracts used. + pub contracts: HashMap, + /// The ancestor used. + pub ancestor_headers: Vec, +} + +pub async fn preflight_v2( + provider: BDP, + PreflightData { + block_number, + l1_chain_spec, + taiko_chain_spec, + prover_data, + blob_proof_type, + l1_inclusion_block_number, + }: PreflightData, +) -> RaikoResult { + let measurement = Measurement::start("Preflight_v2 fetching block data...", false); + + let (block, parent_block) = get_block_and_parent_data(&provider, block_number).await?; + + let taiko_guest_input = if taiko_chain_spec.is_taiko() { + prepare_taiko_chain_input( + &l1_chain_spec, + &taiko_chain_spec, + block_number, + (l1_inclusion_block_number != 0).then_some(l1_inclusion_block_number), + &block, + prover_data, + blob_proof_type, + ) + .await? + } else { + error!("preflight_v2 is used for taiko chain only"); + return Err(RaikoError::Preflight( + "preflight_v2 is used for taiko chain only".to_owned(), + )); + }; + measurement.stop(); + + let parent_header: reth_primitives::Header = + parent_block.header.clone().try_into().map_err(|e| { + RaikoError::Conversion(format!("Failed converting to reth header: {e}")) + })?; + let parent_block_number = parent_header.number; + + // Create the guest input + let input = GuestInput { + block, + parent_header, + chain_spec: taiko_chain_spec.clone(), + taiko: taiko_guest_input, + ..Default::default() + }; + + // Create the block builder, run the transactions and extract the DB + let provider_db = ProviderDb::new(provider, taiko_chain_spec, parent_block_number).await?; + + // Now re-execute the transactions in the block to collect all required data + let mut builder = RethBlockBuilder::new(&input, provider_db); + + // Optimize data gathering by executing the transactions multiple times so data can be requested in batches + execute_txs(&mut builder).await?; + + let Some(db) = builder.db.as_mut() else { + return Err(RaikoError::Preflight("No db in builder".to_owned())); + }; + + // Gather inclusion proofs for the initial and final state + let measurement = Measurement::start("Fetching storage proofs...", true); + let (parent_proofs, proofs, num_storage_proofs) = db.get_proofs().await?; + measurement.stop_with_count(&format!( + "[{} Account/{num_storage_proofs} Storage]", + parent_proofs.len() + proofs.len(), + )); + + // Construct the state trie and storage from the storage proofs. + let measurement = Measurement::start("Constructing MPT...", true); + let (parent_state_trie, parent_storage) = + proofs_to_tries(input.parent_header.state_root, parent_proofs, proofs)?; + measurement.stop(); + + // Gather proofs for block history + let measurement = Measurement::start("Fetching historical block headers...", true); + let ancestor_headers = db.get_ancestor_headers().await?; + measurement.stop(); + + // Get the contracts from the initial db. + let measurement = Measurement::start("Fetching contract code...", true); + let contracts = + HashSet::::from_iter(db.initial_db.accounts.values().filter_map(|account| { + account + .info + .code + .clone() + .map(|code| Bytes(code.bytecode().0.clone())) + })) + .into_iter() + .collect::>(); + measurement.stop(); + + // Fill in remaining generated guest input data + let input = GuestInput { + parent_state_trie, + parent_storage, + contracts, + ancestor_headers, + ..input + }; + + Ok(input) +} + +#[cfg(test)] +mod test { + use ethers_core::types::Transaction; + use raiko_lib::{ + consts::{Network, SupportedChainSpecs}, + utils::decode_transactions, + }; + + use crate::preflight::util::{blob_to_bytes, block_time_to_block_slot}; + + #[test] + fn test_new_blob_decode() { + let valid_blob_str = "\ + 01000004b0f904adb8b502f8b283028c59188459682f008459682f028286b394\ + 006700100000000000000000000000000001009980b844a9059cbb0000000000\ + 0000000000000001670010000000000000000000000000000100990000000000\ + 000000000000000000000000000000000000000000000000000001c080a0af40\ + 093afa19e4b7256a209c71a902d33985c5655e580d5fbf36815e290b623177a0\ + 19d4b4ccaa5497a47845016680c128b63e74e9d6a9756ebdeb2f78a65e0fa120\ + 0001f802f901f483028c592e8459682f008459682f02832625a0941670010000\ + 0b000000000000000000000000000280b90184fa233d0c000000000000000000\ + 0000000000000000000000000000000000000000000000200000000000000000\ + 000000000000000000000000000000000000000000007e7e0000000000000000\ + 0000000014dc79964da2c08b23698b3d3cc7ca32193d99550000000000000000\ + 0000000014dc79964da2c08b23698b3d3cc7ca32193d99550000000000000000\ + 0000000000016700100000000000000000000000000001009900000000000000\ + 0000000000000000000000000000000000000000000000000100000000000000\ + 000000000000000000000000000000000000000000002625a000000000000000\ + 0000000000000000000000000000000000000000000000000000000000000000\ + 000000000000976ea74026e726554db657fa54763abd0c3a0aa9000000000000\ + 0000000000000000000000000000000000000000000000000120000000000000\ + 220000000000000000000000000000000000000000000000001243726f6e4a6f\ + 102053656e64546f6b656e730000000000000000000000000000c080a0a99edd\ + 2b13d5436cb0fe71b2ea4e69c2292fdc682ae54fe702cc36d6634dd0ba85a057\ + 119f9297ca5ebd5402bd886405fe3aa8f8182438a9e56c1ef2a1ec0ae4a0acb9\ + 00f802f901f483028c592f8459682f008459682f02832625a094167001000000\ + 000000000000000000000000000280b90184fa233d0c00000000000000000000\ + 0000000000000000000000000000000000000000000020000000000000000000\ + 0000000000000000000000000000000000000000007e7e000000000000000000\ + 00000014dc79964da2c08b23698b3d3cc7ca32193d9955000000000000000000\ + 00000014dc79964da2c08b23698b3d3cc7ca32193d9955000000000000000000\ + 0000000001670010000000000000000000000000000100990000000000000000\ + 0000000000000000000000000000000000000000000000010000000000000000\ + 0000000000000000000000000000000000000000002625a00000000000000000\ + 0000000000000000000000000000000000000000000000000000000000000000\ + 0000000000976ea74026e726554db657fa54763abd0c3a0aa900000000000000\ + 0000000000000000000000000000000000000000000000012000000000000000\ + 2000000000000000000000000000000000000000000000001243726f6e4a6f62\ + 0053656e64546f6b656e730000000000000000000000000000c080a08f0a9757\ + 35d78526f1339c69c2ed02df7a6d7cded10c74fb57398c11c1420526c2a0047f\ + 003054d3d75d33120020872b6d5e0a4a05e47c50179bb9a8b866b7fb71b30000\ + 0000000000000000000000000000000000000000000000000000000000000000\ + 0000000000000000000000000000000000000000000000000000000000000000\ + 0000000000000000000000000000000000000000000000000000000000000000\ + 0000000000000000000000000000000000000000000000000000000000000000\ + 0000000000000000000000000000000000000000000000000000000000000000\ + 00000000000000000000000000000000"; + let blob_str = format!("{:0<262144}", valid_blob_str); + let dec_blob = blob_to_bytes(&blob_str); + println!("dec blob tx len: {:?}", dec_blob.len()); + let txs = decode_transactions(&dec_blob); + println!("dec blob tx: {txs:?}"); + } + + #[ignore] + #[test] + fn test_slot_block_num_mapping() { + let chain_spec = SupportedChainSpecs::default() + .get_chain_spec(&Network::TaikoA7.to_string()) + .unwrap(); + let expected_slot = 1000u64; + let second_per_slot = 12u64; + let block_time = chain_spec.genesis_time + expected_slot * second_per_slot; + let block_num = + block_time_to_block_slot(block_time, chain_spec.genesis_time, second_per_slot) + .expect("block time to slot failed"); + assert_eq!(block_num, expected_slot); + + assert!(block_time_to_block_slot( + chain_spec.genesis_time - 10, + chain_spec.genesis_time, + second_per_slot + ) + .is_err()); + } + + #[ignore] + #[test] + fn json_to_ethers_blob_tx() { + let response = "{ + \"blockHash\":\"0xa61eea0256aa361dfd436be11b0e276470413fbbc34b3642fbbf3b5d8d72f612\", + \"blockNumber\":\"0x4\", + \"from\":\"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266\", + \"gas\":\"0xf4240\", + \"gasPrice\":\"0x5e92e74e\", + \"maxFeePerGas\":\"0x8b772ea6\", + \"maxPriorityFeePerGas\":\"0x3b9aca00\", + \"maxFeePerBlobGas\":\"0x2\", + \"hash\":\"0xdb3b11250a2332cc4944fa8022836bd32da43c34d4f2e9e1b246cfdbc5b4c60e\", + \"input\":\"0x11762da2\", + \"nonce\":\"0x1\", + \"to\":\"0x5fbdb2315678afecb367f032d93f642f64180aa3\", + \"transactionIndex\":\"0x0\", + \"value\":\"0x0\", + \"type\":\"0x3\", + \"accessList\":[], + \"chainId\":\"0x7e7e\", + \"blobVersionedHashes\":[\"0x012d46373b7d1f53793cd6872e40e801f9af6860ecbdbaa2e28df25937618c6f\",\"0x0126d296b606f85b775b12b8b4abeb3bdb88f5a50502754d598537ae9b7fb947\"], + \"v\":\"0x0\", + \"r\":\"0xaba289efba8ef610a5b3b70b72a42fe1916640f64d7112ec0b89087bbc8fff5f\", + \"s\":\"0x1de067d69b79d28d0a3bd179e332c85b93cedbd299d9e205398c073a59633dcf\", + \"yParity\":\"0x0\" + }"; + let tx: Transaction = serde_json::from_str(response).unwrap(); + println!("tx: {tx:?}"); + } +} diff --git a/core/src/preflight/util.rs b/core/src/preflight/util.rs index 4cd22f71..94524dad 100644 --- a/core/src/preflight/util.rs +++ b/core/src/preflight/util.rs @@ -32,6 +32,36 @@ use crate::{ require, }; +pub struct PreflightData { + pub block_number: u64, + pub l1_chain_spec: ChainSpec, + pub l1_inclusion_block_number: u64, + pub taiko_chain_spec: ChainSpec, + pub prover_data: TaikoProverData, + pub blob_proof_type: BlobProofType, +} + +impl PreflightData { + pub fn new( + block_number: u64, + l1_inclusion_block_number: u64, + l1_chain_spec: ChainSpec, + taiko_chain_spec: ChainSpec, + prover_data: TaikoProverData, + blob_proof_type: BlobProofType, + ) -> Self { + Self { + block_number, + l1_chain_spec, + l1_inclusion_block_number, + taiko_chain_spec, + prover_data, + blob_proof_type, + } + } +} + + /// Optimize data gathering by executing the transactions multiple times so data can be requested in batches pub async fn execute_txs(builder: &mut RethBlockBuilder>) -> RaikoResult<()> where @@ -96,7 +126,7 @@ pub async fn prepare_taiko_chain_input( // // Get the L1 block in which the L2 block was included so we can fetch the DA data. // // Also get the L1 state block header so that we can prove the L1 state root. - let provider_l1 = RpcBlockDataProvider::new(&l1_chain_spec.rpc, block_number)?; + let provider_l1 = RpcBlockDataProvider::new(&l1_chain_spec.rpc, None, block_number).await?; info!("current taiko chain fork: {fork:?}"); diff --git a/core/src/provider/db.rs b/core/src/provider/db.rs index f75db707..1c871489 100644 --- a/core/src/provider/db.rs +++ b/core/src/provider/db.rs @@ -111,7 +111,7 @@ impl ProviderDb { .get_merkle_proofs( self.block_number + 1, storage_keys, - num_initial_values, + 0, num_storage_proofs, ) .await?; diff --git a/core/src/provider/mod.rs b/core/src/provider/mod.rs index 3d7f30ce..7ba25b72 100644 --- a/core/src/provider/mod.rs +++ b/core/src/provider/mod.rs @@ -6,13 +6,17 @@ use std::collections::HashMap; use crate::{ interfaces::{RaikoError, RaikoResult}, - provider::rpc::RpcBlockDataProvider, MerkleProof, }; pub mod db; +pub mod preflight_rpc; pub mod rpc; +pub use crate::provider::{ + preflight_rpc::RethPreflightBlockDataProvider, rpc::RpcBlockDataProvider, +}; + #[allow(async_fn_in_trait)] pub trait BlockDataProvider { async fn get_blocks(&self, blocks_to_fetch: &[(u64, bool)]) -> RaikoResult>; @@ -30,6 +34,63 @@ pub trait BlockDataProvider { ) -> RaikoResult; } +pub enum BlockDataProviderType { + CommonRpc(RpcBlockDataProvider), + PreflightRpc(RethPreflightBlockDataProvider), +} + +impl BlockDataProvider for BlockDataProviderType { + async fn get_blocks(&self, blocks_to_fetch: &[(u64, bool)]) -> RaikoResult> { + match self { + BlockDataProviderType::CommonRpc(provider) => { + provider.get_blocks(blocks_to_fetch).await + } + BlockDataProviderType::PreflightRpc(provider) => { + provider.get_blocks(blocks_to_fetch).await + } + } + } + + async fn get_accounts(&self, accounts: &[Address]) -> RaikoResult> { + match self { + BlockDataProviderType::CommonRpc(provider) => provider.get_accounts(accounts).await, + BlockDataProviderType::PreflightRpc(provider) => provider.get_accounts(accounts).await, + } + } + + async fn get_storage_values(&self, accounts: &[(Address, U256)]) -> RaikoResult> { + match self { + BlockDataProviderType::CommonRpc(provider) => { + provider.get_storage_values(accounts).await + } + BlockDataProviderType::PreflightRpc(provider) => { + provider.get_storage_values(accounts).await + } + } + } + + async fn get_merkle_proofs( + &self, + block_number: u64, + accounts: HashMap>, + offset: usize, + num_storage_proofs: usize, + ) -> RaikoResult { + match self { + BlockDataProviderType::CommonRpc(provider) => { + provider + .get_merkle_proofs(block_number, accounts, offset, num_storage_proofs) + .await + } + BlockDataProviderType::PreflightRpc(provider) => { + provider + .get_merkle_proofs(block_number, accounts, offset, num_storage_proofs) + .await + } + } + } +} + pub async fn get_task_data( network: &str, block_number: u64, @@ -38,8 +99,9 @@ pub async fn get_task_data( let taiko_chain_spec = chain_specs .get_chain_spec(network) .ok_or_else(|| RaikoError::InvalidRequestConfig("Unsupported raiko network".to_string()))?; - let provider = RpcBlockDataProvider::new(&taiko_chain_spec.rpc.clone(), block_number - 1)?; - let blocks = provider.get_blocks(&[(block_number, true)]).await?; + let provider = + RpcBlockDataProvider::new(&taiko_chain_spec.rpc.clone(), None, block_number - 1).await?; + let blocks = provider.get_blocks(&[(block_number, false)]).await?; let block = blocks .first() .ok_or_else(|| RaikoError::RPC("No block for requested block number".to_string()))?; diff --git a/core/src/provider/preflight_rpc.rs b/core/src/provider/preflight_rpc.rs new file mode 100644 index 00000000..7a8bf959 --- /dev/null +++ b/core/src/provider/preflight_rpc.rs @@ -0,0 +1,387 @@ +use alloy_primitives::{Address, FixedBytes, U256}; +use alloy_provider::{ProviderBuilder, ReqwestProvider, RootProvider}; +use alloy_rpc_client::{ClientBuilder, RpcClient}; +use alloy_rpc_types::{Block, BlockNumberOrTag}; +use alloy_transport_http::Http; +use reqwest_alloy::Client; +use reth_primitives::{ + revm_primitives::{AccountInfo, Bytecode}, + U64, +}; +use std::collections::HashMap; +use tracing::error; + +use crate::{ + interfaces::{RaikoError, RaikoResult}, + preflight::PreFlightRpcData, + provider::BlockDataProvider, + MerkleProof, +}; + +#[derive(Clone)] +pub struct RethPreflightBlockDataProvider { + pub provider: ReqwestProvider, + pub client: RpcClient>, + // use parent because it's the base of tx execution + parent_block_num: u64, + preflight_data: Option, +} + +impl RethPreflightBlockDataProvider { + pub fn new(url: &str, parent_block_num: u64) -> RaikoResult { + let url = + reqwest::Url::parse(url).map_err(|_| RaikoError::RPC("Invalid RPC URL".to_owned()))?; + + let client = ClientBuilder::default().http(url.clone()); + + Ok(Self { + provider: ProviderBuilder::new().on_provider(RootProvider::new_http(url.clone())), + client, + parent_block_num, + preflight_data: None, + }) + } + + fn preflight_data_is_available(&self) -> RaikoResult<()> { + if self.preflight_data.is_none() { + Err(RaikoError::RPC("Preflight data not available".to_owned())) + } else { + Ok(()) + } + } + + pub fn provider(&self) -> &ReqwestProvider { + &self.provider + } + + pub async fn fetch_preflight_data(&mut self) -> RaikoResult<()> { + let curr_block_num_hex = format!("0x{:x}", self.parent_block_num + 1); + let preflight_data = self + .client + .request("taiko_provingPreflight", vec![curr_block_num_hex]) + .await + .map_err(|e| RaikoError::RPC(format!("Error getting preflight data: {e}")))?; + self.preflight_data = Some(preflight_data); + Ok(()) + } + + // temporary functions to get account/storage/mkl and mark missing ones as None + // which will be further processed by fall back to legacy rpc. + // to be removed after the preflight data is all available + + pub async fn try_get_accounts( + &self, + accounts: &[Address], + ) -> RaikoResult>> { + let account_infos = self.get_accounts(accounts).await?; + let account_opt_infos: Vec> = account_infos + .iter() + .zip(accounts.iter()) + .map(|(info, addr)| { + if empty_account_info(info) { + error!("Empty account info for address {}", addr); + None + } else { + Some(info.clone()) + } + }) + .collect(); + Ok(account_opt_infos) + } + + pub async fn try_get_storage_values( + &self, + account_keys: &[(Address, U256)], + ) -> RaikoResult>> { + let storage_values = self.get_storage_values(account_keys).await?; + assert_eq!(storage_values.len(), account_keys.len()); + let storage_values: Vec> = storage_values + .iter() + .zip(account_keys.iter()) + .map(|(value, (addr, _))| { + if value.is_zero() { + error!("Empty storage value for address {}", addr); + None + } else { + Some(value.clone()) + } + }) + .collect(); + Ok(storage_values) + } + + pub async fn try_get_merkle_proofs( + &self, + block_number: u64, + accounts: HashMap>, + offset: usize, + num_storage_proofs: usize, + ) -> RaikoResult<(MerkleProof, HashMap>)> { + let merkle_proof: HashMap = self + .get_merkle_proofs(block_number, accounts.clone(), offset, num_storage_proofs) + .await?; + let mut missed_accounts: HashMap> = HashMap::new(); + for (address, keys) in accounts.iter() { + assert!( + merkle_proof.contains_key(address), + "{}", + format!( + "address {} is missing in mkl proofs {:?}", + address, + merkle_proof.keys() + ) + .as_str() + ); + let account_proof = merkle_proof.get(address).unwrap(); + let mut missed_keys = Vec::new(); + + assert_eq!(account_proof.storage_proof.len(), keys.len()); + if keys.is_empty() { + if account_proof.account_proof.is_empty() { + missed_accounts.insert(*address, missed_keys); + } + } else { + keys.iter() + .zip(account_proof.storage_proof.iter()) + .for_each(|(key, proof)| { + if proof.value.is_zero() && proof.proof.is_empty() { + missed_keys.push(*key); + } + }); + if !missed_keys.is_empty() { + missed_accounts.insert(*address, missed_keys); + } + } + } + + Ok((merkle_proof, missed_accounts)) + } +} + +fn empty_account_info(account_info: &AccountInfo) -> bool { + account_info.balance.is_zero() + && account_info.nonce == 0 + && account_info + .code + .clone() + .is_some_and(|code| code.is_empty()) + && account_info.code_hash.is_zero() +} + +impl BlockDataProvider for RethPreflightBlockDataProvider { + async fn get_blocks(&self, blocks_to_fetch: &[(u64, bool)]) -> RaikoResult> { + let mut all_blocks = Vec::with_capacity(blocks_to_fetch.len()); + + let max_batch_size = 32; + for blocks_to_fetch in blocks_to_fetch.chunks(max_batch_size) { + let mut batch = self.client.new_batch(); + let mut requests = Vec::with_capacity(max_batch_size); + + for (block_number, full) in blocks_to_fetch { + requests.push(Box::pin( + batch + .add_call( + "eth_getBlockByNumber", + &(BlockNumberOrTag::from(*block_number), full), + ) + .map_err(|_| { + RaikoError::RPC( + "Failed adding eth_getBlockByNumber call to batch".to_owned(), + ) + })?, + )); + } + + batch.send().await.map_err(|e| { + RaikoError::RPC(format!( + "Error sending batch request for block {blocks_to_fetch:?}: {e}" + )) + })?; + + let mut blocks = Vec::with_capacity(max_batch_size); + // Collect the data from the batch + for request in requests { + blocks.push( + request.await.map_err(|e| { + RaikoError::RPC(format!("Error collecting request data: {e}")) + })?, + ); + } + + all_blocks.append(&mut blocks); + } + + Ok(all_blocks) + } + + async fn get_accounts(&self, accounts: &[Address]) -> RaikoResult> { + self.preflight_data_is_available()?; + + let preflight_data = self.preflight_data.as_ref().unwrap(); + let mut all_accounts: Vec = Vec::with_capacity(accounts.len()); + let none_place_holder = alloy_rpc_types::EIP1186AccountProofResponse::default(); + let none_byte_holder = reth_primitives::Bytes::default(); + accounts.iter().for_each(|address| { + let account_proof: &alloy_rpc_types::EIP1186AccountProofResponse = match preflight_data + .parent_account_proofs + .iter() + .find(|account_proof| { + account_proof.address.to_checksum(None) == address.to_checksum(None) + }) { + Some(account_proof) => { + account_proof + }, + None => { + println!( + "Unable to find account proof for address {} in {:?} parent account proofs", + address.to_checksum(None), + &preflight_data + .parent_account_proofs + .iter() + .map(|a| a.address.to_checksum(None)) + .collect::>() + ); + &none_place_holder + } + }; + + all_accounts.push(AccountInfo::new( + account_proof.balance, + account_proof.nonce.as_limbs()[0], + account_proof.code_hash, + Bytecode::new_raw( + preflight_data + .contracts + .get(&account_proof.code_hash) + .or_else(|| Some(&none_byte_holder)) + .unwrap() + .clone(), + ), + )); + }); + Ok(all_accounts) + } + + async fn get_storage_values(&self, accounts: &[(Address, U256)]) -> RaikoResult> { + self.preflight_data_is_available()?; + + let preflight_data = self.preflight_data.as_ref().unwrap(); + let mut all_values = Vec::with_capacity(accounts.len()); + let empty_storage_value = U256::ZERO; + for (address, key) in accounts { + let storage_proof = preflight_data + .parent_account_proofs + .iter() + .find(|account_proof| { + account_proof.address.to_checksum(None) == address.to_checksum(None) + }) + .and_then(|account_proof| { + account_proof + .storage_proof + .iter() + .find(|storage_proof| storage_proof.key.0 == FixedBytes::<32>::from(*key)) + }); + + if let Some(storage_proof) = storage_proof { + all_values.push(storage_proof.value); + } else { + error!("Unable to find storage proof for address {address} and key {key}"); + all_values.push(empty_storage_value); + } + } + Ok(all_values) + } + + async fn get_merkle_proofs( + &self, + block_number: u64, + accounts: HashMap>, + _offset: usize, + num_storage_proofs: usize, + ) -> RaikoResult { + if block_number != self.parent_block_num && block_number != self.parent_block_num + 1 { + return Err(RaikoError::RPC(format!( + "Block number {block_number} does not match preflight block number {:?} or its parent", self.parent_block_num + ))); + } + + self.preflight_data_is_available()?; + + let preflight_data = self.preflight_data.as_ref().unwrap(); + let account_proofs = if block_number == self.parent_block_num { + &preflight_data.parent_account_proofs + } else { + &preflight_data.account_proofs + }; + let mut storage_proofs: MerkleProof = HashMap::new(); + + for (address, keys) in accounts.iter() { + if let Some(account_proof) = account_proofs + .iter() + .find(|account_proof| account_proof.address == *address) + { + let mut account_proof_holder = account_proof.clone(); + account_proof_holder.storage_proof = Vec::with_capacity(num_storage_proofs); + for key in keys.iter().take(num_storage_proofs) { + if let Some(proof) = account_proof + .storage_proof + .iter() + .find(|storage_proof| storage_proof.key.0 == FixedBytes::<32>::from(*key)) + { + account_proof_holder.storage_proof.push(proof.clone()); + } else { + account_proof_holder.storage_proof.push( + alloy_rpc_types::EIP1186StorageProof { + key: alloy_rpc_types::serde_helpers::JsonStorageKey::from(*key), + value: U256::ZERO, + proof: Vec::new(), + }, + ); + } + } + storage_proofs.insert(*address, account_proof_holder.clone()); + } else { + let mut all_missed_key_proofs = Vec::new(); + for key in keys.iter().take(num_storage_proofs) { + all_missed_key_proofs.push(alloy_rpc_types::EIP1186StorageProof { + key: alloy_rpc_types::serde_helpers::JsonStorageKey::from(*key), + value: U256::ZERO, + proof: Vec::new(), + }); + } + storage_proofs.insert( + *address, + alloy_rpc_types::EIP1186AccountProofResponse { + address: *address, + balance: U256::ZERO, + nonce: U64::ZERO, + code_hash: FixedBytes::<32>::default(), + storage_proof: all_missed_key_proofs, + storage_hash: FixedBytes::<32>::default(), + account_proof: Vec::new(), + }, + ); + } + } + Ok(storage_proofs) + } +} + +#[cfg(test)] +mod test { + use crate::provider::BlockDataProvider; + + use super::RethPreflightBlockDataProvider; + + #[tokio::test] + async fn test_preflight_rpc() { + let preflight_rpc_provider = + RethPreflightBlockDataProvider::new("http://localhost:8545", 0).unwrap(); + + let blocks: Vec = preflight_rpc_provider + .get_blocks(&[(0, true)]) + .await + .unwrap(); + assert_eq!(blocks.len(), 1); + } +} diff --git a/core/src/provider/rpc.rs b/core/src/provider/rpc.rs index 49526243..181732f4 100644 --- a/core/src/provider/rpc.rs +++ b/core/src/provider/rpc.rs @@ -14,21 +14,39 @@ use crate::{ MerkleProof, }; +use super::RethPreflightBlockDataProvider; + #[derive(Clone)] pub struct RpcBlockDataProvider { pub provider: ReqwestProvider, pub client: RpcClient>, block_number: u64, + preflight_provider: Option, } impl RpcBlockDataProvider { - pub fn new(url: &str, block_number: u64) -> RaikoResult { + pub async fn new( + url: &str, + preflight_url: Option, + block_number: u64, + ) -> RaikoResult { let url = reqwest::Url::parse(url).map_err(|_| RaikoError::RPC("Invalid RPC URL".to_owned()))?; + let preflight_provider = match preflight_url { + Some(preflight_url) => { + let mut preflight_provider = + RethPreflightBlockDataProvider::new(&preflight_url, block_number)?; + preflight_provider.fetch_preflight_data().await.unwrap(); + Some(preflight_provider) + } + None => None, + }; + Ok(Self { provider: ProviderBuilder::new().on_provider(RootProvider::new_http(url.clone())), client: ClientBuilder::default().http(url), block_number, + preflight_provider, }) } @@ -39,6 +57,10 @@ impl RpcBlockDataProvider { impl BlockDataProvider for RpcBlockDataProvider { async fn get_blocks(&self, blocks_to_fetch: &[(u64, bool)]) -> RaikoResult> { + if let Some(preflight_provider) = &self.preflight_provider { + return preflight_provider.get_blocks(blocks_to_fetch).await; + } + let mut all_blocks = Vec::with_capacity(blocks_to_fetch.len()); let max_batch_size = 32; @@ -84,10 +106,40 @@ impl BlockDataProvider for RpcBlockDataProvider { } async fn get_accounts(&self, accounts: &[Address]) -> RaikoResult> { - let mut all_accounts = Vec::with_capacity(accounts.len()); + let (account_info_opts, missed_accounts) = + if let Some(preflight_provider) = &self.preflight_provider { + match preflight_provider.try_get_accounts(accounts).await { + Ok(account_infos) => { + let mut missed_accounts = Vec::new(); + + account_infos.iter().zip(accounts.iter()).for_each( + |(account_info, address)| { + if account_info.is_none() { + missed_accounts.push(*address); + } + }, + ); + (account_infos, missed_accounts) + } + Err(e) => { + tracing::error!("Error getting accounts from preflight provider: {:?}", e); + (Vec::new(), accounts.to_vec()) + } + } + } else { + (Vec::new(), accounts.to_vec()) + }; + + println!( + "preflight missed_accounts: {:?} in full list {:?}", + missed_accounts, accounts + ); + + // fall back to legacy RPC & process missed accounts + let mut all_missed_accounts = Vec::with_capacity(missed_accounts.len()); let max_batch_size = 250; - for accounts in accounts.chunks(max_batch_size) { + for accounts in missed_accounts.chunks(max_batch_size) { let mut batch = self.client.new_batch(); let mut nonce_requests = Vec::with_capacity(max_batch_size); @@ -164,17 +216,65 @@ impl BlockDataProvider for RpcBlockDataProvider { accounts.push(account_info); } - all_accounts.append(&mut accounts); + all_missed_accounts.append(&mut accounts); } - Ok(all_accounts) + if account_info_opts.is_empty() { + Ok(all_missed_accounts) + } else { + // insert the missed accounts back with the correct order + let mut all_accounts = Vec::with_capacity(accounts.len()); + account_info_opts + .iter() + .for_each(|account_info_opt| match account_info_opt { + Some(account_info) => all_accounts.push(account_info.clone()), + None => { + let account_info = all_missed_accounts.pop().unwrap(); + all_accounts.push(account_info); + } + }); + assert!(all_missed_accounts.is_empty()); + Ok(all_accounts) + } } async fn get_storage_values(&self, accounts: &[(Address, U256)]) -> RaikoResult> { - let mut all_values = Vec::with_capacity(accounts.len()); + let (preflight_storage_values, missed_accounts) = + if let Some(preflight_provider) = &self.preflight_provider { + match preflight_provider.try_get_storage_values(accounts).await { + Ok(storage_values) => { + let mut missed_accounts = Vec::new(); + storage_values.iter().zip(accounts.iter()).for_each( + |(storage_value_opt, account)| { + if storage_value_opt.is_none() { + missed_accounts.push(account.clone()); + } + }, + ); + + (storage_values, missed_accounts) + } + Err(e) => { + tracing::error!( + "Error getting storage values from preflight provider: {:?}", + e + ); + (Vec::new(), accounts.to_vec()) + } + } + } else { + (Vec::new(), accounts.to_vec()) + }; + + if !preflight_storage_values.is_empty() { + assert_eq!(preflight_storage_values.len(), accounts.len()); + } + + // fall back to legacy RPC & process missed accounts + let mut all_missed_values = Vec::with_capacity(missed_accounts.len()); let max_batch_size = 1000; - for accounts in accounts.chunks(max_batch_size) { + for accounts in missed_accounts.chunks(max_batch_size) { let mut batch = self.client.new_batch(); let mut requests = Vec::with_capacity(max_batch_size); @@ -209,10 +309,27 @@ impl BlockDataProvider for RpcBlockDataProvider { ); } - all_values.append(&mut values); + all_missed_values.append(&mut values); + } + + if preflight_storage_values.is_empty() { + return Ok(all_missed_values); } - Ok(all_values) + // insert back the missed values with the correct order + let mut storage_values = Vec::with_capacity(accounts.len()); + preflight_storage_values + .iter() + .for_each(|storage_value_opt| match storage_value_opt { + Some(storage_value) => storage_values.push(storage_value.clone()), + None => { + let storage_value = all_missed_values.pop().unwrap(); + storage_values.push(storage_value); + } + }); + assert!(all_missed_values.is_empty()); + + Ok(storage_values) } async fn get_merkle_proofs( @@ -222,17 +339,44 @@ impl BlockDataProvider for RpcBlockDataProvider { offset: usize, num_storage_proofs: usize, ) -> RaikoResult { + let (account_key_proofs, missed_accounts) = if let Some(preflight_provider) = + &self.preflight_provider + { + match preflight_provider + .try_get_merkle_proofs(block_number, accounts.clone(), offset, num_storage_proofs) + .await + { + Ok((account_key_proofs, missed_accounts)) => { + (account_key_proofs, missed_accounts) + // (MerkleProof::new(), accounts) + } + Err(e) => { + tracing::error!( + "Error getting merkle proofs from preflight provider: {:?}", + e + ); + (MerkleProof::new(), accounts.clone()) + } + } + } else { + (MerkleProof::new(), accounts.clone()) + }; + + tracing::info!("get_merkle_proofs accounts: {:?}", &accounts.keys()); + tracing::info!( + "get_merkle_proofs missed_accounts: {:?}", + missed_accounts.keys() + ); + let mut storage_proofs: MerkleProof = HashMap::new(); let mut idx = offset; - let mut accounts = accounts.clone(); + let mut accounts = missed_accounts.clone(); let batch_limit = 1000; while !accounts.is_empty() { - #[cfg(debug_assertions)] - raiko_lib::inplace_print(&format!( - "fetching storage proof {idx}/{num_storage_proofs}..." - )); + // #[cfg(debug_assertions)] + tracing::info!("fetching storage proof {idx}/{num_storage_proofs}..."); #[cfg(not(debug_assertions))] tracing::trace!("Fetching storage proof {idx}/{num_storage_proofs}..."); @@ -315,6 +459,43 @@ impl BlockDataProvider for RpcBlockDataProvider { } clear_line(); - Ok(storage_proofs) + if account_key_proofs.is_empty() { + return Ok(storage_proofs); + } + + // Insert the account key proofs back with the correct order + let mut all_account_key_proofs = MerkleProof::new(); + all_account_key_proofs.extend(account_key_proofs.into_iter()); + while !storage_proofs.is_empty() { + let address = storage_proofs.keys().next().unwrap().clone(); + let mut missed_proof = storage_proofs.remove(&address).unwrap(); + let account_key_proof = all_account_key_proofs.get_mut(&address).unwrap(); + assert_eq!(account_key_proof.address, address); + + account_key_proof.storage_proof = account_key_proof + .storage_proof + .iter() + .map(|storage_proof| { + if storage_proof.proof.is_empty() { + let storage_proof = missed_proof.storage_proof.pop().unwrap(); + storage_proof + } else { + storage_proof.clone() + } + }) + .collect::>(); + account_key_proof.balance = missed_proof.balance; + account_key_proof.nonce = missed_proof.nonce; + account_key_proof.code_hash = missed_proof.code_hash; + account_key_proof.storage_hash = missed_proof.storage_hash; + account_key_proof.account_proof = missed_proof.account_proof; + assert!( + missed_proof.storage_proof.is_empty(), + "missing proofs still exist for address {:?}", + address + ); + } + + Ok(all_account_key_proofs) } } diff --git a/host/config/chain_spec_list_default.json b/host/config/chain_spec_list_default.json index 25969955..1e7ce4aa 100644 --- a/host/config/chain_spec_list_default.json +++ b/host/config/chain_spec_list_default.json @@ -95,6 +95,7 @@ }, "l1_contract": "0x79c9109b764609df928d16fc4a91e9081f7e87db", "l2_contract": "0x1670090000000000000000000000000000010001", + "preflight_rpc": "http://lb-2bduom5g-1m4f8703wp6ck9ab.clb.sg-tencentclb.com", "rpc": "https://rpc.hekla.taiko.xyz", "beacon_rpc": null, "verifier_address_forks": { diff --git a/host/src/cache.rs b/host/src/cache.rs index 606a7f4a..deb9c593 100644 --- a/host/src/cache.rs +++ b/host/src/cache.rs @@ -2,7 +2,7 @@ use std::{fs::File, path::PathBuf}; use raiko_core::{ interfaces::RaikoError, - provider::{rpc::RpcBlockDataProvider, BlockDataProvider}, + provider::{BlockDataProvider, BlockDataProviderType}, }; use raiko_lib::input::{get_input_path, GuestInput}; use tracing::{debug, info}; @@ -42,7 +42,7 @@ pub fn set_input( pub async fn validate_input( cached_input: Option, - provider: &RpcBlockDataProvider, + provider: &BlockDataProviderType, ) -> HostResult { if let Some(cache_input) = cached_input { debug!("Using cached input"); @@ -113,6 +113,7 @@ mod test { l1_chain_spec.clone(), taiko_chain_spec.clone(), proof_request.clone(), + false, ); let provider = RpcBlockDataProvider::new( &taiko_chain_spec.rpc.clone(), diff --git a/host/src/proof.rs b/host/src/proof.rs index 1223af0c..4ec2aa58 100644 --- a/host/src/proof.rs +++ b/host/src/proof.rs @@ -8,7 +8,9 @@ use raiko_core::{ interfaces::{ aggregate_proofs, cancel_proof, AggregationOnlyRequest, ProofRequest, RaikoError, }, - provider::{get_task_data, rpc::RpcBlockDataProvider}, + provider::{ + get_task_data, BlockDataProviderType, RethPreflightBlockDataProvider, RpcBlockDataProvider, + }, Raiko, }; use raiko_lib::{ @@ -415,15 +417,29 @@ pub async fn handle_proof( // Execute the proof generation. let total_time = Measurement::start("", false); + let v2_preflight = std::env::var("V2_PREFLIGHT").is_ok(); + let provider = if v2_preflight { + BlockDataProviderType::PreflightRpc( + RethPreflightBlockDataProvider::new( + &taiko_chain_spec.rpc.clone(), + proof_request.block_number - 1, + ) + .await?, + ) + } else { + BlockDataProviderType::CommonRpc(RpcBlockDataProvider::new( + &taiko_chain_spec.rpc.clone(), + proof_request.block_number - 1, + )?) + }; + let raiko = Raiko::new( l1_chain_spec.clone(), taiko_chain_spec.clone(), proof_request.clone(), + v2_preflight, ); - let provider = RpcBlockDataProvider::new( - &taiko_chain_spec.rpc.clone(), - proof_request.block_number - 1, - )?; + let input = match cache::validate_input(cached_input, &provider).await { Ok(cache_input) => cache_input, Err(_) => { diff --git a/lib/src/builder.rs b/lib/src/builder.rs index e1dae454..a8cf88ea 100644 --- a/lib/src/builder.rs +++ b/lib/src/builder.rs @@ -3,7 +3,6 @@ use std::sync::Arc; use crate::primitives::keccak::keccak; use crate::primitives::mpt::StateAccount; -use crate::utils::generate_transactions; use crate::{ consts::{ChainSpec, MAX_BLOCK_HASH_AGE}, guest_mem_forget, @@ -24,7 +23,9 @@ use reth_primitives::revm_primitives::db::{Database, DatabaseCommit}; use reth_primitives::revm_primitives::{ Account, AccountInfo, AccountStatus, Bytecode, Bytes, HashMap, SpecId, }; -use reth_primitives::{Address, BlockWithSenders, Header, B256, KECCAK_EMPTY, U256}; +use reth_primitives::{ + Address, BlockWithSenders, Header, TransactionSigned, B256, KECCAK_EMPTY, U256, +}; use tracing::{debug, error}; pub fn calculate_block_header(input: &GuestInput) -> Header { @@ -60,6 +61,7 @@ pub struct RethBlockBuilder { pub chain_spec: ChainSpec, pub input: GuestInput, pub db: Option, + pub original_txs: Vec, } impl + DatabaseCommit + OptimisticDatabase> @@ -67,10 +69,15 @@ impl + DatabaseCommit + OptimisticDatabase> { /// Creates a new block builder. pub fn new(input: &GuestInput, db: DB) -> RethBlockBuilder { + // original tx comes from guest input L1 event, which should be a super set of input.block.body + let original_txs = input + .get_original_txs() + .expect("get_original_txs should success"); RethBlockBuilder { chain_spec: input.chain_spec.clone(), - db: Some(db), input: input.clone(), + db: Some(db), + original_txs, } } @@ -129,12 +136,7 @@ impl + DatabaseCommit + OptimisticDatabase> // Generate the transactions from the tx list let mut block = self.input.block.clone(); - block.body = generate_transactions( - &self.input.chain_spec, - &self.input.taiko.block_proposed, - &self.input.taiko.tx_data, - &self.input.taiko.anchor_tx, - ); + block.body = self.original_txs.clone(); // Recover senders let mut block = block .with_recovered_senders() @@ -349,7 +351,15 @@ pub fn create_mem_db(input: &mut GuestInput) -> Result { } else { let bytes = contracts .get(&code_hash) - .expect("Contract not found") + .expect( + format!( + "Contract {:?} not found for address {:?}, whole contracts are {:?}.", + code_hash, + address, + contracts.keys() + ) + .as_str(), + ) .clone(); Bytecode::new_raw(bytes) }; diff --git a/lib/src/consts.rs b/lib/src/consts.rs index 98394833..4bcbb6c5 100644 --- a/lib/src/consts.rs +++ b/lib/src/consts.rs @@ -137,6 +137,7 @@ pub struct ChainSpec { pub l1_contract: Option
, pub l2_contract: Option
, pub rpc: String, + pub preflight_rpc: Option, pub beacon_rpc: Option, pub verifier_address_forks: BTreeMap>>, pub genesis_time: u64, @@ -162,6 +163,7 @@ impl ChainSpec { l1_contract: None, l2_contract: None, rpc: "".to_string(), + preflight_rpc: None, beacon_rpc: None, verifier_address_forks: BTreeMap::new(), genesis_time: 0u64, @@ -380,6 +382,7 @@ mod tests { l1_contract: None, l2_contract: None, rpc: "".to_string(), + preflight_rpc: None, beacon_rpc: None, verifier_address_forks: BTreeMap::from([( SpecId::FRONTIER, diff --git a/lib/src/input.rs b/lib/src/input.rs index 67bc5b11..5752a577 100644 --- a/lib/src/input.rs +++ b/lib/src/input.rs @@ -13,7 +13,8 @@ use serde_with::serde_as; #[cfg(not(feature = "std"))] use crate::no_std::*; use crate::{ - consts::ChainSpec, primitives::mpt::MptNode, prover::Proof, utils::zlib_compress_data, + consts::ChainSpec, primitives::mpt::MptNode, prover::Proof, utils::generate_transactions, + utils::zlib_compress_data, }; /// Represents the state of an account's storage. @@ -43,6 +44,43 @@ pub struct GuestInput { pub taiko: TaikoGuestInput, } +impl GuestInput { + pub fn get_original_txs(&self) -> Result> { + // Generate the transactions from the tx list + let block_body = generate_transactions( + &self.chain_spec, + &self.taiko.block_proposed, + &self.taiko.tx_data, + &self.taiko.anchor_tx, + ); + + // txs from the block should be a valid subset of txs from L1 + if Self::is_ordered_subset(&self.block.body, &block_body) { + Ok(block_body) + } else { + Err(anyhow!("mismatch txs between L1 & L2 block")) + } + } + + fn is_ordered_subset(a: &[T], b: &[T]) -> bool { + if a.len() > b.len() { + return false; + } + + let mut b_idx = 0; + for a_item in a { + while b_idx < b.len() && &b[b_idx] != a_item { + b_idx += 1; + } + if b_idx >= b.len() { + return false; + } + b_idx += 1; + } + true + } +} + /// External aggregation input. #[derive(Debug, Clone, Default, Deserialize, Serialize)] pub struct AggregationGuestInput { diff --git a/lib/src/mem_db.rs b/lib/src/mem_db.rs index dc003e78..8c1fe2fd 100644 --- a/lib/src/mem_db.rs +++ b/lib/src/mem_db.rs @@ -109,6 +109,7 @@ impl MemDb { /// Insert account info without overriding its storage. /// Panics if a different account info exists. pub fn insert_account_info(&mut self, address: Address, info: AccountInfo) { + tracing::info!("inserting account info: {:?} -> {:?}", address, info); match self.accounts.entry(address) { Entry::Occupied(entry) => assert_eq!(info, entry.get().info), Entry::Vacant(entry) => {