diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index 5235eae..4320617 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -7,6 +7,7 @@ on: pull_request: branches: - main + - develop jobs: lint: @@ -37,6 +38,12 @@ jobs: submodules: recursive fetch-depth: 0 - uses: actions-rust-lang/setup-rust-toolchain@v1 + - name: Clean up unnecessary packages + run: | + sudo rm -rf "/usr/share/dotnet" || true + sudo rm -rf "/usr/local/lib/android" || true + sudo rm -rf "/usr/local/share/boost" || true + docker system prune -a --volumes -f - uses: Swatinem/rust-cache@v2 - uses: extractions/setup-just@v2 with: @@ -49,7 +56,7 @@ jobs: echo "deb [trusted=yes] https://apt.fury.io/kurtosis-tech/ /" | sudo tee /etc/apt/sources.list.d/kurtosis.list sudo apt update sudo apt remove kurtosis-cli - sudo apt install kurtosis-cli=1.8.1 -V + sudo apt install kurtosis-cli=1.11.1 -V - name: Prepare optimism run: make chain - name: Start optimism diff --git a/Cargo.lock b/Cargo.lock index ee5108d..e12f4a3 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -72,9 +72,9 @@ checksum = "683d7910e743518b0e34f1186f92494becacb047c7b6bf616c96772180fef923" [[package]] name = "alloy-chains" -version = "0.2.4" +version = "0.2.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "19a9cc9d81ace3da457883b0bdf76776e55f1b84219a9e9d55c27ad308548d3f" +checksum = "a379c0d821498c996ceb9e7519fc2dab8286c35a203c1fb95f80ecd66e07cf2f" dependencies = [ "alloy-primitives", "num_enum", @@ -84,9 +84,9 @@ dependencies = [ [[package]] name = "alloy-consensus" -version = "1.0.12" +version = "1.0.38" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2bcb57295c4b632b6b3941a089ee82d00ff31ff9eb3eac801bf605ffddc81041" +checksum = "6a0dd3ed764953a6b20458b2b7abbfdc93d20d14b38babe1a70fe631a443a9f1" dependencies = [ "alloy-eips", "alloy-primitives", @@ -101,17 +101,18 @@ dependencies = [ "k256", "once_cell", "rand 0.8.5", - "secp256k1", + "secp256k1 0.30.0", "serde", + "serde_json", "serde_with", - "thiserror", + "thiserror 2.0.12", ] [[package]] name = "alloy-consensus-any" -version = "1.0.12" +version = "1.0.38" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3ab669be40024565acb719daf1b2a050e6dc065fc0bec6050d97a81cdb860bd7" +checksum = "9556182afa73cddffa91e64a5aa9508d5e8c912b3a15f26998d2388a824d2c7b" dependencies = [ "alloy-consensus", "alloy-eips", @@ -131,7 +132,7 @@ dependencies = [ "alloy-rlp", "crc", "serde", - "thiserror", + "thiserror 2.0.12", ] [[package]] @@ -155,14 +156,14 @@ dependencies = [ "alloy-rlp", "k256", "serde", - "thiserror", + "thiserror 2.0.12", ] [[package]] name = "alloy-eips" -version = "1.0.12" +version = "1.0.38" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4f853de9ca1819f54de80de5d03bfc1bb7c9fafcf092b480a654447141bc354d" +checksum = "305fa99b538ca7006b0c03cfed24ec6d82beda67aac857ef4714be24231d15e6" dependencies = [ "alloy-eip2124", "alloy-eip2930", @@ -174,47 +175,67 @@ dependencies = [ "c-kzg", "derive_more", "either", + "ethereum_ssz", + "ethereum_ssz_derive", "serde", + "serde_with", "sha2 0.10.9", + "thiserror 2.0.12", ] [[package]] name = "alloy-evm" -version = "0.10.0" +version = "0.21.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "394b09cf3a32773eedf11828987f9c72dfa74545040be0422e3f5f09a2a3fab9" +checksum = "a2b2845e4c4844e53dd08bf24d3af7b163ca7d1e3c68eb587e38c4e976659089" dependencies = [ "alloy-consensus", "alloy-eips", "alloy-hardforks", "alloy-primitives", + "alloy-rpc-types-eth", "alloy-sol-types", "auto_impl", "derive_more", "op-alloy-consensus", "op-revm", "revm", - "thiserror", + "thiserror 2.0.12", +] + +[[package]] +name = "alloy-genesis" +version = "1.0.38" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a272533715aefc900f89d51db00c96e6fd4f517ea081a12fea482a352c8c815c" +dependencies = [ + "alloy-eips", + "alloy-primitives", + "alloy-serde", + "alloy-trie", + "serde", + "serde_with", ] [[package]] name = "alloy-hardforks" -version = "0.2.7" +version = "0.3.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "977d2492ce210e34baf7b36afaacea272c96fbe6774c47e23f97d14033c0e94f" +checksum = "889eb3949b58368a09d4f16931c660275ef5fb08e5fbd4a96573b19c7085c41f" dependencies = [ "alloy-chains", "alloy-eip2124", "alloy-primitives", "auto_impl", "dyn-clone", + "serde", ] [[package]] name = "alloy-json-abi" -version = "1.2.1" +version = "1.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "15516116086325c157c18261d768a20677f0f699348000ed391d4ad0dcb82530" +checksum = "125a1c373261b252e53e04d6e92c37d881833afc1315fceab53fd46045695640" dependencies = [ "alloy-primitives", "alloy-sol-type-parser", @@ -224,24 +245,24 @@ dependencies = [ [[package]] name = "alloy-json-rpc" -version = "1.0.12" +version = "1.0.38" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f4997a9873c8639d079490f218e50e5fa07e70f957e9fc187c0a0535977f482f" +checksum = "d91676d242c0ced99c0dd6d0096d7337babe9457cc43407d26aa6367fcf90553" dependencies = [ "alloy-primitives", "alloy-sol-types", "http", "serde", "serde_json", - "thiserror", + "thiserror 2.0.12", "tracing", ] [[package]] name = "alloy-network" -version = "1.0.12" +version = "1.0.38" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a0306e8d148b7b94d988615d367443c1b9d6d2e9fecd2e1f187ac5153dce56f5" +checksum = "77f82150116b30ba92f588b87f08fa97a46a1bd5ffc0d0597efdf0843d36bfda" dependencies = [ "alloy-consensus", "alloy-consensus-any", @@ -260,14 +281,14 @@ dependencies = [ "futures-utils-wasm", "serde", "serde_json", - "thiserror", + "thiserror 2.0.12", ] [[package]] name = "alloy-network-primitives" -version = "1.0.12" +version = "1.0.38" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3eef189583f4c53d231dd1297b28a675ff842b551fb34715f562868a1937431a" +checksum = "223612259a080160ce839a4e5df0125ca403a1d5e7206cc911cea54af5d769aa" dependencies = [ "alloy-consensus", "alloy-eips", @@ -278,9 +299,9 @@ dependencies = [ [[package]] name = "alloy-op-evm" -version = "0.10.0" +version = "0.21.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9f32538cc243ec5d4603da9845cc2f5254c6a3a78e82475beb1a2a1de6c0d36c" +checksum = "57d69ffa57dbcabea651fbe2fd721e0deb8dc6f1a334d5853817cc7addd006fb" dependencies = [ "alloy-consensus", "alloy-eips", @@ -295,19 +316,22 @@ dependencies = [ [[package]] name = "alloy-op-hardforks" -version = "0.2.7" +version = "0.3.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "08b147547aff595aa3d4c2fc2c8146263e18d3372909def423619ed631ecbcfa" +checksum = "599c1d7dfbccb66603cb93fde00980d12848d32fe5e814f50562104a92df6487" dependencies = [ + "alloy-chains", "alloy-hardforks", + "alloy-primitives", "auto_impl", + "serde", ] [[package]] name = "alloy-primitives" -version = "1.2.1" +version = "1.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6177ed26655d4e84e00b65cb494d4e0b8830e7cae7ef5d63087d445a2600fb55" +checksum = "bc9485c56de23438127a731a6b4c87803d49faf1a7068dcd1d8768aca3a9edb9" dependencies = [ "alloy-rlp", "bytes", @@ -332,9 +356,9 @@ dependencies = [ [[package]] name = "alloy-provider" -version = "1.0.12" +version = "1.0.38" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ea624ddcdad357c33652b86aa7df9bd21afd2080973389d3facf1a221c573948" +checksum = "f7283b81b6f136100b152e699171bc7ed8184a58802accbc91a7df4ebb944445" dependencies = [ "alloy-chains", "alloy-consensus", @@ -359,14 +383,13 @@ dependencies = [ "either", "futures", "futures-utils-wasm", - "http", "lru 0.13.0", "parking_lot", "pin-project", "reqwest", "serde", "serde_json", - "thiserror", + "thiserror 2.0.12", "tokio", "tracing", "url", @@ -375,13 +398,14 @@ dependencies = [ [[package]] name = "alloy-pubsub" -version = "1.0.12" +version = "1.0.38" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1ea3227fa5f627d22b7781e88bc2fe79ba1792d5535b4161bc8fc99cdcd8bedd" +checksum = "eee7e3d343814ec0dfea69bd1820042a133a9d0b9ac5faf1e6eb133b43366315" dependencies = [ "alloy-json-rpc", "alloy-primitives", "alloy-transport", + "auto_impl", "bimap", "futures", "parking_lot", @@ -418,9 +442,9 @@ dependencies = [ [[package]] name = "alloy-rpc-client" -version = "1.0.12" +version = "1.0.38" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e43d00b4de38432304c4e4b01ae6a3601490fd9824c852329d158763ec18663c" +checksum = "1154b12d470bef59951c62676e106f4ce5de73b987d86b9faa935acebb138ded" dependencies = [ "alloy-json-rpc", "alloy-primitives", @@ -429,7 +453,6 @@ dependencies = [ "alloy-transport-http", "alloy-transport-ipc", "alloy-transport-ws", - "async-stream", "futures", "pin-project", "reqwest", @@ -439,16 +462,15 @@ dependencies = [ "tokio-stream", "tower", "tracing", - "tracing-futures", "url", "wasmtimer", ] [[package]] name = "alloy-rpc-types" -version = "1.0.12" +version = "1.0.38" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3bf22ddb69a436f28bbdda7daf34fe011ee9926fa13bfce89fa023aca9ce2b2f" +checksum = "47ab76bf97648a1c6ad8fb00f0d594618942b5a9e008afbfb5c8a8fca800d574" dependencies = [ "alloy-primitives", "alloy-rpc-types-debug", @@ -459,9 +481,9 @@ dependencies = [ [[package]] name = "alloy-rpc-types-any" -version = "1.0.12" +version = "1.0.38" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5958f2310d69f4806e6f6b90ceb4f2b781cc5a843517a7afe2e7cfec6de3cfb9" +checksum = "23cc57ee0c1ac9fb14854195fc249494da7416591dc4a4d981ddfd5dd93b9bce" dependencies = [ "alloy-consensus-any", "alloy-rpc-types-eth", @@ -470,33 +492,37 @@ dependencies = [ [[package]] name = "alloy-rpc-types-beacon" -version = "1.0.12" +version = "1.0.38" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e83868430cddb02bb952d858f125b824ddbc74dde0fb4cdc5c345c732d66936b" +checksum = "cfa4edd92c3124ec19b9d572dc7923d070fe5c2efb677519214affd6156a4463" dependencies = [ "alloy-eips", "alloy-primitives", "alloy-rpc-types-engine", + "derive_more", "serde", + "serde_json", "serde_with", - "thiserror", + "thiserror 2.0.12", ] [[package]] name = "alloy-rpc-types-debug" -version = "1.0.12" +version = "1.0.38" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c293df0c58d15330e65599f776e30945ea078c93b1594e5c4ba0efaad3f0a739" +checksum = "4a0ac29dd005c33e3f7e09087accc80843315303685c3f7a1b888002cd27785b" dependencies = [ "alloy-primitives", + "derive_more", "serde", + "serde_with", ] [[package]] name = "alloy-rpc-types-engine" -version = "1.0.12" +version = "1.0.38" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2e5b09d86d0c015cb8400c5d1d0483425670bef4fc1260336aea9ef6d4b9540c" +checksum = "1d9d173854879bcf26c7d71c1c3911972a3314df526f4349ffe488e676af577d" dependencies = [ "alloy-consensus", "alloy-eips", @@ -504,6 +530,8 @@ dependencies = [ "alloy-rlp", "alloy-serde", "derive_more", + "ethereum_ssz", + "ethereum_ssz_derive", "jsonwebtoken", "rand 0.8.5", "serde", @@ -512,9 +540,9 @@ dependencies = [ [[package]] name = "alloy-rpc-types-eth" -version = "1.0.12" +version = "1.0.38" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1826285e4ffc2372a8c061d5cc145858e67a0be3309b768c5b77ddb6b9e6cbc7" +checksum = "6d7d47bca1a2a1541e4404aa38b7e262bb4dffd9ac23b4f178729a4ddc5a5caa" dependencies = [ "alloy-consensus", "alloy-consensus-any", @@ -527,14 +555,15 @@ dependencies = [ "itertools 0.14.0", "serde", "serde_json", - "thiserror", + "serde_with", + "thiserror 2.0.12", ] [[package]] name = "alloy-serde" -version = "1.0.12" +version = "1.0.38" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "906ce0190afeded19cb2e963cb8507c975a7862216b9e74f39bf91ddee6ae74b" +checksum = "6a8468f1a7f9ee3bae73c24eead0239abea720dbf7779384b9c7e20d51bfb6b0" dependencies = [ "alloy-primitives", "serde", @@ -543,9 +572,9 @@ dependencies = [ [[package]] name = "alloy-signer" -version = "1.0.12" +version = "1.0.38" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c89baab06195c4be9c5d66f15c55e948013d1aff3ec1cfb0ed469e1423313fce" +checksum = "33387c90b0a5021f45a5a77c2ce6c49b8f6980e66a318181468fb24cea771670" dependencies = [ "alloy-primitives", "async-trait", @@ -553,14 +582,14 @@ dependencies = [ "either", "elliptic-curve", "k256", - "thiserror", + "thiserror 2.0.12", ] [[package]] name = "alloy-sol-macro" -version = "1.2.1" +version = "1.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a14f21d053aea4c6630687c2f4ad614bed4c81e14737a9b904798b24f30ea849" +checksum = "d20d867dcf42019d4779519a1ceb55eba8d7f3d0e4f0a89bcba82b8f9eb01e48" dependencies = [ "alloy-sol-macro-expander", "alloy-sol-macro-input", @@ -572,9 +601,9 @@ dependencies = [ [[package]] name = "alloy-sol-macro-expander" -version = "1.2.1" +version = "1.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "34d99282e7c9ef14eb62727981a985a01869e586d1dec729d3bb33679094c100" +checksum = "b74e91b0b553c115d14bd0ed41898309356dc85d0e3d4b9014c4e7715e48c8ad" dependencies = [ "alloy-sol-macro-input", "const-hex", @@ -590,9 +619,9 @@ dependencies = [ [[package]] name = "alloy-sol-macro-input" -version = "1.2.1" +version = "1.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eda029f955b78e493360ee1d7bd11e1ab9f2a220a5715449babc79d6d0a01105" +checksum = "84194d31220803f5f62d0a00f583fd3a062b36382e2bea446f1af96727754565" dependencies = [ "const-hex", "dunce", @@ -606,9 +635,9 @@ dependencies = [ [[package]] name = "alloy-sol-type-parser" -version = "1.2.1" +version = "1.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "10db1bd7baa35bc8d4a1b07efbf734e73e5ba09f2580fb8cee3483a36087ceb2" +checksum = "fe8c27b3cf6b2bb8361904732f955bc7c05e00be5f469cec7e2280b6167f3ff0" dependencies = [ "serde", "winnow", @@ -616,9 +645,9 @@ dependencies = [ [[package]] name = "alloy-sol-types" -version = "1.2.1" +version = "1.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "58377025a47d8b8426b3e4846a251f2c1991033b27f517aade368146f6ab1dfe" +checksum = "f5383d34ea00079e6dd89c652bcbdb764db160cef84e6250926961a0b2295d04" dependencies = [ "alloy-json-abi", "alloy-primitives", @@ -628,12 +657,13 @@ dependencies = [ [[package]] name = "alloy-transport" -version = "1.0.12" +version = "1.0.38" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6d1ae10b1bc77fde38161e242749e41e65e34000d05da0a3d3f631e03bfcb19e" +checksum = "702002659778d89a94cd4ff2044f6b505460df6c162e2f47d1857573845b0ace" dependencies = [ "alloy-json-rpc", "alloy-primitives", + "auto_impl", "base64", "derive_more", "futures", @@ -641,7 +671,7 @@ dependencies = [ "parking_lot", "serde", "serde_json", - "thiserror", + "thiserror 2.0.12", "tokio", "tower", "tracing", @@ -651,9 +681,9 @@ dependencies = [ [[package]] name = "alloy-transport-http" -version = "1.0.12" +version = "1.0.38" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b234272ee449e32c9f1afbbe4ee08ea7c4b52f14479518f95c844ab66163c545" +checksum = "0d6bdc0830e5e8f08a4c70a4c791d400a86679c694a3b4b986caf26fad680438" dependencies = [ "alloy-json-rpc", "alloy-rpc-types-engine", @@ -672,9 +702,9 @@ dependencies = [ [[package]] name = "alloy-transport-ipc" -version = "1.0.12" +version = "1.0.38" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "061672d736144eb5aae13ca67cfec8e5e69a65bef818cb1a2ab2345d55c50ab4" +checksum = "87ce41d99a32346f354725fe62eadd271cdbae45fe6b3cc40cb054e0bf763112" dependencies = [ "alloy-json-rpc", "alloy-pubsub", @@ -692,9 +722,9 @@ dependencies = [ [[package]] name = "alloy-transport-ws" -version = "1.0.12" +version = "1.0.38" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "40b01f10382c2aea797d710279b24687a1e9e09a09ecd145f84f636f2a8a3fcc" +checksum = "686219dcef201655763bd3d4eabe42388d9368bfbf6f1c8016d14e739ec53aac" dependencies = [ "alloy-pubsub", "alloy-transport", @@ -710,9 +740,9 @@ dependencies = [ [[package]] name = "alloy-trie" -version = "0.8.1" +version = "0.9.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "983d99aa81f586cef9dae38443245e585840fcf0fc58b09aee0b1f27aed1d500" +checksum = "e3412d52bb97c6c6cc27ccc28d4e6e8cf605469101193b50b0bd5813b1f990b5" dependencies = [ "alloy-primitives", "alloy-rlp", @@ -726,12 +756,12 @@ dependencies = [ [[package]] name = "alloy-tx-macros" -version = "1.0.12" +version = "1.0.38" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b75ef8609ea2b31c799b0a56c724dca4c73105c5ccc205d9dfeb1d038df6a1da" +checksum = "7bf39928a5e70c9755d6811a2928131b53ba785ad37c8bf85c90175b5d43b818" dependencies = [ "alloy-primitives", - "darling", + "darling 0.21.3", "proc-macro2", "quote", "syn 2.0.104", @@ -754,9 +784,9 @@ dependencies = [ [[package]] name = "anstream" -version = "0.6.19" +version = "0.6.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "301af1932e46185686725e0fad2f8f2aa7da69dd70bf6ecc44d6b703844a3933" +checksum = "3ae563653d1938f79b1ab1b5e668c87c76a9930414574a6583a7b7e11a8e6192" dependencies = [ "anstyle", "anstyle-parse", @@ -784,29 +814,29 @@ dependencies = [ [[package]] name = "anstyle-query" -version = "1.1.3" +version = "1.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6c8bdeb6047d8983be085bab0ba1472e6dc604e7041dbf6fcd5e71523014fae9" +checksum = "9e231f6134f61b71076a3eab506c379d4f36122f2af15a9ff04415ea4c3339e2" dependencies = [ - "windows-sys 0.59.0", + "windows-sys 0.60.2", ] [[package]] name = "anstyle-wincon" -version = "3.0.9" +version = "3.0.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "403f75924867bb1033c59fbf0797484329750cfbe3c4325cd33127941fabc882" +checksum = "3e0633414522a32ffaac8ac6cc8f748e090c5717661fddeea04219e2344f5f2a" dependencies = [ "anstyle", "once_cell_polyfill", - "windows-sys 0.59.0", + "windows-sys 0.60.2", ] [[package]] name = "anyhow" -version = "1.0.98" +version = "1.0.99" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e16d2d3311acee920a9eb8d33b8cbc1787ce4a264e85f964c2404b969bdcd487" +checksum = "b0674a1ddeecb70197781e945de4b3b8ffb61fa939a5597bcf48503737663100" [[package]] name = "ark-bls12-381" @@ -1115,9 +1145,9 @@ dependencies = [ [[package]] name = "async-channel" -version = "2.3.1" +version = "2.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "89b47800b0be77592da0afd425cc03468052844aff33b84e33cc696f64e77b6a" +checksum = "924ed96dd52d1b75e9c1a3e6275715fd320f5f9439fb5a4a11fa51f4221158d2" dependencies = [ "concurrent-queue", "event-listener-strategy", @@ -1149,9 +1179,9 @@ dependencies = [ [[package]] name = "async-trait" -version = "0.1.88" +version = "0.1.89" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e539d3fca749fcee5236ab05e93a52867dd549cc157c8cb7f99595f3cedffdb5" +checksum = "9035ad2d096bed7955a320ee7e2230574d28fd3c3a0f186cbea1ff3c7eed5dbb" dependencies = [ "proc-macro2", "quote", @@ -1257,6 +1287,12 @@ dependencies = [ "tracing", ] +[[package]] +name = "az" +version = "1.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7b7e4c2464d97fe331d41de9d5db0def0a96f4d823b8b32a2efd503578988973" + [[package]] name = "backtrace" version = "0.3.75" @@ -1307,16 +1343,14 @@ dependencies = [ [[package]] name = "bindgen" -version = "0.69.5" +version = "0.70.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "271383c67ccabffb7381723dea0672a673f292304fcb45c01cc648c7a8d58088" +checksum = "f49d8fed880d473ea71efb9bf597651e77201bdd4893efe54c9e5d65ae04ce6f" dependencies = [ "bitflags", "cexpr", "clang-sys", - "itertools 0.12.1", - "lazy_static", - "lazycell", + "itertools 0.13.0", "proc-macro2", "quote", "regex", @@ -1325,6 +1359,24 @@ dependencies = [ "syn 2.0.104", ] +[[package]] +name = "bindgen" +version = "0.72.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "993776b509cfb49c750f11b8f07a46fa23e0a1386ffc01fb1e7d343efc387895" +dependencies = [ + "bitflags", + "cexpr", + "clang-sys", + "itertools 0.13.0", + "proc-macro2", + "quote", + "regex", + "rustc-hash 2.1.1", + "shlex", + "syn 2.0.104", +] + [[package]] name = "bit-set" version = "0.8.0" @@ -1358,9 +1410,12 @@ dependencies = [ [[package]] name = "bitflags" -version = "2.9.1" +version = "2.9.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1b8e56985ec62d17e9c1001dc89c88ecd7dc08e47eba5ec7c29c7b5eeecde967" +checksum = "6a65b545ab31d687cff52899d4890855fec459eb6afe0da6417b8a18da87aa29" +dependencies = [ + "serde", +] [[package]] name = "bitvec" @@ -1370,6 +1425,7 @@ checksum = "1bc2832c24239b0141d5674bb9174f9d68a8b5b3f2753311927c172ca46f7e9c" dependencies = [ "funty", "radium", + "serde", "tap", "wyz", ] @@ -1419,9 +1475,9 @@ dependencies = [ [[package]] name = "brotli" -version = "8.0.1" +version = "8.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9991eea70ea4f293524138648e41ee89b0b2b12ddef3b255effa43c8056e0e0d" +checksum = "4bd8b9603c7aa97359dbd97ecf258968c95f3adddd6db2f7e7a5bef101c84560" dependencies = [ "alloc-no-stdlib", "alloc-stdlib", @@ -1449,9 +1505,9 @@ dependencies = [ [[package]] name = "bumpalo" -version = "3.18.1" +version = "3.19.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "793db76d6187cd04dff33004d8e6c9cc4e05cd330500379d2394209271b4aeee" +checksum = "46c5e41b57b8bba42a04676d81cb89e9ee8e859a1a66f80a5a72e1cb76b34d43" [[package]] name = "byte-slice-cast" @@ -1459,6 +1515,12 @@ version = "1.2.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7575182f7272186991736b70173b0ea045398f984bf5ebbb3804736ce1330c9d" +[[package]] +name = "bytecount" +version = "0.6.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "175812e0be2bccb6abe50bb8d566126198344f707e304f45c648fd8f2cc0365e" + [[package]] name = "byteorder" version = "1.5.0" @@ -1501,9 +1563,9 @@ dependencies = [ [[package]] name = "cc" -version = "1.2.27" +version = "1.2.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d487aa071b5f64da6f19a3e848e3578944b726ee5a4854b82172f02aa876bfdc" +checksum = "c736e259eea577f443d5c86c304f9f4ae0295c43f3ba05c21f1d66b5f06001af" dependencies = [ "jobserver", "libc", @@ -1521,9 +1583,15 @@ dependencies = [ [[package]] name = "cfg-if" -version = "1.0.1" +version = "1.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2fd1289c04a9ea8cb22300a459a72a385d7c73d3259e2ed7dcb2af674838cfa9" + +[[package]] +name = "cfg_aliases" +version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9555578bc9e57714c812a1f84e4fc5b4d21fcb063490c624de019f7464c91268" +checksum = "613afe47fcd5fac7ccf1db93babcb082c5994d996f20b8b159f2ad1658eb5724" [[package]] name = "chrono" @@ -1551,9 +1619,9 @@ dependencies = [ [[package]] name = "clap" -version = "4.5.40" +version = "4.5.45" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "40b6887a1d8685cebccf115538db5c0efe625ccac9696ad45c409d96566e910f" +checksum = "1fc0e74a703892159f5ae7d3aac52c8e6c392f5ae5f359c70b5881d60aaac318" dependencies = [ "clap_builder", "clap_derive", @@ -1561,9 +1629,9 @@ dependencies = [ [[package]] name = "clap_builder" -version = "4.5.40" +version = "4.5.44" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e0c66c08ce9f0c698cbce5c0279d0bb6ac936d8674174fe48f736533b964f59e" +checksum = "b3e7f4214277f3c7aa526a59dd3fbe306a370daee1f8b7b8c987069cd8e888a8" dependencies = [ "anstream", "anstyle", @@ -1573,9 +1641,9 @@ dependencies = [ [[package]] name = "clap_derive" -version = "4.5.40" +version = "4.5.45" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d2c7947ae4cc3d851207c1adb5b5e260ff0cca11446b1d6d1423788e442257ce" +checksum = "14cb31bb0a7d536caef2639baa7fad459e15c3144efefa6dbd1c84562c4739f6" dependencies = [ "heck", "proc-macro2", @@ -1606,9 +1674,9 @@ dependencies = [ [[package]] name = "const-hex" -version = "1.14.1" +version = "1.15.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "83e22e0ed40b96a48d3db274f72fd365bd78f67af39b6bbd47e8a15e1c6207ff" +checksum = "dccd746bf9b1038c0507b7cec21eb2b11222db96a2902c96e8c185d6d20fb9c4" dependencies = [ "cfg-if", "cpufeatures", @@ -1698,6 +1766,15 @@ version = "2.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "19d374276b40fb8bbdee95aef7c7fa6b5316ec764510eb64b8dd0e2ed0d7e7f5" +[[package]] +name = "crossbeam-channel" +version = "0.5.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "82b8f8f868b36967f9606790d1903570de9ceaf870a7bf9fbbd3016d636a2cb2" +dependencies = [ + "crossbeam-utils", +] + [[package]] name = "crossbeam-epoch" version = "0.9.18" @@ -1715,9 +1792,9 @@ checksum = "d0a5c400df2834b80a4c3327b3aad3a4c4cd4de0629063962b03235697506a28" [[package]] name = "crunchy" -version = "0.2.3" +version = "0.2.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "43da5946c66ffcc7745f48db692ffbb10a83bfe0afd96235c5c2a4fb23994929" +checksum = "460fbee9c2c2f33933d720630a6a0bac33ba7053db5344fac858d4b8952d77d5" [[package]] name = "crypto-bigint" @@ -1747,8 +1824,18 @@ version = "0.20.11" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fc7f46116c46ff9ab3eb1597a45688b6715c6e628b5c133e288e709a29bcb4ee" dependencies = [ - "darling_core", - "darling_macro", + "darling_core 0.20.11", + "darling_macro 0.20.11", +] + +[[package]] +name = "darling" +version = "0.21.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9cdf337090841a411e2a7f3deb9187445851f91b309c0c0a29e05f74a00a48c0" +dependencies = [ + "darling_core 0.21.3", + "darling_macro 0.21.3", ] [[package]] @@ -1765,13 +1852,39 @@ dependencies = [ "syn 2.0.104", ] +[[package]] +name = "darling_core" +version = "0.21.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1247195ecd7e3c85f83c8d2a366e4210d588e802133e1e355180a9870b517ea4" +dependencies = [ + "fnv", + "ident_case", + "proc-macro2", + "quote", + "serde", + "strsim", + "syn 2.0.104", +] + [[package]] name = "darling_macro" version = "0.20.11" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fc34b93ccb385b40dc71c6fceac4b2ad23662c7eeb248cf10d529b7e055b6ead" dependencies = [ - "darling_core", + "darling_core 0.20.11", + "quote", + "syn 2.0.104", +] + +[[package]] +name = "darling_macro" +version = "0.21.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d38308df82d1080de0afee5d069fa14b0326a88c14f15c5ccda35b4a6c414c81" +dependencies = [ + "darling_core 0.21.3", "quote", "syn 2.0.104", ] @@ -1829,9 +1942,9 @@ dependencies = [ [[package]] name = "derive-where" -version = "1.5.0" +version = "1.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "510c292c8cf384b1a340b816a9a6cf2599eb8f566a44949024af88418000c50b" +checksum = "ef941ded77d15ca19b40374869ac6000af1c9f2a4c0f3d4c70926287e6364a8f" dependencies = [ "proc-macro2", "quote", @@ -1906,9 +2019,9 @@ checksum = "92773504d58c093f6de2459af4af33faa518c13451eb8f2b5698ed3d36e7c813" [[package]] name = "dyn-clone" -version = "1.0.19" +version = "1.0.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1c7a8fb8a9fbf66c1f703fe16184d10ca0ee9d23be5b4436400408ba54a95005" +checksum = "d0881ea181b1df73ff77ffaaf9c7544ecc11e82fba9b5f27b262a3c73a332555" [[package]] name = "ecdsa" @@ -2011,11 +2124,51 @@ dependencies = [ "windows-sys 0.60.2", ] +[[package]] +name = "ethereum_serde_utils" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3dc1355dbb41fbbd34ec28d4fb2a57d9a70c67ac3c19f6a5ca4d4a176b9e997a" +dependencies = [ + "alloy-primitives", + "hex", + "serde", + "serde_derive", + "serde_json", +] + +[[package]] +name = "ethereum_ssz" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9ca8ba45b63c389c6e115b095ca16381534fdcc03cf58176a3f8554db2dbe19b" +dependencies = [ + "alloy-primitives", + "ethereum_serde_utils", + "itertools 0.13.0", + "serde", + "serde_derive", + "smallvec", + "typenum", +] + +[[package]] +name = "ethereum_ssz_derive" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0dd55d08012b4e0dfcc92b8d6081234df65f2986ad34cc76eeed69c5e2ce7506" +dependencies = [ + "darling 0.20.11", + "proc-macro2", + "quote", + "syn 2.0.104", +] + [[package]] name = "event-listener" -version = "5.4.0" +version = "5.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3492acde4c3fc54c845eaab3eed8bd00c7a7d881f78bfc801e43a93dec1331ae" +checksum = "e13b66accf52311f30a0db42147dadea9850cb48cd070028831ae5f5d4b856ab" dependencies = [ "concurrent-queue", "parking", @@ -2273,9 +2426,11 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "26145e563e54f2cadc477553f1ec5ee650b00862f0a58bcd12cbdc5f0ea2d2f4" dependencies = [ "cfg-if", + "js-sys", "libc", "r-efi", "wasi 0.14.2+wasi-0.2.4", + "wasm-bindgen", ] [[package]] @@ -2286,9 +2441,19 @@ checksum = "07e28edb80900c19c28f1072f2e8aeca7fa06b23cd4169cefe1af5aa3260783f" [[package]] name = "glob" -version = "0.3.2" +version = "0.3.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a8d1add55171497b4705a648c6b583acafb01d58050a51727785f0b2c8e0a2b2" +checksum = "0cc23270f6e1808e30a928bdc84dea0b9b4136a8bc82338574f23baf47bbd280" + +[[package]] +name = "gmp-mpfr-sys" +version = "1.6.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c66d61197a68f6323b9afa616cf83d55d69191e1bf364d4eb7d35ae18defe776" +dependencies = [ + "libc", + "windows-sys 0.59.0", +] [[package]] name = "group" @@ -2303,9 +2468,9 @@ dependencies = [ [[package]] name = "h2" -version = "0.4.10" +version = "0.4.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a9421a676d1b147b16b82c9225157dc629087ef8ec4d5e2960f9437a90dac0a5" +checksum = "f3c0b69cfcb4e1b9f1bf2f53f95f766e4661169728ec61cd3fe5a0166f2d1386" dependencies = [ "atomic-waker", "bytes", @@ -2431,13 +2596,14 @@ checksum = "df3b46402a9d5adb4c86a0cf463f42e19994e3ee891101b1841f30a545cb49a9" [[package]] name = "hyper" -version = "1.6.0" +version = "1.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cc2b571658e38e0c01b1fdca3bbbe93c00d3d71693ff2770043f8c29bc7d6f80" +checksum = "eb3aa54a13a0dfe7fbe3a59e0c76093041720fdc77b110cc0fc260fafb4dc51e" dependencies = [ + "atomic-waker", "bytes", "futures-channel", - "futures-util", + "futures-core", "h2", "http", "http-body", @@ -2445,6 +2611,7 @@ dependencies = [ "httpdate", "itoa", "pin-project-lite", + "pin-utils", "smallvec", "tokio", "want", @@ -2464,6 +2631,7 @@ dependencies = [ "tokio", "tokio-rustls", "tower-service", + "webpki-roots 1.0.1", ] [[package]] @@ -2484,9 +2652,9 @@ dependencies = [ [[package]] name = "hyper-util" -version = "0.1.14" +version = "0.1.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dc2fdfdbff08affe55bb779f33b053aa1fe5dd5b54c257343c17edfa55711bdb" +checksum = "8d9b05277c7e8da2c93a568989bb6207bef0112e8d17df7a6eda4a3cf143bc5e" dependencies = [ "base64", "bytes", @@ -2500,7 +2668,7 @@ dependencies = [ "libc", "percent-encoding", "pin-project-lite", - "socket2", + "socket2 0.6.0", "system-configuration", "tokio", "tower-service", @@ -2520,7 +2688,7 @@ dependencies = [ "js-sys", "log", "wasm-bindgen", - "windows-core", + "windows-core 0.61.2", ] [[package]] @@ -2702,6 +2870,17 @@ dependencies = [ "windows-sys 0.52.0", ] +[[package]] +name = "io-uring" +version = "0.7.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d93587f37623a1a17d94ef2bc9ada592f5465fe7732084ab7beefabe5c77c0c4" +dependencies = [ + "bitflags", + "cfg-if", + "libc", +] + [[package]] name = "ipnet" version = "2.11.0" @@ -2836,21 +3015,28 @@ dependencies = [ [[package]] name = "kona-cli" -version = "0.2.0" -source = "git+https://github.com/anton-rs/kona?rev=kona-client%2Fv1.0.2#62a4ff9c0e6ac97b0993aba5b8e181be295b38b4" +version = "0.3.2" +source = "git+https://github.com/op-rs/kona?rev=kona-node%2Fv1.1.3#aa7e89596afa96f08eb1b2e14db269fabeb673ea" dependencies = [ - "anyhow", + "alloy-chains", + "alloy-primitives", "clap", + "kona-genesis", + "kona-registry", "libc", "metrics-exporter-prometheus", + "metrics-process", + "serde", + "thiserror 2.0.12", "tracing", - "tracing-subscriber 0.3.19", + "tracing-appender", + "tracing-subscriber 0.3.20", ] [[package]] name = "kona-client" version = "1.0.2" -source = "git+https://github.com/anton-rs/kona?rev=kona-client%2Fv1.0.2#62a4ff9c0e6ac97b0993aba5b8e181be295b38b4" +source = "git+https://github.com/op-rs/kona?rev=kona-node%2Fv1.1.3#aa7e89596afa96f08eb1b2e14db269fabeb673ea" dependencies = [ "alloy-consensus", "alloy-eips", @@ -2874,7 +3060,7 @@ dependencies = [ "kona-registry", "kona-std-fpvm", "kona-std-fpvm-proc", - "lru 0.14.0", + "lru 0.16.0", "op-alloy-consensus", "op-alloy-rpc-types-engine", "op-revm", @@ -2882,14 +3068,14 @@ dependencies = [ "serde", "serde_json", "spin 0.10.0", - "thiserror", + "thiserror 2.0.12", "tracing", ] [[package]] name = "kona-derive" -version = "0.3.0" -source = "git+https://github.com/anton-rs/kona?rev=kona-client%2Fv1.0.2#62a4ff9c0e6ac97b0993aba5b8e181be295b38b4" +version = "0.4.5" +source = "git+https://github.com/op-rs/kona?rev=kona-node%2Fv1.1.3#aa7e89596afa96f08eb1b2e14db269fabeb673ea" dependencies = [ "alloy-consensus", "alloy-eips", @@ -2899,17 +3085,18 @@ dependencies = [ "async-trait", "kona-genesis", "kona-hardforks", + "kona-macros", "kona-protocol", "op-alloy-consensus", "op-alloy-rpc-types-engine", - "thiserror", + "thiserror 2.0.12", "tracing", ] [[package]] name = "kona-driver" -version = "0.3.0" -source = "git+https://github.com/anton-rs/kona?rev=kona-client%2Fv1.0.2#62a4ff9c0e6ac97b0993aba5b8e181be295b38b4" +version = "0.4.0" +source = "git+https://github.com/op-rs/kona?rev=kona-node%2Fv1.1.3#aa7e89596afa96f08eb1b2e14db269fabeb673ea" dependencies = [ "alloy-consensus", "alloy-evm", @@ -2923,14 +3110,14 @@ dependencies = [ "op-alloy-consensus", "op-alloy-rpc-types-engine", "spin 0.10.0", - "thiserror", + "thiserror 2.0.12", "tracing", ] [[package]] name = "kona-executor" -version = "0.3.0" -source = "git+https://github.com/anton-rs/kona?rev=kona-client%2Fv1.0.2#62a4ff9c0e6ac97b0993aba5b8e181be295b38b4" +version = "0.4.0" +source = "git+https://github.com/op-rs/kona?rev=kona-node%2Fv1.1.3#aa7e89596afa96f08eb1b2e14db269fabeb673ea" dependencies = [ "alloy-consensus", "alloy-eips", @@ -2947,33 +3134,34 @@ dependencies = [ "op-alloy-rpc-types-engine", "op-revm", "revm", - "thiserror", + "thiserror 2.0.12", "tracing", ] [[package]] name = "kona-genesis" -version = "0.3.0" -source = "git+https://github.com/anton-rs/kona?rev=kona-client%2Fv1.0.2#62a4ff9c0e6ac97b0993aba5b8e181be295b38b4" +version = "0.4.5" +source = "git+https://github.com/op-rs/kona?rev=kona-node%2Fv1.1.3#aa7e89596afa96f08eb1b2e14db269fabeb673ea" dependencies = [ + "alloy-chains", "alloy-consensus", "alloy-eips", + "alloy-genesis", "alloy-hardforks", "alloy-op-hardforks", "alloy-primitives", "alloy-sol-types", "derive_more", - "kona-serde", "op-revm", "serde", "serde_repr", - "thiserror", + "thiserror 2.0.12", ] [[package]] name = "kona-hardforks" -version = "0.3.0" -source = "git+https://github.com/anton-rs/kona?rev=kona-client%2Fv1.0.2#62a4ff9c0e6ac97b0993aba5b8e181be295b38b4" +version = "0.4.5" +source = "git+https://github.com/op-rs/kona?rev=kona-node%2Fv1.1.3#aa7e89596afa96f08eb1b2e14db269fabeb673ea" dependencies = [ "alloy-eips", "alloy-primitives", @@ -2984,7 +3172,7 @@ dependencies = [ [[package]] name = "kona-host" version = "1.0.2" -source = "git+https://github.com/anton-rs/kona?rev=kona-client%2Fv1.0.2#62a4ff9c0e6ac97b0993aba5b8e181be295b38b4" +source = "git+https://github.com/op-rs/kona?rev=kona-node%2Fv1.1.3#aa7e89596afa96f08eb1b2e14db269fabeb673ea" dependencies = [ "alloy-consensus", "alloy-eips", @@ -3023,21 +3211,22 @@ dependencies = [ "rocksdb", "serde", "serde_json", - "thiserror", + "thiserror 2.0.12", "tokio", "tracing", - "tracing-subscriber 0.3.19", + "tracing-subscriber 0.3.20", ] [[package]] name = "kona-interop" -version = "0.3.0" -source = "git+https://github.com/anton-rs/kona?rev=kona-client%2Fv1.0.2#62a4ff9c0e6ac97b0993aba5b8e181be295b38b4" +version = "0.4.5" +source = "git+https://github.com/op-rs/kona?rev=kona-node%2Fv1.1.3#aa7e89596afa96f08eb1b2e14db269fabeb673ea" dependencies = [ "alloy-consensus", "alloy-eips", "alloy-primitives", "alloy-rlp", + "alloy-serde", "alloy-sol-types", "async-trait", "derive_more", @@ -3046,38 +3235,44 @@ dependencies = [ "kona-registry", "op-alloy-consensus", "serde", - "thiserror", + "thiserror 2.0.12", "tracing", ] +[[package]] +name = "kona-macros" +version = "0.1.2" +source = "git+https://github.com/op-rs/kona?rev=kona-node%2Fv1.1.3#aa7e89596afa96f08eb1b2e14db269fabeb673ea" + [[package]] name = "kona-mpt" -version = "0.2.0" -source = "git+https://github.com/anton-rs/kona?rev=kona-client%2Fv1.0.2#62a4ff9c0e6ac97b0993aba5b8e181be295b38b4" +version = "0.3.0" +source = "git+https://github.com/op-rs/kona?rev=kona-node%2Fv1.1.3#aa7e89596afa96f08eb1b2e14db269fabeb673ea" dependencies = [ "alloy-primitives", "alloy-rlp", "alloy-trie", "op-alloy-rpc-types-engine", - "thiserror", + "thiserror 2.0.12", ] [[package]] name = "kona-preimage" version = "0.3.0" -source = "git+https://github.com/anton-rs/kona?rev=kona-client%2Fv1.0.2#62a4ff9c0e6ac97b0993aba5b8e181be295b38b4" +source = "git+https://github.com/op-rs/kona?rev=kona-node%2Fv1.1.3#aa7e89596afa96f08eb1b2e14db269fabeb673ea" dependencies = [ "alloy-primitives", "async-channel", "async-trait", - "thiserror", + "serde", + "thiserror 2.0.12", "tracing", ] [[package]] name = "kona-proof" version = "0.3.0" -source = "git+https://github.com/anton-rs/kona?rev=kona-client%2Fv1.0.2#62a4ff9c0e6ac97b0993aba5b8e181be295b38b4" +source = "git+https://github.com/op-rs/kona?rev=kona-node%2Fv1.1.3#aa7e89596afa96f08eb1b2e14db269fabeb673ea" dependencies = [ "alloy-consensus", "alloy-eips", @@ -3098,14 +3293,14 @@ dependencies = [ "kona-protocol", "kona-registry", "lazy_static", - "lru 0.14.0", + "lru 0.16.0", "op-alloy-consensus", "op-alloy-rpc-types-engine", "op-revm", "serde", "serde_json", "spin 0.10.0", - "thiserror", + "thiserror 2.0.12", "tokio", "tracing", ] @@ -3113,7 +3308,7 @@ dependencies = [ [[package]] name = "kona-proof-interop" version = "0.2.0" -source = "git+https://github.com/anton-rs/kona?rev=kona-client%2Fv1.0.2#62a4ff9c0e6ac97b0993aba5b8e181be295b38b4" +source = "git+https://github.com/op-rs/kona?rev=kona-node%2Fv1.1.3#aa7e89596afa96f08eb1b2e14db269fabeb673ea" dependencies = [ "alloy-consensus", "alloy-eips", @@ -3138,18 +3333,19 @@ dependencies = [ "serde", "serde_json", "spin 0.10.0", - "thiserror", + "thiserror 2.0.12", "tracing", ] [[package]] name = "kona-protocol" -version = "0.3.0" -source = "git+https://github.com/anton-rs/kona?rev=kona-client%2Fv1.0.2#62a4ff9c0e6ac97b0993aba5b8e181be295b38b4" +version = "0.4.5" +source = "git+https://github.com/op-rs/kona?rev=kona-node%2Fv1.1.3#aa7e89596afa96f08eb1b2e14db269fabeb673ea" dependencies = [ "alloc-no-stdlib", "alloy-consensus", "alloy-eips", + "alloy-hardforks", "alloy-primitives", "alloy-rlp", "alloy-rpc-types-engine", @@ -3163,18 +3359,18 @@ dependencies = [ "op-alloy-consensus", "op-alloy-rpc-types", "op-alloy-rpc-types-engine", - "rand 0.9.1", "serde", - "thiserror", + "spin 0.10.0", + "thiserror 2.0.12", "tracing", - "tracing-subscriber 0.3.19", + "tracing-subscriber 0.3.20", "unsigned-varint", ] [[package]] name = "kona-providers-alloy" -version = "0.2.0" -source = "git+https://github.com/anton-rs/kona?rev=kona-client%2Fv1.0.2#62a4ff9c0e6ac97b0993aba5b8e181be295b38b4" +version = "0.3.3" +source = "git+https://github.com/op-rs/kona?rev=kona-node%2Fv1.1.3#aa7e89596afa96f08eb1b2e14db269fabeb673ea" dependencies = [ "alloy-consensus", "alloy-eips", @@ -3187,60 +3383,56 @@ dependencies = [ "alloy-transport", "alloy-transport-http", "async-trait", + "c-kzg", "http-body-util", "kona-derive", "kona-genesis", + "kona-macros", "kona-protocol", - "lru 0.14.0", + "lru 0.16.0", "op-alloy-consensus", "op-alloy-network", "reqwest", "serde", - "thiserror", + "thiserror 2.0.12", "tower", ] [[package]] name = "kona-registry" -version = "0.3.0" -source = "git+https://github.com/anton-rs/kona?rev=kona-client%2Fv1.0.2#62a4ff9c0e6ac97b0993aba5b8e181be295b38b4" +version = "0.4.5" +source = "git+https://github.com/op-rs/kona?rev=kona-node%2Fv1.1.3#aa7e89596afa96f08eb1b2e14db269fabeb673ea" dependencies = [ "alloy-chains", + "alloy-eips", + "alloy-genesis", + "alloy-hardforks", "alloy-op-hardforks", "alloy-primitives", "kona-genesis", "lazy_static", "serde", "serde_json", + "tabled", "toml", ] -[[package]] -name = "kona-serde" -version = "0.2.0" -source = "git+https://github.com/anton-rs/kona?rev=kona-client%2Fv1.0.2#62a4ff9c0e6ac97b0993aba5b8e181be295b38b4" -dependencies = [ - "alloy-primitives", - "serde", - "serde_json", -] - [[package]] name = "kona-std-fpvm" version = "0.2.0" -source = "git+https://github.com/anton-rs/kona?rev=kona-client%2Fv1.0.2#62a4ff9c0e6ac97b0993aba5b8e181be295b38b4" +source = "git+https://github.com/op-rs/kona?rev=kona-node%2Fv1.1.3#aa7e89596afa96f08eb1b2e14db269fabeb673ea" dependencies = [ "async-trait", "buddy_system_allocator", "cfg-if", "kona-preimage", - "thiserror", + "thiserror 2.0.12", ] [[package]] name = "kona-std-fpvm-proc" version = "0.2.0" -source = "git+https://github.com/anton-rs/kona?rev=kona-client%2Fv1.0.2#62a4ff9c0e6ac97b0993aba5b8e181be295b38b4" +source = "git+https://github.com/op-rs/kona?rev=kona-node%2Fv1.1.3#aa7e89596afa96f08eb1b2e14db269fabeb673ea" dependencies = [ "cfg-if", "kona-std-fpvm", @@ -3272,17 +3464,11 @@ dependencies = [ "spin 0.9.8", ] -[[package]] -name = "lazycell" -version = "1.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "830d08ce1d1d941e6b30645f1a0eb5643013d835ce3779a5fc208261dbe10f55" - [[package]] name = "libc" -version = "0.2.174" +version = "0.2.175" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1171693293099992e19cddea4e8b849964e9846f4acee11b3948bcc337be8776" +checksum = "6a82ae493e598baaea5209805c49bbf2ea7de956d50d7da0da1164f9c6d28543" [[package]] name = "libloading" @@ -3300,13 +3486,24 @@ version = "0.2.15" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f9fbbcab51052fe104eb5e5d351cf728d30a5be1fe14d9be8a3b097481fb97de" +[[package]] +name = "libproc" +version = "0.14.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e78a09b56be5adbcad5aa1197371688dc6bb249a26da3bca2011ee2fb987ebfb" +dependencies = [ + "bindgen 0.70.1", + "errno", + "libc", +] + [[package]] name = "librocksdb-sys" -version = "0.17.1+9.9.3" +version = "0.17.3+10.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2b7869a512ae9982f4d46ba482c2a304f1efd80c6412a3d4bf57bb79a619679f" +checksum = "cef2a00ee60fe526157c9023edab23943fae1ce2ab6f4abb2a807c1746835de9" dependencies = [ - "bindgen", + "bindgen 0.72.1", "bzip2-sys", "cc", "libc", @@ -3370,6 +3567,12 @@ dependencies = [ "vcpkg", ] +[[package]] +name = "linux-raw-sys" +version = "0.4.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d26c52dbd32dccf2d10cac7725f8eae5296885fb5703b261f7d0a0739ec807ab" + [[package]] name = "linux-raw-sys" version = "0.9.4" @@ -3409,15 +3612,30 @@ dependencies = [ [[package]] name = "lru" -version = "0.14.0" +version = "0.16.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9f8cc7106155f10bdf99a6f379688f543ad6596a415375b36a59a054ceda1198" +checksum = "86ea4e65087ff52f3862caff188d489f1fab49a0cb09e01b2e3f1a617b10aaed" dependencies = [ "hashbrown 0.15.4", ] [[package]] -name = "macro-string" +name = "lru-slab" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "112b39cec0b298b6c1999fee3e31427f74f676e4cb9879ed1a121b43661a4154" + +[[package]] +name = "mach2" +version = "0.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d640282b302c0bb0a2a8e0233ead9035e3bed871f0b7e81fe4a1ec829765db44" +dependencies = [ + "libc", +] + +[[package]] +name = "macro-string" version = "0.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1b27834086c65ec3f9387b096d66e99f221cf081c2b738042aa252bcd41204e3" @@ -3429,11 +3647,11 @@ dependencies = [ [[package]] name = "matchers" -version = "0.1.0" +version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8263075bb86c5a1b1427b5ae862e8889656f126e9f77c484496e8b47cf5c5558" +checksum = "d1525a2a28c7f4fa0fc98bb91ae755d1e2d1505079e05539e35bc876b5d65ae9" dependencies = [ - "regex-automata 0.1.10", + "regex-automata", ] [[package]] @@ -3473,11 +3691,27 @@ dependencies = [ "metrics", "metrics-util", "quanta", - "thiserror", + "thiserror 2.0.12", "tokio", "tracing", ] +[[package]] +name = "metrics-process" +version = "2.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4a82c8add4382f29a122fa64fff1891453ed0f6b2867d971e7d60cb8dfa322ff" +dependencies = [ + "libc", + "libproc", + "mach2", + "metrics", + "once_cell", + "procfs", + "rlimit", + "windows", +] + [[package]] name = "metrics-util" version = "0.20.0" @@ -3555,12 +3789,11 @@ dependencies = [ [[package]] name = "nu-ansi-term" -version = "0.46.0" +version = "0.50.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "77a8165726e8236064dbb45459242600304b42a5ea24ee2948e18e023bf7ba84" +checksum = "d4a28e057d01f97e61255210fcff094d74ed0466038633e95017f5beb68e4399" dependencies = [ - "overload", - "winapi", + "windows-sys 0.52.0", ] [[package]] @@ -3666,18 +3899,19 @@ dependencies = [ [[package]] name = "num_enum" -version = "0.7.3" +version = "0.7.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4e613fc340b2220f734a8595782c551f1250e969d87d3be1ae0579e8d4065179" +checksum = "a973b4e44ce6cad84ce69d797acf9a044532e4184c4f267913d1b546a0727b7a" dependencies = [ "num_enum_derive", + "rustversion", ] [[package]] name = "num_enum_derive" -version = "0.7.3" +version = "0.7.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "af1844ef2428cc3e1cb900be36181049ef3d3193c63e43026cfe202983b27a56" +checksum = "77e878c846a8abae00dd069496dbe8751b16ac1c3d6bd2a7283a938e8228f90d" dependencies = [ "proc-macro-crate", "proc-macro2", @@ -3687,13 +3921,14 @@ dependencies = [ [[package]] name = "nybbles" -version = "0.3.4" +version = "0.4.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8983bb634df7248924ee0c4c3a749609b5abcb082c28fffe3254b3eb3602b307" +checksum = "63cb50036b1ad148038105af40aaa70ff24d8a14fbc44ae5c914e1348533d12e" dependencies = [ "alloy-rlp", - "const-hex", + "cfg-if", "proptest", + "ruint", "serde", "smallvec", ] @@ -3721,25 +3956,27 @@ checksum = "a4895175b425cb1f87721b59f0f286c2092bd4af812243672510e1ac53e2e0ad" [[package]] name = "op-alloy-consensus" -version = "0.17.2" +version = "0.20.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b2423a125ef2daa0d15dacc361805a0b6f76d6acfc6e24a1ff6473582087fe75" +checksum = "3a501241474c3118833d6195312ae7eb7cc90bbb0d5f524cbb0b06619e49ff67" dependencies = [ "alloy-consensus", "alloy-eips", + "alloy-network", "alloy-primitives", "alloy-rlp", + "alloy-rpc-types-eth", "alloy-serde", "derive_more", "serde", - "thiserror", + "thiserror 2.0.12", ] [[package]] name = "op-alloy-network" -version = "0.17.2" +version = "0.20.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8bac5140ed9a01112a1c63866da3c38c74eb387b95917d0f304a4bd4ee825986" +checksum = "f80108e3b36901200a4c5df1db1ee9ef6ce685b59ea79d7be1713c845e3765da" dependencies = [ "alloy-consensus", "alloy-network", @@ -3753,9 +3990,9 @@ dependencies = [ [[package]] name = "op-alloy-rpc-types" -version = "0.17.2" +version = "0.20.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f82a315004b6720fbf756afdcfdc97ea7ddbcdccfec86ea7df7562bb0da29a3f" +checksum = "753d6f6b03beca1ba9cbd344c05fee075a2ce715ee9d61981c10b9c764a824a2" dependencies = [ "alloy-consensus", "alloy-eips", @@ -3767,14 +4004,14 @@ dependencies = [ "op-alloy-consensus", "serde", "serde_json", - "thiserror", + "thiserror 2.0.12", ] [[package]] name = "op-alloy-rpc-types-engine" -version = "0.17.2" +version = "0.20.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "47aea08d8ad3f533df0c5082d3e93428a4c57898b7ade1be928fa03918f22e71" +checksum = "14e50c94013a1d036a529df259151991dbbd6cf8dc215e3b68b784f95eec60e6" dependencies = [ "alloy-consensus", "alloy-eips", @@ -3783,19 +4020,21 @@ dependencies = [ "alloy-rpc-types-engine", "alloy-serde", "derive_more", + "ethereum_ssz", + "ethereum_ssz_derive", "op-alloy-consensus", "serde", - "thiserror", + "snap", + "thiserror 2.0.12", ] [[package]] name = "op-revm" -version = "5.0.1" +version = "10.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c0e8a3830a2be82166fbe9ead34361149ff4320743ed7ee5502ab779de221361" +checksum = "f9ba4f4693811e73449193c8bd656d3978f265871916882e6a51a487e4f96217" dependencies = [ "auto_impl", - "once_cell", "revm", "serde", ] @@ -3853,7 +4092,7 @@ dependencies = [ [[package]] name = "optimism-derivation" version = "0.1.1" -source = "git+https://github.com/datachainlab/optimism-elc?rev=v0.1.3#bc1aec328ca7075379e9abce67d7953652b31def" +source = "git+https://github.com/datachainlab/optimism-elc?rev=v0.1.5#91413fc8bb29b462c0dbf75e32b2ef18f5df68cc" dependencies = [ "alloy-consensus", "alloy-eips", @@ -3868,13 +4107,14 @@ dependencies = [ "kona-genesis", "kona-preimage", "kona-proof", + "kona-registry", "kzg-rs", "prost", "prost-derive", "serde", "serde_json", "sha2 0.10.9", - "thiserror", + "thiserror 2.0.12", ] [[package]] @@ -3884,6 +4124,7 @@ dependencies = [ "alloy-primitives", "anyhow", "axum", + "base64", "clap", "hashbrown 0.15.4", "kona-client", @@ -3899,15 +4140,9 @@ dependencies = [ "serial_test", "tokio", "tracing", - "tracing-subscriber 0.3.19", + "tracing-subscriber 0.3.20", ] -[[package]] -name = "overload" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b15813163c1d831bf4a13c3610c05c0d03b39feb07f7e09fa234dac9b15aaf39" - [[package]] name = "p256" version = "0.13.2" @@ -4041,6 +4276,17 @@ dependencies = [ "group", ] +[[package]] +name = "papergrid" +version = "0.17.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6978128c8b51d8f4080631ceb2302ab51e32cc6e8615f735ee2f83fd269ae3f1" +dependencies = [ + "bytecount", + "fnv", + "unicode-width", +] + [[package]] name = "parity-scale-codec" version = "3.7.5" @@ -4127,7 +4373,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1db05f56d34358a8b1066f67cbb203ee3e7ed2ba674a6263a1d5ec6db2204323" dependencies = [ "memchr", - "thiserror", + "thiserror 2.0.12", "ucd-trie", ] @@ -4149,6 +4395,7 @@ checksum = "1fd6780a80ae0c52cc120a26a1a42c1ae51b247a253e4e06113d23d2c2edd078" dependencies = [ "phf_macros", "phf_shared", + "serde", ] [[package]] @@ -4314,13 +4561,35 @@ dependencies = [ [[package]] name = "proc-macro2" -version = "1.0.95" +version = "1.0.101" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "02b3e5e68a3a1a02aad3ec490a98007cbc13c37cbe84a3cd7b8e406d76e7f778" +checksum = "89ae43fd86e4158d6db51ad8e2b80f313af9cc74f5c0e03ccb87de09998732de" dependencies = [ "unicode-ident", ] +[[package]] +name = "procfs" +version = "0.17.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cc5b72d8145275d844d4b5f6d4e1eef00c8cd889edb6035c21675d1bb1f45c9f" +dependencies = [ + "bitflags", + "hex", + "procfs-core", + "rustix 0.38.44", +] + +[[package]] +name = "procfs-core" +version = "0.17.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "239df02d8349b06fc07398a3a1697b06418223b1c7725085e801e7c0fc6a12ec" +dependencies = [ + "bitflags", + "hex", +] + [[package]] name = "proptest" version = "1.7.0" @@ -4335,7 +4604,7 @@ dependencies = [ "rand 0.9.1", "rand_chacha 0.9.0", "rand_xorshift", - "regex-syntax 0.8.5", + "regex-syntax", "rusty-fork", "tempfile", "unarray", @@ -4385,6 +4654,61 @@ version = "1.2.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a1d01941d82fa2ab50be1e79e6714289dd7cde78eba4c074bc5a4374f650dfe0" +[[package]] +name = "quinn" +version = "0.11.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "626214629cda6781b6dc1d316ba307189c85ba657213ce642d9c77670f8202c8" +dependencies = [ + "bytes", + "cfg_aliases", + "pin-project-lite", + "quinn-proto", + "quinn-udp", + "rustc-hash 2.1.1", + "rustls", + "socket2 0.5.10", + "thiserror 2.0.12", + "tokio", + "tracing", + "web-time", +] + +[[package]] +name = "quinn-proto" +version = "0.11.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "49df843a9161c85bb8aae55f101bc0bac8bcafd637a620d9122fd7e0b2f7422e" +dependencies = [ + "bytes", + "getrandom 0.3.3", + "lru-slab", + "rand 0.9.1", + "ring", + "rustc-hash 2.1.1", + "rustls", + "rustls-pki-types", + "slab", + "thiserror 2.0.12", + "tinyvec", + "tracing", + "web-time", +] + +[[package]] +name = "quinn-udp" +version = "0.5.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fcebb1209ee276352ef14ff8732e24cc2b02bbac986cd74a4c81bcb2f9881970" +dependencies = [ + "cfg_aliases", + "libc", + "once_cell", + "socket2 0.5.10", + "tracing", + "windows-sys 0.59.0", +] + [[package]] name = "quote" version = "1.0.40" @@ -4503,9 +4827,9 @@ checksum = "d3edd4d5d42c92f0a659926464d4cce56b562761267ecf0f469d85b7de384175" [[package]] name = "redox_syscall" -version = "0.5.13" +version = "0.5.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0d04b7d0ee6b4a0207a0a7adb104d23ecb0b47d6beae7152d0fa34b692b29fd6" +checksum = "5407465600fb0548f1442edf71dd20683c6ed326200ace4b1ef0763521bb3b77" dependencies = [ "bitflags", ] @@ -4538,17 +4862,8 @@ checksum = "b544ef1b4eac5dc2db33ea63606ae9ffcfac26c1416a2806ae0bf5f56b201191" dependencies = [ "aho-corasick", "memchr", - "regex-automata 0.4.9", - "regex-syntax 0.8.5", -] - -[[package]] -name = "regex-automata" -version = "0.1.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6c230d73fb8d8c1b9c0b3135c5142a8acee3a0558fb8db5cf1cb65f8d7862132" -dependencies = [ - "regex-syntax 0.6.29", + "regex-automata", + "regex-syntax", ] [[package]] @@ -4559,15 +4874,9 @@ checksum = "809e8dc61f6de73b46c85f4c96486310fe304c434cfa43669d7b40f711150908" dependencies = [ "aho-corasick", "memchr", - "regex-syntax 0.8.5", + "regex-syntax", ] -[[package]] -name = "regex-syntax" -version = "0.6.29" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f162c6dd7b008981e4d40210aca20b4bd0f9b60ca9271061b07f78537722f2e1" - [[package]] name = "regex-syntax" version = "0.8.5" @@ -4576,9 +4885,9 @@ checksum = "2b15c43186be67a4fd63bee50d0303afffcef381492ebe2c5d87f324e1b8815c" [[package]] name = "reqwest" -version = "0.12.20" +version = "0.12.23" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eabf4c97d9130e2bf606614eb937e86edac8292eaa6f422f995d7e8de1eb1813" +checksum = "d429f34c8092b2d42c7c93cec323bb4adeb7c67698f70839adec842ec10c7ceb" dependencies = [ "base64", "bytes", @@ -4598,6 +4907,8 @@ dependencies = [ "native-tls", "percent-encoding", "pin-project-lite", + "quinn", + "rustls", "rustls-pki-types", "serde", "serde_json", @@ -4605,6 +4916,7 @@ dependencies = [ "sync_wrapper", "tokio", "tokio-native-tls", + "tokio-rustls", "tower", "tower-http", "tower-service", @@ -4612,13 +4924,14 @@ dependencies = [ "wasm-bindgen", "wasm-bindgen-futures", "web-sys", + "webpki-roots 1.0.1", ] [[package]] name = "revm" -version = "24.0.1" +version = "29.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "01d277408ff8d6f747665ad9e52150ab4caf8d5eaf0d787614cf84633c8337b4" +checksum = "718d90dce5f07e115d0e66450b1b8aa29694c1cf3f89ebddaddccc2ccbd2f13e" dependencies = [ "revm-bytecode", "revm-context", @@ -4635,12 +4948,11 @@ dependencies = [ [[package]] name = "revm-bytecode" -version = "4.1.0" +version = "6.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "942fe4724cf552fd28db6b0a2ca5b79e884d40dd8288a4027ed1e9090e0c6f49" +checksum = "66c52031b73cae95d84cd1b07725808b5fd1500da3e5e24574a3b2dc13d9f16d" dependencies = [ "bitvec", - "once_cell", "phf", "revm-primitives", "serde", @@ -4648,10 +4960,11 @@ dependencies = [ [[package]] name = "revm-context" -version = "5.0.1" +version = "9.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b01aad49e1233f94cebda48a4e5cef022f7c7ed29b4edf0d202b081af23435ef" +checksum = "5a20c98e7008591a6f012550c2a00aa36cba8c14cc88eb88dec32eb9102554b4" dependencies = [ + "bitvec", "cfg-if", "derive-where", "revm-bytecode", @@ -4664,9 +4977,9 @@ dependencies = [ [[package]] name = "revm-context-interface" -version = "5.0.0" +version = "10.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1b844f48a411e62c7dde0f757bf5cce49c85b86d6fc1d3b2722c07f2bec4c3ce" +checksum = "b50d241ed1ce647b94caf174fcd0239b7651318b2c4c06b825b59b973dfb8495" dependencies = [ "alloy-eip2930", "alloy-eip7702", @@ -4680,9 +4993,9 @@ dependencies = [ [[package]] name = "revm-database" -version = "4.0.1" +version = "7.0.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ad3fbe34f6bb00a9c3155723b3718b9cb9f17066ba38f9eb101b678cd3626775" +checksum = "39a276ed142b4718dcf64bc9624f474373ed82ef20611025045c3fb23edbef9c" dependencies = [ "alloy-eips", "revm-bytecode", @@ -4694,11 +5007,12 @@ dependencies = [ [[package]] name = "revm-database-interface" -version = "4.0.1" +version = "7.0.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7b8acd36784a6d95d5b9e1b7be3ce014f1e759abb59df1fa08396b30f71adc2a" +checksum = "8c523c77e74eeedbac5d6f7c092e3851dbe9c7fec6f418b85992bd79229db361" dependencies = [ "auto_impl", + "either", "revm-primitives", "revm-state", "serde", @@ -4706,11 +5020,12 @@ dependencies = [ [[package]] name = "revm-handler" -version = "5.0.1" +version = "10.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "481e8c3290ff4fa1c066592fdfeb2b172edfd14d12e6cade6f6f5588cad9359a" +checksum = "550331ea85c1d257686e672081576172fe3d5a10526248b663bbf54f1bef226a" dependencies = [ "auto_impl", + "derive-where", "revm-bytecode", "revm-context", "revm-context-interface", @@ -4724,11 +5039,12 @@ dependencies = [ [[package]] name = "revm-inspector" -version = "5.0.1" +version = "10.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fdc1167ef8937d8867888e63581d8ece729a72073d322119ef4627d813d99ecb" +checksum = "7c0a6e9ccc2ae006f5bed8bd80cd6f8d3832cd55c5e861b9402fdd556098512f" dependencies = [ "auto_impl", + "either", "revm-context", "revm-database-interface", "revm-handler", @@ -4741,9 +5057,9 @@ dependencies = [ [[package]] name = "revm-interpreter" -version = "20.0.0" +version = "25.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b5ee65e57375c6639b0f50555e92a4f1b2434349dd32f52e2176f5c711171697" +checksum = "06575dc51b1d8f5091daa12a435733a90b4a132dca7ccee0666c7db3851bc30c" dependencies = [ "revm-bytecode", "revm-context-interface", @@ -4753,45 +5069,47 @@ dependencies = [ [[package]] name = "revm-precompile" -version = "21.0.0" +version = "27.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0f9311e735123d8d53a02af2aa81877bba185be7c141be7f931bb3d2f3af449c" +checksum = "25b57d4bd9e6b5fe469da5452a8a137bc2d030a3cd47c46908efc615bbc699da" dependencies = [ "ark-bls12-381", "ark-bn254", "ark-ec", "ark-ff 0.5.0", "ark-serialize 0.5.0", + "arrayref", "aurora-engine-modexp", "blst", "c-kzg", "cfg-if", "k256", "libsecp256k1", - "once_cell", "p256", "revm-primitives", "ripemd", - "secp256k1", + "rug", + "secp256k1 0.31.1", "sha2 0.10.9", ] [[package]] name = "revm-primitives" -version = "19.2.0" +version = "20.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1c1588093530ec4442461163be49c433c07a3235d1ca6f6799fef338dacc50d3" +checksum = "5aa29d9da06fe03b249b6419b33968ecdf92ad6428e2f012dc57bcd619b5d94e" dependencies = [ "alloy-primitives", "num_enum", + "once_cell", "serde", ] [[package]] name = "revm-state" -version = "4.0.1" +version = "7.0.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0040c61c30319254b34507383ba33d85f92949933adf6525a2cede05d165e1fa" +checksum = "1f64fbacb86008394aaebd3454f9643b7d5a782bd251135e17c5b33da592d84d" dependencies = [ "bitflags", "revm-bytecode", @@ -4832,6 +5150,15 @@ dependencies = [ "digest 0.10.7", ] +[[package]] +name = "rlimit" +version = "0.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7043b63bd0cd1aaa628e476b80e6d4023a3b50eb32789f2728908107bd0c793a" +dependencies = [ + "libc", +] + [[package]] name = "rlp" version = "0.5.2" @@ -4844,19 +5171,31 @@ dependencies = [ [[package]] name = "rocksdb" -version = "0.23.0" +version = "0.24.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "26ec73b20525cb235bad420f911473b69f9fe27cc856c5461bccd7e4af037f43" +checksum = "ddb7af00d2b17dbd07d82c0063e25411959748ff03e8d4f96134c2ff41fce34f" dependencies = [ "libc", "librocksdb-sys", ] +[[package]] +name = "rug" +version = "1.27.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4207e8d668e5b8eb574bda8322088ccd0d7782d3d03c7e8d562e82ed82bdcbc3" +dependencies = [ + "az", + "gmp-mpfr-sys", + "libc", + "libm", +] + [[package]] name = "ruint" -version = "1.15.0" +version = "1.16.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "11256b5fe8c68f56ac6f39ef0720e592f33d2367a4782740d9c9142e889c7fb4" +checksum = "9ecb38f82477f20c5c3d62ef52d7c4e536e38ea9b73fb570a20c5cae0e14bcf6" dependencies = [ "alloy-rlp", "ark-ff 0.3.0", @@ -4887,9 +5226,9 @@ checksum = "48fd7bd8a6377e15ad9d42a8ec25371b94ddc67abe7c8b9127bec79bebaaae18" [[package]] name = "rustc-demangle" -version = "0.1.25" +version = "0.1.26" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "989e6739f80c4ad5b13e0fd7fe89531180375b18520cc8c82080e4dc4035b84f" +checksum = "56f7d92ca342cea22a06f2121d944b4fd82af56988c270852495420f961d4ace" [[package]] name = "rustc-hash" @@ -4929,22 +5268,35 @@ dependencies = [ [[package]] name = "rustix" -version = "1.0.7" +version = "0.38.44" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c71e83d6afe7ff64890ec6b71d6a69bb8a610ab78ce364b3352876bb4c801266" +checksum = "fdb5bc1ae2baa591800df16c9ca78619bf65c0488b41b96ccec5d11220d8c154" dependencies = [ "bitflags", "errno", "libc", - "linux-raw-sys", + "linux-raw-sys 0.4.15", "windows-sys 0.59.0", ] +[[package]] +name = "rustix" +version = "1.0.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "11181fbabf243db407ef8df94a6ce0b2f9a733bd8be4ad02b4eda9602296cac8" +dependencies = [ + "bitflags", + "errno", + "libc", + "linux-raw-sys 0.9.4", + "windows-sys 0.60.2", +] + [[package]] name = "rustls" -version = "0.23.28" +version = "0.23.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7160e3e10bf4535308537f3c4e1641468cd0e485175d6163087c0393c7d46643" +checksum = "c0ebcbd2f03de0fc1122ad9bb24b127a5a6cd51d72604a3f3c50ac459762b6cc" dependencies = [ "once_cell", "ring", @@ -4960,14 +5312,15 @@ version = "1.12.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "229a4a4c221013e7e1f1a043678c5cc39fe5171437c88fb47151a21e6f5b5c79" dependencies = [ + "web-time", "zeroize", ] [[package]] name = "rustls-webpki" -version = "0.103.3" +version = "0.103.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e4a72fe2bcf7a6ac6fd7d0b9e5cb68aeb7d4c0a0271730218b3e92d43b4eb435" +checksum = "0a17884ae0c1b773f1ccd2bd4a8c72f16da897310a98b0e84bf349ad5ead92fc" dependencies = [ "ring", "rustls-pki-types", @@ -4976,9 +5329,9 @@ dependencies = [ [[package]] name = "rustversion" -version = "1.0.21" +version = "1.0.22" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8a0d197bd2c9dc6e53b84da9556a69ba4cdfab8619eb41a8bd1cc2027a0f6b1d" +checksum = "b39cdef0fa800fc44525c84ccb54a029961a8215f9619753635a9c0d2538d46d" [[package]] name = "rusty-fork" @@ -5028,6 +5381,18 @@ dependencies = [ "serde_json", ] +[[package]] +name = "schemars" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "82d20c4491bc164fa2f6c5d44565947a52ad80b9505d8e36f8d54c27c739fcd0" +dependencies = [ + "dyn-clone", + "ref-cast", + "serde", + "serde_json", +] + [[package]] name = "scopeguard" version = "1.2.0" @@ -5063,10 +5428,21 @@ checksum = "b50c5943d326858130af85e049f2661ba3c78b26589b8ab98e65e80ae44a1252" dependencies = [ "bitcoin_hashes", "rand 0.8.5", - "secp256k1-sys", + "secp256k1-sys 0.10.1", "serde", ] +[[package]] +name = "secp256k1" +version = "0.31.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2c3c81b43dc2d8877c216a3fccf76677ee1ebccd429566d3e67447290d0c42b2" +dependencies = [ + "bitcoin_hashes", + "rand 0.9.1", + "secp256k1-sys 0.11.0", +] + [[package]] name = "secp256k1-sys" version = "0.10.1" @@ -5076,6 +5452,15 @@ dependencies = [ "cc", ] +[[package]] +name = "secp256k1-sys" +version = "0.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dcb913707158fadaf0d8702c2db0e857de66eb003ccfdda5924b5f5ac98efb38" +dependencies = [ + "cc", +] + [[package]] name = "security-framework" version = "2.11.1" @@ -5131,10 +5516,11 @@ checksum = "cd0b0ec5f1c1ca621c432a25813d8d60c88abe6d3e08a3eb9cf37d97a0fe3d73" [[package]] name = "serde" -version = "1.0.219" +version = "1.0.226" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5f0e2c6ed6606019b4e29e69dbaba95b11854410e5347d525002456dbbb786b6" +checksum = "0dca6411025b24b60bfa7ec1fe1f8e710ac09782dca409ee8237ba74b51295fd" dependencies = [ + "serde_core", "serde_derive", ] @@ -5147,11 +5533,20 @@ dependencies = [ "serde", ] +[[package]] +name = "serde_core" +version = "1.0.226" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ba2ba63999edb9dac981fb34b3e5c0d111a69b0924e253ed29d83f7c99e966a4" +dependencies = [ + "serde_derive", +] + [[package]] name = "serde_derive" -version = "1.0.219" +version = "1.0.226" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5b0276cf7f2c73365f7157c8123c21cd9a50fbbd844757af28ca1f5925fc2a00" +checksum = "8db53ae22f34573731bafa1db20f04027b2d25e02d8205921b569171699cdb33" dependencies = [ "proc-macro2", "quote", @@ -5160,9 +5555,9 @@ dependencies = [ [[package]] name = "serde_json" -version = "1.0.140" +version = "1.0.143" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "20068b6e96dc6c9bd23e01df8827e6c7e1f2fddd43c21810382803c136b99373" +checksum = "d401abef1d108fbd9cbaebc3e46611f4b1021f714a0597a71f41ee463f5f4a5a" dependencies = [ "indexmap 2.9.0", "itoa", @@ -5215,16 +5610,17 @@ dependencies = [ [[package]] name = "serde_with" -version = "3.13.0" +version = "3.14.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bf65a400f8f66fb7b0552869ad70157166676db75ed8181f8104ea91cf9d0b42" +checksum = "f2c45cd61fefa9db6f254525d46e392b852e0e61d9a1fd36e5bd183450a556d5" dependencies = [ "base64", "chrono", "hex", "indexmap 1.9.3", "indexmap 2.9.0", - "schemars", + "schemars 0.9.0", + "schemars 1.0.4", "serde", "serde_derive", "serde_json", @@ -5234,11 +5630,11 @@ dependencies = [ [[package]] name = "serde_with_macros" -version = "3.13.0" +version = "3.14.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "81679d9ed988d5e9a5e6531dc3f2c28efbd639cbd1dfb628df08edea6004da77" +checksum = "de90945e6565ce0d9a25098082ed4ee4002e047cb59892c318d66821e14bb30f" dependencies = [ - "darling", + "darling 0.20.11", "proc-macro2", "quote", "syn 2.0.104", @@ -5351,9 +5747,9 @@ checksum = "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64" [[package]] name = "signal-hook-registry" -version = "1.4.5" +version = "1.4.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9203b8055f63a2a00e2f593bb0510367fe707d7ff1e5c872de2f537b339e5410" +checksum = "b2a4719bff48cee6b39d12c020eeb490953ad2443b7055bd0b21fca26bd8c28b" dependencies = [ "libc", ] @@ -5376,7 +5772,7 @@ checksum = "297f631f50729c8c99b84667867963997ec0b50f32b2a7dbcab828ef0541e8bb" dependencies = [ "num-bigint 0.4.6", "num-traits", - "thiserror", + "thiserror 2.0.12", "time", ] @@ -5394,9 +5790,9 @@ checksum = "c1e9a774a6c28142ac54bb25d25562e6bcf957493a184f15ad4eebccb23e410a" [[package]] name = "slab" -version = "0.4.10" +version = "0.4.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "04dc19736151f35336d325007ac991178d504a119863a2fcb3758cdb5e52c50d" +checksum = "7a2ae44ef20feb57a68b23d846850f861394c2e02dc425a50098ae8c90267589" [[package]] name = "smallvec" @@ -5407,6 +5803,12 @@ dependencies = [ "serde", ] +[[package]] +name = "snap" +version = "1.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1b6b67fb9a61334225b5b790716f609cd58395f895b3fe8b328786812a40bc3b" + [[package]] name = "socket2" version = "0.5.10" @@ -5417,6 +5819,16 @@ dependencies = [ "windows-sys 0.52.0", ] +[[package]] +name = "socket2" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "233504af464074f9d066d7b5416c5f9b894a5862a6506e306f7b816cdd6f1807" +dependencies = [ + "libc", + "windows-sys 0.59.0", +] + [[package]] name = "sp1-lib" version = "5.0.5" @@ -5511,23 +5923,22 @@ checksum = "7da8b5736845d9f2fcb837ea5d9e2628564b3b043a70948a3f0b778838c5fb4f" [[package]] name = "strum" -version = "0.27.1" +version = "0.27.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f64def088c51c9510a8579e3c5d67c65349dcf755e5479ad3d010aa6454e2c32" +checksum = "af23d6f6c1a224baef9d3f61e287d2761385a5b88fdab4eb4c6f11aeb54c4bcf" dependencies = [ "strum_macros", ] [[package]] name = "strum_macros" -version = "0.27.1" +version = "0.27.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c77a8c5abcaf0f9ce05d62342b7d298c346515365c36b673df4ebe3ced01fde8" +checksum = "7695ce3845ea4b33927c055a39dc438a45b059f7c1b3d91d38d10355fb8cbca7" dependencies = [ "heck", "proc-macro2", "quote", - "rustversion", "syn 2.0.104", ] @@ -5561,9 +5972,9 @@ dependencies = [ [[package]] name = "syn-solidity" -version = "1.2.1" +version = "1.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b9ac494e7266fcdd2ad80bf4375d55d27a117ea5c866c26d0e97fe5b3caeeb75" +checksum = "a0b198d366dbec045acfcd97295eb653a7a2b40e4dc764ef1e79aafcad439d3c" dependencies = [ "paste", "proc-macro2", @@ -5612,6 +6023,30 @@ dependencies = [ "libc", ] +[[package]] +name = "tabled" +version = "0.20.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e39a2ee1fbcd360805a771e1b300f78cc88fec7b8d3e2f71cd37bbf23e725c7d" +dependencies = [ + "papergrid", + "tabled_derive", + "testing_table", +] + +[[package]] +name = "tabled_derive" +version = "0.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0ea5d1b13ca6cff1f9231ffd62f15eefd72543dab5e468735f1a456728a02846" +dependencies = [ + "heck", + "proc-macro-error2", + "proc-macro2", + "quote", + "syn 2.0.104", +] + [[package]] name = "tap" version = "1.0.1" @@ -5620,15 +6055,33 @@ checksum = "55937e1799185b12863d447f42597ed69d9928686b8d88a1df17376a097d8369" [[package]] name = "tempfile" -version = "3.20.0" +version = "3.21.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e8a64e3985349f2441a1a9ef0b853f869006c3855f2cda6862a94d26ebb9d6a1" +checksum = "15b61f8f20e3a6f7e0649d825294eaf317edce30f82cf6026e7e4cb9222a7d1e" dependencies = [ "fastrand", "getrandom 0.3.3", "once_cell", - "rustix", - "windows-sys 0.59.0", + "rustix 1.0.8", + "windows-sys 0.60.2", +] + +[[package]] +name = "testing_table" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0f8daae29995a24f65619e19d8d31dea5b389f3d853d8bf297bbf607cd0014cc" +dependencies = [ + "unicode-width", +] + +[[package]] +name = "thiserror" +version = "1.0.69" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b6aaf5339b578ea85b50e080feb250a3e8ae8cfcdff9a461c9ec2904bc923f52" +dependencies = [ + "thiserror-impl 1.0.69", ] [[package]] @@ -5637,7 +6090,18 @@ version = "2.0.12" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "567b8a2dae586314f7be2a752ec7474332959c6460e02bde30d702a66d488708" dependencies = [ - "thiserror-impl", + "thiserror-impl 2.0.12", +] + +[[package]] +name = "thiserror-impl" +version = "1.0.69" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4fee6c4efc90059e10f81e6d42c60a18f76588c3d74cb83a0b242a2b6c7504c1" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.104", ] [[package]] @@ -5719,22 +6183,39 @@ dependencies = [ "zerovec", ] +[[package]] +name = "tinyvec" +version = "1.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bfa5fdc3bce6191a1dbc8c02d5c8bffcf557bafa17c124c5264a458f1b0613fa" +dependencies = [ + "tinyvec_macros", +] + +[[package]] +name = "tinyvec_macros" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" + [[package]] name = "tokio" -version = "1.45.1" +version = "1.47.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "75ef51a33ef1da925cea3e4eb122833cb377c61439ca401b770f54902b806779" +checksum = "89e49afdadebb872d3145a5638b59eb0691ea23e46ca484037cfab3b76b95038" dependencies = [ "backtrace", "bytes", + "io-uring", "libc", "mio", "parking_lot", "pin-project-lite", "signal-hook-registry", - "socket2", + "slab", + "socket2 0.6.0", "tokio-macros", - "windows-sys 0.52.0", + "windows-sys 0.59.0", ] [[package]] @@ -5798,9 +6279,9 @@ dependencies = [ [[package]] name = "tokio-util" -version = "0.7.15" +version = "0.7.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "66a539a9ad6d5d281510d5bd368c973d636c02dbf8a67300bfb6b950696ad7df" +checksum = "14307c986784f72ef81c89db7d9e28d6ac26d16213b109ea501696195e6e3ce5" dependencies = [ "bytes", "futures-core", @@ -5901,6 +6382,18 @@ dependencies = [ "tracing-core", ] +[[package]] +name = "tracing-appender" +version = "0.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3566e8ce28cc0a3fe42519fc80e6b4c943cc4c8cef275620eb8dac2d3d4e06cf" +dependencies = [ + "crossbeam-channel", + "thiserror 1.0.69", + "time", + "tracing-subscriber 0.3.20", +] + [[package]] name = "tracing-attributes" version = "0.1.30" @@ -5923,25 +6416,23 @@ dependencies = [ ] [[package]] -name = "tracing-futures" -version = "0.2.5" +name = "tracing-log" +version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "97d095ae15e245a057c8e8451bab9b3ee1e1f68e9ba2b4fbc18d0ac5237835f2" +checksum = "ee855f1f400bd0e5c02d150ae5de3840039a3f54b025156404e34c23c03f47c3" dependencies = [ - "futures", - "futures-task", - "pin-project", - "tracing", + "log", + "once_cell", + "tracing-core", ] [[package]] -name = "tracing-log" +name = "tracing-serde" version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ee855f1f400bd0e5c02d150ae5de3840039a3f54b025156404e34c23c03f47c3" +checksum = "704b1aeb7be0d0a84fc9828cae51dab5970fee5088f83d1dd7ee6f6246fc6ff1" dependencies = [ - "log", - "once_cell", + "serde", "tracing-core", ] @@ -5956,21 +6447,23 @@ dependencies = [ [[package]] name = "tracing-subscriber" -version = "0.3.19" +version = "0.3.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e8189decb5ac0fa7bc8b96b7cb9b2701d60d48805aca84a238004d665fcc4008" +checksum = "2054a14f5307d601f88daf0553e1cbf472acc4f2c51afab632431cdcd72124d5" dependencies = [ "matchers", "nu-ansi-term", "once_cell", - "regex", + "regex-automata", "serde", + "serde_json", "sharded-slab", "smallvec", "thread_local", "tracing", "tracing-core", "tracing-log", + "tracing-serde", ] [[package]] @@ -5994,7 +6487,7 @@ dependencies = [ "rustls", "rustls-pki-types", "sha1", - "thiserror", + "thiserror 2.0.12", "utf-8", ] @@ -6040,6 +6533,12 @@ version = "1.12.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f6ccf251212114b54433ec949fd6a7841275f9ada20dddd2f29e9ceea4501493" +[[package]] +name = "unicode-width" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4a1a07cc7db3810833284e8d372ccdc6da29741639ecc70c9ec107df0fa6154c" + [[package]] name = "unicode-xid" version = "0.2.6" @@ -6233,6 +6732,16 @@ dependencies = [ "wasm-bindgen", ] +[[package]] +name = "web-time" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5a6580f308b1fad9207618087a65c04e7a10bc77e02c8e84e9b00dd4b12fa0bb" +dependencies = [ + "js-sys", + "wasm-bindgen", +] + [[package]] name = "webpki-roots" version = "0.26.11" @@ -6279,17 +6788,51 @@ version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" +[[package]] +name = "windows" +version = "0.58.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dd04d41d93c4992d421894c18c8b43496aa748dd4c081bac0dc93eb0489272b6" +dependencies = [ + "windows-core 0.58.0", + "windows-targets 0.52.6", +] + +[[package]] +name = "windows-core" +version = "0.58.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6ba6d44ec8c2591c134257ce647b7ea6b20335bf6379a27dac5f1641fcf59f99" +dependencies = [ + "windows-implement 0.58.0", + "windows-interface 0.58.0", + "windows-result 0.2.0", + "windows-strings 0.1.0", + "windows-targets 0.52.6", +] + [[package]] name = "windows-core" version = "0.61.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c0fdd3ddb90610c7638aa2b3a3ab2904fb9e5cdbecc643ddb3647212781c4ae3" dependencies = [ - "windows-implement", - "windows-interface", + "windows-implement 0.60.0", + "windows-interface 0.59.1", "windows-link", - "windows-result", - "windows-strings", + "windows-result 0.3.4", + "windows-strings 0.4.2", +] + +[[package]] +name = "windows-implement" +version = "0.58.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2bbd5b46c938e506ecbce286b6628a02171d56153ba733b6c741fc627ec9579b" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.104", ] [[package]] @@ -6303,6 +6846,17 @@ dependencies = [ "syn 2.0.104", ] +[[package]] +name = "windows-interface" +version = "0.58.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "053c4c462dc91d3b1504c6fe5a726dd15e216ba718e84a0e46a88fbe5ded3515" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.104", +] + [[package]] name = "windows-interface" version = "0.59.1" @@ -6322,13 +6876,22 @@ checksum = "5e6ad25900d524eaabdbbb96d20b4311e1e7ae1699af4fb28c17ae66c80d798a" [[package]] name = "windows-registry" -version = "0.5.2" +version = "0.5.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b3bab093bdd303a1240bb99b8aba8ea8a69ee19d34c9e2ef9594e708a4878820" +checksum = "5b8a9ed28765efc97bbc954883f4e6796c33a06546ebafacbabee9696967499e" dependencies = [ "windows-link", - "windows-result", - "windows-strings", + "windows-result 0.3.4", + "windows-strings 0.4.2", +] + +[[package]] +name = "windows-result" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1d1043d8214f791817bab27572aaa8af63732e11bf84aa21a45a78d6c317ae0e" +dependencies = [ + "windows-targets 0.52.6", ] [[package]] @@ -6340,6 +6903,16 @@ dependencies = [ "windows-link", ] +[[package]] +name = "windows-strings" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4cd9b125c486025df0eabcb585e62173c6c9eddcec5d117d3b6e8c30e2ee4d10" +dependencies = [ + "windows-result 0.2.0", + "windows-targets 0.52.6", +] + [[package]] name = "windows-strings" version = "0.4.2" @@ -6506,9 +7079,9 @@ checksum = "271414315aff87387382ec3d271b52d7ae78726f5d44ac98b4f4030c91880486" [[package]] name = "winnow" -version = "0.7.11" +version = "0.7.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "74c7b26e3480b707944fc872477815d29a8e429d2f93a1ce000f5fa84a15cbcd" +checksum = "f3edebf492c8125044983378ecb5766203ad3b4c2f7a922bd7dd207f6d443e95" dependencies = [ "memchr", ] @@ -6541,7 +7114,7 @@ dependencies = [ "pharos", "rustc_version 0.4.1", "send_wrapper", - "thiserror", + "thiserror 2.0.12", "wasm-bindgen", "wasm-bindgen-futures", "web-sys", @@ -6654,9 +7227,9 @@ dependencies = [ [[package]] name = "zerovec" -version = "0.11.2" +version = "0.11.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4a05eb080e015ba39cc9e23bbe5e7fb04d5fb040350f99f34e338d5fdd294428" +checksum = "e7aa2bd55086f1ab526693ecbe444205da57e25f4489879da80635a46d90e73b" dependencies = [ "yoke", "zerofrom", diff --git a/Cargo.toml b/Cargo.toml index dde49a3..37190ef 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -11,25 +11,25 @@ serde = { version = "1.0.219", default-features = false, features = ["derive"] } serde_json = { version = "1.0.140", default-features = false } # Kona -kona-mpt = { git="https://github.com/anton-rs/kona", rev= "kona-client/v1.0.2", default-features = false } -kona-client = { git="https://github.com/anton-rs/kona", rev= "kona-client/v1.0.2", default-features = false } -kona-host = { git="https://github.com/anton-rs/kona", rev= "kona-client/v1.0.2", default-features = false } -kona-proof = { git="https://github.com/anton-rs/kona", rev= "kona-client/v1.0.2", default-features = false } -kona-preimage = {git="https://github.com/anton-rs/kona", rev= "kona-client/v1.0.2", default-features = false } -kona-providers-alloy= { git="https://github.com/anton-rs/kona", rev= "kona-client/v1.0.2", default-features = false } -kona-genesis = { git="https://github.com/anton-rs/kona", rev= "kona-client/v1.0.2", default-features = false } -kona-protocol = { git="https://github.com/anton-rs/kona", rev= "kona-client/v1.0.2", default-features = false } +kona-mpt = { git="https://github.com/op-rs/kona", rev= "kona-node/v1.1.3", default-features = false } +kona-client = { git="https://github.com/op-rs/kona", rev= "kona-node/v1.1.3", default-features = false } +kona-host = { git="https://github.com/op-rs/kona", rev= "kona-node/v1.1.3", default-features = false } +kona-proof = { git="https://github.com/op-rs/kona", rev= "kona-node/v1.1.3", default-features = false } +kona-preimage = {git="https://github.com/op-rs/kona", rev= "kona-node/v1.1.3", default-features = false } +kona-providers-alloy= { git="https://github.com/op-rs/kona", rev= "kona-node/v1.1.3", default-features = false } +kona-genesis = { git="https://github.com/op-rs/kona", rev= "kona-node/v1.1.3", default-features = false } +kona-protocol = { git="https://github.com/op-rs/kona", rev= "kona-node/v1.1.3", default-features = false } # Alloy alloy-rlp = { version = "0.3.12", default-features = false } -alloy-eips = { version = "1.0.9", default-features = false } -alloy-provider = { version = "1.0.9", default-features = false } -alloy-consensus = { version = "1.0.9", default-features = false } -alloy-transport = { version = "1.0.9", default-features = false } -alloy-rpc-types = { version = "1.0.9", default-features = false } -alloy-rpc-client = { version = "1.0.9", default-features = false } -alloy-primitives = { version = "1.1.0", default-features = false } -alloy-transport-http = { version = "1.0.9", default-features = false } +alloy-eips = { version = "1.0.38", default-features = false } +alloy-provider = { version = "1.0.38", default-features = false } +alloy-consensus = { version = "1.0.38", default-features = false } +alloy-transport = { version = "1.0.38", default-features = false } +alloy-rpc-types = { version = "1.0.38", default-features = false } +alloy-rpc-client = { version = "1.0.38", default-features = false } +alloy-primitives = { version = "1.3.1", default-features = false } +alloy-transport-http = { version = "1.0.38", default-features = false } # OP Alloy -op-alloy-rpc-types-engine = { version = "0.17.2", default-features = false } +op-alloy-rpc-types-engine = { version = "0.20.0", default-features = false } diff --git a/Makefile b/Makefile index 815318b..e9a92ab 100644 --- a/Makefile +++ b/Makefile @@ -2,11 +2,16 @@ SED = $(shell which gsed 2>/dev/null || echo sed) .PHONY: chain chain: - git clone --depth 1 -b v1.13.4 https://github.com/ethereum-optimism/optimism ./chain - $(SED) -i 's/teku/lodestar\n cl_image: chainsafe\/lodestar:v1.31.0\n vc_image: chainsafe\/lodestar:v1.31.0/g' chain/kurtosis-devnet/simple.yaml - $(SED) -i 's/minimal/minimal\n electra_fork_epoch: 0/g' chain/kurtosis-devnet/simple.yaml - # change ethereum-packages - $(SED) -i 's/83830d44823767af65eda7dfe6b26c87c536c4cf/6d29b3ab4e729913188358bc7a4ccdba9cf1e767/g' chain/kurtosis-devnet/optimism-package-trampoline/kurtosis.yml + git clone --depth 1 -b v1.14.1 https://github.com/ethereum-optimism/optimism ./chain + # override devnet config + cp kurtosis/kurtosis.yaml ./chain/kurtosis-devnet/optimism-package-trampoline/kurtosis.yml + cp kurtosis/main.star ./chain/kurtosis-devnet/optimism-package-trampoline/main.star + cp kurtosis/simple.yaml ./chain/kurtosis-devnet/simple.yaml + # devnet L1ChainConfig + cp kurtosis/op-service/eth/config.go ./chain/op-service/eth/config.go + # kurtosis 1.11.1 is required + $(SED) -i 's/v1.8.2-0.20250602144112-2b7d06430e48/v1.11.1/g' ./chain/go.mod + cd chain && go mod tidy .PHONY: devnet-up devnet-up: @@ -15,6 +20,7 @@ devnet-up: .PHONY: set-port set-port: scripts/port.sh + scripts/get_l1_config.sh .PHONY: status status: @@ -31,11 +37,13 @@ server-up: L2_GETH_PORT=$$(jq -r '.l2GethPort' hostPort.json);\ L1_GETH_PORT=$$(jq -r '.l1GethPort' hostPort.json);\ L1_BEACON_PORT=$$(jq -r '.l1BeaconPort' hostPort.json);\ + L1_CHAIN_CONFIG=$$(cat l1_chain_config.json | base64 -w 0);\ cargo run --release --bin=optimism-preimage-maker -- \ --rollup=http://localhost:$$L2_ROLLUP_PORT \ --l2=http://localhost:$$L2_GETH_PORT \ --l1=http://localhost:$$L1_GETH_PORT \ - --beacon=http://localhost:$$L1_BEACON_PORT + --beacon=http://localhost:$$L1_BEACON_PORT \ + --l1-chain-config=$$L1_CHAIN_CONFIG .PHONY: test test: @@ -48,3 +56,12 @@ devnet-down: @ENCLAVE=$$(kurtosis enclave ls | awk 'NR==2 {print $$1}'); kurtosis enclave rm -f $$ENCLAVE kurtosis engine stop +PHONY: sync-lock +sync-lock: + cargo update -p kona-client + cd scripts && python sync_lock.py + # Check build + # Downgrade the crate that does not exist in op-rs, which was unnecessarily upgraded by cargo update. + cargo build + + diff --git a/README.md b/README.md index 885f457..28cea7a 100644 --- a/README.md +++ b/README.md @@ -2,7 +2,7 @@ Preimage maker for optimism ## Prerequisites -* [kurtosis-cli v1.8.1](https://docs.kurtosis.com/install-historical/) +* [kurtosis-cli v1.11.1](https://docs.kurtosis.com/install-historical/) * [just](https://github.com/casey/just) ## Quickstart diff --git a/kurtosis/kurtosis.yaml b/kurtosis/kurtosis.yaml new file mode 100644 index 0000000..b1045e9 --- /dev/null +++ b/kurtosis/kurtosis.yaml @@ -0,0 +1,8 @@ +name: github.com/ethereum-optimism/optimism/kurtosis-devnet/optimism-package-trampoline +description: |- + A trampoline package for optimism-package. This one is reproducible, due to the replace directives below. +replace: + github.com/yoshidan/optimism-package: github.com/yoshidan/optimism-package@ca2ca4fab42446c1a9ddc596f1b8036db4766194 + github.com/ethpandaops/ethereum-package: github.com/ethpandaops/ethereum-package@e964e305a19d56b798800e84d264f97b87952c55 + github.com/kurtosis-tech/prometheus-package: github.com/kurtosis-tech/prometheus-package@637c9dea933be18e47f96cadc0d9bb0e3a5aa9d6 # v1.0.0 + github.com/kurtosis-tech/postgres-package: github.com/kurtosis-tech/postgres-package@9cbdde2c55e8d1656deb87821465a2ad244d8b33 # v1.0.0 diff --git a/kurtosis/main.star b/kurtosis/main.star new file mode 100644 index 0000000..77ed074 --- /dev/null +++ b/kurtosis/main.star @@ -0,0 +1,5 @@ +optimism_package = import_module("github.com/yoshidan/optimism-package/main.star") + +def run(plan, args): + # just delegate to optimism-package + optimism_package.run(plan, args) diff --git a/kurtosis/op-service/eth/config.go b/kurtosis/op-service/eth/config.go new file mode 100644 index 0000000..badcf39 --- /dev/null +++ b/kurtosis/op-service/eth/config.go @@ -0,0 +1,56 @@ +package eth + +import ( + "github.com/ethereum/go-ethereum/common" + "github.com/ethereum/go-ethereum/params" + "math/big" +) + +// L1ChainConfigByChainID returns the chain config for the given chain ID, +// if it is in the set of known chain IDs (Mainnet, Sepolia, Holesky, Hoodi). +// If the chain ID is not known, it returns nil. +func L1ChainConfigByChainID(chainID ChainID) *params.ChainConfig { + switch chainID { + case ChainIDFromBig(params.MainnetChainConfig.ChainID): + return params.MainnetChainConfig + case ChainIDFromBig(params.SepoliaChainConfig.ChainID): + return params.SepoliaChainConfig + case ChainIDFromBig(params.HoleskyChainConfig.ChainID): + return params.HoleskyChainConfig + case ChainIDFromBig(params.HoodiChainConfig.ChainID): + return params.HoodiChainConfig + default: + return ¶ms.ChainConfig{ + ChainID: chainID.ToBig(), + HomesteadBlock: big.NewInt(0), + DAOForkBlock: big.NewInt(0), + DAOForkSupport: true, + EIP150Block: big.NewInt(0), + EIP155Block: big.NewInt(0), + EIP158Block: big.NewInt(0), + ByzantiumBlock: big.NewInt(0), + ConstantinopleBlock: big.NewInt(0), + PetersburgBlock: big.NewInt(0), + IstanbulBlock: big.NewInt(0), + MuirGlacierBlock: big.NewInt(0), + BerlinBlock: big.NewInt(0), + LondonBlock: big.NewInt(0), + ArrowGlacierBlock: big.NewInt(0), + GrayGlacierBlock: big.NewInt(0), + TerminalTotalDifficulty: big.NewInt(0), + ShanghaiTime: newUint64(0), + CancunTime: newUint64(0), + PragueTime: newUint64(0), + OsakaTime: newUint64(0), + BPO1Time: newUint64(0), + DepositContractAddress: common.HexToAddress("0x00000000219ab540356cbb839cbe05303d7705fa"), + BlobScheduleConfig: ¶ms.BlobScheduleConfig{ + Cancun: params.DefaultCancunBlobConfig, + Prague: params.DefaultPragueBlobConfig, + Osaka: params.DefaultOsakaBlobConfig, + BPO1: params.DefaultBPO1BlobConfig, + }, + } + } +} +func newUint64(val uint64) *uint64 { return &val } diff --git a/kurtosis/simple.yaml b/kurtosis/simple.yaml new file mode 100644 index 0000000..c43edc1 --- /dev/null +++ b/kurtosis/simple.yaml @@ -0,0 +1,100 @@ +optimism_package: + faucet: + enabled: true + image: {{ localDockerImage "op-faucet" }} + chains: + op-kurtosis: + participants: + node0: + el: + type: op-geth + image: "" + log_level: "" + extra_env_vars: {} + extra_labels: {} + extra_params: [] + tolerations: [] + volume_size: 0 + min_cpu: 0 + max_cpu: 0 + min_mem: 0 + max_mem: 0 + cl: + type: op-node + image: {{ localDockerImage "op-node" }} + log_level: "" + extra_env_vars: {} + extra_labels: {} + extra_params: [] + tolerations: [] + volume_size: 0 + min_cpu: 0 + max_cpu: 0 + min_mem: 0 + max_mem: 0 + mev_params: + image: "" + builder_host: "" + builder_port: "" + network_params: + network: "kurtosis" + network_id: "2151908" + seconds_per_slot: 2 + fjord_time_offset: 0 + granite_time_offset: 0 + holocene_time_offset: 0 + isthmus_time_offset: 0 + fund_dev_accounts: true + batcher_params: + image: {{ localDockerImage "op-batcher" }} + extra_params: [ + "--txmgr.enable-cell-proofs=true" + ] + proposer_params: + image: {{ localDockerImage "op-proposer" }} + extra_params: [] + game_type: 1 + proposal_interval: 10m + challengers: + challenger: + enabled: true + image: {{ localDockerImage "op-challenger" }} + participants: "*" + cannon_prestates_url: {{ localPrestate.URL }} + cannon_trace_types: ["cannon", "permissioned"] + op_contract_deployer_params: + image: {{ localDockerImage "op-deployer" }} + l1_artifacts_locator: {{ localContractArtifacts "l1" }} + l2_artifacts_locator: {{ localContractArtifacts "l2" }} + overrides: + faultGameAbsolutePrestate: {{ localPrestate.Hashes.prestate_mt64 }} + global_log_level: "info" + global_node_selectors: {} + global_tolerations: [] + persistent: false +ethereum_package: + participants: + - el_type: geth + cl_type: lodestar + cl_image: chainsafe/lodestar:v1.35.0 + vc_image: chainsafe/lodestar:v1.35.0 + supernode: true + network_params: + preset: minimal + fulu_fork_epoch: 0 + bpo_1_epoch: 0 + bpo_1_max_blobs: 15 + bpo_1_target_blobs: 10 + #bpo_2_epoch: 0 # required to be bigger than bpo_1_epoch + #bpo_2_max_blobs: 21 + #bpo_2_target_blobs: 14 + genesis_delay: 5 + additional_preloaded_contracts: | + { + "0x4e59b44847b379578588920cA78FbF26c0B4956C": { + "balance": "0ETH", + "code": "0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe03601600081602082378035828234f58015156039578182fd5b8082525050506014600cf3", + "storage": {}, + "nonce": "1" + } + } diff --git a/rust-toolchain b/rust-toolchain index 4994bc5..d6867e9 100644 --- a/rust-toolchain +++ b/rust-toolchain @@ -1 +1 @@ -nightly-2025-02-01 +nightly-2025-05-01 diff --git a/scripts/get_l1_config.sh b/scripts/get_l1_config.sh new file mode 100755 index 0000000..ffe5a35 --- /dev/null +++ b/scripts/get_l1_config.sh @@ -0,0 +1,5 @@ +#!/bin/bash + +container=`docker ps | grep "el-1-" | awk '{print $NF}'` +docker exec ${container} cat /network-configs/genesis.json | jq .config > l1_chain_config.json +cat l1_chain_config.json \ No newline at end of file diff --git a/scripts/sync_lock.py b/scripts/sync_lock.py new file mode 100644 index 0000000..b1caba7 --- /dev/null +++ b/scripts/sync_lock.py @@ -0,0 +1,77 @@ +import tomllib +import tomli_w +from collections import defaultdict +import shutil + + +def load_lock(path): + with open(path, "rb") as f: + return tomllib.load(f) + + +def overwrite_lock(lock_a_path: str, lock_b_path: str, ignore: set, replace: dict): + lock_a = load_lock(lock_a_path) + lock_b = load_lock(lock_b_path) + + a_map = {pkg["name"]: pkg for pkg in lock_a["package"]} + + # Group packages in B by name to detect multiple versions + b_name_map = defaultdict(list) + for pkg in lock_b["package"]: + b_name_map[pkg["name"]].append(pkg) + + # overwrite packages in B with those in A + for name, pkgs in b_name_map.items(): + if name in ignore: + print(f"{name} is in ignore list, skipping...") + continue + + if len(pkgs) > 1: + print(f"{name} has multiple versions in B, skipping...") + continue + + # overwrite attributes + b_pkg = pkgs[0] + if name in a_map: + a_pkg = a_map[name] + + if b_pkg.get("version") == a_pkg.get("version"): + continue + + print(f"Crate overwritten: {name}, version : {b_pkg.get('version')} -> {a_pkg.get('version')}") + + for key in ["version", "source", "checksum"]: + if key in a_pkg: + b_pkg[key] = a_pkg[key] + + if "dependencies" in a_pkg: + b_pkg["dependencies"] = a_pkg["dependencies"] + else: + b_pkg.pop("dependencies", None) + + # Write to temporary file first + tmp_path = lock_b_path + ".tmp" + with open(tmp_path, "w", encoding="utf-8") as f: + f.write(tomli_w.dumps(lock_b)) + + # Replace indent to avoid finding diff in Cargo.lock + with open(tmp_path, "r+", encoding="utf-8") as f: + content = f.read() + # formatting + content = content.replace(" ", " ") + for old, new in replace.items(): + content = content.replace(old, new) + f.seek(0) + f.write(content) + f.truncate() + + shutil.move(tmp_path, lock_b_path) + print(f"Patched Cargo.lock written and moved to {lock_b_path}") + + +if __name__ == "__main__": + # Paths are relative to this script + lock_kona = "../../../op-rs/kona/Cargo.lock" + lock_self = "../Cargo.lock" + + overwrite_lock(lock_kona, lock_self, set(), {}) diff --git a/server/Cargo.toml b/server/Cargo.toml index fd88a7f..7b1ad87 100644 --- a/server/Cargo.toml +++ b/server/Cargo.toml @@ -27,7 +27,8 @@ kona-genesis = { workspace = true, features = ["std", "serde"] } alloy-primitives = { workspace = true, features = ["map", "serde"] } # optimism derivation -optimism-derivation = { git = "https://github.com/datachainlab/optimism-elc", rev = "v0.1.3", default-features = false } +optimism-derivation = { git = "https://github.com/datachainlab/optimism-elc", rev = "v0.1.5", default-features = false } +base64 = "0.22.1" [dev-dependencies] prost = "0.11.9" diff --git a/server/src/host/single/config.rs b/server/src/host/single/config.rs index ba98058..5abbacc 100644 --- a/server/src/host/single/config.rs +++ b/server/src/host/single/config.rs @@ -30,4 +30,8 @@ pub struct Config { /// look up the config in the superchain registry. #[clap(long, default_value = "0.0.0.0:10080")] pub http_server_addr: String, + + /// Optional L1 chain config base64 json string. (this is only required for devnet) + #[clap(long)] + pub l1_chain_config: Option, } diff --git a/server/src/host/single/handler.rs b/server/src/host/single/handler.rs index b94b035..33ee8c6 100644 --- a/server/src/host/single/handler.rs +++ b/server/src/host/single/handler.rs @@ -5,14 +5,14 @@ use crate::host::single::local_kv::LocalKeyValueStore; use crate::host::single::trace::{encode_to_bytes, TracingKeyValueStore}; use alloy_primitives::B256; use anyhow::Result; -use kona_genesis::RollupConfig; +use kona_genesis::{L1ChainConfig, RollupConfig}; use kona_host::single::{SingleChainHintHandler, SingleChainHost}; use kona_host::{MemoryKeyValueStore, OnlineHostBackend, PreimageServer, SplitKeyValueStore}; use kona_preimage::{ BidirectionalChannel, HintReader, HintWriter, NativeChannel, OracleReader, OracleServer, PreimageKey, }; -use kona_proof::boot::L2_ROLLUP_CONFIG_KEY; +use kona_proof::boot::{L1_CONFIG_KEY, L2_ROLLUP_CONFIG_KEY}; use kona_proof::HintType; use std::sync::Arc; use tokio::sync::RwLock; @@ -28,6 +28,8 @@ pub struct DerivationRequest { pub l1_head_hash: B256, pub l2_output_root: B256, pub l2_block_number: u64, + /// L1 chain config, only required in devnet + pub l1_chain_config: Option, } impl DerivationRequest { @@ -104,6 +106,13 @@ impl DerivationRequest { let roll_up_config_json = serde_json::to_vec(&self.rollup_config)?; used.insert(local_key, roll_up_config_json); + // In devnet, we need to provide L1 chain config preimage + if let Some(l1_chain_config) = &self.l1_chain_config { + let local_key = PreimageKey::new_local(L1_CONFIG_KEY.to()); + let l1_chain_config_json = serde_json::to_vec(l1_chain_config)?; + used.insert(local_key, l1_chain_config_json); + } + let entry_size = used.len(); let preimage = encode_to_bytes(used); let preimage_bytes: Vec = preimage.into_vec().unwrap(); diff --git a/server/src/host/single/local_kv.rs b/server/src/host/single/local_kv.rs index fc3da02..7c9843e 100644 --- a/server/src/host/single/local_kv.rs +++ b/server/src/host/single/local_kv.rs @@ -7,8 +7,8 @@ use anyhow::Result; use kona_host::KeyValueStore; use kona_preimage::PreimageKey; use kona_proof::boot::{ - L1_HEAD_KEY, L2_CHAIN_ID_KEY, L2_CLAIM_BLOCK_NUMBER_KEY, L2_CLAIM_KEY, L2_OUTPUT_ROOT_KEY, - L2_ROLLUP_CONFIG_KEY, + L1_CONFIG_KEY, L1_HEAD_KEY, L2_CHAIN_ID_KEY, L2_CLAIM_BLOCK_NUMBER_KEY, L2_CLAIM_KEY, + L2_OUTPUT_ROOT_KEY, L2_ROLLUP_CONFIG_KEY, }; /// A simple, synchronous key-value store that returns data from a [SingleChainHostCli] config. @@ -38,6 +38,19 @@ impl KeyValueStore for LocalKeyValueStore { let serialized = serde_json::to_vec(&rollup_config).ok()?; Some(serialized) } + L1_CONFIG_KEY => { + let l1_chain_config = self.cfg.l1_chain_config.clone(); + match l1_chain_config { + None => { + tracing::error!("L1 chain config is not provided in derivation request"); + None + } + Some(l1_chain_config) => { + let serialized = serde_json::to_vec(&l1_chain_config).ok()?; + Some(serialized) + } + } + } _ => None, } } diff --git a/server/src/l2_client.rs b/server/src/l2_client.rs index 2b3f07e..4107acf 100644 --- a/server/src/l2_client.rs +++ b/server/src/l2_client.rs @@ -167,7 +167,7 @@ impl L2Client { let client = reqwest::Client::new(); let body = RpcRequest { method: "optimism_outputAtBlock".into(), - params: vec![format!("0x{:X}", number).into()], + params: vec![format!("0x{number:X}").into()], ..Default::default() }; let response = client @@ -185,7 +185,7 @@ impl L2Client { let client = reqwest::Client::new(); let body = RpcRequest { method: "eth_getBlockByNumber".into(), - params: vec![format!("0x{:X}", number).into(), false.into()], + params: vec![format!("0x{number:X}").into(), false.into()], ..Default::default() }; let response = client diff --git a/server/src/main.rs b/server/src/main.rs index feb5f69..ad4344c 100644 --- a/server/src/main.rs +++ b/server/src/main.rs @@ -1,5 +1,6 @@ use crate::host::single::config::Config; use crate::server::{start_http_server_task, DerivationState}; +use base64::Engine; use clap::Parser; use l2_client::L2Client; use tracing::info; @@ -31,11 +32,20 @@ async fn main() -> anyhow::Result<()> { let rollup_config = l2_client.rollup_config().await?; let chain_id = l2_client.chain_id().await?; + let l1_chain_config = if let Some(l1_chain_config) = &config.l1_chain_config { + let decoded = base64::engine::general_purpose::STANDARD.decode(l1_chain_config)?; + let l1_chain_config: kona_genesis::L1ChainConfig = serde_json::from_slice(&decoded)?; + Some(l1_chain_config) + } else { + None + }; + // Start HTTP server let http_server_task = start_http_server_task( config.http_server_addr.as_str(), DerivationState { rollup_config: rollup_config.clone(), + l1_chain_config, config: config.clone(), l2_chain_id: chain_id, }, diff --git a/server/src/server.rs b/server/src/server.rs index 30888e5..cdedc6c 100644 --- a/server/src/server.rs +++ b/server/src/server.rs @@ -6,7 +6,7 @@ use axum::extract::State; use axum::http::StatusCode; use axum::routing::post; use axum::Json; -use kona_genesis::RollupConfig; +use kona_genesis::{L1ChainConfig, RollupConfig}; use serde::{Deserialize, Serialize}; use std::fmt::Debug; use std::sync::Arc; @@ -16,6 +16,7 @@ use tracing::{error, info}; pub struct DerivationState { pub rollup_config: RollupConfig, + pub l1_chain_config: Option, pub config: Config, pub l2_chain_id: u64, } @@ -63,6 +64,7 @@ async fn derivation( let derivation = DerivationRequest { config: state.config.clone(), rollup_config: state.rollup_config.clone(), + l1_chain_config: state.l1_chain_config.clone(), l2_chain_id: state.l2_chain_id, agreed_l2_head_hash: payload.agreed_l2_head_hash, agreed_l2_output_root: payload.agreed_l2_output_root,