diff --git a/Cargo.lock b/Cargo.lock index b246ce128..6038ee17f 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -71,9 +71,9 @@ checksum = "683d7910e743518b0e34f1186f92494becacb047c7b6bf616c96772180fef923" [[package]] name = "alloy-chains" -version = "0.1.56" +version = "0.1.57" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a725039ef382d1b6b4e2ebcb15b1efff6cde9af48c47a1bdce6fb67b9456c34b" +checksum = "4ab9d1367c6ffb90c93fb4a9a4989530aa85112438c6f73a734067255d348469" dependencies = [ "alloy-primitives", "num_enum", @@ -963,7 +963,7 @@ dependencies = [ "bitflags 2.8.0", "cexpr", "clang-sys", - "itertools 0.10.5", + "itertools 0.12.1", "lazy_static", "lazycell", "proc-macro2", @@ -1047,9 +1047,9 @@ dependencies = [ [[package]] name = "brotli-decompressor" -version = "4.0.1" +version = "4.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9a45bd2e4095a8b518033b128020dd4a55aab1c0a381ba4404a472630f4bc362" +checksum = "74fa05ad7d803d413eb8380983b092cbbaf9a85f151b871360e7b00cd7060b37" dependencies = [ "alloc-no-stdlib", "alloc-stdlib", @@ -1145,9 +1145,9 @@ checksum = "37b2a672a2cb129a2e41c10b1224bb368f9f37a2b16b612598138befd7b37eb5" [[package]] name = "cc" -version = "1.2.9" +version = "1.2.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c8293772165d9345bdaaa39b45b2109591e63fe5e6fbc23c6ff930a048aa310b" +checksum = "13208fcbb66eaeffe09b99fffbe1af420f00a7b35aa99ad683dfc1aa76145229" dependencies = [ "jobserver", "libc", @@ -1219,9 +1219,9 @@ dependencies = [ [[package]] name = "clap" -version = "4.5.26" +version = "4.5.27" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a8eb5e908ef3a6efbe1ed62520fb7287959888c88485abe072543190ecc66783" +checksum = "769b0145982b4b48713e01ec42d61614425f27b7058bda7180a3a41f30104796" dependencies = [ "clap_builder", "clap_derive", @@ -1229,9 +1229,9 @@ dependencies = [ [[package]] name = "clap_builder" -version = "4.5.26" +version = "4.5.27" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "96b01801b5fc6a0a232407abc821660c9c6d25a1cafc0d4f85f29fb8d9afc121" +checksum = "1b26884eb4b57140e4d2d93652abfa49498b938b3c9179f9fc487b0acc3edad7" dependencies = [ "anstream", "anstyle", @@ -1318,9 +1318,9 @@ dependencies = [ [[package]] name = "cpufeatures" -version = "0.2.16" +version = "0.2.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "16b80225097f2e5ae4e7179dd2266824648f3e2f49d9134d584b76389d31c4c3" +checksum = "59ed5838eebb26a2bb2e58f6d5b5316989ae9d08bab10e0e6d103e656d1b0280" dependencies = [ "libc", ] @@ -1388,9 +1388,9 @@ checksum = "d0a5c400df2834b80a4c3327b3aad3a4c4cd4de0629063962b03235697506a28" [[package]] name = "crunchy" -version = "0.2.2" +version = "0.2.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7a81dae078cea95a014a339291cec439d2f232ebe854a9d672b796c6afafa9b7" +checksum = "43da5946c66ffcc7745f48db692ffbb10a83bfe0afd96235c5c2a4fb23994929" [[package]] name = "crypto-bigint" @@ -2313,9 +2313,9 @@ dependencies = [ [[package]] name = "indexmap" -version = "2.7.0" +version = "2.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "62f822373a4fe84d4bb149bf54e584a7f4abec90e072ed49cda0edea5b95471f" +checksum = "8c9c992b02b5b4c94ea26e32fe5bccb7aa7d9f390ab5c1221ff895bc7ea8b652" dependencies = [ "arbitrary", "equivalent", @@ -2358,19 +2358,19 @@ dependencies = [ [[package]] name = "ipnet" -version = "2.10.1" +version = "2.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ddc24109865250148c2e0f3d25d4f0f479571723792d3802153c60922a4fb708" +checksum = "469fb0b9cefa57e3ef31275ee7cacb78f2fdca44e4765491884a2b119d4eb130" [[package]] name = "is-terminal" -version = "0.4.13" +version = "0.4.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "261f68e344040fbd0edea105bef17c66edf46f984ddb1115b775ce31be948f4b" +checksum = "e19b23d53f35ce9f56aebc7d1bb4e6ac1e9c0db7ac85c8d1760c04379edced37" dependencies = [ "hermit-abi 0.4.0", "libc", - "windows-sys 0.52.0", + "windows-sys 0.59.0", ] [[package]] @@ -2388,6 +2388,15 @@ 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 = "itertools" version = "0.13.0" @@ -2498,10 +2507,10 @@ dependencies = [ "alloy-rlp", "alloy-rpc-types-engine", "async-trait", - "maili-consensus", "maili-genesis", "maili-protocol", "maili-registry", + "maili-rpc", "op-alloy-consensus", "op-alloy-rpc-types-engine", "proptest", @@ -2524,6 +2533,7 @@ dependencies = [ "kona-derive", "maili-genesis", "maili-protocol", + "maili-rpc", "op-alloy-consensus", "op-alloy-rpc-types-engine", "spin", @@ -2590,6 +2600,7 @@ dependencies = [ "maili-genesis", "maili-protocol", "maili-registry", + "maili-rpc", "op-alloy-rpc-types-engine", "proptest", "reqwest", @@ -2673,6 +2684,7 @@ dependencies = [ "maili-genesis", "maili-protocol", "maili-registry", + "maili-rpc", "op-alloy-consensus", "op-alloy-rpc-types-engine", "serde", @@ -2856,36 +2868,17 @@ dependencies = [ "hashbrown 0.15.2", ] -[[package]] -name = "maili-consensus" -version = "0.1.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "59cc5082a9b883b719fb3594257e56e9c6990cf49d7b41188adb51ab6c83cd1e" -dependencies = [ - "alloy-consensus", - "alloy-eips", - "alloy-primitives", - "alloy-rlp", - "alloy-serde", - "serde", -] - -[[package]] -name = "maili-flz" -version = "0.1.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "11418b80159f49d9a2f13909ca9e0921629647ee68bcf97adcac0dd14d4d32e6" - [[package]] name = "maili-genesis" -version = "0.1.6" +version = "0.1.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2a5680e0bb4c77bb98e8e9534dffd511ddd0d6ab7632514b54f2a09220d9337e" +checksum = "8b555c1fab6c4f01f4defc6543b52377c3ee904a712dd1e21efbc0d7843c6207" dependencies = [ "alloy-consensus", "alloy-eips", "alloy-primitives", "alloy-sol-types", + "maili-serde", "serde", "serde_repr", "thiserror 2.0.11", @@ -2893,9 +2886,9 @@ dependencies = [ [[package]] name = "maili-protocol" -version = "0.1.6" +version = "0.1.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "262e3f2fc12df09d50db07e01b39d57fe25414bd42ede500d053c25fb7f0afcb" +checksum = "db659969c6618849ee212e7425c35bcd88cdc7cd7b9d10dcb9b1ae00d01a8cdd" dependencies = [ "alloc-no-stdlib", "alloy-consensus", @@ -2907,30 +2900,68 @@ dependencies = [ "async-trait", "brotli", "derive_more", - "maili-consensus", - "maili-flz", "maili-genesis", "miniz_oxide", + "op-alloy-consensus", + "op-alloy-flz", "rand", "serde", "thiserror 2.0.11", "tracing", + "tracing-subscriber", "unsigned-varint", ] [[package]] name = "maili-registry" -version = "0.1.6" +version = "0.1.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c03aaeec37e2aa101dda748bd48b2d74726f9ea8ee4dc74782ac6f8934ae84c4" +checksum = "3d6a3435074b73cdaf1c4e468ed4508e08cb21aa5dba88082914bdadac60e2b3" dependencies = [ "alloy-primitives", "lazy_static", "maili-genesis", + "maili-superchain", + "serde", + "serde_json", + "toml", +] + +[[package]] +name = "maili-rpc" +version = "0.1.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7b6651c695539b1e31a1c8e7eae2c301a6a70200675483a9490086e991efd8a4" +dependencies = [ + "alloy-eips", + "alloy-primitives", + "derive_more", + "maili-protocol", + "op-alloy-rpc-types-engine", +] + +[[package]] +name = "maili-serde" +version = "0.1.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "06f2217f2efdc5132167512db12ce9bf0a087d20f8d5ebf0f2a2a0b836a668d8" +dependencies = [ + "alloy-primitives", "serde", "serde_json", ] +[[package]] +name = "maili-superchain" +version = "0.1.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1b99c2c73b9bd8d28dbbf490dd3566193e857fbbeea28574e618a7335f006bac" +dependencies = [ + "alloy-primitives", + "maili-genesis", + "serde", +] + [[package]] name = "memchr" version = "2.7.4" @@ -3000,9 +3031,9 @@ dependencies = [ [[package]] name = "native-tls" -version = "0.2.12" +version = "0.2.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a8614eb2c83d59d1c8cc974dd3f920198647674a0a035e1af1fa58707e317466" +checksum = "0dab59f8e050d5df8e4dd87d9206fb6f65a483e20ac9fda365ade4fab353196c" dependencies = [ "libc", "log", @@ -3199,9 +3230,9 @@ checksum = "b410bbe7e14ab526a0e86877eb47c6996a2bd7746f027ba551028c925390e4e9" [[package]] name = "op-alloy-consensus" -version = "0.9.5" +version = "0.9.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9e51ae52013aca0aa1ca3df7ecf0d276eb4214ec44aeb9c48651333e1459b3b5" +checksum = "e28dc4e397dd8969f7f98ea6454a5c531349a58c76e12448b0c2de6581df7b8c" dependencies = [ "alloy-consensus", "alloy-eips", @@ -3209,22 +3240,26 @@ dependencies = [ "alloy-rlp", "alloy-serde", "derive_more", - "maili-consensus", "serde", "thiserror 2.0.11", ] +[[package]] +name = "op-alloy-flz" +version = "0.9.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "76b44f5edbd5293636934a88ec38d683ee2075bfce43658d1033d76191e7aff6" + [[package]] name = "op-alloy-rpc-types-engine" -version = "0.9.5" +version = "0.9.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4265ced2d43294a2e369f3a627ab700b11472bb3fe01a823357f7c077093db70" +checksum = "e8d05b5b5b3cff7f24eec2bc366f86a7ff0934678b1bda36d0ecaadba9504170" dependencies = [ "alloy-eips", "alloy-primitives", "alloy-rpc-types-engine", "alloy-serde", - "maili-protocol", "op-alloy-consensus", "serde", "thiserror 2.0.11", @@ -3232,9 +3267,9 @@ dependencies = [ [[package]] name = "openssl" -version = "0.10.68" +version = "0.10.69" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6174bc48f102d208783c2c84bf931bb75927a617866870de8a4ea85597f871f5" +checksum = "f5e534d133a060a3c19daec1eb3e98ec6f4685978834f2dbadfe2ec215bab64e" dependencies = [ "bitflags 2.8.0", "cfg-if", @@ -3258,9 +3293,9 @@ dependencies = [ [[package]] name = "openssl-probe" -version = "0.1.5" +version = "0.1.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ff011a302c396a5197692431fc1948019154afc178baf7d8e37367442a4601cf" +checksum = "d05e27ee213611ffe7d6348b942e8f942b37114c00cc03cec254295a4a17852e" [[package]] name = "openssl-sys" @@ -3809,9 +3844,9 @@ dependencies = [ [[package]] name = "revm" -version = "19.3.0" +version = "19.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0a5a57589c308880c0f89ebf68d92aeef0d51e1ed88867474f895f6fd0f25c64" +checksum = "1538aea4d103a8044820eede9b1254e1b5a2a2abaf3f9a67bef19f8865cf1826" dependencies = [ "auto_impl", "cfg-if", @@ -3918,9 +3953,9 @@ dependencies = [ [[package]] name = "rkyv" -version = "0.8.9" +version = "0.8.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b11a153aec4a6ab60795f8ebe2923c597b16b05bb1504377451e705ef1a45323" +checksum = "1e147371c75553e1e2fcdb483944a8540b8438c31426279553b9a8182a9b7b65" dependencies = [ "bytecheck", "bytes", @@ -3937,9 +3972,9 @@ dependencies = [ [[package]] name = "rkyv_derive" -version = "0.8.9" +version = "0.8.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "beb382a4d9f53bd5c0be86b10d8179c3f8a14c30bf774ff77096ed6581e35981" +checksum = "246b40ac189af6c675d124b802e8ef6d5246c53e17367ce9501f8f66a81abb7a" dependencies = [ "proc-macro2", "quote", @@ -4066,14 +4101,14 @@ version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "cfcb3a22ef46e85b45de6ee7e79d063319ebb6594faafcf1c225ea92ab6e9b92" dependencies = [ - "semver 1.0.24", + "semver 1.0.25", ] [[package]] name = "rustix" -version = "0.38.43" +version = "0.38.44" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a78891ee6bf2340288408954ac787aa063d8e8817e9f53abb37c695c6d834ef6" +checksum = "fdb5bc1ae2baa591800df16c9ca78619bf65c0488b41b96ccec5d11220d8c154" dependencies = [ "bitflags 2.8.0", "errno", @@ -4107,9 +4142,9 @@ dependencies = [ [[package]] name = "rustls-pki-types" -version = "1.10.1" +version = "1.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d2bf47e6ff922db3825eb750c4e2ff784c6ff8fb9e13046ef6a1d1c5401b0b37" +checksum = "917ce264624a4b4db1c364dcc35bfca9ded014d0a958cd47ad3e960e988ea51c" [[package]] name = "rustls-webpki" @@ -4142,9 +4177,9 @@ dependencies = [ [[package]] name = "ryu" -version = "1.0.18" +version = "1.0.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f3cb5ba0dc43242ce17de99c180e96db90b235b8a9fdc9543c96d2209116bd9f" +checksum = "6ea1a2d0a644769cc99faa24c3ad26b379b786fe7c36fd3c546254801650e6dd" [[package]] name = "same-file" @@ -4248,9 +4283,9 @@ dependencies = [ [[package]] name = "semver" -version = "1.0.24" +version = "1.0.25" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3cb6eb87a131f756572d7fb904f6e7b68633f09cca868c5df1c4b8d1a694bbba" +checksum = "f79dfe2d285b0488816f30e700a7438c5a73d816b5b7d3ac72fbc48b0d185e03" [[package]] name = "semver-parser" @@ -4289,9 +4324,9 @@ dependencies = [ [[package]] name = "serde_json" -version = "1.0.135" +version = "1.0.137" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2b0d7ba2887406110130a978386c4e1befb98c674b4fba677954e4db976630d9" +checksum = "930cfb6e6abf99298aaad7d29abbef7a9999a9a8806a40088f55f0dcec03146b" dependencies = [ "indexmap", "itoa", @@ -4311,6 +4346,15 @@ dependencies = [ "syn 2.0.96", ] +[[package]] +name = "serde_spanned" +version = "0.6.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "87607cb1398ed59d48732e575a4c28a7a8ebf2454b964fe3f224f2afc07909e1" +dependencies = [ + "serde", +] + [[package]] name = "serde_urlencoded" version = "0.7.1" @@ -4556,9 +4600,9 @@ checksum = "13c2bddecc57b384dee18652358fb23172facb8a2c51ccc10d74c157bdea3292" [[package]] name = "symbolic-common" -version = "12.13.2" +version = "12.13.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8150eae9699e3c73a3e6431dc1f80d87748797c0457336af23e94c1de619ed24" +checksum = "13a4dfe4bbeef59c1f32fc7524ae7c95b9e1de5e79a43ce1604e181081d71b0c" dependencies = [ "debugid", "memmap2", @@ -4568,9 +4612,9 @@ dependencies = [ [[package]] name = "symbolic-demangle" -version = "12.13.2" +version = "12.13.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "95f4a9846f7a8933b6d198c022faa2c9bd89e1a970bed9d9a98d25708bf8de17" +checksum = "98cf6a95abff97de4d7ff3473f33cacd38f1ddccad5c1feab435d6760300e3b6" dependencies = [ "cpp_demangle", "rustc-demangle", @@ -4884,11 +4928,26 @@ dependencies = [ "tokio", ] +[[package]] +name = "toml" +version = "0.8.19" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a1ed1f98e3fdc28d6d910e6737ae6ab1a93bf1985935a1193e68f93eeb68d24e" +dependencies = [ + "serde", + "serde_spanned", + "toml_datetime", + "toml_edit", +] + [[package]] name = "toml_datetime" version = "0.6.8" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0dd7358ecb8fc2f8d014bf86f6f638ce72ba252a2c3a2572f2a795f1d23efb41" +dependencies = [ + "serde", +] [[package]] name = "toml_edit" @@ -4897,6 +4956,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4ae48d6208a266e853d946088ed816055e556cc6028c5e8e2b84d9fa5dd7c7f5" dependencies = [ "indexmap", + "serde", + "serde_spanned", "toml_datetime", "winnow", ] @@ -4978,6 +5039,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e8189decb5ac0fa7bc8b96b7cb9b2701d60d48805aca84a238004d665fcc4008" dependencies = [ "nu-ansi-term", + "serde", "sharded-slab", "smallvec", "thread_local", @@ -5043,9 +5105,9 @@ checksum = "eaea85b334db583fe3274d12b4cd1880032beab409c0d774be044d4480ab9a94" [[package]] name = "unicode-ident" -version = "1.0.14" +version = "1.0.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "adb9e6ca4f869e1180728b7950e35922a7fc6397f7b641499e8f3ef06e50dc83" +checksum = "a210d160f08b701c8721ba1c726c11662f877ea6b7094007e1ca9a1041945034" [[package]] name = "unicode-xid" @@ -5102,9 +5164,9 @@ checksum = "06abde3611657adf66d383f00b093d7faecc7fa57071cce2578660c9f1010821" [[package]] name = "uuid" -version = "1.12.0" +version = "1.12.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "744018581f9a3454a9e15beb8a33b017183f1e7c0cd170232a2d1453b23a51c4" +checksum = "b3758f5e68192bb96cc8f9b7e2c2cfdabb435499a28499a42f8f984092adad4b" [[package]] name = "valuable" @@ -5413,9 +5475,9 @@ checksum = "589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec" [[package]] name = "winnow" -version = "0.6.24" +version = "0.6.25" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c8d71a593cc5c42ad7876e2c1fda56f314f3754c084128833e64f1345ff8a03a" +checksum = "ad699df48212c6cc6eb4435f35500ac6fd3b9913324f938aea302022ce19d310" dependencies = [ "memchr", ] diff --git a/Cargo.toml b/Cargo.toml index 0cdd6aa6b..36a8b909a 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -79,13 +79,13 @@ kona-preimage = { path = "crates/proof-sdk/preimage", version = "0.2.1", default kona-std-fpvm-proc = { path = "crates/proof-sdk/std-fpvm-proc", version = "0.1.2", default-features = false } # Maili -maili-consensus = { version = "0.1.6", default-features = false } -maili-protocol = { version = "0.1.6", default-features = false } -maili-registry = { version = "0.1.6", default-features = false } -maili-genesis = { version = "0.1.6", default-features = false } +maili-rpc = { version = "0.1.8", default-features = false } +maili-protocol = { version = "0.1.8", default-features = false } +maili-registry = { version = "0.1.8", default-features = false } +maili-genesis = { version = "0.1.8", default-features = false } # Alloy -alloy-rlp = { version = "0.3.10", default-features = false } +alloy-rlp = { version = "0.3.11", default-features = false } alloy-trie = { version = "0.7.8", default-features = false } alloy-eips = { version = "0.9.2", default-features = false } alloy-serde = { version = "0.9.2", default-features = false } @@ -94,16 +94,16 @@ alloy-consensus = { version = "0.9.2", default-features = false } alloy-transport = { version = "0.9.2", default-features = false } alloy-rpc-types = { version = "0.9.2", default-features = false } alloy-rpc-client = { version = "0.9.2", default-features = false } -alloy-primitives = { version = "0.8.14", default-features = false } +alloy-primitives = { version = "0.8.19", default-features = false } alloy-node-bindings = { version = "0.9.2", default-features = false } alloy-transport-http = { version = "0.9.2", default-features = false } alloy-rpc-types-engine = { version = "0.9.2", default-features = false } alloy-rpc-types-beacon = { version = "0.9.2", default-features = false } -alloy-sol-types = { version = "0.8.18", default-features = false } +alloy-sol-types = { version = "0.8.19", default-features = false } # OP Alloy -op-alloy-consensus = { version = "0.9.5", default-features = false } -op-alloy-rpc-types-engine = { version = "0.9.5", default-features = false } +op-alloy-consensus = { version = "0.9.6", default-features = false } +op-alloy-rpc-types-engine = { version = "0.9.6", default-features = false } # General lru = "0.12.5" diff --git a/bin/host/Cargo.toml b/bin/host/Cargo.toml index 1deb38323..b57573ff5 100644 --- a/bin/host/Cargo.toml +++ b/bin/host/Cargo.toml @@ -23,8 +23,9 @@ kona-client.workspace = true kona-providers-alloy.workspace = true # Maili -maili-protocol = { workspace = true, features = ["std", "serde"] } +maili-rpc.workspace = true maili-registry.workspace = true +maili-protocol = { workspace = true, features = ["std", "serde"] } maili-genesis = { workspace = true, features = ["std", "serde"] } # Alloy diff --git a/bin/host/src/interop/cli.rs b/bin/host/src/interop/cli.rs index 66061f54f..d40164580 100644 --- a/bin/host/src/interop/cli.rs +++ b/bin/host/src/interop/cli.rs @@ -124,20 +124,17 @@ impl InteropHostCli { ) })?; - rollup_config_paths.iter().try_fold( - HashMap::with_capacity(rollup_config_paths.len()), - |mut acc, path| { - // Read the serialized config from the file system. - let ser_config = std::fs::read_to_string(path) - .map_err(|e| anyhow!("Error reading RollupConfig file: {e}"))?; + rollup_config_paths.iter().try_fold(HashMap::default(), |mut acc, path| { + // Read the serialized config from the file system. + let ser_config = std::fs::read_to_string(path) + .map_err(|e| anyhow!("Error reading RollupConfig file: {e}"))?; - // Deserialize the config and return it. - let cfg: RollupConfig = serde_json::from_str(&ser_config) - .map_err(|e| anyhow!("Error deserializing RollupConfig: {e}"))?; + // Deserialize the config and return it. + let cfg: RollupConfig = serde_json::from_str(&ser_config) + .map_err(|e| anyhow!("Error deserializing RollupConfig: {e}"))?; - acc.insert(cfg.l2_chain_id, cfg); - Ok(acc) - }, - ) + acc.insert(cfg.l2_chain_id, cfg); + Ok(acc) + }) } } diff --git a/bin/host/src/interop/orchestrator.rs b/bin/host/src/interop/orchestrator.rs index 7f58c2d76..4931ad60d 100644 --- a/bin/host/src/interop/orchestrator.rs +++ b/bin/host/src/interop/orchestrator.rs @@ -2,6 +2,7 @@ use super::{InteropFetcher, InteropHostCli, LocalKeyValueStore}; use crate::eth::http_provider; +use alloy_primitives::map::HashMap; use alloy_provider::{Provider, ReqwestProvider}; use anyhow::{anyhow, Result}; use async_trait::async_trait; @@ -11,7 +12,7 @@ use kona_host::{ }; use kona_preimage::{HintWriter, NativeChannel, OracleReader}; use kona_providers_alloy::{OnlineBeaconClient, OnlineBlobProvider}; -use std::{collections::HashMap, sync::Arc}; +use std::sync::Arc; use tokio::sync::RwLock; /// The providers required for the single chain host. @@ -45,7 +46,7 @@ impl HostOrchestrator for InteropHostCli { // Resolve all chain IDs to their corresponding providers. let l2_node_addresses = self.l2_node_addresses.as_ref().ok_or(anyhow!("L2 node addresses must be set"))?; - let mut l2_providers = HashMap::with_capacity(l2_node_addresses.len()); + let mut l2_providers = HashMap::default(); for l2_node_address in l2_node_addresses { let l2_provider = http_provider(l2_node_address); let chain_id = l2_provider.get_chain_id().await?; diff --git a/crates/derive/Cargo.toml b/crates/derive/Cargo.toml index ef16e6c61..0bc4c47c1 100644 --- a/crates/derive/Cargo.toml +++ b/crates/derive/Cargo.toml @@ -13,6 +13,7 @@ workspace = true [dependencies] # Maili +maili-rpc.workspace = true maili-genesis.workspace = true maili-protocol.workspace = true @@ -41,7 +42,6 @@ spin.workspace = true proptest.workspace = true serde_json.workspace = true maili-registry.workspace = true -maili-consensus.workspace = true tokio = { workspace = true, features = ["full"] } tracing-subscriber = { workspace = true, features = ["fmt"] } tracing = { workspace = true, features = ["std"] } diff --git a/crates/derive/src/pipeline/core.rs b/crates/derive/src/pipeline/core.rs index 60c23b9f6..45d1f2f99 100644 --- a/crates/derive/src/pipeline/core.rs +++ b/crates/derive/src/pipeline/core.rs @@ -12,7 +12,7 @@ use async_trait::async_trait; use core::fmt::Debug; use maili_genesis::{RollupConfig, SystemConfig}; use maili_protocol::{BlockInfo, L2BlockInfo}; -use op_alloy_rpc_types_engine::OpAttributesWithParent; +use maili_rpc::OpAttributesWithParent; /// The derivation pipeline is responsible for deriving L2 inputs from L1 data. #[derive(Debug)] @@ -197,7 +197,8 @@ mod tests { use alloy_rpc_types_engine::PayloadAttributes; use maili_genesis::{RollupConfig, SystemConfig}; use maili_protocol::L2BlockInfo; - use op_alloy_rpc_types_engine::{OpAttributesWithParent, OpPayloadAttributes}; + use maili_rpc::OpAttributesWithParent; + use op_alloy_rpc_types_engine::OpPayloadAttributes; fn default_test_payload_attributes() -> OpAttributesWithParent { OpAttributesWithParent { diff --git a/crates/derive/src/stages/attributes_queue.rs b/crates/derive/src/stages/attributes_queue.rs index 63aadc4df..ac1f03f14 100644 --- a/crates/derive/src/stages/attributes_queue.rs +++ b/crates/derive/src/stages/attributes_queue.rs @@ -13,7 +13,8 @@ use async_trait::async_trait; use core::fmt::Debug; use maili_genesis::RollupConfig; use maili_protocol::{BlockInfo, L2BlockInfo, SingleBatch}; -use op_alloy_rpc_types_engine::{OpAttributesWithParent, OpPayloadAttributes}; +use maili_rpc::OpAttributesWithParent; +use op_alloy_rpc_types_engine::OpPayloadAttributes; /// [AttributesQueue] accepts batches from the [BatchQueue] stage /// and transforms them into [OpPayloadAttributes]. diff --git a/crates/derive/src/stages/batch/batch_queue.rs b/crates/derive/src/stages/batch/batch_queue.rs index b87d16b53..f27d66ddc 100644 --- a/crates/derive/src/stages/batch/batch_queue.rs +++ b/crates/derive/src/stages/batch/batch_queue.rs @@ -468,10 +468,9 @@ mod tests { use alloy_eips::{eip2718::Decodable2718, BlockNumHash}; use alloy_primitives::{address, b256, Address, Bytes, TxKind, B256, U256}; use alloy_rlp::{BytesMut, Encodable}; - use maili_consensus::TxDeposit; use maili_genesis::{ChainGenesis, MAX_RLP_BYTES_PER_CHANNEL_FJORD}; use maili_protocol::{BatchReader, L1BlockInfoBedrock, L1BlockInfoTx}; - use op_alloy_consensus::{OpBlock, OpTxEnvelope, OpTxType}; + use op_alloy_consensus::{OpBlock, OpTxEnvelope, OpTxType, TxDeposit}; use tracing::Level; use tracing_subscriber::layer::SubscriberExt; diff --git a/crates/derive/src/test_utils/chain_providers.rs b/crates/derive/src/test_utils/chain_providers.rs index 4e698ad52..c10332d9a 100644 --- a/crates/derive/src/test_utils/chain_providers.rs +++ b/crates/derive/src/test_utils/chain_providers.rs @@ -5,12 +5,12 @@ use crate::{ traits::{ChainProvider, L2ChainProvider}, }; use alloc::{boxed::Box, string::ToString, sync::Arc, vec::Vec}; -use alloy_consensus::{Block, Header, Receipt, TxEnvelope}; +use alloy_consensus::{Header, Receipt, TxEnvelope}; use alloy_primitives::{map::HashMap, B256}; use async_trait::async_trait; use maili_genesis::{RollupConfig, SystemConfig}; use maili_protocol::{BatchValidationProvider, BlockInfo, L2BlockInfo}; -use op_alloy_consensus::{OpBlock, OpTxEnvelope}; +use op_alloy_consensus::OpBlock; use thiserror::Error; /// A mock chain provider for testing. @@ -177,7 +177,6 @@ impl TestL2ChainProvider { #[async_trait] impl BatchValidationProvider for TestL2ChainProvider { type Error = TestProviderError; - type Transaction = OpTxEnvelope; async fn l2_block_info_by_number(&mut self, number: u64) -> Result { if self.short_circuit { @@ -190,10 +189,7 @@ impl BatchValidationProvider for TestL2ChainProvider { .ok_or_else(|| TestProviderError::BlockNotFound) } - async fn block_by_number( - &mut self, - number: u64, - ) -> Result, Self::Error> { + async fn block_by_number(&mut self, number: u64) -> Result { self.op_blocks .iter() .find(|p| p.header.number == number) diff --git a/crates/derive/src/test_utils/pipeline.rs b/crates/derive/src/test_utils/pipeline.rs index 90861b1ac..654230fde 100644 --- a/crates/derive/src/test_utils/pipeline.rs +++ b/crates/derive/src/test_utils/pipeline.rs @@ -9,7 +9,7 @@ use crate::{ use alloc::{boxed::Box, sync::Arc}; use maili_genesis::RollupConfig; use maili_protocol::{BlockInfo, L2BlockInfo}; -use op_alloy_rpc_types_engine::OpAttributesWithParent; +use maili_rpc::OpAttributesWithParent; // Re-export these types used internally to the test pipeline. use crate::{ diff --git a/crates/derive/src/test_utils/sys_config_fetcher.rs b/crates/derive/src/test_utils/sys_config_fetcher.rs index 262428365..37b815793 100644 --- a/crates/derive/src/test_utils/sys_config_fetcher.rs +++ b/crates/derive/src/test_utils/sys_config_fetcher.rs @@ -5,12 +5,11 @@ use crate::{ traits::L2ChainProvider, }; use alloc::{boxed::Box, string::ToString, sync::Arc}; -use alloy_consensus::Block; use alloy_primitives::map::HashMap; use async_trait::async_trait; use maili_genesis::{RollupConfig, SystemConfig}; use maili_protocol::{BatchValidationProvider, L2BlockInfo}; -use op_alloy_consensus::OpTxEnvelope; +use op_alloy_consensus::OpBlock; use thiserror::Error; /// A mock implementation of the `SystemConfigL2Fetcher` for testing. @@ -49,9 +48,8 @@ impl From for PipelineErrorKind { #[async_trait] impl BatchValidationProvider for TestSystemConfigL2Fetcher { type Error = TestSystemConfigL2FetcherError; - type Transaction = OpTxEnvelope; - async fn block_by_number(&mut self, _: u64) -> Result, Self::Error> { + async fn block_by_number(&mut self, _: u64) -> Result { unimplemented!() } diff --git a/crates/derive/src/traits/attributes.rs b/crates/derive/src/traits/attributes.rs index 9f7640e00..d612f969c 100644 --- a/crates/derive/src/traits/attributes.rs +++ b/crates/derive/src/traits/attributes.rs @@ -5,7 +5,8 @@ use alloc::boxed::Box; use alloy_eips::BlockNumHash; use async_trait::async_trait; use maili_protocol::{L2BlockInfo, SingleBatch}; -use op_alloy_rpc_types_engine::{OpAttributesWithParent, OpPayloadAttributes}; +use maili_rpc::OpAttributesWithParent; +use op_alloy_rpc_types_engine::OpPayloadAttributes; /// [AttributesProvider] is a trait abstraction that generalizes the [BatchQueue] stage. /// diff --git a/crates/derive/src/traits/pipeline.rs b/crates/derive/src/traits/pipeline.rs index 776597dbd..38b4bd6c5 100644 --- a/crates/derive/src/traits/pipeline.rs +++ b/crates/derive/src/traits/pipeline.rs @@ -5,7 +5,7 @@ use async_trait::async_trait; use core::iter::Iterator; use maili_genesis::{RollupConfig, SystemConfig}; use maili_protocol::L2BlockInfo; -use op_alloy_rpc_types_engine::OpAttributesWithParent; +use maili_rpc::OpAttributesWithParent; use crate::{errors::PipelineErrorKind, traits::OriginProvider, types::StepResult}; diff --git a/crates/driver/Cargo.toml b/crates/driver/Cargo.toml index 4d412d9bb..5fecc4c82 100644 --- a/crates/driver/Cargo.toml +++ b/crates/driver/Cargo.toml @@ -16,6 +16,7 @@ workspace = true kona-derive.workspace = true # Maili +maili-rpc.workspace = true maili-genesis.workspace = true maili-protocol.workspace = true diff --git a/crates/driver/src/core.rs b/crates/driver/src/core.rs index a2884cffa..db2b62ea1 100644 --- a/crates/driver/src/core.rs +++ b/crates/driver/src/core.rs @@ -13,8 +13,8 @@ use kona_derive::{ }; use maili_genesis::RollupConfig; use maili_protocol::L2BlockInfo; +use maili_rpc::OpAttributesWithParent; use op_alloy_consensus::{OpBlock, OpTxEnvelope, OpTxType}; -use op_alloy_rpc_types_engine::OpAttributesWithParent; use spin::RwLock; /// The Rollup Driver entrypoint. diff --git a/crates/driver/src/pipeline.rs b/crates/driver/src/pipeline.rs index dc941e4c4..55c8d6712 100644 --- a/crates/driver/src/pipeline.rs +++ b/crates/driver/src/pipeline.rs @@ -3,7 +3,7 @@ use alloc::boxed::Box; use async_trait::async_trait; use maili_protocol::L2BlockInfo; -use op_alloy_rpc_types_engine::OpAttributesWithParent; +use maili_rpc::OpAttributesWithParent; use kona_derive::{ errors::{PipelineError, PipelineErrorKind, ResetError}, diff --git a/crates/executor/src/executor/mod.rs b/crates/executor/src/executor/mod.rs index bc0e35522..602d6b0d0 100644 --- a/crates/executor/src/executor/mod.rs +++ b/crates/executor/src/executor/mod.rs @@ -163,6 +163,8 @@ where base.build() }; + let is_isthmus = self.config.is_isthmus_active(payload.payload_attributes.timestamp); + // Execute the transactions in the payload. let decoded_txs = transactions .iter() @@ -239,8 +241,10 @@ where .flatten(), ); // Ensure the receipt is not an EIP-7702 receipt. - if matches!(receipt, OpReceiptEnvelope::Eip7702(_)) { - panic!("EIP-7702 receipts are not supported by the fault proof program"); + if matches!(receipt, OpReceiptEnvelope::Eip7702(_)) && !is_isthmus { + panic!( + "EIP-7702 receipts are not supported by the fault proof program before Isthmus" + ); } receipts.push(receipt); } diff --git a/crates/interop/src/test_util.rs b/crates/interop/src/test_util.rs index 604c73379..266995fba 100644 --- a/crates/interop/src/test_util.rs +++ b/crates/interop/src/test_util.rs @@ -84,7 +84,7 @@ pub struct ChainBuilder { impl SuperchainBuilder { pub fn new(timestamp: u64) -> Self { - Self { chains: HashMap::new(), timestamp } + Self { chains: HashMap::default(), timestamp } } pub fn chain(&mut self, chain_id: u64) -> &mut ChainBuilder { @@ -93,8 +93,8 @@ impl SuperchainBuilder { /// Builds the scenario into the format needed for testing pub fn build(self) -> (Vec<(u64, Sealed
)>, MockInteropProvider) { - let mut headers_map = HashMap::new(); - let mut receipts_map = HashMap::new(); + let mut headers_map = HashMap::default(); + let mut receipts_map = HashMap::default(); let mut sealed_headers = Vec::new(); for (chain_id, chain) in self.chains { @@ -102,11 +102,11 @@ impl SuperchainBuilder { let header_hash = header.hash_slow(); let sealed_header = header.seal(header_hash); - let mut chain_headers = HashMap::new(); + let mut chain_headers = HashMap::default(); chain_headers.insert(0, sealed_header.clone()); headers_map.insert(chain_id, chain_headers); - let mut chain_receipts = HashMap::new(); + let mut chain_receipts = HashMap::default(); chain_receipts.insert(0, chain.receipts); receipts_map.insert(chain_id, chain_receipts); diff --git a/crates/proof-sdk/proof-interop/src/provider.rs b/crates/proof-sdk/proof-interop/src/provider.rs index d59dc6a5a..46b4e77b1 100644 --- a/crates/proof-sdk/proof-interop/src/provider.rs +++ b/crates/proof-sdk/proof-interop/src/provider.rs @@ -32,7 +32,7 @@ where { /// Creates a new [OracleInteropProvider] with the given oracle client and [PreState]. pub fn new(oracle: Arc, pre_state: PreState) -> Self { - Self { oracle, pre_state, safe_head_cache: Arc::new(RwLock::new(HashMap::new())) } + Self { oracle, pre_state, safe_head_cache: Arc::new(RwLock::new(HashMap::default())) } } /// Fetch the [Header] for the block with the given hash. diff --git a/crates/proof-sdk/proof/Cargo.toml b/crates/proof-sdk/proof/Cargo.toml index 72585b460..55b6f9557 100644 --- a/crates/proof-sdk/proof/Cargo.toml +++ b/crates/proof-sdk/proof/Cargo.toml @@ -20,6 +20,7 @@ kona-preimage.workspace = true kona-executor.workspace = true # Maili +maili-rpc.workspace = true maili-protocol.workspace = true maili-registry.workspace = true maili-genesis = { workspace = true, features = ["serde"] } diff --git a/crates/proof-sdk/proof/src/l1/pipeline.rs b/crates/proof-sdk/proof/src/l1/pipeline.rs index 9388937ba..3ebe05471 100644 --- a/crates/proof-sdk/proof/src/l1/pipeline.rs +++ b/crates/proof-sdk/proof/src/l1/pipeline.rs @@ -20,7 +20,7 @@ use kona_driver::{DriverPipeline, PipelineCursor}; use kona_preimage::CommsClient; use maili_genesis::{RollupConfig, SystemConfig}; use maili_protocol::{BlockInfo, L2BlockInfo}; -use op_alloy_rpc_types_engine::OpAttributesWithParent; +use maili_rpc::OpAttributesWithParent; use spin::RwLock; /// An oracle-backed derivation pipeline. diff --git a/crates/proof-sdk/proof/src/l2/chain_provider.rs b/crates/proof-sdk/proof/src/l2/chain_provider.rs index 6c5e283bb..20c211db9 100644 --- a/crates/proof-sdk/proof/src/l2/chain_provider.rs +++ b/crates/proof-sdk/proof/src/l2/chain_provider.rs @@ -2,7 +2,7 @@ use crate::{errors::OracleProviderError, HintType}; use alloc::{boxed::Box, sync::Arc, vec::Vec}; -use alloy_consensus::{Block, BlockBody, Header}; +use alloy_consensus::{BlockBody, Header}; use alloy_eips::eip2718::Decodable2718; use alloy_primitives::{Address, Bytes, B256}; use alloy_rlp::Decodable; @@ -74,7 +74,6 @@ impl OracleL2ChainProvider { #[async_trait] impl BatchValidationProvider for OracleL2ChainProvider { type Error = OracleProviderError; - type Transaction = OpTxEnvelope; async fn l2_block_info_by_number(&mut self, number: u64) -> Result { // Get the block at the given number. @@ -85,10 +84,7 @@ impl BatchValidationProvider for OracleL2ChainProv .map_err(OracleProviderError::BlockInfo) } - async fn block_by_number( - &mut self, - number: u64, - ) -> Result, Self::Error> { + async fn block_by_number(&mut self, number: u64) -> Result { // Fetch the header for the given block number. let header @ Header { transactions_root, timestamp, .. } = self.header_by_number(number).await?; diff --git a/crates/providers-alloy/src/l2_chain_provider.rs b/crates/providers-alloy/src/l2_chain_provider.rs index b6a270610..3a6a75d2d 100644 --- a/crates/providers-alloy/src/l2_chain_provider.rs +++ b/crates/providers-alloy/src/l2_chain_provider.rs @@ -11,7 +11,7 @@ use kona_derive::{ }; use maili_genesis::{RollupConfig, SystemConfig}; use maili_protocol::{to_system_config, BatchValidationProvider, L2BlockInfo}; -use op_alloy_consensus::{OpBlock, OpTxEnvelope}; +use op_alloy_consensus::OpBlock; use std::sync::Arc; /// The [AlloyL2ChainProvider] is a concrete implementation of the [L2ChainProvider] trait, @@ -90,7 +90,6 @@ impl From for PipelineErrorKind { #[async_trait] impl BatchValidationProvider for AlloyL2ChainProvider { type Error = AlloyL2ChainProviderError; - type Transaction = OpTxEnvelope; async fn l2_block_info_by_number(&mut self, number: u64) -> Result { let block = self