diff --git a/Cargo.lock b/Cargo.lock index c8249db..9038878 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -2,13 +2,22 @@ # It is not intended for manual editing. version = 3 +[[package]] +name = "addr2line" +version = "0.21.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8a30b2e23b9e17a9f90641c7ab1549cd9b44f296d3ccbf309d2863cfe398a0cb" +dependencies = [ + "gimli 0.28.1", +] + [[package]] name = "addr2line" version = "0.22.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6e4503c46a5c0c7844e948c9a4d6acd9f50cccb4de1c48eb9e291ea17470c678" dependencies = [ - "gimli", + "gimli 0.29.0", ] [[package]] @@ -32,7 +41,7 @@ version = "0.7.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9e8b47f52ea9bae42228d07ec09eb676433d7c4ed1ebdf0f1d1c29ed446f1ab8" dependencies = [ - "cfg-if", + "cfg-if 1.0.0", "cipher 0.3.0", "cpufeatures", "ctr 0.8.0", @@ -45,7 +54,7 @@ version = "0.8.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b169f7a6d4742236a0a00c541b845991d0ac43e546831af1249753ab4c3aa3a0" dependencies = [ - "cfg-if", + "cfg-if 1.0.0", "cipher 0.4.4", "cpufeatures", ] @@ -70,7 +79,7 @@ version = "0.8.11" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e89da841a80418a9b391ebaea17f5c112ffaaa96f621d2c285b5174da76b9011" dependencies = [ - "cfg-if", + "cfg-if 1.0.0", "getrandom 0.2.15", "once_cell", "version_check", @@ -266,7 +275,7 @@ dependencies = [ "alloy-rlp", "arbitrary", "bytes", - "cfg-if", + "cfg-if 1.0.0", "const-hex", "derive_arbitrary", "derive_more", @@ -706,6 +715,12 @@ dependencies = [ "tracing", ] +[[package]] +name = "ambient-authority" +version = "0.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e9d4ee0d472d1cd2e28c97dfa124b3d8d992e10eb0a035f33f5d12e3a177ba3b" + [[package]] name = "android-tzdata" version = "0.1.1" @@ -1099,9 +1114,9 @@ version = "0.3.73" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5cc23269a4f8976d0a4d2e7109211a419fe30e8d88d677cd60b6bc79c5732e0a" dependencies = [ - "addr2line", + "addr2line 0.22.0", "cc", - "cfg-if", + "cfg-if 1.0.0", "libc", "miniz_oxide", "object", @@ -1329,7 +1344,7 @@ dependencies = [ "boa_profiler", "boa_string", "bytemuck", - "cfg-if", + "cfg-if 1.0.0", "dashmap", "fast-float", "hashbrown 0.14.5", @@ -1557,6 +1572,71 @@ dependencies = [ "serde", ] +[[package]] +name = "cap-fs-ext" +version = "3.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "eb23061fc1c4ead4e45ca713080fe768e6234e959f5a5c399c39eb41aa34e56e" +dependencies = [ + "cap-primitives", + "cap-std", + "io-lifetimes", + "windows-sys 0.52.0", +] + +[[package]] +name = "cap-primitives" +version = "3.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6d00bd8d26c4270d950eaaa837387964a2089a1c3c349a690a1fa03221d29531" +dependencies = [ + "ambient-authority", + "fs-set-times", + "io-extras", + "io-lifetimes", + "ipnet", + "maybe-owned", + "rustix", + "windows-sys 0.52.0", + "winx", +] + +[[package]] +name = "cap-rand" +version = "3.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dbcb16a619d8b8211ed61f42bd290d2a1ac71277a69cf8417ec0996fa92f5211" +dependencies = [ + "ambient-authority", + "rand 0.8.5", +] + +[[package]] +name = "cap-std" +version = "3.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "19eb8e3d71996828751c1ed3908a439639752ac6bdc874e41469ef7fc15fbd7f" +dependencies = [ + "cap-primitives", + "io-extras", + "io-lifetimes", + "rustix", +] + +[[package]] +name = "cap-time-ext" +version = "3.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "61142dc51e25b7acc970ca578ce2c3695eac22bbba46c1073f5f583e78957725" +dependencies = [ + "ambient-authority", + "cap-primitives", + "iana-time-zone", + "once_cell", + "rustix", + "winx", +] + [[package]] name = "cargo-platform" version = "0.1.8" @@ -1620,6 +1700,12 @@ dependencies = [ "nom", ] +[[package]] +name = "cfg-if" +version = "0.1.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4785bdd1c96b2a846b2bd7cc02e86b6b3dbf14e7e53446c4f54c92a361040822" + [[package]] name = "cfg-if" version = "1.0.0" @@ -1711,6 +1797,12 @@ version = "0.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4b82cf0babdbd58558212896d1a4272303a57bdb245c2bf1147185fb45640e70" +[[package]] +name = "cobs" +version = "0.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "67ba02a97a2bd10f4b59b25c7973101c79642302776489e030cd13cdab09ed15" + [[package]] name = "colorchoice" version = "1.0.1" @@ -1746,7 +1838,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f86b9c4c00838774a6d902ef931eff7470720c51d90c2e32cfe15dc304737b3f" dependencies = [ "castaway", - "cfg-if", + "cfg-if 1.0.0", "itoa", "ryu", "static_assertions", @@ -1791,7 +1883,7 @@ version = "1.12.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "94fb8a24a26d37e1ffd45343323dc9fe6654ceea44c12f2fcb3d7ac29e610bc6" dependencies = [ - "cfg-if", + "cfg-if 1.0.0", "cpufeatures", "hex", "proptest", @@ -1865,6 +1957,15 @@ dependencies = [ "memchr", ] +[[package]] +name = "cpp_demangle" +version = "0.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7e8227005286ec39567949b33df9896bcadfa6051bccca2488129f108ca23119" +dependencies = [ + "cfg-if 1.0.0", +] + [[package]] name = "cpufeatures" version = "0.2.12" @@ -1874,6 +1975,116 @@ dependencies = [ "libc", ] +[[package]] +name = "cranelift-bforest" +version = "0.109.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0b6b33d7e757a887989eb18b35712b2a67d96171ec3149d1bfb657b29b7b367c" +dependencies = [ + "cranelift-entity", +] + +[[package]] +name = "cranelift-codegen" +version = "0.109.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b9acf15cb22be42d07c3b57d7856329cb228b7315d385346149df2566ad5e4aa" +dependencies = [ + "bumpalo", + "cranelift-bforest", + "cranelift-codegen-meta", + "cranelift-codegen-shared", + "cranelift-control", + "cranelift-entity", + "cranelift-isle", + "gimli 0.28.1", + "hashbrown 0.14.5", + "log", + "regalloc2", + "rustc-hash 1.1.0", + "smallvec", + "target-lexicon", +] + +[[package]] +name = "cranelift-codegen-meta" +version = "0.109.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e934d301392b73b3f8b0540391fb82465a0f179a3cee7c726482ac4727efcc97" +dependencies = [ + "cranelift-codegen-shared", +] + +[[package]] +name = "cranelift-codegen-shared" +version = "0.109.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8afb2a2566b3d54b854dfb288b3b187f6d3d17d6f762c92898207eba302931da" + +[[package]] +name = "cranelift-control" +version = "0.109.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0100f33b704cdacd01ad66ff41f8c5030d57cbff078e2a4e49ab1822591299fa" +dependencies = [ + "arbitrary", +] + +[[package]] +name = "cranelift-entity" +version = "0.109.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a8cfdc315e5d18997093e040a8d234bea1ac1e118a716d3e30f40d449e78207b" +dependencies = [ + "serde", + "serde_derive", +] + +[[package]] +name = "cranelift-frontend" +version = "0.109.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0f74b84f16af2e982b0c0c72233503d9d55cbfe3865dbe807ca28dc6642a28b5" +dependencies = [ + "cranelift-codegen", + "log", + "smallvec", + "target-lexicon", +] + +[[package]] +name = "cranelift-isle" +version = "0.109.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "adf306d3dde705fb94bd48082f01d38c4ededc74293a4c007805f610bf08bc6e" + +[[package]] +name = "cranelift-native" +version = "0.109.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1ea0ebdef7aff4a79bcbc8b6495f31315f16b3bf311152f472eaa8d679352581" +dependencies = [ + "cranelift-codegen", + "libc", + "target-lexicon", +] + +[[package]] +name = "cranelift-wasm" +version = "0.109.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d549108a1942065cdbac3bb96c2952afa0e1b9a3beff4b08c4308ac72257576d" +dependencies = [ + "cranelift-codegen", + "cranelift-entity", + "cranelift-frontend", + "itertools 0.12.1", + "log", + "smallvec", + "wasmparser", + "wasmtime-types", +] + [[package]] name = "crc" version = "3.2.1" @@ -1895,7 +2106,7 @@ version = "1.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a97769d94ddab943e4510d138150169a2758b5ef3eb191a9ee688de3e23ef7b3" dependencies = [ - "cfg-if", + "cfg-if 1.0.0", ] [[package]] @@ -2042,7 +2253,7 @@ version = "4.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "97fb8b7c4503de7d6ae7b42ab72a5a59857b4c937ec27a3d4539dba95b5ab2be" dependencies = [ - "cfg-if", + "cfg-if 1.0.0", "cpufeatures", "curve25519-dalek-derive", "digest 0.10.7", @@ -2104,7 +2315,7 @@ version = "5.5.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "978747c1d849a7d2ee5e8adc0159961c48fb7e5db2f06af6723b80123bb53856" dependencies = [ - "cfg-if", + "cfg-if 1.0.0", "hashbrown 0.14.5", "lock_api", "once_cell", @@ -2143,6 +2354,15 @@ version = "0.3.13" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f578e8e2c440e7297e008bb5486a3a8a194775224bbc23729b0dbdfaeebf162e" +[[package]] +name = "debugid" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bef552e6f588e446098f6ba40d89ac146c8c7b64aade83c051ee00bb5d2bc18d" +dependencies = [ + "uuid", +] + [[package]] name = "delay_map" version = "0.3.0" @@ -2235,7 +2455,26 @@ version = "5.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9a49173b84e034382284f27f1af4dcbbd231ffa358c0fe316541a7337f376a35" dependencies = [ - "dirs-sys", + "dirs-sys 0.4.1", +] + +[[package]] +name = "directories-next" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "339ee130d97a610ea5a5872d2bbb130fdf68884ff09d3028b81bec8a1ac23bbc" +dependencies = [ + "cfg-if 1.0.0", + "dirs-sys-next", +] + +[[package]] +name = "dirs" +version = "4.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ca3aa72a6f96ea37bbc5aa912f6788242832f75369bdfdadcb0e38423f100059" +dependencies = [ + "dirs-sys 0.3.7", ] [[package]] @@ -2244,7 +2483,7 @@ version = "5.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "44c45a9d03d6676652bcb5e724c7e988de1acad23a711b5217ab9cbecbec2225" dependencies = [ - "dirs-sys", + "dirs-sys 0.4.1", ] [[package]] @@ -2253,10 +2492,21 @@ version = "2.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b98cf8ebf19c3d1b223e151f99a4f9f0690dca41414773390fc824184ac833e1" dependencies = [ - "cfg-if", + "cfg-if 1.0.0", "dirs-sys-next", ] +[[package]] +name = "dirs-sys" +version = "0.3.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1b1d1d91c932ef41c0f2663aa8b0ca0342d444d842c06914aa0a7e352d0bada6" +dependencies = [ + "libc", + "redox_users", + "winapi", +] + [[package]] name = "dirs-sys" version = "0.4.1" @@ -2434,12 +2684,27 @@ dependencies = [ "zeroize", ] +[[package]] +name = "embedded-io" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ef1a6892d9eef45c8fa6b9e0086428a2cca8491aca8f787c534a3d6d0bcb3ced" + [[package]] name = "encode_unicode" version = "0.3.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a357d28ed41a50f9c765dbfe56cbc04a64e53e5fc58ba79fbc34c10ef3df831f" +[[package]] +name = "encoding_rs" +version = "0.8.34" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b45de904aa0b010bce2ab45264d0631681847fa7b6f2eaa7dab7619943bc4f59" +dependencies = [ + "cfg-if 1.0.0", +] + [[package]] name = "endian-type" version = "0.1.2" @@ -2610,6 +2875,17 @@ dependencies = [ "bytes", ] +[[package]] +name = "fd-lock" +version = "4.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7e5768da2206272c81ef0b5e951a41862938a6070da63bcea197899942d3b947" +dependencies = [ + "cfg-if 1.0.0", + "rustix", + "windows-sys 0.52.0", +] + [[package]] name = "fdlimit" version = "0.3.0" @@ -2697,6 +2973,17 @@ dependencies = [ "serde", ] +[[package]] +name = "fs-set-times" +version = "0.20.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "033b337d725b97690d86893f9de22b67b80dcc4e9ad815f348254c38119db8fb" +dependencies = [ + "io-lifetimes", + "rustix", + "windows-sys 0.52.0", +] + [[package]] name = "funty" version = "2.0.0" @@ -2809,6 +3096,28 @@ version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "42012b0f064e01aa58b545fe3727f90f7dd4020f4a3ea735b50344965f5a57e9" +[[package]] +name = "fxhash" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c31b6d751ae2c7f11320402d34e41349dd1016f8d5d45e48c4312bc8625af50c" +dependencies = [ + "byteorder", +] + +[[package]] +name = "fxprof-processed-profile" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "27d12c0aed7f1e24276a241aadc4cb8ea9f83000f34bc062b7cc2d51e3b0fabd" +dependencies = [ + "bitflags 2.6.0", + "debugid", + "fxhash", + "serde", + "serde_json", +] + [[package]] name = "generic-array" version = "0.14.7" @@ -2826,7 +3135,7 @@ version = "0.1.16" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8fc3cb4d91f53b50155bdcfd23f6a4c39ae1969c2ae85982b135750cccaf5fce" dependencies = [ - "cfg-if", + "cfg-if 1.0.0", "libc", "wasi 0.9.0+wasi-snapshot-preview1", ] @@ -2837,7 +3146,7 @@ version = "0.2.15" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c4567c8db10ae91089c99af84c68c38da3ec2f087c3f82960bcdbf3656b6f4d7" dependencies = [ - "cfg-if", + "cfg-if 1.0.0", "js-sys", "libc", "wasi 0.11.0+wasi-snapshot-preview1", @@ -2854,6 +3163,17 @@ dependencies = [ "polyval", ] +[[package]] +name = "gimli" +version = "0.28.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4271d37baee1b8c7e4b708028c57d816cf9d2434acb33a549475f78c181f6253" +dependencies = [ + "fallible-iterator", + "indexmap 2.2.6", + "stable_deref_trait", +] + [[package]] name = "gimli" version = "0.29.0" @@ -2953,6 +3273,9 @@ name = "hashbrown" version = "0.13.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "43a3c133739dddd0d2990f9a4bdf8eb4b21ef50e4851ca85ab661199821d510e" +dependencies = [ + "ahash", +] [[package]] name = "hashbrown" @@ -3376,6 +3699,12 @@ dependencies = [ "syn 2.0.71", ] +[[package]] +name = "id-arena" +version = "2.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "25a2bc672d1148e28034f176e01fffebb08b35768468cc954630da77a1449005" + [[package]] name = "ident_case" version = "1.0.1" @@ -3519,7 +3848,7 @@ version = "0.1.13" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e0242819d153cba4b4b05a5a8f2a7e9bbf97b6055b2a002b395c96b5ff3c0222" dependencies = [ - "cfg-if", + "cfg-if 1.0.0", ] [[package]] @@ -3546,6 +3875,22 @@ dependencies = [ "memoffset", ] +[[package]] +name = "io-extras" +version = "0.18.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c9f046b9af244f13b3bd939f55d16830ac3a201e8a9ba9661bfcb03e2be72b9b" +dependencies = [ + "io-lifetimes", + "windows-sys 0.52.0", +] + +[[package]] +name = "io-lifetimes" +version = "2.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5a611371471e98973dbcab4e0ec66c31a10bc356eeb4d54a0e05eac8158fe38c" + [[package]] name = "ipconfig" version = "0.3.2" @@ -3613,6 +3958,26 @@ version = "1.0.11" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "49f1f14873335454500d59611f1cf4a4b0f786f9ac11f4312a78e4cf2566695b" +[[package]] +name = "ittapi" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6b996fe614c41395cdaedf3cf408a9534851090959d90d54a535f675550b64b1" +dependencies = [ + "anyhow", + "ittapi-sys", + "log", +] + +[[package]] +name = "ittapi-sys" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "52f5385394064fa2c886205dba02598013ce83d3e92d33dbdc0c52fe0e7bf4fc" +dependencies = [ + "cc", +] + [[package]] name = "jni" version = "0.19.0" @@ -3847,7 +4212,7 @@ version = "0.13.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "956ff9b67e26e1a6a866cb758f12c6f8746208489e3e4a4b5580802f2f0a587b" dependencies = [ - "cfg-if", + "cfg-if 1.0.0", "ecdsa", "elliptic-curve", "once_cell", @@ -3919,6 +4284,12 @@ version = "1.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "830d08ce1d1d941e6b30645f1a0eb5643013d835ce3779a5fc208261dbe10f55" +[[package]] +name = "leb128" +version = "0.2.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "884e2677b40cc8c339eaefcb701c32ef1fd2493d71118dc0ca4b6a736c93bd67" + [[package]] name = "libc" version = "0.2.155" @@ -3931,7 +4302,7 @@ version = "0.8.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e310b3a6b5907f99202fcdb4960ff45b93735d7c7d96b760fcff8db2dc0e103d" dependencies = [ - "cfg-if", + "cfg-if 1.0.0", "windows-targets 0.52.6", ] @@ -4235,12 +4606,27 @@ version = "0.7.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0e7465ac9959cc2b1404e8e2367b43684a6d13790fe23056cc8c6c5a6b7bcb94" +[[package]] +name = "maybe-owned" +version = "0.3.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4facc753ae494aeb6e3c22f839b158aebd4f9270f55cd3c79906c45476c47ab4" + [[package]] name = "memchr" version = "2.7.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "78ca9ab1a0babb1e7d5695e3530886289c18cf2f87ec19a575a0abdce112e3a3" +[[package]] +name = "memfd" +version = "0.6.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b2cffa4ad52c6f791f4f8b15f0c05f9824b2ced1160e88cc393d64fff9a8ac64" +dependencies = [ + "rustix", +] + [[package]] name = "memmap2" version = "0.9.4" @@ -4259,6 +4645,12 @@ dependencies = [ "autocfg", ] +[[package]] +name = "memory_units" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8452105ba047068f40ff7093dd1d9da90898e63dd61736462e9cdda6a90ad3c3" + [[package]] name = "metrics" version = "0.23.0" @@ -4641,6 +5033,9 @@ version = "0.36.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "081b846d1d56ddfc18fdf1a922e4f6e07a11768ea1b92dec44e42b72712ccfce" dependencies = [ + "crc32fast", + "hashbrown 0.14.5", + "indexmap 2.2.6", "memchr", ] @@ -4797,7 +5192,7 @@ version = "0.8.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "60a2cfe6f0ad2bfc16aefa463b497d5c7a5ecd44a23efa72aa342d90177356dc" dependencies = [ - "cfg-if", + "cfg-if 1.0.0", "instant", "libc", "redox_syscall 0.2.16", @@ -4811,7 +5206,7 @@ version = "0.9.10" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1e401f977ab385c9e4e3ab30627d6f26d00e2c73eef317493c4ec6d468726cf8" dependencies = [ - "cfg-if", + "cfg-if 1.0.0", "libc", "redox_syscall 0.5.3", "smallvec", @@ -4986,7 +5381,7 @@ version = "0.5.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8419d2b623c7c0896ff2d5d96e2cb4ede590fed28fcc34934f4c33c036e620a1" dependencies = [ - "cfg-if", + "cfg-if 1.0.0", "cpufeatures", "opaque-debug", "universal-hash", @@ -4998,6 +5393,17 @@ version = "1.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7170ef9988bc169ba16dd36a7fa041e5c4cbeb6a35b76d4c03daded371eae7c0" +[[package]] +name = "postcard" +version = "1.0.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a55c51ee6c0db07e68448e336cf8ea4131a620edefebf9893e759b2d793420f8" +dependencies = [ + "cobs", + "embedded-io", + "serde", +] + [[package]] name = "powerfmt" version = "0.2.0" @@ -5216,8 +5622,17 @@ dependencies = [ ] [[package]] -name = "quanta" -version = "0.12.3" +name = "psm" +version = "0.1.21" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5787f7cda34e3033a72192c018bc5883100330f362ef279a8cbccfce8bb4e874" +dependencies = [ + "cc", +] + +[[package]] +name = "quanta" +version = "0.12.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8e5167a477619228a0b284fac2674e3c388cba90631d7b7de620e6f1fcd08da5" dependencies = [ @@ -5482,6 +5897,19 @@ dependencies = [ "thiserror", ] +[[package]] +name = "regalloc2" +version = "0.9.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ad156d539c879b7a24a363a2016d77961786e71f48f2e2fc8302a92abd2429a6" +dependencies = [ + "hashbrown 0.13.2", + "log", + "rustc-hash 1.1.0", + "slice-group-by", + "smallvec", +] + [[package]] name = "regex" version = "1.10.5" @@ -5609,8 +6037,8 @@ dependencies = [ [[package]] name = "reth" -version = "1.0.3" -source = "git+https://github.com/paradigmxyz/reth#390f30aadebcdd509e72cc04327c3b854de076a6" +version = "1.0.2" +source = "git+https://github.com/paradigmxyz/reth#5cd22b50e86a3b09cade509235120a6176de7097" dependencies = [ "alloy-rlp", "aquamarine", @@ -5690,8 +6118,8 @@ dependencies = [ [[package]] name = "reth-auto-seal-consensus" -version = "1.0.3" -source = "git+https://github.com/paradigmxyz/reth#390f30aadebcdd509e72cc04327c3b854de076a6" +version = "1.0.2" +source = "git+https://github.com/paradigmxyz/reth#5cd22b50e86a3b09cade509235120a6176de7097" dependencies = [ "futures-util", "reth-beacon-consensus", @@ -5717,8 +6145,8 @@ dependencies = [ [[package]] name = "reth-basic-payload-builder" -version = "1.0.3" -source = "git+https://github.com/paradigmxyz/reth#390f30aadebcdd509e72cc04327c3b854de076a6" +version = "1.0.2" +source = "git+https://github.com/paradigmxyz/reth#5cd22b50e86a3b09cade509235120a6176de7097" dependencies = [ "alloy-rlp", "futures-core", @@ -5740,8 +6168,8 @@ dependencies = [ [[package]] name = "reth-beacon-consensus" -version = "1.0.3" -source = "git+https://github.com/paradigmxyz/reth#390f30aadebcdd509e72cc04327c3b854de076a6" +version = "1.0.2" +source = "git+https://github.com/paradigmxyz/reth#5cd22b50e86a3b09cade509235120a6176de7097" dependencies = [ "futures", "itertools 0.13.0", @@ -5774,8 +6202,8 @@ dependencies = [ [[package]] name = "reth-blockchain-tree" -version = "1.0.3" -source = "git+https://github.com/paradigmxyz/reth#390f30aadebcdd509e72cc04327c3b854de076a6" +version = "1.0.2" +source = "git+https://github.com/paradigmxyz/reth#5cd22b50e86a3b09cade509235120a6176de7097" dependencies = [ "aquamarine", "linked_hash_set", @@ -5804,8 +6232,8 @@ dependencies = [ [[package]] name = "reth-blockchain-tree-api" -version = "1.0.3" -source = "git+https://github.com/paradigmxyz/reth#390f30aadebcdd509e72cc04327c3b854de076a6" +version = "1.0.2" +source = "git+https://github.com/paradigmxyz/reth#5cd22b50e86a3b09cade509235120a6176de7097" dependencies = [ "reth-consensus", "reth-execution-errors", @@ -5816,8 +6244,8 @@ dependencies = [ [[package]] name = "reth-chainspec" -version = "1.0.3" -source = "git+https://github.com/paradigmxyz/reth#390f30aadebcdd509e72cc04327c3b854de076a6" +version = "1.0.2" +source = "git+https://github.com/paradigmxyz/reth#5cd22b50e86a3b09cade509235120a6176de7097" dependencies = [ "alloy-chains", "alloy-eips 0.2.0", @@ -5837,8 +6265,8 @@ dependencies = [ [[package]] name = "reth-cli" -version = "1.0.3" -source = "git+https://github.com/paradigmxyz/reth#390f30aadebcdd509e72cc04327c3b854de076a6" +version = "1.0.2" +source = "git+https://github.com/paradigmxyz/reth#5cd22b50e86a3b09cade509235120a6176de7097" dependencies = [ "clap", "eyre", @@ -5848,8 +6276,8 @@ dependencies = [ [[package]] name = "reth-cli-commands" -version = "1.0.3" -source = "git+https://github.com/paradigmxyz/reth#390f30aadebcdd509e72cc04327c3b854de076a6" +version = "1.0.2" +source = "git+https://github.com/paradigmxyz/reth#5cd22b50e86a3b09cade509235120a6176de7097" dependencies = [ "ahash", "backon", @@ -5898,8 +6326,8 @@ dependencies = [ [[package]] name = "reth-cli-runner" -version = "1.0.3" -source = "git+https://github.com/paradigmxyz/reth#390f30aadebcdd509e72cc04327c3b854de076a6" +version = "1.0.2" +source = "git+https://github.com/paradigmxyz/reth#5cd22b50e86a3b09cade509235120a6176de7097" dependencies = [ "reth-tasks", "tokio", @@ -5908,8 +6336,8 @@ dependencies = [ [[package]] name = "reth-cli-util" -version = "1.0.3" -source = "git+https://github.com/paradigmxyz/reth#390f30aadebcdd509e72cc04327c3b854de076a6" +version = "1.0.2" +source = "git+https://github.com/paradigmxyz/reth#5cd22b50e86a3b09cade509235120a6176de7097" dependencies = [ "alloy-eips 0.2.0", "alloy-primitives", @@ -5923,8 +6351,8 @@ dependencies = [ [[package]] name = "reth-codecs" -version = "1.0.3" -source = "git+https://github.com/paradigmxyz/reth#390f30aadebcdd509e72cc04327c3b854de076a6" +version = "1.0.2" +source = "git+https://github.com/paradigmxyz/reth#5cd22b50e86a3b09cade509235120a6176de7097" dependencies = [ "alloy-consensus 0.2.0", "alloy-eips 0.2.0", @@ -5939,8 +6367,8 @@ dependencies = [ [[package]] name = "reth-codecs-derive" -version = "1.0.3" -source = "git+https://github.com/paradigmxyz/reth#390f30aadebcdd509e72cc04327c3b854de076a6" +version = "1.0.2" +source = "git+https://github.com/paradigmxyz/reth#5cd22b50e86a3b09cade509235120a6176de7097" dependencies = [ "convert_case 0.6.0", "proc-macro2", @@ -5950,8 +6378,8 @@ dependencies = [ [[package]] name = "reth-config" -version = "1.0.3" -source = "git+https://github.com/paradigmxyz/reth#390f30aadebcdd509e72cc04327c3b854de076a6" +version = "1.0.2" +source = "git+https://github.com/paradigmxyz/reth#5cd22b50e86a3b09cade509235120a6176de7097" dependencies = [ "confy", "humantime-serde", @@ -5963,8 +6391,8 @@ dependencies = [ [[package]] name = "reth-consensus" -version = "1.0.3" -source = "git+https://github.com/paradigmxyz/reth#390f30aadebcdd509e72cc04327c3b854de076a6" +version = "1.0.2" +source = "git+https://github.com/paradigmxyz/reth#5cd22b50e86a3b09cade509235120a6176de7097" dependencies = [ "auto_impl", "reth-primitives", @@ -5973,8 +6401,8 @@ dependencies = [ [[package]] name = "reth-consensus-common" -version = "1.0.3" -source = "git+https://github.com/paradigmxyz/reth#390f30aadebcdd509e72cc04327c3b854de076a6" +version = "1.0.2" +source = "git+https://github.com/paradigmxyz/reth#5cd22b50e86a3b09cade509235120a6176de7097" dependencies = [ "reth-chainspec", "reth-consensus", @@ -5983,8 +6411,8 @@ dependencies = [ [[package]] name = "reth-consensus-debug-client" -version = "1.0.3" -source = "git+https://github.com/paradigmxyz/reth#390f30aadebcdd509e72cc04327c3b854de076a6" +version = "1.0.2" +source = "git+https://github.com/paradigmxyz/reth#5cd22b50e86a3b09cade509235120a6176de7097" dependencies = [ "alloy-consensus 0.2.0", "alloy-eips 0.2.0", @@ -6006,8 +6434,8 @@ dependencies = [ [[package]] name = "reth-db" -version = "1.0.3" -source = "git+https://github.com/paradigmxyz/reth#390f30aadebcdd509e72cc04327c3b854de076a6" +version = "1.0.2" +source = "git+https://github.com/paradigmxyz/reth#5cd22b50e86a3b09cade509235120a6176de7097" dependencies = [ "bytes", "derive_more", @@ -6037,8 +6465,8 @@ dependencies = [ [[package]] name = "reth-db-api" -version = "1.0.3" -source = "git+https://github.com/paradigmxyz/reth#390f30aadebcdd509e72cc04327c3b854de076a6" +version = "1.0.2" +source = "git+https://github.com/paradigmxyz/reth#5cd22b50e86a3b09cade509235120a6176de7097" dependencies = [ "arbitrary", "bytes", @@ -6059,8 +6487,8 @@ dependencies = [ [[package]] name = "reth-db-common" -version = "1.0.3" -source = "git+https://github.com/paradigmxyz/reth#390f30aadebcdd509e72cc04327c3b854de076a6" +version = "1.0.2" +source = "git+https://github.com/paradigmxyz/reth#5cd22b50e86a3b09cade509235120a6176de7097" dependencies = [ "alloy-genesis", "boyer-moore-magiclen", @@ -6084,8 +6512,8 @@ dependencies = [ [[package]] name = "reth-discv4" -version = "1.0.3" -source = "git+https://github.com/paradigmxyz/reth#390f30aadebcdd509e72cc04327c3b854de076a6" +version = "1.0.2" +source = "git+https://github.com/paradigmxyz/reth#5cd22b50e86a3b09cade509235120a6176de7097" dependencies = [ "alloy-primitives", "alloy-rlp", @@ -6108,8 +6536,8 @@ dependencies = [ [[package]] name = "reth-discv5" -version = "1.0.3" -source = "git+https://github.com/paradigmxyz/reth#390f30aadebcdd509e72cc04327c3b854de076a6" +version = "1.0.2" +source = "git+https://github.com/paradigmxyz/reth#5cd22b50e86a3b09cade509235120a6176de7097" dependencies = [ "alloy-primitives", "alloy-rlp", @@ -6134,8 +6562,8 @@ dependencies = [ [[package]] name = "reth-dns-discovery" -version = "1.0.3" -source = "git+https://github.com/paradigmxyz/reth#390f30aadebcdd509e72cc04327c3b854de076a6" +version = "1.0.2" +source = "git+https://github.com/paradigmxyz/reth#5cd22b50e86a3b09cade509235120a6176de7097" dependencies = [ "alloy-primitives", "data-encoding", @@ -6156,8 +6584,8 @@ dependencies = [ [[package]] name = "reth-downloaders" -version = "1.0.3" -source = "git+https://github.com/paradigmxyz/reth#390f30aadebcdd509e72cc04327c3b854de076a6" +version = "1.0.2" +source = "git+https://github.com/paradigmxyz/reth#5cd22b50e86a3b09cade509235120a6176de7097" dependencies = [ "alloy-rlp", "futures", @@ -6183,8 +6611,8 @@ dependencies = [ [[package]] name = "reth-ecies" -version = "1.0.3" -source = "git+https://github.com/paradigmxyz/reth#390f30aadebcdd509e72cc04327c3b854de076a6" +version = "1.0.2" +source = "git+https://github.com/paradigmxyz/reth#5cd22b50e86a3b09cade509235120a6176de7097" dependencies = [ "aes 0.8.4", "alloy-primitives", @@ -6214,8 +6642,8 @@ dependencies = [ [[package]] name = "reth-engine-primitives" -version = "1.0.3" -source = "git+https://github.com/paradigmxyz/reth#390f30aadebcdd509e72cc04327c3b854de076a6" +version = "1.0.2" +source = "git+https://github.com/paradigmxyz/reth#5cd22b50e86a3b09cade509235120a6176de7097" dependencies = [ "reth-chainspec", "reth-payload-primitives", @@ -6224,8 +6652,8 @@ dependencies = [ [[package]] name = "reth-engine-tree" -version = "1.0.3" -source = "git+https://github.com/paradigmxyz/reth#390f30aadebcdd509e72cc04327c3b854de076a6" +version = "1.0.2" +source = "git+https://github.com/paradigmxyz/reth#5cd22b50e86a3b09cade509235120a6176de7097" dependencies = [ "aquamarine", "futures", @@ -6267,8 +6695,8 @@ dependencies = [ [[package]] name = "reth-engine-util" -version = "1.0.3" -source = "git+https://github.com/paradigmxyz/reth#390f30aadebcdd509e72cc04327c3b854de076a6" +version = "1.0.2" +source = "git+https://github.com/paradigmxyz/reth#5cd22b50e86a3b09cade509235120a6176de7097" dependencies = [ "eyre", "futures", @@ -6286,8 +6714,8 @@ dependencies = [ [[package]] name = "reth-errors" -version = "1.0.3" -source = "git+https://github.com/paradigmxyz/reth#390f30aadebcdd509e72cc04327c3b854de076a6" +version = "1.0.2" +source = "git+https://github.com/paradigmxyz/reth#5cd22b50e86a3b09cade509235120a6176de7097" dependencies = [ "reth-blockchain-tree-api", "reth-consensus", @@ -6299,8 +6727,8 @@ dependencies = [ [[package]] name = "reth-eth-wire" -version = "1.0.3" -source = "git+https://github.com/paradigmxyz/reth#390f30aadebcdd509e72cc04327c3b854de076a6" +version = "1.0.2" +source = "git+https://github.com/paradigmxyz/reth#5cd22b50e86a3b09cade509235120a6176de7097" dependencies = [ "alloy-rlp", "bytes", @@ -6324,8 +6752,8 @@ dependencies = [ [[package]] name = "reth-eth-wire-types" -version = "1.0.3" -source = "git+https://github.com/paradigmxyz/reth#390f30aadebcdd509e72cc04327c3b854de076a6" +version = "1.0.2" +source = "git+https://github.com/paradigmxyz/reth#5cd22b50e86a3b09cade509235120a6176de7097" dependencies = [ "alloy-chains", "alloy-genesis", @@ -6340,8 +6768,8 @@ dependencies = [ [[package]] name = "reth-ethereum-consensus" -version = "1.0.3" -source = "git+https://github.com/paradigmxyz/reth#390f30aadebcdd509e72cc04327c3b854de076a6" +version = "1.0.2" +source = "git+https://github.com/paradigmxyz/reth#5cd22b50e86a3b09cade509235120a6176de7097" dependencies = [ "reth-chainspec", "reth-consensus", @@ -6352,8 +6780,8 @@ dependencies = [ [[package]] name = "reth-ethereum-engine" -version = "1.0.3" -source = "git+https://github.com/paradigmxyz/reth#390f30aadebcdd509e72cc04327c3b854de076a6" +version = "1.0.2" +source = "git+https://github.com/paradigmxyz/reth#5cd22b50e86a3b09cade509235120a6176de7097" dependencies = [ "futures", "pin-project", @@ -6372,8 +6800,8 @@ dependencies = [ [[package]] name = "reth-ethereum-engine-primitives" -version = "1.0.3" -source = "git+https://github.com/paradigmxyz/reth#390f30aadebcdd509e72cc04327c3b854de076a6" +version = "1.0.2" +source = "git+https://github.com/paradigmxyz/reth#5cd22b50e86a3b09cade509235120a6176de7097" dependencies = [ "alloy-rlp", "reth-chainspec", @@ -6390,8 +6818,8 @@ dependencies = [ [[package]] name = "reth-ethereum-forks" -version = "1.0.3" -source = "git+https://github.com/paradigmxyz/reth#390f30aadebcdd509e72cc04327c3b854de076a6" +version = "1.0.2" +source = "git+https://github.com/paradigmxyz/reth#5cd22b50e86a3b09cade509235120a6176de7097" dependencies = [ "alloy-chains", "alloy-primitives", @@ -6410,8 +6838,8 @@ dependencies = [ [[package]] name = "reth-ethereum-payload-builder" -version = "1.0.3" -source = "git+https://github.com/paradigmxyz/reth#390f30aadebcdd509e72cc04327c3b854de076a6" +version = "1.0.2" +source = "git+https://github.com/paradigmxyz/reth#5cd22b50e86a3b09cade509235120a6176de7097" dependencies = [ "reth-basic-payload-builder", "reth-errors", @@ -6429,8 +6857,8 @@ dependencies = [ [[package]] name = "reth-etl" -version = "1.0.3" -source = "git+https://github.com/paradigmxyz/reth#390f30aadebcdd509e72cc04327c3b854de076a6" +version = "1.0.2" +source = "git+https://github.com/paradigmxyz/reth#5cd22b50e86a3b09cade509235120a6176de7097" dependencies = [ "rayon", "reth-db-api", @@ -6439,8 +6867,8 @@ dependencies = [ [[package]] name = "reth-evm" -version = "1.0.3" -source = "git+https://github.com/paradigmxyz/reth#390f30aadebcdd509e72cc04327c3b854de076a6" +version = "1.0.2" +source = "git+https://github.com/paradigmxyz/reth#5cd22b50e86a3b09cade509235120a6176de7097" dependencies = [ "alloy-eips 0.2.0", "auto_impl", @@ -6458,8 +6886,8 @@ dependencies = [ [[package]] name = "reth-evm-ethereum" -version = "1.0.3" -source = "git+https://github.com/paradigmxyz/reth#390f30aadebcdd509e72cc04327c3b854de076a6" +version = "1.0.2" +source = "git+https://github.com/paradigmxyz/reth#5cd22b50e86a3b09cade509235120a6176de7097" dependencies = [ "alloy-eips 0.2.0", "alloy-sol-types", @@ -6476,8 +6904,8 @@ dependencies = [ [[package]] name = "reth-evm-optimism" -version = "1.0.3" -source = "git+https://github.com/paradigmxyz/reth#390f30aadebcdd509e72cc04327c3b854de076a6" +version = "1.0.2" +source = "git+https://github.com/paradigmxyz/reth#5cd22b50e86a3b09cade509235120a6176de7097" dependencies = [ "reth-chainspec", "reth-consensus-common", @@ -6497,8 +6925,8 @@ dependencies = [ [[package]] name = "reth-execution-errors" -version = "1.0.3" -source = "git+https://github.com/paradigmxyz/reth#390f30aadebcdd509e72cc04327c3b854de076a6" +version = "1.0.2" +source = "git+https://github.com/paradigmxyz/reth#5cd22b50e86a3b09cade509235120a6176de7097" dependencies = [ "alloy-eips 0.2.0", "alloy-primitives", @@ -6511,8 +6939,8 @@ dependencies = [ [[package]] name = "reth-execution-types" -version = "1.0.3" -source = "git+https://github.com/paradigmxyz/reth#390f30aadebcdd509e72cc04327c3b854de076a6" +version = "1.0.2" +source = "git+https://github.com/paradigmxyz/reth#5cd22b50e86a3b09cade509235120a6176de7097" dependencies = [ "reth-chainspec", "reth-execution-errors", @@ -6524,11 +6952,10 @@ dependencies = [ [[package]] name = "reth-exex" -version = "1.0.3" -source = "git+https://github.com/paradigmxyz/reth#390f30aadebcdd509e72cc04327c3b854de076a6" +version = "1.0.2" +source = "git+https://github.com/paradigmxyz/reth#5cd22b50e86a3b09cade509235120a6176de7097" dependencies = [ "eyre", - "futures", "metrics", "reth-config", "reth-evm", @@ -6552,8 +6979,8 @@ dependencies = [ [[package]] name = "reth-exex-test-utils" -version = "1.0.3" -source = "git+https://github.com/paradigmxyz/reth#390f30aadebcdd509e72cc04327c3b854de076a6" +version = "1.0.2" +source = "git+https://github.com/paradigmxyz/reth#5cd22b50e86a3b09cade509235120a6176de7097" dependencies = [ "eyre", "futures-util", @@ -6583,8 +7010,8 @@ dependencies = [ [[package]] name = "reth-exex-types" -version = "1.0.3" -source = "git+https://github.com/paradigmxyz/reth#390f30aadebcdd509e72cc04327c3b854de076a6" +version = "1.0.2" +source = "git+https://github.com/paradigmxyz/reth#5cd22b50e86a3b09cade509235120a6176de7097" dependencies = [ "alloy-primitives", "reth-provider", @@ -6593,8 +7020,8 @@ dependencies = [ [[package]] name = "reth-fs-util" -version = "1.0.3" -source = "git+https://github.com/paradigmxyz/reth#390f30aadebcdd509e72cc04327c3b854de076a6" +version = "1.0.2" +source = "git+https://github.com/paradigmxyz/reth#5cd22b50e86a3b09cade509235120a6176de7097" dependencies = [ "serde", "serde_json", @@ -6603,8 +7030,8 @@ dependencies = [ [[package]] name = "reth-ipc" -version = "1.0.3" -source = "git+https://github.com/paradigmxyz/reth#390f30aadebcdd509e72cc04327c3b854de076a6" +version = "1.0.2" +source = "git+https://github.com/paradigmxyz/reth#5cd22b50e86a3b09cade509235120a6176de7097" dependencies = [ "async-trait", "bytes", @@ -6624,8 +7051,8 @@ dependencies = [ [[package]] name = "reth-libmdbx" -version = "1.0.3" -source = "git+https://github.com/paradigmxyz/reth#390f30aadebcdd509e72cc04327c3b854de076a6" +version = "1.0.2" +source = "git+https://github.com/paradigmxyz/reth#5cd22b50e86a3b09cade509235120a6176de7097" dependencies = [ "bitflags 2.6.0", "byteorder", @@ -6640,8 +7067,8 @@ dependencies = [ [[package]] name = "reth-mdbx-sys" -version = "1.0.3" -source = "git+https://github.com/paradigmxyz/reth#390f30aadebcdd509e72cc04327c3b854de076a6" +version = "1.0.2" +source = "git+https://github.com/paradigmxyz/reth#5cd22b50e86a3b09cade509235120a6176de7097" dependencies = [ "bindgen", "cc", @@ -6649,8 +7076,8 @@ dependencies = [ [[package]] name = "reth-metrics" -version = "1.0.3" -source = "git+https://github.com/paradigmxyz/reth#390f30aadebcdd509e72cc04327c3b854de076a6" +version = "1.0.2" +source = "git+https://github.com/paradigmxyz/reth#5cd22b50e86a3b09cade509235120a6176de7097" dependencies = [ "futures", "metrics", @@ -6661,8 +7088,8 @@ dependencies = [ [[package]] name = "reth-metrics-derive" -version = "1.0.3" -source = "git+https://github.com/paradigmxyz/reth#390f30aadebcdd509e72cc04327c3b854de076a6" +version = "1.0.2" +source = "git+https://github.com/paradigmxyz/reth#5cd22b50e86a3b09cade509235120a6176de7097" dependencies = [ "once_cell", "proc-macro2", @@ -6673,16 +7100,16 @@ dependencies = [ [[package]] name = "reth-net-banlist" -version = "1.0.3" -source = "git+https://github.com/paradigmxyz/reth#390f30aadebcdd509e72cc04327c3b854de076a6" +version = "1.0.2" +source = "git+https://github.com/paradigmxyz/reth#5cd22b50e86a3b09cade509235120a6176de7097" dependencies = [ "alloy-primitives", ] [[package]] name = "reth-net-nat" -version = "1.0.3" -source = "git+https://github.com/paradigmxyz/reth#390f30aadebcdd509e72cc04327c3b854de076a6" +version = "1.0.2" +source = "git+https://github.com/paradigmxyz/reth#5cd22b50e86a3b09cade509235120a6176de7097" dependencies = [ "futures-util", "reqwest", @@ -6693,8 +7120,8 @@ dependencies = [ [[package]] name = "reth-network" -version = "1.0.3" -source = "git+https://github.com/paradigmxyz/reth#390f30aadebcdd509e72cc04327c3b854de076a6" +version = "1.0.2" +source = "git+https://github.com/paradigmxyz/reth#5cd22b50e86a3b09cade509235120a6176de7097" dependencies = [ "alloy-rlp", "aquamarine", @@ -6743,8 +7170,8 @@ dependencies = [ [[package]] name = "reth-network-api" -version = "1.0.3" -source = "git+https://github.com/paradigmxyz/reth#390f30aadebcdd509e72cc04327c3b854de076a6" +version = "1.0.2" +source = "git+https://github.com/paradigmxyz/reth#5cd22b50e86a3b09cade509235120a6176de7097" dependencies = [ "alloy-primitives", "alloy-rpc-types-admin", @@ -6758,8 +7185,8 @@ dependencies = [ [[package]] name = "reth-network-p2p" -version = "1.0.3" -source = "git+https://github.com/paradigmxyz/reth#390f30aadebcdd509e72cc04327c3b854de076a6" +version = "1.0.2" +source = "git+https://github.com/paradigmxyz/reth#5cd22b50e86a3b09cade509235120a6176de7097" dependencies = [ "auto_impl", "futures", @@ -6776,8 +7203,8 @@ dependencies = [ [[package]] name = "reth-network-peers" -version = "1.0.3" -source = "git+https://github.com/paradigmxyz/reth#390f30aadebcdd509e72cc04327c3b854de076a6" +version = "1.0.2" +source = "git+https://github.com/paradigmxyz/reth#5cd22b50e86a3b09cade509235120a6176de7097" dependencies = [ "alloy-primitives", "alloy-rlp", @@ -6791,8 +7218,8 @@ dependencies = [ [[package]] name = "reth-network-types" -version = "1.0.3" -source = "git+https://github.com/paradigmxyz/reth#390f30aadebcdd509e72cc04327c3b854de076a6" +version = "1.0.2" +source = "git+https://github.com/paradigmxyz/reth#5cd22b50e86a3b09cade509235120a6176de7097" dependencies = [ "humantime-serde", "reth-net-banlist", @@ -6805,8 +7232,8 @@ dependencies = [ [[package]] name = "reth-nippy-jar" -version = "1.0.3" -source = "git+https://github.com/paradigmxyz/reth#390f30aadebcdd509e72cc04327c3b854de076a6" +version = "1.0.2" +source = "git+https://github.com/paradigmxyz/reth#5cd22b50e86a3b09cade509235120a6176de7097" dependencies = [ "anyhow", "bincode", @@ -6825,8 +7252,8 @@ dependencies = [ [[package]] name = "reth-node-api" -version = "1.0.3" -source = "git+https://github.com/paradigmxyz/reth#390f30aadebcdd509e72cc04327c3b854de076a6" +version = "1.0.2" +source = "git+https://github.com/paradigmxyz/reth#5cd22b50e86a3b09cade509235120a6176de7097" dependencies = [ "reth-db-api", "reth-engine-primitives", @@ -6841,8 +7268,8 @@ dependencies = [ [[package]] name = "reth-node-builder" -version = "1.0.3" -source = "git+https://github.com/paradigmxyz/reth#390f30aadebcdd509e72cc04327c3b854de076a6" +version = "1.0.2" +source = "git+https://github.com/paradigmxyz/reth#5cd22b50e86a3b09cade509235120a6176de7097" dependencies = [ "aquamarine", "backon", @@ -6894,8 +7321,8 @@ dependencies = [ [[package]] name = "reth-node-core" -version = "1.0.3" -source = "git+https://github.com/paradigmxyz/reth#390f30aadebcdd509e72cc04327c3b854de076a6" +version = "1.0.2" +source = "git+https://github.com/paradigmxyz/reth#5cd22b50e86a3b09cade509235120a6176de7097" dependencies = [ "alloy-genesis", "alloy-rpc-types-engine", @@ -6945,7 +7372,7 @@ dependencies = [ "reth-transaction-pool", "secp256k1", "serde_json", - "shellexpand", + "shellexpand 3.1.0", "tikv-jemalloc-ctl", "tokio", "tower", @@ -6955,8 +7382,8 @@ dependencies = [ [[package]] name = "reth-node-ethereum" -version = "1.0.3" -source = "git+https://github.com/paradigmxyz/reth#390f30aadebcdd509e72cc04327c3b854de076a6" +version = "1.0.2" +source = "git+https://github.com/paradigmxyz/reth#5cd22b50e86a3b09cade509235120a6176de7097" dependencies = [ "eyre", "futures", @@ -6989,8 +7416,8 @@ dependencies = [ [[package]] name = "reth-node-events" -version = "1.0.3" -source = "git+https://github.com/paradigmxyz/reth#390f30aadebcdd509e72cc04327c3b854de076a6" +version = "1.0.2" +source = "git+https://github.com/paradigmxyz/reth#5cd22b50e86a3b09cade509235120a6176de7097" dependencies = [ "alloy-rpc-types-engine", "futures", @@ -7012,8 +7439,8 @@ dependencies = [ [[package]] name = "reth-node-optimism" -version = "1.0.3" -source = "git+https://github.com/paradigmxyz/reth#390f30aadebcdd509e72cc04327c3b854de076a6" +version = "1.0.2" +source = "git+https://github.com/paradigmxyz/reth#5cd22b50e86a3b09cade509235120a6176de7097" dependencies = [ "async-trait", "clap", @@ -7057,8 +7484,8 @@ dependencies = [ [[package]] name = "reth-optimism-cli" -version = "1.0.3" -source = "git+https://github.com/paradigmxyz/reth#390f30aadebcdd509e72cc04327c3b854de076a6" +version = "1.0.2" +source = "git+https://github.com/paradigmxyz/reth#5cd22b50e86a3b09cade509235120a6176de7097" dependencies = [ "alloy-genesis", "alloy-primitives", @@ -7089,7 +7516,7 @@ dependencies = [ "reth-static-file", "reth-static-file-types", "serde_json", - "shellexpand", + "shellexpand 3.1.0", "tokio", "tokio-util", "tracing", @@ -7097,8 +7524,8 @@ dependencies = [ [[package]] name = "reth-optimism-consensus" -version = "1.0.3" -source = "git+https://github.com/paradigmxyz/reth#390f30aadebcdd509e72cc04327c3b854de076a6" +version = "1.0.2" +source = "git+https://github.com/paradigmxyz/reth#5cd22b50e86a3b09cade509235120a6176de7097" dependencies = [ "reth-chainspec", "reth-consensus", @@ -7109,8 +7536,8 @@ dependencies = [ [[package]] name = "reth-optimism-payload-builder" -version = "1.0.3" -source = "git+https://github.com/paradigmxyz/reth#390f30aadebcdd509e72cc04327c3b854de076a6" +version = "1.0.2" +source = "git+https://github.com/paradigmxyz/reth#5cd22b50e86a3b09cade509235120a6176de7097" dependencies = [ "alloy-rlp", "reth-basic-payload-builder", @@ -7134,13 +7561,13 @@ dependencies = [ [[package]] name = "reth-optimism-primitives" -version = "1.0.3" -source = "git+https://github.com/paradigmxyz/reth#390f30aadebcdd509e72cc04327c3b854de076a6" +version = "1.0.2" +source = "git+https://github.com/paradigmxyz/reth#5cd22b50e86a3b09cade509235120a6176de7097" [[package]] name = "reth-optimism-rpc" -version = "1.0.3" -source = "git+https://github.com/paradigmxyz/reth#390f30aadebcdd509e72cc04327c3b854de076a6" +version = "1.0.2" +source = "git+https://github.com/paradigmxyz/reth#5cd22b50e86a3b09cade509235120a6176de7097" dependencies = [ "alloy-primitives", "jsonrpsee", @@ -7167,8 +7594,8 @@ dependencies = [ [[package]] name = "reth-payload-builder" -version = "1.0.3" -source = "git+https://github.com/paradigmxyz/reth#390f30aadebcdd509e72cc04327c3b854de076a6" +version = "1.0.2" +source = "git+https://github.com/paradigmxyz/reth#5cd22b50e86a3b09cade509235120a6176de7097" dependencies = [ "futures-util", "metrics", @@ -7188,8 +7615,8 @@ dependencies = [ [[package]] name = "reth-payload-primitives" -version = "1.0.3" -source = "git+https://github.com/paradigmxyz/reth#390f30aadebcdd509e72cc04327c3b854de076a6" +version = "1.0.2" +source = "git+https://github.com/paradigmxyz/reth#5cd22b50e86a3b09cade509235120a6176de7097" dependencies = [ "reth-chainspec", "reth-errors", @@ -7203,8 +7630,8 @@ dependencies = [ [[package]] name = "reth-payload-validator" -version = "1.0.3" -source = "git+https://github.com/paradigmxyz/reth#390f30aadebcdd509e72cc04327c3b854de076a6" +version = "1.0.2" +source = "git+https://github.com/paradigmxyz/reth#5cd22b50e86a3b09cade509235120a6176de7097" dependencies = [ "reth-chainspec", "reth-primitives", @@ -7214,8 +7641,8 @@ dependencies = [ [[package]] name = "reth-primitives" -version = "1.0.3" -source = "git+https://github.com/paradigmxyz/reth#390f30aadebcdd509e72cc04327c3b854de076a6" +version = "1.0.2" +source = "git+https://github.com/paradigmxyz/reth#5cd22b50e86a3b09cade509235120a6176de7097" dependencies = [ "alloy-eips 0.2.0", "alloy-genesis", @@ -7246,8 +7673,8 @@ dependencies = [ [[package]] name = "reth-primitives-traits" -version = "1.0.3" -source = "git+https://github.com/paradigmxyz/reth#390f30aadebcdd509e72cc04327c3b854de076a6" +version = "1.0.2" +source = "git+https://github.com/paradigmxyz/reth#5cd22b50e86a3b09cade509235120a6176de7097" dependencies = [ "alloy-consensus 0.2.0", "alloy-eips 0.2.0", @@ -7270,8 +7697,8 @@ dependencies = [ [[package]] name = "reth-provider" -version = "1.0.3" -source = "git+https://github.com/paradigmxyz/reth#390f30aadebcdd509e72cc04327c3b854de076a6" +version = "1.0.2" +source = "git+https://github.com/paradigmxyz/reth#5cd22b50e86a3b09cade509235120a6176de7097" dependencies = [ "alloy-rlp", "alloy-rpc-types-engine", @@ -7310,8 +7737,8 @@ dependencies = [ [[package]] name = "reth-prune" -version = "1.0.3" -source = "git+https://github.com/paradigmxyz/reth#390f30aadebcdd509e72cc04327c3b854de076a6" +version = "1.0.2" +source = "git+https://github.com/paradigmxyz/reth#5cd22b50e86a3b09cade509235120a6176de7097" dependencies = [ "alloy-primitives", "itertools 0.13.0", @@ -7336,8 +7763,8 @@ dependencies = [ [[package]] name = "reth-prune-types" -version = "1.0.3" -source = "git+https://github.com/paradigmxyz/reth#390f30aadebcdd509e72cc04327c3b854de076a6" +version = "1.0.2" +source = "git+https://github.com/paradigmxyz/reth#5cd22b50e86a3b09cade509235120a6176de7097" dependencies = [ "alloy-primitives", "bytes", @@ -7350,8 +7777,8 @@ dependencies = [ [[package]] name = "reth-revm" -version = "1.0.3" -source = "git+https://github.com/paradigmxyz/reth#390f30aadebcdd509e72cc04327c3b854de076a6" +version = "1.0.2" +source = "git+https://github.com/paradigmxyz/reth#5cd22b50e86a3b09cade509235120a6176de7097" dependencies = [ "alloy-eips 0.2.0", "reth-chainspec", @@ -7367,8 +7794,8 @@ dependencies = [ [[package]] name = "reth-rpc" -version = "1.0.3" -source = "git+https://github.com/paradigmxyz/reth#390f30aadebcdd509e72cc04327c3b854de076a6" +version = "1.0.2" +source = "git+https://github.com/paradigmxyz/reth#5cd22b50e86a3b09cade509235120a6176de7097" dependencies = [ "alloy-dyn-abi", "alloy-genesis", @@ -7420,8 +7847,8 @@ dependencies = [ [[package]] name = "reth-rpc-api" -version = "1.0.3" -source = "git+https://github.com/paradigmxyz/reth#390f30aadebcdd509e72cc04327c3b854de076a6" +version = "1.0.2" +source = "git+https://github.com/paradigmxyz/reth#5cd22b50e86a3b09cade509235120a6176de7097" dependencies = [ "jsonrpsee", "reth-engine-primitives", @@ -7433,8 +7860,8 @@ dependencies = [ [[package]] name = "reth-rpc-builder" -version = "1.0.3" -source = "git+https://github.com/paradigmxyz/reth#390f30aadebcdd509e72cc04327c3b854de076a6" +version = "1.0.2" +source = "git+https://github.com/paradigmxyz/reth#5cd22b50e86a3b09cade509235120a6176de7097" dependencies = [ "http 1.1.0", "jsonrpsee", @@ -7464,8 +7891,8 @@ dependencies = [ [[package]] name = "reth-rpc-engine-api" -version = "1.0.3" -source = "git+https://github.com/paradigmxyz/reth#390f30aadebcdd509e72cc04327c3b854de076a6" +version = "1.0.2" +source = "git+https://github.com/paradigmxyz/reth#5cd22b50e86a3b09cade509235120a6176de7097" dependencies = [ "async-trait", "jsonrpsee-core", @@ -7492,8 +7919,8 @@ dependencies = [ [[package]] name = "reth-rpc-eth-api" -version = "1.0.3" -source = "git+https://github.com/paradigmxyz/reth#390f30aadebcdd509e72cc04327c3b854de076a6" +version = "1.0.2" +source = "git+https://github.com/paradigmxyz/reth#5cd22b50e86a3b09cade509235120a6176de7097" dependencies = [ "alloy-dyn-abi", "async-trait", @@ -7524,8 +7951,8 @@ dependencies = [ [[package]] name = "reth-rpc-eth-types" -version = "1.0.3" -source = "git+https://github.com/paradigmxyz/reth#390f30aadebcdd509e72cc04327c3b854de076a6" +version = "1.0.2" +source = "git+https://github.com/paradigmxyz/reth#5cd22b50e86a3b09cade509235120a6176de7097" dependencies = [ "alloy-sol-types", "derive_more", @@ -7561,8 +7988,8 @@ dependencies = [ [[package]] name = "reth-rpc-layer" -version = "1.0.3" -source = "git+https://github.com/paradigmxyz/reth#390f30aadebcdd509e72cc04327c3b854de076a6" +version = "1.0.2" +source = "git+https://github.com/paradigmxyz/reth#5cd22b50e86a3b09cade509235120a6176de7097" dependencies = [ "alloy-rpc-types-engine", "http 1.1.0", @@ -7574,8 +8001,8 @@ dependencies = [ [[package]] name = "reth-rpc-server-types" -version = "1.0.3" -source = "git+https://github.com/paradigmxyz/reth#390f30aadebcdd509e72cc04327c3b854de076a6" +version = "1.0.2" +source = "git+https://github.com/paradigmxyz/reth#5cd22b50e86a3b09cade509235120a6176de7097" dependencies = [ "alloy-primitives", "jsonrpsee-core", @@ -7590,8 +8017,8 @@ dependencies = [ [[package]] name = "reth-rpc-types" -version = "1.0.3" -source = "git+https://github.com/paradigmxyz/reth#390f30aadebcdd509e72cc04327c3b854de076a6" +version = "1.0.2" +source = "git+https://github.com/paradigmxyz/reth#5cd22b50e86a3b09cade509235120a6176de7097" dependencies = [ "alloy-primitives", "alloy-rpc-types", @@ -7608,8 +8035,8 @@ dependencies = [ [[package]] name = "reth-rpc-types-compat" -version = "1.0.3" -source = "git+https://github.com/paradigmxyz/reth#390f30aadebcdd509e72cc04327c3b854de076a6" +version = "1.0.2" +source = "git+https://github.com/paradigmxyz/reth#5cd22b50e86a3b09cade509235120a6176de7097" dependencies = [ "alloy-rlp", "alloy-rpc-types", @@ -7620,8 +8047,8 @@ dependencies = [ [[package]] name = "reth-stages" -version = "1.0.3" -source = "git+https://github.com/paradigmxyz/reth#390f30aadebcdd509e72cc04327c3b854de076a6" +version = "1.0.2" +source = "git+https://github.com/paradigmxyz/reth#5cd22b50e86a3b09cade509235120a6176de7097" dependencies = [ "futures-util", "itertools 0.13.0", @@ -7653,8 +8080,8 @@ dependencies = [ [[package]] name = "reth-stages-api" -version = "1.0.3" -source = "git+https://github.com/paradigmxyz/reth#390f30aadebcdd509e72cc04327c3b854de076a6" +version = "1.0.2" +source = "git+https://github.com/paradigmxyz/reth#5cd22b50e86a3b09cade509235120a6176de7097" dependencies = [ "alloy-primitives", "aquamarine", @@ -7680,8 +8107,8 @@ dependencies = [ [[package]] name = "reth-stages-types" -version = "1.0.3" -source = "git+https://github.com/paradigmxyz/reth#390f30aadebcdd509e72cc04327c3b854de076a6" +version = "1.0.2" +source = "git+https://github.com/paradigmxyz/reth#5cd22b50e86a3b09cade509235120a6176de7097" dependencies = [ "alloy-primitives", "bytes", @@ -7693,8 +8120,8 @@ dependencies = [ [[package]] name = "reth-static-file" -version = "1.0.3" -source = "git+https://github.com/paradigmxyz/reth#390f30aadebcdd509e72cc04327c3b854de076a6" +version = "1.0.2" +source = "git+https://github.com/paradigmxyz/reth#5cd22b50e86a3b09cade509235120a6176de7097" dependencies = [ "alloy-primitives", "parking_lot 0.12.3", @@ -7713,8 +8140,8 @@ dependencies = [ [[package]] name = "reth-static-file-types" -version = "1.0.3" -source = "git+https://github.com/paradigmxyz/reth#390f30aadebcdd509e72cc04327c3b854de076a6" +version = "1.0.2" +source = "git+https://github.com/paradigmxyz/reth#5cd22b50e86a3b09cade509235120a6176de7097" dependencies = [ "alloy-primitives", "clap", @@ -7725,8 +8152,8 @@ dependencies = [ [[package]] name = "reth-storage-api" -version = "1.0.3" -source = "git+https://github.com/paradigmxyz/reth#390f30aadebcdd509e72cc04327c3b854de076a6" +version = "1.0.2" +source = "git+https://github.com/paradigmxyz/reth#5cd22b50e86a3b09cade509235120a6176de7097" dependencies = [ "auto_impl", "reth-chainspec", @@ -7742,8 +8169,8 @@ dependencies = [ [[package]] name = "reth-storage-errors" -version = "1.0.3" -source = "git+https://github.com/paradigmxyz/reth#390f30aadebcdd509e72cc04327c3b854de076a6" +version = "1.0.2" +source = "git+https://github.com/paradigmxyz/reth#5cd22b50e86a3b09cade509235120a6176de7097" dependencies = [ "reth-fs-util", "reth-primitives", @@ -7752,8 +8179,8 @@ dependencies = [ [[package]] name = "reth-tasks" -version = "1.0.3" -source = "git+https://github.com/paradigmxyz/reth#390f30aadebcdd509e72cc04327c3b854de076a6" +version = "1.0.2" +source = "git+https://github.com/paradigmxyz/reth#5cd22b50e86a3b09cade509235120a6176de7097" dependencies = [ "auto_impl", "dyn-clone", @@ -7770,8 +8197,8 @@ dependencies = [ [[package]] name = "reth-testing-utils" -version = "1.0.3" -source = "git+https://github.com/paradigmxyz/reth#390f30aadebcdd509e72cc04327c3b854de076a6" +version = "1.0.2" +source = "git+https://github.com/paradigmxyz/reth#5cd22b50e86a3b09cade509235120a6176de7097" dependencies = [ "alloy-genesis", "rand 0.8.5", @@ -7781,8 +8208,8 @@ dependencies = [ [[package]] name = "reth-tokio-util" -version = "1.0.3" -source = "git+https://github.com/paradigmxyz/reth#390f30aadebcdd509e72cc04327c3b854de076a6" +version = "1.0.2" +source = "git+https://github.com/paradigmxyz/reth#5cd22b50e86a3b09cade509235120a6176de7097" dependencies = [ "tokio", "tokio-stream", @@ -7791,8 +8218,8 @@ dependencies = [ [[package]] name = "reth-tracing" -version = "1.0.3" -source = "git+https://github.com/paradigmxyz/reth#390f30aadebcdd509e72cc04327c3b854de076a6" +version = "1.0.2" +source = "git+https://github.com/paradigmxyz/reth#5cd22b50e86a3b09cade509235120a6176de7097" dependencies = [ "clap", "eyre", @@ -7806,8 +8233,8 @@ dependencies = [ [[package]] name = "reth-transaction-pool" -version = "1.0.3" -source = "git+https://github.com/paradigmxyz/reth#390f30aadebcdd509e72cc04327c3b854de076a6" +version = "1.0.2" +source = "git+https://github.com/paradigmxyz/reth#5cd22b50e86a3b09cade509235120a6176de7097" dependencies = [ "alloy-rlp", "aquamarine", @@ -7839,8 +8266,8 @@ dependencies = [ [[package]] name = "reth-trie" -version = "1.0.3" -source = "git+https://github.com/paradigmxyz/reth#390f30aadebcdd509e72cc04327c3b854de076a6" +version = "1.0.2" +source = "git+https://github.com/paradigmxyz/reth#5cd22b50e86a3b09cade509235120a6176de7097" dependencies = [ "alloy-rlp", "auto_impl", @@ -7862,8 +8289,8 @@ dependencies = [ [[package]] name = "reth-trie-common" -version = "1.0.3" -source = "git+https://github.com/paradigmxyz/reth#390f30aadebcdd509e72cc04327c3b854de076a6" +version = "1.0.2" +source = "git+https://github.com/paradigmxyz/reth#5cd22b50e86a3b09cade509235120a6176de7097" dependencies = [ "alloy-consensus 0.2.0", "alloy-genesis", @@ -7882,8 +8309,8 @@ dependencies = [ [[package]] name = "reth-trie-parallel" -version = "1.0.3" -source = "git+https://github.com/paradigmxyz/reth#390f30aadebcdd509e72cc04327c3b854de076a6" +version = "1.0.2" +source = "git+https://github.com/paradigmxyz/reth#5cd22b50e86a3b09cade509235120a6176de7097" dependencies = [ "alloy-rlp", "derive_more", @@ -7910,7 +8337,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c6cfb48bce8ca2113e157bdbddbd5eeb09daac1c903d79ec17085897c38c7c91" dependencies = [ "auto_impl", - "cfg-if", + "cfg-if 1.0.0", "dyn-clone", "revm-interpreter", "revm-precompile", @@ -7955,7 +8382,7 @@ dependencies = [ "aurora-engine-modexp", "blst", "c-kzg", - "cfg-if", + "cfg-if 1.0.0", "k256", "once_cell", "p256", @@ -7978,7 +8405,7 @@ dependencies = [ "bitflags 2.6.0", "bitvec", "c-kzg", - "cfg-if", + "cfg-if 1.0.0", "derive_more", "dyn-clone", "enumn", @@ -8006,7 +8433,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c17fa4cb658e3583423e915b9f3acc01cceaee1860e33d59ebae66adc3a2dc0d" dependencies = [ "cc", - "cfg-if", + "cfg-if 1.0.0", "getrandom 0.2.15", "libc", "spin", @@ -8196,8 +8623,10 @@ checksum = "70dc5ec042f7a43c4a73241207cecc9873a06d45debb38b329f8541d85c2730f" dependencies = [ "bitflags 2.6.0", "errno", + "itoa", "libc", "linux-raw-sys", + "once_cell", "windows-sys 0.52.0", ] @@ -8349,7 +8778,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c9a8ef13a93c54d20580de1e5c413e624e53121d42fc7e2c11d10ef7f8b02367" dependencies = [ "ahash", - "cfg-if", + "cfg-if 1.0.0", "hashbrown 0.13.2", ] @@ -8567,7 +8996,7 @@ version = "0.10.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e3bf829a2d51ab4a5ddf1352d8470c140cadc8301b2ae1789db023f01cedd6ba" dependencies = [ - "cfg-if", + "cfg-if 1.0.0", "cpufeatures", "digest 0.10.7", ] @@ -8579,7 +9008,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4d58a1e1bf39749807d89cf2d98ac2dfa0ff1cb3faa38fbb64dd88ac8013d800" dependencies = [ "block-buffer 0.9.0", - "cfg-if", + "cfg-if 1.0.0", "cpufeatures", "digest 0.9.0", "opaque-debug", @@ -8591,7 +9020,7 @@ version = "0.10.8" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "793db75ad2bcafc3ffa7c68b215fee268f537982cd901d132f89c6343f3a3dc8" dependencies = [ - "cfg-if", + "cfg-if 1.0.0", "cpufeatures", "digest 0.10.7", ] @@ -8613,7 +9042,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a9b57fd861253bff08bb1919e995f90ba8f4889de2726091c8876f3a4e823b40" dependencies = [ "cc", - "cfg-if", + "cfg-if 1.0.0", ] [[package]] @@ -8625,13 +9054,22 @@ dependencies = [ "lazy_static", ] +[[package]] +name = "shellexpand" +version = "2.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7ccc8076840c4da029af4f87e4e8daeb0fca6b87bbb02e10cb60b791450e11e4" +dependencies = [ + "dirs 4.0.0", +] + [[package]] name = "shellexpand" version = "3.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "da03fa3b94cc19e3ebfc88c4229c49d8f08cdbd1228870a45f0ffdf84988e14b" dependencies = [ - "dirs", + "dirs 5.0.1", ] [[package]] @@ -8733,6 +9171,12 @@ dependencies = [ "autocfg", ] +[[package]] +name = "slice-group-by" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "826167069c09b99d56f31e9ae5c99049e932a98c9dc2dac47645b08dbbf76ba7" + [[package]] name = "smallvec" version = "1.13.2" @@ -8948,7 +9392,7 @@ version = "0.30.13" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0a5b4ddaee55fb2bea2bf0e5000747e5f5c0de765e5a5ff87f4cd106439f4bb3" dependencies = [ - "cfg-if", + "cfg-if 1.0.0", "core-foundation-sys", "libc", "ntapi", @@ -8956,19 +9400,41 @@ dependencies = [ "windows 0.52.0", ] +[[package]] +name = "system-interface" +version = "0.27.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b858526d22750088a9b3cf2e3c2aacebd5377f13adeec02860c30d09113010a6" +dependencies = [ + "bitflags 2.6.0", + "cap-fs-ext", + "cap-std", + "fd-lock", + "io-lifetimes", + "rustix", + "windows-sys 0.52.0", + "winx", +] + [[package]] name = "tap" version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "55937e1799185b12863d447f42597ed69d9928686b8d88a1df17376a097d8369" +[[package]] +name = "target-lexicon" +version = "0.12.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4873307b7c257eddcb50c9bedf158eb669578359fb28428bef438fec8e6ba7c2" + [[package]] name = "tempfile" version = "3.10.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "85b77fafb263dd9d05cbeac119526425676db3784113aa9295c88498cbf8bff1" dependencies = [ - "cfg-if", + "cfg-if 1.0.0", "fastrand", "rustix", "windows-sys 0.52.0", @@ -9026,7 +9492,7 @@ version = "1.1.8" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8b9ef9bad013ada3808854ceac7b46812a6465ba368859a37e2100283d2d719c" dependencies = [ - "cfg-if", + "cfg-if 1.0.0", "once_cell", ] @@ -9501,7 +9967,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3119112651c157f4488931a01e586aa459736e9d6046d3bd9105ffb69352d374" dependencies = [ "async-trait", - "cfg-if", + "cfg-if 1.0.0", "data-encoding", "enum-as-inner", "futures-channel", @@ -9525,7 +9991,7 @@ version = "0.23.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "10a3e6c3aff1718b3c73e395d1f35202ba2ffa847c6a62eea0db8fb4cfe30be6" dependencies = [ - "cfg-if", + "cfg-if 1.0.0", "futures-util", "ipconfig", "lru-cache", @@ -9754,7 +10220,7 @@ checksum = "2990d9ea5967266ea0ccf413a4aa5c42a93dbcfda9cb49a97de6931726b12566" dependencies = [ "anyhow", "cargo_metadata", - "cfg-if", + "cfg-if 1.0.0", "regex", "rustversion", "time", @@ -9813,14 +10279,61 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" [[package]] -name = "wasm-bindgen" -version = "0.2.92" +name = "wasi-common" +version = "22.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4be2531df63900aeb2bca0daaaddec08491ee64ceecbee5076636a3b026795a8" +checksum = "b86fd41e1e26ff6af9451c6a332a5ce5f5283ca51e87d875cdd9a05305598ee3" dependencies = [ - "cfg-if", - "wasm-bindgen-macro", -] + "anyhow", + "bitflags 2.6.0", + "cap-fs-ext", + "cap-rand", + "cap-std", + "cap-time-ext", + "fs-set-times", + "io-extras", + "io-lifetimes", + "log", + "once_cell", + "rustix", + "system-interface", + "thiserror", + "tracing", + "wasmtime", + "wiggle", + "windows-sys 0.52.0", +] + +[[package]] +name = "wasm" +version = "0.0.0" +dependencies = [ + "async-trait", + "eyre", + "futures", + "jsonrpsee", + "reth", + "reth-execution-types", + "reth-exex", + "reth-exex-test-utils", + "reth-node-api", + "reth-node-ethereum", + "reth-tracing", + "serde_json", + "tokio", + "wasi-common", + "wasmtime", +] + +[[package]] +name = "wasm-bindgen" +version = "0.2.92" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4be2531df63900aeb2bca0daaaddec08491ee64ceecbee5076636a3b026795a8" +dependencies = [ + "cfg-if 1.0.0", + "wasm-bindgen-macro", +] [[package]] name = "wasm-bindgen-backend" @@ -9843,7 +10356,7 @@ version = "0.4.42" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "76bc14366121efc8dbb487ab05bcc9d346b3b5ec0eaa76e46594cabbe51762c0" dependencies = [ - "cfg-if", + "cfg-if 1.0.0", "js-sys", "wasm-bindgen", "web-sys", @@ -9878,6 +10391,341 @@ version = "0.2.92" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "af190c94f2773fdb3729c55b007a722abb5384da03bc0986df4c289bf5567e96" +[[package]] +name = "wasm-encoder" +version = "0.209.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7b4a05336882dae732ce6bd48b7e11fe597293cb72c13da4f35d7d5f8d53b2a7" +dependencies = [ + "leb128", +] + +[[package]] +name = "wasm-encoder" +version = "0.214.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ff694f02a8d7a50b6922b197ae03883fbf18cdb2ae9fbee7b6148456f5f44041" +dependencies = [ + "leb128", +] + +[[package]] +name = "wasm-exex" +version = "0.0.0" +dependencies = [ + "once_cell", + "reth-tracing", + "wee_alloc", +] + +[[package]] +name = "wasmparser" +version = "0.209.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "07035cc9a9b41e62d3bb3a3815a66ab87c993c06fe1cf6b2a3f2a18499d937db" +dependencies = [ + "ahash", + "bitflags 2.6.0", + "hashbrown 0.14.5", + "indexmap 2.2.6", + "semver 1.0.23", + "serde", +] + +[[package]] +name = "wasmprinter" +version = "0.209.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ceca8ae6eaa8c7c87b33c25c53bdf299f8c2a764aee1179402ff7652ef3a6859" +dependencies = [ + "anyhow", + "wasmparser", +] + +[[package]] +name = "wasmtime" +version = "22.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "786d8b5e7a4d54917c5ebe555b9667337e5f93383f49bddaaeec2eba68093b45" +dependencies = [ + "addr2line 0.21.0", + "anyhow", + "async-trait", + "bumpalo", + "cc", + "cfg-if 1.0.0", + "encoding_rs", + "fxprof-processed-profile", + "gimli 0.28.1", + "hashbrown 0.14.5", + "indexmap 2.2.6", + "ittapi", + "libc", + "libm", + "log", + "mach2", + "memfd", + "memoffset", + "object", + "once_cell", + "paste", + "postcard", + "psm", + "rayon", + "rustix", + "semver 1.0.23", + "serde", + "serde_derive", + "serde_json", + "smallvec", + "sptr", + "target-lexicon", + "wasm-encoder 0.209.1", + "wasmparser", + "wasmtime-asm-macros", + "wasmtime-cache", + "wasmtime-component-macro", + "wasmtime-component-util", + "wasmtime-cranelift", + "wasmtime-environ", + "wasmtime-fiber", + "wasmtime-jit-debug", + "wasmtime-jit-icache-coherence", + "wasmtime-slab", + "wasmtime-versioned-export-macros", + "wasmtime-winch", + "wat", + "windows-sys 0.52.0", +] + +[[package]] +name = "wasmtime-asm-macros" +version = "22.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d697d99c341d4a9ffb72f3af7a02124d233eeb59aee010f36d88e97cca553d5e" +dependencies = [ + "cfg-if 1.0.0", +] + +[[package]] +name = "wasmtime-cache" +version = "22.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "916610f9ae9a6c22deb25bba2e6247ba9f00b093d30620875203b91328a1adfa" +dependencies = [ + "anyhow", + "base64 0.21.7", + "directories-next", + "log", + "postcard", + "rustix", + "serde", + "serde_derive", + "sha2 0.10.8", + "toml", + "windows-sys 0.52.0", + "zstd", +] + +[[package]] +name = "wasmtime-component-macro" +version = "22.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b29b462b068e73b5b27fae092a27f47e5937cabf6b26be2779c978698a52feca" +dependencies = [ + "anyhow", + "proc-macro2", + "quote", + "syn 2.0.71", + "wasmtime-component-util", + "wasmtime-wit-bindgen", + "wit-parser", +] + +[[package]] +name = "wasmtime-component-util" +version = "22.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f9d2912c53d9054984b380dfbd7579f9c3681b2a73b903a56bd71a1c4f175f1e" + +[[package]] +name = "wasmtime-cranelift" +version = "22.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a3975deafea000457ba84355c7c0fce0372937204f77026510b7b454f28a3a65" +dependencies = [ + "anyhow", + "cfg-if 1.0.0", + "cranelift-codegen", + "cranelift-control", + "cranelift-entity", + "cranelift-frontend", + "cranelift-native", + "cranelift-wasm", + "gimli 0.28.1", + "log", + "object", + "target-lexicon", + "thiserror", + "wasmparser", + "wasmtime-environ", + "wasmtime-versioned-export-macros", +] + +[[package]] +name = "wasmtime-environ" +version = "22.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f444e900e848b884d8a8a2949b6f5b92af642a3e663ff8fbe78731143a55be61" +dependencies = [ + "anyhow", + "cpp_demangle", + "cranelift-entity", + "gimli 0.28.1", + "indexmap 2.2.6", + "log", + "object", + "postcard", + "rustc-demangle", + "serde", + "serde_derive", + "target-lexicon", + "wasm-encoder 0.209.1", + "wasmparser", + "wasmprinter", + "wasmtime-component-util", + "wasmtime-types", +] + +[[package]] +name = "wasmtime-fiber" +version = "22.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4ded58eb2d1bf0dcd2182d0ccd7055c4b10b50d711514f1d73f61515d0fa829d" +dependencies = [ + "anyhow", + "cc", + "cfg-if 1.0.0", + "rustix", + "wasmtime-asm-macros", + "wasmtime-versioned-export-macros", + "windows-sys 0.52.0", +] + +[[package]] +name = "wasmtime-jit-debug" +version = "22.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9bc54198c6720f098210a85efb3ba8c078d1de4d373cdb6778850a66ae088d11" +dependencies = [ + "object", + "once_cell", + "rustix", + "wasmtime-versioned-export-macros", +] + +[[package]] +name = "wasmtime-jit-icache-coherence" +version = "22.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5afe2f0499542f9a4bcfa1b55bfdda803b6ade4e7c93c6b99e0f39dba44b0a91" +dependencies = [ + "anyhow", + "cfg-if 1.0.0", + "libc", + "windows-sys 0.52.0", +] + +[[package]] +name = "wasmtime-slab" +version = "22.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0a7de1f2bec5bbb35d532e61c85c049dc84ae671df60492f90b954ecf21169e7" + +[[package]] +name = "wasmtime-types" +version = "22.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "412463e9000e14cf6856be48628d2213c20c153e29ffc22b036980c892ea6964" +dependencies = [ + "cranelift-entity", + "serde", + "serde_derive", + "smallvec", + "wasmparser", +] + +[[package]] +name = "wasmtime-versioned-export-macros" +version = "22.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "de5a9bc4f44ceeb168e9e8e3be4e0b4beb9095b468479663a9e24c667e36826f" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.71", +] + +[[package]] +name = "wasmtime-winch" +version = "22.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ed4db238a0241df2d15f79ad17b3a37a27f2ea6cb885894d81b42ae107544466" +dependencies = [ + "anyhow", + "cranelift-codegen", + "gimli 0.28.1", + "object", + "target-lexicon", + "wasmparser", + "wasmtime-cranelift", + "wasmtime-environ", + "winch-codegen", +] + +[[package]] +name = "wasmtime-wit-bindgen" +version = "22.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "70dc077306b38288262e5ba01d4b21532a6987416cdc0aedf04bb06c22a68fdc" +dependencies = [ + "anyhow", + "heck 0.4.1", + "indexmap 2.2.6", + "wit-parser", +] + +[[package]] +name = "wast" +version = "35.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2ef140f1b49946586078353a453a1d28ba90adfc54dde75710bc1931de204d68" +dependencies = [ + "leb128", +] + +[[package]] +name = "wast" +version = "214.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "694bcdb24c49c8709bd8713768b71301a11e823923eee355d530f1d8d0a7f8e9" +dependencies = [ + "bumpalo", + "leb128", + "memchr", + "unicode-width", + "wasm-encoder 0.214.0", +] + +[[package]] +name = "wat" +version = "1.214.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "347249eb56773fa728df2656cfe3a8c19437ded61a922a0b5e0839d9790e278e" +dependencies = [ + "wast 214.0.0", +] + [[package]] name = "web-sys" version = "0.3.69" @@ -9907,12 +10755,66 @@ dependencies = [ "rustls-pki-types", ] +[[package]] +name = "wee_alloc" +version = "0.4.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dbb3b5a6b2bb17cb6ad44a2e68a43e8d2722c997da10e928665c72ec6c0a0b8e" +dependencies = [ + "cfg-if 0.1.10", + "libc", + "memory_units", + "winapi", +] + [[package]] name = "widestring" version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7219d36b6eac893fa81e84ebe06485e7dcbb616177469b142df14f1f4deb1311" +[[package]] +name = "wiggle" +version = "22.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "29830e5d01c182d24b94092c697aa7ab0ee97d22e78a2bf40ca91eae6ebca5c2" +dependencies = [ + "anyhow", + "async-trait", + "bitflags 2.6.0", + "thiserror", + "tracing", + "wasmtime", + "wiggle-macro", +] + +[[package]] +name = "wiggle-generate" +version = "22.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "557567f2793508760cd855f7659b7a0b9dc4dbc451f53f1415d6943a15311ade" +dependencies = [ + "anyhow", + "heck 0.4.1", + "proc-macro2", + "quote", + "shellexpand 2.1.2", + "syn 2.0.71", + "witx", +] + +[[package]] +name = "wiggle-macro" +version = "22.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cc26129a8aea20b62c961d1b9ab4a3c3b56b10042ed85d004f8678af0f21ba6e" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.71", + "wiggle-generate", +] + [[package]] name = "winapi" version = "0.3.9" @@ -9944,6 +10846,23 @@ version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" +[[package]] +name = "winch-codegen" +version = "0.20.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "85c6915884e731b2db0d8cf08cb64474cb69221a161675fd3c135f91febc3daa" +dependencies = [ + "anyhow", + "cranelift-codegen", + "gimli 0.28.1", + "regalloc2", + "smallvec", + "target-lexicon", + "wasmparser", + "wasmtime-cranelift", + "wasmtime-environ", +] + [[package]] name = "windows" version = "0.52.0" @@ -10179,7 +11098,7 @@ version = "0.50.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "524e57b2c537c0f9b1e69f1965311ec12182b4122e45035b1508cd24d2adadb1" dependencies = [ - "cfg-if", + "cfg-if 1.0.0", "windows-sys 0.48.0", ] @@ -10189,10 +11108,50 @@ version = "0.52.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a277a57398d4bfa075df44f501a17cfdf8542d224f0d36095a2adc7aee4ef0a5" dependencies = [ - "cfg-if", + "cfg-if 1.0.0", "windows-sys 0.48.0", ] +[[package]] +name = "winx" +version = "0.36.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f9643b83820c0cd246ecabe5fa454dd04ba4fa67996369466d0747472d337346" +dependencies = [ + "bitflags 2.6.0", + "windows-sys 0.52.0", +] + +[[package]] +name = "wit-parser" +version = "0.209.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3e79b9e3c0b6bb589dec46317e645851e0db2734c44e2be5e251b03ff4a51269" +dependencies = [ + "anyhow", + "id-arena", + "indexmap 2.2.6", + "log", + "semver 1.0.23", + "serde", + "serde_derive", + "serde_json", + "unicode-xid", + "wasmparser", +] + +[[package]] +name = "witx" +version = "0.9.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e366f27a5cabcddb2706a78296a40b8fcc451e1a6aba2fc1d94b4a01bdaaef4b" +dependencies = [ + "anyhow", + "log", + "thiserror", + "wast 35.0.2", +] + [[package]] name = "write16" version = "1.0.0" diff --git a/Cargo.toml b/Cargo.toml index ad65603..70e64ea 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -6,6 +6,8 @@ members = [ "op-bridge", "remote", "rollup", + "wasm", + "wasm/wasm_exex" ] resolver = "2" @@ -24,6 +26,7 @@ reth-discv5 = { git = "https://github.com/paradigmxyz/reth" } reth-execution-errors = { git = "https://github.com/paradigmxyz/reth" } reth-execution-types = { git = "https://github.com/paradigmxyz/reth" } reth-exex = { git = "https://github.com/paradigmxyz/reth", features = ["serde"] } +reth-exex-types = { git = "https://github.com/paradigmxyz/reth" } reth-network-peers = { git = "https://github.com/paradigmxyz/reth" } reth-node-api = { git = "https://github.com/paradigmxyz/reth" } reth-node-ethereum = { git = "https://github.com/paradigmxyz/reth" } diff --git a/wasm/Cargo.toml b/wasm/Cargo.toml new file mode 100644 index 0000000..991f510 --- /dev/null +++ b/wasm/Cargo.toml @@ -0,0 +1,33 @@ +[package] +name = "wasm" +version = "0.0.0" +publish = false +edition.workspace = true +license.workspace = true + +[dependencies] +# reth +reth-execution-types.workspace = true +reth-exex.workspace = true +reth-node-api.workspace = true +reth-node-ethereum.workspace = true +reth-tracing.workspace = true +reth.workspace = true + +# async +async-trait = "0.1" +futures.workspace = true +tokio.workspace = true + +# wasm +wasi-common = "22" +wasmtime = "22" + +# misc +eyre.workspace = true +jsonrpsee = { version = "0.23", features = ["server", "macros"] } +serde_json = "1" + +[dev-dependencies] +reth-exex-test-utils.workspace = true + diff --git a/wasm/src/main.rs b/wasm/src/main.rs new file mode 100644 index 0000000..22abfec --- /dev/null +++ b/wasm/src/main.rs @@ -0,0 +1,148 @@ +mod rpc; +mod wasm; + +use std::{collections::HashMap, path::PathBuf}; + +use jsonrpsee::core::RpcResult; +use reth::dirs::{LogsDir, PlatformPath}; +use reth_exex::{ExExContext, ExExEvent, ExExNotification}; +use reth_node_api::FullNodeComponents; +use reth_node_ethereum::EthereumNode; +use reth_tracing::tracing::{error, info}; +use rpc::{rpc_internal_error_format, ExExRpcExt, ExExRpcExtApiServer, RpcMessage}; +use tokio::sync::{mpsc, oneshot}; +use wasi_common::WasiCtx; +use wasm::RunningExEx; +use wasmtime::{Engine, Linker, Module}; + +struct WasmExEx { + ctx: ExExContext, + rpc_messages: mpsc::UnboundedReceiver<(RpcMessage, oneshot::Sender>)>, + logs_directory: PathBuf, + + engine: Engine, + linker: Linker, + + installed_exexes: HashMap, + running_exexes: HashMap, +} + +impl WasmExEx { + fn new( + ctx: ExExContext, + rpc_messages: mpsc::UnboundedReceiver<(RpcMessage, oneshot::Sender>)>, + logs_directory: PathBuf, + ) -> eyre::Result { + let engine = Engine::default(); + let mut linker = Linker::::new(&engine); + wasi_common::sync::add_to_linker(&mut linker, |s| s) + .map_err(|err| eyre::eyre!("failed to add WASI: {err}"))?; + + Ok(Self { + ctx, + rpc_messages, + logs_directory, + engine, + linker, + installed_exexes: HashMap::new(), + running_exexes: HashMap::new(), + }) + } + + async fn start(mut self) -> eyre::Result<()> { + loop { + tokio::select! { + Some(notification) = self.ctx.notifications.recv() => { + self.handle_notification(notification).await? + } + Some((rpc_message, tx)) = self.rpc_messages.recv() => { + let _ = tx + .send(self.handle_rpc_message(rpc_message).await) + .inspect_err(|err| error!("failed to send response: {err:?}")); + }, + } + } + } + + async fn handle_notification(&mut self, notification: ExExNotification) -> eyre::Result<()> { + let committed_chain_tip = notification.committed_chain().map(|chain| chain.tip().number); + + for exex in self.running_exexes.values_mut() { + if let Err(err) = exex.process_notification(¬ification) { + error!(name = %exex.name, %err, "failed to process notification") + } + } + + if let Some(tip) = committed_chain_tip { + self.ctx.events.send(ExExEvent::FinishedHeight(tip))?; + } + + info!(?committed_chain_tip, "Handled notification"); + + Ok(()) + } + + async fn handle_rpc_message(&mut self, rpc_message: RpcMessage) -> RpcResult<()> { + match &rpc_message { + RpcMessage::Install(name, bytecode) => { + let module = Module::new(&self.engine, bytecode).map_err(|err| { + rpc_internal_error_format!("failed to create module for {name}: {err}") + })?; + self.installed_exexes.insert(name.clone(), module); + } + RpcMessage::Start(name) => { + let module = self + .installed_exexes + .get(name) + .ok_or_else(|| rpc_internal_error_format!("ExEx {name} not installed"))?; + + let exex = RunningExEx::new( + name.clone(), + &self.engine, + module, + &self.linker, + &self.logs_directory, + ) + .map_err(|err| { + rpc_internal_error_format!("failed to create exex for {name}: {err}") + })?; + + self.running_exexes.insert(name.clone(), exex); + } + RpcMessage::Stop(name) => { + self.running_exexes.remove(name).ok_or_else(|| { + rpc_internal_error_format!("no running exex found for {name}") + })?; + } + } + + info!(%rpc_message, "Handled RPC message"); + + Ok(()) + } +} + +fn main() -> eyre::Result<()> { + reth::cli::Cli::parse_args().run(|builder, _| async move { + let (rpc_tx, rpc_rx) = mpsc::unbounded_channel(); + + let handle = builder + .node(EthereumNode::default()) + .extend_rpc_modules(move |ctx| { + ctx.modules.merge_configured(ExExRpcExt { to_exex: rpc_tx }.into_rpc())?; + Ok(()) + }) + .install_exex("Minimal", |ctx| async move { + // TODO(alexey): obviously bad but we don't have access to log args in the context + let logs_directory = PlatformPath::::default() + .with_chain(ctx.config.chain.chain, ctx.config.datadir.clone()) + .as_ref() + .to_path_buf(); + Ok(WasmExEx::new(ctx, rpc_rx, logs_directory)?.start()) + }) + .launch() + .await?; + + handle.wait_for_node_exit().await + }) +} diff --git a/wasm/src/rpc.rs b/wasm/src/rpc.rs new file mode 100644 index 0000000..6a1b5e8 --- /dev/null +++ b/wasm/src/rpc.rs @@ -0,0 +1,83 @@ +use std::fmt::Display; + +use async_trait::async_trait; +use jsonrpsee::{ + core::RpcResult, + proc_macros::rpc, + types::{error::INTERNAL_ERROR_CODE, ErrorObject, ErrorObjectOwned}, +}; +use tokio::sync::{mpsc, oneshot}; + +#[rpc(server, namespace = "exex")] +trait ExExRpcExtApi { + #[method(name = "install")] + async fn install(&self, name: String, bytecode: Vec) -> RpcResult<()>; + + #[method(name = "start")] + async fn start(&self, name: String) -> RpcResult<()>; + + #[method(name = "stop")] + async fn stop(&self, name: String) -> RpcResult<()>; +} + +pub struct ExExRpcExt { + pub to_exex: mpsc::UnboundedSender<(RpcMessage, oneshot::Sender>)>, +} + +#[derive(Debug)] +pub enum RpcMessage { + Install(String, Vec), + Start(String), + Stop(String), +} + +impl Display for RpcMessage { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + match self { + RpcMessage::Install(name, bytecode) => { + write!(f, "install {name} with bytecode of length {}", bytecode.len()) + } + RpcMessage::Start(name) => write!(f, "start {name}"), + RpcMessage::Stop(name) => write!(f, "stop {name}"), + } + } +} + +#[async_trait] +impl ExExRpcExtApiServer for ExExRpcExt { + async fn install(&self, name: String, bytecode: Vec) -> RpcResult<()> { + let (tx, rx) = oneshot::channel(); + let _ = self + .to_exex + .send((RpcMessage::Install(name, bytecode), tx)) + .map_err(|_| rpc_internal_error())?; + rx.await.map_err(|_| rpc_internal_error())? + } + + async fn start(&self, name: String) -> RpcResult<()> { + let (tx, rx) = oneshot::channel(); + let _ = + self.to_exex.send((RpcMessage::Start(name), tx)).map_err(|_| rpc_internal_error())?; + rx.await.map_err(|_| rpc_internal_error())? + } + + async fn stop(&self, name: String) -> RpcResult<()> { + let (tx, rx) = oneshot::channel(); + let _ = + self.to_exex.send((RpcMessage::Stop(name), tx)).map_err(|_| rpc_internal_error())?; + rx.await.map_err(|_| rpc_internal_error())? + } +} + +#[inline] +fn rpc_internal_error() -> ErrorObjectOwned { + ErrorObject::owned(INTERNAL_ERROR_CODE, "internal error", Some("")) +} + +macro_rules! rpc_internal_error_format { + ($($arg:tt)*) => { + jsonrpsee::types::error::ErrorObject::owned(jsonrpsee::types::error::INTERNAL_ERROR_CODE, format!($($arg)*), Some("")) + }; +} + +pub(crate) use rpc_internal_error_format; diff --git a/wasm/src/wasm.rs b/wasm/src/wasm.rs new file mode 100644 index 0000000..789a094 --- /dev/null +++ b/wasm/src/wasm.rs @@ -0,0 +1,88 @@ +use std::{fs::File, path::Path}; + +use reth_tracing::tracing::debug; +use wasi_common::{pipe::WritePipe, sync::WasiCtxBuilder, WasiCtx}; +use wasmtime::{Engine, Linker, Memory, Module, Store, TypedFunc}; + +type AllocParams = (i64,); +type AllocReturn = i64; +type NotificationParams = (i64, i64); +type NotificationReturn = i64; + +pub struct RunningExEx { + pub name: String, + pub store: Store, + pub memory: Memory, + pub alloc_func: TypedFunc, + pub process_func: TypedFunc, +} + +impl RunningExEx { + /// Creates a new instance of a running WASM-powered ExEx. + /// + /// Initializes a WASM instance with WASI support, prepares the memory and the typed + /// functions. + pub fn new( + name: String, + engine: &Engine, + module: &Module, + linker: &Linker, + logs_directory: impl AsRef, + ) -> eyre::Result { + // TODO(alexey): ideally setup tracer with a span + let file = File::create(logs_directory.as_ref().join(format!("{name}.log")))?; + let wasi = WasiCtxBuilder::new().stdout(Box::new(WritePipe::new(file))).build(); + let mut store = Store::new(engine, wasi); + + let instance = linker + .instantiate(&mut store, module) + .map_err(|err| eyre::eyre!("failed to instantiate: {err}"))?; + + let memory = instance + .get_memory(&mut store, "memory") + .ok_or_else(|| eyre::eyre!("failed to get memory"))?; + let alloc_func = instance + .get_typed_func::(&mut store, "alloc") + .map_err(|err| eyre::eyre!("failed to get alloc func: {err}"))?; + let process_func = instance + .get_typed_func::(&mut store, "process") + .map_err(|err| eyre::eyre!("failed to get process func: {err}"))?; + + Ok(Self { name, store, memory, alloc_func, process_func }) + } + + /// Processes an [`ExExNotification`] using the WASM instance. + // TODO(alexey): we can probably use shared memory here to avoid copying the data into every + // WASM instance memory. I tried it for a while and it didn't work straight away. Maybe we can + // share a portion of linear memory, but the rest is up to the WASM instance to manage? + pub fn process_notification( + &mut self, + notification: &reth_exex::ExExNotification, + ) -> eyre::Result<()> { + // TODO(alexey): serialize to bincode or just cast to bytes directly. Can't do it now + // because `ExExNotification` can't be used inside WASM. + let serialized_notification = + // Can't even do JSON encode of a full struct smh, "key must be a string" + serde_json::to_vec(¬ification.committed_chain().map(|chain| chain.tip().header.clone()))?; + + // Allocate memory for the notification. + let data_size = serialized_notification.len() as i64; + let data_ptr = self + .alloc_func + .call(&mut self.store, (data_size,)) + .map_err(|err| eyre::eyre!("failed to call alloc func: {err}"))?; + + // Write the notification to the allocated memory. + self.memory.write(&mut self.store, data_ptr as usize, &serialized_notification)?; + + // Call the notification function that will read the allocated memoyry. + let output = self + .process_func + .call(&mut self.store, (data_ptr, data_size)) + .map_err(|err| eyre::eyre!("failed to call notification func: {err}"))?; + + debug!(target: "wasm", name = %self.name, ?data_ptr, ?data_size, ?output, "Processed notification"); + + Ok(()) + } +} diff --git a/wasm/wasm_exex/Cargo.toml b/wasm/wasm_exex/Cargo.toml new file mode 100644 index 0000000..728cdad --- /dev/null +++ b/wasm/wasm_exex/Cargo.toml @@ -0,0 +1,13 @@ +[package] +name = "wasm-exex" +version = "0.0.0" +publish = false +edition.workspace = true +license.workspace = true + +[dependencies] +reth-tracing.workspace = true + +once_cell = "1" +wee_alloc = "0.4" + diff --git a/wasm/wasm_exex/src/main.rs b/wasm/wasm_exex/src/main.rs new file mode 100644 index 0000000..3462cc3 --- /dev/null +++ b/wasm/wasm_exex/src/main.rs @@ -0,0 +1,60 @@ +#![no_main] + +use core::slice; +use std::sync::Mutex; + +use once_cell::sync::Lazy; +use reth_tracing::{ + tracing::info, tracing_appender::non_blocking::WorkerGuard, RethTracer, Tracer, +}; + +#[global_allocator] +static ALLOC: wee_alloc::WeeAlloc = wee_alloc::WeeAlloc::INIT; + +static TRACER: Lazy> = Lazy::new(|| RethTracer::new().init().unwrap()); + +/// Latest allocation made by the `alloc` function. +/// Used to check that the call to `process` is preceded by a call to `alloc`. +// TODO(alexey): we're single-threaded, use something easeir. +static LATEST_ALLOCATION: Mutex> = Mutex::new(None); + +#[no_mangle] +pub extern "C" fn alloc(data_size: i64) -> i64 { + let mut buf = Vec::with_capacity(data_size as usize); + let ptr = buf.as_mut_ptr(); + // Prevent the buffer from being dropped. + std::mem::forget(buf); + let data_ptr = ptr as *const u8 as i64; + + *LATEST_ALLOCATION.lock().expect("failed to acquire mutex") = Some((ptr as i64, data_size)); + + data_ptr +} + +#[no_mangle] +pub extern "C" fn process(data_ptr: i64, data_size: i64) -> i64 { + Lazy::force(&TRACER); + + // Check that the last allocation matches the passed arguments. + assert_eq!( + (data_ptr, data_size), + LATEST_ALLOCATION.lock().expect("failed to acquire mutex").expect("no last allocation") + ); + + // SAFETY: the memory was allocated by the `alloc` and we check it above. + let data = unsafe { slice::from_raw_parts(data_ptr as *const u8, data_size as usize) }; + + // It's just a JSON for now, so let's print it as a string. + let notification = String::from_utf8_lossy(data); + if notification.len() > 200 { + info!( + notification = + format!("{}...{}", ¬ification[..100], ¬ification[notification.len() - 100..]), + "Received notification" + ); + } else { + info!(?notification, "Received notification"); + } + + notification.len() as i64 +}