diff --git a/Cargo.lock b/Cargo.lock index cd3b9ae9..19e6141c 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -110,9 +110,9 @@ checksum = "5c6cb57a04249c6480766f7f7cef5467412af1490f8d1e243141daddada3264f" [[package]] name = "alloy" -version = "0.3.6" +version = "0.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8367891bf380210abb0d6aa30c5f85a9080cb4a066c4d5c5acadad630823751b" +checksum = "056f2c01b2aed86e15b43c47d109bfc8b82553dc34e66452875e51247ec31ab2" dependencies = [ "alloy-consensus", "alloy-contract", @@ -133,9 +133,9 @@ dependencies = [ [[package]] name = "alloy-chains" -version = "0.1.34" +version = "0.1.35" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8158b4878c67837e5413721cc44298e6a2d88d39203175ea025e51892a16ba4c" +checksum = "609d6ef5716e94875b19b91faf33ef041baff373d3fff70531424f372d27bbd2" dependencies = [ "num_enum 0.7.3", "strum", @@ -143,23 +143,25 @@ dependencies = [ [[package]] name = "alloy-consensus" -version = "0.3.6" +version = "0.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "629b62e38d471cc15fea534eb7283d2f8a4e8bdb1811bcc5d66dda6cfce6fae1" +checksum = "705687d5bfd019fee57cf9e206b27b30a9a9617535d5590a02b171e813208f8e" dependencies = [ "alloy-eips", "alloy-primitives 0.8.5", "alloy-rlp", "alloy-serde", + "auto_impl", "c-kzg", + "derive_more 1.0.0", "serde", ] [[package]] name = "alloy-contract" -version = "0.3.6" +version = "0.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0eefe64fd344cffa9cf9e3435ec4e93e6e9c3481bc37269af988bf497faf4a6a" +checksum = "917f7d12cf3971dc8c11c9972f732b35ccb9aaaf5f28f2f87e9e6523bee3a8ad" dependencies = [ "alloy-dyn-abi", "alloy-json-abi", @@ -230,9 +232,9 @@ dependencies = [ [[package]] name = "alloy-eips" -version = "0.3.6" +version = "0.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f923dd5fca5f67a43d81ed3ebad0880bd41f6dd0ada930030353ac356c54cd0f" +checksum = "6ffb906284a1e1f63c4607da2068c8197458a352d0b3e9796e67353d72a9be85" dependencies = [ "alloy-eip2930", "alloy-eip7702", @@ -260,9 +262,9 @@ dependencies = [ [[package]] name = "alloy-json-rpc" -version = "0.3.6" +version = "0.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d3c717b5298fad078cd3a418335b266eba91b511383ca9bd497f742d5975d5ab" +checksum = "f8fa8a1a3c4cbd221f2b8e3693aeb328fca79a757fe556ed08e47bbbc2a70db7" dependencies = [ "alloy-primitives 0.8.5", "alloy-sol-types 0.8.5", @@ -274,9 +276,9 @@ dependencies = [ [[package]] name = "alloy-network" -version = "0.3.6" +version = "0.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fb3705ce7d8602132bcf5ac7a1dd293a42adc2f183abf5907c30ac535ceca049" +checksum = "85fa23a6a9d612b52e402c995f2d582c25165ec03ac6edf64c861a76bc5b87cd" dependencies = [ "alloy-consensus", "alloy-eips", @@ -295,10 +297,11 @@ dependencies = [ [[package]] name = "alloy-network-primitives" -version = "0.3.6" +version = "0.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "94ad40869867ed2d9cd3842b1e800889e5b49e6b92da346e93862b4a741bedf3" +checksum = "801492711d4392b2ccf5fc0bc69e299fa1aab15167d74dcaa9aab96a54f684bd" dependencies = [ + "alloy-consensus", "alloy-eips", "alloy-primitives 0.8.5", "alloy-serde", @@ -340,7 +343,7 @@ dependencies = [ "derive_more 1.0.0", "hashbrown 0.14.5", "hex-literal", - "indexmap 2.5.0", + "indexmap 2.6.0", "itoa", "k256", "keccak-asm", @@ -356,9 +359,9 @@ dependencies = [ [[package]] name = "alloy-provider" -version = "0.3.6" +version = "0.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "927f708dd457ed63420400ee5f06945df9632d5d101851952056840426a10dc5" +checksum = "fcfaa4ffec0af04e3555686b8aacbcdf7d13638133a0672749209069750f78a6" dependencies = [ "alloy-chains", "alloy-consensus", @@ -393,9 +396,9 @@ dependencies = [ [[package]] name = "alloy-pubsub" -version = "0.3.6" +version = "0.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2d05f63677e210d758cd5d6d1ce10f20c980c3560ccfbe79ba1997791862a04f" +checksum = "f32cef487122ae75c91eb50154c70801d71fabdb976fec6c49e0af5e6486ab15" dependencies = [ "alloy-json-rpc", "alloy-primitives 0.8.5", @@ -434,9 +437,9 @@ dependencies = [ [[package]] name = "alloy-rpc-client" -version = "0.3.6" +version = "0.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7d82952dca71173813d4e5733e2c986d8b04aea9e0f3b0a576664c232ad050a5" +checksum = "370143ed581aace6e663342d21d209c6b2e34ee6142f7d6675adb518deeaf0dc" dependencies = [ "alloy-json-rpc", "alloy-primitives 0.8.5", @@ -459,10 +462,11 @@ dependencies = [ [[package]] name = "alloy-rpc-types" -version = "0.3.6" +version = "0.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "64333d639f2a0cf73491813c629a405744e16343a4bc5640931be707c345ecc5" +checksum = "9ffc534b7919e18f35e3aa1f507b6f3d9d92ec298463a9f6beaac112809d8d06" dependencies = [ + "alloy-primitives 0.8.5", "alloy-rpc-types-engine", "alloy-rpc-types-eth", "alloy-serde", @@ -471,9 +475,9 @@ dependencies = [ [[package]] name = "alloy-rpc-types-engine" -version = "0.3.6" +version = "0.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1464c4dd646e1bdfde86ae65ce5ba168dbb29180b478011fe87117ae46b1629b" +checksum = "e0285c4c09f838ab830048b780d7f4a4f460f309aa1194bb049843309524c64c" dependencies = [ "alloy-consensus", "alloy-eips", @@ -482,13 +486,14 @@ dependencies = [ "alloy-serde", "derive_more 1.0.0", "serde", + "strum", ] [[package]] name = "alloy-rpc-types-eth" -version = "0.3.6" +version = "0.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "83aa984386deda02482660aa31cb8ca1e63d533f1c31a52d7d181ac5ec68e9b8" +checksum = "413f4aa3ccf2c3e4234a047c5fa4727916d7daf25a89f9b765df0ba09784fd87" dependencies = [ "alloy-consensus", "alloy-eips", @@ -497,9 +502,7 @@ dependencies = [ "alloy-rlp", "alloy-serde", "alloy-sol-types 0.8.5", - "cfg-if", "derive_more 1.0.0", - "hashbrown 0.14.5", "itertools 0.13.0", "serde", "serde_json", @@ -507,9 +510,9 @@ dependencies = [ [[package]] name = "alloy-serde" -version = "0.3.6" +version = "0.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "731f75ec5d383107fd745d781619bd9cedf145836c51ecb991623d41278e71fa" +checksum = "9dff0ab1cdd43ca001e324dc27ee0e8606bd2161d6623c63e0e0b8c4dfc13600" dependencies = [ "alloy-primitives 0.8.5", "serde", @@ -518,9 +521,9 @@ dependencies = [ [[package]] name = "alloy-signer" -version = "0.3.6" +version = "0.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "307324cca94354cd654d6713629f0383ec037e1ff9e3e3d547212471209860c0" +checksum = "2fd4e0ad79c81a27ca659be5d176ca12399141659fef2bcbfdc848da478f4504" dependencies = [ "alloy-primitives 0.8.5", "async-trait", @@ -532,9 +535,9 @@ dependencies = [ [[package]] name = "alloy-signer-local" -version = "0.3.6" +version = "0.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9fabe917ab1778e760b4701628d1cae8e028ee9d52ac6307de4e1e9286ab6b5f" +checksum = "494e0a256f3e99f2426f994bcd1be312c02cb8f88260088dacb33a8b8936475f" dependencies = [ "alloy-consensus", "alloy-network", @@ -583,7 +586,7 @@ dependencies = [ "alloy-sol-macro-input 0.7.7", "const-hex", "heck", - "indexmap 2.5.0", + "indexmap 2.6.0", "proc-macro-error", "proc-macro2", "quote", @@ -602,7 +605,7 @@ dependencies = [ "alloy-sol-macro-input 0.8.5", "const-hex", "heck", - "indexmap 2.5.0", + "indexmap 2.6.0", "proc-macro-error2", "proc-macro2", "quote", @@ -680,9 +683,9 @@ dependencies = [ [[package]] name = "alloy-transport" -version = "0.3.6" +version = "0.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "33616b2edf7454302a1d48084db185e52c309f73f6c10be99b0fe39354b3f1e9" +checksum = "2ac3e97dad3d31770db0fc89bd6a63b789fbae78963086733f960cf32c483904" dependencies = [ "alloy-json-rpc", "base64 0.22.1", @@ -699,9 +702,9 @@ dependencies = [ [[package]] name = "alloy-transport-http" -version = "0.3.6" +version = "0.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a944f5310c690b62bbb3e7e5ce34527cbd36b2d18532a797af123271ce595a49" +checksum = "b367dcccada5b28987c2296717ee04b9a5637aacd78eacb1726ef211678b5212" dependencies = [ "alloy-json-rpc", "alloy-transport", @@ -714,9 +717,9 @@ dependencies = [ [[package]] name = "alloy-transport-ipc" -version = "0.3.6" +version = "0.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "09fd8491249f74d16ec979b1f5672377b12ebb818e6056478ffa386954dbd350" +checksum = "b90cf9cde7f2fce617da52768ee28f522264b282d148384a4ca0ea85af04fa3a" dependencies = [ "alloy-json-rpc", "alloy-pubsub", @@ -733,9 +736,9 @@ dependencies = [ [[package]] name = "alloy-transport-ws" -version = "0.3.6" +version = "0.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a9704761f6297fe482276bee7f77a93cb42bd541c2bd6c1c560b6f3a9ece672e" +checksum = "7153b88690de6a50bba81c11e1d706bc41dbb90126d607404d60b763f6a3947f" dependencies = [ "alloy-pubsub", "alloy-transport", @@ -751,14 +754,13 @@ dependencies = [ [[package]] name = "alloy-trie" -version = "0.5.3" +version = "0.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0a46c9c4fdccda7982e7928904bd85fe235a0404ee3d7e197fff13d61eac8b4f" +checksum = "e9703ce68b97f8faae6f7739d1e003fc97621b856953cbcdbb2b515743f23288" dependencies = [ "alloy-primitives 0.8.5", "alloy-rlp", "derive_more 1.0.0", - "hashbrown 0.14.5", "nybbles", "smallvec", "tracing", @@ -981,9 +983,9 @@ checksum = "7c02d123df017efcdfbd739ef81735b36c5ba83ec3c59c80a9d7ecc718f92e50" [[package]] name = "async-stream" -version = "0.3.5" +version = "0.3.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cd56dd203fef61ac097dd65721a419ddccb106b2d2b70ba60a6b529f03961a51" +checksum = "0b5a71a6f37880a80d1d7f19efd781e4b5de42c88f0722cc13bcb6cc2cfe8476" dependencies = [ "async-stream-impl", "futures-core", @@ -992,9 +994,9 @@ dependencies = [ [[package]] name = "async-stream-impl" -version = "0.3.5" +version = "0.3.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "16e62a023e7c117e27523144c5d2459f4397fcc3cab0085af8e2224f643a0193" +checksum = "c7c24de15d275a1ecfd47a380fb4d5ec9bfe0933f309ed5e705b775596a3574d" dependencies = [ "proc-macro2", "quote", @@ -1475,9 +1477,9 @@ dependencies = [ [[package]] name = "cc" -version = "1.1.23" +version = "1.1.24" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3bbb537bb4a30b90362caddba8f360c0a56bc13d3a5570028e7197204cb54a17" +checksum = "812acba72f0a070b003d3697490d2b55b837230ae7c6c6497f05cc2ddbb8d938" dependencies = [ "jobserver", "libc", @@ -1535,9 +1537,9 @@ dependencies = [ [[package]] name = "clap" -version = "4.5.18" +version = "4.5.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b0956a43b323ac1afaffc053ed5c4b7c1f1800bacd1683c353aabbb752515dd3" +checksum = "7be5744db7978a28d9df86a214130d106a89ce49644cbc4e3f0c22c3fba30615" dependencies = [ "clap_builder", "clap_derive", @@ -1545,9 +1547,9 @@ dependencies = [ [[package]] name = "clap_builder" -version = "4.5.18" +version = "4.5.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4d72166dd41634086d5803a47eb71ae740e61d84709c36f3c34110173db3961b" +checksum = "a5fbc17d3ef8278f55b282b2a2e75ae6f6c7d4bb70ed3d0382375104bfafdb4b" dependencies = [ "anstream", "anstyle", @@ -2099,7 +2101,7 @@ checksum = "0d6ef0072f8a535281e4876be788938b528e9a1d43900b82c2569af7da799125" [[package]] name = "ecdsa" version = "0.16.8" -source = "git+https://github.com/sp1-patches/signatures?branch=ratan/secp256k1-add-fixes-v0.16.8#eb857475072f0045950ec35bf230b86b5f6aca43" +source = "git+https://github.com/sp1-patches/signatures?branch=ratan/secp256k1-add-fixes-v0.16.8#cdeab4f0ed0d715ceae3fc6d09d16ec3ae41ead7" dependencies = [ "anyhow", "cfg-if", @@ -2874,7 +2876,7 @@ dependencies = [ "futures-sink", "futures-util", "http 0.2.12", - "indexmap 2.5.0", + "indexmap 2.6.0", "slab", "tokio", "tokio-util", @@ -2893,7 +2895,7 @@ dependencies = [ "futures-core", "futures-sink", "http 1.1.0", - "indexmap 2.5.0", + "indexmap 2.6.0", "slab", "tokio", "tokio-util", @@ -2949,6 +2951,12 @@ dependencies = [ "serde", ] +[[package]] +name = "hashbrown" +version = "0.15.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1e087f84d4f86bf4b218b927129862374b72199ae7d8657835f1e89000eea4fb" + [[package]] name = "hashers" version = "1.0.1" @@ -3265,12 +3273,12 @@ dependencies = [ [[package]] name = "indexmap" -version = "2.5.0" +version = "2.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "68b900aa2f7301e21c36462b170ee99994de34dff39a4a6a528e80e7376d07e5" +checksum = "707907fe3c25f5424cce2cb7e1cbcafee6bdbe735ca90ef77c29e84591e5b9da" dependencies = [ "equivalent", - "hashbrown 0.14.5", + "hashbrown 0.15.0", "serde", ] @@ -3322,9 +3330,9 @@ dependencies = [ [[package]] name = "ipnet" -version = "2.10.0" +version = "2.10.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "187674a687eed5fe42285b40c6291f9a01517d415fad1c3cbc6a9f778af7fcd4" +checksum = "ddc24109865250148c2e0f3d25d4f0f479571723792d3802153c60922a4fb708" [[package]] name = "is_terminal_polyfill" @@ -3447,7 +3455,7 @@ dependencies = [ [[package]] name = "kona-client" version = "0.1.0" -source = "git+https://github.com/moongate-forks/kona?branch=ratan/native-client-command-bugged#0669567bb61826ff4f82e66f5394be22b4b7d416" +source = "git+https://github.com/moongate-forks/kona?branch=ratan/native-client-command-bugged#e1b69ff4b6fb8fe79f41037f576212fa8cebdbea" dependencies = [ "alloy-consensus", "alloy-eips", @@ -3464,6 +3472,7 @@ dependencies = [ "kona-mpt", "kona-preimage", "kona-primitives", + "kona-providers", "lru", "op-alloy-consensus", "op-alloy-genesis", @@ -3479,7 +3488,7 @@ dependencies = [ [[package]] name = "kona-common" version = "0.0.3" -source = "git+https://github.com/moongate-forks/kona?branch=ratan/native-client-command-bugged#0669567bb61826ff4f82e66f5394be22b4b7d416" +source = "git+https://github.com/moongate-forks/kona?branch=ratan/native-client-command-bugged#e1b69ff4b6fb8fe79f41037f576212fa8cebdbea" dependencies = [ "cfg-if", "linked_list_allocator", @@ -3489,7 +3498,7 @@ dependencies = [ [[package]] name = "kona-common-proc" version = "0.0.3" -source = "git+https://github.com/moongate-forks/kona?branch=ratan/native-client-command-bugged#0669567bb61826ff4f82e66f5394be22b4b7d416" +source = "git+https://github.com/moongate-forks/kona?branch=ratan/native-client-command-bugged#e1b69ff4b6fb8fe79f41037f576212fa8cebdbea" dependencies = [ "anyhow", "cfg-if", @@ -3502,7 +3511,7 @@ dependencies = [ [[package]] name = "kona-derive" version = "0.0.3" -source = "git+https://github.com/moongate-forks/kona?branch=ratan/native-client-command-bugged#0669567bb61826ff4f82e66f5394be22b4b7d416" +source = "git+https://github.com/moongate-forks/kona?branch=ratan/native-client-command-bugged#e1b69ff4b6fb8fe79f41037f576212fa8cebdbea" dependencies = [ "alloc-no-stdlib", "alloy-consensus", @@ -3513,6 +3522,7 @@ dependencies = [ "async-trait", "brotli", "kona-primitives", + "kona-providers", "miniz_oxide", "op-alloy-consensus", "op-alloy-genesis", @@ -3527,7 +3537,7 @@ dependencies = [ [[package]] name = "kona-executor" version = "0.0.2" -source = "git+https://github.com/moongate-forks/kona?branch=ratan/native-client-command-bugged#0669567bb61826ff4f82e66f5394be22b4b7d416" +source = "git+https://github.com/moongate-forks/kona?branch=ratan/native-client-command-bugged#e1b69ff4b6fb8fe79f41037f576212fa8cebdbea" dependencies = [ "alloy-consensus", "alloy-eips", @@ -3544,7 +3554,7 @@ dependencies = [ [[package]] name = "kona-host" version = "0.1.0" -source = "git+https://github.com/moongate-forks/kona?branch=ratan/native-client-command-bugged#0669567bb61826ff4f82e66f5394be22b4b7d416" +source = "git+https://github.com/moongate-forks/kona?branch=ratan/native-client-command-bugged#e1b69ff4b6fb8fe79f41037f576212fa8cebdbea" dependencies = [ "alloy-consensus", "alloy-eips", @@ -3581,7 +3591,7 @@ dependencies = [ [[package]] name = "kona-mpt" version = "0.0.3" -source = "git+https://github.com/moongate-forks/kona?branch=ratan/native-client-command-bugged#0669567bb61826ff4f82e66f5394be22b4b7d416" +source = "git+https://github.com/moongate-forks/kona?branch=ratan/native-client-command-bugged#e1b69ff4b6fb8fe79f41037f576212fa8cebdbea" dependencies = [ "alloy-consensus", "alloy-primitives 0.8.5", @@ -3595,7 +3605,7 @@ dependencies = [ [[package]] name = "kona-preimage" version = "0.0.3" -source = "git+https://github.com/moongate-forks/kona?branch=ratan/native-client-command-bugged#0669567bb61826ff4f82e66f5394be22b4b7d416" +source = "git+https://github.com/moongate-forks/kona?branch=ratan/native-client-command-bugged#e1b69ff4b6fb8fe79f41037f576212fa8cebdbea" dependencies = [ "alloy-primitives 0.8.5", "async-trait", @@ -3608,7 +3618,7 @@ dependencies = [ [[package]] name = "kona-primitives" version = "0.0.2" -source = "git+https://github.com/moongate-forks/kona?branch=ratan/native-client-command-bugged#0669567bb61826ff4f82e66f5394be22b4b7d416" +source = "git+https://github.com/moongate-forks/kona?branch=ratan/native-client-command-bugged#e1b69ff4b6fb8fe79f41037f576212fa8cebdbea" dependencies = [ "alloy-eips", "alloy-primitives 0.8.5", @@ -3621,10 +3631,23 @@ dependencies = [ "tracing", ] +[[package]] +name = "kona-providers" +version = "0.0.1" +source = "git+https://github.com/moongate-forks/kona?branch=ratan/native-client-command-bugged#e1b69ff4b6fb8fe79f41037f576212fa8cebdbea" +dependencies = [ + "alloy-consensus", + "alloy-primitives 0.8.5", + "async-trait", + "op-alloy-consensus", + "op-alloy-genesis", + "op-alloy-protocol", +] + [[package]] name = "kona-providers-alloy" version = "0.0.1" -source = "git+https://github.com/moongate-forks/kona?branch=ratan/native-client-command-bugged#0669567bb61826ff4f82e66f5394be22b4b7d416" +source = "git+https://github.com/moongate-forks/kona?branch=ratan/native-client-command-bugged#e1b69ff4b6fb8fe79f41037f576212fa8cebdbea" dependencies = [ "alloy-consensus", "alloy-eips", @@ -3635,7 +3658,9 @@ dependencies = [ "async-trait", "kona-derive", "kona-primitives", + "kona-providers", "lru", + "op-alloy-consensus", "op-alloy-genesis", "op-alloy-protocol", "reqwest 0.12.8", @@ -4085,7 +4110,7 @@ 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.79", @@ -4142,9 +4167,9 @@ checksum = "e296cf87e61c9cfc1a61c3c63a0f7f286ed4554e0e22be84e8a38e1d264a2a29" [[package]] name = "op-alloy-consensus" -version = "0.2.12" +version = "0.3.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "21aad1fbf80d2bcd7406880efc7ba109365f44bbb72896758ddcbfa46bf1592c" +checksum = "c4f7f318f885db6e1455370ca91f74b7faed152c8142f6418f0936d606e582ff" dependencies = [ "alloy-consensus", "alloy-eips", @@ -4158,9 +4183,9 @@ dependencies = [ [[package]] name = "op-alloy-genesis" -version = "0.2.12" +version = "0.3.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6e1b8a9b70da0e027242ec1762f0f3a386278b6291d00d12ff5a64929dc19f68" +checksum = "c8215c87b74d2fbbaff0fd2887868a8341df33a3c495ee01f813e5ddd5be9c46" dependencies = [ "alloy-consensus", "alloy-eips", @@ -4172,16 +4197,16 @@ dependencies = [ [[package]] name = "op-alloy-protocol" -version = "0.2.12" +version = "0.3.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bf300a82ae2d30e2255bfea87a2259da49f63a25a44db561ae64cc9e3084139f" +checksum = "fa5c397fbe35e07f9c95a571440ca2e90df754e198496d82ff4127de00b89dd9" dependencies = [ "alloy-consensus", "alloy-eips", "alloy-primitives 0.8.5", "alloy-rlp", "alloy-serde", - "hashbrown 0.14.5", + "derive_more 1.0.0", "op-alloy-consensus", "op-alloy-genesis", "serde", @@ -4189,17 +4214,14 @@ dependencies = [ [[package]] name = "op-alloy-rpc-types-engine" -version = "0.2.12" +version = "0.3.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2947272a81ebf988f4804b6f0f6a7c0b2f6f89a908cb410e36f8f3828f81c778" +checksum = "5041122e20b76644cc690bba688671eecdc4626e6384a76eb740535d6ddcef14" dependencies = [ - "alloy-eips", "alloy-primitives 0.8.5", "alloy-rpc-types-engine", "alloy-serde", "derive_more 1.0.0", - "op-alloy-consensus", - "op-alloy-genesis", "op-alloy-protocol", "serde", ] @@ -5571,7 +5593,7 @@ dependencies = [ [[package]] name = "rfc6979" version = "0.4.0" -source = "git+https://github.com/sp1-patches/signatures?branch=ratan/secp256k1-add-fixes-v0.16.8#eb857475072f0045950ec35bf230b86b5f6aca43" +source = "git+https://github.com/sp1-patches/signatures?branch=ratan/secp256k1-add-fixes-v0.16.8#cdeab4f0ed0d715ceae3fc6d09d16ec3ae41ead7" dependencies = [ "hmac", "subtle", @@ -5643,7 +5665,7 @@ dependencies = [ "bytecheck 0.8.0", "bytes", "hashbrown 0.14.5", - "indexmap 2.5.0", + "indexmap 2.6.0", "munge", "ptr_meta 0.3.0", "rancor", @@ -6088,7 +6110,7 @@ version = "1.0.128" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6ff5456707a1de34e7e37f2a6fd3d3f808c318259cbd01ab6377795054b483d8" dependencies = [ - "indexmap 2.5.0", + "indexmap 2.6.0", "itoa", "memchr", "ryu", @@ -6139,15 +6161,15 @@ dependencies = [ [[package]] name = "serde_with" -version = "3.9.0" +version = "3.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "69cecfa94848272156ea67b2b1a53f20fc7bc638c4a46d2f8abde08f05f4b857" +checksum = "9720086b3357bcb44fce40117d769a4d068c70ecfa190850a980a71755f66fcc" dependencies = [ "base64 0.22.1", "chrono", "hex", "indexmap 1.9.3", - "indexmap 2.5.0", + "indexmap 2.6.0", "serde", "serde_derive", "serde_json", @@ -6157,9 +6179,9 @@ dependencies = [ [[package]] name = "serde_with_macros" -version = "3.9.0" +version = "3.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a8fee4991ef4f274617a51ad4af30519438dacb2f56ac773b08a1922ff743350" +checksum = "5f1abbfe725f27678f4663bcacb75a83e829fd464c25d78dd038a3a29e307cec" dependencies = [ "darling", "proc-macro2", @@ -6504,7 +6526,7 @@ dependencies = [ [[package]] name = "sp1-lib" version = "2.0.0" -source = "git+https://github.com/succinctlabs/sp1?branch=ratan/impl-add-assign-fixes#b095684580ea99dc91e3f6980bfd5326c74ff631" +source = "git+https://github.com/succinctlabs/sp1.git?branch=tamir/v1.3.0-rc2#a8db6b19673ed7f5bf7007faff1d2ef177713e3b" dependencies = [ "bincode", "serde", @@ -7361,9 +7383,9 @@ dependencies = [ [[package]] name = "tokio-tungstenite" -version = "0.23.1" +version = "0.24.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c6989540ced10490aaf14e6bad2e3d33728a2813310a0c71d1574304c49631cd" +checksum = "edc5f74e248dc973e0dbb7b74c7e0d6fcc301c694ff50049504004ef4d0cdcd9" dependencies = [ "futures-util", "log", @@ -7415,7 +7437,7 @@ version = "0.19.15" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1b5bb770da30e5cbfde35a2d7b9b8a2c4b8ef89548a7a6aeab5c9a576e3e7421" dependencies = [ - "indexmap 2.5.0", + "indexmap 2.6.0", "toml_datetime", "winnow 0.5.40", ] @@ -7426,7 +7448,7 @@ version = "0.22.22" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4ae48d6208a266e853d946088ed816055e556cc6028c5e8e2b84d9fa5dd7c7f5" dependencies = [ - "indexmap 2.5.0", + "indexmap 2.6.0", "serde", "serde_spanned", "toml_datetime", @@ -7580,9 +7602,9 @@ checksum = "e421abadd41a4225275504ea4d6566923418b7f05506fbc9c0fe86ba7396114b" [[package]] name = "tungstenite" -version = "0.23.0" +version = "0.24.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6e2e2ce1e47ed2994fd43b04c8f618008d4cabdd5ee34027cf14f9d918edd9c8" +checksum = "18e5b8366ee7a95b16d32197d0b2604b43a0be89dc5fac9f8e96ccafbaedda8a" dependencies = [ "byteorder", "bytes", @@ -7653,9 +7675,9 @@ checksum = "eaea85b334db583fe3274d12b4cd1880032beab409c0d774be044d4480ab9a94" [[package]] name = "unicode-bidi" -version = "0.3.15" +version = "0.3.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "08f95100a766bf4f8f28f90d77e0a5461bbdb219042e7679bebe79004fed8d75" +checksum = "5ab17db44d7388991a428b2ee655ce0c212e862eff1768a455c58f9aad6e7893" [[package]] name = "unicode-ident" diff --git a/Cargo.toml b/Cargo.toml index 658b4271..c4f05e2e 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -58,18 +58,20 @@ op-succinct-host-utils = { path = "utils/host" } op-succinct-proposer = { path = "proposer/succinct" } # ethereum / op -alloy = { version = "0.3", default-features = false, features = ["full"] } -# sha3-keccak is enabled in 0.8.4 -alloy-primitives = { version = "0.8.4", default-features = false, features = ["sha3-keccak"] } +alloy = { version = "0.4", default-features = false, features = ["full"] } +# Uses sha3 instead of tiny-keccak. Reduces cycle count for Keccak by 50%. +alloy-primitives = { version = "0.8.4", default-features = false, features = [ + "sha3-keccak", +] } alloy-rlp = { version = "0.3.8", default-features = false } -alloy-eips = { version = "0.3", default-features = false } +alloy-eips = { version = "0.4", default-features = false } revm = { version = "14.0", default-features = false, features = ["kzg-rs"] } -alloy-consensus = { version = "0.3.6", default-features = false } +alloy-consensus = { version = "0.4", default-features = false } alloy-sol-types = { version = "0.8" } -op-alloy-consensus = { version = "0.2.12", default-features = false } -op-alloy-genesis = { version = "0.2.12", default-features = false } -op-alloy-protocol = { version = "0.2.12", default-features = false } -op-alloy-rpc-types-engine = { version = "0.2.12", default-features = false } +op-alloy-consensus = { version = "0.3.3", default-features = false } +op-alloy-genesis = { version = "0.3.3", default-features = false } +op-alloy-protocol = { version = "0.3.3", default-features = false } +op-alloy-rpc-types-engine = { version = "0.3.3", default-features = false } # sp1 sp1-lib = { version = "3.0.0-rc1", features = ["verify"] } @@ -89,4 +91,4 @@ sha2 = { git = "https://github.com/sp1-patches/RustCrypto-hashes", package = "sh # TODO: Change this back to the original patch branch once the changes to sp1-lib to fix secp256k1 addition have been merged and a stable version tag is released. ecdsa = { git = "https://github.com/sp1-patches/signatures", branch = "ratan/secp256k1-add-fixes-v0.16.8" } bn = { git = "https://github.com/0xWOLAND/bn.git", package = "substrate-bn" } -sha3 = { git = "https://github.com/sp1-patches/RustCrypto-hashes", package = "sha3", branch = "patch-sha3-v0.10.8" } \ No newline at end of file +sha3 = { git = "https://github.com/sp1-patches/RustCrypto-hashes", package = "sha3", branch = "patch-sha3-v0.10.8" } diff --git a/README.md b/README.md index fec54c53..4e0576bc 100644 --- a/README.md +++ b/README.md @@ -5,10 +5,6 @@ OP Succinct turns any OP stack rollup into a full type-1 zkEVM Rollup in 1 hour **[Docs](https://succinctlabs.github.io/op-succinct)** | [Learn More](https://succinctlabs.github.io/op-succinct) -> [!CAUTION] -> -> This repository is not meant for production usage. - ## Getting Started Today, you can already use OP Succinct to upgrade any existing OP Stack rollup to a type-1 zkEVM rollup. To get started, make sure you have [Rust](https://rustup.rs/), [Foundry](https://book.getfoundry.sh/), and [Docker](https://docs.docker.com/engine/install/) installed. Then, follow the steps in the [book](https://succinctlabs.github.io/op-succinct/) to deploy the `OPSuccinctL2OutputOracle` contract and start the `op-succinct-proposer` service. diff --git a/book/book.toml b/book/book.toml new file mode 100644 index 00000000..f4f9c9ca --- /dev/null +++ b/book/book.toml @@ -0,0 +1,10 @@ +[book] +authors = ["ratankaliani"] +language = "en" +multilingual = false +title = "OP Succinct book" + +[output.html] +default-theme = "rust" +preferred-dark-theme = "rust" +git-repository-url = "https://github.com/succinctlabs/op-succinct" diff --git a/book/cost-estimator.md b/book/cost-estimator.md index 9a8b447c..85c5c4a7 100644 --- a/book/cost-estimator.md +++ b/book/cost-estimator.md @@ -22,6 +22,8 @@ just cost-estimator This command will split the block range into smaller ranges as if the `op-succinct-proposer` service was running. It will then fetch the required data for generating the ZKP for each of these ranges, and execute the SP1 `range` program. Once each program finishes, it will collect the statistics and output the aggregate statistics. +> Running the cost estimator for a large block range may be slow on machines with limited network bandwidth to the L2 node. For optimal performance, we recommend using a remote machine with high-speed connectivity to avoid slow witness generation. + ## Example On Optimism Sepolia, proving the block range 17664000 to 17664125 (125 blocks) takes 4 range proofs and ~11.1B cycles. diff --git a/programs/range/src/main.rs b/programs/range/src/main.rs index 631fc944..af1bd629 100644 --- a/programs/range/src/main.rs +++ b/programs/range/src/main.rs @@ -12,17 +12,16 @@ extern crate alloc; use alloc::sync::Arc; -use alloy_consensus::Sealed; +use alloy_consensus::{BlockBody, Sealed}; use alloy_eips::eip2718::Decodable2718; use cfg_if::cfg_if; use kona_client::{ l1::{OracleBlobProvider, OracleL1ChainProvider}, BootInfo, }; -use kona_derive::block::OpBlock; use kona_executor::StatelessL2BlockExecutor; use log::info; -use op_alloy_consensus::OpTxEnvelope; +use op_alloy_consensus::{OpBlock, OpTxEnvelope}; use op_succinct_client_utils::{ driver::MultiBlockDerivationDriver, l2_chain_provider::MultiblockOracleL2ChainProvider, precompiles::zkvm_handle_register, @@ -152,18 +151,21 @@ fn main() { // Generate the Payload Envelope, which can be used to derive cached data. let optimism_block = OpBlock { header: new_block_header.clone(), - body: payload - .attributes - .transactions - .unwrap() - .iter() - .map(|raw_tx| OpTxEnvelope::decode_2718(&mut raw_tx.as_ref()).unwrap()) - .collect::>(), - withdrawals: boot - .rollup_config - .is_canyon_active(new_block_header.timestamp) - .then(Vec::new), - ..Default::default() + body: BlockBody { + transactions: payload + .attributes + .transactions + .unwrap() + .iter() + .map(|raw_tx| OpTxEnvelope::decode_2718(&mut raw_tx.as_ref()).unwrap()) + .collect::>(), + ommers: Vec::new(), + withdrawals: boot + .rollup_config + .is_canyon_active(new_block_header.timestamp) + .then(Vec::new), + requests: None, + }, }; // Add all data from this block's execution to the cache. l2_block_info = l2_provider diff --git a/utils/client/src/driver.rs b/utils/client/src/driver.rs index 3563e1fa..8b2b4182 100644 --- a/utils/client/src/driver.rs +++ b/utils/client/src/driver.rs @@ -15,12 +15,12 @@ use kona_client::{ use kona_derive::{ attributes::StatefulAttributesBuilder, pipeline::{DerivationPipeline, Pipeline, PipelineBuilder, StepResult}, + prelude::{ChainProvider, L2ChainProvider}, sources::EthereumDataSource, stages::{ AttributesQueue, BatchQueue, BatchStream, ChannelBank, ChannelReader, FrameQueue, L1Retrieval, L1Traversal, }, - traits::{ChainProvider, L2ChainProvider}, }; use kona_mpt::TrieProvider; use kona_preimage::{CommsClient, PreimageKey, PreimageKeyType}; @@ -31,7 +31,7 @@ use log::{debug, error}; /// An oracle-backed derivation pipeline. pub type OraclePipeline = DerivationPipeline< - OracleAttributesQueue, O>, + MultiblockOracleAttributesQueue, O>, MultiblockOracleL2ChainProvider, >; @@ -45,12 +45,13 @@ pub type OracleAttributesBuilder = StatefulAttributesBuilder, MultiblockOracleL2ChainProvider>; /// An oracle-backed attributes queue for the derivation pipeline. -pub type OracleAttributesQueue = AttributesQueue< +pub type MultiblockOracleAttributesQueue = AttributesQueue< BatchQueue< BatchStream< ChannelReader< ChannelBank>>>>, >, + MultiblockOracleL2ChainProvider, >, MultiblockOracleL2ChainProvider, >, diff --git a/utils/client/src/l2_chain_provider.rs b/utils/client/src/l2_chain_provider.rs index a3696a93..a247824a 100644 --- a/utils/client/src/l2_chain_provider.rs +++ b/utils/client/src/l2_chain_provider.rs @@ -1,19 +1,19 @@ //! Contains the concrete implementation of the [L2ChainProvider] trait for the client program. use alloc::{boxed::Box, sync::Arc, vec::Vec}; -use alloy_consensus::Header; +use alloy_consensus::{BlockBody, Header}; use alloy_eips::eip2718::Decodable2718; use alloy_primitives::{Address, Bytes, B256}; use alloy_rlp::Decodable; use anyhow::{anyhow, Result}; use async_trait::async_trait; use kona_client::{BootInfo, HintType}; -use kona_derive::{block::OpBlock, traits::L2ChainProvider}; +use kona_derive::pipeline::L2ChainProvider; use kona_mpt::{OrderedListWalker, TrieHinter, TrieProvider}; use kona_preimage::{CommsClient, PreimageKey, PreimageKeyType}; -use op_alloy_consensus::OpTxEnvelope; +use op_alloy_consensus::{OpBlock, OpTxEnvelope}; use op_alloy_genesis::{RollupConfig, SystemConfig}; -use op_alloy_protocol::L2BlockInfo; +use op_alloy_protocol::{to_system_config, L2BlockInfo}; use std::{collections::HashMap, sync::Mutex}; use crate::block_on; @@ -69,9 +69,9 @@ impl MultiblockOracleL2ChainProvider { self.system_config_by_number .lock() .unwrap() - .insert(header.number, block.to_system_config(config).unwrap()); + .insert(header.number, to_system_config(&block, config)?); - let l2_block_info = block.to_l2_block_ref(config)?; + let l2_block_info = L2BlockInfo::from_block_and_genesis(&block, &config.genesis)?; self.l2_block_info_by_number .lock() .unwrap() @@ -132,10 +132,11 @@ impl L2ChainProvider for MultiblockOracleL2ChainPr } // Get the payload at the given block number. - let payload = self.block_by_number(number).await?; + let block = self.block_by_number(number).await?; // Construct the system config from the payload. - Ok(payload.to_l2_block_ref(&self.boot_info.rollup_config)?) + L2BlockInfo::from_block_and_genesis(&block, &self.boot_info.rollup_config.genesis) + .map_err(Into::into) } async fn block_by_number(&mut self, number: u64) -> Result { @@ -169,13 +170,16 @@ impl L2ChainProvider for MultiblockOracleL2ChainPr let optimism_block = OpBlock { header, - body: transactions, - withdrawals: self - .boot_info - .rollup_config - .is_canyon_active(timestamp) - .then(Vec::new), - ..Default::default() + body: BlockBody { + transactions, + ommers: Vec::new(), + withdrawals: self + .boot_info + .rollup_config + .is_canyon_active(timestamp) + .then(Vec::new), + requests: None, + }, }; Ok(optimism_block) } @@ -191,10 +195,10 @@ impl L2ChainProvider for MultiblockOracleL2ChainPr } // Get the payload at the given block number. - let payload = self.block_by_number(number).await?; + let block = self.block_by_number(number).await?; // Construct the system config from the payload. - Ok(payload.to_system_config(rollup_config.as_ref())?) + to_system_config(&block, rollup_config.as_ref()).map_err(Into::into) } } diff --git a/utils/host/src/fetcher.rs b/utils/host/src/fetcher.rs index c58672c7..2fb5bcc5 100644 --- a/utils/host/src/fetcher.rs +++ b/utils/host/src/fetcher.rs @@ -289,7 +289,7 @@ impl OPSuccinctDataFetcher { block_data.push(BlockInfo { block_number, transaction_count: block.transactions.len() as u64, - gas_used: block.header.gas_used as u64, + gas_used: block.header.gas_used, }); } Ok(block_data)