diff --git a/Cargo.lock b/Cargo.lock index 3577e0692..f572969a7 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -50,7 +50,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e89da841a80418a9b391ebaea17f5c112ffaaa96f621d2c285b5174da76b9011" dependencies = [ "cfg-if", - "getrandom 0.2.15", + "getrandom", "once_cell", "version_check", "zerocopy", @@ -65,15 +65,6 @@ dependencies = [ "memchr", ] -[[package]] -name = "aligned-vec" -version = "0.6.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7e0966165eaf052580bd70eb1b32cb3d6245774c0104d1b2793e9650bf83b52a" -dependencies = [ - "equator", -] - [[package]] name = "alloc-no-stdlib" version = "2.0.4" @@ -97,13 +88,14 @@ checksum = "45862d1c77f2228b9e10bc609d5bc203d86ebc9b87ad8d5d5167a6c9abf739d9" [[package]] name = "alloy" -version = "0.2.1" +version = "0.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3f4a4aaae80afd4be443a6aecd92a6b255dcdd000f97996928efb33d8a71e100" +checksum = "056f2c01b2aed86e15b43c47d109bfc8b82553dc34e66452875e51247ec31ab2" dependencies = [ "alloy-consensus", "alloy-core", "alloy-eips", + "alloy-network", "alloy-provider", "alloy-rpc-client", "alloy-rpc-types", @@ -115,10 +107,11 @@ dependencies = [ [[package]] name = "alloy-chains" -version = "0.1.20" +version = "0.1.47" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d2feb5f466b3a786d5a622d8926418bc6a0d38bf632909f6ee9298a4a1d8c6e0" +checksum = "18c5c520273946ecf715c0010b4e3503d7eba9893cd9ce6b7fff5654c4a3c470" dependencies = [ + "alloy-primitives", "alloy-rlp", "num_enum", "serde", @@ -127,39 +120,91 @@ dependencies = [ [[package]] name = "alloy-consensus" -version = "0.2.1" +version = "0.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "04c309895995eaa4bfcc345f5515a39c7df9447798645cc8bf462b6c5bf1dc96" +checksum = "705687d5bfd019fee57cf9e206b27b30a9a9617535d5590a02b171e813208f8e" dependencies = [ "alloy-eips", "alloy-primitives", "alloy-rlp", "alloy-serde", + "arbitrary", + "auto_impl", "c-kzg", + "derive_more 1.0.0", "serde", + "serde_with", ] [[package]] name = "alloy-core" -version = "0.7.7" +version = "0.8.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9c8316d83e590f4163b221b8180008f302bda5cf5451202855cdd323e588849c" +dependencies = [ + "alloy-primitives", +] + +[[package]] +name = "alloy-dyn-abi" +version = "0.8.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ef2364c782a245cf8725ea6dbfca5f530162702b5d685992ea03ce64529136cc" +dependencies = [ + "alloy-json-abi", + "alloy-primitives", + "alloy-sol-type-parser", + "alloy-sol-types", + "const-hex", + "derive_more 1.0.0", + "itoa", + "serde", + "serde_json", + "winnow", +] + +[[package]] +name = "alloy-eip2930" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0069cf0642457f87a01a014f6dc29d5d893cd4fd8fddf0c3cdfad1bb3ebafc41" +dependencies = [ + "alloy-primitives", + "alloy-rlp", + "arbitrary", + "rand", + "serde", +] + +[[package]] +name = "alloy-eip7702" +version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "529fc6310dc1126c8de51c376cbc59c79c7f662bd742be7dc67055d5421a81b4" +checksum = "ea59dc42102bc9a1905dc57901edc6dd48b9f38115df86c7d252acba70d71d04" dependencies = [ "alloy-primitives", + "alloy-rlp", + "arbitrary", + "k256", + "rand", + "serde", + "serde_with", ] [[package]] name = "alloy-eips" -version = "0.2.1" +version = "0.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d9431c99a3b3fe606ede4b3d4043bdfbcb780c45b8d8d226c3804e2b75cfbe68" +checksum = "6ffb906284a1e1f63c4607da2068c8197458a352d0b3e9796e67353d72a9be85" dependencies = [ + "alloy-eip2930", + "alloy-eip7702", "alloy-primitives", "alloy-rlp", "alloy-serde", + "arbitrary", "c-kzg", - "derive_more", - "k256", + "derive_more 1.0.0", "once_cell", "serde", "sha2", @@ -167,9 +212,9 @@ dependencies = [ [[package]] name = "alloy-genesis" -version = "0.2.1" +version = "0.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "79614dfe86144328da11098edcc7bc1a3f25ad8d3134a9eb9e857e06f0d9840d" +checksum = "8429cf4554eed9b40feec7f4451113e76596086447550275e3def933faf47ce3" dependencies = [ "alloy-primitives", "alloy-serde", @@ -178,20 +223,21 @@ dependencies = [ [[package]] name = "alloy-json-abi" -version = "0.7.7" +version = "0.8.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bc05b04ac331a9f07e3a4036ef7926e49a8bf84a99a1ccfc7e2ab55a5fcbb372" +checksum = "b84c506bf264110fa7e90d9924f742f40ef53c6572ea56a0b0bd714a567ed389" dependencies = [ "alloy-primitives", "alloy-sol-type-parser", "serde", + "serde_json", ] [[package]] name = "alloy-json-rpc" -version = "0.2.1" +version = "0.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "57e2865c4c3bb4cdad3f0d9ec1ab5c0c657ba69a375651bd35e32fb6c180ccc2" +checksum = "f8fa8a1a3c4cbd221f2b8e3693aeb328fca79a757fe556ed08e47bbbc2a70db7" dependencies = [ "alloy-primitives", "alloy-sol-types", @@ -203,9 +249,9 @@ dependencies = [ [[package]] name = "alloy-network" -version = "0.2.1" +version = "0.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6e701fc87ef9a3139154b0b4ccb935b565d27ffd9de020fe541bf2dec5ae4ede" +checksum = "85fa23a6a9d612b52e402c995f2d582c25165ec03ac6edf64c861a76bc5b87cd" dependencies = [ "alloy-consensus", "alloy-eips", @@ -224,10 +270,12 @@ dependencies = [ [[package]] name = "alloy-network-primitives" -version = "0.2.1" +version = "0.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ec9d5a0f9170b10988b6774498a022845e13eda94318440d17709d50687f67f9" +checksum = "801492711d4392b2ccf5fc0bc69e299fa1aab15167d74dcaa9aab96a54f684bd" dependencies = [ + "alloy-consensus", + "alloy-eips", "alloy-primitives", "alloy-serde", "serde", @@ -235,32 +283,41 @@ dependencies = [ [[package]] name = "alloy-primitives" -version = "0.7.7" +version = "0.8.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ccb3ead547f4532bc8af961649942f0b9c16ee9226e26caa3f38420651cc0bf4" +checksum = "9fce5dbd6a4f118eecc4719eaa9c7ffc31c315e6c5ccde3642db927802312425" dependencies = [ "alloy-rlp", + "arbitrary", "bytes", "cfg-if", "const-hex", - "derive_more", - "getrandom 0.2.15", + "derive_arbitrary", + "derive_more 1.0.0", + "foldhash", + "getrandom", + "hashbrown 0.15.1", "hex-literal", + "indexmap 2.6.0", "itoa", "k256", "keccak-asm", + "paste", "proptest", - "rand 0.8.5", + "proptest-derive", + "rand", "ruint", + "rustc-hash 2.0.0", "serde", + "sha3", "tiny-keccak", ] [[package]] name = "alloy-provider" -version = "0.2.1" +version = "0.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3f9c0ab10b93de601a6396fc7ff2ea10d3b28c46f079338fa562107ebf9857c8" +checksum = "fcfaa4ffec0af04e3555686b8aacbcdf7d13638133a0672749209069750f78a6" dependencies = [ "alloy-chains", "alloy-consensus", @@ -276,13 +333,14 @@ dependencies = [ "async-stream", "async-trait", "auto_impl", - "dashmap 5.5.3", + "dashmap", "futures", "futures-utils-wasm", "lru", "pin-project", "serde", "serde_json", + "thiserror", "tokio", "tracing", "url", @@ -312,43 +370,43 @@ dependencies = [ [[package]] name = "alloy-rpc-client" -version = "0.2.1" +version = "0.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5b38e3ffdb285df5d9f60cb988d336d9b8e3505acb78750c3bc60336a7af41d3" +checksum = "370143ed581aace6e663342d21d209c6b2e34ee6142f7d6675adb518deeaf0dc" dependencies = [ "alloy-json-rpc", + "alloy-primitives", "alloy-transport", "alloy-transport-http", "futures", - "hyper-util", "pin-project", "serde", "serde_json", "tokio", "tokio-stream", - "tower", + "tower 0.5.1", "tracing", "url", ] [[package]] name = "alloy-rpc-types" -version = "0.2.1" +version = "0.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e6c31a3750b8f5a350d17354e46a52b0f2f19ec5f2006d816935af599dedc521" +checksum = "9ffc534b7919e18f35e3aa1f507b6f3d9d92ec298463a9f6beaac112809d8d06" dependencies = [ + "alloy-primitives", "alloy-rpc-types-engine", "alloy-rpc-types-eth", - "alloy-rpc-types-trace", "alloy-serde", "serde", ] [[package]] name = "alloy-rpc-types-admin" -version = "0.2.1" +version = "0.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fbfb8b2c2eea8acd5580c9804a1ee58038938b16efb24eec09c3005f65b0e4ad" +checksum = "cb520ed46cc5b7d8c014a73fdd77b6a310383a2a5c0a5ae3c9b8055881f062b7" dependencies = [ "alloy-genesis", "alloy-primitives", @@ -358,9 +416,9 @@ dependencies = [ [[package]] name = "alloy-rpc-types-anvil" -version = "0.2.1" +version = "0.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "52ab6509cd38b2e8c8da726e0f61c1e314a81df06a38d37ddec8bced3f8d25ed" +checksum = "d780adaa5d95b07ad92006b2feb68ecfa7e2015f7d5976ceaac4c906c73ebd07" dependencies = [ "alloy-primitives", "alloy-serde", @@ -369,9 +427,9 @@ dependencies = [ [[package]] name = "alloy-rpc-types-beacon" -version = "0.2.1" +version = "0.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c8a24bcff4f9691d7a4971b43e5da46aa7b4ce22ed7789796612dc1eed220983" +checksum = "7a8dc5980fe30203d698627cddb5f0cedc57f900c8b5e1229c8b9448e37acb4a" dependencies = [ "alloy-eips", "alloy-primitives", @@ -381,30 +439,38 @@ dependencies = [ "thiserror", ] +[[package]] +name = "alloy-rpc-types-debug" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "59d8f8c5bfb160081a772f1f68eb9a37e8929c4ef74e5d01f5b78c2b645a5c5e" +dependencies = [ + "alloy-primitives", + "serde", +] + [[package]] name = "alloy-rpc-types-engine" -version = "0.2.1" +version = "0.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ff63f51b2fb2f547df5218527fd0653afb1947bf7fead5b3ce58c75d170b30f7" +checksum = "e0285c4c09f838ab830048b780d7f4a4f460f309aa1194bb049843309524c64c" dependencies = [ "alloy-consensus", "alloy-eips", "alloy-primitives", "alloy-rlp", - "alloy-rpc-types-eth", "alloy-serde", + "derive_more 1.0.0", "jsonrpsee-types", - "jsonwebtoken", - "rand 0.8.5", "serde", - "thiserror", + "strum", ] [[package]] name = "alloy-rpc-types-eth" -version = "0.2.1" +version = "0.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "81e18424d962d7700a882fe423714bd5b9dde74c7a7589d4255ea64068773aef" +checksum = "413f4aa3ccf2c3e4234a047c5fa4727916d7daf25a89f9b765df0ba09784fd87" dependencies = [ "alloy-consensus", "alloy-eips", @@ -413,18 +479,18 @@ dependencies = [ "alloy-rlp", "alloy-serde", "alloy-sol-types", + "derive_more 1.0.0", "itertools 0.13.0", "jsonrpsee-types", "serde", "serde_json", - "thiserror", ] [[package]] name = "alloy-rpc-types-mev" -version = "0.2.1" +version = "0.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5a0593a17b4b009598eb3e8380e298c53bd5581f3f37d85a38e6a34881c90ea1" +checksum = "7cec23ce56c869eec5f6b6fd6a8a92b5aa0cfaf8d7be3a96502e537554dc7430" dependencies = [ "alloy-eips", "alloy-primitives", @@ -435,9 +501,9 @@ dependencies = [ [[package]] name = "alloy-rpc-types-trace" -version = "0.2.1" +version = "0.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a86eeb49ea0cc79f249faa1d35c20541bb1c317a59b5962cb07b1890355b0064" +checksum = "017cad3e5793c5613588c1f9732bcbad77e820ba7d0feaba3527749f856fdbc5" dependencies = [ "alloy-primitives", "alloy-rpc-types-eth", @@ -449,9 +515,9 @@ dependencies = [ [[package]] name = "alloy-rpc-types-txpool" -version = "0.2.1" +version = "0.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c2342fed8175642b15a37a51f8729b05b2469281fbeb816f0ccbb0087e2dd74a" +checksum = "2b230e321c416be7f50530159392b4c41a45596d40d97e185575bcd0b545e521" dependencies = [ "alloy-primitives", "alloy-rpc-types-eth", @@ -461,20 +527,21 @@ dependencies = [ [[package]] name = "alloy-serde" -version = "0.2.1" +version = "0.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e33feda6a53e6079895aed1d08dcb98a1377b000d80d16370fbbdb8155d547ef" +checksum = "9dff0ab1cdd43ca001e324dc27ee0e8606bd2161d6623c63e0e0b8c4dfc13600" dependencies = [ "alloy-primitives", + "arbitrary", "serde", "serde_json", ] [[package]] name = "alloy-signer" -version = "0.2.1" +version = "0.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "740a25b92e849ed7b0fa013951fe2f64be9af1ad5abe805037b44fb7770c5c47" +checksum = "2fd4e0ad79c81a27ca659be5d176ca12399141659fef2bcbfdc848da478f4504" dependencies = [ "alloy-primitives", "async-trait", @@ -486,9 +553,9 @@ dependencies = [ [[package]] name = "alloy-signer-local" -version = "0.2.1" +version = "0.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1b0707d4f63e4356a110b30ef3add8732ab6d181dd7be4607bf79b8777105cee" +checksum = "494e0a256f3e99f2426f994bcd1be312c02cb8f88260088dacb33a8b8936475f" dependencies = [ "alloy-consensus", "alloy-network", @@ -496,19 +563,19 @@ dependencies = [ "alloy-signer", "async-trait", "k256", - "rand 0.8.5", + "rand", "thiserror", ] [[package]] name = "alloy-sol-macro" -version = "0.7.7" +version = "0.8.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2b40397ddcdcc266f59f959770f601ce1280e699a91fc1862f29cef91707cd09" +checksum = "9343289b4a7461ed8bab8618504c995c049c082b70c7332efd7b32125633dc05" dependencies = [ "alloy-sol-macro-expander", "alloy-sol-macro-input", - "proc-macro-error", + "proc-macro-error2", "proc-macro2", "quote", "syn 2.0.87", @@ -516,16 +583,16 @@ dependencies = [ [[package]] name = "alloy-sol-macro-expander" -version = "0.7.7" +version = "0.8.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "867a5469d61480fea08c7333ffeca52d5b621f5ca2e44f271b117ec1fc9a0525" +checksum = "4222d70bec485ceccc5d8fd4f2909edd65b5d5e43d4aca0b5dcee65d519ae98f" dependencies = [ "alloy-json-abi", "alloy-sol-macro-input", "const-hex", "heck 0.5.0", "indexmap 2.6.0", - "proc-macro-error", + "proc-macro-error2", "proc-macro2", "quote", "syn 2.0.87", @@ -535,9 +602,9 @@ dependencies = [ [[package]] name = "alloy-sol-macro-input" -version = "0.7.7" +version = "0.8.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2e482dc33a32b6fadbc0f599adea520bd3aaa585c141a80b404d0a3e3fa72528" +checksum = "2e17f2677369571b976e51ea1430eb41c3690d344fef567b840bfc0b01b6f83a" dependencies = [ "alloy-json-abi", "const-hex", @@ -552,9 +619,9 @@ dependencies = [ [[package]] name = "alloy-sol-type-parser" -version = "0.7.7" +version = "0.8.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cbcba3ca07cf7975f15d871b721fb18031eec8bce51103907f6dcce00b255d98" +checksum = "aa64d80ae58ffaafdff9d5d84f58d03775f66c84433916dc9a64ed16af5755da" dependencies = [ "serde", "winnow", @@ -562,9 +629,9 @@ dependencies = [ [[package]] name = "alloy-sol-types" -version = "0.7.7" +version = "0.8.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a91ca40fa20793ae9c3841b83e74569d1cc9af29a2f5237314fd3452d51e38c7" +checksum = "6520d427d4a8eb7aa803d852d7a52ceb0c519e784c292f64bb339e636918cf27" dependencies = [ "alloy-json-abi", "alloy-primitives", @@ -575,9 +642,9 @@ dependencies = [ [[package]] name = "alloy-transport" -version = "0.2.1" +version = "0.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3d0590afbdacf2f8cca49d025a2466f3b6584a016a8b28f532f29f8da1007bae" +checksum = "2ac3e97dad3d31770db0fc89bd6a63b789fbae78963086733f960cf32c483904" dependencies = [ "alloy-json-rpc", "base64 0.22.1", @@ -587,16 +654,16 @@ dependencies = [ "serde_json", "thiserror", "tokio", - "tower", + "tower 0.5.1", "tracing", "url", ] [[package]] name = "alloy-transport-http" -version = "0.2.1" +version = "0.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2437d145d80ea1aecde8574d2058cceb8b3c9cba05f6aea8e67907c660d46698" +checksum = "b367dcccada5b28987c2296717ee04b9a5637aacd78eacb1726ef211678b5212" dependencies = [ "alloy-json-rpc", "alloy-transport", @@ -604,21 +671,20 @@ dependencies = [ "hyper", "hyper-util", "serde_json", - "tower", + "tower 0.5.1", "tracing", "url", ] [[package]] name = "alloy-trie" -version = "0.4.1" +version = "0.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "03704f265cbbb943b117ecb5055fd46e8f41e7dc8a58b1aed20bcd40ace38c15" +checksum = "e9703ce68b97f8faae6f7739d1e003fc97621b856953cbcdbb2b515743f23288" dependencies = [ "alloy-primitives", "alloy-rlp", - "derive_more", - "hashbrown 0.14.5", + "derive_more 1.0.0", "nybbles", "serde", "smallvec", @@ -945,7 +1011,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1df2c09229cbc5a028b1d70e00fdb2acee28b1055dfb5ca73eea49c5a25c4e7c" dependencies = [ "num-traits", - "rand 0.8.5", + "rand", ] [[package]] @@ -955,7 +1021,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "94893f1e0c6eeab764ade8dc4c0db24caf4fe7cbbaafc0eba0a9030f447b5185" dependencies = [ "num-traits", - "rand 0.8.5", + "rand", ] [[package]] @@ -1069,7 +1135,7 @@ version = "0.23.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a2101df3813227bbaaaa0b04cd61c534c7954b22bd68d399b440be937dc63ff7" dependencies = [ - "bindgen", + "bindgen 0.69.5", "cc", "cmake", "dunce", @@ -1085,10 +1151,10 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b62ddb9cb1ec0a098ad4bbf9344d0713fa193ae1a80af55febcff2627b6a00c1" dependencies = [ "futures-core", - "getrandom 0.2.15", + "getrandom", "instant", "pin-project-lite", - "rand 0.8.5", + "rand", "tokio", ] @@ -1205,10 +1271,22 @@ dependencies = [ ] [[package]] -name = "binout" -version = "0.3.0" +name = "bindgen" +version = "0.70.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "581d67184175e0c94926cb5e82df97bb6e0d8261d27a88a6ead80994ee73a4ac" +checksum = "f49d8fed880d473ea71efb9bf597651e77201bdd4893efe54c9e5d65ae04ce6f" +dependencies = [ + "bitflags 2.6.0", + "cexpr", + "clang-sys", + "itertools 0.13.0", + "proc-macro2", + "quote", + "regex", + "rustc-hash 1.1.0", + "shlex", + "syn 2.0.87", +] [[package]] name = "bit-set" @@ -1263,7 +1341,7 @@ dependencies = [ "jsonrpsee", "metrics", "pin-project", - "rand 0.8.5", + "rand", "reqwest", "serde", "serde_json", @@ -1351,15 +1429,6 @@ dependencies = [ "serde", ] -[[package]] -name = "bitm" -version = "0.4.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e7edec3daafc233e78a219c85a77bcf535ee267b0fae7a1aad96bd1a67add5d3" -dependencies = [ - "dyn_size_of", -] - [[package]] name = "bitvec" version = "1.0.1" @@ -1410,19 +1479,6 @@ dependencies = [ "generic-array", ] -[[package]] -name = "bls12_381" -version = "0.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d7bc6d6292be3a19e6379786dac800f551e5865a5bb51ebbe3064ab80433f403" -dependencies = [ - "ff", - "group", - "pairing", - "rand_core 0.6.4", - "subtle", -] - [[package]] name = "blst" version = "0.3.13" @@ -1735,6 +1791,8 @@ dependencies = [ "alloy", "alloy-primitives", "alloy-rlp", + "alloy-rpc-types", + "alloy-rpc-types-trace", "alloy-sol-types", "anyhow", "async-trait", @@ -1767,7 +1825,6 @@ dependencies = [ "regex", "reqwest", "reth-primitives", - "reth-rpc-types", "reth-transaction-pool", "revm", "risc0", @@ -1801,6 +1858,7 @@ dependencies = [ name = "citrea-batch-prover" version = "0.5.0-rc.1" dependencies = [ + "alloy-primitives", "anyhow", "async-trait", "backoff", @@ -1817,9 +1875,8 @@ dependencies = [ "once_cell", "parking_lot", "prover-services", - "rand 0.8.5", + "rand", "rayon", - "reth-primitives", "rs_merkle", "serde", "sha2", @@ -1836,7 +1893,7 @@ dependencies = [ "tempfile", "tokio", "tokio-util", - "tower", + "tower 0.4.13", "tracing", ] @@ -1844,6 +1901,7 @@ dependencies = [ name = "citrea-common" version = "0.5.0-rc.1" dependencies = [ + "alloy-primitives", "anyhow", "backoff", "borsh", @@ -1854,7 +1912,6 @@ dependencies = [ "hyper", "jsonrpsee", "lru", - "reth-primitives", "serde", "serde_json", "sov-db", @@ -1884,7 +1941,7 @@ dependencies = [ "futures", "hex", "jsonrpsee", - "rand 0.8.5", + "rand", "serde", "serde_json", "tempfile", @@ -1901,8 +1958,13 @@ dependencies = [ "alloy", "alloy-consensus", "alloy-eips", + "alloy-network", "alloy-primitives", "alloy-rlp", + "alloy-rpc-types", + "alloy-rpc-types-eth", + "alloy-rpc-types-trace", + "alloy-serde", "alloy-sol-types", "bcs", "borsh", @@ -1913,17 +1975,20 @@ dependencies = [ "itertools 0.13.0", "jsonrpsee", "lazy_static", - "rand 0.8.5", + "rand", "rayon", "reth-chainspec", "reth-db", "reth-errors", "reth-primitives", + "reth-primitives-traits", "reth-provider", + "reth-rpc", + "reth-rpc-eth-api", "reth-rpc-eth-types", "reth-rpc-server-types", - "reth-rpc-types", "reth-rpc-types-compat", + "reth-transaction-pool", "revm", "revm-inspectors", "schemars", @@ -1946,6 +2011,7 @@ dependencies = [ name = "citrea-fullnode" version = "0.5.0-rc.1" dependencies = [ + "alloy-primitives", "anyhow", "backoff", "borsh", @@ -1958,8 +2024,7 @@ dependencies = [ "metrics", "metrics-derive", "once_cell", - "rand 0.8.5", - "reth-primitives", + "rand", "rs_merkle", "serde", "serde_json", @@ -1976,7 +2041,7 @@ dependencies = [ "tempfile", "tokio", "tokio-util", - "tower", + "tower 0.4.13", "tracing", ] @@ -1984,6 +2049,7 @@ dependencies = [ name = "citrea-light-client-prover" version = "0.5.0-rc.1" dependencies = [ + "alloy-primitives", "anyhow", "async-trait", "bincode", @@ -1995,7 +2061,6 @@ dependencies = [ "metrics", "metrics-derive", "once_cell", - "reth-primitives", "sov-db", "sov-ledger-rpc", "sov-mock-da", @@ -2006,7 +2071,7 @@ dependencies = [ "tempfile", "tokio", "tokio-util", - "tower", + "tower 0.4.13", "tracing", ] @@ -2015,13 +2080,8 @@ name = "citrea-primitives" version = "0.5.0-rc.1" dependencies = [ "alloy-eips", - "anyhow", "brotli", - "reth-primitives", - "serde", "sov-rollup-interface", - "tokio", - "tracing", ] [[package]] @@ -2062,7 +2122,13 @@ dependencies = [ name = "citrea-sequencer" version = "0.5.0-rc.1" dependencies = [ + "alloy-eips", + "alloy-genesis", + "alloy-network", + "alloy-primitives", "alloy-rlp", + "alloy-rpc-types", + "alloy-rpc-types-eth", "alloy-sol-types", "anyhow", "async-trait", @@ -2084,10 +2150,12 @@ dependencies = [ "parking_lot", "reth-chainspec", "reth-db", + "reth-execution-types", "reth-primitives", "reth-provider", + "reth-rpc", + "reth-rpc-eth-api", "reth-rpc-eth-types", - "reth-rpc-types", "reth-rpc-types-compat", "reth-tasks", "reth-transaction-pool", @@ -2109,7 +2177,7 @@ dependencies = [ "tempfile", "tokio", "tokio-util", - "tower", + "tower 0.4.13", "tower-http", "tracing", "tracing-subscriber 0.3.18", @@ -2439,7 +2507,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0dc92fb57ca44df6db8059111ab3af99a63d5d0f8375d9972e319a379c6bab76" dependencies = [ "generic-array", - "rand_core 0.6.4", + "rand_core", "subtle", "zeroize", ] @@ -2454,20 +2522,6 @@ dependencies = [ "typenum", ] -[[package]] -name = "cuckoofilter" -version = "0.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b810a8449931679f64cd7eef1bbd0fa315801b6d5d9cdc1ace2804d6529eee18" -dependencies = [ - "byteorder", - "fnv", - "rand 0.7.3", - "serde", - "serde_bytes", - "serde_derive", -] - [[package]] name = "curve25519-dalek" version = "4.1.3" @@ -2530,19 +2584,6 @@ dependencies = [ "syn 2.0.87", ] -[[package]] -name = "dashmap" -version = "5.5.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "978747c1d849a7d2ee5e8adc0159961c48fb7e5db2f06af6723b80123bb53856" -dependencies = [ - "cfg-if", - "hashbrown 0.14.5", - "lock_api", - "once_cell", - "parking_lot_core", -] - [[package]] name = "dashmap" version = "6.1.0" @@ -2623,6 +2664,28 @@ dependencies = [ "syn 2.0.87", ] +[[package]] +name = "derive_more" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4a9b99b9cbbe49445b21764dc0625032a89b145a2642e67603e1c936f5458d05" +dependencies = [ + "derive_more-impl", +] + +[[package]] +name = "derive_more-impl" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cb7330aeadfbe296029522e6c40f315320aba36fc43a5b3632f3795348f3bd22" +dependencies = [ + "convert_case 0.6.0", + "proc-macro2", + "quote", + "syn 2.0.87", + "unicode-xid", +] + [[package]] name = "digest" version = "0.9.0" @@ -2705,7 +2768,7 @@ checksum = "9ac1e888d6830712d565b2f3a974be3200be9296bc1b03db8251a4cbf18a4a34" dependencies = [ "digest 0.10.7", "futures", - "rand 0.8.5", + "rand", "reqwest", "thiserror", "tokio", @@ -2733,12 +2796,6 @@ version = "1.0.17" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0d6ef0072f8a535281e4876be788938b528e9a1d43900b82c2569af7da799125" -[[package]] -name = "dyn_size_of" -version = "0.4.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fdbac012a81cc46ca554aceae23c52f4f55adb343f2f32ca99bb4e5ef868cee2" - [[package]] name = "ecdsa" version = "0.16.9" @@ -2772,7 +2829,7 @@ checksum = "4a3daa8e81a3963a60642bcc1f90a670680bd4a77535faa384e9d1c79d620871" dependencies = [ "curve25519-dalek", "ed25519", - "rand_core 0.6.4", + "rand_core", "serde", "sha2", "subtle", @@ -2804,7 +2861,7 @@ dependencies = [ "generic-array", "group", "pkcs8", - "rand_core 0.6.4", + "rand_core", "sec1", "subtle", "zeroize", @@ -2827,7 +2884,7 @@ dependencies = [ "bytes", "hex", "log", - "rand 0.8.5", + "rand", "secp256k1", "sha3", "zeroize", @@ -2844,26 +2901,6 @@ dependencies = [ "syn 2.0.87", ] -[[package]] -name = "equator" -version = "0.2.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c35da53b5a021d2484a7cc49b2ac7f2d840f8236a286f84202369bd338d761ea" -dependencies = [ - "equator-macro", -] - -[[package]] -name = "equator-macro" -version = "0.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3bf679796c0322556351f287a51b49e48f7c4986e727b5dd78c972d30e2e16cc" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.87", -] - [[package]] name = "equivalent" version = "1.0.1" @@ -2894,6 +2931,10 @@ dependencies = [ name = "ethereum-rpc" version = "0.5.0-rc.1" dependencies = [ + "alloy-network", + "alloy-primitives", + "alloy-rpc-types", + "alloy-rpc-types-trace", "anyhow", "borsh", "citrea-evm", @@ -2903,8 +2944,8 @@ dependencies = [ "jsonrpsee", "parking_lot", "reth-primitives", + "reth-rpc-eth-api", "reth-rpc-eth-types", - "reth-rpc-types", "reth-rpc-types-compat", "rustc_version_runtime", "schnellru", @@ -2966,7 +3007,7 @@ dependencies = [ "bitvec", "byteorder", "ff_derive", - "rand_core 0.6.4", + "rand_core", "subtle", ] @@ -2992,6 +3033,18 @@ version = "0.2.9" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "28dea519a9695b9977216879a3ebfddf92f1c08c05d984f8996aecd6ecdc811d" +[[package]] +name = "filetime" +version = "0.2.25" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "35c0522e981e68cbfa8c3f978441a5f34b30b96e146b33cd3359176b50fe8586" +dependencies = [ + "cfg-if", + "libc", + "libredox", + "windows-sys 0.59.0", +] + [[package]] name = "fixed-hash" version = "0.8.0" @@ -2999,7 +3052,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "835c052cb0c08c1acf6ffd71c022172e18723949c8282f2b9f27efbc51e64534" dependencies = [ "byteorder", - "rand 0.8.5", + "rand", "rustc-hex", "static_assertions", ] @@ -3068,6 +3121,15 @@ version = "1.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "42703706b716c37f96a77aea830392ad231f44c9e9a67872fa5548707e11b11c" +[[package]] +name = "fsevent-sys" +version = "4.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "76ee7a02da4d231650c7cea31349b889be2f45ddb3ef3032d2ec8185f6313fd2" +dependencies = [ + "libc", +] + [[package]] name = "funty" version = "2.0.0" @@ -3190,17 +3252,6 @@ dependencies = [ "zeroize", ] -[[package]] -name = "getrandom" -version = "0.1.16" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8fc3cb4d91f53b50155bdcfd23f6a4c39ae1969c2ae85982b135750cccaf5fce" -dependencies = [ - "cfg-if", - "libc", - "wasi 0.9.0+wasi-snapshot-preview1", -] - [[package]] name = "getrandom" version = "0.2.15" @@ -3210,7 +3261,7 @@ dependencies = [ "cfg-if", "js-sys", "libc", - "wasi 0.11.0+wasi-snapshot-preview1", + "wasi", "wasm-bindgen", ] @@ -3289,7 +3340,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f0f9ef7462f7c099f518d754361858f86d8a07af53ba9af0fe635bbccb151a63" dependencies = [ "ff", - "rand_core 0.6.4", + "rand_core", "subtle", ] @@ -3344,8 +3395,6 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e5274423e17b7c9fc20b6e7e208532f9b19825d82dfd615708b70edd83df41f1" dependencies = [ "ahash", - "allocator-api2", - "serde", ] [[package]] @@ -3357,6 +3406,7 @@ dependencies = [ "allocator-api2", "equivalent", "foldhash", + "serde", ] [[package]] @@ -3502,6 +3552,22 @@ version = "1.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "df3b46402a9d5adb4c86a0cf463f42e19994e3ee891101b1841f30a545cb49a9" +[[package]] +name = "humantime" +version = "2.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9a3a5bfb195931eeb336b2a7b4d761daec841b97f947d34394601737a7bba5e4" + +[[package]] +name = "humantime-serde" +version = "1.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "57a3db5ea5923d99402c94e9feb261dc5ee9b4efa158b0315f788cf549cc200c" +dependencies = [ + "humantime", + "serde", +] + [[package]] name = "hyper" version = "1.5.0" @@ -3603,7 +3669,7 @@ dependencies = [ "iana-time-zone-haiku", "js-sys", "wasm-bindgen", - "windows-core", + "windows-core 0.52.0", ] [[package]] @@ -3841,6 +3907,7 @@ version = "2.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "707907fe3c25f5424cce2cb7e1cbcafee6bdbe735ca90ef77c29e84591e5b9da" dependencies = [ + "arbitrary", "equivalent", "hashbrown 0.15.1", "serde", @@ -3856,6 +3923,26 @@ dependencies = [ "serde", ] +[[package]] +name = "inotify" +version = "0.9.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f8069d3ec154eb856955c1c0fbffefbf5f3c40a104ec912d4797314c1801abff" +dependencies = [ + "bitflags 1.3.2", + "inotify-sys", + "libc", +] + +[[package]] +name = "inotify-sys" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e05c02b5e89bff3b946cedeca278abc628fe811e604f027c45a8aa3cf793d0eb" +dependencies = [ + "libc", +] + [[package]] name = "instant" version = "0.1.13" @@ -4085,7 +4172,7 @@ dependencies = [ "jsonrpsee-types", "parking_lot", "pin-project", - "rand 0.8.5", + "rand", "rustc-hash 2.0.0", "serde", "serde_json", @@ -4116,7 +4203,7 @@ dependencies = [ "serde_json", "thiserror", "tokio", - "tower", + "tower 0.4.13", "tracing", "url", ] @@ -4157,7 +4244,7 @@ dependencies = [ "tokio", "tokio-stream", "tokio-util", - "tower", + "tower 0.4.13", "tracing", ] @@ -4245,18 +4332,23 @@ dependencies = [ ] [[package]] -name = "kzg-rs" -version = "0.1.0" +name = "kqueue" +version = "1.0.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cd9920cd4460ce3cbca19c62f3bb9a9611562478a4dc9d2c556f4a7d049c5b6b" +checksum = "7447f1ca1b7b563588a205fe93dea8df60fd981423a768bc1c0ded35ed147d0c" dependencies = [ - "bls12_381", - "glob", - "hex", - "once_cell", - "serde", - "serde_derive", - "serde_yaml", + "kqueue-sys", + "libc", +] + +[[package]] +name = "kqueue-sys" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ed9625ffda8729b85e45cf04090035ac368927b8cebc34898e7c120f52e4838b" +dependencies = [ + "bitflags 1.3.2", + "libc", ] [[package]] @@ -4327,6 +4419,7 @@ checksum = "c0ff37bd590ca25063e35af745c343cb7a0271906fb7b37e4813e8f79f00268d" dependencies = [ "bitflags 2.6.0", "libc", + "redox_syscall", ] [[package]] @@ -4335,7 +4428,7 @@ version = "0.16.0+8.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ce3d60bc059831dc1c83903fb45c103f75db65c5a7bf22272764d9cc683e348c" dependencies = [ - "bindgen", + "bindgen 0.69.5", "bzip2-sys", "cc", "glob", @@ -4597,6 +4690,18 @@ dependencies = [ "adler2", ] +[[package]] +name = "mio" +version = "0.8.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a4a650543ca06a924e8b371db273b2756685faae30f8487da1b56505a8f78b0c" +dependencies = [ + "libc", + "log", + "wasi", + "windows-sys 0.48.0", +] + [[package]] name = "mio" version = "1.0.2" @@ -4605,7 +4710,7 @@ checksum = "80e04d1dcff3aae0704555fe5fee3bcfaf3d1fdf8a7e521d5b9d2b42acb52cec" dependencies = [ "hermit-abi 0.3.9", "libc", - "wasi 0.11.0+wasi-snapshot-preview1", + "wasi", "windows-sys 0.52.0", ] @@ -4671,6 +4776,24 @@ dependencies = [ "minimal-lexical", ] +[[package]] +name = "notify" +version = "6.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6205bd8bb1e454ad2e27422015fb5e4f2bcc7e08fa8f27058670d208324a4d2d" +dependencies = [ + "bitflags 2.6.0", + "filetime", + "fsevent-sys", + "inotify", + "kqueue", + "libc", + "log", + "mio 0.8.11", + "walkdir", + "windows-sys 0.48.0", +] + [[package]] name = "ntapi" version = "0.4.1" @@ -4885,6 +5008,69 @@ version = "11.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b410bbe7e14ab526a0e86877eb47c6996a2bd7746f027ba551028c925390e4e9" +[[package]] +name = "op-alloy-consensus" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7ea7162170c6f3cad8f67f4dd7108e3f78349fd553da5b8bebff1e7ef8f38896" +dependencies = [ + "alloy-consensus", + "alloy-eips", + "alloy-primitives", + "alloy-rlp", + "alloy-serde", + "arbitrary", + "derive_more 1.0.0", + "serde", + "serde_with", + "spin", +] + +[[package]] +name = "op-alloy-genesis" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9f3d31dfbbd8dd898c7512f8ce7d30103980485416f668566100b0ed0994b958" +dependencies = [ + "alloy-consensus", + "alloy-eips", + "alloy-primitives", + "alloy-sol-types", + "serde", + "serde_repr", +] + +[[package]] +name = "op-alloy-protocol" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "310873e4fbfc41986716c4fb6000a8b49d025d932d2c261af58271c434b05288" +dependencies = [ + "alloy-consensus", + "alloy-eips", + "alloy-primitives", + "alloy-rlp", + "alloy-serde", + "derive_more 1.0.0", + "op-alloy-consensus", + "op-alloy-genesis", + "serde", +] + +[[package]] +name = "op-alloy-rpc-types-engine" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "349e7b420f45d1a00216ec4c65fcf3f0057a841bc39732c405c85ae782b94121" +dependencies = [ + "alloy-primitives", + "alloy-rpc-types-engine", + "alloy-serde", + "derive_more 1.0.0", + "op-alloy-protocol", + "serde", +] + [[package]] name = "openssl-probe" version = "0.1.5" @@ -4922,15 +5108,6 @@ dependencies = [ "winapi", ] -[[package]] -name = "pairing" -version = "0.23.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "81fec4625e73cf41ef4bb6846cafa6d44736525f442ba45e407c4a000a13996f" -dependencies = [ - "group", -] - [[package]] name = "parity-scale-codec" version = "3.6.12" @@ -5014,20 +5191,6 @@ dependencies = [ "ucd-trie", ] -[[package]] -name = "ph" -version = "0.8.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b2fbaf8da280599aae4047ea0659a1e79cf61739bce5bdc50ca88dc7e6357060" -dependencies = [ - "aligned-vec", - "binout", - "bitm", - "dyn_size_of", - "rayon", - "seedable_hash", -] - [[package]] name = "pin-project" version = "1.1.7" @@ -5188,6 +5351,28 @@ dependencies = [ "version_check", ] +[[package]] +name = "proc-macro-error-attr2" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "96de42df36bb9bba5542fe9f1a054b8cc87e172759a1868aa05c1f3acc89dfc5" +dependencies = [ + "proc-macro2", + "quote", +] + +[[package]] +name = "proc-macro-error2" +version = "2.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "11ec05c52be0a07b08061f7dd003e7d7092e0472bc731b4af7bb1ef876109802" +dependencies = [ + "proc-macro-error-attr2", + "proc-macro2", + "quote", + "syn 2.0.87", +] + [[package]] name = "proc-macro2" version = "1.0.89" @@ -5208,8 +5393,8 @@ dependencies = [ "bitflags 2.6.0", "lazy_static", "num-traits", - "rand 0.8.5", - "rand_chacha 0.3.1", + "rand", + "rand_chacha", "rand_xorshift", "regex-syntax 0.8.5", "rusty-fork", @@ -5217,6 +5402,17 @@ dependencies = [ "unarray", ] +[[package]] +name = "proptest-derive" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4ee1c9ac207483d5e7db4940700de86a9aae46ef90c48b57f99fe7edb8345e49" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.87", +] + [[package]] name = "prost" version = "0.12.6" @@ -5278,7 +5474,7 @@ dependencies = [ "jsonrpsee", "num_cpus", "parking_lot", - "rand 0.8.5", + "rand", "rayon", "rs_merkle", "serde", @@ -5290,7 +5486,7 @@ dependencies = [ "tempfile", "tokio", "tokio-util", - "tower", + "tower 0.4.13", "tracing", ] @@ -5318,7 +5514,7 @@ dependencies = [ "libc", "once_cell", "raw-cpuid", - "wasi 0.11.0+wasi-snapshot-preview1", + "wasi", "web-sys", "winapi", ] @@ -5354,7 +5550,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fadfaed2cd7f389d0161bb73eeb07b7b78f8691047a6f3e73caaeae55310a4a6" dependencies = [ "bytes", - "rand 0.8.5", + "rand", "ring", "rustc-hash 2.0.0", "rustls", @@ -5403,19 +5599,6 @@ dependencies = [ "nibble_vec", ] -[[package]] -name = "rand" -version = "0.7.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6a6b1679d49b24bbfe0c803429aa1874472f50d9b363131f0e89fc356b544d03" -dependencies = [ - "getrandom 0.1.16", - "libc", - "rand_chacha 0.2.2", - "rand_core 0.5.1", - "rand_hc", -] - [[package]] name = "rand" version = "0.8.5" @@ -5423,18 +5606,9 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404" dependencies = [ "libc", - "rand_chacha 0.3.1", - "rand_core 0.6.4", -] - -[[package]] -name = "rand_chacha" -version = "0.2.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f4c8ed856279c9737206bf725bf36935d8666ead7aa69b52be55af369d193402" -dependencies = [ - "ppv-lite86", - "rand_core 0.5.1", + "rand_chacha", + "rand_core", + "serde", ] [[package]] @@ -5444,16 +5618,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88" dependencies = [ "ppv-lite86", - "rand_core 0.6.4", -] - -[[package]] -name = "rand_core" -version = "0.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "90bde5296fc891b0cef12a6d03ddccc162ce7b2aff54160af9338f8d40df6d19" -dependencies = [ - "getrandom 0.1.16", + "rand_core", ] [[package]] @@ -5462,16 +5627,7 @@ version = "0.6.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c" dependencies = [ - "getrandom 0.2.15", -] - -[[package]] -name = "rand_hc" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ca3129af7b92a17112d59ad498c6f81eaf463253766b90396d39ea7a39d6613c" -dependencies = [ - "rand_core 0.5.1", + "getrandom", ] [[package]] @@ -5480,7 +5636,7 @@ version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d25bf25ec5ae4a3f1b92f929810509a2f53d7dca2f50b794ff57e3face536c8f" dependencies = [ - "rand_core 0.6.4", + "rand_core", ] [[package]] @@ -5533,7 +5689,7 @@ version = "0.4.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ba009ff324d1fc1b900bd1fdb31564febe58a8ccc8a6fdbb93b543d33b13ca43" dependencies = [ - "getrandom 0.2.15", + "getrandom", "libredox", "thiserror", ] @@ -5614,7 +5770,7 @@ dependencies = [ "serde", "serde_json", "serde_urlencoded", - "sync_wrapper", + "sync_wrapper 1.0.1", "tokio", "tokio-rustls", "tokio-util", @@ -5628,11 +5784,46 @@ dependencies = [ "windows-registry", ] +[[package]] +name = "reth-beacon-consensus" +version = "1.1.0" +source = "git+https://github.com/paradigmxyz/reth?rev=1ba631ba9581973e7c6cadeea92cfe1802aceb4a#1ba631ba9581973e7c6cadeea92cfe1802aceb4a" +dependencies = [ + "alloy-primitives", + "alloy-rpc-types-engine", + "futures", + "itertools 0.13.0", + "metrics", + "reth-blockchain-tree-api", + "reth-engine-primitives", + "reth-errors", + "reth-ethereum-consensus", + "reth-metrics", + "reth-network-p2p", + "reth-node-types", + "reth-payload-builder", + "reth-payload-primitives", + "reth-payload-validator", + "reth-primitives", + "reth-provider", + "reth-prune", + "reth-stages-api", + "reth-static-file", + "reth-tasks", + "reth-tokio-util", + "schnellru", + "thiserror", + "tokio", + "tokio-stream", + "tracing", +] + [[package]] name = "reth-blockchain-tree-api" -version = "1.0.4" -source = "git+https://github.com/paradigmxyz/reth?rev=a206eb3690e5a51d3c797fed2a6ed722e36863eb#a206eb3690e5a51d3c797fed2a6ed722e36863eb" +version = "1.1.0" +source = "git+https://github.com/paradigmxyz/reth?rev=1ba631ba9581973e7c6cadeea92cfe1802aceb4a#1ba631ba9581973e7c6cadeea92cfe1802aceb4a" dependencies = [ + "alloy-primitives", "reth-consensus", "reth-execution-errors", "reth-primitives", @@ -5642,11 +5833,13 @@ dependencies = [ [[package]] name = "reth-chain-state" -version = "1.0.4" -source = "git+https://github.com/paradigmxyz/reth?rev=a206eb3690e5a51d3c797fed2a6ed722e36863eb#a206eb3690e5a51d3c797fed2a6ed722e36863eb" +version = "1.1.0" +source = "git+https://github.com/paradigmxyz/reth?rev=1ba631ba9581973e7c6cadeea92cfe1802aceb4a#1ba631ba9581973e7c6cadeea92cfe1802aceb4a" dependencies = [ + "alloy-eips", + "alloy-primitives", "auto_impl", - "derive_more", + "derive_more 1.0.0", "metrics", "parking_lot", "pin-project", @@ -5664,8 +5857,8 @@ dependencies = [ [[package]] name = "reth-chainspec" -version = "1.0.4" -source = "git+https://github.com/paradigmxyz/reth?rev=a206eb3690e5a51d3c797fed2a6ed722e36863eb#a206eb3690e5a51d3c797fed2a6ed722e36863eb" +version = "1.1.0" +source = "git+https://github.com/paradigmxyz/reth?rev=1ba631ba9581973e7c6cadeea92cfe1802aceb4a#1ba631ba9581973e7c6cadeea92cfe1802aceb4a" dependencies = [ "alloy-chains", "alloy-eips", @@ -5673,7 +5866,7 @@ dependencies = [ "alloy-primitives", "alloy-trie", "auto_impl", - "derive_more", + "derive_more 1.0.0", "once_cell", "reth-ethereum-forks", "reth-network-peers", @@ -5684,8 +5877,8 @@ dependencies = [ [[package]] name = "reth-codecs" -version = "1.0.4" -source = "git+https://github.com/paradigmxyz/reth?rev=a206eb3690e5a51d3c797fed2a6ed722e36863eb#a206eb3690e5a51d3c797fed2a6ed722e36863eb" +version = "1.1.0" +source = "git+https://github.com/paradigmxyz/reth?rev=1ba631ba9581973e7c6cadeea92cfe1802aceb4a#1ba631ba9581973e7c6cadeea92cfe1802aceb4a" dependencies = [ "alloy-consensus", "alloy-eips", @@ -5695,13 +5888,12 @@ dependencies = [ "bytes", "modular-bitfield", "reth-codecs-derive", - "serde", ] [[package]] name = "reth-codecs-derive" -version = "1.0.4" -source = "git+https://github.com/paradigmxyz/reth?rev=a206eb3690e5a51d3c797fed2a6ed722e36863eb#a206eb3690e5a51d3c797fed2a6ed722e36863eb" +version = "1.1.0" +source = "git+https://github.com/paradigmxyz/reth?rev=1ba631ba9581973e7c6cadeea92cfe1802aceb4a#1ba631ba9581973e7c6cadeea92cfe1802aceb4a" dependencies = [ "convert_case 0.6.0", "proc-macro2", @@ -5710,32 +5902,50 @@ dependencies = [ ] [[package]] -name = "reth-consensus" -version = "1.0.4" -source = "git+https://github.com/paradigmxyz/reth?rev=a206eb3690e5a51d3c797fed2a6ed722e36863eb#a206eb3690e5a51d3c797fed2a6ed722e36863eb" +name = "reth-config" +version = "1.1.0" +source = "git+https://github.com/paradigmxyz/reth?rev=1ba631ba9581973e7c6cadeea92cfe1802aceb4a#1ba631ba9581973e7c6cadeea92cfe1802aceb4a" dependencies = [ - "auto_impl", - "reth-primitives", - "thiserror-no-std", -] - -[[package]] -name = "reth-consensus-common" -version = "1.0.4" -source = "git+https://github.com/paradigmxyz/reth?rev=a206eb3690e5a51d3c797fed2a6ed722e36863eb#a206eb3690e5a51d3c797fed2a6ed722e36863eb" + "eyre", + "humantime-serde", + "reth-network-types", + "reth-prune-types", + "reth-stages-types", + "serde", + "toml", +] + +[[package]] +name = "reth-consensus" +version = "1.1.0" +source = "git+https://github.com/paradigmxyz/reth?rev=1ba631ba9581973e7c6cadeea92cfe1802aceb4a#1ba631ba9581973e7c6cadeea92cfe1802aceb4a" dependencies = [ + "alloy-primitives", + "auto_impl", + "derive_more 1.0.0", + "reth-primitives", +] + +[[package]] +name = "reth-consensus-common" +version = "1.1.0" +source = "git+https://github.com/paradigmxyz/reth?rev=1ba631ba9581973e7c6cadeea92cfe1802aceb4a#1ba631ba9581973e7c6cadeea92cfe1802aceb4a" +dependencies = [ + "alloy-primitives", "reth-chainspec", "reth-consensus", "reth-primitives", + "revm-primitives", ] [[package]] name = "reth-db" -version = "1.0.4" -source = "git+https://github.com/paradigmxyz/reth?rev=a206eb3690e5a51d3c797fed2a6ed722e36863eb#a206eb3690e5a51d3c797fed2a6ed722e36863eb" +version = "1.1.0" +source = "git+https://github.com/paradigmxyz/reth?rev=1ba631ba9581973e7c6cadeea92cfe1802aceb4a#1ba631ba9581973e7c6cadeea92cfe1802aceb4a" dependencies = [ + "alloy-primitives", "bytes", - "derive_more", + "derive_more 1.0.0", "eyre", "metrics", "page_size", @@ -5761,15 +5971,18 @@ dependencies = [ [[package]] name = "reth-db-api" -version = "1.0.4" -source = "git+https://github.com/paradigmxyz/reth?rev=a206eb3690e5a51d3c797fed2a6ed722e36863eb#a206eb3690e5a51d3c797fed2a6ed722e36863eb" +version = "1.1.0" +source = "git+https://github.com/paradigmxyz/reth?rev=1ba631ba9581973e7c6cadeea92cfe1802aceb4a#1ba631ba9581973e7c6cadeea92cfe1802aceb4a" dependencies = [ + "alloy-genesis", + "alloy-primitives", "bytes", - "derive_more", + "derive_more 1.0.0", "metrics", "modular-bitfield", "parity-scale-codec", "reth-codecs", + "reth-db-models", "reth-primitives", "reth-primitives-traits", "reth-prune-types", @@ -5779,10 +5992,36 @@ dependencies = [ "serde", ] +[[package]] +name = "reth-db-models" +version = "1.1.0" +source = "git+https://github.com/paradigmxyz/reth?rev=1ba631ba9581973e7c6cadeea92cfe1802aceb4a#1ba631ba9581973e7c6cadeea92cfe1802aceb4a" +dependencies = [ + "alloy-primitives", + "bytes", + "modular-bitfield", + "reth-codecs", + "reth-primitives", + "serde", +] + +[[package]] +name = "reth-engine-primitives" +version = "1.1.0" +source = "git+https://github.com/paradigmxyz/reth?rev=1ba631ba9581973e7c6cadeea92cfe1802aceb4a#1ba631ba9581973e7c6cadeea92cfe1802aceb4a" +dependencies = [ + "alloy-primitives", + "reth-execution-types", + "reth-payload-primitives", + "reth-primitives", + "reth-trie", + "serde", +] + [[package]] name = "reth-errors" -version = "1.0.4" -source = "git+https://github.com/paradigmxyz/reth?rev=a206eb3690e5a51d3c797fed2a6ed722e36863eb#a206eb3690e5a51d3c797fed2a6ed722e36863eb" +version = "1.1.0" +source = "git+https://github.com/paradigmxyz/reth?rev=1ba631ba9581973e7c6cadeea92cfe1802aceb4a#1ba631ba9581973e7c6cadeea92cfe1802aceb4a" dependencies = [ "reth-blockchain-tree-api", "reth-consensus", @@ -5794,24 +6033,57 @@ dependencies = [ [[package]] name = "reth-eth-wire-types" -version = "1.0.4" -source = "git+https://github.com/paradigmxyz/reth?rev=a206eb3690e5a51d3c797fed2a6ed722e36863eb#a206eb3690e5a51d3c797fed2a6ed722e36863eb" +version = "1.1.0" +source = "git+https://github.com/paradigmxyz/reth?rev=1ba631ba9581973e7c6cadeea92cfe1802aceb4a#1ba631ba9581973e7c6cadeea92cfe1802aceb4a" dependencies = [ "alloy-chains", - "alloy-genesis", + "alloy-eips", + "alloy-primitives", "alloy-rlp", "bytes", - "derive_more", + "derive_more 1.0.0", "reth-chainspec", "reth-codecs-derive", "reth-primitives", "thiserror", ] +[[package]] +name = "reth-ethereum-consensus" +version = "1.1.0" +source = "git+https://github.com/paradigmxyz/reth?rev=1ba631ba9581973e7c6cadeea92cfe1802aceb4a#1ba631ba9581973e7c6cadeea92cfe1802aceb4a" +dependencies = [ + "alloy-primitives", + "reth-chainspec", + "reth-consensus", + "reth-consensus-common", + "reth-primitives", + "tracing", +] + +[[package]] +name = "reth-ethereum-engine-primitives" +version = "1.1.0" +source = "git+https://github.com/paradigmxyz/reth?rev=1ba631ba9581973e7c6cadeea92cfe1802aceb4a#1ba631ba9581973e7c6cadeea92cfe1802aceb4a" +dependencies = [ + "alloy-eips", + "alloy-primitives", + "alloy-rlp", + "alloy-rpc-types-engine", + "reth-chain-state", + "reth-chainspec", + "reth-engine-primitives", + "reth-payload-primitives", + "reth-primitives", + "reth-rpc-types-compat", + "serde", + "sha2", +] + [[package]] name = "reth-ethereum-forks" -version = "1.0.4" -source = "git+https://github.com/paradigmxyz/reth?rev=a206eb3690e5a51d3c797fed2a6ed722e36863eb#a206eb3690e5a51d3c797fed2a6ed722e36863eb" +version = "1.1.0" +source = "git+https://github.com/paradigmxyz/reth?rev=1ba631ba9581973e7c6cadeea92cfe1802aceb4a#1ba631ba9581973e7c6cadeea92cfe1802aceb4a" dependencies = [ "alloy-chains", "alloy-primitives", @@ -5827,16 +6099,20 @@ dependencies = [ [[package]] name = "reth-evm" -version = "1.0.4" -source = "git+https://github.com/paradigmxyz/reth?rev=a206eb3690e5a51d3c797fed2a6ed722e36863eb#a206eb3690e5a51d3c797fed2a6ed722e36863eb" +version = "1.1.0" +source = "git+https://github.com/paradigmxyz/reth?rev=1ba631ba9581973e7c6cadeea92cfe1802aceb4a#1ba631ba9581973e7c6cadeea92cfe1802aceb4a" dependencies = [ "alloy-eips", + "alloy-primitives", "auto_impl", "futures-util", + "metrics", "reth-chainspec", "reth-execution-errors", "reth-execution-types", + "reth-metrics", "reth-primitives", + "reth-primitives-traits", "reth-prune-types", "reth-storage-errors", "revm", @@ -5845,35 +6121,48 @@ dependencies = [ [[package]] name = "reth-execution-errors" -version = "1.0.4" -source = "git+https://github.com/paradigmxyz/reth?rev=a206eb3690e5a51d3c797fed2a6ed722e36863eb#a206eb3690e5a51d3c797fed2a6ed722e36863eb" +version = "1.1.0" +source = "git+https://github.com/paradigmxyz/reth?rev=1ba631ba9581973e7c6cadeea92cfe1802aceb4a#1ba631ba9581973e7c6cadeea92cfe1802aceb4a" dependencies = [ "alloy-eips", "alloy-primitives", "alloy-rlp", + "derive_more 1.0.0", "nybbles", "reth-consensus", "reth-prune-types", "reth-storage-errors", "revm-primitives", - "thiserror-no-std", ] [[package]] name = "reth-execution-types" -version = "1.0.4" -source = "git+https://github.com/paradigmxyz/reth?rev=a206eb3690e5a51d3c797fed2a6ed722e36863eb#a206eb3690e5a51d3c797fed2a6ed722e36863eb" +version = "1.1.0" +source = "git+https://github.com/paradigmxyz/reth?rev=1ba631ba9581973e7c6cadeea92cfe1802aceb4a#1ba631ba9581973e7c6cadeea92cfe1802aceb4a" dependencies = [ + "alloy-eips", + "alloy-primitives", "reth-execution-errors", "reth-primitives", "reth-trie", "revm", ] +[[package]] +name = "reth-exex-types" +version = "1.1.0" +source = "git+https://github.com/paradigmxyz/reth?rev=1ba631ba9581973e7c6cadeea92cfe1802aceb4a#1ba631ba9581973e7c6cadeea92cfe1802aceb4a" +dependencies = [ + "alloy-eips", + "alloy-primitives", + "reth-chain-state", + "reth-execution-types", +] + [[package]] name = "reth-fs-util" -version = "1.0.4" -source = "git+https://github.com/paradigmxyz/reth?rev=a206eb3690e5a51d3c797fed2a6ed722e36863eb#a206eb3690e5a51d3c797fed2a6ed722e36863eb" +version = "1.1.0" +source = "git+https://github.com/paradigmxyz/reth?rev=1ba631ba9581973e7c6cadeea92cfe1802aceb4a#1ba631ba9581973e7c6cadeea92cfe1802aceb4a" dependencies = [ "serde", "serde_json", @@ -5882,67 +6171,56 @@ dependencies = [ [[package]] name = "reth-libmdbx" -version = "1.0.4" -source = "git+https://github.com/paradigmxyz/reth?rev=a206eb3690e5a51d3c797fed2a6ed722e36863eb#a206eb3690e5a51d3c797fed2a6ed722e36863eb" +version = "1.1.0" +source = "git+https://github.com/paradigmxyz/reth?rev=1ba631ba9581973e7c6cadeea92cfe1802aceb4a#1ba631ba9581973e7c6cadeea92cfe1802aceb4a" dependencies = [ "bitflags 2.6.0", "byteorder", - "dashmap 6.1.0", - "derive_more", + "dashmap", + "derive_more 1.0.0", "indexmap 2.6.0", "parking_lot", "reth-mdbx-sys", + "smallvec", "thiserror", "tracing", ] [[package]] name = "reth-mdbx-sys" -version = "1.0.4" -source = "git+https://github.com/paradigmxyz/reth?rev=a206eb3690e5a51d3c797fed2a6ed722e36863eb#a206eb3690e5a51d3c797fed2a6ed722e36863eb" +version = "1.1.0" +source = "git+https://github.com/paradigmxyz/reth?rev=1ba631ba9581973e7c6cadeea92cfe1802aceb4a#1ba631ba9581973e7c6cadeea92cfe1802aceb4a" dependencies = [ - "bindgen", + "bindgen 0.70.1", "cc", ] [[package]] name = "reth-metrics" -version = "1.0.4" -source = "git+https://github.com/paradigmxyz/reth?rev=a206eb3690e5a51d3c797fed2a6ed722e36863eb#a206eb3690e5a51d3c797fed2a6ed722e36863eb" +version = "1.1.0" +source = "git+https://github.com/paradigmxyz/reth?rev=1ba631ba9581973e7c6cadeea92cfe1802aceb4a#1ba631ba9581973e7c6cadeea92cfe1802aceb4a" dependencies = [ "metrics", - "reth-metrics-derive", -] - -[[package]] -name = "reth-metrics-derive" -version = "1.0.4" -source = "git+https://github.com/paradigmxyz/reth?rev=a206eb3690e5a51d3c797fed2a6ed722e36863eb#a206eb3690e5a51d3c797fed2a6ed722e36863eb" -dependencies = [ - "once_cell", - "proc-macro2", - "quote", - "regex", - "syn 2.0.87", + "metrics-derive", ] [[package]] name = "reth-net-banlist" -version = "1.0.4" -source = "git+https://github.com/paradigmxyz/reth?rev=a206eb3690e5a51d3c797fed2a6ed722e36863eb#a206eb3690e5a51d3c797fed2a6ed722e36863eb" +version = "1.1.0" +source = "git+https://github.com/paradigmxyz/reth?rev=1ba631ba9581973e7c6cadeea92cfe1802aceb4a#1ba631ba9581973e7c6cadeea92cfe1802aceb4a" dependencies = [ "alloy-primitives", ] [[package]] name = "reth-network-api" -version = "1.0.4" -source = "git+https://github.com/paradigmxyz/reth?rev=a206eb3690e5a51d3c797fed2a6ed722e36863eb#a206eb3690e5a51d3c797fed2a6ed722e36863eb" +version = "1.1.0" +source = "git+https://github.com/paradigmxyz/reth?rev=1ba631ba9581973e7c6cadeea92cfe1802aceb4a#1ba631ba9581973e7c6cadeea92cfe1802aceb4a" dependencies = [ "alloy-primitives", "alloy-rpc-types-admin", "auto_impl", - "derive_more", + "derive_more 1.0.0", "enr", "futures", "reth-eth-wire-types", @@ -5959,29 +6237,33 @@ dependencies = [ [[package]] name = "reth-network-p2p" -version = "1.0.4" -source = "git+https://github.com/paradigmxyz/reth?rev=a206eb3690e5a51d3c797fed2a6ed722e36863eb#a206eb3690e5a51d3c797fed2a6ed722e36863eb" +version = "1.1.0" +source = "git+https://github.com/paradigmxyz/reth?rev=1ba631ba9581973e7c6cadeea92cfe1802aceb4a#1ba631ba9581973e7c6cadeea92cfe1802aceb4a" dependencies = [ + "alloy-eips", + "alloy-primitives", "auto_impl", + "derive_more 1.0.0", "futures", "reth-consensus", "reth-eth-wire-types", "reth-network-peers", + "reth-network-types", "reth-primitives", "reth-storage-errors", - "thiserror", "tokio", "tracing", ] [[package]] name = "reth-network-peers" -version = "1.0.4" -source = "git+https://github.com/paradigmxyz/reth?rev=a206eb3690e5a51d3c797fed2a6ed722e36863eb#a206eb3690e5a51d3c797fed2a6ed722e36863eb" +version = "1.1.0" +source = "git+https://github.com/paradigmxyz/reth?rev=1ba631ba9581973e7c6cadeea92cfe1802aceb4a#1ba631ba9581973e7c6cadeea92cfe1802aceb4a" dependencies = [ "alloy-primitives", "alloy-rlp", "enr", + "secp256k1", "serde_with", "thiserror", "url", @@ -5989,52 +6271,132 @@ dependencies = [ [[package]] name = "reth-network-types" -version = "1.0.4" -source = "git+https://github.com/paradigmxyz/reth?rev=a206eb3690e5a51d3c797fed2a6ed722e36863eb#a206eb3690e5a51d3c797fed2a6ed722e36863eb" +version = "1.1.0" +source = "git+https://github.com/paradigmxyz/reth?rev=1ba631ba9581973e7c6cadeea92cfe1802aceb4a#1ba631ba9581973e7c6cadeea92cfe1802aceb4a" dependencies = [ + "humantime-serde", "reth-ethereum-forks", "reth-net-banlist", - "reth-network-p2p", "reth-network-peers", + "serde", "serde_json", "tracing", ] [[package]] name = "reth-nippy-jar" -version = "1.0.4" -source = "git+https://github.com/paradigmxyz/reth?rev=a206eb3690e5a51d3c797fed2a6ed722e36863eb#a206eb3690e5a51d3c797fed2a6ed722e36863eb" +version = "1.1.0" +source = "git+https://github.com/paradigmxyz/reth?rev=1ba631ba9581973e7c6cadeea92cfe1802aceb4a#1ba631ba9581973e7c6cadeea92cfe1802aceb4a" dependencies = [ "anyhow", "bincode", - "cuckoofilter", - "derive_more", + "derive_more 1.0.0", "lz4_flex", "memmap2", - "ph", "reth-fs-util", "serde", - "sucds", "thiserror", "tracing", "zstd", ] +[[package]] +name = "reth-node-api" +version = "1.1.0" +source = "git+https://github.com/paradigmxyz/reth?rev=1ba631ba9581973e7c6cadeea92cfe1802aceb4a#1ba631ba9581973e7c6cadeea92cfe1802aceb4a" +dependencies = [ + "reth-engine-primitives", + "reth-evm", + "reth-network-api", + "reth-node-types", + "reth-payload-builder", + "reth-payload-primitives", + "reth-primitives", + "reth-provider", + "reth-rpc-eth-api", + "reth-tasks", + "reth-transaction-pool", +] + +[[package]] +name = "reth-node-types" +version = "1.1.0" +source = "git+https://github.com/paradigmxyz/reth?rev=1ba631ba9581973e7c6cadeea92cfe1802aceb4a#1ba631ba9581973e7c6cadeea92cfe1802aceb4a" +dependencies = [ + "reth-chainspec", + "reth-db-api", + "reth-engine-primitives", +] + +[[package]] +name = "reth-payload-builder" +version = "1.1.0" +source = "git+https://github.com/paradigmxyz/reth?rev=1ba631ba9581973e7c6cadeea92cfe1802aceb4a#1ba631ba9581973e7c6cadeea92cfe1802aceb4a" +dependencies = [ + "alloy-primitives", + "alloy-rpc-types", + "async-trait", + "futures-util", + "metrics", + "reth-ethereum-engine-primitives", + "reth-metrics", + "reth-payload-primitives", + "reth-primitives", + "reth-provider", + "tokio", + "tokio-stream", + "tracing", +] + +[[package]] +name = "reth-payload-primitives" +version = "1.1.0" +source = "git+https://github.com/paradigmxyz/reth?rev=1ba631ba9581973e7c6cadeea92cfe1802aceb4a#1ba631ba9581973e7c6cadeea92cfe1802aceb4a" +dependencies = [ + "alloy-primitives", + "alloy-rpc-types", + "async-trait", + "op-alloy-rpc-types-engine", + "pin-project", + "reth-chain-state", + "reth-chainspec", + "reth-errors", + "reth-primitives", + "reth-transaction-pool", + "serde", + "thiserror", + "tokio", + "tokio-stream", + "tracing", +] + +[[package]] +name = "reth-payload-validator" +version = "1.1.0" +source = "git+https://github.com/paradigmxyz/reth?rev=1ba631ba9581973e7c6cadeea92cfe1802aceb4a#1ba631ba9581973e7c6cadeea92cfe1802aceb4a" +dependencies = [ + "alloy-rpc-types", + "reth-chainspec", + "reth-primitives", + "reth-rpc-types-compat", +] + [[package]] name = "reth-primitives" -version = "1.0.4" -source = "git+https://github.com/paradigmxyz/reth?rev=a206eb3690e5a51d3c797fed2a6ed722e36863eb#a206eb3690e5a51d3c797fed2a6ed722e36863eb" +version = "1.1.0" +source = "git+https://github.com/paradigmxyz/reth?rev=1ba631ba9581973e7c6cadeea92cfe1802aceb4a#1ba631ba9581973e7c6cadeea92cfe1802aceb4a" dependencies = [ + "alloy-consensus", "alloy-eips", - "alloy-genesis", "alloy-primitives", "alloy-rlp", "bytes", "c-kzg", - "derive_more", + "derive_more 1.0.0", "k256", "modular-bitfield", "once_cell", + "op-alloy-consensus", "rayon", "reth-codecs", "reth-ethereum-forks", @@ -6044,15 +6406,14 @@ dependencies = [ "revm-primitives", "secp256k1", "serde", - "tempfile", - "thiserror", + "serde_with", "zstd", ] [[package]] name = "reth-primitives-traits" -version = "1.0.4" -source = "git+https://github.com/paradigmxyz/reth?rev=a206eb3690e5a51d3c797fed2a6ed722e36863eb#a206eb3690e5a51d3c797fed2a6ed722e36863eb" +version = "1.1.0" +source = "git+https://github.com/paradigmxyz/reth?rev=1ba631ba9581973e7c6cadeea92cfe1802aceb4a#1ba631ba9581973e7c6cadeea92cfe1802aceb4a" dependencies = [ "alloy-consensus", "alloy-eips", @@ -6061,24 +6422,28 @@ dependencies = [ "alloy-rlp", "byteorder", "bytes", - "derive_more", + "derive_more 1.0.0", "modular-bitfield", "reth-codecs", "revm-primitives", "roaring", "serde", + "serde_with", ] [[package]] name = "reth-provider" -version = "1.0.4" -source = "git+https://github.com/paradigmxyz/reth?rev=a206eb3690e5a51d3c797fed2a6ed722e36863eb#a206eb3690e5a51d3c797fed2a6ed722e36863eb" +version = "1.1.0" +source = "git+https://github.com/paradigmxyz/reth?rev=1ba631ba9581973e7c6cadeea92cfe1802aceb4a#1ba631ba9581973e7c6cadeea92cfe1802aceb4a" dependencies = [ + "alloy-eips", + "alloy-primitives", "alloy-rpc-types-engine", "auto_impl", - "dashmap 6.1.0", + "dashmap", "itertools 0.13.0", "metrics", + "notify", "parking_lot", "rayon", "reth-blockchain-tree-api", @@ -6094,6 +6459,7 @@ dependencies = [ "reth-metrics", "reth-network-p2p", "reth-nippy-jar", + "reth-node-types", "reth-primitives", "reth-prune-types", "reth-stages-types", @@ -6107,14 +6473,40 @@ dependencies = [ "tracing", ] +[[package]] +name = "reth-prune" +version = "1.1.0" +source = "git+https://github.com/paradigmxyz/reth?rev=1ba631ba9581973e7c6cadeea92cfe1802aceb4a#1ba631ba9581973e7c6cadeea92cfe1802aceb4a" +dependencies = [ + "alloy-primitives", + "itertools 0.13.0", + "metrics", + "rayon", + "reth-chainspec", + "reth-config", + "reth-db", + "reth-db-api", + "reth-errors", + "reth-exex-types", + "reth-metrics", + "reth-provider", + "reth-prune-types", + "reth-static-file-types", + "reth-tokio-util", + "rustc-hash 2.0.0", + "thiserror", + "tokio", + "tracing", +] + [[package]] name = "reth-prune-types" -version = "1.0.4" -source = "git+https://github.com/paradigmxyz/reth?rev=a206eb3690e5a51d3c797fed2a6ed722e36863eb#a206eb3690e5a51d3c797fed2a6ed722e36863eb" +version = "1.1.0" +source = "git+https://github.com/paradigmxyz/reth?rev=1ba631ba9581973e7c6cadeea92cfe1802aceb4a#1ba631ba9581973e7c6cadeea92cfe1802aceb4a" dependencies = [ "alloy-primitives", "bytes", - "derive_more", + "derive_more 1.0.0", "modular-bitfield", "reth-codecs", "serde", @@ -6122,33 +6514,203 @@ dependencies = [ ] [[package]] -name = "reth-revm" -version = "1.0.4" -source = "git+https://github.com/paradigmxyz/reth?rev=a206eb3690e5a51d3c797fed2a6ed722e36863eb#a206eb3690e5a51d3c797fed2a6ed722e36863eb" +name = "reth-revm" +version = "1.1.0" +source = "git+https://github.com/paradigmxyz/reth?rev=1ba631ba9581973e7c6cadeea92cfe1802aceb4a#1ba631ba9581973e7c6cadeea92cfe1802aceb4a" +dependencies = [ + "alloy-primitives", + "reth-chainspec", + "reth-consensus-common", + "reth-execution-errors", + "reth-primitives", + "reth-prune-types", + "reth-storage-api", + "reth-storage-errors", + "revm", +] + +[[package]] +name = "reth-rpc" +version = "1.1.0" +source = "git+https://github.com/paradigmxyz/reth?rev=1ba631ba9581973e7c6cadeea92cfe1802aceb4a#1ba631ba9581973e7c6cadeea92cfe1802aceb4a" +dependencies = [ + "alloy-consensus", + "alloy-dyn-abi", + "alloy-eips", + "alloy-genesis", + "alloy-network", + "alloy-primitives", + "alloy-rlp", + "alloy-rpc-types", + "alloy-rpc-types-admin", + "alloy-rpc-types-debug", + "alloy-rpc-types-eth", + "alloy-rpc-types-mev", + "alloy-rpc-types-trace", + "alloy-rpc-types-txpool", + "alloy-serde", + "alloy-signer", + "alloy-signer-local", + "async-trait", + "derive_more 1.0.0", + "futures", + "http", + "http-body", + "hyper", + "jsonrpsee", + "jsonwebtoken", + "parking_lot", + "pin-project", + "rand", + "reth-chainspec", + "reth-consensus-common", + "reth-errors", + "reth-evm", + "reth-network-api", + "reth-network-peers", + "reth-network-types", + "reth-node-api", + "reth-primitives", + "reth-provider", + "reth-revm", + "reth-rpc-api", + "reth-rpc-engine-api", + "reth-rpc-eth-api", + "reth-rpc-eth-types", + "reth-rpc-server-types", + "reth-rpc-types-compat", + "reth-tasks", + "reth-transaction-pool", + "reth-trie", + "revm", + "revm-inspectors", + "revm-primitives", + "serde", + "serde_json", + "thiserror", + "tokio", + "tokio-stream", + "tower 0.4.13", + "tracing", + "tracing-futures", +] + +[[package]] +name = "reth-rpc-api" +version = "1.1.0" +source = "git+https://github.com/paradigmxyz/reth?rev=1ba631ba9581973e7c6cadeea92cfe1802aceb4a#1ba631ba9581973e7c6cadeea92cfe1802aceb4a" +dependencies = [ + "alloy-eips", + "alloy-json-rpc", + "alloy-primitives", + "alloy-rpc-types", + "alloy-rpc-types-admin", + "alloy-rpc-types-anvil", + "alloy-rpc-types-beacon", + "alloy-rpc-types-debug", + "alloy-rpc-types-engine", + "alloy-rpc-types-eth", + "alloy-rpc-types-mev", + "alloy-rpc-types-trace", + "alloy-rpc-types-txpool", + "alloy-serde", + "jsonrpsee", + "reth-engine-primitives", + "reth-network-peers", + "reth-primitives", + "reth-rpc-eth-api", +] + +[[package]] +name = "reth-rpc-engine-api" +version = "1.1.0" +source = "git+https://github.com/paradigmxyz/reth?rev=1ba631ba9581973e7c6cadeea92cfe1802aceb4a#1ba631ba9581973e7c6cadeea92cfe1802aceb4a" +dependencies = [ + "alloy-eips", + "alloy-primitives", + "alloy-rpc-types-engine", + "async-trait", + "jsonrpsee-core", + "jsonrpsee-types", + "metrics", + "reth-beacon-consensus", + "reth-chainspec", + "reth-engine-primitives", + "reth-evm", + "reth-metrics", + "reth-payload-builder", + "reth-payload-primitives", + "reth-primitives", + "reth-rpc-api", + "reth-rpc-types-compat", + "reth-storage-api", + "reth-tasks", + "reth-transaction-pool", + "serde", + "thiserror", + "tokio", + "tracing", +] + +[[package]] +name = "reth-rpc-eth-api" +version = "1.1.0" +source = "git+https://github.com/paradigmxyz/reth?rev=1ba631ba9581973e7c6cadeea92cfe1802aceb4a#1ba631ba9581973e7c6cadeea92cfe1802aceb4a" dependencies = [ + "alloy-dyn-abi", "alloy-eips", + "alloy-json-rpc", + "alloy-network", + "alloy-primitives", + "alloy-rpc-types", + "alloy-rpc-types-eth", + "alloy-rpc-types-mev", + "async-trait", + "auto_impl", + "dyn-clone", + "futures", + "jsonrpsee", + "jsonrpsee-types", + "parking_lot", "reth-chainspec", - "reth-consensus-common", - "reth-execution-errors", + "reth-errors", + "reth-evm", + "reth-execution-types", + "reth-network-api", "reth-primitives", - "reth-prune-types", - "reth-storage-api", - "reth-storage-errors", + "reth-provider", + "reth-revm", + "reth-rpc-eth-types", + "reth-rpc-server-types", + "reth-rpc-types-compat", + "reth-tasks", + "reth-transaction-pool", + "reth-trie", "revm", + "revm-inspectors", + "revm-primitives", + "tokio", + "tracing", ] [[package]] name = "reth-rpc-eth-types" -version = "1.0.4" -source = "git+https://github.com/paradigmxyz/reth?rev=a206eb3690e5a51d3c797fed2a6ed722e36863eb#a206eb3690e5a51d3c797fed2a6ed722e36863eb" +version = "1.1.0" +source = "git+https://github.com/paradigmxyz/reth?rev=1ba631ba9581973e7c6cadeea92cfe1802aceb4a#1ba631ba9581973e7c6cadeea92cfe1802aceb4a" dependencies = [ + "alloy-consensus", + "alloy-eips", + "alloy-primitives", + "alloy-rpc-types", + "alloy-rpc-types-eth", + "alloy-serde", "alloy-sol-types", - "derive_more", + "derive_more 1.0.0", "futures", "jsonrpsee-core", "jsonrpsee-types", "metrics", - "rand 0.8.5", + "rand", "reth-chain-state", "reth-chainspec", "reth-errors", @@ -6158,7 +6720,6 @@ dependencies = [ "reth-primitives", "reth-revm", "reth-rpc-server-types", - "reth-rpc-types", "reth-rpc-types-compat", "reth-storage-api", "reth-tasks", @@ -6177,54 +6738,66 @@ dependencies = [ [[package]] name = "reth-rpc-server-types" -version = "1.0.4" -source = "git+https://github.com/paradigmxyz/reth?rev=a206eb3690e5a51d3c797fed2a6ed722e36863eb#a206eb3690e5a51d3c797fed2a6ed722e36863eb" +version = "1.1.0" +source = "git+https://github.com/paradigmxyz/reth?rev=1ba631ba9581973e7c6cadeea92cfe1802aceb4a#1ba631ba9581973e7c6cadeea92cfe1802aceb4a" dependencies = [ "alloy-primitives", + "alloy-rpc-types-engine", "jsonrpsee-core", "jsonrpsee-types", "reth-errors", "reth-network-api", "reth-primitives", - "reth-rpc-types", "serde", "strum", ] [[package]] -name = "reth-rpc-types" -version = "1.0.4" -source = "git+https://github.com/paradigmxyz/reth?rev=a206eb3690e5a51d3c797fed2a6ed722e36863eb#a206eb3690e5a51d3c797fed2a6ed722e36863eb" +name = "reth-rpc-types-compat" +version = "1.1.0" +source = "git+https://github.com/paradigmxyz/reth?rev=1ba631ba9581973e7c6cadeea92cfe1802aceb4a#1ba631ba9581973e7c6cadeea92cfe1802aceb4a" dependencies = [ + "alloy-eips", "alloy-primitives", + "alloy-rlp", "alloy-rpc-types", - "alloy-rpc-types-admin", - "alloy-rpc-types-anvil", - "alloy-rpc-types-beacon", "alloy-rpc-types-engine", - "alloy-rpc-types-mev", - "alloy-rpc-types-trace", - "alloy-rpc-types-txpool", + "alloy-rpc-types-eth", "alloy-serde", - "jsonrpsee-types", + "reth-primitives", + "reth-trie-common", ] [[package]] -name = "reth-rpc-types-compat" -version = "1.0.4" -source = "git+https://github.com/paradigmxyz/reth?rev=a206eb3690e5a51d3c797fed2a6ed722e36863eb#a206eb3690e5a51d3c797fed2a6ed722e36863eb" +name = "reth-stages-api" +version = "1.1.0" +source = "git+https://github.com/paradigmxyz/reth?rev=1ba631ba9581973e7c6cadeea92cfe1802aceb4a#1ba631ba9581973e7c6cadeea92cfe1802aceb4a" dependencies = [ - "alloy-rlp", - "alloy-rpc-types", - "reth-primitives", - "reth-rpc-types", - "reth-trie-common", + "alloy-primitives", + "aquamarine", + "auto_impl", + "futures-util", + "metrics", + "reth-consensus", + "reth-errors", + "reth-metrics", + "reth-network-p2p", + "reth-primitives-traits", + "reth-provider", + "reth-prune", + "reth-stages-types", + "reth-static-file", + "reth-static-file-types", + "reth-tokio-util", + "thiserror", + "tokio", + "tracing", ] [[package]] name = "reth-stages-types" -version = "1.0.4" -source = "git+https://github.com/paradigmxyz/reth?rev=a206eb3690e5a51d3c797fed2a6ed722e36863eb#a206eb3690e5a51d3c797fed2a6ed722e36863eb" +version = "1.1.0" +source = "git+https://github.com/paradigmxyz/reth?rev=1ba631ba9581973e7c6cadeea92cfe1802aceb4a#1ba631ba9581973e7c6cadeea92cfe1802aceb4a" dependencies = [ "alloy-primitives", "bytes", @@ -6234,54 +6807,82 @@ dependencies = [ "serde", ] +[[package]] +name = "reth-static-file" +version = "1.1.0" +source = "git+https://github.com/paradigmxyz/reth?rev=1ba631ba9581973e7c6cadeea92cfe1802aceb4a#1ba631ba9581973e7c6cadeea92cfe1802aceb4a" +dependencies = [ + "alloy-primitives", + "parking_lot", + "rayon", + "reth-chainspec", + "reth-db", + "reth-db-api", + "reth-nippy-jar", + "reth-node-types", + "reth-provider", + "reth-prune-types", + "reth-stages-types", + "reth-static-file-types", + "reth-storage-errors", + "reth-tokio-util", + "tracing", +] + [[package]] name = "reth-static-file-types" -version = "1.0.4" -source = "git+https://github.com/paradigmxyz/reth?rev=a206eb3690e5a51d3c797fed2a6ed722e36863eb#a206eb3690e5a51d3c797fed2a6ed722e36863eb" +version = "1.1.0" +source = "git+https://github.com/paradigmxyz/reth?rev=1ba631ba9581973e7c6cadeea92cfe1802aceb4a#1ba631ba9581973e7c6cadeea92cfe1802aceb4a" dependencies = [ "alloy-primitives", - "derive_more", + "derive_more 1.0.0", "serde", "strum", ] [[package]] name = "reth-storage-api" -version = "1.0.4" -source = "git+https://github.com/paradigmxyz/reth?rev=a206eb3690e5a51d3c797fed2a6ed722e36863eb#a206eb3690e5a51d3c797fed2a6ed722e36863eb" +version = "1.1.0" +source = "git+https://github.com/paradigmxyz/reth?rev=1ba631ba9581973e7c6cadeea92cfe1802aceb4a#1ba631ba9581973e7c6cadeea92cfe1802aceb4a" dependencies = [ + "alloy-eips", + "alloy-primitives", "auto_impl", "reth-chainspec", "reth-db-api", + "reth-db-models", "reth-execution-types", "reth-primitives", "reth-prune-types", "reth-stages-types", "reth-storage-errors", "reth-trie", - "revm", ] [[package]] name = "reth-storage-errors" -version = "1.0.4" -source = "git+https://github.com/paradigmxyz/reth?rev=a206eb3690e5a51d3c797fed2a6ed722e36863eb#a206eb3690e5a51d3c797fed2a6ed722e36863eb" +version = "1.1.0" +source = "git+https://github.com/paradigmxyz/reth?rev=1ba631ba9581973e7c6cadeea92cfe1802aceb4a#1ba631ba9581973e7c6cadeea92cfe1802aceb4a" dependencies = [ + "alloy-eips", + "alloy-primitives", "alloy-rlp", + "derive_more 1.0.0", "reth-fs-util", "reth-primitives", - "thiserror-no-std", ] [[package]] name = "reth-tasks" -version = "1.0.4" -source = "git+https://github.com/paradigmxyz/reth?rev=a206eb3690e5a51d3c797fed2a6ed722e36863eb#a206eb3690e5a51d3c797fed2a6ed722e36863eb" +version = "1.1.0" +source = "git+https://github.com/paradigmxyz/reth?rev=1ba631ba9581973e7c6cadeea92cfe1802aceb4a#1ba631ba9581973e7c6cadeea92cfe1802aceb4a" dependencies = [ "auto_impl", "dyn-clone", "futures-util", "metrics", + "pin-project", + "rayon", "reth-metrics", "thiserror", "tokio", @@ -6291,8 +6892,8 @@ dependencies = [ [[package]] name = "reth-tokio-util" -version = "1.0.4" -source = "git+https://github.com/paradigmxyz/reth?rev=a206eb3690e5a51d3c797fed2a6ed722e36863eb#a206eb3690e5a51d3c797fed2a6ed722e36863eb" +version = "1.1.0" +source = "git+https://github.com/paradigmxyz/reth?rev=1ba631ba9581973e7c6cadeea92cfe1802aceb4a#1ba631ba9581973e7c6cadeea92cfe1802aceb4a" dependencies = [ "tokio", "tokio-stream", @@ -6301,8 +6902,8 @@ dependencies = [ [[package]] name = "reth-tracing" -version = "1.0.4" -source = "git+https://github.com/paradigmxyz/reth?rev=a206eb3690e5a51d3c797fed2a6ed722e36863eb#a206eb3690e5a51d3c797fed2a6ed722e36863eb" +version = "1.1.0" +source = "git+https://github.com/paradigmxyz/reth?rev=1ba631ba9581973e7c6cadeea92cfe1802aceb4a#1ba631ba9581973e7c6cadeea92cfe1802aceb4a" dependencies = [ "clap", "eyre", @@ -6316,9 +6917,11 @@ dependencies = [ [[package]] name = "reth-transaction-pool" -version = "1.0.4" -source = "git+https://github.com/paradigmxyz/reth?rev=a206eb3690e5a51d3c797fed2a6ed722e36863eb#a206eb3690e5a51d3c797fed2a6ed722e36863eb" +version = "1.1.0" +source = "git+https://github.com/paradigmxyz/reth?rev=1ba631ba9581973e7c6cadeea92cfe1802aceb4a#1ba631ba9581973e7c6cadeea92cfe1802aceb4a" dependencies = [ + "alloy-eips", + "alloy-primitives", "alloy-rlp", "aquamarine", "auto_impl", @@ -6348,12 +6951,13 @@ dependencies = [ [[package]] name = "reth-trie" -version = "1.0.4" -source = "git+https://github.com/paradigmxyz/reth?rev=a206eb3690e5a51d3c797fed2a6ed722e36863eb#a206eb3690e5a51d3c797fed2a6ed722e36863eb" +version = "1.1.0" +source = "git+https://github.com/paradigmxyz/reth?rev=1ba631ba9581973e7c6cadeea92cfe1802aceb4a#1ba631ba9581973e7c6cadeea92cfe1802aceb4a" dependencies = [ + "alloy-primitives", "alloy-rlp", "auto_impl", - "derive_more", + "derive_more 1.0.0", "itertools 0.13.0", "metrics", "rayon", @@ -6369,8 +6973,8 @@ dependencies = [ [[package]] name = "reth-trie-common" -version = "1.0.4" -source = "git+https://github.com/paradigmxyz/reth?rev=a206eb3690e5a51d3c797fed2a6ed722e36863eb#a206eb3690e5a51d3c797fed2a6ed722e36863eb" +version = "1.1.0" +source = "git+https://github.com/paradigmxyz/reth?rev=1ba631ba9581973e7c6cadeea92cfe1802aceb4a#1ba631ba9581973e7c6cadeea92cfe1802aceb4a" dependencies = [ "alloy-consensus", "alloy-genesis", @@ -6378,7 +6982,7 @@ dependencies = [ "alloy-rlp", "alloy-trie", "bytes", - "derive_more", + "derive_more 1.0.0", "itertools 0.13.0", "nybbles", "reth-codecs", @@ -6389,12 +6993,13 @@ dependencies = [ [[package]] name = "reth-trie-db" -version = "1.0.4" -source = "git+https://github.com/paradigmxyz/reth?rev=a206eb3690e5a51d3c797fed2a6ed722e36863eb#a206eb3690e5a51d3c797fed2a6ed722e36863eb" +version = "1.1.0" +source = "git+https://github.com/paradigmxyz/reth?rev=1ba631ba9581973e7c6cadeea92cfe1802aceb4a#1ba631ba9581973e7c6cadeea92cfe1802aceb4a" dependencies = [ + "alloy-primitives", "alloy-rlp", "auto_impl", - "derive_more", + "derive_more 1.0.0", "itertools 0.13.0", "metrics", "rayon", @@ -6413,9 +7018,9 @@ dependencies = [ [[package]] name = "revm" -version = "12.1.0" +version = "14.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c6cfb48bce8ca2113e157bdbddbd5eeb09daac1c903d79ec17085897c38c7c91" +checksum = "641702b12847f9ed418d552f4fcabe536d867a2c980e96b6e7e25d7b992f929f" dependencies = [ "auto_impl", "cfg-if", @@ -6428,12 +7033,13 @@ dependencies = [ [[package]] name = "revm-inspectors" -version = "0.5.5" +version = "0.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "54a785dafff303a335980e317669c4e9800cdd5dd2830c6880c3247022761e88" +checksum = "43c44af0bf801f48d25f7baf25cf72aff4c02d610f83b428175228162fef0246" dependencies = [ "alloy-primitives", - "alloy-rpc-types", + "alloy-rpc-types-eth", + "alloy-rpc-types-trace", "alloy-sol-types", "anstyle", "colorchoice", @@ -6444,9 +7050,9 @@ dependencies = [ [[package]] name = "revm-interpreter" -version = "8.1.0" +version = "10.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e6b0daddea06fc6da5346acc39b32a357bbe3579e9e3d94117d9ae125cd596fc" +checksum = "2e5e14002afae20b5bf1566f22316122f42f57517000e559c55b25bf7a49cba2" dependencies = [ "revm-primitives", "serde", @@ -6454,9 +7060,9 @@ dependencies = [ [[package]] name = "revm-precompile" -version = "9.2.0" +version = "11.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ef55228211251d7b6c7707c3ee13bb70dea4d2fd81ec4034521e4fe31010b2ea" +checksum = "3198c06247e8d4ad0d1312591edf049b0de4ddffa9fecb625c318fd67db8639b" dependencies = [ "aurora-engine-modexp", "blst", @@ -6473,24 +7079,21 @@ dependencies = [ [[package]] name = "revm-primitives" -version = "7.1.0" +version = "10.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2fc4311037ee093ec50ec734e1424fcb3e12d535c6cef683b75d1c064639630c" +checksum = "6f1525851a03aff9a9d6a1d018b414d76252d6802ab54695b27093ecd7e7a101" dependencies = [ - "alloy-eips", + "alloy-eip2930", + "alloy-eip7702", "alloy-primitives", "auto_impl", "bitflags 2.6.0", "bitvec", "c-kzg", "cfg-if", - "derive_more", "dyn-clone", "enumn", - "hashbrown 0.14.5", "hex", - "kzg-rs", - "once_cell", "serde", ] @@ -6512,7 +7115,7 @@ checksum = "c17fa4cb658e3583423e915b9f3acc01cceaee1860e33d59ebae66adc3a2dc0d" dependencies = [ "cc", "cfg-if", - "getrandom 0.2.15", + "getrandom", "libc", "spin", "untrusted", @@ -6599,7 +7202,7 @@ dependencies = [ "hex", "lazy-regex", "metal", - "rand 0.8.5", + "rand", "rayon", "risc0-circuit-recursion-sys", "risc0-core", @@ -6637,7 +7240,7 @@ dependencies = [ "derive-debug", "lazy-regex", "metal", - "rand 0.8.5", + "rand", "rayon", "risc0-binfmt", "risc0-circuit-rv32im-sys", @@ -6671,7 +7274,7 @@ dependencies = [ "bytemuck", "nvtx", "puffin", - "rand_core 0.6.4", + "rand_core", ] [[package]] @@ -6728,8 +7331,8 @@ dependencies = [ "ndarray", "parking_lot", "paste", - "rand 0.8.5", - "rand_core 0.6.4", + "rand", + "rand_core", "rayon", "risc0-core", "risc0-sys", @@ -6753,11 +7356,11 @@ dependencies = [ "bytemuck", "bytes", "elf", - "getrandom 0.2.15", + "getrandom", "hex", "lazy-regex", "prost 0.13.3", - "rand 0.8.5", + "rand", "rayon", "risc0-binfmt", "risc0-build", @@ -6785,7 +7388,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "57748f1916078b24faed0bc620aa6dfc386e066e6f75a710ec0ac68f7126e7d7" dependencies = [ "bytemuck", - "getrandom 0.2.15", + "getrandom", "libm", "stability", ] @@ -6870,6 +7473,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2c3cc4c2511671f327125da14133d0c5c5d137f006a1017a16f557bc85b16286" dependencies = [ "alloy-rlp", + "arbitrary", "ark-ff 0.3.0", "ark-ff 0.4.2", "bytes", @@ -6879,7 +7483,7 @@ dependencies = [ "parity-scale-codec", "primitive-types", "proptest", - "rand 0.8.5", + "rand", "rlp", "ruint-macro", "serde", @@ -6924,6 +7528,9 @@ name = "rustc-hash" version = "2.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "583034fd73374156e66797ed8e5b0d5690409c9226b22d87cb7f19821c05d152" +dependencies = [ + "rand", +] [[package]] name = "rustc-hex" @@ -7092,7 +7699,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5174a470eeb535a721ae9fdd6e291c2411a906b96592182d05217591d5c5cf7b" dependencies = [ "byteorder", - "derive_more", + "derive_more 0.99.18", "twox-hash", ] @@ -7182,7 +7789,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9465315bc9d4566e1724f0fffcbcc446268cb522e60f9a27bcded6b19c108113" dependencies = [ "bitcoin_hashes", - "rand 0.8.5", + "rand", "secp256k1-sys", "serde", ] @@ -7233,15 +7840,6 @@ dependencies = [ "libc", ] -[[package]] -name = "seedable_hash" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ed064ed6aaf88eb6a28ae191f5871a7fcdd2858e1cd6e1ffcc746baef8cd3cfd" -dependencies = [ - "wyhash", -] - [[package]] name = "semver" version = "0.11.0" @@ -7284,15 +7882,6 @@ dependencies = [ "serde_derive", ] -[[package]] -name = "serde_bytes" -version = "0.11.15" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "387cc504cb06bb40a96c8e04e951fe01854cf6bc921053c954e4a606d9675c6a" -dependencies = [ - "serde", -] - [[package]] name = "serde_derive" version = "1.0.215" @@ -7390,19 +7979,6 @@ dependencies = [ "syn 2.0.87", ] -[[package]] -name = "serde_yaml" -version = "0.9.34+deprecated" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6a8b1a1a2ebf674015cc02edccce75287f1a0130d394307b36743c2f5d504b47" -dependencies = [ - "indexmap 2.6.0", - "itoa", - "ryu", - "serde", - "unsafe-libyaml", -] - [[package]] name = "sha1" version = "0.10.6" @@ -7476,7 +8052,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "77549399552de45a898a580c1b41d445bf730df867cc44e6c0233bbc4b8329de" dependencies = [ "digest 0.10.7", - "rand_core 0.6.4", + "rand_core", ] [[package]] @@ -7561,7 +8137,7 @@ dependencies = [ "http", "httparse", "log", - "rand 0.8.5", + "rand", "sha1", ] @@ -7594,7 +8170,7 @@ dependencies = [ "hex", "jmt", "num_cpus", - "rand 0.8.5", + "rand", "rlimit", "rocksdb", "serde", @@ -7610,10 +8186,10 @@ dependencies = [ name = "sov-ledger-rpc" version = "0.5.0-rc.1" dependencies = [ + "alloy-primitives", "anyhow", "futures", "jsonrpsee", - "reth-primitives", "serde", "sov-db", "sov-modules-api", @@ -7664,13 +8240,13 @@ dependencies = [ "bincode", "borsh", "clap", - "derive_more", + "derive_more 0.99.18", "digest 0.10.7", "ed25519-dalek", "hex", "jmt", "jsonrpsee", - "rand 0.8.5", + "rand", "schemars", "serde", "serde_json", @@ -7694,7 +8270,7 @@ dependencies = [ "anyhow", "bech32 0.9.1", "borsh", - "derive_more", + "derive_more 0.99.18", "digest 0.10.7", "hex", "jmt", @@ -7738,7 +8314,7 @@ dependencies = [ "anyhow", "async-trait", "citrea-common", - "derive_more", + "derive_more 0.99.18", "jsonrpsee", "sov-db", "sov-ledger-rpc", @@ -7776,7 +8352,7 @@ version = "0.5.0-rc.1" dependencies = [ "anyhow", "criterion", - "rand 0.8.5", + "rand", "sha2", "sov-db", "sov-mock-da", @@ -7826,9 +8402,11 @@ dependencies = [ name = "sov-state" version = "0.5.0-rc.1" dependencies = [ + "alloy-rlp", "anyhow", "bcs", "borsh", + "bytes", "jmt", "proptest", "serde", @@ -7850,7 +8428,7 @@ dependencies = [ "hex", "hyper", "jsonrpsee", - "rand 0.8.5", + "rand", "serde", "serde_json", "sha2", @@ -7862,7 +8440,7 @@ dependencies = [ "tempfile", "thiserror", "tokio", - "tower", + "tower 0.4.13", "tracing", ] @@ -7893,6 +8471,9 @@ name = "spin" version = "0.9.8" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6980e8d7511241f8acf4aebddbb1ff938df5eebe98691418c4468d0b72a96a67" +dependencies = [ + "lock_api", +] [[package]] name = "spki" @@ -7963,7 +8544,7 @@ dependencies = [ "byteorder", "crunchy", "lazy_static", - "rand 0.8.5", + "rand", "rustc-hex", ] @@ -7973,16 +8554,6 @@ version = "2.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "13c2bddecc57b384dee18652358fb23172facb8a2c51ccc10d74c157bdea3292" -[[package]] -name = "sucds" -version = "0.8.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d53d46182afe6ed822a94c54a532dc0d59691a8f49226bdc4596529ca864cdd6" -dependencies = [ - "anyhow", - "num-traits", -] - [[package]] name = "syn" version = "1.0.109" @@ -8007,9 +8578,9 @@ dependencies = [ [[package]] name = "syn-solidity" -version = "0.7.7" +version = "0.8.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c837dc8852cb7074e46b444afb81783140dab12c58867b49fb3898fbafedf7ea" +checksum = "f76fe0a3e1476bdaa0775b9aec5b869ed9520c2b2fedfe9c6df3618f8ea6290b" dependencies = [ "paste", "proc-macro2", @@ -8017,6 +8588,12 @@ dependencies = [ "syn 2.0.87", ] +[[package]] +name = "sync_wrapper" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2047c6ded9c721764247e62cd3b03c09ffc529b2ba5b10ec482ae507a4a70160" + [[package]] name = "sync_wrapper" version = "1.0.1" @@ -8039,15 +8616,14 @@ dependencies = [ [[package]] name = "sysinfo" -version = "0.30.13" +version = "0.31.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0a5b4ddaee55fb2bea2bf0e5000747e5f5c0de765e5a5ff87f4cd106439f4bb3" +checksum = "355dbe4f8799b304b05e1b0f05fc59b2a18d36645cf169607da45bde2f69a1be" dependencies = [ - "cfg-if", "core-foundation-sys", "libc", + "memchr", "ntapi", - "once_cell", "windows", ] @@ -8228,7 +8804,7 @@ dependencies = [ "backtrace", "bytes", "libc", - "mio", + "mio 1.0.2", "parking_lot", "pin-project-lite", "signal-hook-registry", @@ -8333,7 +8909,7 @@ dependencies = [ "indexmap 1.9.3", "pin-project", "pin-project-lite", - "rand 0.8.5", + "rand", "slab", "tokio", "tokio-util", @@ -8342,6 +8918,20 @@ dependencies = [ "tracing", ] +[[package]] +name = "tower" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2873938d487c3cfb9aed7546dc9f2711d867c9f90c46b889989a2cb84eba6b4f" +dependencies = [ + "futures-core", + "futures-util", + "pin-project-lite", + "sync_wrapper 0.1.2", + "tower-layer", + "tower-service", +] + [[package]] name = "tower-http" version = "0.5.2" @@ -8366,7 +8956,7 @@ dependencies = [ "pin-project-lite", "tokio", "tokio-util", - "tower", + "tower 0.4.13", "tower-layer", "tower-service", "tracing", @@ -8624,10 +9214,10 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f6ccf251212114b54433ec949fd6a7841275f9ada20dddd2f29e9ceea4501493" [[package]] -name = "unsafe-libyaml" -version = "0.2.11" +name = "unicode-xid" +version = "0.2.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "673aac59facbab8a9007c7f6108d11f63b603f7cabff99fabf650fea5c32b861" +checksum = "ebc1c04c71510c7f702b52b7c350734c9ff1295c464a03335b00bb84fc54f853" [[package]] name = "untrusted" @@ -8670,7 +9260,7 @@ version = "1.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f8c5f0a0af699448548ad1a2fbf920fb4bee257eae39953ba95cb84891a0446a" dependencies = [ - "getrandom 0.2.15", + "getrandom", ] [[package]] @@ -8719,12 +9309,6 @@ dependencies = [ "try-lock", ] -[[package]] -name = "wasi" -version = "0.9.0+wasi-snapshot-preview1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cccddf32554fecc6acb585f82a32a72e28b48f8c4c1883ddfeeeaa96f7d8e519" - [[package]] name = "wasi" version = "0.11.0+wasi-snapshot-preview1" @@ -8887,11 +9471,11 @@ checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" [[package]] name = "windows" -version = "0.52.0" +version = "0.57.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e48a53791691ab099e5e2ad123536d0fff50652600abaf43bbf952894110d0be" +checksum = "12342cb4d8e3b046f3d80effd474a7a02447231330ef77d71daa6fbc40681143" dependencies = [ - "windows-core", + "windows-core 0.57.0", "windows-targets 0.52.6", ] @@ -8904,17 +9488,60 @@ dependencies = [ "windows-targets 0.52.6", ] +[[package]] +name = "windows-core" +version = "0.57.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d2ed2439a290666cd67ecce2b0ffaad89c2a56b976b736e6ece670297897832d" +dependencies = [ + "windows-implement", + "windows-interface", + "windows-result 0.1.2", + "windows-targets 0.52.6", +] + +[[package]] +name = "windows-implement" +version = "0.57.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9107ddc059d5b6fbfbffdfa7a7fe3e22a226def0b2608f72e9d552763d3e1ad7" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.87", +] + +[[package]] +name = "windows-interface" +version = "0.57.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "29bee4b38ea3cde66011baa44dba677c432a78593e202392d1e9070cf2a7fca7" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.87", +] + [[package]] name = "windows-registry" version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e400001bb720a623c1c69032f8e3e4cf09984deec740f007dd2b03ec864804b0" dependencies = [ - "windows-result", + "windows-result 0.2.0", "windows-strings", "windows-targets 0.52.6", ] +[[package]] +name = "windows-result" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5e383302e8ec8515204254685643de10811af0ed97ea37210dc26fb0032647f8" +dependencies = [ + "windows-targets 0.52.6", +] + [[package]] name = "windows-result" version = "0.2.0" @@ -8930,7 +9557,7 @@ version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4cd9b125c486025df0eabcb585e62173c6c9eddcec5d117d3b6e8c30e2ee4d10" dependencies = [ - "windows-result", + "windows-result 0.2.0", "windows-targets 0.52.6", ] @@ -9109,15 +9736,6 @@ version = "0.5.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1e9df38ee2d2c3c5948ea468a8406ff0db0b29ae1ffde1bcf20ef305bcc95c51" -[[package]] -name = "wyhash" -version = "0.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "baf6e163c25e3fac820b4b453185ea2dea3b6a3e0a721d4d23d75bd33734c295" -dependencies = [ - "rand_core 0.6.4", -] - [[package]] name = "wyz" version = "0.5.1" diff --git a/Cargo.toml b/Cargo.toml index ab9603ef6..cba031550 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -119,34 +119,41 @@ risc0-build = { version = "1.1.3" } bonsai-sdk = { version = "1.1.3" } # EVM dependencies -revm = { version = "12.1", features = ["serde"], default-features = false } -# forcing cargo for this version or else chooses 3.1.1 and there is some dependency conflicts -revm-primitives = { version = "8", default-features = false } -revm-inspectors = { version = "=0.5.5", default-features = false } -reth-primitives = { git = "https://github.com/paradigmxyz/reth", rev = "a206eb3690e5a51d3c797fed2a6ed722e36863eb", default-features = false } -reth-chainspec = { git = "https://github.com/paradigmxyz/reth", rev = "a206eb3690e5a51d3c797fed2a6ed722e36863eb", default-features = false } -reth-errors = { git = "https://github.com/paradigmxyz/reth", rev = "a206eb3690e5a51d3c797fed2a6ed722e36863eb", default-features = false } -reth-rpc-types = { git = "https://github.com/paradigmxyz/reth", rev = "a206eb3690e5a51d3c797fed2a6ed722e36863eb", default-features = false, features = ["jsonrpsee-types"] } -reth-rpc-eth-types = { git = "https://github.com/paradigmxyz/reth", rev = "a206eb3690e5a51d3c797fed2a6ed722e36863eb", default-features = false } -reth-rpc-eth-api = { git = "https://github.com/paradigmxyz/reth", rev = "a206eb3690e5a51d3c797fed2a6ed722e36863eb", default-features = false } -reth-rpc-server-types = { git = "https://github.com/paradigmxyz/reth", rev = "a206eb3690e5a51d3c797fed2a6ed722e36863eb", default-features = false } -reth-rpc-types-compat = { git = "https://github.com/paradigmxyz/reth", rev = "a206eb3690e5a51d3c797fed2a6ed722e36863eb", default-features = false } -reth-node-api = { git = "https://github.com/paradigmxyz/reth", rev = "a206eb3690e5a51d3c797fed2a6ed722e36863eb", default-features = false } -reth-transaction-pool = { git = "https://github.com/paradigmxyz/reth", rev = "a206eb3690e5a51d3c797fed2a6ed722e36863eb", default-features = false } -reth-provider = { git = "https://github.com/paradigmxyz/reth", rev = "a206eb3690e5a51d3c797fed2a6ed722e36863eb", default-features = false } -reth-tasks = { git = "https://github.com/paradigmxyz/reth", rev = "a206eb3690e5a51d3c797fed2a6ed722e36863eb", default-features = false } -reth-db = { git = "https://github.com/paradigmxyz/reth", rev = "a206eb3690e5a51d3c797fed2a6ed722e36863eb", default-features = false } -reth-trie = { git = "https://github.com/paradigmxyz/reth", rev = "a206eb3690e5a51d3c797fed2a6ed722e36863eb", default-features = false } -reth-rpc = { git = "https://github.com/paradigmxyz/reth", rev = "a206eb3690e5a51d3c797fed2a6ed722e36863eb", default-features = false } -reth-stages = { git = "https://github.com/paradigmxyz/reth", rev = "a206eb3690e5a51d3c797fed2a6ed722e36863eb", default-features = false } +revm-inspectors = { version = "=0.8.1", default-features = false } +reth-primitives = { git = "https://github.com/paradigmxyz/reth", rev = "1ba631ba9581973e7c6cadeea92cfe1802aceb4a", default-features = false } +reth-primitives-traits = { git = "https://github.com/paradigmxyz/reth", rev = "1ba631ba9581973e7c6cadeea92cfe1802aceb4a", default-features = false } +reth-chainspec = { git = "https://github.com/paradigmxyz/reth", rev = "1ba631ba9581973e7c6cadeea92cfe1802aceb4a", default-features = false } +reth-errors = { git = "https://github.com/paradigmxyz/reth", rev = "1ba631ba9581973e7c6cadeea92cfe1802aceb4a", default-features = false } +reth-execution-types = { git = "https://github.com/paradigmxyz/reth", rev = "1ba631ba9581973e7c6cadeea92cfe1802aceb4a", default-features = false } +reth-rpc-eth-types = { git = "https://github.com/paradigmxyz/reth", rev = "1ba631ba9581973e7c6cadeea92cfe1802aceb4a", default-features = false } +reth-rpc-eth-api = { git = "https://github.com/paradigmxyz/reth", rev = "1ba631ba9581973e7c6cadeea92cfe1802aceb4a", default-features = false } +reth-rpc-server-types = { git = "https://github.com/paradigmxyz/reth", rev = "1ba631ba9581973e7c6cadeea92cfe1802aceb4a", default-features = false } +reth-rpc-types-compat = { git = "https://github.com/paradigmxyz/reth", rev = "1ba631ba9581973e7c6cadeea92cfe1802aceb4a", default-features = false } +reth-node-api = { git = "https://github.com/paradigmxyz/reth", rev = "1ba631ba9581973e7c6cadeea92cfe1802aceb4a", default-features = false } +reth-transaction-pool = { git = "https://github.com/paradigmxyz/reth", rev = "1ba631ba9581973e7c6cadeea92cfe1802aceb4a", default-features = false } +reth-provider = { git = "https://github.com/paradigmxyz/reth", rev = "1ba631ba9581973e7c6cadeea92cfe1802aceb4a", default-features = false } +reth-tasks = { git = "https://github.com/paradigmxyz/reth", rev = "1ba631ba9581973e7c6cadeea92cfe1802aceb4a", default-features = false } +reth-db = { git = "https://github.com/paradigmxyz/reth", rev = "1ba631ba9581973e7c6cadeea92cfe1802aceb4a", default-features = false } +reth-trie = { git = "https://github.com/paradigmxyz/reth", rev = "1ba631ba9581973e7c6cadeea92cfe1802aceb4a", default-features = false } +reth-rpc = { git = "https://github.com/paradigmxyz/reth", rev = "1ba631ba9581973e7c6cadeea92cfe1802aceb4a", default-features = false } +reth-stages = { git = "https://github.com/paradigmxyz/reth", rev = "1ba631ba9581973e7c6cadeea92cfe1802aceb4a", default-features = false } -alloy-trie = { version = "0.3.8", default-features = false } +revm = { version = "14.0.3", features = ["serde"], default-features = false } +# forcing cargo for this version or else chooses 3.1.1 and there is some dependency conflicts +revm-primitives = { version = "10.0.0", default-features = false } +alloy-genesis = { version = "0.4.2", default-features = false } +alloy-trie = { version = "0.6", default-features = false } alloy-rlp = { version = "0.3.8", default-features = false } -alloy-primitives = { version = "0.7.7", default-features = false } -alloy-sol-types = { version = "0.7.7", default-features = false, features = ["json"] } -alloy = { version = "0.2.1", default-features = false } -alloy-eips = { version = "0.2.1", default-features = false } -alloy-consensus = { version = "0.2.1", default-features = false } +alloy-rpc-types = { version = "0.4.2", features = ["eth"], default-features = false } +alloy-rpc-types-eth = { version = "0.4.2", default-features = false } +alloy-rpc-types-trace = { version = "0.4.2", default-features = false } +alloy-primitives = { version = "0.8.7", default-features = false } +alloy-serde = { version = "0.4.2", default-features = false } +alloy-sol-types = { version = "0.8.0", default-features = false, features = ["json"] } +alloy = { version = "0.4.2", default-features = false } +alloy-eips = { version = "0.4.2", default-features = false } +alloy-consensus = { version = "0.4.2", default-features = false, features = ["serde", "serde-bincode-compat"] } +alloy-network = { version = "0.4.2", default-features = false } citrea-e2e = { git = "https://github.com/chainwayxyz/citrea-e2e", rev = "51a4d19" } diff --git a/bin/citrea/Cargo.toml b/bin/citrea/Cargo.toml index 391db9caf..50f380264 100644 --- a/bin/citrea/Cargo.toml +++ b/bin/citrea/Cargo.toml @@ -55,7 +55,6 @@ metrics = { workspace = true } metrics-exporter-prometheus = { workspace = true, default-features = true } metrics-util = { workspace = true } reth-primitives = { workspace = true } -reth-rpc-types = { workspace = true } reth-transaction-pool = { workspace = true } risc0-binfmt = { workspace = true } secp256k1 = { workspace = true } @@ -75,6 +74,8 @@ sov-rollup-interface = { path = "../../crates/sovereign-sdk/rollup-interface", f alloy = { workspace = true, features = ["hyper", "consensus", "rpc-types-eth", "provider-http", "signers", "signer-local"] } alloy-rlp = { workspace = true } +alloy-rpc-types = { workspace = true } +alloy-rpc-types-trace = { workspace = true } bincode = { workspace = true } borsh = { workspace = true } hex = { workspace = true } diff --git a/bin/citrea/tests/bitcoin_e2e/batch_prover_test.rs b/bin/citrea/tests/bitcoin_e2e/batch_prover_test.rs index cf2e49452..f70757632 100644 --- a/bin/citrea/tests/bitcoin_e2e/batch_prover_test.rs +++ b/bin/citrea/tests/bitcoin_e2e/batch_prover_test.rs @@ -2,6 +2,7 @@ use std::net::SocketAddr; use std::sync::Arc; use std::time::{Duration, Instant}; +use alloy_primitives::{Address, U64}; use anyhow::bail; use async_trait::async_trait; use bitcoin_da::service::{BitcoinService, BitcoinServiceConfig, FINALITY_DEPTH}; @@ -18,7 +19,6 @@ use citrea_e2e::test_case::{TestCase, TestCaseRunner}; use citrea_e2e::traits::NodeT; use citrea_e2e::Result; use citrea_primitives::{TO_BATCH_PROOF_PREFIX, TO_LIGHT_CLIENT_PREFIX}; -use reth_primitives::{Address, U64}; use sov_ledger_rpc::LedgerRpcClient; use sov_rollup_interface::da::{DaData, SequencerCommitment}; use sov_rollup_interface::rpc::VerifiedBatchProofResponse; diff --git a/bin/citrea/tests/bitcoin_e2e/bitcoin_test.rs b/bin/citrea/tests/bitcoin_e2e/bitcoin_test.rs index 3cf4dad4e..cac248e2c 100644 --- a/bin/citrea/tests/bitcoin_e2e/bitcoin_test.rs +++ b/bin/citrea/tests/bitcoin_e2e/bitcoin_test.rs @@ -1,5 +1,6 @@ use std::time::Duration; +use alloy_primitives::U64; use anyhow::bail; use async_trait::async_trait; use bitcoin::Txid; @@ -13,7 +14,6 @@ use citrea_e2e::framework::TestFramework; use citrea_e2e::test_case::{TestCase, TestCaseRunner}; use citrea_e2e::traits::Restart; use citrea_e2e::Result; -use reth_primitives::U64; use sov_ledger_rpc::LedgerRpcClient; use tokio::time::sleep; diff --git a/bin/citrea/tests/bitcoin_e2e/light_client_test.rs b/bin/citrea/tests/bitcoin_e2e/light_client_test.rs index 5ca293243..74a5e0bf0 100644 --- a/bin/citrea/tests/bitcoin_e2e/light_client_test.rs +++ b/bin/citrea/tests/bitcoin_e2e/light_client_test.rs @@ -1,5 +1,6 @@ use std::time::Duration; +use alloy_primitives::U64; use async_trait::async_trait; use bitcoin_da::service::FINALITY_DEPTH; use citrea_batch_prover::rpc::BatchProverRpcClient; @@ -12,7 +13,6 @@ use citrea_e2e::framework::TestFramework; use citrea_e2e::test_case::{TestCase, TestCaseRunner}; use citrea_e2e::Result; use citrea_light_client_prover::rpc::LightClientProverRpcClient; -use reth_primitives::U64; use sov_ledger_rpc::LedgerRpcClient; use super::batch_prover_test::wait_for_zkproofs; diff --git a/bin/citrea/tests/bitcoin_e2e/sequencer_commitments.rs b/bin/citrea/tests/bitcoin_e2e/sequencer_commitments.rs index b37afe582..8750f9dd3 100644 --- a/bin/citrea/tests/bitcoin_e2e/sequencer_commitments.rs +++ b/bin/citrea/tests/bitcoin_e2e/sequencer_commitments.rs @@ -1,5 +1,6 @@ use std::time::{Duration, Instant}; +use alloy_primitives::U64; use anyhow::bail; use async_trait::async_trait; use bitcoin::hashes::Hash; @@ -14,7 +15,6 @@ use citrea_e2e::sequencer::Sequencer; use citrea_e2e::test_case::{TestCase, TestCaseRunner}; use citrea_e2e::Result; use citrea_primitives::TO_BATCH_PROOF_PREFIX; -use reth_primitives::U64; use rs_merkle::algorithms::Sha256; use rs_merkle::MerkleTree; use sov_ledger_rpc::LedgerRpcClient; diff --git a/bin/citrea/tests/bitcoin_e2e/sequencer_test.rs b/bin/citrea/tests/bitcoin_e2e/sequencer_test.rs index c81841b06..01c888cb7 100644 --- a/bin/citrea/tests/bitcoin_e2e/sequencer_test.rs +++ b/bin/citrea/tests/bitcoin_e2e/sequencer_test.rs @@ -1,3 +1,4 @@ +use alloy_primitives::U64; use anyhow::bail; use async_trait::async_trait; use citrea_e2e::config::SequencerConfig; @@ -5,7 +6,6 @@ use citrea_e2e::framework::TestFramework; use citrea_e2e::test_case::{TestCase, TestCaseRunner}; use citrea_e2e::traits::Restart; use citrea_e2e::Result; -use reth_primitives::U64; use sov_ledger_rpc::LedgerRpcClient; use super::get_citrea_path; diff --git a/bin/citrea/tests/bitcoin_e2e/tx_propagation.rs b/bin/citrea/tests/bitcoin_e2e/tx_propagation.rs index 1a95acc33..1ab33727e 100644 --- a/bin/citrea/tests/bitcoin_e2e/tx_propagation.rs +++ b/bin/citrea/tests/bitcoin_e2e/tx_propagation.rs @@ -1,6 +1,7 @@ use std::net::SocketAddr; use std::str::FromStr; +use alloy_primitives::{Address, TxHash}; use async_trait::async_trait; use citrea_e2e::config::TestCaseConfig; use citrea_e2e::framework::TestFramework; @@ -8,7 +9,7 @@ use citrea_e2e::node::Config; use citrea_e2e::test_case::{TestCase, TestCaseRunner}; use citrea_e2e::traits::NodeT; use citrea_e2e::Result; -use reth_primitives::{Address, BlockNumberOrTag, TxHash}; +use reth_primitives::BlockNumberOrTag; use super::get_citrea_path; use crate::evm::make_test_client; diff --git a/bin/citrea/tests/e2e/mod.rs b/bin/citrea/tests/e2e/mod.rs index ff60ca61a..ea622c060 100644 --- a/bin/citrea/tests/e2e/mod.rs +++ b/bin/citrea/tests/e2e/mod.rs @@ -10,11 +10,12 @@ use std::path::{Path, PathBuf}; use std::str::FromStr; use std::time::Duration; +use alloy_primitives::{Address, U256}; use citrea_common::{BatchProverConfig, SequencerConfig}; use citrea_evm::smart_contracts::SimpleStorageContract; use citrea_primitives::forks::FORKS; use citrea_stf::genesis_config::GenesisPaths; -use reth_primitives::{Address, BlockNumberOrTag, U256}; +use reth_primitives::BlockNumberOrTag; use sov_mock_da::{MockAddress, MockDaService}; use sov_modules_api::fork::fork_from_block_number; use sov_rollup_interface::rpc::{LastVerifiedBatchProofResponse, SoftConfirmationStatus}; @@ -402,7 +403,7 @@ async fn test_ledger_get_head_soft_confirmation() { .await .unwrap() .unwrap(); - assert_eq!(latest_block.header.number.unwrap(), 2); + assert_eq!(latest_block.header.number, 2); assert_eq!( head_soft_confirmation.state_root.as_slice(), latest_block.header.state_root.as_slice() @@ -563,8 +564,8 @@ async fn execute_blocks( .eth_get_block_by_number_with_detail(Some(BlockNumberOrTag::Latest)) .await; - assert_eq!(seq_last_block.header.number.unwrap(), 504); - assert_eq!(full_node_last_block.header.number.unwrap(), 504); + assert_eq!(seq_last_block.header.number, 504); + assert_eq!(full_node_last_block.header.number, 504); assert_eq!( seq_last_block.header.state_root, diff --git a/bin/citrea/tests/e2e/reopen.rs b/bin/citrea/tests/e2e/reopen.rs index b95fd9f1d..6f65d67a6 100644 --- a/bin/citrea/tests/e2e/reopen.rs +++ b/bin/citrea/tests/e2e/reopen.rs @@ -4,9 +4,10 @@ use std::str::FromStr; use std::time::Duration; +use alloy_primitives::Address; use citrea_common::{BatchProverConfig, SequencerConfig}; use citrea_stf::genesis_config::GenesisPaths; -use reth_primitives::{Address, BlockNumberOrTag}; +use reth_primitives::BlockNumberOrTag; use sov_db::ledger_db::migrations::copy_db_dir_recursive; use sov_mock_da::{MockAddress, MockDaService}; use tokio::runtime::Runtime; @@ -95,8 +96,8 @@ async fn test_reopen_full_node() -> Result<(), anyhow::Error> { .eth_get_block_by_number_with_detail(Some(BlockNumberOrTag::Latest)) .await; - assert_eq!(seq_last_block.header.number.unwrap(), 10); - assert_eq!(full_node_last_block.header.number.unwrap(), 10); + assert_eq!(seq_last_block.header.number, 10); + assert_eq!(full_node_last_block.header.number, 10); assert_eq!( seq_last_block.header.state_root, @@ -163,8 +164,8 @@ async fn test_reopen_full_node() -> Result<(), anyhow::Error> { .eth_get_block_by_number_with_detail(Some(BlockNumberOrTag::Latest)) .await; - assert_eq!(seq_last_block.header.number.unwrap(), 110); - assert_eq!(full_node_last_block.header.number.unwrap(), 110); + assert_eq!(seq_last_block.header.number, 110); + assert_eq!(full_node_last_block.header.number, 110); assert_eq!( seq_last_block.header.state_root, @@ -209,7 +210,7 @@ async fn test_reopen_sequencer() -> Result<(), anyhow::Error> { let block = seq_test_client .eth_get_block_by_number(Some(BlockNumberOrTag::Latest)) .await; - assert_eq!(block.header.number.unwrap(), 0); + assert_eq!(block.header.number, 0); // close sequencer seq_task.abort(); @@ -256,10 +257,7 @@ async fn test_reopen_sequencer() -> Result<(), anyhow::Error> { // make sure the state roots are the same assert_eq!(seq_last_block.header.state_root, block.header.state_root); - assert_eq!( - seq_last_block.header.number.unwrap(), - block.header.number.unwrap() - ); + assert_eq!(seq_last_block.header.number, block.header.number); seq_test_client.send_publish_batch_request().await; seq_test_client.send_publish_batch_request().await; @@ -271,8 +269,7 @@ async fn test_reopen_sequencer() -> Result<(), anyhow::Error> { .eth_get_block_by_number(Some(BlockNumberOrTag::Latest)) .await .header - .number - .unwrap(), + .number, 2 ); diff --git a/bin/citrea/tests/e2e/sequencer_behaviour.rs b/bin/citrea/tests/e2e/sequencer_behaviour.rs index be040feab..73f0754fd 100644 --- a/bin/citrea/tests/e2e/sequencer_behaviour.rs +++ b/bin/citrea/tests/e2e/sequencer_behaviour.rs @@ -5,10 +5,11 @@ use std::time::Duration; use alloy::consensus::{Signed, TxEip1559, TxEnvelope}; use alloy::signers::local::PrivateKeySigner; use alloy::signers::Signer; +use alloy_primitives::Address; use alloy_rlp::{BytesMut, Encodable}; use citrea_common::{SequencerConfig, SequencerMempoolConfig}; use citrea_stf::genesis_config::GenesisPaths; -use reth_primitives::{Address, BlockNumberOrTag}; +use reth_primitives::BlockNumberOrTag; use sov_mock_da::{MockAddress, MockDaService, MockDaSpec}; use tokio::time::sleep; @@ -282,7 +283,7 @@ async fn transaction_failing_on_l1_is_removed_from_mempool() -> Result<(), anyho .await; assert_eq!( - block.header.base_fee_per_gas.unwrap(), + block.header.base_fee_per_gas.unwrap() as u128, second_block_base_fee ); @@ -291,7 +292,7 @@ async fn transaction_failing_on_l1_is_removed_from_mempool() -> Result<(), anyho .await; let soft_confirmation = seq_test_client - .ledger_get_soft_confirmation_by_number::(block.header.number.unwrap()) + .ledger_get_soft_confirmation_by_number::(block.header.number) .await .unwrap(); @@ -299,7 +300,7 @@ async fn transaction_failing_on_l1_is_removed_from_mempool() -> Result<(), anyho assert!(tx_from_mempool.is_none()); assert_eq!(soft_confirmation.txs.unwrap().len(), 0); - wait_for_l2_block(&full_node_test_client, block.header.number.unwrap(), None).await; + wait_for_l2_block(&full_node_test_client, block.header.number, None).await; let block_from_full_node = full_node_test_client .eth_get_block_by_number_with_detail(Some(BlockNumberOrTag::Latest)) diff --git a/bin/citrea/tests/e2e/sequencer_replacement.rs b/bin/citrea/tests/e2e/sequencer_replacement.rs index de978d203..70cbc4aca 100644 --- a/bin/citrea/tests/e2e/sequencer_replacement.rs +++ b/bin/citrea/tests/e2e/sequencer_replacement.rs @@ -5,10 +5,11 @@ use std::str::FromStr; use std::time::Duration; use alloy::consensus::{Signed, TxEip1559, TxEnvelope}; +use alloy_primitives::Address; use alloy_rlp::Decodable; use citrea_common::{SequencerConfig, SequencerMempoolConfig}; use citrea_stf::genesis_config::GenesisPaths; -use reth_primitives::{Address, BlockNumberOrTag}; +use reth_primitives::BlockNumberOrTag; use sov_db::ledger_db::migrations::copy_db_dir_recursive; use sov_db::ledger_db::{LedgerDB, SequencerLedgerOps}; use sov_db::rocks_db_config::RocksdbConfig; diff --git a/bin/citrea/tests/e2e/syncing.rs b/bin/citrea/tests/e2e/syncing.rs index 644267dc2..ca02a2483 100644 --- a/bin/citrea/tests/e2e/syncing.rs +++ b/bin/citrea/tests/e2e/syncing.rs @@ -2,10 +2,11 @@ use std::str::FromStr; use std::time::Duration; +use alloy_primitives::Address; use citrea_common::{BatchProverConfig, SequencerConfig}; use citrea_stf::genesis_config::GenesisPaths; use ethereum_rpc::LayerStatus; -use reth_primitives::{Address, BlockNumberOrTag}; +use reth_primitives::BlockNumberOrTag; use sov_mock_da::{MockAddress, MockDaService, MockDaSpec, MockHash}; use sov_rollup_interface::da::{DaDataLightClient, DaSpec}; use sov_rollup_interface::services::da::DaService; diff --git a/bin/citrea/tests/e2e/system_transactions.rs b/bin/citrea/tests/e2e/system_transactions.rs index 15cc6cdae..67b513994 100644 --- a/bin/citrea/tests/e2e/system_transactions.rs +++ b/bin/citrea/tests/e2e/system_transactions.rs @@ -1,9 +1,10 @@ /// Testing if the sequencer and full node can handle system transactions correctly (the full node should have the same system transactions as the sequencer) use std::str::FromStr; +use alloy_primitives::Address; use citrea_evm::system_contracts::BitcoinLightClient; use citrea_evm::SYSTEM_SIGNER; -use reth_primitives::{Address, BlockNumberOrTag}; +use reth_primitives::BlockNumberOrTag; use sov_mock_da::{MockAddress, MockDaService}; use sov_rollup_interface::services::da::DaService; diff --git a/bin/citrea/tests/evm/archival_state.rs b/bin/citrea/tests/evm/archival_state.rs index d27105026..191b04415 100644 --- a/bin/citrea/tests/evm/archival_state.rs +++ b/bin/citrea/tests/evm/archival_state.rs @@ -1,10 +1,11 @@ use std::str::FromStr; use std::time::Duration; +use alloy_primitives::{Address, Bytes, B256, U256}; use citrea_common::SequencerConfig; use citrea_evm::smart_contracts::SimpleStorageContract; use citrea_stf::genesis_config::GenesisPaths; -use reth_primitives::{Address, BlockId, BlockNumberOrTag, Bytes, B256, U256}; +use reth_primitives::{BlockId, BlockNumberOrTag}; use tokio::time::sleep; use crate::evm::init_test_rollup; @@ -61,7 +62,7 @@ async fn run_archival_fail_tests(addr: Address, seq_test_client: &TestClient) { assert!(invalid_block_balance .to_string() - .contains("unknown block number")); + .contains("block not found: number 0x2d2")); let invalid_block_balance = seq_test_client .eth_get_balance(addr, Some(BlockId::Hash(invalid_block_hash.into()))) @@ -82,7 +83,7 @@ async fn run_archival_fail_tests(addr: Address, seq_test_client: &TestClient) { .unwrap_err(); assert!(invalid_block_storage .to_string() - .contains("unknown block number")); + .contains("block not found:")); let invalid_block_storage = seq_test_client .eth_get_storage_at( @@ -100,9 +101,7 @@ async fn run_archival_fail_tests(addr: Address, seq_test_client: &TestClient) { .eth_get_code(addr, Some(BlockId::Number(BlockNumberOrTag::Number(722)))) .await .unwrap_err(); - assert!(invalid_block_code - .to_string() - .contains("unknown block number")); + assert!(invalid_block_code.to_string().contains("block not found:")); let invalid_block_code = seq_test_client .eth_get_code(addr, Some(BlockId::Hash(invalid_block_hash.into()))) @@ -118,7 +117,7 @@ async fn run_archival_fail_tests(addr: Address, seq_test_client: &TestClient) { .unwrap_err(); assert!(invalid_block_tx_count .to_string() - .contains("unknown block number")); + .contains("block not found:")); let invalid_block_tx_count = seq_test_client .eth_get_transaction_count(addr, Some(BlockId::Hash(invalid_block_hash.into()))) @@ -134,8 +133,7 @@ async fn run_archival_valid_tests(addr: Address, seq_test_client: &TestClient) { .eth_get_block_by_number(None) .await .header - .hash - .unwrap(); + .hash; assert_eq!( seq_test_client .eth_get_balance(addr, Some(BlockId::Number(BlockNumberOrTag::Latest))) @@ -216,8 +214,7 @@ async fn run_archival_valid_tests(addr: Address, seq_test_client: &TestClient) { .eth_get_block_by_number(None) .await .header - .hash - .unwrap(); + .hash; // Wait for changeset storage sleep(Duration::from_secs(2)).await; @@ -275,8 +272,7 @@ async fn run_archival_valid_tests(addr: Address, seq_test_client: &TestClient) { .eth_get_block_by_number(Some(BlockNumberOrTag::Number(i))) .await .header - .hash - .unwrap(); + .hash; assert_eq!( seq_test_client @@ -413,8 +409,7 @@ async fn run_archival_valid_tests(addr: Address, seq_test_client: &TestClient) { .eth_get_block_by_number(Some(BlockNumberOrTag::Latest)) .await .header - .hash - .unwrap(); + .hash; let code = seq_test_client .eth_get_code(contract_address, Some(BlockId::Hash(block_hash_9.into()))) @@ -427,8 +422,7 @@ async fn run_archival_valid_tests(addr: Address, seq_test_client: &TestClient) { .eth_get_block_by_number(Some(BlockNumberOrTag::Number(8))) .await .header - .hash - .unwrap(); + .hash; let non_existent_code = seq_test_client .eth_get_code(contract_address, Some(BlockId::Hash(block_hash_8.into()))) @@ -469,8 +463,7 @@ async fn run_archival_valid_tests(addr: Address, seq_test_client: &TestClient) { .eth_get_block_by_number(None) .await .header - .hash - .unwrap(); + .hash; let storage_value = seq_test_client .eth_get_storage_at( @@ -497,8 +490,7 @@ async fn run_archival_valid_tests(addr: Address, seq_test_client: &TestClient) { .eth_get_block_by_number(Some(BlockNumberOrTag::Number(11))) .await .header - .hash - .unwrap(); + .hash; let previous_storage_value = seq_test_client .eth_get_storage_at( diff --git a/bin/citrea/tests/evm/fee.rs b/bin/citrea/tests/evm/fee.rs index 5dae7331a..47e79b095 100644 --- a/bin/citrea/tests/evm/fee.rs +++ b/bin/citrea/tests/evm/fee.rs @@ -57,7 +57,7 @@ async fn test_minimum_base_fee() -> Result<(), anyhow::Error> { .eth_get_block_by_number(Some(BlockNumberOrTag::Latest)) .await; // Base fee should at most be 0.01 gwei - assert_eq!(block.header.base_fee_per_gas.unwrap(), 10000000u128); + assert_eq!(block.header.base_fee_per_gas.unwrap(), 10000000); Ok(()) } diff --git a/bin/citrea/tests/evm/gas_price.rs b/bin/citrea/tests/evm/gas_price.rs index 1ce08c39b..da06f3259 100644 --- a/bin/citrea/tests/evm/gas_price.rs +++ b/bin/citrea/tests/evm/gas_price.rs @@ -3,10 +3,11 @@ use std::time::Duration; use alloy::signers::local::PrivateKeySigner; use alloy::signers::Signer; +use alloy_primitives::U256; use citrea_common::SequencerConfig; use citrea_evm::smart_contracts::SimpleStorageContract; use citrea_stf::genesis_config::GenesisPaths; -use reth_primitives::{BlockNumberOrTag, U256}; +use reth_primitives::BlockNumberOrTag; use crate::evm::init_test_rollup; use crate::test_client::TestClient; diff --git a/bin/citrea/tests/evm/mod.rs b/bin/citrea/tests/evm/mod.rs index 2c9dbcce1..9688f2c86 100644 --- a/bin/citrea/tests/evm/mod.rs +++ b/bin/citrea/tests/evm/mod.rs @@ -3,12 +3,13 @@ use std::str::FromStr; use alloy::signers::local::PrivateKeySigner; use alloy::signers::Signer; -use citrea_common::SequencerConfig; // use citrea::initialize_logging; +use alloy_primitives::{Address, Bytes, U256}; +use citrea_common::SequencerConfig; use citrea_evm::smart_contracts::{LogsContract, SimpleStorageContract, TestContract}; use citrea_evm::system_contracts::BitcoinLightClient; use citrea_stf::genesis_config::GenesisPaths; -use reth_primitives::{Address, BlockId, BlockNumberOrTag, Bytes, U256}; +use reth_primitives::{BlockId, BlockNumberOrTag}; use sov_rollup_interface::CITREA_VERSION; // use sov_demo_rollup::initialize_logging; @@ -377,7 +378,7 @@ async fn execute(client: &Box) -> Result<(), Box) -> Result<(), Box) -> Result<(), Box = latest_block.transactions.hashes().clone().collect(); - assert_eq!(latest_block.header.number.unwrap(), 2); + assert_eq!(latest_block.header.number, 2); assert_eq!(block_transactions.len(), 1); assert_eq!(block_transactions[0], tx_hash); @@ -494,7 +495,7 @@ async fn execute(client: &Box) -> Result<(), Box) -> Result<(), Box Box { .await; assert_eq!(latest_block, earliest_block); - assert_eq!(latest_block.header.number.unwrap(), 0); + assert_eq!(latest_block.header.number, 0); test_client } diff --git a/bin/citrea/tests/evm/subscription.rs b/bin/citrea/tests/evm/subscription.rs index f58672972..bb3b24e60 100644 --- a/bin/citrea/tests/evm/subscription.rs +++ b/bin/citrea/tests/evm/subscription.rs @@ -3,13 +3,13 @@ use std::sync::{Arc, Mutex}; use std::time::Duration; use alloy_primitives::FixedBytes; +// use citrea::initialize_logging; +use alloy_primitives::{keccak256, Address}; use alloy_sol_types::SolEvent; use citrea_common::SequencerConfig; use citrea_evm::smart_contracts::{AnotherLogEvent, LogEvent, LogsContract, TestContract}; use citrea_evm::{Filter, LogResponse}; -// use citrea::initialize_logging; use citrea_stf::genesis_config::GenesisPaths; -use reth_primitives::{keccak256, Address}; use tokio::time::sleep; use crate::evm::make_test_client; @@ -79,7 +79,7 @@ async fn test_eth_subscriptions() -> Result<(), Box> { let block = last_received_block.lock().unwrap(); let block = block.as_ref().unwrap(); - assert_eq!(block.header.number, Some(2)); + assert_eq!(block.header.number, 2); assert!(block.transactions.is_empty()); } @@ -98,7 +98,7 @@ async fn test_eth_subscriptions() -> Result<(), Box> { let block = last_received_block.lock().unwrap(); let block = block.as_ref().unwrap(); - assert_eq!(block.header.number, Some(3)); + assert_eq!(block.header.number, 3); assert_eq!(block.transactions.len(), 1); assert_eq!(block.transactions.hashes().last().unwrap().clone(), tx_hash); } @@ -180,7 +180,7 @@ async fn test_eth_subscriptions() -> Result<(), Box> { let block = last_received_block.lock().unwrap(); let block = block.as_ref().unwrap(); let mut tx_hashes = block.transactions.hashes(); - assert_eq!(block.header.number, Some(5)); + assert_eq!(block.header.number, 5); assert_eq!(block.transactions.len(), 2); assert_eq!(tx_hashes.next().unwrap().clone(), tx_hash1); assert_eq!(tx_hashes.next().unwrap().clone(), tx_hash2); diff --git a/bin/citrea/tests/evm/tracing.rs b/bin/citrea/tests/evm/tracing.rs index a632c8150..6a5a30301 100644 --- a/bin/citrea/tests/evm/tracing.rs +++ b/bin/citrea/tests/evm/tracing.rs @@ -1,15 +1,16 @@ use std::str::FromStr; -use citrea_common::SequencerConfig; // use citrea::initialize_logging; -use citrea_evm::smart_contracts::{CallerContract, SimpleStorageContract}; -use citrea_stf::genesis_config::GenesisPaths; -use reth_primitives::{Address, BlockNumberOrTag}; -use reth_rpc_types::trace::geth::GethTrace::{self, CallTracer, FourByteTracer}; -use reth_rpc_types::trace::geth::{ +use alloy_primitives::Address; +use alloy_rpc_types_trace::geth::GethTrace::{self, CallTracer, FourByteTracer}; +use alloy_rpc_types_trace::geth::{ CallConfig, CallFrame, FourByteFrame, GethDebugBuiltInTracerType, GethDebugTracerType, GethDebugTracingOptions, }; +use citrea_common::SequencerConfig; +use citrea_evm::smart_contracts::{CallerContract, SimpleStorageContract}; +use citrea_stf::genesis_config::GenesisPaths; +use reth_primitives::BlockNumberOrTag; use serde_json::{self, json}; use crate::evm::make_test_client; @@ -89,10 +90,8 @@ async fn tracing_tests() -> Result<(), Box> { let call_set_value_req = test_client .contract_transaction( caller_contract_address, - caller_contract.call_set_call_data( - reth_primitives::Address::from_slice(ss_contract_address.as_ref()), - 3, - ), + caller_contract + .call_set_call_data(Address::from_slice(ss_contract_address.as_ref()), 3), None, ) .await; @@ -145,9 +144,7 @@ async fn tracing_tests() -> Result<(), Box> { let call_get_value_req = test_client .contract_transaction( caller_contract_address, - caller_contract.call_get_call_data(reth_primitives::Address::from_slice( - ss_contract_address.as_ref(), - )), + caller_contract.call_get_call_data(Address::from_slice(ss_contract_address.as_ref())), None, ) .await; @@ -234,8 +231,7 @@ async fn tracing_tests() -> Result<(), Box> { .eth_get_block_by_number(Some(BlockNumberOrTag::Number(3))) .await .header - .hash - .unwrap(); + .hash; let traces = test_client .debug_trace_block_by_hash( diff --git a/bin/citrea/tests/mempool/mod.rs b/bin/citrea/tests/mempool/mod.rs index 1c45b84fb..40a55850f 100644 --- a/bin/citrea/tests/mempool/mod.rs +++ b/bin/citrea/tests/mempool/mod.rs @@ -3,9 +3,10 @@ use std::str::FromStr; use alloy::signers::local::PrivateKeySigner; use alloy::signers::Signer; +use alloy_primitives::Address; use citrea_common::SequencerConfig; use citrea_stf::genesis_config::GenesisPaths; -use reth_primitives::{Address, BlockNumberOrTag}; +use reth_primitives::BlockNumberOrTag; use tokio::task::JoinHandle; use crate::evm::make_test_client; diff --git a/bin/citrea/tests/test_client/mod.rs b/bin/citrea/tests/test_client/mod.rs index a3abcefae..3d83c5389 100644 --- a/bin/citrea/tests/test_client/mod.rs +++ b/bin/citrea/tests/test_client/mod.rs @@ -8,6 +8,10 @@ use alloy::providers::{PendingTransactionBuilder, Provider as AlloyProvider, Pro use alloy::rpc::types::eth::{Block, Transaction, TransactionReceipt, TransactionRequest}; use alloy::signers::local::PrivateKeySigner; use alloy::transports::http::{Http, HyperClient}; +use alloy_primitives::{Address, Bytes, TxHash, TxKind, B256, U256, U64}; +// use reth_rpc_types::TransactionReceipt; +use alloy_rpc_types::AnyNetworkBlock; +use alloy_rpc_types_trace::geth::{GethDebugTracingOptions, GethTrace}; use citrea_batch_prover::GroupCommitments; use citrea_evm::{Filter, LogResponse}; use ethereum_rpc::SyncStatus; @@ -15,16 +19,14 @@ use jsonrpsee::core::client::{ClientT, SubscriptionClientT}; use jsonrpsee::http_client::{HttpClient, HttpClientBuilder}; use jsonrpsee::rpc_params; use jsonrpsee::ws_client::{PingConfig, WsClient, WsClientBuilder}; -use reth_primitives::{Address, BlockId, BlockNumberOrTag, Bytes, TxHash, TxKind, B256, U256, U64}; -use reth_rpc_types::trace::geth::{GethDebugTracingOptions, GethTrace}; -use reth_rpc_types::RichBlock; +use reth_primitives::{BlockId, BlockNumberOrTag}; use sov_ledger_rpc::{HexHash, LedgerRpcClient}; use sov_rollup_interface::rpc::{ BatchProofResponse, LastVerifiedBatchProofResponse, SequencerCommitmentResponse, SoftConfirmationResponse, SoftConfirmationStatus, VerifiedBatchProofResponse, }; -pub const SEND_ETH_GAS: u128 = 21001; +pub const SEND_ETH_GAS: u64 = 21001; pub const MAX_FEE_PER_GAS: u128 = 1000000001; pub struct TestClient { @@ -271,7 +273,7 @@ impl TestClient { to_addr: Address, max_priority_fee_per_gas: Option, max_fee_per_gas: Option, - gas: u128, + gas: u64, value: u128, ) -> Result, Ethereum>, anyhow::Error> { let nonce = self.current_nonce.fetch_add(1, Ordering::Relaxed); @@ -402,7 +404,7 @@ impl TestClient { pub(crate) async fn eth_get_block_by_number_with_detail( &self, block_number: Option, - ) -> Block { + ) -> AnyNetworkBlock { self.http_client .request("eth_getBlockByNumber", rpc_params![block_number, true]) .await @@ -657,7 +659,7 @@ impl TestClient { traces.into_iter().flatten().collect() } - pub(crate) async fn subscribe_new_heads(&self) -> mpsc::Receiver { + pub(crate) async fn subscribe_new_heads(&self) -> mpsc::Receiver { let (tx, rx) = mpsc::channel(); let mut subscription = self .ws_client diff --git a/crates/batch-prover/Cargo.toml b/crates/batch-prover/Cargo.toml index a5be76779..137b1d6bb 100644 --- a/crates/batch-prover/Cargo.toml +++ b/crates/batch-prover/Cargo.toml @@ -11,7 +11,7 @@ repository.workspace = true [dependencies] # Citrea Deps citrea-common = { path = "../common" } -citrea-primitives = { path = "../primitives", features = ["native"] } +citrea-primitives = { path = "../primitives" } # Sov SDK deps sov-db = { path = "../sovereign-sdk/full-node/db/sov-db" } @@ -24,6 +24,7 @@ sov-rollup-interface = { path = "../sovereign-sdk/rollup-interface" } sov-stf-runner = { path = "../sovereign-sdk/full-node/sov-stf-runner" } # 3rd-party deps +alloy-primitives = { workspace = true } anyhow = { workspace = true } async-trait = { workspace = true } backoff = { workspace = true } @@ -38,7 +39,6 @@ once_cell = { workspace = true, default-features = true } parking_lot = { workspace = true } rand = { workspace = true } rayon = { workspace = true } -reth-primitives = { workspace = true } rs_merkle = { workspace = true } serde = { workspace = true } tokio = { workspace = true } diff --git a/crates/batch-prover/src/runner.rs b/crates/batch-prover/src/runner.rs index f522ba7e3..84ef59105 100644 --- a/crates/batch-prover/src/runner.rs +++ b/crates/batch-prover/src/runner.rs @@ -4,6 +4,7 @@ use std::net::SocketAddr; use std::sync::Arc; use std::time::{Duration, Instant}; +use alloy_primitives::U64; use anyhow::{anyhow, bail, Context as _}; use backoff::exponential::ExponentialBackoffBuilder; use backoff::future::retry as retry_backoff; @@ -17,7 +18,6 @@ use jsonrpsee::core::client::Error as JsonrpseeError; use jsonrpsee::http_client::{HttpClient, HttpClientBuilder}; use jsonrpsee::server::{BatchRequestConfig, ServerBuilder}; use jsonrpsee::RpcModule; -use reth_primitives::U64; use sov_db::ledger_db::BatchProverLedgerOps; use sov_db::schema::types::{BatchNumber, SlotNumber}; use sov_ledger_rpc::LedgerRpcClient; diff --git a/crates/common/Cargo.toml b/crates/common/Cargo.toml index d76a8195a..0849a6e0a 100644 --- a/crates/common/Cargo.toml +++ b/crates/common/Cargo.toml @@ -12,6 +12,7 @@ resolver = "2" [dependencies] # 3rd-party deps +alloy-primitives = { workspace = true } anyhow = { workspace = true } backoff = { workspace = true } borsh = { workspace = true } @@ -20,7 +21,6 @@ hex = { workspace = true } hyper = { workspace = true } jsonrpsee = { workspace = true, features = ["http-client", "server"] } lru = { workspace = true } -reth-primitives = { workspace = true } serde = { workspace = true } serde_json = { workspace = true } tokio = { workspace = true } diff --git a/crates/common/src/da.rs b/crates/common/src/da.rs index 779f42de8..11a8a3224 100644 --- a/crates/common/src/da.rs +++ b/crates/common/src/da.rs @@ -1,11 +1,11 @@ use std::sync::Arc; use std::time::Duration; +use alloy_primitives::U64; use anyhow::anyhow; use backoff::future::retry as retry_backoff; use backoff::ExponentialBackoffBuilder; use jsonrpsee::http_client::HttpClient; -use reth_primitives::U64; use sov_ledger_rpc::LedgerRpcClient; use sov_rollup_interface::da::{BlockHeaderTrait, SequencerCommitment}; use sov_rollup_interface::services::da::{DaService, SlotData}; diff --git a/crates/ethereum-rpc/Cargo.toml b/crates/ethereum-rpc/Cargo.toml index 2055fcbb0..2c533e25a 100644 --- a/crates/ethereum-rpc/Cargo.toml +++ b/crates/ethereum-rpc/Cargo.toml @@ -29,9 +29,13 @@ tokio = { workspace = true } tracing = { workspace = true } # Reth deps +alloy-network = { workspace = true } +alloy-primitives = { workspace = true } +alloy-rpc-types = { workspace = true } +alloy-rpc-types-trace = { workspace = true } reth-primitives = { workspace = true } +reth-rpc-eth-api = { workspace = true } reth-rpc-eth-types = { workspace = true } -reth-rpc-types = { workspace = true } reth-rpc-types-compat = { workspace = true } # Sovereign-SDK deps diff --git a/crates/ethereum-rpc/src/ethereum.rs b/crates/ethereum-rpc/src/ethereum.rs index 9e2c9b31d..207df4a9a 100644 --- a/crates/ethereum-rpc/src/ethereum.rs +++ b/crates/ethereum-rpc/src/ethereum.rs @@ -1,11 +1,11 @@ use std::sync::{Arc, Mutex}; +use alloy_primitives::U256; +use alloy_rpc_types_trace::geth::GethTrace; #[cfg(feature = "local")] use citrea_evm::DevSigner; use citrea_evm::Evm; use jsonrpsee::http_client::HttpClient; -use reth_primitives::U256; -use reth_rpc_types::trace::geth::GethTrace; use rustc_version_runtime::version; use schnellru::{ByLength, LruMap}; use sov_db::ledger_db::LedgerDB; diff --git a/crates/ethereum-rpc/src/gas_price/cache.rs b/crates/ethereum-rpc/src/gas_price/cache.rs index c13bec0a5..769e826e1 100644 --- a/crates/ethereum-rpc/src/gas_price/cache.rs +++ b/crates/ethereum-rpc/src/gas_price/cache.rs @@ -1,13 +1,14 @@ -use reth_primitives::{BlockNumberOrTag, B256}; +use alloy_primitives::B256; +use alloy_rpc_types::{AnyNetworkBlock, AnyTransactionReceipt, BlockTransactions}; +use reth_primitives::BlockNumberOrTag; use reth_rpc_eth_types::EthResult; -use reth_rpc_types::{AnyTransactionReceipt, Block, BlockTransactions, Rich}; use schnellru::{ByLength, LruMap}; use sov_modules_api::WorkingSet; /// Cache for gas oracle pub struct BlockCache { number_to_hash: LruMap, // Number -> hash mapping - cache: LruMap, ByLength>, + cache: LruMap, provider: citrea_evm::Evm, } @@ -26,11 +27,11 @@ impl BlockCache { &mut self, block_hash: B256, working_set: &mut WorkingSet, - ) -> EthResult>> { + ) -> EthResult> { // Check if block is in cache if let Some(block) = self.cache.get(&block_hash) { // Even though block is in cache, ask number_to_hash to keep it in sync - let number: u64 = block.header.number.unwrap_or_default(); + let number = block.header.number; self.number_to_hash.get(&number); return Ok(Some(block.clone())); } @@ -43,7 +44,7 @@ impl BlockCache { // Add block to cache if it exists if let Some(block) = &block { - let number: u64 = block.header.number.unwrap_or_default(); + let number = block.header.number; self.number_to_hash.insert(number, block_hash); self.cache.insert(block_hash, block.clone()); @@ -57,7 +58,7 @@ impl BlockCache { &mut self, block_number: u64, working_set: &mut WorkingSet, - ) -> EthResult>> { + ) -> EthResult> { // Check if block is in cache if let Some(block_hash) = self.number_to_hash.get(&block_number) { return Ok(Some(self.cache.get(block_hash).unwrap().clone())); @@ -75,8 +76,8 @@ impl BlockCache { // Add block to cache if it exists if let Some(block) = &block { - let number: u64 = block.header.number.unwrap_or_default(); - let hash = block.header.hash.unwrap_or_default(); + let number = block.header.number; + let hash = block.header.hash; self.number_to_hash.insert(number, hash); self.cache.insert(hash, block.clone()); @@ -89,7 +90,7 @@ impl BlockCache { &mut self, block_number: u64, working_set: &mut WorkingSet, - ) -> EthResult, Vec)>> { + ) -> EthResult)>> { // if height not in cache, get hash from provider and call get_block let block = self.get_block_by_number(block_number, working_set)?; if let Some(block) = block { diff --git a/crates/ethereum-rpc/src/gas_price/fee_history.rs b/crates/ethereum-rpc/src/gas_price/fee_history.rs index 336deaad3..489d8a093 100644 --- a/crates/ethereum-rpc/src/gas_price/fee_history.rs +++ b/crates/ethereum-rpc/src/gas_price/fee_history.rs @@ -1,11 +1,11 @@ //! Consist of types adjacent to the fee history cache and its configs use std::fmt::Debug; -use reth_primitives::B256; +use alloy_network::AnyNetwork; +use alloy_primitives::B256; +use alloy_rpc_types::{AnyNetworkBlock, AnyTransactionReceipt, BlockTransactions, TxGasAndReward}; +use reth_rpc_eth_api::RpcTransaction; use reth_rpc_eth_types::EthApiError; -use reth_rpc_types::{ - AnyTransactionReceipt, Block, BlockTransactions, Rich, Transaction, TxGasAndReward, -}; use schnellru::{ByLength, LruMap}; use serde::{Deserialize, Serialize}; use sov_modules_api::WorkingSet; @@ -72,7 +72,7 @@ impl FeeHistoryCache { } /// Processing of the arriving blocks - pub fn insert_blocks(&mut self, blocks: Vec<(Rich, Vec)>) { + pub fn insert_blocks(&mut self, blocks: Vec<(AnyNetworkBlock, Vec)>) { let percentiles = self.predefined_percentiles(); // Insert all new blocks and calculate approximated rewards for (block, receipts) in blocks { @@ -89,7 +89,7 @@ impl FeeHistoryCache { &receipts, ) .unwrap_or_default(); - let block_number: u64 = block.header.number.unwrap_or_default(); + let block_number = block.header.number; self.entries.insert(block_number, fee_history_entry); } } @@ -166,7 +166,7 @@ pub(crate) fn calculate_reward_percentiles_for_block( percentiles: &[f64], gas_used: u64, base_fee_per_gas: u64, - transactions: &[Transaction], + transactions: &[RpcTransaction], receipts: &[AnyTransactionReceipt], ) -> Result, EthApiError> { let mut transactions = transactions @@ -244,7 +244,7 @@ impl FeeHistoryEntry { /// Creates a new entry from a sealed block. /// /// Note: This does not calculate the rewards for the block. - pub fn new(block: &Rich) -> Self { + pub fn new(block: &AnyNetworkBlock) -> Self { let base_fee_per_gas = block.header.base_fee_per_gas.unwrap_or_default(); let gas_used = block.header.gas_used; @@ -252,11 +252,11 @@ impl FeeHistoryEntry { let gas_used_ratio = gas_used as f64 / gas_limit as f64; FeeHistoryEntry { - base_fee_per_gas: base_fee_per_gas.try_into().unwrap(), + base_fee_per_gas, gas_used_ratio, - gas_used: gas_used.try_into().unwrap(), - header_hash: block.header.hash.unwrap_or_default(), - gas_limit: gas_limit.try_into().unwrap(), + gas_used, + header_hash: block.header.hash, + gas_limit, rewards: Vec::new(), } } diff --git a/crates/ethereum-rpc/src/gas_price/gas_oracle.rs b/crates/ethereum-rpc/src/gas_price/gas_oracle.rs index 3767bf13a..c2b064952 100644 --- a/crates/ethereum-rpc/src/gas_price/gas_oracle.rs +++ b/crates/ethereum-rpc/src/gas_price/gas_oracle.rs @@ -4,12 +4,15 @@ // Adopted from: https://github.com/paradigmxyz/reth/blob/main/crates/rpc/rpc/src/eth/gas_oracle.rs +use alloy_network::AnyNetwork; +use alloy_primitives::{B256, U256}; +use alloy_rpc_types::{BlockTransactions, FeeHistory}; use citrea_evm::{Evm, SYSTEM_SIGNER}; use citrea_primitives::basefee::calculate_next_block_base_fee; use parking_lot::Mutex; -use reth_primitives::{BlockNumberOrTag, B256, U256}; +use reth_primitives::BlockNumberOrTag; +use reth_rpc_eth_api::RpcTransaction; use reth_rpc_eth_types::error::{EthApiError, EthResult, RpcInvalidTransactionError}; -use reth_rpc_types::{BlockTransactions, FeeHistory}; use serde::{Deserialize, Serialize}; use sov_modules_api::WorkingSet; use tracing::warn; @@ -219,8 +222,8 @@ impl GasPriceOracle { } let last_entry = fee_entries.last().expect("is not empty"); base_fee_per_gas.push(calculate_next_block_base_fee( - last_entry.gas_used as u128, - last_entry.gas_limit as u128, + last_entry.gas_used, + last_entry.gas_limit, last_entry.base_fee_per_gas, self.provider.get_chain_config(working_set).base_fee_params, )); @@ -247,7 +250,7 @@ impl GasPriceOracle { let mut last_price = self.last_price.lock(); // if we have stored a last price, then we check whether or not it was for the same head - if last_price.block_hash == header.hash.unwrap() { + if last_price.block_hash == header.hash { return Ok(last_price.price); } @@ -256,11 +259,11 @@ impl GasPriceOracle { // // we only return more than check_block blocks' worth of prices if one or more return empty // transactions - let mut current_hash = header.hash.unwrap(); + let mut current_hash = header.hash; let mut results = Vec::new(); let mut populated_blocks = 0; - let header_number = header.number.unwrap(); + let header_number = header.number; // we only check a maximum of 2 * max_block_history, or the number of blocks in the chain let max_blocks = if self.oracle_config.max_block_history * 2 > header_number { @@ -272,7 +275,7 @@ impl GasPriceOracle { for _ in 0..max_blocks { let (parent_hash, block_values) = self .get_block_values(current_hash, SAMPLE_NUMBER as usize, working_set)? - .ok_or(EthApiError::UnknownBlockNumber)?; + .ok_or(EthApiError::HeaderNotFound(current_hash.into()))?; if block_values.is_empty() { results.push(last_price.price); @@ -306,7 +309,7 @@ impl GasPriceOracle { } *last_price = GasPriceOracleResult { - block_hash: header.hash.unwrap(), + block_hash: header.hash, price, }; @@ -349,7 +352,10 @@ impl GasPriceOracle { .iter() .filter(|tx| { if let Some(ignore_under) = self.oracle_config.ignore_price { - let effective_gas_tip = effective_gas_tip(tx, block.header.base_fee_per_gas); + let effective_gas_tip = effective_gas_tip( + tx, + block.header.base_fee_per_gas.map(|basefee| basefee as u128), + ); if effective_gas_tip < Some(ignore_under) { return false; } @@ -361,7 +367,12 @@ impl GasPriceOracle { }) // map all values to effective_gas_tip because we will be returning those values // anyways - .map(|tx| effective_gas_tip(tx, block.header.base_fee_per_gas)) + .map(|tx| { + effective_gas_tip( + tx, + block.header.base_fee_per_gas.map(|basefee| basefee as u128), + ) + }) .collect::>(); // now do the sort @@ -419,7 +430,7 @@ impl Default for GasPriceOracleResult { // Adopted from: https://github.com/paradigmxyz/reth/blob/main/crates/primitives/src/transaction/mod.rs#L297 pub(crate) fn effective_gas_tip( - transaction: &reth_rpc_types::Transaction, + transaction: &RpcTransaction, base_fee: Option, ) -> Option { let priority_fee_or_price = match transaction.transaction_type { @@ -456,14 +467,6 @@ pub(crate) fn effective_gas_tip( } } -#[allow(dead_code)] -pub(crate) fn convert_u64_to_u256(u64: u64) -> reth_primitives::U256 { - let bytes: [u8; 8] = u64.to_be_bytes(); - let mut new_bytes = [0u8; 32]; - new_bytes[24..].copy_from_slice(&bytes); - reth_primitives::U256::from_be_bytes(new_bytes) -} - #[cfg(test)] mod tests { use reth_primitives::constants::GWEI_TO_WEI; diff --git a/crates/ethereum-rpc/src/lib.rs b/crates/ethereum-rpc/src/lib.rs index e65ba19ea..51785339f 100644 --- a/crates/ethereum-rpc/src/lib.rs +++ b/crates/ethereum-rpc/src/lib.rs @@ -5,6 +5,10 @@ mod trace; use std::sync::Arc; +use alloy_network::AnyNetwork; +use alloy_primitives::{keccak256, Bytes, B256, U256}; +use alloy_rpc_types::{FeeHistory, Index}; +use alloy_rpc_types_trace::geth::{GethDebugTracingOptions, GethTrace}; #[cfg(feature = "local")] pub use citrea_evm::DevSigner; use citrea_evm::{Evm, Filter}; @@ -15,10 +19,9 @@ pub use gas_price::gas_oracle::GasPriceOracleConfig; use jsonrpsee::http_client::HttpClientBuilder; use jsonrpsee::types::ErrorObjectOwned; use jsonrpsee::RpcModule; -use reth_primitives::{keccak256, BlockNumberOrTag, Bytes, B256, U256}; +use reth_primitives::BlockNumberOrTag; +use reth_rpc_eth_api::RpcTransaction; use reth_rpc_eth_types::EthApiError; -use reth_rpc_types::trace::geth::{GethDebugTracingOptions, GethTrace}; -use reth_rpc_types::{FeeHistory, Index}; use serde_json::json; use sov_db::ledger_db::{LedgerDB, SharedLedgerOps}; use sov_ledger_rpc::LedgerRpcClient; @@ -405,7 +408,7 @@ fn register_rpc_methods( match evm.get_block_number_by_block_hash(block_hash, &mut working_set) { Some(block_number) => block_number, None => { - return Err(EthApiError::UnknownBlockNumber.into()); + return Err(EthApiError::HeaderNotFound(block_hash.into()).into()); } }; @@ -528,7 +531,7 @@ fn register_rpc_methods( }, )?; - rpc.register_async_method::, ErrorObjectOwned>, _, _>( + rpc.register_async_method::>, ErrorObjectOwned>, _, _>( "eth_getTransactionByHash", |parameters, ethereum, _| async move { let mut params = parameters.sequence(); @@ -570,7 +573,9 @@ fn register_rpc_methods( { Ok(tx) => Ok(tx), Err(e) => match e { - jsonrpsee::core::client::Error::Call(e_owned) => Err(e_owned), + jsonrpsee::core::client::Error::Call(e_owned) => { + Err(e_owned) + } _ => Err(to_jsonrpsee_error_object( "SEQUENCER_CLIENT_ERROR", e, diff --git a/crates/ethereum-rpc/src/subscription.rs b/crates/ethereum-rpc/src/subscription.rs index 6f078d7ce..82f758bf5 100644 --- a/crates/ethereum-rpc/src/subscription.rs +++ b/crates/ethereum-rpc/src/subscription.rs @@ -1,9 +1,10 @@ use std::sync::Arc; +use alloy_rpc_types::AnyNetworkBlock; use citrea_evm::{log_matches_filter, Evm, Filter, LogResponse}; use futures::future; use jsonrpsee::{SubscriptionMessage, SubscriptionSink}; -use reth_rpc_types::{BlockNumberOrTag, RichBlock}; +use reth_primitives::BlockNumberOrTag; use sov_modules_api::WorkingSet; use tokio::sync::{broadcast, mpsc, RwLock}; use tokio::task::JoinHandle; @@ -76,7 +77,7 @@ impl Drop for SubscriptionManager { } pub async fn new_heads_notifier( - mut rx: mpsc::Receiver, + mut rx: mpsc::Receiver, head_subscriptions: Arc>>, ) { while let Some(block) = rx.recv().await { @@ -133,7 +134,7 @@ pub async fn logs_notifier( pub async fn soft_confirmation_event_handler( storage: C::Storage, mut soft_confirmation_rx: broadcast::Receiver, - new_heads_tx: mpsc::Sender, + new_heads_tx: mpsc::Sender, logs_tx: mpsc::Sender>, ) { let evm = Evm::::default(); diff --git a/crates/ethereum-rpc/src/trace.rs b/crates/ethereum-rpc/src/trace.rs index bc47c2824..1e3100c9f 100644 --- a/crates/ethereum-rpc/src/trace.rs +++ b/crates/ethereum-rpc/src/trace.rs @@ -1,16 +1,16 @@ use std::collections::BTreeMap; use std::sync::Arc; +use alloy_rpc_types_trace::geth::{ + CallConfig, CallFrame, FourByteFrame, GethDebugBuiltInTracerType, GethDebugTracerConfig, + GethDebugTracerType, GethDebugTracingOptions, GethTrace, NoopFrame, +}; #[cfg(feature = "local")] use citrea_evm::Evm; use jsonrpsee::types::{ErrorObjectOwned, ParamsSequence}; use jsonrpsee::{PendingSubscriptionSink, SubscriptionMessage}; use reth_primitives::BlockNumberOrTag; use reth_rpc_eth_types::error::EthApiError; -use reth_rpc_types::trace::geth::{ - CallConfig, CallFrame, FourByteFrame, GethDebugBuiltInTracerType, GethDebugTracerConfig, - GethDebugTracerType, GethDebugTracingOptions, GethTrace, NoopFrame, -}; use sov_modules_api::WorkingSet; use sov_rollup_interface::services::da::DaService; use tracing::error; @@ -54,7 +54,9 @@ pub async fn handle_debug_trace_chain { if end_block > latest_block_number { - pending.reject(EthApiError::UnknownBlockNumber).await; + pending + .reject(EthApiError::HeaderNotFound(end_block.into())) + .await; return; } end_block diff --git a/crates/evm/Cargo.toml b/crates/evm/Cargo.toml index ea6336030..51f8ad5fe 100644 --- a/crates/evm/Cargo.toml +++ b/crates/evm/Cargo.toml @@ -14,6 +14,7 @@ readme = "README.md" [dependencies] sov-modules-api = { path = "../sovereign-sdk/module-system/sov-modules-api", default-features = false, features = ["macros"] } sov-prover-storage-manager = { path = "../sovereign-sdk/full-node/sov-prover-storage-manager", optional = true } +sov-rollup-interface = { path = "../sovereign-sdk/rollup-interface" } sov-state = { path = "../sovereign-sdk/module-system/sov-state" } citrea-primitives = { path = "../primitives" } @@ -30,16 +31,24 @@ tracing = { workspace = true, optional = true } alloy-consensus = { workspace = true } alloy-eips = { workspace = true } +alloy-network = { workspace = true, optional = true } alloy-primitives = { workspace = true, features = ["rand", "serde"] } -alloy-rlp = { workspace = true, optional = true } +alloy-rlp = { workspace = true } +alloy-rpc-types = { workspace = true, optional = true } +alloy-rpc-types-eth = { version = "0.4.2", optional = true } +alloy-rpc-types-trace = { workspace = true, optional = true } +alloy-serde = { workspace = true, optional = true } alloy-sol-types = { workspace = true } itertools = { workspace = true, optional = true } -reth-primitives = { workspace = true, default-features = false } +reth-primitives = { workspace = true, default-features = false, features = ["serde-bincode-compat"] } +reth-primitives-traits = { workspace = true, default-features = false, features = ["serde-bincode-compat"] } reth-provider = { workspace = true, optional = true } +reth-rpc = { workspace = true, optional = true } +reth-rpc-eth-api = { workspace = true, optional = true } reth-rpc-eth-types = { workspace = true, optional = true } reth-rpc-server-types = { workspace = true, optional = true } -reth-rpc-types = { workspace = true, optional = true } reth-rpc-types-compat = { workspace = true, optional = true } +reth-transaction-pool = { workspace = true, optional = true } revm = { workspace = true, features = ["secp256k1"] } revm-inspectors = { workspace = true, optional = true } secp256k1 = { workspace = true, optional = true } @@ -70,13 +79,19 @@ native = [ "sov-state/native", "sov-modules-api/native", - "reth-rpc-types", + "reth-rpc", "reth-rpc-eth-types", + "reth-rpc-eth-api", "reth-rpc-server-types", "reth-rpc-types-compat", + "reth-transaction-pool", "revm-inspectors", "reth-provider", - "alloy-rlp", + "alloy-rpc-types", + "alloy-rpc-types-eth", + "alloy-rpc-types-trace", + "alloy-serde", + "alloy-network", "jsonrpsee", "schemars", diff --git a/crates/evm/src/call.rs b/crates/evm/src/call.rs index 774778aaa..5dc5e4b61 100644 --- a/crates/evm/src/call.rs +++ b/crates/evm/src/call.rs @@ -10,7 +10,7 @@ use crate::evm::executor::{self}; use crate::evm::handler::{CitreaExternal, CitreaExternalExt}; use crate::evm::primitive_types::{Receipt, TransactionSignedAndRecovered}; use crate::evm::{EvmChainConfig, RlpEvmTransaction}; -use crate::system_contracts::{BitcoinLightClient, Bridge}; +use crate::system_contracts::{BitcoinLightClient, BridgeWrapper}; use crate::system_events::{create_system_transactions, SYSTEM_SIGNER}; use crate::{citrea_spec_id_to_evm_spec_id, Evm, PendingTransaction, SystemEvent}; @@ -52,7 +52,10 @@ impl Evm { return; } - let bridge_contract_exists = self.accounts.get(&Bridge::address(), working_set).is_some(); + let bridge_contract_exists = self + .accounts + .get(&BridgeWrapper::address(), working_set) + .is_some(); if !bridge_contract_exists { native_error!("System contract not found: Bridge"); return; @@ -128,6 +131,7 @@ impl Evm { ) -> Result { // use of `self.block_env` is allowed here + // TODO: should not include non deserilizable transactions let users_txs: Vec = txs .into_iter() .filter_map(|tx| match tx.try_into() { diff --git a/crates/evm/src/evm/call.rs b/crates/evm/src/evm/call.rs index d1b9f4600..4375cda02 100644 --- a/crates/evm/src/evm/call.rs +++ b/crates/evm/src/evm/call.rs @@ -2,9 +2,9 @@ use std::cmp::min; -use reth_primitives::{B256, U256}; +use alloy_primitives::{B256, U256}; +use alloy_rpc_types::TransactionRequest; use reth_rpc_eth_types::error::{EthApiError, EthResult, RpcInvalidTransactionError}; -use reth_rpc_types::TransactionRequest; use revm::primitives::{BlockEnv, CfgEnvWithHandlerCfg, TxEnv}; use crate::caller_gas_allowance; diff --git a/crates/evm/src/evm/conversions.rs b/crates/evm/src/evm/conversions.rs index af7989998..d8fa56e6d 100644 --- a/crates/evm/src/evm/conversions.rs +++ b/crates/evm/src/evm/conversions.rs @@ -1,6 +1,7 @@ +use alloy_eips::eip2718::Decodable2718; +use alloy_primitives::Bytes as RethBytes; use reth_primitives::{ - Bytes as RethBytes, TransactionSigned, TransactionSignedEcRecovered, TransactionSignedNoHash, - KECCAK_EMPTY, + TransactionSigned, TransactionSignedEcRecovered, TransactionSignedNoHash, KECCAK_EMPTY, }; use revm::primitives::{AccountInfo as ReVmAccountInfo, SpecId, TransactTo, TxEnv, U256}; @@ -96,7 +97,9 @@ impl TryFrom for TransactionSignedNoHash { return Err(ConversionError::EmptyRawTransactionData); } - let transaction = TransactionSigned::decode_enveloped(&mut data.as_ref()) + // According to this pr: https://github.com/paradigmxyz/reth/pull/11218 + // decode_enveloped -> decode_2718 + let transaction = TransactionSigned::decode_2718(&mut data.as_ref()) .map_err(|_| ConversionError::FailedToDecodeSignedTransaction)?; Ok(transaction.into()) diff --git a/crates/evm/src/evm/db.rs b/crates/evm/src/evm/db.rs index b880a343a..30884ea1b 100644 --- a/crates/evm/src/evm/db.rs +++ b/crates/evm/src/evm/db.rs @@ -1,7 +1,7 @@ #[cfg(feature = "native")] use std::collections::HashMap; -use reth_primitives::{keccak256, Address, B256}; +use alloy_primitives::{keccak256, Address, B256}; use revm::primitives::{AccountInfo as ReVmAccountInfo, Bytecode, SpecId, U256}; use revm::Database; use sov_modules_api::{StateMapAccessor, WorkingSet}; @@ -75,7 +75,7 @@ impl<'a, C: sov_modules_api::Context> EvmDb<'a, C> { pub(crate) fn override_set_account_storage( &mut self, account: &Address, - state_diff: HashMap, + state_diff: HashMap>, ) { let db_account = DbAccount::new(*account); for (slot, value) in state_diff { diff --git a/crates/evm/src/evm/db_init.rs b/crates/evm/src/evm/db_init.rs index 680cba87e..bf49cf5ce 100644 --- a/crates/evm/src/evm/db_init.rs +++ b/crates/evm/src/evm/db_init.rs @@ -1,4 +1,4 @@ -use reth_primitives::U256; +use alloy_primitives::U256; #[cfg(test)] use revm::db::{CacheDB, EmptyDB}; use revm::primitives::{Address, Bytecode, SpecId, B256}; diff --git a/crates/evm/src/evm/error/mod.rs b/crates/evm/src/evm/error/mod.rs deleted file mode 100644 index 49b89f1ca..000000000 --- a/crates/evm/src/evm/error/mod.rs +++ /dev/null @@ -1,3 +0,0 @@ -pub(crate) mod pool; -pub(crate) mod result; -pub mod rpc; diff --git a/crates/evm/src/evm/error/pool.rs b/crates/evm/src/evm/error/pool.rs deleted file mode 100644 index c27c56c60..000000000 --- a/crates/evm/src/evm/error/pool.rs +++ /dev/null @@ -1,295 +0,0 @@ -//! Transaction pool errors - -use reth_primitives::{Address, BlobTransactionValidationError, InvalidTransactionError, TxHash}; - -/// A trait for additional errors that can be thrown by the transaction pool. -/// -/// For example during validation -/// [TransactionValidator::validate_transaction](crate::validate::TransactionValidator::validate_transaction) -pub trait PoolTransactionError: std::error::Error + Send + Sync { - /// Returns `true` if the error was caused by a transaction that is considered bad in the - /// context of the transaction pool and warrants peer penalization. - /// - /// See [PoolError::is_bad_transaction]. - fn is_bad_transaction(&self) -> bool; -} - -// Needed for `#[error(transparent)]` -impl std::error::Error for Box { - fn source(&self) -> Option<&(dyn std::error::Error + 'static)> { - (**self).source() - } -} - -/// Transaction pool error. -#[derive(Debug, thiserror::Error)] -#[error("[{hash}]: {kind}")] -pub struct PoolError { - /// The transaction hash that caused the error. - pub hash: TxHash, - /// The error kind. - pub kind: PoolErrorKind, -} - -/// Transaction pool error kind. -#[derive(Debug, thiserror::Error)] -pub enum PoolErrorKind { - /// Same transaction already imported - #[error("already imported")] - AlreadyImported, - /// Thrown if a replacement transaction's gas price is below the already imported transaction - #[error("insufficient gas price to replace existing transaction")] - ReplacementUnderpriced, - /// The fee cap of the transaction is below the minimum fee cap determined by the protocol - #[error("transaction feeCap {0} below chain minimum")] - FeeCapBelowMinimumProtocolFeeCap(u128), - /// Thrown when the number of unique transactions of a sender exceeded the slot capacity. - #[error("rejected due to {0} being identified as a spammer")] - SpammerExceededCapacity(Address), - /// Thrown when a new transaction is added to the pool, but then immediately discarded to - /// respect the size limits of the pool. - #[error("transaction discarded outright due to pool size constraints")] - DiscardedOnInsert, - /// Thrown when the transaction is considered invalid. - #[error(transparent)] - InvalidTransaction(#[from] InvalidPoolTransactionError), - /// Thrown if the mutual exclusivity constraint (blob vs normal transaction) is violated. - #[error("transaction type {1} conflicts with existing transaction for {0}")] - ExistingConflictingTransactionType(Address, u8), - /// Any other error that occurred while inserting/validating a transaction. e.g. IO database - /// error - #[error(transparent)] - Other(#[from] Box), -} - -// === impl PoolError === - -impl PoolError { - /// Creates a new pool error. - pub fn new(hash: TxHash, kind: impl Into) -> Self { - Self { - hash, - kind: kind.into(), - } - } - - /// Creates a new pool error with the `Other` kind. - pub fn other(hash: TxHash, error: impl Into>) -> Self { - Self { - hash, - kind: PoolErrorKind::Other(error.into()), - } - } - - /// Returns `true` if the error was caused by a transaction that is considered bad in the - /// context of the transaction pool and warrants peer penalization. - /// - /// Not all error variants are caused by the incorrect composition of the transaction (See also - /// [InvalidPoolTransactionError]) and can be caused by the current state of the transaction - /// pool. For example the transaction pool is already full or the error was caused my an - /// internal error, such as database errors. - /// - /// This function returns true only if the transaction will never make it into the pool because - /// its composition is invalid and the original sender should have detected this as well. This - /// is used to determine whether the original sender should be penalized for sending an - /// erroneous transaction. - #[inline] - pub fn is_bad_transaction(&self) -> bool { - match &self.kind { - PoolErrorKind::AlreadyImported => { - // already imported but not bad - false - } - PoolErrorKind::ReplacementUnderpriced => { - // already imported but not bad - false - } - PoolErrorKind::FeeCapBelowMinimumProtocolFeeCap(_) => { - // fee cap of the tx below the technical minimum determined by the protocol, see - // [MINIMUM_PROTOCOL_FEE_CAP](reth_primitives::constants::MIN_PROTOCOL_BASE_FEE) - // although this transaction will always be invalid, we do not want to penalize the - // sender because this check simply could not be implemented by the client - false - } - PoolErrorKind::SpammerExceededCapacity(_) => { - // the sender exceeded the slot capacity, we should not penalize the peer for - // sending the tx because we don't know if all the transactions are sent from the - // same peer, there's also a chance that old transactions haven't been cleared yet - // (pool lags behind) and old transaction still occupy a slot in the pool - false - } - PoolErrorKind::DiscardedOnInsert => { - // valid tx but dropped due to size constraints - false - } - PoolErrorKind::InvalidTransaction(err) => { - // transaction rejected because it violates constraints - err.is_bad_transaction() - } - PoolErrorKind::Other(_) => { - // internal error unrelated to the transaction - false - } - PoolErrorKind::ExistingConflictingTransactionType(_, _) => { - // this is not a protocol error but an implementation error since the pool enforces - // exclusivity (blob vs normal tx) for all senders - false - } - } - } -} - -/// Represents all errors that can happen when validating transactions for the pool for EIP-4844 -/// transactions -#[derive(Debug, thiserror::Error)] -pub enum Eip4844PoolTransactionError { - /// Thrown if we're unable to find the blob for a transaction that was previously extracted - #[error("blob sidecar not found for EIP4844 transaction")] - MissingEip4844BlobSidecar, - /// Thrown if an EIP-4844 without any blobs arrives - #[error("blobless blob transaction")] - NoEip4844Blobs, - /// Thrown if an EIP-4844 without any blobs arrives - #[error("too many blobs in transaction: have {have}, permitted {permitted}")] - TooManyEip4844Blobs { - /// Number of blobs the transaction has - have: usize, - /// Number of maximum blobs the transaction can have - permitted: usize, - }, - /// Thrown if validating the blob sidecar for the transaction failed. - #[error(transparent)] - InvalidEip4844Blob(BlobTransactionValidationError), - /// EIP-4844 transactions are only accepted if they're gapless, meaning the previous nonce of - /// the transaction (`tx.nonce -1`) must either be in the pool or match the on chain nonce of - /// the sender. - /// - /// This error is thrown on validation if a valid blob transaction arrives with a nonce that - /// would introduce gap in the nonce sequence. - #[error("nonce too high")] - Eip4844NonceGap, -} - -/// Represents errors that can happen when validating transactions for the pool -/// -/// See [TransactionValidator](crate::TransactionValidator). -#[derive(Debug, thiserror::Error)] -pub enum InvalidPoolTransactionError { - /// Hard consensus errors - #[error(transparent)] - Consensus(#[from] InvalidTransactionError), - /// Thrown when a new transaction is added to the pool, but then immediately discarded to - /// respect the size limits of the pool. - #[error("transaction's gas limit {0} exceeds block's gas limit {1}")] - ExceedsGasLimit(u64, u64), - /// Thrown when a new transaction is added to the pool, but then immediately discarded to - /// respect the max_init_code_size. - #[error("transaction's size {0} exceeds max_init_code_size {1}")] - ExceedsMaxInitCodeSize(usize, usize), - /// Thrown if the input data of a transaction is greater - /// than some meaningful limit a user might use. This is not a consensus error - /// making the transaction invalid, rather a DOS protection. - #[error("input data too large")] - OversizedData(usize, usize), - /// Thrown if the transaction's fee is below the minimum fee - #[error("transaction underpriced")] - Underpriced, - /// Thrown if the transaction's would require an account to be overdrawn - #[error("transaction overdraws from account")] - Overdraft, - /// Eip-4844 related errors - #[error(transparent)] - Eip4844(#[from] Eip4844PoolTransactionError), - /// Any other error that occurred while inserting/validating that is transaction specific - #[error(transparent)] - Other(Box), - /// The transaction is specified to use less gas than required to start the - /// invocation. - #[error("intrinsic gas too low")] - IntrinsicGasTooLow, -} - -// === impl InvalidPoolTransactionError === - -impl InvalidPoolTransactionError { - /// Returns `true` if the error was caused by a transaction that is considered bad in the - /// context of the transaction pool and warrants peer penalization. - /// - /// See [PoolError::is_bad_transaction]. - #[inline] - fn is_bad_transaction(&self) -> bool { - match self { - InvalidPoolTransactionError::Consensus(err) => { - // transaction considered invalid by the consensus rules - // We do not consider the following errors to be erroneous transactions, since they - // depend on dynamic environmental conditions and should not be assumed to have been - // intentionally caused by the sender - match err { - InvalidTransactionError::InsufficientFunds { .. } - | InvalidTransactionError::NonceNotConsistent => { - // transaction could just have arrived late/early - false - } - InvalidTransactionError::GasTooLow - | InvalidTransactionError::GasTooHigh - | InvalidTransactionError::TipAboveFeeCap => { - // these are technically not invalid - false - } - InvalidTransactionError::FeeCapTooLow => { - // dynamic, but not used during validation - false - } - InvalidTransactionError::Eip2930Disabled - | InvalidTransactionError::Eip1559Disabled - | InvalidTransactionError::Eip4844Disabled - | InvalidTransactionError::Eip7702Disabled => { - // settings - false - } - InvalidTransactionError::OldLegacyChainId => true, - InvalidTransactionError::ChainIdMismatch => true, - InvalidTransactionError::GasUintOverflow => true, - InvalidTransactionError::TxTypeNotSupported => true, - InvalidTransactionError::SignerAccountHasBytecode => true, - } - } - InvalidPoolTransactionError::ExceedsGasLimit(_, _) => true, - InvalidPoolTransactionError::ExceedsMaxInitCodeSize(_, _) => true, - InvalidPoolTransactionError::OversizedData(_, _) => true, - InvalidPoolTransactionError::Underpriced => { - // local setting - false - } - InvalidPoolTransactionError::IntrinsicGasTooLow => true, - InvalidPoolTransactionError::Overdraft => false, - InvalidPoolTransactionError::Other(err) => err.is_bad_transaction(), - InvalidPoolTransactionError::Eip4844(eip4844_err) => { - match eip4844_err { - Eip4844PoolTransactionError::MissingEip4844BlobSidecar => { - // this is only reachable when blob transactions are reinjected and we're - // unable to find the previously extracted blob - false - } - Eip4844PoolTransactionError::InvalidEip4844Blob(_) => { - // This is only reachable when the blob is invalid - true - } - Eip4844PoolTransactionError::Eip4844NonceGap => { - // it is possible that the pool sees `nonce n` before `nonce n-1` and this - // is only thrown for valid(good) blob transactions - false - } - Eip4844PoolTransactionError::NoEip4844Blobs => { - // this is a malformed transaction and should not be sent over the network - true - } - Eip4844PoolTransactionError::TooManyEip4844Blobs { .. } => { - // this is a malformed transaction and should not be sent over the network - true - } - } - } - } - } -} diff --git a/crates/evm/src/evm/error/result.rs b/crates/evm/src/evm/error/result.rs deleted file mode 100644 index 82880266a..000000000 --- a/crates/evm/src/evm/error/result.rs +++ /dev/null @@ -1,32 +0,0 @@ -//! Additional helpers for converting errors. - -/// Constructs an internal JSON-RPC error. -pub(crate) fn internal_rpc_err( - msg: impl Into, -) -> jsonrpsee::types::error::ErrorObject<'static> { - rpc_err(jsonrpsee::types::error::INTERNAL_ERROR_CODE, msg, None) -} - -/// Constructs an internal JSON-RPC error with code and message -pub(crate) fn rpc_error_with_code( - code: i32, - msg: impl Into, -) -> jsonrpsee::types::error::ErrorObject<'static> { - rpc_err(code, msg, None) -} - -/// Constructs a JSON-RPC error, consisting of `code`, `message` and optional `data`. -pub(crate) fn rpc_err( - code: i32, - msg: impl Into, - data: Option<&[u8]>, -) -> jsonrpsee::types::error::ErrorObject<'static> { - jsonrpsee::types::error::ErrorObject::owned( - code, - msg.into(), - data.map(|data| { - jsonrpsee::core::to_json_raw_value(&format!("0x{}", hex::encode(data))) - .expect("serializing String does fail") - }), - ) -} diff --git a/crates/evm/src/evm/error/rpc.rs b/crates/evm/src/evm/error/rpc.rs deleted file mode 100644 index c74c26bfe..000000000 --- a/crates/evm/src/evm/error/rpc.rs +++ /dev/null @@ -1,224 +0,0 @@ -//! Implementation specific Errors for the `eth_` namespace. - -use jsonrpsee::types::ErrorObject; -use reth_primitives::Bytes; -use reth_rpc_eth_types::error::{EthResult, RevertError, RpcInvalidTransactionError}; -use revm::primitives::{ExecutionResult, HaltReason, OutOfGasError}; - -use super::pool::{ - Eip4844PoolTransactionError, InvalidPoolTransactionError, PoolError, PoolErrorKind, - PoolTransactionError, -}; -use super::result::internal_rpc_err; - -// /// Eth Optimism Api Error -// #[cfg(feature = "optimism")] -// #[derive(Debug, thiserror::Error)] -// pub enum OptimismEthApiError { -// /// Wrapper around a [hyper::Error]. -// #[error(transparent)] -// HyperError(#[from] hyper::Error), -// /// Wrapper around an [reqwest::Error]. -// #[error(transparent)] -// HttpError(#[from] reqwest::Error), -// /// Thrown when serializing transaction to forward to sequencer -// #[error("invalid sequencer transaction")] -// InvalidSequencerTransaction, -// /// Thrown when calculating L1 gas fee -// #[error("failed to calculate l1 gas fee")] -// L1BlockFeeError, -// /// Thrown when calculating L1 gas used -// #[error("failed to calculate l1 gas used")] -// L1BlockGasError, -// } - -// impl From for EthApiError { -// fn from(error: JsInspectorError) -> Self { -// match error { -// err @ JsInspectorError::JsError(_) => { -// EthApiError::InternalJsTracerError(err.to_string()) -// } -// err => EthApiError::InvalidParams(err.to_string()), -// } -// } -// } - -// /// Optimism specific invalid transaction errors -// #[cfg(feature = "optimism")] -// #[derive(thiserror::Error, Debug)] -// pub enum OptimismInvalidTransactionError { -// /// A deposit transaction was submitted as a system transaction post-regolith. -// #[error("no system transactions allowed after regolith")] -// DepositSystemTxPostRegolith, -// /// A deposit transaction halted post-regolith -// #[error("deposit transaction halted after regolith")] -// HaltedDepositPostRegolith, -// } - -/// A helper error type that's mainly used to mirror `geth` Txpool's error messages -#[derive(Debug, thiserror::Error)] -pub enum RpcPoolError { - /// When the transaction is already known - #[error("already known")] - AlreadyKnown, - /// When the sender is invalid - #[error("invalid sender")] - InvalidSender, - /// When the transaction is underpriced - #[error("transaction underpriced")] - Underpriced, - /// When the transaction pool is full - #[error("txpool is full")] - TxPoolOverflow, - /// When the replacement transaction is underpriced - #[error("replacement transaction underpriced")] - ReplaceUnderpriced, - /// When the transaction exceeds the block gas limit - #[error("exceeds block gas limit")] - ExceedsGasLimit, - /// When a negative value is encountered - #[error("negative value")] - NegativeValue, - /// When oversized data is encountered - #[error("oversized data")] - OversizedData, - /// When the max initcode size is exceeded - #[error("max initcode size exceeded")] - ExceedsMaxInitCodeSize, - /// Errors related to invalid transactions - #[error(transparent)] - Invalid(#[from] RpcInvalidTransactionError), - /// Custom pool error - #[error(transparent)] - PoolTransactionError(Box), - /// Eip-4844 related error - #[error(transparent)] - Eip4844(#[from] Eip4844PoolTransactionError), - /// Thrown if a conflicting transaction type is already in the pool - /// - /// In other words, thrown if a transaction with the same sender that violates the exclusivity - /// constraint (blob vs normal tx) - #[error("address already reserved")] - AddressAlreadyReserved, - /// Other unspecified error - #[error(transparent)] - Other(Box), -} - -impl From for ErrorObject<'static> { - fn from(error: RpcPoolError) -> Self { - match error { - RpcPoolError::Invalid(err) => err.into(), - error => internal_rpc_err(error.to_string()), - } - } -} - -impl From for RpcPoolError { - fn from(err: PoolError) -> RpcPoolError { - match err.kind { - PoolErrorKind::ReplacementUnderpriced => RpcPoolError::ReplaceUnderpriced, - PoolErrorKind::FeeCapBelowMinimumProtocolFeeCap(_) => RpcPoolError::Underpriced, - PoolErrorKind::SpammerExceededCapacity(_) => RpcPoolError::TxPoolOverflow, - PoolErrorKind::DiscardedOnInsert => RpcPoolError::TxPoolOverflow, - PoolErrorKind::InvalidTransaction(err) => err.into(), - PoolErrorKind::Other(err) => RpcPoolError::Other(err), - PoolErrorKind::AlreadyImported => RpcPoolError::AlreadyKnown, - PoolErrorKind::ExistingConflictingTransactionType(_, _) => { - RpcPoolError::AddressAlreadyReserved - } - } - } -} - -impl From for RpcPoolError { - fn from(err: InvalidPoolTransactionError) -> RpcPoolError { - match err { - InvalidPoolTransactionError::Consensus(err) => RpcPoolError::Invalid(err.into()), - InvalidPoolTransactionError::ExceedsGasLimit(_, _) => RpcPoolError::ExceedsGasLimit, - InvalidPoolTransactionError::ExceedsMaxInitCodeSize(_, _) => { - RpcPoolError::ExceedsMaxInitCodeSize - } - InvalidPoolTransactionError::IntrinsicGasTooLow => { - RpcPoolError::Invalid(RpcInvalidTransactionError::GasTooLow) - } - InvalidPoolTransactionError::OversizedData(_, _) => RpcPoolError::OversizedData, - InvalidPoolTransactionError::Underpriced => RpcPoolError::Underpriced, - InvalidPoolTransactionError::Other(err) => RpcPoolError::PoolTransactionError(err), - InvalidPoolTransactionError::Eip4844(err) => RpcPoolError::Eip4844(err), - InvalidPoolTransactionError::Overdraft => { - RpcPoolError::Invalid(RpcInvalidTransactionError::InsufficientFunds) - } - } - } -} - -/// Errors returned from a sign request. -#[derive(Debug, thiserror::Error)] -pub enum SignError { - /// Error occured while trying to sign data. - #[error("could not sign")] - CouldNotSign, - /// Signer for requested account not found. - #[error("unknown account")] - NoAccount, - /// TypedData has invalid format. - #[error("given typed data is not valid")] - InvalidTypedData, - /// Invalid transaction request in `sign_transaction`. - #[error("invalid transaction request")] - InvalidTransactionRequest, - /// No chain ID was given. - #[error("no chainid")] - NoChainId, -} - -// #[allow(clippy::unconditional_recursion)] -// impl From for ErrorObject<'static> { -// fn from(error: SignError) -> Self { -// error.into() -// } -// } - -/// We have to implement these functions because they are private to the reth_rpc crate -pub trait RpcInvalidTransactionErrorExt { - /// Converts the out of gas error - fn out_of_gas(reason: OutOfGasError, gas_limit: u64) -> RpcInvalidTransactionError { - match reason { - OutOfGasError::Basic => RpcInvalidTransactionError::BasicOutOfGas(gas_limit), - OutOfGasError::Memory => RpcInvalidTransactionError::MemoryOutOfGas(gas_limit), - OutOfGasError::Precompile => RpcInvalidTransactionError::PrecompileOutOfGas(gas_limit), - OutOfGasError::InvalidOperand => { - RpcInvalidTransactionError::InvalidOperandOutOfGas(gas_limit) - } - OutOfGasError::MemoryLimit => RpcInvalidTransactionError::MemoryOutOfGas(gas_limit), - } - } - - /// Converts the halt error - /// - /// Takes the configured gas limit of the transaction which is attached to the error - fn halt(reason: HaltReason, gas_limit: u64) -> RpcInvalidTransactionError { - match reason { - HaltReason::OutOfGas(err) => Self::out_of_gas(err, gas_limit), - HaltReason::NonceOverflow => RpcInvalidTransactionError::NonceMaxValue, - err => RpcInvalidTransactionError::EvmHalt(err), - } - } -} - -impl RpcInvalidTransactionErrorExt for RpcInvalidTransactionError {} - -/// Converts the evm [ExecutionResult] into a result where `Ok` variant is the output bytes if it is -/// [ExecutionResult::Success]. -pub(crate) fn ensure_success(result: ExecutionResult) -> EthResult { - match result { - ExecutionResult::Success { output, .. } => Ok(output.into_data()), - ExecutionResult::Revert { output, .. } => { - Err(RpcInvalidTransactionError::Revert(RevertError::new(output)).into()) - } - ExecutionResult::Halt { reason, gas_used } => { - Err(RpcInvalidTransactionError::halt(reason, gas_used).into()) - } - } -} diff --git a/crates/evm/src/evm/handler.rs b/crates/evm/src/evm/handler.rs index 29aa499b3..16fa41639 100644 --- a/crates/evm/src/evm/handler.rs +++ b/crates/evm/src/evm/handler.rs @@ -320,7 +320,7 @@ impl CitreaHandler CitreaHandler( .. } = &mut context.evm.inner; - let (account, _) = journaled_state.load_account(address, db)?; + let mut account = journaled_state.load_account(address, db)?; account.mark_touch(); let balance = &mut account.info.balance; diff --git a/crates/evm/src/evm/mod.rs b/crates/evm/src/evm/mod.rs index 1f90fe66c..1f738544f 100644 --- a/crates/evm/src/evm/mod.rs +++ b/crates/evm/src/evm/mod.rs @@ -1,5 +1,5 @@ use alloy_eips::eip1559::BaseFeeParams; -use reth_primitives::{address, Address, B256, U256}; +use alloy_primitives::{address, Address, B256, U256}; use revm::primitives::bitvec::view::BitViewSized; use revm::primitives::specification::SpecId; use serde::{Deserialize, Serialize}; @@ -19,8 +19,6 @@ pub(crate) mod system_events; #[cfg(feature = "native")] pub(crate) mod call; -#[cfg(feature = "native")] -pub(crate) mod error; #[cfg(all(test, feature = "native"))] mod tests; diff --git a/crates/evm/src/evm/primitive_types.rs b/crates/evm/src/evm/primitive_types.rs index 77d956fb7..5148efb9c 100644 --- a/crates/evm/src/evm/primitive_types.rs +++ b/crates/evm/src/evm/primitive_types.rs @@ -1,6 +1,10 @@ use std::ops::Range; -use reth_primitives::{Address, Header, SealedHeader, TransactionSigned, B256}; +use alloy_primitives::{Address, BlockNumber, Bloom, Bytes, Sealable, B256, B64, U256}; +use alloy_rlp::bytes::BufMut; +use alloy_rlp::{Decodable, Encodable, RlpDecodable, RlpEncodable}; +use reth_primitives::{Header as AlloyHeader, SealedHeader, TransactionSigned}; +use serde::{Deserialize, Serialize}; /// Rlp encoded evm transaction. #[derive( @@ -17,7 +21,156 @@ pub struct RlpEvmTransaction { pub rlp: Vec, } -#[derive(Debug, PartialEq, Clone, serde::Serialize, serde::Deserialize)] +/// This is the old version of the Header we launched testnet with with Reth v1.0.4 +/// This is used because the new alloy_consensus::Header has new serde attributes and some type changes, which causes different state roots +/// In the future, before mainnet, we will be using alloy_consensus::Header encode() and decode() functions to have backwards compatible encoding and decoding +/// Ethereum Block header +#[derive(Clone, Debug, PartialEq, Eq, Hash, Serialize, Deserialize, Default)] +pub struct DoNotUseHeader { + /// The Keccak 256-bit hash of the parent + /// block’s header, in its entirety; formally Hp. + pub parent_hash: B256, + /// The Keccak 256-bit hash of the ommers list portion of this block; formally Ho. + pub ommers_hash: B256, + /// The 160-bit address to which all fees collected from the successful mining of this block + /// be transferred; formally Hc. + pub beneficiary: Address, + /// The Keccak 256-bit hash of the root node of the state trie, after all transactions are + /// executed and finalisations applied; formally Hr. + pub state_root: B256, + /// The Keccak 256-bit hash of the root node of the trie structure populated with each + /// transaction in the transactions list portion of the block; formally Ht. + pub transactions_root: B256, + /// The Keccak 256-bit hash of the root node of the trie structure populated with the receipts + /// of each transaction in the transactions list portion of the block; formally He. + pub receipts_root: B256, + /// The Keccak 256-bit hash of the withdrawals list portion of this block. + /// + /// See [EIP-4895](https://eips.ethereum.org/EIPS/eip-4895). + pub withdrawals_root: Option, + /// The Bloom filter composed from indexable information (logger address and log topics) + /// contained in each log entry from the receipt of each transaction in the transactions list; + /// formally Hb. + pub logs_bloom: Bloom, + /// A scalar value corresponding to the difficulty level of this block. This can be calculated + /// from the previous block’s difficulty level and the timestamp; formally Hd. + pub difficulty: U256, + /// A scalar value equal to the number of ancestor blocks. The genesis block has a number of + /// zero; formally Hi. + pub number: BlockNumber, + /// A scalar value equal to the current limit of gas expenditure per block; formally Hl. + pub gas_limit: u64, + /// A scalar value equal to the total gas used in transactions in this block; formally Hg. + pub gas_used: u64, + /// A scalar value equal to the reasonable output of Unix’s time() at this block’s inception; + /// formally Hs. + pub timestamp: u64, + /// A 256-bit hash which, combined with the + /// nonce, proves that a sufficient amount of computation has been carried out on this block; + /// formally Hm. + pub mix_hash: B256, + /// A 64-bit value which, combined with the mixhash, proves that a sufficient amount of + /// computation has been carried out on this block; formally Hn. + pub nonce: u64, + /// A scalar representing EIP1559 base fee which can move up or down each block according + /// to a formula which is a function of gas used in parent block and gas target + /// (block gas limit divided by elasticity multiplier) of parent block. + /// The algorithm results in the base fee per gas increasing when blocks are + /// above the gas target, and decreasing when blocks are below the gas target. The base fee per + /// gas is burned. + pub base_fee_per_gas: Option, + /// The total amount of blob gas consumed by the transactions within the block, added in + /// EIP-4844. + pub blob_gas_used: Option, + /// A running total of blob gas consumed in excess of the target, prior to the block. Blocks + /// with above-target blob gas consumption increase this value, blocks with below-target blob + /// gas consumption decrease it (bounded at 0). This was added in EIP-4844. + pub excess_blob_gas: Option, + /// The hash of the parent beacon block's root is included in execution blocks, as proposed by + /// EIP-4788. + /// + /// This enables trust-minimized access to consensus state, supporting staking pools, bridges, + /// and more. + /// + /// The beacon roots contract handles root storage, enhancing Ethereum's functionalities. + pub parent_beacon_block_root: Option, + /// The Keccak 256-bit hash of the root node of the trie structure populated with each + /// [EIP-7685] request in the block body. + /// + /// [EIP-7685]: https://eips.ethereum.org/EIPS/eip-7685 + pub requests_root: Option, + /// An arbitrary byte array containing data relevant to this block. This must be 32 bytes or + /// fewer; formally Hx. + pub extra_data: Bytes, +} + +impl From for AlloyHeader { + fn from(value: DoNotUseHeader) -> Self { + Self { + parent_hash: value.parent_hash, + ommers_hash: value.ommers_hash, + beneficiary: value.beneficiary, + state_root: value.state_root, + transactions_root: value.transactions_root, + receipts_root: value.receipts_root, + withdrawals_root: value.withdrawals_root, + logs_bloom: value.logs_bloom, + difficulty: value.difficulty, + number: value.number, + gas_limit: value.gas_limit, + gas_used: value.gas_used, + timestamp: value.timestamp, + mix_hash: value.mix_hash, + nonce: B64::new(value.nonce.to_be_bytes()), + base_fee_per_gas: value.base_fee_per_gas, + blob_gas_used: value.blob_gas_used, + excess_blob_gas: value.excess_blob_gas, + parent_beacon_block_root: value.parent_beacon_block_root, + requests_root: value.requests_root, + extra_data: value.extra_data, + } + } +} + +impl From for DoNotUseHeader { + fn from(value: AlloyHeader) -> Self { + Self { + parent_hash: value.parent_hash, + ommers_hash: value.ommers_hash, + beneficiary: value.beneficiary, + state_root: value.state_root, + transactions_root: value.transactions_root, + receipts_root: value.receipts_root, + withdrawals_root: value.withdrawals_root, + logs_bloom: value.logs_bloom, + difficulty: value.difficulty, + number: value.number, + gas_limit: value.gas_limit, + gas_used: value.gas_used, + timestamp: value.timestamp, + mix_hash: value.mix_hash, + nonce: value.nonce.into(), + base_fee_per_gas: value.base_fee_per_gas, + blob_gas_used: value.blob_gas_used, + excess_blob_gas: value.excess_blob_gas, + parent_beacon_block_root: value.parent_beacon_block_root, + requests_root: value.requests_root, + extra_data: value.extra_data.clone(), + } + } +} + +#[derive( + Debug, + PartialEq, + Clone, + serde::Serialize, + serde::Deserialize, + RlpEncodable, + RlpDecodable, + Default, + Eq, +)] pub(crate) struct TransactionSignedAndRecovered { /// Signer of the transaction pub(crate) signer: Address, @@ -28,9 +181,9 @@ pub(crate) struct TransactionSignedAndRecovered { } #[derive(Debug, PartialEq, Clone, serde::Serialize, serde::Deserialize)] -pub(crate) struct Block { +pub(crate) struct Block { /// Block header. - pub(crate) header: Header, + pub(crate) header: H, /// L1 fee rate. pub(crate) l1_fee_rate: u128, @@ -42,10 +195,27 @@ pub(crate) struct Block { pub(crate) transactions: Range, } -impl Block { +impl Block { + pub(crate) fn seal(self) -> SealedBlock { + let alloy_header = self.header; + let sealed = alloy_header.seal_slow(); + let (header, seal) = sealed.into_parts(); + SealedBlock { + header: SealedHeader::new(header, seal), + l1_fee_rate: self.l1_fee_rate, + l1_hash: self.l1_hash, + transactions: self.transactions, + } + } +} + +impl Block { pub(crate) fn seal(self) -> SealedBlock { + let alloy_header = AlloyHeader::from(self.header); + let sealed = alloy_header.seal_slow(); + let (header, seal) = sealed.into_parts(); SealedBlock { - header: self.header.seal_slow(), + header: SealedHeader::new(header, seal), l1_fee_rate: self.l1_fee_rate, l1_hash: self.l1_hash, transactions: self.transactions, @@ -53,10 +223,32 @@ impl Block { } } +impl From> for Block { + fn from(value: Block) -> Self { + Self { + header: value.header.into(), + l1_fee_rate: value.l1_fee_rate, + l1_hash: value.l1_hash, + transactions: value.transactions, + } + } +} + +impl From> for Block { + fn from(value: Block) -> Self { + Self { + header: value.header.into(), + l1_fee_rate: value.l1_fee_rate, + l1_hash: value.l1_hash, + transactions: value.transactions, + } + } +} + #[derive(Debug, PartialEq, Clone, serde::Serialize, serde::Deserialize)] pub(crate) struct SealedBlock { /// Block header. - pub(crate) header: SealedHeader, + pub(crate) header: SealedHeader, /// L1 fee rate. pub(crate) l1_fee_rate: u128, @@ -68,7 +260,125 @@ pub(crate) struct SealedBlock { pub(crate) transactions: Range, } -#[derive(Debug, PartialEq, Clone, serde::Serialize, serde::Deserialize)] +impl Encodable for Block { + fn encode(&self, out: &mut dyn BufMut) { + let mut rlp_head = alloy_rlp::Header { + list: true, + payload_length: 0, + }; + rlp_head.payload_length += self.header.length(); + rlp_head.payload_length += self.l1_fee_rate.length(); + rlp_head.payload_length += self.l1_hash.length(); + rlp_head.payload_length += self.transactions.start.length(); + rlp_head.payload_length += self.transactions.end.length(); + rlp_head.encode(out); + let header: AlloyHeader = self.header.clone(); + header.encode(out); + self.l1_fee_rate.encode(out); + self.l1_hash.encode(out); + self.transactions.start.encode(out); + self.transactions.end.encode(out); + } +} + +impl Decodable for Block { + fn decode(buf: &mut &[u8]) -> alloy_rlp::Result { + let b = &mut &**buf; + let rlp_head = alloy_rlp::Header::decode(b)?; + if !rlp_head.list { + return Err(alloy_rlp::Error::UnexpectedString); + } + let started_len = b.len(); + + let header = AlloyHeader::decode(b)?; + let l1_fee_rate = Decodable::decode(b)?; + let l1_hash = Decodable::decode(b)?; + let start = Decodable::decode(b)?; + let end = Decodable::decode(b)?; + + let consumed = started_len - b.len(); + if consumed != rlp_head.payload_length { + return Err(alloy_rlp::Error::ListLengthMismatch { + expected: rlp_head.payload_length, + got: consumed, + }); + } + *buf = *b; + + Ok(Self { + header, + l1_fee_rate, + l1_hash, + transactions: Range { start, end }, + }) + } +} + +impl Encodable for SealedBlock { + fn encode(&self, out: &mut dyn BufMut) { + let mut rlp_head = alloy_rlp::Header { + list: true, + payload_length: 0, + }; + rlp_head.payload_length += self.header.length(); + rlp_head.payload_length += self.l1_fee_rate.length(); + rlp_head.payload_length += self.l1_hash.length(); + rlp_head.payload_length += self.transactions.start.length(); + rlp_head.payload_length += self.transactions.end.length(); + rlp_head.encode(out); + let header: SealedHeader = self.header.clone(); + header.encode(out); + self.l1_fee_rate.encode(out); + self.l1_hash.encode(out); + self.transactions.start.encode(out); + self.transactions.end.encode(out); + } +} + +impl Decodable for SealedBlock { + fn decode(buf: &mut &[u8]) -> alloy_rlp::Result { + let b = &mut &**buf; + let rlp_head = alloy_rlp::Header::decode(b)?; + if !rlp_head.list { + return Err(alloy_rlp::Error::UnexpectedString); + } + let started_len = b.len(); + + let header = SealedHeader::decode(b)?; + let l1_fee_rate = Decodable::decode(b)?; + let l1_hash = Decodable::decode(b)?; + let start = Decodable::decode(b)?; + let end = Decodable::decode(b)?; + + let consumed = started_len - b.len(); + if consumed != rlp_head.payload_length { + return Err(alloy_rlp::Error::ListLengthMismatch { + expected: rlp_head.payload_length, + got: consumed, + }); + } + *buf = *b; + + Ok(Self { + header, + l1_fee_rate, + l1_hash, + transactions: Range { start, end }, + }) + } +} + +#[derive( + Debug, + PartialEq, + Clone, + serde::Serialize, + serde::Deserialize, + RlpEncodable, + RlpDecodable, + Default, + Eq, +)] pub(crate) struct Receipt { pub(crate) receipt: reth_primitives::Receipt, pub(crate) gas_used: u128, diff --git a/crates/evm/src/evm/system_contracts/mod.rs b/crates/evm/src/evm/system_contracts/mod.rs index a57443285..4ab952a84 100644 --- a/crates/evm/src/evm/system_contracts/mod.rs +++ b/crates/evm/src/evm/system_contracts/mod.rs @@ -1,3 +1,4 @@ +#![allow(missing_docs)] use alloy_primitives::{address, Address, Bytes, U256}; use alloy_sol_types::{sol, SolCall}; @@ -63,16 +64,16 @@ impl BitcoinLightClient { // Bridge wrapper. sol! { - #[sol(abi)] #[allow(missing_docs)] + #[sol(abi)] BridgeContract, "./src/evm/system_contracts/out/Bridge.sol/Bridge.json" } /// Bridge wrapper. -pub struct Bridge {} +pub struct BridgeWrapper {} -impl Bridge { +impl BridgeWrapper { /// Return the address of the Bridge contract. pub fn address() -> Address { address!("3100000000000000000000000000000000000002") diff --git a/crates/evm/src/evm/system_events.rs b/crates/evm/src/evm/system_events.rs index e51b9e11c..b6e310b47 100644 --- a/crates/evm/src/evm/system_events.rs +++ b/crates/evm/src/evm/system_events.rs @@ -1,16 +1,11 @@ +use alloy_consensus::TxEip1559; +use alloy_primitives::{address, Address, TxKind, U256}; use reth_primitives::{ - address, Address, Signature, Transaction, TransactionSigned, TransactionSignedEcRecovered, - TransactionSignedNoHash, TxEip1559, TxKind, U256, + Signature, Transaction, TransactionSigned, TransactionSignedEcRecovered, + TransactionSignedNoHash, }; -use super::system_contracts::{BitcoinLightClient, Bridge}; - -/// This is a special signature to force tx.signer to be set to SYSTEM_SIGNER -pub const SYSTEM_SIGNATURE: Signature = Signature { - r: U256::ZERO, - s: U256::ZERO, - odd_y_parity: false, -}; +use super::system_contracts::{BitcoinLightClient, BridgeWrapper}; /// This is a special system address to indicate a tx is called by system not by a user/contract. pub const SYSTEM_SIGNER: Address = address!("deaddeaddeaddeaddeaddeaddeaddeaddeaddead"); @@ -48,8 +43,8 @@ fn system_event_to_transaction(event: SystemEvent, nonce: u64, chain_id: u64) -> ..Default::default() }, SystemEvent::BridgeInitialize => TxEip1559 { - to: TxKind::Call(Bridge::address()), - input: Bridge::initialize(), + to: TxKind::Call(BridgeWrapper::address()), + input: BridgeWrapper::initialize(), nonce, chain_id, value: U256::ZERO, @@ -58,8 +53,8 @@ fn system_event_to_transaction(event: SystemEvent, nonce: u64, chain_id: u64) -> ..Default::default() }, SystemEvent::BridgeDeposit(params) => TxEip1559 { - to: TxKind::Call(Bridge::address()), - input: Bridge::deposit(params), + to: TxKind::Call(BridgeWrapper::address()), + input: BridgeWrapper::deposit(params), nonce, chain_id, value: U256::ZERO, @@ -78,7 +73,12 @@ fn signed_system_transaction( ) -> TransactionSignedEcRecovered { let transaction = system_event_to_transaction(event, nonce, chain_id); let signed_no_hash = TransactionSignedNoHash { - signature: SYSTEM_SIGNATURE, + // This is a special signature to force tx.signer to be set to SYSTEM_SIGNER + signature: Signature::new( + U256::ZERO, + U256::ZERO, + alloy_primitives::Parity::Parity(false), + ), transaction, }; let signed: TransactionSigned = signed_no_hash.into(); diff --git a/crates/evm/src/evm/tests.rs b/crates/evm/src/evm/tests.rs index 7924946eb..6012cba1c 100644 --- a/crates/evm/src/evm/tests.rs +++ b/crates/evm/src/evm/tests.rs @@ -1,6 +1,7 @@ use std::str::FromStr; -use reth_primitives::{Address, TransactionSignedEcRecovered, TxKind}; +use alloy_primitives::{Address, TxKind}; +use reth_primitives::TransactionSignedEcRecovered; use revm::primitives::{ BlockEnv, CfgEnvWithHandlerCfg, EVMError, ExecutionResult, Output, SpecId, U256, }; diff --git a/crates/evm/src/genesis.rs b/crates/evm/src/genesis.rs index 012d09452..846493c3a 100644 --- a/crates/evm/src/genesis.rs +++ b/crates/evm/src/genesis.rs @@ -1,8 +1,9 @@ use std::collections::HashMap; use alloy_eips::eip1559::BaseFeeParams; +use alloy_primitives::{keccak256, Address, Bloom, Bytes, B256, U256}; use reth_primitives::constants::{EMPTY_OMMER_ROOT_HASH, EMPTY_RECEIPTS, EMPTY_TRANSACTIONS}; -use reth_primitives::{keccak256, Address, Bloom, Bytes, B256, KECCAK_EMPTY, U256}; +use reth_primitives::KECCAK_EMPTY; use revm::primitives::{Bytecode, SpecId}; use serde::{Deserialize, Deserializer}; use sov_modules_api::prelude::*; @@ -206,7 +207,7 @@ impl Evm { self.cfg.set(&chain_cfg, working_set); - let header = reth_primitives::Header { + let header = crate::primitive_types::DoNotUseHeader { parent_hash: B256::default(), ommers_hash: EMPTY_OMMER_ROOT_HASH, beneficiary: config.coinbase, @@ -247,7 +248,7 @@ impl Evm { #[cfg(feature = "native")] self.pending_head - .set(&block, &mut working_set.accessory_state()); + .set(&block.into(), &mut working_set.accessory_state()); } } @@ -256,7 +257,7 @@ mod tests { use std::collections::HashMap; use std::str::FromStr; - use reth_primitives::{hex, keccak256, Address, Bytes}; + use alloy_primitives::{hex, keccak256, Address, Bytes}; use super::U256; use crate::{AccountData, EvmConfig}; diff --git a/crates/evm/src/hooks.rs b/crates/evm/src/hooks.rs index cbe62e7cc..82ff40658 100644 --- a/crates/evm/src/hooks.rs +++ b/crates/evm/src/hooks.rs @@ -1,10 +1,11 @@ -use alloy_primitives::B256; +use alloy_consensus::Header as AlloyHeader; +use alloy_primitives::{Bloom, Bytes, B256, B64, U256}; use citrea_primitives::basefee::calculate_next_block_base_fee; -use reth_primitives::{Bloom, Bytes, U256}; use revm::primitives::{BlobExcessGasAndPrice, BlockEnv, SpecId}; use sov_modules_api::hooks::HookSoftConfirmationInfo; use sov_modules_api::prelude::*; use sov_modules_api::{AccessoryWorkingSet, WorkingSet}; +use sov_rollup_interface::spec::SpecId as CitreaSpecId; use sov_state::Storage; #[cfg(feature = "native")] use tracing::instrument; @@ -33,13 +34,31 @@ where // a holy line self.pending_transactions.clear(); - let mut parent_block = self - .head - .get(working_set) - .expect("Head block should always be set"); + let current_spec = soft_confirmation_info.current_spec; + + let mut parent_block = if current_spec >= CitreaSpecId::Fork1 { + match self.head_rlp.get(working_set) { + Some(block) => block.clone().into(), + None => self + .head + .get(working_set) + .expect("Head block should always be set") + .clone(), + } + } else { + self.head + .get(working_set) + .expect("Head block should always be set") + .clone() + }; parent_block.header.state_root = B256::from_slice(&soft_confirmation_info.pre_state_root); - self.head.set(&parent_block, working_set); + + if current_spec >= CitreaSpecId::Fork1 { + self.head_rlp.set(&parent_block.clone().into(), working_set); + } else { + self.head.set(&parent_block, working_set); + } let sealed_parent_block = parent_block.clone().seal(); let last_block_hash = sealed_parent_block.header.hash(); @@ -85,8 +104,8 @@ where .get(working_set) .expect("EVM chain config should be set"); let basefee = calculate_next_block_base_fee( - parent_block.header.gas_used as u128, - parent_block.header.gas_limit as u128, + parent_block.header.gas_used, + parent_block.header.gas_limit, parent_block.header.base_fee_per_gas.unwrap_or_default(), cfg.base_fee_params, ); @@ -150,11 +169,26 @@ where ) { let l1_hash = soft_confirmation_info.da_slot_hash; - let parent_block = self - .head - .get(working_set) - .expect("Head block should always be set") - .seal(); + let current_spec = soft_confirmation_info.current_spec; + + let parent_block = if current_spec >= CitreaSpecId::Fork1 { + match self.head_rlp.get(working_set) { + Some(block) => block.seal(), + None => { + let block: Block = self + .head + .get(working_set) + .expect("Head block should always be set") + .into(); + block.seal() + } + } + } else { + self.head + .get(working_set) + .expect("Head block should always be set") + .seal() + }; let expected_block_number = parent_block.header.number + 1; assert_eq!( @@ -183,7 +217,7 @@ where .map(|tx| tx.receipt.receipt.clone().with_bloom()) .collect(); - let header = reth_primitives::Header { + let header = AlloyHeader { parent_hash: parent_block.header.hash(), timestamp: self.block_env.timestamp.saturating_to(), number: self.block_env.number.saturating_to(), @@ -203,7 +237,7 @@ where gas_limit: self.block_env.gas_limit.saturating_to(), gas_used, mix_hash: self.block_env.prevrandao.unwrap_or_default(), - nonce: 0, + nonce: B64::ZERO, base_fee_per_gas: Some(self.block_env.basefee.saturating_to()), extra_data: Bytes::default(), // EIP-4844 related fields @@ -235,7 +269,11 @@ where transactions: start_tx_index..start_tx_index + pending_transactions.len() as u64, }; - self.head.set(&block, working_set); + if current_spec >= CitreaSpecId::Fork1 { + self.head_rlp.set(&block, working_set); + } else { + self.head.set(&block.clone().into(), working_set); + } #[cfg(not(feature = "native"))] pending_transactions.clear(); @@ -245,6 +283,7 @@ where use crate::PendingTransaction; let mut accessory_state = working_set.accessory_state(); + self.pending_head.set(&block, &mut accessory_state); let mut tx_index = start_tx_index; diff --git a/crates/evm/src/lib.rs b/crates/evm/src/lib.rs index 5f96d36a0..48b986f49 100644 --- a/crates/evm/src/lib.rs +++ b/crates/evm/src/lib.rs @@ -7,6 +7,7 @@ mod hooks; #[cfg(feature = "native")] mod provider_functions; +use alloy_rlp::{RlpDecodable, RlpEncodable}; pub use call::*; pub use evm::*; pub use genesis::*; @@ -15,8 +16,6 @@ pub use system_events::SYSTEM_SIGNER; #[cfg(feature = "native")] mod rpc_helpers; #[cfg(feature = "native")] -pub use error::rpc::*; -#[cfg(feature = "native")] pub use rpc_helpers::*; #[cfg(feature = "native")] mod query; @@ -32,22 +31,25 @@ pub mod smart_contracts; #[cfg(all(test, feature = "native"))] mod tests; +use alloy_consensus::Header as AlloyHeader; +use alloy_primitives::{Address, TxHash, B256}; use evm::db::EvmDb; -use reth_primitives::{Address, TxHash, B256}; pub use revm::primitives::SpecId as EvmSpecId; use revm::primitives::{BlockEnv, U256}; use sov_modules_api::{ ModuleInfo, SoftConfirmationModuleCallError, SpecId as CitreaSpecId, WorkingSet, }; -use sov_state::codec::BcsCodec; +use sov_state::codec::{BcsCodec, RlpCodec}; #[cfg(feature = "native")] use crate::evm::primitive_types::SealedBlock; -use crate::evm::primitive_types::{Block, Receipt, TransactionSignedAndRecovered}; +use crate::evm::primitive_types::{Block, DoNotUseHeader, Receipt, TransactionSignedAndRecovered}; use crate::evm::system_events::SystemEvent; pub use crate::EvmConfig; -#[derive(Clone, Debug, serde::Serialize, serde::Deserialize)] +#[derive( + Clone, Debug, serde::Serialize, serde::Deserialize, RlpEncodable, RlpDecodable, PartialEq, Eq, +)] /// Pending EVM transaction pub struct PendingTransaction { pub(crate) transaction: TransactionSignedAndRecovered, @@ -80,18 +82,14 @@ pub struct Evm { /// Mapping from code hash to code. Used for lazy-loading code into a contract account. #[state(rename = "c")] - pub(crate) code: - sov_modules_api::StateMap, + pub(crate) code: sov_modules_api::StateMap, /// Mapping from code hash to code. Used for lazy-loading code into a contract account. /// This is the new offchain version which is not counted in the state diff. /// Activated after FORK1 #[state(rename = "occ")] - pub(crate) offchain_code: sov_modules_api::OffchainStateMap< - reth_primitives::B256, - revm::primitives::Bytecode, - BcsCodec, - >, + pub(crate) offchain_code: + sov_modules_api::OffchainStateMap, /// Chain configuration. This field is set in genesis. #[state] @@ -109,7 +107,12 @@ pub struct Evm { /// Head of the chain. The new head is set in `end_slot_hook` but without the inclusion of the `state_root` field. /// The `state_root` is added in `begin_slot_hook` of the next block because its calculation occurs after the `end_slot_hook`. #[state] - pub(crate) head: sov_modules_api::StateValue, + pub(crate) head: sov_modules_api::StateValue, BcsCodec>, + + /// Head of the rlp encoded chain. The new head is set in `end_slot_hook` but without the inclusion of the `state_root` field. + /// The `state_root` is added in `begin_slot_hook` of the next block because its calculation occurs after the `end_slot_hook`. + #[state] + pub(crate) head_rlp: sov_modules_api::StateValue, RlpCodec>, /// Last seen L1 block hash. #[state(rename = "l")] @@ -128,35 +131,33 @@ pub struct Evm { /// Since this value is not authenticated, it can be modified in the `finalize_hook` with the correct `state_root`. #[cfg(feature = "native")] #[state] - pub(crate) pending_head: sov_modules_api::AccessoryStateValue, + pub(crate) pending_head: sov_modules_api::AccessoryStateValue, RlpCodec>, /// Used only by the RPC: The vec is extended with `pending_head` in `finalize_hook`. #[cfg(feature = "native")] #[state] - pub(crate) blocks: sov_modules_api::AccessoryStateVec, + pub(crate) blocks: sov_modules_api::AccessoryStateVec, /// Used only by the RPC: block_hash => block_number mapping, #[cfg(feature = "native")] #[state] - pub(crate) block_hashes: - sov_modules_api::AccessoryStateMap, + pub(crate) block_hashes: sov_modules_api::AccessoryStateMap, /// Used only by the RPC: List of processed transactions. #[cfg(feature = "native")] #[state] pub(crate) transactions: - sov_modules_api::AccessoryStateVec, + sov_modules_api::AccessoryStateVec, /// Used only by the RPC: transaction_hash => transaction_index mapping. #[cfg(feature = "native")] #[state] - pub(crate) transaction_hashes: - sov_modules_api::AccessoryStateMap, + pub(crate) transaction_hashes: sov_modules_api::AccessoryStateMap, /// Used only by the RPC: Receipts. #[cfg(feature = "native")] #[state] - pub(crate) receipts: sov_modules_api::AccessoryStateVec, + pub(crate) receipts: sov_modules_api::AccessoryStateVec, } impl sov_modules_api::Module for Evm { diff --git a/crates/evm/src/provider_functions.rs b/crates/evm/src/provider_functions.rs index 168976334..c20e0b40a 100644 --- a/crates/evm/src/provider_functions.rs +++ b/crates/evm/src/provider_functions.rs @@ -1,4 +1,5 @@ -use reth_primitives::{Account, Address, SealedHeader}; +use alloy_primitives::Address; +use reth_primitives::{Account, SealedHeader}; use sov_modules_api::{StateMapAccessor, StateVecAccessor, WorkingSet}; use crate::Evm; diff --git a/crates/evm/src/query.rs b/crates/evm/src/query.rs index bb3c3f31a..a08253cd7 100644 --- a/crates/evm/src/query.rs +++ b/crates/evm/src/query.rs @@ -3,22 +3,30 @@ use std::ops::{Range, RangeInclusive}; use alloy_consensus::Eip658Value; use alloy_eips::eip2930::AccessListWithGasUsed; -use alloy_primitives::Uint; +use alloy_network::AnyNetwork; +use alloy_primitives::TxKind::{Call, Create}; +use alloy_primitives::{Address, Bytes, Uint, B256, U256, U64}; use alloy_rlp::Encodable; +use alloy_rpc_types::state::StateOverride; +use alloy_rpc_types::{ + AnyNetworkBlock, AnyReceiptEnvelope, AnyTransactionReceipt, BlockOverrides, Log, + ReceiptWithBloom, TransactionInfo, TransactionReceipt, +}; +use alloy_rpc_types_eth::transaction::TransactionRequest; +use alloy_rpc_types_eth::Block as AlloyRpcBlock; +use alloy_rpc_types_trace::geth::{GethDebugTracingOptions, GethTrace}; +use alloy_serde::OtherFields; use citrea_primitives::basefee::calculate_next_block_base_fee; use citrea_primitives::forks::FORKS; use jsonrpsee::core::RpcResult; -use reth_primitives::TxKind::{Call, Create}; use reth_primitives::{ - Block, BlockId, BlockNumberOrTag, SealedHeader, TransactionSignedEcRecovered, U256, U64, + Block, BlockBody, BlockId, BlockNumberOrTag, SealedHeader, TransactionSignedEcRecovered, }; use reth_provider::ProviderError; -use reth_rpc_eth_types::error::{EthApiError, EthResult, RevertError, RpcInvalidTransactionError}; -use reth_rpc_types::state::StateOverride; -use reth_rpc_types::trace::geth::{GethDebugTracingOptions, GethTrace}; -use reth_rpc_types::{ - AnyReceiptEnvelope, AnyTransactionReceipt, BlockOverrides, Log, OtherFields, ReceiptWithBloom, - TransactionReceipt, +use reth_rpc::eth::EthTxBuilder; +use reth_rpc_eth_api::types::RpcTransaction; +use reth_rpc_eth_types::error::{ + ensure_success, EthApiError, EthResult, RevertError, RpcInvalidTransactionError, }; use reth_rpc_types_compat::block::from_primitive_with_hash; use revm::primitives::{ @@ -36,7 +44,6 @@ use sov_modules_api::WorkingSet; use crate::call::get_cfg_env; use crate::conversions::{create_tx_env, sealed_block_to_block_env}; -use crate::error::rpc::ensure_success; use crate::evm::call::{create_txn_env, prepare_call_env}; use crate::evm::db::EvmDb; use crate::evm::primitive_types::{Receipt, SealedBlock, TransactionSignedAndRecovered}; @@ -108,7 +115,7 @@ impl Evm { /// Handler for: `eth_chainId` #[rpc_method(name = "eth_chainId")] pub fn chain_id(&self, working_set: &mut WorkingSet) -> RpcResult> { - let chain_id = reth_primitives::U64::from( + let chain_id = U64::from( self.cfg .get(working_set) .expect("EVM config must be set at genesis") @@ -122,10 +129,10 @@ impl Evm { #[rpc_method(name = "eth_getBlockByHash")] pub fn get_block_by_hash( &self, - block_hash: reth_primitives::B256, + block_hash: B256, details: Option, working_set: &mut WorkingSet, - ) -> RpcResult> { + ) -> RpcResult> { // if block hash is not known, return None let block_number = match self .block_hashes @@ -149,7 +156,7 @@ impl Evm { block_number: Option, details: Option, working_set: &mut WorkingSet, - ) -> RpcResult> { + ) -> RpcResult> { let sealed_block = match self.get_sealed_block_by_number(block_number, working_set)? { Some(sealed_block) => sealed_block, None => return Ok(None), // if block doesn't exist return null @@ -168,37 +175,42 @@ impl Evm { }) .collect(); - let block = Block { + let primitive_block = Block { header: sealed_block.header.header().clone(), - body: transactions - .iter() - .map(|tx| tx.signed_transaction.clone()) - .collect(), - ommers: Default::default(), - withdrawals: Default::default(), - requests: None, + body: BlockBody { + transactions: transactions + .iter() + .map(|tx| tx.signed_transaction.clone()) + .collect(), + ommers: Default::default(), + withdrawals: Default::default(), + requests: None, + }, }; - let size = block.length(); + let size = primitive_block.length(); // Build rpc transactions response let transactions = match details { - Some(true) => reth_rpc_types::BlockTransactions::Full( + Some(true) => alloy_rpc_types::BlockTransactions::Full( transactions .iter() .enumerate() - .map(|(id, tx)| { - reth_rpc_types_compat::transaction::from_recovered_with_block_context( - tx.clone().into(), - header.hash.expect("Block must be already sealed"), - header.number.expect("Block must be already sealed"), - header.base_fee_per_gas.map(|bfpg| bfpg.try_into().unwrap()), // u64 max is 18446744073 gwei, for the conversion to fail the base fee per gas would have to be higher than that - id, - ) + .map(|(idx, tx)| { + let tx_info = TransactionInfo { + hash: Some(tx.signed_transaction.hash), + block_hash: Some(header.hash), + block_number: Some(tx.block_number), + base_fee: header.base_fee_per_gas.map(u128::from), + index: Some(idx as u64), + }; + reth_rpc_types_compat::transaction::from_recovered_with_block_context::< + EthTxBuilder, + >(tx.clone().into(), tx_info) }) .collect::>(), ), - _ => reth_rpc_types::BlockTransactions::Hashes({ + _ => alloy_rpc_types::BlockTransactions::Hashes({ transactions .iter() .map(|tx| tx.signed_transaction.hash) @@ -206,13 +218,16 @@ impl Evm { }), }; - // Build rpc block response - let block = reth_rpc_types::Block { + let block = AlloyRpcBlock { header, - size: Some(U256::from(size)), uncles: Default::default(), transactions, withdrawals: Default::default(), + size: Some(U256::from(size)), + }; + + let rpc_block = AnyNetworkBlock { + inner: block, other: OtherFields::new(BTreeMap::::from([ ( "l1FeeRate".to_string(), @@ -225,7 +240,7 @@ impl Evm { ])), }; - Ok(Some(block.into())) + Ok(Some(rpc_block)) } /// Handler for: `eth_getBlockReceipts` @@ -283,10 +298,10 @@ impl Evm { #[rpc_method(name = "eth_getBalance")] pub fn get_balance( &self, - address: reth_primitives::Address, + address: Address, block_id: Option, working_set: &mut WorkingSet, - ) -> RpcResult { + ) -> RpcResult { self.set_state_to_end_of_evm_block_by_block_id(block_id, working_set)?; // Specs from https://ethereum.org/en/developers/docs/apis/json-rpc @@ -303,11 +318,11 @@ impl Evm { #[rpc_method(name = "eth_getStorageAt")] pub fn get_storage_at( &self, - address: reth_primitives::Address, - index: reth_primitives::U256, + address: Address, + index: U256, block_id: Option, working_set: &mut WorkingSet, - ) -> RpcResult { + ) -> RpcResult { // Specs from https://ethereum.org/en/developers/docs/apis/json-rpc self.set_state_to_end_of_evm_block_by_block_id(block_id, working_set)?; @@ -329,10 +344,10 @@ impl Evm { #[rpc_method(name = "eth_getTransactionCount")] pub fn get_transaction_count( &self, - address: reth_primitives::Address, + address: Address, block_id: Option, working_set: &mut WorkingSet, - ) -> RpcResult { + ) -> RpcResult { // Specs from https://ethereum.org/en/developers/docs/apis/json-rpc self.set_state_to_end_of_evm_block_by_block_id(block_id, working_set)?; @@ -349,10 +364,10 @@ impl Evm { #[rpc_method(name = "eth_getCode")] pub fn get_code( &self, - address: reth_primitives::Address, + address: Address, block_id: Option, working_set: &mut WorkingSet, - ) -> RpcResult { + ) -> RpcResult { let block_number = match block_id { Some(BlockId::Number(block_num)) => block_num, Some(BlockId::Hash(block_hash)) => { @@ -391,10 +406,10 @@ impl Evm { #[rpc_method(name = "eth_getTransactionByBlockHashAndIndex")] pub fn get_transaction_by_block_hash_and_index( &self, - block_hash: reth_primitives::B256, - index: reth_primitives::U64, + block_hash: B256, + index: U64, working_set: &mut WorkingSet, - ) -> RpcResult> { + ) -> RpcResult>> { let mut accessory_state = working_set.accessory_state(); let block_number = match self.block_hashes.get(&block_hash, &mut accessory_state) { @@ -424,13 +439,17 @@ impl Evm { .get(tx.block_number as usize, &mut accessory_state) .expect("Block number for known transaction must be set"); - let transaction = reth_rpc_types_compat::transaction::from_recovered_with_block_context( - tx.into(), - block.header.hash(), - block.header.number, - block.header.base_fee_per_gas, - (tx_number - block.transactions.start) as usize, - ); + let tx_info = TransactionInfo { + hash: Some(tx.signed_transaction.hash), + block_hash: Some(block.header.hash()), + block_number: Some(tx.block_number), + base_fee: block.header.base_fee_per_gas.map(u128::from), + index: Some(tx_number - block.transactions.start), + }; + + let transaction = reth_rpc_types_compat::transaction::from_recovered_with_block_context::< + EthTxBuilder, + >(tx.into(), tx_info); Ok(Some(transaction)) } @@ -440,12 +459,12 @@ impl Evm { pub fn get_transaction_by_block_number_and_index( &self, block_number: BlockNumberOrTag, - index: reth_primitives::U64, + index: U64, working_set: &mut WorkingSet, - ) -> RpcResult> { + ) -> RpcResult>> { let block_number = match self.block_number_for_id(&block_number, working_set) { Ok(block_number) => block_number, - Err(EthApiError::UnknownBlockNumber) => return Ok(None), + Err(EthApiError::HeaderNotFound(_)) => return Ok(None), Err(err) => return Err(err.into()), }; @@ -471,13 +490,17 @@ impl Evm { .get(tx.block_number as usize, &mut working_set.accessory_state()) .expect("Block number for known transaction must be set"); - let transaction = reth_rpc_types_compat::transaction::from_recovered_with_block_context( - tx.into(), - block.header.hash(), - block.header.number, - block.header.base_fee_per_gas, - (tx_number - block.transactions.start) as usize, - ); + let tx_info = TransactionInfo { + hash: Some(tx.signed_transaction.hash), + block_hash: Some(block.header.hash()), + block_number: Some(tx.block_number), + base_fee: block.header.base_fee_per_gas.map(u128::from), + index: Some(tx_number - block.transactions.start), + }; + + let transaction = reth_rpc_types_compat::transaction::from_recovered_with_block_context::< + EthTxBuilder, + >(tx.into(), tx_info); Ok(Some(transaction)) } @@ -486,7 +509,7 @@ impl Evm { #[rpc_method(name = "eth_getTransactionReceipt")] pub fn get_transaction_receipt( &self, - hash: reth_primitives::B256, + hash: B256, working_set: &mut WorkingSet, ) -> RpcResult> { let mut accessory_state = working_set.accessory_state(); @@ -520,12 +543,12 @@ impl Evm { #[rpc_method(name = "eth_call", blocking)] pub fn get_call( &self, - request: reth_rpc_types::TransactionRequest, + request: TransactionRequest, block_id: Option, state_overrides: Option, block_overrides: Option, working_set: &mut WorkingSet, - ) -> RpcResult { + ) -> RpcResult { let block_number = match block_id { Some(BlockId::Number(block_num)) => block_num, Some(BlockId::Hash(block_hash)) => { @@ -543,7 +566,9 @@ impl Evm { _ => { let block = self .get_sealed_block_by_number(Some(block_number), working_set)? - .ok_or(EthApiError::UnknownBlockNumber)?; + .ok_or(EthApiError::HeaderNotFound( + block_id.unwrap_or(BlockNumberOrTag::Latest.into()), + ))?; sealed_block_to_block_env(&block.header) } @@ -606,10 +631,7 @@ impl Evm { /// Handler for: `eth_blockNumber` #[rpc_method(name = "eth_blockNumber")] - pub fn block_number( - &self, - working_set: &mut WorkingSet, - ) -> RpcResult { + pub fn block_number(&self, working_set: &mut WorkingSet) -> RpcResult { let block_number = U256::from( self.blocks .len(&mut working_set.accessory_state()) @@ -622,7 +644,7 @@ impl Evm { #[rpc_method(name = "eth_createAccessList", blocking)] pub fn create_access_list( &self, - request: reth_rpc_types::TransactionRequest, + request: TransactionRequest, block_number: Option, working_set: &mut WorkingSet, ) -> RpcResult { @@ -641,7 +663,10 @@ impl Evm { _ => { let block = self .get_sealed_block_by_number(block_number, working_set)? - .ok_or(EthApiError::UnknownBlockNumber)?; + // Is this ok : block_number.unwrap_or_default() + .ok_or(EthApiError::HeaderNotFound( + block_number.unwrap_or_default().into(), + ))?; (block.l1_fee_rate, sealed_block_to_block_env(&block.header)) } }; @@ -739,7 +764,7 @@ impl Evm { // The point of this function is to prepare env and call estimate_gas_with_env. fn estimate_tx_expenses( &self, - request: reth_rpc_types::TransactionRequest, + request: TransactionRequest, block_number: Option, working_set: &mut WorkingSet, ) -> RpcResult { @@ -756,7 +781,9 @@ impl Evm { _ => { let block = self .get_sealed_block_by_number(block_number, working_set)? - .ok_or(EthApiError::UnknownBlockNumber)?; + .ok_or(EthApiError::HeaderNotFound( + block_number.unwrap_or_default().into(), + ))?; ( block.l1_fee_rate, sealed_block_to_block_env(&block.header), // correct spec will be set later @@ -785,10 +812,10 @@ impl Evm { #[rpc_method(name = "eth_estimateGas", blocking)] pub fn eth_estimate_gas( &self, - request: reth_rpc_types::TransactionRequest, + request: TransactionRequest, block_number: Option, working_set: &mut WorkingSet, - ) -> RpcResult { + ) -> RpcResult { let estimated = self.estimate_tx_expenses(request, block_number, working_set)?; // TODO: this assumes all blocks have the same gas limit @@ -807,7 +834,7 @@ impl Evm { #[rpc_method(name = "eth_estimateDiffSize", blocking)] pub fn eth_estimate_diff_size( &self, - request: reth_rpc_types::TransactionRequest, + request: TransactionRequest, block_number: Option, working_set: &mut WorkingSet, ) -> RpcResult { @@ -824,9 +851,9 @@ impl Evm { #[rpc_method(name = "eth_getBlockTransactionCountByHash")] pub fn eth_get_block_transaction_count_by_hash( &self, - block_hash: reth_primitives::B256, + block_hash: B256, working_set: &mut WorkingSet, - ) -> RpcResult> { + ) -> RpcResult> { // Get the number of transactions in a block given blockhash let block = self.get_block_by_hash(block_hash, None, working_set)?; match block { @@ -841,7 +868,7 @@ impl Evm { &self, block_number: BlockNumberOrTag, working_set: &mut WorkingSet, - ) -> RpcResult> { + ) -> RpcResult> { // Get the number of transactions in a block given block number let block = self.get_block_by_number(Some(block_number), None, working_set)?; match block { @@ -853,7 +880,7 @@ impl Evm { /// Inner gas estimator pub(crate) fn estimate_gas_with_env( &self, - mut request: reth_rpc_types::TransactionRequest, + mut request: TransactionRequest, l1_fee_rate: u128, block_env: BlockEnv, mut cfg_env: CfgEnvWithHandlerCfg, @@ -945,7 +972,7 @@ impl Evm { .unwrap_or(block_env_gas_limit); // if the provided gas limit is less than computed cap, use that - tx_env.gas_limit = std::cmp::min(tx_env.gas_limit, highest_gas_limit as u64); // highest_gas_limit is capped to u64::MAX + tx_env.gas_limit = std::cmp::min(tx_env.gas_limit, highest_gas_limit); // highest_gas_limit is capped to u64::MAX let evm_db = self.get_db(working_set, current_spec); @@ -1012,7 +1039,7 @@ impl Evm { // possible range NOTE: this is the gas the transaction used, which is less than the // transaction requires to succeed let gas_used = result.gas_used(); - let mut highest_gas_limit: u64 = highest_gas_limit.try_into().unwrap_or(u64::MAX); + let mut highest_gas_limit: u64 = highest_gas_limit; // https://github.com/paradigmxyz/reth/pull/7133/files // the lowest value is capped by the gas used by the unconstrained transaction @@ -1132,9 +1159,9 @@ impl Evm { /// RPC method is moved to sequencer and ethereum-rpc modules pub fn get_transaction_by_hash( &self, - hash: reth_primitives::B256, + hash: B256, working_set: &mut WorkingSet, - ) -> RpcResult> { + ) -> RpcResult>> { let mut accessory_state = working_set.accessory_state(); let tx_number = self.transaction_hashes.get(&hash, &mut accessory_state); @@ -1155,13 +1182,19 @@ impl Evm { tx.block_number, tx.signed_transaction.hash)); - reth_rpc_types_compat::transaction::from_recovered_with_block_context( - tx.into(), - block.header.hash(), - block.header.number, - block.header.base_fee_per_gas, - (number - block.transactions.start) as usize, - ) + let tx_info = TransactionInfo { + hash: Some(tx.signed_transaction.hash), + block_hash: Some(block.header.hash()), + block_number: Some(block.header.number), + base_fee: block.header.base_fee_per_gas.map(u128::from), + index: Some(number - block.transactions.start), + }; + + + + reth_rpc_types_compat::transaction::from_recovered_with_block_context::< + EthTxBuilder, + >(tx.into(), tx_info) }); Ok(transaction) @@ -1177,7 +1210,7 @@ impl Evm { ) -> RpcResult> { let sealed_block = self .get_sealed_block_by_number(Some(BlockNumberOrTag::Number(block_number)), working_set)? - .ok_or_else(|| EthApiError::UnknownBlockNumber)?; + .ok_or_else(|| EthApiError::HeaderNotFound(block_number.into()))?; let tx_range = sealed_block.transactions.clone(); if tx_range.is_empty() { @@ -1432,7 +1465,7 @@ impl Evm { &self, block_number: u64, working_set: &mut WorkingSet, - ) -> Option { + ) -> Option { let block = self .blocks .get(block_number as usize, &mut working_set.accessory_state())?; @@ -1471,12 +1504,12 @@ impl Evm { match block_id { BlockNumberOrTag::Earliest => Ok(0), BlockNumberOrTag::Latest => Ok(latest_block_number), - BlockNumberOrTag::Pending => Err(EthApiError::UnknownBlockNumber), + BlockNumberOrTag::Pending => Err(EthApiError::HeaderNotFound((*block_id).into())), BlockNumberOrTag::Number(block_number) => { if *block_number < self.blocks.len(&mut working_set.accessory_state()) as u64 { Ok(*block_number) } else { - Err(EthApiError::UnknownBlockNumber) + Err(EthApiError::HeaderNotFound((*block_id).into())) } } _ => Err(EthApiError::InvalidParams( @@ -1522,7 +1555,7 @@ impl Evm { /// If block not found returns None pub fn get_block_number_by_block_hash( &self, - block_hash: reth_primitives::B256, + block_hash: B256, working_set: &mut WorkingSet, ) -> Option { let block_number = self @@ -1549,7 +1582,7 @@ impl Evm { .header .number; if num > curr_block_number { - return Err(EthApiError::UnknownBlockNumber); + return Err(EthApiError::HeaderNotFound(block_id.unwrap())); } set_state_to_end_of_evm_block::(num, working_set); } @@ -1624,7 +1657,7 @@ pub(crate) fn build_rpc_receipt( logs.push(rpclog); } - let rpc_receipt = reth_rpc_types::Receipt { + let rpc_receipt = alloy_rpc_types::Receipt { status: Eip658Value::Eip658(receipt.receipt.success), cumulative_gas_used: receipt.receipt.cumulative_gas_used as u128, logs, @@ -1818,8 +1851,8 @@ fn get_pending_block_env( let mut block_env = sealed_block_to_block_env(&latest_block.header); block_env.number += U256::from(1); block_env.basefee = U256::from(calculate_next_block_base_fee( - latest_block.header.gas_used as u128, - latest_block.header.gas_limit as u128, + latest_block.header.gas_used, + latest_block.header.gas_limit, latest_block.header.base_fee_per_gas.unwrap_or_default(), cfg.base_fee_params, )); diff --git a/crates/evm/src/rpc_helpers/filter.rs b/crates/evm/src/rpc_helpers/filter.rs index c02b77df5..990abf5e2 100644 --- a/crates/evm/src/rpc_helpers/filter.rs +++ b/crates/evm/src/rpc_helpers/filter.rs @@ -4,17 +4,16 @@ use std::hash::Hash; use std::iter::StepBy; use std::ops::{Range, RangeFrom, RangeInclusive, RangeTo}; -use alloy_primitives::{Bloom, BloomInput, U64}; +use alloy_primitives::{Address, BlockHash, Bloom, BloomInput, B256, U64}; use itertools::EitherOrBoth::*; use itertools::Itertools; -use reth_primitives::{Address, BlockHash, BlockNumberOrTag, B256}; +use reth_primitives::BlockNumberOrTag; use reth_rpc_eth_types::error::EthApiError; +use reth_rpc_server_types::result::rpc_error_with_code; use serde::de::{DeserializeOwned, MapAccess, Visitor}; use serde::ser::SerializeStruct; use serde::{Deserialize, Deserializer, Serialize, Serializer}; -use crate::evm::error::result::rpc_error_with_code; - /// The maximum number of blocks that can be queried in a single eth_getLogs request. pub const DEFAULT_MAX_BLOCKS_PER_FILTER: u64 = 1_000; /// The maximum number of logs that can be returned in a single eth_getLogs response. @@ -209,7 +208,7 @@ pub struct Filter { // https://eips.ethereum.org/EIPS/eip-234 pub block_option: FilterBlockOption, /// Filter for the address of the log, can be - pub address: FilterSet, + pub address: FilterSet, /// Filter for the topics of the log pub topics: [Topic; 4], } diff --git a/crates/evm/src/rpc_helpers/mod.rs b/crates/evm/src/rpc_helpers/mod.rs index bcb725568..db853b33e 100644 --- a/crates/evm/src/rpc_helpers/mod.rs +++ b/crates/evm/src/rpc_helpers/mod.rs @@ -1,12 +1,12 @@ use std::collections::HashMap; +use alloy_primitives::{keccak256, Address}; +use alloy_rpc_types::state::AccountOverride; +use alloy_rpc_types::BlockOverrides; pub use filter::*; pub use log_utils::*; pub use responses::*; -use reth_primitives::{keccak256, Address}; use reth_rpc_eth_types::{EthApiError, EthResult}; -use reth_rpc_types::state::AccountOverride; -use reth_rpc_types::BlockOverrides; use revm::Database; mod filter; @@ -23,7 +23,7 @@ use crate::db::EvmDb; #[cfg(feature = "native")] /// Applies all instances [`AccountOverride`] to the [`EvmDb`]. pub(crate) fn apply_state_overrides( - state_overrides: HashMap, + state_overrides: HashMap>, db: &mut EvmDb, ) -> EthResult<()> { for (address, account_overrides) in state_overrides { @@ -82,7 +82,7 @@ pub(crate) fn apply_block_overrides( block_overrides: &mut BlockOverrides, db: &mut EvmDb, ) { - use reth_primitives::U256; + use alloy_primitives::U256; if let Some(block_hashes) = block_overrides.block_hash.take() { // override block hashes diff --git a/crates/evm/src/rpc_helpers/responses.rs b/crates/evm/src/rpc_helpers/responses.rs index 076c9b75c..c7eb6d372 100644 --- a/crates/evm/src/rpc_helpers/responses.rs +++ b/crates/evm/src/rpc_helpers/responses.rs @@ -1,8 +1,7 @@ use std::hash::Hash; -use alloy_primitives::Bytes; -use reth_primitives::{Address, Log, U256}; -use revm::primitives::B256; +use alloy_primitives::{Address, Bytes, B256, U256}; +use reth_primitives::Log; /// Ethereum Log emitted by a transaction #[derive(Debug, Clone, Eq, PartialEq, Hash, serde::Serialize, serde::Deserialize)] diff --git a/crates/evm/src/rpc_helpers/tracing_utils.rs b/crates/evm/src/rpc_helpers/tracing_utils.rs index ee0fbab12..53e8175ef 100644 --- a/crates/evm/src/rpc_helpers/tracing_utils.rs +++ b/crates/evm/src/rpc_helpers/tracing_utils.rs @@ -1,10 +1,11 @@ -use reth_primitives::revm_primitives::TxEnv; -use reth_primitives::{TransactionSigned, TransactionSignedEcRecovered, TxHash, U256}; -use reth_rpc_eth_types::error::{EthApiError, EthResult, RpcInvalidTransactionError}; -use reth_rpc_types::trace::geth::{ +use alloy_primitives::{TxHash, U256}; +use alloy_rpc_types_trace::geth::{ FourByteFrame, GethDebugBuiltInTracerType, GethDebugTracerType, GethDebugTracingOptions, GethTrace, NoopFrame, }; +use reth_primitives::revm_primitives::TxEnv; +use reth_primitives::{TransactionSigned, TransactionSignedEcRecovered}; +use reth_rpc_eth_types::error::{EthApiError, EthResult, RpcInvalidTransactionError}; use revm::precompile::{PrecompileSpecId, Precompiles}; use revm::primitives::db::Database; use revm::primitives::{Address, BlockEnv, CfgEnvWithHandlerCfg, EVMError, ResultAndState, SpecId}; @@ -72,23 +73,26 @@ pub(crate) fn trace_transaction( .inspector .into_geth_builder() .geth_call_traces(call_config, res.result.gas_used()); - return Ok((frame.into(), res.state)); + Ok((frame.into(), res.state)) } GethDebugBuiltInTracerType::PreStateTracer => { // Requires DatabaseRef trait // meaning we need a readonly state to implement this - return Err(EthApiError::Unsupported("PreStateTracer")); + Err(EthApiError::Unsupported("PreStateTracer")) } GethDebugBuiltInTracerType::NoopTracer => { Ok((NoopFrame::default().into(), Default::default())) } // TODO: either implement or return unsupported - GethDebugBuiltInTracerType::MuxTracer => todo!("MuxTracer"), + GethDebugBuiltInTracerType::MuxTracer => Err(EthApiError::Unsupported("MuxTracer")), + GethDebugBuiltInTracerType::FlatCallTracer => { + Err(EthApiError::Unsupported("FlatCallTracer")) + } }, GethDebugTracerType::JsTracer(_code) => { // This also requires DatabaseRef trait // Implement after readonly state is implemented - return Err(EthApiError::Unsupported("JsTracer")); + Err(EthApiError::Unsupported("JsTracer")) } }; } @@ -238,7 +242,10 @@ pub(crate) fn caller_gas_allowance(balance: U256, value: U256, gas_price: U256) // Subtract transferred value from the caller balance. .checked_sub(value) // Return error if the caller has insufficient funds. - .ok_or_else(|| RpcInvalidTransactionError::InsufficientFunds)? + .ok_or_else(|| RpcInvalidTransactionError::InsufficientFunds { + cost: value, + balance, + })? // Calculate the amount of gas the caller can afford with the specified gas price. .checked_div(gas_price) // This will be 0 if gas price is 0. It is fine, because we check it before. diff --git a/crates/evm/src/signer/mod.rs b/crates/evm/src/signer/mod.rs index 11616de8e..bb9de55a1 100644 --- a/crates/evm/src/signer/mod.rs +++ b/crates/evm/src/signer/mod.rs @@ -1,10 +1,10 @@ use std::collections::HashMap; -use reth_primitives::{sign_message, Address, Transaction, TransactionSigned, B256}; +use alloy_primitives::{Address, B256}; +use reth_primitives::{sign_message, Transaction, TransactionSigned}; +use reth_rpc_eth_types::SignError; use secp256k1::{PublicKey, SecretKey}; -use crate::error::rpc::SignError; - /// Ethereum transaction signer. #[derive(Clone)] pub struct DevSigner { diff --git a/crates/evm/src/tests/call_tests.rs b/crates/evm/src/tests/call_tests.rs index b947ceba3..926bcf0e0 100644 --- a/crates/evm/src/tests/call_tests.rs +++ b/crates/evm/src/tests/call_tests.rs @@ -2,13 +2,11 @@ use std::collections::BTreeMap; use std::str::FromStr; use alloy_eips::BlockId; +use alloy_primitives::{address, b256, Address, Bytes, TxKind, B256, U64}; +use alloy_rpc_types::{BlockOverrides, TransactionInput, TransactionRequest}; use citrea_primitives::MIN_BASE_FEE_PER_GAS; use reth_primitives::constants::ETHEREUM_BLOCK_GAS_LIMIT; -use reth_primitives::{ - address, b256, Address, BlockNumberOrTag, Bytes, Log, LogData, TxKind, B256, U64, -}; -use reth_rpc_types::request::{TransactionInput, TransactionRequest}; -use reth_rpc_types::BlockOverrides; +use reth_primitives::{BlockNumberOrTag, Log, LogData}; use revm::primitives::SpecId::SHANGHAI; use revm::primitives::{hex, KECCAK_EMPTY, U256}; use revm::Database; @@ -893,6 +891,7 @@ fn test_block_hash_in_evm() { blob_versioned_hashes: None, transaction_type: None, sidecar: None, + authorization_list: None, }; for i in 0..=1000 { @@ -1074,7 +1073,7 @@ fn test_block_gas_limit() { .unwrap() .unwrap(); - assert_eq!(block.header.gas_limit, ETHEREUM_BLOCK_GAS_LIMIT as _); + assert_eq!(block.header.gas_limit, ETHEREUM_BLOCK_GAS_LIMIT); assert_eq!(block.header.gas_used, 29997634); assert_eq!(block.transactions.hashes().len(), 1130); } diff --git a/crates/evm/src/tests/ef_tests/cases/blockchain_test.rs b/crates/evm/src/tests/ef_tests/cases/blockchain_test.rs index b1bdc7038..071f911ea 100644 --- a/crates/evm/src/tests/ef_tests/cases/blockchain_test.rs +++ b/crates/evm/src/tests/ef_tests/cases/blockchain_test.rs @@ -133,7 +133,7 @@ impl Case for BlockchainTestCase { let mut evm_config = EvmConfig::default(); config_push_contracts(&mut evm_config, None); // Set this base fee based on what's set in genesis. - let header = reth_primitives::Header { + let header = crate::primitive_types::DoNotUseHeader { parent_hash: case.genesis_block_header.parent_hash, ommers_hash: EMPTY_OMMER_ROOT_HASH, beneficiary: evm_config.coinbase, @@ -201,7 +201,7 @@ impl Case for BlockchainTestCase { ); evm.head.set(&block, &mut working_set); evm.pending_head - .set(&block, &mut working_set.accessory_state()); + .set(&block.into(), &mut working_set.accessory_state()); evm.finalize_hook( &case.genesis_block_header.state_root.0.into(), &mut working_set.accessory_state(), @@ -217,15 +217,16 @@ impl Case for BlockchainTestCase { // Decode and insert blocks, creating a chain of blocks for the test case. for block in case.blocks.iter() { let decoded = SealedBlock::decode(&mut block.rlp.as_ref())?; - let txs: Vec = decoded + let txs = decoded .body + .transactions .iter() .map(|t| { let mut buffer = Vec::::new(); t.encode(&mut buffer); RlpEvmTransaction { rlp: buffer } }) - .collect(); + .collect::>(); (working_set, storage) = self.execute_transactions( &mut evm, diff --git a/crates/evm/src/tests/ef_tests/models.rs b/crates/evm/src/tests/ef_tests/models.rs index 56dca134b..f9cd8ddb9 100644 --- a/crates/evm/src/tests/ef_tests/models.rs +++ b/crates/evm/src/tests/ef_tests/models.rs @@ -3,10 +3,9 @@ use std::collections::BTreeMap; use std::ops::Deref; +use alloy_primitives::{Address, Bloom, Bytes, B256, B64, U256}; use reth_chainspec::{ChainSpec, ChainSpecBuilder}; -use reth_primitives::{ - Address, Bloom, Bytes, Header as RethHeader, SealedHeader, Withdrawals, B256, B64, U256, -}; +use reth_primitives::{Header as RethHeader, SealedHeader, Withdrawals}; use serde::Deserialize; /// The definition of a blockchain test. @@ -93,7 +92,7 @@ impl From
for SealedHeader { gas_limit: value.gas_limit.to::(), gas_used: value.gas_used.to::(), mix_hash: value.mix_hash, - nonce: u64::from_be_bytes(value.nonce.0), + nonce: value.nonce.0.into(), number: value.number.to::(), timestamp: value.timestamp.to::(), transactions_root: value.transactions_trie, @@ -108,7 +107,9 @@ impl From
for SealedHeader { parent_beacon_block_root: value.parent_beacon_block_root, requests_root: None, }; - header.seal(value.hash) + let sealed = header.seal(value.hash); + let (header, seal) = sealed.into_parts(); + SealedHeader::new(header, seal) } } diff --git a/crates/evm/src/tests/fork_tests.rs b/crates/evm/src/tests/fork_tests.rs index 13e32dfaf..07051b6af 100644 --- a/crates/evm/src/tests/fork_tests.rs +++ b/crates/evm/src/tests/fork_tests.rs @@ -1,6 +1,6 @@ use std::str::FromStr; -use reth_primitives::{address, keccak256, Address, TxKind}; +use alloy_primitives::{address, keccak256, Address, TxKind}; use revm::primitives::U256; use sov_modules_api::default_context::DefaultContext; use sov_modules_api::hooks::HookSoftConfirmationInfo; diff --git a/crates/evm/src/tests/genesis_tests.rs b/crates/evm/src/tests/genesis_tests.rs index b6cb5fab7..a5e949c2d 100644 --- a/crates/evm/src/tests/genesis_tests.rs +++ b/crates/evm/src/tests/genesis_tests.rs @@ -1,10 +1,9 @@ use alloy_eips::eip1559::BaseFeeParams; +use alloy_primitives::hex_literal::hex; +use alloy_primitives::{Address, Bloom, Bytes, B256, B64, U256}; use lazy_static::lazy_static; use reth_primitives::constants::{EMPTY_RECEIPTS, EMPTY_TRANSACTIONS, ETHEREUM_BLOCK_GAS_LIMIT}; -use reth_primitives::hex_literal::hex; -use reth_primitives::{ - Address, Bloom, Bytes, Header, SealedHeader, B256, EMPTY_OMMER_ROOT_HASH, U256, -}; +use reth_primitives::{Header, SealedHeader, EMPTY_OMMER_ROOT_HASH}; use revm::primitives::SpecId; use sov_modules_api::prelude::*; @@ -143,7 +142,7 @@ fn genesis_block() { timestamp: 0, extra_data: Bytes::default(), mix_hash: B256::default(), - nonce: 0, + nonce: B64::ZERO, base_fee_per_gas: Some(1000000000), ommers_hash: EMPTY_OMMER_ROOT_HASH, beneficiary: *BENEFICIARY, @@ -187,7 +186,7 @@ fn genesis_head() { timestamp: 0, extra_data: Bytes::default(), mix_hash: B256::default(), - nonce: 0, + nonce: B64::ZERO, base_fee_per_gas: Some(1000000000), ommers_hash: EMPTY_OMMER_ROOT_HASH, beneficiary: *BENEFICIARY, diff --git a/crates/evm/src/tests/hooks_tests.rs b/crates/evm/src/tests/hooks_tests.rs index 723ff94d9..ef1c76c6f 100644 --- a/crates/evm/src/tests/hooks_tests.rs +++ b/crates/evm/src/tests/hooks_tests.rs @@ -1,9 +1,10 @@ +use alloy_primitives::hex_literal::hex; +use alloy_primitives::{Address, Bloom, Bytes, B256, B64, U256}; use lazy_static::lazy_static; use rand::Rng; -use reth_primitives::hex_literal::hex; use reth_primitives::{ - Address, Bloom, Bytes, Header, Signature, TransactionSigned, B256, EMPTY_OMMER_ROOT_HASH, - KECCAK_EMPTY, U256, + Header, Signature, TransactionSigned, TransactionSignedNoHash, EMPTY_OMMER_ROOT_HASH, + KECCAK_EMPTY, }; use revm::primitives::BlockEnv; use sov_modules_api::hooks::HookSoftConfirmationInfo; @@ -83,10 +84,10 @@ fn end_soft_confirmation_hook_sets_head() { evm.begin_soft_confirmation_hook(&soft_confirmation_info, &mut working_set); evm.pending_transactions - .push(create_pending_transaction(B256::from([1u8; 32]), 1)); + .push(create_pending_transaction(1, 0)); evm.pending_transactions - .push(create_pending_transaction(B256::from([2u8; 32]), 2)); + .push(create_pending_transaction(2, 1)); evm.end_soft_confirmation_hook(&soft_confirmation_info, &mut working_set); let head = evm.head.get(&mut working_set).unwrap(); @@ -95,11 +96,11 @@ fn end_soft_confirmation_hook_sets_head() { .get(&mut working_set.accessory_state()) .unwrap(); - assert_eq!(head, pending_head); + assert_eq!(head, pending_head.into()); assert_eq!( head, Block { - header: Header { + header: crate::primitive_types::DoNotUseHeader { parent_hash: B256::from(hex!( "42b2df14615729c49a449b8f42c1a9eb4b9b62fb6a70464eabfa362cd1d20f75" )), @@ -108,7 +109,7 @@ fn end_soft_confirmation_hook_sets_head() { beneficiary: config.coinbase, state_root: KECCAK_EMPTY, transactions_root: B256::from(hex!( - "fdf1049f7decef904ffdc7d55f8ca9c9c52ad655c8ddb7435025d86c97a253c0" + "31f0a536f543dd3068c2e90c7770606680c223504a62d354994f3cc19c1d5c5b" )), receipts_root: B256::from(hex!( "e8271759b66c13c70ad0726ee34c9fd2574d429fd77d95f95b22f988565a1469" @@ -156,10 +157,10 @@ fn end_soft_confirmation_hook_moves_transactions_and_receipts() { }; evm.begin_soft_confirmation_hook(&soft_confirmation_info, &mut working_set); - let tx1 = create_pending_transaction(B256::from([1u8; 32]), 1); + let tx1 = create_pending_transaction(1, 0); evm.pending_transactions.push(tx1.clone()); - let tx2 = create_pending_transaction(B256::from([2u8; 32]), 2); + let tx2 = create_pending_transaction(2, 1); evm.pending_transactions.push(tx2.clone()); evm.end_soft_confirmation_hook(&soft_confirmation_info, &mut working_set); @@ -209,24 +210,29 @@ fn end_soft_confirmation_hook_moves_transactions_and_receipts() { assert_eq!(evm.pending_transactions.len(), 0); } -fn create_pending_transaction(hash: B256, index: u64) -> PendingTransaction { +fn create_pending_transaction(index: u64, nonce: u64) -> PendingTransaction { + let tx = TransactionSignedNoHash { + signature: Signature::new(U256::ZERO, U256::ZERO, false.into()), + transaction: reth_primitives::Transaction::Eip1559(alloy_consensus::TxEip1559 { + chain_id: DEFAULT_CHAIN_ID, + nonce, + gas_limit: 1000u64, + max_fee_per_gas: 2000u64 as u128, + max_priority_fee_per_gas: 3000u64 as u128, + to: alloy_primitives::TxKind::Call(Address::from([3u8; 20])), + value: U256::from(4000u128), + access_list: alloy_rpc_types::AccessList::default(), + input: Bytes::from([4u8; 20]), + }), + }; + PendingTransaction { transaction: TransactionSignedAndRecovered { signer: Address::from([1u8; 20]), signed_transaction: TransactionSigned { - hash, - signature: Signature::default(), - transaction: reth_primitives::Transaction::Eip1559(reth_primitives::TxEip1559 { - chain_id: DEFAULT_CHAIN_ID, - nonce: 1u64, - gas_limit: 1000u64, - max_fee_per_gas: 2000u64 as u128, - max_priority_fee_per_gas: 3000u64 as u128, - to: reth_primitives::TxKind::Call(Address::from([3u8; 20])), - value: U256::from(4000u128), - access_list: reth_primitives::AccessList::default(), - input: Bytes::from([4u8; 20]), - }), + hash: tx.hash(), + signature: tx.signature, + transaction: tx.transaction, }, block_number: 1, }, @@ -275,9 +281,9 @@ fn finalize_hook_creates_final_block() { evm.begin_soft_confirmation_hook(&soft_confirmation_info, &mut working_set); evm.pending_transactions - .push(create_pending_transaction(B256::from([1u8; 32]), 1)); + .push(create_pending_transaction(1, 0)); evm.pending_transactions - .push(create_pending_transaction(B256::from([2u8; 32]), 2)); + .push(create_pending_transaction(2, 1)); evm.end_soft_confirmation_hook(&soft_confirmation_info, &mut working_set); let root_hash = [99u8; 32]; @@ -316,7 +322,7 @@ fn finalize_hook_creates_final_block() { beneficiary: config.coinbase, state_root: B256::from(root_hash), transactions_root: B256::from(hex!( - "fdf1049f7decef904ffdc7d55f8ca9c9c52ad655c8ddb7435025d86c97a253c0" + "31f0a536f543dd3068c2e90c7770606680c223504a62d354994f3cc19c1d5c5b" )), receipts_root: B256::from(hex!( "e8271759b66c13c70ad0726ee34c9fd2574d429fd77d95f95b22f988565a1469" @@ -331,7 +337,7 @@ fn finalize_hook_creates_final_block() { mix_hash: B256::from(hex!( "0505050505050505050505050505050505050505050505050505050505050505" )), - nonce: 0, + nonce: B64::ZERO, base_fee_per_gas: Some(767816299), extra_data: Bytes::default(), blob_gas_used: None, @@ -339,10 +345,14 @@ fn finalize_hook_creates_final_block() { parent_beacon_block_root: None, requests_root: None, }; + + let hash = header.hash_slow(); + // let sealed = header.seal_slow(); + // let (header, seal) = sealed.into_parts(); assert_eq!( block, SealedBlock { - header: header.seal_slow(), + header: reth_primitives::SealedHeader::new(header, hash), l1_fee_rate: 0, l1_hash: B256::from(DA_ROOT_HASH.0), transactions: 3..6 diff --git a/crates/evm/src/tests/queries/basic_queries.rs b/crates/evm/src/tests/queries/basic_queries.rs index 3ee5886c9..51428fb72 100644 --- a/crates/evm/src/tests/queries/basic_queries.rs +++ b/crates/evm/src/tests/queries/basic_queries.rs @@ -1,9 +1,12 @@ use std::collections::BTreeMap; -use reth_primitives::{address, b256, BlockId, BlockNumberOrTag, TxKind, U64}; +use alloy_primitives::{address, b256, TxKind, U64}; +use alloy_rpc_types::{ + AnyNetworkBlock, AnyTransactionReceipt, TransactionInput, TransactionRequest, +}; +use alloy_serde::OtherFields; +use reth_primitives::{BlockId, BlockNumberOrTag}; use reth_rpc_eth_types::EthApiError; -use reth_rpc_types::request::{TransactionInput, TransactionRequest}; -use reth_rpc_types::{AnyTransactionReceipt, Block, Rich}; use revm::primitives::{B256, U256}; use serde_json::json; @@ -110,8 +113,7 @@ fn get_transaction_by_block_hash_and_index_test() { .unwrap() .unwrap() .header - .hash - .unwrap(); + .hash; // doesn't exist let result = evm.get_transaction_by_block_hash_and_index(hash, U64::from(5), &mut working_set); @@ -198,8 +200,7 @@ fn get_block_transaction_count_by_hash_test() { .unwrap() .unwrap() .header - .hash - .unwrap(); + .hash; let result = evm.eth_get_block_transaction_count_by_hash(block_hash_1, &mut working_set); @@ -210,8 +211,7 @@ fn get_block_transaction_count_by_hash_test() { .unwrap() .unwrap() .header - .hash - .unwrap(); + .hash; let result = evm.eth_get_block_transaction_count_by_hash(block_hash_2, &mut working_set); assert_eq!(result, Ok(Some(U256::from(5)))); @@ -221,8 +221,7 @@ fn get_block_transaction_count_by_hash_test() { .unwrap() .unwrap() .header - .hash - .unwrap(); + .hash; let result = evm.eth_get_block_transaction_count_by_hash(block_hash_3, &mut working_set); @@ -274,6 +273,7 @@ fn call_test() { blob_versioned_hashes: None, transaction_type: None, sidecar: None, + authorization_list: None, }, Some(BlockId::Number(BlockNumberOrTag::Number(100))), None, @@ -281,7 +281,10 @@ fn call_test() { &mut working_set, ); - assert_eq!(fail_result, Err(EthApiError::UnknownBlockNumber.into())); + assert_eq!( + fail_result, + Err(EthApiError::HeaderNotFound(BlockNumberOrTag::Number(100).into()).into()) + ); working_set.unset_archival_version(); let contract = SimpleStorageContract::default(); @@ -292,8 +295,7 @@ fn call_test() { .unwrap() .unwrap() .header - .hash - .unwrap(); + .hash; let call_with_hash_nonce_too_low_result = evm.get_call( TransactionRequest { @@ -314,6 +316,7 @@ fn call_test() { blob_versioned_hashes: None, transaction_type: None, sidecar: None, + authorization_list: None, }, Some(BlockId::Hash(block_hash_3.into())), None, @@ -340,6 +343,7 @@ fn call_test() { blob_versioned_hashes: None, transaction_type: None, sidecar: None, + authorization_list: None, }, Some(BlockId::Number(BlockNumberOrTag::Number(3))), None, @@ -356,8 +360,7 @@ fn call_test() { .unwrap() .unwrap() .header - .hash - .unwrap(); + .hash; let result = evm .get_call( @@ -379,6 +382,7 @@ fn call_test() { blob_versioned_hashes: None, transaction_type: None, sidecar: None, + authorization_list: None, }, // How does this work precisely? In the first block, the contract was not there? Some(BlockId::Number(BlockNumberOrTag::Latest)), @@ -408,6 +412,7 @@ fn call_test() { blob_versioned_hashes: None, transaction_type: None, sidecar: None, + authorization_list: None, }, // How does this work precisely? In the first block, the contract was not there? Some(BlockId::Hash(latest_block_hash.into())), @@ -444,6 +449,7 @@ fn call_test() { blob_versioned_hashes: None, transaction_type: None, sidecar: None, + authorization_list: None, }, // How does this work precisely? In the first block, the contract was not there? Some(BlockId::Number(BlockNumberOrTag::Latest)), @@ -463,9 +469,9 @@ fn call_test() { // https://github.com/chainwayxyz/citrea/issues/134 } -fn check_against_third_block(block: &Rich) { +fn check_against_third_block(block: &AnyNetworkBlock) { // details = false - let mut inner_block = serde_json::from_value::(json!({ + let inner_block = serde_json::from_value::(json!({ "baseFeePerGas": "0x2de0b039", "difficulty": "0x0", "extraData": "0x", @@ -495,23 +501,23 @@ fn check_against_third_block(block: &Rich) { "uncles": [] })).unwrap(); - inner_block.other.insert( + let mut rich_block: AnyNetworkBlock = AnyNetworkBlock { + inner: inner_block.inner, + other: OtherFields::new(BTreeMap::new()), + }; + + rich_block.other.insert( "l1FeeRate".to_string(), serde_json::Value::Number(serde_json::Number::from(1)), ); - inner_block.other.insert( + rich_block.other.insert( "l1Hash".to_string(), serde_json::Value::String( "0x0808080808080808080808080808080808080808080808080808080808080808".to_string(), ), ); - let rich_block: Rich = Rich { - inner: inner_block, - extra_info: BTreeMap::new(), - }; - assert_eq!(block, &rich_block); } diff --git a/crates/evm/src/tests/queries/estimate_gas_tests.rs b/crates/evm/src/tests/queries/estimate_gas_tests.rs index 54ef499e5..bfbeb2578 100644 --- a/crates/evm/src/tests/queries/estimate_gas_tests.rs +++ b/crates/evm/src/tests/queries/estimate_gas_tests.rs @@ -1,12 +1,11 @@ use std::str::FromStr; -use alloy_eips::eip2930::AccessListWithGasUsed; +use alloy_eips::eip2930::{AccessList, AccessListItem, AccessListWithGasUsed}; +use alloy_primitives::{address, b256, Address, TxKind, U256}; +use alloy_rpc_types::{TransactionInput, TransactionRequest}; use jsonrpsee::core::RpcResult; -use reth_primitives::{ - address, b256, AccessList, AccessListItem, Address, BlockNumberOrTag, TxKind, U256, -}; +use reth_primitives::BlockNumberOrTag; use reth_rpc_eth_types::RpcInvalidTransactionError; -use reth_rpc_types::request::{TransactionInput, TransactionRequest}; use serde_json::json; use sov_modules_api::default_context::DefaultContext; use sov_modules_api::{Spec, WorkingSet}; @@ -44,6 +43,7 @@ fn test_payable_contract_value() { blob_versioned_hashes: None, transaction_type: None, sidecar: None, + authorization_list: None, }; let result = evm.eth_estimate_gas(tx_req, Some(BlockNumberOrTag::Latest), &mut working_set); @@ -75,6 +75,7 @@ fn test_tx_request_fields_gas() { blob_versioned_hashes: None, transaction_type: None, sidecar: None, + authorization_list: None, }; let result_contract_call = evm.eth_estimate_gas( @@ -318,6 +319,7 @@ fn test_access_list() { blob_versioned_hashes: None, transaction_type: None, sidecar: None, + authorization_list: None, }; let no_access_list = evm.eth_estimate_gas(tx_req_contract_call.clone(), None, &mut working_set); @@ -404,6 +406,7 @@ fn test_pending_env() { blob_versioned_hashes: None, transaction_type: None, sidecar: None, + authorization_list: None, }; let result = evm diff --git a/crates/evm/src/tests/queries/evm_call_tests.rs b/crates/evm/src/tests/queries/evm_call_tests.rs index 061fbde96..d6b837710 100644 --- a/crates/evm/src/tests/queries/evm_call_tests.rs +++ b/crates/evm/src/tests/queries/evm_call_tests.rs @@ -1,12 +1,12 @@ use std::collections::HashMap; use std::str::FromStr; +use alloy_primitives::{address, Address, Bytes, TxKind, B256}; +use alloy_rpc_types::state::AccountOverride; +use alloy_rpc_types::{BlockId, TransactionInput, TransactionRequest}; use jsonrpsee::core::RpcResult; -use reth_primitives::{address, Address, BlockNumberOrTag, Bytes, TxKind}; +use reth_primitives::BlockNumberOrTag; use reth_rpc_eth_types::RpcInvalidTransactionError; -use reth_rpc_types::request::{TransactionInput, TransactionRequest}; -use reth_rpc_types::state::AccountOverride; -use reth_rpc_types::BlockId; use revm::primitives::U256; use sov_modules_api::default_context::DefaultContext; use sov_modules_api::hooks::HookSoftConfirmationInfo; @@ -244,7 +244,11 @@ fn call_with_high_gas_price() { assert_eq!( call_result, - Err(RpcInvalidTransactionError::InsufficientFunds.into()) + Err(RpcInvalidTransactionError::InsufficientFunds { + cost: U256::from(1000000000000000000000000000u128), + balance: U256::from(99999573573123175976u128) + } + .into()) ); } @@ -274,7 +278,11 @@ fn test_eip1559_fields_call() { ); assert_eq!( high_fee_result, - Err(RpcInvalidTransactionError::InsufficientFunds.into()) + Err(RpcInvalidTransactionError::InsufficientFunds { + cost: U256::from_str("34028236692093846346337460743176821145500000").unwrap(), + balance: U256::from(99999573573123175976u128) + } + .into()) ); let low_max_fee_result = eth_call_eip1559(&evm, &mut working_set, &signer, Some(1), Some(1)); @@ -315,7 +323,7 @@ fn eth_call_eip1559( signer: &TestSigner, max_fee_per_gas: Option, max_priority_fee_per_gas: Option, -) -> RpcResult { +) -> RpcResult { let contract = SimpleStorageContract::default(); let tx_req = TransactionRequest { @@ -367,6 +375,7 @@ fn gas_price_call_test() { gas_price: None, max_fee_per_gas: None, max_priority_fee_per_gas: None, + authorization_list: None, }; // Test with low gas limit @@ -540,10 +549,15 @@ fn test_call_with_state_overrides() { ); // Override the state and check returned value - let mut state = HashMap::new(); + let mut state: HashMap> = + HashMap::with_hasher(alloy_primitives::map::FbBuildHasher::default()); state.insert(U256::from(0).into(), U256::from(15).into()); - let mut state_override = HashMap::new(); + let mut state_override: HashMap< + Address, + AccountOverride, + alloy_primitives::map::FbBuildHasher<20>, + > = HashMap::with_hasher(alloy_primitives::map::FbBuildHasher::default()); state_override.insert( contract_address, AccountOverride { @@ -552,6 +566,7 @@ fn test_call_with_state_overrides() { code: None, state: Some(state), state_diff: None, + move_precompile_to: None, }, ); let call_result_with_state_override = evm diff --git a/crates/evm/src/tests/queries/log_tests.rs b/crates/evm/src/tests/queries/log_tests.rs index c29550530..69bc08edc 100644 --- a/crates/evm/src/tests/queries/log_tests.rs +++ b/crates/evm/src/tests/queries/log_tests.rs @@ -1,7 +1,8 @@ use std::str::FromStr; +use alloy_primitives::b256; use reth_primitives::constants::ETHEREUM_BLOCK_GAS_LIMIT; -use reth_primitives::{b256, BlockNumberOrTag}; +use reth_primitives::BlockNumberOrTag; use reth_rpc_eth_types::EthApiError; use revm::primitives::{B256, U256}; use sov_modules_api::default_context::DefaultContext; @@ -37,7 +38,10 @@ fn logs_for_filter_test() { }, &mut working_set, ); - assert_eq!(result, Err(EthApiError::UnknownBlockNumber.into())); + assert_eq!( + result, + Err(EthApiError::HeaderNotFound(B256::from([1u8; 32]).into()).into()) + ); let available_res = evm.eth_get_logs( Filter { diff --git a/crates/evm/src/tests/queries/mod.rs b/crates/evm/src/tests/queries/mod.rs index 907293516..95fbb8fe3 100644 --- a/crates/evm/src/tests/queries/mod.rs +++ b/crates/evm/src/tests/queries/mod.rs @@ -5,7 +5,7 @@ mod log_tests; use std::str::FromStr; -use reth_primitives::{address, Address, Bytes}; +use alloy_primitives::{address, Address, Bytes}; use revm::primitives::{KECCAK_EMPTY, U256}; use sov_modules_api::default_context::DefaultContext; use sov_modules_api::hooks::HookSoftConfirmationInfo; diff --git a/crates/evm/src/tests/sys_tx_tests.rs b/crates/evm/src/tests/sys_tx_tests.rs index 94b0cb0d2..e43531036 100644 --- a/crates/evm/src/tests/sys_tx_tests.rs +++ b/crates/evm/src/tests/sys_tx_tests.rs @@ -1,10 +1,10 @@ use std::collections::HashMap; use std::str::FromStr; -use alloy_primitives::LogData; +use alloy_primitives::{address, b256, hex, LogData, TxKind, U64}; +use alloy_rpc_types::{TransactionInput, TransactionRequest}; use reth_primitives::constants::ETHEREUM_BLOCK_GAS_LIMIT; -use reth_primitives::{address, b256, hex, BlockNumberOrTag, Log, TxKind, U64}; -use reth_rpc_types::{TransactionInput, TransactionRequest}; +use reth_primitives::{BlockNumberOrTag, Log}; use revm::primitives::{Bytes, KECCAK_EMPTY, U256}; use sov_modules_api::default_context::DefaultContext; use sov_modules_api::hooks::HookSoftConfirmationInfo; @@ -19,7 +19,7 @@ use crate::evm::primitive_types::Receipt; use crate::evm::system_contracts::BitcoinLightClient; use crate::handler::L1_FEE_OVERHEAD; use crate::smart_contracts::{BlockHashContract, LogsContract}; -use crate::system_contracts::{Bridge, ProxyAdmin}; +use crate::system_contracts::{BridgeWrapper, ProxyAdmin}; use crate::tests::test_signer::TestSigner; use crate::tests::utils::{ config_push_contracts, create_contract_message, create_contract_message_with_fee, get_evm, @@ -79,14 +79,14 @@ fn test_sys_bitcoin_light_client() { cumulative_gas_used: 300521, logs: vec![ Log { - address: Bridge::address(), + address: BridgeWrapper::address(), data: LogData::new( vec![b256!("fbe5b6cbafb274f445d7fed869dc77a838d8243a22c460de156560e8857cad03")], Bytes::from_static(&hex!("0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000deaddeaddeaddeaddeaddeaddeaddeaddeaddead")), ).unwrap(), }, Log { - address: Bridge::address(), + address: BridgeWrapper::address(), data: LogData::new( vec![b256!("80bd1fdfe157286ce420ee763f91748455b249605748e5df12dad9844402bafc")], Bytes::from_static(&hex!("000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000a0000000000000000000000000000000000000000000000000000000000000002d4a209fb3a961d8b1f4ec1caa220c6a50b815febc0b689ddf0b9ddfbf99cb74479e41ac0063066369747265611400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a08000000003b9aca006800000000000000000000000000000000000000000000")) @@ -480,7 +480,7 @@ fn test_sys_tx_gas_usage_effect_on_block_gas_limit() { .unwrap() .unwrap(); - assert_eq!(block.header.gas_limit, ETHEREUM_BLOCK_GAS_LIMIT as _); + assert_eq!(block.header.gas_limit, ETHEREUM_BLOCK_GAS_LIMIT); assert!(block.header.gas_used <= block.header.gas_limit); // In total there should only be 1134 transactions 1 is system tx others are contract calls @@ -679,7 +679,7 @@ fn test_upgrade_light_client() { // Assert if hash is equal to 0xdeaddeaddeaddeaddeaddeaddeaddeaddeaddeaddeaddeaddeaddeaddeaddead assert_eq!( hash, - reth_primitives::Bytes::from_str( + alloy_primitives::Bytes::from_str( "0xdeaddeaddeaddeaddeaddeaddeaddeaddeaddeaddeaddeaddeaddeaddeaddead" ) .unwrap() @@ -865,7 +865,7 @@ fn test_change_upgrade_owner() { // Assert if hash is equal to 0xdeaddeaddeaddeaddeaddeaddeaddeaddeaddeaddeaddeaddeaddeaddeaddead assert_eq!( hash, - reth_primitives::Bytes::from_str( + alloy_primitives::Bytes::from_str( "0xdeaddeaddeaddeaddeaddeaddeaddeaddeaddeaddeaddeaddeaddeaddeaddead" ) .unwrap() diff --git a/crates/evm/src/tests/test_signer.rs b/crates/evm/src/tests/test_signer.rs index 96d6a4421..fb82ab2b1 100644 --- a/crates/evm/src/tests/test_signer.rs +++ b/crates/evm/src/tests/test_signer.rs @@ -1,15 +1,15 @@ +use alloy_consensus::{TxEip1559 as RethTxEip1559, TxEip4844 as RethTxEip4844}; +use alloy_eips::eip2718::Encodable2718; +use alloy_primitives::{Address, Bytes as RethBytes, TxKind, B256, U256}; use rand::rngs::StdRng; use rand::SeedableRng; -use reth_primitives::{ - Address, Bytes as RethBytes, Transaction as RethTransaction, TxEip1559 as RethTxEip1559, - TxEip4844 as RethTxEip4844, TxKind, B256, U256, -}; +use reth_primitives::Transaction as RethTransaction; +use reth_rpc_eth_types::SignError; use secp256k1::{PublicKey, SecretKey}; use crate::evm::RlpEvmTransaction; use crate::signer::DevSigner; use crate::tests::DEFAULT_CHAIN_ID; -use crate::SignError; /// ETH transactions signer used in tests. pub(crate) struct TestSigner { @@ -73,10 +73,9 @@ impl TestSigner { let reth_tx = RethTransaction::Eip1559(reth_tx); let signed = self.signer.sign_transaction(reth_tx, self.address)?; - - Ok(RlpEvmTransaction { - rlp: signed.envelope_encoded().to_vec(), - }) + let mut buf = vec![]; + signed.encode_2718(&mut buf); + Ok(RlpEvmTransaction { rlp: buf }) } /// Signs default Eip1559 transaction with to, data, gas limit and nonce overridden. @@ -102,10 +101,9 @@ impl TestSigner { let reth_tx = RethTransaction::Eip1559(reth_tx); let signed = self.signer.sign_transaction(reth_tx, self.address)?; - - Ok(RlpEvmTransaction { - rlp: signed.envelope_encoded().to_vec(), - }) + let mut buf = vec![]; + signed.encode_2718(&mut buf); + Ok(RlpEvmTransaction { rlp: buf }) } /// Signs default Eip1559 transaction with to, data and nonce overridden. @@ -132,10 +130,9 @@ impl TestSigner { let reth_tx = RethTransaction::Eip1559(reth_tx); let signed = self.signer.sign_transaction(reth_tx, self.address)?; - - Ok(RlpEvmTransaction { - rlp: signed.envelope_encoded().to_vec(), - }) + let mut buf = vec![]; + signed.encode_2718(&mut buf); + Ok(RlpEvmTransaction { rlp: buf }) } pub(crate) fn sign_blob_transaction( @@ -157,9 +154,8 @@ impl TestSigner { let reth_tx = RethTransaction::Eip4844(reth_tx); let signed = self.signer.sign_transaction(reth_tx, self.address)?; - - Ok(RlpEvmTransaction { - rlp: signed.envelope_encoded().to_vec(), - }) + let mut buf = vec![]; + signed.encode_2718(&mut buf); + Ok(RlpEvmTransaction { rlp: buf }) } } diff --git a/crates/evm/src/tests/tx_tests.rs b/crates/evm/src/tests/tx_tests.rs index 6a9b914f7..0472a00d0 100644 --- a/crates/evm/src/tests/tx_tests.rs +++ b/crates/evm/src/tests/tx_tests.rs @@ -3,12 +3,11 @@ use std::str::FromStr; use alloy::consensus::{SignableTransaction, TxEnvelope}; use alloy::providers::network::TxSignerSync; use alloy::signers::local::PrivateKeySigner; +use alloy_primitives::{Address, Bytes, TxKind, U256}; use alloy_rlp::{Decodable, Encodable}; +use alloy_rpc_types::{TransactionInput, TransactionRequest}; use bytes::BytesMut; -use reth_primitives::{ - Address, Bytes, TransactionSigned, TransactionSignedEcRecovered, TxKind, U256, -}; -use reth_rpc_types::request::{TransactionInput, TransactionRequest}; +use reth_primitives::{Signature, TransactionSigned, TransactionSignedEcRecovered}; use revm::primitives::{BlockEnv, TransactTo, TxEnv}; use crate::conversions::sealed_block_to_block_env; @@ -73,7 +72,7 @@ fn tx_conversion() { signer, signed_transaction: reth_primitives::TransactionSigned { hash: Default::default(), - signature: Default::default(), + signature: Signature::new(Default::default(), Default::default(), Default::default()), transaction: Default::default(), }, block_number: 5u64, @@ -105,6 +104,7 @@ fn prepare_call_env_conversion() { blob_versioned_hashes: None, max_fee_per_blob_gas: None, sidecar: None, + authorization_list: None, }; let block_env = BlockEnv::default(); @@ -143,7 +143,7 @@ fn prepare_call_env_conversion() { #[test] fn prepare_call_block_env() { - let block = Block { + let block = Block:: { header: Default::default(), l1_fee_rate: Default::default(), l1_hash: Default::default(), diff --git a/crates/evm/src/tests/utils.rs b/crates/evm/src/tests/utils.rs index 6475a2c05..38761e33b 100644 --- a/crates/evm/src/tests/utils.rs +++ b/crates/evm/src/tests/utils.rs @@ -2,11 +2,11 @@ use std::collections::HashMap; use std::path::Path; use alloy_eips::eip1559::BaseFeeParams; +use alloy_primitives::hex_literal::hex; +use alloy_primitives::{address, Address, Bytes, TxKind, B256, U256}; use lazy_static::lazy_static; use reth_primitives::constants::ETHEREUM_BLOCK_GAS_LIMIT; -use reth_primitives::hex_literal::hex; -use reth_primitives::{address, Address, Bytes, TxKind, B256}; -use revm::primitives::{KECCAK_EMPTY, U256}; +use reth_primitives::KECCAK_EMPTY; use sov_modules_api::default_context::DefaultContext; use sov_modules_api::hooks::HookSoftConfirmationInfo; use sov_modules_api::{Module, Spec, WorkingSet}; diff --git a/crates/fullnode/Cargo.toml b/crates/fullnode/Cargo.toml index 72397abfa..7af51a1b9 100644 --- a/crates/fullnode/Cargo.toml +++ b/crates/fullnode/Cargo.toml @@ -11,7 +11,7 @@ repository.workspace = true [dependencies] # Citrea Deps citrea-common = { path = "../common" } -citrea-primitives = { path = "../primitives", features = ["native"] } +citrea-primitives = { path = "../primitives" } citrea-pruning = { path = "../pruning" } # Sov SDK deps @@ -24,6 +24,7 @@ sov-rollup-interface = { path = "../sovereign-sdk/rollup-interface" } sov-stf-runner = { path = "../sovereign-sdk/full-node/sov-stf-runner" } # 3rd-party deps +alloy-primitives = { workspace = true } anyhow = { workspace = true } backoff = { workspace = true } borsh = { workspace = true } @@ -34,7 +35,6 @@ metrics = { workspace = true } metrics-derive = { workspace = true } once_cell = { workspace = true, default-features = true } rand = { workspace = true } -reth-primitives = { workspace = true } rs_merkle = { workspace = true } serde = { workspace = true } serde_json = { workspace = true } diff --git a/crates/fullnode/src/runner.rs b/crates/fullnode/src/runner.rs index e41527885..2658631b5 100644 --- a/crates/fullnode/src/runner.rs +++ b/crates/fullnode/src/runner.rs @@ -3,6 +3,7 @@ use std::net::SocketAddr; use std::sync::Arc; use std::time::Instant; +use alloy_primitives::U64; use anyhow::{bail, Context as _}; use backoff::future::retry as retry_backoff; use backoff::ExponentialBackoffBuilder; @@ -17,7 +18,6 @@ use jsonrpsee::core::client::Error as JsonrpseeError; use jsonrpsee::http_client::{HttpClient, HttpClientBuilder}; use jsonrpsee::server::{BatchRequestConfig, RpcServiceBuilder, ServerBuilder}; use jsonrpsee::RpcModule; -use reth_primitives::U64; use sov_db::ledger_db::NodeLedgerOps; use sov_db::schema::types::{BatchNumber, SlotNumber}; use sov_ledger_rpc::LedgerRpcClient; diff --git a/crates/light-client-prover/Cargo.toml b/crates/light-client-prover/Cargo.toml index e3ff4092c..a2c8f2f09 100644 --- a/crates/light-client-prover/Cargo.toml +++ b/crates/light-client-prover/Cargo.toml @@ -21,6 +21,7 @@ sov-rollup-interface = { path = "../sovereign-sdk/rollup-interface" } sov-stf-runner = { path = "../sovereign-sdk/full-node/sov-stf-runner", optional = true } # 3rd-party deps +alloy-primitives = { workspace = true, optional = true } anyhow = { workspace = true, optional = true } async-trait = { workspace = true, optional = true } bincode = { workspace = true } @@ -30,7 +31,6 @@ jsonrpsee = { workspace = true, optional = true, features = ["http-client", "ser metrics = { workspace = true, optional = true } metrics-derive = { workspace = true, optional = true } once_cell = { workspace = true, default-features = true, optional = true } -reth-primitives = { workspace = true, optional = true } tokio = { workspace = true, optional = true } tokio-util = { workspace = true, optional = true } tower = { workspace = true, optional = true } @@ -44,6 +44,7 @@ tempfile = { workspace = true } [features] default = [] native = [ + "dep:alloy-primitives", "dep:citrea-primitives", "dep:citrea-common", "dep:sov-db", @@ -55,7 +56,6 @@ native = [ "dep:metrics", "dep:metrics-derive", "dep:once_cell", - "dep:reth-primitives", "dep:tokio", "dep:tokio-util", "dep:tower", diff --git a/crates/light-client-prover/src/da_block_handler.rs b/crates/light-client-prover/src/da_block_handler.rs index 0f6cbf0a1..7c513f9b6 100644 --- a/crates/light-client-prover/src/da_block_handler.rs +++ b/crates/light-client-prover/src/da_block_handler.rs @@ -1,6 +1,7 @@ use std::collections::{HashMap, VecDeque}; use std::sync::Arc; +use alloy_primitives::U64; use anyhow::anyhow; use borsh::BorshDeserialize; use citrea_common::cache::L1BlockCache; @@ -8,7 +9,6 @@ use citrea_common::da::get_da_block_at_height; use citrea_common::LightClientProverConfig; use citrea_primitives::forks::FORKS; use jsonrpsee::http_client::HttpClient; -use reth_primitives::U64; use sov_db::ledger_db::{LightClientProverLedgerOps, SharedLedgerOps}; use sov_db::schema::types::{SlotNumber, StoredLightClientProofOutput}; use sov_ledger_rpc::LedgerRpcClient; diff --git a/crates/primitives/Cargo.toml b/crates/primitives/Cargo.toml index b19b5b4d5..5adf7c5d8 100644 --- a/crates/primitives/Cargo.toml +++ b/crates/primitives/Cargo.toml @@ -12,26 +12,12 @@ sov-rollup-interface = { path = "../sovereign-sdk/rollup-interface" } # 3rd-party deps alloy-eips = { workspace = true } -anyhow = { workspace = true } brotli = { workspace = true } -reth-primitives = { workspace = true } -serde = { workspace = true, optional = true } -tokio = { workspace = true, optional = true } -tracing = { workspace = true, optional = true } [dev-dependencies] # Sov SDK deps sov-rollup-interface = { path = "../sovereign-sdk/rollup-interface", features = ["testing"] } [features] -native = [ - "dep:serde", - "dep:tokio", - "dep:tracing", - "sov-rollup-interface/native", -] -testing = [ - "native", - "short-prefix", -] +testing = ["short-prefix"] short-prefix = [] diff --git a/crates/primitives/src/basefee.rs b/crates/primitives/src/basefee.rs index a365893ae..f9d9c0dc9 100644 --- a/crates/primitives/src/basefee.rs +++ b/crates/primitives/src/basefee.rs @@ -1,16 +1,15 @@ -use alloy_eips::eip1559::BaseFeeParams; -use reth_primitives::basefee::calc_next_block_base_fee; +use alloy_eips::eip1559::{calc_next_block_base_fee, BaseFeeParams}; use crate::MIN_BASE_FEE_PER_GAS; pub fn calculate_next_block_base_fee( - gas_used: u128, - gas_limit: u128, + gas_used: u64, + gas_limit: u64, base_fee: u64, base_fee_params: BaseFeeParams, ) -> u128 { std::cmp::max( MIN_BASE_FEE_PER_GAS, - calc_next_block_base_fee(gas_used, gas_limit, base_fee as u128, base_fee_params), + calc_next_block_base_fee(gas_used, gas_limit, base_fee, base_fee_params) as u128, ) } diff --git a/crates/prover-services/Cargo.toml b/crates/prover-services/Cargo.toml index 9d935ff3d..5fa4f737d 100644 --- a/crates/prover-services/Cargo.toml +++ b/crates/prover-services/Cargo.toml @@ -10,7 +10,7 @@ repository.workspace = true [dependencies] # Citrea Deps -citrea-primitives = { path = "../primitives", features = ["native"] } +citrea-primitives = { path = "../primitives" } citrea-stf = { path = "../citrea-stf" } # Sov SDK deps diff --git a/crates/pruning/Cargo.toml b/crates/pruning/Cargo.toml index 1c6c06640..874045cd2 100644 --- a/crates/pruning/Cargo.toml +++ b/crates/pruning/Cargo.toml @@ -11,7 +11,7 @@ repository.workspace = true [dependencies] # Citrea dependencies citrea-evm = { path = "../evm", features = ["native"] } -citrea-primitives = { path = "../primitives", features = ["native"] } +citrea-primitives = { path = "../primitives" } # Sov SDK deps sov-db = { path = "../sovereign-sdk/full-node/db/sov-db" } diff --git a/crates/sequencer/Cargo.toml b/crates/sequencer/Cargo.toml index 5e97d6d37..8379070cf 100644 --- a/crates/sequencer/Cargo.toml +++ b/crates/sequencer/Cargo.toml @@ -40,12 +40,20 @@ tower-http = { workspace = true } tracing = { workspace = true } tracing-subscriber = { workspace = true } +alloy-eips = { workspace = true } +alloy-genesis = { workspace = true } +alloy-network = { workspace = true } +alloy-primitives = { workspace = true } +alloy-rpc-types = { workspace = true } +alloy-rpc-types-eth = { workspace = true } reth-chainspec = { workspace = true } reth-db = { workspace = true } +reth-execution-types = { workspace = true } reth-primitives = { workspace = true } reth-provider = { workspace = true } +reth-rpc = { workspace = true } +reth-rpc-eth-api = { workspace = true } reth-rpc-eth-types = { workspace = true } -reth-rpc-types = { workspace = true } reth-rpc-types-compat = { workspace = true } reth-tasks = { workspace = true } reth-transaction-pool = { workspace = true } diff --git a/crates/sequencer/src/db_provider/mod.rs b/crates/sequencer/src/db_provider/mod.rs index 4a30df98b..1c878c288 100644 --- a/crates/sequencer/src/db_provider/mod.rs +++ b/crates/sequencer/src/db_provider/mod.rs @@ -1,23 +1,26 @@ use core::ops::RangeInclusive; -use std::collections::HashMap; +use alloy_primitives::map::{HashMap, HashSet}; +use alloy_primitives::{ + Address, BlockHash, BlockNumber, Bytes, StorageKey, StorageValue, TxHash, TxNumber, B256, U256, +}; +use alloy_rpc_types::{AnyNetworkBlock, BlockTransactions}; use citrea_evm::{Evm, EvmChainConfig}; use jsonrpsee::core::RpcResult; use reth_chainspec::{ChainInfo, ChainSpec}; use reth_db::models::StoredBlockBodyIndices; use reth_primitives::{ - Account, Address, BlockNumber, BlockNumberOrTag, BlockWithSenders, Bytecode, - SealedBlockWithSenders, SealedHeader, StorageKey, StorageValue, B256, U256, + Account, BlockHashOrNumber, BlockNumberOrTag, BlockWithSenders, Bytecode, + SealedBlockWithSenders, SealedHeader, }; use reth_provider::{ AccountReader, BlockHashReader, BlockIdReader, BlockNumReader, BlockReader, BlockReaderIdExt, ChainSpecProvider, HeaderProvider, ProviderResult, ReceiptProvider, ReceiptProviderIdExt, RequestsProvider, StateProofProvider, StateProvider, StateProviderFactory, StateRootProvider, - TransactionsProvider, WithdrawalsProvider, + StorageRootProvider, TransactionsProvider, WithdrawalsProvider, }; -use reth_rpc_types::{Block, BlockTransactions, Rich}; use reth_trie::updates::TrieUpdates; -use revm::db::states::bundle_state::BundleState; +use reth_trie::{HashedPostState, HashedStorage, StorageProof}; use sov_modules_api::WorkingSet; #[derive(Clone)] @@ -47,7 +50,7 @@ impl DbProvider { } } - pub fn last_block(&self) -> RpcResult>> { + pub fn last_block(&self) -> RpcResult> { let mut working_set = WorkingSet::new(self.storage.clone()); let rich_block = self .evm @@ -55,12 +58,14 @@ impl DbProvider { Ok(rich_block) } - pub fn genesis_block(&self) -> RpcResult> { + pub fn genesis_block(&self) -> RpcResult> { let mut working_set = WorkingSet::new(self.storage.clone()); - let rich_block = self - .evm - .get_block_by_number(Some(BlockNumberOrTag::Earliest), None, &mut working_set)? - .map(|b| b.inner); + let rich_block = self.evm.get_block_by_number( + Some(BlockNumberOrTag::Earliest), + None, + &mut working_set, + )?; + Ok(rich_block) } } @@ -81,7 +86,7 @@ impl AccountReader for DbProvider { impl RequestsProvider for DbProvider { fn requests_by_block( &self, - _id: reth_primitives::BlockHashOrNumber, + _id: BlockHashOrNumber, _timestamp: u64, ) -> ProviderResult> { unimplemented!("requests_by_block") @@ -97,7 +102,7 @@ impl BlockReaderIdExt for DbProvider { } fn block_by_number_or_tag( &self, - _id: reth_primitives::BlockNumberOrTag, + _id: BlockNumberOrTag, ) -> ProviderResult> { unimplemented!("block_by_number_or_tag") } @@ -112,7 +117,7 @@ impl BlockReaderIdExt for DbProvider { } fn header_by_number_or_tag( &self, - _id: reth_primitives::BlockNumberOrTag, + _id: BlockNumberOrTag, ) -> ProviderResult> { unimplemented!("header_by_number_or_tag") } @@ -131,7 +136,7 @@ impl BlockReaderIdExt for DbProvider { } fn ommers_by_number_or_tag( &self, - _id: reth_primitives::BlockNumberOrTag, + _id: BlockNumberOrTag, ) -> ProviderResult>> { unimplemented!("ommers_by_number_or_tag") } @@ -149,61 +154,55 @@ impl BlockReaderIdExt for DbProvider { } fn sealed_header_by_number_or_tag( &self, - _id: reth_primitives::BlockNumberOrTag, + _id: BlockNumberOrTag, ) -> ProviderResult> { unimplemented!("sealed_header_by_number_or_tag") } } impl HeaderProvider for DbProvider { - fn header( - &self, - _block_hash: &reth_primitives::BlockHash, - ) -> ProviderResult> { + fn header(&self, _block_hash: &BlockHash) -> ProviderResult> { unimplemented!("header") } fn header_by_hash_or_number( &self, - _hash_or_num: reth_primitives::BlockHashOrNumber, + _hash_or_num: BlockHashOrNumber, ) -> ProviderResult> { unimplemented!("header_by_hash_or_number") } fn header_by_number(&self, _num: u64) -> ProviderResult> { unimplemented!("header_by_number") } - fn header_td(&self, _hash: &reth_primitives::BlockHash) -> ProviderResult> { + fn header_td(&self, _hash: &BlockHash) -> ProviderResult> { unimplemented!("header_td") } - fn header_td_by_number( - &self, - _number: reth_primitives::BlockNumber, - ) -> ProviderResult> { + fn header_td_by_number(&self, _number: BlockNumber) -> ProviderResult> { unimplemented!("header_td_by_number") } fn headers_range( &self, - _range: impl std::ops::RangeBounds, + _range: impl std::ops::RangeBounds, ) -> ProviderResult> { unimplemented!("headers_range") } - fn is_known(&self, _block_hash: &reth_primitives::BlockHash) -> ProviderResult { + fn is_known(&self, _block_hash: &BlockHash) -> ProviderResult { unimplemented!("is_known") } fn sealed_header( &self, - _number: reth_primitives::BlockNumber, + _number: BlockNumber, ) -> ProviderResult> { unimplemented!("sealed_header") } fn sealed_headers_range( &self, - _range: impl std::ops::RangeBounds, + _range: impl std::ops::RangeBounds, ) -> ProviderResult> { unimplemented!("sealed_headers_range") } fn sealed_headers_while( &self, - _range: impl std::ops::RangeBounds, + _range: impl std::ops::RangeBounds, _predicate: impl FnMut(&SealedHeader) -> bool, ) -> ProviderResult> { unimplemented!("sealed_headers_while") @@ -211,29 +210,29 @@ impl HeaderProvider for DbProvider { } impl BlockHashReader for DbProvider { - fn block_hash(&self, _number: reth_primitives::BlockNumber) -> ProviderResult> { + fn block_hash(&self, _number: BlockNumber) -> ProviderResult> { unimplemented!() } fn canonical_hashes_range( &self, - _start: reth_primitives::BlockNumber, - _end: reth_primitives::BlockNumber, + _start: BlockNumber, + _end: BlockNumber, ) -> ProviderResult> { unimplemented!("canonical_hashes_range") } fn convert_block_hash( &self, - _hash_or_number: reth_rpc_types::BlockHashOrNumber, - ) -> ProviderResult> { + _hash_or_number: BlockHashOrNumber, + ) -> ProviderResult> { unimplemented!("convert_block_hash") } } impl BlockNumReader for DbProvider { - fn best_block_number(&self) -> ProviderResult { + fn best_block_number(&self) -> ProviderResult { unimplemented!("best_block_number") } - fn block_number(&self, _hash: B256) -> ProviderResult> { + fn block_number(&self, _hash: B256) -> ProviderResult> { unimplemented!("block_number") } fn chain_info(&self) -> ProviderResult { @@ -241,17 +240,14 @@ impl BlockNumReader for DbProvider { } fn convert_hash_or_number( &self, - _id: reth_primitives::BlockHashOrNumber, - ) -> ProviderResult> { + _id: BlockHashOrNumber, + ) -> ProviderResult> { unimplemented!("convert_hash_or_number") } - fn convert_number( - &self, - _id: reth_primitives::BlockHashOrNumber, - ) -> ProviderResult> { + fn convert_number(&self, _id: BlockHashOrNumber) -> ProviderResult> { unimplemented!("convert_number") } - fn last_block_number(&self) -> ProviderResult { + fn last_block_number(&self) -> ProviderResult { unimplemented!("last_block_number") } } @@ -266,13 +262,10 @@ impl BlockIdReader for DbProvider { fn block_number_for_id( &self, _block_id: reth_primitives::BlockId, - ) -> ProviderResult> { + ) -> ProviderResult> { unimplemented!("block_number_for_id") } - fn convert_block_number( - &self, - _num: reth_primitives::BlockNumberOrTag, - ) -> ProviderResult> { + fn convert_block_number(&self, _num: BlockNumberOrTag) -> ProviderResult> { unimplemented!("convert_block_number") } fn finalized_block_hash(&self) -> ProviderResult> { @@ -281,7 +274,7 @@ impl BlockIdReader for DbProvider { fn finalized_block_num_hash(&self) -> ProviderResult> { unimplemented!("finalized_block_num_hash") } - fn finalized_block_number(&self) -> ProviderResult> { + fn finalized_block_number(&self) -> ProviderResult> { unimplemented!("finalized_block_number") } fn pending_block_num_hash(&self) -> ProviderResult> { @@ -293,16 +286,13 @@ impl BlockIdReader for DbProvider { fn safe_block_num_hash(&self) -> ProviderResult> { unimplemented!("safe_block_num_hash") } - fn safe_block_number(&self) -> ProviderResult> { + fn safe_block_number(&self) -> ProviderResult> { unimplemented!("safe_block_number") } } impl BlockReader for DbProvider { - fn block( - &self, - _id: reth_primitives::BlockHashOrNumber, - ) -> ProviderResult> { + fn block(&self, _id: BlockHashOrNumber) -> ProviderResult> { unimplemented!("block") } fn block_body_indices(&self, _num: u64) -> ProviderResult> { @@ -316,7 +306,7 @@ impl BlockReader for DbProvider { } fn block_with_senders( &self, - _id: reth_rpc_types::BlockHashOrNumber, + _id: BlockHashOrNumber, _transaction_kind: reth_provider::TransactionVariant, ) -> ProviderResult> { unimplemented!("block_with_senders") @@ -330,7 +320,7 @@ impl BlockReader for DbProvider { } fn ommers( &self, - _id: reth_primitives::BlockHashOrNumber, + _id: BlockHashOrNumber, ) -> ProviderResult>> { unimplemented!("ommers") } @@ -344,7 +334,7 @@ impl BlockReader for DbProvider { } fn block_range( &self, - _range: std::ops::RangeInclusive, + _range: std::ops::RangeInclusive, ) -> ProviderResult> { unimplemented!("block_range") } @@ -362,7 +352,7 @@ impl BlockReader for DbProvider { fn sealed_block_with_senders( &self, - _id: reth_primitives::BlockHashOrNumber, + _id: BlockHashOrNumber, _transaction_kind: reth_provider::TransactionVariant, ) -> ProviderResult> { unimplemented!("sealed_block_with_senders") @@ -379,25 +369,22 @@ impl BlockReader for DbProvider { impl TransactionsProvider for DbProvider { fn senders_by_tx_range( &self, - _range: impl std::ops::RangeBounds, + _range: impl std::ops::RangeBounds, ) -> ProviderResult> { unimplemented!("senders_by_tx_range") } - fn transaction_block( - &self, - _id: reth_primitives::TxNumber, - ) -> ProviderResult> { + fn transaction_block(&self, _id: TxNumber) -> ProviderResult> { unimplemented!("transaction_block") } fn transaction_by_hash( &self, - _hash: reth_primitives::TxHash, + _hash: TxHash, ) -> ProviderResult> { unimplemented!("transaction_by_hash") } fn transaction_by_hash_with_meta( &self, - _hash: reth_primitives::TxHash, + _hash: TxHash, ) -> ProviderResult< Option<( reth_primitives::TransactionSigned, @@ -408,70 +395,58 @@ impl TransactionsProvider for DbProvider { } fn transaction_by_id( &self, - _id: reth_primitives::TxNumber, + _id: TxNumber, ) -> ProviderResult> { unimplemented!("transaction_by_id") } fn transaction_by_id_no_hash( &self, - _id: reth_primitives::TxNumber, + _id: TxNumber, ) -> ProviderResult> { unimplemented!("transaction_by_id_no_hash") } - fn transaction_id( - &self, - _tx_hash: reth_primitives::TxHash, - ) -> ProviderResult> { + fn transaction_id(&self, _tx_hash: TxHash) -> ProviderResult> { unimplemented!("transaction_id") } - fn transaction_sender( - &self, - _id: reth_primitives::TxNumber, - ) -> ProviderResult> { + fn transaction_sender(&self, _id: TxNumber) -> ProviderResult> { unimplemented!("transaction_sender") } fn transactions_by_block( &self, - _block: reth_primitives::BlockHashOrNumber, + _block: BlockHashOrNumber, ) -> ProviderResult>> { unimplemented!("transactions_by_block") } fn transactions_by_block_range( &self, - _range: impl std::ops::RangeBounds, + _range: impl std::ops::RangeBounds, ) -> ProviderResult>> { unimplemented!("transactions_by_block_range") } fn transactions_by_tx_range( &self, - _range: impl std::ops::RangeBounds, + _range: impl std::ops::RangeBounds, ) -> ProviderResult> { unimplemented!("transactions_by_tx_range") } } impl ReceiptProvider for DbProvider { - fn receipt( - &self, - _id: reth_primitives::TxNumber, - ) -> ProviderResult> { + fn receipt(&self, _id: TxNumber) -> ProviderResult> { unimplemented!("receipt") } - fn receipt_by_hash( - &self, - _hash: reth_primitives::TxHash, - ) -> ProviderResult> { + fn receipt_by_hash(&self, _hash: TxHash) -> ProviderResult> { unimplemented!("receipt_by_hash") } fn receipts_by_block( &self, - _block: reth_primitives::BlockHashOrNumber, + _block: BlockHashOrNumber, ) -> ProviderResult>> { unimplemented!("receipts_by_block") } fn receipts_by_tx_range( &self, - _range: impl std::ops::RangeBounds, + _range: impl std::ops::RangeBounds, ) -> ProviderResult> { unimplemented!("receipts_by_tx_range") } @@ -486,7 +461,7 @@ impl ReceiptProviderIdExt for DbProvider { } fn receipts_by_number_or_tag( &self, - _number_or_tag: reth_primitives::BlockNumberOrTag, + _number_or_tag: BlockNumberOrTag, ) -> ProviderResult>> { unimplemented!("receipts_by_number_or_tag") } @@ -498,7 +473,7 @@ impl WithdrawalsProvider for DbProvider { } fn withdrawals_by_block( &self, - _id: reth_primitives::BlockHashOrNumber, + _id: BlockHashOrNumber, _timestamp: u64, ) -> ProviderResult> { unimplemented!("withdrawals_by_block") @@ -506,6 +481,7 @@ impl WithdrawalsProvider for DbProvider { } impl ChainSpecProvider for DbProvider { + type ChainSpec = ChainSpec; fn chain_spec(&self) -> std::sync::Arc { unimplemented!("chain_spec") } @@ -514,13 +490,13 @@ impl ChainSpecProvider for DbProvider { impl StateProviderFactory for DbProvider { fn history_by_block_hash( &self, - _block: reth_primitives::BlockHash, + _block: BlockHash, ) -> ProviderResult { unimplemented!("history_by_block_hash") } fn history_by_block_number( &self, - _block: reth_primitives::BlockNumber, + _block: BlockNumber, ) -> ProviderResult { unimplemented!("history_by_block_number") } @@ -538,7 +514,7 @@ impl StateProviderFactory for DbProvider { } fn state_by_block_hash( &self, - _block: reth_primitives::BlockHash, + _block: BlockHash, ) -> ProviderResult { unimplemented!("state_by_block_hash") } @@ -550,7 +526,7 @@ impl StateProviderFactory for DbProvider { } fn state_by_block_number_or_tag( &self, - _number_or_tag: reth_primitives::BlockNumberOrTag, + _number_or_tag: BlockNumberOrTag, ) -> ProviderResult { unimplemented!("state_by_block_number_or_tag") } @@ -558,52 +534,76 @@ impl StateProviderFactory for DbProvider { impl StateRootProvider for DbProvider { #[doc = r" Returns the state root of the BundleState on top of the current state."] - fn state_root(&self, _bundle_state: &BundleState) -> ProviderResult { + fn state_root(&self, _hashed_state: HashedPostState) -> ProviderResult { unimplemented!("state_root") } fn state_root_with_updates( &self, - _bundle_state: &BundleState, - ) -> ProviderResult<(reth_primitives::B256, TrieUpdates)> { + _hashed_state: HashedPostState, + ) -> ProviderResult<(B256, TrieUpdates)> { unimplemented!("state_root_with_updates") } - fn hashed_state_root(&self, _hashed_state: reth_trie::HashedPostState) -> ProviderResult { - unimplemented!("hashed_state_root") + fn state_root_from_nodes(&self, _input: reth_trie::TrieInput) -> ProviderResult { + unimplemented!("state_root_from_nodes") } - fn hashed_state_root_with_updates( + fn state_root_from_nodes_with_updates( &self, - _hashed_state: reth_trie::HashedPostState, + _input: reth_trie::TrieInput, ) -> ProviderResult<(B256, TrieUpdates)> { - unimplemented!("hashed_state_root_with_updates") - } - fn hashed_storage_root( - &self, - _address: Address, - _hashed_storage: reth_trie::HashedStorage, - ) -> ProviderResult { - unimplemented!("hashed_storage_root") + unimplemented!("state_root_from_nodes_with_updates") } } impl StateProofProvider for DbProvider { - fn hashed_proof( + fn multiproof( + &self, + _input: reth_trie::TrieInput, + _targets: HashMap>, + ) -> ProviderResult { + unimplemented!("multiproof") + } + + fn proof( &self, - _hashed_state: reth_trie::HashedPostState, + _input: reth_trie::TrieInput, _address: Address, _slots: &[B256], ) -> ProviderResult { - unimplemented!("hashed_proof") + unimplemented!("proof") } fn witness( &self, - _overlay: reth_trie::HashedPostState, + _overlay: reth_trie::TrieInput, _target: reth_trie::HashedPostState, - ) -> ProviderResult> { + ) -> ProviderResult> { unimplemented!("hashed_proof") } } +impl StorageRootProvider for DbProvider { + #[doc = " Returns the storage root of the `HashedStorage` for target address on top of the current"] + #[doc = " state."] + fn storage_root( + &self, + _address: Address, + _hashed_storage: HashedStorage, + ) -> ProviderResult { + unimplemented!("storage_root") + } + + #[doc = " Returns the storage proof of the `HashedStorage` for target slot on top of the current"] + #[doc = " state."] + fn storage_proof( + &self, + _address: Address, + _slot: B256, + _hashed_storage: HashedStorage, + ) -> ProviderResult { + unimplemented!("storage_proof") + } +} + impl StateProvider for DbProvider { fn account_balance(&self, _addr: Address) -> ProviderResult> { unimplemented!("account_balance") @@ -620,10 +620,7 @@ impl StateProvider for DbProvider { unimplemented!("storage") } - fn bytecode_by_hash( - &self, - _code_hash: reth_primitives::B256, - ) -> ProviderResult> { + fn bytecode_by_hash(&self, _code_hash: B256) -> ProviderResult> { unimplemented!("bytecode_by_hash") } diff --git a/crates/sequencer/src/deposit_data_mempool.rs b/crates/sequencer/src/deposit_data_mempool.rs index 96de7392f..e9b8aa1e9 100644 --- a/crates/sequencer/src/deposit_data_mempool.rs +++ b/crates/sequencer/src/deposit_data_mempool.rs @@ -1,9 +1,9 @@ use std::collections::VecDeque; -use citrea_evm::system_contracts::Bridge; +use alloy_primitives::TxKind; +use alloy_rpc_types_eth::transaction::{TransactionInput, TransactionRequest}; +use citrea_evm::system_contracts::BridgeWrapper; use citrea_evm::SYSTEM_SIGNER; -use reth_primitives::TxKind; -use reth_rpc_types::{TransactionInput, TransactionRequest}; use tracing::instrument; #[derive(Clone, Debug)] @@ -21,8 +21,8 @@ impl DepositDataMempool { pub fn make_deposit_tx_from_data(&mut self, deposit_tx_data: Vec) -> TransactionRequest { TransactionRequest { from: Some(SYSTEM_SIGNER), - to: Some(TxKind::Call(Bridge::address())), - input: TransactionInput::new(Bridge::deposit(deposit_tx_data)), + to: Some(TxKind::Call(BridgeWrapper::address())), + input: TransactionInput::new(BridgeWrapper::deposit(deposit_tx_data)), ..Default::default() } } diff --git a/crates/sequencer/src/mempool.rs b/crates/sequencer/src/mempool.rs index 581bd9dd1..72cccc0a3 100644 --- a/crates/sequencer/src/mempool.rs +++ b/crates/sequencer/src/mempool.rs @@ -1,17 +1,19 @@ use std::sync::Arc; +use alloy_genesis::Genesis; +use alloy_primitives::TxHash; use anyhow::{anyhow, bail}; use citrea_common::SequencerMempoolConfig; use citrea_evm::SYSTEM_SIGNER; use reth_chainspec::{Chain, ChainSpecBuilder}; -use reth_primitives::{Genesis, TxHash}; +use reth_execution_types::ChangedAccount; use reth_tasks::TokioTaskExecutor; use reth_transaction_pool::blobstore::NoopBlobStore; use reth_transaction_pool::error::PoolError; use reth_transaction_pool::{ - BestTransactions, BestTransactionsAttributes, ChangedAccount, CoinbaseTipOrdering, - EthPooledTransaction, EthTransactionValidator, Pool, PoolConfig, PoolResult, SubPoolLimit, - TransactionPool, TransactionPoolExt, TransactionValidationTaskExecutor, ValidPoolTransaction, + BestTransactions, BestTransactionsAttributes, CoinbaseTipOrdering, EthPooledTransaction, + EthTransactionValidator, Pool, PoolConfig, PoolResult, SubPoolLimit, TransactionPool, + TransactionPoolExt, TransactionValidationTaskExecutor, ValidPoolTransaction, }; pub use crate::db_provider::DbProvider; @@ -50,12 +52,12 @@ impl CitreaMempool { Genesis::default() .with_nonce(nonce.into()) .with_timestamp(genesis_block.header.timestamp) - .with_extra_data(genesis_block.header.extra_data) + .with_extra_data(genesis_block.header.extra_data.clone()) .with_gas_limit(genesis_block.header.gas_limit) .with_difficulty(genesis_block.header.difficulty) .with_mix_hash(genesis_mix_hash) .with_coinbase(genesis_block.header.miner) - .with_base_fee(genesis_block.header.base_fee_per_gas), + .with_base_fee(genesis_block.header.base_fee_per_gas.map(Into::into)), ) .build(); diff --git a/crates/sequencer/src/rpc.rs b/crates/sequencer/src/rpc.rs index 283b632a5..6cd27373d 100644 --- a/crates/sequencer/src/rpc.rs +++ b/crates/sequencer/src/rpc.rs @@ -1,5 +1,8 @@ use std::sync::Arc; +use alloy_eips::eip2718::Encodable2718; +use alloy_network::AnyNetwork; +use alloy_primitives::{Bytes, B256}; use citrea_evm::Evm; use futures::channel::mpsc::UnboundedSender; use jsonrpsee::core::RpcResult; @@ -7,7 +10,8 @@ use jsonrpsee::proc_macros::rpc; use jsonrpsee::types::error::{INTERNAL_ERROR_CODE, INTERNAL_ERROR_MSG}; use jsonrpsee::types::{ErrorCode, ErrorObject, ErrorObjectOwned}; use parking_lot::Mutex; -use reth_primitives::{Bytes, IntoRecoveredTransaction, B256}; +use reth_rpc::eth::EthTxBuilder; +use reth_rpc_eth_api::RpcTransaction; use reth_rpc_eth_types::error::EthApiError; use reth_rpc_types_compat::transaction::from_recovered; use reth_transaction_pool::{EthPooledTransaction, PoolTransaction}; @@ -40,7 +44,7 @@ pub trait SequencerRpc { &self, hash: B256, mempool_only: Option, - ) -> RpcResult>; + ) -> RpcResult>>; #[method(name = "citrea_sendRawDepositTransaction")] #[blocking] @@ -89,7 +93,7 @@ impl, - ) -> RpcResult> { + ) -> RpcResult>> { debug!( "Sequencer: eth_getTransactionByHash({}, {:?})", hash, mempool_only @@ -118,17 +122,18 @@ impl { let tx_signed_ec_recovered = tx.to_recovered_transaction(); // tx signed ec recovered - let tx: reth_rpc_types::Transaction = from_recovered(tx_signed_ec_recovered); - Ok::, ErrorObjectOwned>(Some(tx)) + let tx: RpcTransaction = + from_recovered::(tx_signed_ec_recovered); + Ok::>, ErrorObjectOwned>(Some(tx)) } None => match mempool_only { - Some(true) => Ok::, ErrorObjectOwned>(None), + Some(true) => Ok::>, ErrorObjectOwned>(None), _ => { let evm = Evm::::default(); let mut working_set = WorkingSet::new(self.context.storage.clone()); match evm.get_transaction_by_hash(hash, &mut working_set) { - Ok(tx) => Ok::, ErrorObjectOwned>(tx), + Ok(tx) => Ok::>, ErrorObjectOwned>(tx), Err(e) => Err(e), } } diff --git a/crates/sequencer/src/runner.rs b/crates/sequencer/src/runner.rs index 3e65442ea..9fe38a16b 100644 --- a/crates/sequencer/src/runner.rs +++ b/crates/sequencer/src/runner.rs @@ -4,6 +4,8 @@ use std::sync::Arc; use std::time::{Duration, Instant}; use std::vec; +use alloy_eips::eip2718::Encodable2718; +use alloy_primitives::{Address, Bytes, TxHash}; use anyhow::{anyhow, bail}; use backoff::future::retry as retry_backoff; use backoff::ExponentialBackoffBuilder; @@ -19,11 +21,11 @@ use futures::StreamExt; use jsonrpsee::server::{BatchRequestConfig, RpcServiceBuilder, ServerBuilder}; use jsonrpsee::RpcModule; use parking_lot::Mutex; -use reth_primitives::{Address, IntoRecoveredTransaction, TxHash}; +use reth_execution_types::ChangedAccount; use reth_provider::{AccountReader, BlockReaderIdExt}; use reth_transaction_pool::{ - BestTransactions, BestTransactionsAttributes, ChangedAccount, EthPooledTransaction, - PoolTransaction, ValidPoolTransaction, + BestTransactions, BestTransactionsAttributes, EthPooledTransaction, PoolTransaction, + ValidPoolTransaction, }; use sov_accounts::Accounts; use sov_accounts::Response::{AccountEmpty, AccountExists}; @@ -281,13 +283,12 @@ where let mut l1_fee_failed_txs = vec![]; for evm_tx in transactions { - let rlp_tx = RlpEvmTransaction { - rlp: evm_tx - .to_recovered_transaction() - .into_signed() - .envelope_encoded() - .to_vec(), - }; + let mut buf = vec![]; + evm_tx + .to_recovered_transaction() + .into_signed() + .encode_2718(&mut buf); + let rlp_tx = RlpEvmTransaction { rlp: buf }; let call_txs = CallMessage { txs: vec![rlp_tx.clone()], @@ -810,8 +811,8 @@ where .unseal(); let base_fee = calculate_next_block_base_fee( - latest_header.gas_used as u128, - latest_header.gas_limit as u128, + latest_header.gas_used, + latest_header.gas_limit, latest_header .base_fee_per_gas .expect("Base fee always set in Citrea"), @@ -962,8 +963,7 @@ where pub async fn restore_mempool(&self) -> Result<(), anyhow::Error> { let mempool_txs = self.ledger_db.get_mempool_txs()?; for (_, tx) in mempool_txs { - let recovered = - recover_raw_transaction(reth_primitives::Bytes::from(tx.as_slice().to_vec()))?; + let recovered = recover_raw_transaction(Bytes::from(tx.as_slice().to_vec()))?; let pooled_tx = EthPooledTransaction::from_pooled(recovered); let _ = self.mempool.add_external_transaction(pooled_tx).await?; @@ -978,7 +978,7 @@ where .expect("Unrecoverable: Head must exist"); let addresses: HashSet
= match head.transactions { - reth_rpc_types::BlockTransactions::Full(ref txs) => { + alloy_rpc_types::BlockTransactions::Full(ref txs) => { txs.iter().map(|tx| tx.from).collect() } _ => panic!("Block should have full transactions"), diff --git a/crates/sequencer/src/utils.rs b/crates/sequencer/src/utils.rs index 7e6438054..3dbe73231 100644 --- a/crates/sequencer/src/utils.rs +++ b/crates/sequencer/src/utils.rs @@ -1,6 +1,8 @@ //! Commonly used code snippets -use reth_primitives::{Bytes, PooledTransactionsElement, PooledTransactionsElementEcRecovered}; +use alloy_network::eip2718::Decodable2718; +use alloy_primitives::Bytes; +use reth_primitives::{PooledTransactionsElement, PooledTransactionsElementEcRecovered}; use reth_rpc_eth_types::error::{EthApiError, EthResult}; /// Recovers a [PooledTransactionsElementEcRecovered] from an enveloped encoded byte stream. @@ -13,7 +15,7 @@ pub(crate) fn recover_raw_transaction( return Err(EthApiError::EmptyRawTransactionData); } - let transaction = PooledTransactionsElement::decode_enveloped(&mut data.as_ref()) + let transaction = PooledTransactionsElement::decode_2718(&mut data.as_ref()) .map_err(|_| EthApiError::FailedToDecodeSignedTransaction)?; transaction diff --git a/crates/sovereign-sdk/full-node/sov-ledger-rpc/Cargo.toml b/crates/sovereign-sdk/full-node/sov-ledger-rpc/Cargo.toml index a83cb5cac..48f16213e 100644 --- a/crates/sovereign-sdk/full-node/sov-ledger-rpc/Cargo.toml +++ b/crates/sovereign-sdk/full-node/sov-ledger-rpc/Cargo.toml @@ -26,7 +26,7 @@ futures = { version = "0.3", optional = true } sov-modules-api = { path = "../../module-system/sov-modules-api", features = [ "native", ], optional = true } -reth-primitives = { workspace = true } +alloy-primitives = { workspace = true } [dev-dependencies] tempfile = "3" diff --git a/crates/sovereign-sdk/full-node/sov-ledger-rpc/src/lib.rs b/crates/sovereign-sdk/full-node/sov-ledger-rpc/src/lib.rs index 634c1804e..6b9e2b470 100644 --- a/crates/sovereign-sdk/full-node/sov-ledger-rpc/src/lib.rs +++ b/crates/sovereign-sdk/full-node/sov-ledger-rpc/src/lib.rs @@ -1,8 +1,8 @@ #![forbid(unsafe_code)] +use alloy_primitives::U64; use jsonrpsee::core::RpcResult; use jsonrpsee::proc_macros::rpc; -use reth_primitives::U64; use sov_rollup_interface::rpc::{ BatchProofResponse, LastVerifiedBatchProofResponse, SequencerCommitmentResponse, SoftConfirmationResponse, SoftConfirmationStatus, VerifiedBatchProofResponse, diff --git a/crates/sovereign-sdk/full-node/sov-ledger-rpc/src/server.rs b/crates/sovereign-sdk/full-node/sov-ledger-rpc/src/server.rs index 34b5848ee..07a165b3a 100644 --- a/crates/sovereign-sdk/full-node/sov-ledger-rpc/src/server.rs +++ b/crates/sovereign-sdk/full-node/sov-ledger-rpc/src/server.rs @@ -1,9 +1,9 @@ //! A JSON-RPC server implementation for any [`LedgerRpcProvider`]. +use alloy_primitives::U64; use jsonrpsee::core::RpcResult; use jsonrpsee::types::ErrorObjectOwned; use jsonrpsee::RpcModule; -use reth_primitives::U64; use sov_modules_api::utils::to_jsonrpsee_error_object; use sov_rollup_interface::rpc::{ BatchProofResponse, LastVerifiedBatchProofResponse, LedgerRpcProvider, diff --git a/crates/sovereign-sdk/full-node/sov-ledger-rpc/tests/empty_ledger.rs b/crates/sovereign-sdk/full-node/sov-ledger-rpc/tests/empty_ledger.rs index 35e016067..84097a8aa 100644 --- a/crates/sovereign-sdk/full-node/sov-ledger-rpc/tests/empty_ledger.rs +++ b/crates/sovereign-sdk/full-node/sov-ledger-rpc/tests/empty_ledger.rs @@ -1,7 +1,7 @@ use std::net::SocketAddr; use std::sync::Arc; -use reth_primitives::U64; +use alloy_primitives::U64; use sov_db::ledger_db::LedgerDB; use sov_db::rocks_db_config::RocksdbConfig; use sov_ledger_rpc::server::create_rpc_module; diff --git a/crates/sovereign-sdk/module-system/sov-state/Cargo.toml b/crates/sovereign-sdk/module-system/sov-state/Cargo.toml index ef469e893..879d147fd 100644 --- a/crates/sovereign-sdk/module-system/sov-state/Cargo.toml +++ b/crates/sovereign-sdk/module-system/sov-state/Cargo.toml @@ -12,8 +12,10 @@ readme = "README.md" resolver = "2" [dependencies] +alloy-rlp = { workspace = true } anyhow = { workspace = true } borsh = { workspace = true, features = ["rc", "bytes"] } +bytes = { workspace = true } bcs = { workspace = true } serde = { workspace = true, features = ["rc"] } sov-rollup-interface = { path = "../../rollup-interface" } diff --git a/crates/sovereign-sdk/module-system/sov-state/src/codec/mod.rs b/crates/sovereign-sdk/module-system/sov-state/src/codec/mod.rs index fb1cc9946..bde70fe14 100644 --- a/crates/sovereign-sdk/module-system/sov-state/src/codec/mod.rs +++ b/crates/sovereign-sdk/module-system/sov-state/src/codec/mod.rs @@ -4,9 +4,11 @@ use sov_modules_core::{StateCodec, StateKeyCodec, StateValueCodec}; mod bcs_codec; mod borsh_codec; +mod rlp_codec; pub use bcs_codec::BcsCodec; pub use borsh_codec::BorshCodec; +pub use rlp_codec::RlpCodec; #[cfg(test)] mod tests { diff --git a/crates/sovereign-sdk/module-system/sov-state/src/codec/rlp_codec.rs b/crates/sovereign-sdk/module-system/sov-state/src/codec/rlp_codec.rs new file mode 100644 index 000000000..13bc5df94 --- /dev/null +++ b/crates/sovereign-sdk/module-system/sov-state/src/codec/rlp_codec.rs @@ -0,0 +1,49 @@ +use alloy_rlp::{Decodable, Encodable, Error}; + +use super::{StateCodec, StateKeyCodec}; +use crate::codec::StateValueCodec; + +/// A [`StateCodec`] that uses [`bcs`] for all keys and values. +#[derive(Debug, Default, PartialEq, Eq, Clone, serde::Serialize, serde::Deserialize)] +pub struct RlpCodec; + +impl StateKeyCodec for RlpCodec +where + K: Encodable, +{ + fn encode_key(&self, key: &K) -> Vec { + let mut buf = vec![]; + key.encode(&mut buf); + buf + } +} + +impl StateValueCodec for RlpCodec +where + V: Encodable + Decodable, +{ + type Error = Error; + + fn encode_value(&self, value: &V) -> Vec { + let mut buf = vec![]; + value.encode(&mut buf); + buf + } + + fn try_decode_value(&self, mut bytes: &[u8]) -> Result { + ::decode(&mut bytes) + } +} + +impl StateCodec for RlpCodec { + type KeyCodec = Self; + type ValueCodec = Self; + + fn key_codec(&self) -> &Self::KeyCodec { + self + } + + fn value_codec(&self) -> &Self::ValueCodec { + self + } +} diff --git a/guests/risc0/batch-proof-bitcoin/Cargo.lock b/guests/risc0/batch-proof-bitcoin/Cargo.lock index e37628fd4..7c1f3f91b 100644 --- a/guests/risc0/batch-proof-bitcoin/Cargo.lock +++ b/guests/risc0/batch-proof-bitcoin/Cargo.lock @@ -29,18 +29,13 @@ dependencies = [ "alloc-no-stdlib", ] -[[package]] -name = "allocator-api2" -version = "0.2.18" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5c6cb57a04249c6480766f7f7cef5467412af1490f8d1e243141daddada3264f" - [[package]] name = "alloy-chains" -version = "0.1.20" +version = "0.1.47" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d2feb5f466b3a786d5a622d8926418bc6a0d38bf632909f6ee9298a4a1d8c6e0" +checksum = "18c5c520273946ecf715c0010b4e3503d7eba9893cd9ce6b7fff5654c4a3c470" dependencies = [ + "alloy-primitives", "num_enum", "serde", "strum", @@ -48,28 +43,64 @@ dependencies = [ [[package]] name = "alloy-consensus" -version = "0.2.1" +version = "0.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "04c309895995eaa4bfcc345f5515a39c7df9447798645cc8bf462b6c5bf1dc96" +checksum = "705687d5bfd019fee57cf9e206b27b30a9a9617535d5590a02b171e813208f8e" dependencies = [ "alloy-eips", "alloy-primitives", "alloy-rlp", "alloy-serde", + "arbitrary", + "auto_impl", + "c-kzg", + "derive_more 1.0.0", + "serde", + "serde_with", +] + +[[package]] +name = "alloy-eip2930" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0069cf0642457f87a01a014f6dc29d5d893cd4fd8fddf0c3cdfad1bb3ebafc41" +dependencies = [ + "alloy-primitives", + "alloy-rlp", + "arbitrary", + "rand", + "serde", +] + +[[package]] +name = "alloy-eip7702" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ea59dc42102bc9a1905dc57901edc6dd48b9f38115df86c7d252acba70d71d04" +dependencies = [ + "alloy-primitives", + "alloy-rlp", + "arbitrary", + "k256", + "rand", "serde", + "serde_with", ] [[package]] name = "alloy-eips" -version = "0.2.1" +version = "0.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d9431c99a3b3fe606ede4b3d4043bdfbcb780c45b8d8d226c3804e2b75cfbe68" +checksum = "6ffb906284a1e1f63c4607da2068c8197458a352d0b3e9796e67353d72a9be85" dependencies = [ + "alloy-eip2930", + "alloy-eip7702", "alloy-primitives", "alloy-rlp", "alloy-serde", + "arbitrary", "c-kzg", - "k256", + "derive_more 1.0.0", "once_cell", "serde", "sha2", @@ -77,9 +108,9 @@ dependencies = [ [[package]] name = "alloy-genesis" -version = "0.2.1" +version = "0.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "79614dfe86144328da11098edcc7bc1a3f25ad8d3134a9eb9e857e06f0d9840d" +checksum = "8429cf4554eed9b40feec7f4451113e76596086447550275e3def933faf47ce3" dependencies = [ "alloy-primitives", "alloy-serde", @@ -88,9 +119,9 @@ dependencies = [ [[package]] name = "alloy-json-abi" -version = "0.7.7" +version = "0.8.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bc05b04ac331a9f07e3a4036ef7926e49a8bf84a99a1ccfc7e2ab55a5fcbb372" +checksum = "b84c506bf264110fa7e90d9924f742f40ef53c6572ea56a0b0bd714a567ed389" dependencies = [ "alloy-primitives", "alloy-sol-type-parser", @@ -99,32 +130,41 @@ dependencies = [ [[package]] name = "alloy-primitives" -version = "0.7.7" +version = "0.8.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ccb3ead547f4532bc8af961649942f0b9c16ee9226e26caa3f38420651cc0bf4" +checksum = "9fce5dbd6a4f118eecc4719eaa9c7ffc31c315e6c5ccde3642db927802312425" dependencies = [ "alloy-rlp", + "arbitrary", "bytes", "cfg-if", "const-hex", - "derive_more", + "derive_arbitrary", + "derive_more 1.0.0", + "foldhash", "getrandom", + "hashbrown 0.15.1", "hex-literal", + "indexmap 2.6.0", "itoa", "k256", "keccak-asm", + "paste", "proptest", + "proptest-derive", "rand", "ruint", + "rustc-hash", "serde", + "sha3", "tiny-keccak", ] [[package]] name = "alloy-rlp" -version = "0.3.5" +version = "0.3.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b155716bab55763c95ba212806cf43d05bcc70e5f35b02bad20cf5ec7fe11fed" +checksum = "da0822426598f95e45dd1ea32a738dac057529a709ee645fcc516ffa4cbde08f" dependencies = [ "alloy-rlp-derive", "arrayvec", @@ -133,9 +173,9 @@ dependencies = [ [[package]] name = "alloy-rlp-derive" -version = "0.3.5" +version = "0.3.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8037e03c7f462a063f28daec9fda285a9a89da003c552f8637a80b9c8fd96241" +checksum = "2b09cae092c27b6f1bde952653a22708691802e57bfef4a2973b80bea21efd3f" dependencies = [ "proc-macro2", "quote", @@ -144,24 +184,25 @@ dependencies = [ [[package]] name = "alloy-serde" -version = "0.2.1" +version = "0.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e33feda6a53e6079895aed1d08dcb98a1377b000d80d16370fbbdb8155d547ef" +checksum = "9dff0ab1cdd43ca001e324dc27ee0e8606bd2161d6623c63e0e0b8c4dfc13600" dependencies = [ "alloy-primitives", + "arbitrary", "serde", "serde_json", ] [[package]] name = "alloy-sol-macro" -version = "0.7.7" +version = "0.8.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2b40397ddcdcc266f59f959770f601ce1280e699a91fc1862f29cef91707cd09" +checksum = "9343289b4a7461ed8bab8618504c995c049c082b70c7332efd7b32125633dc05" dependencies = [ "alloy-sol-macro-expander", "alloy-sol-macro-input", - "proc-macro-error", + "proc-macro-error2", "proc-macro2", "quote", "syn 2.0.87", @@ -169,16 +210,16 @@ dependencies = [ [[package]] name = "alloy-sol-macro-expander" -version = "0.7.7" +version = "0.8.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "867a5469d61480fea08c7333ffeca52d5b621f5ca2e44f271b117ec1fc9a0525" +checksum = "4222d70bec485ceccc5d8fd4f2909edd65b5d5e43d4aca0b5dcee65d519ae98f" dependencies = [ "alloy-json-abi", "alloy-sol-macro-input", "const-hex", "heck", - "indexmap", - "proc-macro-error", + "indexmap 2.6.0", + "proc-macro-error2", "proc-macro2", "quote", "syn 2.0.87", @@ -188,9 +229,9 @@ dependencies = [ [[package]] name = "alloy-sol-macro-input" -version = "0.7.7" +version = "0.8.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2e482dc33a32b6fadbc0f599adea520bd3aaa585c141a80b404d0a3e3fa72528" +checksum = "2e17f2677369571b976e51ea1430eb41c3690d344fef567b840bfc0b01b6f83a" dependencies = [ "alloy-json-abi", "const-hex", @@ -205,9 +246,9 @@ dependencies = [ [[package]] name = "alloy-sol-type-parser" -version = "0.7.7" +version = "0.8.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cbcba3ca07cf7975f15d871b721fb18031eec8bce51103907f6dcce00b255d98" +checksum = "aa64d80ae58ffaafdff9d5d84f58d03775f66c84433916dc9a64ed16af5755da" dependencies = [ "serde", "winnow 0.6.13", @@ -215,9 +256,9 @@ dependencies = [ [[package]] name = "alloy-sol-types" -version = "0.7.7" +version = "0.8.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a91ca40fa20793ae9c3841b83e74569d1cc9af29a2f5237314fd3452d51e38c7" +checksum = "6520d427d4a8eb7aa803d852d7a52ceb0c519e784c292f64bb339e636918cf27" dependencies = [ "alloy-json-abi", "alloy-primitives", @@ -227,26 +268,49 @@ dependencies = [ [[package]] name = "alloy-trie" -version = "0.4.1" +version = "0.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "03704f265cbbb943b117ecb5055fd46e8f41e7dc8a58b1aed20bcd40ace38c15" +checksum = "e9703ce68b97f8faae6f7739d1e003fc97621b856953cbcdbb2b515743f23288" dependencies = [ "alloy-primitives", "alloy-rlp", - "derive_more", - "hashbrown 0.14.5", + "derive_more 1.0.0", "nybbles", "serde", "smallvec", "tracing", ] +[[package]] +name = "android-tzdata" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e999941b234f3131b00bc13c22d06e8c5ff726d1b6318ac7eb276997bbb4fef0" + +[[package]] +name = "android_system_properties" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "819e7219dbd41043ac279b19830f2efc897156490d7fd6ea916720117ee66311" +dependencies = [ + "libc", +] + [[package]] name = "anyhow" version = "1.0.86" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b3d1d046238990b9cf5bcde22a3fb3584ee5cf65fb2765f454ed428c7a0063da" +[[package]] +name = "arbitrary" +version = "1.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dde20b3d026af13f561bdd0f15edf01fc734f0dafcedbaf42bba506a9517f223" +dependencies = [ + "derive_arbitrary", +] + [[package]] name = "ark-bn254" version = "0.4.0" @@ -553,6 +617,12 @@ version = "0.21.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9d297deb1925b89f2ccc13d7635fa0714f12c87adce1c75356b39ca9b7178567" +[[package]] +name = "base64" +version = "0.22.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "72b3254f16251a8381aa12e40e3c4d2f0199f8c6508fbecb9d91f575e0fbb8c6" + [[package]] name = "base64ct" version = "1.6.0" @@ -762,19 +832,6 @@ dependencies = [ "generic-array", ] -[[package]] -name = "bls12_381" -version = "0.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d7bc6d6292be3a19e6379786dac800f551e5865a5bb51ebbe3064ab80433f403" -dependencies = [ - "ff", - "group", - "pairing", - "rand_core", - "subtle", -] - [[package]] name = "blst" version = "0.3.12" @@ -833,6 +890,12 @@ dependencies = [ "alloc-stdlib", ] +[[package]] +name = "bumpalo" +version = "3.16.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "79296716171880943b8470b5f8d03aa55eb2e645a4874bdbb28adb49162e012c" + [[package]] name = "byte-slice-cast" version = "1.2.2" @@ -876,15 +939,16 @@ dependencies = [ [[package]] name = "c-kzg" -version = "1.0.2" +version = "1.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cdf100c4cea8f207e883ff91ca886d621d8a166cb04971dfaa9bb8fd99ed95df" +checksum = "f0307f72feab3300336fb803a57134159f6e20139af1357f36c54cb90d8e8928" dependencies = [ "blst", "cc", "glob", "hex", "libc", + "once_cell", "serde", ] @@ -906,6 +970,19 @@ version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "613afe47fcd5fac7ccf1db93babcb082c5994d996f20b8b159f2ad1658eb5724" +[[package]] +name = "chrono" +version = "0.4.38" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a21f936df1771bf62b77f047b726c4625ff2e8aa607c01ec06e5a05bd8463401" +dependencies = [ + "android-tzdata", + "iana-time-zone", + "num-traits", + "serde", + "windows-targets", +] + [[package]] name = "citrea-evm" version = "0.5.0-rc.1" @@ -913,14 +990,17 @@ dependencies = [ "alloy-consensus", "alloy-eips", "alloy-primitives", + "alloy-rlp", "alloy-sol-types", "borsh", "citrea-primitives", "hex", "reth-primitives", + "reth-primitives-traits", "revm", "serde", "sov-modules-api", + "sov-rollup-interface", "sov-state", "thiserror", ] @@ -930,9 +1010,7 @@ name = "citrea-primitives" version = "0.5.0-rc.1" dependencies = [ "alloy-eips", - "anyhow", "brotli", - "reth-primitives", "sov-rollup-interface", ] @@ -1141,6 +1219,41 @@ dependencies = [ "syn 2.0.87", ] +[[package]] +name = "darling" +version = "0.20.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6f63b86c8a8826a49b8c21f08a2d07338eec8d900540f8630dc76284be802989" +dependencies = [ + "darling_core", + "darling_macro", +] + +[[package]] +name = "darling_core" +version = "0.20.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "95133861a8032aaea082871032f5815eb9e98cef03fa916ab4500513994df9e5" +dependencies = [ + "fnv", + "ident_case", + "proc-macro2", + "quote", + "strsim", + "syn 2.0.87", +] + +[[package]] +name = "darling_macro" +version = "0.20.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d336a2a514f6ccccaa3e09b02d41d35330c07ddf03a62165fcec10bb561c7806" +dependencies = [ + "darling_core", + "quote", + "syn 2.0.87", +] + [[package]] name = "der" version = "0.7.9" @@ -1151,6 +1264,16 @@ dependencies = [ "zeroize", ] +[[package]] +name = "deranged" +version = "0.3.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b42b6fa04a440b495c8b04d0e71b707c585f83cb9cb28cf8cd0d976c315e31b4" +dependencies = [ + "powerfmt", + "serde", +] + [[package]] name = "derivative" version = "2.2.0" @@ -1162,6 +1285,17 @@ dependencies = [ "syn 1.0.109", ] +[[package]] +name = "derive_arbitrary" +version = "1.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "30542c1ad912e0e3d22a1935c290e12e8a29d704a420177a31faad4a601a0800" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.87", +] + [[package]] name = "derive_more" version = "0.99.17" @@ -1175,6 +1309,28 @@ dependencies = [ "syn 1.0.109", ] +[[package]] +name = "derive_more" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4a9b99b9cbbe49445b21764dc0625032a89b145a2642e67603e1c936f5458d05" +dependencies = [ + "derive_more-impl", +] + +[[package]] +name = "derive_more-impl" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cb7330aeadfbe296029522e6c40f315320aba36fc43a5b3632f3795348f3bd22" +dependencies = [ + "convert_case 0.6.0", + "proc-macro2", + "quote", + "syn 2.0.87", + "unicode-xid", +] + [[package]] name = "digest" version = "0.9.0" @@ -1331,7 +1487,6 @@ version = "0.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ded41244b729663b1e574f1b4fb731469f69f79c17667b5d776b16cda0479449" dependencies = [ - "bitvec", "rand_core", "subtle", ] @@ -1360,6 +1515,12 @@ version = "1.0.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" +[[package]] +name = "foldhash" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f81ec6369c545a7d40e4589b5597581fa1c441fe1cce96dd1de43159910a36a2" + [[package]] name = "foreign-types" version = "0.5.0" @@ -1521,6 +1682,12 @@ dependencies = [ "subtle", ] +[[package]] +name = "hashbrown" +version = "0.12.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888" + [[package]] name = "hashbrown" version = "0.13.2" @@ -1532,12 +1699,11 @@ dependencies = [ [[package]] name = "hashbrown" -version = "0.14.5" +version = "0.15.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e5274423e17b7c9fc20b6e7e208532f9b19825d82dfd615708b70edd83df41f1" +checksum = "3a9bfc1af68b1726ea47d3d5109de126281def866b33970e10fbab11b5dafab3" dependencies = [ - "ahash", - "allocator-api2", + "foldhash", "serde", ] @@ -1592,6 +1758,29 @@ dependencies = [ "digest 0.10.7", ] +[[package]] +name = "iana-time-zone" +version = "0.1.61" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "235e081f3925a06703c2d0117ea8b91f042756fd6e7a6e5d901e8ca1a996b220" +dependencies = [ + "android_system_properties", + "core-foundation-sys", + "iana-time-zone-haiku", + "js-sys", + "wasm-bindgen", + "windows-core", +] + +[[package]] +name = "iana-time-zone-haiku" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f31827a206f56af32e590ba56d5d2d085f558508192593743f16b2306495269f" +dependencies = [ + "cc", +] + [[package]] name = "ics23" version = "0.11.1" @@ -1611,6 +1800,12 @@ dependencies = [ "sha3", ] +[[package]] +name = "ident_case" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b9e0384b61958566e926dc50660321d12159025e767c18e043daf26b70104c39" + [[package]] name = "impl-codec" version = "0.6.0" @@ -1633,12 +1828,25 @@ dependencies = [ [[package]] name = "indexmap" -version = "2.2.6" +version = "1.9.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bd070e393353796e801d209ad339e89596eb4c8d430d18ede6a1cced8fafbd99" +dependencies = [ + "autocfg", + "hashbrown 0.12.3", + "serde", +] + +[[package]] +name = "indexmap" +version = "2.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "168fb715dda47215e360912c096649d23d58bf392ac62f73919e831745e40f26" +checksum = "707907fe3c25f5424cce2cb7e1cbcafee6bdbe735ca90ef77c29e84591e5b9da" dependencies = [ + "arbitrary", "equivalent", - "hashbrown 0.14.5", + "hashbrown 0.15.1", + "serde", ] [[package]] @@ -1647,7 +1855,7 @@ version = "0.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9aa4a0980c8379295100d70854354e78df2ee1c6ca0f96ffe89afeb3140e3a3d" dependencies = [ - "base64", + "base64 0.21.7", "serde", ] @@ -1705,6 +1913,15 @@ dependencies = [ "tracing", ] +[[package]] +name = "js-sys" +version = "0.3.72" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6a88f1bda2bd75b0452a14784937d796722fdebfe50df998aeb3f0b7603019a9" +dependencies = [ + "wasm-bindgen", +] + [[package]] name = "k256" version = "0.13.3" @@ -1736,21 +1953,6 @@ dependencies = [ "sha3-asm", ] -[[package]] -name = "kzg-rs" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cd9920cd4460ce3cbca19c62f3bb9a9611562478a4dc9d2c556f4a7d049c5b6b" -dependencies = [ - "bls12_381", - "glob", - "hex", - "once_cell", - "serde", - "serde_derive", - "serde_yaml", -] - [[package]] name = "lazy_static" version = "1.5.0" @@ -1778,6 +1980,16 @@ version = "0.4.14" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "78b3ae25bc7c8c38cec158d1f2757ee79e9b3740fbc7ccf0e59e4b08d793fa89" +[[package]] +name = "lock_api" +version = "0.4.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "07af8b9cdd281b7915f413fa73f29ebd5d55d0d3f0155584dade1ff18cea1b17" +dependencies = [ + "autocfg", + "scopeguard", +] + [[package]] name = "log" version = "0.4.21" @@ -1874,6 +2086,12 @@ dependencies = [ "num-traits", ] +[[package]] +name = "num-conv" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "51d515d32fb182ee37cda2ccdcb92950d6a3c2893aa280e540671c2cd0f3b1d9" + [[package]] name = "num-derive" version = "0.3.3" @@ -1985,12 +2203,19 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3fdb12b2476b595f9358c5161aa467c2438859caa136dec86c26fdd2efe17b92" [[package]] -name = "pairing" -version = "0.23.0" +name = "op-alloy-consensus" +version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "81fec4625e73cf41ef4bb6846cafa6d44736525f442ba45e407c4a000a13996f" +checksum = "7ea7162170c6f3cad8f67f4dd7108e3f78349fd553da5b8bebff1e7ef8f38896" dependencies = [ - "group", + "alloy-consensus", + "alloy-eips", + "alloy-primitives", + "alloy-rlp", + "arbitrary", + "derive_more 1.0.0", + "serde_with", + "spin", ] [[package]] @@ -2064,6 +2289,12 @@ version = "3.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0e4c7666f2019727f9e8e14bf14456e99c707d780922869f1ba473eee101fa49" +[[package]] +name = "powerfmt" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "439ee305def115ba05938db6eb1644ff94165c5ab5e9420d1c1bcedbba909391" + [[package]] name = "ppv-lite86" version = "0.2.17" @@ -2099,7 +2330,6 @@ dependencies = [ "proc-macro-error-attr", "proc-macro2", "quote", - "syn 1.0.109", "version_check", ] @@ -2114,6 +2344,28 @@ dependencies = [ "version_check", ] +[[package]] +name = "proc-macro-error-attr2" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "96de42df36bb9bba5542fe9f1a054b8cc87e172759a1868aa05c1f3acc89dfc5" +dependencies = [ + "proc-macro2", + "quote", +] + +[[package]] +name = "proc-macro-error2" +version = "2.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "11ec05c52be0a07b08061f7dd003e7d7092e0472bc731b4af7bb1ef876109802" +dependencies = [ + "proc-macro-error-attr2", + "proc-macro2", + "quote", + "syn 2.0.87", +] + [[package]] name = "proc-macro2" version = "1.0.85" @@ -2143,6 +2395,17 @@ dependencies = [ "unarray", ] +[[package]] +name = "proptest-derive" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6ff7ff745a347b87471d859a377a9a404361e7efc2a971d73424a6d183c0fc77" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.87", +] + [[package]] name = "prost" version = "0.12.6" @@ -2196,6 +2459,7 @@ dependencies = [ "libc", "rand_chacha", "rand_core", + "serde", ] [[package]] @@ -2254,8 +2518,8 @@ checksum = "7a66a03ae7c801facd77a29370b4faec201768915ac14a721ba36f20bc9c209b" [[package]] name = "reth-codecs" -version = "1.0.4" -source = "git+https://github.com/paradigmxyz/reth?rev=a206eb3690e5a51d3c797fed2a6ed722e36863eb#a206eb3690e5a51d3c797fed2a6ed722e36863eb" +version = "1.1.0" +source = "git+https://github.com/paradigmxyz/reth?rev=1ba631ba9581973e7c6cadeea92cfe1802aceb4a#1ba631ba9581973e7c6cadeea92cfe1802aceb4a" dependencies = [ "alloy-consensus", "alloy-eips", @@ -2265,13 +2529,12 @@ dependencies = [ "bytes", "modular-bitfield", "reth-codecs-derive", - "serde", ] [[package]] name = "reth-codecs-derive" -version = "1.0.4" -source = "git+https://github.com/paradigmxyz/reth?rev=a206eb3690e5a51d3c797fed2a6ed722e36863eb#a206eb3690e5a51d3c797fed2a6ed722e36863eb" +version = "1.1.0" +source = "git+https://github.com/paradigmxyz/reth?rev=1ba631ba9581973e7c6cadeea92cfe1802aceb4a#1ba631ba9581973e7c6cadeea92cfe1802aceb4a" dependencies = [ "convert_case 0.6.0", "proc-macro2", @@ -2281,8 +2544,8 @@ dependencies = [ [[package]] name = "reth-ethereum-forks" -version = "1.0.4" -source = "git+https://github.com/paradigmxyz/reth?rev=a206eb3690e5a51d3c797fed2a6ed722e36863eb#a206eb3690e5a51d3c797fed2a6ed722e36863eb" +version = "1.1.0" +source = "git+https://github.com/paradigmxyz/reth?rev=1ba631ba9581973e7c6cadeea92cfe1802aceb4a#1ba631ba9581973e7c6cadeea92cfe1802aceb4a" dependencies = [ "alloy-chains", "alloy-primitives", @@ -2298,17 +2561,18 @@ dependencies = [ [[package]] name = "reth-primitives" -version = "1.0.4" -source = "git+https://github.com/paradigmxyz/reth?rev=a206eb3690e5a51d3c797fed2a6ed722e36863eb#a206eb3690e5a51d3c797fed2a6ed722e36863eb" +version = "1.1.0" +source = "git+https://github.com/paradigmxyz/reth?rev=1ba631ba9581973e7c6cadeea92cfe1802aceb4a#1ba631ba9581973e7c6cadeea92cfe1802aceb4a" dependencies = [ + "alloy-consensus", "alloy-eips", - "alloy-genesis", "alloy-primitives", "alloy-rlp", "bytes", - "derive_more", + "derive_more 1.0.0", "k256", "once_cell", + "op-alloy-consensus", "rayon", "reth-ethereum-forks", "reth-primitives-traits", @@ -2316,12 +2580,13 @@ dependencies = [ "reth-trie-common", "revm-primitives", "serde", + "serde_with", ] [[package]] name = "reth-primitives-traits" -version = "1.0.4" -source = "git+https://github.com/paradigmxyz/reth?rev=a206eb3690e5a51d3c797fed2a6ed722e36863eb#a206eb3690e5a51d3c797fed2a6ed722e36863eb" +version = "1.1.0" +source = "git+https://github.com/paradigmxyz/reth?rev=1ba631ba9581973e7c6cadeea92cfe1802aceb4a#1ba631ba9581973e7c6cadeea92cfe1802aceb4a" dependencies = [ "alloy-consensus", "alloy-eips", @@ -2330,29 +2595,30 @@ dependencies = [ "alloy-rlp", "byteorder", "bytes", - "derive_more", + "derive_more 1.0.0", "modular-bitfield", "reth-codecs", "revm-primitives", "roaring", "serde", + "serde_with", ] [[package]] name = "reth-static-file-types" -version = "1.0.4" -source = "git+https://github.com/paradigmxyz/reth?rev=a206eb3690e5a51d3c797fed2a6ed722e36863eb#a206eb3690e5a51d3c797fed2a6ed722e36863eb" +version = "1.1.0" +source = "git+https://github.com/paradigmxyz/reth?rev=1ba631ba9581973e7c6cadeea92cfe1802aceb4a#1ba631ba9581973e7c6cadeea92cfe1802aceb4a" dependencies = [ "alloy-primitives", - "derive_more", + "derive_more 1.0.0", "serde", "strum", ] [[package]] name = "reth-trie-common" -version = "1.0.4" -source = "git+https://github.com/paradigmxyz/reth?rev=a206eb3690e5a51d3c797fed2a6ed722e36863eb#a206eb3690e5a51d3c797fed2a6ed722e36863eb" +version = "1.1.0" +source = "git+https://github.com/paradigmxyz/reth?rev=1ba631ba9581973e7c6cadeea92cfe1802aceb4a#1ba631ba9581973e7c6cadeea92cfe1802aceb4a" dependencies = [ "alloy-consensus", "alloy-genesis", @@ -2360,7 +2626,7 @@ dependencies = [ "alloy-rlp", "alloy-trie", "bytes", - "derive_more", + "derive_more 1.0.0", "itertools 0.13.0", "nybbles", "reth-codecs", @@ -2371,9 +2637,9 @@ dependencies = [ [[package]] name = "revm" -version = "12.1.0" +version = "14.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c6cfb48bce8ca2113e157bdbddbd5eeb09daac1c903d79ec17085897c38c7c91" +checksum = "641702b12847f9ed418d552f4fcabe536d867a2c980e96b6e7e25d7b992f929f" dependencies = [ "auto_impl", "cfg-if", @@ -2385,9 +2651,9 @@ dependencies = [ [[package]] name = "revm-interpreter" -version = "8.1.0" +version = "10.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e6b0daddea06fc6da5346acc39b32a357bbe3579e9e3d94117d9ae125cd596fc" +checksum = "2e5e14002afae20b5bf1566f22316122f42f57517000e559c55b25bf7a49cba2" dependencies = [ "revm-primitives", "serde", @@ -2395,9 +2661,9 @@ dependencies = [ [[package]] name = "revm-precompile" -version = "9.2.0" +version = "11.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ef55228211251d7b6c7707c3ee13bb70dea4d2fd81ec4034521e4fe31010b2ea" +checksum = "3198c06247e8d4ad0d1312591edf049b0de4ddffa9fecb625c318fd67db8639b" dependencies = [ "aurora-engine-modexp", "cfg-if", @@ -2412,11 +2678,12 @@ dependencies = [ [[package]] name = "revm-primitives" -version = "7.1.0" +version = "10.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2fc4311037ee093ec50ec734e1424fcb3e12d535c6cef683b75d1c064639630c" +checksum = "6f1525851a03aff9a9d6a1d018b414d76252d6802ab54695b27093ecd7e7a101" dependencies = [ - "alloy-eips", + "alloy-eip2930", + "alloy-eip7702", "alloy-primitives", "auto_impl", "bitflags 2.6.0", @@ -2425,9 +2692,7 @@ dependencies = [ "cfg-if", "dyn-clone", "enumn", - "hashbrown 0.14.5", "hex", - "kzg-rs", "serde", ] @@ -2635,6 +2900,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2c3cc4c2511671f327125da14133d0c5c5d137f006a1017a16f557bc85b16286" dependencies = [ "alloy-rlp", + "arbitrary", "ark-ff 0.3.0", "ark-ff 0.4.2", "bytes", @@ -2663,6 +2929,9 @@ name = "rustc-hash" version = "2.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "583034fd73374156e66797ed8e5b0d5690409c9226b22d87cb7f19821c05d152" +dependencies = [ + "rand", +] [[package]] name = "rustc-hex" @@ -2749,6 +3018,12 @@ dependencies = [ "syn 2.0.87", ] +[[package]] +name = "scopeguard" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49" + [[package]] name = "sec1" version = "0.7.3" @@ -2849,16 +3124,33 @@ dependencies = [ ] [[package]] -name = "serde_yaml" -version = "0.9.34+deprecated" +name = "serde_with" +version = "3.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6a8b1a1a2ebf674015cc02edccce75287f1a0130d394307b36743c2f5d504b47" +checksum = "8e28bdad6db2b8340e449f7108f020b3b092e8583a9e3fb82713e1d4e71fe817" dependencies = [ - "indexmap", - "itoa", - "ryu", + "base64 0.22.1", + "chrono", + "hex", + "indexmap 1.9.3", + "indexmap 2.6.0", "serde", - "unsafe-libyaml", + "serde_derive", + "serde_json", + "serde_with_macros", + "time", +] + +[[package]] +name = "serde_with_macros" +version = "3.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9d846214a9854ef724f3da161b426242d8de7c1fc7de2f89bb1efcb154dca79d" +dependencies = [ + "darling", + "proc-macro2", + "quote", + "syn 2.0.87", ] [[package]] @@ -2948,7 +3240,7 @@ dependencies = [ "anyhow", "bech32 0.9.1", "borsh", - "derive_more", + "derive_more 0.99.17", "digest 0.10.7", "ed25519-dalek", "hex", @@ -2969,7 +3261,7 @@ dependencies = [ "anyhow", "bech32 0.9.1", "borsh", - "derive_more", + "derive_more 0.99.17", "digest 0.10.7", "hex", "jmt", @@ -3027,9 +3319,11 @@ dependencies = [ name = "sov-state" version = "0.5.0-rc.1" dependencies = [ + "alloy-rlp", "anyhow", "bcs", "borsh", + "bytes", "jmt", "serde", "sha2", @@ -3055,6 +3349,9 @@ name = "spin" version = "0.9.8" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6980e8d7511241f8acf4aebddbb1ff938df5eebe98691418c4468d0b72a96a67" +dependencies = [ + "lock_api", +] [[package]] name = "spki" @@ -3082,6 +3379,12 @@ version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f" +[[package]] +name = "strsim" +version = "0.11.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7da8b5736845d9f2fcb837ea5d9e2628564b3b043a70948a3f0b778838c5fb4f" + [[package]] name = "strum" version = "0.26.2" @@ -3147,9 +3450,9 @@ dependencies = [ [[package]] name = "syn-solidity" -version = "0.7.7" +version = "0.8.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c837dc8852cb7074e46b444afb81783140dab12c58867b49fb3898fbafedf7ea" +checksum = "f76fe0a3e1476bdaa0775b9aec5b869ed9520c2b2fedfe9c6df3618f8ea6290b" dependencies = [ "paste", "proc-macro2", @@ -3236,6 +3539,37 @@ dependencies = [ "num_cpus", ] +[[package]] +name = "time" +version = "0.3.36" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5dfd88e563464686c916c7e46e623e520ddc6d79fa6641390f2e3fa86e83e885" +dependencies = [ + "deranged", + "itoa", + "num-conv", + "powerfmt", + "serde", + "time-core", + "time-macros", +] + +[[package]] +name = "time-core" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ef927ca75afb808a4d64dd374f00a2adf8d0fcff8e7b184af886c3c87ec4a3f3" + +[[package]] +name = "time-macros" +version = "0.2.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3f252a68540fde3a3877aeea552b832b40ab9a69e318efd078774a01ddee1ccf" +dependencies = [ + "num-conv", + "time-core", +] + [[package]] name = "tiny-keccak" version = "2.0.2" @@ -3257,7 +3591,7 @@ version = "0.21.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6a8534fd7f78b5405e860340ad6575217ce99f38d4d5c8f2442cb5ecb50090e1" dependencies = [ - "indexmap", + "indexmap 2.6.0", "toml_datetime", "winnow 0.5.40", ] @@ -3347,10 +3681,10 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d4c87d22b6e3f4a18d4d40ef354e97c90fcb14dd91d7dc0aa9d8a1172ebf7202" [[package]] -name = "unsafe-libyaml" -version = "0.2.11" +name = "unicode-xid" +version = "0.2.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "673aac59facbab8a9007c7f6108d11f63b603f7cabff99fabf650fea5c32b861" +checksum = "ebc1c04c71510c7f702b52b7c350734c9ff1295c464a03335b00bb84fc54f853" [[package]] name = "valuable" @@ -3379,6 +3713,70 @@ version = "0.11.0+wasi-snapshot-preview1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" +[[package]] +name = "wasm-bindgen" +version = "0.2.95" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "128d1e363af62632b8eb57219c8fd7877144af57558fb2ef0368d0087bddeb2e" +dependencies = [ + "cfg-if", + "once_cell", + "wasm-bindgen-macro", +] + +[[package]] +name = "wasm-bindgen-backend" +version = "0.2.95" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cb6dd4d3ca0ddffd1dd1c9c04f94b868c37ff5fac97c30b97cff2d74fce3a358" +dependencies = [ + "bumpalo", + "log", + "once_cell", + "proc-macro2", + "quote", + "syn 2.0.87", + "wasm-bindgen-shared", +] + +[[package]] +name = "wasm-bindgen-macro" +version = "0.2.95" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e79384be7f8f5a9dd5d7167216f022090cf1f9ec128e6e6a482a2cb5c5422c56" +dependencies = [ + "quote", + "wasm-bindgen-macro-support", +] + +[[package]] +name = "wasm-bindgen-macro-support" +version = "0.2.95" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "26c6ab57572f7a24a4985830b120de1594465e5d500f24afe89e16b4e833ef68" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.87", + "wasm-bindgen-backend", + "wasm-bindgen-shared", +] + +[[package]] +name = "wasm-bindgen-shared" +version = "0.2.95" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "65fc09f10666a9f147042251e0dda9c18f166ff7de300607007e96bdebc1068d" + +[[package]] +name = "windows-core" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "33ab640c8d7e35bf8ba19b884ba838ceb4fba93a4e8c65a9059d08afcfc683d9" +dependencies = [ + "windows-targets", +] + [[package]] name = "windows-sys" version = "0.52.0" diff --git a/guests/risc0/batch-proof-mock/Cargo.lock b/guests/risc0/batch-proof-mock/Cargo.lock index 76445ed29..9484202c4 100644 --- a/guests/risc0/batch-proof-mock/Cargo.lock +++ b/guests/risc0/batch-proof-mock/Cargo.lock @@ -29,18 +29,13 @@ dependencies = [ "alloc-no-stdlib", ] -[[package]] -name = "allocator-api2" -version = "0.2.18" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5c6cb57a04249c6480766f7f7cef5467412af1490f8d1e243141daddada3264f" - [[package]] name = "alloy-chains" -version = "0.1.20" +version = "0.1.47" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d2feb5f466b3a786d5a622d8926418bc6a0d38bf632909f6ee9298a4a1d8c6e0" +checksum = "18c5c520273946ecf715c0010b4e3503d7eba9893cd9ce6b7fff5654c4a3c470" dependencies = [ + "alloy-primitives", "num_enum", "serde", "strum", @@ -48,28 +43,64 @@ dependencies = [ [[package]] name = "alloy-consensus" -version = "0.2.1" +version = "0.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "04c309895995eaa4bfcc345f5515a39c7df9447798645cc8bf462b6c5bf1dc96" +checksum = "705687d5bfd019fee57cf9e206b27b30a9a9617535d5590a02b171e813208f8e" dependencies = [ "alloy-eips", "alloy-primitives", "alloy-rlp", "alloy-serde", + "arbitrary", + "auto_impl", + "c-kzg", + "derive_more 1.0.0", + "serde", + "serde_with", +] + +[[package]] +name = "alloy-eip2930" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0069cf0642457f87a01a014f6dc29d5d893cd4fd8fddf0c3cdfad1bb3ebafc41" +dependencies = [ + "alloy-primitives", + "alloy-rlp", + "arbitrary", + "rand", + "serde", +] + +[[package]] +name = "alloy-eip7702" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ea59dc42102bc9a1905dc57901edc6dd48b9f38115df86c7d252acba70d71d04" +dependencies = [ + "alloy-primitives", + "alloy-rlp", + "arbitrary", + "k256", + "rand", "serde", + "serde_with", ] [[package]] name = "alloy-eips" -version = "0.2.1" +version = "0.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d9431c99a3b3fe606ede4b3d4043bdfbcb780c45b8d8d226c3804e2b75cfbe68" +checksum = "6ffb906284a1e1f63c4607da2068c8197458a352d0b3e9796e67353d72a9be85" dependencies = [ + "alloy-eip2930", + "alloy-eip7702", "alloy-primitives", "alloy-rlp", "alloy-serde", + "arbitrary", "c-kzg", - "k256", + "derive_more 1.0.0", "once_cell", "serde", "sha2", @@ -77,9 +108,9 @@ dependencies = [ [[package]] name = "alloy-genesis" -version = "0.2.1" +version = "0.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "79614dfe86144328da11098edcc7bc1a3f25ad8d3134a9eb9e857e06f0d9840d" +checksum = "8429cf4554eed9b40feec7f4451113e76596086447550275e3def933faf47ce3" dependencies = [ "alloy-primitives", "alloy-serde", @@ -88,9 +119,9 @@ dependencies = [ [[package]] name = "alloy-json-abi" -version = "0.7.7" +version = "0.8.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bc05b04ac331a9f07e3a4036ef7926e49a8bf84a99a1ccfc7e2ab55a5fcbb372" +checksum = "b84c506bf264110fa7e90d9924f742f40ef53c6572ea56a0b0bd714a567ed389" dependencies = [ "alloy-primitives", "alloy-sol-type-parser", @@ -99,32 +130,41 @@ dependencies = [ [[package]] name = "alloy-primitives" -version = "0.7.7" +version = "0.8.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ccb3ead547f4532bc8af961649942f0b9c16ee9226e26caa3f38420651cc0bf4" +checksum = "9fce5dbd6a4f118eecc4719eaa9c7ffc31c315e6c5ccde3642db927802312425" dependencies = [ "alloy-rlp", + "arbitrary", "bytes", "cfg-if", "const-hex", - "derive_more", + "derive_arbitrary", + "derive_more 1.0.0", + "foldhash", "getrandom", + "hashbrown 0.15.2", "hex-literal", + "indexmap 2.6.0", "itoa", "k256", "keccak-asm", + "paste", "proptest", + "proptest-derive", "rand", "ruint", + "rustc-hash", "serde", + "sha3", "tiny-keccak", ] [[package]] name = "alloy-rlp" -version = "0.3.5" +version = "0.3.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b155716bab55763c95ba212806cf43d05bcc70e5f35b02bad20cf5ec7fe11fed" +checksum = "da0822426598f95e45dd1ea32a738dac057529a709ee645fcc516ffa4cbde08f" dependencies = [ "alloy-rlp-derive", "arrayvec", @@ -133,9 +173,9 @@ dependencies = [ [[package]] name = "alloy-rlp-derive" -version = "0.3.5" +version = "0.3.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8037e03c7f462a063f28daec9fda285a9a89da003c552f8637a80b9c8fd96241" +checksum = "2b09cae092c27b6f1bde952653a22708691802e57bfef4a2973b80bea21efd3f" dependencies = [ "proc-macro2", "quote", @@ -144,24 +184,25 @@ dependencies = [ [[package]] name = "alloy-serde" -version = "0.2.1" +version = "0.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e33feda6a53e6079895aed1d08dcb98a1377b000d80d16370fbbdb8155d547ef" +checksum = "9dff0ab1cdd43ca001e324dc27ee0e8606bd2161d6623c63e0e0b8c4dfc13600" dependencies = [ "alloy-primitives", + "arbitrary", "serde", "serde_json", ] [[package]] name = "alloy-sol-macro" -version = "0.7.7" +version = "0.8.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2b40397ddcdcc266f59f959770f601ce1280e699a91fc1862f29cef91707cd09" +checksum = "9343289b4a7461ed8bab8618504c995c049c082b70c7332efd7b32125633dc05" dependencies = [ "alloy-sol-macro-expander", "alloy-sol-macro-input", - "proc-macro-error", + "proc-macro-error2", "proc-macro2", "quote", "syn 2.0.87", @@ -169,16 +210,16 @@ dependencies = [ [[package]] name = "alloy-sol-macro-expander" -version = "0.7.7" +version = "0.8.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "867a5469d61480fea08c7333ffeca52d5b621f5ca2e44f271b117ec1fc9a0525" +checksum = "4222d70bec485ceccc5d8fd4f2909edd65b5d5e43d4aca0b5dcee65d519ae98f" dependencies = [ "alloy-json-abi", "alloy-sol-macro-input", "const-hex", "heck", - "indexmap", - "proc-macro-error", + "indexmap 2.6.0", + "proc-macro-error2", "proc-macro2", "quote", "syn 2.0.87", @@ -188,9 +229,9 @@ dependencies = [ [[package]] name = "alloy-sol-macro-input" -version = "0.7.7" +version = "0.8.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2e482dc33a32b6fadbc0f599adea520bd3aaa585c141a80b404d0a3e3fa72528" +checksum = "2e17f2677369571b976e51ea1430eb41c3690d344fef567b840bfc0b01b6f83a" dependencies = [ "alloy-json-abi", "const-hex", @@ -205,9 +246,9 @@ dependencies = [ [[package]] name = "alloy-sol-type-parser" -version = "0.7.7" +version = "0.8.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cbcba3ca07cf7975f15d871b721fb18031eec8bce51103907f6dcce00b255d98" +checksum = "aa64d80ae58ffaafdff9d5d84f58d03775f66c84433916dc9a64ed16af5755da" dependencies = [ "serde", "winnow 0.6.13", @@ -215,9 +256,9 @@ dependencies = [ [[package]] name = "alloy-sol-types" -version = "0.7.7" +version = "0.8.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a91ca40fa20793ae9c3841b83e74569d1cc9af29a2f5237314fd3452d51e38c7" +checksum = "6520d427d4a8eb7aa803d852d7a52ceb0c519e784c292f64bb339e636918cf27" dependencies = [ "alloy-json-abi", "alloy-primitives", @@ -227,26 +268,49 @@ dependencies = [ [[package]] name = "alloy-trie" -version = "0.4.1" +version = "0.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "03704f265cbbb943b117ecb5055fd46e8f41e7dc8a58b1aed20bcd40ace38c15" +checksum = "e9703ce68b97f8faae6f7739d1e003fc97621b856953cbcdbb2b515743f23288" dependencies = [ "alloy-primitives", "alloy-rlp", - "derive_more", - "hashbrown 0.14.5", + "derive_more 1.0.0", "nybbles", "serde", "smallvec", "tracing", ] +[[package]] +name = "android-tzdata" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e999941b234f3131b00bc13c22d06e8c5ff726d1b6318ac7eb276997bbb4fef0" + +[[package]] +name = "android_system_properties" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "819e7219dbd41043ac279b19830f2efc897156490d7fd6ea916720117ee66311" +dependencies = [ + "libc", +] + [[package]] name = "anyhow" version = "1.0.86" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b3d1d046238990b9cf5bcde22a3fb3584ee5cf65fb2765f454ed428c7a0063da" +[[package]] +name = "arbitrary" +version = "1.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dde20b3d026af13f561bdd0f15edf01fc734f0dafcedbaf42bba506a9517f223" +dependencies = [ + "derive_arbitrary", +] + [[package]] name = "ark-bn254" version = "0.4.0" @@ -543,6 +607,12 @@ version = "0.21.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9d297deb1925b89f2ccc13d7635fa0714f12c87adce1c75356b39ca9b7178567" +[[package]] +name = "base64" +version = "0.22.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "72b3254f16251a8381aa12e40e3c4d2f0199f8c6508fbecb9d91f575e0fbb8c6" + [[package]] name = "base64ct" version = "1.6.0" @@ -670,19 +740,6 @@ dependencies = [ "generic-array", ] -[[package]] -name = "bls12_381" -version = "0.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d7bc6d6292be3a19e6379786dac800f551e5865a5bb51ebbe3064ab80433f403" -dependencies = [ - "ff", - "group", - "pairing", - "rand_core", - "subtle", -] - [[package]] name = "blst" version = "0.3.12" @@ -741,6 +798,12 @@ dependencies = [ "alloc-stdlib", ] +[[package]] +name = "bumpalo" +version = "3.16.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "79296716171880943b8470b5f8d03aa55eb2e645a4874bdbb28adb49162e012c" + [[package]] name = "byte-slice-cast" version = "1.2.2" @@ -784,15 +847,16 @@ dependencies = [ [[package]] name = "c-kzg" -version = "1.0.2" +version = "1.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cdf100c4cea8f207e883ff91ca886d621d8a166cb04971dfaa9bb8fd99ed95df" +checksum = "f0307f72feab3300336fb803a57134159f6e20139af1357f36c54cb90d8e8928" dependencies = [ "blst", "cc", "glob", "hex", "libc", + "once_cell", "serde", ] @@ -814,6 +878,19 @@ version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "613afe47fcd5fac7ccf1db93babcb082c5994d996f20b8b159f2ad1658eb5724" +[[package]] +name = "chrono" +version = "0.4.38" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a21f936df1771bf62b77f047b726c4625ff2e8aa607c01ec06e5a05bd8463401" +dependencies = [ + "android-tzdata", + "iana-time-zone", + "num-traits", + "serde", + "windows-targets", +] + [[package]] name = "citrea-evm" version = "0.5.0-rc.1" @@ -821,14 +898,17 @@ dependencies = [ "alloy-consensus", "alloy-eips", "alloy-primitives", + "alloy-rlp", "alloy-sol-types", "borsh", "citrea-primitives", "hex", "reth-primitives", + "reth-primitives-traits", "revm", "serde", "sov-modules-api", + "sov-rollup-interface", "sov-state", "thiserror", ] @@ -838,9 +918,7 @@ name = "citrea-primitives" version = "0.5.0-rc.1" dependencies = [ "alloy-eips", - "anyhow", "brotli", - "reth-primitives", "sov-rollup-interface", ] @@ -1049,6 +1127,41 @@ dependencies = [ "syn 2.0.87", ] +[[package]] +name = "darling" +version = "0.20.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6f63b86c8a8826a49b8c21f08a2d07338eec8d900540f8630dc76284be802989" +dependencies = [ + "darling_core", + "darling_macro", +] + +[[package]] +name = "darling_core" +version = "0.20.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "95133861a8032aaea082871032f5815eb9e98cef03fa916ab4500513994df9e5" +dependencies = [ + "fnv", + "ident_case", + "proc-macro2", + "quote", + "strsim", + "syn 2.0.87", +] + +[[package]] +name = "darling_macro" +version = "0.20.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d336a2a514f6ccccaa3e09b02d41d35330c07ddf03a62165fcec10bb561c7806" +dependencies = [ + "darling_core", + "quote", + "syn 2.0.87", +] + [[package]] name = "der" version = "0.7.9" @@ -1059,6 +1172,16 @@ dependencies = [ "zeroize", ] +[[package]] +name = "deranged" +version = "0.3.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b42b6fa04a440b495c8b04d0e71b707c585f83cb9cb28cf8cd0d976c315e31b4" +dependencies = [ + "powerfmt", + "serde", +] + [[package]] name = "derivative" version = "2.2.0" @@ -1070,6 +1193,17 @@ dependencies = [ "syn 1.0.109", ] +[[package]] +name = "derive_arbitrary" +version = "1.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "30542c1ad912e0e3d22a1935c290e12e8a29d704a420177a31faad4a601a0800" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.87", +] + [[package]] name = "derive_more" version = "0.99.17" @@ -1083,6 +1217,28 @@ dependencies = [ "syn 1.0.109", ] +[[package]] +name = "derive_more" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4a9b99b9cbbe49445b21764dc0625032a89b145a2642e67603e1c936f5458d05" +dependencies = [ + "derive_more-impl", +] + +[[package]] +name = "derive_more-impl" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cb7330aeadfbe296029522e6c40f315320aba36fc43a5b3632f3795348f3bd22" +dependencies = [ + "convert_case 0.6.0", + "proc-macro2", + "quote", + "syn 2.0.87", + "unicode-xid", +] + [[package]] name = "digest" version = "0.9.0" @@ -1239,7 +1395,6 @@ version = "0.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ded41244b729663b1e574f1b4fb731469f69f79c17667b5d776b16cda0479449" dependencies = [ - "bitvec", "rand_core", "subtle", ] @@ -1268,6 +1423,12 @@ version = "1.0.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" +[[package]] +name = "foldhash" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f81ec6369c545a7d40e4589b5597581fa1c441fe1cce96dd1de43159910a36a2" + [[package]] name = "foreign-types" version = "0.5.0" @@ -1340,6 +1501,12 @@ dependencies = [ "subtle", ] +[[package]] +name = "hashbrown" +version = "0.12.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888" + [[package]] name = "hashbrown" version = "0.13.2" @@ -1351,12 +1518,11 @@ dependencies = [ [[package]] name = "hashbrown" -version = "0.14.5" +version = "0.15.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e5274423e17b7c9fc20b6e7e208532f9b19825d82dfd615708b70edd83df41f1" +checksum = "bf151400ff0baff5465007dd2f3e717f3fe502074ca563069ce3a6629d07b289" dependencies = [ - "ahash", - "allocator-api2", + "foldhash", "serde", ] @@ -1396,6 +1562,29 @@ dependencies = [ "digest 0.10.7", ] +[[package]] +name = "iana-time-zone" +version = "0.1.61" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "235e081f3925a06703c2d0117ea8b91f042756fd6e7a6e5d901e8ca1a996b220" +dependencies = [ + "android_system_properties", + "core-foundation-sys", + "iana-time-zone-haiku", + "js-sys", + "wasm-bindgen", + "windows-core", +] + +[[package]] +name = "iana-time-zone-haiku" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f31827a206f56af32e590ba56d5d2d085f558508192593743f16b2306495269f" +dependencies = [ + "cc", +] + [[package]] name = "ics23" version = "0.11.1" @@ -1415,6 +1604,12 @@ dependencies = [ "sha3", ] +[[package]] +name = "ident_case" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b9e0384b61958566e926dc50660321d12159025e767c18e043daf26b70104c39" + [[package]] name = "impl-codec" version = "0.6.0" @@ -1437,12 +1632,25 @@ dependencies = [ [[package]] name = "indexmap" -version = "2.2.6" +version = "1.9.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bd070e393353796e801d209ad339e89596eb4c8d430d18ede6a1cced8fafbd99" +dependencies = [ + "autocfg", + "hashbrown 0.12.3", + "serde", +] + +[[package]] +name = "indexmap" +version = "2.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "168fb715dda47215e360912c096649d23d58bf392ac62f73919e831745e40f26" +checksum = "707907fe3c25f5424cce2cb7e1cbcafee6bdbe735ca90ef77c29e84591e5b9da" dependencies = [ + "arbitrary", "equivalent", - "hashbrown 0.14.5", + "hashbrown 0.15.2", + "serde", ] [[package]] @@ -1451,7 +1659,7 @@ version = "0.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9aa4a0980c8379295100d70854354e78df2ee1c6ca0f96ffe89afeb3140e3a3d" dependencies = [ - "base64", + "base64 0.21.7", "serde", ] @@ -1509,6 +1717,15 @@ dependencies = [ "tracing", ] +[[package]] +name = "js-sys" +version = "0.3.72" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6a88f1bda2bd75b0452a14784937d796722fdebfe50df998aeb3f0b7603019a9" +dependencies = [ + "wasm-bindgen", +] + [[package]] name = "k256" version = "0.13.3" @@ -1540,21 +1757,6 @@ dependencies = [ "sha3-asm", ] -[[package]] -name = "kzg-rs" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cd9920cd4460ce3cbca19c62f3bb9a9611562478a4dc9d2c556f4a7d049c5b6b" -dependencies = [ - "bls12_381", - "glob", - "hex", - "once_cell", - "serde", - "serde_derive", - "serde_yaml", -] - [[package]] name = "lazy_static" version = "1.5.0" @@ -1582,6 +1784,16 @@ version = "0.4.14" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "78b3ae25bc7c8c38cec158d1f2757ee79e9b3740fbc7ccf0e59e4b08d793fa89" +[[package]] +name = "lock_api" +version = "0.4.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "07af8b9cdd281b7915f413fa73f29ebd5d55d0d3f0155584dade1ff18cea1b17" +dependencies = [ + "autocfg", + "scopeguard", +] + [[package]] name = "log" version = "0.4.21" @@ -1678,6 +1890,12 @@ dependencies = [ "num-traits", ] +[[package]] +name = "num-conv" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "51d515d32fb182ee37cda2ccdcb92950d6a3c2893aa280e540671c2cd0f3b1d9" + [[package]] name = "num-derive" version = "0.3.3" @@ -1789,12 +2007,19 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3fdb12b2476b595f9358c5161aa467c2438859caa136dec86c26fdd2efe17b92" [[package]] -name = "pairing" -version = "0.23.0" +name = "op-alloy-consensus" +version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "81fec4625e73cf41ef4bb6846cafa6d44736525f442ba45e407c4a000a13996f" +checksum = "7ea7162170c6f3cad8f67f4dd7108e3f78349fd553da5b8bebff1e7ef8f38896" dependencies = [ - "group", + "alloy-consensus", + "alloy-eips", + "alloy-primitives", + "alloy-rlp", + "arbitrary", + "derive_more 1.0.0", + "serde_with", + "spin", ] [[package]] @@ -1862,6 +2087,12 @@ version = "3.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "db23d408679286588f4d4644f965003d056e3dd5abcaaa938116871d7ce2fee7" +[[package]] +name = "powerfmt" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "439ee305def115ba05938db6eb1644ff94165c5ab5e9420d1c1bcedbba909391" + [[package]] name = "ppv-lite86" version = "0.2.17" @@ -1897,7 +2128,6 @@ dependencies = [ "proc-macro-error-attr", "proc-macro2", "quote", - "syn 1.0.109", "version_check", ] @@ -1912,6 +2142,28 @@ dependencies = [ "version_check", ] +[[package]] +name = "proc-macro-error-attr2" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "96de42df36bb9bba5542fe9f1a054b8cc87e172759a1868aa05c1f3acc89dfc5" +dependencies = [ + "proc-macro2", + "quote", +] + +[[package]] +name = "proc-macro-error2" +version = "2.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "11ec05c52be0a07b08061f7dd003e7d7092e0472bc731b4af7bb1ef876109802" +dependencies = [ + "proc-macro-error-attr2", + "proc-macro2", + "quote", + "syn 2.0.87", +] + [[package]] name = "proc-macro2" version = "1.0.85" @@ -1941,6 +2193,17 @@ dependencies = [ "unarray", ] +[[package]] +name = "proptest-derive" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6ff7ff745a347b87471d859a377a9a404361e7efc2a971d73424a6d183c0fc77" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.87", +] + [[package]] name = "prost" version = "0.12.6" @@ -1994,6 +2257,7 @@ dependencies = [ "libc", "rand_chacha", "rand_core", + "serde", ] [[package]] @@ -2052,8 +2316,8 @@ checksum = "7a66a03ae7c801facd77a29370b4faec201768915ac14a721ba36f20bc9c209b" [[package]] name = "reth-codecs" -version = "1.0.4" -source = "git+https://github.com/paradigmxyz/reth?rev=a206eb3690e5a51d3c797fed2a6ed722e36863eb#a206eb3690e5a51d3c797fed2a6ed722e36863eb" +version = "1.1.0" +source = "git+https://github.com/paradigmxyz/reth?rev=1ba631ba9581973e7c6cadeea92cfe1802aceb4a#1ba631ba9581973e7c6cadeea92cfe1802aceb4a" dependencies = [ "alloy-consensus", "alloy-eips", @@ -2063,13 +2327,12 @@ dependencies = [ "bytes", "modular-bitfield", "reth-codecs-derive", - "serde", ] [[package]] name = "reth-codecs-derive" -version = "1.0.4" -source = "git+https://github.com/paradigmxyz/reth?rev=a206eb3690e5a51d3c797fed2a6ed722e36863eb#a206eb3690e5a51d3c797fed2a6ed722e36863eb" +version = "1.1.0" +source = "git+https://github.com/paradigmxyz/reth?rev=1ba631ba9581973e7c6cadeea92cfe1802aceb4a#1ba631ba9581973e7c6cadeea92cfe1802aceb4a" dependencies = [ "convert_case 0.6.0", "proc-macro2", @@ -2079,8 +2342,8 @@ dependencies = [ [[package]] name = "reth-ethereum-forks" -version = "1.0.4" -source = "git+https://github.com/paradigmxyz/reth?rev=a206eb3690e5a51d3c797fed2a6ed722e36863eb#a206eb3690e5a51d3c797fed2a6ed722e36863eb" +version = "1.1.0" +source = "git+https://github.com/paradigmxyz/reth?rev=1ba631ba9581973e7c6cadeea92cfe1802aceb4a#1ba631ba9581973e7c6cadeea92cfe1802aceb4a" dependencies = [ "alloy-chains", "alloy-primitives", @@ -2096,17 +2359,18 @@ dependencies = [ [[package]] name = "reth-primitives" -version = "1.0.4" -source = "git+https://github.com/paradigmxyz/reth?rev=a206eb3690e5a51d3c797fed2a6ed722e36863eb#a206eb3690e5a51d3c797fed2a6ed722e36863eb" +version = "1.1.0" +source = "git+https://github.com/paradigmxyz/reth?rev=1ba631ba9581973e7c6cadeea92cfe1802aceb4a#1ba631ba9581973e7c6cadeea92cfe1802aceb4a" dependencies = [ + "alloy-consensus", "alloy-eips", - "alloy-genesis", "alloy-primitives", "alloy-rlp", "bytes", - "derive_more", + "derive_more 1.0.0", "k256", "once_cell", + "op-alloy-consensus", "rayon", "reth-ethereum-forks", "reth-primitives-traits", @@ -2114,12 +2378,13 @@ dependencies = [ "reth-trie-common", "revm-primitives", "serde", + "serde_with", ] [[package]] name = "reth-primitives-traits" -version = "1.0.4" -source = "git+https://github.com/paradigmxyz/reth?rev=a206eb3690e5a51d3c797fed2a6ed722e36863eb#a206eb3690e5a51d3c797fed2a6ed722e36863eb" +version = "1.1.0" +source = "git+https://github.com/paradigmxyz/reth?rev=1ba631ba9581973e7c6cadeea92cfe1802aceb4a#1ba631ba9581973e7c6cadeea92cfe1802aceb4a" dependencies = [ "alloy-consensus", "alloy-eips", @@ -2128,29 +2393,30 @@ dependencies = [ "alloy-rlp", "byteorder", "bytes", - "derive_more", + "derive_more 1.0.0", "modular-bitfield", "reth-codecs", "revm-primitives", "roaring", "serde", + "serde_with", ] [[package]] name = "reth-static-file-types" -version = "1.0.4" -source = "git+https://github.com/paradigmxyz/reth?rev=a206eb3690e5a51d3c797fed2a6ed722e36863eb#a206eb3690e5a51d3c797fed2a6ed722e36863eb" +version = "1.1.0" +source = "git+https://github.com/paradigmxyz/reth?rev=1ba631ba9581973e7c6cadeea92cfe1802aceb4a#1ba631ba9581973e7c6cadeea92cfe1802aceb4a" dependencies = [ "alloy-primitives", - "derive_more", + "derive_more 1.0.0", "serde", "strum", ] [[package]] name = "reth-trie-common" -version = "1.0.4" -source = "git+https://github.com/paradigmxyz/reth?rev=a206eb3690e5a51d3c797fed2a6ed722e36863eb#a206eb3690e5a51d3c797fed2a6ed722e36863eb" +version = "1.1.0" +source = "git+https://github.com/paradigmxyz/reth?rev=1ba631ba9581973e7c6cadeea92cfe1802aceb4a#1ba631ba9581973e7c6cadeea92cfe1802aceb4a" dependencies = [ "alloy-consensus", "alloy-genesis", @@ -2158,7 +2424,7 @@ dependencies = [ "alloy-rlp", "alloy-trie", "bytes", - "derive_more", + "derive_more 1.0.0", "itertools 0.13.0", "nybbles", "reth-codecs", @@ -2169,9 +2435,9 @@ dependencies = [ [[package]] name = "revm" -version = "12.1.0" +version = "14.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c6cfb48bce8ca2113e157bdbddbd5eeb09daac1c903d79ec17085897c38c7c91" +checksum = "641702b12847f9ed418d552f4fcabe536d867a2c980e96b6e7e25d7b992f929f" dependencies = [ "auto_impl", "cfg-if", @@ -2183,9 +2449,9 @@ dependencies = [ [[package]] name = "revm-interpreter" -version = "8.1.0" +version = "10.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e6b0daddea06fc6da5346acc39b32a357bbe3579e9e3d94117d9ae125cd596fc" +checksum = "2e5e14002afae20b5bf1566f22316122f42f57517000e559c55b25bf7a49cba2" dependencies = [ "revm-primitives", "serde", @@ -2193,9 +2459,9 @@ dependencies = [ [[package]] name = "revm-precompile" -version = "9.2.0" +version = "11.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ef55228211251d7b6c7707c3ee13bb70dea4d2fd81ec4034521e4fe31010b2ea" +checksum = "3198c06247e8d4ad0d1312591edf049b0de4ddffa9fecb625c318fd67db8639b" dependencies = [ "aurora-engine-modexp", "cfg-if", @@ -2210,11 +2476,12 @@ dependencies = [ [[package]] name = "revm-primitives" -version = "7.1.0" +version = "10.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2fc4311037ee093ec50ec734e1424fcb3e12d535c6cef683b75d1c064639630c" +checksum = "6f1525851a03aff9a9d6a1d018b414d76252d6802ab54695b27093ecd7e7a101" dependencies = [ - "alloy-eips", + "alloy-eip2930", + "alloy-eip7702", "alloy-primitives", "auto_impl", "bitflags 2.6.0", @@ -2223,9 +2490,7 @@ dependencies = [ "cfg-if", "dyn-clone", "enumn", - "hashbrown 0.14.5", "hex", - "kzg-rs", "serde", ] @@ -2433,6 +2698,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2c3cc4c2511671f327125da14133d0c5c5d137f006a1017a16f557bc85b16286" dependencies = [ "alloy-rlp", + "arbitrary", "ark-ff 0.3.0", "ark-ff 0.4.2", "bytes", @@ -2461,6 +2727,9 @@ name = "rustc-hash" version = "2.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "583034fd73374156e66797ed8e5b0d5690409c9226b22d87cb7f19821c05d152" +dependencies = [ + "rand", +] [[package]] name = "rustc-hex" @@ -2547,6 +2816,12 @@ dependencies = [ "syn 2.0.87", ] +[[package]] +name = "scopeguard" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49" + [[package]] name = "sec1" version = "0.7.3" @@ -2645,16 +2920,33 @@ dependencies = [ ] [[package]] -name = "serde_yaml" -version = "0.9.34+deprecated" +name = "serde_with" +version = "3.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6a8b1a1a2ebf674015cc02edccce75287f1a0130d394307b36743c2f5d504b47" +checksum = "8e28bdad6db2b8340e449f7108f020b3b092e8583a9e3fb82713e1d4e71fe817" dependencies = [ - "indexmap", - "itoa", - "ryu", + "base64 0.22.1", + "chrono", + "hex", + "indexmap 1.9.3", + "indexmap 2.6.0", "serde", - "unsafe-libyaml", + "serde_derive", + "serde_json", + "serde_with_macros", + "time", +] + +[[package]] +name = "serde_with_macros" +version = "3.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9d846214a9854ef724f3da161b426242d8de7c1fc7de2f89bb1efcb154dca79d" +dependencies = [ + "darling", + "proc-macro2", + "quote", + "syn 2.0.87", ] [[package]] @@ -2750,7 +3042,7 @@ dependencies = [ "anyhow", "bech32", "borsh", - "derive_more", + "derive_more 0.99.17", "digest 0.10.7", "ed25519-dalek", "hex", @@ -2771,7 +3063,7 @@ dependencies = [ "anyhow", "bech32", "borsh", - "derive_more", + "derive_more 0.99.17", "digest 0.10.7", "hex", "jmt", @@ -2829,9 +3121,11 @@ dependencies = [ name = "sov-state" version = "0.5.0-rc.1" dependencies = [ + "alloy-rlp", "anyhow", "bcs", "borsh", + "bytes", "jmt", "serde", "sha2", @@ -2857,6 +3151,9 @@ name = "spin" version = "0.9.8" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6980e8d7511241f8acf4aebddbb1ff938df5eebe98691418c4468d0b72a96a67" +dependencies = [ + "lock_api", +] [[package]] name = "spki" @@ -2884,6 +3181,12 @@ version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f" +[[package]] +name = "strsim" +version = "0.11.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7da8b5736845d9f2fcb837ea5d9e2628564b3b043a70948a3f0b778838c5fb4f" + [[package]] name = "strum" version = "0.26.2" @@ -2949,9 +3252,9 @@ dependencies = [ [[package]] name = "syn-solidity" -version = "0.7.7" +version = "0.8.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c837dc8852cb7074e46b444afb81783140dab12c58867b49fb3898fbafedf7ea" +checksum = "f76fe0a3e1476bdaa0775b9aec5b869ed9520c2b2fedfe9c6df3618f8ea6290b" dependencies = [ "paste", "proc-macro2", @@ -3038,6 +3341,37 @@ dependencies = [ "num_cpus", ] +[[package]] +name = "time" +version = "0.3.36" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5dfd88e563464686c916c7e46e623e520ddc6d79fa6641390f2e3fa86e83e885" +dependencies = [ + "deranged", + "itoa", + "num-conv", + "powerfmt", + "serde", + "time-core", + "time-macros", +] + +[[package]] +name = "time-core" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ef927ca75afb808a4d64dd374f00a2adf8d0fcff8e7b184af886c3c87ec4a3f3" + +[[package]] +name = "time-macros" +version = "0.2.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3f252a68540fde3a3877aeea552b832b40ab9a69e318efd078774a01ddee1ccf" +dependencies = [ + "num-conv", + "time-core", +] + [[package]] name = "tiny-keccak" version = "2.0.2" @@ -3059,7 +3393,7 @@ version = "0.21.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6a8534fd7f78b5405e860340ad6575217ce99f38d4d5c8f2442cb5ecb50090e1" dependencies = [ - "indexmap", + "indexmap 2.6.0", "toml_datetime", "winnow 0.5.40", ] @@ -3149,10 +3483,10 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d4c87d22b6e3f4a18d4d40ef354e97c90fcb14dd91d7dc0aa9d8a1172ebf7202" [[package]] -name = "unsafe-libyaml" -version = "0.2.11" +name = "unicode-xid" +version = "0.2.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "673aac59facbab8a9007c7f6108d11f63b603f7cabff99fabf650fea5c32b861" +checksum = "ebc1c04c71510c7f702b52b7c350734c9ff1295c464a03335b00bb84fc54f853" [[package]] name = "valuable" @@ -3181,6 +3515,70 @@ version = "0.11.0+wasi-snapshot-preview1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" +[[package]] +name = "wasm-bindgen" +version = "0.2.95" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "128d1e363af62632b8eb57219c8fd7877144af57558fb2ef0368d0087bddeb2e" +dependencies = [ + "cfg-if", + "once_cell", + "wasm-bindgen-macro", +] + +[[package]] +name = "wasm-bindgen-backend" +version = "0.2.95" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cb6dd4d3ca0ddffd1dd1c9c04f94b868c37ff5fac97c30b97cff2d74fce3a358" +dependencies = [ + "bumpalo", + "log", + "once_cell", + "proc-macro2", + "quote", + "syn 2.0.87", + "wasm-bindgen-shared", +] + +[[package]] +name = "wasm-bindgen-macro" +version = "0.2.95" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e79384be7f8f5a9dd5d7167216f022090cf1f9ec128e6e6a482a2cb5c5422c56" +dependencies = [ + "quote", + "wasm-bindgen-macro-support", +] + +[[package]] +name = "wasm-bindgen-macro-support" +version = "0.2.95" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "26c6ab57572f7a24a4985830b120de1594465e5d500f24afe89e16b4e833ef68" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.87", + "wasm-bindgen-backend", + "wasm-bindgen-shared", +] + +[[package]] +name = "wasm-bindgen-shared" +version = "0.2.95" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "65fc09f10666a9f147042251e0dda9c18f166ff7de300607007e96bdebc1068d" + +[[package]] +name = "windows-core" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "33ab640c8d7e35bf8ba19b884ba838ceb4fba93a4e8c65a9059d08afcfc683d9" +dependencies = [ + "windows-targets", +] + [[package]] name = "windows-sys" version = "0.52.0" diff --git a/guests/risc0/light-client-proof-bitcoin/Cargo.lock b/guests/risc0/light-client-proof-bitcoin/Cargo.lock index 21c77740d..be9dc7754 100644 --- a/guests/risc0/light-client-proof-bitcoin/Cargo.lock +++ b/guests/risc0/light-client-proof-bitcoin/Cargo.lock @@ -30,82 +30,52 @@ dependencies = [ ] [[package]] -name = "allocator-api2" -version = "0.2.18" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5c6cb57a04249c6480766f7f7cef5467412af1490f8d1e243141daddada3264f" - -[[package]] -name = "alloy-chains" -version = "0.1.36" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "94c225801d42099570d0674701dddd4142f0ef715282aeb5985042e2ec962df7" -dependencies = [ - "num_enum", - "serde", - "strum", -] - -[[package]] -name = "alloy-consensus" -version = "0.2.1" +name = "alloy-eip2930" +version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "04c309895995eaa4bfcc345f5515a39c7df9447798645cc8bf462b6c5bf1dc96" +checksum = "0069cf0642457f87a01a014f6dc29d5d893cd4fd8fddf0c3cdfad1bb3ebafc41" dependencies = [ - "alloy-eips", "alloy-primitives", "alloy-rlp", - "alloy-serde", - "serde", ] [[package]] -name = "alloy-eips" -version = "0.2.1" +name = "alloy-eip7702" +version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d9431c99a3b3fe606ede4b3d4043bdfbcb780c45b8d8d226c3804e2b75cfbe68" +checksum = "ea59dc42102bc9a1905dc57901edc6dd48b9f38115df86c7d252acba70d71d04" dependencies = [ "alloy-primitives", "alloy-rlp", - "alloy-serde", - "c-kzg", - "k256", - "once_cell", - "serde", - "sha2", ] [[package]] -name = "alloy-genesis" -version = "0.2.1" +name = "alloy-eips" +version = "0.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "79614dfe86144328da11098edcc7bc1a3f25ad8d3134a9eb9e857e06f0d9840d" +checksum = "6ffb906284a1e1f63c4607da2068c8197458a352d0b3e9796e67353d72a9be85" dependencies = [ + "alloy-eip2930", + "alloy-eip7702", "alloy-primitives", - "alloy-serde", - "serde", + "alloy-rlp", ] [[package]] name = "alloy-primitives" -version = "0.7.7" +version = "0.8.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ccb3ead547f4532bc8af961649942f0b9c16ee9226e26caa3f38420651cc0bf4" +checksum = "9fce5dbd6a4f118eecc4719eaa9c7ffc31c315e6c5ccde3642db927802312425" dependencies = [ "alloy-rlp", "bytes", "cfg-if", "const-hex", - "derive_more", - "getrandom", + "derive_more 1.0.0", "hex-literal", "itoa", - "k256", - "keccak-asm", - "proptest", - "rand", + "paste", "ruint", - "serde", "tiny-keccak", ] @@ -116,7 +86,6 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "26154390b1d205a4a7ac7352aa2eb4f81f391399d4e2f546fb81a2f8bb383f62" dependencies = [ "alloy-rlp-derive", - "arrayvec", "bytes", ] @@ -131,33 +100,6 @@ dependencies = [ "syn 2.0.87", ] -[[package]] -name = "alloy-serde" -version = "0.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e33feda6a53e6079895aed1d08dcb98a1377b000d80d16370fbbdb8155d547ef" -dependencies = [ - "alloy-primitives", - "serde", - "serde_json", -] - -[[package]] -name = "alloy-trie" -version = "0.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "03704f265cbbb943b117ecb5055fd46e8f41e7dc8a58b1aed20bcd40ace38c15" -dependencies = [ - "alloy-primitives", - "alloy-rlp", - "derive_more", - "hashbrown 0.14.5", - "nybbles", - "serde", - "smallvec", - "tracing", -] - [[package]] name = "anyhow" version = "1.0.89" @@ -171,8 +113,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a22f4561524cd949590d78d7d4c5df8f592430d221f7f3c9497bbafd8972120f" dependencies = [ "ark-ec", - "ark-ff 0.4.2", - "ark-std 0.4.0", + "ark-ff", + "ark-std", ] [[package]] @@ -182,14 +124,14 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1f3a13b34da09176a8baba701233fdffbaa7c1b1192ce031a3da4e55ce1f1a56" dependencies = [ "ark-ec", - "ark-ff 0.4.2", + "ark-ff", "ark-relations", - "ark-serialize 0.4.2", + "ark-serialize", "ark-snark", - "ark-std 0.4.0", + "ark-std", "blake2", "derivative", - "digest 0.10.7", + "digest", "sha2", ] @@ -199,10 +141,10 @@ version = "0.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "defd9a439d56ac24968cca0571f598a61bc8c55f71d50a89cda591cb750670ba" dependencies = [ - "ark-ff 0.4.2", + "ark-ff", "ark-poly", - "ark-serialize 0.4.2", - "ark-std 0.4.0", + "ark-serialize", + "ark-std", "derivative", "hashbrown 0.13.2", "itertools 0.10.5", @@ -210,54 +152,26 @@ dependencies = [ "zeroize", ] -[[package]] -name = "ark-ff" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6b3235cc41ee7a12aaaf2c575a2ad7b46713a8a50bda2fc3b003a04845c05dd6" -dependencies = [ - "ark-ff-asm 0.3.0", - "ark-ff-macros 0.3.0", - "ark-serialize 0.3.0", - "ark-std 0.3.0", - "derivative", - "num-bigint", - "num-traits", - "paste", - "rustc_version 0.3.3", - "zeroize", -] - [[package]] name = "ark-ff" version = "0.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ec847af850f44ad29048935519032c33da8aa03340876d351dfab5660d2966ba" dependencies = [ - "ark-ff-asm 0.4.2", - "ark-ff-macros 0.4.2", - "ark-serialize 0.4.2", - "ark-std 0.4.0", + "ark-ff-asm", + "ark-ff-macros", + "ark-serialize", + "ark-std", "derivative", - "digest 0.10.7", + "digest", "itertools 0.10.5", "num-bigint", "num-traits", "paste", - "rustc_version 0.4.1", + "rustc_version", "zeroize", ] -[[package]] -name = "ark-ff-asm" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "db02d390bf6643fb404d3d22d31aee1c4bc4459600aef9113833d17e786c6e44" -dependencies = [ - "quote", - "syn 1.0.109", -] - [[package]] name = "ark-ff-asm" version = "0.4.2" @@ -268,18 +182,6 @@ dependencies = [ "syn 1.0.109", ] -[[package]] -name = "ark-ff-macros" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "db2fd794a08ccb318058009eefdf15bcaaaaf6f8161eb3345f907222bac38b20" -dependencies = [ - "num-bigint", - "num-traits", - "quote", - "syn 1.0.109", -] - [[package]] name = "ark-ff-macros" version = "0.4.2" @@ -301,11 +203,11 @@ checksum = "20ceafa83848c3e390f1cbf124bc3193b3e639b3f02009e0e290809a501b95fc" dependencies = [ "ark-crypto-primitives", "ark-ec", - "ark-ff 0.4.2", + "ark-ff", "ark-poly", "ark-relations", - "ark-serialize 0.4.2", - "ark-std 0.4.0", + "ark-serialize", + "ark-std", ] [[package]] @@ -314,9 +216,9 @@ version = "0.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d320bfc44ee185d899ccbadfa8bc31aab923ce1558716e1997a1e74057fe86bf" dependencies = [ - "ark-ff 0.4.2", - "ark-serialize 0.4.2", - "ark-std 0.4.0", + "ark-ff", + "ark-serialize", + "ark-std", "derivative", "hashbrown 0.13.2", ] @@ -327,22 +229,12 @@ version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "00796b6efc05a3f48225e59cb6a2cda78881e7c390872d5786aaf112f31fb4f0" dependencies = [ - "ark-ff 0.4.2", - "ark-std 0.4.0", + "ark-ff", + "ark-std", "tracing", "tracing-subscriber", ] -[[package]] -name = "ark-serialize" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1d6c2b318ee6e10f8c2853e73a83adc0ccb88995aa978d8a3408d492ab2ee671" -dependencies = [ - "ark-std 0.3.0", - "digest 0.9.0", -] - [[package]] name = "ark-serialize" version = "0.4.2" @@ -350,8 +242,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "adb7b85a02b83d2f22f89bd5cac66c9c89474240cb6207cb1efc16d098e822a5" dependencies = [ "ark-serialize-derive", - "ark-std 0.4.0", - "digest 0.10.7", + "ark-std", + "digest", "num-bigint", ] @@ -372,20 +264,10 @@ version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "84d3cc6833a335bb8a600241889ead68ee89a3cf8448081fb7694c0fe503da63" dependencies = [ - "ark-ff 0.4.2", + "ark-ff", "ark-relations", - "ark-serialize 0.4.2", - "ark-std 0.4.0", -] - -[[package]] -name = "ark-std" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1df2c09229cbc5a028b1d70e00fdb2acee28b1055dfb5ca73eea49c5a25c4e7c" -dependencies = [ - "num-traits", - "rand", + "ark-serialize", + "ark-std", ] [[package]] @@ -421,29 +303,12 @@ dependencies = [ "syn 2.0.87", ] -[[package]] -name = "auto_impl" -version = "1.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3c87f3f15e7794432337fc718554eaa4dc8f04c9677a950ffe366f20a162ae42" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.87", -] - [[package]] name = "autocfg" version = "1.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ace50bade8e6234aa140d9a2f552bbee1db4d353f69b8217bc503490fc1a9f26" -[[package]] -name = "base16ct" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4c7f02d4ea65f2c1853089ffd8d2787bdbc63de2f0d29dedbcf8ccdfa0ccd4cf" - [[package]] name = "base58ck" version = "0.1.0" @@ -460,12 +325,6 @@ version = "0.21.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9d297deb1925b89f2ccc13d7635fa0714f12c87adce1c75356b39ca9b7178567" -[[package]] -name = "base64ct" -version = "1.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8c3c1a368f70d6cf7302d78f8f7093da241fb8e8807c05cc9e51a125895a6d5b" - [[package]] name = "bcs" version = "0.1.6" @@ -497,21 +356,6 @@ dependencies = [ "serde", ] -[[package]] -name = "bit-set" -version = "0.5.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0700ddab506f33b20a03b13996eccd309a48e5ff77d0d95926aa0210fb4e95f1" -dependencies = [ - "bit-vec", -] - -[[package]] -name = "bit-vec" -version = "0.6.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "349f9b6a179ed607305526ca489b34ad0a41aed5f7980fa90eb03160b69598fb" - [[package]] name = "bitcoin" version = "0.32.3" @@ -598,22 +442,6 @@ name = "bitflags" version = "2.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b048fb63fd8b5923fc5aa7b340d8e156aec7ec02f0c78fa8a6ddc2613f6f71de" -dependencies = [ - "serde", -] - -[[package]] -name = "bitvec" -version = "1.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1bc2832c24239b0141d5674bb9174f9d68a8b5b3f2753311927c172ca46f7e9c" -dependencies = [ - "funty", - "radium", - "serde", - "tap", - "wyz", -] [[package]] name = "blake2" @@ -621,7 +449,7 @@ version = "0.10.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "46502ad458c9a52b69d4d4d32775c788b7a1b85e8bc9d482d92250fc0e3f8efe" dependencies = [ - "digest 0.10.7", + "digest", ] [[package]] @@ -652,31 +480,6 @@ dependencies = [ "generic-array", ] -[[package]] -name = "bls12_381" -version = "0.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d7bc6d6292be3a19e6379786dac800f551e5865a5bb51ebbe3064ab80433f403" -dependencies = [ - "ff", - "group", - "pairing", - "rand_core", - "subtle", -] - -[[package]] -name = "blst" -version = "0.3.13" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4378725facc195f1a538864863f6de233b500a8862747e7f165078a419d5e874" -dependencies = [ - "cc", - "glob", - "threadpool", - "zeroize", -] - [[package]] name = "borsh" version = "1.5.1" @@ -723,12 +526,6 @@ dependencies = [ "alloc-stdlib", ] -[[package]] -name = "byte-slice-cast" -version = "1.2.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c3ac9f8b63eca6fd385229b3675f6cc0dc5c8a5c8a54a59d4f52ffd670d87b0c" - [[package]] name = "bytemuck" version = "1.18.0" @@ -760,24 +557,6 @@ name = "bytes" version = "1.7.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "428d9aa8fbc0670b7b8d6030a7fadd0f86151cae55e4dbbece15f3780a3dfaf3" -dependencies = [ - "serde", -] - -[[package]] -name = "c-kzg" -version = "1.0.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f0307f72feab3300336fb803a57134159f6e20139af1357f36c54cb90d8e8928" -dependencies = [ - "blst", - "cc", - "glob", - "hex", - "libc", - "once_cell", - "serde", -] [[package]] name = "cc" @@ -816,9 +595,7 @@ name = "citrea-primitives" version = "0.5.0-rc.1" dependencies = [ "alloy-eips", - "anyhow", "brotli", - "reth-primitives", "sov-rollup-interface", ] @@ -867,15 +644,6 @@ version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6245d59a3e82a7fc217c5828a6692dbc6dfb63a0c8c90495621f7b9d79704a0e" -[[package]] -name = "convert_case" -version = "0.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ec182b0ca2f35d8fc196cf3404988fd8b8c739a4d270ff118a398feb0cbec1ca" -dependencies = [ - "unicode-segmentation", -] - [[package]] name = "core-foundation" version = "0.9.4" @@ -912,46 +680,6 @@ dependencies = [ "libc", ] -[[package]] -name = "crc" -version = "3.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "69e6e4d7b33a94f0991c26729976b10ebde1d34c3ee82408fb536164fa10d636" -dependencies = [ - "crc-catalog", -] - -[[package]] -name = "crc-catalog" -version = "2.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "19d374276b40fb8bbdee95aef7c7fa6b5316ec764510eb64b8dd0e2ed0d7e7f5" - -[[package]] -name = "crossbeam-deque" -version = "0.8.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "613f8cc01fe9cf1a3eb3d7f488fd2fa8388403e97039e2f73692932e291a770d" -dependencies = [ - "crossbeam-epoch", - "crossbeam-utils", -] - -[[package]] -name = "crossbeam-epoch" -version = "0.9.18" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5b82ac4a3c2ca9c3460964f020e1402edd5753411d7737aa39c3714ad1b5420e" -dependencies = [ - "crossbeam-utils", -] - -[[package]] -name = "crossbeam-utils" -version = "0.8.20" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "22ec99545bb0ed0ea7bb9b8e1e9122ea386ff8a48c0922e43f36d45ab09e0e80" - [[package]] name = "crunchy" version = "0.2.2" @@ -963,7 +691,6 @@ name = "crypto-bigint" version = "0.5.5" source = "git+https://github.com/risc0/RustCrypto-crypto-bigint?tag=v0.5.5-risczero.0#3ab63a6f1048833f7047d5a50532e4a4cc789384" dependencies = [ - "generic-array", "getrandom", "rand_core", "subtle", @@ -989,11 +716,11 @@ dependencies = [ "cpufeatures", "crypto-bigint", "curve25519-dalek-derive", - "digest 0.10.7", + "digest", "fiat-crypto", "hex", "platforms", - "rustc_version 0.4.1", + "rustc_version", "subtle", ] @@ -1007,16 +734,6 @@ dependencies = [ "syn 2.0.87", ] -[[package]] -name = "der" -version = "0.7.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f55bf8e7b65898637379c1b74eb1551107c8294ed26d855ceb9fd1a09cfc9bc0" -dependencies = [ - "const-oid", - "zeroize", -] - [[package]] name = "derivative" version = "2.2.0" @@ -1034,20 +751,32 @@ version = "0.99.18" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5f33878137e4dafd7fa914ad4e259e18a4e8e532b9617a2d0150262bf53abfce" dependencies = [ - "convert_case 0.4.0", + "convert_case", "proc-macro2", "quote", - "rustc_version 0.4.1", + "rustc_version", "syn 2.0.87", ] [[package]] -name = "digest" -version = "0.9.0" +name = "derive_more" +version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d3dd60d1080a57a05ab032377049e0591415d2b31afd7028356dbf3cc6dcb066" +checksum = "4a9b99b9cbbe49445b21764dc0625032a89b145a2642e67603e1c936f5458d05" dependencies = [ - "generic-array", + "derive_more-impl", +] + +[[package]] +name = "derive_more-impl" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cb7330aeadfbe296029522e6c40f315320aba36fc43a5b3632f3795348f3bd22" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.87", + "unicode-xid", ] [[package]] @@ -1074,20 +803,6 @@ version = "1.0.17" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0d6ef0072f8a535281e4876be788938b528e9a1d43900b82c2569af7da799125" -[[package]] -name = "ecdsa" -version = "0.16.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ee27f32b5c5292967d2d4a9d7f1e0b0aed2c15daded5a60300e4abb9d8020bca" -dependencies = [ - "der", - "digest 0.10.7", - "elliptic-curve", - "rfc6979", - "signature", - "spki", -] - [[package]] name = "ed25519" version = "2.2.3" @@ -1123,29 +838,32 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4445909572dbd556c457c849c4ca58623d84b27c8fff1e74b0b4227d8b90d17b" [[package]] -name = "elliptic-curve" -version = "0.13.8" +name = "equivalent" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5" + +[[package]] +name = "fiat-crypto" +version = "0.2.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "28dea519a9695b9977216879a3ebfddf92f1c08c05d984f8996aecd6ecdc811d" + +[[package]] +name = "foreign-types" +version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b5e6043086bf7973472e0c7dff2142ea0b680d30e18d9cc40f267efbf222bd47" +checksum = "d737d9aa519fb7b749cbc3b962edcf310a8dd1f4b67c91c4f83975dbdd17d965" dependencies = [ - "base16ct", - "crypto-bigint", - "digest 0.10.7", - "ff", - "generic-array", - "group", - "pkcs8", - "rand_core", - "sec1", - "subtle", - "zeroize", + "foreign-types-macros", + "foreign-types-shared", ] [[package]] -name = "enumn" -version = "0.1.14" +name = "foreign-types-macros" +version = "0.2.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2f9ed6b3789237c8a0c1c505af1c7eb2c560df6186f01b098c3a1064ea532f38" +checksum = "1a5c6c585bc94aaf2c7b51dd4c2ba22680844aba4c687be581871a6f518c5742" dependencies = [ "proc-macro2", "quote", @@ -1153,111 +871,16 @@ dependencies = [ ] [[package]] -name = "equivalent" -version = "1.0.1" +name = "foreign-types-shared" +version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5" +checksum = "aa9a19cbb55df58761df49b23516a86d432839add4af60fc256da840f66ed35b" [[package]] -name = "errno" -version = "0.3.9" +name = "futures" +version = "0.3.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "534c5cf6194dfab3db3242765c03bbe257cf92f22b38f6bc0c58d59108a820ba" -dependencies = [ - "libc", - "windows-sys 0.52.0", -] - -[[package]] -name = "fastrand" -version = "2.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e8c02a5121d4ea3eb16a80748c74f5549a5665e4c21333c6098f283870fbdea6" - -[[package]] -name = "fastrlp" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "139834ddba373bbdd213dffe02c8d110508dcf1726c2be27e8d1f7d7e1856418" -dependencies = [ - "arrayvec", - "auto_impl", - "bytes", -] - -[[package]] -name = "ff" -version = "0.13.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ded41244b729663b1e574f1b4fb731469f69f79c17667b5d776b16cda0479449" -dependencies = [ - "bitvec", - "rand_core", - "subtle", -] - -[[package]] -name = "fiat-crypto" -version = "0.2.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "28dea519a9695b9977216879a3ebfddf92f1c08c05d984f8996aecd6ecdc811d" - -[[package]] -name = "fixed-hash" -version = "0.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "835c052cb0c08c1acf6ffd71c022172e18723949c8282f2b9f27efbc51e64534" -dependencies = [ - "byteorder", - "rand", - "rustc-hex", - "static_assertions", -] - -[[package]] -name = "fnv" -version = "1.0.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" - -[[package]] -name = "foreign-types" -version = "0.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d737d9aa519fb7b749cbc3b962edcf310a8dd1f4b67c91c4f83975dbdd17d965" -dependencies = [ - "foreign-types-macros", - "foreign-types-shared", -] - -[[package]] -name = "foreign-types-macros" -version = "0.2.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1a5c6c585bc94aaf2c7b51dd4c2ba22680844aba4c687be581871a6f518c5742" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.87", -] - -[[package]] -name = "foreign-types-shared" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aa9a19cbb55df58761df49b23516a86d432839add4af60fc256da840f66ed35b" - -[[package]] -name = "funty" -version = "2.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e6d5a32815ae3f33302d95fdcb2ce17862f8c65363dcfd29360480ba1001fc9c" - -[[package]] -name = "futures" -version = "0.3.31" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "65bc07b1a8bc7c85c5f2e110c476c7389b4554ba72af57d8445ea63a576b0876" +checksum = "65bc07b1a8bc7c85c5f2e110c476c7389b4554ba72af57d8445ea63a576b0876" dependencies = [ "futures-channel", "futures-core", @@ -1350,7 +973,6 @@ checksum = "85649ca51fd72272d7821adaf274ad91c288277713d9c18820d8499a7ff69e9a" dependencies = [ "typenum", "version_check", - "zeroize", ] [[package]] @@ -1364,23 +986,6 @@ dependencies = [ "wasi", ] -[[package]] -name = "glob" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d2fabcfbdc87f4758337ca535fb41a6d701b65693ce38287d856d1674551ec9b" - -[[package]] -name = "group" -version = "0.13.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f0f9ef7462f7c099f518d754361858f86d8a07af53ba9af0fe635bbccb151a63" -dependencies = [ - "ff", - "rand_core", - "subtle", -] - [[package]] name = "hashbrown" version = "0.13.2" @@ -1390,35 +995,12 @@ dependencies = [ "ahash", ] -[[package]] -name = "hashbrown" -version = "0.14.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e5274423e17b7c9fc20b6e7e208532f9b19825d82dfd615708b70edd83df41f1" -dependencies = [ - "ahash", - "allocator-api2", - "serde", -] - [[package]] name = "hashbrown" version = "0.15.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1e087f84d4f86bf4b218b927129862374b72199ae7d8657835f1e89000eea4fb" -[[package]] -name = "heck" -version = "0.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea" - -[[package]] -name = "hermit-abi" -version = "0.3.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d231dfb89cfffdbc30e7fc41579ed6066ad03abda9e567ccafae602b97ec5024" - [[package]] name = "hex" version = "0.4.3" @@ -1449,15 +1031,6 @@ version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3011d1213f159867b13cfd6ac92d2cd5f1345762c63be3554e84092d85a50bbd" -[[package]] -name = "hmac" -version = "0.12.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6c49c37c09c17a53d937dfbb742eb3a961d65a994e6bcdcf37e7399d0cc8ab5e" -dependencies = [ - "digest 0.10.7", -] - [[package]] name = "ics23" version = "0.11.3" @@ -1477,26 +1050,6 @@ dependencies = [ "sha3", ] -[[package]] -name = "impl-codec" -version = "0.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ba6a270039626615617f3f36d15fc827041df3b78c439da2cadfa47455a77f2f" -dependencies = [ - "parity-scale-codec", -] - -[[package]] -name = "impl-trait-for-tuples" -version = "0.2.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "11d7a9f6330b71fea57921c9b61c47ee6e84f72d394754eff6163ae67e7395eb" -dependencies = [ - "proc-macro2", - "quote", - "syn 1.0.109", -] - [[package]] name = "indexmap" version = "2.6.0" @@ -1557,7 +1110,7 @@ source = "git+https://github.com/penumbra-zone/jmt.git?rev=fd1c8ef#fd1c8ef999136 dependencies = [ "anyhow", "borsh", - "digest 0.10.7", + "digest", "hashbrown 0.13.2", "hex", "ics23", @@ -1571,18 +1124,6 @@ dependencies = [ "tracing", ] -[[package]] -name = "k256" -version = "0.13.3" -source = "git+https://github.com/risc0/RustCrypto-elliptic-curves?tag=k256/v0.13.3-risczero.0#d4f457a04410397cbb652a67c168b6cd6e9757c4" -dependencies = [ - "cfg-if", - "ecdsa", - "elliptic-curve", - "once_cell", - "sha2", -] - [[package]] name = "keccak" version = "0.1.5" @@ -1592,37 +1133,6 @@ dependencies = [ "cpufeatures", ] -[[package]] -name = "keccak-asm" -version = "0.1.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "505d1856a39b200489082f90d897c3f07c455563880bc5952e38eabf731c83b6" -dependencies = [ - "digest 0.10.7", - "sha3-asm", -] - -[[package]] -name = "kzg-rs" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cd9920cd4460ce3cbca19c62f3bb9a9611562478a4dc9d2c556f4a7d049c5b6b" -dependencies = [ - "bls12_381", - "glob", - "hex", - "once_cell", - "serde", - "serde_derive", - "serde_yaml", -] - -[[package]] -name = "lazy_static" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bbd2bcb4c963f2ddae06a2efc7e9f3591312473c50c6685e1f298068316e66fe" - [[package]] name = "libc" version = "0.2.159" @@ -1652,12 +1162,6 @@ dependencies = [ "sov-state", ] -[[package]] -name = "linux-raw-sys" -version = "0.4.14" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "78b3ae25bc7c8c38cec158d1f2757ee79e9b3740fbc7ccf0e59e4b08d793fa89" - [[package]] name = "log" version = "0.4.22" @@ -1700,27 +1204,6 @@ version = "1.12.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c9be0862c1b3f26a88803c4a49de6889c10e608b3ee9344e6ef5b45fb37ad3d1" -[[package]] -name = "modular-bitfield" -version = "0.11.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a53d79ba8304ac1c4f9eb3b9d281f21f7be9d4626f72ce7df4ad8fbde4f38a74" -dependencies = [ - "modular-bitfield-impl", - "static_assertions", -] - -[[package]] -name = "modular-bitfield-impl" -version = "0.11.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5a7d5f7076603ebc68de2dc6a650ec331a062a13abaa346975be747bbfa4b789" -dependencies = [ - "proc-macro2", - "quote", - "syn 1.0.109", -] - [[package]] name = "num-bigint" version = "0.4.6" @@ -1761,49 +1244,6 @@ dependencies = [ "libm", ] -[[package]] -name = "num_cpus" -version = "1.16.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4161fcb6d602d4d2081af7c3a45852d875a03dd337a6bfdd6e06407b61342a43" -dependencies = [ - "hermit-abi", - "libc", -] - -[[package]] -name = "num_enum" -version = "0.7.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4e613fc340b2220f734a8595782c551f1250e969d87d3be1ae0579e8d4065179" -dependencies = [ - "num_enum_derive", -] - -[[package]] -name = "num_enum_derive" -version = "0.7.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "af1844ef2428cc3e1cb900be36181049ef3d3193c63e43026cfe202983b27a56" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.87", -] - -[[package]] -name = "nybbles" -version = "0.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "95f06be0417d97f81fe4e5c86d7d01b392655a9cac9c19a848aa033e18937b23" -dependencies = [ - "alloy-rlp", - "const-hex", - "proptest", - "serde", - "smallvec", -] - [[package]] name = "objc" version = "0.2.7" @@ -1819,58 +1259,12 @@ version = "1.20.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1261fe7e33c73b354eab43b1273a57c8f967d0391e80353e51f764ac02cf6775" -[[package]] -name = "pairing" -version = "0.23.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "81fec4625e73cf41ef4bb6846cafa6d44736525f442ba45e407c4a000a13996f" -dependencies = [ - "group", -] - -[[package]] -name = "parity-scale-codec" -version = "3.6.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "306800abfa29c7f16596b5970a588435e3d5b3149683d00c12b699cc19f895ee" -dependencies = [ - "arrayvec", - "bitvec", - "byte-slice-cast", - "impl-trait-for-tuples", - "parity-scale-codec-derive", - "serde", -] - -[[package]] -name = "parity-scale-codec-derive" -version = "3.6.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d830939c76d294956402033aee57a6da7b438f2294eb94864c37b0569053a42c" -dependencies = [ - "proc-macro-crate", - "proc-macro2", - "quote", - "syn 1.0.109", -] - [[package]] name = "paste" version = "1.0.15" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "57c0d7b74b563b49d38dae00a0c37d4d6de9b432382b2892f0574ddcae73fd0a" -[[package]] -name = "pest" -version = "2.7.13" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fdbef9d1d47087a895abd220ed25eb4ad973a5e26f6a4367b038c25e28dfc2d9" -dependencies = [ - "memchr", - "thiserror", - "ucd-trie", -] - [[package]] name = "pin-project-lite" version = "0.2.14" @@ -1883,16 +1277,6 @@ version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" -[[package]] -name = "pkcs8" -version = "0.10.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f950b2377845cebe5cf8b5165cb3cc1a5e0fa5cfa3e1f7f55707d8fd82e0a7b7" -dependencies = [ - "der", - "spki", -] - [[package]] name = "platforms" version = "3.4.1" @@ -1908,17 +1292,6 @@ dependencies = [ "zerocopy", ] -[[package]] -name = "primitive-types" -version = "0.12.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0b34d9fd68ae0b74a41b21c03c2f62847aa0ffea044eee893b4c140b37e244e2" -dependencies = [ - "fixed-hash", - "impl-codec", - "uint", -] - [[package]] name = "proc-macro-crate" version = "3.2.0" @@ -1966,17 +1339,11 @@ version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b4c2511913b88df1637da85cc8d96ec8e43a3f8bb8ccb71ee1ac240d6f3df58d" dependencies = [ - "bit-set", - "bit-vec", "bitflags 2.6.0", - "lazy_static", "num-traits", "rand", "rand_chacha", "rand_xorshift", - "regex-syntax", - "rusty-fork", - "tempfile", "unarray", ] @@ -2003,12 +1370,6 @@ dependencies = [ "syn 2.0.87", ] -[[package]] -name = "quick-error" -version = "1.2.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a1d01941d82fa2ab50be1e79e6714289dd7cde78eba4c074bc5a4374f650dfe0" - [[package]] name = "quote" version = "1.0.37" @@ -2019,222 +1380,42 @@ dependencies = [ ] [[package]] -name = "radium" -version = "0.7.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dc33ff2d4973d518d823d61aa239014831e521c75da58e3df4840d3f47749d09" - -[[package]] -name = "rand" -version = "0.8.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404" -dependencies = [ - "libc", - "rand_chacha", - "rand_core", -] - -[[package]] -name = "rand_chacha" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88" -dependencies = [ - "ppv-lite86", - "rand_core", -] - -[[package]] -name = "rand_core" -version = "0.6.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c" -dependencies = [ - "getrandom", -] - -[[package]] -name = "rand_xorshift" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d25bf25ec5ae4a3f1b92f929810509a2f53d7dca2f50b794ff57e3face536c8f" -dependencies = [ - "rand_core", -] - -[[package]] -name = "rayon" -version = "1.10.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b418a60154510ca1a002a752ca9714984e21e4241e804d32555251faf8b78ffa" -dependencies = [ - "either", - "rayon-core", -] - -[[package]] -name = "rayon-core" -version = "1.12.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1465873a3dfdaa8ae7cb14b4383657caab0b3e8a0aa9ae8e04b044854c8dfce2" -dependencies = [ - "crossbeam-deque", - "crossbeam-utils", -] - -[[package]] -name = "regex-syntax" -version = "0.8.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2b15c43186be67a4fd63bee50d0303afffcef381492ebe2c5d87f324e1b8815c" - -[[package]] -name = "reth-codecs" -version = "1.0.4" -source = "git+https://github.com/paradigmxyz/reth?rev=a206eb3690e5a51d3c797fed2a6ed722e36863eb#a206eb3690e5a51d3c797fed2a6ed722e36863eb" -dependencies = [ - "alloy-consensus", - "alloy-eips", - "alloy-genesis", - "alloy-primitives", - "alloy-trie", - "bytes", - "modular-bitfield", - "reth-codecs-derive", - "serde", -] - -[[package]] -name = "reth-codecs-derive" -version = "1.0.4" -source = "git+https://github.com/paradigmxyz/reth?rev=a206eb3690e5a51d3c797fed2a6ed722e36863eb#a206eb3690e5a51d3c797fed2a6ed722e36863eb" -dependencies = [ - "convert_case 0.6.0", - "proc-macro2", - "quote", - "syn 2.0.87", -] - -[[package]] -name = "reth-ethereum-forks" -version = "1.0.4" -source = "git+https://github.com/paradigmxyz/reth?rev=a206eb3690e5a51d3c797fed2a6ed722e36863eb#a206eb3690e5a51d3c797fed2a6ed722e36863eb" -dependencies = [ - "alloy-chains", - "alloy-primitives", - "alloy-rlp", - "auto_impl", - "crc", - "dyn-clone", - "once_cell", - "rustc-hash", - "serde", - "thiserror-no-std", -] - -[[package]] -name = "reth-primitives" -version = "1.0.4" -source = "git+https://github.com/paradigmxyz/reth?rev=a206eb3690e5a51d3c797fed2a6ed722e36863eb#a206eb3690e5a51d3c797fed2a6ed722e36863eb" -dependencies = [ - "alloy-eips", - "alloy-genesis", - "alloy-primitives", - "alloy-rlp", - "bytes", - "derive_more", - "k256", - "once_cell", - "rayon", - "reth-ethereum-forks", - "reth-primitives-traits", - "reth-static-file-types", - "reth-trie-common", - "revm-primitives", - "serde", -] - -[[package]] -name = "reth-primitives-traits" -version = "1.0.4" -source = "git+https://github.com/paradigmxyz/reth?rev=a206eb3690e5a51d3c797fed2a6ed722e36863eb#a206eb3690e5a51d3c797fed2a6ed722e36863eb" -dependencies = [ - "alloy-consensus", - "alloy-eips", - "alloy-genesis", - "alloy-primitives", - "alloy-rlp", - "byteorder", - "bytes", - "derive_more", - "modular-bitfield", - "reth-codecs", - "revm-primitives", - "roaring", - "serde", -] - -[[package]] -name = "reth-static-file-types" -version = "1.0.4" -source = "git+https://github.com/paradigmxyz/reth?rev=a206eb3690e5a51d3c797fed2a6ed722e36863eb#a206eb3690e5a51d3c797fed2a6ed722e36863eb" +name = "rand" +version = "0.8.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404" dependencies = [ - "alloy-primitives", - "derive_more", - "serde", - "strum", + "libc", + "rand_chacha", + "rand_core", ] [[package]] -name = "reth-trie-common" -version = "1.0.4" -source = "git+https://github.com/paradigmxyz/reth?rev=a206eb3690e5a51d3c797fed2a6ed722e36863eb#a206eb3690e5a51d3c797fed2a6ed722e36863eb" +name = "rand_chacha" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88" dependencies = [ - "alloy-consensus", - "alloy-genesis", - "alloy-primitives", - "alloy-rlp", - "alloy-trie", - "bytes", - "derive_more", - "itertools 0.13.0", - "nybbles", - "reth-codecs", - "reth-primitives-traits", - "revm-primitives", - "serde", + "ppv-lite86", + "rand_core", ] [[package]] -name = "revm-primitives" -version = "7.1.0" +name = "rand_core" +version = "0.6.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2fc4311037ee093ec50ec734e1424fcb3e12d535c6cef683b75d1c064639630c" +checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c" dependencies = [ - "alloy-eips", - "alloy-primitives", - "auto_impl", - "bitflags 2.6.0", - "bitvec", - "c-kzg", - "cfg-if", - "dyn-clone", - "enumn", - "hashbrown 0.14.5", - "hex", - "kzg-rs", - "serde", + "getrandom", ] [[package]] -name = "rfc6979" -version = "0.4.0" +name = "rand_xorshift" +version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f8dd2a808d456c4a54e300a23e9f5a67e122c3024119acbfd73e3bf664491cb2" +checksum = "d25bf25ec5ae4a3f1b92f929810509a2f53d7dca2f50b794ff57e3face536c8f" dependencies = [ - "hmac", - "subtle", + "rand_core", ] [[package]] @@ -2243,7 +1424,7 @@ version = "0.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bd124222d17ad93a644ed9d011a40f4fb64aa54275c08cc216524a9ea82fb09f" dependencies = [ - "digest 0.10.7", + "digest", ] [[package]] @@ -2313,7 +1494,7 @@ dependencies = [ "ark-bn254", "ark-ec", "ark-groth16", - "ark-serialize 0.4.2", + "ark-serialize", "bytemuck", "hex", "num-bigint", @@ -2334,7 +1515,7 @@ dependencies = [ "borsh", "bytemuck", "cfg-if", - "digest 0.10.7", + "digest", "hex", "hex-literal", "metal", @@ -2366,7 +1547,7 @@ dependencies = [ "risc0-zkp", "risc0-zkvm-platform", "rrs-lib", - "semver 1.0.23", + "semver", "serde", "sha2", "stability", @@ -2385,26 +1566,6 @@ dependencies = [ "stability", ] -[[package]] -name = "rlp" -version = "0.5.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bb919243f34364b6bd2fc10ef797edbfa75f33c252e7998527479c6d6b47e1ec" -dependencies = [ - "bytes", - "rustc-hex", -] - -[[package]] -name = "roaring" -version = "0.10.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8f4b84ba6e838ceb47b41de5194a60244fac43d9fe03b71dbe8c5a201081d6d1" -dependencies = [ - "bytemuck", - "byteorder", -] - [[package]] name = "rrs-lib" version = "0.1.0" @@ -2431,17 +1592,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2c3cc4c2511671f327125da14133d0c5c5d137f006a1017a16f557bc85b16286" dependencies = [ "alloy-rlp", - "ark-ff 0.3.0", - "ark-ff 0.4.2", - "bytes", - "fastrlp", - "num-bigint", - "num-traits", - "parity-scale-codec", - "primitive-types", "proptest", "rand", - "rlp", "ruint-macro", "serde", "valuable", @@ -2454,65 +1606,13 @@ version = "1.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "48fd7bd8a6377e15ad9d42a8ec25371b94ddc67abe7c8b9127bec79bebaaae18" -[[package]] -name = "rustc-hash" -version = "2.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "583034fd73374156e66797ed8e5b0d5690409c9226b22d87cb7f19821c05d152" - -[[package]] -name = "rustc-hex" -version = "2.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3e75f6a532d0fd9f7f13144f392b6ad56a32696bfcd9c78f797f16bbb6f072d6" - -[[package]] -name = "rustc_version" -version = "0.3.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f0dfe2087c51c460008730de8b57e6a320782fbfb312e1f4d520e6c6fae155ee" -dependencies = [ - "semver 0.11.0", -] - [[package]] name = "rustc_version" version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "cfcb3a22ef46e85b45de6ee7e79d063319ebb6594faafcf1c225ea92ab6e9b92" dependencies = [ - "semver 1.0.23", -] - -[[package]] -name = "rustix" -version = "0.38.37" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8acb788b847c24f28525660c4d7758620a7210875711f79e7f663cc152726811" -dependencies = [ - "bitflags 2.6.0", - "errno", - "libc", - "linux-raw-sys", - "windows-sys 0.52.0", -] - -[[package]] -name = "rustversion" -version = "1.0.17" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "955d28af4278de8121b7ebeb796b6a45735dc01436d898801014aced2773a3d6" - -[[package]] -name = "rusty-fork" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cb3dcc6e454c328bb824492db107ab7c0ae8fcffe4ad210136ef014458c1bc4f" -dependencies = [ - "fnv", - "quick-error", - "tempfile", - "wait-timeout", + "semver", ] [[package]] @@ -2545,20 +1645,6 @@ dependencies = [ "syn 2.0.87", ] -[[package]] -name = "sec1" -version = "0.7.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d3e97a565f76233a6003f9f5c54be1d9c5bdfa3eccfb189469f11ec4901c47dc" -dependencies = [ - "base16ct", - "der", - "generic-array", - "pkcs8", - "subtle", - "zeroize", -] - [[package]] name = "secp256k1" version = "0.29.0" @@ -2578,30 +1664,12 @@ dependencies = [ "cc", ] -[[package]] -name = "semver" -version = "0.11.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f301af10236f6df4160f7c3f04eec6dbc70ace82d23326abad5edee88801c6b6" -dependencies = [ - "semver-parser", -] - [[package]] name = "semver" version = "1.0.23" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "61697e0a1c7e512e84a621326239844a24d8207b4669b41bc18b32ea5cbf988b" -[[package]] -name = "semver-parser" -version = "0.10.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "00b0bef5b7f9e0df16536d3961cfb6e84331c065b4066afb39768d0e319411f7" -dependencies = [ - "pest", -] - [[package]] name = "serde" version = "1.0.210" @@ -2645,19 +1713,6 @@ dependencies = [ "serde", ] -[[package]] -name = "serde_yaml" -version = "0.9.34+deprecated" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6a8b1a1a2ebf674015cc02edccce75287f1a0130d394307b36743c2f5d504b47" -dependencies = [ - "indexmap", - "itoa", - "ryu", - "serde", - "unsafe-libyaml", -] - [[package]] name = "sha2" version = "0.10.8" @@ -2665,7 +1720,7 @@ source = "git+https://github.com/risc0/RustCrypto-hashes?tag=sha2-v0.10.8-riscze dependencies = [ "cfg-if", "cpufeatures", - "digest 0.10.7", + "digest", ] [[package]] @@ -2674,20 +1729,10 @@ version = "0.10.8" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "75872d278a8f37ef87fa0ddbda7802605cb18344497949862c0d4dcb291eba60" dependencies = [ - "digest 0.10.7", + "digest", "keccak", ] -[[package]] -name = "sha3-asm" -version = "0.1.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c28efc5e327c837aa837c59eae585fc250715ef939ac32881bcc11677cd02d46" -dependencies = [ - "cc", - "cfg-if", -] - [[package]] name = "shlex" version = "1.3.0" @@ -2699,10 +1744,6 @@ name = "signature" version = "2.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "77549399552de45a898a580c1b41d445bf730df867cc44e6c0233bbc4b8329de" -dependencies = [ - "digest 0.10.7", - "rand_core", -] [[package]] name = "slab" @@ -2713,15 +1754,6 @@ dependencies = [ "autocfg", ] -[[package]] -name = "smallvec" -version = "1.13.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3c5e1a9a646d36c3599cd173a41282daf47c44583ad367b8e6837255952e5c67" -dependencies = [ - "serde", -] - [[package]] name = "sov-modules-api" version = "0.5.0-rc.1" @@ -2729,8 +1761,8 @@ dependencies = [ "anyhow", "bech32 0.9.1", "borsh", - "derive_more", - "digest 0.10.7", + "derive_more 0.99.18", + "digest", "ed25519-dalek", "hex", "jmt", @@ -2749,8 +1781,8 @@ dependencies = [ "anyhow", "bech32 0.9.1", "borsh", - "derive_more", - "digest 0.10.7", + "derive_more 0.99.18", + "digest", "hex", "jmt", "schemars", @@ -2785,7 +1817,7 @@ dependencies = [ "async-trait", "borsh", "bytes", - "digest 0.10.7", + "digest", "hex", "serde", "thiserror", @@ -2795,9 +1827,11 @@ dependencies = [ name = "sov-state" version = "0.5.0-rc.1" dependencies = [ + "alloy-rlp", "anyhow", "bcs", "borsh", + "bytes", "jmt", "serde", "sha2", @@ -2805,16 +1839,6 @@ dependencies = [ "sov-rollup-interface", ] -[[package]] -name = "spki" -version = "0.7.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d91ed6c858b01f942cd56b37a94b3e0a1798290327d1236e4d9cf4eaca44d29d" -dependencies = [ - "base64ct", - "der", -] - [[package]] name = "stability" version = "0.2.1" @@ -2825,34 +1849,6 @@ dependencies = [ "syn 2.0.87", ] -[[package]] -name = "static_assertions" -version = "1.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f" - -[[package]] -name = "strum" -version = "0.26.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8fec0f0aef304996cf250b31b5a10dee7980c85da9d759361292b8bca5a18f06" -dependencies = [ - "strum_macros", -] - -[[package]] -name = "strum_macros" -version = "0.26.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4c6bee85a5a24955dc440386795aa378cd9cf82acd5f764469152d2270e581be" -dependencies = [ - "heck", - "proc-macro2", - "quote", - "rustversion", - "syn 2.0.87", -] - [[package]] name = "subtle" version = "2.6.1" @@ -2893,25 +1889,6 @@ dependencies = [ "syn 2.0.87", ] -[[package]] -name = "tap" -version = "1.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "55937e1799185b12863d447f42597ed69d9928686b8d88a1df17376a097d8369" - -[[package]] -name = "tempfile" -version = "3.13.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f0f2c9fc62d0beef6951ccffd757e241266a2c833136efbe35af6cd2567dca5b" -dependencies = [ - "cfg-if", - "fastrand", - "once_cell", - "rustix", - "windows-sys 0.59.0", -] - [[package]] name = "thiserror" version = "1.0.64" @@ -2932,35 +1909,6 @@ dependencies = [ "syn 2.0.87", ] -[[package]] -name = "thiserror-impl-no-std" -version = "2.0.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "58e6318948b519ba6dc2b442a6d0b904ebfb8d411a3ad3e07843615a72249758" -dependencies = [ - "proc-macro2", - "quote", - "syn 1.0.109", -] - -[[package]] -name = "thiserror-no-std" -version = "2.0.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a3ad459d94dd517257cc96add8a43190ee620011bb6e6cdc82dafd97dfafafea" -dependencies = [ - "thiserror-impl-no-std", -] - -[[package]] -name = "threadpool" -version = "1.8.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d050e60b33d41c19108b32cea32164033a9013fe3b46cbd4457559bfbf77afaa" -dependencies = [ - "num_cpus", -] - [[package]] name = "tiny-keccak" version = "2.0.2" @@ -3035,24 +1983,6 @@ version = "1.17.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "42ff0bf0c66b8238c6f3b578df37d0b7848e55df8577b3f74f92a69acceeb825" -[[package]] -name = "ucd-trie" -version = "0.1.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2896d95c02a80c6d6a5d6e953d479f5ddf2dfdb6a244441010e373ac0fb88971" - -[[package]] -name = "uint" -version = "0.9.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "76f64bba2c53b04fcab63c01a7d7427eadc821e3bc48c34dc9ba29c501164b52" -dependencies = [ - "byteorder", - "crunchy", - "hex", - "static_assertions", -] - [[package]] name = "unarray" version = "0.1.4" @@ -3066,16 +1996,10 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e91b56cd4cadaeb79bbf1a5645f6b4f8dc5bde8834ad5894a8db35fda9efa1fe" [[package]] -name = "unicode-segmentation" -version = "1.12.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f6ccf251212114b54433ec949fd6a7841275f9ada20dddd2f29e9ceea4501493" - -[[package]] -name = "unsafe-libyaml" -version = "0.2.11" +name = "unicode-xid" +version = "0.2.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "673aac59facbab8a9007c7f6108d11f63b603f7cabff99fabf650fea5c32b861" +checksum = "ebc1c04c71510c7f702b52b7c350734c9ff1295c464a03335b00bb84fc54f853" [[package]] name = "valuable" @@ -3089,103 +2013,12 @@ version = "0.9.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0b928f33d975fc6ad9f86c8f283853ad26bdd5b10b7f1542aa2fa15e2289105a" -[[package]] -name = "wait-timeout" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9f200f5b12eb75f8c1ed65abd4b2db8a6e1b138a20de009dacee265a2498f3f6" -dependencies = [ - "libc", -] - [[package]] name = "wasi" version = "0.11.0+wasi-snapshot-preview1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" -[[package]] -name = "windows-sys" -version = "0.52.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d" -dependencies = [ - "windows-targets", -] - -[[package]] -name = "windows-sys" -version = "0.59.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e38bc4d79ed67fd075bcc251a1c39b32a1776bbe92e5bef1f0bf1f8c531853b" -dependencies = [ - "windows-targets", -] - -[[package]] -name = "windows-targets" -version = "0.52.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9b724f72796e036ab90c1021d4780d4d3d648aca59e491e6b98e725b84e99973" -dependencies = [ - "windows_aarch64_gnullvm", - "windows_aarch64_msvc", - "windows_i686_gnu", - "windows_i686_gnullvm", - "windows_i686_msvc", - "windows_x86_64_gnu", - "windows_x86_64_gnullvm", - "windows_x86_64_msvc", -] - -[[package]] -name = "windows_aarch64_gnullvm" -version = "0.52.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "32a4622180e7a0ec044bb555404c800bc9fd9ec262ec147edd5989ccd0c02cd3" - -[[package]] -name = "windows_aarch64_msvc" -version = "0.52.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "09ec2a7bb152e2252b53fa7803150007879548bc709c039df7627cabbd05d469" - -[[package]] -name = "windows_i686_gnu" -version = "0.52.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8e9b5ad5ab802e97eb8e295ac6720e509ee4c243f69d781394014ebfe8bbfa0b" - -[[package]] -name = "windows_i686_gnullvm" -version = "0.52.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0eee52d38c090b3caa76c563b86c3a4bd71ef1a819287c19d586d7334ae8ed66" - -[[package]] -name = "windows_i686_msvc" -version = "0.52.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "240948bc05c5e7c6dabba28bf89d89ffce3e303022809e73deaefe4f6ec56c66" - -[[package]] -name = "windows_x86_64_gnu" -version = "0.52.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "147a5c80aabfbf0c7d901cb5895d1de30ef2907eb21fbbab29ca94c5b08b1a78" - -[[package]] -name = "windows_x86_64_gnullvm" -version = "0.52.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "24d5b23dc417412679681396f2b49f3de8c1473deb516bd34410872eff51ed0d" - -[[package]] -name = "windows_x86_64_msvc" -version = "0.52.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec" - [[package]] name = "winnow" version = "0.6.20" @@ -3195,15 +2028,6 @@ dependencies = [ "memchr", ] -[[package]] -name = "wyz" -version = "0.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "05f360fc0b24296329c78fda852a1e9ae82de9cf7b27dae4b7f62f118f77b9ed" -dependencies = [ - "tap", -] - [[package]] name = "zerocopy" version = "0.7.35" @@ -3244,3 +2068,8 @@ dependencies = [ "quote", "syn 2.0.87", ] + +[[patch.unused]] +name = "k256" +version = "0.13.3" +source = "git+https://github.com/risc0/RustCrypto-elliptic-curves?tag=k256/v0.13.3-risczero.0#d4f457a04410397cbb652a67c168b6cd6e9757c4" diff --git a/guests/risc0/light-client-proof-mock/Cargo.lock b/guests/risc0/light-client-proof-mock/Cargo.lock index 71590c375..126c193d7 100644 --- a/guests/risc0/light-client-proof-mock/Cargo.lock +++ b/guests/risc0/light-client-proof-mock/Cargo.lock @@ -30,82 +30,52 @@ dependencies = [ ] [[package]] -name = "allocator-api2" -version = "0.2.18" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5c6cb57a04249c6480766f7f7cef5467412af1490f8d1e243141daddada3264f" - -[[package]] -name = "alloy-chains" -version = "0.1.36" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "94c225801d42099570d0674701dddd4142f0ef715282aeb5985042e2ec962df7" -dependencies = [ - "num_enum", - "serde", - "strum", -] - -[[package]] -name = "alloy-consensus" -version = "0.2.1" +name = "alloy-eip2930" +version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "04c309895995eaa4bfcc345f5515a39c7df9447798645cc8bf462b6c5bf1dc96" +checksum = "0069cf0642457f87a01a014f6dc29d5d893cd4fd8fddf0c3cdfad1bb3ebafc41" dependencies = [ - "alloy-eips", "alloy-primitives", "alloy-rlp", - "alloy-serde", - "serde", ] [[package]] -name = "alloy-eips" -version = "0.2.1" +name = "alloy-eip7702" +version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d9431c99a3b3fe606ede4b3d4043bdfbcb780c45b8d8d226c3804e2b75cfbe68" +checksum = "ea59dc42102bc9a1905dc57901edc6dd48b9f38115df86c7d252acba70d71d04" dependencies = [ "alloy-primitives", "alloy-rlp", - "alloy-serde", - "c-kzg", - "k256", - "once_cell", - "serde", - "sha2", ] [[package]] -name = "alloy-genesis" -version = "0.2.1" +name = "alloy-eips" +version = "0.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "79614dfe86144328da11098edcc7bc1a3f25ad8d3134a9eb9e857e06f0d9840d" +checksum = "6ffb906284a1e1f63c4607da2068c8197458a352d0b3e9796e67353d72a9be85" dependencies = [ + "alloy-eip2930", + "alloy-eip7702", "alloy-primitives", - "alloy-serde", - "serde", + "alloy-rlp", ] [[package]] name = "alloy-primitives" -version = "0.7.7" +version = "0.8.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ccb3ead547f4532bc8af961649942f0b9c16ee9226e26caa3f38420651cc0bf4" +checksum = "9fce5dbd6a4f118eecc4719eaa9c7ffc31c315e6c5ccde3642db927802312425" dependencies = [ "alloy-rlp", "bytes", "cfg-if", "const-hex", - "derive_more", - "getrandom", + "derive_more 1.0.0", "hex-literal", "itoa", - "k256", - "keccak-asm", - "proptest", - "rand", + "paste", "ruint", - "serde", "tiny-keccak", ] @@ -116,7 +86,6 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "26154390b1d205a4a7ac7352aa2eb4f81f391399d4e2f546fb81a2f8bb383f62" dependencies = [ "alloy-rlp-derive", - "arrayvec", "bytes", ] @@ -131,33 +100,6 @@ dependencies = [ "syn 2.0.87", ] -[[package]] -name = "alloy-serde" -version = "0.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e33feda6a53e6079895aed1d08dcb98a1377b000d80d16370fbbdb8155d547ef" -dependencies = [ - "alloy-primitives", - "serde", - "serde_json", -] - -[[package]] -name = "alloy-trie" -version = "0.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "03704f265cbbb943b117ecb5055fd46e8f41e7dc8a58b1aed20bcd40ace38c15" -dependencies = [ - "alloy-primitives", - "alloy-rlp", - "derive_more", - "hashbrown 0.14.5", - "nybbles", - "serde", - "smallvec", - "tracing", -] - [[package]] name = "anyhow" version = "1.0.89" @@ -171,8 +113,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a22f4561524cd949590d78d7d4c5df8f592430d221f7f3c9497bbafd8972120f" dependencies = [ "ark-ec", - "ark-ff 0.4.2", - "ark-std 0.4.0", + "ark-ff", + "ark-std", ] [[package]] @@ -182,14 +124,14 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1f3a13b34da09176a8baba701233fdffbaa7c1b1192ce031a3da4e55ce1f1a56" dependencies = [ "ark-ec", - "ark-ff 0.4.2", + "ark-ff", "ark-relations", - "ark-serialize 0.4.2", + "ark-serialize", "ark-snark", - "ark-std 0.4.0", + "ark-std", "blake2", "derivative", - "digest 0.10.7", + "digest", "sha2", ] @@ -199,10 +141,10 @@ version = "0.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "defd9a439d56ac24968cca0571f598a61bc8c55f71d50a89cda591cb750670ba" dependencies = [ - "ark-ff 0.4.2", + "ark-ff", "ark-poly", - "ark-serialize 0.4.2", - "ark-std 0.4.0", + "ark-serialize", + "ark-std", "derivative", "hashbrown 0.13.2", "itertools 0.10.5", @@ -210,54 +152,26 @@ dependencies = [ "zeroize", ] -[[package]] -name = "ark-ff" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6b3235cc41ee7a12aaaf2c575a2ad7b46713a8a50bda2fc3b003a04845c05dd6" -dependencies = [ - "ark-ff-asm 0.3.0", - "ark-ff-macros 0.3.0", - "ark-serialize 0.3.0", - "ark-std 0.3.0", - "derivative", - "num-bigint", - "num-traits", - "paste", - "rustc_version 0.3.3", - "zeroize", -] - [[package]] name = "ark-ff" version = "0.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ec847af850f44ad29048935519032c33da8aa03340876d351dfab5660d2966ba" dependencies = [ - "ark-ff-asm 0.4.2", - "ark-ff-macros 0.4.2", - "ark-serialize 0.4.2", - "ark-std 0.4.0", + "ark-ff-asm", + "ark-ff-macros", + "ark-serialize", + "ark-std", "derivative", - "digest 0.10.7", + "digest", "itertools 0.10.5", "num-bigint", "num-traits", "paste", - "rustc_version 0.4.1", + "rustc_version", "zeroize", ] -[[package]] -name = "ark-ff-asm" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "db02d390bf6643fb404d3d22d31aee1c4bc4459600aef9113833d17e786c6e44" -dependencies = [ - "quote", - "syn 1.0.109", -] - [[package]] name = "ark-ff-asm" version = "0.4.2" @@ -268,18 +182,6 @@ dependencies = [ "syn 1.0.109", ] -[[package]] -name = "ark-ff-macros" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "db2fd794a08ccb318058009eefdf15bcaaaaf6f8161eb3345f907222bac38b20" -dependencies = [ - "num-bigint", - "num-traits", - "quote", - "syn 1.0.109", -] - [[package]] name = "ark-ff-macros" version = "0.4.2" @@ -301,11 +203,11 @@ checksum = "20ceafa83848c3e390f1cbf124bc3193b3e639b3f02009e0e290809a501b95fc" dependencies = [ "ark-crypto-primitives", "ark-ec", - "ark-ff 0.4.2", + "ark-ff", "ark-poly", "ark-relations", - "ark-serialize 0.4.2", - "ark-std 0.4.0", + "ark-serialize", + "ark-std", ] [[package]] @@ -314,9 +216,9 @@ version = "0.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d320bfc44ee185d899ccbadfa8bc31aab923ce1558716e1997a1e74057fe86bf" dependencies = [ - "ark-ff 0.4.2", - "ark-serialize 0.4.2", - "ark-std 0.4.0", + "ark-ff", + "ark-serialize", + "ark-std", "derivative", "hashbrown 0.13.2", ] @@ -327,22 +229,12 @@ version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "00796b6efc05a3f48225e59cb6a2cda78881e7c390872d5786aaf112f31fb4f0" dependencies = [ - "ark-ff 0.4.2", - "ark-std 0.4.0", + "ark-ff", + "ark-std", "tracing", "tracing-subscriber", ] -[[package]] -name = "ark-serialize" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1d6c2b318ee6e10f8c2853e73a83adc0ccb88995aa978d8a3408d492ab2ee671" -dependencies = [ - "ark-std 0.3.0", - "digest 0.9.0", -] - [[package]] name = "ark-serialize" version = "0.4.2" @@ -350,8 +242,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "adb7b85a02b83d2f22f89bd5cac66c9c89474240cb6207cb1efc16d098e822a5" dependencies = [ "ark-serialize-derive", - "ark-std 0.4.0", - "digest 0.10.7", + "ark-std", + "digest", "num-bigint", ] @@ -372,20 +264,10 @@ version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "84d3cc6833a335bb8a600241889ead68ee89a3cf8448081fb7694c0fe503da63" dependencies = [ - "ark-ff 0.4.2", + "ark-ff", "ark-relations", - "ark-serialize 0.4.2", - "ark-std 0.4.0", -] - -[[package]] -name = "ark-std" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1df2c09229cbc5a028b1d70e00fdb2acee28b1055dfb5ca73eea49c5a25c4e7c" -dependencies = [ - "num-traits", - "rand", + "ark-serialize", + "ark-std", ] [[package]] @@ -421,41 +303,18 @@ dependencies = [ "syn 2.0.87", ] -[[package]] -name = "auto_impl" -version = "1.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3c87f3f15e7794432337fc718554eaa4dc8f04c9677a950ffe366f20a162ae42" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.87", -] - [[package]] name = "autocfg" version = "1.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ace50bade8e6234aa140d9a2f552bbee1db4d353f69b8217bc503490fc1a9f26" -[[package]] -name = "base16ct" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4c7f02d4ea65f2c1853089ffd8d2787bdbc63de2f0d29dedbcf8ccdfa0ccd4cf" - [[package]] name = "base64" version = "0.21.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9d297deb1925b89f2ccc13d7635fa0714f12c87adce1c75356b39ca9b7178567" -[[package]] -name = "base64ct" -version = "1.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8c3c1a368f70d6cf7302d78f8f7093da241fb8e8807c05cc9e51a125895a6d5b" - [[package]] name = "bcs" version = "0.1.6" @@ -481,21 +340,6 @@ dependencies = [ "serde", ] -[[package]] -name = "bit-set" -version = "0.5.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0700ddab506f33b20a03b13996eccd309a48e5ff77d0d95926aa0210fb4e95f1" -dependencies = [ - "bit-vec", -] - -[[package]] -name = "bit-vec" -version = "0.6.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "349f9b6a179ed607305526ca489b34ad0a41aed5f7980fa90eb03160b69598fb" - [[package]] name = "bitflags" version = "1.3.2" @@ -507,22 +351,6 @@ name = "bitflags" version = "2.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b048fb63fd8b5923fc5aa7b340d8e156aec7ec02f0c78fa8a6ddc2613f6f71de" -dependencies = [ - "serde", -] - -[[package]] -name = "bitvec" -version = "1.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1bc2832c24239b0141d5674bb9174f9d68a8b5b3f2753311927c172ca46f7e9c" -dependencies = [ - "funty", - "radium", - "serde", - "tap", - "wyz", -] [[package]] name = "blake2" @@ -530,7 +358,7 @@ version = "0.10.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "46502ad458c9a52b69d4d4d32775c788b7a1b85e8bc9d482d92250fc0e3f8efe" dependencies = [ - "digest 0.10.7", + "digest", ] [[package]] @@ -561,31 +389,6 @@ dependencies = [ "generic-array", ] -[[package]] -name = "bls12_381" -version = "0.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d7bc6d6292be3a19e6379786dac800f551e5865a5bb51ebbe3064ab80433f403" -dependencies = [ - "ff", - "group", - "pairing", - "rand_core", - "subtle", -] - -[[package]] -name = "blst" -version = "0.3.13" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4378725facc195f1a538864863f6de233b500a8862747e7f165078a419d5e874" -dependencies = [ - "cc", - "glob", - "threadpool", - "zeroize", -] - [[package]] name = "borsh" version = "1.5.1" @@ -632,12 +435,6 @@ dependencies = [ "alloc-stdlib", ] -[[package]] -name = "byte-slice-cast" -version = "1.2.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c3ac9f8b63eca6fd385229b3675f6cc0dc5c8a5c8a54a59d4f52ffd670d87b0c" - [[package]] name = "bytemuck" version = "1.18.0" @@ -673,21 +470,6 @@ dependencies = [ "serde", ] -[[package]] -name = "c-kzg" -version = "1.0.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f0307f72feab3300336fb803a57134159f6e20139af1357f36c54cb90d8e8928" -dependencies = [ - "blst", - "cc", - "glob", - "hex", - "libc", - "once_cell", - "serde", -] - [[package]] name = "cc" version = "1.1.25" @@ -725,9 +507,7 @@ name = "citrea-primitives" version = "0.5.0-rc.1" dependencies = [ "alloy-eips", - "anyhow", "brotli", - "reth-primitives", "sov-rollup-interface", ] @@ -776,15 +556,6 @@ version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6245d59a3e82a7fc217c5828a6692dbc6dfb63a0c8c90495621f7b9d79704a0e" -[[package]] -name = "convert_case" -version = "0.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ec182b0ca2f35d8fc196cf3404988fd8b8c739a4d270ff118a398feb0cbec1ca" -dependencies = [ - "unicode-segmentation", -] - [[package]] name = "core-foundation" version = "0.9.4" @@ -821,46 +592,6 @@ dependencies = [ "libc", ] -[[package]] -name = "crc" -version = "3.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "69e6e4d7b33a94f0991c26729976b10ebde1d34c3ee82408fb536164fa10d636" -dependencies = [ - "crc-catalog", -] - -[[package]] -name = "crc-catalog" -version = "2.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "19d374276b40fb8bbdee95aef7c7fa6b5316ec764510eb64b8dd0e2ed0d7e7f5" - -[[package]] -name = "crossbeam-deque" -version = "0.8.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "613f8cc01fe9cf1a3eb3d7f488fd2fa8388403e97039e2f73692932e291a770d" -dependencies = [ - "crossbeam-epoch", - "crossbeam-utils", -] - -[[package]] -name = "crossbeam-epoch" -version = "0.9.18" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5b82ac4a3c2ca9c3460964f020e1402edd5753411d7737aa39c3714ad1b5420e" -dependencies = [ - "crossbeam-utils", -] - -[[package]] -name = "crossbeam-utils" -version = "0.8.20" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "22ec99545bb0ed0ea7bb9b8e1e9122ea386ff8a48c0922e43f36d45ab09e0e80" - [[package]] name = "crunchy" version = "0.2.2" @@ -872,9 +603,7 @@ name = "crypto-bigint" version = "0.5.5" source = "git+https://github.com/risc0/RustCrypto-crypto-bigint?tag=v0.5.5-risczero.0#3ab63a6f1048833f7047d5a50532e4a4cc789384" dependencies = [ - "generic-array", "getrandom", - "rand_core", "subtle", "zeroize", ] @@ -898,11 +627,11 @@ dependencies = [ "cpufeatures", "crypto-bigint", "curve25519-dalek-derive", - "digest 0.10.7", + "digest", "fiat-crypto", "hex", "platforms", - "rustc_version 0.4.1", + "rustc_version", "subtle", ] @@ -916,16 +645,6 @@ dependencies = [ "syn 2.0.87", ] -[[package]] -name = "der" -version = "0.7.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f55bf8e7b65898637379c1b74eb1551107c8294ed26d855ceb9fd1a09cfc9bc0" -dependencies = [ - "const-oid", - "zeroize", -] - [[package]] name = "derivative" version = "2.2.0" @@ -943,20 +662,32 @@ version = "0.99.18" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5f33878137e4dafd7fa914ad4e259e18a4e8e532b9617a2d0150262bf53abfce" dependencies = [ - "convert_case 0.4.0", + "convert_case", "proc-macro2", "quote", - "rustc_version 0.4.1", + "rustc_version", "syn 2.0.87", ] [[package]] -name = "digest" -version = "0.9.0" +name = "derive_more" +version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d3dd60d1080a57a05ab032377049e0591415d2b31afd7028356dbf3cc6dcb066" +checksum = "4a9b99b9cbbe49445b21764dc0625032a89b145a2642e67603e1c936f5458d05" dependencies = [ - "generic-array", + "derive_more-impl", +] + +[[package]] +name = "derive_more-impl" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cb7330aeadfbe296029522e6c40f315320aba36fc43a5b3632f3795348f3bd22" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.87", + "unicode-xid", ] [[package]] @@ -983,20 +714,6 @@ version = "1.0.17" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0d6ef0072f8a535281e4876be788938b528e9a1d43900b82c2569af7da799125" -[[package]] -name = "ecdsa" -version = "0.16.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ee27f32b5c5292967d2d4a9d7f1e0b0aed2c15daded5a60300e4abb9d8020bca" -dependencies = [ - "der", - "digest 0.10.7", - "elliptic-curve", - "rfc6979", - "signature", - "spki", -] - [[package]] name = "ed25519" version = "2.2.3" @@ -1032,29 +749,32 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4445909572dbd556c457c849c4ca58623d84b27c8fff1e74b0b4227d8b90d17b" [[package]] -name = "elliptic-curve" -version = "0.13.8" +name = "equivalent" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5" + +[[package]] +name = "fiat-crypto" +version = "0.2.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "28dea519a9695b9977216879a3ebfddf92f1c08c05d984f8996aecd6ecdc811d" + +[[package]] +name = "foreign-types" +version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b5e6043086bf7973472e0c7dff2142ea0b680d30e18d9cc40f267efbf222bd47" +checksum = "d737d9aa519fb7b749cbc3b962edcf310a8dd1f4b67c91c4f83975dbdd17d965" dependencies = [ - "base16ct", - "crypto-bigint", - "digest 0.10.7", - "ff", - "generic-array", - "group", - "pkcs8", - "rand_core", - "sec1", - "subtle", - "zeroize", + "foreign-types-macros", + "foreign-types-shared", ] [[package]] -name = "enumn" -version = "0.1.14" +name = "foreign-types-macros" +version = "0.2.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2f9ed6b3789237c8a0c1c505af1c7eb2c560df6186f01b098c3a1064ea532f38" +checksum = "1a5c6c585bc94aaf2c7b51dd4c2ba22680844aba4c687be581871a6f518c5742" dependencies = [ "proc-macro2", "quote", @@ -1062,120 +782,24 @@ dependencies = [ ] [[package]] -name = "equivalent" -version = "1.0.1" +name = "foreign-types-shared" +version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5" +checksum = "aa9a19cbb55df58761df49b23516a86d432839add4af60fc256da840f66ed35b" [[package]] -name = "errno" -version = "0.3.9" +name = "generic-array" +version = "0.14.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "534c5cf6194dfab3db3242765c03bbe257cf92f22b38f6bc0c58d59108a820ba" +checksum = "85649ca51fd72272d7821adaf274ad91c288277713d9c18820d8499a7ff69e9a" dependencies = [ - "libc", - "windows-sys 0.52.0", + "typenum", + "version_check", ] [[package]] -name = "fastrand" -version = "2.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e8c02a5121d4ea3eb16a80748c74f5549a5665e4c21333c6098f283870fbdea6" - -[[package]] -name = "fastrlp" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "139834ddba373bbdd213dffe02c8d110508dcf1726c2be27e8d1f7d7e1856418" -dependencies = [ - "arrayvec", - "auto_impl", - "bytes", -] - -[[package]] -name = "ff" -version = "0.13.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ded41244b729663b1e574f1b4fb731469f69f79c17667b5d776b16cda0479449" -dependencies = [ - "bitvec", - "rand_core", - "subtle", -] - -[[package]] -name = "fiat-crypto" -version = "0.2.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "28dea519a9695b9977216879a3ebfddf92f1c08c05d984f8996aecd6ecdc811d" - -[[package]] -name = "fixed-hash" -version = "0.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "835c052cb0c08c1acf6ffd71c022172e18723949c8282f2b9f27efbc51e64534" -dependencies = [ - "byteorder", - "rand", - "rustc-hex", - "static_assertions", -] - -[[package]] -name = "fnv" -version = "1.0.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" - -[[package]] -name = "foreign-types" -version = "0.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d737d9aa519fb7b749cbc3b962edcf310a8dd1f4b67c91c4f83975dbdd17d965" -dependencies = [ - "foreign-types-macros", - "foreign-types-shared", -] - -[[package]] -name = "foreign-types-macros" -version = "0.2.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1a5c6c585bc94aaf2c7b51dd4c2ba22680844aba4c687be581871a6f518c5742" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.87", -] - -[[package]] -name = "foreign-types-shared" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aa9a19cbb55df58761df49b23516a86d432839add4af60fc256da840f66ed35b" - -[[package]] -name = "funty" -version = "2.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e6d5a32815ae3f33302d95fdcb2ce17862f8c65363dcfd29360480ba1001fc9c" - -[[package]] -name = "generic-array" -version = "0.14.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "85649ca51fd72272d7821adaf274ad91c288277713d9c18820d8499a7ff69e9a" -dependencies = [ - "typenum", - "version_check", - "zeroize", -] - -[[package]] -name = "getrandom" -version = "0.2.15" +name = "getrandom" +version = "0.2.15" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c4567c8db10ae91089c99af84c68c38da3ec2f087c3f82960bcdbf3656b6f4d7" dependencies = [ @@ -1184,23 +808,6 @@ dependencies = [ "wasi", ] -[[package]] -name = "glob" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d2fabcfbdc87f4758337ca535fb41a6d701b65693ce38287d856d1674551ec9b" - -[[package]] -name = "group" -version = "0.13.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f0f9ef7462f7c099f518d754361858f86d8a07af53ba9af0fe635bbccb151a63" -dependencies = [ - "ff", - "rand_core", - "subtle", -] - [[package]] name = "hashbrown" version = "0.13.2" @@ -1210,35 +817,12 @@ dependencies = [ "ahash", ] -[[package]] -name = "hashbrown" -version = "0.14.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e5274423e17b7c9fc20b6e7e208532f9b19825d82dfd615708b70edd83df41f1" -dependencies = [ - "ahash", - "allocator-api2", - "serde", -] - [[package]] name = "hashbrown" version = "0.15.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1e087f84d4f86bf4b218b927129862374b72199ae7d8657835f1e89000eea4fb" -[[package]] -name = "heck" -version = "0.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea" - -[[package]] -name = "hermit-abi" -version = "0.3.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d231dfb89cfffdbc30e7fc41579ed6066ad03abda9e567ccafae602b97ec5024" - [[package]] name = "hex" version = "0.4.3" @@ -1254,15 +838,6 @@ version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6fe2267d4ed49bc07b63801559be28c718ea06c4738b7a03c94df7386d2cde46" -[[package]] -name = "hmac" -version = "0.12.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6c49c37c09c17a53d937dfbb742eb3a961d65a994e6bcdcf37e7399d0cc8ab5e" -dependencies = [ - "digest 0.10.7", -] - [[package]] name = "ics23" version = "0.11.3" @@ -1282,26 +857,6 @@ dependencies = [ "sha3", ] -[[package]] -name = "impl-codec" -version = "0.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ba6a270039626615617f3f36d15fc827041df3b78c439da2cadfa47455a77f2f" -dependencies = [ - "parity-scale-codec", -] - -[[package]] -name = "impl-trait-for-tuples" -version = "0.2.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "11d7a9f6330b71fea57921c9b61c47ee6e84f72d394754eff6163ae67e7395eb" -dependencies = [ - "proc-macro2", - "quote", - "syn 1.0.109", -] - [[package]] name = "indexmap" version = "2.6.0" @@ -1362,7 +917,7 @@ source = "git+https://github.com/penumbra-zone/jmt.git?rev=fd1c8ef#fd1c8ef999136 dependencies = [ "anyhow", "borsh", - "digest 0.10.7", + "digest", "hashbrown 0.13.2", "hex", "ics23", @@ -1376,18 +931,6 @@ dependencies = [ "tracing", ] -[[package]] -name = "k256" -version = "0.13.3" -source = "git+https://github.com/risc0/RustCrypto-elliptic-curves?tag=k256/v0.13.3-risczero.0#d4f457a04410397cbb652a67c168b6cd6e9757c4" -dependencies = [ - "cfg-if", - "ecdsa", - "elliptic-curve", - "once_cell", - "sha2", -] - [[package]] name = "keccak" version = "0.1.5" @@ -1397,37 +940,6 @@ dependencies = [ "cpufeatures", ] -[[package]] -name = "keccak-asm" -version = "0.1.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "505d1856a39b200489082f90d897c3f07c455563880bc5952e38eabf731c83b6" -dependencies = [ - "digest 0.10.7", - "sha3-asm", -] - -[[package]] -name = "kzg-rs" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cd9920cd4460ce3cbca19c62f3bb9a9611562478a4dc9d2c556f4a7d049c5b6b" -dependencies = [ - "bls12_381", - "glob", - "hex", - "once_cell", - "serde", - "serde_derive", - "serde_yaml", -] - -[[package]] -name = "lazy_static" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bbd2bcb4c963f2ddae06a2efc7e9f3591312473c50c6685e1f298068316e66fe" - [[package]] name = "libc" version = "0.2.159" @@ -1457,12 +969,6 @@ dependencies = [ "sov-state", ] -[[package]] -name = "linux-raw-sys" -version = "0.4.14" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "78b3ae25bc7c8c38cec158d1f2757ee79e9b3740fbc7ccf0e59e4b08d793fa89" - [[package]] name = "log" version = "0.4.22" @@ -1505,27 +1011,6 @@ version = "1.12.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c9be0862c1b3f26a88803c4a49de6889c10e608b3ee9344e6ef5b45fb37ad3d1" -[[package]] -name = "modular-bitfield" -version = "0.11.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a53d79ba8304ac1c4f9eb3b9d281f21f7be9d4626f72ce7df4ad8fbde4f38a74" -dependencies = [ - "modular-bitfield-impl", - "static_assertions", -] - -[[package]] -name = "modular-bitfield-impl" -version = "0.11.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5a7d5f7076603ebc68de2dc6a650ec331a062a13abaa346975be747bbfa4b789" -dependencies = [ - "proc-macro2", - "quote", - "syn 1.0.109", -] - [[package]] name = "num-bigint" version = "0.4.6" @@ -1566,49 +1051,6 @@ dependencies = [ "libm", ] -[[package]] -name = "num_cpus" -version = "1.16.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4161fcb6d602d4d2081af7c3a45852d875a03dd337a6bfdd6e06407b61342a43" -dependencies = [ - "hermit-abi", - "libc", -] - -[[package]] -name = "num_enum" -version = "0.7.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4e613fc340b2220f734a8595782c551f1250e969d87d3be1ae0579e8d4065179" -dependencies = [ - "num_enum_derive", -] - -[[package]] -name = "num_enum_derive" -version = "0.7.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "af1844ef2428cc3e1cb900be36181049ef3d3193c63e43026cfe202983b27a56" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.87", -] - -[[package]] -name = "nybbles" -version = "0.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "95f06be0417d97f81fe4e5c86d7d01b392655a9cac9c19a848aa033e18937b23" -dependencies = [ - "alloy-rlp", - "const-hex", - "proptest", - "serde", - "smallvec", -] - [[package]] name = "objc" version = "0.2.7" @@ -1624,74 +1066,18 @@ version = "1.20.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1261fe7e33c73b354eab43b1273a57c8f967d0391e80353e51f764ac02cf6775" -[[package]] -name = "pairing" -version = "0.23.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "81fec4625e73cf41ef4bb6846cafa6d44736525f442ba45e407c4a000a13996f" -dependencies = [ - "group", -] - -[[package]] -name = "parity-scale-codec" -version = "3.6.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "306800abfa29c7f16596b5970a588435e3d5b3149683d00c12b699cc19f895ee" -dependencies = [ - "arrayvec", - "bitvec", - "byte-slice-cast", - "impl-trait-for-tuples", - "parity-scale-codec-derive", - "serde", -] - -[[package]] -name = "parity-scale-codec-derive" -version = "3.6.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d830939c76d294956402033aee57a6da7b438f2294eb94864c37b0569053a42c" -dependencies = [ - "proc-macro-crate", - "proc-macro2", - "quote", - "syn 1.0.109", -] - [[package]] name = "paste" version = "1.0.15" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "57c0d7b74b563b49d38dae00a0c37d4d6de9b432382b2892f0574ddcae73fd0a" -[[package]] -name = "pest" -version = "2.7.13" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fdbef9d1d47087a895abd220ed25eb4ad973a5e26f6a4367b038c25e28dfc2d9" -dependencies = [ - "memchr", - "thiserror", - "ucd-trie", -] - [[package]] name = "pin-project-lite" version = "0.2.14" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bda66fc9667c18cb2758a2ac84d1167245054bcf85d5d1aaa6923f45801bdd02" -[[package]] -name = "pkcs8" -version = "0.10.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f950b2377845cebe5cf8b5165cb3cc1a5e0fa5cfa3e1f7f55707d8fd82e0a7b7" -dependencies = [ - "der", - "spki", -] - [[package]] name = "platforms" version = "3.4.1" @@ -1707,17 +1093,6 @@ dependencies = [ "zerocopy", ] -[[package]] -name = "primitive-types" -version = "0.12.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0b34d9fd68ae0b74a41b21c03c2f62847aa0ffea044eee893b4c140b37e244e2" -dependencies = [ - "fixed-hash", - "impl-codec", - "uint", -] - [[package]] name = "proc-macro-crate" version = "3.2.0" @@ -1765,17 +1140,11 @@ version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b4c2511913b88df1637da85cc8d96ec8e43a3f8bb8ccb71ee1ac240d6f3df58d" dependencies = [ - "bit-set", - "bit-vec", "bitflags 2.6.0", - "lazy_static", "num-traits", "rand", "rand_chacha", "rand_xorshift", - "regex-syntax", - "rusty-fork", - "tempfile", "unarray", ] @@ -1802,12 +1171,6 @@ dependencies = [ "syn 2.0.87", ] -[[package]] -name = "quick-error" -version = "1.2.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a1d01941d82fa2ab50be1e79e6714289dd7cde78eba4c074bc5a4374f650dfe0" - [[package]] name = "quote" version = "1.0.37" @@ -1818,222 +1181,38 @@ dependencies = [ ] [[package]] -name = "radium" -version = "0.7.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dc33ff2d4973d518d823d61aa239014831e521c75da58e3df4840d3f47749d09" - -[[package]] -name = "rand" -version = "0.8.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404" -dependencies = [ - "libc", - "rand_chacha", - "rand_core", -] - -[[package]] -name = "rand_chacha" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88" -dependencies = [ - "ppv-lite86", - "rand_core", -] - -[[package]] -name = "rand_core" -version = "0.6.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c" -dependencies = [ - "getrandom", -] - -[[package]] -name = "rand_xorshift" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d25bf25ec5ae4a3f1b92f929810509a2f53d7dca2f50b794ff57e3face536c8f" -dependencies = [ - "rand_core", -] - -[[package]] -name = "rayon" -version = "1.10.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b418a60154510ca1a002a752ca9714984e21e4241e804d32555251faf8b78ffa" -dependencies = [ - "either", - "rayon-core", -] - -[[package]] -name = "rayon-core" -version = "1.12.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1465873a3dfdaa8ae7cb14b4383657caab0b3e8a0aa9ae8e04b044854c8dfce2" -dependencies = [ - "crossbeam-deque", - "crossbeam-utils", -] - -[[package]] -name = "regex-syntax" -version = "0.8.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2b15c43186be67a4fd63bee50d0303afffcef381492ebe2c5d87f324e1b8815c" - -[[package]] -name = "reth-codecs" -version = "1.0.4" -source = "git+https://github.com/paradigmxyz/reth?rev=a206eb3690e5a51d3c797fed2a6ed722e36863eb#a206eb3690e5a51d3c797fed2a6ed722e36863eb" -dependencies = [ - "alloy-consensus", - "alloy-eips", - "alloy-genesis", - "alloy-primitives", - "alloy-trie", - "bytes", - "modular-bitfield", - "reth-codecs-derive", - "serde", -] - -[[package]] -name = "reth-codecs-derive" -version = "1.0.4" -source = "git+https://github.com/paradigmxyz/reth?rev=a206eb3690e5a51d3c797fed2a6ed722e36863eb#a206eb3690e5a51d3c797fed2a6ed722e36863eb" -dependencies = [ - "convert_case 0.6.0", - "proc-macro2", - "quote", - "syn 2.0.87", -] - -[[package]] -name = "reth-ethereum-forks" -version = "1.0.4" -source = "git+https://github.com/paradigmxyz/reth?rev=a206eb3690e5a51d3c797fed2a6ed722e36863eb#a206eb3690e5a51d3c797fed2a6ed722e36863eb" -dependencies = [ - "alloy-chains", - "alloy-primitives", - "alloy-rlp", - "auto_impl", - "crc", - "dyn-clone", - "once_cell", - "rustc-hash", - "serde", - "thiserror-no-std", -] - -[[package]] -name = "reth-primitives" -version = "1.0.4" -source = "git+https://github.com/paradigmxyz/reth?rev=a206eb3690e5a51d3c797fed2a6ed722e36863eb#a206eb3690e5a51d3c797fed2a6ed722e36863eb" -dependencies = [ - "alloy-eips", - "alloy-genesis", - "alloy-primitives", - "alloy-rlp", - "bytes", - "derive_more", - "k256", - "once_cell", - "rayon", - "reth-ethereum-forks", - "reth-primitives-traits", - "reth-static-file-types", - "reth-trie-common", - "revm-primitives", - "serde", -] - -[[package]] -name = "reth-primitives-traits" -version = "1.0.4" -source = "git+https://github.com/paradigmxyz/reth?rev=a206eb3690e5a51d3c797fed2a6ed722e36863eb#a206eb3690e5a51d3c797fed2a6ed722e36863eb" -dependencies = [ - "alloy-consensus", - "alloy-eips", - "alloy-genesis", - "alloy-primitives", - "alloy-rlp", - "byteorder", - "bytes", - "derive_more", - "modular-bitfield", - "reth-codecs", - "revm-primitives", - "roaring", - "serde", -] - -[[package]] -name = "reth-static-file-types" -version = "1.0.4" -source = "git+https://github.com/paradigmxyz/reth?rev=a206eb3690e5a51d3c797fed2a6ed722e36863eb#a206eb3690e5a51d3c797fed2a6ed722e36863eb" +name = "rand" +version = "0.8.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404" dependencies = [ - "alloy-primitives", - "derive_more", - "serde", - "strum", + "rand_chacha", + "rand_core", ] [[package]] -name = "reth-trie-common" -version = "1.0.4" -source = "git+https://github.com/paradigmxyz/reth?rev=a206eb3690e5a51d3c797fed2a6ed722e36863eb#a206eb3690e5a51d3c797fed2a6ed722e36863eb" +name = "rand_chacha" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88" dependencies = [ - "alloy-consensus", - "alloy-genesis", - "alloy-primitives", - "alloy-rlp", - "alloy-trie", - "bytes", - "derive_more", - "itertools 0.13.0", - "nybbles", - "reth-codecs", - "reth-primitives-traits", - "revm-primitives", - "serde", + "ppv-lite86", + "rand_core", ] [[package]] -name = "revm-primitives" -version = "7.1.0" +name = "rand_core" +version = "0.6.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2fc4311037ee093ec50ec734e1424fcb3e12d535c6cef683b75d1c064639630c" -dependencies = [ - "alloy-eips", - "alloy-primitives", - "auto_impl", - "bitflags 2.6.0", - "bitvec", - "c-kzg", - "cfg-if", - "dyn-clone", - "enumn", - "hashbrown 0.14.5", - "hex", - "kzg-rs", - "serde", -] +checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c" [[package]] -name = "rfc6979" -version = "0.4.0" +name = "rand_xorshift" +version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f8dd2a808d456c4a54e300a23e9f5a67e122c3024119acbfd73e3bf664491cb2" +checksum = "d25bf25ec5ae4a3f1b92f929810509a2f53d7dca2f50b794ff57e3face536c8f" dependencies = [ - "hmac", - "subtle", + "rand_core", ] [[package]] @@ -2042,7 +1221,7 @@ version = "0.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bd124222d17ad93a644ed9d011a40f4fb64aa54275c08cc216524a9ea82fb09f" dependencies = [ - "digest 0.10.7", + "digest", ] [[package]] @@ -2112,7 +1291,7 @@ dependencies = [ "ark-bn254", "ark-ec", "ark-groth16", - "ark-serialize 0.4.2", + "ark-serialize", "bytemuck", "hex", "num-bigint", @@ -2133,7 +1312,7 @@ dependencies = [ "borsh", "bytemuck", "cfg-if", - "digest 0.10.7", + "digest", "hex", "hex-literal", "metal", @@ -2165,7 +1344,7 @@ dependencies = [ "risc0-zkp", "risc0-zkvm-platform", "rrs-lib", - "semver 1.0.23", + "semver", "serde", "sha2", "stability", @@ -2184,26 +1363,6 @@ dependencies = [ "stability", ] -[[package]] -name = "rlp" -version = "0.5.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bb919243f34364b6bd2fc10ef797edbfa75f33c252e7998527479c6d6b47e1ec" -dependencies = [ - "bytes", - "rustc-hex", -] - -[[package]] -name = "roaring" -version = "0.10.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8f4b84ba6e838ceb47b41de5194a60244fac43d9fe03b71dbe8c5a201081d6d1" -dependencies = [ - "bytemuck", - "byteorder", -] - [[package]] name = "rrs-lib" version = "0.1.0" @@ -2230,17 +1389,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2c3cc4c2511671f327125da14133d0c5c5d137f006a1017a16f557bc85b16286" dependencies = [ "alloy-rlp", - "ark-ff 0.3.0", - "ark-ff 0.4.2", - "bytes", - "fastrlp", - "num-bigint", - "num-traits", - "parity-scale-codec", - "primitive-types", "proptest", "rand", - "rlp", "ruint-macro", "serde", "valuable", @@ -2253,65 +1403,13 @@ version = "1.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "48fd7bd8a6377e15ad9d42a8ec25371b94ddc67abe7c8b9127bec79bebaaae18" -[[package]] -name = "rustc-hash" -version = "2.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "583034fd73374156e66797ed8e5b0d5690409c9226b22d87cb7f19821c05d152" - -[[package]] -name = "rustc-hex" -version = "2.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3e75f6a532d0fd9f7f13144f392b6ad56a32696bfcd9c78f797f16bbb6f072d6" - -[[package]] -name = "rustc_version" -version = "0.3.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f0dfe2087c51c460008730de8b57e6a320782fbfb312e1f4d520e6c6fae155ee" -dependencies = [ - "semver 0.11.0", -] - [[package]] name = "rustc_version" version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "cfcb3a22ef46e85b45de6ee7e79d063319ebb6594faafcf1c225ea92ab6e9b92" dependencies = [ - "semver 1.0.23", -] - -[[package]] -name = "rustix" -version = "0.38.37" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8acb788b847c24f28525660c4d7758620a7210875711f79e7f663cc152726811" -dependencies = [ - "bitflags 2.6.0", - "errno", - "libc", - "linux-raw-sys", - "windows-sys 0.52.0", -] - -[[package]] -name = "rustversion" -version = "1.0.17" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "955d28af4278de8121b7ebeb796b6a45735dc01436d898801014aced2773a3d6" - -[[package]] -name = "rusty-fork" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cb3dcc6e454c328bb824492db107ab7c0ae8fcffe4ad210136ef014458c1bc4f" -dependencies = [ - "fnv", - "quick-error", - "tempfile", - "wait-timeout", + "semver", ] [[package]] @@ -2344,44 +1442,12 @@ dependencies = [ "syn 2.0.87", ] -[[package]] -name = "sec1" -version = "0.7.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d3e97a565f76233a6003f9f5c54be1d9c5bdfa3eccfb189469f11ec4901c47dc" -dependencies = [ - "base16ct", - "der", - "generic-array", - "pkcs8", - "subtle", - "zeroize", -] - -[[package]] -name = "semver" -version = "0.11.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f301af10236f6df4160f7c3f04eec6dbc70ace82d23326abad5edee88801c6b6" -dependencies = [ - "semver-parser", -] - [[package]] name = "semver" version = "1.0.23" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "61697e0a1c7e512e84a621326239844a24d8207b4669b41bc18b32ea5cbf988b" -[[package]] -name = "semver-parser" -version = "0.10.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "00b0bef5b7f9e0df16536d3961cfb6e84331c065b4066afb39768d0e319411f7" -dependencies = [ - "pest", -] - [[package]] name = "serde" version = "1.0.210" @@ -2425,19 +1491,6 @@ dependencies = [ "serde", ] -[[package]] -name = "serde_yaml" -version = "0.9.34+deprecated" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6a8b1a1a2ebf674015cc02edccce75287f1a0130d394307b36743c2f5d504b47" -dependencies = [ - "indexmap", - "itoa", - "ryu", - "serde", - "unsafe-libyaml", -] - [[package]] name = "sha2" version = "0.10.8" @@ -2445,7 +1498,7 @@ source = "git+https://github.com/risc0/RustCrypto-hashes?tag=sha2-v0.10.8-riscze dependencies = [ "cfg-if", "cpufeatures", - "digest 0.10.7", + "digest", ] [[package]] @@ -2454,20 +1507,10 @@ version = "0.10.8" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "75872d278a8f37ef87fa0ddbda7802605cb18344497949862c0d4dcb291eba60" dependencies = [ - "digest 0.10.7", + "digest", "keccak", ] -[[package]] -name = "sha3-asm" -version = "0.1.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c28efc5e327c837aa837c59eae585fc250715ef939ac32881bcc11677cd02d46" -dependencies = [ - "cc", - "cfg-if", -] - [[package]] name = "shlex" version = "1.3.0" @@ -2479,19 +1522,6 @@ name = "signature" version = "2.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "77549399552de45a898a580c1b41d445bf730df867cc44e6c0233bbc4b8329de" -dependencies = [ - "digest 0.10.7", - "rand_core", -] - -[[package]] -name = "smallvec" -version = "1.13.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3c5e1a9a646d36c3599cd173a41282daf47c44583ad367b8e6837255952e5c67" -dependencies = [ - "serde", -] [[package]] name = "sov-mock-da" @@ -2515,8 +1545,8 @@ dependencies = [ "anyhow", "bech32", "borsh", - "derive_more", - "digest 0.10.7", + "derive_more 0.99.18", + "digest", "ed25519-dalek", "hex", "jmt", @@ -2535,8 +1565,8 @@ dependencies = [ "anyhow", "bech32", "borsh", - "derive_more", - "digest 0.10.7", + "derive_more 0.99.18", + "digest", "hex", "jmt", "schemars", @@ -2571,7 +1601,7 @@ dependencies = [ "async-trait", "borsh", "bytes", - "digest 0.10.7", + "digest", "hex", "serde", "thiserror", @@ -2581,9 +1611,11 @@ dependencies = [ name = "sov-state" version = "0.5.0-rc.1" dependencies = [ + "alloy-rlp", "anyhow", "bcs", "borsh", + "bytes", "jmt", "serde", "sha2", @@ -2591,16 +1623,6 @@ dependencies = [ "sov-rollup-interface", ] -[[package]] -name = "spki" -version = "0.7.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d91ed6c858b01f942cd56b37a94b3e0a1798290327d1236e4d9cf4eaca44d29d" -dependencies = [ - "base64ct", - "der", -] - [[package]] name = "stability" version = "0.2.1" @@ -2611,34 +1633,6 @@ dependencies = [ "syn 2.0.87", ] -[[package]] -name = "static_assertions" -version = "1.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f" - -[[package]] -name = "strum" -version = "0.26.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8fec0f0aef304996cf250b31b5a10dee7980c85da9d759361292b8bca5a18f06" -dependencies = [ - "strum_macros", -] - -[[package]] -name = "strum_macros" -version = "0.26.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4c6bee85a5a24955dc440386795aa378cd9cf82acd5f764469152d2270e581be" -dependencies = [ - "heck", - "proc-macro2", - "quote", - "rustversion", - "syn 2.0.87", -] - [[package]] name = "subtle" version = "2.6.1" @@ -2679,25 +1673,6 @@ dependencies = [ "syn 2.0.87", ] -[[package]] -name = "tap" -version = "1.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "55937e1799185b12863d447f42597ed69d9928686b8d88a1df17376a097d8369" - -[[package]] -name = "tempfile" -version = "3.13.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f0f2c9fc62d0beef6951ccffd757e241266a2c833136efbe35af6cd2567dca5b" -dependencies = [ - "cfg-if", - "fastrand", - "once_cell", - "rustix", - "windows-sys 0.59.0", -] - [[package]] name = "thiserror" version = "1.0.64" @@ -2718,35 +1693,6 @@ dependencies = [ "syn 2.0.87", ] -[[package]] -name = "thiserror-impl-no-std" -version = "2.0.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "58e6318948b519ba6dc2b442a6d0b904ebfb8d411a3ad3e07843615a72249758" -dependencies = [ - "proc-macro2", - "quote", - "syn 1.0.109", -] - -[[package]] -name = "thiserror-no-std" -version = "2.0.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a3ad459d94dd517257cc96add8a43190ee620011bb6e6cdc82dafd97dfafafea" -dependencies = [ - "thiserror-impl-no-std", -] - -[[package]] -name = "threadpool" -version = "1.8.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d050e60b33d41c19108b32cea32164033a9013fe3b46cbd4457559bfbf77afaa" -dependencies = [ - "num_cpus", -] - [[package]] name = "tiny-keccak" version = "2.0.2" @@ -2821,24 +1767,6 @@ version = "1.17.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "42ff0bf0c66b8238c6f3b578df37d0b7848e55df8577b3f74f92a69acceeb825" -[[package]] -name = "ucd-trie" -version = "0.1.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2896d95c02a80c6d6a5d6e953d479f5ddf2dfdb6a244441010e373ac0fb88971" - -[[package]] -name = "uint" -version = "0.9.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "76f64bba2c53b04fcab63c01a7d7427eadc821e3bc48c34dc9ba29c501164b52" -dependencies = [ - "byteorder", - "crunchy", - "hex", - "static_assertions", -] - [[package]] name = "unarray" version = "0.1.4" @@ -2852,16 +1780,10 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e91b56cd4cadaeb79bbf1a5645f6b4f8dc5bde8834ad5894a8db35fda9efa1fe" [[package]] -name = "unicode-segmentation" -version = "1.12.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f6ccf251212114b54433ec949fd6a7841275f9ada20dddd2f29e9ceea4501493" - -[[package]] -name = "unsafe-libyaml" -version = "0.2.11" +name = "unicode-xid" +version = "0.2.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "673aac59facbab8a9007c7f6108d11f63b603f7cabff99fabf650fea5c32b861" +checksum = "ebc1c04c71510c7f702b52b7c350734c9ff1295c464a03335b00bb84fc54f853" [[package]] name = "valuable" @@ -2875,103 +1797,12 @@ version = "0.9.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0b928f33d975fc6ad9f86c8f283853ad26bdd5b10b7f1542aa2fa15e2289105a" -[[package]] -name = "wait-timeout" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9f200f5b12eb75f8c1ed65abd4b2db8a6e1b138a20de009dacee265a2498f3f6" -dependencies = [ - "libc", -] - [[package]] name = "wasi" version = "0.11.0+wasi-snapshot-preview1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" -[[package]] -name = "windows-sys" -version = "0.52.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d" -dependencies = [ - "windows-targets", -] - -[[package]] -name = "windows-sys" -version = "0.59.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e38bc4d79ed67fd075bcc251a1c39b32a1776bbe92e5bef1f0bf1f8c531853b" -dependencies = [ - "windows-targets", -] - -[[package]] -name = "windows-targets" -version = "0.52.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9b724f72796e036ab90c1021d4780d4d3d648aca59e491e6b98e725b84e99973" -dependencies = [ - "windows_aarch64_gnullvm", - "windows_aarch64_msvc", - "windows_i686_gnu", - "windows_i686_gnullvm", - "windows_i686_msvc", - "windows_x86_64_gnu", - "windows_x86_64_gnullvm", - "windows_x86_64_msvc", -] - -[[package]] -name = "windows_aarch64_gnullvm" -version = "0.52.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "32a4622180e7a0ec044bb555404c800bc9fd9ec262ec147edd5989ccd0c02cd3" - -[[package]] -name = "windows_aarch64_msvc" -version = "0.52.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "09ec2a7bb152e2252b53fa7803150007879548bc709c039df7627cabbd05d469" - -[[package]] -name = "windows_i686_gnu" -version = "0.52.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8e9b5ad5ab802e97eb8e295ac6720e509ee4c243f69d781394014ebfe8bbfa0b" - -[[package]] -name = "windows_i686_gnullvm" -version = "0.52.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0eee52d38c090b3caa76c563b86c3a4bd71ef1a819287c19d586d7334ae8ed66" - -[[package]] -name = "windows_i686_msvc" -version = "0.52.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "240948bc05c5e7c6dabba28bf89d89ffce3e303022809e73deaefe4f6ec56c66" - -[[package]] -name = "windows_x86_64_gnu" -version = "0.52.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "147a5c80aabfbf0c7d901cb5895d1de30ef2907eb21fbbab29ca94c5b08b1a78" - -[[package]] -name = "windows_x86_64_gnullvm" -version = "0.52.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "24d5b23dc417412679681396f2b49f3de8c1473deb516bd34410872eff51ed0d" - -[[package]] -name = "windows_x86_64_msvc" -version = "0.52.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec" - [[package]] name = "winnow" version = "0.6.20" @@ -2981,15 +1812,6 @@ dependencies = [ "memchr", ] -[[package]] -name = "wyz" -version = "0.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "05f360fc0b24296329c78fda852a1e9ae82de9cf7b27dae4b7f62f118f77b9ed" -dependencies = [ - "tap", -] - [[package]] name = "zerocopy" version = "0.7.35" @@ -3030,3 +1852,8 @@ dependencies = [ "quote", "syn 2.0.87", ] + +[[patch.unused]] +name = "k256" +version = "0.13.3" +source = "git+https://github.com/risc0/RustCrypto-elliptic-curves?tag=k256/v0.13.3-risczero.0#d4f457a04410397cbb652a67c168b6cd6e9757c4"