From ccae19206b5a08a517dfa8d4f6ed6f7d50044e56 Mon Sep 17 00:00:00 2001 From: Vid Kersic Date: Sun, 24 Mar 2024 23:29:04 +0100 Subject: [PATCH] feat: eth_sendRawTransactionConditional --- Cargo.lock | 1295 ++++++++--------- Cargo.toml | 4 +- Makefile | 2 +- bin/silius/src/bundler.rs | 19 +- crates/bundler/Cargo.toml | 1 - crates/bundler/src/bundler.rs | 18 +- crates/bundler/src/conditional.rs | 89 ++ crates/bundler/src/ethereum.rs | 13 +- crates/bundler/src/flashbots.rs | 9 +- crates/bundler/src/lib.rs | 2 + crates/contracts/Cargo.toml | 4 +- crates/contracts/src/entry_point.rs | 2 + crates/grpc/src/bundler.rs | 23 +- crates/grpc/src/proto.rs | 41 + crates/grpc/src/protos/types/types.proto | 13 +- crates/grpc/src/protos/uopool/uopool.proto | 1 + crates/grpc/src/uopool.rs | 8 +- crates/mempool/Cargo.toml | 1 - crates/mempool/src/uopool.rs | 29 +- crates/mempool/src/validate/mod.rs | 4 +- .../simulation/verification_extra_gas.rs | 2 +- crates/mempool/src/validate/utils.rs | 37 +- crates/mempool/src/validate/validator.rs | 2 +- crates/primitives/Cargo.toml | 1 - crates/primitives/src/bundler.rs | 2 + crates/primitives/src/simulation.rs | 6 +- tests/src/tracer_tests.rs | 1 + 27 files changed, 883 insertions(+), 746 deletions(-) create mode 100644 crates/bundler/src/conditional.rs diff --git a/Cargo.lock b/Cargo.lock index d2b8a5ae..e7742c6e 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -94,7 +94,7 @@ dependencies = [ "aes 0.8.4", "cipher 0.4.4", "ctr 0.9.2", - "ghash 0.5.0", + "ghash 0.5.1", "subtle", ] @@ -111,9 +111,9 @@ dependencies = [ [[package]] name = "ahash" -version = "0.8.7" +version = "0.8.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "77c3a9648d43b9cd48db467b3f87fdd6e146bcc88ab0180006cef2179fe11d01" +checksum = "e89da841a80418a9b391ebaea17f5c112ffaaa96f621d2c285b5174da76b9011" dependencies = [ "cfg-if", "once_cell", @@ -123,9 +123,9 @@ dependencies = [ [[package]] name = "aho-corasick" -version = "1.1.2" +version = "1.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b2969dcb958b36655471fc61f7e416fa76033bdd4bfed0678d8fee1e2d07a1f0" +checksum = "8e60d3430d3a69478ad0993f19238d2df97c507009a52b3c10addcd7f6bcb916" dependencies = [ "memchr", ] @@ -138,13 +138,13 @@ checksum = "0942ffc6dcaadf03badf6e6a2d0228460359d5e34b57ccdc720b7382dfbd5ec5" [[package]] name = "alloy-chains" -version = "0.1.14" +version = "0.1.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "973deb9e9d5db1f28c2a478073aeb435f1c07f72cf5935caa0c421e6b68f2db1" +checksum = "e96c81b05c893348760f232c4cc6a6a77fd91cfb09885d4eaad25cd03bd7732e" dependencies = [ "num_enum", "serde", - "strum 0.26.1", + "strum 0.26.2", ] [[package]] @@ -186,12 +186,12 @@ checksum = "970e5cf1ca089e964d4f7f7afc7c9ad642bfb1bdc695a20b0cba3b3c28954774" dependencies = [ "const-hex", "dunce", - "heck", - "indexmap 2.2.3", + "heck 0.4.1", + "indexmap 2.2.6", "proc-macro-error", "proc-macro2", "quote", - "syn 2.0.49", + "syn 2.0.58", "syn-solidity", "tiny-keccak", ] @@ -225,9 +225,9 @@ dependencies = [ [[package]] name = "anstream" -version = "0.6.11" +version = "0.6.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6e2e1ebcb11de5c03c67de28a7df593d32191b44939c482e97702baaaa6ab6a5" +checksum = "d96bd03f33fe50a863e394ee9718a706f988b9079b20c3784fb726e7678b62fb" dependencies = [ "anstyle", "anstyle-parse", @@ -273,9 +273,9 @@ dependencies = [ [[package]] name = "anyhow" -version = "1.0.79" +version = "1.0.81" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "080e9890a082662b09c1ad45f567faeeb47f22b5fb23895fbe1e651e718e25ca" +checksum = "0952808a6c2afd1aa8947271f3a60f1a6763c7b912d210184c5149b5cf147247" [[package]] name = "ark-ff" @@ -478,9 +478,9 @@ checksum = "155a5a185e42c6b77ac7b88a15143d930a9e9727a5b7b77eed417404ab15c247" [[package]] name = "async-io" -version = "2.3.1" +version = "2.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8f97ab0c5b00a7cdbe5a371b9a782ee7be1316095885c8a4ea1daf490eb0ef65" +checksum = "dcccb0f599cfa2f8ace422d3555572f47424da5648a4382a9dd0310ff8210884" dependencies = [ "async-lock", "cfg-if", @@ -508,13 +508,13 @@ dependencies = [ [[package]] name = "async-recursion" -version = "1.0.5" +version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5fd55a5ba1179988837d24ab4c7cc8ed6efdeff578ede0416b4225a5fca35bd0" +checksum = "30c5ef0ede93efbf733c1a727f3b6b5a1060bbedd5600183e66f6e4be4af0ec5" dependencies = [ "proc-macro2", "quote", - "syn 2.0.49", + "syn 2.0.58", ] [[package]] @@ -536,18 +536,18 @@ checksum = "16e62a023e7c117e27523144c5d2459f4397fcc3cab0085af8e2224f643a0193" dependencies = [ "proc-macro2", "quote", - "syn 2.0.49", + "syn 2.0.58", ] [[package]] name = "async-trait" -version = "0.1.77" +version = "0.1.79" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c980ee35e870bd1a4d2c8294d4c04d0499e67bca1e4b5cefcc693c2fa00caea9" +checksum = "a507401cad91ec6a857ed5513a2073c82a9b9048762b885bb98655b306964681" dependencies = [ "proc-macro2", "quote", - "syn 2.0.49", + "syn 2.0.58", ] [[package]] @@ -609,26 +609,26 @@ dependencies = [ [[package]] name = "auto_impl" -version = "1.1.2" +version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "823b8bb275161044e2ac7a25879cb3e2480cb403e3943022c7c769c599b756aa" +checksum = "3c87f3f15e7794432337fc718554eaa4dc8f04c9677a950ffe366f20a162ae42" dependencies = [ "proc-macro2", "quote", - "syn 2.0.49", + "syn 2.0.58", ] [[package]] name = "autocfg" -version = "1.1.0" +version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa" +checksum = "f1fdabc7756949593fe60f30ec81974b613357de856987752631dea1e3394c80" [[package]] name = "autotools" -version = "0.2.6" +version = "0.2.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aef8da1805e028a172334c3b680f93e71126f2327622faef2ec3d893c0a4ad77" +checksum = "ef941527c41b0fc0dd48511a8154cd5fc7e29200a0ff8b7203c5d777dbc795cf" dependencies = [ "cc", ] @@ -680,9 +680,9 @@ dependencies = [ [[package]] name = "backtrace" -version = "0.3.69" +version = "0.3.71" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2089b7e3f35b9dd2d0ed921ead4f6d318c27680d4a5bd167b3ee120edb105837" +checksum = "26b05800d2e817c8b3b4b54abd461726265fa9789ae34330622f2db9ee696f9d" dependencies = [ "addr2line", "cc", @@ -717,6 +717,12 @@ version = "0.21.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9d297deb1925b89f2ccc13d7635fa0714f12c87adce1c75356b39ca9b7178567" +[[package]] +name = "base64" +version = "0.22.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9475866fec1451be56a3c2400fd081ff546538961565ccb5b7142cbd22bc7a51" + [[package]] name = "base64ct" version = "1.6.0" @@ -800,9 +806,9 @@ checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" [[package]] name = "bitflags" -version = "2.4.2" +version = "2.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ed570934406eb16438a4e976b1b4500774099c13b8cb96eec99f620f05090ddf" +checksum = "cf4b9d6a944f767f8e5e0db018570623c85f3d925ac718db4e06d0187adb21c1" [[package]] name = "bitvec" @@ -855,9 +861,9 @@ dependencies = [ [[package]] name = "bs58" -version = "0.5.0" +version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f5353f36341f7451062466f0b755b96ac3a9547e4d7f6b70d603fc721a7d7896" +checksum = "bf88ba1141d185c399bee5288d850d63b8369520c1eafc32a0430b5b6c287bf4" dependencies = [ "sha2 0.10.8", "tinyvec", @@ -871,9 +877,9 @@ checksum = "b4ae4235e6dac0694637c763029ecea1a2ec9e4e06ec2729bd21ba4d9c863eb7" [[package]] name = "bumpalo" -version = "3.15.0" +version = "3.16.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d32a994c2b3ca201d9b263612a374263f05e7adde37c4707f693dcd375076d1f" +checksum = "79296716171880943b8470b5f8d03aa55eb2e645a4874bdbb28adb49162e012c" [[package]] name = "byte-slice-cast" @@ -889,9 +895,9 @@ checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b" [[package]] name = "bytes" -version = "1.5.0" +version = "1.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a2bd12c1caf447e69cd4528f47f94d203fd2582878ecb9e9465484c4148a8223" +checksum = "514de17de45fdb8dc022b1a7975556c53c86f9f0aa5f534b98977b171857c2c9" dependencies = [ "serde", ] @@ -928,25 +934,11 @@ dependencies = [ [[package]] name = "cargo-platform" -version = "0.1.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "694c8807f2ae16faecc43dc17d74b3eb042482789fd0eb64b39a2e04e087053f" -dependencies = [ - "serde", -] - -[[package]] -name = "cargo_metadata" -version = "0.17.0" +version = "0.1.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e7daec1a2a2129eeba1644b220b4647ec537b0b5d4bfd6876fcc5a540056b592" +checksum = "24b1f0365a6c6bb4020cd05806fd0d33c44d38046b8bd7f0e40814b9763cabfc" dependencies = [ - "camino", - "cargo-platform", - "semver 1.0.21", "serde", - "serde_json", - "thiserror", ] [[package]] @@ -957,7 +949,7 @@ checksum = "2d886547e41f740c616ae73108f6eb70afe6d940c7bc697cb30f13daec073037" dependencies = [ "camino", "cargo-platform", - "semver 1.0.21", + "semver 1.0.22", "serde", "serde_json", "thiserror", @@ -965,9 +957,9 @@ dependencies = [ [[package]] name = "cc" -version = "1.0.83" +version = "1.0.92" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f1174fb0b6ec23863f8b971027804a42614e347eafb0a95bf0b12cdae21fc4d0" +checksum = "2678b2e3449475e95b0aa6f9b506a28e61b3dc8996592b983695e8ebb58a8b41" dependencies = [ "jobserver", "libc", @@ -1014,9 +1006,9 @@ dependencies = [ [[package]] name = "chrono" -version = "0.4.35" +version = "0.4.37" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8eaf5903dcbc0a39312feb77df2ff4c76387d591b9fc7b04a238dcf8bb62639a" +checksum = "8a0d04d43504c61aa6c7531f1871dd0d418d91130162063b789da00fd7057a5e" dependencies = [ "android-tzdata", "iana-time-zone", @@ -1024,7 +1016,7 @@ dependencies = [ "num-traits", "serde", "wasm-bindgen", - "windows-targets 0.52.0", + "windows-targets 0.52.4", ] [[package]] @@ -1060,9 +1052,9 @@ dependencies = [ [[package]] name = "clap" -version = "4.5.1" +version = "4.5.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c918d541ef2913577a0f9566e9ce27cb35b6df072075769e0b26cb5a554520da" +checksum = "90bc066a67923782aa8515dbaea16946c5bcc5addbd668bb80af688e53e548a0" dependencies = [ "clap_builder", "clap_derive", @@ -1070,26 +1062,26 @@ dependencies = [ [[package]] name = "clap_builder" -version = "4.5.1" +version = "4.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9f3e7391dad68afb0c2ede1bf619f579a3dc9c2ec67f089baa397123a2f3d1eb" +checksum = "ae129e2e766ae0ec03484e609954119f123cc1fe650337e155d03b022f24f7b4" dependencies = [ "anstream", "anstyle", "clap_lex", - "strsim 0.11.0", + "strsim 0.11.1", ] [[package]] name = "clap_derive" -version = "4.5.0" +version = "4.5.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "307bc0538d5f0f83b8248db3087aa92fe504e4691294d0c96c0eabc33f47ba47" +checksum = "528131438037fd55894f62d6e9f068b8f45ac57ffa77517819645d10aed04f64" dependencies = [ - "heck", + "heck 0.5.0", "proc-macro2", "quote", - "syn 2.0.49", + "syn 2.0.58", ] [[package]] @@ -1114,7 +1106,7 @@ dependencies = [ "proc-macro2", "quote", "serde", - "syn 2.0.49", + "syn 2.0.58", ] [[package]] @@ -1186,9 +1178,9 @@ dependencies = [ [[package]] name = "const-hex" -version = "1.11.0" +version = "1.11.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "18d59688ad0945eaf6b84cb44fedbe93484c81b48970e98f09db8a22832d7961" +checksum = "5ba00838774b4ab0233e355d26710fbfc8327a05c017f6dc4873f876d1f79f78" dependencies = [ "cfg-if", "cpufeatures", @@ -1260,9 +1252,9 @@ dependencies = [ [[package]] name = "crc" -version = "3.0.1" +version = "3.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "86ec7a15cbe22e59248fc7eadb1907dab5ba09372595da4d73dd805ed4417dfe" +checksum = "69e6e4d7b33a94f0991c26729976b10ebde1d34c3ee82408fb536164fa10d636" dependencies = [ "crc-catalog", ] @@ -1404,14 +1396,14 @@ checksum = "f46882e17999c6cc590af592290432be3bce0428cb0d5f8b6715e4dc7b383eb3" dependencies = [ "proc-macro2", "quote", - "syn 2.0.49", + "syn 2.0.58", ] [[package]] name = "darling" -version = "0.20.6" +version = "0.20.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c376d08ea6aa96aafe61237c7200d1241cb177b7d3a542d791f2d118e9cbb955" +checksum = "54e36fcd13ed84ffdfda6f5be89b31287cbb80c439841fe69e04841435464391" dependencies = [ "darling_core", "darling_macro", @@ -1419,27 +1411,27 @@ dependencies = [ [[package]] name = "darling_core" -version = "0.20.6" +version = "0.20.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "33043dcd19068b8192064c704b3f83eb464f91f1ff527b44a4e2b08d9cdb8855" +checksum = "9c2cf1c23a687a1feeb728783b993c4e1ad83d99f351801977dd809b48d0a70f" dependencies = [ "fnv", "ident_case", "proc-macro2", "quote", "strsim 0.10.0", - "syn 2.0.49", + "syn 2.0.58", ] [[package]] name = "darling_macro" -version = "0.20.6" +version = "0.20.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c5a91391accf613803c2a9bf9abccdbaa07c54b4244a5b64883f9c3c137c86be" +checksum = "a668eda54683121533a393014d8692171709ff57a7d61f187b6e782719f8933f" dependencies = [ "darling_core", "quote", - "syn 2.0.49", + "syn 2.0.58", ] [[package]] @@ -1480,9 +1472,9 @@ dependencies = [ [[package]] name = "der" -version = "0.7.8" +version = "0.7.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fffa369a668c8af7dbf8b5e56c9f744fbd399949ed171606040001947de40b1c" +checksum = "f55bf8e7b65898637379c1b74eb1551107c8294ed26d855ceb9fd1a09cfc9bc0" dependencies = [ "const-oid", "zeroize", @@ -1536,12 +1528,6 @@ dependencies = [ "syn 1.0.109", ] -[[package]] -name = "diff" -version = "0.1.13" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "56254986775e3233ffa9c4d7d3faaf6d36a2c09d30b20687e9f88bc8bafc16c8" - [[package]] name = "digest" version = "0.9.0" @@ -1615,7 +1601,7 @@ dependencies = [ "aes-gcm 0.9.2", "arrayvec", "delay_map", - "enr 0.10.0", + "enr", "fnv", "futures", "hashlink", @@ -1623,12 +1609,12 @@ dependencies = [ "hkdf", "lazy_static", "libp2p", - "lru 0.12.2", + "lru 0.12.3", "more-asserts", "parking_lot 0.11.2", "rand 0.8.5", "rlp", - "smallvec 1.13.1", + "smallvec 1.13.2", "socket2 0.4.10", "tokio", "tracing", @@ -1644,7 +1630,7 @@ checksum = "487585f4d0c6655fe74905e2504d8ad6908e4db67f744eb140876906c2f3175d" dependencies = [ "proc-macro2", "quote", - "syn 2.0.49", + "syn 2.0.58", ] [[package]] @@ -1777,24 +1763,6 @@ version = "0.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c34f04666d835ff5d62e058c3995147c06f42fe86ff053337632bca83e42702d" -[[package]] -name = "enr" -version = "0.9.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fe81b5c06ecfdbc71dd845216f225f53b62a10cb8a16c946836a3467f701d05b" -dependencies = [ - "base64 0.21.7", - "bytes", - "hex", - "k256", - "log", - "rand 0.8.5", - "rlp", - "serde", - "sha3", - "zeroize", -] - [[package]] name = "enr" version = "0.10.0" @@ -1820,10 +1788,10 @@ version = "0.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5ffccbb6966c05b32ef8fbac435df276c4ae4d3dc55a8cd0eb9745e6c12f546a" dependencies = [ - "heck", + "heck 0.4.1", "proc-macro2", "quote", - "syn 2.0.49", + "syn 2.0.58", ] [[package]] @@ -1836,7 +1804,7 @@ dependencies = [ "num-traits", "proc-macro2", "quote", - "syn 2.0.49", + "syn 2.0.58", ] [[package]] @@ -1847,7 +1815,7 @@ checksum = "6fd000fd6988e73bbe993ea3db9b1aa64906ab88766d654973924340c8cddb42" dependencies = [ "proc-macro2", "quote", - "syn 2.0.49", + "syn 2.0.58", ] [[package]] @@ -1868,7 +1836,16 @@ dependencies = [ "darling", "proc-macro2", "quote", - "syn 2.0.49", + "syn 2.0.58", +] + +[[package]] +name = "env_filter" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a009aa4810eb158359dda09d0c87378e4bbb89b5a801f016885a4707ba24f7ea" +dependencies = [ + "log", ] [[package]] @@ -1884,6 +1861,16 @@ dependencies = [ "termcolor", ] +[[package]] +name = "env_logger" +version = "0.11.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "38b35839ba51819680ba087cd351788c9a3c476841207e0b8cee0b04722343b9" +dependencies = [ + "env_filter", + "log", +] + [[package]] name = "equivalent" version = "1.0.1" @@ -1972,41 +1959,42 @@ dependencies = [ [[package]] name = "ethers" -version = "2.0.8" -source = "git+https://github.com/Vid201/ethers-rs?branch=chore/ws#d9c2bafd0c462a5b009fb1712c6cc5c866e0ef73" +version = "2.0.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "816841ea989f0c69e459af1cf23a6b0033b19a55424a1ea3a30099becdb8dec0" dependencies = [ - "ethers-addressbook 2.0.8", - "ethers-contract 2.0.8", - "ethers-core 2.0.8", - "ethers-etherscan 2.0.8", - "ethers-middleware 2.0.8", - "ethers-providers 2.0.8", - "ethers-signers 2.0.8", - "ethers-solc 2.0.8", + "ethers-addressbook 2.0.14 (registry+https://github.com/rust-lang/crates.io-index)", + "ethers-contract 2.0.14 (registry+https://github.com/rust-lang/crates.io-index)", + "ethers-core 2.0.14 (registry+https://github.com/rust-lang/crates.io-index)", + "ethers-etherscan 2.0.14 (registry+https://github.com/rust-lang/crates.io-index)", + "ethers-middleware 2.0.14 (registry+https://github.com/rust-lang/crates.io-index)", + "ethers-providers 2.0.14 (registry+https://github.com/rust-lang/crates.io-index)", + "ethers-signers 2.0.14 (registry+https://github.com/rust-lang/crates.io-index)", + "ethers-solc 2.0.14 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "ethers" -version = "2.0.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9ba3fd516c15a9a587135229466dbbfc85796de55c5660afbbb1b1c78517d85c" +version = "2.0.14" +source = "git+https://github.com/Vid201/ethers-rs?branch=feat/patch#c9de1525d69f601790e7d5ae44d34d85b615d62f" dependencies = [ - "ethers-addressbook 2.0.13", - "ethers-contract 2.0.13", - "ethers-core 2.0.13 (registry+https://github.com/rust-lang/crates.io-index)", - "ethers-etherscan 2.0.13", - "ethers-middleware 2.0.13", - "ethers-providers 2.0.13", - "ethers-signers 2.0.13", - "ethers-solc 2.0.9", + "ethers-addressbook 2.0.14 (git+https://github.com/Vid201/ethers-rs?branch=feat/patch)", + "ethers-contract 2.0.14 (git+https://github.com/Vid201/ethers-rs?branch=feat/patch)", + "ethers-core 2.0.14 (git+https://github.com/Vid201/ethers-rs?branch=feat/patch)", + "ethers-etherscan 2.0.14 (git+https://github.com/Vid201/ethers-rs?branch=feat/patch)", + "ethers-middleware 2.0.14 (git+https://github.com/Vid201/ethers-rs?branch=feat/patch)", + "ethers-providers 2.0.14 (git+https://github.com/Vid201/ethers-rs?branch=feat/patch)", + "ethers-signers 2.0.14 (git+https://github.com/Vid201/ethers-rs?branch=feat/patch)", + "ethers-solc 2.0.14 (git+https://github.com/Vid201/ethers-rs?branch=feat/patch)", ] [[package]] name = "ethers-addressbook" -version = "2.0.8" -source = "git+https://github.com/Vid201/ethers-rs?branch=chore/ws#d9c2bafd0c462a5b009fb1712c6cc5c866e0ef73" +version = "2.0.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5495afd16b4faa556c3bba1f21b98b4983e53c1755022377051a975c3b021759" dependencies = [ - "ethers-core 2.0.8", + "ethers-core 2.0.14 (registry+https://github.com/rust-lang/crates.io-index)", "once_cell", "serde", "serde_json", @@ -2014,11 +2002,10 @@ dependencies = [ [[package]] name = "ethers-addressbook" -version = "2.0.13" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "35dc9a249c066d17e8947ff52a4116406163cf92c7f0763cb8c001760b26403f" +version = "2.0.14" +source = "git+https://github.com/Vid201/ethers-rs?branch=feat/patch#c9de1525d69f601790e7d5ae44d34d85b615d62f" dependencies = [ - "ethers-core 2.0.13 (registry+https://github.com/rust-lang/crates.io-index)", + "ethers-core 2.0.14 (git+https://github.com/Vid201/ethers-rs?branch=feat/patch)", "once_cell", "serde", "serde_json", @@ -2026,15 +2013,15 @@ dependencies = [ [[package]] name = "ethers-contract" -version = "2.0.8" -source = "git+https://github.com/Vid201/ethers-rs?branch=chore/ws#d9c2bafd0c462a5b009fb1712c6cc5c866e0ef73" +version = "2.0.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6fceafa3578c836eeb874af87abacfb041f92b4da0a78a5edd042564b8ecdaaa" dependencies = [ "const-hex", - "ethers-contract-abigen 2.0.8", - "ethers-contract-derive 2.0.8", - "ethers-core 2.0.8", - "ethers-providers 2.0.8", - "ethers-signers 2.0.8", + "ethers-contract-abigen 2.0.14 (registry+https://github.com/rust-lang/crates.io-index)", + "ethers-contract-derive 2.0.14 (registry+https://github.com/rust-lang/crates.io-index)", + "ethers-core 2.0.14 (registry+https://github.com/rust-lang/crates.io-index)", + "ethers-providers 2.0.14 (registry+https://github.com/rust-lang/crates.io-index)", "futures-util", "once_cell", "pin-project", @@ -2045,15 +2032,14 @@ dependencies = [ [[package]] name = "ethers-contract" -version = "2.0.13" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "43304317c7f776876e47f2f637859f6d0701c1ec7930a150f169d5fbe7d76f5a" +version = "2.0.14" +source = "git+https://github.com/Vid201/ethers-rs?branch=feat/patch#c9de1525d69f601790e7d5ae44d34d85b615d62f" dependencies = [ "const-hex", - "ethers-contract-abigen 2.0.13", - "ethers-contract-derive 2.0.13", - "ethers-core 2.0.13 (registry+https://github.com/rust-lang/crates.io-index)", - "ethers-providers 2.0.13", + "ethers-contract-abigen 2.0.14 (git+https://github.com/Vid201/ethers-rs?branch=feat/patch)", + "ethers-contract-derive 2.0.14 (git+https://github.com/Vid201/ethers-rs?branch=feat/patch)", + "ethers-core 2.0.14 (git+https://github.com/Vid201/ethers-rs?branch=feat/patch)", + "ethers-providers 2.0.14 (git+https://github.com/Vid201/ethers-rs?branch=feat/patch)", "futures-util", "once_cell", "pin-project", @@ -2064,14 +2050,15 @@ dependencies = [ [[package]] name = "ethers-contract-abigen" -version = "2.0.8" -source = "git+https://github.com/Vid201/ethers-rs?branch=chore/ws#d9c2bafd0c462a5b009fb1712c6cc5c866e0ef73" +version = "2.0.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "04ba01fbc2331a38c429eb95d4a570166781f14290ef9fdb144278a90b5a739b" dependencies = [ "Inflector", "const-hex", "dunce", - "ethers-core 2.0.8", - "ethers-etherscan 2.0.8", + "ethers-core 2.0.14 (registry+https://github.com/rust-lang/crates.io-index)", + "ethers-etherscan 2.0.14 (registry+https://github.com/rust-lang/crates.io-index)", "eyre", "prettyplease", "proc-macro2", @@ -2080,22 +2067,21 @@ dependencies = [ "reqwest", "serde", "serde_json", - "syn 2.0.49", - "toml 0.7.8", + "syn 2.0.58", + "toml", "walkdir", ] [[package]] name = "ethers-contract-abigen" -version = "2.0.13" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f9f96502317bf34f6d71a3e3d270defaa9485d754d789e15a8e04a84161c95eb" +version = "2.0.14" +source = "git+https://github.com/Vid201/ethers-rs?branch=feat/patch#c9de1525d69f601790e7d5ae44d34d85b615d62f" dependencies = [ "Inflector", "const-hex", "dunce", - "ethers-core 2.0.13 (registry+https://github.com/rust-lang/crates.io-index)", - "ethers-etherscan 2.0.13", + "ethers-core 2.0.14 (git+https://github.com/Vid201/ethers-rs?branch=feat/patch)", + "ethers-etherscan 2.0.14 (git+https://github.com/Vid201/ethers-rs?branch=feat/patch)", "eyre", "prettyplease", "proc-macro2", @@ -2104,50 +2090,51 @@ dependencies = [ "reqwest", "serde", "serde_json", - "syn 2.0.49", - "toml 0.8.2", + "syn 2.0.58", + "toml", "walkdir", ] [[package]] name = "ethers-contract-derive" -version = "2.0.8" -source = "git+https://github.com/Vid201/ethers-rs?branch=chore/ws#d9c2bafd0c462a5b009fb1712c6cc5c866e0ef73" +version = "2.0.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "87689dcabc0051cde10caaade298f9e9093d65f6125c14575db3fd8c669a168f" dependencies = [ "Inflector", "const-hex", - "ethers-contract-abigen 2.0.8", - "ethers-core 2.0.8", + "ethers-contract-abigen 2.0.14 (registry+https://github.com/rust-lang/crates.io-index)", + "ethers-core 2.0.14 (registry+https://github.com/rust-lang/crates.io-index)", "proc-macro2", "quote", "serde_json", - "syn 2.0.49", + "syn 2.0.58", ] [[package]] name = "ethers-contract-derive" -version = "2.0.13" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "452ff6b0a64507ce8d67ffd48b1da3b42f03680dcf5382244e9c93822cbbf5de" +version = "2.0.14" +source = "git+https://github.com/Vid201/ethers-rs?branch=feat/patch#c9de1525d69f601790e7d5ae44d34d85b615d62f" dependencies = [ "Inflector", "const-hex", - "ethers-contract-abigen 2.0.13", - "ethers-core 2.0.13 (registry+https://github.com/rust-lang/crates.io-index)", + "ethers-contract-abigen 2.0.14 (git+https://github.com/Vid201/ethers-rs?branch=feat/patch)", + "ethers-core 2.0.14 (git+https://github.com/Vid201/ethers-rs?branch=feat/patch)", "proc-macro2", "quote", "serde_json", - "syn 2.0.49", + "syn 2.0.58", ] [[package]] name = "ethers-core" -version = "2.0.8" -source = "git+https://github.com/Vid201/ethers-rs?branch=chore/ws#d9c2bafd0c462a5b009fb1712c6cc5c866e0ef73" +version = "2.0.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "82d80cc6ad30b14a48ab786523af33b37f28a8623fc06afd55324816ef18fb1f" dependencies = [ "arrayvec", "bytes", - "cargo_metadata 0.17.0", + "cargo_metadata", "chrono", "const-hex", "elliptic-curve", @@ -2161,8 +2148,8 @@ dependencies = [ "rlp", "serde", "serde_json", - "strum 0.25.0", - "syn 2.0.49", + "strum 0.26.2", + "syn 2.0.58", "tempfile", "thiserror", "tiny-keccak", @@ -2171,13 +2158,12 @@ dependencies = [ [[package]] name = "ethers-core" -version = "2.0.13" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aab3cef6cc1c9fd7f787043c81ad3052eff2b96a3878ef1526aa446311bdbfc9" +version = "2.0.14" +source = "git+https://github.com/Vid201/ethers-rs?branch=feat/patch#c9de1525d69f601790e7d5ae44d34d85b615d62f" dependencies = [ "arrayvec", "bytes", - "cargo_metadata 0.18.1", + "cargo_metadata", "chrono", "const-hex", "elliptic-curve", @@ -2191,8 +2177,8 @@ dependencies = [ "rlp", "serde", "serde_json", - "strum 0.25.0", - "syn 2.0.49", + "strum 0.26.2", + "syn 2.0.58", "tempfile", "thiserror", "tiny-keccak", @@ -2201,8 +2187,8 @@ dependencies = [ [[package]] name = "ethers-core" -version = "2.0.13" -source = "git+https://github.com/gakonst/ethers-rs#2ce5014beaca1d656ec59d4e0845e33586ba3a5c" +version = "2.0.14" +source = "git+https://github.com/gakonst/ethers-rs#5394d899adca736a602e316e6f0c06fdb5aa64b9" dependencies = [ "arrayvec", "bytes", @@ -2218,7 +2204,7 @@ dependencies = [ "rlp", "serde", "serde_json", - "strum 0.26.1", + "strum 0.26.2", "tempfile", "thiserror", "tiny-keccak", @@ -2227,12 +2213,14 @@ dependencies = [ [[package]] name = "ethers-etherscan" -version = "2.0.8" -source = "git+https://github.com/Vid201/ethers-rs?branch=chore/ws#d9c2bafd0c462a5b009fb1712c6cc5c866e0ef73" +version = "2.0.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e79e5973c26d4baf0ce55520bd732314328cabe53193286671b47144145b9649" dependencies = [ - "ethers-core 2.0.8", + "chrono", + "ethers-core 2.0.14 (registry+https://github.com/rust-lang/crates.io-index)", "reqwest", - "semver 1.0.21", + "semver 1.0.22", "serde", "serde_json", "thiserror", @@ -2241,14 +2229,13 @@ dependencies = [ [[package]] name = "ethers-etherscan" -version = "2.0.13" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "16d45b981f5fa769e1d0343ebc2a44cfa88c9bc312eb681b676318b40cef6fb1" +version = "2.0.14" +source = "git+https://github.com/Vid201/ethers-rs?branch=feat/patch#c9de1525d69f601790e7d5ae44d34d85b615d62f" dependencies = [ "chrono", - "ethers-core 2.0.13 (registry+https://github.com/rust-lang/crates.io-index)", + "ethers-core 2.0.14 (git+https://github.com/Vid201/ethers-rs?branch=feat/patch)", "reqwest", - "semver 1.0.21", + "semver 1.0.22", "serde", "serde_json", "thiserror", @@ -2262,7 +2249,7 @@ source = "git+https://github.com/qi-protocol/ethers-flashbots.git?rev=1c6504cd2d dependencies = [ "async-trait", "chrono", - "ethers 2.0.8", + "ethers 2.0.14 (git+https://github.com/Vid201/ethers-rs?branch=feat/patch)", "futures-core", "futures-util", "pin-project", @@ -2280,7 +2267,7 @@ source = "git+https://github.com/da-bao-jian/ethers-flashbots.git?rev=1eda9b7bb8 dependencies = [ "async-trait", "chrono", - "ethers 2.0.9", + "ethers 2.0.14 (registry+https://github.com/rust-lang/crates.io-index)", "futures-core", "futures-util", "pin-project", @@ -2293,16 +2280,16 @@ dependencies = [ [[package]] name = "ethers-middleware" -version = "2.0.8" -source = "git+https://github.com/Vid201/ethers-rs?branch=chore/ws#d9c2bafd0c462a5b009fb1712c6cc5c866e0ef73" +version = "2.0.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "48f9fdf09aec667c099909d91908d5eaf9be1bd0e2500ba4172c1d28bfaa43de" dependencies = [ "async-trait", "auto_impl", - "ethers-contract 2.0.8", - "ethers-core 2.0.8", - "ethers-etherscan 2.0.8", - "ethers-providers 2.0.8", - "ethers-signers 2.0.8", + "ethers-contract 2.0.14 (registry+https://github.com/rust-lang/crates.io-index)", + "ethers-core 2.0.14 (registry+https://github.com/rust-lang/crates.io-index)", + "ethers-providers 2.0.14 (registry+https://github.com/rust-lang/crates.io-index)", + "ethers-signers 2.0.14 (registry+https://github.com/rust-lang/crates.io-index)", "futures-channel", "futures-locks", "futures-util", @@ -2319,16 +2306,16 @@ dependencies = [ [[package]] name = "ethers-middleware" -version = "2.0.13" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "145211f34342487ef83a597c1e69f0d3e01512217a7c72cc8a25931854c7dca0" +version = "2.0.14" +source = "git+https://github.com/Vid201/ethers-rs?branch=feat/patch#c9de1525d69f601790e7d5ae44d34d85b615d62f" dependencies = [ "async-trait", "auto_impl", - "ethers-contract 2.0.13", - "ethers-core 2.0.13 (registry+https://github.com/rust-lang/crates.io-index)", - "ethers-providers 2.0.13", - "ethers-signers 2.0.13", + "ethers-contract 2.0.14 (git+https://github.com/Vid201/ethers-rs?branch=feat/patch)", + "ethers-core 2.0.14 (git+https://github.com/Vid201/ethers-rs?branch=feat/patch)", + "ethers-etherscan 2.0.14 (git+https://github.com/Vid201/ethers-rs?branch=feat/patch)", + "ethers-providers 2.0.14 (git+https://github.com/Vid201/ethers-rs?branch=feat/patch)", + "ethers-signers 2.0.14 (git+https://github.com/Vid201/ethers-rs?branch=feat/patch)", "futures-channel", "futures-locks", "futures-util", @@ -2345,18 +2332,17 @@ dependencies = [ [[package]] name = "ethers-providers" -version = "2.0.8" -source = "git+https://github.com/Vid201/ethers-rs?branch=chore/ws#d9c2bafd0c462a5b009fb1712c6cc5c866e0ef73" +version = "2.0.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6434c9a33891f1effc9c75472e12666db2fa5a0fec4b29af6221680a6fe83ab2" dependencies = [ - "async-recursion", "async-trait", "auto_impl", "base64 0.21.7", "bytes", "const-hex", - "enr 0.9.1", - "ethers-core 2.0.8", - "futures-channel", + "enr", + "ethers-core 2.0.14 (registry+https://github.com/rust-lang/crates.io-index)", "futures-core", "futures-timer", "futures-util", @@ -2371,7 +2357,7 @@ dependencies = [ "serde_json", "thiserror", "tokio", - "tokio-tungstenite 0.19.0", + "tokio-tungstenite", "tracing", "tracing-futures", "url", @@ -2383,17 +2369,18 @@ dependencies = [ [[package]] name = "ethers-providers" -version = "2.0.13" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fb6b15393996e3b8a78ef1332d6483c11d839042c17be58decc92fa8b1c3508a" +version = "2.0.14" +source = "git+https://github.com/Vid201/ethers-rs?branch=feat/patch#c9de1525d69f601790e7d5ae44d34d85b615d62f" dependencies = [ + "async-recursion", "async-trait", "auto_impl", - "base64 0.21.7", + "base64 0.22.0", "bytes", "const-hex", - "enr 0.9.1", - "ethers-core 2.0.13 (registry+https://github.com/rust-lang/crates.io-index)", + "enr", + "ethers-core 2.0.14 (git+https://github.com/Vid201/ethers-rs?branch=feat/patch)", + "futures-channel", "futures-core", "futures-timer", "futures-util", @@ -2408,7 +2395,7 @@ dependencies = [ "serde_json", "thiserror", "tokio", - "tokio-tungstenite 0.20.1", + "tokio-tungstenite", "tracing", "tracing-futures", "url", @@ -2420,8 +2407,9 @@ dependencies = [ [[package]] name = "ethers-signers" -version = "2.0.8" -source = "git+https://github.com/Vid201/ethers-rs?branch=chore/ws#d9c2bafd0c462a5b009fb1712c6cc5c866e0ef73" +version = "2.0.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "228875491c782ad851773b652dd8ecac62cda8571d3bc32a5853644dd26766c2" dependencies = [ "async-trait", "coins-bip32", @@ -2429,7 +2417,7 @@ dependencies = [ "const-hex", "elliptic-curve", "eth-keystore", - "ethers-core 2.0.8", + "ethers-core 2.0.14 (registry+https://github.com/rust-lang/crates.io-index)", "rand 0.8.5", "sha2 0.10.8", "thiserror", @@ -2438,9 +2426,8 @@ dependencies = [ [[package]] name = "ethers-signers" -version = "2.0.13" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b3b125a103b56aef008af5d5fb48191984aa326b50bfd2557d231dc499833de3" +version = "2.0.14" +source = "git+https://github.com/Vid201/ethers-rs?branch=feat/patch#c9de1525d69f601790e7d5ae44d34d85b615d62f" dependencies = [ "async-trait", "coins-bip32", @@ -2448,7 +2435,7 @@ dependencies = [ "const-hex", "elliptic-curve", "eth-keystore", - "ethers-core 2.0.13 (registry+https://github.com/rust-lang/crates.io-index)", + "ethers-core 2.0.14 (git+https://github.com/Vid201/ethers-rs?branch=feat/patch)", "rand 0.8.5", "sha2 0.10.8", "thiserror", @@ -2457,15 +2444,15 @@ dependencies = [ [[package]] name = "ethers-solc" -version = "2.0.8" -source = "git+https://github.com/Vid201/ethers-rs?branch=chore/ws#d9c2bafd0c462a5b009fb1712c6cc5c866e0ef73" +version = "2.0.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "66244a771d9163282646dbeffe0e6eca4dda4146b6498644e678ac6089b11edd" dependencies = [ "cfg-if", "const-hex", "dirs", "dunce", - "ethers-core 2.0.8", - "futures-util", + "ethers-core 2.0.14 (registry+https://github.com/rust-lang/crates.io-index)", "glob", "home", "md-5", @@ -2474,13 +2461,11 @@ dependencies = [ "path-slash", "rayon", "regex", - "semver 1.0.21", + "semver 1.0.22", "serde", "serde_json", - "sha2 0.10.8", "solang-parser", "svm-rs", - "svm-rs-builds", "thiserror", "tiny-keccak", "tokio", @@ -2491,15 +2476,15 @@ dependencies = [ [[package]] name = "ethers-solc" -version = "2.0.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "66559c8f774712df303c907d087275a52a2046b256791aaa566d5abc8ea66731" +version = "2.0.14" +source = "git+https://github.com/Vid201/ethers-rs?branch=feat/patch#c9de1525d69f601790e7d5ae44d34d85b615d62f" dependencies = [ "cfg-if", "const-hex", "dirs", "dunce", - "ethers-core 2.0.13 (registry+https://github.com/rust-lang/crates.io-index)", + "ethers-core 2.0.14 (git+https://github.com/Vid201/ethers-rs?branch=feat/patch)", + "futures-util", "glob", "home", "md-5", @@ -2508,11 +2493,13 @@ dependencies = [ "path-slash", "rayon", "regex", - "semver 1.0.21", + "semver 1.0.22", "serde", "serde_json", + "sha2 0.10.8", "solang-parser", "svm-rs", + "svm-rs-builds", "thiserror", "tiny-keccak", "tokio", @@ -2548,7 +2535,7 @@ version = "0.4.0-alpha" dependencies = [ "alloy-primitives", "alloy-sol-types", - "ethers 2.0.8", + "ethers 2.0.14 (git+https://github.com/Vid201/ethers-rs?branch=feat/patch)", "eyre", "reqwest", "serde", @@ -2564,7 +2551,7 @@ name = "examples-storage" version = "0.4.0-alpha" dependencies = [ "alloy-chains", - "ethers 2.0.8", + "ethers 2.0.14 (git+https://github.com/Vid201/ethers-rs?branch=feat/patch)", "eyre", "futures", "parking_lot 0.12.1", @@ -2579,7 +2566,7 @@ dependencies = [ name = "examples-user-operation" version = "0.4.0-alpha" dependencies = [ - "ethers 2.0.8", + "ethers 2.0.14 (git+https://github.com/Vid201/ethers-rs?branch=feat/patch)", "eyre", "silius-primitives", "tokio", @@ -2608,9 +2595,9 @@ dependencies = [ [[package]] name = "fastrand" -version = "2.0.1" +version = "2.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "25cbce373ec4653f1a01a31e8a5e5ec0c622dc27ff9c4e6606eefef5cbbed4a5" +checksum = "658bd65b1cf4c852a3cc96f18a8ce7b5640f6b703f905c7d74532294c2a63984" [[package]] name = "fastrlp" @@ -2635,9 +2622,9 @@ dependencies = [ [[package]] name = "fiat-crypto" -version = "0.2.6" +version = "0.2.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1676f435fc1dadde4d03e43f5d62b259e1ce5f40bd4ffb21db2b42ebe59c1382" +checksum = "c007b1ae3abe1cb6f85a16305acd418b7ca6343b953633fee2b76d8f108b830f" [[package]] name = "fixed-hash" @@ -2780,9 +2767,9 @@ checksum = "a44623e20b9681a318efdd71c299b6b222ed6f231972bfe2f224ebad6311f0c1" [[package]] name = "futures-lite" -version = "2.2.0" +version = "2.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "445ba825b27408685aaecefd65178908c36c6e96aaf6d8599419d46e624192ba" +checksum = "52527eb5074e35e9339c6b4e8d12600c7128b68fb25dcb9fa9dec18f7c25f3a5" dependencies = [ "futures-core", "pin-project-lite", @@ -2806,7 +2793,7 @@ checksum = "87750cf4b7a4c0625b1529e4c543c2182106e4dedc60a2a6455e00d212c489ac" dependencies = [ "proc-macro2", "quote", - "syn 2.0.49", + "syn 2.0.58", ] [[package]] @@ -2844,9 +2831,9 @@ dependencies = [ [[package]] name = "futures-timer" -version = "3.0.2" +version = "3.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e64b03909df88034c26dc1547e8970b91f98bdb65165d6a4e9110d94263dbb2c" +checksum = "f288b0a4f20f9a56b5d1da57e2227c661b7b16168e2f72365f57b63326e29b24" dependencies = [ "gloo-timers", "send_wrapper 0.4.0", @@ -2892,9 +2879,9 @@ dependencies = [ [[package]] name = "getrandom" -version = "0.2.12" +version = "0.2.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "190092ea657667030ac6a35e305e62fc4dd69fd98ac98631e5d3a2b1575a12b5" +checksum = "94b22e06ecb0110981051723910cbf0b5f5e09a2062dd7663334ee79a9d1286c" dependencies = [ "cfg-if", "libc", @@ -2913,12 +2900,12 @@ dependencies = [ [[package]] name = "ghash" -version = "0.5.0" +version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d930750de5717d2dd0b8c0d42c076c0e884c81a73e6cab859bbd2339c71e3e40" +checksum = "f0d8a4362ccb29cb0b265253fb0a2728f592895ee6854fd9bc13f2ffda266ff1" dependencies = [ "opaque-debug", - "polyval 0.6.1", + "polyval 0.6.2", ] [[package]] @@ -2944,7 +2931,7 @@ checksum = "53010ccb100b96a67bc32c0175f0ed1426b31b655d562898e57325f81c023ac0" dependencies = [ "proc-macro2", "quote", - "syn 2.0.49", + "syn 2.0.58", ] [[package]] @@ -3012,9 +2999,9 @@ dependencies = [ [[package]] name = "h2" -version = "0.3.24" +version = "0.3.26" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bb2c4422095b67ee78da96fbb51a4cc413b3b25883c7717ff7ca1ab31022c9c9" +checksum = "81fe527a889e1532da5c525686d96d4c2e74cdd345badf8dfef9f6b39dd5f5e8" dependencies = [ "bytes", "fnv", @@ -3022,7 +3009,7 @@ dependencies = [ "futures-sink", "futures-util", "http", - "indexmap 2.2.3", + "indexmap 2.2.6", "slab", "tokio", "tokio-util", @@ -3056,7 +3043,7 @@ version = "0.13.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "43a3c133739dddd0d2990f9a4bdf8eb4b21ef50e4851ca85ab661199821d510e" dependencies = [ - "ahash 0.8.7", + "ahash 0.8.11", "serde", ] @@ -3066,7 +3053,7 @@ version = "0.14.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "290f1a1d9242c78d09ce40a5e87e7554ee637af1351968159f4952f028f75604" dependencies = [ - "ahash 0.8.7", + "ahash 0.8.11", "allocator-api2", ] @@ -3108,11 +3095,17 @@ version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8" +[[package]] +name = "heck" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea" + [[package]] name = "hermit-abi" -version = "0.3.6" +version = "0.3.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bd5256b483761cd23699d0da46cc6fd2ee3be420bbe6d020ae4a091e70b7e9fd" +checksum = "d231dfb89cfffdbc30e7fc41579ed6066ad03abda9e567ccafae602b97ec5024" [[package]] name = "hex" @@ -3158,7 +3151,7 @@ dependencies = [ "ipnet", "once_cell", "rand 0.8.5", - "socket2 0.5.5", + "socket2 0.5.6", "thiserror", "tinyvec", "tokio", @@ -3181,7 +3174,7 @@ dependencies = [ "parking_lot 0.12.1", "rand 0.8.5", "resolv-conf", - "smallvec 1.13.1", + "smallvec 1.13.2", "thiserror", "tokio", "tracing", @@ -3248,9 +3241,9 @@ dependencies = [ [[package]] name = "http" -version = "0.2.11" +version = "0.2.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8947b1a6fad4393052c7ba1f4cd97bed3e953a95c79c92ad9b051a04611d9fbb" +checksum = "601cbb57e577e2f5ef5be8e7b83f0f63994f25aa94d673e54a92d5c516d101f1" dependencies = [ "bytes", "fnv", @@ -3309,7 +3302,7 @@ dependencies = [ "httpdate", "itoa", "pin-project-lite", - "socket2 0.5.5", + "socket2 0.5.6", "tokio", "tower-service", "tracing", @@ -3511,9 +3504,9 @@ dependencies = [ [[package]] name = "indexmap" -version = "2.2.3" +version = "2.2.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "233cf39063f058ea2caae4091bf4a3ef70a653afbc026f5c4a4135d114e3c177" +checksum = "168fb715dda47215e360912c096649d23d58bf392ac62f73919e831745e40f26" dependencies = [ "equivalent", "hashbrown 0.14.3", @@ -3544,7 +3537,7 @@ version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b58db92f96b720de98181bbbe63c831e87005ab460c1bf306eb2622b4707997f" dependencies = [ - "socket2 0.5.5", + "socket2 0.5.6", "widestring", "windows-sys 0.48.0", "winreg", @@ -3585,11 +3578,20 @@ dependencies = [ "either", ] +[[package]] +name = "itertools" +version = "0.12.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ba291022dbbd398a455acf126c1e341954079855bc60dfdda641363bd6922569" +dependencies = [ + "either", +] + [[package]] name = "itoa" -version = "1.0.10" +version = "1.0.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b1a46d1a171d865aa5f83f92695765caa047a9b4cbae2cbf37dbd613a793fd4c" +checksum = "49f1f14873335454500d59611f1cf4a4b0f786f9ac11f4312a78e4cf2566695b" [[package]] name = "jobserver" @@ -3602,9 +3604,9 @@ dependencies = [ [[package]] name = "js-sys" -version = "0.3.68" +version = "0.3.69" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "406cda4b368d531c842222cf9d2600a9a4acce8d29423695379c6868a143a9ee" +checksum = "29c15563dc2726973df627357ce0c9ddddbea194836909d655df6a75d2cf296d" dependencies = [ "wasm-bindgen", ] @@ -3704,7 +3706,7 @@ version = "0.21.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d94b7505034e2737e688e1153bf81e6f93ad296695c43958d6da2e4321f0a990" dependencies = [ - "heck", + "heck 0.4.1", "proc-macro-crate 2.0.2", "proc-macro2", "quote", @@ -3835,31 +3837,33 @@ dependencies = [ [[package]] name = "lalrpop" -version = "0.20.0" +version = "0.20.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "da4081d44f4611b66c6dd725e6de3169f9f63905421e8626fcb86b6a898998b8" +checksum = "55cb077ad656299f160924eb2912aa147d7339ea7d69e1b5517326fdcec3c1ca" dependencies = [ "ascii-canvas", "bit-set", - "diff", "ena", - "is-terminal", - "itertools 0.10.5", + "itertools 0.11.0", "lalrpop-util", "petgraph", "regex", - "regex-syntax 0.7.5", + "regex-syntax 0.8.3", "string_cache", "term", "tiny-keccak", "unicode-xid", + "walkdir", ] [[package]] name = "lalrpop-util" -version = "0.20.0" +version = "0.20.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3f35c735096c0293d313e8f2a641627472b83d01b937177fe76e5e2708d31e0d" +checksum = "507460a910eb7b32ee961886ff48539633b788a36b65692b95f225b844c82553" +dependencies = [ + "regex-automata 0.4.6", +] [[package]] name = "lazy_static" @@ -3881,12 +3885,12 @@ checksum = "9c198f91728a82281a64e1f4f9eeb25d82cb32a5de251c6bd1b5154d63a8e7bd" [[package]] name = "libloading" -version = "0.8.1" +version = "0.8.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c571b676ddfc9a8c12f1f3d3085a7b163966a8fd8098a90640953ce5f6170161" +checksum = "0c2a198fb6b0eada2a8df47933734e6d35d350665a33a3593d7164fa52c75c19" dependencies = [ "cfg-if", - "windows-sys 0.48.0", + "windows-targets 0.52.4", ] [[package]] @@ -3974,7 +3978,7 @@ dependencies = [ "quick-protobuf", "rand 0.8.5", "rw-stream-sink", - "smallvec 1.13.1", + "smallvec 1.13.2", "thiserror", "tracing", "unsigned-varint 0.8.0", @@ -3993,7 +3997,7 @@ dependencies = [ "libp2p-core", "libp2p-identity", "parking_lot 0.12.1", - "smallvec 1.13.1", + "smallvec 1.13.2", "tracing", ] @@ -4023,7 +4027,7 @@ dependencies = [ "rand 0.8.5", "regex", "sha2 0.10.8", - "smallvec 1.13.1", + "smallvec 1.13.2", "tracing", "void", ] @@ -4042,10 +4046,10 @@ dependencies = [ "libp2p-core", "libp2p-identity", "libp2p-swarm", - "lru 0.12.2", + "lru 0.12.3", "quick-protobuf", "quick-protobuf-codec", - "smallvec 1.13.1", + "smallvec 1.13.2", "thiserror", "tracing", "void", @@ -4085,8 +4089,8 @@ dependencies = [ "libp2p-identity", "libp2p-swarm", "rand 0.8.5", - "smallvec 1.13.1", - "socket2 0.5.5", + "smallvec 1.13.2", + "socket2 0.5.6", "tokio", "tracing", "void", @@ -4123,7 +4127,7 @@ dependencies = [ "nohash-hasher", "parking_lot 0.12.1", "rand 0.8.5", - "smallvec 1.13.1", + "smallvec 1.13.2", "tracing", "unsigned-varint 0.7.2", ] @@ -4172,7 +4176,7 @@ dependencies = [ "rand 0.8.5", "ring 0.16.20", "rustls 0.21.10", - "socket2 0.5.5", + "socket2 0.5.6", "thiserror", "tokio", "tracing", @@ -4193,7 +4197,7 @@ dependencies = [ "libp2p-identity", "libp2p-swarm", "rand 0.8.5", - "smallvec 1.13.1", + "smallvec 1.13.2", "tracing", "void", ] @@ -4215,7 +4219,7 @@ dependencies = [ "multistream-select", "once_cell", "rand 0.8.5", - "smallvec 1.13.1", + "smallvec 1.13.2", "tokio", "tracing", "void", @@ -4227,10 +4231,10 @@ version = "0.34.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b644268b4acfdaa6a6100b31226ee7a36d96ab4c43287d113bfd2308607d8b6f" dependencies = [ - "heck", + "heck 0.4.1", "proc-macro2", "quote", - "syn 2.0.49", + "syn 2.0.58", ] [[package]] @@ -4245,7 +4249,7 @@ dependencies = [ "libc", "libp2p-core", "libp2p-identity", - "socket2 0.5.5", + "socket2 0.5.6", "tokio", "tracing", ] @@ -4302,13 +4306,12 @@ dependencies = [ [[package]] name = "libredox" -version = "0.0.1" +version = "0.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "85c833ca1e66078851dba29046874e38f08b2c883700aa29a03ddd3b23814ee8" +checksum = "c0ff37bd590ca25063e35af745c343cb7a0271906fb7b37e4813e8f79f00268d" dependencies = [ - "bitflags 2.4.2", + "bitflags 2.5.0", "libc", - "redox_syscall 0.4.1", ] [[package]] @@ -4383,9 +4386,9 @@ dependencies = [ [[package]] name = "log" -version = "0.4.20" +version = "0.4.21" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b5e6163cb8c49088c2c36f57875e58ccd8c87c7427f7fbd50ea6710b2f3f2e8f" +checksum = "90ed8c1e510134f979dbc4f070f87d4313098b704861a105fe34231c70a3901c" [[package]] name = "lru" @@ -4398,9 +4401,9 @@ dependencies = [ [[package]] name = "lru" -version = "0.12.2" +version = "0.12.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "db2c024b41519440580066ba82aab04092b333e09066a5eb86c7c4890df31f22" +checksum = "d3262e75e648fce39813cb56ac41f3c3e3f65217ebf3844d818d1f9398cfb0dc" dependencies = [ "hashbrown 0.14.3", ] @@ -4453,9 +4456,9 @@ dependencies = [ [[package]] name = "memchr" -version = "2.7.1" +version = "2.7.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "523dc4f511e55ab87b694dc30d0f820d60906ef06413f93d4d7a1385599cc149" +checksum = "6c8640c5d730cb13ebd907d8d04b52f55ac9a2eec55b440c8892f40d56c76c1d" [[package]] name = "metrics" @@ -4470,11 +4473,11 @@ dependencies = [ [[package]] name = "metrics" -version = "0.22.1" +version = "0.22.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cd71d9db2e4287c3407fa04378b8c2ee570aebe0854431562cdd89ca091854f4" +checksum = "2be3cbd384d4e955b231c895ce10685e3d8260c5ccffae898c96c723b0772835" dependencies = [ - "ahash 0.8.7", + "ahash 0.8.11", "portable-atomic 1.6.0", ] @@ -4487,9 +4490,9 @@ dependencies = [ "base64 0.21.7", "hyper", "hyper-tls", - "indexmap 2.2.3", + "indexmap 2.2.6", "ipnet", - "metrics 0.22.1", + "metrics 0.22.3", "metrics-util", "quanta", "thiserror", @@ -4510,16 +4513,16 @@ dependencies = [ [[package]] name = "metrics-util" -version = "0.16.2" +version = "0.16.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ece71ab046dcf45604e573329966ec1db5ff4b81cfa170a924ff4c959ab5451a" +checksum = "8b07a5eb561b8cbc16be2d216faf7757f9baf3bfb94dbb0fae3df8387a5bb47f" dependencies = [ "aho-corasick", "crossbeam-epoch", "crossbeam-utils", "hashbrown 0.14.3", - "indexmap 2.2.3", - "metrics 0.22.1", + "indexmap 2.2.6", + "metrics 0.22.3", "num_cpus", "ordered-float", "quanta", @@ -4550,9 +4553,9 @@ dependencies = [ [[package]] name = "mio" -version = "0.8.10" +version = "0.8.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8f3d0b296e374a4e6f3c7b0a1f5a51d748a0d34c85e7dc48fc3fa9a87657fe09" +checksum = "a4a650543ca06a924e8b371db273b2756685faae30f8487da1b56505a8f78b0c" dependencies = [ "libc", "wasi", @@ -4628,9 +4631,9 @@ dependencies = [ [[package]] name = "multimap" -version = "0.8.3" +version = "0.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e5ce46fe64a9d73be07dcbe690a38ce1b293be448fd8ce1e6c1b8062c9f72c6a" +checksum = "defc4c55412d89136f966bbb339008b474350e5e6e78d2714439c386b3137a03" [[package]] name = "multistream-select" @@ -4642,7 +4645,7 @@ dependencies = [ "futures", "log", "pin-project", - "smallvec 1.13.1", + "smallvec 1.13.2", "unsigned-varint 0.7.2", ] @@ -4719,9 +4722,9 @@ dependencies = [ [[package]] name = "netlink-sys" -version = "0.8.5" +version = "0.8.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6471bf08e7ac0135876a9581bf3217ef0333c191c128d34878079f42ee150411" +checksum = "416060d346fbaf1f23f9512963e3e878f1a78e707cb699ba9215761754244307" dependencies = [ "bytes", "futures", @@ -4732,9 +4735,9 @@ dependencies = [ [[package]] name = "new_debug_unreachable" -version = "1.0.4" +version = "1.0.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e4a24736216ec316047a1fc4252e27dabb04218aa4a3f37c6e7ddbf1f9782b54" +checksum = "650eef8c711430f1a879fdd01d4745a7deea475becfb90269c06775983bbf086" [[package]] name = "nibble_vec" @@ -4742,7 +4745,7 @@ version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "77a5d83df9f36fe23f0c3648c6bbb8b0298bb5f1939c8f2704431371f4b84d43" dependencies = [ - "smallvec 1.13.1", + "smallvec 1.13.2", ] [[package]] @@ -4852,7 +4855,7 @@ dependencies = [ "proc-macro-crate 2.0.2", "proc-macro2", "quote", - "syn 2.0.49", + "syn 2.0.58", ] [[package]] @@ -4881,9 +4884,9 @@ checksum = "3fdb12b2476b595f9358c5161aa467c2438859caa136dec86c26fdd2efe17b92" [[package]] name = "opaque-debug" -version = "0.3.0" +version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "624a8340c38c1b80fd549087862da4ba43e08858af025b236e509b6649fc13d5" +checksum = "c08d65885ee38876c4f86fa503fb49d7b507c2b62552df7c70b2fce627e06381" [[package]] name = "open-fastrlp" @@ -4912,11 +4915,11 @@ dependencies = [ [[package]] name = "openssl" -version = "0.10.63" +version = "0.10.64" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "15c9d69dd87a29568d4d017cfe8ec518706046a05184e5aea92d0af890b803c8" +checksum = "95a0481286a310808298130d22dd1fef0fa571e05a8f44ec801801e84b216b1f" dependencies = [ - "bitflags 2.4.2", + "bitflags 2.5.0", "cfg-if", "foreign-types", "libc", @@ -4933,7 +4936,7 @@ checksum = "a948666b637a0f465e8564c73e89d4dde00d72d4d473cc972f390fc3dcee7d9c" dependencies = [ "proc-macro2", "quote", - "syn 2.0.49", + "syn 2.0.58", ] [[package]] @@ -4944,9 +4947,9 @@ checksum = "ff011a302c396a5197692431fc1948019154afc178baf7d8e37367442a4601cf" [[package]] name = "openssl-sys" -version = "0.9.99" +version = "0.9.102" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "22e1bf214306098e4832460f797824c05d25aacdf896f64a985fb0fd992454ae" +checksum = "c597637d56fbc83893a35eb0dd04b2b8e7a50c91e64e9493e398b5df4fb45fa2" dependencies = [ "cc", "libc", @@ -5059,7 +5062,7 @@ dependencies = [ "instant", "libc", "redox_syscall 0.2.16", - "smallvec 1.13.1", + "smallvec 1.13.2", "winapi", ] @@ -5072,7 +5075,7 @@ dependencies = [ "cfg-if", "libc", "redox_syscall 0.4.1", - "smallvec 1.13.1", + "smallvec 1.13.2", "windows-targets 0.48.5", ] @@ -5138,11 +5141,11 @@ dependencies = [ [[package]] name = "pem" -version = "3.0.3" +version = "3.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1b8fcc794035347fb64beda2d3b462595dd2753e3f268d89c5aae77e8cf2c310" +checksum = "8e459365e590736a54c3fa561947c84837534b8e9af6fc5bf781307e82658fae" dependencies = [ - "base64 0.21.7", + "base64 0.22.0", "serde", ] @@ -5154,9 +5157,9 @@ checksum = "e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e" [[package]] name = "pest" -version = "2.7.7" +version = "2.7.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "219c0dcc30b6a27553f9cc242972b67f75b60eb0db71f0b5462f38b058c41546" +checksum = "311fb059dee1a7b802f036316d790138c613a4e8b180c822e3925a662e9f0c95" dependencies = [ "memchr", "thiserror", @@ -5170,7 +5173,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e1d3afd2628e69da2be385eb6f2fd57c8ac7977ceeff6dc166ff1657b0e386a9" dependencies = [ "fixedbitset", - "indexmap 2.2.3", + "indexmap 2.2.6", ] [[package]] @@ -5213,7 +5216,7 @@ dependencies = [ "phf_shared 0.11.2", "proc-macro2", "quote", - "syn 2.0.49", + "syn 2.0.58", ] [[package]] @@ -5236,29 +5239,29 @@ dependencies = [ [[package]] name = "pin-project" -version = "1.1.4" +version = "1.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0302c4a0442c456bd56f841aee5c3bfd17967563f6fadc9ceb9f9c23cf3807e0" +checksum = "b6bf43b791c5b9e34c3d182969b4abb522f9343702850a2e57f460d00d09b4b3" dependencies = [ "pin-project-internal", ] [[package]] name = "pin-project-internal" -version = "1.1.4" +version = "1.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "266c042b60c9c76b8d53061e52b2e0d1116abc57cefc8c5cd671619a56ac3690" +checksum = "2f38a4412a78282e09a2cf38d195ea5420d15ba0602cb375210efbc877243965" dependencies = [ "proc-macro2", "quote", - "syn 2.0.49", + "syn 2.0.58", ] [[package]] name = "pin-project-lite" -version = "0.2.13" +version = "0.2.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8afb450f006bf6385ca15ef45d71d2288452bc3683ce2e2cacc0d18e4be60b58" +checksum = "bda66fc9667c18cb2758a2ac84d1167245054bcf85d5d1aaa6923f45801bdd02" [[package]] name = "pin-utils" @@ -5293,18 +5296,19 @@ dependencies = [ [[package]] name = "platforms" -version = "3.3.0" +version = "3.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "626dec3cac7cc0e1577a2ec3fc496277ec2baa084bebad95bb6fdbfae235f84c" +checksum = "db23d408679286588f4d4644f965003d056e3dd5abcaaa938116871d7ce2fee7" [[package]] name = "polling" -version = "3.4.0" +version = "3.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "30054e72317ab98eddd8561db0f6524df3367636884b7b21b703e4b280a84a14" +checksum = "e0c976a60b2d7e99d6f229e414670a9b85d13ac305cc6d1e9c134de58c5aaaf6" dependencies = [ "cfg-if", "concurrent-queue", + "hermit-abi", "pin-project-lite", "rustix", "tracing", @@ -5336,9 +5340,9 @@ dependencies = [ [[package]] name = "polyval" -version = "0.6.1" +version = "0.6.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d52cff9d1d4dee5fe6d03729099f4a310a41179e0a10dbf542039873f2e826fb" +checksum = "9d1fe60d06143b2430aa532c94cfe9e29783047f06c0d7fd359a9a51b729fa25" dependencies = [ "cfg-if", "cpufeatures", @@ -5393,12 +5397,12 @@ checksum = "925383efa346730478fb4838dbe9137d2a47675ad789c546d150a6e1dd4ab31c" [[package]] name = "prettyplease" -version = "0.2.16" +version = "0.2.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a41cf62165e97c7f814d2221421dbb9afcbcdb0a88068e5ea206e19951c2cbb5" +checksum = "8d3928fb5db768cb86f891ff014f0144589297e3c6a1aba6ed7cecfdace270c7" dependencies = [ "proc-macro2", - "syn 2.0.49", + "syn 2.0.58", ] [[package]] @@ -5461,18 +5465,18 @@ dependencies = [ [[package]] name = "proc-macro2" -version = "1.0.78" +version = "1.0.79" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e2422ad645d89c99f8f3e6b88a9fdeca7fabeac836b1002371c4367c8f984aae" +checksum = "e835ff2298f5721608eb1a980ecaee1aef2c132bf95ecc026a11b7bf3c01c02e" dependencies = [ "unicode-ident", ] [[package]] name = "prometheus-client" -version = "0.22.1" +version = "0.22.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6f87c10af16e0af74010d2a123d202e8363c04db5acfa91d8747f64a8524da3a" +checksum = "c1ca959da22a332509f2a73ae9e5f23f9dcfc31fd3a54d71f159495bd5909baa" dependencies = [ "dtoa", "itoa", @@ -5488,7 +5492,7 @@ checksum = "440f724eba9f6996b75d63681b0a92b06947f1457076d503a4d2e2c8f56442b8" dependencies = [ "proc-macro2", "quote", - "syn 2.0.49", + "syn 2.0.58", ] [[package]] @@ -5499,13 +5503,13 @@ checksum = "31b476131c3c86cb68032fdc5cb6d5a1045e3e42d96b69fa599fd77701e1f5bf" dependencies = [ "bit-set", "bit-vec", - "bitflags 2.4.2", + "bitflags 2.5.0", "lazy_static", "num-traits", "rand 0.8.5", "rand_chacha", "rand_xorshift", - "regex-syntax 0.8.2", + "regex-syntax 0.8.3", "rusty-fork", "tempfile", "unarray", @@ -5513,9 +5517,9 @@ dependencies = [ [[package]] name = "prost" -version = "0.12.3" +version = "0.12.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "146c289cda302b98a28d40c8b3b90498d6e526dd24ac2ecea73e4e491685b94a" +checksum = "d0f5d036824e4761737860779c906171497f6d55681139d8312388f8fe398922" dependencies = [ "bytes", "prost-derive", @@ -5523,13 +5527,13 @@ dependencies = [ [[package]] name = "prost-build" -version = "0.12.3" +version = "0.12.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c55e02e35260070b6f716a2423c2ff1c3bb1642ddca6f99e1f26d06268a0e2d2" +checksum = "80b776a1b2dc779f5ee0641f8ade0125bc1298dd41a9a0c16d8bd57b42d222b1" dependencies = [ "bytes", - "heck", - "itertools 0.11.0", + "heck 0.5.0", + "itertools 0.12.1", "log", "multimap", "once_cell", @@ -5538,29 +5542,28 @@ dependencies = [ "prost", "prost-types", "regex", - "syn 2.0.49", + "syn 2.0.58", "tempfile", - "which", ] [[package]] name = "prost-derive" -version = "0.12.3" +version = "0.12.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "efb6c9a1dd1def8e2124d17e83a20af56f1570d6c2d2bd9e266ccb768df3840e" +checksum = "19de2de2a00075bf566bee3bd4db014b11587e84184d3f7a791bc17f1a8e9e48" dependencies = [ "anyhow", - "itertools 0.11.0", + "itertools 0.12.1", "proc-macro2", "quote", - "syn 2.0.49", + "syn 2.0.58", ] [[package]] name = "prost-types" -version = "0.12.3" +version = "0.12.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "193898f59edcf43c26227dcd4c8427f00d99d61e95dcde58dabd49fa291d470e" +checksum = "3235c33eb02c1f1e212abdbe34c78b264b038fb58ca612664343271e36e55ffe" dependencies = [ "prost", ] @@ -5576,9 +5579,9 @@ dependencies = [ [[package]] name = "quanta" -version = "0.12.2" +version = "0.12.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9ca0b7bac0b97248c40bb77288fc52029cf1459c0461ea1b05ee32ccf011de2c" +checksum = "8e5167a477619228a0b284fac2674e3c388cba90631d7b7de620e6f1fcd08da5" dependencies = [ "crossbeam-utils", "libc", @@ -5660,7 +5663,7 @@ checksum = "055b4e778e8feb9f93c4e439f71dc2156ef13360b432b799e179a8c4cdf0b1d7" dependencies = [ "bytes", "libc", - "socket2 0.5.5", + "socket2 0.5.6", "tracing", "windows-sys 0.48.0", ] @@ -5763,14 +5766,14 @@ version = "11.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9d86a7c4638d42c44551f4791a20e687dbb4c3de1f33c43dd71e355cd429def1" dependencies = [ - "bitflags 2.4.2", + "bitflags 2.5.0", ] [[package]] name = "rayon" -version = "1.8.1" +version = "1.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fa7237101a77a10773db45d62004a272517633fbcc3df19d96455ede1122e051" +checksum = "b418a60154510ca1a002a752ca9714984e21e4241e804d32555251faf8b78ffa" dependencies = [ "either", "rayon-core", @@ -5792,7 +5795,7 @@ version = "0.11.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "52c4f3084aa3bc7dfbba4eff4fab2a54db4324965d8872ab933565e6fbd83bc6" dependencies = [ - "pem 3.0.3", + "pem 3.0.4", "ring 0.16.20", "time", "yasna", @@ -5827,9 +5830,9 @@ dependencies = [ [[package]] name = "redox_users" -version = "0.4.4" +version = "0.4.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a18479200779601e498ada4e8c1e1f50e3ee19deb0259c25825a98b5603b2cb4" +checksum = "bd283d9651eeda4b2a83a43c1c91b266c40fd76ecd39a50a8c630ae69dc72891" dependencies = [ "getrandom", "libredox", @@ -5838,14 +5841,14 @@ dependencies = [ [[package]] name = "regex" -version = "1.10.3" +version = "1.10.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b62dbe01f0b06f9d8dc7d49e05a0785f153b00b2c227856282f671e0318c9b15" +checksum = "c117dbdfde9c8308975b6a18d71f3f385c89461f7b3fb054288ecf2a2058ba4c" dependencies = [ "aho-corasick", "memchr", - "regex-automata 0.4.5", - "regex-syntax 0.8.2", + "regex-automata 0.4.6", + "regex-syntax 0.8.3", ] [[package]] @@ -5859,13 +5862,13 @@ dependencies = [ [[package]] name = "regex-automata" -version = "0.4.5" +version = "0.4.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5bb987efffd3c6d0d8f5f89510bb458559eab11e4f869acb20bf845e016259cd" +checksum = "86b83b8b9847f9bf95ef68afb0b8e6cdb80f498442f5179a29fad448fcc1eaea" dependencies = [ "aho-corasick", "memchr", - "regex-syntax 0.8.2", + "regex-syntax 0.8.3", ] [[package]] @@ -5876,15 +5879,9 @@ checksum = "f162c6dd7b008981e4d40210aca20b4bd0f9b60ca9271061b07f78537722f2e1" [[package]] name = "regex-syntax" -version = "0.7.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dbb5fb1acd8a1a18b3dd5be62d25485eb770e05afb408a9627d14d451bae12da" - -[[package]] -name = "regex-syntax" -version = "0.8.2" +version = "0.8.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c08c74e62047bb2de4ff487b251e4a92e24f48745648451635cec7d591162d9f" +checksum = "adad44e29e4c806119491a7f06f03de4d1af22c3a680dd47f1e6e179439d1f56" [[package]] name = "remove_dir_all" @@ -5897,9 +5894,9 @@ dependencies = [ [[package]] name = "reqwest" -version = "0.11.24" +version = "0.11.27" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c6920094eb85afde5e4a138be3f2de8bbdf28000f0029e72c45025a56b042251" +checksum = "dd67538700a17451e7cba03ac727fb961abb7607553461627b97de0b89cf4a62" dependencies = [ "base64 0.21.7", "bytes", @@ -6020,7 +6017,7 @@ source = "git+https://github.com/paradigmxyz/reth.git?rev=aa6f2cb0610fb4fa0926b4 dependencies = [ "async-trait", "bytes", - "ethers-core 2.0.13 (git+https://github.com/gakonst/ethers-rs)", + "ethers-core 2.0.14 (git+https://github.com/gakonst/ethers-rs)", "futures", "metrics 0.20.1", "pin-project", @@ -6117,7 +6114,7 @@ dependencies = [ "crc", "crunchy", "derive_more", - "ethers-core 2.0.13 (git+https://github.com/gakonst/ethers-rs)", + "ethers-core 2.0.14 (git+https://github.com/gakonst/ethers-rs)", "fixed-hash", "hash-db", "hex", @@ -6163,7 +6160,7 @@ source = "git+https://github.com/paradigmxyz/reth.git?rev=aa6f2cb0610fb4fa0926b4 dependencies = [ "proc-macro2", "quote", - "syn 2.0.49", + "syn 2.0.58", ] [[package]] @@ -6297,9 +6294,9 @@ dependencies = [ [[package]] name = "ruint" -version = "1.11.1" +version = "1.12.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "608a5726529f2f0ef81b8fde9873c4bb829d6b5b5ca6be4d97345ddf0749c825" +checksum = "8f308135fef9fc398342da5472ce7c484529df23743fb7c734e0f3d472971e62" dependencies = [ "alloy-rlp", "ark-ff 0.3.0", @@ -6321,9 +6318,9 @@ dependencies = [ [[package]] name = "ruint-macro" -version = "1.1.0" +version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e666a5496a0b2186dbcd0ff6106e29e093c15591bde62c20d3842007c6978a09" +checksum = "f86854cf50259291520509879a5c294c3c9a4c334e9ff65071c51e42ef1e2343" [[package]] name = "rustc-demangle" @@ -6358,7 +6355,7 @@ version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bfa0f585226d2e68097d4f95d113b15b83a82e819ab25717ec0590d9584ef366" dependencies = [ - "semver 1.0.21", + "semver 1.0.22", ] [[package]] @@ -6372,11 +6369,11 @@ dependencies = [ [[package]] name = "rustix" -version = "0.38.31" +version = "0.38.32" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6ea3e1a662af26cd7a3ba09c0297a31af215563ecf42817c98df621387f4e949" +checksum = "65e04861e65f21776e67888bfbea442b3642beaa0138fdb1dd7a84a52dffdb89" dependencies = [ - "bitflags 2.4.2", + "bitflags 2.5.0", "errno", "libc", "linux-raw-sys", @@ -6397,9 +6394,9 @@ dependencies = [ [[package]] name = "rustls" -version = "0.22.2" +version = "0.22.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e87c9956bd9807afa1f77e0f7594af32566e830e088a5576d27c5b6f30f49d41" +checksum = "99008d7ad0bbbea527ec27bddbc0e432c5b87d8175178cee68d2eec9c4a1813c" dependencies = [ "log", "ring 0.17.8", @@ -6428,7 +6425,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8f1fb85efa936c42c6d5fc28d2629bb51e4b2f4b8a5211e297d599cc5a093792" dependencies = [ "openssl-probe", - "rustls-pemfile 2.1.0", + "rustls-pemfile 2.1.2", "rustls-pki-types", "schannel", "security-framework", @@ -6445,29 +6442,19 @@ dependencies = [ [[package]] name = "rustls-pemfile" -version = "2.1.0" +version = "2.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3c333bb734fcdedcea57de1602543590f545f127dc8b533324318fd492c5c70b" +checksum = "29993a25686778eb88d4189742cd713c9bce943bc54251a33509dc63cbacf73d" dependencies = [ - "base64 0.21.7", + "base64 0.22.0", "rustls-pki-types", ] [[package]] name = "rustls-pki-types" -version = "1.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "048a63e5b3ac996d78d402940b5fa47973d2d080c6c6fffa1d0f19c4445310b7" - -[[package]] -name = "rustls-webpki" -version = "0.100.3" +version = "1.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5f6a5fc258f1c1276dfe3016516945546e2d5383911efc0fc4f1cdc5df3a4ae3" -dependencies = [ - "ring 0.16.20", - "untrusted 0.7.1", -] +checksum = "ecd36cc4259e3e4514335c4a138c6b43171a8d61d8f5c9348f9fc7529416f247" [[package]] name = "rustls-webpki" @@ -6492,9 +6479,9 @@ dependencies = [ [[package]] name = "rustversion" -version = "1.0.14" +version = "1.0.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7ffc183a10b4478d04cbbbfc96d0873219d962dd5accaff2ffbd4ceb7df837f4" +checksum = "80af6f9131f277a45a3fba6ce8e2258037bb0477a67e610d3c1fe046ab31de47" [[package]] name = "rusty-fork" @@ -6521,9 +6508,9 @@ dependencies = [ [[package]] name = "ryu" -version = "1.0.16" +version = "1.0.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f98d2aa92eebf49b69786be48e4477826b256916e84a57ff2a4f21923b48eb4c" +checksum = "e86697c916019a8588c99b5fac3cead74ec0b4b819707a682fd4d23fa0ce1ba1" [[package]] name = "salsa20" @@ -6545,9 +6532,9 @@ dependencies = [ [[package]] name = "scale-info" -version = "2.10.0" +version = "2.11.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7f7d66a1128282b7ef025a8ead62a4a9fcf017382ec53b8ffbf4d7bf77bd3c60" +checksum = "7c453e59a955f81fb62ee5d596b450383d699f152d350e9d23a0db2adb78e4c0" dependencies = [ "cfg-if", "derive_more", @@ -6557,9 +6544,9 @@ dependencies = [ [[package]] name = "scale-info-derive" -version = "2.10.0" +version = "2.11.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "abf2c68b89cafb3b8d918dd07b42be0da66ff202cf1155c5739a4e0c1ea0dc19" +checksum = "18cf6c6447f813ef19eb450e985bcce6705f9ce7660db221b59093d15c79c4b7" dependencies = [ "proc-macro-crate 1.3.1", "proc-macro2", @@ -6639,9 +6626,9 @@ dependencies = [ [[package]] name = "security-framework" -version = "2.9.2" +version = "2.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "05b64fb303737d99b81884b2c63433e9ae28abebe5eb5045dcdd175dc2ecf4de" +checksum = "770452e37cad93e0a50d5abc3990d2bc351c36d0328f86cefec2f2fb206eaef6" dependencies = [ "bitflags 1.3.2", "core-foundation", @@ -6652,9 +6639,9 @@ dependencies = [ [[package]] name = "security-framework-sys" -version = "2.9.1" +version = "2.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e932934257d3b408ed8f30db49d85ea163bfe74961f017f405b025af298f0c7a" +checksum = "41f3cc463c0ef97e11c3461a9d3787412d30e8e7eb907c79180c4a57bf7c04ef" dependencies = [ "core-foundation-sys", "libc", @@ -6671,9 +6658,9 @@ dependencies = [ [[package]] name = "semver" -version = "1.0.21" +version = "1.0.22" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b97ed7a9823b74f99c7742f5336af7be5ecd3eeafcb1507d1fa93347b1d589b0" +checksum = "92d43fe69e652f3df9bdc2b85b2854a0825b86e4fb76bc44d945137d053639ca" dependencies = [ "serde", ] @@ -6701,9 +6688,9 @@ checksum = "cd0b0ec5f1c1ca621c432a25813d8d60c88abe6d3e08a3eb9cf37d97a0fe3d73" [[package]] name = "serde" -version = "1.0.196" +version = "1.0.197" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "870026e60fa08c69f064aa766c10f10b1d62db9ccd4d0abb206472bee0ce3b32" +checksum = "3fb1c873e1b9b056a4dc4c0c198b24c3ffa059243875552b2bd0933b1aee4ce2" dependencies = [ "serde_derive", ] @@ -6721,20 +6708,20 @@ dependencies = [ [[package]] name = "serde_derive" -version = "1.0.196" +version = "1.0.197" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "33c85360c95e7d137454dc81d9a4ed2b8efd8fbe19cee57357b32b9771fccb67" +checksum = "7eb0b34b42edc17f6b7cac84a52a1c5f0e1bb2227e997ca9011ea3dd34e8610b" dependencies = [ "proc-macro2", "quote", - "syn 2.0.49", + "syn 2.0.58", ] [[package]] name = "serde_json" -version = "1.0.113" +version = "1.0.115" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "69801b70b1c3dac963ecb03a364ba0ceda9cf60c71cfe475e99864759c8b8a79" +checksum = "12dc5c46daa8e9fdf4f5e71b6cf9a53f2487da0e86e55808e2d35539666497dd" dependencies = [ "itoa", "ryu", @@ -6787,7 +6774,7 @@ dependencies = [ "darling", "proc-macro2", "quote", - "syn 2.0.49", + "syn 2.0.58", ] [[package]] @@ -6910,11 +6897,11 @@ dependencies = [ "clap", "dirs", "discv5", - "ethers 2.0.8", + "ethers 2.0.14 (git+https://github.com/Vid201/ethers-rs?branch=feat/patch)", "expanded-pathbuf", "eyre", "log", - "metrics 0.22.1", + "metrics 0.22.3", "metrics-exporter-prometheus", "metrics-util", "parking_lot 0.12.1", @@ -6945,13 +6932,12 @@ dependencies = [ "async-trait", "bytes", "dotenv", - "ethers 2.0.8", + "ethers 2.0.14 (git+https://github.com/Vid201/ethers-rs?branch=feat/patch)", "ethers-flashbots", "ethers-flashbots-test", "eyre", "jsonrpsee", "serde", - "serde_json", "silius-contracts", "silius-primitives", "tokio", @@ -6963,8 +6949,8 @@ dependencies = [ name = "silius-contracts" version = "0.4.0-alpha" dependencies = [ - "ethers 2.0.8", - "ethers-solc 2.0.9", + "ethers 2.0.14 (git+https://github.com/Vid201/ethers-rs?branch=feat/patch)", + "ethers-solc 2.0.14 (registry+https://github.com/rust-lang/crates.io-index)", "eyre", "lazy_static", "regex", @@ -6982,12 +6968,12 @@ dependencies = [ "alloy-chains", "arrayref", "async-trait", - "ethers 2.0.8", + "ethers 2.0.14 (git+https://github.com/Vid201/ethers-rs?branch=feat/patch)", "expanded-pathbuf", "eyre", "futures", "hyper", - "metrics 0.22.1", + "metrics 0.22.3", "parking_lot 0.12.1", "prost", "prost-build", @@ -7016,7 +7002,7 @@ dependencies = [ "const-hex", "dyn-clone", "enumset", - "ethers 2.0.8", + "ethers 2.0.14 (git+https://github.com/Vid201/ethers-rs?branch=feat/patch)", "eyre", "futures", "futures-util", @@ -7026,7 +7012,6 @@ dependencies = [ "reth-db", "reth-libmdbx", "serde", - "serde_json", "silius-contracts", "silius-primitives", "tempdir", @@ -7040,11 +7025,11 @@ name = "silius-metrics" version = "0.4.0-alpha" dependencies = [ "async-trait", - "ethers 2.0.8", + "ethers 2.0.14 (git+https://github.com/Vid201/ethers-rs?branch=feat/patch)", "futures", "hyper", "jsonrpsee", - "metrics 0.22.1", + "metrics 0.22.3", "metrics-exporter-prometheus", "metrics-util", "pin-project", @@ -7064,15 +7049,15 @@ dependencies = [ "async-trait", "delay_map", "discv5", - "env_logger", - "ethers 2.0.8", + "env_logger 0.10.2", + "ethers 2.0.14 (git+https://github.com/Vid201/ethers-rs?branch=feat/patch)", "eyre", "futures", "futures-bounded", "lazy_static", "libp2p", "libp2p-mplex", - "lru 0.12.2", + "lru 0.12.3", "parking_lot 0.12.1", "sha2 0.10.8", "silius-primitives", @@ -7096,7 +7081,7 @@ dependencies = [ "alloy-chains", "async-stream", "derive_more", - "ethers 2.0.8", + "ethers 2.0.14 (git+https://github.com/Vid201/ethers-rs?branch=feat/patch)", "expanded-pathbuf", "eyre", "futures-util", @@ -7104,7 +7089,6 @@ dependencies = [ "rustc-hex", "serde", "serde-hex", - "serde_json", "ssz_rs", "ssz_rs_derive", "strum 0.25.0", @@ -7117,13 +7101,13 @@ name = "silius-rpc" version = "0.4.0-alpha" dependencies = [ "async-trait", - "ethers 2.0.8", + "ethers 2.0.14 (git+https://github.com/Vid201/ethers-rs?branch=feat/patch)", "eyre", "git-version", "hyper", "hyper-tls", "jsonrpsee", - "metrics 0.22.1", + "metrics 0.22.3", "pin-project", "serde", "serde_json", @@ -7142,7 +7126,7 @@ name = "silius-tests" version = "0.4.0-alpha" dependencies = [ "alloy-chains", - "ethers 2.0.8", + "ethers 2.0.14 (git+https://github.com/Vid201/ethers-rs?branch=feat/patch)", "eyre", "futures", "parking_lot 0.12.1", @@ -7197,9 +7181,9 @@ dependencies = [ [[package]] name = "smallvec" -version = "1.13.1" +version = "1.13.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e6ecd384b10a64542d77071bd64bd7b231f4ed5940fba55e98c3de13824cf3d7" +checksum = "3c5e1a9a646d36c3599cd173a41282daf47c44583ad367b8e6837255952e5c67" [[package]] name = "smol_str" @@ -7245,12 +7229,12 @@ dependencies = [ [[package]] name = "socket2" -version = "0.5.5" +version = "0.5.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7b5fac59a5cb5dd637972e5fca70daf0523c9067fcdc4842f053dae04a18f8e9" +checksum = "05ffd9c0a93b7543e062e759284fcf5f5e3b098501104bfbdde4d404db792871" dependencies = [ "libc", - "windows-sys 0.48.0", + "windows-sys 0.52.0", ] [[package]] @@ -7271,11 +7255,11 @@ dependencies = [ [[package]] name = "solang-parser" -version = "0.3.1" +version = "0.3.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9c792fe9fae2a2f716846f214ca10d5a1e21133e0bf36cef34bcc4a852467b21" +checksum = "c425ce1c59f4b154717592f0bdf4715c3a1d55058883622d3157e1f0908a5b26" dependencies = [ - "itertools 0.10.5", + "itertools 0.11.0", "lalrpop", "lalrpop-util", "phf", @@ -7364,9 +7348,9 @@ checksum = "73473c0e59e6d5812c5dfe2a064a6444949f089e20eec9a2e5506596494e4623" [[package]] name = "strsim" -version = "0.11.0" +version = "0.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5ee073c9e4cd00e28217186dbe12796d692868f432bf2e97ee73bed0c56dfa01" +checksum = "7da8b5736845d9f2fcb837ea5d9e2628564b3b043a70948a3f0b778838c5fb4f" [[package]] name = "strum" @@ -7382,17 +7366,14 @@ name = "strum" version = "0.25.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "290d54ea6f91c969195bdbcd7442c8c2a2ba87da8bf60a7ee86a235d4bc1e125" -dependencies = [ - "strum_macros 0.25.3", -] [[package]] name = "strum" -version = "0.26.1" +version = "0.26.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "723b93e8addf9aa965ebe2d11da6d7540fa2283fcea14b3371ff055f7ba13f5f" +checksum = "5d8cec3501a5194c432b2b7976db6b7d10ec95c253208b45f83f7136aa985e29" dependencies = [ - "strum_macros 0.26.1", + "strum_macros 0.26.2", ] [[package]] @@ -7401,7 +7382,7 @@ version = "0.24.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1e385be0d24f186b4ce2f9982191e7101bb737312ad61c1f2f984f34bcf85d59" dependencies = [ - "heck", + "heck 0.4.1", "proc-macro2", "quote", "rustversion", @@ -7414,24 +7395,24 @@ version = "0.25.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "23dc1fa9ac9c169a78ba62f0b841814b7abae11bdd047b9c58f893439e309ea0" dependencies = [ - "heck", + "heck 0.4.1", "proc-macro2", "quote", "rustversion", - "syn 2.0.49", + "syn 2.0.58", ] [[package]] name = "strum_macros" -version = "0.26.1" +version = "0.26.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7a3417fc93d76740d974a01654a09777cb500428cc874ca9f45edfe0c4d4cd18" +checksum = "c6cf59daf282c0a494ba14fd21610a0325f9f90ec9d1231dea26bcb1d696c946" dependencies = [ - "heck", + "heck 0.4.1", "proc-macro2", "quote", "rustversion", - "syn 2.0.49", + "syn 2.0.58", ] [[package]] @@ -7460,7 +7441,7 @@ dependencies = [ "hex", "once_cell", "reqwest", - "semver 1.0.21", + "semver 1.0.22", "serde", "serde_json", "sha2 0.10.8", @@ -7477,7 +7458,7 @@ checksum = "aa64b5e8eecd3a8af7cfc311e29db31a268a62d5953233d3e8243ec77a71c4e3" dependencies = [ "build_const", "hex", - "semver 1.0.21", + "semver 1.0.22", "serde_json", "svm-rs", ] @@ -7495,9 +7476,9 @@ dependencies = [ [[package]] name = "syn" -version = "2.0.49" +version = "2.0.58" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "915aea9e586f80826ee59f8453c1101f9d1c4b3964cd2460185ee8e299ada496" +checksum = "44cfb93f38070beee36b3fef7d4f5a16f27751d94b187b666a5cc5e9b0d30687" dependencies = [ "proc-macro2", "quote", @@ -7513,7 +7494,7 @@ dependencies = [ "paste", "proc-macro2", "quote", - "syn 2.0.49", + "syn 2.0.58", ] [[package]] @@ -7573,9 +7554,9 @@ dependencies = [ [[package]] name = "tempfile" -version = "3.10.0" +version = "3.10.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a365e8cd18e44762ef95d87f284f4b5cd04107fec2ff3052bd6a3e6069669e67" +checksum = "85b77fafb263dd9d05cbeac119526425676db3784113aa9295c88498cbf8bff1" dependencies = [ "cfg-if", "fastrand", @@ -7605,50 +7586,50 @@ dependencies = [ [[package]] name = "test-log" -version = "0.2.14" +version = "0.2.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6159ab4116165c99fc88cce31f99fa2c9dbe08d3691cb38da02fc3b45f357d2b" +checksum = "7b319995299c65d522680decf80f2c108d85b861d81dfe340a10d16cee29d9e6" dependencies = [ - "env_logger", + "env_logger 0.11.3", "test-log-macros", ] [[package]] name = "test-log-macros" -version = "0.2.14" +version = "0.2.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7ba277e77219e9eea169e8508942db1bf5d8a41ff2db9b20aab5a5aadc9fa25d" +checksum = "c8f546451eaa38373f549093fe9fd05e7d2bade739e2ddf834b9968621d60107" dependencies = [ "proc-macro2", "quote", - "syn 2.0.49", + "syn 2.0.58", ] [[package]] name = "thiserror" -version = "1.0.57" +version = "1.0.58" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e45bcbe8ed29775f228095caf2cd67af7a4ccf756ebff23a306bf3e8b47b24b" +checksum = "03468839009160513471e86a034bb2c5c0e4baae3b43f79ffc55c4a5427b3297" dependencies = [ "thiserror-impl", ] [[package]] name = "thiserror-impl" -version = "1.0.57" +version = "1.0.58" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a953cb265bef375dae3de6663da4d3804eee9682ea80d8e2542529b73c531c81" +checksum = "c61f3ba182994efc43764a46c018c347bc492c79f024e705f46567b418f6d4f7" dependencies = [ "proc-macro2", "quote", - "syn 2.0.49", + "syn 2.0.58", ] [[package]] name = "thread_local" -version = "1.1.7" +version = "1.1.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3fdd6f064ccff2d6567adcb3873ca630700f00b5ad3f060c25b5dcfd9a4ce152" +checksum = "8b9ef9bad013ada3808854ceac7b46812a6465ba368859a37e2100283d2d719c" dependencies = [ "cfg-if", "once_cell", @@ -7711,9 +7692,9 @@ checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" [[package]] name = "tokio" -version = "1.36.0" +version = "1.37.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "61285f6515fa018fb2d1e46eb21223fff441ee8db5d0f1435e8ab4f5cdb80931" +checksum = "1adbebffeca75fcfd058afa480fb6c0b81e165a0323f9c9d39c9697e37c46787" dependencies = [ "backtrace", "bytes", @@ -7723,7 +7704,7 @@ dependencies = [ "parking_lot 0.12.1", "pin-project-lite", "signal-hook-registry", - "socket2 0.5.5", + "socket2 0.5.6", "tokio-macros", "windows-sys 0.48.0", ] @@ -7746,7 +7727,7 @@ checksum = "5b8a1e28f2deaa14e508979454cb3a223b10b938b45af148bc0986de36f1923b" dependencies = [ "proc-macro2", "quote", - "syn 2.0.49", + "syn 2.0.58", ] [[package]] @@ -7775,39 +7756,22 @@ version = "0.25.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "775e0c0f0adb3a2f22a00c4745d728b479985fc15ee7ca6a2608388c5569860f" dependencies = [ - "rustls 0.22.2", + "rustls 0.22.3", "rustls-pki-types", "tokio", ] [[package]] name = "tokio-stream" -version = "0.1.14" +version = "0.1.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "397c988d37662c7dda6d2208364a706264bf3d6138b11d436cbac0ad38832842" +checksum = "267ac89e0bec6e691e5813911606935d77c476ff49024f98abcea3e7b15e37af" dependencies = [ "futures-core", "pin-project-lite", "tokio", ] -[[package]] -name = "tokio-tungstenite" -version = "0.19.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ec509ac96e9a0c43427c74f003127d953a265737636129424288d27cb5c4b12c" -dependencies = [ - "futures-util", - "log", - "native-tls", - "rustls 0.21.10", - "tokio", - "tokio-native-tls", - "tokio-rustls 0.24.1", - "tungstenite 0.19.0", - "webpki-roots 0.23.1", -] - [[package]] name = "tokio-tungstenite" version = "0.20.1" @@ -7817,9 +7781,12 @@ dependencies = [ "futures-util", "log", "native-tls", + "rustls 0.21.10", "tokio", "tokio-native-tls", - "tungstenite 0.20.1", + "tokio-rustls 0.24.1", + "tungstenite", + "webpki-roots 0.25.4", ] [[package]] @@ -7838,18 +7805,6 @@ dependencies = [ "tracing", ] -[[package]] -name = "toml" -version = "0.7.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dd79e69d3b627db300ff956027cc6c3798cef26d22526befdfcd12feeb6d2257" -dependencies = [ - "serde", - "serde_spanned", - "toml_datetime", - "toml_edit 0.19.15", -] - [[package]] name = "toml" version = "0.8.2" @@ -7877,9 +7832,7 @@ version = "0.19.15" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1b5bb770da30e5cbfde35a2d7b9b8a2c4b8ef89548a7a6aeab5c9a576e3e7421" dependencies = [ - "indexmap 2.2.3", - "serde", - "serde_spanned", + "indexmap 2.2.6", "toml_datetime", "winnow", ] @@ -7890,7 +7843,7 @@ version = "0.20.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "396e4d48bbb2b7554c944bde63101b5ae446cff6ec4a24227428f15eb72ef338" dependencies = [ - "indexmap 2.2.3", + "indexmap 2.2.6", "serde", "serde_spanned", "toml_datetime", @@ -7934,7 +7887,7 @@ dependencies = [ "proc-macro2", "prost-build", "quote", - "syn 2.0.49", + "syn 2.0.58", ] [[package]] @@ -7963,7 +7916,7 @@ version = "0.4.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "61c5bb1d698276a2443e5ecfabc1008bf15a36c12e6a7176e7bf089ea9131140" dependencies = [ - "bitflags 2.4.2", + "bitflags 2.5.0", "bytes", "futures-core", "futures-util", @@ -8007,7 +7960,7 @@ checksum = "34704c8d6ebcbc939824180af020566b01a7c01f80641264eba0999f6c2b6be7" dependencies = [ "proc-macro2", "quote", - "syn 2.0.49", + "syn 2.0.58", ] [[package]] @@ -8052,7 +8005,7 @@ dependencies = [ "once_cell", "regex", "sharded-slab", - "smallvec 1.13.1", + "smallvec 1.13.2", "thread_local", "tracing", "tracing-core", @@ -8075,28 +8028,6 @@ version = "0.2.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e421abadd41a4225275504ea4d6566923418b7f05506fbc9c0fe86ba7396114b" -[[package]] -name = "tungstenite" -version = "0.19.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "15fba1a6d6bb030745759a9a2a588bfe8490fc8b4751a277db3a0be1c9ebbf67" -dependencies = [ - "byteorder", - "bytes", - "data-encoding", - "http", - "httparse", - "log", - "native-tls", - "rand 0.8.5", - "rustls 0.21.10", - "sha1", - "thiserror", - "url", - "utf-8", - "webpki", -] - [[package]] name = "tungstenite" version = "0.20.1" @@ -8111,6 +8042,7 @@ dependencies = [ "log", "native-tls", "rand 0.8.5", + "rustls 0.21.10", "sha1", "thiserror", "url", @@ -8161,9 +8093,9 @@ checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b" [[package]] name = "unicode-normalization" -version = "0.1.22" +version = "0.1.23" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5c5713f0fc4b5db668a2ac63cdb7bb4469d8c9fed047b1d0292cc7b0ce2ba921" +checksum = "a56d1686db2308d901306f92a263857ef59ea39678a5458e7cb17f01415101f5" dependencies = [ "tinyvec", ] @@ -8300,9 +8232,9 @@ dependencies = [ [[package]] name = "walkdir" -version = "2.4.0" +version = "2.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d71d857dc86794ca4c280d616f7da00d2dbfd8cd788846559a6813e6aa4b54ee" +checksum = "29790946404f91d9c5d06f9874efddea1dc06c5efe94541a7d6863108e3a5e4b" dependencies = [ "same-file", "winapi-util", @@ -8325,9 +8257,9 @@ checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" [[package]] name = "wasm-bindgen" -version = "0.2.91" +version = "0.2.92" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c1e124130aee3fb58c5bdd6b639a0509486b0338acaaae0c84a5124b0f588b7f" +checksum = "4be2531df63900aeb2bca0daaaddec08491ee64ceecbee5076636a3b026795a8" dependencies = [ "cfg-if", "wasm-bindgen-macro", @@ -8335,24 +8267,24 @@ dependencies = [ [[package]] name = "wasm-bindgen-backend" -version = "0.2.91" +version = "0.2.92" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c9e7e1900c352b609c8488ad12639a311045f40a35491fb69ba8c12f758af70b" +checksum = "614d787b966d3989fa7bb98a654e369c762374fd3213d212cfc0251257e747da" dependencies = [ "bumpalo", "log", "once_cell", "proc-macro2", "quote", - "syn 2.0.49", + "syn 2.0.58", "wasm-bindgen-shared", ] [[package]] name = "wasm-bindgen-futures" -version = "0.4.41" +version = "0.4.42" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "877b9c3f61ceea0e56331985743b13f3d25c406a7098d45180fb5f09bc19ed97" +checksum = "76bc14366121efc8dbb487ab05bcc9d346b3b5ec0eaa76e46594cabbe51762c0" dependencies = [ "cfg-if", "js-sys", @@ -8362,9 +8294,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro" -version = "0.2.91" +version = "0.2.92" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b30af9e2d358182b5c7449424f017eba305ed32a7010509ede96cdc4696c46ed" +checksum = "a1f8823de937b71b9460c0c34e25f3da88250760bec0ebac694b49997550d726" dependencies = [ "quote", "wasm-bindgen-macro-support", @@ -8372,52 +8304,33 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro-support" -version = "0.2.91" +version = "0.2.92" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "642f325be6301eb8107a83d12a8ac6c1e1c54345a7ef1a9261962dfefda09e66" +checksum = "e94f17b526d0a461a191c78ea52bbce64071ed5c04c9ffe424dcb38f74171bb7" dependencies = [ "proc-macro2", "quote", - "syn 2.0.49", + "syn 2.0.58", "wasm-bindgen-backend", "wasm-bindgen-shared", ] [[package]] name = "wasm-bindgen-shared" -version = "0.2.91" +version = "0.2.92" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4f186bd2dcf04330886ce82d6f33dd75a7bfcf69ecf5763b89fcde53b6ac9838" +checksum = "af190c94f2773fdb3729c55b007a722abb5384da03bc0986df4c289bf5567e96" [[package]] name = "web-sys" -version = "0.3.68" +version = "0.3.69" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "96565907687f7aceb35bc5fc03770a8a0471d82e479f25832f54a0e3f4b28446" +checksum = "77afa9a11836342370f4817622a2f0f418b134426d91a82dfb48f532d2ec13ef" dependencies = [ "js-sys", "wasm-bindgen", ] -[[package]] -name = "webpki" -version = "0.22.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ed63aea5ce73d0ff405984102c42de94fc55a6b75765d621c65262469b3c9b53" -dependencies = [ - "ring 0.17.8", - "untrusted 0.9.0", -] - -[[package]] -name = "webpki-roots" -version = "0.23.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b03058f88386e5ff5310d9111d53f48b17d732b401aeb83a8d5190f2ac459338" -dependencies = [ - "rustls-webpki 0.100.3", -] - [[package]] name = "webpki-roots" version = "0.25.4" @@ -8433,23 +8346,11 @@ dependencies = [ "rustls-pki-types", ] -[[package]] -name = "which" -version = "4.4.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "87ba24419a2078cd2b0f2ede2691b6c66d8e47836da3b6db8265ebad47afbfc7" -dependencies = [ - "either", - "home", - "once_cell", - "rustix", -] - [[package]] name = "widestring" -version = "1.0.2" +version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "653f141f39ec16bba3c5abe400a0c60da7468261cc2cbf36805022876bc721a8" +checksum = "7219d36b6eac893fa81e84ebe06485e7dcbb616177469b142df14f1f4deb1311" [[package]] name = "winapi" @@ -8507,7 +8408,7 @@ version = "0.52.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "33ab640c8d7e35bf8ba19b884ba838ceb4fba93a4e8c65a9059d08afcfc683d9" dependencies = [ - "windows-targets 0.52.0", + "windows-targets 0.52.4", ] [[package]] @@ -8525,7 +8426,7 @@ version = "0.52.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d" dependencies = [ - "windows-targets 0.52.0", + "windows-targets 0.52.4", ] [[package]] @@ -8545,17 +8446,17 @@ dependencies = [ [[package]] name = "windows-targets" -version = "0.52.0" +version = "0.52.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8a18201040b24831fbb9e4eb208f8892e1f50a37feb53cc7ff887feb8f50e7cd" +checksum = "7dd37b7e5ab9018759f893a1952c9420d060016fc19a472b4bb20d1bdd694d1b" dependencies = [ - "windows_aarch64_gnullvm 0.52.0", - "windows_aarch64_msvc 0.52.0", - "windows_i686_gnu 0.52.0", - "windows_i686_msvc 0.52.0", - "windows_x86_64_gnu 0.52.0", - "windows_x86_64_gnullvm 0.52.0", - "windows_x86_64_msvc 0.52.0", + "windows_aarch64_gnullvm 0.52.4", + "windows_aarch64_msvc 0.52.4", + "windows_i686_gnu 0.52.4", + "windows_i686_msvc 0.52.4", + "windows_x86_64_gnu 0.52.4", + "windows_x86_64_gnullvm 0.52.4", + "windows_x86_64_msvc 0.52.4", ] [[package]] @@ -8566,9 +8467,9 @@ checksum = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8" [[package]] name = "windows_aarch64_gnullvm" -version = "0.52.0" +version = "0.52.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cb7764e35d4db8a7921e09562a0304bf2f93e0a51bfccee0bd0bb0b666b015ea" +checksum = "bcf46cf4c365c6f2d1cc93ce535f2c8b244591df96ceee75d8e83deb70a9cac9" [[package]] name = "windows_aarch64_msvc" @@ -8578,9 +8479,9 @@ checksum = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc" [[package]] name = "windows_aarch64_msvc" -version = "0.52.0" +version = "0.52.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bbaa0368d4f1d2aaefc55b6fcfee13f41544ddf36801e793edbbfd7d7df075ef" +checksum = "da9f259dd3bcf6990b55bffd094c4f7235817ba4ceebde8e6d11cd0c5633b675" [[package]] name = "windows_i686_gnu" @@ -8590,9 +8491,9 @@ checksum = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e" [[package]] name = "windows_i686_gnu" -version = "0.52.0" +version = "0.52.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a28637cb1fa3560a16915793afb20081aba2c92ee8af57b4d5f28e4b3e7df313" +checksum = "b474d8268f99e0995f25b9f095bc7434632601028cf86590aea5c8a5cb7801d3" [[package]] name = "windows_i686_msvc" @@ -8602,9 +8503,9 @@ checksum = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406" [[package]] name = "windows_i686_msvc" -version = "0.52.0" +version = "0.52.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ffe5e8e31046ce6230cc7215707b816e339ff4d4d67c65dffa206fd0f7aa7b9a" +checksum = "1515e9a29e5bed743cb4415a9ecf5dfca648ce85ee42e15873c3cd8610ff8e02" [[package]] name = "windows_x86_64_gnu" @@ -8614,9 +8515,9 @@ checksum = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e" [[package]] name = "windows_x86_64_gnu" -version = "0.52.0" +version = "0.52.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3d6fa32db2bc4a2f5abeacf2b69f7992cd09dca97498da74a151a3132c26befd" +checksum = "5eee091590e89cc02ad514ffe3ead9eb6b660aedca2183455434b93546371a03" [[package]] name = "windows_x86_64_gnullvm" @@ -8626,9 +8527,9 @@ checksum = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc" [[package]] name = "windows_x86_64_gnullvm" -version = "0.52.0" +version = "0.52.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1a657e1e9d3f514745a572a6846d3c7aa7dbe1658c056ed9c3344c4109a6949e" +checksum = "77ca79f2451b49fa9e2af39f0747fe999fcda4f5e241b2898624dca97a1f2177" [[package]] name = "windows_x86_64_msvc" @@ -8638,9 +8539,9 @@ checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538" [[package]] name = "windows_x86_64_msvc" -version = "0.52.0" +version = "0.52.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dff9641d1cd4be8d1a070daf9e3773c5f67e78b4d9d42263020c057706765c04" +checksum = "32b752e52a2da0ddfbdbcc6fceadfeede4c939ed16d13e648833a61dfb611ed8" [[package]] name = "winnow" @@ -8720,9 +8621,9 @@ dependencies = [ [[package]] name = "xml-rs" -version = "0.8.19" +version = "0.8.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0fcb9cbac069e033553e8bb871be2fbdffcab578eb25bd0f7c508cedc6dcd75a" +checksum = "791978798f0597cfc70478424c2b4fdc2b7a8024aaff78497ef00f24ef674193" [[package]] name = "xmltree" @@ -8796,7 +8697,7 @@ checksum = "9ce1b18ccd8e73a9321186f97e46f9f04b778851177567b1975109d26a08d2a6" dependencies = [ "proc-macro2", "quote", - "syn 2.0.49", + "syn 2.0.58", ] [[package]] @@ -8816,7 +8717,7 @@ checksum = "ce36e65b0d2999d2aafac989fb249189a141aee1f53c612c1f37d72631959f69" dependencies = [ "proc-macro2", "quote", - "syn 2.0.49", + "syn 2.0.58", ] [[package]] @@ -8860,9 +8761,9 @@ dependencies = [ [[package]] name = "zstd-sys" -version = "2.0.9+zstd.1.5.5" +version = "2.0.10+zstd.1.5.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9e16efa8a874a0481a574084d34cc26fdb3b99627480f785888deb6386506656" +checksum = "c253a4914af5bafc8fa8c86ee400827e83cf6ec01195ec1f1ed8441bf00d65aa" dependencies = [ "cc", "pkg-config", diff --git a/Cargo.toml b/Cargo.toml index dc9ea1f4..fba68139 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -51,7 +51,7 @@ silius-tests = { version = "0.4.0-alpha", path = "tests", default-features = fal # eth alloy-chains = "0.1.14" discv5 = { version = "0.4.0", features = ["libp2p"] } -ethers = { git = "https://github.com/gakonst/ethers-rs", rev = "fa3017715a298728d9fb341933818a5d0d84c2dc", features = [ +ethers = { git = "https://github.com/gakonst/ethers-rs", rev = "5394d899adca736a602e316e6f0c06fdb5aa64b9", features = [ "ws", ] } ssz_rs = { git = "https://github.com/ralexstokes/ssz-rs.git", rev = "8640128ec83071094d24fb4511147d6b9dd029bb" } @@ -82,4 +82,4 @@ tracing = "0.1.40" [patch.crates-io] revm-primitives = { git = "https://github.com/bluealloy/revm", rev = "3d8ca6641d2e72448c23f4596f769c8fd1c784d1" } [patch."https://github.com/gakonst/ethers-rs"] -ethers = { git = "https://github.com/Vid201/ethers-rs", branch = "chore/ws" } +ethers = { git = "https://github.com/Vid201/ethers-rs", branch = "feat/patch" } diff --git a/Makefile b/Makefile index abdd9e32..de12711a 100644 --- a/Makefile +++ b/Makefile @@ -23,7 +23,7 @@ run-silius-p2p-bootnode: cargo run --release -- node --eth-client-address http://127.0.0.1:8545 --mnemonic-file ./bundler-spec-tests/keys/0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266 --beneficiary 0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266 --entry-points 0x5FF137D4b0FDCD49DcA30c7CF57E578a026d2789 --http --http.port 4000 --eth-client-proxy-address http://127.0.0.1:8545 --p2p.baddr 127.0.0.1 --enable-p2p run-silius-p2p-peer: - cargo run --release -- node --eth-client-address http://127.0.0.1:8545 --mnemonic-file ./bundler-spec-tests/keys/0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266 --beneficiary 0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266 --entry-points 0x5FF137D4b0FDCD49DcA30c7CF57E578a026d2789 --http --http.port 4000 --eth-client-proxy-address http://127.0.0.1:8545 --p2p.baddr 127.0.0.1 --bootnodes "enr:-J24QFyIGX9IG6_4WO6F40-BXH0b4gChUm3zTOkYNoYBOWX5LTq7ubqm5oaFjwcg5r1YesmllbqNvKAapeM2JK8fkKoBiGNoYWluX2lkiDkFAAAAAAAAgmlkgnY0gmlwhH8AAAGJc2VjcDI1NmsxoQMm_tiGzC78d2_BvxJAUX9hRzBQv9QUmgU4OB4Pv1eVE4N0Y3CCIyiDdWRwgiMo" --enable-p2p --discovery.port 4338 --p2p.port 4338 --datadir ./.local/node1 + cargo run --release -- node --eth-client-address http://127.0.0.1:8545 --mnemonic-file ./bundler-spec-tests/keys/0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266 --beneficiary 0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266 --entry-points 0x5FF137D4b0FDCD49DcA30c7CF57E578a026d2789 --http --http.port 4000 --eth-client-proxy-address http://127.0.0.1:8545 --p2p.baddr 127.0.0.1 --bootnodes "enr:-J24QMMKCYqEBAs659G2f4MtvjI8wp3dbAvrvRbTxIEaapZfb9Pi0La0QOs6HoGfVeGk8fsFvZF7WiM_arx43rxSHwQBiGNoYWluX2lkiDkFAAAAAAAAgmlkgnY0gmlwhH8AAAGJc2VjcDI1NmsxoQLigwYFOcf1lit2x918h4_6upE1lZ1kK3tD029ZZioW0IN0Y3CCIyiDdWRwgiMo" --enable-p2p --discovery.port 4338 --p2p.port 4338 --datadir ./.local/node1 run-silius-debug: cargo run --release -- node --eth-client-address ws://127.0.0.1:8546 --mnemonic-file ${HOME}/.silius/0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266 --beneficiary 0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266 --entry-points 0x5FF137D4b0FDCD49DcA30c7CF57E578a026d2789 --http --ws --http.api eth,debug,web3 --ws.api eth,debug,web3 diff --git a/bin/silius/src/bundler.rs b/bin/silius/src/bundler.rs index 4650a34d..b5c412ce 100644 --- a/bin/silius/src/bundler.rs +++ b/bin/silius/src/bundler.rs @@ -8,7 +8,7 @@ use crate::{ use alloy_chains::{Chain, NamedChain}; use ethers::{providers::Middleware, types::Address}; use parking_lot::RwLock; -use silius_bundler::{EthereumClient, FlashbotsClient}; +use silius_bundler::{ConditionalClient, EthereumClient, FlashbotsClient}; use silius_contracts::EntryPoint; use silius_grpc::{ bundler_client::BundlerClient, bundler_service_run, uo_pool_client::UoPoolClient, @@ -154,6 +154,23 @@ where args.enable_access_list, ); } + SendStrategy::Conditional => { + let client = Arc::new(ConditionalClient::new(eth_client.clone(), wallet.clone())); + bundler_service_run( + SocketAddr::new(args.bundler_addr, args.bundler_port), + wallet, + entry_points, + chain_conn, + args.beneficiary, + args.min_balance, + args.bundle_interval, + eth_client, + client, + uopool_grpc_client, + metrics_args.enable_metrics, + args.enable_access_list, + ); + } SendStrategy::Flashbots => { let relay_endpoints: Vec = match chain_conn .named() diff --git a/crates/bundler/Cargo.toml b/crates/bundler/Cargo.toml index b1d65150..b3374f35 100644 --- a/crates/bundler/Cargo.toml +++ b/crates/bundler/Cargo.toml @@ -31,7 +31,6 @@ tokio = { workspace = true } bytes = "1.5.0" eyre = { workspace = true } serde = { workspace = true, features = ["derive"] } -serde_json = { workspace = true } tracing = { workspace = true } url = "2.5.0" diff --git a/crates/bundler/src/bundler.rs b/crates/bundler/src/bundler.rs index b750133b..0c9e2fc7 100644 --- a/crates/bundler/src/bundler.rs +++ b/crates/bundler/src/bundler.rs @@ -7,7 +7,7 @@ use ethers::{ }, }; use silius_contracts::entry_point::EntryPointAPI; -use silius_primitives::{UserOperation, UserOperationHash, Wallet}; +use silius_primitives::{simulation::StorageMap, UserOperation, UserOperationHash, Wallet}; use std::sync::Arc; use tracing::{info, trace}; @@ -18,10 +18,15 @@ pub trait SendBundleOp: Send + Sync + 'static { /// /// # Arguments /// * `bundle` - Bundle of [UserOperations](UserOperation) + /// * 'storage_map' - Storage map /// /// # Returns /// * `H256` - The hash - async fn send_bundle(&self, bundle: TypedTransaction) -> eyre::Result; + async fn send_bundle( + &self, + bundle: TypedTransaction, + storage_map: StorageMap, + ) -> eyre::Result; } /// The `Bundler` struct is used to represent a bundler with necessary properties @@ -140,10 +145,15 @@ where /// /// # Arguments /// * `uos` - An array of [UserOperations](UserOperation) + /// * `storage_map` - Storage map /// /// # Returns /// * `H256` - The hash - pub async fn send_bundle(&self, uos: &Vec) -> eyre::Result> { + pub async fn send_bundle( + &self, + uos: &Vec, + storage_map: StorageMap, + ) -> eyre::Result> { if uos.is_empty() { info!("Skipping creating a new bundle, no user operations"); return Ok(None); @@ -157,7 +167,7 @@ where trace!("Bundle content: {uos:?}"); let bundle = self.create_bundle(uos).await?; - let hash = self.client.send_bundle(bundle).await?; + let hash = self.client.send_bundle(bundle, storage_map).await?; info!( "Bundle successfully sent, hash: {:?}, account: {:?}, entry point: {:?}, beneficiary: {:?}", diff --git a/crates/bundler/src/conditional.rs b/crates/bundler/src/conditional.rs new file mode 100644 index 00000000..40abae8e --- /dev/null +++ b/crates/bundler/src/conditional.rs @@ -0,0 +1,89 @@ +use crate::bundler::SendBundleOp; +use ethers::{ + middleware::SignerMiddleware, + providers::Middleware, + signers::LocalWallet, + types::{ + transaction::{ + conditional::{AccountStorage, ConditionalOptions}, + eip2718::TypedTransaction, + }, + Address, H256, + }, +}; +use silius_primitives::{simulation::StorageMap, Wallet}; +use std::{collections::HashMap, sync::Arc, time::Duration}; +use tracing::trace; + +/// A type alias for the Ethereum Conditional Signer client +#[derive(Clone)] +pub struct ConditionalClient(pub SignerMiddleware, LocalWallet>); + +#[async_trait::async_trait] +impl SendBundleOp for ConditionalClient +where + M: Middleware + 'static, +{ + /// Send a bundle of [UserOperations](UserOperation) to the Ethereum execution client + /// over conditional RPC method. + /// + /// # Arguments + /// * `bundle` - Bundle of [UserOperations](UserOperation) + /// * 'storage_map' - Storage map + /// + /// # Returns + /// * `H256` - The transaction hash + async fn send_bundle( + &self, + bundle: TypedTransaction, + storage_map: StorageMap, + ) -> eyre::Result { + trace!("Sending transaction to the conditional endpoint: {bundle:?}"); + + let mut known_accounts: HashMap = HashMap::default(); + + for (k, v) in storage_map.root_hashes { + known_accounts.insert(k, AccountStorage::RootHash(v)); + } + + for (k, v) in storage_map.slots { + known_accounts.insert(k, AccountStorage::SlotValues(v)); + } + + let signed_tx = self.0.sign_transaction(bundle).await?; + + let tx = self + .0 + .send_raw_transaction_conditional( + signed_tx, + ConditionalOptions { known_accounts, ..Default::default() }, + ) + .await? + .interval(Duration::from_millis(75)); + let tx_hash = tx.tx_hash(); + + let tx_receipt = tx.await?; + + trace!("Transaction receipt: {tx_receipt:?}"); + + Ok(tx_hash) + } +} + +impl ConditionalClient +where + M: Middleware + 'static, +{ + /// Create an Conditional client + /// + /// # Arguments + /// * `eth_client` - Connection to the Ethereum execution client + /// * `wallet` - A [Wallet](Wallet) instance + /// + /// # Returns + /// * `ConditionalClient` - A [Ethereum Signer Middleware](ConditionalClient) + pub fn new(eth_client: Arc, wallet: Wallet) -> Self { + let signer = SignerMiddleware::new(eth_client, wallet.signer); + Self(signer) + } +} diff --git a/crates/bundler/src/ethereum.rs b/crates/bundler/src/ethereum.rs index 22c598e4..ce2a6937 100644 --- a/crates/bundler/src/ethereum.rs +++ b/crates/bundler/src/ethereum.rs @@ -5,13 +5,13 @@ use ethers::{ signers::LocalWallet, types::{transaction::eip2718::TypedTransaction, H256}, }; -use silius_primitives::Wallet; +use silius_primitives::{simulation::StorageMap, Wallet}; use std::{sync::Arc, time::Duration}; use tracing::trace; /// A type alias for the Ethereum Signer client #[derive(Clone)] -pub struct EthereumClient(pub Arc, LocalWallet>>); +pub struct EthereumClient(pub SignerMiddleware, LocalWallet>); #[async_trait::async_trait] impl SendBundleOp for EthereumClient @@ -22,10 +22,15 @@ where /// /// # Arguments /// * `bundle` - Bundle of [UserOperations](UserOperation) + /// * 'storage_map' - Storage map /// /// # Returns /// * `H256` - The transaction hash - async fn send_bundle(&self, bundle: TypedTransaction) -> eyre::Result { + async fn send_bundle( + &self, + bundle: TypedTransaction, + _storage_map: StorageMap, + ) -> eyre::Result { trace!("Sending transaction to the execution client: {bundle:?}"); let tx = self.0.send_transaction(bundle, None).await?.interval(Duration::from_millis(75)); @@ -53,6 +58,6 @@ where /// * `EthereumClient` - A [Ethereum Signer Middleware](EthereumClient) pub fn new(eth_client: Arc, wallet: Wallet) -> Self { let signer = SignerMiddleware::new(eth_client, wallet.signer); - Self(Arc::new(signer)) + Self(signer) } } diff --git a/crates/bundler/src/flashbots.rs b/crates/bundler/src/flashbots.rs index 4570fb3d..cd8183b1 100644 --- a/crates/bundler/src/flashbots.rs +++ b/crates/bundler/src/flashbots.rs @@ -6,7 +6,7 @@ use ethers::{ types::{transaction::eip2718::TypedTransaction, H256}, }; use ethers_flashbots::{BundleRequest, FlashbotsMiddleware, PendingBundleError, SimulatedBundle}; -use silius_primitives::Wallet; +use silius_primitives::{simulation::StorageMap, Wallet}; use std::sync::Arc; use tracing::{info, trace}; use url::Url; @@ -27,10 +27,15 @@ where /// /// # Arguments /// * `uos` - Bundler of [UserOperations](UserOperation) + /// * 'storage_map' - Storage map /// /// # Returns /// * `H256` - The transaction hash of the bundle - async fn send_bundle(&self, bundle: TypedTransaction) -> eyre::Result { + async fn send_bundle( + &self, + bundle: TypedTransaction, + _storage_map: StorageMap, + ) -> eyre::Result { let bundle_req = self.generate_bundle_req(vec![bundle], false).await?; match self.simulate_flashbots_bundle(&bundle_req).await { diff --git a/crates/bundler/src/lib.rs b/crates/bundler/src/lib.rs index dab94636..d1c2f3f6 100644 --- a/crates/bundler/src/lib.rs +++ b/crates/bundler/src/lib.rs @@ -2,9 +2,11 @@ #![allow(dead_code)] mod bundler; +mod conditional; mod ethereum; mod flashbots; pub use bundler::{Bundler, SendBundleOp}; +pub use conditional::ConditionalClient; pub use ethereum::EthereumClient; pub use flashbots::FlashbotsClient; diff --git a/crates/contracts/Cargo.toml b/crates/contracts/Cargo.toml index aab68f69..6b1865da 100644 --- a/crates/contracts/Cargo.toml +++ b/crates/contracts/Cargo.toml @@ -23,7 +23,7 @@ eyre = { workspace = true } lazy_static = { workspace = true } regex = "1.10.2" serde = { workspace = true } -serde_json ={ workspace = true } +serde_json = { workspace = true } thiserror = { workspace = true } [dev-dependencies] @@ -33,7 +33,7 @@ tokio = { workspace = true } [build-dependencies] # eth ethers = { workspace = true, features = ["solc-full"] } -ethers-solc = "2.0.8" +ethers-solc = "2.0.14" # misc eyre = { workspace = true } diff --git a/crates/contracts/src/entry_point.rs b/crates/contracts/src/entry_point.rs index c845fcc8..388ff560 100644 --- a/crates/contracts/src/entry_point.rs +++ b/crates/contracts/src/entry_point.rs @@ -125,6 +125,7 @@ impl EntryPoint { timeout: None, }, state_overrides: None, + block_overrides: None, }, ) .await @@ -162,6 +163,7 @@ impl EntryPoint { timeout: None, }, state_overrides: Some(spoof::balance(Address::zero(), UINT96_MAX.into())), + block_overrides: None, }, ) .await diff --git a/crates/grpc/src/bundler.rs b/crates/grpc/src/bundler.rs index 176a87d5..2f0dae68 100644 --- a/crates/grpc/src/bundler.rs +++ b/crates/grpc/src/bundler.rs @@ -14,7 +14,7 @@ use ethers::{ use parking_lot::Mutex; use silius_bundler::{Bundler, SendBundleOp}; use silius_metrics::grpc::MetricsLayer; -use silius_primitives::{UserOperation, Wallet}; +use silius_primitives::{simulation::StorageMap, UserOperation, Wallet}; use std::{net::SocketAddr, sync::Arc, time::Duration}; use tonic::{Request, Response, Status}; use tracing::{error, info}; @@ -49,12 +49,19 @@ where async fn get_user_operations( uopool_grpc_client: &UoPoolClient, ep: &Address, - ) -> eyre::Result> { + ) -> eyre::Result<(Vec, StorageMap)> { let req = Request::new(GetSortedRequest { ep: Some((*ep).into()) }); let res = uopool_grpc_client.clone().get_sorted_user_operations(req).await?; - let uos: Vec = res.into_inner().uos.into_iter().map(|u| u.into()).collect(); - Ok(uos) + let res = res.into_inner(); + + let uos: Vec = res.uos.into_iter().map(|u| u.into()).collect(); + let map = match res.storage_map { + Some(map) => map.into(), + None => StorageMap::default(), + }; + + Ok((uos, map)) } pub async fn send_bundles(&self) -> eyre::Result<(Vec, Option)> { @@ -62,9 +69,9 @@ where let mut user_operations: Vec> = vec![]; for bundler in self.bundlers.iter() { - let uos = + let (uos, map) = Self::get_user_operations(&self.uopool_grpc_client, &bundler.entry_point).await?; - let tx_hash = bundler.send_bundle(&uos).await?; + let tx_hash = bundler.send_bundle(&uos, map).await?; tx_hashes.push(tx_hash); user_operations.push(uos); @@ -117,8 +124,8 @@ where ) .await { - Ok(bundle) => { - if let Err(e) = bundler_own.send_bundle(&bundle).await { + Ok((bundle, map)) => { + if let Err(e) = bundler_own.send_bundle(&bundle, map).await { error!("Error while sending bundle: {e:?}"); } } diff --git a/crates/grpc/src/proto.rs b/crates/grpc/src/proto.rs index d0796ba0..15f12026 100644 --- a/crates/grpc/src/proto.rs +++ b/crates/grpc/src/proto.rs @@ -381,6 +381,47 @@ pub mod types { } } } + + impl From for silius_primitives::simulation::StorageMap { + fn from(value: StorageMap) -> Self { + let root_hashes = value.root_hashes; + let slots = value.slots; + + Self { + root_hashes: root_hashes + .into_iter() + .map(|(k, v)| { + ( + Address::from_str(&k).unwrap_or_default(), + ethers::types::H256::from_str(&v).unwrap_or_default(), + ) + }) + .collect(), + slots: slots + .into_iter() + .map(|(k, v)| (Address::from_str(&k).unwrap_or_default(), v.slots)) + .collect(), + } + } + } + + impl From for StorageMap { + fn from(value: silius_primitives::simulation::StorageMap) -> Self { + let root_hashes = value.root_hashes; + let slots = value.slots; + + Self { + root_hashes: root_hashes + .into_iter() + .map(|(k, v)| (k.to_string(), v.to_string())) + .collect(), + slots: slots + .into_iter() + .map(|(k, v)| (k.to_string(), StorageSlots { slots: v })) + .collect(), + } + } + } } pub mod uopool { diff --git a/crates/grpc/src/protos/types/types.proto b/crates/grpc/src/protos/types/types.proto index 6593420d..d1df8aa6 100644 --- a/crates/grpc/src/protos/types/types.proto +++ b/crates/grpc/src/protos/types/types.proto @@ -65,7 +65,7 @@ message GetSupportedEntryPointsResponse { repeated H160 eps = 1; } -message TransactionReceipt{ +message TransactionReceipt { H160 to = 1; H160 from = 2; H160 contract_address = 3; @@ -82,7 +82,7 @@ message TransactionReceipt{ uint64 status = 14; } -message Log{ +message Log { uint64 block_number = 1; H256 block_hash = 2; uint64 transaction_index = 3; @@ -99,3 +99,12 @@ message StakeInfo { uint64 stake = 2; uint64 unstake_delay = 3; } + +message StorageSlots { + map slots = 1; +} + +message StorageMap { + map root_hashes = 1; + map slots = 2; +} diff --git a/crates/grpc/src/protos/uopool/uopool.proto b/crates/grpc/src/protos/uopool/uopool.proto index 65fe5987..46b9e711 100644 --- a/crates/grpc/src/protos/uopool/uopool.proto +++ b/crates/grpc/src/protos/uopool/uopool.proto @@ -90,6 +90,7 @@ message GetSortedRequest { message GetSortedResponse { repeated types.UserOperation uos = 1; + types.StorageMap storage_map = 2; } message UserOperationHashRequest { diff --git a/crates/grpc/src/uopool.rs b/crates/grpc/src/uopool.rs index 11b5162e..73f9d815 100644 --- a/crates/grpc/src/uopool.rs +++ b/crates/grpc/src/uopool.rs @@ -27,7 +27,7 @@ use silius_p2p::{ use silius_primitives::{provider::BlockStream, UoPoolMode, UserOperation}; use std::{collections::HashMap, net::SocketAddr, sync::Arc, time::Duration}; use tonic::{Code, Request, Response, Status}; -use tracing::{debug, error, info}; +use tracing::{error, info}; type StandardUserPool = UserOperationPool>; @@ -181,18 +181,18 @@ where tonic::Status::internal(format!("Get sorted uos internal error: {e:?}")) })? }; - debug!("get sorted user operation {uos:?}"); - let uos_valid = { + + let (uos_valid, storage_map) = { let mut uopool = self.get_uopool(&ep)?; uopool .bundle_user_operations(uos) .await .map_err(|e| tonic::Status::internal(format!("Bundle uos internal error: {e}")))? }; - debug!("get sorted valid user operation {uos_valid:?}"); Ok(Response::new(GetSortedResponse { uos: uos_valid.into_iter().map(Into::into).collect(), + storage_map: Some(storage_map.into()), })) } diff --git a/crates/mempool/Cargo.toml b/crates/mempool/Cargo.toml index 9950bab6..b9fe4c27 100644 --- a/crates/mempool/Cargo.toml +++ b/crates/mempool/Cargo.toml @@ -42,7 +42,6 @@ eyre = { workspace = true } page_size = "0.6.0" prost = "0.12.3" serde = { workspace = true } -serde_json = { workspace = true } thiserror = { workspace = true } tracing = { workspace = true } diff --git a/crates/mempool/src/uopool.rs b/crates/mempool/src/uopool.rs index 8664d54e..1848a868 100644 --- a/crates/mempool/src/uopool.rs +++ b/crates/mempool/src/uopool.rs @@ -4,7 +4,8 @@ use crate::{ mempool_id, utils::div_ceil, validate::{ - UserOperationValidationOutcome, UserOperationValidator, UserOperationValidatorMode, + utils::merge_storage_maps, UserOperationValidationOutcome, UserOperationValidator, + UserOperationValidatorMode, }, InvalidMempoolUserOperationError, MempoolError, MempoolErrorKind, MempoolId, Overhead, Reputation, ReputationError, SanityError, SimulationError, @@ -25,6 +26,7 @@ use silius_primitives::{ constants::validation::reputation::THROTTLED_ENTITY_BUNDLE_COUNT, get_address, reputation::{ReputationEntry, StakeInfo, StakeInfoResponse, Status}, + simulation::StorageMap, UoPoolMode, UserOperation, UserOperationByHash, UserOperationGasEstimation, UserOperationHash, UserOperationReceipt, }; @@ -287,7 +289,7 @@ impl UoPool { } /// Bundles an array of [UserOperations](UserOperation) - /// The function first checks the reputations of the entiries, then validate each + /// The function first checks the reputations of the entities, then validate each /// [UserOperation](UserOperation) by calling /// [UoPool::validate_user_operation](UoPool::validate_user_operation). /// If the [UserOperations](UserOperation) passes the validation, push it into the `uos_valid` @@ -297,16 +299,18 @@ impl UoPool { /// `uos` - An array of [UserOperations](UserOperation) to bundle /// /// # Returns - /// `Result, eyre::Error>` - The bundled [UserOperations](UserOperation). + /// `Result<(Vec, StorageMap), eyre::Error>` - The bundled + /// [UserOperations](UserOperation). pub async fn bundle_user_operations( &mut self, uos: Vec, - ) -> eyre::Result> { + ) -> eyre::Result<(Vec, StorageMap)> { let mut uos_valid = vec![]; let mut senders = HashSet::new(); let mut gas_total = U256::zero(); let mut paymaster_dep = HashMap::new(); let mut staked_entity_c = HashMap::new(); + let mut storage_maps: Vec = Vec::new(); let senders_all = uos.iter().map(|uo| uo.sender).collect::>(); @@ -367,13 +371,18 @@ impl UoPool { continue; } - if let Some(storage_map) = val_out.storage_map { - for addr in storage_map.keys() { - if *addr != uo.sender && senders_all.contains(addr) { - continue 'uos; - } + for addr in val_out.storage_map.root_hashes.keys() { + if *addr != uo.sender && senders_all.contains(addr) { + continue 'uos; } } + for addr in val_out.storage_map.slots.keys() { + if *addr != uo.sender && senders_all.contains(addr) { + continue 'uos; + } + } + + storage_maps.push(val_out.storage_map); // TODO // it would be better to use estimate_gas instead of call_gas_limit @@ -423,7 +432,7 @@ impl UoPool { senders.insert(uo.sender); } - Ok(uos_valid) + Ok((uos_valid, merge_storage_maps(storage_maps))) } /// Gets the block base fee per gas diff --git a/crates/mempool/src/validate/mod.rs b/crates/mempool/src/validate/mod.rs index 2cf711de..dd342a60 100644 --- a/crates/mempool/src/validate/mod.rs +++ b/crates/mempool/src/validate/mod.rs @@ -16,7 +16,7 @@ use silius_primitives::{ pub mod sanity; pub mod simulation; pub mod simulation_trace; -mod utils; +pub mod utils; pub mod validator; /// The outcome of a user operation validation. @@ -29,7 +29,7 @@ pub struct UserOperationValidationOutcome { pub valid_after: Option, // Simulation trace pub code_hashes: Option>, - pub storage_map: Option, + pub storage_map: StorageMap, // the block which the user operation is verified on pub verified_block: U256, } diff --git a/crates/mempool/src/validate/simulation/verification_extra_gas.rs b/crates/mempool/src/validate/simulation/verification_extra_gas.rs index e0850a48..6ae0fd9c 100644 --- a/crates/mempool/src/validate/simulation/verification_extra_gas.rs +++ b/crates/mempool/src/validate/simulation/verification_extra_gas.rs @@ -31,7 +31,7 @@ impl SimulationCheck for VerificationExtraGas { if extra_gas.as_u64() < MIN_EXTRA_GAS { return Err(SimulationError::Validation { - inner: "Verification gas should have extra 2000 gas (has ${extra_gas})".into(), + inner: format!("Verification gas should have extra 2000 gas (has ${extra_gas})"), }); } diff --git a/crates/mempool/src/validate/utils.rs b/crates/mempool/src/validate/utils.rs index 2ba20c36..e1031bfe 100644 --- a/crates/mempool/src/validate/utils.rs +++ b/crates/mempool/src/validate/utils.rs @@ -102,9 +102,44 @@ pub fn extract_storage_map(js_trace: &JsTracerFrame) -> StorageMap { for l in js_trace.calls_from_entry_point.iter() { for (addr, acc) in l.access.iter() { - storage_map.insert(*addr, acc.reads.clone()); + storage_map.slots.insert(*addr, acc.reads.clone()); } } storage_map } + +/// Helper function to merge multiple storage maps into one. +/// +/// # Arguments +/// `storage_maps` - The vector of storage maps to merge +/// +/// # Returns +/// The [storage map](StorageMap) +pub fn merge_storage_maps(storage_maps: Vec) -> StorageMap { + let mut merged_map = StorageMap::default(); + + for map in storage_maps { + for (addr, entry) in map.root_hashes { + merged_map.root_hashes.insert(addr, entry); + merged_map.slots.remove(&addr); + } + + for (addr, entry) in map.slots { + if !merged_map.root_hashes.contains_key(&addr) { + match merged_map.slots.get_mut(&addr) { + Some(slots) => { + for (slot, value) in entry { + slots.insert(slot, value); + } + } + None => { + merged_map.slots.insert(addr, entry); + } + } + } + } + } + + merged_map +} diff --git a/crates/mempool/src/validate/validator.rs b/crates/mempool/src/validate/validator.rs index 5d9b6c00..13075a13 100644 --- a/crates/mempool/src/validate/validator.rs +++ b/crates/mempool/src/validate/validator.rs @@ -298,7 +298,7 @@ where .await?; out.code_hashes = sim_helper.code_hashes; - out.storage_map = Some(extract_storage_map(&js_trace)); + out.storage_map = extract_storage_map(&js_trace); } Ok(out) diff --git a/crates/primitives/Cargo.toml b/crates/primitives/Cargo.toml index 74071986..2c60b9bb 100644 --- a/crates/primitives/Cargo.toml +++ b/crates/primitives/Cargo.toml @@ -33,7 +33,6 @@ lazy_static = { workspace = true } rustc-hex = "2.1.0" serde = { workspace = true } serde-hex = "0.1.0" -serde_json = { workspace = true } strum = "0.25.0" strum_macros = "0.25.3" diff --git a/crates/primitives/src/bundler.rs b/crates/primitives/src/bundler.rs index d0651089..9388a92a 100644 --- a/crates/primitives/src/bundler.rs +++ b/crates/primitives/src/bundler.rs @@ -22,4 +22,6 @@ pub enum SendStrategy { EthereumClient, /// Sends the bundle to the Flashbots relay Flashbots, + /// Send the bundle to the Ethereum execution client over conditional RPC method + Conditional, } diff --git a/crates/primitives/src/simulation.rs b/crates/primitives/src/simulation.rs index 968d3458..145dc231 100644 --- a/crates/primitives/src/simulation.rs +++ b/crates/primitives/src/simulation.rs @@ -59,4 +59,8 @@ pub struct CodeHash { } /// Storage map -pub type StorageMap = HashMap>; +#[derive(Debug, Default, Clone)] +pub struct StorageMap { + pub root_hashes: HashMap, + pub slots: HashMap>, +} diff --git a/tests/src/tracer_tests.rs b/tests/src/tracer_tests.rs index 6fe8faaf..103e51cf 100644 --- a/tests/src/tracer_tests.rs +++ b/tests/src/tracer_tests.rs @@ -53,6 +53,7 @@ async fn trace_call( timeout: None, }, state_overrides: None, + block_overrides: None, }, ) .await?;