feat(op): allow import without state (#7661)

This commit is contained in:
Emilia Hane
2024-04-19 14:17:31 +02:00
committed by GitHub
parent cf163ba9d8
commit f4dda95cbd
3 changed files with 127 additions and 92 deletions

167
Cargo.lock generated
View File

@ -332,7 +332,7 @@ checksum = "1a047897373be4bbb0224c1afdabca92648dc57a9c9ef6e7b0be3aff7a859c83"
dependencies = [ dependencies = [
"proc-macro2", "proc-macro2",
"quote", "quote",
"syn 2.0.57", "syn 2.0.58",
] ]
[[package]] [[package]]
@ -471,7 +471,7 @@ dependencies = [
"proc-macro-error", "proc-macro-error",
"proc-macro2", "proc-macro2",
"quote", "quote",
"syn 2.0.57", "syn 2.0.58",
"syn-solidity", "syn-solidity",
"tiny-keccak", "tiny-keccak",
] ]
@ -489,7 +489,7 @@ dependencies = [
"proc-macro2", "proc-macro2",
"quote", "quote",
"serde_json", "serde_json",
"syn 2.0.57", "syn 2.0.58",
"syn-solidity", "syn-solidity",
] ]
@ -652,7 +652,7 @@ dependencies = [
"proc-macro-error", "proc-macro-error",
"proc-macro2", "proc-macro2",
"quote", "quote",
"syn 2.0.57", "syn 2.0.58",
] ]
[[package]] [[package]]
@ -825,9 +825,9 @@ dependencies = [
[[package]] [[package]]
name = "async-compression" name = "async-compression"
version = "0.4.6" version = "0.4.8"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a116f46a969224200a0a97f29cfd4c50e7534e4b4826bd23ea2c3c533039c82c" checksum = "07dbbf24db18d609b1462965249abdf49129ccad073ec257da372adc83259c60"
dependencies = [ dependencies = [
"brotli", "brotli",
"flate2", "flate2",
@ -872,7 +872,7 @@ checksum = "16e62a023e7c117e27523144c5d2459f4397fcc3cab0085af8e2224f643a0193"
dependencies = [ dependencies = [
"proc-macro2", "proc-macro2",
"quote", "quote",
"syn 2.0.57", "syn 2.0.58",
] ]
[[package]] [[package]]
@ -883,7 +883,7 @@ checksum = "c6fa2087f2753a7da8cc1c0dbfcf89579dd57458e36769de5ac750b4671737ca"
dependencies = [ dependencies = [
"proc-macro2", "proc-macro2",
"quote", "quote",
"syn 2.0.57", "syn 2.0.58",
] ]
[[package]] [[package]]
@ -915,7 +915,7 @@ checksum = "3c87f3f15e7794432337fc718554eaa4dc8f04c9677a950ffe366f20a162ae42"
dependencies = [ dependencies = [
"proc-macro2", "proc-macro2",
"quote", "quote",
"syn 2.0.57", "syn 2.0.58",
] ]
[[package]] [[package]]
@ -1043,7 +1043,7 @@ dependencies = [
"regex", "regex",
"rustc-hash", "rustc-hash",
"shlex", "shlex",
"syn 2.0.57", "syn 2.0.58",
"which", "which",
] ]
@ -1240,7 +1240,7 @@ checksum = "6be9c93793b60dac381af475b98634d4b451e28336e72218cad9a20176218dbc"
dependencies = [ dependencies = [
"proc-macro2", "proc-macro2",
"quote", "quote",
"syn 2.0.57", "syn 2.0.58",
"synstructure", "synstructure",
] ]
@ -1280,9 +1280,9 @@ dependencies = [
[[package]] [[package]]
name = "brotli" name = "brotli"
version = "3.5.0" version = "4.0.0"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d640d25bc63c50fb1f0b545ffd80207d2e10a4c965530809b40ba3386825c391" checksum = "125740193d7fee5cc63ab9e16c2fdc4e07c74ba755cc53b327d6ea029e9fc569"
dependencies = [ dependencies = [
"alloc-no-stdlib", "alloc-no-stdlib",
"alloc-stdlib", "alloc-stdlib",
@ -1291,9 +1291,9 @@ dependencies = [
[[package]] [[package]]
name = "brotli-decompressor" name = "brotli-decompressor"
version = "2.5.1" version = "3.0.0"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "4e2e4afe60d7dd600fdd3de8d0f08c2b7ec039712e3b6137ff98b7004e82de4f" checksum = "65622a320492e09b5e0ac436b14c54ff68199bac392d0e89a6832c4518eea525"
dependencies = [ dependencies = [
"alloc-no-stdlib", "alloc-no-stdlib",
"alloc-stdlib", "alloc-stdlib",
@ -1349,7 +1349,7 @@ checksum = "4da9a32f3fed317401fa3c862968128267c3106685286e15d5aaa3d7389c2f60"
dependencies = [ dependencies = [
"proc-macro2", "proc-macro2",
"quote", "quote",
"syn 2.0.57", "syn 2.0.58",
] ]
[[package]] [[package]]
@ -1541,7 +1541,7 @@ dependencies = [
"anstream", "anstream",
"anstyle", "anstyle",
"clap_lex", "clap_lex",
"strsim 0.11.0", "strsim 0.11.1",
] ]
[[package]] [[package]]
@ -1553,7 +1553,7 @@ dependencies = [
"heck 0.5.0", "heck 0.5.0",
"proc-macro2", "proc-macro2",
"quote", "quote",
"syn 2.0.57", "syn 2.0.58",
] ]
[[package]] [[package]]
@ -1630,13 +1630,13 @@ checksum = "acbf1af155f9b9ef647e42cdc158db4b64a1b61f743629225fde6f3e0be2a7c7"
[[package]] [[package]]
name = "comfy-table" name = "comfy-table"
version = "7.1.0" version = "7.1.1"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "7c64043d6c7b7a4c58e39e7efccfdea7b93d885a795d0c054a69dbbf4dd52686" checksum = "b34115915337defe99b2aff5c2ce6771e5fbc4079f4b506301f5cf394c8452f7"
dependencies = [ dependencies = [
"crossterm", "crossterm",
"strum 0.25.0", "strum 0.26.2",
"strum_macros 0.25.3", "strum_macros 0.26.2",
"unicode-width", "unicode-width",
] ]
@ -1990,7 +1990,7 @@ checksum = "f46882e17999c6cc590af592290432be3bce0428cb0d5f8b6715e4dc7b383eb3"
dependencies = [ dependencies = [
"proc-macro2", "proc-macro2",
"quote", "quote",
"syn 2.0.57", "syn 2.0.58",
] ]
[[package]] [[package]]
@ -2147,7 +2147,7 @@ dependencies = [
"proc-macro2", "proc-macro2",
"quote", "quote",
"strsim 0.10.0", "strsim 0.10.0",
"syn 2.0.57", "syn 2.0.58",
] ]
[[package]] [[package]]
@ -2180,7 +2180,7 @@ checksum = "a668eda54683121533a393014d8692171709ff57a7d61f187b6e782719f8933f"
dependencies = [ dependencies = [
"darling_core 0.20.8", "darling_core 0.20.8",
"quote", "quote",
"syn 2.0.57", "syn 2.0.58",
] ]
[[package]] [[package]]
@ -2249,9 +2249,9 @@ dependencies = [
[[package]] [[package]]
name = "der" name = "der"
version = "0.7.8" version = "0.7.9"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "fffa369a668c8af7dbf8b5e56c9f744fbd399949ed171606040001947de40b1c" checksum = "f55bf8e7b65898637379c1b74eb1551107c8294ed26d855ceb9fd1a09cfc9bc0"
dependencies = [ dependencies = [
"const-oid", "const-oid",
"zeroize", "zeroize",
@ -2286,7 +2286,7 @@ checksum = "67e77553c4162a157adbf834ebae5b415acbecbeafc7a74b0e886657506a7611"
dependencies = [ dependencies = [
"proc-macro2", "proc-macro2",
"quote", "quote",
"syn 2.0.57", "syn 2.0.58",
] ]
[[package]] [[package]]
@ -2437,7 +2437,7 @@ checksum = "487585f4d0c6655fe74905e2504d8ad6908e4db67f744eb140876906c2f3175d"
dependencies = [ dependencies = [
"proc-macro2", "proc-macro2",
"quote", "quote",
"syn 2.0.57", "syn 2.0.58",
] ]
[[package]] [[package]]
@ -2634,7 +2634,7 @@ dependencies = [
"heck 0.4.1", "heck 0.4.1",
"proc-macro2", "proc-macro2",
"quote", "quote",
"syn 2.0.57", "syn 2.0.58",
] ]
[[package]] [[package]]
@ -2647,7 +2647,7 @@ dependencies = [
"num-traits", "num-traits",
"proc-macro2", "proc-macro2",
"quote", "quote",
"syn 2.0.57", "syn 2.0.58",
] ]
[[package]] [[package]]
@ -2658,7 +2658,7 @@ checksum = "6fd000fd6988e73bbe993ea3db9b1aa64906ab88766d654973924340c8cddb42"
dependencies = [ dependencies = [
"proc-macro2", "proc-macro2",
"quote", "quote",
"syn 2.0.57", "syn 2.0.58",
] ]
[[package]] [[package]]
@ -2970,7 +2970,7 @@ checksum = "87750cf4b7a4c0625b1529e4c543c2182106e4dedc60a2a6455e00d212c489ac"
dependencies = [ dependencies = [
"proc-macro2", "proc-macro2",
"quote", "quote",
"syn 2.0.57", "syn 2.0.58",
] ]
[[package]] [[package]]
@ -3169,9 +3169,9 @@ dependencies = [
[[package]] [[package]]
name = "half" name = "half"
version = "2.4.0" version = "2.4.1"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b5eceaaeec696539ddaf7b333340f1af35a5aa87ae3e4f3ead0532f72affab2e" checksum = "6dd08c532ae367adf81c312a4580bc67f1d0fe8bc9c460520283f4c0ff277888"
dependencies = [ dependencies = [
"cfg-if", "cfg-if",
"crunchy", "crunchy",
@ -3462,7 +3462,7 @@ dependencies = [
"httpdate", "httpdate",
"itoa", "itoa",
"pin-project-lite", "pin-project-lite",
"socket2 0.4.10", "socket2 0.5.6",
"tokio", "tokio",
"tower-service", "tower-service",
"tracing", "tracing",
@ -3561,7 +3561,7 @@ dependencies = [
"proc-macro-error", "proc-macro-error",
"proc-macro2", "proc-macro2",
"quote", "quote",
"syn 2.0.57", "syn 2.0.58",
] ]
[[package]] [[package]]
@ -3711,7 +3711,7 @@ checksum = "d2abdd3a62551e8337af119c5899e600ca0c88ec8f23a46c60ba216c803dcf1a"
dependencies = [ dependencies = [
"proc-macro2", "proc-macro2",
"quote", "quote",
"syn 2.0.57", "syn 2.0.58",
] ]
[[package]] [[package]]
@ -4092,7 +4092,7 @@ dependencies = [
"proc-macro-crate 3.1.0", "proc-macro-crate 3.1.0",
"proc-macro2", "proc-macro2",
"quote", "quote",
"syn 2.0.57", "syn 2.0.58",
] ]
[[package]] [[package]]
@ -4388,13 +4388,12 @@ dependencies = [
[[package]] [[package]]
name = "libredox" name = "libredox"
version = "0.0.1" version = "0.1.3"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "85c833ca1e66078851dba29046874e38f08b2c883700aa29a03ddd3b23814ee8" checksum = "c0ff37bd590ca25063e35af745c343cb7a0271906fb7b37e4813e8f79f00268d"
dependencies = [ dependencies = [
"bitflags 2.5.0", "bitflags 2.5.0",
"libc", "libc",
"redox_syscall 0.4.1",
] ]
[[package]] [[package]]
@ -4639,7 +4638,7 @@ checksum = "38b4faf00617defe497754acde3024865bc143d44a86799b24e191ecff91354f"
dependencies = [ dependencies = [
"proc-macro2", "proc-macro2",
"quote", "quote",
"syn 2.0.57", "syn 2.0.58",
] ]
[[package]] [[package]]
@ -4779,7 +4778,7 @@ dependencies = [
"cfg-if", "cfg-if",
"proc-macro2", "proc-macro2",
"quote", "quote",
"syn 2.0.57", "syn 2.0.58",
] ]
[[package]] [[package]]
@ -5051,7 +5050,7 @@ dependencies = [
"proc-macro-crate 3.1.0", "proc-macro-crate 3.1.0",
"proc-macro2", "proc-macro2",
"quote", "quote",
"syn 2.0.57", "syn 2.0.58",
] ]
[[package]] [[package]]
@ -5289,9 +5288,9 @@ checksum = "e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e"
[[package]] [[package]]
name = "pest" name = "pest"
version = "2.7.8" version = "2.7.9"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "56f8023d0fb78c8e03784ea1c7f3fa36e68a723138990b8d5a47d916b651e7a8" checksum = "311fb059dee1a7b802f036316d790138c613a4e8b180c822e3925a662e9f0c95"
dependencies = [ dependencies = [
"memchr", "memchr",
"thiserror", "thiserror",
@ -5341,7 +5340,7 @@ dependencies = [
"phf_shared", "phf_shared",
"proc-macro2", "proc-macro2",
"quote", "quote",
"syn 2.0.57", "syn 2.0.58",
] ]
[[package]] [[package]]
@ -5370,7 +5369,7 @@ checksum = "2f38a4412a78282e09a2cf38d195ea5420d15ba0602cb375210efbc877243965"
dependencies = [ dependencies = [
"proc-macro2", "proc-macro2",
"quote", "quote",
"syn 2.0.57", "syn 2.0.58",
] ]
[[package]] [[package]]
@ -5550,7 +5549,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "8d3928fb5db768cb86f891ff014f0144589297e3c6a1aba6ed7cecfdace270c7" checksum = "8d3928fb5db768cb86f891ff014f0144589297e3c6a1aba6ed7cecfdace270c7"
dependencies = [ dependencies = [
"proc-macro2", "proc-macro2",
"syn 2.0.57", "syn 2.0.58",
] ]
[[package]] [[package]]
@ -5908,9 +5907,9 @@ dependencies = [
[[package]] [[package]]
name = "redox_users" name = "redox_users"
version = "0.4.4" version = "0.4.5"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a18479200779601e498ada4e8c1e1f50e3ee19deb0259c25825a98b5603b2cb4" checksum = "bd283d9651eeda4b2a83a43c1c91b266c40fd76ecd39a50a8c630ae69dc72891"
dependencies = [ dependencies = [
"getrandom 0.2.14", "getrandom 0.2.14",
"libredox", "libredox",
@ -5963,9 +5962,9 @@ checksum = "adad44e29e4c806119491a7f06f03de4d1af22c3a680dd47f1e6e179439d1f56"
[[package]] [[package]]
name = "regress" name = "regress"
version = "0.9.0" version = "0.9.1"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d06f9a1f7cd8473611ba1a480cf35f9c5cffc2954336ba90a982fdb7e7d7f51e" checksum = "0eae2a1ebfecc58aff952ef8ccd364329abe627762f5bf09ff42eb9d98522479"
dependencies = [ dependencies = [
"hashbrown 0.14.3", "hashbrown 0.14.3",
"memchr", "memchr",
@ -6280,7 +6279,7 @@ dependencies = [
"proc-macro2", "proc-macro2",
"quote", "quote",
"similar-asserts", "similar-asserts",
"syn 2.0.57", "syn 2.0.58",
] ]
[[package]] [[package]]
@ -6730,7 +6729,7 @@ dependencies = [
"quote", "quote",
"regex", "regex",
"serial_test", "serial_test",
"syn 2.0.57", "syn 2.0.58",
"trybuild", "trybuild",
] ]
@ -7997,9 +7996,9 @@ dependencies = [
[[package]] [[package]]
name = "rustversion" name = "rustversion"
version = "1.0.14" version = "1.0.15"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "7ffc183a10b4478d04cbbbfc96d0873219d962dd5accaff2ffbd4ceb7df837f4" checksum = "80af6f9131f277a45a3fba6ce8e2258037bb0477a67e610d3c1fe046ab31de47"
[[package]] [[package]]
name = "rusty-fork" name = "rusty-fork"
@ -8216,7 +8215,7 @@ checksum = "7eb0b34b42edc17f6b7cac84a52a1c5f0e1bb2227e997ca9011ea3dd34e8610b"
dependencies = [ dependencies = [
"proc-macro2", "proc-macro2",
"quote", "quote",
"syn 2.0.57", "syn 2.0.58",
] ]
[[package]] [[package]]
@ -8290,7 +8289,7 @@ dependencies = [
"darling 0.20.8", "darling 0.20.8",
"proc-macro2", "proc-macro2",
"quote", "quote",
"syn 2.0.57", "syn 2.0.58",
] ]
[[package]] [[package]]
@ -8315,7 +8314,7 @@ checksum = "b93fb4adc70021ac1b47f7d45e8cc4169baaa7ea58483bc5b721d19a26202212"
dependencies = [ dependencies = [
"proc-macro2", "proc-macro2",
"quote", "quote",
"syn 2.0.57", "syn 2.0.58",
] ]
[[package]] [[package]]
@ -8625,9 +8624,9 @@ checksum = "73473c0e59e6d5812c5dfe2a064a6444949f089e20eec9a2e5506596494e4623"
[[package]] [[package]]
name = "strsim" name = "strsim"
version = "0.11.0" version = "0.11.1"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "5ee073c9e4cd00e28217186dbe12796d692868f432bf2e97ee73bed0c56dfa01" checksum = "7da8b5736845d9f2fcb837ea5d9e2628564b3b043a70948a3f0b778838c5fb4f"
[[package]] [[package]]
name = "strum" name = "strum"
@ -8657,7 +8656,7 @@ dependencies = [
"proc-macro2", "proc-macro2",
"quote", "quote",
"rustversion", "rustversion",
"syn 2.0.57", "syn 2.0.58",
] ]
[[package]] [[package]]
@ -8670,7 +8669,7 @@ dependencies = [
"proc-macro2", "proc-macro2",
"quote", "quote",
"rustversion", "rustversion",
"syn 2.0.57", "syn 2.0.58",
] ]
[[package]] [[package]]
@ -8738,9 +8737,9 @@ dependencies = [
[[package]] [[package]]
name = "syn" name = "syn"
version = "2.0.57" version = "2.0.58"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "11a6ae1e52eb25aab8f3fb9fca13be982a373b8f1157ca14b897a825ba4a2d35" checksum = "44cfb93f38070beee36b3fef7d4f5a16f27751d94b187b666a5cc5e9b0d30687"
dependencies = [ dependencies = [
"proc-macro2", "proc-macro2",
"quote", "quote",
@ -8756,7 +8755,7 @@ dependencies = [
"paste", "paste",
"proc-macro2", "proc-macro2",
"quote", "quote",
"syn 2.0.57", "syn 2.0.58",
] ]
[[package]] [[package]]
@ -8773,7 +8772,7 @@ checksum = "c8af7666ab7b6390ab78131fb5b0fce11d6b7a6951602017c35fa82800708971"
dependencies = [ dependencies = [
"proc-macro2", "proc-macro2",
"quote", "quote",
"syn 2.0.57", "syn 2.0.58",
] ]
[[package]] [[package]]
@ -8865,7 +8864,7 @@ dependencies = [
"prettyplease", "prettyplease",
"proc-macro2", "proc-macro2",
"quote", "quote",
"syn 2.0.57", "syn 2.0.58",
] ]
[[package]] [[package]]
@ -8904,7 +8903,7 @@ checksum = "c61f3ba182994efc43764a46c018c347bc492c79f024e705f46567b418f6d4f7"
dependencies = [ dependencies = [
"proc-macro2", "proc-macro2",
"quote", "quote",
"syn 2.0.57", "syn 2.0.58",
] ]
[[package]] [[package]]
@ -9062,7 +9061,7 @@ checksum = "5b8a1e28f2deaa14e508979454cb3a223b10b938b45af148bc0986de36f1923b"
dependencies = [ dependencies = [
"proc-macro2", "proc-macro2",
"quote", "quote",
"syn 2.0.57", "syn 2.0.58",
] ]
[[package]] [[package]]
@ -9275,7 +9274,7 @@ checksum = "34704c8d6ebcbc939824180af020566b01a7c01f80641264eba0999f6c2b6be7"
dependencies = [ dependencies = [
"proc-macro2", "proc-macro2",
"quote", "quote",
"syn 2.0.57", "syn 2.0.58",
] ]
[[package]] [[package]]
@ -9738,7 +9737,7 @@ dependencies = [
"once_cell", "once_cell",
"proc-macro2", "proc-macro2",
"quote", "quote",
"syn 2.0.57", "syn 2.0.58",
"wasm-bindgen-shared", "wasm-bindgen-shared",
] ]
@ -9772,7 +9771,7 @@ checksum = "e94f17b526d0a461a191c78ea52bbce64071ed5c04c9ffe424dcb38f74171bb7"
dependencies = [ dependencies = [
"proc-macro2", "proc-macro2",
"quote", "quote",
"syn 2.0.57", "syn 2.0.58",
"wasm-bindgen-backend", "wasm-bindgen-backend",
"wasm-bindgen-shared", "wasm-bindgen-shared",
] ]
@ -9835,9 +9834,9 @@ dependencies = [
[[package]] [[package]]
name = "widestring" name = "widestring"
version = "1.0.2" version = "1.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "653f141f39ec16bba3c5abe400a0c60da7468261cc2cbf36805022876bc721a8" checksum = "7219d36b6eac893fa81e84ebe06485e7dcbb616177469b142df14f1f4deb1311"
[[package]] [[package]]
name = "winapi" name = "winapi"
@ -10098,9 +10097,9 @@ dependencies = [
[[package]] [[package]]
name = "xml-rs" name = "xml-rs"
version = "0.8.19" version = "0.8.20"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "0fcb9cbac069e033553e8bb871be2fbdffcab578eb25bd0f7c508cedc6dcd75a" checksum = "791978798f0597cfc70478424c2b4fdc2b7a8024aaff78497ef00f24ef674193"
[[package]] [[package]]
name = "xmltree" name = "xmltree"
@ -10131,7 +10130,7 @@ checksum = "9e6936f0cce458098a201c245a11bef556c6a0181129c7034d10d76d1ec3a2b8"
dependencies = [ dependencies = [
"proc-macro2", "proc-macro2",
"quote", "quote",
"syn 2.0.57", "syn 2.0.58",
"synstructure", "synstructure",
] ]
@ -10152,7 +10151,7 @@ checksum = "9ce1b18ccd8e73a9321186f97e46f9f04b778851177567b1975109d26a08d2a6"
dependencies = [ dependencies = [
"proc-macro2", "proc-macro2",
"quote", "quote",
"syn 2.0.57", "syn 2.0.58",
] ]
[[package]] [[package]]
@ -10172,7 +10171,7 @@ checksum = "e6a647510471d372f2e6c2e6b7219e44d8c574d24fdc11c610a61455782f18c3"
dependencies = [ dependencies = [
"proc-macro2", "proc-macro2",
"quote", "quote",
"syn 2.0.57", "syn 2.0.58",
"synstructure", "synstructure",
] ]
@ -10193,7 +10192,7 @@ checksum = "ce36e65b0d2999d2aafac989fb249189a141aee1f53c612c1f37d72631959f69"
dependencies = [ dependencies = [
"proc-macro2", "proc-macro2",
"quote", "quote",
"syn 2.0.57", "syn 2.0.58",
] ]
[[package]] [[package]]
@ -10215,7 +10214,7 @@ checksum = "7b4e5997cbf58990550ef1f0e5124a05e47e1ebd33a84af25739be6031a62c20"
dependencies = [ dependencies = [
"proc-macro2", "proc-macro2",
"quote", "quote",
"syn 2.0.57", "syn 2.0.58",
] ]
[[package]] [[package]]

View File

@ -41,6 +41,17 @@ use std::{path::PathBuf, sync::Arc};
use tokio::sync::watch; use tokio::sync::watch;
use tracing::{debug, info}; use tracing::{debug, info};
/// Stages that require state.
const STATE_STAGES: &[StageId] = &[
StageId::Execution,
StageId::MerkleUnwind,
StageId::AccountHashing,
StageId::StorageHashing,
StageId::MerkleExecute,
StageId::IndexStorageHistory,
StageId::IndexAccountHistory,
];
/// Syncs RLP encoded blocks from a file. /// Syncs RLP encoded blocks from a file.
#[derive(Debug, Parser)] #[derive(Debug, Parser)]
pub struct ImportCommand { pub struct ImportCommand {
@ -70,9 +81,9 @@ pub struct ImportCommand {
)] )]
chain: Arc<ChainSpec>, chain: Arc<ChainSpec>,
/// Disables execution stage. /// Disables stages that require state.
#[arg(long, verbatim_doc_comment)] #[arg(long, verbatim_doc_comment)]
disable_execution: bool, no_state: bool,
/// Import OP Mainnet chain below Bedrock. Caution! Flag must be set as env var, since the env /// Import OP Mainnet chain below Bedrock. Caution! Flag must be set as env var, since the env
/// var is read by another process too, in order to make below Bedrock import work. /// var is read by another process too, in order to make below Bedrock import work.
@ -100,12 +111,12 @@ impl ImportCommand {
info!(target: "reth::cli", "reth {} starting", SHORT_VERSION); info!(target: "reth::cli", "reth {} starting", SHORT_VERSION);
if self.op_mainnet_below_bedrock { if self.op_mainnet_below_bedrock {
self.disable_execution = true; self.no_state = true;
debug!(target: "reth::cli", "Importing OP mainnet below bedrock"); debug!(target: "reth::cli", "Importing OP mainnet below bedrock");
} }
if self.disable_execution { if self.no_state {
debug!(target: "reth::cli", "Execution stage disabled"); debug!(target: "reth::cli", "Stages requiring state disabled");
} }
debug!(target: "reth::cli", debug!(target: "reth::cli",
@ -163,7 +174,7 @@ impl ImportCommand {
provider_factory.static_file_provider(), provider_factory.static_file_provider(),
PruneModes::default(), PruneModes::default(),
), ),
self.disable_execution, self.no_state,
) )
.await?; .await?;
@ -201,7 +212,7 @@ impl ImportCommand {
consensus: &Arc<C>, consensus: &Arc<C>,
file_client: Arc<FileClient>, file_client: Arc<FileClient>,
static_file_producer: StaticFileProducer<DB>, static_file_producer: StaticFileProducer<DB>,
disable_execution: bool, no_state: bool,
) -> eyre::Result<(Pipeline<DB>, impl Stream<Item = NodeEvent>)> ) -> eyre::Result<(Pipeline<DB>, impl Stream<Item = NodeEvent>)>
where where
DB: Database + Clone + Unpin + 'static, DB: Database + Clone + Unpin + 'static,
@ -263,7 +274,7 @@ impl ImportCommand {
.max(config.stages.storage_hashing.clean_threshold), .max(config.stages.storage_hashing.clean_threshold),
config.prune.clone().map(|prune| prune.segments).unwrap_or_default(), config.prune.clone().map(|prune| prune.segments).unwrap_or_default(),
)) ))
.disable_if(StageId::Execution, || disable_execution), .disable_all_if(STATE_STAGES, || no_state),
) )
.build(provider_factory, static_file_producer); .build(provider_factory, static_file_producer);

View File

@ -187,6 +187,18 @@ where
self self
} }
/// Disables all given stages. See [`disable`](Self::disable).
pub fn disable_all(mut self, stages: &[StageId]) -> Self {
for stage_id in stages {
let entry = self
.stages
.get_mut(stage_id)
.expect("Cannot disable a stage that is not in the set.");
entry.enabled = false;
}
self
}
/// Disables the given stage if the given closure returns true. /// Disables the given stage if the given closure returns true.
/// ///
/// See [Self::disable] /// See [Self::disable]
@ -200,6 +212,19 @@ where
self self
} }
/// Disables all given stages if the given closure returns true.
///
/// See [Self::disable]
pub fn disable_all_if<F>(self, stages: &[StageId], f: F) -> Self
where
F: FnOnce() -> bool,
{
if f() {
return self.disable_all(stages)
}
self
}
/// Consumes the builder and returns the contained [`Stage`]s in the order specified. /// Consumes the builder and returns the contained [`Stage`]s in the order specified.
pub fn build(mut self) -> Vec<Box<dyn Stage<DB>>> { pub fn build(mut self) -> Vec<Box<dyn Stage<DB>>> {
let mut stages = Vec::new(); let mut stages = Vec::new();