diff --git a/Cargo.lock b/Cargo.lock index cfb315bb..921b7808 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -53,14 +53,14 @@ dependencies = [ name = "aggregation" version = "0.1.0" dependencies = [ - "alloy-consensus", - "alloy-primitives 0.8.12", - "alloy-sol-types 0.8.12", + "alloy-consensus 0.6.4", + "alloy-primitives 0.8.14", + "alloy-sol-types 0.8.14", "bincode", "op-succinct-client-utils", "serde_cbor", "sha2", - "sp1-lib 3.3.0", + "sp1-lib 3.4.0", "sp1-zkvm", ] @@ -114,9 +114,9 @@ dependencies = [ [[package]] name = "allocator-api2" -version = "0.2.20" +version = "0.2.21" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "45862d1c77f2228b9e10bc609d5bc203d86ebc9b87ad8d5d5167a6c9abf739d9" +checksum = "683d7910e743518b0e34f1186f92494becacb047c7b6bf616c96772180fef923" [[package]] name = "alloy" @@ -124,17 +124,17 @@ version = "0.6.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b5b524b8c28a7145d1fe4950f84360b5de3e307601679ff0558ddc20ea229399" dependencies = [ - "alloy-consensus", + "alloy-consensus 0.6.4", "alloy-contract", "alloy-core", - "alloy-eips", - "alloy-network", + "alloy-eips 0.6.4", + "alloy-network 0.6.4", "alloy-provider", "alloy-pubsub", "alloy-rpc-client", "alloy-rpc-types", - "alloy-signer", - "alloy-signer-local", + "alloy-signer 0.6.4", + "alloy-signer-local 0.6.4", "alloy-transport", "alloy-transport-http", "alloy-transport-ipc", @@ -143,25 +143,39 @@ dependencies = [ [[package]] name = "alloy-chains" -version = "0.1.47" +version = "0.1.48" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "18c5c520273946ecf715c0010b4e3503d7eba9893cd9ce6b7fff5654c4a3c470" +checksum = "a0161082e0edd9013d23083465cc04b20e44b7a15646d36ba7b0cdb7cd6fe18f" dependencies = [ - "alloy-primitives 0.8.12", + "alloy-primitives 0.8.14", "num_enum 0.7.3", "strum", ] +[[package]] +name = "alloy-consensus" +version = "0.3.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "629b62e38d471cc15fea534eb7283d2f8a4e8bdb1811bcc5d66dda6cfce6fae1" +dependencies = [ + "alloy-eips 0.3.6", + "alloy-primitives 0.8.14", + "alloy-rlp", + "alloy-serde 0.3.6", + "c-kzg", + "serde", +] + [[package]] name = "alloy-consensus" version = "0.6.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ae09ffd7c29062431dd86061deefe4e3c6f07fa0d674930095f8dcedb0baf02c" dependencies = [ - "alloy-eips", - "alloy-primitives 0.8.12", + "alloy-eips 0.6.4", + "alloy-primitives 0.8.14", "alloy-rlp", - "alloy-serde", + "alloy-serde 0.6.4", "auto_impl", "c-kzg", "derive_more 1.0.0", @@ -177,13 +191,13 @@ checksum = "66430a72d5bf5edead101c8c2f0a24bada5ec9f3cf9909b3e08b6d6899b4803e" dependencies = [ "alloy-dyn-abi", "alloy-json-abi", - "alloy-network", - "alloy-network-primitives", - "alloy-primitives 0.8.12", + "alloy-network 0.6.4", + "alloy-network-primitives 0.6.4", + "alloy-primitives 0.8.14", "alloy-provider", "alloy-pubsub", - "alloy-rpc-types-eth", - "alloy-sol-types 0.8.12", + "alloy-rpc-types-eth 0.6.4", + "alloy-sol-types 0.8.14", "alloy-transport", "futures", "futures-util", @@ -192,26 +206,26 @@ dependencies = [ [[package]] name = "alloy-core" -version = "0.8.12" +version = "0.8.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9c8316d83e590f4163b221b8180008f302bda5cf5451202855cdd323e588849c" +checksum = "c3d14d531c99995de71558e8e2206c27d709559ee8e5a0452b965ea82405a013" dependencies = [ "alloy-dyn-abi", "alloy-json-abi", - "alloy-primitives 0.8.12", - "alloy-sol-types 0.8.12", + "alloy-primitives 0.8.14", + "alloy-sol-types 0.8.14", ] [[package]] name = "alloy-dyn-abi" -version = "0.8.12" +version = "0.8.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ef2364c782a245cf8725ea6dbfca5f530162702b5d685992ea03ce64529136cc" +checksum = "80759b3f57b3b20fa7cd8fef6479930fc95461b58ff8adea6e87e618449c8a1d" dependencies = [ "alloy-json-abi", - "alloy-primitives 0.8.12", + "alloy-primitives 0.8.14", "alloy-sol-type-parser", - "alloy-sol-types 0.8.12", + "alloy-sol-types 0.8.14", "const-hex", "itoa", "serde", @@ -225,7 +239,18 @@ version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0069cf0642457f87a01a014f6dc29d5d893cd4fd8fddf0c3cdfad1bb3ebafc41" dependencies = [ - "alloy-primitives 0.8.12", + "alloy-primitives 0.8.14", + "alloy-rlp", + "serde", +] + +[[package]] +name = "alloy-eip7702" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ea59dc42102bc9a1905dc57901edc6dd48b9f38115df86c7d252acba70d71d04" +dependencies = [ + "alloy-primitives 0.8.14", "alloy-rlp", "serde", ] @@ -236,7 +261,7 @@ version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "eeffd2590ce780ddfaa9d0ae340eb2b4e08627650c4676eef537cef0b4bf535d" dependencies = [ - "alloy-primitives 0.8.12", + "alloy-primitives 0.8.14", "alloy-rlp", "k256", "serde", @@ -244,17 +269,35 @@ dependencies = [ [[package]] name = "alloy-eip7702" -version = "0.4.1" +version = "0.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5f6cee6a35793f3db8a5ffe60e86c695f321d081a567211245f503e8c498fce8" +checksum = "4c986539255fb839d1533c128e190e557e52ff652c9ef62939e233a81dd93f7e" dependencies = [ - "alloy-primitives 0.8.12", + "alloy-primitives 0.8.14", "alloy-rlp", "derive_more 1.0.0", "k256", "serde", ] +[[package]] +name = "alloy-eips" +version = "0.3.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f923dd5fca5f67a43d81ed3ebad0880bd41f6dd0ada930030353ac356c54cd0f" +dependencies = [ + "alloy-eip2930", + "alloy-eip7702 0.1.1", + "alloy-primitives 0.8.14", + "alloy-rlp", + "alloy-serde 0.3.6", + "c-kzg", + "derive_more 1.0.0", + "once_cell", + "serde", + "sha2", +] + [[package]] name = "alloy-eips" version = "0.6.4" @@ -262,10 +305,10 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5b6aa3961694b30ba53d41006131a2fca3bdab22e4c344e46db2c639e7c2dfdd" dependencies = [ "alloy-eip2930", - "alloy-eip7702 0.4.1", - "alloy-primitives 0.8.12", + "alloy-eip7702 0.4.2", + "alloy-primitives 0.8.14", "alloy-rlp", - "alloy-serde", + "alloy-serde 0.6.4", "c-kzg", "derive_more 1.0.0", "once_cell", @@ -275,45 +318,80 @@ dependencies = [ [[package]] name = "alloy-json-abi" -version = "0.8.12" +version = "0.8.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b84c506bf264110fa7e90d9924f742f40ef53c6572ea56a0b0bd714a567ed389" +checksum = "ac4b22b3e51cac09fd2adfcc73b55f447b4df669f983c13f7894ec82b607c63f" dependencies = [ - "alloy-primitives 0.8.12", + "alloy-primitives 0.8.14", "alloy-sol-type-parser", "serde", "serde_json", ] +[[package]] +name = "alloy-json-rpc" +version = "0.3.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d3c717b5298fad078cd3a418335b266eba91b511383ca9bd497f742d5975d5ab" +dependencies = [ + "alloy-primitives 0.8.14", + "alloy-sol-types 0.8.14", + "serde", + "serde_json", + "thiserror 1.0.69", + "tracing", +] + [[package]] name = "alloy-json-rpc" version = "0.6.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3694b7e480728c0b3e228384f223937f14c10caef5a4c766021190fc8f283d35" dependencies = [ - "alloy-primitives 0.8.12", - "alloy-sol-types 0.8.12", + "alloy-primitives 0.8.14", + "alloy-sol-types 0.8.14", "serde", "serde_json", "thiserror 1.0.69", "tracing", ] +[[package]] +name = "alloy-network" +version = "0.3.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fb3705ce7d8602132bcf5ac7a1dd293a42adc2f183abf5907c30ac535ceca049" +dependencies = [ + "alloy-consensus 0.3.6", + "alloy-eips 0.3.6", + "alloy-json-rpc 0.3.6", + "alloy-network-primitives 0.3.6", + "alloy-primitives 0.8.14", + "alloy-rpc-types-eth 0.3.6", + "alloy-serde 0.3.6", + "alloy-signer 0.3.6", + "alloy-sol-types 0.8.14", + "async-trait", + "auto_impl", + "futures-utils-wasm", + "thiserror 1.0.69", +] + [[package]] name = "alloy-network" version = "0.6.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ea94b8ceb5c75d7df0a93ba0acc53b55a22b47b532b600a800a87ef04eb5b0b4" dependencies = [ - "alloy-consensus", - "alloy-eips", - "alloy-json-rpc", - "alloy-network-primitives", - "alloy-primitives 0.8.12", - "alloy-rpc-types-eth", - "alloy-serde", - "alloy-signer", - "alloy-sol-types 0.8.12", + "alloy-consensus 0.6.4", + "alloy-eips 0.6.4", + "alloy-json-rpc 0.6.4", + "alloy-network-primitives 0.6.4", + "alloy-primitives 0.8.14", + "alloy-rpc-types-eth 0.6.4", + "alloy-serde 0.6.4", + "alloy-signer 0.6.4", + "alloy-sol-types 0.8.14", "async-trait", "auto_impl", "futures-utils-wasm", @@ -322,16 +400,28 @@ dependencies = [ "thiserror 1.0.69", ] +[[package]] +name = "alloy-network-primitives" +version = "0.3.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "94ad40869867ed2d9cd3842b1e800889e5b49e6b92da346e93862b4a741bedf3" +dependencies = [ + "alloy-eips 0.3.6", + "alloy-primitives 0.8.14", + "alloy-serde 0.3.6", + "serde", +] + [[package]] name = "alloy-network-primitives" version = "0.6.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "df9f3e281005943944d15ee8491534a1c7b3cbf7a7de26f8c433b842b93eb5f9" dependencies = [ - "alloy-consensus", - "alloy-eips", - "alloy-primitives 0.8.12", - "alloy-serde", + "alloy-consensus 0.6.4", + "alloy-eips 0.6.4", + "alloy-primitives 0.8.14", + "alloy-serde 0.6.4", "serde", ] @@ -359,9 +449,9 @@ dependencies = [ [[package]] name = "alloy-primitives" -version = "0.8.12" +version = "0.8.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9fce5dbd6a4f118eecc4719eaa9c7ffc31c315e6c5ccde3642db927802312425" +checksum = "9db948902dfbae96a73c2fbf1f7abec62af034ab883e4c777c3fd29702bd6e2c" dependencies = [ "alloy-rlp", "bytes", @@ -369,9 +459,9 @@ dependencies = [ "const-hex", "derive_more 1.0.0", "foldhash", - "hashbrown 0.15.1", + "hashbrown 0.15.2", "hex-literal", - "indexmap 2.6.0", + "indexmap 2.7.0", "itoa", "k256", "keccak-asm", @@ -379,7 +469,7 @@ dependencies = [ "proptest", "rand", "ruint", - "rustc-hash 2.0.0", + "rustc-hash 2.1.0", "serde", "sha3", "tiny-keccak", @@ -392,15 +482,15 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "40c1f9eede27bf4c13c099e8e64d54efd7ce80ef6ea47478aa75d5d74e2dba3b" dependencies = [ "alloy-chains", - "alloy-consensus", - "alloy-eips", - "alloy-json-rpc", - "alloy-network", - "alloy-network-primitives", - "alloy-primitives 0.8.12", + "alloy-consensus 0.6.4", + "alloy-eips 0.6.4", + "alloy-json-rpc 0.6.4", + "alloy-network 0.6.4", + "alloy-network-primitives 0.6.4", + "alloy-primitives 0.8.14", "alloy-pubsub", "alloy-rpc-client", - "alloy-rpc-types-eth", + "alloy-rpc-types-eth 0.6.4", "alloy-transport", "alloy-transport-http", "alloy-transport-ipc", @@ -431,8 +521,8 @@ version = "0.6.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "90f1f34232f77341076541c405482e4ae12f0ee7153d8f9969fc1691201b2247" dependencies = [ - "alloy-json-rpc", - "alloy-primitives 0.8.12", + "alloy-json-rpc 0.6.4", + "alloy-primitives 0.8.14", "alloy-transport", "bimap", "futures", @@ -440,7 +530,7 @@ dependencies = [ "serde_json", "tokio", "tokio-stream", - "tower", + "tower 0.5.1", "tracing", ] @@ -463,7 +553,7 @@ checksum = "2b09cae092c27b6f1bde952653a22708691802e57bfef4a2973b80bea21efd3f" dependencies = [ "proc-macro2", "quote", - "syn 2.0.87", + "syn 2.0.90", ] [[package]] @@ -472,8 +562,8 @@ version = "0.6.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "374dbe0dc3abdc2c964f36b3d3edf9cdb3db29d16bda34aa123f03d810bec1dd" dependencies = [ - "alloy-json-rpc", - "alloy-primitives 0.8.12", + "alloy-json-rpc 0.6.4", + "alloy-primitives 0.8.14", "alloy-pubsub", "alloy-transport", "alloy-transport-http", @@ -486,7 +576,7 @@ dependencies = [ "serde_json", "tokio", "tokio-stream", - "tower", + "tower 0.5.1", "tracing", "url", "wasmtimer", @@ -498,10 +588,10 @@ version = "0.6.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c74832aa474b670309c20fffc2a869fa141edab7c79ff7963fad0a08de60bae1" dependencies = [ - "alloy-primitives 0.8.12", + "alloy-primitives 0.8.14", "alloy-rpc-types-engine", - "alloy-rpc-types-eth", - "alloy-serde", + "alloy-rpc-types-eth 0.6.4", + "alloy-serde 0.6.4", "serde", ] @@ -511,8 +601,8 @@ version = "0.6.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "922fa76678d2f9f07ea1b19309b5cfbf244c6029dcba3515227b515fdd6ed4a7" dependencies = [ - "alloy-eips", - "alloy-primitives 0.8.12", + "alloy-eips 0.6.4", + "alloy-primitives 0.8.14", "alloy-rpc-types-engine", "serde", "serde_with", @@ -525,53 +615,99 @@ version = "0.6.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3f56294dce86af23ad6ee8df46cf8b0d292eb5d1ff67dc88a0886051e32b1faf" dependencies = [ - "alloy-consensus", - "alloy-eips", - "alloy-primitives 0.8.12", + "alloy-consensus 0.6.4", + "alloy-eips 0.6.4", + "alloy-primitives 0.8.14", "alloy-rlp", - "alloy-serde", + "alloy-serde 0.6.4", "derive_more 1.0.0", "serde", "strum", ] +[[package]] +name = "alloy-rpc-types-eth" +version = "0.3.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "83aa984386deda02482660aa31cb8ca1e63d533f1c31a52d7d181ac5ec68e9b8" +dependencies = [ + "alloy-consensus 0.3.6", + "alloy-eips 0.3.6", + "alloy-network-primitives 0.3.6", + "alloy-primitives 0.8.14", + "alloy-rlp", + "alloy-serde 0.3.6", + "alloy-sol-types 0.8.14", + "cfg-if", + "derive_more 1.0.0", + "hashbrown 0.14.5", + "itertools 0.13.0", + "serde", + "serde_json", +] + [[package]] name = "alloy-rpc-types-eth" version = "0.6.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a8a477281940d82d29315846c7216db45b15e90bcd52309da9f54bcf7ad94a11" dependencies = [ - "alloy-consensus", - "alloy-eips", - "alloy-network-primitives", - "alloy-primitives 0.8.12", + "alloy-consensus 0.6.4", + "alloy-eips 0.6.4", + "alloy-network-primitives 0.6.4", + "alloy-primitives 0.8.14", "alloy-rlp", - "alloy-serde", - "alloy-sol-types 0.8.12", + "alloy-serde 0.6.4", + "alloy-sol-types 0.8.14", "derive_more 1.0.0", "itertools 0.13.0", "serde", "serde_json", ] +[[package]] +name = "alloy-serde" +version = "0.3.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "731f75ec5d383107fd745d781619bd9cedf145836c51ecb991623d41278e71fa" +dependencies = [ + "alloy-primitives 0.8.14", + "serde", + "serde_json", +] + [[package]] name = "alloy-serde" version = "0.6.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4dfa4a7ccf15b2492bb68088692481fd6b2604ccbee1d0d6c44c21427ae4df83" dependencies = [ - "alloy-primitives 0.8.12", + "alloy-primitives 0.8.14", "serde", "serde_json", ] +[[package]] +name = "alloy-signer" +version = "0.3.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "307324cca94354cd654d6713629f0383ec037e1ff9e3e3d547212471209860c0" +dependencies = [ + "alloy-primitives 0.8.14", + "async-trait", + "auto_impl", + "elliptic-curve", + "k256", + "thiserror 1.0.69", +] + [[package]] name = "alloy-signer" version = "0.6.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2e10aec39d60dc27edcac447302c7803d2371946fb737245320a05b78eb2fafd" dependencies = [ - "alloy-primitives 0.8.12", + "alloy-primitives 0.8.14", "async-trait", "auto_impl", "elliptic-curve", @@ -579,16 +715,32 @@ dependencies = [ "thiserror 1.0.69", ] +[[package]] +name = "alloy-signer-local" +version = "0.3.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9fabe917ab1778e760b4701628d1cae8e028ee9d52ac6307de4e1e9286ab6b5f" +dependencies = [ + "alloy-consensus 0.3.6", + "alloy-network 0.3.6", + "alloy-primitives 0.8.14", + "alloy-signer 0.3.6", + "async-trait", + "k256", + "rand", + "thiserror 1.0.69", +] + [[package]] name = "alloy-signer-local" version = "0.6.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d8396f6dff60700bc1d215ee03d86ff56de268af96e2bf833a14d0bafcab9882" dependencies = [ - "alloy-consensus", - "alloy-network", - "alloy-primitives 0.8.12", - "alloy-signer", + "alloy-consensus 0.6.4", + "alloy-network 0.6.4", + "alloy-primitives 0.8.14", + "alloy-signer 0.6.4", "async-trait", "k256", "rand", @@ -606,21 +758,21 @@ dependencies = [ "proc-macro-error", "proc-macro2", "quote", - "syn 2.0.87", + "syn 2.0.90", ] [[package]] name = "alloy-sol-macro" -version = "0.8.12" +version = "0.8.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9343289b4a7461ed8bab8618504c995c049c082b70c7332efd7b32125633dc05" +checksum = "3bfd7853b65a2b4f49629ec975fee274faf6dff15ab8894c620943398ef283c0" dependencies = [ - "alloy-sol-macro-expander 0.8.12", - "alloy-sol-macro-input 0.8.12", + "alloy-sol-macro-expander 0.8.14", + "alloy-sol-macro-input 0.8.14", "proc-macro-error2", "proc-macro2", "quote", - "syn 2.0.87", + "syn 2.0.90", ] [[package]] @@ -632,31 +784,31 @@ dependencies = [ "alloy-sol-macro-input 0.7.7", "const-hex", "heck", - "indexmap 2.6.0", + "indexmap 2.7.0", "proc-macro-error", "proc-macro2", "quote", - "syn 2.0.87", + "syn 2.0.90", "syn-solidity 0.7.7", "tiny-keccak", ] [[package]] name = "alloy-sol-macro-expander" -version = "0.8.12" +version = "0.8.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4222d70bec485ceccc5d8fd4f2909edd65b5d5e43d4aca0b5dcee65d519ae98f" +checksum = "82ec42f342d9a9261699f8078e57a7a4fda8aaa73c1a212ed3987080e6a9cd13" dependencies = [ "alloy-json-abi", - "alloy-sol-macro-input 0.8.12", + "alloy-sol-macro-input 0.8.14", "const-hex", "heck", - "indexmap 2.6.0", + "indexmap 2.7.0", "proc-macro-error2", "proc-macro2", "quote", - "syn 2.0.87", - "syn-solidity 0.8.12", + "syn 2.0.90", + "syn-solidity 0.8.14", "tiny-keccak", ] @@ -671,15 +823,15 @@ dependencies = [ "heck", "proc-macro2", "quote", - "syn 2.0.87", + "syn 2.0.90", "syn-solidity 0.7.7", ] [[package]] name = "alloy-sol-macro-input" -version = "0.8.12" +version = "0.8.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2e17f2677369571b976e51ea1430eb41c3690d344fef567b840bfc0b01b6f83a" +checksum = "ed2c50e6a62ee2b4f7ab3c6d0366e5770a21cad426e109c2f40335a1b3aff3df" dependencies = [ "alloy-json-abi", "const-hex", @@ -688,15 +840,15 @@ dependencies = [ "proc-macro2", "quote", "serde_json", - "syn 2.0.87", - "syn-solidity 0.8.12", + "syn 2.0.90", + "syn-solidity 0.8.14", ] [[package]] name = "alloy-sol-type-parser" -version = "0.8.12" +version = "0.8.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aa64d80ae58ffaafdff9d5d84f58d03775f66c84433916dc9a64ed16af5755da" +checksum = "ac17c6e89a50fb4a758012e4b409d9a0ba575228e69b539fe37d7a1bd507ca4a" dependencies = [ "serde", "winnow 0.6.20", @@ -716,13 +868,13 @@ dependencies = [ [[package]] name = "alloy-sol-types" -version = "0.8.12" +version = "0.8.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6520d427d4a8eb7aa803d852d7a52ceb0c519e784c292f64bb339e636918cf27" +checksum = "c9dc0fffe397aa17628160e16b89f704098bf3c9d74d5d369ebc239575936de5" dependencies = [ "alloy-json-abi", - "alloy-primitives 0.8.12", - "alloy-sol-macro 0.8.12", + "alloy-primitives 0.8.14", + "alloy-sol-macro 0.8.14", "const-hex", "serde", ] @@ -733,7 +885,7 @@ version = "0.6.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f99acddb34000d104961897dbb0240298e8b775a7efffb9fda2a1a3efedd65b3" dependencies = [ - "alloy-json-rpc", + "alloy-json-rpc 0.6.4", "base64 0.22.1", "futures-util", "futures-utils-wasm", @@ -741,7 +893,7 @@ dependencies = [ "serde_json", "thiserror 1.0.69", "tokio", - "tower", + "tower 0.5.1", "tracing", "url", "wasmtimer", @@ -753,11 +905,11 @@ version = "0.6.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5dc013132e34eeadaa0add7e74164c1503988bfba8bae885b32e0918ba85a8a6" dependencies = [ - "alloy-json-rpc", + "alloy-json-rpc 0.6.4", "alloy-transport", "reqwest 0.12.9", "serde_json", - "tower", + "tower 0.5.1", "tracing", "url", ] @@ -768,7 +920,7 @@ version = "0.6.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "063edc0660e81260653cc6a95777c29d54c2543a668aa5da2359fb450d25a1ba" dependencies = [ - "alloy-json-rpc", + "alloy-json-rpc 0.6.4", "alloy-pubsub", "alloy-transport", "bytes", @@ -790,7 +942,7 @@ dependencies = [ "alloy-pubsub", "alloy-transport", "futures", - "http 1.1.0", + "http 1.2.0", "rustls", "serde_json", "tokio", @@ -801,11 +953,11 @@ dependencies = [ [[package]] name = "alloy-trie" -version = "0.7.4" +version = "0.7.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b6b2e366c0debf0af77766c23694a3f863b02633050e71e096e257ffbd395e50" +checksum = "3a5fd8fea044cc9a8c8a50bb6f28e31f0385d820f116c5b98f6f4e55d6e5590b" dependencies = [ - "alloy-primitives 0.8.12", + "alloy-primitives 0.8.14", "alloy-rlp", "arrayvec", "derive_more 1.0.0", @@ -890,9 +1042,9 @@ dependencies = [ [[package]] name = "anyhow" -version = "1.0.93" +version = "1.0.94" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4c95c10ba0b00a02636238b814946408b1322d5ac4760326e6fb8ec956d85775" +checksum = "c1fd03a028ef38ba2276dce7e33fcd6369c158a1bca17946c4b1b701891c1ff7" [[package]] name = "ark-ff" @@ -1052,7 +1204,7 @@ checksum = "c7c24de15d275a1ecfd47a380fb4d5ec9bfe0933f309ed5e705b775596a3574d" dependencies = [ "proc-macro2", "quote", - "syn 2.0.87", + "syn 2.0.90", ] [[package]] @@ -1063,7 +1215,7 @@ checksum = "721cae7de5c34fbb2acd27e21e6d2cf7b886dce0c27388d46c4e6c47ea4318dd" dependencies = [ "proc-macro2", "quote", - "syn 2.0.87", + "syn 2.0.90", ] [[package]] @@ -1101,7 +1253,7 @@ checksum = "3c87f3f15e7794432337fc718554eaa4dc8f04c9677a950ffe366f20a162ae42" dependencies = [ "proc-macro2", "quote", - "syn 2.0.87", + "syn 2.0.90", ] [[package]] @@ -1120,7 +1272,7 @@ dependencies = [ "axum-core", "bytes", "futures-util", - "http 1.1.0", + "http 1.2.0", "http-body 1.0.1", "http-body-util", "hyper 1.5.1", @@ -1136,9 +1288,9 @@ dependencies = [ "serde_json", "serde_path_to_error", "serde_urlencoded", - "sync_wrapper 1.0.1", + "sync_wrapper 1.0.2", "tokio", - "tower", + "tower 0.5.1", "tower-layer", "tower-service", "tracing", @@ -1153,18 +1305,32 @@ dependencies = [ "async-trait", "bytes", "futures-util", - "http 1.1.0", + "http 1.2.0", "http-body 1.0.1", "http-body-util", "mime", "pin-project-lite", "rustversion", - "sync_wrapper 1.0.1", + "sync_wrapper 1.0.2", "tower-layer", "tower-service", "tracing", ] +[[package]] +name = "backoff" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b62ddb9cb1ec0a098ad4bbf9344d0713fa193ae1a80af55febcff2627b6a00c1" +dependencies = [ + "futures-core", + "getrandom", + "instant", + "pin-project-lite", + "rand", + "tokio", +] + [[package]] name = "backtrace" version = "0.3.74" @@ -1249,7 +1415,7 @@ dependencies = [ "regex", "rustc-hash 1.1.0", "shlex", - "syn 2.0.87", + "syn 2.0.90", ] [[package]] @@ -1269,7 +1435,7 @@ dependencies = [ "regex", "rustc-hash 1.1.0", "shlex", - "syn 2.0.87", + "syn 2.0.90", ] [[package]] @@ -1463,7 +1629,7 @@ checksum = "523363cbe1df49b68215efdf500b103ac3b0fb4836aed6d15689a076eadb8fff" dependencies = [ "proc-macro2", "quote", - "syn 2.0.87", + "syn 2.0.90", ] [[package]] @@ -1483,7 +1649,7 @@ checksum = "bcfcc3cd946cb52f0bbfdbbcfa2f4e24f75ebb6c0e1002f7c25904fada18b9ec" dependencies = [ "proc-macro2", "quote", - "syn 2.0.87", + "syn 2.0.90", ] [[package]] @@ -1494,9 +1660,9 @@ checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b" [[package]] name = "bytes" -version = "1.8.0" +version = "1.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9ac0150caa2ae65ca5bd83f25c7de183dea78d4d366469f148435e2acfbad0da" +checksum = "325918d6fe32f23b19878fe4b34794ae41fc19ddbe53b10571a4874d44ffd39b" dependencies = [ "serde", ] @@ -1538,9 +1704,9 @@ dependencies = [ [[package]] name = "cargo-platform" -version = "0.1.8" +version = "0.1.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "24b1f0365a6c6bb4020cd05806fd0d33c44d38046b8bd7f0e40814b9763cabfc" +checksum = "e35af189006b9c0f00a064685c727031e3ed2d8020f7ba284d78cc2671bd36ea" dependencies = [ "serde", ] @@ -1561,9 +1727,9 @@ dependencies = [ [[package]] name = "cc" -version = "1.2.1" +version = "1.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fd9de9f2205d5ef3fd67e685b0df337994ddd4495e2a28d185500d0e1edfea47" +checksum = "f34d93e62b03caf570cccc334cbc6c2fceca82f39211051345108adcba3eebdc" dependencies = [ "jobserver", "libc", @@ -1629,9 +1795,9 @@ dependencies = [ [[package]] name = "clap" -version = "4.5.21" +version = "4.5.23" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fb3b4b9e5a7c7514dfa52869339ee98b3156b0bfb4e8a77c4ff4babb64b1604f" +checksum = "3135e7ec2ef7b10c6ed8950f0f792ed96ee093fa088608f1c76e569722700c84" dependencies = [ "clap_builder", "clap_derive", @@ -1639,9 +1805,9 @@ dependencies = [ [[package]] name = "clap_builder" -version = "4.5.21" +version = "4.5.23" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b17a95aa67cc7b5ebd32aa5370189aa0d79069ef1c64ce893bd30fb24bff20ec" +checksum = "30582fc632330df2bd26877bde0c1f4470d57c582bbc070376afcd04d8cb4838" dependencies = [ "anstream", "anstyle", @@ -1658,14 +1824,14 @@ dependencies = [ "heck", "proc-macro2", "quote", - "syn 2.0.87", + "syn 2.0.90", ] [[package]] name = "clap_lex" -version = "0.7.3" +version = "0.7.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "afb84c814227b90d6895e01398aee0d8033c00e7466aca416fb6a8e0eb19d8a7" +checksum = "f46ad14479a25103f283c0f10005961cf086d8dc42205bb44c46ac563475dca6" [[package]] name = "coins-bip32" @@ -1751,9 +1917,9 @@ dependencies = [ [[package]] name = "const-hex" -version = "1.13.1" +version = "1.14.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0121754e84117e65f9d90648ee6aa4882a6e63110307ab73967a4c5e7e69e586" +checksum = "4b0485bab839b018a8f1723fc5391819fea5f8f0f32288ef8a735fd096b6160c" dependencies = [ "cfg-if", "cpufeatures", @@ -1790,6 +1956,16 @@ dependencies = [ "libc", ] +[[package]] +name = "core-foundation" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b55271e5c8c478ad3f38ad24ef34923091e0548492a266d19b3c0b4d82574c63" +dependencies = [ + "core-foundation-sys", + "libc", +] + [[package]] name = "core-foundation-sys" version = "0.8.7" @@ -1798,9 +1974,9 @@ checksum = "773648b94d0e5d620f64f280777445740e61fe701025087ec8b57f45c791888b" [[package]] name = "cpufeatures" -version = "0.2.15" +version = "0.2.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0ca741a962e1b0bff6d724a1a0958b686406e853bb14061f218562e1896f95e6" +checksum = "16b80225097f2e5ae4e7179dd2266824648f3e2f49d9134d584b76389d31c4c3" dependencies = [ "libc", ] @@ -1911,7 +2087,7 @@ checksum = "f46882e17999c6cc590af592290432be3bce0428cb0d5f8b6715e4dc7b383eb3" dependencies = [ "proc-macro2", "quote", - "syn 2.0.87", + "syn 2.0.90", ] [[package]] @@ -1935,7 +2111,7 @@ dependencies = [ "proc-macro2", "quote", "strsim", - "syn 2.0.87", + "syn 2.0.90", ] [[package]] @@ -1946,7 +2122,7 @@ checksum = "d336a2a514f6ccccaa3e09b02d41d35330c07ddf03a62165fcec10bb561c7806" dependencies = [ "darling_core", "quote", - "syn 2.0.87", + "syn 2.0.90", ] [[package]] @@ -2089,7 +2265,7 @@ dependencies = [ "proc-macro2", "quote", "rustc_version 0.4.1", - "syn 2.0.87", + "syn 2.0.90", ] [[package]] @@ -2109,7 +2285,7 @@ checksum = "cb7330aeadfbe296029522e6c40f315320aba36fc43a5b3632f3795348f3bd22" dependencies = [ "proc-macro2", "quote", - "syn 2.0.87", + "syn 2.0.90", "unicode-xid", ] @@ -2163,7 +2339,7 @@ checksum = "97369cbbc041bc366949bc74d34658d6cda5621039731c6310521892a3a20ae0" dependencies = [ "proc-macro2", "quote", - "syn 2.0.87", + "syn 2.0.90", ] [[package]] @@ -2209,7 +2385,7 @@ dependencies = [ "hex-literal", "rfc6979", "signature", - "sp1-lib 3.3.0", + "sp1-lib 3.4.0", "spki", ] @@ -2295,7 +2471,7 @@ checksum = "f282cfdfe92516eb26c2af8589c274c7c17681f5ecc03c18255fe741c6aa64eb" dependencies = [ "proc-macro2", "quote", - "syn 2.0.87", + "syn 2.0.90", ] [[package]] @@ -2306,7 +2482,7 @@ checksum = "2f9ed6b3789237c8a0c1c505af1c7eb2c560df6186f01b098c3a1064ea532f38" dependencies = [ "proc-macro2", "quote", - "syn 2.0.87", + "syn 2.0.90", ] [[package]] @@ -2317,12 +2493,12 @@ checksum = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5" [[package]] name = "errno" -version = "0.3.9" +version = "0.3.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "534c5cf6194dfab3db3242765c03bbe257cf92f22b38f6bc0c58d59108a820ba" +checksum = "33d852cb9b869c2a9b3df2f71a3074817f01e1844f839a144f5fcef059a4eb5d" dependencies = [ "libc", - "windows-sys 0.52.0", + "windows-sys 0.59.0", ] [[package]] @@ -2457,7 +2633,7 @@ dependencies = [ "regex", "serde", "serde_json", - "syn 2.0.87", + "syn 2.0.90", "toml", "walkdir", ] @@ -2475,7 +2651,7 @@ dependencies = [ "proc-macro2", "quote", "serde_json", - "syn 2.0.87", + "syn 2.0.90", ] [[package]] @@ -2501,7 +2677,7 @@ dependencies = [ "serde", "serde_json", "strum", - "syn 2.0.87", + "syn 2.0.90", "tempfile", "thiserror 1.0.69", "tiny-keccak", @@ -2620,7 +2796,7 @@ dependencies = [ name = "fault-proof" version = "0.1.0" dependencies = [ - "alloy-consensus", + "alloy-consensus 0.6.4", "anyhow", "cfg-if", "kona-driver", @@ -2801,7 +2977,7 @@ checksum = "162ee34ebcb7c64a8abebc059ce0fee27c2262618d7b60ed8faf72fef13c3650" dependencies = [ "proc-macro2", "quote", - "syn 2.0.87", + "syn 2.0.90", ] [[package]] @@ -2878,9 +3054,9 @@ dependencies = [ [[package]] name = "generic-array" -version = "1.1.0" +version = "1.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "96512db27971c2c3eece70a1e106fbe6c87760234e31e8f7e5634912fe52794a" +checksum = "2cb8bc4c28d15ade99c7e90b219f30da4be5c88e586277e8cbe886beeb868ab2" dependencies = [ "serde", "typenum", @@ -2971,7 +3147,7 @@ dependencies = [ "futures-sink", "futures-util", "http 0.2.12", - "indexmap 2.6.0", + "indexmap 2.7.0", "slab", "tokio", "tokio-util", @@ -2989,8 +3165,8 @@ dependencies = [ "fnv", "futures-core", "futures-sink", - "http 1.1.0", - "indexmap 2.6.0", + "http 1.2.0", + "indexmap 2.7.0", "slab", "tokio", "tokio-util", @@ -3054,9 +3230,9 @@ dependencies = [ [[package]] name = "hashbrown" -version = "0.15.1" +version = "0.15.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3a9bfc1af68b1726ea47d3d5109de126281def866b33970e10fbab11b5dafab3" +checksum = "bf151400ff0baff5465007dd2f3e717f3fe502074ca563069ce3a6629d07b289" dependencies = [ "allocator-api2", "equivalent", @@ -3122,9 +3298,9 @@ dependencies = [ [[package]] name = "http" -version = "1.1.0" +version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "21b9ddb458710bc376481b842f5da65cdf31522de232c1ca8146abce2a358258" +checksum = "f16ca2af56261c99fba8bac40a10251ce8188205a4c448fbb745a2e4daa76fea" dependencies = [ "bytes", "fnv", @@ -3149,7 +3325,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1efedce1fb8e6913f23e0c92de8e62cd5b772a67e7b3946df930a62566c93184" dependencies = [ "bytes", - "http 1.1.0", + "http 1.2.0", ] [[package]] @@ -3160,7 +3336,7 @@ checksum = "793429d76616a256bcb62c2a2ec2bed781c8307e797e2598c50010f2bee2544f" dependencies = [ "bytes", "futures-util", - "http 1.1.0", + "http 1.2.0", "http-body 1.0.1", "pin-project-lite", ] @@ -3211,7 +3387,7 @@ dependencies = [ "futures-channel", "futures-util", "h2 0.4.7", - "http 1.1.0", + "http 1.2.0", "http-body 1.0.1", "httparse", "httpdate", @@ -3229,7 +3405,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "08afdbb5c31130e3034af566421053ab03787c640246a446327f550d11bcb333" dependencies = [ "futures-util", - "http 1.1.0", + "http 1.2.0", "hyper 1.5.1", "hyper-util", "rustls", @@ -3240,6 +3416,19 @@ dependencies = [ "webpki-roots", ] +[[package]] +name = "hyper-timeout" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2b90d566bffbce6a75bd8b09a05aa8c2cb1fabb6cb348f8840c9e4c90a0d83b0" +dependencies = [ + "hyper 1.5.1", + "hyper-util", + "pin-project-lite", + "tokio", + "tower-service", +] + [[package]] name = "hyper-tls" version = "0.5.0" @@ -3278,7 +3467,7 @@ dependencies = [ "bytes", "futures-channel", "futures-util", - "http 1.1.0", + "http 1.2.0", "http-body 1.0.1", "hyper 1.5.1", "pin-project-lite", @@ -3426,7 +3615,7 @@ checksum = "1ec89e9337638ecdc08744df490b221a7399bf8d164eb52a665454e60e075ad6" dependencies = [ "proc-macro2", "quote", - "syn 2.0.87", + "syn 2.0.90", ] [[package]] @@ -3485,13 +3674,13 @@ dependencies = [ [[package]] name = "impl-trait-for-tuples" -version = "0.2.2" +version = "0.2.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "11d7a9f6330b71fea57921c9b61c47ee6e84f72d394754eff6163ae67e7395eb" +checksum = "a0eb5a3343abf848c0984fe4604b2b105da9539376e24fc0a3b0007411ae4fd9" dependencies = [ "proc-macro2", "quote", - "syn 1.0.109", + "syn 2.0.90", ] [[package]] @@ -3513,12 +3702,12 @@ dependencies = [ [[package]] name = "indexmap" -version = "2.6.0" +version = "2.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "707907fe3c25f5424cce2cb7e1cbcafee6bdbe735ca90ef77c29e84591e5b9da" +checksum = "62f822373a4fe84d4bb149bf54e584a7f4abec90e072ed49cda0edea5b95471f" dependencies = [ "equivalent", - "hashbrown 0.15.1", + "hashbrown 0.15.2", "serde", ] @@ -3555,9 +3744,9 @@ dependencies = [ [[package]] name = "interprocess" -version = "2.2.1" +version = "2.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d2f4e4a06d42fab3e85ab1b419ad32b09eab58b901d40c57935ff92db3287a13" +checksum = "894148491d817cb36b6f778017b8ac46b17408d522dd90f539d677ea938362eb" dependencies = [ "doctest-file", "futures-core", @@ -3609,9 +3798,9 @@ dependencies = [ [[package]] name = "itoa" -version = "1.0.11" +version = "1.0.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "49f1f14873335454500d59611f1cf4a4b0f786f9ac11f4312a78e4cf2566695b" +checksum = "d75a2a4b1b190afb6f5425f10f6a8f959d2ea0b9c2b1d79553551850539e4674" [[package]] name = "jobserver" @@ -3624,10 +3813,11 @@ dependencies = [ [[package]] name = "js-sys" -version = "0.3.72" +version = "0.3.74" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6a88f1bda2bd75b0452a14784937d796722fdebfe50df998aeb3f0b7603019a9" +checksum = "a865e038f7f6ed956f788f0d7d60c541fff74c7bd74272c5d4cf15c63743e705" dependencies = [ + "once_cell", "wasm-bindgen", ] @@ -3697,9 +3887,9 @@ name = "kona-client" version = "0.1.0" source = "git+https://github.com/succinctlabs/kona?rev=8ec836eae1cfe2ebad4624ae4f29839011382425#8ec836eae1cfe2ebad4624ae4f29839011382425" dependencies = [ - "alloy-consensus", - "alloy-eips", - "alloy-primitives 0.8.12", + "alloy-consensus 0.6.4", + "alloy-eips 0.6.4", + "alloy-primitives 0.8.14", "alloy-rlp", "alloy-rpc-types-engine", "async-trait", @@ -3721,7 +3911,7 @@ dependencies = [ "serde", "serde_json", "spin 0.9.8", - "thiserror 2.0.3", + "thiserror 2.0.4", "tracing", ] @@ -3732,7 +3922,7 @@ source = "git+https://github.com/succinctlabs/kona?rev=8ec836eae1cfe2ebad4624ae4 dependencies = [ "cfg-if", "linked_list_allocator", - "thiserror 2.0.3", + "thiserror 2.0.4", ] [[package]] @@ -3745,7 +3935,7 @@ dependencies = [ "kona-common", "proc-macro2", "quote", - "syn 2.0.87", + "syn 2.0.90", ] [[package]] @@ -3753,9 +3943,9 @@ name = "kona-derive" version = "0.1.0" source = "git+https://github.com/succinctlabs/kona?rev=8ec836eae1cfe2ebad4624ae4f29839011382425#8ec836eae1cfe2ebad4624ae4f29839011382425" dependencies = [ - "alloy-consensus", - "alloy-eips", - "alloy-primitives 0.8.12", + "alloy-consensus 0.6.4", + "alloy-eips 0.6.4", + "alloy-primitives 0.8.14", "alloy-rlp", "alloy-rpc-types-engine", "async-trait", @@ -3763,7 +3953,7 @@ dependencies = [ "op-alloy-genesis", "op-alloy-protocol", "op-alloy-rpc-types-engine", - "thiserror 2.0.3", + "thiserror 2.0.4", "tracing", ] @@ -3772,8 +3962,8 @@ name = "kona-driver" version = "0.1.0" source = "git+https://github.com/succinctlabs/kona?rev=8ec836eae1cfe2ebad4624ae4f29839011382425#8ec836eae1cfe2ebad4624ae4f29839011382425" dependencies = [ - "alloy-consensus", - "alloy-primitives 0.8.12", + "alloy-consensus 0.6.4", + "alloy-primitives 0.8.14", "alloy-rlp", "async-trait", "kona-derive", @@ -3781,7 +3971,7 @@ dependencies = [ "op-alloy-genesis", "op-alloy-protocol", "op-alloy-rpc-types-engine", - "thiserror 2.0.3", + "thiserror 2.0.4", "tracing", ] @@ -3790,16 +3980,16 @@ name = "kona-executor" version = "0.1.0" source = "git+https://github.com/succinctlabs/kona?rev=8ec836eae1cfe2ebad4624ae4f29839011382425#8ec836eae1cfe2ebad4624ae4f29839011382425" dependencies = [ - "alloy-consensus", - "alloy-eips", - "alloy-primitives 0.8.12", + "alloy-consensus 0.6.4", + "alloy-eips 0.6.4", + "alloy-primitives 0.8.14", "alloy-rlp", "kona-mpt", "op-alloy-consensus", "op-alloy-genesis", "op-alloy-rpc-types-engine", "revm", - "thiserror 2.0.3", + "thiserror 2.0.4", "tracing", ] @@ -3808,15 +3998,15 @@ name = "kona-host" version = "0.1.0" source = "git+https://github.com/succinctlabs/kona?rev=8ec836eae1cfe2ebad4624ae4f29839011382425#8ec836eae1cfe2ebad4624ae4f29839011382425" dependencies = [ - "alloy-consensus", - "alloy-eips", - "alloy-primitives 0.8.12", + "alloy-consensus 0.6.4", + "alloy-eips 0.6.4", + "alloy-primitives 0.8.14", "alloy-provider", "alloy-rlp", "alloy-rpc-client", "alloy-rpc-types", "alloy-rpc-types-beacon", - "alloy-serde", + "alloy-serde 0.6.4", "alloy-transport-http", "anyhow", "async-trait", @@ -3847,11 +4037,11 @@ name = "kona-mpt" version = "0.1.0" source = "git+https://github.com/succinctlabs/kona?rev=8ec836eae1cfe2ebad4624ae4f29839011382425#8ec836eae1cfe2ebad4624ae4f29839011382425" dependencies = [ - "alloy-primitives 0.8.12", + "alloy-primitives 0.8.14", "alloy-rlp", "alloy-trie", "serde", - "thiserror 2.0.3", + "thiserror 2.0.4", ] [[package]] @@ -3859,10 +4049,10 @@ name = "kona-preimage" version = "0.1.0" source = "git+https://github.com/succinctlabs/kona?rev=8ec836eae1cfe2ebad4624ae4f29839011382425#8ec836eae1cfe2ebad4624ae4f29839011382425" dependencies = [ - "alloy-primitives 0.8.12", + "alloy-primitives 0.8.14", "async-trait", - "rkyv 0.8.8", - "thiserror 2.0.3", + "rkyv 0.8.9", + "thiserror 2.0.4", "tracing", ] @@ -3871,9 +4061,9 @@ name = "kona-proof" version = "0.1.0" source = "git+https://github.com/succinctlabs/kona?rev=8ec836eae1cfe2ebad4624ae4f29839011382425#8ec836eae1cfe2ebad4624ae4f29839011382425" dependencies = [ - "alloy-consensus", - "alloy-eips", - "alloy-primitives 0.8.12", + "alloy-consensus 0.6.4", + "alloy-eips 0.6.4", + "alloy-primitives 0.8.14", "alloy-rlp", "async-trait", "kona-derive", @@ -3890,7 +4080,7 @@ dependencies = [ "serde", "serde_json", "spin 0.9.8", - "thiserror 2.0.3", + "thiserror 2.0.4", "tracing", ] @@ -3924,9 +4114,9 @@ checksum = "830d08ce1d1d941e6b30645f1a0eb5643013d835ce3779a5fc208261dbe10f55" [[package]] name = "libc" -version = "0.2.164" +version = "0.2.167" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "433bfe06b8c75da9b2e3fbea6e5329ff87748f0b144ef75306e674c3f6f7c13f" +checksum = "09d6582e104315a817dff97f75133544b2e094ee22447d2acf4a74e189ba06fc" [[package]] name = "libgit2-sys" @@ -3942,12 +4132,12 @@ dependencies = [ [[package]] name = "libloading" -version = "0.8.5" +version = "0.8.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4979f22fdb869068da03c9f7528f8297c6fd2606bc3a4affe42e6a823fdb8da4" +checksum = "fc2f4eb4bc735547cfed7c0a4922cbd04a4655978c09b54f1f7b228750664c34" dependencies = [ "cfg-if", - "windows-targets 0.48.5", + "windows-targets 0.52.6", ] [[package]] @@ -4009,9 +4199,9 @@ checksum = "78b3ae25bc7c8c38cec158d1f2757ee79e9b3740fbc7ccf0e59e4b08d793fa89" [[package]] name = "litemap" -version = "0.7.3" +version = "0.7.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "643cb0b8d4fcc284004d5fd0d67ccf61dfffadb7f75e1e71bc420f4688a3a704" +checksum = "4ee93343901ab17bd981295f2cf0026d4ad018c7c31ba84549a4ddbb47a45104" [[package]] name = "lock_api" @@ -4035,7 +4225,7 @@ version = "0.12.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "234cf4f4a04dc1f57e24b96cc0cd600cf2af460d4161ac5ecdd0af8e1f3b2a38" dependencies = [ - "hashbrown 0.15.1", + "hashbrown 0.15.2", ] [[package]] @@ -4088,11 +4278,10 @@ dependencies = [ [[package]] name = "mio" -version = "1.0.2" +version = "1.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "80e04d1dcff3aae0704555fe5fee3bcfaf3d1fdf8a7e521d5b9d2b42acb52cec" +checksum = "2886843bf800fba2e3377cff24abf6379b4c4d5c6681eaf9ea5b0d15090450bd" dependencies = [ - "hermit-abi", "libc", "wasi", "windows-sys 0.52.0", @@ -4115,7 +4304,7 @@ checksum = "1bb5c1d8184f13f7d0ccbeeca0def2f9a181bce2624302793005f5ca8aa62e5e" dependencies = [ "proc-macro2", "quote", - "syn 2.0.87", + "syn 2.0.90", ] [[package]] @@ -4130,7 +4319,7 @@ dependencies = [ "openssl-probe", "openssl-sys", "schannel", - "security-framework", + "security-framework 2.11.1", "security-framework-sys", "tempfile", ] @@ -4343,10 +4532,10 @@ version = "0.7.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "af1844ef2428cc3e1cb900be36181049ef3d3193c63e43026cfe202983b27a56" dependencies = [ - "proc-macro-crate 1.3.1", + "proc-macro-crate 3.2.0", "proc-macro2", "quote", - "syn 2.0.87", + "syn 2.0.90", ] [[package]] @@ -4396,14 +4585,14 @@ version = "0.6.8" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fce158d886815d419222daa67fcdf949a34f7950653a4498ebeb4963331f70ed" dependencies = [ - "alloy-consensus", - "alloy-eips", - "alloy-primitives 0.8.12", + "alloy-consensus 0.6.4", + "alloy-eips 0.6.4", + "alloy-primitives 0.8.14", "alloy-rlp", - "alloy-serde", + "alloy-serde 0.6.4", "derive_more 1.0.0", "serde", - "thiserror 2.0.3", + "thiserror 2.0.4", ] [[package]] @@ -4412,13 +4601,13 @@ version = "0.6.8" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2734e9a65efb90fe4520303f984c124766b7d2f2e5dd51cbe54d6269c85a3c91" dependencies = [ - "alloy-consensus", - "alloy-eips", - "alloy-primitives 0.8.12", - "alloy-sol-types 0.8.12", + "alloy-consensus 0.6.4", + "alloy-eips 0.6.4", + "alloy-primitives 0.8.14", + "alloy-sol-types 0.8.14", "serde", "serde_repr", - "thiserror 2.0.3", + "thiserror 2.0.4", ] [[package]] @@ -4427,11 +4616,11 @@ version = "0.6.8" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "87e4aef8ed017004a176ab1de49df419f59c0fb4a6ce3b693a10fe099fe1afe7" dependencies = [ - "alloy-consensus", - "alloy-network", - "alloy-primitives 0.8.12", - "alloy-rpc-types-eth", - "alloy-signer", + "alloy-consensus 0.6.4", + "alloy-network 0.6.4", + "alloy-primitives 0.8.14", + "alloy-rpc-types-eth 0.6.4", + "alloy-signer 0.6.4", "op-alloy-consensus", "op-alloy-rpc-types", ] @@ -4443,18 +4632,18 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6c68a3e2770890da3ad2fd20d7fe0c8e15672707577b4168a60e388c8eceaca0" dependencies = [ "alloc-no-stdlib", - "alloy-consensus", - "alloy-eips", - "alloy-primitives 0.8.12", + "alloy-consensus 0.6.4", + "alloy-eips 0.6.4", + "alloy-primitives 0.8.14", "alloy-rlp", - "alloy-serde", + "alloy-serde 0.6.4", "async-trait", "brotli", "miniz_oxide", "op-alloy-consensus", "op-alloy-genesis", "serde", - "thiserror 2.0.3", + "thiserror 2.0.4", "tracing", "unsigned-varint", ] @@ -4465,7 +4654,7 @@ version = "0.6.8" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "589e7906a7c8d71f06b130ee1d8a0a07b0b2cd0e0771157a770e6c20a34da953" dependencies = [ - "alloy-primitives 0.8.12", + "alloy-primitives 0.8.14", "lazy_static", "op-alloy-genesis", "serde", @@ -4478,12 +4667,12 @@ version = "0.6.8" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "060ebeaea8c772e396215f69bb86d231ec8b7f36aca0dd6ce367ceaa9a8c33e6" dependencies = [ - "alloy-consensus", - "alloy-eips", - "alloy-network-primitives", - "alloy-primitives 0.8.12", - "alloy-rpc-types-eth", - "alloy-serde", + "alloy-consensus 0.6.4", + "alloy-eips 0.6.4", + "alloy-network-primitives 0.6.4", + "alloy-primitives 0.8.14", + "alloy-rpc-types-eth 0.6.4", + "alloy-serde 0.6.4", "derive_more 1.0.0", "op-alloy-consensus", "serde", @@ -4496,13 +4685,13 @@ version = "0.6.8" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "864dbd5511ef4ef00b6c2c980739259b25b24048007b7751ca0069b30b1e3fee" dependencies = [ - "alloy-eips", - "alloy-primitives 0.8.12", + "alloy-eips 0.6.4", + "alloy-primitives 0.8.14", "alloy-rpc-types-engine", "derive_more 1.0.0", "op-alloy-consensus", "op-alloy-protocol", - "thiserror 2.0.3", + "thiserror 2.0.4", ] [[package]] @@ -4518,11 +4707,11 @@ dependencies = [ name = "op-succinct-client-utils" version = "0.1.0" dependencies = [ - "alloy-consensus", - "alloy-eips", - "alloy-primitives 0.8.12", + "alloy-consensus 0.6.4", + "alloy-eips 0.6.4", + "alloy-primitives 0.8.14", "alloy-rlp", - "alloy-sol-types 0.8.12", + "alloy-sol-types 0.8.14", "anyhow", "async-trait", "itertools 0.13.0", @@ -4546,7 +4735,7 @@ dependencies = [ "serde_json", "sha2", "spin 0.9.8", - "thiserror 2.0.3", + "thiserror 2.0.4", "tracing", ] @@ -4554,7 +4743,7 @@ dependencies = [ name = "op-succinct-fees" version = "0.1.0" dependencies = [ - "alloy-primitives 0.8.12", + "alloy-primitives 0.8.14", "anyhow", "clap", "dotenv", @@ -4567,11 +4756,11 @@ name = "op-succinct-host-utils" version = "0.1.0" dependencies = [ "alloy", - "alloy-consensus", - "alloy-eips", - "alloy-primitives 0.8.12", + "alloy-consensus 0.6.4", + "alloy-eips 0.6.4", + "alloy-primitives 0.8.14", "alloy-rlp", - "alloy-sol-types 0.8.12", + "alloy-sol-types 0.8.14", "anyhow", "cargo_metadata", "dotenv", @@ -4591,7 +4780,7 @@ dependencies = [ "serde_cbor", "serde_json", "sp1-sdk", - "sysinfo 0.32.0", + "sysinfo 0.32.1", "tokio", ] @@ -4600,7 +4789,7 @@ name = "op-succinct-proposer" version = "0.1.0" dependencies = [ "alloy", - "alloy-primitives 0.8.12", + "alloy-primitives 0.8.14", "anyhow", "axum", "base64 0.22.1", @@ -4622,8 +4811,8 @@ dependencies = [ name = "op-succinct-prove" version = "0.1.0" dependencies = [ - "alloy-eips", - "alloy-primitives 0.8.12", + "alloy-eips 0.6.4", + "alloy-primitives 0.8.14", "anyhow", "cargo_metadata", "clap", @@ -4646,7 +4835,7 @@ name = "op-succinct-scripts" version = "0.1.0" dependencies = [ "alloy", - "alloy-primitives 0.8.12", + "alloy-primitives 0.8.14", "anyhow", "bincode", "cargo_metadata", @@ -4729,7 +4918,7 @@ checksum = "a948666b637a0f465e8564c73e89d4dde00d72d4d473cc972f390fc3dcee7d9c" dependencies = [ "proc-macro2", "quote", - "syn 2.0.87", + "syn 2.0.90", ] [[package]] @@ -5063,29 +5252,28 @@ dependencies = [ [[package]] name = "parity-scale-codec" -version = "3.7.0" +version = "3.6.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8be4817d39f3272f69c59fe05d0535ae6456c2dc2fa1ba02910296c7e0a5c590" +checksum = "306800abfa29c7f16596b5970a588435e3d5b3149683d00c12b699cc19f895ee" dependencies = [ "arrayvec", "bitvec", "byte-slice-cast", "impl-trait-for-tuples", "parity-scale-codec-derive", - "rustversion", "serde", ] [[package]] name = "parity-scale-codec-derive" -version = "3.7.0" +version = "3.6.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8781a75c6205af67215f382092b6e0a4ff3734798523e69073d4bcd294ec767b" +checksum = "d830939c76d294956402033aee57a6da7b438f2294eb94864c37b0569053a42c" dependencies = [ "proc-macro-crate 3.2.0", "proc-macro2", "quote", - "syn 2.0.87", + "syn 1.0.109", ] [[package]] @@ -5219,7 +5407,7 @@ checksum = "3c0f5fad0874fc7abcd4d750e76917eaebbecaa2c20bde22e1dbeeba8beb758c" dependencies = [ "proc-macro2", "quote", - "syn 2.0.87", + "syn 2.0.90", ] [[package]] @@ -5252,9 +5440,9 @@ checksum = "953ec861398dccce10c670dfeaf3ec4911ca479e9c02154b3a215178c5f566f2" [[package]] name = "portable-atomic" -version = "1.9.0" +version = "1.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cc9c68a3f6da06753e9335d63e27f6b9754dd1920d941135b7ea8224f141adb2" +checksum = "280dc24453071f1b63954171985a0b0d30058d287960968b9b2aca264c8d4ee6" [[package]] name = "powerfmt" @@ -5278,7 +5466,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "64d1ec885c64d0457d564db4ec299b2dae3f9c02808b8ad9c3a089c591b18033" dependencies = [ "proc-macro2", - "syn 2.0.87", + "syn 2.0.90", ] [[package]] @@ -5366,14 +5554,14 @@ dependencies = [ "proc-macro-error-attr2", "proc-macro2", "quote", - "syn 2.0.87", + "syn 2.0.90", ] [[package]] name = "proc-macro2" -version = "1.0.89" +version = "1.0.92" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f139b0662de085916d1fb67d2b4169d1addddda1919e696f3252b740b629986e" +checksum = "37d3544b3f2748c54e147655edb5025752e2303145b5aefb3c3ea2c78b973bb0" dependencies = [ "unicode-ident", ] @@ -5418,7 +5606,7 @@ dependencies = [ "itertools 0.13.0", "proc-macro2", "quote", - "syn 2.0.87", + "syn 2.0.90", ] [[package]] @@ -5458,7 +5646,7 @@ checksum = "ca414edb151b4c8d125c12566ab0d74dc9cdba36fb80eb7b848c15f495fd32d1" dependencies = [ "proc-macro2", "quote", - "syn 2.0.87", + "syn 2.0.90", ] [[package]] @@ -5477,10 +5665,10 @@ dependencies = [ "pin-project-lite", "quinn-proto", "quinn-udp", - "rustc-hash 2.0.0", + "rustc-hash 2.1.0", "rustls", "socket2", - "thiserror 2.0.3", + "thiserror 2.0.4", "tokio", "tracing", ] @@ -5495,11 +5683,11 @@ dependencies = [ "getrandom", "rand", "ring 0.17.8", - "rustc-hash 2.0.0", + "rustc-hash 2.1.0", "rustls", "rustls-pki-types", "slab", - "thiserror 2.0.3", + "thiserror 2.0.4", "tinyvec", "tracing", "web-time", @@ -5587,9 +5775,9 @@ dependencies = [ name = "range" version = "0.1.0" dependencies = [ - "alloy-consensus", - "alloy-eips", - "alloy-primitives 0.8.12", + "alloy-consensus 0.6.4", + "alloy-eips 0.6.4", + "alloy-primitives 0.8.14", "alloy-rlp", "anyhow", "cfg-if", @@ -5779,7 +5967,7 @@ dependencies = [ "futures-core", "futures-util", "h2 0.4.7", - "http 1.1.0", + "http 1.2.0", "http-body 1.0.1", "http-body-util", "hyper 1.5.1", @@ -5801,7 +5989,7 @@ dependencies = [ "serde", "serde_json", "serde_urlencoded", - "sync_wrapper 1.0.1", + "sync_wrapper 1.0.2", "system-configuration 0.6.1", "tokio", "tokio-native-tls", @@ -5825,7 +6013,7 @@ checksum = "562ceb5a604d3f7c885a792d42c199fd8af239d0a51b2fa6a78aafa092452b04" dependencies = [ "anyhow", "async-trait", - "http 1.1.0", + "http 1.2.0", "reqwest 0.12.9", "serde", "thiserror 1.0.69", @@ -5886,7 +6074,7 @@ checksum = "532411bbde45a46707c1d434dcdc29866cf261c1b748fb01b303ce3b4310b361" dependencies = [ "alloy-eip2930", "alloy-eip7702 0.2.0", - "alloy-primitives 0.8.12", + "alloy-primitives 0.8.14", "auto_impl", "bitflags 2.6.0", "bitvec", @@ -5967,19 +6155,19 @@ dependencies = [ [[package]] name = "rkyv" -version = "0.8.8" +version = "0.8.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "395027076c569819ea6035ee62e664f5e03d74e281744f55261dd1afd939212b" +checksum = "b11a153aec4a6ab60795f8ebe2923c597b16b05bb1504377451e705ef1a45323" dependencies = [ "bytecheck 0.8.0", "bytes", - "hashbrown 0.14.5", - "indexmap 2.6.0", + "hashbrown 0.15.2", + "indexmap 2.7.0", "munge", "ptr_meta 0.3.0", "rancor", "rend 0.5.2", - "rkyv_derive 0.8.8", + "rkyv_derive 0.8.9", "tinyvec", "uuid 1.11.0", ] @@ -5997,13 +6185,13 @@ dependencies = [ [[package]] name = "rkyv_derive" -version = "0.8.8" +version = "0.8.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "09cb82b74b4810f07e460852c32f522e979787691b0b7b7439fe473e49d49b2f" +checksum = "beb382a4d9f53bd5c0be86b10d8179c3f8a14c30bf774ff77096ed6581e35981" dependencies = [ "proc-macro2", "quote", - "syn 2.0.87", + "syn 2.0.90", ] [[package]] @@ -6093,9 +6281,9 @@ checksum = "08d43f7aa6b08d49f382cde6a7982047c3426db949b1424bc4b7ec9ae12c6ce2" [[package]] name = "rustc-hash" -version = "2.0.0" +version = "2.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "583034fd73374156e66797ed8e5b0d5690409c9226b22d87cb7f19821c05d152" +checksum = "c7fb8039b3032c191086b10f11f319a6e99e1e82889c5cc6046f515c9db1d497" [[package]] name = "rustc-hex" @@ -6136,10 +6324,11 @@ dependencies = [ [[package]] name = "rustls" -version = "0.23.17" +version = "0.23.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7f1a745511c54ba6d4465e8d5dfbd81b45791756de28d4981af70d6dca128f1e" +checksum = "934b404430bb06b3fae2cba809eb45a1ab1aecd64491213d7c3301b88393f8d1" dependencies = [ + "log", "once_cell", "ring 0.17.8", "rustls-pki-types", @@ -6148,6 +6337,18 @@ dependencies = [ "zeroize", ] +[[package]] +name = "rustls-native-certs" +version = "0.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7fcff2dd52b58a8d98a70243663a0d234c4e2b79235637849d15913394a247d3" +dependencies = [ + "openssl-probe", + "rustls-pki-types", + "schannel", + "security-framework 3.0.1", +] + [[package]] name = "rustls-pemfile" version = "1.0.4" @@ -6230,9 +6431,9 @@ dependencies = [ [[package]] name = "scale-info" -version = "2.11.5" +version = "2.11.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1aa7ffc1c0ef49b0452c6e2986abf2b07743320641ffd5fc63d552458e3b779b" +checksum = "346a3b32eba2640d17a9cb5927056b08f3de90f65b72fe09402c2ad07d684d0b" dependencies = [ "cfg-if", "derive_more 1.0.0", @@ -6242,14 +6443,14 @@ dependencies = [ [[package]] name = "scale-info-derive" -version = "2.11.5" +version = "2.11.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "46385cc24172cf615450267463f937c10072516359b3ff1cb24228a4a08bf951" +checksum = "c6630024bf739e2179b91fb424b28898baf819414262c5d376677dbff1fe7ebf" dependencies = [ "proc-macro-crate 3.2.0", "proc-macro2", "quote", - "syn 2.0.87", + "syn 2.0.90", ] [[package]] @@ -6351,7 +6552,20 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "897b2245f0b511c87893af39b033e5ca9cce68824c4d7e7630b5a1d339658d02" dependencies = [ "bitflags 2.6.0", - "core-foundation", + "core-foundation 0.9.4", + "core-foundation-sys", + "libc", + "security-framework-sys", +] + +[[package]] +name = "security-framework" +version = "3.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e1415a607e92bec364ea2cf9264646dcce0f91e6d65281bd6f2819cca3bf39c8" +dependencies = [ + "bitflags 2.6.0", + "core-foundation 0.10.0", "core-foundation-sys", "libc", "security-framework-sys", @@ -6433,7 +6647,7 @@ checksum = "ad1e866f866923f252f05c889987993144fb74e722403468a4ebd70c3cd756c0" dependencies = [ "proc-macro2", "quote", - "syn 2.0.87", + "syn 2.0.90", ] [[package]] @@ -6442,7 +6656,7 @@ version = "1.0.133" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c7fceb2473b9166b2294ef05efcb65a3db80803f0b03ef86a5fc88a2b85ee377" dependencies = [ - "indexmap 2.6.0", + "indexmap 2.7.0", "itoa", "memchr", "ryu", @@ -6467,7 +6681,7 @@ checksum = "6c64451ba24fc7a6a2d60fc75dd9c83c90903b19028d4eff35e88fc1e86564e9" dependencies = [ "proc-macro2", "quote", - "syn 2.0.87", + "syn 2.0.90", ] [[package]] @@ -6501,7 +6715,7 @@ dependencies = [ "chrono", "hex", "indexmap 1.9.3", - "indexmap 2.6.0", + "indexmap 2.7.0", "serde", "serde_derive", "serde_json", @@ -6518,7 +6732,7 @@ dependencies = [ "darling", "proc-macro2", "quote", - "syn 2.0.87", + "syn 2.0.90", ] [[package]] @@ -6543,7 +6757,7 @@ checksum = "5d69265a08751de7844521fd15003ae0a888e035773ba05695c5c759a6f89eef" dependencies = [ "proc-macro2", "quote", - "syn 2.0.87", + "syn 2.0.90", ] [[package]] @@ -6674,9 +6888,9 @@ dependencies = [ [[package]] name = "socket2" -version = "0.5.7" +version = "0.5.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ce305eb0b4296696835b71df73eb912e0f1ffd2556a501fcede6e0c50349191c" +checksum = "c970269d99b64e60ec3bd6ad27270092a5394c4e309314b18ae3fe575695fbe8" dependencies = [ "libc", "windows-sys 0.52.0", @@ -6684,9 +6898,9 @@ dependencies = [ [[package]] name = "sp1-build" -version = "3.3.0" +version = "3.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e64438370a9c565926f6234d3a36ae32a23d01ac815c5512cdc4f8cb160974a3" +checksum = "e58e5f49cf1481363abb74b55104e215f3b6e58dc2adb748bde7a6e4ea61b51d" dependencies = [ "anyhow", "cargo_metadata", @@ -6698,7 +6912,7 @@ dependencies = [ [[package]] name = "sp1-core-executor" version = "3.0.0" -source = "git+https://github.com/succinctlabs/sp1.git?rev=884948a30c9b125950b9ddf7a344fb69548cd9df#884948a30c9b125950b9ddf7a344fb69548cd9df" +source = "git+https://github.com/succinctlabs/sp1.git?rev=447fda5f759908bbc3091979bd933ee9d126873b#447fda5f759908bbc3091979bd933ee9d126873b" dependencies = [ "bincode", "bytemuck", @@ -6731,12 +6945,12 @@ dependencies = [ [[package]] name = "sp1-core-machine" version = "3.0.0" -source = "git+https://github.com/succinctlabs/sp1.git?rev=884948a30c9b125950b9ddf7a344fb69548cd9df#884948a30c9b125950b9ddf7a344fb69548cd9df" +source = "git+https://github.com/succinctlabs/sp1.git?rev=447fda5f759908bbc3091979bd933ee9d126873b#447fda5f759908bbc3091979bd933ee9d126873b" dependencies = [ "bincode", "cfg-if", "elliptic-curve", - "generic-array 1.1.0", + "generic-array 1.1.1", "hashbrown 0.14.5", "hex", "itertools 0.13.0", @@ -6778,13 +6992,13 @@ dependencies = [ [[package]] name = "sp1-curves" version = "3.0.0" -source = "git+https://github.com/succinctlabs/sp1.git?rev=884948a30c9b125950b9ddf7a344fb69548cd9df#884948a30c9b125950b9ddf7a344fb69548cd9df" +source = "git+https://github.com/succinctlabs/sp1.git?rev=447fda5f759908bbc3091979bd933ee9d126873b#447fda5f759908bbc3091979bd933ee9d126873b" dependencies = [ "cfg-if", "curve25519-dalek", "dashu", "elliptic-curve", - "generic-array 1.1.0", + "generic-array 1.1.1", "itertools 0.13.0", "k256", "num", @@ -6799,7 +7013,7 @@ dependencies = [ [[package]] name = "sp1-derive" version = "3.0.0" -source = "git+https://github.com/succinctlabs/sp1.git?rev=884948a30c9b125950b9ddf7a344fb69548cd9df#884948a30c9b125950b9ddf7a344fb69548cd9df" +source = "git+https://github.com/succinctlabs/sp1.git?rev=447fda5f759908bbc3091979bd933ee9d126873b#447fda5f759908bbc3091979bd933ee9d126873b" dependencies = [ "quote", "syn 1.0.109", @@ -6821,9 +7035,9 @@ dependencies = [ [[package]] name = "sp1-lib" -version = "3.3.0" +version = "3.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fa1fe3d3e2a4cfe6b7259f0c00f770a4376fba892af20695b6ba450e0d02771c" +checksum = "7a5729da1b05d56c01457e5ecabdc77f1cc941df23f2921163a2f325aec22428" dependencies = [ "bincode", "serde", @@ -6832,7 +7046,7 @@ dependencies = [ [[package]] name = "sp1-primitives" version = "3.0.0" -source = "git+https://github.com/succinctlabs/sp1.git?rev=884948a30c9b125950b9ddf7a344fb69548cd9df#884948a30c9b125950b9ddf7a344fb69548cd9df" +source = "git+https://github.com/succinctlabs/sp1.git?rev=447fda5f759908bbc3091979bd933ee9d126873b#447fda5f759908bbc3091979bd933ee9d126873b" dependencies = [ "bincode", "hex", @@ -6848,9 +7062,9 @@ dependencies = [ [[package]] name = "sp1-primitives" -version = "3.3.0" +version = "3.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3442b59d2606ed4517c09b5daaa39e0e0d0ef75fb8e75b6f50334fd87a966b42" +checksum = "9d10c2078a5dfc5c3a632da1bc59b57a19dadc9c03968047d8ffb06c0f83b476" dependencies = [ "bincode", "hex", @@ -6867,7 +7081,7 @@ dependencies = [ [[package]] name = "sp1-prover" version = "3.0.0" -source = "git+https://github.com/succinctlabs/sp1.git?rev=884948a30c9b125950b9ddf7a344fb69548cd9df#884948a30c9b125950b9ddf7a344fb69548cd9df" +source = "git+https://github.com/succinctlabs/sp1.git?rev=447fda5f759908bbc3091979bd933ee9d126873b#447fda5f759908bbc3091979bd933ee9d126873b" dependencies = [ "anyhow", "bincode", @@ -6908,7 +7122,7 @@ dependencies = [ [[package]] name = "sp1-recursion-circuit" version = "3.0.0" -source = "git+https://github.com/succinctlabs/sp1.git?rev=884948a30c9b125950b9ddf7a344fb69548cd9df#884948a30c9b125950b9ddf7a344fb69548cd9df" +source = "git+https://github.com/succinctlabs/sp1.git?rev=447fda5f759908bbc3091979bd933ee9d126873b#447fda5f759908bbc3091979bd933ee9d126873b" dependencies = [ "hashbrown 0.14.5", "itertools 0.13.0", @@ -6941,7 +7155,7 @@ dependencies = [ [[package]] name = "sp1-recursion-compiler" version = "3.0.0" -source = "git+https://github.com/succinctlabs/sp1.git?rev=884948a30c9b125950b9ddf7a344fb69548cd9df#884948a30c9b125950b9ddf7a344fb69548cd9df" +source = "git+https://github.com/succinctlabs/sp1.git?rev=447fda5f759908bbc3091979bd933ee9d126873b#447fda5f759908bbc3091979bd933ee9d126873b" dependencies = [ "backtrace", "itertools 0.13.0", @@ -6962,7 +7176,7 @@ dependencies = [ [[package]] name = "sp1-recursion-core" version = "3.0.0" -source = "git+https://github.com/succinctlabs/sp1.git?rev=884948a30c9b125950b9ddf7a344fb69548cd9df#884948a30c9b125950b9ddf7a344fb69548cd9df" +source = "git+https://github.com/succinctlabs/sp1.git?rev=447fda5f759908bbc3091979bd933ee9d126873b#447fda5f759908bbc3091979bd933ee9d126873b" dependencies = [ "backtrace", "ff 0.13.0", @@ -6997,7 +7211,7 @@ dependencies = [ [[package]] name = "sp1-recursion-derive" version = "3.0.0" -source = "git+https://github.com/succinctlabs/sp1.git?rev=884948a30c9b125950b9ddf7a344fb69548cd9df#884948a30c9b125950b9ddf7a344fb69548cd9df" +source = "git+https://github.com/succinctlabs/sp1.git?rev=447fda5f759908bbc3091979bd933ee9d126873b#447fda5f759908bbc3091979bd933ee9d126873b" dependencies = [ "quote", "syn 1.0.109", @@ -7006,7 +7220,7 @@ dependencies = [ [[package]] name = "sp1-recursion-gnark-ffi" version = "3.0.0" -source = "git+https://github.com/succinctlabs/sp1.git?rev=884948a30c9b125950b9ddf7a344fb69548cd9df#884948a30c9b125950b9ddf7a344fb69548cd9df" +source = "git+https://github.com/succinctlabs/sp1.git?rev=447fda5f759908bbc3091979bd933ee9d126873b#447fda5f759908bbc3091979bd933ee9d126873b" dependencies = [ "anyhow", "bincode", @@ -7031,11 +7245,15 @@ dependencies = [ [[package]] name = "sp1-sdk" version = "3.0.0" -source = "git+https://github.com/succinctlabs/sp1.git?rev=884948a30c9b125950b9ddf7a344fb69548cd9df#884948a30c9b125950b9ddf7a344fb69548cd9df" +source = "git+https://github.com/succinctlabs/sp1.git?rev=447fda5f759908bbc3091979bd933ee9d126873b#447fda5f759908bbc3091979bd933ee9d126873b" dependencies = [ + "alloy-primitives 0.8.14", + "alloy-signer 0.3.6", + "alloy-signer-local 0.3.6", "alloy-sol-types 0.7.7", "anyhow", "async-trait", + "backoff", "bincode", "cfg-if", "dirs", @@ -7053,6 +7271,7 @@ dependencies = [ "reqwest 0.12.9", "reqwest-middleware", "serde", + "serde_json", "sp1-core-executor", "sp1-core-machine", "sp1-primitives 3.0.0", @@ -7063,6 +7282,7 @@ dependencies = [ "tempfile", "thiserror 1.0.69", "tokio", + "tonic", "tracing", "twirp-rs", "vergen", @@ -7071,7 +7291,7 @@ dependencies = [ [[package]] name = "sp1-stark" version = "3.0.0" -source = "git+https://github.com/succinctlabs/sp1.git?rev=884948a30c9b125950b9ddf7a344fb69548cd9df#884948a30c9b125950b9ddf7a344fb69548cd9df" +source = "git+https://github.com/succinctlabs/sp1.git?rev=447fda5f759908bbc3091979bd933ee9d126873b#447fda5f759908bbc3091979bd933ee9d126873b" dependencies = [ "arrayref", "getrandom", @@ -7105,9 +7325,9 @@ dependencies = [ [[package]] name = "sp1-zkvm" -version = "3.3.0" +version = "3.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7123d0e616c6641a9088c604f5d00f728f396823e8a91ef805d54d6e1d8ccc1b" +checksum = "8ea02449a9dcaab67219f7b3442ab51b45ae40e7b04f205382295936087fe1d5" dependencies = [ "cfg-if", "getrandom", @@ -7117,8 +7337,8 @@ dependencies = [ "p3-field", "rand", "sha2", - "sp1-lib 3.3.0", - "sp1-primitives 3.3.0", + "sp1-lib 3.4.0", + "sp1-primitives 3.4.0", ] [[package]] @@ -7207,7 +7427,7 @@ dependencies = [ "proc-macro2", "quote", "rustversion", - "syn 2.0.87", + "syn 2.0.90", ] [[package]] @@ -7223,7 +7443,7 @@ dependencies = [ "num-bigint 0.4.6", "rand", "rustc-hex", - "sp1-lib 3.3.0", + "sp1-lib 3.4.0", ] [[package]] @@ -7254,9 +7474,9 @@ dependencies = [ [[package]] name = "syn" -version = "2.0.87" +version = "2.0.90" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "25aa4ce346d03a6dcd68dd8b4010bcb74e54e62c90c573f394c46eae99aba32d" +checksum = "919d3b74a5dd0ccd15aeb8f93e7006bd9e14c295087c9896a110f490752bcf31" dependencies = [ "proc-macro2", "quote", @@ -7272,19 +7492,19 @@ dependencies = [ "paste", "proc-macro2", "quote", - "syn 2.0.87", + "syn 2.0.90", ] [[package]] name = "syn-solidity" -version = "0.8.12" +version = "0.8.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f76fe0a3e1476bdaa0775b9aec5b869ed9520c2b2fedfe9c6df3618f8ea6290b" +checksum = "da0523f59468a2696391f2a772edc089342aacd53c3caa2ac3264e598edf119b" dependencies = [ "paste", "proc-macro2", "quote", - "syn 2.0.87", + "syn 2.0.90", ] [[package]] @@ -7295,9 +7515,9 @@ checksum = "2047c6ded9c721764247e62cd3b03c09ffc529b2ba5b10ec482ae507a4a70160" [[package]] name = "sync_wrapper" -version = "1.0.1" +version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a7065abeca94b6a8a577f9bd45aa0867a2238b74e8eb67cf10d492bc39351394" +checksum = "0bf256ce5efdfa370213c1dabab5935a12e49f2c58d15e9eac2870d3b4f27263" dependencies = [ "futures-core", ] @@ -7310,7 +7530,7 @@ checksum = "c8af7666ab7b6390ab78131fb5b0fce11d6b7a6951602017c35fa82800708971" dependencies = [ "proc-macro2", "quote", - "syn 2.0.87", + "syn 2.0.90", ] [[package]] @@ -7330,9 +7550,9 @@ dependencies = [ [[package]] name = "sysinfo" -version = "0.32.0" +version = "0.32.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e3b5ae3f4f7d64646c46c4cae4e3f01d1c5d255c7406fdd7c7f999a94e488791" +checksum = "4c33cd241af0f2e9e3b5c32163b873b29956890b5342e6745b917ce9d490f4af" dependencies = [ "core-foundation-sys", "libc", @@ -7349,7 +7569,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ba3a3adc5c275d719af8cb4272ea1c4a6d668a777f37e115f6d11ddbc1c8e0e7" dependencies = [ "bitflags 1.3.2", - "core-foundation", + "core-foundation 0.9.4", "system-configuration-sys 0.5.0", ] @@ -7360,7 +7580,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3c879d448e9d986b661742763247d3693ed13609438cf3d006f51f5368a5ba6b" dependencies = [ "bitflags 2.6.0", - "core-foundation", + "core-foundation 0.9.4", "system-configuration-sys 0.6.0", ] @@ -7414,11 +7634,11 @@ dependencies = [ [[package]] name = "thiserror" -version = "2.0.3" +version = "2.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c006c85c7651b3cf2ada4584faa36773bd07bac24acfb39f3c431b36d7e667aa" +checksum = "2f49a1853cf82743e3b7950f77e0f4d622ca36cf4317cba00c767838bac8d490" dependencies = [ - "thiserror-impl 2.0.3", + "thiserror-impl 2.0.4", ] [[package]] @@ -7429,18 +7649,18 @@ checksum = "4fee6c4efc90059e10f81e6d42c60a18f76588c3d74cb83a0b242a2b6c7504c1" dependencies = [ "proc-macro2", "quote", - "syn 2.0.87", + "syn 2.0.90", ] [[package]] name = "thiserror-impl" -version = "2.0.3" +version = "2.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f077553d607adc1caf65430528a576c757a71ed73944b66ebb58ef2bbd243568" +checksum = "8381894bb3efe0c4acac3ded651301ceee58a15d47c2e34885ed1908ad667061" dependencies = [ "proc-macro2", "quote", - "syn 2.0.87", + "syn 2.0.90", ] [[package]] @@ -7464,9 +7684,9 @@ dependencies = [ [[package]] name = "time" -version = "0.3.36" +version = "0.3.37" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5dfd88e563464686c916c7e46e623e520ddc6d79fa6641390f2e3fa86e83e885" +checksum = "35e7868883861bd0e56d9ac6efcaaca0d6d5d82a2a7ec8209ff492c07cf37b21" dependencies = [ "deranged", "itoa", @@ -7487,9 +7707,9 @@ checksum = "ef927ca75afb808a4d64dd374f00a2adf8d0fcff8e7b184af886c3c87ec4a3f3" [[package]] name = "time-macros" -version = "0.2.18" +version = "0.2.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3f252a68540fde3a3877aeea552b832b40ab9a69e318efd078774a01ddee1ccf" +checksum = "2834e6017e3e5e4b9834939793b282bc03b37a3336245fa820e35e233e2a85de" dependencies = [ "num-conv", "time-core", @@ -7531,9 +7751,9 @@ checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" [[package]] name = "tokio" -version = "1.41.1" +version = "1.42.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "22cfb5bee7a6a52939ca9224d6ac897bb669134078daa8735560897f69de4d33" +checksum = "5cec9b21b0450273377fc97bd4c33a8acffc8c996c987a7c5b319a0083707551" dependencies = [ "backtrace", "bytes", @@ -7555,7 +7775,7 @@ checksum = "693d596312e88961bc67d7f1f97af8a70227d9f90c31bba5806eec004978d752" dependencies = [ "proc-macro2", "quote", - "syn 2.0.87", + "syn 2.0.90", ] [[package]] @@ -7570,12 +7790,11 @@ dependencies = [ [[package]] name = "tokio-rustls" -version = "0.26.0" +version = "0.26.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0c7bc40d0e5a97695bb96e27995cd3a08538541b0a846f65bba7a359f36700d4" +checksum = "5f6d0975eaace0cf0fcadee4e4aaa5da15b5c079146f2cffb67c113be122bf37" dependencies = [ "rustls", - "rustls-pki-types", "tokio", ] @@ -7609,9 +7828,9 @@ dependencies = [ [[package]] name = "tokio-util" -version = "0.7.12" +version = "0.7.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "61e7c3654c13bcd040d4a03abee2c75b1d14a37b423cf5a813ceae1cc903ec6a" +checksum = "d7fcaa8d55a2bdd6b83ace262b016eca0d79ee02818c5c1bcdf0305114081078" dependencies = [ "bytes", "futures-core", @@ -7647,7 +7866,7 @@ version = "0.19.15" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1b5bb770da30e5cbfde35a2d7b9b8a2c4b8ef89548a7a6aeab5c9a576e3e7421" dependencies = [ - "indexmap 2.6.0", + "indexmap 2.7.0", "toml_datetime", "winnow 0.5.40", ] @@ -7658,13 +7877,66 @@ version = "0.22.22" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4ae48d6208a266e853d946088ed816055e556cc6028c5e8e2b84d9fa5dd7c7f5" dependencies = [ - "indexmap 2.6.0", + "indexmap 2.7.0", "serde", "serde_spanned", "toml_datetime", "winnow 0.6.20", ] +[[package]] +name = "tonic" +version = "0.12.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "877c5b330756d856ffcc4553ab34a5684481ade925ecc54bcd1bf02b1d0d4d52" +dependencies = [ + "async-stream", + "async-trait", + "axum", + "base64 0.22.1", + "bytes", + "h2 0.4.7", + "http 1.2.0", + "http-body 1.0.1", + "http-body-util", + "hyper 1.5.1", + "hyper-timeout", + "hyper-util", + "percent-encoding", + "pin-project", + "prost", + "rustls-native-certs", + "rustls-pemfile 2.2.0", + "socket2", + "tokio", + "tokio-rustls", + "tokio-stream", + "tower 0.4.13", + "tower-layer", + "tower-service", + "tracing", +] + +[[package]] +name = "tower" +version = "0.4.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b8fa9be0de6cf49e536ce1851f987bd21a43b771b09473c3549a6c853db37c1c" +dependencies = [ + "futures-core", + "futures-util", + "indexmap 1.9.3", + "pin-project", + "pin-project-lite", + "rand", + "slab", + "tokio", + "tokio-util", + "tower-layer", + "tower-service", + "tracing", +] + [[package]] name = "tower" version = "0.5.1" @@ -7689,7 +7961,7 @@ checksum = "1e9cd434a998747dd2c4276bc96ee2e0c7a2eadf3cae88e52be55a05fa9053f5" dependencies = [ "bitflags 2.6.0", "bytes", - "http 1.1.0", + "http 1.2.0", "http-body 1.0.1", "http-body-util", "pin-project-lite", @@ -7711,9 +7983,9 @@ checksum = "8df9b6e13f2d32c91b9bd719c00d1958837bc7dec474d94952798cc8e69eeec3" [[package]] name = "tracing" -version = "0.1.40" +version = "0.1.41" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c3523ab5a71916ccf420eebdf5521fcef02141234bbc0b8a49f2fdc4544364ef" +checksum = "784e0ac535deb450455cbfa28a6f0df145ea1bb7ae51b821cf5e7927fdcfbdd0" dependencies = [ "log", "pin-project-lite", @@ -7723,20 +7995,20 @@ dependencies = [ [[package]] name = "tracing-attributes" -version = "0.1.27" +version = "0.1.28" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "34704c8d6ebcbc939824180af020566b01a7c01f80641264eba0999f6c2b6be7" +checksum = "395ae124c09f9e6918a2310af6038fba074bcf474ac352496d5910dd59a2226d" dependencies = [ "proc-macro2", "quote", - "syn 2.0.87", + "syn 2.0.90", ] [[package]] name = "tracing-core" -version = "0.1.32" +version = "0.1.33" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c06d3da6113f116aaee68e4d601191614c9053067f9ab7f6edbcb161237daa54" +checksum = "e672c95779cf947c5311f83787af4fa8fffd12fb27e4993211a84bdfd9610f9c" dependencies = [ "once_cell", "valuable", @@ -7778,9 +8050,9 @@ dependencies = [ [[package]] name = "tracing-subscriber" -version = "0.3.18" +version = "0.3.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ad0f048c97dbd9faa9b7df56362b8ebcaa52adb06b498c050d2f4e32f90a7a8b" +checksum = "e8189decb5ac0fa7bc8b96b7cb9b2701d60d48805aca84a238004d665fcc4008" dependencies = [ "matchers", "nu-ansi-term", @@ -7809,7 +8081,7 @@ dependencies = [ "byteorder", "bytes", "data-encoding", - "http 1.1.0", + "http 1.2.0", "httparse", "log", "rand", @@ -7829,7 +8101,7 @@ dependencies = [ "async-trait", "axum", "futures", - "http 1.1.0", + "http 1.2.0", "http-body-util", "hyper 1.5.1", "prost", @@ -7838,7 +8110,7 @@ dependencies = [ "serde_json", "thiserror 1.0.69", "tokio", - "tower", + "tower 0.5.1", "url", ] @@ -7874,9 +8146,9 @@ checksum = "eaea85b334db583fe3274d12b4cd1880032beab409c0d774be044d4480ab9a94" [[package]] name = "unicode-ident" -version = "1.0.13" +version = "1.0.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e91b56cd4cadaeb79bbf1a5645f6b4f8dc5bde8834ad5894a8db35fda9efa1fe" +checksum = "adb9e6ca4f869e1180728b7950e35922a7fc6397f7b641499e8f3ef06e50dc83" [[package]] name = "unicode-width" @@ -7916,9 +8188,9 @@ checksum = "8ecb6da28b8a351d773b68d5825ac39017e680750f980f3a1a85cd8dd28a47c1" [[package]] name = "url" -version = "2.5.3" +version = "2.5.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8d157f1b96d14500ffdc1f10ba712e780825526c03d9a49b4d0324b0d9113ada" +checksum = "32f8b686cadd1473f4bd0117a5d28d36b1ade384ea9b5069a1c40aefed7fda60" dependencies = [ "form_urlencoded", "idna", @@ -8041,9 +8313,9 @@ checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" [[package]] name = "wasm-bindgen" -version = "0.2.95" +version = "0.2.97" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "128d1e363af62632b8eb57219c8fd7877144af57558fb2ef0368d0087bddeb2e" +checksum = "d15e63b4482863c109d70a7b8706c1e364eb6ea449b201a76c5b89cedcec2d5c" dependencies = [ "cfg-if", "once_cell", @@ -8052,36 +8324,37 @@ dependencies = [ [[package]] name = "wasm-bindgen-backend" -version = "0.2.95" +version = "0.2.97" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cb6dd4d3ca0ddffd1dd1c9c04f94b868c37ff5fac97c30b97cff2d74fce3a358" +checksum = "8d36ef12e3aaca16ddd3f67922bc63e48e953f126de60bd33ccc0101ef9998cd" dependencies = [ "bumpalo", "log", "once_cell", "proc-macro2", "quote", - "syn 2.0.87", + "syn 2.0.90", "wasm-bindgen-shared", ] [[package]] name = "wasm-bindgen-futures" -version = "0.4.45" +version = "0.4.47" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cc7ec4f8827a71586374db3e87abdb5a2bb3a15afed140221307c3ec06b1f63b" +checksum = "9dfaf8f50e5f293737ee323940c7d8b08a66a95a419223d9f41610ca08b0833d" dependencies = [ "cfg-if", "js-sys", + "once_cell", "wasm-bindgen", "web-sys", ] [[package]] name = "wasm-bindgen-macro" -version = "0.2.95" +version = "0.2.97" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e79384be7f8f5a9dd5d7167216f022090cf1f9ec128e6e6a482a2cb5c5422c56" +checksum = "705440e08b42d3e4b36de7d66c944be628d579796b8090bfa3471478a2260051" dependencies = [ "quote", "wasm-bindgen-macro-support", @@ -8089,22 +8362,22 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro-support" -version = "0.2.95" +version = "0.2.97" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "26c6ab57572f7a24a4985830b120de1594465e5d500f24afe89e16b4e833ef68" +checksum = "98c9ae5a76e46f4deecd0f0255cc223cfa18dc9b261213b8aa0c7b36f61b3f1d" dependencies = [ "proc-macro2", "quote", - "syn 2.0.87", + "syn 2.0.90", "wasm-bindgen-backend", "wasm-bindgen-shared", ] [[package]] name = "wasm-bindgen-shared" -version = "0.2.95" +version = "0.2.97" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "65fc09f10666a9f147042251e0dda9c18f166ff7de300607007e96bdebc1068d" +checksum = "6ee99da9c5ba11bd675621338ef6fa52296b76b83305e9b6e5c77d4c286d6d49" [[package]] name = "wasm-streams" @@ -8135,9 +8408,9 @@ dependencies = [ [[package]] name = "web-sys" -version = "0.3.72" +version = "0.3.74" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f6488b90108c040df0fe62fa815cbdee25124641df01814dd7282749234c6112" +checksum = "a98bc3c33f0fe7e59ad7cd041b89034fa82a7c2d4365ca538dda6cdaf513863c" dependencies = [ "js-sys", "wasm-bindgen", @@ -8155,9 +8428,9 @@ dependencies = [ [[package]] name = "webpki-roots" -version = "0.26.6" +version = "0.26.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "841c67bff177718f1d4dfefde8d8f0e78f9b6589319ba88312f567fc5841a958" +checksum = "5d642ff16b7e79272ae451b7322067cdc17cadf68c23264be9d94a32319efe7e" dependencies = [ "rustls-pki-types", ] @@ -8190,7 +8463,7 @@ version = "0.1.9" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "cf221c93e13a30d793f7645a0e7762c55d169dbb0a49671918a2319d289b10bb" dependencies = [ - "windows-sys 0.48.0", + "windows-sys 0.59.0", ] [[package]] @@ -8248,7 +8521,7 @@ checksum = "9107ddc059d5b6fbfbffdfa7a7fe3e22a226def0b2608f72e9d552763d3e1ad7" dependencies = [ "proc-macro2", "quote", - "syn 2.0.87", + "syn 2.0.90", ] [[package]] @@ -8259,7 +8532,7 @@ checksum = "29bee4b38ea3cde66011baa44dba677c432a78593e202392d1e9070cf2a7fca7" dependencies = [ "proc-macro2", "quote", - "syn 2.0.87", + "syn 2.0.90", ] [[package]] @@ -8519,9 +8792,9 @@ dependencies = [ [[package]] name = "yoke" -version = "0.7.4" +version = "0.7.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6c5b1314b079b0930c31e3af543d8ee1757b1951ae1e1565ec704403a7240ca5" +checksum = "120e6aef9aa629e3d4f52dc8cc43a015c7724194c97dfaf45180d2daf2b77f40" dependencies = [ "serde", "stable_deref_trait", @@ -8531,13 +8804,13 @@ dependencies = [ [[package]] name = "yoke-derive" -version = "0.7.4" +version = "0.7.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "28cc31741b18cb6f1d5ff12f5b7523e3d6eb0852bbbad19d73905511d9849b95" +checksum = "2380878cad4ac9aac1e2435f3eb4020e8374b5f13c296cb75b4620ff8e229154" dependencies = [ "proc-macro2", "quote", - "syn 2.0.87", + "syn 2.0.90", "synstructure", ] @@ -8559,27 +8832,27 @@ checksum = "fa4f8080344d4671fb4e831a13ad1e68092748387dfc4f55e356242fae12ce3e" dependencies = [ "proc-macro2", "quote", - "syn 2.0.87", + "syn 2.0.90", ] [[package]] name = "zerofrom" -version = "0.1.4" +version = "0.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "91ec111ce797d0e0784a1116d0ddcdbea84322cd79e5d5ad173daeba4f93ab55" +checksum = "cff3ee08c995dee1859d998dea82f7374f2826091dd9cd47def953cae446cd2e" dependencies = [ "zerofrom-derive", ] [[package]] name = "zerofrom-derive" -version = "0.1.4" +version = "0.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0ea7b4a3637ea8669cedf0f1fd5c286a17f3de97b8dd5a70a6c167a1730e63a5" +checksum = "595eed982f7d355beb85837f651fa22e90b3c044842dc7f2c2842c086f295808" dependencies = [ "proc-macro2", "quote", - "syn 2.0.87", + "syn 2.0.90", "synstructure", ] @@ -8600,7 +8873,7 @@ checksum = "ce36e65b0d2999d2aafac989fb249189a141aee1f53c612c1f37d72631959f69" dependencies = [ "proc-macro2", "quote", - "syn 2.0.87", + "syn 2.0.90", ] [[package]] @@ -8622,7 +8895,7 @@ checksum = "6eafa6dfb17584ea3e2bd6e76e0cc15ad7af12b09abdd1ca55961bed9b1063c6" dependencies = [ "proc-macro2", "quote", - "syn 2.0.87", + "syn 2.0.90", ] [[package]] diff --git a/Cargo.toml b/Cargo.toml index bf05ad31..f267449a 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -90,9 +90,11 @@ op-alloy-network = { version = "0.6.8", default-features = false } # sp1 sp1-lib = { version = "3.0.0", features = ["verify"] } sp1-zkvm = { version = "3.0.0", features = ["verify"] } -# Note: This rev is on a branch which includes skipping deferred verification + SP1 mock groth16 bytes fix + executor opts. Once 4.0.0 is released, update this. -# ratan/op-succinct-sp1 -sp1-sdk = { git = "https://github.com/succinctlabs/sp1.git", rev = "884948a30c9b125950b9ddf7a344fb69548cd9df" } +# Note: This rev includes the SP1 mock groth16 bytes fix, skipping deferred verification, executor opts and network-v2 changes. +# ratan/v3.0.0-w-network-v2 branch includes the network-v2 changes from `19ae3e1`. +sp1-sdk = { git = "https://github.com/succinctlabs/sp1.git", rev = "447fda5f759908bbc3091979bd933ee9d126873b", features = [ + "network-v2", +] } sp1-build = { version = "3.0.0" } [profile.release-client-lto] diff --git a/configs/808813/rollup.json b/configs/808813/rollup.json index ca50cebe..d96249a5 100644 --- a/configs/808813/rollup.json +++ b/configs/808813/rollup.json @@ -41,6 +41,7 @@ "ecotone_time": 0, "fjord_time": 0, "granite_time": 1725984001, + "holocene_time": 1732633200, "batch_inbox_address": "0x734dde12fd466c14a85de838788efe6f1993c84c", "deposit_contract_address": "0xbaaf3bafdbd660380938b27d21c31bb7d072a799", "l1_system_config_address": "0x3974436fa4bb4deb5a04ace51a704b10ff5a1f25", diff --git a/contracts/opsuccinctl2ooconfig.json b/contracts/opsuccinctl2ooconfig.json new file mode 100644 index 00000000..dbafd7ea --- /dev/null +++ b/contracts/opsuccinctl2ooconfig.json @@ -0,0 +1,15 @@ +{ + "challenger": "0x0000000000000000000000000000000000000000", + "finalizationPeriod": 0, + "l2BlockTime": 2, + "owner": "0xDEd0000E32f8F40414d3ab3a830f735a3553E18e", + "proposer": "0xDEd0000E32f8F40414d3ab3a830f735a3553E18e", + "rollupConfigHash": "0x0d7101e2acc7eae1fb42cfce5c604d14da561726e4e01b509315e5a9f97a9816", + "startingBlockNumber": 5591859, + "startingOutputRoot": "0xd2c903c40513a87898b2830196d53e0bedabe5dfba09c002b9cc39cb0ba5fe46", + "startingTimestamp": 1733536206, + "submissionInterval": 1200, + "verifier": "0x397A5f7f3dBd538f23DE225B51f532c34448dA9B", + "aggregationVkey": "0x00ea4171dbd0027768055bee7f6d64e17e9cec99b29aad5d18e5d804b967775b", + "rangeVkeyCommitment": "0x51decb4a49105f2a1403423f560bc55d6d02e5eb57f21d0c5bd6a661555a8e53" +} \ No newline at end of file diff --git a/justfile b/justfile index 9c1a24f1..1ec26eda 100644 --- a/justfile +++ b/justfile @@ -149,6 +149,9 @@ deploy-oracle env_file=".env": # cd into contracts directory cd contracts + + # forge install + forge install # Run the forge deployment script forge script script/OPSuccinctDeployer.s.sol:OPSuccinctDeployer \ @@ -173,6 +176,9 @@ upgrade-oracle env_file=".env": # cd into contracts directory cd contracts + + # forge install + forge install # Run the forge upgrade script if [ "${EXECUTE_UPGRADE_CALL:-true}" = "false" ]; then @@ -203,6 +209,9 @@ update-parameters env_file=".env": # cd into contracts directory cd contracts + + # forge install + forge install # Run the forge upgrade script if [ "${EXECUTE_UPGRADE_CALL:-true}" = "false" ]; then diff --git a/proposer/op/bindings/opsuccinctl2outputoracle.go b/proposer/op/bindings/opsuccinctl2outputoracle.go index 44d21d75..d4b6709a 100644 --- a/proposer/op/bindings/opsuccinctl2outputoracle.go +++ b/proposer/op/bindings/opsuccinctl2outputoracle.go @@ -56,7 +56,7 @@ type TypesOutputProposal struct { // OPSuccinctL2OutputOracleMetaData contains all meta data concerning the OPSuccinctL2OutputOracle contract. var OPSuccinctL2OutputOracleMetaData = &bind.MetaData{ ABI: "[{\"type\":\"constructor\",\"inputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"CHALLENGER\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"address\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"FINALIZATION_PERIOD_SECONDS\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"L2_BLOCK_TIME\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"PROPOSER\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"address\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"SUBMISSION_INTERVAL\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"addProposer\",\"inputs\":[{\"name\":\"_proposer\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"aggregationVkey\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"approvedProposers\",\"inputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[{\"name\":\"\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"challenger\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"address\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"checkpointBlockHash\",\"inputs\":[{\"name\":\"_blockNumber\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"computeL2Timestamp\",\"inputs\":[{\"name\":\"_l2BlockNumber\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"deleteL2Outputs\",\"inputs\":[{\"name\":\"_l2OutputIndex\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"finalizationPeriodSeconds\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getL2Output\",\"inputs\":[{\"name\":\"_l2OutputIndex\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"tuple\",\"internalType\":\"structTypes.OutputProposal\",\"components\":[{\"name\":\"outputRoot\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"timestamp\",\"type\":\"uint128\",\"internalType\":\"uint128\"},{\"name\":\"l2BlockNumber\",\"type\":\"uint128\",\"internalType\":\"uint128\"}]}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getL2OutputAfter\",\"inputs\":[{\"name\":\"_l2BlockNumber\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"tuple\",\"internalType\":\"structTypes.OutputProposal\",\"components\":[{\"name\":\"outputRoot\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"timestamp\",\"type\":\"uint128\",\"internalType\":\"uint128\"},{\"name\":\"l2BlockNumber\",\"type\":\"uint128\",\"internalType\":\"uint128\"}]}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getL2OutputIndexAfter\",\"inputs\":[{\"name\":\"_l2BlockNumber\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"historicBlockHashes\",\"inputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"initialize\",\"inputs\":[{\"name\":\"_initParams\",\"type\":\"tuple\",\"internalType\":\"structOPSuccinctL2OutputOracle.InitParams\",\"components\":[{\"name\":\"challenger\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"proposer\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"owner\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"finalizationPeriodSeconds\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"l2BlockTime\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"aggregationVkey\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"rangeVkeyCommitment\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"rollupConfigHash\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"startingOutputRoot\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"startingBlockNumber\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"startingTimestamp\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"submissionInterval\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"verifier\",\"type\":\"address\",\"internalType\":\"address\"}]}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"l2BlockTime\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"latestBlockNumber\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"latestOutputIndex\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"nextBlockNumber\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"nextOutputIndex\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"owner\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"address\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"proposeL2Output\",\"inputs\":[{\"name\":\"_outputRoot\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"_l2BlockNumber\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"_l1BlockNumber\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"_proof\",\"type\":\"bytes\",\"internalType\":\"bytes\"}],\"outputs\":[],\"stateMutability\":\"payable\"},{\"type\":\"function\",\"name\":\"proposer\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"address\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"rangeVkeyCommitment\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"removeProposer\",\"inputs\":[{\"name\":\"_proposer\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"rollupConfigHash\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"startingBlockNumber\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"startingTimestamp\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"submissionInterval\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"transferOwnership\",\"inputs\":[{\"name\":\"_owner\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"updateAggregationVkey\",\"inputs\":[{\"name\":\"_aggregationVkey\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"updateRangeVkeyCommitment\",\"inputs\":[{\"name\":\"_rangeVkeyCommitment\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"updateRollupConfigHash\",\"inputs\":[{\"name\":\"_rollupConfigHash\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"updateSubmissionInterval\",\"inputs\":[{\"name\":\"_submissionInterval\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"updateVerifier\",\"inputs\":[{\"name\":\"_verifier\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"verifier\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"address\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"version\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"string\",\"internalType\":\"string\"}],\"stateMutability\":\"view\"},{\"type\":\"event\",\"name\":\"AggregationVkeyUpdated\",\"inputs\":[{\"name\":\"oldAggregationVkey\",\"type\":\"bytes32\",\"indexed\":true,\"internalType\":\"bytes32\"},{\"name\":\"newAggregationVkey\",\"type\":\"bytes32\",\"indexed\":true,\"internalType\":\"bytes32\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"Initialized\",\"inputs\":[{\"name\":\"version\",\"type\":\"uint8\",\"indexed\":false,\"internalType\":\"uint8\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"OutputProposed\",\"inputs\":[{\"name\":\"outputRoot\",\"type\":\"bytes32\",\"indexed\":true,\"internalType\":\"bytes32\"},{\"name\":\"l2OutputIndex\",\"type\":\"uint256\",\"indexed\":true,\"internalType\":\"uint256\"},{\"name\":\"l2BlockNumber\",\"type\":\"uint256\",\"indexed\":true,\"internalType\":\"uint256\"},{\"name\":\"l1Timestamp\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"OutputsDeleted\",\"inputs\":[{\"name\":\"prevNextOutputIndex\",\"type\":\"uint256\",\"indexed\":true,\"internalType\":\"uint256\"},{\"name\":\"newNextOutputIndex\",\"type\":\"uint256\",\"indexed\":true,\"internalType\":\"uint256\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"OwnershipTransferred\",\"inputs\":[{\"name\":\"previousOwner\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"newOwner\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"ProposerUpdated\",\"inputs\":[{\"name\":\"proposer\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"added\",\"type\":\"bool\",\"indexed\":false,\"internalType\":\"bool\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"RangeVkeyCommitmentUpdated\",\"inputs\":[{\"name\":\"oldRangeVkeyCommitment\",\"type\":\"bytes32\",\"indexed\":true,\"internalType\":\"bytes32\"},{\"name\":\"newRangeVkeyCommitment\",\"type\":\"bytes32\",\"indexed\":true,\"internalType\":\"bytes32\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"RollupConfigHashUpdated\",\"inputs\":[{\"name\":\"oldRollupConfigHash\",\"type\":\"bytes32\",\"indexed\":true,\"internalType\":\"bytes32\"},{\"name\":\"newRollupConfigHash\",\"type\":\"bytes32\",\"indexed\":true,\"internalType\":\"bytes32\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"SubmissionIntervalUpdated\",\"inputs\":[{\"name\":\"oldSubmissionInterval\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"},{\"name\":\"newSubmissionInterval\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"VerifierUpdated\",\"inputs\":[{\"name\":\"oldVerifier\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"newVerifier\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"}],\"anonymous\":false},{\"type\":\"error\",\"name\":\"L1BlockHashNotAvailable\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"L1BlockHashNotCheckpointed\",\"inputs\":[]}]", - Bin: "0x608060405234801561001057600080fd5b5061001961001e565b6100de565b600054610100900460ff161561008a5760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b60005460ff90811610156100dc576000805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b611c57806100ed6000396000f3fe60806040526004361061023a5760003560e01c806393991af31161012e578063c4cb03ec116100ab578063db1470f51161006f578063db1470f5146106be578063dcec3348146106de578063e1a41bcf146106f3578063f2fde38b14610709578063f4daa2911461072957600080fd5b8063c4cb03ec14610608578063ce5db8d614610628578063cf8e5cf01461063e578063d1de856c1461065e578063d46512761461067e57600080fd5b8063a8e4fb90116100f2578063a8e4fb9014610574578063b03cd41814610594578063bc91ce33146105b4578063bffa7f0f146105d4578063c32e4e3e146105f257600080fd5b806393991af3146104ab57806397fc007c146104c15780639ad84880146104e1578063a196b525146104f4578063a25ae5571461052157600080fd5b806354fd4d50116101bc57806370872aa51161018057806370872aa51461041f5780637f00642014610435578063887862721461045557806389c44cbb1461046b5780638da5cb5b1461048b57600080fd5b806354fd4d501461037d57806369f16eec146103c15780636abcf563146103d65780636b4d98dd146103eb5780636d9a1c8b1461040957600080fd5b80632b7ac3f3116102035780632b7ac3f3146102db578063336c9e81146103135780634599c78814610333578063529933df14610348578063534db0e21461035d57600080fd5b80622134cc1461023f57806309d632d3146102635780631bdd450c146102855780631e856800146102a55780632b31841e146102c5575b600080fd5b34801561024b57600080fd5b506005545b6040519081526020015b60405180910390f35b34801561026f57600080fd5b5061028361027e366004611888565b61073e565b005b34801561029157600080fd5b506102836102a03660046118aa565b6107c7565b3480156102b157600080fd5b506102836102c03660046118aa565b610825565b3480156102d157600080fd5b50610250600a5481565b3480156102e757600080fd5b50600b546102fb906001600160a01b031681565b6040516001600160a01b03909116815260200161025a565b34801561031f57600080fd5b5061028361032e3660046118aa565b610857565b34801561033f57600080fd5b506102506108c2565b34801561035457600080fd5b50600454610250565b34801561036957600080fd5b506006546102fb906001600160a01b031681565b34801561038957600080fd5b506103b46040518060400160405280600b81526020016a0626574612d76302e322e360ac1b81525081565b60405161025a9190611910565b3480156103cd57600080fd5b5061025061091f565b3480156103e257600080fd5b50600354610250565b3480156103f757600080fd5b506006546001600160a01b03166102fb565b34801561041557600080fd5b50610250600c5481565b34801561042b57600080fd5b5061025060015481565b34801561044157600080fd5b506102506104503660046118aa565b610931565b34801561046157600080fd5b5061025060025481565b34801561047757600080fd5b506102836104863660046118aa565b610acf565b34801561049757600080fd5b50600d546102fb906001600160a01b031681565b3480156104b757600080fd5b5061025060055481565b3480156104cd57600080fd5b506102836104dc366004611888565b610cd4565b6102836104ef366004611994565b610d5a565b34801561050057600080fd5b5061025061050f3660046118aa565b600f6020526000908152604090205481565b34801561052d57600080fd5b5061054161053c3660046118aa565b6111cc565b60408051825181526020808401516001600160801b0390811691830191909152928201519092169082015260600161025a565b34801561058057600080fd5b506007546102fb906001600160a01b031681565b3480156105a057600080fd5b506102836105af366004611888565b61124a565b3480156105c057600080fd5b506102836105cf3660046118aa565b6112cb565b3480156105e057600080fd5b506007546001600160a01b03166102fb565b3480156105fe57600080fd5b5061025060095481565b34801561061457600080fd5b506102836106233660046118aa565b611329565b34801561063457600080fd5b5061025060085481565b34801561064a57600080fd5b506105416106593660046118aa565b611387565b34801561066a57600080fd5b506102506106793660046118aa565b6113bf565b34801561068a57600080fd5b506106ae610699366004611888565b600e6020526000908152604090205460ff1681565b604051901515815260200161025a565b3480156106ca57600080fd5b506102836106d9366004611a46565b6113ef565b3480156106ea57600080fd5b506102506117cf565b3480156106ff57600080fd5b5061025060045481565b34801561071557600080fd5b50610283610724366004611888565b6117e6565b34801561073557600080fd5b50600854610250565b600d546001600160a01b031633146107715760405162461bcd60e51b815260040161076890611b09565b60405180910390fd5b6001600160a01b0381166000818152600e60209081526040808320805460ff19169055519182527f5df38d395edc15b669d646569bd015513395070b5b4deb8a16300abb060d1b5a91015b60405180910390a250565b600d546001600160a01b031633146107f15760405162461bcd60e51b815260040161076890611b09565b600c546040518291907f5d9ebe9f09b0810b3546b30781ba9a51092b37dd6abada4b830ce54a41ac6a4b90600090a3600c55565b804080610845576040516321301a1960e21b815260040160405180910390fd5b6000918252600f602052604090912055565b600d546001600160a01b031633146108815760405162461bcd60e51b815260040161076890611b09565b60045460408051918252602082018390527fc1bf9abfb57ea01ed9ecb4f45e9cefa7ba44b2e6778c3ce7281409999f1af1b2910160405180910390a1600455565b6003546000901561091657600380546108dd90600190611b66565b815481106108ed576108ed611b7d565b6000918252602090912060029091020160010154600160801b90046001600160801b0316919050565b6001545b905090565b60035460009061091a90600190611b66565b600061093b6108c2565b8211156109c15760405162461bcd60e51b815260206004820152604860248201527f4c324f75747075744f7261636c653a2063616e6e6f7420676574206f7574707560448201527f7420666f72206120626c6f636b207468617420686173206e6f74206265656e206064820152671c1c9bdc1bdcd95960c21b608482015260a401610768565b600354610a455760405162461bcd60e51b815260206004820152604660248201527f4c324f75747075744f7261636c653a2063616e6e6f7420676574206f7574707560448201527f74206173206e6f206f7574707574732068617665206265656e2070726f706f736064820152651959081e595d60d21b608482015260a401610768565b6003546000905b80821015610ac85760006002610a628385611b93565b610a6c9190611bab565b90508460038281548110610a8257610a82611b7d565b6000918252602090912060029091020160010154600160801b90046001600160801b03161015610abe57610ab7816001611b93565b9250610ac2565b8091505b50610a4c565b5092915050565b6006546001600160a01b03163314610b4f5760405162461bcd60e51b815260206004820152603e60248201527f4c324f75747075744f7261636c653a206f6e6c7920746865206368616c6c656e60448201527f67657220616464726573732063616e2064656c657465206f75747075747300006064820152608401610768565b6003548110610bd25760405162461bcd60e51b815260206004820152604360248201527f4c324f75747075744f7261636c653a2063616e6e6f742064656c657465206f7560448201527f747075747320616674657220746865206c6174657374206f757470757420696e6064820152620c8caf60eb1b608482015260a401610768565b60085460038281548110610be857610be8611b7d565b6000918252602090912060016002909202010154610c0f906001600160801b031642611b66565b10610c915760405162461bcd60e51b815260206004820152604660248201527f4c324f75747075744f7261636c653a2063616e6e6f742064656c657465206f7560448201527f74707574732074686174206861766520616c7265616479206265656e2066696e606482015265185b1a5e995960d21b608482015260a401610768565b6000610c9c60035490565b90508160035581817f4ee37ac2c786ec85e87592d3c5c8a1dd66f8496dda3f125d9ea8ca5f657629b660405160405180910390a35050565b600d546001600160a01b03163314610cfe5760405162461bcd60e51b815260040161076890611b09565b600b546040516001600160a01b038084169216907f0243549a92b2412f7a3caf7a2e56d65b8821b91345363faa5f57195384065fcc90600090a3600b80546001600160a01b0319166001600160a01b0392909216919091179055565b336000908152600e602052604090205460ff1680610da2575060008052600e6020527fe710864318d4a32f37d6ce54cb3fadbef648dd12d8dbdf53973564d56b7f881c5460ff165b610e145760405162461bcd60e51b815260206004820152603f60248201527f4c324f75747075744f7261636c653a206f6e6c7920617070726f76656420707260448201527f6f706f736572732063616e2070726f706f7365206e6577206f757470757473006064820152608401610768565b610e1c6117cf565b831015610eb75760405162461bcd60e51b815260206004820152605860248201527f4c324f75747075744f7261636c653a20626c6f636b206e756d626572206d757360448201527f742062652067726561746572207468616e206f7220657175616c20746f206e6560648201527f787420657870656374656420626c6f636b206e756d6265720000000000000000608482015260a401610768565b42610ec1846113bf565b10610f2d5760405162461bcd60e51b815260206004820152603660248201527f4c324f75747075744f7261636c653a2063616e6e6f742070726f706f7365204c60448201527532206f757470757420696e207468652066757475726560501b6064820152608401610768565b83610fa05760405162461bcd60e51b815260206004820152603a60248201527f4c324f75747075744f7261636c653a204c32206f75747075742070726f706f7360448201527f616c2063616e6e6f7420626520746865207a65726f20686173680000000000006064820152608401610768565b6000828152600f602052604090205480610fcd57604051630455475360e31b815260040160405180910390fd5b60006040518060c001604052808381526020016003610fea61091f565b81548110610ffa57610ffa611b7d565b60009182526020918290206002909102015482528181018990526040808301899052600c54606080850191909152600a54608094850152600b5460095483518751818701529487015185850152928601518483015290850151838501529284015160a08084019190915284015160c08301529293506001600160a01b03909116916341493c609160e001604051602081830303815290604052866040518463ffffffff1660e01b81526004016110b293929190611bcd565b60006040518083038186803b1580156110ca57600080fd5b505afa1580156110de573d6000803e3d6000fd5b50505050846110ec60035490565b877fa7aaf2512769da4e444e3de247be2564225c2e7a8f74cfe528e46e17d24868e24260405161111e91815260200190565b60405180910390a45050604080516060810182529485526001600160801b034281166020870190815294811691860191825260038054600181018255600091909152955160029096027fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b810196909655935190518416600160801b029316929092177fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85c909301929092555050565b6040805160608101825260008082526020820181905291810191909152600382815481106111fc576111fc611b7d565b600091825260209182902060408051606081018252600290930290910180548352600101546001600160801b0380821694840194909452600160801b90049092169181019190915292915050565b600d546001600160a01b031633146112745760405162461bcd60e51b815260040161076890611b09565b6001600160a01b0381166000818152600e6020908152604091829020805460ff1916600190811790915591519182527f5df38d395edc15b669d646569bd015513395070b5b4deb8a16300abb060d1b5a91016107bc565b600d546001600160a01b031633146112f55760405162461bcd60e51b815260040161076890611b09565b600a546040518291907fbf8cab6317796bfa97fea82b6d27c9542a08fa0821813cf2a57e7cff7fdc815690600090a3600a55565b600d546001600160a01b031633146113535760405162461bcd60e51b815260040161076890611b09565b6009546040518291907f390b73b2b067afcef04d30b573e4590c6e565519e370927dd777ca0ce8a55db090600090a3600955565b604080516060810182526000808252602082018190529181019190915260036113af83610931565b815481106111fc576111fc611b7d565b6000600554600154836113d29190611b66565b6113dc9190611c02565b6002546113e99190611b93565b92915050565b600054610100900460ff161580801561140f5750600054600160ff909116105b806114295750303b158015611429575060005460ff166001145b61148c5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401610768565b6000805460ff1916600117905580156114af576000805461ff0019166101001790555b60008261016001511161152a5760405162461bcd60e51b815260206004820152603a60248201527f4c324f75747075744f7261636c653a207375626d697373696f6e20696e74657260448201527f76616c206d7573742062652067726561746572207468616e20300000000000006064820152608401610768565b600082608001511161159b5760405162461bcd60e51b815260206004820152603460248201527f4c324f75747075744f7261636c653a204c3220626c6f636b2074696d65206d75604482015273073742062652067726561746572207468616e20360641b6064820152608401610768565b4282610140015111156116245760405162461bcd60e51b8152602060048201526044602482018190527f4c324f75747075744f7261636c653a207374617274696e67204c322074696d65908201527f7374616d70206d757374206265206c657373207468616e2063757272656e742060648201526374696d6560e01b608482015260a401610768565b61016082015160045560808201516005556003546000036116fb57604080516060810182526101008401518152610140840180516001600160801b03908116602084019081526101208701805183169585019586526003805460018181018355600092909252955160029687027fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b810191909155925196518416600160801b0296909316959095177fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85c909101559251909255905190555b8151600680546001600160a01b039283166001600160a01b031991821617909155606084015160085560208085015183166000908152600e909152604090819020805460ff1916600117905560a085015160095560c0850151600a55610180850151600b805491851691841691909117905560e0850151600c55840151600d805491909316911617905580156117cb576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050565b60006004546117dc6108c2565b61091a9190611b93565b600d546001600160a01b031633146118105760405162461bcd60e51b815260040161076890611b09565b600d546040516001600160a01b038084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3600d80546001600160a01b0319166001600160a01b0392909216919091179055565b80356001600160a01b038116811461188357600080fd5b919050565b60006020828403121561189a57600080fd5b6118a38261186c565b9392505050565b6000602082840312156118bc57600080fd5b5035919050565b6000815180845260005b818110156118e9576020818501810151868301820152016118cd565b818111156118fb576000602083870101525b50601f01601f19169290920160200192915050565b6020815260006118a360208301846118c3565b634e487b7160e01b600052604160045260246000fd5b6040516101a0810167ffffffffffffffff8111828210171561195d5761195d611923565b60405290565b604051601f8201601f1916810167ffffffffffffffff8111828210171561198c5761198c611923565b604052919050565b600080600080608085870312156119aa57600080fd5b84359350602080860135935060408601359250606086013567ffffffffffffffff808211156119d857600080fd5b818801915088601f8301126119ec57600080fd5b8135818111156119fe576119fe611923565b611a10601f8201601f19168501611963565b91508082528984828501011115611a2657600080fd5b808484018584013760008482840101525080935050505092959194509250565b60006101a08284031215611a5957600080fd5b611a61611939565b611a6a8361186c565b8152611a786020840161186c565b6020820152611a896040840161186c565b6040820152606083013560608201526080830135608082015260a083013560a082015260c083013560c082015260e083013560e0820152610100808401358183015250610120808401358183015250610140808401358183015250610160808401358183015250610180611afe81850161186c565b908201529392505050565b60208082526027908201527f4c324f75747075744f7261636c653a2063616c6c6572206973206e6f74207468604082015266329037bbb732b960c91b606082015260800190565b634e487b7160e01b600052601160045260246000fd5b600082821015611b7857611b78611b50565b500390565b634e487b7160e01b600052603260045260246000fd5b60008219821115611ba657611ba6611b50565b500190565b600082611bc857634e487b7160e01b600052601260045260246000fd5b500490565b838152606060208201526000611be660608301856118c3565b8281036040840152611bf881856118c3565b9695505050505050565b6000816000190483118215151615611c1c57611c1c611b50565b50029056fea264697066735822122023138f5c218ba36ca3229d9d1186e3a32a72aeebd857796d4bda7374247683e764736f6c634300080f0033", + Bin: "0x608060405234801561001057600080fd5b5061001961001e565b6100de565b600054610100900460ff161561008a5760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b60005460ff90811610156100dc576000805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b611c57806100ed6000396000f3fe60806040526004361061023a5760003560e01c806393991af31161012e578063c4cb03ec116100ab578063db1470f51161006f578063db1470f5146106be578063dcec3348146106de578063e1a41bcf146106f3578063f2fde38b14610709578063f4daa2911461072957600080fd5b8063c4cb03ec14610608578063ce5db8d614610628578063cf8e5cf01461063e578063d1de856c1461065e578063d46512761461067e57600080fd5b8063a8e4fb90116100f2578063a8e4fb9014610574578063b03cd41814610594578063bc91ce33146105b4578063bffa7f0f146105d4578063c32e4e3e146105f257600080fd5b806393991af3146104ab57806397fc007c146104c15780639ad84880146104e1578063a196b525146104f4578063a25ae5571461052157600080fd5b806354fd4d50116101bc57806370872aa51161018057806370872aa51461041f5780637f00642014610435578063887862721461045557806389c44cbb1461046b5780638da5cb5b1461048b57600080fd5b806354fd4d501461037d57806369f16eec146103c15780636abcf563146103d65780636b4d98dd146103eb5780636d9a1c8b1461040957600080fd5b80632b7ac3f3116102035780632b7ac3f3146102db578063336c9e81146103135780634599c78814610333578063529933df14610348578063534db0e21461035d57600080fd5b80622134cc1461023f57806309d632d3146102635780631bdd450c146102855780631e856800146102a55780632b31841e146102c5575b600080fd5b34801561024b57600080fd5b506005545b6040519081526020015b60405180910390f35b34801561026f57600080fd5b5061028361027e366004611888565b61073e565b005b34801561029157600080fd5b506102836102a03660046118aa565b6107c7565b3480156102b157600080fd5b506102836102c03660046118aa565b610825565b3480156102d157600080fd5b50610250600a5481565b3480156102e757600080fd5b50600b546102fb906001600160a01b031681565b6040516001600160a01b03909116815260200161025a565b34801561031f57600080fd5b5061028361032e3660046118aa565b610857565b34801561033f57600080fd5b506102506108c2565b34801561035457600080fd5b50600454610250565b34801561036957600080fd5b506006546102fb906001600160a01b031681565b34801561038957600080fd5b506103b46040518060400160405280600b81526020016a0626574612d76302e342e360ac1b81525081565b60405161025a9190611910565b3480156103cd57600080fd5b5061025061091f565b3480156103e257600080fd5b50600354610250565b3480156103f757600080fd5b506006546001600160a01b03166102fb565b34801561041557600080fd5b50610250600c5481565b34801561042b57600080fd5b5061025060015481565b34801561044157600080fd5b506102506104503660046118aa565b610931565b34801561046157600080fd5b5061025060025481565b34801561047757600080fd5b506102836104863660046118aa565b610acf565b34801561049757600080fd5b50600d546102fb906001600160a01b031681565b3480156104b757600080fd5b5061025060055481565b3480156104cd57600080fd5b506102836104dc366004611888565b610cd4565b6102836104ef366004611994565b610d5a565b34801561050057600080fd5b5061025061050f3660046118aa565b600f6020526000908152604090205481565b34801561052d57600080fd5b5061054161053c3660046118aa565b6111cc565b60408051825181526020808401516001600160801b0390811691830191909152928201519092169082015260600161025a565b34801561058057600080fd5b506007546102fb906001600160a01b031681565b3480156105a057600080fd5b506102836105af366004611888565b61124a565b3480156105c057600080fd5b506102836105cf3660046118aa565b6112cb565b3480156105e057600080fd5b506007546001600160a01b03166102fb565b3480156105fe57600080fd5b5061025060095481565b34801561061457600080fd5b506102836106233660046118aa565b611329565b34801561063457600080fd5b5061025060085481565b34801561064a57600080fd5b506105416106593660046118aa565b611387565b34801561066a57600080fd5b506102506106793660046118aa565b6113bf565b34801561068a57600080fd5b506106ae610699366004611888565b600e6020526000908152604090205460ff1681565b604051901515815260200161025a565b3480156106ca57600080fd5b506102836106d9366004611a46565b6113ef565b3480156106ea57600080fd5b506102506117cf565b3480156106ff57600080fd5b5061025060045481565b34801561071557600080fd5b50610283610724366004611888565b6117e6565b34801561073557600080fd5b50600854610250565b600d546001600160a01b031633146107715760405162461bcd60e51b815260040161076890611b09565b60405180910390fd5b6001600160a01b0381166000818152600e60209081526040808320805460ff19169055519182527f5df38d395edc15b669d646569bd015513395070b5b4deb8a16300abb060d1b5a91015b60405180910390a250565b600d546001600160a01b031633146107f15760405162461bcd60e51b815260040161076890611b09565b600c546040518291907f5d9ebe9f09b0810b3546b30781ba9a51092b37dd6abada4b830ce54a41ac6a4b90600090a3600c55565b804080610845576040516321301a1960e21b815260040160405180910390fd5b6000918252600f602052604090912055565b600d546001600160a01b031633146108815760405162461bcd60e51b815260040161076890611b09565b60045460408051918252602082018390527fc1bf9abfb57ea01ed9ecb4f45e9cefa7ba44b2e6778c3ce7281409999f1af1b2910160405180910390a1600455565b6003546000901561091657600380546108dd90600190611b66565b815481106108ed576108ed611b7d565b6000918252602090912060029091020160010154600160801b90046001600160801b0316919050565b6001545b905090565b60035460009061091a90600190611b66565b600061093b6108c2565b8211156109c15760405162461bcd60e51b815260206004820152604860248201527f4c324f75747075744f7261636c653a2063616e6e6f7420676574206f7574707560448201527f7420666f72206120626c6f636b207468617420686173206e6f74206265656e206064820152671c1c9bdc1bdcd95960c21b608482015260a401610768565b600354610a455760405162461bcd60e51b815260206004820152604660248201527f4c324f75747075744f7261636c653a2063616e6e6f7420676574206f7574707560448201527f74206173206e6f206f7574707574732068617665206265656e2070726f706f736064820152651959081e595d60d21b608482015260a401610768565b6003546000905b80821015610ac85760006002610a628385611b93565b610a6c9190611bab565b90508460038281548110610a8257610a82611b7d565b6000918252602090912060029091020160010154600160801b90046001600160801b03161015610abe57610ab7816001611b93565b9250610ac2565b8091505b50610a4c565b5092915050565b6006546001600160a01b03163314610b4f5760405162461bcd60e51b815260206004820152603e60248201527f4c324f75747075744f7261636c653a206f6e6c7920746865206368616c6c656e60448201527f67657220616464726573732063616e2064656c657465206f75747075747300006064820152608401610768565b6003548110610bd25760405162461bcd60e51b815260206004820152604360248201527f4c324f75747075744f7261636c653a2063616e6e6f742064656c657465206f7560448201527f747075747320616674657220746865206c6174657374206f757470757420696e6064820152620c8caf60eb1b608482015260a401610768565b60085460038281548110610be857610be8611b7d565b6000918252602090912060016002909202010154610c0f906001600160801b031642611b66565b10610c915760405162461bcd60e51b815260206004820152604660248201527f4c324f75747075744f7261636c653a2063616e6e6f742064656c657465206f7560448201527f74707574732074686174206861766520616c7265616479206265656e2066696e606482015265185b1a5e995960d21b608482015260a401610768565b6000610c9c60035490565b90508160035581817f4ee37ac2c786ec85e87592d3c5c8a1dd66f8496dda3f125d9ea8ca5f657629b660405160405180910390a35050565b600d546001600160a01b03163314610cfe5760405162461bcd60e51b815260040161076890611b09565b600b546040516001600160a01b038084169216907f0243549a92b2412f7a3caf7a2e56d65b8821b91345363faa5f57195384065fcc90600090a3600b80546001600160a01b0319166001600160a01b0392909216919091179055565b336000908152600e602052604090205460ff1680610da2575060008052600e6020527fe710864318d4a32f37d6ce54cb3fadbef648dd12d8dbdf53973564d56b7f881c5460ff165b610e145760405162461bcd60e51b815260206004820152603f60248201527f4c324f75747075744f7261636c653a206f6e6c7920617070726f76656420707260448201527f6f706f736572732063616e2070726f706f7365206e6577206f757470757473006064820152608401610768565b610e1c6117cf565b831015610eb75760405162461bcd60e51b815260206004820152605860248201527f4c324f75747075744f7261636c653a20626c6f636b206e756d626572206d757360448201527f742062652067726561746572207468616e206f7220657175616c20746f206e6560648201527f787420657870656374656420626c6f636b206e756d6265720000000000000000608482015260a401610768565b42610ec1846113bf565b10610f2d5760405162461bcd60e51b815260206004820152603660248201527f4c324f75747075744f7261636c653a2063616e6e6f742070726f706f7365204c60448201527532206f757470757420696e207468652066757475726560501b6064820152608401610768565b83610fa05760405162461bcd60e51b815260206004820152603a60248201527f4c324f75747075744f7261636c653a204c32206f75747075742070726f706f7360448201527f616c2063616e6e6f7420626520746865207a65726f20686173680000000000006064820152608401610768565b6000828152600f602052604090205480610fcd57604051630455475360e31b815260040160405180910390fd5b60006040518060c001604052808381526020016003610fea61091f565b81548110610ffa57610ffa611b7d565b60009182526020918290206002909102015482528181018990526040808301899052600c54606080850191909152600a54608094850152600b5460095483518751818701529487015185850152928601518483015290850151838501529284015160a08084019190915284015160c08301529293506001600160a01b03909116916341493c609160e001604051602081830303815290604052866040518463ffffffff1660e01b81526004016110b293929190611bcd565b60006040518083038186803b1580156110ca57600080fd5b505afa1580156110de573d6000803e3d6000fd5b50505050846110ec60035490565b877fa7aaf2512769da4e444e3de247be2564225c2e7a8f74cfe528e46e17d24868e24260405161111e91815260200190565b60405180910390a45050604080516060810182529485526001600160801b034281166020870190815294811691860191825260038054600181018255600091909152955160029096027fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b810196909655935190518416600160801b029316929092177fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85c909301929092555050565b6040805160608101825260008082526020820181905291810191909152600382815481106111fc576111fc611b7d565b600091825260209182902060408051606081018252600290930290910180548352600101546001600160801b0380821694840194909452600160801b90049092169181019190915292915050565b600d546001600160a01b031633146112745760405162461bcd60e51b815260040161076890611b09565b6001600160a01b0381166000818152600e6020908152604091829020805460ff1916600190811790915591519182527f5df38d395edc15b669d646569bd015513395070b5b4deb8a16300abb060d1b5a91016107bc565b600d546001600160a01b031633146112f55760405162461bcd60e51b815260040161076890611b09565b600a546040518291907fbf8cab6317796bfa97fea82b6d27c9542a08fa0821813cf2a57e7cff7fdc815690600090a3600a55565b600d546001600160a01b031633146113535760405162461bcd60e51b815260040161076890611b09565b6009546040518291907f390b73b2b067afcef04d30b573e4590c6e565519e370927dd777ca0ce8a55db090600090a3600955565b604080516060810182526000808252602082018190529181019190915260036113af83610931565b815481106111fc576111fc611b7d565b6000600554600154836113d29190611b66565b6113dc9190611c02565b6002546113e99190611b93565b92915050565b600054610100900460ff161580801561140f5750600054600160ff909116105b806114295750303b158015611429575060005460ff166001145b61148c5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401610768565b6000805460ff1916600117905580156114af576000805461ff0019166101001790555b60008261016001511161152a5760405162461bcd60e51b815260206004820152603a60248201527f4c324f75747075744f7261636c653a207375626d697373696f6e20696e74657260448201527f76616c206d7573742062652067726561746572207468616e20300000000000006064820152608401610768565b600082608001511161159b5760405162461bcd60e51b815260206004820152603460248201527f4c324f75747075744f7261636c653a204c3220626c6f636b2074696d65206d75604482015273073742062652067726561746572207468616e20360641b6064820152608401610768565b4282610140015111156116245760405162461bcd60e51b8152602060048201526044602482018190527f4c324f75747075744f7261636c653a207374617274696e67204c322074696d65908201527f7374616d70206d757374206265206c657373207468616e2063757272656e742060648201526374696d6560e01b608482015260a401610768565b61016082015160045560808201516005556003546000036116fb57604080516060810182526101008401518152610140840180516001600160801b03908116602084019081526101208701805183169585019586526003805460018181018355600092909252955160029687027fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b810191909155925196518416600160801b0296909316959095177fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85c909101559251909255905190555b8151600680546001600160a01b039283166001600160a01b031991821617909155606084015160085560208085015183166000908152600e909152604090819020805460ff1916600117905560a085015160095560c0850151600a55610180850151600b805491851691841691909117905560e0850151600c55840151600d805491909316911617905580156117cb576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050565b60006004546117dc6108c2565b61091a9190611b93565b600d546001600160a01b031633146118105760405162461bcd60e51b815260040161076890611b09565b600d546040516001600160a01b038084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3600d80546001600160a01b0319166001600160a01b0392909216919091179055565b80356001600160a01b038116811461188357600080fd5b919050565b60006020828403121561189a57600080fd5b6118a38261186c565b9392505050565b6000602082840312156118bc57600080fd5b5035919050565b6000815180845260005b818110156118e9576020818501810151868301820152016118cd565b818111156118fb576000602083870101525b50601f01601f19169290920160200192915050565b6020815260006118a360208301846118c3565b634e487b7160e01b600052604160045260246000fd5b6040516101a0810167ffffffffffffffff8111828210171561195d5761195d611923565b60405290565b604051601f8201601f1916810167ffffffffffffffff8111828210171561198c5761198c611923565b604052919050565b600080600080608085870312156119aa57600080fd5b84359350602080860135935060408601359250606086013567ffffffffffffffff808211156119d857600080fd5b818801915088601f8301126119ec57600080fd5b8135818111156119fe576119fe611923565b611a10601f8201601f19168501611963565b91508082528984828501011115611a2657600080fd5b808484018584013760008482840101525080935050505092959194509250565b60006101a08284031215611a5957600080fd5b611a61611939565b611a6a8361186c565b8152611a786020840161186c565b6020820152611a896040840161186c565b6040820152606083013560608201526080830135608082015260a083013560a082015260c083013560c082015260e083013560e0820152610100808401358183015250610120808401358183015250610140808401358183015250610160808401358183015250610180611afe81850161186c565b908201529392505050565b60208082526027908201527f4c324f75747075744f7261636c653a2063616c6c6572206973206e6f74207468604082015266329037bbb732b960c91b606082015260800190565b634e487b7160e01b600052601160045260246000fd5b600082821015611b7857611b78611b50565b500390565b634e487b7160e01b600052603260045260246000fd5b60008219821115611ba657611ba6611b50565b500190565b600082611bc857634e487b7160e01b600052601260045260246000fd5b500490565b838152606060208201526000611be660608301856118c3565b8281036040840152611bf881856118c3565b9695505050505050565b6000816000190483118215151615611c1c57611c1c611b50565b50029056fea264697066735822122017b7a0f745d54c124937ede48b12c01b01c1385bea76e9816bd47dbb830539d464736f6c634300080f0033", } // OPSuccinctL2OutputOracleABI is the input ABI used to generate the binding from. diff --git a/proposer/op/proposer/db/db.go b/proposer/op/proposer/db/db.go index 956017f2..2289a398 100644 --- a/proposer/op/proposer/db/db.go +++ b/proposer/op/proposer/db/db.go @@ -2,6 +2,7 @@ package db import ( "context" + "encoding/hex" "fmt" "os" "path/filepath" @@ -117,10 +118,13 @@ func (db *ProofDB) UpdateProofStatus(id int, proofStatus proofrequest.Status) er } // SetProverRequestID sets the prover request ID for a proof request in the database. -func (db *ProofDB) SetProverRequestID(id int, proverRequestID string) error { +func (db *ProofDB) SetProverRequestID(id int, proverRequestID []byte) error { + // Convert the []byte to a hex string. + proverRequestIDHex := hex.EncodeToString(proverRequestID) + _, err := db.writeClient.ProofRequest.Update(). Where(proofrequest.ID(id)). - SetProverRequestID(proverRequestID). + SetProverRequestID(proverRequestIDHex). SetProofRequestTime(uint64(time.Now().Unix())). SetLastUpdatedTime(uint64(time.Now().Unix())). Save(context.Background()) @@ -437,7 +441,8 @@ func (db *ProofDB) GetMaxContiguousSpanProofRange(start uint64) (uint64, error) currentBlock = span.EndBlock } - return max(start, currentBlock), nil + // The current block is at minimum the start block, and at maximum the end block of the last span proof. + return currentBlock, nil } // GetConsecutiveSpanProofs returns the span proofs that cover the range [start, end]. diff --git a/proposer/op/proposer/driver.go b/proposer/op/proposer/driver.go index b503b831..6d5c05cf 100644 --- a/proposer/op/proposer/driver.go +++ b/proposer/op/proposer/driver.go @@ -6,6 +6,7 @@ import ( "fmt" "math/big" _ "net/http/pprof" + "sort" "sync" "time" @@ -251,6 +252,12 @@ func (l *L2OutputSubmitter) GetProposerMetrics(ctx context.Context) (opsuccinctm return opsuccinctmetrics.ProposerMetrics{}, fmt.Errorf("failed to get max contiguous span proof range: %w", err) } + // This fetches the next block number, which is the currentBlock + submissionInterval. + minBlockToProveToAgg, err := l.l2ooContract.NextBlockNumber(&bind.CallOpts{Context: ctx}) + if err != nil { + return opsuccinctmetrics.ProposerMetrics{}, fmt.Errorf("failed to get next L2OO output: %w", err) + } + numProving, err := l.db.GetNumberOfRequestsWithStatuses(proofrequest.StatusPROVING) if err != nil { return opsuccinctmetrics.ProposerMetrics{}, fmt.Errorf("failed to get number of proofs proving: %w", err) @@ -271,6 +278,7 @@ func (l *L2OutputSubmitter) GetProposerMetrics(ctx context.Context) (opsuccinctm L2FinalizedBlock: l2FinalizedBlock, LatestContractL2Block: latestContractL2Block.Uint64(), HighestProvenContiguousL2Block: highestProvenContiguousL2Block, + MinBlockToProveToAgg: minBlockToProveToAgg.Uint64(), NumProving: uint64(numProving), NumWitnessgen: uint64(numWitnessgen), NumUnrequested: uint64(numUnrequested), @@ -312,8 +320,8 @@ func (l *L2OutputSubmitter) SendSlackNotification(proposerMetrics opsuccinctmetr message := fmt.Sprintf("*Chain %d Proposer Metrics*:\n"+ "Contract is %d minutes behind L2 Finalized\n"+ - "| L2 Unsafe | L2 Finalized | Contract L2 | Proven L2 |\n"+ - "| %-9d | %-12d | %-11d | %-9d |\n"+ + "| L2 Unsafe | L2 Finalized | Contract L2 | Proven L2 | Min to Agg |\n"+ + "| %-9d | %-12d | %-11d | %-9d | %-9d |\n"+ "| Proving | Witness Gen | Unrequested |\n"+ "| %-9d | %-11d | %-11d |", l.Cfg.L2ChainID, @@ -322,6 +330,7 @@ func (l *L2OutputSubmitter) SendSlackNotification(proposerMetrics opsuccinctmetr proposerMetrics.L2FinalizedBlock, proposerMetrics.LatestContractL2Block, proposerMetrics.HighestProvenContiguousL2Block, + proposerMetrics.MinBlockToProveToAgg, proposerMetrics.NumProving, proposerMetrics.NumWitnessgen, proposerMetrics.NumUnrequested) @@ -354,12 +363,20 @@ func (l *L2OutputSubmitter) SubmitAggProofs(ctx context.Context) error { return nil } - for _, aggProof := range completedAggProofs { - output, err := l.FetchOutput(ctx, aggProof.EndBlock) - if err != nil { - return fmt.Errorf("failed to fetch output at block %d: %w", aggProof.EndBlock, err) - } - l.proposeOutput(ctx, output, aggProof.Proof, aggProof.L1BlockNumber) + // Select the agg proof with the highest L2 block number. + sort.Slice(completedAggProofs, func(i, j int) bool { + return completedAggProofs[i].EndBlock > completedAggProofs[j].EndBlock + }) + + // Submit the agg proof with the highest L2 block number. + aggProof := completedAggProofs[0] + output, err := l.FetchOutput(ctx, aggProof.EndBlock) + if err != nil { + return fmt.Errorf("failed to fetch output at block %d: %w", aggProof.EndBlock, err) + } + err = l.proposeOutput(ctx, output, aggProof.Proof, aggProof.L1BlockNumber) + if err != nil { + return fmt.Errorf("failed to propose output: %w", err) } return nil @@ -675,20 +692,30 @@ func (l *L2OutputSubmitter) loopL2OO(ctx context.Context) { } } -func (l *L2OutputSubmitter) proposeOutput(ctx context.Context, output *eth.OutputResponse, proof []byte, l1BlockNum uint64) { +func (l *L2OutputSubmitter) proposeOutput(ctx context.Context, output *eth.OutputResponse, proof []byte, l1BlockNum uint64) error { cCtx, cancel := context.WithTimeout(ctx, 10*time.Minute) defer cancel() + // Get the current nextBlockNumber from the L2OO contract. + nextBlockNumber, err := l.l2ooContract.NextBlockNumber(&bind.CallOpts{Context: cCtx}) + if err != nil { + l.Log.Error("Failed to get nextBlockNumber", "err", err) + return err + } + if err := l.sendTransaction(cCtx, output, proof, l1BlockNum); err != nil { l.Log.Error("Failed to send proposal transaction", "err", err, + "expected_next_blocknum", nextBlockNumber.Uint64(), + "l2blocknum", output.BlockRef.Number, "l1blocknum", l1BlockNum, "l1head", output.Status.HeadL1.Number, "proof", proof) - return + return err } l.Log.Info("AGG proof submitted on-chain", "end", output.BlockRef.Number) l.Metr.RecordL2BlocksProposed(output.BlockRef) + return nil } // checkpointBlockHash gets the current L1 head, and then sends a transaction to checkpoint the blockhash on diff --git a/proposer/op/proposer/metrics/metrics.go b/proposer/op/proposer/metrics/metrics.go index 70856c51..6bd26076 100644 --- a/proposer/op/proposer/metrics/metrics.go +++ b/proposer/op/proposer/metrics/metrics.go @@ -47,9 +47,10 @@ type OPSuccinctMetrics struct { L2FinalizedBlock prometheus.Gauge LatestContractL2Block prometheus.Gauge HighestProvenContiguousL2Block prometheus.Gauge + MinBlockToProveToAgg prometheus.Gauge - ErrorCount *prometheus.CounterVec - ProveFailures *prometheus.CounterVec + ErrorCount *prometheus.CounterVec + ProveFailures *prometheus.CounterVec WitnessGenFailures *prometheus.CounterVec } @@ -66,70 +67,75 @@ func NewMetrics(procName string) *OPSuccinctMetrics { return &OPSuccinctMetrics{ ns: ns, - registry: registry, - factory: factory, - - RefMetrics: opmetrics.MakeRefMetrics(ns, factory), - TxMetrics: txmetrics.MakeTxMetrics(ns, factory), - RPCMetrics: opmetrics.MakeRPCMetrics(ns, factory), - - info: *factory.NewGaugeVec(prometheus.GaugeOpts{ - Namespace: ns, - Name: "info", - Help: "Pseudo-metric tracking version and config info", - }, []string{ - "version", - }), - up: factory.NewGauge(prometheus.GaugeOpts{ - Namespace: ns, - Name: "up", - Help: "1 if the op-proposer has finished starting up", - }), - NumProving: factory.NewGauge(prometheus.GaugeOpts{ - Namespace: ns, - Name: "num_proving", - Help: "Number of proofs currently being proven", - }), - NumWitnessGen: factory.NewGauge(prometheus.GaugeOpts{ - Namespace: ns, - Name: "num_witness_gen", - Help: "Number of witnesses currently being generated", - }), - NumUnrequested: factory.NewGauge(prometheus.GaugeOpts{ - Namespace: ns, - Name: "num_unrequested", - Help: "Number of unrequested proofs", - }), - L2FinalizedBlock: factory.NewGauge(prometheus.GaugeOpts{ - Namespace: ns, - Name: "l2_finalized_block", - Help: "Latest finalized L2 block number", - }), - LatestContractL2Block: factory.NewGauge(prometheus.GaugeOpts{ - Namespace: ns, - Name: "latest_contract_l2_block", - Help: "Latest L2 block number on the L2OO contract", - }), - HighestProvenContiguousL2Block: factory.NewGauge(prometheus.GaugeOpts{ - Namespace: ns, - Name: "highest_proven_contiguous_l2_block", - Help: "Highest proven L2 block contiguous with contract's latest block", - }), - ErrorCount: factory.NewCounterVec(prometheus.CounterOpts{ - Namespace: ns, - Name: "error_count", - Help: "Number of errors encountered", - }, []string{"type"}), - ProveFailures: factory.NewCounterVec(prometheus.CounterOpts{ - Namespace: ns, - Name: "prove_failures", - Help: "Number of prove failures by type", - }, []string{"reason"}), - WitnessGenFailures: factory.NewCounterVec(prometheus.CounterOpts{ - Namespace: ns, - Name: "witness_gen_failures", - Help: "Number of witness generation failures by type", - }, []string{"reason"}), + registry: registry, + factory: factory, + + RefMetrics: opmetrics.MakeRefMetrics(ns, factory), + TxMetrics: txmetrics.MakeTxMetrics(ns, factory), + RPCMetrics: opmetrics.MakeRPCMetrics(ns, factory), + + info: *factory.NewGaugeVec(prometheus.GaugeOpts{ + Namespace: ns, + Name: "info", + Help: "Pseudo-metric tracking version and config info", + }, []string{ + "version", + }), + up: factory.NewGauge(prometheus.GaugeOpts{ + Namespace: ns, + Name: "up", + Help: "1 if the op-proposer has finished starting up", + }), + NumProving: factory.NewGauge(prometheus.GaugeOpts{ + Namespace: ns, + Name: "num_proving", + Help: "Number of proofs currently being proven", + }), + NumWitnessGen: factory.NewGauge(prometheus.GaugeOpts{ + Namespace: ns, + Name: "num_witness_gen", + Help: "Number of witnesses currently being generated", + }), + NumUnrequested: factory.NewGauge(prometheus.GaugeOpts{ + Namespace: ns, + Name: "num_unrequested", + Help: "Number of unrequested proofs", + }), + L2FinalizedBlock: factory.NewGauge(prometheus.GaugeOpts{ + Namespace: ns, + Name: "l2_finalized_block", + Help: "Latest finalized L2 block number", + }), + LatestContractL2Block: factory.NewGauge(prometheus.GaugeOpts{ + Namespace: ns, + Name: "latest_contract_l2_block", + Help: "Latest L2 block number on the L2OO contract", + }), + HighestProvenContiguousL2Block: factory.NewGauge(prometheus.GaugeOpts{ + Namespace: ns, + Name: "highest_proven_contiguous_l2_block", + Help: "Highest proven L2 block contiguous with contract's latest block", + }), + MinBlockToProveToAgg: factory.NewGauge(prometheus.GaugeOpts{ + Namespace: ns, + Name: "min_block_to_prove_to_agg", + Help: "Minimum L2 block number to prove to generate an AGG proof", + }), + ErrorCount: factory.NewCounterVec(prometheus.CounterOpts{ + Namespace: ns, + Name: "error_count", + Help: "Number of errors encountered", + }, []string{"type"}), + ProveFailures: factory.NewCounterVec(prometheus.CounterOpts{ + Namespace: ns, + Name: "prove_failures", + Help: "Number of prove failures by type", + }, []string{"reason"}), + WitnessGenFailures: factory.NewCounterVec(prometheus.CounterOpts{ + Namespace: ns, + Name: "witness_gen_failures", + Help: "Number of witness generation failures by type", + }, []string{"reason"}), } } @@ -189,6 +195,7 @@ func (m *OPSuccinctMetrics) RecordProposerStatus(metrics ProposerMetrics) { m.L2FinalizedBlock.Set(float64(metrics.L2FinalizedBlock)) m.LatestContractL2Block.Set(float64(metrics.LatestContractL2Block)) m.HighestProvenContiguousL2Block.Set(float64(metrics.HighestProvenContiguousL2Block)) + m.MinBlockToProveToAgg.Set(float64(metrics.MinBlockToProveToAgg)) } type ProposerMetrics struct { @@ -196,6 +203,7 @@ type ProposerMetrics struct { L2FinalizedBlock uint64 LatestContractL2Block uint64 HighestProvenContiguousL2Block uint64 + MinBlockToProveToAgg uint64 NumProving uint64 NumWitnessgen uint64 NumUnrequested uint64 diff --git a/proposer/op/proposer/prove.go b/proposer/op/proposer/prove.go index 6077d73b..41cc2daf 100644 --- a/proposer/op/proposer/prove.go +++ b/proposer/op/proposer/prove.go @@ -39,7 +39,7 @@ func (l *L2OutputSubmitter) ProcessPendingProofs() error { l.Metr.RecordError("get_proof_status", 1) return err } - if proofStatus.Status == SP1ProofStatusFulfilled { + if proofStatus.Status == SP1FulfillmentStatusFulfilled { // Update the proof in the DB and update status to COMPLETE. l.Log.Info("Fulfilled Proof", "id", req.ProverRequestID) err = l.db.AddFulfilledProof(req.ID, proofStatus.Proof) @@ -50,10 +50,10 @@ func (l *L2OutputSubmitter) ProcessPendingProofs() error { continue } - if proofStatus.Status == SP1ProofStatusUnclaimed { + if proofStatus.Status == SP1FulfillmentStatusUnfulfillable { // Record the failure reason. - l.Log.Info("Proof unclaimed", "id", req.ProverRequestID, "reason", proofStatus.UnclaimDescription.String()) - l.Metr.RecordProveFailure(proofStatus.UnclaimDescription.String()) + l.Log.Info("Proof is unfulfillable", "id", req.ProverRequestID) + l.Metr.RecordProveFailure("unfulfillable") err = l.RetryRequest(req, proofStatus) if err != nil { @@ -66,7 +66,11 @@ func (l *L2OutputSubmitter) ProcessPendingProofs() error { } // Retry a proof request. Sets the status of a proof to FAILED and retries the proof based on the optional proof status response. -// If the response is a program execution error, the proof is split into two, which will avoid SP1 out of memory execution errors. +// If an error response is received: +// - Range Proof: Split in two if the block range is > 1. Retry the same request if range is 1 block. +// - Agg Proof: Retry the same request. +// TODO: Once the reserved strategy adds an execution error, update this to retry only when there's an execution error returned. +// TODO: With a new allocator, there will not be OOM issues. func (l *L2OutputSubmitter) RetryRequest(req *ent.ProofRequest, status ProofStatusResponse) error { err := l.db.UpdateProofStatus(req.ID, proofrequest.StatusFAILED) if err != nil { @@ -74,27 +78,38 @@ func (l *L2OutputSubmitter) RetryRequest(req *ent.ProofRequest, status ProofStat return err } - // If the proof was unclaimed due to a program execution error, we should split the proof into two. - if status.UnclaimDescription == ProgramExecutionError { - mid := (req.StartBlock + req.EndBlock) / 2 - // Create two new proof requests, one from [start, mid] and one from [mid, end]. The requests - // are consecutive and overlapping. - err = l.db.NewEntry(req.Type, req.StartBlock, mid) - if err != nil { - l.Log.Error("failed to add first proof request", "err", err) - return err - } - err = l.db.NewEntry(req.Type, mid, req.EndBlock) + if req.Type == proofrequest.TypeAGG { + l.Log.Info("AGG proof failed, retrying", "id", req.ID) + // Retry same request if range is 1 block. + err = l.db.NewEntry(req.Type, req.StartBlock, req.EndBlock) if err != nil { - l.Log.Error("failed to add second proof request", "err", err) + l.Log.Error("failed to retry proof request", "err", err) return err } } else { - // If the proof was unclaimed for any other reason, retry with the same range. - err = l.db.NewEntry(req.Type, req.StartBlock, req.EndBlock) - if err != nil { - l.Log.Error("failed to add proof request", "err", err) - return err + l.Log.Info("SPAN proof failed, retrying", "id", req.ID) + // Split the proof in two if range is > 1, otherwise retry same request. + if (req.EndBlock-req.StartBlock) > 1 { + mid := (req.StartBlock + req.EndBlock) / 2 + // Create two new proof requests, one from [start, mid] and one from [mid, end]. The requests + // are consecutive and overlapping. + err = l.db.NewEntry(req.Type, req.StartBlock, mid) + if err != nil { + l.Log.Error("failed to add first proof request", "err", err) + return err + } + err = l.db.NewEntry(req.Type, mid, req.EndBlock) + if err != nil { + l.Log.Error("failed to add second proof request", "err", err) + return err + } + } else { + // Retry same request if range is 1 block. + err = l.db.NewEntry(req.Type, req.StartBlock, req.EndBlock) + if err != nil { + l.Log.Error("failed to retry proof request", "err", err) + return err + } } } @@ -189,7 +204,6 @@ func (l *L2OutputSubmitter) DeriveAggProofs(ctx context.Context) error { return fmt.Errorf("failed to get next L2OO output: %w", err) } - l.Log.Info("Checking for AGG proof", "blocksToProve", minTo.Uint64()-latest.Uint64(), "latestProvenBlock", latest.Uint64(), "minBlockToProveToAgg", minTo.Uint64()) created, end, err := l.db.TryCreateAggProofFromSpanProofs(latest.Uint64(), minTo.Uint64()) if err != nil { return fmt.Errorf("failed to create agg proof from span proofs: %w", err) @@ -269,15 +283,15 @@ func (l *L2OutputSubmitter) RequestProof(p ent.ProofRequest, isMock bool) error return l.db.SetProverRequestID(p.ID, proofID) } -func (l *L2OutputSubmitter) requestRealProof(proofType proofrequest.Type, jsonBody []byte) (string, error) { +func (l *L2OutputSubmitter) requestRealProof(proofType proofrequest.Type, jsonBody []byte) ([]byte, error) { resp, err := l.makeProofRequest(proofType, jsonBody) if err != nil { - return "", err + return nil, err } var response WitnessGenerationResponse if err := json.Unmarshal(resp, &response); err != nil { - return "", fmt.Errorf("error decoding JSON response: %w", err) + return nil, fmt.Errorf("error decoding JSON response: %w", err) } l.Log.Info("successfully submitted proof", "proofID", response.ProofID) return response.ProofID, nil diff --git a/proposer/op/proposer/range.go b/proposer/op/proposer/range.go index 557017c9..6fcccd79 100644 --- a/proposer/op/proposer/range.go +++ b/proposer/op/proposer/range.go @@ -4,12 +4,14 @@ import ( "context" "fmt" "slices" + "sync" "github.com/ethereum-optimism/optimism/op-service/dial" "github.com/ethereum-optimism/optimism/op-service/sources" "github.com/ethereum/go-ethereum/accounts/abi/bind" "github.com/succinctlabs/op-succinct-go/proposer/db/ent" "github.com/succinctlabs/op-succinct-go/proposer/db/ent/proofrequest" + "golang.org/x/sync/errgroup" ) type Span struct { @@ -85,15 +87,32 @@ func (l *L2OutputSubmitter) SplitRangeBasedOnSafeHeads(ctx context.Context, l2St } L2StartL1Origin := l2StartOutput.BlockRef.L1Origin.Number - // Get all the unique safe heads between l1_start and l1_head safeHeads := make(map[uint64]struct{}) + mu := sync.Mutex{} + g := errgroup.Group{} + g.SetLimit(10) + + // Get all of the safe heads between the L2 start block and the L1 head. Use parallel requests to speed up the process. + // This is useful for when a chain is behind. for currentL1Block := L2StartL1Origin; currentL1Block <= L1Head; currentL1Block++ { - safeHead, err := rollupClient.SafeHeadAtL1Block(ctx, currentL1Block) - if err != nil { - return nil, fmt.Errorf("failed to get safe head: %w", err) - } - safeHeads[safeHead.SafeHead.Number] = struct{}{} + l1Block := currentL1Block + g.Go(func() error { + safeHead, err := rollupClient.SafeHeadAtL1Block(ctx, l1Block) + if err != nil { + return fmt.Errorf("failed to get safe head at block %d: %w", l1Block, err) + } + + mu.Lock() + safeHeads[safeHead.SafeHead.Number] = struct{}{} + mu.Unlock() + return nil + }) + } + + if err := g.Wait(); err != nil { + return nil, fmt.Errorf("failed while getting safe heads: %w", err) } + uniqueSafeHeads := make([]uint64, 0, len(safeHeads)) for safeHead := range safeHeads { uniqueSafeHeads = append(uniqueSafeHeads, safeHead) @@ -185,6 +204,7 @@ func (l *L2OutputSubmitter) GetRangeProofBoundaries(ctx context.Context) error { spans = l.SplitRangeBasic(newL2StartBlock, newL2EndBlock) } + // Add each span to the DB. If there are no spans, we will not create any proofs. for _, span := range spans { err := l.db.NewEntry(proofrequest.TypeSPAN, span.Start, span.End) diff --git a/proposer/op/proposer/rpc_types.go b/proposer/op/proposer/rpc_types.go index 0c777a95..f968b169 100644 --- a/proposer/op/proposer/rpc_types.go +++ b/proposer/op/proposer/rpc_types.go @@ -23,7 +23,7 @@ type ValidateConfigResponse struct { // WitnessGenerationResponse is the response type for the `request_span_proof` and `request_agg_proof` // RPCs from the op-succinct-server. type WitnessGenerationResponse struct { - ProofID string `json:"proof_id"` + ProofID []byte `json:"proof_id"` } // UnclaimDescription is the description of why a proof was unclaimed. @@ -54,20 +54,18 @@ func (d UnclaimDescription) String() string { } // SP1ProofStatus represents the status of a proof in the SP1 network. -type SP1ProofStatus int +type SP1FulfillmentStatus int const ( - SP1ProofStatusUnspecified SP1ProofStatus = iota - SP1ProofStatusPreparing - SP1ProofStatusRequested - SP1ProofStatusClaimed - SP1ProofStatusUnclaimed - SP1ProofStatusFulfilled + SP1FulfillmentStatusUnspecified SP1FulfillmentStatus = iota + SP1FulfillmentStatusRequested + SP1FulfillmentStatusAssigned + SP1FulfillmentStatusFulfilled + SP1FulfillmentStatusUnfulfillable ) // ProofStatusResponse is the response type for the `/status/:proof_id` RPC from the op-succinct-server. type ProofStatusResponse struct { - Status SP1ProofStatus `json:"status"` - Proof []byte `json:"proof"` - UnclaimDescription UnclaimDescription `json:"unclaim_description,omitempty"` + Status SP1FulfillmentStatus `json:"status"` + Proof []byte `json:"proof"` } diff --git a/proposer/succinct/bin/server.rs b/proposer/succinct/bin/server.rs index 52dcf98a..299c070c 100644 --- a/proposer/succinct/bin/server.rs +++ b/proposer/succinct/bin/server.rs @@ -20,14 +20,14 @@ use op_succinct_host_utils::{ }; use op_succinct_proposer::{ AggProofRequest, ContractConfig, ProofResponse, ProofStatus, SpanProofRequest, - UnclaimDescription, ValidateConfigRequest, ValidateConfigResponse, + ValidateConfigRequest, ValidateConfigResponse, }; use sp1_sdk::{ - network::{ + network_v2::{ client::NetworkClient, - proto::network::{ProofMode, ProofStatus as SP1ProofStatus}, + proto::network::{FulfillmentStatus, FulfillmentStrategy, ProofMode}, }, - utils, HashableKey, NetworkProverV1, ProverClient, SP1Proof, SP1ProofWithPublicValues, + utils, HashableKey, NetworkProverV2, ProverClient, SP1Proof, SP1ProofWithPublicValues, }; use std::{env, str::FromStr, time::Duration}; use tower_http::limit::RequestBodyLimitLayer; @@ -61,6 +61,7 @@ async fn main() -> Result<()> { rollup_config_hash, range_vk, range_pk, + agg_vk, agg_pk, }; @@ -116,6 +117,7 @@ async fn validate_config( /// Request a proof for a span of blocks. async fn request_span_proof( + State(state): State, Json(payload): Json, ) -> Result<(StatusCode, Json), AppError> { info!("Received span proof request: {:?}", payload); @@ -164,12 +166,25 @@ async fn request_span_proof( let sp1_stdin = get_proof_stdin(&host_cli)?; - let prover = NetworkProverV1::new(); + let private_key = env::var("SP1_PRIVATE_KEY")?; + let rpc_url = env::var("PROVER_NETWORK_RPC")?; + let mut prover = NetworkProverV2::new(&private_key, Some(rpc_url.to_string()), false); + // Use the reserved strategy to route to a specific cluster. + prover.with_strategy(FulfillmentStrategy::Reserved); // Set simulation to false on range proofs as they're large. env::set_var("SKIP_SIMULATION", "true"); + let vk_hash = prover + .register_program(&state.range_vk, MULTI_BLOCK_ELF) + .await?; let res = prover - .request_proof(MULTI_BLOCK_ELF, sp1_stdin, ProofMode::Compressed) + .request_proof( + &vk_hash, + &sp1_stdin, + ProofMode::Compressed, + 1_000_000_000_000, + None, + ) .await; env::set_var("SKIP_SIMULATION", "false"); @@ -216,18 +231,67 @@ async fn request_agg_proof( let l1_head: [u8; 32] = l1_head_bytes.try_into().unwrap(); let fetcher = OPSuccinctDataFetcher::new_with_rollup_config(RunContext::Docker).await?; - let headers = fetcher + let res = fetcher .get_header_preimages(&boot_infos, l1_head.into()) - .await?; + .await; + let headers = match res { + Ok(headers) => headers, + Err(e) => { + log::error!("Failed to get header preimages: {}", e); + return Err(AppError(anyhow::anyhow!( + "Failed to get header preimages: {}", + e + ))); + } + }; - let prover = NetworkProverV1::new(); + let private_key = env::var("SP1_PRIVATE_KEY")?; + let rpc_url = env::var("PROVER_NETWORK_RPC")?; + let mut prover = NetworkProverV2::new(&private_key, Some(rpc_url.to_string()), false); + // Use the reserved strategy to route to a specific cluster. + prover.with_strategy(FulfillmentStrategy::Reserved); let stdin = - get_agg_proof_stdin(proofs, boot_infos, headers, &state.range_vk, l1_head.into()).unwrap(); + match get_agg_proof_stdin(proofs, boot_infos, headers, &state.range_vk, l1_head.into()) { + Ok(stdin) => stdin, + Err(e) => { + log::error!("Failed to get agg proof stdin: {}", e); + return Err(AppError(anyhow::anyhow!( + "Failed to get agg proof stdin: {}", + e + ))); + } + }; - let proof_id = prover - .request_proof(AGG_ELF, stdin, ProofMode::Groth16) - .await?; + let res = prover.register_program(&state.agg_vk, AGG_ELF).await; + let vk_hash = match res { + Ok(vk_hash) => vk_hash, + Err(e) => { + log::error!("Failed to register program: {}", e); + return Err(AppError(anyhow::anyhow!( + "Failed to register program: {}", + e + ))); + } + }; + let res = prover + .request_proof( + &vk_hash, + &stdin, + ProofMode::Groth16, + 1_000_000_000_000, + None, + ) + .await; + + // Check if error, otherwise get proof ID. + let proof_id = match res { + Ok(proof_id) => proof_id, + Err(e) => { + log::error!("Failed to request proof: {}", e); + return Err(AppError(anyhow::anyhow!("Failed to request proof: {}", e))); + } + }; Ok((StatusCode::OK, Json(ProofResponse { proof_id }))) } @@ -280,7 +344,6 @@ async fn request_mock_span_proof( Json(ProofStatus { status: sp1_sdk::network::proto::network::ProofStatus::ProofFulfilled.into(), proof: proof_bytes, - unclaim_description: None, }), )) } @@ -338,7 +401,6 @@ async fn request_mock_agg_proof( Json(ProofStatus { status: sp1_sdk::network::proto::network::ProofStatus::ProofFulfilled.into(), proof: proof.bytes(), - unclaim_description: None, }), )) } @@ -349,21 +411,24 @@ async fn get_proof_status( ) -> Result<(StatusCode, Json), AppError> { info!("Received proof status request: {:?}", proof_id); let private_key = env::var("SP1_PRIVATE_KEY")?; + let rpc_url = env::var("PROVER_NETWORK_RPC")?; + + let client = NetworkClient::new(&private_key, Some(rpc_url.to_string())); - let client = NetworkClient::new(&private_key); + let proof_id_bytes = hex::decode(proof_id)?; // Time out this request if it takes too long. let timeout = Duration::from_secs(10); let (status, maybe_proof) = - match tokio::time::timeout(timeout, client.get_proof_status(&proof_id)).await { + match tokio::time::timeout(timeout, client.get_proof_request_status(&proof_id_bytes)).await + { Ok(Ok(result)) => result, Ok(Err(_)) => { return Ok(( StatusCode::INTERNAL_SERVER_ERROR, Json(ProofStatus { - status: SP1ProofStatus::ProofUnspecifiedStatus.into(), + status: FulfillmentStatus::UnspecifiedFulfillmentStatus.into(), proof: vec![], - unclaim_description: None, }), )); } @@ -371,20 +436,16 @@ async fn get_proof_status( return Ok(( StatusCode::INTERNAL_SERVER_ERROR, Json(ProofStatus { - status: SP1ProofStatus::ProofUnspecifiedStatus.into(), + status: FulfillmentStatus::UnspecifiedFulfillmentStatus.into(), proof: vec![], - unclaim_description: None, }), )); } }; - let unclaim_description = status.unclaim_description.unwrap_or_default(); - - let unclaim_description_enum: UnclaimDescription = unclaim_description.into(); - - let status: SP1ProofStatus = SP1ProofStatus::try_from(status.status)?; - if status == SP1ProofStatus::ProofFulfilled { + // TODO: Use execution error for reserved once it's added. + let status = status.fulfillment_status(); + if status == FulfillmentStatus::Fulfilled { let proof: SP1ProofWithPublicValues = maybe_proof.unwrap(); match proof.proof { @@ -398,7 +459,6 @@ async fn get_proof_status( Json(ProofStatus { status: status.into(), proof: proof_bytes, - unclaim_description: None, }), )); } @@ -410,7 +470,6 @@ async fn get_proof_status( Json(ProofStatus { status: status.into(), proof: proof_bytes, - unclaim_description: None, }), )); } @@ -422,19 +481,17 @@ async fn get_proof_status( Json(ProofStatus { status: status.into(), proof: proof_bytes, - unclaim_description: None, }), )); } _ => (), } - } else if status == SP1ProofStatus::ProofUnclaimed { + } else if status == FulfillmentStatus::Unfulfillable { return Ok(( StatusCode::OK, Json(ProofStatus { status: status.into(), proof: vec![], - unclaim_description: Some(unclaim_description_enum), }), )); } @@ -443,7 +500,6 @@ async fn get_proof_status( Json(ProofStatus { status: status.into(), proof: vec![], - unclaim_description: None, }), )) } diff --git a/proposer/succinct/src/lib.rs b/proposer/succinct/src/lib.rs index a145e0ba..55fe3b47 100644 --- a/proposer/succinct/src/lib.rs +++ b/proposer/succinct/src/lib.rs @@ -36,7 +36,7 @@ pub struct MockProofResponse { #[derive(Serialize, Deserialize, Debug)] pub struct ProofResponse { - pub proof_id: String, + pub proof_id: Vec, } #[derive(Debug, Serialize_repr, Deserialize_repr)] @@ -66,11 +66,10 @@ impl From for UnclaimDescription { #[derive(Serialize, Deserialize)] /// The status of a proof request. pub struct ProofStatus { - // Note: Can't use `SP1ProofStatus` directly because `Serialize_repr` and `Deserialize_repr` aren't derived on it. - // serde_repr::Serialize_repr and Deserialize_repr are necessary to use `SP1ProofStatus` in this struct. + // Note: Can't use `SP1FulfillmentStatus` directly because `Serialize_repr` and `Deserialize_repr` aren't derived on it. + // serde_repr::Serialize_repr and Deserialize_repr are necessary to use `SP1FulfillmentStatus` in this struct. pub status: i32, pub proof: Vec, - pub unclaim_description: Option, } /// Configuration of the L2 Output Oracle contract. Created once at server start-up, monitors if there are any changes @@ -80,6 +79,7 @@ pub struct ContractConfig { pub range_vk: SP1VerifyingKey, pub range_pk: SP1ProvingKey, pub agg_pk: SP1ProvingKey, + pub agg_vk: SP1VerifyingKey, pub agg_vkey_hash: B256, pub range_vkey_commitment: B256, pub rollup_config_hash: B256, diff --git a/scripts/utils/bin/fetch_and_save_proof.rs b/scripts/utils/bin/fetch_and_save_proof.rs index 7d4495ca..949291ca 100644 --- a/scripts/utils/bin/fetch_and_save_proof.rs +++ b/scripts/utils/bin/fetch_and_save_proof.rs @@ -2,8 +2,8 @@ use alloy::{hex, sol_types::SolValue}; use anyhow::Result; use clap::Parser; use op_succinct_client_utils::{boot::BootInfoStruct, AGGREGATION_OUTPUTS_SIZE}; -use sp1_sdk::{NetworkProverV1, SP1ProofWithPublicValues}; -use std::{fs, path::Path}; +use sp1_sdk::{NetworkProverV2, SP1ProofWithPublicValues}; +use std::{env, fs, path::Path}; #[derive(Parser, Debug)] #[command(author, version, about, long_about = None)] @@ -30,10 +30,13 @@ async fn main() -> Result<()> { dotenv::dotenv().ok(); let args = Args::parse(); - let prover = NetworkProverV1::new(); + let private_key = env::var("SP1_PRIVATE_KEY")?; + let rpc_url = env::var("PROVER_NETWORK_RPC")?; + let prover = NetworkProverV2::new(&private_key, Some(rpc_url.to_string()), false); + let request_id = hex::decode(&args.request_id)?; // Fetch the proof - let mut proof: SP1ProofWithPublicValues = prover.wait_proof(&args.request_id, None).await?; + let mut proof: SP1ProofWithPublicValues = prover.wait_proof(&request_id, None).await?; if args.agg_proof { let mut raw_boot_info = [0u8; AGGREGATION_OUTPUTS_SIZE];