From 63d8408a122f0e764bac392857aa36f849ae57cb Mon Sep 17 00:00:00 2001 From: Wolfgang Welz Date: Thu, 25 Sep 2025 17:48:54 +0200 Subject: [PATCH 01/22] update reth to v1.8.1 --- Cargo.lock | 273 +++++++++++++++-------------- Cargo.toml | 30 ++-- guests/stateless-client/Cargo.lock | 201 +++++++++++---------- guests/stateless-client/Cargo.toml | 2 +- 4 files changed, 266 insertions(+), 240 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 5ecfb576e..5299b1b3b 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -244,9 +244,9 @@ checksum = "683d7910e743518b0e34f1186f92494becacb047c7b6bf616c96772180fef923" [[package]] name = "alloy" -version = "1.0.30" +version = "1.0.36" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2e2a5d689ccd182f1d138a61f081841b905034e0089f5278f6c200f2bcdab00a" +checksum = "67031be093311a96afdd146fb5de209ceaf0f347f2284ed71902368cd15a77ff" dependencies = [ "alloy-consensus", "alloy-contract", @@ -283,9 +283,9 @@ dependencies = [ [[package]] name = "alloy-consensus" -version = "1.0.30" +version = "1.0.36" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d213580c17d239ae83c0d897ac3315db7cda83d2d4936a9823cc3517552f2e24" +checksum = "0cd9d29a6a0bb8d4832ff7685dcbb430011b832f2ccec1af9571a0e75c1f7e9c" dependencies = [ "alloy-eips", "alloy-primitives", @@ -302,15 +302,16 @@ dependencies = [ "rand 0.8.5", "secp256k1 0.30.0", "serde", + "serde_json", "serde_with", "thiserror", ] [[package]] name = "alloy-consensus-any" -version = "1.0.30" +version = "1.0.36" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "81443e3b8dccfeac7cd511aced15928c97ff253f4177acbb97de97178e543f6c" +checksum = "ce038cb325f9a85a10fb026fb1b70cb8c62a004d85d22f8516e5d173e3eec612" dependencies = [ "alloy-consensus", "alloy-eips", @@ -322,9 +323,9 @@ dependencies = [ [[package]] name = "alloy-contract" -version = "1.0.30" +version = "1.0.36" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "de217ab604f1bcfa2e3b0aff86d50812d5931d47522f9f0a949cc263ec2d108e" +checksum = "a376305e5c3b3285e84a553fa3f9aee4f5f0e1b0aad4944191b843cd8228788d" dependencies = [ "alloy-consensus", "alloy-dyn-abi", @@ -412,9 +413,9 @@ dependencies = [ [[package]] name = "alloy-eips" -version = "1.0.30" +version = "1.0.36" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2a15b4b0f6bab47aae017d52bb5a739bda381553c09fb9918b7172721ef5f5de" +checksum = "4bfec530782b30151e2564edf3c900f1fa6852128b7a993e458e8e3815d8b915" dependencies = [ "alloy-eip2124", "alloy-eip2930", @@ -434,9 +435,9 @@ dependencies = [ [[package]] name = "alloy-evm" -version = "0.20.1" +version = "0.21.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0dbe7c66c859b658d879b22e8aaa19546dab726b0639f4649a424ada3d99349e" +checksum = "48e536feefca2ba96c75798ac75a31046e8adfcefecdb6653803361045cc65b9" dependencies = [ "alloy-consensus", "alloy-eips", @@ -454,9 +455,9 @@ dependencies = [ [[package]] name = "alloy-genesis" -version = "1.0.30" +version = "1.0.36" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "33ba1cbc25a07e0142e8875fcbe80e1fdb02be8160ae186b90f4b9a69a72ed2b" +checksum = "956e6a23eb880dd93123e8ebea028584325b9af22f991eec2c499c54c277c073" dependencies = [ "alloy-eips", "alloy-primitives", @@ -468,9 +469,9 @@ dependencies = [ [[package]] name = "alloy-hardforks" -version = "0.3.0" +version = "0.3.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a20b180071d4f22db71702329101685ccff2e2a8f400d30a68ba907700163bf5" +checksum = "889eb3949b58368a09d4f16931c660275ef5fb08e5fbd4a96573b19c7085c41f" dependencies = [ "alloy-chains", "alloy-eip2124", @@ -493,9 +494,9 @@ dependencies = [ [[package]] name = "alloy-json-rpc" -version = "1.0.30" +version = "1.0.36" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f8882ec8e4542cfd02aadc6dccbe90caa73038f60016d936734eb6ced53d2167" +checksum = "be436893c0d1f7a57d1d8f1b6b9af9db04174468410b7e6e1d1893e78110a3bc" dependencies = [ "alloy-primitives", "alloy-sol-types", @@ -508,9 +509,9 @@ dependencies = [ [[package]] name = "alloy-network" -version = "1.0.30" +version = "1.0.36" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "51d6d87d588bda509881a7a66ae77c86514bd1193ac30fbff0e0f24db95eb5a5" +checksum = "f18959e1a1b40e05578e7a705f65ff4e6b354e38335da4b33ccbee876bde7c26" dependencies = [ "alloy-consensus", "alloy-consensus-any", @@ -534,9 +535,9 @@ dependencies = [ [[package]] name = "alloy-network-primitives" -version = "1.0.30" +version = "1.0.36" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5b14fa9ba5774e0b30ae6a04176d998211d516c8af69c9c530af7c6c42a8c508" +checksum = "1da0037ac546c0cae2eb776bed53687b7bbf776f4e7aa2fea0b8b89e734c319b" dependencies = [ "alloy-consensus", "alloy-eips", @@ -574,9 +575,9 @@ dependencies = [ [[package]] name = "alloy-provider" -version = "1.0.30" +version = "1.0.36" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "475a5141313c3665b75d818be97d5fa3eb5e0abb7e832e9767edd94746db28e3" +checksum = "4ca97e31bc05bd6d4780254fbb60b16d33b3548d1c657a879fffb0e7ebb642e9" dependencies = [ "alloy-chains", "alloy-consensus", @@ -620,9 +621,9 @@ dependencies = [ [[package]] name = "alloy-pubsub" -version = "1.0.30" +version = "1.0.36" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f97c18795ce1ce8151c5539ce1e4200940389674173f677c7455f79bfb00e5df" +checksum = "f7bb37096e97de25133cf904e08df2aa72168af64f429e3c43a112649e131930" dependencies = [ "alloy-json-rpc", "alloy-primitives", @@ -664,9 +665,9 @@ dependencies = [ [[package]] name = "alloy-rpc-client" -version = "1.0.30" +version = "1.0.36" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "25289674cd8c58fcca2568b5350423cb0dd7bca8c596c5e2869bfe4c5c57ed14" +checksum = "dbeeeffa0bb7e95cb79f2b4b46b591763afeccfa9a797183c1b192377ffb6fac" dependencies = [ "alloy-json-rpc", "alloy-primitives", @@ -690,9 +691,9 @@ dependencies = [ [[package]] name = "alloy-rpc-types" -version = "1.0.30" +version = "1.0.36" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "39676beaa50db545cf15447fc94ec5513b64e85a48357a0625b9a04aef08a910" +checksum = "a21fe4c370b9e733d884ffd953eb6d654d053b1b22e26ffd591ef597a9e2bc49" dependencies = [ "alloy-primitives", "alloy-rpc-types-anvil", @@ -707,9 +708,9 @@ dependencies = [ [[package]] name = "alloy-rpc-types-anvil" -version = "1.0.30" +version = "1.0.36" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a9c8cad42fa936000be72ab80fcd97386a6a226c35c2989212756da9e76c1521" +checksum = "eb44412ed075c19d37698f33213b83f0bf8ccc2d4e928527f2622555a31723de" dependencies = [ "alloy-primitives", "alloy-rpc-types-eth", @@ -719,9 +720,9 @@ dependencies = [ [[package]] name = "alloy-rpc-types-any" -version = "1.0.30" +version = "1.0.36" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "01bac57c987c93773787619e20f89167db74d460a2d1d40f591d94fb7c22c379" +checksum = "65423baf6af0ff356e254d7824b3824aa34d8ca9bd857a4e298f74795cc4b69d" dependencies = [ "alloy-consensus-any", "alloy-rpc-types-eth", @@ -730,9 +731,9 @@ dependencies = [ [[package]] name = "alloy-rpc-types-debug" -version = "1.0.30" +version = "1.0.36" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c2fe118e6c152d54cb4549b9835fb87d38b12754bb121375183ee3ec84bd0849" +checksum = "27eaa6c63f551e35f835638397ce5c66d2ba14d0b17ce3bb286842e815b0fc94" dependencies = [ "alloy-primitives", "derive_more", @@ -742,9 +743,9 @@ dependencies = [ [[package]] name = "alloy-rpc-types-engine" -version = "1.0.30" +version = "1.0.36" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "72a41624eb84bc743e414198bf10eb48b611a5554d6a9fd6205f7384d57dfd7f" +checksum = "d5dc8a9ba66f1a654d935584200fcd0b7fd34dac0ca19df024911899066b0583" dependencies = [ "alloy-consensus", "alloy-eips", @@ -759,9 +760,9 @@ dependencies = [ [[package]] name = "alloy-rpc-types-eth" -version = "1.0.30" +version = "1.0.36" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1cd1e1b4dcdf13eaa96343e5c0dafc2d2e8ce5d20b90347169d46a1df0dec210" +checksum = "848f8ea4063bed834443081d77f840f31075f68d0d49723027f5a209615150bf" dependencies = [ "alloy-consensus", "alloy-consensus-any", @@ -780,9 +781,9 @@ dependencies = [ [[package]] name = "alloy-rpc-types-trace" -version = "1.0.30" +version = "1.0.36" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1bc33d9d0e0b3cfe9c2e82a1a427c9ed516fcfebe764f0adf7ceb8107f702dd1" +checksum = "6c632e12fb9bbde97eb2a0f5145f0fe6e0ed1b3927de29d8463ab468905d9843" dependencies = [ "alloy-primitives", "alloy-rpc-types-eth", @@ -794,9 +795,9 @@ dependencies = [ [[package]] name = "alloy-rpc-types-txpool" -version = "1.0.30" +version = "1.0.36" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d4fa9e9b3e613425d2a2ee1a322bdad5f1cedf835406fd4b59538822500b44bc" +checksum = "91cbe0913689d8e3939a5da4bfb7a898309d87419cf98f8e670332130340b3e7" dependencies = [ "alloy-primitives", "alloy-rpc-types-eth", @@ -806,9 +807,9 @@ dependencies = [ [[package]] name = "alloy-serde" -version = "1.0.30" +version = "1.0.36" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f1b3b1078b8775077525bc9fe9f6577e815ceaecd6c412a4f3b4d8aa2836e8f6" +checksum = "19c3835bdc128f2f3418f5d6c76aec63a245d72973e0eaacc9720aa0787225c5" dependencies = [ "alloy-primitives", "serde", @@ -817,9 +818,9 @@ dependencies = [ [[package]] name = "alloy-signer" -version = "1.0.30" +version = "1.0.36" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "10ab1b8d4649bf7d0db8ab04e31658a6cc20364d920795484d886c35bed3bab4" +checksum = "42084a7b455ef0b94ed201b7494392a759c3e20faac2d00ded5d5762fcf71dee" dependencies = [ "alloy-primitives", "async-trait", @@ -832,9 +833,9 @@ dependencies = [ [[package]] name = "alloy-signer-local" -version = "1.0.30" +version = "1.0.36" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7bdeec36c8d9823102b571b3eab8b323e053dc19c12da14a9687bd474129bf2a" +checksum = "6312ccc048a4a88aed7311fc448a2e23da55c60c2b3b6dcdb794f759d02e49d7" dependencies = [ "alloy-consensus", "alloy-network", @@ -921,9 +922,9 @@ dependencies = [ [[package]] name = "alloy-transport" -version = "1.0.30" +version = "1.0.36" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dce5129146a76ca6139a19832c75ad408857a56bcd18cd2c684183b8eacd78d8" +checksum = "68f77fa71f6dad3aa9b97ab6f6e90f257089fb9eaa959892d153a1011618e2d6" dependencies = [ "alloy-json-rpc", "alloy-primitives", @@ -945,9 +946,9 @@ dependencies = [ [[package]] name = "alloy-transport-http" -version = "1.0.30" +version = "1.0.36" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e2379d998f46d422ec8ef2b61603bc28cda931e5e267aea1ebe71f62da61d101" +checksum = "0ab1a5d0f5dd5e07187a4170bdcb7ceaff18b1133cd6b8585bc316ab442cd78a" dependencies = [ "alloy-json-rpc", "alloy-transport", @@ -960,9 +961,9 @@ dependencies = [ [[package]] name = "alloy-transport-ipc" -version = "1.0.30" +version = "1.0.36" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "041aa5db2e907692a9a93a0a908057665c03e59364e1fbbeed613511a0159289" +checksum = "62764e672967d7f8a890c3d28c9c9a9fc781fba59e5d869898b08073c9deae3a" dependencies = [ "alloy-json-rpc", "alloy-pubsub", @@ -980,9 +981,9 @@ dependencies = [ [[package]] name = "alloy-transport-ws" -version = "1.0.30" +version = "1.0.36" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c6d44395e6793566e9c89bd82297cc4b0566655c1e78a1d69362640814784cc6" +checksum = "6a21442472bad4494cfb1f11d975ae83059882a11cdda6a3aa8c0d2eb444beb6" dependencies = [ "alloy-pubsub", "alloy-transport", @@ -1030,9 +1031,9 @@ dependencies = [ [[package]] name = "alloy-tx-macros" -version = "1.0.30" +version = "1.0.36" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3b5becb9c269a7d05a2f28d549f86df5a5dbc923e2667eff84fdecac8cda534c" +checksum = "cc79013f9ac3a8ddeb60234d43da09e6d6abfc1c9dd29d3fe97adfbece3f4a08" dependencies = [ "alloy-primitives", "darling 0.21.3", @@ -3919,9 +3920,9 @@ checksum = "a4895175b425cb1f87721b59f0f286c2092bd4af812243672510e1ac53e2e0ad" [[package]] name = "op-alloy-consensus" -version = "0.19.1" +version = "0.20.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d9ade20c592484ba1ea538006e0454284174447a3adf9bb59fa99ed512f95493" +checksum = "3a501241474c3118833d6195312ae7eb7cc90bbb0d5f524cbb0b06619e49ff67" dependencies = [ "alloy-consensus", "alloy-eips", @@ -4650,8 +4651,8 @@ dependencies = [ [[package]] name = "reth-chainspec" -version = "1.7.0" -source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.7.0#9d56da53ec0ad60e229456a0c70b338501d923a5" +version = "1.8.1" +source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.8.1#e6608be51ea34424b8e3693cf1f946a3eb224736" dependencies = [ "alloy-chains", "alloy-consensus", @@ -4670,8 +4671,8 @@ dependencies = [ [[package]] name = "reth-codecs" -version = "1.7.0" -source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.7.0#9d56da53ec0ad60e229456a0c70b338501d923a5" +version = "1.8.1" +source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.8.1#e6608be51ea34424b8e3693cf1f946a3eb224736" dependencies = [ "alloy-consensus", "alloy-eips", @@ -4688,8 +4689,8 @@ dependencies = [ [[package]] name = "reth-codecs-derive" -version = "1.7.0" -source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.7.0#9d56da53ec0ad60e229456a0c70b338501d923a5" +version = "1.8.1" +source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.8.1#e6608be51ea34424b8e3693cf1f946a3eb224736" dependencies = [ "convert_case", "proc-macro2", @@ -4699,8 +4700,8 @@ dependencies = [ [[package]] name = "reth-consensus" -version = "1.7.0" -source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.7.0#9d56da53ec0ad60e229456a0c70b338501d923a5" +version = "1.8.1" +source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.8.1#e6608be51ea34424b8e3693cf1f946a3eb224736" dependencies = [ "alloy-consensus", "alloy-primitives", @@ -4712,8 +4713,8 @@ dependencies = [ [[package]] name = "reth-consensus-common" -version = "1.7.0" -source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.7.0#9d56da53ec0ad60e229456a0c70b338501d923a5" +version = "1.8.1" +source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.8.1#e6608be51ea34424b8e3693cf1f946a3eb224736" dependencies = [ "alloy-consensus", "alloy-eips", @@ -4724,8 +4725,8 @@ dependencies = [ [[package]] name = "reth-db-models" -version = "1.7.0" -source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.7.0#9d56da53ec0ad60e229456a0c70b338501d923a5" +version = "1.8.1" +source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.8.1#e6608be51ea34424b8e3693cf1f946a3eb224736" dependencies = [ "alloy-eips", "alloy-primitives", @@ -4736,8 +4737,8 @@ dependencies = [ [[package]] name = "reth-errors" -version = "1.7.0" -source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.7.0#9d56da53ec0ad60e229456a0c70b338501d923a5" +version = "1.8.1" +source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.8.1#e6608be51ea34424b8e3693cf1f946a3eb224736" dependencies = [ "reth-consensus", "reth-execution-errors", @@ -4747,8 +4748,8 @@ dependencies = [ [[package]] name = "reth-ethereum-consensus" -version = "1.7.0" -source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.7.0#9d56da53ec0ad60e229456a0c70b338501d923a5" +version = "1.8.1" +source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.8.1#e6608be51ea34424b8e3693cf1f946a3eb224736" dependencies = [ "alloy-consensus", "alloy-eips", @@ -4763,8 +4764,8 @@ dependencies = [ [[package]] name = "reth-ethereum-forks" -version = "1.7.0" -source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.7.0#9d56da53ec0ad60e229456a0c70b338501d923a5" +version = "1.8.1" +source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.8.1#e6608be51ea34424b8e3693cf1f946a3eb224736" dependencies = [ "alloy-eip2124", "alloy-hardforks", @@ -4776,13 +4777,15 @@ dependencies = [ [[package]] name = "reth-ethereum-primitives" -version = "1.7.0" -source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.7.0#9d56da53ec0ad60e229456a0c70b338501d923a5" +version = "1.8.1" +source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.8.1#e6608be51ea34424b8e3693cf1f946a3eb224736" dependencies = [ "alloy-consensus", "alloy-eips", "alloy-primitives", "alloy-rlp", + "alloy-rpc-types-eth", + "alloy-serde", "reth-codecs", "reth-primitives-traits", "reth-zstd-compressors", @@ -4792,8 +4795,8 @@ dependencies = [ [[package]] name = "reth-evm" -version = "1.7.0" -source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.7.0#9d56da53ec0ad60e229456a0c70b338501d923a5" +version = "1.8.1" +source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.8.1#e6608be51ea34424b8e3693cf1f946a3eb224736" dependencies = [ "alloy-consensus", "alloy-eips", @@ -4813,8 +4816,8 @@ dependencies = [ [[package]] name = "reth-evm-ethereum" -version = "1.7.0" -source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.7.0#9d56da53ec0ad60e229456a0c70b338501d923a5" +version = "1.8.1" +source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.8.1#e6608be51ea34424b8e3693cf1f946a3eb224736" dependencies = [ "alloy-consensus", "alloy-eips", @@ -4834,8 +4837,8 @@ dependencies = [ [[package]] name = "reth-execution-errors" -version = "1.7.0" -source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.7.0#9d56da53ec0ad60e229456a0c70b338501d923a5" +version = "1.8.1" +source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.8.1#e6608be51ea34424b8e3693cf1f946a3eb224736" dependencies = [ "alloy-evm", "alloy-primitives", @@ -4847,8 +4850,8 @@ dependencies = [ [[package]] name = "reth-execution-types" -version = "1.7.0" -source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.7.0#9d56da53ec0ad60e229456a0c70b338501d923a5" +version = "1.8.1" +source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.8.1#e6608be51ea34424b8e3693cf1f946a3eb224736" dependencies = [ "alloy-consensus", "alloy-eips", @@ -4865,8 +4868,8 @@ dependencies = [ [[package]] name = "reth-network-peers" -version = "1.7.0" -source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.7.0#9d56da53ec0ad60e229456a0c70b338501d923a5" +version = "1.8.1" +source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.8.1#e6608be51ea34424b8e3693cf1f946a3eb224736" dependencies = [ "alloy-primitives", "alloy-rlp", @@ -4878,8 +4881,8 @@ dependencies = [ [[package]] name = "reth-primitives-traits" -version = "1.7.0" -source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.7.0#9d56da53ec0ad60e229456a0c70b338501d923a5" +version = "1.8.1" +source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.8.1#e6608be51ea34424b8e3693cf1f946a3eb224736" dependencies = [ "alloy-consensus", "alloy-eips", @@ -4905,8 +4908,8 @@ dependencies = [ [[package]] name = "reth-prune-types" -version = "1.7.0" -source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.7.0#9d56da53ec0ad60e229456a0c70b338501d923a5" +version = "1.8.1" +source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.8.1#e6608be51ea34424b8e3693cf1f946a3eb224736" dependencies = [ "alloy-primitives", "derive_more", @@ -4916,8 +4919,8 @@ dependencies = [ [[package]] name = "reth-revm" -version = "1.7.0" -source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.7.0#9d56da53ec0ad60e229456a0c70b338501d923a5" +version = "1.8.1" +source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.8.1#e6608be51ea34424b8e3693cf1f946a3eb224736" dependencies = [ "alloy-primitives", "reth-primitives-traits", @@ -4928,8 +4931,8 @@ dependencies = [ [[package]] name = "reth-stages-types" -version = "1.7.0" -source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.7.0#9d56da53ec0ad60e229456a0c70b338501d923a5" +version = "1.8.1" +source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.8.1#e6608be51ea34424b8e3693cf1f946a3eb224736" dependencies = [ "alloy-primitives", "bytes", @@ -4939,8 +4942,8 @@ dependencies = [ [[package]] name = "reth-stateless" -version = "1.7.0" -source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.7.0#9d56da53ec0ad60e229456a0c70b338501d923a5" +version = "1.8.1" +source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.8.1#e6608be51ea34424b8e3693cf1f946a3eb224736" dependencies = [ "alloy-consensus", "alloy-primitives", @@ -4965,8 +4968,8 @@ dependencies = [ [[package]] name = "reth-static-file-types" -version = "1.7.0" -source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.7.0#9d56da53ec0ad60e229456a0c70b338501d923a5" +version = "1.8.1" +source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.8.1#e6608be51ea34424b8e3693cf1f946a3eb224736" dependencies = [ "alloy-primitives", "derive_more", @@ -4976,8 +4979,8 @@ dependencies = [ [[package]] name = "reth-storage-api" -version = "1.7.0" -source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.7.0#9d56da53ec0ad60e229456a0c70b338501d923a5" +version = "1.8.1" +source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.8.1#e6608be51ea34424b8e3693cf1f946a3eb224736" dependencies = [ "alloy-consensus", "alloy-eips", @@ -4998,8 +5001,8 @@ dependencies = [ [[package]] name = "reth-storage-errors" -version = "1.7.0" -source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.7.0#9d56da53ec0ad60e229456a0c70b338501d923a5" +version = "1.8.1" +source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.8.1#e6608be51ea34424b8e3693cf1f946a3eb224736" dependencies = [ "alloy-eips", "alloy-primitives", @@ -5014,8 +5017,8 @@ dependencies = [ [[package]] name = "reth-trie-common" -version = "1.7.0" -source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.7.0#9d56da53ec0ad60e229456a0c70b338501d923a5" +version = "1.8.1" +source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.8.1#e6608be51ea34424b8e3693cf1f946a3eb224736" dependencies = [ "alloy-consensus", "alloy-primitives", @@ -5035,8 +5038,8 @@ dependencies = [ [[package]] name = "reth-trie-sparse" -version = "1.7.0" -source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.7.0#9d56da53ec0ad60e229456a0c70b338501d923a5" +version = "1.8.1" +source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.8.1#e6608be51ea34424b8e3693cf1f946a3eb224736" dependencies = [ "alloy-primitives", "alloy-rlp", @@ -5051,17 +5054,17 @@ dependencies = [ [[package]] name = "reth-zstd-compressors" -version = "1.7.0" -source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.7.0#9d56da53ec0ad60e229456a0c70b338501d923a5" +version = "1.8.1" +source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.8.1#e6608be51ea34424b8e3693cf1f946a3eb224736" dependencies = [ "zstd", ] [[package]] name = "revm" -version = "29.0.0" +version = "29.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0c278b6ee9bba9e25043e3fae648fdce632d1944d3ba16f5203069b43bddd57f" +checksum = "718d90dce5f07e115d0e66450b1b8aa29694c1cf3f89ebddaddccc2ccbd2f13e" dependencies = [ "revm-bytecode", "revm-context", @@ -5090,9 +5093,9 @@ dependencies = [ [[package]] name = "revm-context" -version = "9.0.2" +version = "9.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0fb02c5dab3b535aa5b18277b1d21c5117a25d42af717e6ce133df0ea56663e1" +checksum = "5a20c98e7008591a6f012550c2a00aa36cba8c14cc88eb88dec32eb9102554b4" dependencies = [ "bitvec", "cfg-if", @@ -5107,9 +5110,9 @@ dependencies = [ [[package]] name = "revm-context-interface" -version = "10.1.0" +version = "10.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6b8e9311d27cf75fbf819e7ba4ca05abee1ae02e44ff6a17301c7ab41091b259" +checksum = "b50d241ed1ce647b94caf174fcd0239b7651318b2c4c06b825b59b973dfb8495" dependencies = [ "alloy-eip2930", "alloy-eip7702", @@ -5150,9 +5153,9 @@ dependencies = [ [[package]] name = "revm-handler" -version = "10.0.0" +version = "10.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "528d2d81cc918d311b8231c35330fac5fba8b69766ddc538833e2b5593ee016e" +checksum = "550331ea85c1d257686e672081576172fe3d5a10526248b663bbf54f1bef226a" dependencies = [ "auto_impl", "derive-where", @@ -5169,9 +5172,9 @@ dependencies = [ [[package]] name = "revm-inspector" -version = "10.0.0" +version = "10.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bf443b664075999a14916b50c5ae9e35a7d71186873b8f8302943d50a672e5e0" +checksum = "7c0a6e9ccc2ae006f5bed8bd80cd6f8d3832cd55c5e861b9402fdd556098512f" dependencies = [ "auto_impl", "either", @@ -5187,9 +5190,9 @@ dependencies = [ [[package]] name = "revm-interpreter" -version = "25.0.2" +version = "25.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "53d6406b711fac73b4f13120f359ed8e65964380dd6182bd12c4c09ad0d4641f" +checksum = "06575dc51b1d8f5091daa12a435733a90b4a132dca7ccee0666c7db3851bc30c" dependencies = [ "revm-bytecode", "revm-context-interface", @@ -5872,18 +5875,28 @@ checksum = "cd0b0ec5f1c1ca621c432a25813d8d60c88abe6d3e08a3eb9cf37d97a0fe3d73" [[package]] name = "serde" -version = "1.0.219" +version = "1.0.226" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0dca6411025b24b60bfa7ec1fe1f8e710ac09782dca409ee8237ba74b51295fd" +dependencies = [ + "serde_core", + "serde_derive", +] + +[[package]] +name = "serde_core" +version = "1.0.226" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5f0e2c6ed6606019b4e29e69dbaba95b11854410e5347d525002456dbbb786b6" +checksum = "ba2ba63999edb9dac981fb34b3e5c0d111a69b0924e253ed29d83f7c99e966a4" dependencies = [ "serde_derive", ] [[package]] name = "serde_derive" -version = "1.0.219" +version = "1.0.226" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5b0276cf7f2c73365f7157c8123c21cd9a50fbbd844757af28ca1f5925fc2a00" +checksum = "8db53ae22f34573731bafa1db20f04027b2d25e02d8205921b569171699cdb33" dependencies = [ "proc-macro2", "quote", diff --git a/Cargo.toml b/Cargo.toml index be17f98db..77f52cbb4 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -19,23 +19,23 @@ risc0-zkvm = "3.0.3" risc0-ethereum-trie = { git = "https://github.com/risc0/risc0-ethereum.git", tag = "v3.0.1" } # reth -reth-primitives-traits = { git = "https://github.com/paradigmxyz/reth.git", tag = "v1.7.0" } -reth-ethereum-primitives = { git = "https://github.com/paradigmxyz/reth.git", tag = "v1.7.0" } -reth-stateless = { git = "https://github.com/paradigmxyz/reth.git", tag = "v1.7.0" } -reth-chainspec = { git = "https://github.com/paradigmxyz/reth.git", tag = "v1.7.0" } -reth-errors = { git = "https://github.com/paradigmxyz/reth.git", tag = "v1.7.0" } -reth-evm = { git = "https://github.com/paradigmxyz/reth.git", tag = "v1.7.0" } -reth-evm-ethereum = { git = "https://github.com/paradigmxyz/reth.git", tag = "v1.7.0" } -reth-network-peers = { git = "https://github.com/paradigmxyz/reth.git", tag = "v1.7.0" } -reth-trie-common = { git = "https://github.com/paradigmxyz/reth.git", tag = "v1.7.0" } +reth-primitives-traits = { git = "https://github.com/paradigmxyz/reth.git", tag = "v1.8.1" } +reth-ethereum-primitives = { git = "https://github.com/paradigmxyz/reth.git", tag = "v1.8.1" } +reth-stateless = { git = "https://github.com/paradigmxyz/reth.git", tag = "v1.8.1" } +reth-chainspec = { git = "https://github.com/paradigmxyz/reth.git", tag = "v1.8.1" } +reth-errors = { git = "https://github.com/paradigmxyz/reth.git", tag = "v1.8.1" } +reth-evm = { git = "https://github.com/paradigmxyz/reth.git", tag = "v1.8.1" } +reth-evm-ethereum = { git = "https://github.com/paradigmxyz/reth.git", tag = "v1.8.1" } +reth-network-peers = { git = "https://github.com/paradigmxyz/reth.git", tag = "v1.8.1" } +reth-trie-common = { git = "https://github.com/paradigmxyz/reth.git", tag = "v1.8.1" } # revm -revm = { version = "29.0.0", default-features = false } +revm = { version = "29.0.1", default-features = false } revm-bytecode = { version = "6.2.2", default-features = false } # eth alloy-chains = { version = "0.2.5", default-features = false } -alloy-evm = { version = "0.20.1", default-features = false } +alloy-evm = { version = "0.21.0", default-features = false } alloy-primitives = { version = "1.3.1", default-features = false, features = [ "map-foldhash", ] } @@ -44,10 +44,10 @@ alloy-trie = { version = "0.9.1", default-features = false } alloy-hardforks = "0.3.0" -alloy = { version = "1.0.30", features = ["full"] } -alloy-consensus = { version = "1.0.30", default-features = false } -alloy-eips = { version = "1.0.30" } -alloy-genesis = { version = "1.0.30", default-features = false } +alloy = { version = "1.0.35", features = ["full"] } +alloy-consensus = { version = "1.0.35", default-features = false } +alloy-eips = { version = "1.0.35" } +alloy-genesis = { version = "1.0.35", default-features = false } # misc anyhow = "1.0" diff --git a/guests/stateless-client/Cargo.lock b/guests/stateless-client/Cargo.lock index 44264a9a7..122cdcbef 100644 --- a/guests/stateless-client/Cargo.lock +++ b/guests/stateless-client/Cargo.lock @@ -59,9 +59,9 @@ dependencies = [ [[package]] name = "alloy-consensus" -version = "1.0.30" +version = "1.0.36" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d213580c17d239ae83c0d897ac3315db7cda83d2d4936a9823cc3517552f2e24" +checksum = "0cd9d29a6a0bb8d4832ff7685dcbb430011b832f2ccec1af9571a0e75c1f7e9c" dependencies = [ "alloy-eips", "alloy-primitives", @@ -78,15 +78,16 @@ dependencies = [ "rand 0.8.5", "secp256k1 0.30.0", "serde", + "serde_json", "serde_with", "thiserror", ] [[package]] name = "alloy-consensus-any" -version = "1.0.30" +version = "1.0.36" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "81443e3b8dccfeac7cd511aced15928c97ff253f4177acbb97de97178e543f6c" +checksum = "ce038cb325f9a85a10fb026fb1b70cb8c62a004d85d22f8516e5d173e3eec612" dependencies = [ "alloy-consensus", "alloy-eips", @@ -136,9 +137,9 @@ dependencies = [ [[package]] name = "alloy-eips" -version = "1.0.30" +version = "1.0.36" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2a15b4b0f6bab47aae017d52bb5a739bda381553c09fb9918b7172721ef5f5de" +checksum = "4bfec530782b30151e2564edf3c900f1fa6852128b7a993e458e8e3815d8b915" dependencies = [ "alloy-eip2124", "alloy-eip2930", @@ -158,9 +159,9 @@ dependencies = [ [[package]] name = "alloy-evm" -version = "0.20.1" +version = "0.21.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0dbe7c66c859b658d879b22e8aaa19546dab726b0639f4649a424ada3d99349e" +checksum = "48e536feefca2ba96c75798ac75a31046e8adfcefecdb6653803361045cc65b9" dependencies = [ "alloy-consensus", "alloy-eips", @@ -178,9 +179,9 @@ dependencies = [ [[package]] name = "alloy-genesis" -version = "1.0.30" +version = "1.0.36" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "33ba1cbc25a07e0142e8875fcbe80e1fdb02be8160ae186b90f4b9a69a72ed2b" +checksum = "956e6a23eb880dd93123e8ebea028584325b9af22f991eec2c499c54c277c073" dependencies = [ "alloy-eips", "alloy-primitives", @@ -192,9 +193,9 @@ dependencies = [ [[package]] name = "alloy-hardforks" -version = "0.3.0" +version = "0.3.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a20b180071d4f22db71702329101685ccff2e2a8f400d30a68ba907700163bf5" +checksum = "889eb3949b58368a09d4f16931c660275ef5fb08e5fbd4a96573b19c7085c41f" dependencies = [ "alloy-chains", "alloy-eip2124", @@ -217,9 +218,9 @@ dependencies = [ [[package]] name = "alloy-network-primitives" -version = "1.0.30" +version = "1.0.36" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5b14fa9ba5774e0b30ae6a04176d998211d516c8af69c9c530af7c6c42a8c508" +checksum = "1da0037ac546c0cae2eb776bed53687b7bbf776f4e7aa2fea0b8b89e734c319b" dependencies = [ "alloy-consensus", "alloy-eips", @@ -279,9 +280,9 @@ dependencies = [ [[package]] name = "alloy-rpc-types-debug" -version = "1.0.30" +version = "1.0.36" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c2fe118e6c152d54cb4549b9835fb87d38b12754bb121375183ee3ec84bd0849" +checksum = "27eaa6c63f551e35f835638397ce5c66d2ba14d0b17ce3bb286842e815b0fc94" dependencies = [ "alloy-primitives", "derive_more", @@ -291,9 +292,9 @@ dependencies = [ [[package]] name = "alloy-rpc-types-engine" -version = "1.0.30" +version = "1.0.36" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "72a41624eb84bc743e414198bf10eb48b611a5554d6a9fd6205f7384d57dfd7f" +checksum = "d5dc8a9ba66f1a654d935584200fcd0b7fd34dac0ca19df024911899066b0583" dependencies = [ "alloy-consensus", "alloy-eips", @@ -307,9 +308,9 @@ dependencies = [ [[package]] name = "alloy-rpc-types-eth" -version = "1.0.30" +version = "1.0.36" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1cd1e1b4dcdf13eaa96343e5c0dafc2d2e8ce5d20b90347169d46a1df0dec210" +checksum = "848f8ea4063bed834443081d77f840f31075f68d0d49723027f5a209615150bf" dependencies = [ "alloy-consensus", "alloy-consensus-any", @@ -328,9 +329,9 @@ dependencies = [ [[package]] name = "alloy-serde" -version = "1.0.30" +version = "1.0.36" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f1b3b1078b8775077525bc9fe9f6577e815ceaecd6c412a4f3b4d8aa2836e8f6" +checksum = "19c3835bdc128f2f3418f5d6c76aec63a245d72973e0eaacc9720aa0787225c5" dependencies = [ "alloy-primitives", "serde", @@ -441,9 +442,9 @@ dependencies = [ [[package]] name = "alloy-tx-macros" -version = "1.0.30" +version = "1.0.36" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3b5becb9c269a7d05a2f28d549f86df5a5dbc923e2667eff84fdecac8cda534c" +checksum = "cc79013f9ac3a8ddeb60234d43da09e6d6abfc1c9dd29d3fe97adfbece3f4a08" dependencies = [ "alloy-primitives", "darling 0.21.3", @@ -2843,9 +2844,9 @@ dependencies = [ [[package]] name = "op-alloy-consensus" -version = "0.19.1" +version = "0.20.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d9ade20c592484ba1ea538006e0454284174447a3adf9bb59fa99ed512f95493" +checksum = "3a501241474c3118833d6195312ae7eb7cc90bbb0d5f524cbb0b06619e49ff67" dependencies = [ "alloy-consensus", "alloy-eips", @@ -3450,8 +3451,8 @@ dependencies = [ [[package]] name = "reth-chainspec" -version = "1.7.0" -source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.7.0#9d56da53ec0ad60e229456a0c70b338501d923a5" +version = "1.8.1" +source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.8.1#e6608be51ea34424b8e3693cf1f946a3eb224736" dependencies = [ "alloy-chains", "alloy-consensus", @@ -3470,8 +3471,8 @@ dependencies = [ [[package]] name = "reth-codecs" -version = "1.7.0" -source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.7.0#9d56da53ec0ad60e229456a0c70b338501d923a5" +version = "1.8.1" +source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.8.1#e6608be51ea34424b8e3693cf1f946a3eb224736" dependencies = [ "alloy-consensus", "alloy-eips", @@ -3488,8 +3489,8 @@ dependencies = [ [[package]] name = "reth-codecs-derive" -version = "1.7.0" -source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.7.0#9d56da53ec0ad60e229456a0c70b338501d923a5" +version = "1.8.1" +source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.8.1#e6608be51ea34424b8e3693cf1f946a3eb224736" dependencies = [ "convert_case", "proc-macro2", @@ -3499,8 +3500,8 @@ dependencies = [ [[package]] name = "reth-consensus" -version = "1.7.0" -source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.7.0#9d56da53ec0ad60e229456a0c70b338501d923a5" +version = "1.8.1" +source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.8.1#e6608be51ea34424b8e3693cf1f946a3eb224736" dependencies = [ "alloy-consensus", "alloy-primitives", @@ -3512,8 +3513,8 @@ dependencies = [ [[package]] name = "reth-consensus-common" -version = "1.7.0" -source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.7.0#9d56da53ec0ad60e229456a0c70b338501d923a5" +version = "1.8.1" +source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.8.1#e6608be51ea34424b8e3693cf1f946a3eb224736" dependencies = [ "alloy-consensus", "alloy-eips", @@ -3524,8 +3525,8 @@ dependencies = [ [[package]] name = "reth-db-models" -version = "1.7.0" -source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.7.0#9d56da53ec0ad60e229456a0c70b338501d923a5" +version = "1.8.1" +source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.8.1#e6608be51ea34424b8e3693cf1f946a3eb224736" dependencies = [ "alloy-eips", "alloy-primitives", @@ -3536,8 +3537,8 @@ dependencies = [ [[package]] name = "reth-errors" -version = "1.7.0" -source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.7.0#9d56da53ec0ad60e229456a0c70b338501d923a5" +version = "1.8.1" +source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.8.1#e6608be51ea34424b8e3693cf1f946a3eb224736" dependencies = [ "reth-consensus", "reth-execution-errors", @@ -3547,8 +3548,8 @@ dependencies = [ [[package]] name = "reth-ethereum-consensus" -version = "1.7.0" -source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.7.0#9d56da53ec0ad60e229456a0c70b338501d923a5" +version = "1.8.1" +source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.8.1#e6608be51ea34424b8e3693cf1f946a3eb224736" dependencies = [ "alloy-consensus", "alloy-eips", @@ -3563,8 +3564,8 @@ dependencies = [ [[package]] name = "reth-ethereum-forks" -version = "1.7.0" -source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.7.0#9d56da53ec0ad60e229456a0c70b338501d923a5" +version = "1.8.1" +source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.8.1#e6608be51ea34424b8e3693cf1f946a3eb224736" dependencies = [ "alloy-eip2124", "alloy-hardforks", @@ -3576,13 +3577,15 @@ dependencies = [ [[package]] name = "reth-ethereum-primitives" -version = "1.7.0" -source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.7.0#9d56da53ec0ad60e229456a0c70b338501d923a5" +version = "1.8.1" +source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.8.1#e6608be51ea34424b8e3693cf1f946a3eb224736" dependencies = [ "alloy-consensus", "alloy-eips", "alloy-primitives", "alloy-rlp", + "alloy-rpc-types-eth", + "alloy-serde", "reth-codecs", "reth-primitives-traits", "reth-zstd-compressors", @@ -3592,8 +3595,8 @@ dependencies = [ [[package]] name = "reth-evm" -version = "1.7.0" -source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.7.0#9d56da53ec0ad60e229456a0c70b338501d923a5" +version = "1.8.1" +source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.8.1#e6608be51ea34424b8e3693cf1f946a3eb224736" dependencies = [ "alloy-consensus", "alloy-eips", @@ -3613,8 +3616,8 @@ dependencies = [ [[package]] name = "reth-evm-ethereum" -version = "1.7.0" -source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.7.0#9d56da53ec0ad60e229456a0c70b338501d923a5" +version = "1.8.1" +source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.8.1#e6608be51ea34424b8e3693cf1f946a3eb224736" dependencies = [ "alloy-consensus", "alloy-eips", @@ -3634,8 +3637,8 @@ dependencies = [ [[package]] name = "reth-execution-errors" -version = "1.7.0" -source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.7.0#9d56da53ec0ad60e229456a0c70b338501d923a5" +version = "1.8.1" +source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.8.1#e6608be51ea34424b8e3693cf1f946a3eb224736" dependencies = [ "alloy-evm", "alloy-primitives", @@ -3647,8 +3650,8 @@ dependencies = [ [[package]] name = "reth-execution-types" -version = "1.7.0" -source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.7.0#9d56da53ec0ad60e229456a0c70b338501d923a5" +version = "1.8.1" +source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.8.1#e6608be51ea34424b8e3693cf1f946a3eb224736" dependencies = [ "alloy-consensus", "alloy-eips", @@ -3665,8 +3668,8 @@ dependencies = [ [[package]] name = "reth-network-peers" -version = "1.7.0" -source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.7.0#9d56da53ec0ad60e229456a0c70b338501d923a5" +version = "1.8.1" +source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.8.1#e6608be51ea34424b8e3693cf1f946a3eb224736" dependencies = [ "alloy-primitives", "alloy-rlp", @@ -3678,8 +3681,8 @@ dependencies = [ [[package]] name = "reth-primitives-traits" -version = "1.7.0" -source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.7.0#9d56da53ec0ad60e229456a0c70b338501d923a5" +version = "1.8.1" +source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.8.1#e6608be51ea34424b8e3693cf1f946a3eb224736" dependencies = [ "alloy-consensus", "alloy-eips", @@ -3705,8 +3708,8 @@ dependencies = [ [[package]] name = "reth-prune-types" -version = "1.7.0" -source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.7.0#9d56da53ec0ad60e229456a0c70b338501d923a5" +version = "1.8.1" +source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.8.1#e6608be51ea34424b8e3693cf1f946a3eb224736" dependencies = [ "alloy-primitives", "derive_more", @@ -3716,8 +3719,8 @@ dependencies = [ [[package]] name = "reth-revm" -version = "1.7.0" -source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.7.0#9d56da53ec0ad60e229456a0c70b338501d923a5" +version = "1.8.1" +source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.8.1#e6608be51ea34424b8e3693cf1f946a3eb224736" dependencies = [ "alloy-primitives", "reth-primitives-traits", @@ -3728,8 +3731,8 @@ dependencies = [ [[package]] name = "reth-stages-types" -version = "1.7.0" -source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.7.0#9d56da53ec0ad60e229456a0c70b338501d923a5" +version = "1.8.1" +source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.8.1#e6608be51ea34424b8e3693cf1f946a3eb224736" dependencies = [ "alloy-primitives", "bytes", @@ -3739,8 +3742,8 @@ dependencies = [ [[package]] name = "reth-stateless" -version = "1.7.0" -source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.7.0#9d56da53ec0ad60e229456a0c70b338501d923a5" +version = "1.8.1" +source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.8.1#e6608be51ea34424b8e3693cf1f946a3eb224736" dependencies = [ "alloy-consensus", "alloy-primitives", @@ -3765,8 +3768,8 @@ dependencies = [ [[package]] name = "reth-static-file-types" -version = "1.7.0" -source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.7.0#9d56da53ec0ad60e229456a0c70b338501d923a5" +version = "1.8.1" +source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.8.1#e6608be51ea34424b8e3693cf1f946a3eb224736" dependencies = [ "alloy-primitives", "derive_more", @@ -3776,8 +3779,8 @@ dependencies = [ [[package]] name = "reth-storage-api" -version = "1.7.0" -source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.7.0#9d56da53ec0ad60e229456a0c70b338501d923a5" +version = "1.8.1" +source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.8.1#e6608be51ea34424b8e3693cf1f946a3eb224736" dependencies = [ "alloy-consensus", "alloy-eips", @@ -3798,8 +3801,8 @@ dependencies = [ [[package]] name = "reth-storage-errors" -version = "1.7.0" -source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.7.0#9d56da53ec0ad60e229456a0c70b338501d923a5" +version = "1.8.1" +source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.8.1#e6608be51ea34424b8e3693cf1f946a3eb224736" dependencies = [ "alloy-eips", "alloy-primitives", @@ -3814,8 +3817,8 @@ dependencies = [ [[package]] name = "reth-trie-common" -version = "1.7.0" -source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.7.0#9d56da53ec0ad60e229456a0c70b338501d923a5" +version = "1.8.1" +source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.8.1#e6608be51ea34424b8e3693cf1f946a3eb224736" dependencies = [ "alloy-consensus", "alloy-primitives", @@ -3835,8 +3838,8 @@ dependencies = [ [[package]] name = "reth-trie-sparse" -version = "1.7.0" -source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.7.0#9d56da53ec0ad60e229456a0c70b338501d923a5" +version = "1.8.1" +source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.8.1#e6608be51ea34424b8e3693cf1f946a3eb224736" dependencies = [ "alloy-primitives", "alloy-rlp", @@ -3851,17 +3854,17 @@ dependencies = [ [[package]] name = "reth-zstd-compressors" -version = "1.7.0" -source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.7.0#9d56da53ec0ad60e229456a0c70b338501d923a5" +version = "1.8.1" +source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.8.1#e6608be51ea34424b8e3693cf1f946a3eb224736" dependencies = [ "zstd", ] [[package]] name = "revm" -version = "29.0.0" +version = "29.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0c278b6ee9bba9e25043e3fae648fdce632d1944d3ba16f5203069b43bddd57f" +checksum = "718d90dce5f07e115d0e66450b1b8aa29694c1cf3f89ebddaddccc2ccbd2f13e" dependencies = [ "revm-bytecode", "revm-context", @@ -3890,9 +3893,9 @@ dependencies = [ [[package]] name = "revm-context" -version = "9.0.2" +version = "9.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0fb02c5dab3b535aa5b18277b1d21c5117a25d42af717e6ce133df0ea56663e1" +checksum = "5a20c98e7008591a6f012550c2a00aa36cba8c14cc88eb88dec32eb9102554b4" dependencies = [ "bitvec", "cfg-if", @@ -3907,9 +3910,9 @@ dependencies = [ [[package]] name = "revm-context-interface" -version = "10.1.0" +version = "10.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6b8e9311d27cf75fbf819e7ba4ca05abee1ae02e44ff6a17301c7ab41091b259" +checksum = "b50d241ed1ce647b94caf174fcd0239b7651318b2c4c06b825b59b973dfb8495" dependencies = [ "alloy-eip2930", "alloy-eip7702", @@ -3950,9 +3953,9 @@ dependencies = [ [[package]] name = "revm-handler" -version = "10.0.0" +version = "10.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "528d2d81cc918d311b8231c35330fac5fba8b69766ddc538833e2b5593ee016e" +checksum = "550331ea85c1d257686e672081576172fe3d5a10526248b663bbf54f1bef226a" dependencies = [ "auto_impl", "derive-where", @@ -3969,9 +3972,9 @@ dependencies = [ [[package]] name = "revm-inspector" -version = "10.0.0" +version = "10.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bf443b664075999a14916b50c5ae9e35a7d71186873b8f8302943d50a672e5e0" +checksum = "7c0a6e9ccc2ae006f5bed8bd80cd6f8d3832cd55c5e861b9402fdd556098512f" dependencies = [ "auto_impl", "either", @@ -3987,9 +3990,9 @@ dependencies = [ [[package]] name = "revm-interpreter" -version = "25.0.2" +version = "25.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "53d6406b711fac73b4f13120f359ed8e65964380dd6182bd12c4c09ad0d4641f" +checksum = "06575dc51b1d8f5091daa12a435733a90b4a132dca7ccee0666c7db3851bc30c" dependencies = [ "revm-bytecode", "revm-context-interface", @@ -4640,18 +4643,28 @@ dependencies = [ [[package]] name = "serde" -version = "1.0.219" +version = "1.0.226" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0dca6411025b24b60bfa7ec1fe1f8e710ac09782dca409ee8237ba74b51295fd" +dependencies = [ + "serde_core", + "serde_derive", +] + +[[package]] +name = "serde_core" +version = "1.0.226" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5f0e2c6ed6606019b4e29e69dbaba95b11854410e5347d525002456dbbb786b6" +checksum = "ba2ba63999edb9dac981fb34b3e5c0d111a69b0924e253ed29d83f7c99e966a4" dependencies = [ "serde_derive", ] [[package]] name = "serde_derive" -version = "1.0.219" +version = "1.0.226" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5b0276cf7f2c73365f7157c8123c21cd9a50fbbd844757af28ca1f5925fc2a00" +checksum = "8db53ae22f34573731bafa1db20f04027b2d25e02d8205921b569171699cdb33" dependencies = [ "proc-macro2", "quote", diff --git a/guests/stateless-client/Cargo.toml b/guests/stateless-client/Cargo.toml index a9605cb35..30eb5db4b 100644 --- a/guests/stateless-client/Cargo.toml +++ b/guests/stateless-client/Cargo.toml @@ -12,7 +12,7 @@ lto = "fat" [dependencies] blst = { version = "=0.3.15" } c-kzg = { version = "=2.1.1" } -revm = { version = "29.0.0", default-features = false, features = [ +revm = { version = "29.0.1", default-features = false, features = [ "std", "c-kzg", "portable", From ab963d89a3cdd7b9b5ffc3de11213df37eb401af Mon Sep 17 00:00:00 2001 From: Wolfgang Welz Date: Fri, 26 Sep 2025 10:55:39 +0200 Subject: [PATCH 02/22] update blob params --- crates/chainspec/src/lib.rs | 20 ++++++++++++++++---- 1 file changed, 16 insertions(+), 4 deletions(-) diff --git a/crates/chainspec/src/lib.rs b/crates/chainspec/src/lib.rs index 191ad0984..6b59537dd 100644 --- a/crates/chainspec/src/lib.rs +++ b/crates/chainspec/src/lib.rs @@ -17,10 +17,13 @@ use alloy_eips::{ BlobScheduleBlobParams, eip1559::BaseFeeParams, eip2124::{ForkFilter, ForkId, Head}, + eip7840::BlobParams, }; use alloy_evm::eth::spec::EthExecutorSpec; use alloy_genesis::Genesis; -use alloy_hardforks::{EthereumHardfork, EthereumHardforks, ForkCondition, Hardfork}; +use alloy_hardforks::{ + EthereumHardfork, EthereumHardforks, ForkCondition, Hardfork, holesky, mainnet, sepolia, +}; use alloy_primitives::{Address, B256, U256, address}; use reth_chainspec::{Chain, DepositContract, EthChainSpec, Hardforks, NamedChain}; use std::{ @@ -43,7 +46,10 @@ pub static MAINNET: LazyLock> = LazyLock::new(|| { forks: EthereumHardfork::mainnet().into(), deposit_contract_address: Some(MAINNET_DEPOSIT_CONTRACT_ADDRESS), base_fee_params: BaseFeeParams::ethereum(), - blob_params: BlobScheduleBlobParams::mainnet(), + blob_params: BlobScheduleBlobParams::default().with_scheduled([ + (mainnet::MAINNET_BPO1_TIMESTAMP, BlobParams::bpo1()), + (mainnet::MAINNET_BPO2_TIMESTAMP, BlobParams::bpo2()), + ]), }; spec.into() }); @@ -54,7 +60,10 @@ pub static SEPOLIA: LazyLock> = LazyLock::new(|| { forks: EthereumHardfork::sepolia().into(), deposit_contract_address: Some(SEPOLIA_DEPOSIT_CONTRACT_ADDRESS), base_fee_params: BaseFeeParams::ethereum(), - blob_params: BlobScheduleBlobParams::mainnet(), + blob_params: BlobScheduleBlobParams::default().with_scheduled([ + (sepolia::SEPOLIA_BPO1_TIMESTAMP, BlobParams::bpo1()), + (sepolia::SEPOLIA_BPO2_TIMESTAMP, BlobParams::bpo2()), + ]), }; spec.into() }); @@ -65,7 +74,10 @@ pub static HOLESKY: LazyLock> = LazyLock::new(|| { forks: EthereumHardfork::holesky().into(), deposit_contract_address: Some(HOLESKY_DEPOSIT_CONTRACT_ADDRESS), base_fee_params: BaseFeeParams::ethereum(), - blob_params: BlobScheduleBlobParams::mainnet(), + blob_params: BlobScheduleBlobParams::default().with_scheduled([ + (holesky::HOLESKY_BPO1_TIMESTAMP, BlobParams::bpo1()), + (holesky::HOLESKY_BPO2_TIMESTAMP, BlobParams::bpo2()), + ]), }; spec.into() }); From 6559ff4912c911a163cfe222cb58f34e89e7ea0b Mon Sep 17 00:00:00 2001 From: Wolfgang Welz Date: Fri, 26 Sep 2025 15:41:24 +0200 Subject: [PATCH 03/22] remove prefix --- crates/chainspec/src/lib.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/crates/chainspec/src/lib.rs b/crates/chainspec/src/lib.rs index 6b59537dd..d87297c88 100644 --- a/crates/chainspec/src/lib.rs +++ b/crates/chainspec/src/lib.rs @@ -146,7 +146,7 @@ impl EthChainSpec for ChainSpec { self.base_fee_params } - fn blob_params_at_timestamp(&self, timestamp: u64) -> Option { + fn blob_params_at_timestamp(&self, timestamp: u64) -> Option { if let Some(blob_param) = self.blob_params.active_scheduled_params_at_timestamp(timestamp) { Some(*blob_param) } else if self.is_osaka_active_at_timestamp(timestamp) { From e59cb3ad69e6af76a351b83c3b9357cb42e23164 Mon Sep 17 00:00:00 2001 From: Wolfgang Welz Date: Tue, 7 Oct 2025 12:52:46 +0200 Subject: [PATCH 04/22] update reth to v1.8.2 --- Cargo.lock | 216 ++++++++++++++--------------- Cargo.toml | 28 ++-- guests/stateless-client/Cargo.lock | 144 +++++++++---------- 3 files changed, 194 insertions(+), 194 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 5299b1b3b..e4ff0b1ac 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -244,9 +244,9 @@ checksum = "683d7910e743518b0e34f1186f92494becacb047c7b6bf616c96772180fef923" [[package]] name = "alloy" -version = "1.0.36" +version = "1.0.37" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "67031be093311a96afdd146fb5de209ceaf0f347f2284ed71902368cd15a77ff" +checksum = "7f6cfe35f100bc496007c9a00f90b88bdf565f1421d4c707c9f07e0717e2aaad" dependencies = [ "alloy-consensus", "alloy-contract", @@ -283,9 +283,9 @@ dependencies = [ [[package]] name = "alloy-consensus" -version = "1.0.36" +version = "1.0.37" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0cd9d29a6a0bb8d4832ff7685dcbb430011b832f2ccec1af9571a0e75c1f7e9c" +checksum = "59094911f05dbff1cf5b29046a00ef26452eccc8d47136d50a47c0cf22f00c85" dependencies = [ "alloy-eips", "alloy-primitives", @@ -309,9 +309,9 @@ dependencies = [ [[package]] name = "alloy-consensus-any" -version = "1.0.36" +version = "1.0.37" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ce038cb325f9a85a10fb026fb1b70cb8c62a004d85d22f8516e5d173e3eec612" +checksum = "903cb8f728107ca27c816546f15be38c688df3c381d7bd1a4a9f215effc1ddb4" dependencies = [ "alloy-consensus", "alloy-eips", @@ -323,9 +323,9 @@ dependencies = [ [[package]] name = "alloy-contract" -version = "1.0.36" +version = "1.0.37" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a376305e5c3b3285e84a553fa3f9aee4f5f0e1b0aad4944191b843cd8228788d" +checksum = "03df5cb3b428ac96b386ad64c11d5c6e87a5505682cf1fbd6f8f773e9eda04f6" dependencies = [ "alloy-consensus", "alloy-dyn-abi", @@ -413,9 +413,9 @@ dependencies = [ [[package]] name = "alloy-eips" -version = "1.0.36" +version = "1.0.37" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4bfec530782b30151e2564edf3c900f1fa6852128b7a993e458e8e3815d8b915" +checksum = "ac7f1c9a1ccc7f3e03c36976455751a6166a4f0d2d2c530c3f87dfe7d0cdc836" dependencies = [ "alloy-eip2124", "alloy-eip2930", @@ -455,9 +455,9 @@ dependencies = [ [[package]] name = "alloy-genesis" -version = "1.0.36" +version = "1.0.37" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "956e6a23eb880dd93123e8ebea028584325b9af22f991eec2c499c54c277c073" +checksum = "1421f6c9d15e5b86afbfe5865ca84dea3b9f77173a0963c1a2ee4e626320ada9" dependencies = [ "alloy-eips", "alloy-primitives", @@ -494,9 +494,9 @@ dependencies = [ [[package]] name = "alloy-json-rpc" -version = "1.0.36" +version = "1.0.37" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "be436893c0d1f7a57d1d8f1b6b9af9db04174468410b7e6e1d1893e78110a3bc" +checksum = "65f763621707fa09cece30b73ecc607eb43fd7a72451fe3b46f645b905086926" dependencies = [ "alloy-primitives", "alloy-sol-types", @@ -509,9 +509,9 @@ dependencies = [ [[package]] name = "alloy-network" -version = "1.0.36" +version = "1.0.37" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f18959e1a1b40e05578e7a705f65ff4e6b354e38335da4b33ccbee876bde7c26" +checksum = "2f59a869fa4b4c3a7f08b1c8cb79aec61c29febe6e24a24fe0fcfded8a9b5703" dependencies = [ "alloy-consensus", "alloy-consensus-any", @@ -535,9 +535,9 @@ dependencies = [ [[package]] name = "alloy-network-primitives" -version = "1.0.36" +version = "1.0.37" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1da0037ac546c0cae2eb776bed53687b7bbf776f4e7aa2fea0b8b89e734c319b" +checksum = "46e9374c667c95c41177602ebe6f6a2edd455193844f011d973d374b65501b38" dependencies = [ "alloy-consensus", "alloy-eips", @@ -575,9 +575,9 @@ dependencies = [ [[package]] name = "alloy-provider" -version = "1.0.36" +version = "1.0.37" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4ca97e31bc05bd6d4780254fbb60b16d33b3548d1c657a879fffb0e7ebb642e9" +checksum = "77818b7348bd5486491a5297579dbfe5f706a81f8e1f5976393025f1e22a7c7d" dependencies = [ "alloy-chains", "alloy-consensus", @@ -621,9 +621,9 @@ dependencies = [ [[package]] name = "alloy-pubsub" -version = "1.0.36" +version = "1.0.37" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f7bb37096e97de25133cf904e08df2aa72168af64f429e3c43a112649e131930" +checksum = "249b45103a66c9ad60ad8176b076106d03a2399a37f0ee7b0e03692e6b354cb9" dependencies = [ "alloy-json-rpc", "alloy-primitives", @@ -665,9 +665,9 @@ dependencies = [ [[package]] name = "alloy-rpc-client" -version = "1.0.36" +version = "1.0.37" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dbeeeffa0bb7e95cb79f2b4b46b591763afeccfa9a797183c1b192377ffb6fac" +checksum = "2430d5623e428dd012c6c2156ae40b7fe638d6fca255e3244e0fba51fa698e93" dependencies = [ "alloy-json-rpc", "alloy-primitives", @@ -691,9 +691,9 @@ dependencies = [ [[package]] name = "alloy-rpc-types" -version = "1.0.36" +version = "1.0.37" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a21fe4c370b9e733d884ffd953eb6d654d053b1b22e26ffd591ef597a9e2bc49" +checksum = "e9e131624d08a25cfc40557041e7dc42e1182fa1153e7592d120f769a1edce56" dependencies = [ "alloy-primitives", "alloy-rpc-types-anvil", @@ -708,9 +708,9 @@ dependencies = [ [[package]] name = "alloy-rpc-types-anvil" -version = "1.0.36" +version = "1.0.37" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eb44412ed075c19d37698f33213b83f0bf8ccc2d4e928527f2622555a31723de" +checksum = "d65e3266095e6d8e8028aab5f439c6b8736c5147314f7e606c61597e014cb8a0" dependencies = [ "alloy-primitives", "alloy-rpc-types-eth", @@ -720,9 +720,9 @@ dependencies = [ [[package]] name = "alloy-rpc-types-any" -version = "1.0.36" +version = "1.0.37" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "65423baf6af0ff356e254d7824b3824aa34d8ca9bd857a4e298f74795cc4b69d" +checksum = "07429a1099cd17227abcddb91b5e38c960aaeb02a6967467f5bb561fbe716ac6" dependencies = [ "alloy-consensus-any", "alloy-rpc-types-eth", @@ -731,9 +731,9 @@ dependencies = [ [[package]] name = "alloy-rpc-types-debug" -version = "1.0.36" +version = "1.0.37" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "27eaa6c63f551e35f835638397ce5c66d2ba14d0b17ce3bb286842e815b0fc94" +checksum = "aeff305b7d10cc1c888456d023e7bb8a5ea82e9e42b951e37619b88cc1a1486d" dependencies = [ "alloy-primitives", "derive_more", @@ -743,9 +743,9 @@ dependencies = [ [[package]] name = "alloy-rpc-types-engine" -version = "1.0.36" +version = "1.0.37" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d5dc8a9ba66f1a654d935584200fcd0b7fd34dac0ca19df024911899066b0583" +checksum = "222ecadcea6aac65e75e32b6735635ee98517aa63b111849ee01ae988a71d685" dependencies = [ "alloy-consensus", "alloy-eips", @@ -760,9 +760,9 @@ dependencies = [ [[package]] name = "alloy-rpc-types-eth" -version = "1.0.36" +version = "1.0.37" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "848f8ea4063bed834443081d77f840f31075f68d0d49723027f5a209615150bf" +checksum = "db46b0901ee16bbb68d986003c66dcb74a12f9d9b3c44f8e85d51974f2458f0f" dependencies = [ "alloy-consensus", "alloy-consensus-any", @@ -781,9 +781,9 @@ dependencies = [ [[package]] name = "alloy-rpc-types-trace" -version = "1.0.36" +version = "1.0.37" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6c632e12fb9bbde97eb2a0f5145f0fe6e0ed1b3927de29d8463ab468905d9843" +checksum = "36f10620724bd45f80c79668a8cdbacb6974f860686998abce28f6196ae79444" dependencies = [ "alloy-primitives", "alloy-rpc-types-eth", @@ -795,9 +795,9 @@ dependencies = [ [[package]] name = "alloy-rpc-types-txpool" -version = "1.0.36" +version = "1.0.37" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "91cbe0913689d8e3939a5da4bfb7a898309d87419cf98f8e670332130340b3e7" +checksum = "864f41befa90102d4e02327679699a7e9510930e2924c529e31476086609fa89" dependencies = [ "alloy-primitives", "alloy-rpc-types-eth", @@ -807,9 +807,9 @@ dependencies = [ [[package]] name = "alloy-serde" -version = "1.0.36" +version = "1.0.37" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "19c3835bdc128f2f3418f5d6c76aec63a245d72973e0eaacc9720aa0787225c5" +checksum = "5413814be7a22fbc81e0f04a2401fcc3eb25e56fd53b04683e8acecc6e1fe01b" dependencies = [ "alloy-primitives", "serde", @@ -818,9 +818,9 @@ dependencies = [ [[package]] name = "alloy-signer" -version = "1.0.36" +version = "1.0.37" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "42084a7b455ef0b94ed201b7494392a759c3e20faac2d00ded5d5762fcf71dee" +checksum = "53410a18a61916e2c073a6519499514e027b01e77eeaf96acd1df7cf96ef6bb2" dependencies = [ "alloy-primitives", "async-trait", @@ -833,9 +833,9 @@ dependencies = [ [[package]] name = "alloy-signer-local" -version = "1.0.36" +version = "1.0.37" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6312ccc048a4a88aed7311fc448a2e23da55c60c2b3b6dcdb794f759d02e49d7" +checksum = "e6006c4cbfa5d08cadec1fcabea6cb56dc585a30a9fce40bcf81e307d6a71c8e" dependencies = [ "alloy-consensus", "alloy-network", @@ -922,9 +922,9 @@ dependencies = [ [[package]] name = "alloy-transport" -version = "1.0.36" +version = "1.0.37" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "68f77fa71f6dad3aa9b97ab6f6e90f257089fb9eaa959892d153a1011618e2d6" +checksum = "d94ee404368a3d9910dfe61b203e888c6b0e151a50e147f95da8baff9f9c7763" dependencies = [ "alloy-json-rpc", "alloy-primitives", @@ -946,9 +946,9 @@ dependencies = [ [[package]] name = "alloy-transport-http" -version = "1.0.36" +version = "1.0.37" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0ab1a5d0f5dd5e07187a4170bdcb7ceaff18b1133cd6b8585bc316ab442cd78a" +checksum = "a2f8a6338d594f6c6481292215ee8f2fd7b986c80aba23f3f44e761a8658de78" dependencies = [ "alloy-json-rpc", "alloy-transport", @@ -961,9 +961,9 @@ dependencies = [ [[package]] name = "alloy-transport-ipc" -version = "1.0.36" +version = "1.0.37" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "62764e672967d7f8a890c3d28c9c9a9fc781fba59e5d869898b08073c9deae3a" +checksum = "17a37a8ca18006fa0a58c7489645619ff58cfa073f2b29c4e052c9bd114b123a" dependencies = [ "alloy-json-rpc", "alloy-pubsub", @@ -981,9 +981,9 @@ dependencies = [ [[package]] name = "alloy-transport-ws" -version = "1.0.36" +version = "1.0.37" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6a21442472bad4494cfb1f11d975ae83059882a11cdda6a3aa8c0d2eb444beb6" +checksum = "679b0122b7bca9d4dc5eb2c0549677a3c53153f6e232f23f4b3ba5575f74ebde" dependencies = [ "alloy-pubsub", "alloy-transport", @@ -1031,9 +1031,9 @@ dependencies = [ [[package]] name = "alloy-tx-macros" -version = "1.0.36" +version = "1.0.37" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cc79013f9ac3a8ddeb60234d43da09e6d6abfc1c9dd29d3fe97adfbece3f4a08" +checksum = "e64c09ec565a90ed8390d82aa08cd3b22e492321b96cb4a3d4f58414683c9e2f" dependencies = [ "alloy-primitives", "darling 0.21.3", @@ -4651,8 +4651,8 @@ dependencies = [ [[package]] name = "reth-chainspec" -version = "1.8.1" -source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.8.1#e6608be51ea34424b8e3693cf1f946a3eb224736" +version = "1.8.2" +source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.8.2#9c30bf7af5e0d45deaf5917375c9922c16654b28" dependencies = [ "alloy-chains", "alloy-consensus", @@ -4671,8 +4671,8 @@ dependencies = [ [[package]] name = "reth-codecs" -version = "1.8.1" -source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.8.1#e6608be51ea34424b8e3693cf1f946a3eb224736" +version = "1.8.2" +source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.8.2#9c30bf7af5e0d45deaf5917375c9922c16654b28" dependencies = [ "alloy-consensus", "alloy-eips", @@ -4689,8 +4689,8 @@ dependencies = [ [[package]] name = "reth-codecs-derive" -version = "1.8.1" -source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.8.1#e6608be51ea34424b8e3693cf1f946a3eb224736" +version = "1.8.2" +source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.8.2#9c30bf7af5e0d45deaf5917375c9922c16654b28" dependencies = [ "convert_case", "proc-macro2", @@ -4700,8 +4700,8 @@ dependencies = [ [[package]] name = "reth-consensus" -version = "1.8.1" -source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.8.1#e6608be51ea34424b8e3693cf1f946a3eb224736" +version = "1.8.2" +source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.8.2#9c30bf7af5e0d45deaf5917375c9922c16654b28" dependencies = [ "alloy-consensus", "alloy-primitives", @@ -4713,8 +4713,8 @@ dependencies = [ [[package]] name = "reth-consensus-common" -version = "1.8.1" -source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.8.1#e6608be51ea34424b8e3693cf1f946a3eb224736" +version = "1.8.2" +source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.8.2#9c30bf7af5e0d45deaf5917375c9922c16654b28" dependencies = [ "alloy-consensus", "alloy-eips", @@ -4725,8 +4725,8 @@ dependencies = [ [[package]] name = "reth-db-models" -version = "1.8.1" -source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.8.1#e6608be51ea34424b8e3693cf1f946a3eb224736" +version = "1.8.2" +source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.8.2#9c30bf7af5e0d45deaf5917375c9922c16654b28" dependencies = [ "alloy-eips", "alloy-primitives", @@ -4737,8 +4737,8 @@ dependencies = [ [[package]] name = "reth-errors" -version = "1.8.1" -source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.8.1#e6608be51ea34424b8e3693cf1f946a3eb224736" +version = "1.8.2" +source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.8.2#9c30bf7af5e0d45deaf5917375c9922c16654b28" dependencies = [ "reth-consensus", "reth-execution-errors", @@ -4748,8 +4748,8 @@ dependencies = [ [[package]] name = "reth-ethereum-consensus" -version = "1.8.1" -source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.8.1#e6608be51ea34424b8e3693cf1f946a3eb224736" +version = "1.8.2" +source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.8.2#9c30bf7af5e0d45deaf5917375c9922c16654b28" dependencies = [ "alloy-consensus", "alloy-eips", @@ -4764,8 +4764,8 @@ dependencies = [ [[package]] name = "reth-ethereum-forks" -version = "1.8.1" -source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.8.1#e6608be51ea34424b8e3693cf1f946a3eb224736" +version = "1.8.2" +source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.8.2#9c30bf7af5e0d45deaf5917375c9922c16654b28" dependencies = [ "alloy-eip2124", "alloy-hardforks", @@ -4777,8 +4777,8 @@ dependencies = [ [[package]] name = "reth-ethereum-primitives" -version = "1.8.1" -source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.8.1#e6608be51ea34424b8e3693cf1f946a3eb224736" +version = "1.8.2" +source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.8.2#9c30bf7af5e0d45deaf5917375c9922c16654b28" dependencies = [ "alloy-consensus", "alloy-eips", @@ -4795,8 +4795,8 @@ dependencies = [ [[package]] name = "reth-evm" -version = "1.8.1" -source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.8.1#e6608be51ea34424b8e3693cf1f946a3eb224736" +version = "1.8.2" +source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.8.2#9c30bf7af5e0d45deaf5917375c9922c16654b28" dependencies = [ "alloy-consensus", "alloy-eips", @@ -4816,8 +4816,8 @@ dependencies = [ [[package]] name = "reth-evm-ethereum" -version = "1.8.1" -source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.8.1#e6608be51ea34424b8e3693cf1f946a3eb224736" +version = "1.8.2" +source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.8.2#9c30bf7af5e0d45deaf5917375c9922c16654b28" dependencies = [ "alloy-consensus", "alloy-eips", @@ -4837,8 +4837,8 @@ dependencies = [ [[package]] name = "reth-execution-errors" -version = "1.8.1" -source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.8.1#e6608be51ea34424b8e3693cf1f946a3eb224736" +version = "1.8.2" +source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.8.2#9c30bf7af5e0d45deaf5917375c9922c16654b28" dependencies = [ "alloy-evm", "alloy-primitives", @@ -4850,8 +4850,8 @@ dependencies = [ [[package]] name = "reth-execution-types" -version = "1.8.1" -source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.8.1#e6608be51ea34424b8e3693cf1f946a3eb224736" +version = "1.8.2" +source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.8.2#9c30bf7af5e0d45deaf5917375c9922c16654b28" dependencies = [ "alloy-consensus", "alloy-eips", @@ -4868,8 +4868,8 @@ dependencies = [ [[package]] name = "reth-network-peers" -version = "1.8.1" -source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.8.1#e6608be51ea34424b8e3693cf1f946a3eb224736" +version = "1.8.2" +source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.8.2#9c30bf7af5e0d45deaf5917375c9922c16654b28" dependencies = [ "alloy-primitives", "alloy-rlp", @@ -4881,8 +4881,8 @@ dependencies = [ [[package]] name = "reth-primitives-traits" -version = "1.8.1" -source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.8.1#e6608be51ea34424b8e3693cf1f946a3eb224736" +version = "1.8.2" +source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.8.2#9c30bf7af5e0d45deaf5917375c9922c16654b28" dependencies = [ "alloy-consensus", "alloy-eips", @@ -4908,8 +4908,8 @@ dependencies = [ [[package]] name = "reth-prune-types" -version = "1.8.1" -source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.8.1#e6608be51ea34424b8e3693cf1f946a3eb224736" +version = "1.8.2" +source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.8.2#9c30bf7af5e0d45deaf5917375c9922c16654b28" dependencies = [ "alloy-primitives", "derive_more", @@ -4919,8 +4919,8 @@ dependencies = [ [[package]] name = "reth-revm" -version = "1.8.1" -source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.8.1#e6608be51ea34424b8e3693cf1f946a3eb224736" +version = "1.8.2" +source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.8.2#9c30bf7af5e0d45deaf5917375c9922c16654b28" dependencies = [ "alloy-primitives", "reth-primitives-traits", @@ -4931,8 +4931,8 @@ dependencies = [ [[package]] name = "reth-stages-types" -version = "1.8.1" -source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.8.1#e6608be51ea34424b8e3693cf1f946a3eb224736" +version = "1.8.2" +source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.8.2#9c30bf7af5e0d45deaf5917375c9922c16654b28" dependencies = [ "alloy-primitives", "bytes", @@ -4942,8 +4942,8 @@ dependencies = [ [[package]] name = "reth-stateless" -version = "1.8.1" -source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.8.1#e6608be51ea34424b8e3693cf1f946a3eb224736" +version = "1.8.2" +source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.8.2#9c30bf7af5e0d45deaf5917375c9922c16654b28" dependencies = [ "alloy-consensus", "alloy-primitives", @@ -4968,8 +4968,8 @@ dependencies = [ [[package]] name = "reth-static-file-types" -version = "1.8.1" -source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.8.1#e6608be51ea34424b8e3693cf1f946a3eb224736" +version = "1.8.2" +source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.8.2#9c30bf7af5e0d45deaf5917375c9922c16654b28" dependencies = [ "alloy-primitives", "derive_more", @@ -4979,8 +4979,8 @@ dependencies = [ [[package]] name = "reth-storage-api" -version = "1.8.1" -source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.8.1#e6608be51ea34424b8e3693cf1f946a3eb224736" +version = "1.8.2" +source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.8.2#9c30bf7af5e0d45deaf5917375c9922c16654b28" dependencies = [ "alloy-consensus", "alloy-eips", @@ -5001,8 +5001,8 @@ dependencies = [ [[package]] name = "reth-storage-errors" -version = "1.8.1" -source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.8.1#e6608be51ea34424b8e3693cf1f946a3eb224736" +version = "1.8.2" +source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.8.2#9c30bf7af5e0d45deaf5917375c9922c16654b28" dependencies = [ "alloy-eips", "alloy-primitives", @@ -5017,8 +5017,8 @@ dependencies = [ [[package]] name = "reth-trie-common" -version = "1.8.1" -source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.8.1#e6608be51ea34424b8e3693cf1f946a3eb224736" +version = "1.8.2" +source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.8.2#9c30bf7af5e0d45deaf5917375c9922c16654b28" dependencies = [ "alloy-consensus", "alloy-primitives", @@ -5038,8 +5038,8 @@ dependencies = [ [[package]] name = "reth-trie-sparse" -version = "1.8.1" -source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.8.1#e6608be51ea34424b8e3693cf1f946a3eb224736" +version = "1.8.2" +source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.8.2#9c30bf7af5e0d45deaf5917375c9922c16654b28" dependencies = [ "alloy-primitives", "alloy-rlp", @@ -5054,8 +5054,8 @@ dependencies = [ [[package]] name = "reth-zstd-compressors" -version = "1.8.1" -source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.8.1#e6608be51ea34424b8e3693cf1f946a3eb224736" +version = "1.8.2" +source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.8.2#9c30bf7af5e0d45deaf5917375c9922c16654b28" dependencies = [ "zstd", ] diff --git a/Cargo.toml b/Cargo.toml index 77f52cbb4..f68644956 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -19,15 +19,15 @@ risc0-zkvm = "3.0.3" risc0-ethereum-trie = { git = "https://github.com/risc0/risc0-ethereum.git", tag = "v3.0.1" } # reth -reth-primitives-traits = { git = "https://github.com/paradigmxyz/reth.git", tag = "v1.8.1" } -reth-ethereum-primitives = { git = "https://github.com/paradigmxyz/reth.git", tag = "v1.8.1" } -reth-stateless = { git = "https://github.com/paradigmxyz/reth.git", tag = "v1.8.1" } -reth-chainspec = { git = "https://github.com/paradigmxyz/reth.git", tag = "v1.8.1" } -reth-errors = { git = "https://github.com/paradigmxyz/reth.git", tag = "v1.8.1" } -reth-evm = { git = "https://github.com/paradigmxyz/reth.git", tag = "v1.8.1" } -reth-evm-ethereum = { git = "https://github.com/paradigmxyz/reth.git", tag = "v1.8.1" } -reth-network-peers = { git = "https://github.com/paradigmxyz/reth.git", tag = "v1.8.1" } -reth-trie-common = { git = "https://github.com/paradigmxyz/reth.git", tag = "v1.8.1" } +reth-primitives-traits = { git = "https://github.com/paradigmxyz/reth.git", tag = "v1.8.2" } +reth-ethereum-primitives = { git = "https://github.com/paradigmxyz/reth.git", tag = "v1.8.2" } +reth-stateless = { git = "https://github.com/paradigmxyz/reth.git", tag = "v1.8.2" } +reth-chainspec = { git = "https://github.com/paradigmxyz/reth.git", tag = "v1.8.2" } +reth-errors = { git = "https://github.com/paradigmxyz/reth.git", tag = "v1.8.2" } +reth-evm = { git = "https://github.com/paradigmxyz/reth.git", tag = "v1.8.2" } +reth-evm-ethereum = { git = "https://github.com/paradigmxyz/reth.git", tag = "v1.8.2" } +reth-network-peers = { git = "https://github.com/paradigmxyz/reth.git", tag = "v1.8.2" } +reth-trie-common = { git = "https://github.com/paradigmxyz/reth.git", tag = "v1.8.2" } # revm revm = { version = "29.0.1", default-features = false } @@ -42,12 +42,12 @@ alloy-primitives = { version = "1.3.1", default-features = false, features = [ alloy-rlp = { version = "0.3.10", default-features = false } alloy-trie = { version = "0.9.1", default-features = false } -alloy-hardforks = "0.3.0" +alloy-hardforks = "0.3.5" -alloy = { version = "1.0.35", features = ["full"] } -alloy-consensus = { version = "1.0.35", default-features = false } -alloy-eips = { version = "1.0.35" } -alloy-genesis = { version = "1.0.35", default-features = false } +alloy = { version = "1.0.37", features = ["full"] } +alloy-consensus = { version = "1.0.37", default-features = false } +alloy-eips = { version = "1.0.37" } +alloy-genesis = { version = "1.0.37", default-features = false } # misc anyhow = "1.0" diff --git a/guests/stateless-client/Cargo.lock b/guests/stateless-client/Cargo.lock index 122cdcbef..1b5a8c453 100644 --- a/guests/stateless-client/Cargo.lock +++ b/guests/stateless-client/Cargo.lock @@ -59,9 +59,9 @@ dependencies = [ [[package]] name = "alloy-consensus" -version = "1.0.36" +version = "1.0.37" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0cd9d29a6a0bb8d4832ff7685dcbb430011b832f2ccec1af9571a0e75c1f7e9c" +checksum = "59094911f05dbff1cf5b29046a00ef26452eccc8d47136d50a47c0cf22f00c85" dependencies = [ "alloy-eips", "alloy-primitives", @@ -85,9 +85,9 @@ dependencies = [ [[package]] name = "alloy-consensus-any" -version = "1.0.36" +version = "1.0.37" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ce038cb325f9a85a10fb026fb1b70cb8c62a004d85d22f8516e5d173e3eec612" +checksum = "903cb8f728107ca27c816546f15be38c688df3c381d7bd1a4a9f215effc1ddb4" dependencies = [ "alloy-consensus", "alloy-eips", @@ -137,9 +137,9 @@ dependencies = [ [[package]] name = "alloy-eips" -version = "1.0.36" +version = "1.0.37" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4bfec530782b30151e2564edf3c900f1fa6852128b7a993e458e8e3815d8b915" +checksum = "ac7f1c9a1ccc7f3e03c36976455751a6166a4f0d2d2c530c3f87dfe7d0cdc836" dependencies = [ "alloy-eip2124", "alloy-eip2930", @@ -179,9 +179,9 @@ dependencies = [ [[package]] name = "alloy-genesis" -version = "1.0.36" +version = "1.0.37" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "956e6a23eb880dd93123e8ebea028584325b9af22f991eec2c499c54c277c073" +checksum = "1421f6c9d15e5b86afbfe5865ca84dea3b9f77173a0963c1a2ee4e626320ada9" dependencies = [ "alloy-eips", "alloy-primitives", @@ -218,9 +218,9 @@ dependencies = [ [[package]] name = "alloy-network-primitives" -version = "1.0.36" +version = "1.0.37" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1da0037ac546c0cae2eb776bed53687b7bbf776f4e7aa2fea0b8b89e734c319b" +checksum = "46e9374c667c95c41177602ebe6f6a2edd455193844f011d973d374b65501b38" dependencies = [ "alloy-consensus", "alloy-eips", @@ -280,9 +280,9 @@ dependencies = [ [[package]] name = "alloy-rpc-types-debug" -version = "1.0.36" +version = "1.0.37" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "27eaa6c63f551e35f835638397ce5c66d2ba14d0b17ce3bb286842e815b0fc94" +checksum = "aeff305b7d10cc1c888456d023e7bb8a5ea82e9e42b951e37619b88cc1a1486d" dependencies = [ "alloy-primitives", "derive_more", @@ -292,9 +292,9 @@ dependencies = [ [[package]] name = "alloy-rpc-types-engine" -version = "1.0.36" +version = "1.0.37" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d5dc8a9ba66f1a654d935584200fcd0b7fd34dac0ca19df024911899066b0583" +checksum = "222ecadcea6aac65e75e32b6735635ee98517aa63b111849ee01ae988a71d685" dependencies = [ "alloy-consensus", "alloy-eips", @@ -308,9 +308,9 @@ dependencies = [ [[package]] name = "alloy-rpc-types-eth" -version = "1.0.36" +version = "1.0.37" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "848f8ea4063bed834443081d77f840f31075f68d0d49723027f5a209615150bf" +checksum = "db46b0901ee16bbb68d986003c66dcb74a12f9d9b3c44f8e85d51974f2458f0f" dependencies = [ "alloy-consensus", "alloy-consensus-any", @@ -329,9 +329,9 @@ dependencies = [ [[package]] name = "alloy-serde" -version = "1.0.36" +version = "1.0.37" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "19c3835bdc128f2f3418f5d6c76aec63a245d72973e0eaacc9720aa0787225c5" +checksum = "5413814be7a22fbc81e0f04a2401fcc3eb25e56fd53b04683e8acecc6e1fe01b" dependencies = [ "alloy-primitives", "serde", @@ -442,9 +442,9 @@ dependencies = [ [[package]] name = "alloy-tx-macros" -version = "1.0.36" +version = "1.0.37" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cc79013f9ac3a8ddeb60234d43da09e6d6abfc1c9dd29d3fe97adfbece3f4a08" +checksum = "e64c09ec565a90ed8390d82aa08cd3b22e492321b96cb4a3d4f58414683c9e2f" dependencies = [ "alloy-primitives", "darling 0.21.3", @@ -3451,8 +3451,8 @@ dependencies = [ [[package]] name = "reth-chainspec" -version = "1.8.1" -source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.8.1#e6608be51ea34424b8e3693cf1f946a3eb224736" +version = "1.8.2" +source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.8.2#9c30bf7af5e0d45deaf5917375c9922c16654b28" dependencies = [ "alloy-chains", "alloy-consensus", @@ -3471,8 +3471,8 @@ dependencies = [ [[package]] name = "reth-codecs" -version = "1.8.1" -source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.8.1#e6608be51ea34424b8e3693cf1f946a3eb224736" +version = "1.8.2" +source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.8.2#9c30bf7af5e0d45deaf5917375c9922c16654b28" dependencies = [ "alloy-consensus", "alloy-eips", @@ -3489,8 +3489,8 @@ dependencies = [ [[package]] name = "reth-codecs-derive" -version = "1.8.1" -source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.8.1#e6608be51ea34424b8e3693cf1f946a3eb224736" +version = "1.8.2" +source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.8.2#9c30bf7af5e0d45deaf5917375c9922c16654b28" dependencies = [ "convert_case", "proc-macro2", @@ -3500,8 +3500,8 @@ dependencies = [ [[package]] name = "reth-consensus" -version = "1.8.1" -source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.8.1#e6608be51ea34424b8e3693cf1f946a3eb224736" +version = "1.8.2" +source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.8.2#9c30bf7af5e0d45deaf5917375c9922c16654b28" dependencies = [ "alloy-consensus", "alloy-primitives", @@ -3513,8 +3513,8 @@ dependencies = [ [[package]] name = "reth-consensus-common" -version = "1.8.1" -source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.8.1#e6608be51ea34424b8e3693cf1f946a3eb224736" +version = "1.8.2" +source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.8.2#9c30bf7af5e0d45deaf5917375c9922c16654b28" dependencies = [ "alloy-consensus", "alloy-eips", @@ -3525,8 +3525,8 @@ dependencies = [ [[package]] name = "reth-db-models" -version = "1.8.1" -source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.8.1#e6608be51ea34424b8e3693cf1f946a3eb224736" +version = "1.8.2" +source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.8.2#9c30bf7af5e0d45deaf5917375c9922c16654b28" dependencies = [ "alloy-eips", "alloy-primitives", @@ -3537,8 +3537,8 @@ dependencies = [ [[package]] name = "reth-errors" -version = "1.8.1" -source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.8.1#e6608be51ea34424b8e3693cf1f946a3eb224736" +version = "1.8.2" +source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.8.2#9c30bf7af5e0d45deaf5917375c9922c16654b28" dependencies = [ "reth-consensus", "reth-execution-errors", @@ -3548,8 +3548,8 @@ dependencies = [ [[package]] name = "reth-ethereum-consensus" -version = "1.8.1" -source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.8.1#e6608be51ea34424b8e3693cf1f946a3eb224736" +version = "1.8.2" +source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.8.2#9c30bf7af5e0d45deaf5917375c9922c16654b28" dependencies = [ "alloy-consensus", "alloy-eips", @@ -3564,8 +3564,8 @@ dependencies = [ [[package]] name = "reth-ethereum-forks" -version = "1.8.1" -source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.8.1#e6608be51ea34424b8e3693cf1f946a3eb224736" +version = "1.8.2" +source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.8.2#9c30bf7af5e0d45deaf5917375c9922c16654b28" dependencies = [ "alloy-eip2124", "alloy-hardforks", @@ -3577,8 +3577,8 @@ dependencies = [ [[package]] name = "reth-ethereum-primitives" -version = "1.8.1" -source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.8.1#e6608be51ea34424b8e3693cf1f946a3eb224736" +version = "1.8.2" +source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.8.2#9c30bf7af5e0d45deaf5917375c9922c16654b28" dependencies = [ "alloy-consensus", "alloy-eips", @@ -3595,8 +3595,8 @@ dependencies = [ [[package]] name = "reth-evm" -version = "1.8.1" -source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.8.1#e6608be51ea34424b8e3693cf1f946a3eb224736" +version = "1.8.2" +source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.8.2#9c30bf7af5e0d45deaf5917375c9922c16654b28" dependencies = [ "alloy-consensus", "alloy-eips", @@ -3616,8 +3616,8 @@ dependencies = [ [[package]] name = "reth-evm-ethereum" -version = "1.8.1" -source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.8.1#e6608be51ea34424b8e3693cf1f946a3eb224736" +version = "1.8.2" +source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.8.2#9c30bf7af5e0d45deaf5917375c9922c16654b28" dependencies = [ "alloy-consensus", "alloy-eips", @@ -3637,8 +3637,8 @@ dependencies = [ [[package]] name = "reth-execution-errors" -version = "1.8.1" -source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.8.1#e6608be51ea34424b8e3693cf1f946a3eb224736" +version = "1.8.2" +source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.8.2#9c30bf7af5e0d45deaf5917375c9922c16654b28" dependencies = [ "alloy-evm", "alloy-primitives", @@ -3650,8 +3650,8 @@ dependencies = [ [[package]] name = "reth-execution-types" -version = "1.8.1" -source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.8.1#e6608be51ea34424b8e3693cf1f946a3eb224736" +version = "1.8.2" +source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.8.2#9c30bf7af5e0d45deaf5917375c9922c16654b28" dependencies = [ "alloy-consensus", "alloy-eips", @@ -3668,8 +3668,8 @@ dependencies = [ [[package]] name = "reth-network-peers" -version = "1.8.1" -source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.8.1#e6608be51ea34424b8e3693cf1f946a3eb224736" +version = "1.8.2" +source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.8.2#9c30bf7af5e0d45deaf5917375c9922c16654b28" dependencies = [ "alloy-primitives", "alloy-rlp", @@ -3681,8 +3681,8 @@ dependencies = [ [[package]] name = "reth-primitives-traits" -version = "1.8.1" -source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.8.1#e6608be51ea34424b8e3693cf1f946a3eb224736" +version = "1.8.2" +source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.8.2#9c30bf7af5e0d45deaf5917375c9922c16654b28" dependencies = [ "alloy-consensus", "alloy-eips", @@ -3708,8 +3708,8 @@ dependencies = [ [[package]] name = "reth-prune-types" -version = "1.8.1" -source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.8.1#e6608be51ea34424b8e3693cf1f946a3eb224736" +version = "1.8.2" +source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.8.2#9c30bf7af5e0d45deaf5917375c9922c16654b28" dependencies = [ "alloy-primitives", "derive_more", @@ -3719,8 +3719,8 @@ dependencies = [ [[package]] name = "reth-revm" -version = "1.8.1" -source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.8.1#e6608be51ea34424b8e3693cf1f946a3eb224736" +version = "1.8.2" +source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.8.2#9c30bf7af5e0d45deaf5917375c9922c16654b28" dependencies = [ "alloy-primitives", "reth-primitives-traits", @@ -3731,8 +3731,8 @@ dependencies = [ [[package]] name = "reth-stages-types" -version = "1.8.1" -source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.8.1#e6608be51ea34424b8e3693cf1f946a3eb224736" +version = "1.8.2" +source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.8.2#9c30bf7af5e0d45deaf5917375c9922c16654b28" dependencies = [ "alloy-primitives", "bytes", @@ -3742,8 +3742,8 @@ dependencies = [ [[package]] name = "reth-stateless" -version = "1.8.1" -source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.8.1#e6608be51ea34424b8e3693cf1f946a3eb224736" +version = "1.8.2" +source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.8.2#9c30bf7af5e0d45deaf5917375c9922c16654b28" dependencies = [ "alloy-consensus", "alloy-primitives", @@ -3768,8 +3768,8 @@ dependencies = [ [[package]] name = "reth-static-file-types" -version = "1.8.1" -source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.8.1#e6608be51ea34424b8e3693cf1f946a3eb224736" +version = "1.8.2" +source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.8.2#9c30bf7af5e0d45deaf5917375c9922c16654b28" dependencies = [ "alloy-primitives", "derive_more", @@ -3779,8 +3779,8 @@ dependencies = [ [[package]] name = "reth-storage-api" -version = "1.8.1" -source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.8.1#e6608be51ea34424b8e3693cf1f946a3eb224736" +version = "1.8.2" +source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.8.2#9c30bf7af5e0d45deaf5917375c9922c16654b28" dependencies = [ "alloy-consensus", "alloy-eips", @@ -3801,8 +3801,8 @@ dependencies = [ [[package]] name = "reth-storage-errors" -version = "1.8.1" -source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.8.1#e6608be51ea34424b8e3693cf1f946a3eb224736" +version = "1.8.2" +source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.8.2#9c30bf7af5e0d45deaf5917375c9922c16654b28" dependencies = [ "alloy-eips", "alloy-primitives", @@ -3817,8 +3817,8 @@ dependencies = [ [[package]] name = "reth-trie-common" -version = "1.8.1" -source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.8.1#e6608be51ea34424b8e3693cf1f946a3eb224736" +version = "1.8.2" +source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.8.2#9c30bf7af5e0d45deaf5917375c9922c16654b28" dependencies = [ "alloy-consensus", "alloy-primitives", @@ -3838,8 +3838,8 @@ dependencies = [ [[package]] name = "reth-trie-sparse" -version = "1.8.1" -source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.8.1#e6608be51ea34424b8e3693cf1f946a3eb224736" +version = "1.8.2" +source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.8.2#9c30bf7af5e0d45deaf5917375c9922c16654b28" dependencies = [ "alloy-primitives", "alloy-rlp", @@ -3854,8 +3854,8 @@ dependencies = [ [[package]] name = "reth-zstd-compressors" -version = "1.8.1" -source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.8.1#e6608be51ea34424b8e3693cf1f946a3eb224736" +version = "1.8.2" +source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.8.2#9c30bf7af5e0d45deaf5917375c9922c16654b28" dependencies = [ "zstd", ] From fefe6eda8315be8dc17a73ab571d63ea6ddb7116 Mon Sep 17 00:00:00 2001 From: Wolfgang Welz Date: Tue, 11 Nov 2025 15:56:30 +0100 Subject: [PATCH 05/22] update reth to v1.9.1 --- Cargo.lock | 1554 ++++++++++++++-------------- Cargo.toml | 30 +- crates/core/Cargo.toml | 2 - crates/core/src/lib.rs | 56 +- crates/host/Cargo.toml | 1 - crates/host/src/lib.rs | 10 +- crates/rpc-proxy/Cargo.toml | 1 + guests/stateless-client/Cargo.lock | 1329 +++++++++++------------- guests/stateless-client/Cargo.toml | 7 +- 9 files changed, 1420 insertions(+), 1570 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index e4ff0b1ac..5b7aea938 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -8,7 +8,7 @@ version = "0.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5f7b0a21988c1bf877cf4759ef5ddaac04c1c9fe808c9142ecb78ba97d97a28a" dependencies = [ - "bitflags 2.9.4", + "bitflags 2.10.0", "bytes", "futures-core", "futures-sink", @@ -21,23 +21,23 @@ dependencies = [ [[package]] name = "actix-http" -version = "3.11.1" +version = "3.11.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "44cceded2fb55f3c4b67068fa64962e2ca59614edc5b03167de9ff82ae803da0" +checksum = "7926860314cbe2fb5d1f13731e387ab43bd32bca224e82e6e2db85de0a3dba49" dependencies = [ "actix-codec", "actix-rt", "actix-service", "actix-utils", "base64", - "bitflags 2.9.4", + "bitflags 2.10.0", "brotli", "bytes", "bytestring", "derive_more", "encoding_rs", "flate2", - "foldhash", + "foldhash 0.1.5", "futures-core", "h2 0.3.27", "http 0.2.12", @@ -65,7 +65,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e01ed3140b2f8d422c68afa1ed2e85d996ea619c988ac834d255db32138655cb" dependencies = [ "quote", - "syn 2.0.106", + "syn 2.0.110", ] [[package]] @@ -151,7 +151,7 @@ dependencies = [ "cookie", "derive_more", "encoding_rs", - "foldhash", + "foldhash 0.1.5", "futures-core", "futures-util", "impl-more", @@ -182,16 +182,7 @@ dependencies = [ "actix-router", "proc-macro2", "quote", - "syn 2.0.106", -] - -[[package]] -name = "addr2line" -version = "0.24.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dfbe277e56a376000877090da837660b4427aad530e3028d44e0bffe4f89a1c1" -dependencies = [ - "gimli", + "syn 2.0.110", ] [[package]] @@ -214,9 +205,9 @@ dependencies = [ [[package]] name = "aho-corasick" -version = "1.1.3" +version = "1.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8e60d3430d3a69478ad0993f19238d2df97c507009a52b3c10addcd7f6bcb916" +checksum = "ddd31a130427c27518df266943a5308ed92d4b226cc639f5a8f1002816174301" dependencies = [ "memchr", ] @@ -244,9 +235,9 @@ checksum = "683d7910e743518b0e34f1186f92494becacb047c7b6bf616c96772180fef923" [[package]] name = "alloy" -version = "1.0.37" +version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7f6cfe35f100bc496007c9a00f90b88bdf565f1421d4c707c9f07e0717e2aaad" +checksum = "e01db470290bb814e0485fa79aba6e36bb5d221c2e3cfeba5fba05a8a2ca8dad" dependencies = [ "alloy-consensus", "alloy-contract", @@ -270,9 +261,9 @@ dependencies = [ [[package]] name = "alloy-chains" -version = "0.2.9" +version = "0.2.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ef8ff73a143281cb77c32006b04af9c047a6b8fe5860e85a88ad325328965355" +checksum = "6068f356948cd84b5ad9ac30c50478e433847f14a50714d2b68f15d052724049" dependencies = [ "alloy-primitives", "alloy-rlp", @@ -283,9 +274,9 @@ dependencies = [ [[package]] name = "alloy-consensus" -version = "1.0.37" +version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "59094911f05dbff1cf5b29046a00ef26452eccc8d47136d50a47c0cf22f00c85" +checksum = "90d103d3e440ad6f703dd71a5b58a6abd24834563bde8a5fabe706e00242f810" dependencies = [ "alloy-eips", "alloy-primitives", @@ -309,9 +300,9 @@ dependencies = [ [[package]] name = "alloy-consensus-any" -version = "1.0.37" +version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "903cb8f728107ca27c816546f15be38c688df3c381d7bd1a4a9f215effc1ddb4" +checksum = "48ead76c8c84ab3a50c31c56bc2c748c2d64357ad2131c32f9b10ab790a25e1a" dependencies = [ "alloy-consensus", "alloy-eips", @@ -323,9 +314,9 @@ dependencies = [ [[package]] name = "alloy-contract" -version = "1.0.37" +version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "03df5cb3b428ac96b386ad64c11d5c6e87a5505682cf1fbd6f8f773e9eda04f6" +checksum = "d5903097e4c131ad2dd80d87065f23c715ccb9cdb905fa169dffab8e1e798bae" dependencies = [ "alloy-consensus", "alloy-dyn-abi", @@ -346,9 +337,9 @@ dependencies = [ [[package]] name = "alloy-core" -version = "1.3.1" +version = "1.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bfe6c56d58fbfa9f0f6299376e8ce33091fc6494239466814c3f54b55743cb09" +checksum = "5ca96214615ec8cf3fa2a54b32f486eb49100ca7fe7eb0b8c1137cd316e7250a" dependencies = [ "alloy-dyn-abi", "alloy-json-abi", @@ -359,9 +350,9 @@ dependencies = [ [[package]] name = "alloy-dyn-abi" -version = "1.3.1" +version = "1.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a3f56873f3cac7a2c63d8e98a4314b8311aa96adb1a0f82ae923eb2119809d2c" +checksum = "3fdff496dd4e98a81f4861e66f7eaf5f2488971848bb42d9c892f871730245c8" dependencies = [ "alloy-json-abi", "alloy-primitives", @@ -388,23 +379,25 @@ dependencies = [ [[package]] name = "alloy-eip2930" -version = "0.2.1" +version = "0.2.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7b82752a889170df67bbb36d42ca63c531eb16274f0d7299ae2a680facba17bd" +checksum = "9441120fa82df73e8959ae0e4ab8ade03de2aaae61be313fbf5746277847ce25" dependencies = [ "alloy-primitives", "alloy-rlp", + "borsh", "serde", ] [[package]] name = "alloy-eip7702" -version = "0.6.1" +version = "0.6.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9d4769c6ffddca380b0070d71c8b7f30bed375543fe76bb2f74ec0acf4b7cd16" +checksum = "2919c5a56a1007492da313e7a3b6d45ef5edc5d33416fdec63c0d7a2702a0d20" dependencies = [ "alloy-primitives", "alloy-rlp", + "borsh", "k256", "serde", "serde_with", @@ -413,9 +406,9 @@ dependencies = [ [[package]] name = "alloy-eips" -version = "1.0.37" +version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ac7f1c9a1ccc7f3e03c36976455751a6166a4f0d2d2c530c3f87dfe7d0cdc836" +checksum = "7bdbec74583d0067798d77afa43d58f00d93035335d7ceaa5d3f93857d461bb9" dependencies = [ "alloy-eip2124", "alloy-eip2930", @@ -427,27 +420,31 @@ dependencies = [ "c-kzg", "derive_more", "either", + "ethereum_ssz", + "ethereum_ssz_derive", "serde", "serde_with", - "sha2 0.10.9", + "sha2", "thiserror", ] [[package]] name = "alloy-evm" -version = "0.21.1" +version = "0.23.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "48e536feefca2ba96c75798ac75a31046e8adfcefecdb6653803361045cc65b9" +checksum = "6223235f0b785a83dd10dc1599b7f3763c65e4f98b4e9e4e10e576bbbdf7dfa2" dependencies = [ "alloy-consensus", "alloy-eips", "alloy-hardforks", "alloy-primitives", + "alloy-rpc-types-engine", "alloy-rpc-types-eth", "alloy-sol-types", "auto_impl", "derive_more", "op-alloy-consensus", + "op-alloy-rpc-types-engine", "op-revm", "revm", "thiserror", @@ -455,9 +452,9 @@ dependencies = [ [[package]] name = "alloy-genesis" -version = "1.0.37" +version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1421f6c9d15e5b86afbfe5865ca84dea3b9f77173a0963c1a2ee4e626320ada9" +checksum = "c25d5acb35706e683df1ea333c862bdb6b7c5548836607cd5bb56e501cca0b4f" dependencies = [ "alloy-eips", "alloy-primitives", @@ -469,9 +466,9 @@ dependencies = [ [[package]] name = "alloy-hardforks" -version = "0.3.5" +version = "0.4.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "889eb3949b58368a09d4f16931c660275ef5fb08e5fbd4a96573b19c7085c41f" +checksum = "1e29d7eacf42f89c21d7f089916d0bdb4f36139a31698790e8837d2dbbd4b2c3" dependencies = [ "alloy-chains", "alloy-eip2124", @@ -482,9 +479,9 @@ dependencies = [ [[package]] name = "alloy-json-abi" -version = "1.3.1" +version = "1.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "125a1c373261b252e53e04d6e92c37d881833afc1315fceab53fd46045695640" +checksum = "5513d5e6bd1cba6bdcf5373470f559f320c05c8c59493b6e98912fbe6733943f" dependencies = [ "alloy-primitives", "alloy-sol-type-parser", @@ -494,9 +491,9 @@ dependencies = [ [[package]] name = "alloy-json-rpc" -version = "1.0.37" +version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "65f763621707fa09cece30b73ecc607eb43fd7a72451fe3b46f645b905086926" +checksum = "31b67c5a702121e618217f7a86f314918acb2622276d0273490e2d4534490bc0" dependencies = [ "alloy-primitives", "alloy-sol-types", @@ -509,9 +506,9 @@ dependencies = [ [[package]] name = "alloy-network" -version = "1.0.37" +version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2f59a869fa4b4c3a7f08b1c8cb79aec61c29febe6e24a24fe0fcfded8a9b5703" +checksum = "612296e6b723470bb1101420a73c63dfd535aa9bf738ce09951aedbd4ab7292e" dependencies = [ "alloy-consensus", "alloy-consensus-any", @@ -535,9 +532,9 @@ dependencies = [ [[package]] name = "alloy-network-primitives" -version = "1.0.37" +version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "46e9374c667c95c41177602ebe6f6a2edd455193844f011d973d374b65501b38" +checksum = "a0e7918396eecd69d9c907046ec8a93fb09b89e2f325d5e7ea9c4e3929aa0dd2" dependencies = [ "alloy-consensus", "alloy-eips", @@ -548,18 +545,18 @@ dependencies = [ [[package]] name = "alloy-primitives" -version = "1.3.1" +version = "1.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bc9485c56de23438127a731a6b4c87803d49faf1a7068dcd1d8768aca3a9edb9" +checksum = "355bf68a433e0fd7f7d33d5a9fc2583fde70bf5c530f63b80845f8da5505cf28" dependencies = [ "alloy-rlp", "bytes", "cfg-if", "const-hex", "derive_more", - "foldhash", - "hashbrown 0.15.5", - "indexmap 2.11.0", + "foldhash 0.2.0", + "hashbrown 0.16.0", + "indexmap 2.12.0", "itoa", "k256", "keccak-asm", @@ -575,9 +572,9 @@ dependencies = [ [[package]] name = "alloy-provider" -version = "1.0.37" +version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "77818b7348bd5486491a5297579dbfe5f706a81f8e1f5976393025f1e22a7c7d" +checksum = "55c1313a527a2e464d067c031f3c2ec073754ef615cc0eabca702fd0fe35729c" dependencies = [ "alloy-chains", "alloy-consensus", @@ -621,9 +618,9 @@ dependencies = [ [[package]] name = "alloy-pubsub" -version = "1.0.37" +version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "249b45103a66c9ad60ad8176b076106d03a2399a37f0ee7b0e03692e6b354cb9" +checksum = "810766eeed6b10ffa11815682b3f37afc5019809e3b470b23555297d5770ce63" dependencies = [ "alloy-json-rpc", "alloy-primitives", @@ -660,14 +657,14 @@ checksum = "64b728d511962dda67c1bc7ea7c03736ec275ed2cf4c35d9585298ac9ccf3b73" dependencies = [ "proc-macro2", "quote", - "syn 2.0.106", + "syn 2.0.110", ] [[package]] name = "alloy-rpc-client" -version = "1.0.37" +version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2430d5623e428dd012c6c2156ae40b7fe638d6fca255e3244e0fba51fa698e93" +checksum = "45f802228273056528dfd6cc8845cc91a7c7e0c6fc1a66d19e8673743dacdc7e" dependencies = [ "alloy-json-rpc", "alloy-primitives", @@ -691,9 +688,9 @@ dependencies = [ [[package]] name = "alloy-rpc-types" -version = "1.0.37" +version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e9e131624d08a25cfc40557041e7dc42e1182fa1153e7592d120f769a1edce56" +checksum = "33ff3df608dcabd6bdd197827ff2b8faaa6cefe0c462f7dc5e74108666a01f56" dependencies = [ "alloy-primitives", "alloy-rpc-types-anvil", @@ -708,9 +705,9 @@ dependencies = [ [[package]] name = "alloy-rpc-types-anvil" -version = "1.0.37" +version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d65e3266095e6d8e8028aab5f439c6b8736c5147314f7e606c61597e014cb8a0" +checksum = "ac2bc988d7455e02dfb53460e1caa61f932b3f8452e12424e68ba8dcf60bba90" dependencies = [ "alloy-primitives", "alloy-rpc-types-eth", @@ -720,9 +717,9 @@ dependencies = [ [[package]] name = "alloy-rpc-types-any" -version = "1.0.37" +version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "07429a1099cd17227abcddb91b5e38c960aaeb02a6967467f5bb561fbe716ac6" +checksum = "cdbf6d1766ca41e90ac21c4bc5cbc5e9e965978a25873c3f90b3992d905db4cb" dependencies = [ "alloy-consensus-any", "alloy-rpc-types-eth", @@ -731,9 +728,9 @@ dependencies = [ [[package]] name = "alloy-rpc-types-debug" -version = "1.0.37" +version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aeff305b7d10cc1c888456d023e7bb8a5ea82e9e42b951e37619b88cc1a1486d" +checksum = "977698b458738369ba5ca645d2cdb4d51ba07a81db37306ff85322853161ea3a" dependencies = [ "alloy-primitives", "derive_more", @@ -743,9 +740,9 @@ dependencies = [ [[package]] name = "alloy-rpc-types-engine" -version = "1.0.37" +version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "222ecadcea6aac65e75e32b6735635ee98517aa63b111849ee01ae988a71d685" +checksum = "07da696cc7fbfead4b1dda8afe408685cae80975cbb024f843ba74d9639cd0d3" dependencies = [ "alloy-consensus", "alloy-eips", @@ -753,6 +750,8 @@ dependencies = [ "alloy-rlp", "alloy-serde", "derive_more", + "ethereum_ssz", + "ethereum_ssz_derive", "rand 0.8.5", "serde", "strum", @@ -760,9 +759,9 @@ dependencies = [ [[package]] name = "alloy-rpc-types-eth" -version = "1.0.37" +version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "db46b0901ee16bbb68d986003c66dcb74a12f9d9b3c44f8e85d51974f2458f0f" +checksum = "a15e4831b71eea9d20126a411c1c09facf1d01d5cac84fd51d532d3c429cfc26" dependencies = [ "alloy-consensus", "alloy-consensus-any", @@ -781,9 +780,9 @@ dependencies = [ [[package]] name = "alloy-rpc-types-trace" -version = "1.0.37" +version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "36f10620724bd45f80c79668a8cdbacb6974f860686998abce28f6196ae79444" +checksum = "fb0c800e2ce80829fca1491b3f9063c29092850dc6cf19249d5f678f0ce71bb0" dependencies = [ "alloy-primitives", "alloy-rpc-types-eth", @@ -795,9 +794,9 @@ dependencies = [ [[package]] name = "alloy-rpc-types-txpool" -version = "1.0.37" +version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "864f41befa90102d4e02327679699a7e9510930e2924c529e31476086609fa89" +checksum = "2f82e3068673a3cf93fbbc2f60a59059395cd54bbe39af895827faa5e641cc8f" dependencies = [ "alloy-primitives", "alloy-rpc-types-eth", @@ -807,9 +806,9 @@ dependencies = [ [[package]] name = "alloy-serde" -version = "1.0.37" +version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5413814be7a22fbc81e0f04a2401fcc3eb25e56fd53b04683e8acecc6e1fe01b" +checksum = "751d1887f7d202514a82c5b3caf28ee8bd4a2ad9549e4f498b6f0bff99b52add" dependencies = [ "alloy-primitives", "serde", @@ -818,9 +817,9 @@ dependencies = [ [[package]] name = "alloy-signer" -version = "1.0.37" +version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "53410a18a61916e2c073a6519499514e027b01e77eeaf96acd1df7cf96ef6bb2" +checksum = "9cf0b42ffbf558badfecf1dde0c3c5ed91f29bb7e97876d0bed008c3d5d67171" dependencies = [ "alloy-primitives", "async-trait", @@ -833,9 +832,9 @@ dependencies = [ [[package]] name = "alloy-signer-local" -version = "1.0.37" +version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e6006c4cbfa5d08cadec1fcabea6cb56dc585a30a9fce40bcf81e307d6a71c8e" +checksum = "3e7d555ee5f27be29af4ae312be014b57c6cff9acb23fe2cf008500be6ca7e33" dependencies = [ "alloy-consensus", "alloy-network", @@ -849,42 +848,42 @@ dependencies = [ [[package]] name = "alloy-sol-macro" -version = "1.3.1" +version = "1.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d20d867dcf42019d4779519a1ceb55eba8d7f3d0e4f0a89bcba82b8f9eb01e48" +checksum = "f3ce480400051b5217f19d6e9a82d9010cdde20f1ae9c00d53591e4a1afbb312" dependencies = [ "alloy-sol-macro-expander", "alloy-sol-macro-input", "proc-macro-error2", "proc-macro2", "quote", - "syn 2.0.106", + "syn 2.0.110", ] [[package]] name = "alloy-sol-macro-expander" -version = "1.3.1" +version = "1.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b74e91b0b553c115d14bd0ed41898309356dc85d0e3d4b9014c4e7715e48c8ad" +checksum = "6d792e205ed3b72f795a8044c52877d2e6b6e9b1d13f431478121d8d4eaa9028" dependencies = [ "alloy-json-abi", "alloy-sol-macro-input", "const-hex", "heck", - "indexmap 2.11.0", + "indexmap 2.12.0", "proc-macro-error2", "proc-macro2", "quote", - "syn 2.0.106", + "syn 2.0.110", "syn-solidity", "tiny-keccak", ] [[package]] name = "alloy-sol-macro-input" -version = "1.3.1" +version = "1.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "84194d31220803f5f62d0a00f583fd3a062b36382e2bea446f1af96727754565" +checksum = "0bd1247a8f90b465ef3f1207627547ec16940c35597875cdc09c49d58b19693c" dependencies = [ "alloy-json-abi", "const-hex", @@ -894,15 +893,15 @@ dependencies = [ "proc-macro2", "quote", "serde_json", - "syn 2.0.106", + "syn 2.0.110", "syn-solidity", ] [[package]] name = "alloy-sol-type-parser" -version = "1.3.1" +version = "1.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fe8c27b3cf6b2bb8361904732f955bc7c05e00be5f469cec7e2280b6167f3ff0" +checksum = "954d1b2533b9b2c7959652df3076954ecb1122a28cc740aa84e7b0a49f6ac0a9" dependencies = [ "serde", "winnow", @@ -910,9 +909,9 @@ dependencies = [ [[package]] name = "alloy-sol-types" -version = "1.3.1" +version = "1.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f5383d34ea00079e6dd89c652bcbdb764db160cef84e6250926961a0b2295d04" +checksum = "70319350969a3af119da6fb3e9bddb1bce66c9ea933600cb297c8b1850ad2a3c" dependencies = [ "alloy-json-abi", "alloy-primitives", @@ -922,12 +921,11 @@ dependencies = [ [[package]] name = "alloy-transport" -version = "1.0.37" +version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d94ee404368a3d9910dfe61b203e888c6b0e151a50e147f95da8baff9f9c7763" +checksum = "71b3deee699d6f271eab587624a9fa84d02d0755db7a95a043d52a6488d16ebe" dependencies = [ "alloy-json-rpc", - "alloy-primitives", "auto_impl", "base64", "derive_more", @@ -946,9 +944,9 @@ dependencies = [ [[package]] name = "alloy-transport-http" -version = "1.0.37" +version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a2f8a6338d594f6c6481292215ee8f2fd7b986c80aba23f3f44e761a8658de78" +checksum = "1720bd2ba8fe7e65138aca43bb0f680e4e0bcbd3ca39bf9d3035c9d7d2757f24" dependencies = [ "alloy-json-rpc", "alloy-transport", @@ -961,9 +959,9 @@ dependencies = [ [[package]] name = "alloy-transport-ipc" -version = "1.0.37" +version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "17a37a8ca18006fa0a58c7489645619ff58cfa073f2b29c4e052c9bd114b123a" +checksum = "ea89c214c7ddd2bcad100da929d6b642bbfed85788caf3b1be473abacd3111f9" dependencies = [ "alloy-json-rpc", "alloy-pubsub", @@ -981,9 +979,9 @@ dependencies = [ [[package]] name = "alloy-transport-ws" -version = "1.0.37" +version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "679b0122b7bca9d4dc5eb2c0549677a3c53153f6e232f23f4b3ba5575f74ebde" +checksum = "571aadf0afce0d515a28b2c6352662a39cb9f48b4eeff9a5c34557d6ea126730" dependencies = [ "alloy-pubsub", "alloy-transport", @@ -1023,7 +1021,7 @@ dependencies = [ "alloy-rlp", "arrayvec", "derive_more", - "nybbles 0.4.3", + "nybbles 0.4.6", "serde", "smallvec", "tracing", @@ -1031,15 +1029,14 @@ dependencies = [ [[package]] name = "alloy-tx-macros" -version = "1.0.37" +version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e64c09ec565a90ed8390d82aa08cd3b22e492321b96cb4a3d4f58414683c9e2f" +checksum = "cd7ce8ed34106acd6e21942022b6a15be6454c2c3ead4d76811d3bdcd63cf771" dependencies = [ - "alloy-primitives", "darling 0.21.3", "proc-macro2", "quote", - "syn 2.0.106", + "syn 2.0.110", ] [[package]] @@ -1053,9 +1050,9 @@ dependencies = [ [[package]] name = "anstream" -version = "0.6.20" +version = "0.6.21" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3ae563653d1938f79b1ab1b5e668c87c76a9930414574a6583a7b7e11a8e6192" +checksum = "43d5b281e737544384e969a5ccad3f1cdd24b48086a0fc1b2a5262a26b8f4f4a" dependencies = [ "anstyle", "anstyle-parse", @@ -1068,9 +1065,9 @@ dependencies = [ [[package]] name = "anstyle" -version = "1.0.11" +version = "1.0.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "862ed96ca487e809f1c8e5a8447f6ee2cf102f846893800b20cebdf541fc6bbd" +checksum = "5192cca8006f1fd4f7237516f40fa183bb07f8fbdfedaa0036de5ea9b0b45e78" [[package]] name = "anstyle-parse" @@ -1103,9 +1100,9 @@ dependencies = [ [[package]] name = "anyhow" -version = "1.0.99" +version = "1.0.100" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b0674a1ddeecb70197781e945de4b3b8ffb61fa939a5597bcf48503737663100" +checksum = "a23eb6b1614318a8071c9b2521f36b424b2c83db5eb3a0fead4a6c0809af6e61" [[package]] name = "ark-bls12-381" @@ -1150,7 +1147,7 @@ dependencies = [ "digest 0.10.7", "fnv", "merlin", - "sha2 0.10.9", + "sha2", ] [[package]] @@ -1161,7 +1158,7 @@ checksum = "e7e89fe77d1f0f4fe5b96dfc940923d88d17b6a773808124f21e764dfb063c6a" dependencies = [ "proc-macro2", "quote", - "syn 2.0.106", + "syn 2.0.110", ] [[package]] @@ -1270,7 +1267,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "62945a2f7e6de02a31fe400aa489f0e0f5b2502e69f95f853adb82a96c7a6b60" dependencies = [ "quote", - "syn 2.0.106", + "syn 2.0.110", ] [[package]] @@ -1308,7 +1305,7 @@ dependencies = [ "num-traits", "proc-macro2", "quote", - "syn 2.0.106", + "syn 2.0.110", ] [[package]] @@ -1412,7 +1409,7 @@ checksum = "213888f660fddcca0d257e88e54ac05bca01885f258ccdf695bafd77031bb69d" dependencies = [ "proc-macro2", "quote", - "syn 2.0.106", + "syn 2.0.110", ] [[package]] @@ -1497,7 +1494,7 @@ checksum = "c7c24de15d275a1ecfd47a380fb4d5ec9bfe0933f309ed5e705b775596a3574d" dependencies = [ "proc-macro2", "quote", - "syn 2.0.106", + "syn 2.0.110", ] [[package]] @@ -1508,7 +1505,7 @@ checksum = "9035ad2d096bed7955a320ee7e2230574d28fd3c3a0f186cbea1ff3c7eed5dbb" dependencies = [ "proc-macro2", "quote", - "syn 2.0.106", + "syn 2.0.110", ] [[package]] @@ -1546,7 +1543,7 @@ checksum = "ffdcb70bdbc4d478427380519163274ac86e52916e10f0a8889adf0f96d3fee7" dependencies = [ "proc-macro2", "quote", - "syn 2.0.106", + "syn 2.0.110", ] [[package]] @@ -1561,21 +1558,6 @@ version = "1.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7b7e4c2464d97fe331d41de9d5db0def0a96f4d823b8b32a2efd503578988973" -[[package]] -name = "backtrace" -version = "0.3.75" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6806a6321ec58106fea15becdad98371e28d92ccbc7c8f1b3b6dd724fe8f1002" -dependencies = [ - "addr2line", - "cfg-if", - "libc", - "miniz_oxide", - "object", - "rustc-demangle", - "windows-targets 0.52.6", -] - [[package]] name = "base16ct" version = "0.2.0" @@ -1648,11 +1630,11 @@ checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" [[package]] name = "bitflags" -version = "2.9.4" +version = "2.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2261d10cca569e4643e526d8dc2e62e433cc8aba21ab764233731f8d369bf394" +checksum = "812e12b5285cc515a9c72a5c1d3b6d46a19dac5acfef5265968c166106e31dd3" dependencies = [ - "serde", + "serde_core", ] [[package]] @@ -1683,15 +1665,6 @@ version = "0.1.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0d8c1fef690941d3e7788d328517591fecc684c084084702d6ff1641e993699a" -[[package]] -name = "block-buffer" -version = "0.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4152116fd6e9dadb291ae18fc1ec3575ed6d84c29642d97890f4b4a3417297e4" -dependencies = [ - "generic-array", -] - [[package]] name = "block-buffer" version = "0.10.4" @@ -1703,9 +1676,9 @@ dependencies = [ [[package]] name = "blst" -version = "0.3.15" +version = "0.3.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4fd49896f12ac9b6dcd7a5998466b9b58263a695a3dd1ecc1aaca2e12a90b080" +checksum = "dcdb4c7013139a150f9fc55d123186dbfaba0d912817466282c73ac49e71fb45" dependencies = [ "cc", "glob", @@ -1746,7 +1719,7 @@ dependencies = [ "proc-macro-crate", "proc-macro2", "quote", - "syn 2.0.106", + "syn 2.0.110", ] [[package]] @@ -1784,22 +1757,22 @@ checksum = "7575182f7272186991736b70173b0ea045398f984bf5ebbb3804736ce1330c9d" [[package]] name = "bytemuck" -version = "1.23.2" +version = "1.24.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3995eaeebcdf32f91f980d360f78732ddc061097ab4e39991ae7a6ace9194677" +checksum = "1fbdf580320f38b612e485521afda1ee26d10cc9884efaaa750d383e13e3c5f4" dependencies = [ "bytemuck_derive", ] [[package]] name = "bytemuck_derive" -version = "1.10.1" +version = "1.10.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4f154e572231cb6ba2bd1176980827e3d5dc04cc183a75dea38109fbdd672d29" +checksum = "f9abbd1bc6865053c427f7198e6af43bfdedc55ab791faed4fbd361d789575ff" dependencies = [ "proc-macro2", "quote", - "syn 2.0.106", + "syn 2.0.110", ] [[package]] @@ -1819,18 +1792,18 @@ dependencies = [ [[package]] name = "bytestring" -version = "1.4.0" +version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e465647ae23b2823b0753f50decb2d5a86d2bb2cac04788fafd1f80e45378e5f" +checksum = "113b4343b5f6617e7ad401ced8de3cc8b012e73a594347c307b90db3e9271289" dependencies = [ "bytes", ] [[package]] name = "c-kzg" -version = "2.1.1" +version = "2.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7318cfa722931cb5fe0838b98d3ce5621e75f6a6408abc21721d80de9223f2e4" +checksum = "e00bf4b112b07b505472dbefd19e37e53307e2bfed5a79e0cc161d58ccd0e687" dependencies = [ "blst", "cc", @@ -1843,11 +1816,11 @@ dependencies = [ [[package]] name = "camino" -version = "1.1.12" +version = "1.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dd0b03af37dad7a14518b7691d81acb0f8222604ad3d1b02f6b4bed5188c0cd5" +checksum = "276a59bf2b2c967788139340c9f0c5b12d7fd6630315c15c217e559de85d2609" dependencies = [ - "serde", + "serde_core", ] [[package]] @@ -1867,7 +1840,7 @@ checksum = "dd5eb614ed4c27c5d706420e4320fbe3216ab31fa1c33cd8246ac36dae4479ba" dependencies = [ "camino", "cargo-platform", - "semver 1.0.26", + "semver 1.0.27", "serde", "serde_json", "thiserror", @@ -1875,9 +1848,9 @@ dependencies = [ [[package]] name = "cc" -version = "1.2.36" +version = "1.2.45" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5252b3d2648e5eedbc1a6f501e3c795e07025c1e93bbf8bbdd6eef7f447a6d54" +checksum = "35900b6c8d709fb1d854671ae27aeaa9eec2f8b01b364e1619a40da3e6fe2afe" dependencies = [ "find-msvc-tools", "jobserver", @@ -1887,9 +1860,9 @@ dependencies = [ [[package]] name = "cfg-if" -version = "1.0.3" +version = "1.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2fd1289c04a9ea8cb22300a459a72a385d7c73d3259e2ed7dcb2af674838cfa9" +checksum = "9330f8b2ff13f34540b44e946ef35111825727b38d33286ef986142615121801" [[package]] name = "cfg_aliases" @@ -1906,14 +1879,14 @@ dependencies = [ "iana-time-zone", "num-traits", "serde", - "windows-link 0.2.0", + "windows-link 0.2.1", ] [[package]] name = "clap" -version = "4.5.47" +version = "4.5.51" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7eac00902d9d136acd712710d71823fb8ac8004ca445a89e73a41d45aa712931" +checksum = "4c26d721170e0295f191a69bd9a1f93efcdb0aff38684b61ab5750468972e5f5" dependencies = [ "clap_builder", "clap_derive", @@ -1921,9 +1894,9 @@ dependencies = [ [[package]] name = "clap_builder" -version = "4.5.47" +version = "4.5.51" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2ad9bbf750e73b5884fb8a211a9424a1906c1e156724260fdae972f31d70e1d6" +checksum = "75835f0c7bf681bfd05abe44e965760fea999a5286c6eb2d59883634fd02011a" dependencies = [ "anstream", "anstyle", @@ -1933,21 +1906,21 @@ dependencies = [ [[package]] name = "clap_derive" -version = "4.5.47" +version = "4.5.49" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bbfd7eae0b0f1a6e63d4b13c9c478de77c2eb546fba158ad50b4203dc24b9f9c" +checksum = "2a0b5487afeab2deb2ff4e03a807ad1a03ac532ff5a2cee5d86884440c7f7671" dependencies = [ "heck", "proc-macro2", "quote", - "syn 2.0.106", + "syn 2.0.110", ] [[package]] name = "clap_lex" -version = "0.7.5" +version = "0.7.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b94f61472cee1439c0b966b47e3aca9ae07e45d070759512cd390ea2bebc6675" +checksum = "a1d728cc89cf3aee9ff92b05e62b19ee65a02b5702cff7d5a377e32c6ae29d8d" [[package]] name = "cobs" @@ -1966,15 +1939,14 @@ checksum = "b05b61dc5112cbb17e4b6cd61790d9845d13888356391624cbe7e41efeac1e75" [[package]] name = "const-hex" -version = "1.15.0" +version = "1.17.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dccd746bf9b1038c0507b7cec21eb2b11222db96a2902c96e8c185d6d20fb9c4" +checksum = "3bb320cac8a0750d7f25280aa97b09c26edfe161164238ecbbb31092b079e735" dependencies = [ "cfg-if", "cpufeatures", - "hex", "proptest", - "serde", + "serde_core", ] [[package]] @@ -1985,9 +1957,9 @@ checksum = "c2459377285ad874054d797f3ccebf984978aa39129f6eafde5cdc8315b612f8" [[package]] name = "const_format" -version = "0.2.34" +version = "0.2.35" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "126f97965c8ad46d6d9163268ff28432e8f6a1196a55578867832e3049df63dd" +checksum = "7faa7469a93a566e9ccc1c73fe783b4a65c274c5ace346038dca9c39fe0030ad" dependencies = [ "const_format_proc_macros", ] @@ -2154,7 +2126,7 @@ dependencies = [ "proc-macro2", "quote", "strsim", - "syn 2.0.106", + "syn 2.0.110", ] [[package]] @@ -2169,7 +2141,7 @@ dependencies = [ "quote", "serde", "strsim", - "syn 2.0.106", + "syn 2.0.110", ] [[package]] @@ -2180,7 +2152,7 @@ checksum = "fc34b93ccb385b40dc71c6fceac4b2ad23662c7eeb248cf10d529b7e055b6ead" dependencies = [ "darling_core 0.20.11", "quote", - "syn 2.0.106", + "syn 2.0.110", ] [[package]] @@ -2191,7 +2163,7 @@ checksum = "d38308df82d1080de0afee5d069fa14b0326a88c14f15c5ccda35b4a6c414c81" dependencies = [ "darling_core 0.21.3", "quote", - "syn 2.0.106", + "syn 2.0.110", ] [[package]] @@ -2227,12 +2199,12 @@ dependencies = [ [[package]] name = "deranged" -version = "0.5.3" +version = "0.5.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d630bccd429a5bb5a64b5e94f693bfc48c9f8566418fda4c494cc94f911f87cc" +checksum = "ececcb659e7ba858fb4f10388c250a7252eb0a27373f1a72b8748afdd248e587" dependencies = [ "powerfmt", - "serde", + "serde_core", ] [[package]] @@ -2254,7 +2226,7 @@ checksum = "ef941ded77d15ca19b40374869ac6000af1c9f2a4c0f3d4c70926287e6364a8f" dependencies = [ "proc-macro2", "quote", - "syn 2.0.106", + "syn 2.0.110", ] [[package]] @@ -2275,7 +2247,7 @@ dependencies = [ "darling 0.20.11", "proc-macro2", "quote", - "syn 2.0.106", + "syn 2.0.110", ] [[package]] @@ -2285,7 +2257,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ab63b0e2bf4d5928aff72e83a7dace85d7bba5fe12dcc3c5a572d78caffd3f3c" dependencies = [ "derive_builder_core", - "syn 2.0.106", + "syn 2.0.110", ] [[package]] @@ -2306,7 +2278,7 @@ dependencies = [ "convert_case", "proc-macro2", "quote", - "syn 2.0.106", + "syn 2.0.110", "unicode-xid", ] @@ -2325,7 +2297,7 @@ version = "0.10.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292" dependencies = [ - "block-buffer 0.10.4", + "block-buffer", "const-oid", "crypto-common", "subtle", @@ -2349,7 +2321,7 @@ dependencies = [ "libc", "option-ext", "redox_users", - "windows-sys 0.61.0", + "windows-sys 0.61.2", ] [[package]] @@ -2360,7 +2332,7 @@ checksum = "97369cbbc041bc366949bc74d34658d6cda5621039731c6310521892a3a20ae0" dependencies = [ "proc-macro2", "quote", - "syn 2.0.106", + "syn 2.0.110", ] [[package]] @@ -2389,9 +2361,9 @@ checksum = "92773504d58c093f6de2459af4af33faa518c13451eb8f2b5698ed3d36e7c813" [[package]] name = "duplicate" -version = "2.0.0" +version = "2.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "97af9b5f014e228b33e77d75ee0e6e87960124f0f4b16337b586a6bec91867b1" +checksum = "8e92f10a49176cbffacaedabfaa11d51db1ea0f80a83c26e1873b43cd1742c24" dependencies = [ "heck", "proc-macro2", @@ -2428,7 +2400,7 @@ dependencies = [ "enum-ordinalize", "proc-macro2", "quote", - "syn 2.0.106", + "syn 2.0.110", ] [[package]] @@ -2458,7 +2430,6 @@ dependencies = [ "ff", "generic-array", "group", - "pem-rfc7468", "pkcs8", "rand_core 0.6.4", "sec1", @@ -2490,22 +2461,22 @@ dependencies = [ [[package]] name = "enum-ordinalize" -version = "4.3.0" +version = "4.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fea0dcfa4e54eeb516fe454635a95753ddd39acda650ce703031c6973e315dd5" +checksum = "4a1091a7bb1f8f2c4b28f1fe2cef4980ca2d410a3d727d67ecc3178c9b0800f0" dependencies = [ "enum-ordinalize-derive", ] [[package]] name = "enum-ordinalize-derive" -version = "4.3.1" +version = "4.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0d28318a75d4aead5c4db25382e8ef717932d0346600cacae6357eb5941bc5ff" +checksum = "8ca9601fb2d62598ee17836250842873a413586e5d7ed88b356e38ddbb0ec631" dependencies = [ "proc-macro2", "quote", - "syn 2.0.106", + "syn 2.0.110", ] [[package]] @@ -2516,12 +2487,52 @@ checksum = "877a4ace8713b0bcf2a4e7eec82529c029f1d0619886d18145fea96c3ffe5c0f" [[package]] name = "errno" -version = "0.3.13" +version = "0.3.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "778e2ac28f6c47af28e4907f13ffd1e1ddbd400980a9abd7c8df189bf578a5ad" +checksum = "39cab71617ae0d63f51a36d69f866391735b51691dbda63cf6f96d042b63efeb" dependencies = [ "libc", - "windows-sys 0.60.2", + "windows-sys 0.61.2", +] + +[[package]] +name = "ethereum_serde_utils" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3dc1355dbb41fbbd34ec28d4fb2a57d9a70c67ac3c19f6a5ca4d4a176b9e997a" +dependencies = [ + "alloy-primitives", + "hex", + "serde", + "serde_derive", + "serde_json", +] + +[[package]] +name = "ethereum_ssz" +version = "0.9.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0dcddb2554d19cde19b099fadddde576929d7a4d0c1cd3512d1fd95cf174375c" +dependencies = [ + "alloy-primitives", + "ethereum_serde_utils", + "itertools 0.13.0", + "serde", + "serde_derive", + "smallvec", + "typenum", +] + +[[package]] +name = "ethereum_ssz_derive" +version = "0.9.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a657b6b3b7e153637dc6bdc6566ad9279d9ee11a15b12cfb24a2e04360637e9f" +dependencies = [ + "darling 0.20.11", + "proc-macro2", + "quote", + "syn 2.0.110", ] [[package]] @@ -2564,9 +2575,9 @@ dependencies = [ [[package]] name = "find-msvc-tools" -version = "0.1.1" +version = "0.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7fd99930f64d146689264c637b5af2f0233a933bef0d8570e2526bf9e083192d" +checksum = "52051878f80a721bb68ebfbc930e07b65ba72f2da88968ea5c06fd6ca3d3a127" [[package]] name = "fixed-hash" @@ -2582,9 +2593,9 @@ dependencies = [ [[package]] name = "flate2" -version = "1.1.2" +version = "1.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4a3d7db9596fecd151c5f638c0ee5d5bd487b6e0ea232e5dc96d5250f6f94b1d" +checksum = "bfe33edd8e85a12a67454e37f8c75e730830d83e313556ab9ebf9ee7fbeb3bfb" dependencies = [ "crc32fast", "miniz_oxide", @@ -2602,6 +2613,12 @@ version = "0.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d9c4f5dac5e15c24eb999c26181a6ca40b39fe946cbe4c263c7209467bc83af2" +[[package]] +name = "foldhash" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "77ce24cb58228fbb8aa041425bb1050850ac19177686ea6e0f41a70416f56fdb" + [[package]] name = "foreign-types" version = "0.3.2" @@ -2629,7 +2646,7 @@ checksum = "1a5c6c585bc94aaf2c7b51dd4c2ba22680844aba4c687be581871a6f518c5742" dependencies = [ "proc-macro2", "quote", - "syn 2.0.106", + "syn 2.0.110", ] [[package]] @@ -2715,7 +2732,7 @@ checksum = "162ee34ebcb7c64a8abebc059ce0fee27c2262618d7b60ed8faf72fef13c3650" dependencies = [ "proc-macro2", "quote", - "syn 2.0.106", + "syn 2.0.110", ] [[package]] @@ -2756,9 +2773,9 @@ checksum = "42012b0f064e01aa58b545fe3727f90f7dd4020f4a3ea735b50344965f5a57e9" [[package]] name = "generic-array" -version = "0.14.7" +version = "0.14.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "85649ca51fd72272d7821adaf274ad91c288277713d9c18820d8499a7ff69e9a" +checksum = "4bb6743198531e02858aeaea5398fcc883e71851fcbcb5a2f773e2fb6cb1edf2" dependencies = [ "typenum", "version_check", @@ -2774,30 +2791,24 @@ dependencies = [ "cfg-if", "js-sys", "libc", - "wasi 0.11.1+wasi-snapshot-preview1", + "wasi", "wasm-bindgen", ] [[package]] name = "getrandom" -version = "0.3.3" +version = "0.3.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "26145e563e54f2cadc477553f1ec5ee650b00862f0a58bcd12cbdc5f0ea2d2f4" +checksum = "899def5c37c4fd7b2664648c28120ecec138e4d395b459e5ca34f9cce2dd77fd" dependencies = [ "cfg-if", "js-sys", "libc", "r-efi", - "wasi 0.14.4+wasi-0.2.4", + "wasip2", "wasm-bindgen", ] -[[package]] -name = "gimli" -version = "0.31.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "07e28edb80900c19c28f1072f2e8aeca7fa06b23cd4169cefe1af5aa3260783f" - [[package]] name = "glob" version = "0.3.3" @@ -2844,7 +2855,7 @@ dependencies = [ "futures-sink", "futures-util", "http 0.2.12", - "indexmap 2.11.0", + "indexmap 2.12.0", "slab", "tokio", "tokio-util", @@ -2863,7 +2874,7 @@ dependencies = [ "futures-core", "futures-sink", "http 1.3.1", - "indexmap 2.11.0", + "indexmap 2.12.0", "slab", "tokio", "tokio-util", @@ -2890,7 +2901,16 @@ checksum = "9229cfe53dfd69f0609a49f65461bd93001ea1ef889cd5529dd176593f5338a1" dependencies = [ "allocator-api2", "equivalent", - "foldhash", + "foldhash 0.1.5", +] + +[[package]] +name = "hashbrown" +version = "0.16.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5419bdc4f6a9207fbeba6d11b604d481addf78ecd10c11ad51e76c2f6482748d" +dependencies = [ + "foldhash 0.2.0", "serde", ] @@ -2920,9 +2940,6 @@ name = "hex" version = "0.4.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70" -dependencies = [ - "serde", -] [[package]] name = "hex-conservative" @@ -3007,9 +3024,9 @@ checksum = "df3b46402a9d5adb4c86a0cf463f42e19994e3ee891101b1841f30a545cb49a9" [[package]] name = "hyper" -version = "1.7.0" +version = "1.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eb3aa54a13a0dfe7fbe3a59e0c76093041720fdc77b110cc0fc260fafb4dc51e" +checksum = "1744436df46f0bde35af3eda22aeaba453aada65d8f1c171cd8a5f59030bd69f" dependencies = [ "atomic-waker", "bytes", @@ -3041,7 +3058,7 @@ dependencies = [ "tokio", "tokio-rustls", "tower-service", - "webpki-roots 1.0.2", + "webpki-roots 1.0.4", ] [[package]] @@ -3062,9 +3079,9 @@ dependencies = [ [[package]] name = "hyper-util" -version = "0.1.16" +version = "0.1.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8d9b05277c7e8da2c93a568989bb6207bef0112e8d17df7a6eda4a3cf143bc5e" +checksum = "3c6995591a8f1380fcb4ba966a252a4b29188d51d2b89e3a252f5305be65aea8" dependencies = [ "base64", "bytes", @@ -3078,7 +3095,7 @@ dependencies = [ "libc", "percent-encoding", "pin-project-lite", - "socket2 0.6.0", + "socket2 0.6.1", "system-configuration", "tokio", "tower-service", @@ -3088,9 +3105,9 @@ dependencies = [ [[package]] name = "iana-time-zone" -version = "0.1.63" +version = "0.1.64" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b0c919e5debc312ad217002b8048a17b7d83f80703865bbfcfebb0458b0b27d8" +checksum = "33e57f83510bb73707521ebaffa789ec8caf86f9657cad665b092b581d40e9fb" dependencies = [ "android_system_properties", "core-foundation-sys", @@ -3112,9 +3129,9 @@ dependencies = [ [[package]] name = "icu_collections" -version = "2.0.0" +version = "2.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "200072f5d0e3614556f94a9930d5dc3e0662a652823904c3a75dc3b0af7fee47" +checksum = "4c6b649701667bbe825c3b7e6388cb521c23d88644678e83c0c4d0a621a34b43" dependencies = [ "displaydoc", "potential_utf", @@ -3125,9 +3142,9 @@ dependencies = [ [[package]] name = "icu_locale_core" -version = "2.0.0" +version = "2.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0cde2700ccaed3872079a65fb1a78f6c0a36c91570f28755dda67bc8f7d9f00a" +checksum = "edba7861004dd3714265b4db54a3c390e880ab658fec5f7db895fae2046b5bb6" dependencies = [ "displaydoc", "litemap", @@ -3138,11 +3155,10 @@ dependencies = [ [[package]] name = "icu_normalizer" -version = "2.0.0" +version = "2.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "436880e8e18df4d7bbc06d58432329d6458cc84531f7ac5f024e93deadb37979" +checksum = "5f6c8828b67bf8908d82127b2054ea1b4427ff0230ee9141c54251934ab1b599" dependencies = [ - "displaydoc", "icu_collections", "icu_normalizer_data", "icu_properties", @@ -3153,42 +3169,38 @@ dependencies = [ [[package]] name = "icu_normalizer_data" -version = "2.0.0" +version = "2.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "00210d6893afc98edb752b664b8890f0ef174c8adbb8d0be9710fa66fbbf72d3" +checksum = "7aedcccd01fc5fe81e6b489c15b247b8b0690feb23304303a9e560f37efc560a" [[package]] name = "icu_properties" -version = "2.0.1" +version = "2.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "016c619c1eeb94efb86809b015c58f479963de65bdb6253345c1a1276f22e32b" +checksum = "e93fcd3157766c0c8da2f8cff6ce651a31f0810eaa1c51ec363ef790bbb5fb99" dependencies = [ - "displaydoc", "icu_collections", "icu_locale_core", "icu_properties_data", "icu_provider", - "potential_utf", "zerotrie", "zerovec", ] [[package]] name = "icu_properties_data" -version = "2.0.1" +version = "2.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "298459143998310acd25ffe6810ed544932242d3f07083eee1084d83a71bd632" +checksum = "02845b3647bb045f1100ecd6480ff52f34c35f82d9880e029d329c21d1054899" [[package]] name = "icu_provider" -version = "2.0.0" +version = "2.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "03c80da27b5f4187909049ee2d72f276f0d9f99a42c306bd0131ecfe04d8e5af" +checksum = "85962cf0ce02e1e0a629cc34e7ca3e373ce20dda4c4d7294bbd0bf1fdb59e614" dependencies = [ "displaydoc", "icu_locale_core", - "stable_deref_trait", - "tinystr", "writeable", "yoke", "zerofrom", @@ -3246,7 +3258,7 @@ checksum = "a0eb5a3343abf848c0984fe4604b2b105da9539376e24fc0a3b0007411ae4fd9" dependencies = [ "proc-macro2", "quote", - "syn 2.0.106", + "syn 2.0.110", ] [[package]] @@ -3268,13 +3280,14 @@ dependencies = [ [[package]] name = "indexmap" -version = "2.11.0" +version = "2.12.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f2481980430f9f78649238835720ddccc57e52df14ffce1c6f37391d61b563e9" +checksum = "6717a8d2a5a929a1a2eb43a12812498ed141a0bcfb7e8f7844fbdbe4303bba9f" dependencies = [ "equivalent", - "hashbrown 0.15.5", + "hashbrown 0.16.0", "serde", + "serde_core", ] [[package]] @@ -3292,17 +3305,6 @@ dependencies = [ "windows-sys 0.52.0", ] -[[package]] -name = "io-uring" -version = "0.7.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "046fa2d4d00aea763528b4950358d0ead425372445dc8ff86312b3c69ff7727b" -dependencies = [ - "bitflags 2.9.4", - "cfg-if", - "libc", -] - [[package]] name = "ipnet" version = "2.11.0" @@ -3311,9 +3313,9 @@ checksum = "469fb0b9cefa57e3ef31275ee7cacb78f2fdca44e4765491884a2b119d4eb130" [[package]] name = "iri-string" -version = "0.7.8" +version = "0.7.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dbc5ebe9c3a1a7a5127f920a418f7585e9e758e911d0466ed004f393b0e380b2" +checksum = "4f867b9d1d896b67beb18518eda36fdb77a32ea590de864f1325b294a6d14397" dependencies = [ "memchr", "serde", @@ -3321,9 +3323,9 @@ dependencies = [ [[package]] name = "is_terminal_polyfill" -version = "1.70.1" +version = "1.70.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7943c866cc5cd64cbc25b2e01621d07fa8eb2a1a23160ee81ce38704e97b8ecf" +checksum = "a6cb138bb79a146c1bd460005623e142ef0181e3d0219cb493e02f7d08a35695" [[package]] name = "itertools" @@ -3364,15 +3366,15 @@ version = "0.1.34" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9afb3de4395d6b3e67a780b6de64b51c978ecf11cb9a462c66be7d4ca9039d33" dependencies = [ - "getrandom 0.3.3", + "getrandom 0.3.4", "libc", ] [[package]] name = "js-sys" -version = "0.3.78" +version = "0.3.82" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0c0b063578492ceec17683ef2f8c5e89121fbd0b172cbc280635ab7567db2738" +checksum = "b011eec8cc36da2aab2d5cff675ec18454fad408585853910a202391cf9f8e65" dependencies = [ "once_cell", "wasm-bindgen", @@ -3389,8 +3391,7 @@ dependencies = [ "elliptic-curve", "once_cell", "serdect", - "sha2 0.10.9", - "signature", + "sha2", ] [[package]] @@ -3420,9 +3421,9 @@ checksum = "d4345964bb142484797b161f473a503a434de77149dd8c7427788c6e13379388" [[package]] name = "lazy-regex" -version = "3.4.1" +version = "3.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "60c7310b93682b36b98fa7ea4de998d3463ccbebd94d935d6b48ba5b6ffa7126" +checksum = "191898e17ddee19e60bccb3945aa02339e81edd4a8c50e21fd4d48cdecda7b29" dependencies = [ "lazy-regex-proc_macros", "once_cell", @@ -3431,14 +3432,14 @@ dependencies = [ [[package]] name = "lazy-regex-proc_macros" -version = "3.4.1" +version = "3.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4ba01db5ef81e17eb10a5e0f2109d1b3a3e29bac3070fdbd7d156bf7dbd206a1" +checksum = "c35dc8b0da83d1a9507e12122c80dea71a9c7c613014347392483a83ea593e04" dependencies = [ "proc-macro2", "quote", "regex", - "syn 2.0.106", + "syn 2.0.110", ] [[package]] @@ -3452,9 +3453,9 @@ dependencies = [ [[package]] name = "libc" -version = "0.2.175" +version = "0.2.177" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6a82ae493e598baaea5209805c49bbf2ea7de956d50d7da0da1164f9c6d28543" +checksum = "2874a2af47a2325c2001a6e6fad9b16a53b802102b528163885171cf92b15976" [[package]] name = "libm" @@ -3464,71 +3465,25 @@ checksum = "f9fbbcab51052fe104eb5e5d351cf728d30a5be1fe14d9be8a3b097481fb97de" [[package]] name = "libredox" -version = "0.1.9" +version = "0.1.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "391290121bad3d37fbddad76d8f5d1c1c314cfc646d143d7e07a3086ddff0ce3" +checksum = "416f7e718bdb06000964960ffa43b4335ad4012ae8b99060261aa4a8088d5ccb" dependencies = [ - "bitflags 2.9.4", + "bitflags 2.10.0", "libc", ] -[[package]] -name = "libsecp256k1" -version = "0.7.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e79019718125edc905a079a70cfa5f3820bc76139fc91d6f9abc27ea2a887139" -dependencies = [ - "arrayref", - "base64", - "digest 0.9.0", - "libsecp256k1-core", - "libsecp256k1-gen-ecmult", - "libsecp256k1-gen-genmult", - "rand 0.8.5", - "serde", - "sha2 0.9.9", -] - -[[package]] -name = "libsecp256k1-core" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5be9b9bb642d8522a44d533eab56c16c738301965504753b03ad1de3425d5451" -dependencies = [ - "crunchy", - "digest 0.9.0", - "subtle", -] - -[[package]] -name = "libsecp256k1-gen-ecmult" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3038c808c55c87e8a172643a7d87187fc6c4174468159cb3090659d55bcb4809" -dependencies = [ - "libsecp256k1-core", -] - -[[package]] -name = "libsecp256k1-gen-genmult" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3db8d6ba2cec9eacc40e6e8ccc98931840301f1006e95647ceb2dd5c3aa06f7c" -dependencies = [ - "libsecp256k1-core", -] - [[package]] name = "linux-raw-sys" -version = "0.9.4" +version = "0.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cd945864f07fe9f5371a27ad7b52a172b4b499999f1d97574c9fa68373937e12" +checksum = "df1d3c3b53da64cf5760482273a98e575c651a67eec7f77df96b5b642de8f039" [[package]] name = "litemap" -version = "0.8.0" +version = "0.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "241eaef5fd12c88705a01fc1066c48c4b36e0dd4377dcdc7ec3942cea7a69956" +checksum = "6373607a59f0be73a39b6fe456b8192fcc3585f602af20751600e974dd455e77" [[package]] name = "local-channel" @@ -3549,11 +3504,10 @@ checksum = "4d873d7c67ce09b42110d801813efbc9364414e356be9935700d368351657487" [[package]] name = "lock_api" -version = "0.4.13" +version = "0.4.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "96936507f153605bddfcda068dd804796c84324ed2510809e5b2a624c81da765" +checksum = "224399e74b87b5f3557511d98dff8b14089b3dadafcab6bb93eab67d3aace965" dependencies = [ - "autocfg", "scopeguard", ] @@ -3586,7 +3540,7 @@ checksum = "1b27834086c65ec3f9387b096d66e99f221cf081c2b738042aa252bcd41204e3" dependencies = [ "proc-macro2", "quote", - "syn 2.0.106", + "syn 2.0.110", ] [[package]] @@ -3606,14 +3560,14 @@ checksum = "5cf92c10c7e361d6b99666ec1c6f9805b0bea2c3bd8c78dc6fe98ac5bd78db11" dependencies = [ "proc-macro2", "quote", - "syn 2.0.106", + "syn 2.0.110", ] [[package]] name = "memchr" -version = "2.7.5" +version = "2.7.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "32a282da65faaf38286cf3be983213fcf1d2e2a58700e808f83f4ea9a4804bc0" +checksum = "f52b00d39961fc5b2736ea853c9cc86238e165017a493d1d5c8eac6bdc4cc273" [[package]] name = "merlin" @@ -3633,7 +3587,7 @@ version = "0.29.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7ecfd3296f8c56b7c1f6fbac3c71cefa9d78ce009850c45000015f206dc7fa21" dependencies = [ - "bitflags 2.9.4", + "bitflags 2.10.0", "block", "core-graphics-types", "foreign-types 0.5.0", @@ -3655,18 +3609,19 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1fa76a2c86f704bdb222d66965fb3d63269ce38518b83cb0575fca855ebb6316" dependencies = [ "adler2", + "simd-adler32", ] [[package]] name = "mio" -version = "1.0.4" +version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "78bed444cc8a2160f01cbcf811ef18cac863ad68ae8ca62092e8db51d51c761c" +checksum = "69d83b0086dc8ecf3ce9ae2874b2d1290252e2a30720bea58a5c6639b0092873" dependencies = [ "libc", "log", - "wasi 0.11.1+wasi-snapshot-preview1", - "windows-sys 0.59.0", + "wasi", + "windows-sys 0.61.2", ] [[package]] @@ -3721,11 +3676,11 @@ checksum = "a5b0c77c1b780822bc749a33e39aeb2c07584ab93332303babeabb645298a76e" [[package]] name = "nu-ansi-term" -version = "0.50.1" +version = "0.50.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d4a28e057d01f97e61255210fcff094d74ed0466038633e95017f5beb68e4399" +checksum = "7957b9740744892f114936ab4a57b3f487491bbeafaf8083688b16841a4240e5" dependencies = [ - "windows-sys 0.52.0", + "windows-sys 0.61.2", ] [[package]] @@ -3754,11 +3709,10 @@ dependencies = [ [[package]] name = "num-bigint-dig" -version = "0.8.4" +version = "0.8.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dc84195820f291c7697304f3cbdadd1cb7199c0efc917ff5eafd71225c136151" +checksum = "82c79c15c05d4bf82b6f5ef163104cc81a760d8e874d38ac50ab67c8877b647b" dependencies = [ - "byteorder", "lazy_static", "libm", "num-integer", @@ -3837,9 +3791,9 @@ dependencies = [ [[package]] name = "num_enum" -version = "0.7.4" +version = "0.7.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a973b4e44ce6cad84ce69d797acf9a044532e4184c4f267913d1b546a0727b7a" +checksum = "b1207a7e20ad57b847bbddc6776b968420d38292bbfe2089accff5e19e82454c" dependencies = [ "num_enum_derive", "rustversion", @@ -3847,14 +3801,14 @@ dependencies = [ [[package]] name = "num_enum_derive" -version = "0.7.4" +version = "0.7.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "77e878c846a8abae00dd069496dbe8751b16ac1c3d6bd2a7283a938e8228f90d" +checksum = "ff32365de1b6743cb203b710788263c44a03de03802daf96092f2da4fe6ba4d7" dependencies = [ "proc-macro-crate", "proc-macro2", "quote", - "syn 2.0.106", + "syn 2.0.110", ] [[package]] @@ -3872,9 +3826,9 @@ dependencies = [ [[package]] name = "nybbles" -version = "0.4.3" +version = "0.4.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "63cb50036b1ad148038105af40aaa70ff24d8a14fbc44ae5c914e1348533d12e" +checksum = "2c4b5ecbd0beec843101bffe848217f770e8b8da81d8355b7d6e226f2199b3dc" dependencies = [ "alloy-rlp", "cfg-if", @@ -3893,15 +3847,6 @@ dependencies = [ "malloc_buf", ] -[[package]] -name = "object" -version = "0.36.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "62948e14d923ea95ea2c7c86c71013138b66525b86bdc08d2dcc262bdb497b87" -dependencies = [ - "memchr", -] - [[package]] name = "once_cell" version = "1.21.3" @@ -3914,15 +3859,15 @@ dependencies = [ [[package]] name = "once_cell_polyfill" -version = "1.70.1" +version = "1.70.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a4895175b425cb1f87721b59f0f286c2092bd4af812243672510e1ac53e2e0ad" +checksum = "384b8ab6d37215f3c5301a95a4accb5d64aa607f1fcb26a11b5303878451b4fe" [[package]] name = "op-alloy-consensus" -version = "0.20.0" +version = "0.22.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3a501241474c3118833d6195312ae7eb7cc90bbb0d5f524cbb0b06619e49ff67" +checksum = "a0d7ec388eb83a3e6c71774131dbbb2ba9c199b6acac7dce172ed8de2f819e91" dependencies = [ "alloy-consensus", "alloy-eips", @@ -3935,30 +3880,43 @@ dependencies = [ "thiserror", ] +[[package]] +name = "op-alloy-rpc-types-engine" +version = "0.22.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c1abe694cd6718b8932da3f824f46778be0f43289e4103c88abc505c63533a04" +dependencies = [ + "alloy-consensus", + "alloy-eips", + "alloy-primitives", + "alloy-rlp", + "alloy-rpc-types-engine", + "derive_more", + "ethereum_ssz", + "ethereum_ssz_derive", + "op-alloy-consensus", + "snap", + "thiserror", +] + [[package]] name = "op-revm" -version = "10.0.0" +version = "12.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5ba21d705bbbfc947a423cba466d75e4af0c7d43ee89ba0a0f1cfa04963cede9" +checksum = "e31622d03b29c826e48800f4c8f389c8a9c440eb796a3e35203561a288f12985" dependencies = [ "auto_impl", "revm", "serde", ] -[[package]] -name = "opaque-debug" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c08d65885ee38876c4f86fa503fb49d7b507c2b62552df7c70b2fce627e06381" - [[package]] name = "openssl" -version = "0.10.73" +version = "0.10.75" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8505734d46c8ab1e19a1dce3aef597ad87dcb4c37e7188231769bd6bd51cebf8" +checksum = "08838db121398ad17ab8531ce9de97b244589089e290a384c900cb9ff7434328" dependencies = [ - "bitflags 2.9.4", + "bitflags 2.10.0", "cfg-if", "foreign-types 0.3.2", "libc", @@ -3975,7 +3933,7 @@ checksum = "a948666b637a0f465e8564c73e89d4dde00d72d4d473cc972f390fc3dcee7d9c" dependencies = [ "proc-macro2", "quote", - "syn 2.0.106", + "syn 2.0.110", ] [[package]] @@ -3986,9 +3944,9 @@ checksum = "d05e27ee213611ffe7d6348b942e8f942b37114c00cc03cec254295a4a17852e" [[package]] name = "openssl-sys" -version = "0.9.109" +version = "0.9.111" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "90096e2e47630d78b7d1c20952dc621f957103f8bc2c8359ec81290d75238571" +checksum = "82cab2d520aa75e3c58898289429321eb788c3106963d0dc886ec7a5f4adc321" dependencies = [ "cc", "libc", @@ -4011,7 +3969,7 @@ dependencies = [ "ecdsa", "elliptic-curve", "primeorder", - "sha2 0.10.9", + "sha2", ] [[package]] @@ -4039,14 +3997,14 @@ dependencies = [ "proc-macro-crate", "proc-macro2", "quote", - "syn 2.0.106", + "syn 2.0.110", ] [[package]] name = "parking_lot" -version = "0.12.4" +version = "0.12.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "70d58bf43669b5795d1576d0641cfb6fbb2057bf629506267a92807158584a13" +checksum = "93857453250e3077bd71ff98b6a65ea6621a19bb0f559a85248955ac12c45a1a" dependencies = [ "lock_api", "parking_lot_core", @@ -4054,15 +4012,15 @@ dependencies = [ [[package]] name = "parking_lot_core" -version = "0.9.11" +version = "0.9.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bc838d2a56b5b1a6c25f55575dfc605fabb63bb2365f6c2353ef9159aa69e4a5" +checksum = "2621685985a2ebf1c516881c026032ac7deafcda1a2c9b7850dc81e3dfcb64c1" dependencies = [ "cfg-if", "libc", "redox_syscall", "smallvec", - "windows-targets 0.52.6", + "windows-link 0.2.1", ] [[package]] @@ -4088,12 +4046,11 @@ checksum = "9b4f627cb1b25917193a259e49bdad08f671f8d9708acfd5fe0a8c1455d87220" [[package]] name = "pest" -version = "2.8.1" +version = "2.8.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1db05f56d34358a8b1066f67cbb203ee3e7ed2ba674a6263a1d5ec6db2204323" +checksum = "989e7521a040efde50c3ab6bbadafbe15ab6dc042686926be59ac35d74607df4" dependencies = [ "memchr", - "thiserror", "ucd-trie", ] @@ -4109,9 +4066,9 @@ dependencies = [ [[package]] name = "phf" -version = "0.11.3" +version = "0.13.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1fd6780a80ae0c52cc120a26a1a42c1ae51b247a253e4e06113d23d2c2edd078" +checksum = "c1562dc717473dbaa4c1f85a36410e03c047b2e7df7f45ee938fbef64ae7fadf" dependencies = [ "phf_macros", "phf_shared", @@ -4120,32 +4077,32 @@ dependencies = [ [[package]] name = "phf_generator" -version = "0.11.3" +version = "0.13.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3c80231409c20246a13fddb31776fb942c38553c51e871f8cbd687a4cfb5843d" +checksum = "135ace3a761e564ec88c03a77317a7c6b80bb7f7135ef2544dbe054243b89737" dependencies = [ + "fastrand", "phf_shared", - "rand 0.8.5", ] [[package]] name = "phf_macros" -version = "0.11.3" +version = "0.13.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f84ac04429c13a7ff43785d75ad27569f2951ce0ffd30a3321230db2fc727216" +checksum = "812f032b54b1e759ccd5f8b6677695d5268c588701effba24601f6932f8269ef" dependencies = [ "phf_generator", "phf_shared", "proc-macro2", "quote", - "syn 2.0.106", + "syn 2.0.110", ] [[package]] name = "phf_shared" -version = "0.11.3" +version = "0.13.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "67eabc2ef2a60eb7faa00097bd1ffdb5bd28e62bf39990626a582201b7a754e5" +checksum = "e57fef6bc5981e38c2ce2d63bfa546861309f875b8a75f092d1d54ae2d64f266" dependencies = [ "siphasher", ] @@ -4167,7 +4124,7 @@ checksum = "6e918e4ff8c4549eb882f14b3a4bc8c8bc93de829416eacf579f1207a8fbf861" dependencies = [ "proc-macro2", "quote", - "syn 2.0.106", + "syn 2.0.110", ] [[package]] @@ -4229,9 +4186,9 @@ dependencies = [ [[package]] name = "potential_utf" -version = "0.1.3" +version = "0.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "84df19adbe5b5a0782edcab45899906947ab039ccf4573713735ee7de1e6b08a" +checksum = "b73949432f5e2a09657003c25bca5e19a0e9c84f8058ca374f49e0ebe605af77" dependencies = [ "zerovec", ] @@ -4273,11 +4230,11 @@ dependencies = [ [[package]] name = "proc-macro-crate" -version = "3.3.0" +version = "3.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "edce586971a4dfaa28950c6f18ed55e0406c1ab88bbce2c6f6293a7aaba73d35" +checksum = "219cb19e96be00ab2e37d6e299658a0cfa83e52429179969b0f0121b4ac46983" dependencies = [ - "toml_edit", + "toml_edit 0.23.7", ] [[package]] @@ -4299,14 +4256,14 @@ dependencies = [ "proc-macro-error-attr2", "proc-macro2", "quote", - "syn 2.0.106", + "syn 2.0.110", ] [[package]] name = "proc-macro2" -version = "1.0.101" +version = "1.0.103" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "89ae43fd86e4158d6db51ad8e2b80f313af9cc74f5c0e03ccb87de09998732de" +checksum = "5ee95bc4ef87b8d5ba32e8b7714ccc834865276eab0aed5c9958d00ec45f49e8" dependencies = [ "unicode-ident", ] @@ -4319,21 +4276,19 @@ checksum = "af066a9c399a26e020ada66a034357a868728e72cd426f3adcd35f80d88d88c8" dependencies = [ "proc-macro2", "quote", - "syn 2.0.106", + "syn 2.0.110", "version_check", - "yansi", ] [[package]] name = "proptest" -version = "1.7.0" +version = "1.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6fcdab19deb5195a31cf7726a210015ff1496ba1464fd42cb4f537b8b01b471f" +checksum = "bee689443a2bd0a16ab0348b52ee43e3b2d1b1f931c8aa5c9f8de4c86fbe8c40" dependencies = [ "bit-set", "bit-vec", - "bitflags 2.9.4", - "lazy_static", + "bitflags 2.10.0", "num-traits", "rand 0.9.2", "rand_chacha 0.9.0", @@ -4364,7 +4319,7 @@ dependencies = [ "itertools 0.14.0", "proc-macro2", "quote", - "syn 2.0.106", + "syn 2.0.110", ] [[package]] @@ -4386,7 +4341,7 @@ dependencies = [ "quinn-udp", "rustc-hash", "rustls", - "socket2 0.6.0", + "socket2 0.6.1", "thiserror", "tokio", "tracing", @@ -4400,7 +4355,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f1906b49b0c3bc04b5fe5d86a77925ae6524a19b816ae38ce1e426255f1d8a31" dependencies = [ "bytes", - "getrandom 0.3.3", + "getrandom 0.3.4", "lru-slab", "rand 0.9.2", "ring", @@ -4423,16 +4378,16 @@ dependencies = [ "cfg_aliases", "libc", "once_cell", - "socket2 0.6.0", + "socket2 0.6.1", "tracing", "windows-sys 0.60.2", ] [[package]] name = "quote" -version = "1.0.40" +version = "1.0.42" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1885c039570dc00dcb4ff087a89e185fd56bae234ddc7f056a945bf36467248d" +checksum = "a338cc41d27e6cc6dce6cefc13a0729dfbb81c262b1f519331575dd80ef3067f" dependencies = [ "proc-macro2", ] @@ -4507,7 +4462,7 @@ version = "0.9.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "99d9a13982dcf210057a8a78572b2217b667c3beacbf3a0d8b454f6f82837d38" dependencies = [ - "getrandom 0.3.3", + "getrandom 0.3.4", "serde", ] @@ -4528,11 +4483,11 @@ checksum = "d3edd4d5d42c92f0a659926464d4cce56b562761267ecf0f469d85b7de384175" [[package]] name = "redox_syscall" -version = "0.5.17" +version = "0.5.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5407465600fb0548f1442edf71dd20683c6ed326200ace4b1ef0763521bb3b77" +checksum = "ed2bf2547551a7053d6fdfafda3f938979645c44812fbfcda098faae3f1a362d" dependencies = [ - "bitflags 2.9.4", + "bitflags 2.10.0", ] [[package]] @@ -4548,29 +4503,29 @@ dependencies = [ [[package]] name = "ref-cast" -version = "1.0.24" +version = "1.0.25" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4a0ae411dbe946a674d89546582cea4ba2bb8defac896622d6496f14c23ba5cf" +checksum = "f354300ae66f76f1c85c5f84693f0ce81d747e2c3f21a45fef496d89c960bf7d" dependencies = [ "ref-cast-impl", ] [[package]] name = "ref-cast-impl" -version = "1.0.24" +version = "1.0.25" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1165225c21bff1f3bbce98f5a1f889949bc902d3575308cc7b0de30b4f6d27c7" +checksum = "b7186006dcb21920990093f30e3dea63b7d6e977bf1256be20c3563a5db070da" dependencies = [ "proc-macro2", "quote", - "syn 2.0.106", + "syn 2.0.110", ] [[package]] name = "regex" -version = "1.11.2" +version = "1.12.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "23d7fd106d8c02486a8d64e778353d1cffe08ce79ac2e82f540c86d0facf6912" +checksum = "843bc0191f75f3e22651ae5f1e72939ab2f72a4bc30fa80a066bd66edefc24d4" dependencies = [ "aho-corasick", "memchr", @@ -4580,9 +4535,9 @@ dependencies = [ [[package]] name = "regex-automata" -version = "0.4.10" +version = "0.4.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6b9458fa0bfeeac22b5ca447c63aaf45f28439a709ccd244698632f9aa6394d6" +checksum = "5276caf25ac86c8d810222b3dbb938e512c55c6831a10f3e6ed1c93b84041f1c" dependencies = [ "aho-corasick", "memchr", @@ -4591,21 +4546,21 @@ dependencies = [ [[package]] name = "regex-lite" -version = "0.1.7" +version = "0.1.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "943f41321c63ef1c92fd763bfe054d2668f7f225a5c29f0105903dc2fc04ba30" +checksum = "8d942b98df5e658f56f20d592c7f868833fe38115e65c33003d8cd224b0155da" [[package]] name = "regex-syntax" -version = "0.8.6" +version = "0.8.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "caf4aa5b0f434c91fe5c7f1ecb6a5ece2130b02ad2a590589dda5146df959001" +checksum = "7a2d987857b319362043e95f5353c0535c1f58eec5336fdfcf626430af7def58" [[package]] name = "reqwest" -version = "0.12.23" +version = "0.12.24" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d429f34c8092b2d42c7c93cec323bb4adeb7c67698f70839adec842ec10c7ceb" +checksum = "9d0946410b9f7b082a427e4ef5c8ff541a88b357bc6c637c40db3a68ac70a36f" dependencies = [ "base64", "bytes", @@ -4646,13 +4601,13 @@ dependencies = [ "wasm-bindgen-futures", "wasm-streams", "web-sys", - "webpki-roots 1.0.2", + "webpki-roots 1.0.4", ] [[package]] name = "reth-chainspec" -version = "1.8.2" -source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.8.2#9c30bf7af5e0d45deaf5917375c9922c16654b28" +version = "1.9.1" +source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.9.1#3afe69a5738459a7cb5f46c598c7f541a1510f32" dependencies = [ "alloy-chains", "alloy-consensus", @@ -4671,8 +4626,8 @@ dependencies = [ [[package]] name = "reth-codecs" -version = "1.8.2" -source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.8.2#9c30bf7af5e0d45deaf5917375c9922c16654b28" +version = "1.9.1" +source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.9.1#3afe69a5738459a7cb5f46c598c7f541a1510f32" dependencies = [ "alloy-consensus", "alloy-eips", @@ -4689,19 +4644,18 @@ dependencies = [ [[package]] name = "reth-codecs-derive" -version = "1.8.2" -source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.8.2#9c30bf7af5e0d45deaf5917375c9922c16654b28" +version = "1.9.1" +source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.9.1#3afe69a5738459a7cb5f46c598c7f541a1510f32" dependencies = [ - "convert_case", "proc-macro2", "quote", - "syn 2.0.106", + "syn 2.0.110", ] [[package]] name = "reth-consensus" -version = "1.8.2" -source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.8.2#9c30bf7af5e0d45deaf5917375c9922c16654b28" +version = "1.9.1" +source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.9.1#3afe69a5738459a7cb5f46c598c7f541a1510f32" dependencies = [ "alloy-consensus", "alloy-primitives", @@ -4713,8 +4667,8 @@ dependencies = [ [[package]] name = "reth-consensus-common" -version = "1.8.2" -source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.8.2#9c30bf7af5e0d45deaf5917375c9922c16654b28" +version = "1.9.1" +source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.9.1#3afe69a5738459a7cb5f46c598c7f541a1510f32" dependencies = [ "alloy-consensus", "alloy-eips", @@ -4725,8 +4679,8 @@ dependencies = [ [[package]] name = "reth-db-models" -version = "1.8.2" -source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.8.2#9c30bf7af5e0d45deaf5917375c9922c16654b28" +version = "1.9.1" +source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.9.1#3afe69a5738459a7cb5f46c598c7f541a1510f32" dependencies = [ "alloy-eips", "alloy-primitives", @@ -4737,8 +4691,8 @@ dependencies = [ [[package]] name = "reth-errors" -version = "1.8.2" -source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.8.2#9c30bf7af5e0d45deaf5917375c9922c16654b28" +version = "1.9.1" +source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.9.1#3afe69a5738459a7cb5f46c598c7f541a1510f32" dependencies = [ "reth-consensus", "reth-execution-errors", @@ -4748,8 +4702,8 @@ dependencies = [ [[package]] name = "reth-ethereum-consensus" -version = "1.8.2" -source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.8.2#9c30bf7af5e0d45deaf5917375c9922c16654b28" +version = "1.9.1" +source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.9.1#3afe69a5738459a7cb5f46c598c7f541a1510f32" dependencies = [ "alloy-consensus", "alloy-eips", @@ -4764,8 +4718,8 @@ dependencies = [ [[package]] name = "reth-ethereum-forks" -version = "1.8.2" -source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.8.2#9c30bf7af5e0d45deaf5917375c9922c16654b28" +version = "1.9.1" +source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.9.1#3afe69a5738459a7cb5f46c598c7f541a1510f32" dependencies = [ "alloy-eip2124", "alloy-hardforks", @@ -4777,8 +4731,8 @@ dependencies = [ [[package]] name = "reth-ethereum-primitives" -version = "1.8.2" -source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.8.2#9c30bf7af5e0d45deaf5917375c9922c16654b28" +version = "1.9.1" +source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.9.1#3afe69a5738459a7cb5f46c598c7f541a1510f32" dependencies = [ "alloy-consensus", "alloy-eips", @@ -4795,8 +4749,8 @@ dependencies = [ [[package]] name = "reth-evm" -version = "1.8.2" -source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.8.2#9c30bf7af5e0d45deaf5917375c9922c16654b28" +version = "1.9.1" +source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.9.1#3afe69a5738459a7cb5f46c598c7f541a1510f32" dependencies = [ "alloy-consensus", "alloy-eips", @@ -4816,8 +4770,8 @@ dependencies = [ [[package]] name = "reth-evm-ethereum" -version = "1.8.2" -source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.8.2#9c30bf7af5e0d45deaf5917375c9922c16654b28" +version = "1.9.1" +source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.9.1#3afe69a5738459a7cb5f46c598c7f541a1510f32" dependencies = [ "alloy-consensus", "alloy-eips", @@ -4837,21 +4791,21 @@ dependencies = [ [[package]] name = "reth-execution-errors" -version = "1.8.2" -source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.8.2#9c30bf7af5e0d45deaf5917375c9922c16654b28" +version = "1.9.1" +source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.9.1#3afe69a5738459a7cb5f46c598c7f541a1510f32" dependencies = [ "alloy-evm", "alloy-primitives", "alloy-rlp", - "nybbles 0.4.3", + "nybbles 0.4.6", "reth-storage-errors", "thiserror", ] [[package]] name = "reth-execution-types" -version = "1.8.2" -source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.8.2#9c30bf7af5e0d45deaf5917375c9922c16654b28" +version = "1.9.1" +source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.9.1#3afe69a5738459a7cb5f46c598c7f541a1510f32" dependencies = [ "alloy-consensus", "alloy-eips", @@ -4868,8 +4822,8 @@ dependencies = [ [[package]] name = "reth-network-peers" -version = "1.8.2" -source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.8.2#9c30bf7af5e0d45deaf5917375c9922c16654b28" +version = "1.9.1" +source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.9.1#3afe69a5738459a7cb5f46c598c7f541a1510f32" dependencies = [ "alloy-primitives", "alloy-rlp", @@ -4881,8 +4835,8 @@ dependencies = [ [[package]] name = "reth-primitives-traits" -version = "1.8.2" -source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.8.2#9c30bf7af5e0d45deaf5917375c9922c16654b28" +version = "1.9.1" +source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.9.1#3afe69a5738459a7cb5f46c598c7f541a1510f32" dependencies = [ "alloy-consensus", "alloy-eips", @@ -4908,19 +4862,20 @@ dependencies = [ [[package]] name = "reth-prune-types" -version = "1.8.2" -source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.8.2#9c30bf7af5e0d45deaf5917375c9922c16654b28" +version = "1.9.1" +source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.9.1#3afe69a5738459a7cb5f46c598c7f541a1510f32" dependencies = [ "alloy-primitives", "derive_more", "serde", + "strum", "thiserror", ] [[package]] name = "reth-revm" -version = "1.8.2" -source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.8.2#9c30bf7af5e0d45deaf5917375c9922c16654b28" +version = "1.9.1" +source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.9.1#3afe69a5738459a7cb5f46c598c7f541a1510f32" dependencies = [ "alloy-primitives", "reth-primitives-traits", @@ -4931,8 +4886,8 @@ dependencies = [ [[package]] name = "reth-stages-types" -version = "1.8.2" -source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.8.2#9c30bf7af5e0d45deaf5917375c9922c16654b28" +version = "1.9.1" +source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.9.1#3afe69a5738459a7cb5f46c598c7f541a1510f32" dependencies = [ "alloy-primitives", "bytes", @@ -4942,8 +4897,8 @@ dependencies = [ [[package]] name = "reth-stateless" -version = "1.8.2" -source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.8.2#9c30bf7af5e0d45deaf5917375c9922c16654b28" +version = "1.9.1" +source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.9.1#3afe69a5738459a7cb5f46c598c7f541a1510f32" dependencies = [ "alloy-consensus", "alloy-primitives", @@ -4951,6 +4906,7 @@ dependencies = [ "alloy-rpc-types-debug", "alloy-trie 0.9.1", "itertools 0.14.0", + "k256", "reth-chainspec", "reth-consensus", "reth-errors", @@ -4968,8 +4924,8 @@ dependencies = [ [[package]] name = "reth-static-file-types" -version = "1.8.2" -source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.8.2#9c30bf7af5e0d45deaf5917375c9922c16654b28" +version = "1.9.1" +source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.9.1#3afe69a5738459a7cb5f46c598c7f541a1510f32" dependencies = [ "alloy-primitives", "derive_more", @@ -4979,8 +4935,8 @@ dependencies = [ [[package]] name = "reth-storage-api" -version = "1.8.2" -source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.8.2#9c30bf7af5e0d45deaf5917375c9922c16654b28" +version = "1.9.1" +source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.9.1#3afe69a5738459a7cb5f46c598c7f541a1510f32" dependencies = [ "alloy-consensus", "alloy-eips", @@ -5001,8 +4957,8 @@ dependencies = [ [[package]] name = "reth-storage-errors" -version = "1.8.2" -source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.8.2#9c30bf7af5e0d45deaf5917375c9922c16654b28" +version = "1.9.1" +source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.9.1#3afe69a5738459a7cb5f46c598c7f541a1510f32" dependencies = [ "alloy-eips", "alloy-primitives", @@ -5017,8 +4973,8 @@ dependencies = [ [[package]] name = "reth-trie-common" -version = "1.8.2" -source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.8.2#9c30bf7af5e0d45deaf5917375c9922c16654b28" +version = "1.9.1" +source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.9.1#3afe69a5738459a7cb5f46c598c7f541a1510f32" dependencies = [ "alloy-consensus", "alloy-primitives", @@ -5026,10 +4982,11 @@ dependencies = [ "alloy-rpc-types-eth", "alloy-serde", "alloy-trie 0.9.1", + "arrayvec", "bytes", "derive_more", "itertools 0.14.0", - "nybbles 0.4.3", + "nybbles 0.4.6", "reth-primitives-traits", "revm-database", "serde", @@ -5038,8 +4995,8 @@ dependencies = [ [[package]] name = "reth-trie-sparse" -version = "1.8.2" -source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.8.2#9c30bf7af5e0d45deaf5917375c9922c16654b28" +version = "1.9.1" +source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.9.1#3afe69a5738459a7cb5f46c598c7f541a1510f32" dependencies = [ "alloy-primitives", "alloy-rlp", @@ -5054,17 +5011,17 @@ dependencies = [ [[package]] name = "reth-zstd-compressors" -version = "1.8.2" -source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.8.2#9c30bf7af5e0d45deaf5917375c9922c16654b28" +version = "1.9.1" +source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.9.1#3afe69a5738459a7cb5f46c598c7f541a1510f32" dependencies = [ "zstd", ] [[package]] name = "revm" -version = "29.0.1" +version = "31.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "718d90dce5f07e115d0e66450b1b8aa29694c1cf3f89ebddaddccc2ccbd2f13e" +checksum = "bb67a5223602113cae59a305acde2d9936bc18f2478dda879a6124b267cebfb6" dependencies = [ "revm-bytecode", "revm-context", @@ -5081,9 +5038,9 @@ dependencies = [ [[package]] name = "revm-bytecode" -version = "6.2.2" +version = "7.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "66c52031b73cae95d84cd1b07725808b5fd1500da3e5e24574a3b2dc13d9f16d" +checksum = "e2c6b5e6e8dd1e28a4a60e5f46615d4ef0809111c9e63208e55b5c7058200fb0" dependencies = [ "bitvec", "phf", @@ -5093,9 +5050,9 @@ dependencies = [ [[package]] name = "revm-context" -version = "9.1.0" +version = "11.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5a20c98e7008591a6f012550c2a00aa36cba8c14cc88eb88dec32eb9102554b4" +checksum = "92850e150f4f99d46c05a20ad0cd09286a7ad4ee21866fffb87101de6e602231" dependencies = [ "bitvec", "cfg-if", @@ -5110,9 +5067,9 @@ dependencies = [ [[package]] name = "revm-context-interface" -version = "10.2.0" +version = "12.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b50d241ed1ce647b94caf174fcd0239b7651318b2c4c06b825b59b973dfb8495" +checksum = "f6d701e2c2347d65216b066489ab22a0a8e1f7b2568256110d73a7d5eff3385c" dependencies = [ "alloy-eip2930", "alloy-eip7702", @@ -5126,9 +5083,9 @@ dependencies = [ [[package]] name = "revm-database" -version = "7.0.5" +version = "9.0.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "39a276ed142b4718dcf64bc9624f474373ed82ef20611025045c3fb23edbef9c" +checksum = "7b6c15bb255481fcf29f5ef7c97f00ed4c28a6ab6c490d77b990d73603031569" dependencies = [ "alloy-eips", "revm-bytecode", @@ -5140,9 +5097,9 @@ dependencies = [ [[package]] name = "revm-database-interface" -version = "7.0.5" +version = "8.0.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8c523c77e74eeedbac5d6f7c092e3851dbe9c7fec6f418b85992bd79229db361" +checksum = "8cce03e3780287b07abe58faf4a7f5d8be7e81321f93ccf3343c8f7755602bae" dependencies = [ "auto_impl", "either", @@ -5153,9 +5110,9 @@ dependencies = [ [[package]] name = "revm-handler" -version = "10.0.1" +version = "12.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "550331ea85c1d257686e672081576172fe3d5a10526248b663bbf54f1bef226a" +checksum = "b45418ed95cfdf0cb19effdbb7633cf2144cab7fb0e6ffd6b0eb9117a50adff6" dependencies = [ "auto_impl", "derive-where", @@ -5172,9 +5129,9 @@ dependencies = [ [[package]] name = "revm-inspector" -version = "10.0.1" +version = "12.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7c0a6e9ccc2ae006f5bed8bd80cd6f8d3832cd55c5e861b9402fdd556098512f" +checksum = "c99801eac7da06cc112df2244bd5a64024f4ef21240e923b26e73c4b4a0e5da6" dependencies = [ "auto_impl", "either", @@ -5190,21 +5147,22 @@ dependencies = [ [[package]] name = "revm-interpreter" -version = "25.0.3" +version = "29.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "06575dc51b1d8f5091daa12a435733a90b4a132dca7ccee0666c7db3851bc30c" +checksum = "22789ce92c5808c70185e3bc49732f987dc6fd907f77828c8d3470b2299c9c65" dependencies = [ "revm-bytecode", "revm-context-interface", "revm-primitives", + "revm-state", "serde", ] [[package]] name = "revm-precompile" -version = "27.0.0" +version = "29.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "25b57d4bd9e6b5fe469da5452a8a137bc2d030a3cd47c46908efc615bbc699da" +checksum = "968b124028960201abf6d6bf8e223f15fadebb4307df6b7dc9244a0aab5d2d05" dependencies = [ "ark-bls12-381", "ark-bn254", @@ -5216,20 +5174,19 @@ dependencies = [ "c-kzg", "cfg-if", "k256", - "libsecp256k1", "p256", "revm-primitives", "ripemd", "rug", "secp256k1 0.31.1", - "sha2 0.10.9", + "sha2", ] [[package]] name = "revm-primitives" -version = "20.2.1" +version = "21.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5aa29d9da06fe03b249b6419b33968ecdf92ad6428e2f012dc57bcd619b5d94e" +checksum = "29e161db429d465c09ba9cbff0df49e31049fe6b549e28eb0b7bd642fcbd4412" dependencies = [ "alloy-primitives", "num_enum", @@ -5239,11 +5196,11 @@ dependencies = [ [[package]] name = "revm-state" -version = "7.0.5" +version = "8.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1f64fbacb86008394aaebd3454f9643b7d5a782bd251135e17c5b33da592d84d" +checksum = "7d8be953b7e374dbdea0773cf360debed8df394ea8d82a8b240a6b5da37592fc" dependencies = [ - "bitflags 2.9.4", + "bitflags 2.10.0", "revm-bytecode", "revm-primitives", "serde", @@ -5299,7 +5256,7 @@ dependencies = [ "risc0-zkp", "risc0-zkvm-platform", "ruint", - "semver 1.0.26", + "semver 1.0.27", "serde", "tracing", ] @@ -5321,7 +5278,7 @@ dependencies = [ "risc0-zkp", "risc0-zkvm-platform", "rzup", - "semver 1.0.26", + "semver 1.0.27", "serde", "serde_json", "stability", @@ -5452,7 +5409,7 @@ dependencies = [ "risc0-core", "risc0-zkvm-platform", "serde", - "sha2 0.10.9", + "sha2", "stability", "tracing", ] @@ -5485,9 +5442,9 @@ dependencies = [ "risc0-zkvm-platform", "rrs-lib", "rzup", - "semver 1.0.26", + "semver 1.0.27", "serde", - "sha2 0.10.9", + "sha2", "stability", "tempfile", "tracing", @@ -5502,7 +5459,7 @@ dependencies = [ "bytemuck", "cfg-if", "getrandom 0.2.16", - "getrandom 0.3.3", + "getrandom 0.3.4", "libm", "num_enum", "paste", @@ -5563,13 +5520,14 @@ dependencies = [ [[package]] name = "ruint" -version = "1.16.0" +version = "1.17.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9ecb38f82477f20c5c3d62ef52d7c4e536e38ea9b73fb570a20c5cae0e14bcf6" +checksum = "a68df0380e5c9d20ce49534f292a36a7514ae21350726efe1865bdb1fa91d278" dependencies = [ "alloy-rlp", "ark-ff 0.3.0", "ark-ff 0.4.2", + "ark-ff 0.5.0", "borsh", "bytes", "fastrlp 0.3.1", @@ -5584,7 +5542,7 @@ dependencies = [ "rand 0.9.2", "rlp", "ruint-macro", - "serde", + "serde_core", "valuable", "zeroize", ] @@ -5595,12 +5553,6 @@ version = "1.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "48fd7bd8a6377e15ad9d42a8ec25371b94ddc67abe7c8b9127bec79bebaaae18" -[[package]] -name = "rustc-demangle" -version = "0.1.26" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "56f7d92ca342cea22a06f2121d944b4fd82af56988c270852495420f961d4ace" - [[package]] name = "rustc-hash" version = "2.1.1" @@ -5628,27 +5580,27 @@ version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "cfcb3a22ef46e85b45de6ee7e79d063319ebb6594faafcf1c225ea92ab6e9b92" dependencies = [ - "semver 1.0.26", + "semver 1.0.27", ] [[package]] name = "rustix" -version = "1.0.8" +version = "1.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "11181fbabf243db407ef8df94a6ce0b2f9a733bd8be4ad02b4eda9602296cac8" +checksum = "cd15f8a2c5551a84d56efdc1cd049089e409ac19a3072d5037a17fd70719ff3e" dependencies = [ - "bitflags 2.9.4", + "bitflags 2.10.0", "errno", "libc", "linux-raw-sys", - "windows-sys 0.60.2", + "windows-sys 0.61.2", ] [[package]] name = "rustls" -version = "0.23.31" +version = "0.23.35" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c0ebcbd2f03de0fc1122ad9bb24b127a5a6cd51d72604a3f3c50ac459762b6cc" +checksum = "533f54bc6a7d4f647e46ad909549eda97bf5afc1585190ef692b4286b198bd8f" dependencies = [ "once_cell", "ring", @@ -5660,9 +5612,9 @@ dependencies = [ [[package]] name = "rustls-pki-types" -version = "1.12.0" +version = "1.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "229a4a4c221013e7e1f1a043678c5cc39fe5171437c88fb47151a21e6f5b5c79" +checksum = "94182ad936a0c91c324cd46c6511b9510ed16af436d7b5bab34beab0afd55f7a" dependencies = [ "web-time", "zeroize", @@ -5670,9 +5622,9 @@ dependencies = [ [[package]] name = "rustls-webpki" -version = "0.103.4" +version = "0.103.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0a17884ae0c1b773f1ccd2bd4a8c72f16da897310a98b0e84bf349ad5ead92fc" +checksum = "2ffdfa2f5286e2247234e03f680868ac2815974dc39e00ea15adc445d0aafe52" dependencies = [ "ring", "rustls-pki-types", @@ -5687,9 +5639,9 @@ checksum = "b39cdef0fa800fc44525c84ccb54a029961a8215f9619753635a9c0d2538d46d" [[package]] name = "rusty-fork" -version = "0.3.0" +version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cb3dcc6e454c328bb824492db107ab7c0ae8fcffe4ad210136ef014458c1bc4f" +checksum = "cc6bf79ff24e648f6da1f8d1f011e9cac26491b619e6b9280f2b47f1774e6ee2" dependencies = [ "fnv", "quick-error", @@ -5711,10 +5663,10 @@ checksum = "5d2aed296f203fa64bcb4b52069356dd86d6ec578593985b919b6995bee1f0ae" dependencies = [ "hex", "rsa", - "semver 1.0.26", + "semver 1.0.27", "serde", "serde_with", - "sha2 0.10.9", + "sha2", "strum", "tempfile", "thiserror", @@ -5724,11 +5676,11 @@ dependencies = [ [[package]] name = "schannel" -version = "0.1.27" +version = "0.1.28" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1f29ebaa345f945cec9fbbc532eb307f0fdad8161f281b6369539c8d84876b3d" +checksum = "891d81b926048e76efe18581bf793546b4c0eaf8448d72be8de2bbee5fd166e1" dependencies = [ - "windows-sys 0.59.0", + "windows-sys 0.61.2", ] [[package]] @@ -5745,9 +5697,9 @@ dependencies = [ [[package]] name = "schemars" -version = "1.0.4" +version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "82d20c4491bc164fa2f6c5d44565947a52ad80b9505d8e36f8d54c27c739fcd0" +checksum = "9558e172d4e8533736ba97870c4b2cd63f84b382a3d6eb063da41b91cce17289" dependencies = [ "dyn-clone", "ref-cast", @@ -5823,7 +5775,7 @@ version = "2.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "897b2245f0b511c87893af39b033e5ca9cce68824c4d7e7630b5a1d339658d02" dependencies = [ - "bitflags 2.9.4", + "bitflags 2.10.0", "core-foundation", "core-foundation-sys", "libc", @@ -5851,11 +5803,12 @@ dependencies = [ [[package]] name = "semver" -version = "1.0.26" +version = "1.0.27" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "56e6fa9c48d24d85fb3de5ad847117517440f6beceb7798af16b4a87d616b8d0" +checksum = "d767eb0aabc880b29956c35734170f26ed551a859dbd361d140cdbeca61ab1e2" dependencies = [ "serde", + "serde_core", ] [[package]] @@ -5875,9 +5828,9 @@ checksum = "cd0b0ec5f1c1ca621c432a25813d8d60c88abe6d3e08a3eb9cf37d97a0fe3d73" [[package]] name = "serde" -version = "1.0.226" +version = "1.0.228" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0dca6411025b24b60bfa7ec1fe1f8e710ac09782dca409ee8237ba74b51295fd" +checksum = "9a8e94ea7f378bd32cbbd37198a4a91436180c5bb472411e48b5ec2e2124ae9e" dependencies = [ "serde_core", "serde_derive", @@ -5885,35 +5838,36 @@ dependencies = [ [[package]] name = "serde_core" -version = "1.0.226" +version = "1.0.228" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ba2ba63999edb9dac981fb34b3e5c0d111a69b0924e253ed29d83f7c99e966a4" +checksum = "41d385c7d4ca58e59fc732af25c3983b67ac852c1a25000afe1175de458b67ad" dependencies = [ "serde_derive", ] [[package]] name = "serde_derive" -version = "1.0.226" +version = "1.0.228" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8db53ae22f34573731bafa1db20f04027b2d25e02d8205921b569171699cdb33" +checksum = "d540f220d3187173da220f885ab66608367b6574e925011a9353e4badda91d79" dependencies = [ "proc-macro2", "quote", - "syn 2.0.106", + "syn 2.0.110", ] [[package]] name = "serde_json" -version = "1.0.143" +version = "1.0.145" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d401abef1d108fbd9cbaebc3e46611f4b1021f714a0597a71f41ee463f5f4a5a" +checksum = "402a6f66d8c709116cf22f558eab210f5a50187f702eb4d7e5ef38d9a7f1c79c" dependencies = [ - "indexmap 2.11.0", + "indexmap 2.12.0", "itoa", "memchr", "ryu", "serde", + "serde_core", ] [[package]] @@ -5939,19 +5893,18 @@ dependencies = [ [[package]] name = "serde_with" -version = "3.14.0" +version = "3.15.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f2c45cd61fefa9db6f254525d46e392b852e0e61d9a1fd36e5bd183450a556d5" +checksum = "aa66c845eee442168b2c8134fec70ac50dc20e760769c8ba0ad1319ca1959b04" dependencies = [ "base64", "chrono", "hex", "indexmap 1.9.3", - "indexmap 2.11.0", + "indexmap 2.12.0", "schemars 0.9.0", - "schemars 1.0.4", - "serde", - "serde_derive", + "schemars 1.1.0", + "serde_core", "serde_json", "serde_with_macros", "time", @@ -5959,14 +5912,14 @@ dependencies = [ [[package]] name = "serde_with_macros" -version = "3.14.0" +version = "3.15.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "de90945e6565ce0d9a25098082ed4ee4002e047cb59892c318d66821e14bb30f" +checksum = "b91a903660542fced4e99881aa481bdbaec1634568ee02e0b8bd57c64cb38955" dependencies = [ - "darling 0.20.11", + "darling 0.21.3", "proc-macro2", "quote", - "syn 2.0.106", + "syn 2.0.110", ] [[package]] @@ -5990,19 +5943,6 @@ dependencies = [ "digest 0.10.7", ] -[[package]] -name = "sha2" -version = "0.9.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4d58a1e1bf39749807d89cf2d98ac2dfa0ff1cb3faa38fbb64dd88ac8013d800" -dependencies = [ - "block-buffer 0.9.0", - "cfg-if", - "cpufeatures", - "digest 0.9.0", - "opaque-debug", -] - [[package]] name = "sha2" version = "0.10.9" @@ -6068,6 +6008,12 @@ dependencies = [ "rand_core 0.6.4", ] +[[package]] +name = "simd-adler32" +version = "0.3.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d66dc143e6b11c1eddc06d5c423cfc97062865baf299914ab64caa38182078fe" + [[package]] name = "siphasher" version = "1.0.1" @@ -6089,6 +6035,12 @@ dependencies = [ "serde", ] +[[package]] +name = "snap" +version = "1.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1b6b67fb9a61334225b5b790716f609cd58395f895b3fe8b328786812a40bc3b" + [[package]] name = "socket2" version = "0.5.10" @@ -6101,12 +6053,12 @@ dependencies = [ [[package]] name = "socket2" -version = "0.6.0" +version = "0.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "233504af464074f9d066d7b5416c5f9b894a5862a6506e306f7b816cdd6f1807" +checksum = "17129e116933cf371d018bb80ae557e889637989d8638274fb25622827b03881" dependencies = [ "libc", - "windows-sys 0.59.0", + "windows-sys 0.60.2", ] [[package]] @@ -6132,14 +6084,14 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d904e7009df136af5297832a3ace3370cd14ff1546a232f4f185036c2736fcac" dependencies = [ "quote", - "syn 2.0.106", + "syn 2.0.110", ] [[package]] name = "stable_deref_trait" -version = "1.2.0" +version = "1.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a8f112729512f8e442d81f95a8a7ddf2b7c6b8a1a6f509a95864142b30cab2d3" +checksum = "6ce2be8dc25455e1f91df71bfa12ad37d7af1092ae736f3a6cd0e37bc7810596" [[package]] name = "static_assertions" @@ -6171,7 +6123,7 @@ dependencies = [ "heck", "proc-macro2", "quote", - "syn 2.0.106", + "syn 2.0.110", ] [[package]] @@ -6193,9 +6145,9 @@ dependencies = [ [[package]] name = "syn" -version = "2.0.106" +version = "2.0.110" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ede7c438028d4436d71104916910f5bb611972c5cfd7f89b8300a8186e6fada6" +checksum = "a99801b5bd34ede4cf3fc688c5919368fea4e4814a4664359503e6015b280aea" dependencies = [ "proc-macro2", "quote", @@ -6204,14 +6156,14 @@ dependencies = [ [[package]] name = "syn-solidity" -version = "1.3.1" +version = "1.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a0b198d366dbec045acfcd97295eb653a7a2b40e4dc764ef1e79aafcad439d3c" +checksum = "ff790eb176cc81bb8936aed0f7b9f14fc4670069a2d371b3e3b0ecce908b2cb3" dependencies = [ "paste", "proc-macro2", "quote", - "syn 2.0.106", + "syn 2.0.110", ] [[package]] @@ -6231,7 +6183,7 @@ checksum = "728a70f3dbaf5bab7f0c4b1ac8d7ae5ea60a4b5549c8a5914361c99147a709d2" dependencies = [ "proc-macro2", "quote", - "syn 2.0.106", + "syn 2.0.110", ] [[package]] @@ -6240,7 +6192,7 @@ version = "0.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3c879d448e9d986b661742763247d3693ed13609438cf3d006f51f5368a5ba6b" dependencies = [ - "bitflags 2.9.4", + "bitflags 2.10.0", "core-foundation", "system-configuration-sys", ] @@ -6263,35 +6215,35 @@ checksum = "55937e1799185b12863d447f42597ed69d9928686b8d88a1df17376a097d8369" [[package]] name = "tempfile" -version = "3.21.0" +version = "3.23.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "15b61f8f20e3a6f7e0649d825294eaf317edce30f82cf6026e7e4cb9222a7d1e" +checksum = "2d31c77bdf42a745371d260a26ca7163f1e0924b64afa0b688e61b5a9fa02f16" dependencies = [ "fastrand", - "getrandom 0.3.3", + "getrandom 0.3.4", "once_cell", "rustix", - "windows-sys 0.60.2", + "windows-sys 0.61.2", ] [[package]] name = "thiserror" -version = "2.0.16" +version = "2.0.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3467d614147380f2e4e374161426ff399c91084acd2363eaf549172b3d5e60c0" +checksum = "f63587ca0f12b72a0600bcba1d40081f830876000bb46dd2337a3051618f4fc8" dependencies = [ "thiserror-impl", ] [[package]] name = "thiserror-impl" -version = "2.0.16" +version = "2.0.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6c5e1be1c48b9172ee610da68fd9cd2770e7a4056cb3fc98710ee6906f0c7960" +checksum = "3ff15c8ecd7de3849db632e14d18d2571fa09dfc5ed93479bc4485c7a517c913" dependencies = [ "proc-macro2", "quote", - "syn 2.0.106", + "syn 2.0.110", ] [[package]] @@ -6314,11 +6266,12 @@ dependencies = [ [[package]] name = "time" -version = "0.3.43" +version = "0.3.44" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "83bde6f1ec10e72d583d91623c939f623002284ef622b87de38cfd546cbf2031" +checksum = "91e7d9e3bb61134e77bde20dd4825b97c010155709965fedf0f49bb138e52a9d" dependencies = [ "deranged", + "itoa", "num-conv", "powerfmt", "serde", @@ -6353,9 +6306,9 @@ dependencies = [ [[package]] name = "tinystr" -version = "0.8.1" +version = "0.8.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5d4f6d1145dcb577acf783d4e601bc1d76a13337bb54e6233add580b07344c8b" +checksum = "42d3e9c45c09de15d06dd8acf5f4e0e399e85927b7f00711024eb7ae10fa4869" dependencies = [ "displaydoc", "zerovec", @@ -6378,33 +6331,30 @@ checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" [[package]] name = "tokio" -version = "1.47.1" +version = "1.48.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "89e49afdadebb872d3145a5638b59eb0691ea23e46ca484037cfab3b76b95038" +checksum = "ff360e02eab121e0bc37a2d3b4d4dc622e6eda3a8e5253d5435ecf5bd4c68408" dependencies = [ - "backtrace", "bytes", - "io-uring", "libc", "mio", "parking_lot", "pin-project-lite", "signal-hook-registry", - "slab", - "socket2 0.6.0", + "socket2 0.6.1", "tokio-macros", - "windows-sys 0.59.0", + "windows-sys 0.61.2", ] [[package]] name = "tokio-macros" -version = "2.5.0" +version = "2.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6e06d43f1345a3bcd39f6a56dbb7dcab2ba47e68e8ac134855e7e2bdbaf8cab8" +checksum = "af407857209536a95c8e56f8231ef2c2e2aff839b22e07a1ffcbc617e9db9fa5" dependencies = [ "proc-macro2", "quote", - "syn 2.0.106", + "syn 2.0.110", ] [[package]] @@ -6419,9 +6369,9 @@ dependencies = [ [[package]] name = "tokio-rustls" -version = "0.26.2" +version = "0.26.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8e727b36a1a0e8b74c376ac2211e40c2c8af09fb4013c60d910495810f008e9b" +checksum = "1729aa945f29d91ba541258c8df89027d5792d85a8841fb65e8bf0f4ede4ef61" dependencies = [ "rustls", "tokio", @@ -6457,9 +6407,9 @@ dependencies = [ [[package]] name = "tokio-util" -version = "0.7.16" +version = "0.7.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "14307c986784f72ef81c89db7d9e28d6ac26d16213b109ea501696195e6e3ce5" +checksum = "2efa149fe76073d6e8fd97ef4f4eca7b67f599660115591483572e406e165594" dependencies = [ "bytes", "futures-core", @@ -6476,8 +6426,8 @@ checksum = "dc1beb996b9d83529a9e75c17a1686767d148d70663143c7854d8b4a09ced362" dependencies = [ "serde", "serde_spanned", - "toml_datetime", - "toml_edit", + "toml_datetime 0.6.11", + "toml_edit 0.22.27", ] [[package]] @@ -6489,20 +6439,50 @@ dependencies = [ "serde", ] +[[package]] +name = "toml_datetime" +version = "0.7.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f2cdb639ebbc97961c51720f858597f7f24c4fc295327923af55b74c3c724533" +dependencies = [ + "serde_core", +] + [[package]] name = "toml_edit" version = "0.22.27" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "41fe8c660ae4257887cf66394862d21dbca4a6ddd26f04a3560410406a2f819a" dependencies = [ - "indexmap 2.11.0", + "indexmap 2.12.0", "serde", "serde_spanned", - "toml_datetime", + "toml_datetime 0.6.11", "toml_write", "winnow", ] +[[package]] +name = "toml_edit" +version = "0.23.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6485ef6d0d9b5d0ec17244ff7eb05310113c3f316f2d14200d4de56b3cb98f8d" +dependencies = [ + "indexmap 2.12.0", + "toml_datetime 0.7.3", + "toml_parser", + "winnow", +] + +[[package]] +name = "toml_parser" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c0cbe268d35bdb4bb5a56a2de88d0ad0eb70af5384a99d648cd4b3d04039800e" +dependencies = [ + "winnow", +] + [[package]] name = "toml_write" version = "0.1.2" @@ -6530,7 +6510,7 @@ version = "0.6.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "adc82fd73de2a9722ac5da747f12383d2bfdb93591ee6c58486e0097890f05f2" dependencies = [ - "bitflags 2.9.4", + "bitflags 2.10.0", "bytes", "futures-util", "http 1.3.1", @@ -6587,7 +6567,7 @@ checksum = "81383ab64e72a7a8b8e13130c49e3dab29def6d0c7d76a03087b3cf71c5c6903" dependencies = [ "proc-macro2", "quote", - "syn 2.0.106", + "syn 2.0.110", ] [[package]] @@ -6661,9 +6641,9 @@ dependencies = [ [[package]] name = "typenum" -version = "1.18.0" +version = "1.19.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1dccffe3ce07af9386bfd29e80c0ab1a8205a2fc34e4bcd40364df902cfa8f3f" +checksum = "562d481066bde0658276a35467c4af00bdc6ee726305698a55b86e61d7ad82bb" [[package]] name = "ucd-trie" @@ -6691,9 +6671,9 @@ checksum = "eaea85b334db583fe3274d12b4cd1880032beab409c0d774be044d4480ab9a94" [[package]] name = "unicode-ident" -version = "1.0.18" +version = "1.0.22" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5a5f39404a5da50712a4c1eecf25e90dd62b613502b7e925fd4e4d19b5c96512" +checksum = "9312f7c4f6ff9069b165498234ce8be658059c6728633667c526e27dc2cf1df5" [[package]] name = "unicode-segmentation" @@ -6749,7 +6729,7 @@ version = "1.18.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2f87b8aa10b915a06587d0dec516c282ff295b475d94abf425d62b57710070a2" dependencies = [ - "getrandom 0.3.3", + "getrandom 0.3.4", "js-sys", "wasm-bindgen", ] @@ -6797,19 +6777,19 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ccf3ec651a847eb01de73ccad15eb7d99f80485de043efb2f370cd654f4ea44b" [[package]] -name = "wasi" -version = "0.14.4+wasi-0.2.4" +name = "wasip2" +version = "1.0.1+wasi-0.2.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "88a5f4a424faf49c3c2c344f166f0662341d470ea185e939657aaff130f0ec4a" +checksum = "0562428422c63773dad2c345a1882263bbf4d65cf3f42e90921f787ef5ad58e7" dependencies = [ "wit-bindgen", ] [[package]] name = "wasm-bindgen" -version = "0.2.101" +version = "0.2.105" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7e14915cadd45b529bb8d1f343c4ed0ac1de926144b746e2710f9cd05df6603b" +checksum = "da95793dfc411fbbd93f5be7715b0578ec61fe87cb1a42b12eb625caa5c5ea60" dependencies = [ "cfg-if", "once_cell", @@ -6818,25 +6798,11 @@ dependencies = [ "wasm-bindgen-shared", ] -[[package]] -name = "wasm-bindgen-backend" -version = "0.2.101" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e28d1ba982ca7923fd01448d5c30c6864d0a14109560296a162f80f305fb93bb" -dependencies = [ - "bumpalo", - "log", - "proc-macro2", - "quote", - "syn 2.0.106", - "wasm-bindgen-shared", -] - [[package]] name = "wasm-bindgen-futures" -version = "0.4.51" +version = "0.4.55" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0ca85039a9b469b38336411d6d6ced91f3fc87109a2a27b0c197663f5144dffe" +checksum = "551f88106c6d5e7ccc7cd9a16f312dd3b5d36ea8b4954304657d5dfba115d4a0" dependencies = [ "cfg-if", "js-sys", @@ -6847,9 +6813,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro" -version = "0.2.101" +version = "0.2.105" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7c3d463ae3eff775b0c45df9da45d68837702ac35af998361e2c84e7c5ec1b0d" +checksum = "04264334509e04a7bf8690f2384ef5265f05143a4bff3889ab7a3269adab59c2" dependencies = [ "quote", "wasm-bindgen-macro-support", @@ -6857,22 +6823,22 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro-support" -version = "0.2.101" +version = "0.2.105" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7bb4ce89b08211f923caf51d527662b75bdc9c9c7aab40f86dcb9fb85ac552aa" +checksum = "420bc339d9f322e562942d52e115d57e950d12d88983a14c79b86859ee6c7ebc" dependencies = [ + "bumpalo", "proc-macro2", "quote", - "syn 2.0.106", - "wasm-bindgen-backend", + "syn 2.0.110", "wasm-bindgen-shared", ] [[package]] name = "wasm-bindgen-shared" -version = "0.2.101" +version = "0.2.105" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f143854a3b13752c6950862c906306adb27c7e839f7414cec8fea35beab624c1" +checksum = "76f218a38c84bcb33c25ec7059b07847d465ce0e0a76b995e134a45adcb6af76" dependencies = [ "unicode-ident", ] @@ -6906,9 +6872,9 @@ dependencies = [ [[package]] name = "web-sys" -version = "0.3.78" +version = "0.3.82" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "77e4b637749ff0d92b8fad63aa1f7cff3cbe125fd49c175cd6345e7272638b12" +checksum = "3a1f95c0d03a47f4ae1f7a64643a6bb97465d9b740f0fa8f90ea33915c99a9a1" dependencies = [ "js-sys", "wasm-bindgen", @@ -6930,57 +6896,57 @@ version = "0.26.11" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "521bc38abb08001b01866da9f51eb7c5d647a19260e00054a8c7fd5f9e57f7a9" dependencies = [ - "webpki-roots 1.0.2", + "webpki-roots 1.0.4", ] [[package]] name = "webpki-roots" -version = "1.0.2" +version = "1.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7e8983c3ab33d6fb807cfcdad2491c4ea8cbc8ed839181c7dfd9c67c83e261b2" +checksum = "b2878ef029c47c6e8cf779119f20fcf52bde7ad42a731b2a304bc221df17571e" dependencies = [ "rustls-pki-types", ] [[package]] name = "widestring" -version = "1.2.0" +version = "1.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dd7cf3379ca1aac9eea11fba24fd7e315d621f8dfe35c8d7d2be8b793726e07d" +checksum = "72069c3113ab32ab29e5584db3c6ec55d416895e60715417b5b883a357c3e471" [[package]] name = "windows-core" -version = "0.61.2" +version = "0.62.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c0fdd3ddb90610c7638aa2b3a3ab2904fb9e5cdbecc643ddb3647212781c4ae3" +checksum = "b8e83a14d34d0623b51dce9581199302a221863196a1dde71a7663a4c2be9deb" dependencies = [ "windows-implement", "windows-interface", - "windows-link 0.1.3", - "windows-result", - "windows-strings", + "windows-link 0.2.1", + "windows-result 0.4.1", + "windows-strings 0.5.1", ] [[package]] name = "windows-implement" -version = "0.60.0" +version = "0.60.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a47fddd13af08290e67f4acabf4b459f647552718f683a7b415d290ac744a836" +checksum = "053e2e040ab57b9dc951b72c264860db7eb3b0200ba345b4e4c3b14f67855ddf" dependencies = [ "proc-macro2", "quote", - "syn 2.0.106", + "syn 2.0.110", ] [[package]] name = "windows-interface" -version = "0.59.1" +version = "0.59.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bd9211b69f8dcdfa817bfd14bf1c97c9188afa36f4750130fcdf3f400eca9fa8" +checksum = "3f316c4a2570ba26bbec722032c4099d8c8bc095efccdc15688708623367e358" dependencies = [ "proc-macro2", "quote", - "syn 2.0.106", + "syn 2.0.110", ] [[package]] @@ -6991,9 +6957,9 @@ checksum = "5e6ad25900d524eaabdbbb96d20b4311e1e7ae1699af4fb28c17ae66c80d798a" [[package]] name = "windows-link" -version = "0.2.0" +version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "45e46c0661abb7180e7b9c281db115305d49ca1709ab8242adf09666d2173c65" +checksum = "f0805222e57f7521d6a62e36fa9163bc891acd422f971defe97d64e70d0a4fe5" [[package]] name = "windows-registry" @@ -7002,8 +6968,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5b8a9ed28765efc97bbc954883f4e6796c33a06546ebafacbabee9696967499e" dependencies = [ "windows-link 0.1.3", - "windows-result", - "windows-strings", + "windows-result 0.3.4", + "windows-strings 0.4.2", ] [[package]] @@ -7015,6 +6981,15 @@ dependencies = [ "windows-link 0.1.3", ] +[[package]] +name = "windows-result" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7781fa89eaf60850ac3d2da7af8e5242a5ea78d1a11c49bf2910bb5a73853eb5" +dependencies = [ + "windows-link 0.2.1", +] + [[package]] name = "windows-strings" version = "0.4.2" @@ -7025,19 +7000,19 @@ dependencies = [ ] [[package]] -name = "windows-sys" -version = "0.52.0" +name = "windows-strings" +version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d" +checksum = "7837d08f69c77cf6b07689544538e017c1bfcf57e34b4c0ff58e6c2cd3b37091" dependencies = [ - "windows-targets 0.52.6", + "windows-link 0.2.1", ] [[package]] name = "windows-sys" -version = "0.59.0" +version = "0.52.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e38bc4d79ed67fd075bcc251a1c39b32a1776bbe92e5bef1f0bf1f8c531853b" +checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d" dependencies = [ "windows-targets 0.52.6", ] @@ -7048,16 +7023,16 @@ version = "0.60.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f2f500e4d28234f72040990ec9d39e3a6b950f9f22d3dba18416c35882612bcb" dependencies = [ - "windows-targets 0.53.3", + "windows-targets 0.53.5", ] [[package]] name = "windows-sys" -version = "0.61.0" +version = "0.61.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e201184e40b2ede64bc2ea34968b28e33622acdbbf37104f0e4a33f7abe657aa" +checksum = "ae137229bcbd6cdf0f7b80a31df61766145077ddf49416a728b02cb3921ff3fc" dependencies = [ - "windows-link 0.2.0", + "windows-link 0.2.1", ] [[package]] @@ -7078,19 +7053,19 @@ dependencies = [ [[package]] name = "windows-targets" -version = "0.53.3" +version = "0.53.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d5fe6031c4041849d7c496a8ded650796e7b6ecc19df1a431c1a363342e5dc91" +checksum = "4945f9f551b88e0d65f3db0bc25c33b8acea4d9e41163edf90dcd0b19f9069f3" dependencies = [ - "windows-link 0.1.3", - "windows_aarch64_gnullvm 0.53.0", - "windows_aarch64_msvc 0.53.0", - "windows_i686_gnu 0.53.0", - "windows_i686_gnullvm 0.53.0", - "windows_i686_msvc 0.53.0", - "windows_x86_64_gnu 0.53.0", - "windows_x86_64_gnullvm 0.53.0", - "windows_x86_64_msvc 0.53.0", + "windows-link 0.2.1", + "windows_aarch64_gnullvm 0.53.1", + "windows_aarch64_msvc 0.53.1", + "windows_i686_gnu 0.53.1", + "windows_i686_gnullvm 0.53.1", + "windows_i686_msvc 0.53.1", + "windows_x86_64_gnu 0.53.1", + "windows_x86_64_gnullvm 0.53.1", + "windows_x86_64_msvc 0.53.1", ] [[package]] @@ -7101,9 +7076,9 @@ checksum = "32a4622180e7a0ec044bb555404c800bc9fd9ec262ec147edd5989ccd0c02cd3" [[package]] name = "windows_aarch64_gnullvm" -version = "0.53.0" +version = "0.53.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "86b8d5f90ddd19cb4a147a5fa63ca848db3df085e25fee3cc10b39b6eebae764" +checksum = "a9d8416fa8b42f5c947f8482c43e7d89e73a173cead56d044f6a56104a6d1b53" [[package]] name = "windows_aarch64_msvc" @@ -7113,9 +7088,9 @@ checksum = "09ec2a7bb152e2252b53fa7803150007879548bc709c039df7627cabbd05d469" [[package]] name = "windows_aarch64_msvc" -version = "0.53.0" +version = "0.53.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c7651a1f62a11b8cbd5e0d42526e55f2c99886c77e007179efff86c2b137e66c" +checksum = "b9d782e804c2f632e395708e99a94275910eb9100b2114651e04744e9b125006" [[package]] name = "windows_i686_gnu" @@ -7125,9 +7100,9 @@ checksum = "8e9b5ad5ab802e97eb8e295ac6720e509ee4c243f69d781394014ebfe8bbfa0b" [[package]] name = "windows_i686_gnu" -version = "0.53.0" +version = "0.53.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c1dc67659d35f387f5f6c479dc4e28f1d4bb90ddd1a5d3da2e5d97b42d6272c3" +checksum = "960e6da069d81e09becb0ca57a65220ddff016ff2d6af6a223cf372a506593a3" [[package]] name = "windows_i686_gnullvm" @@ -7137,9 +7112,9 @@ checksum = "0eee52d38c090b3caa76c563b86c3a4bd71ef1a819287c19d586d7334ae8ed66" [[package]] name = "windows_i686_gnullvm" -version = "0.53.0" +version = "0.53.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9ce6ccbdedbf6d6354471319e781c0dfef054c81fbc7cf83f338a4296c0cae11" +checksum = "fa7359d10048f68ab8b09fa71c3daccfb0e9b559aed648a8f95469c27057180c" [[package]] name = "windows_i686_msvc" @@ -7149,9 +7124,9 @@ checksum = "240948bc05c5e7c6dabba28bf89d89ffce3e303022809e73deaefe4f6ec56c66" [[package]] name = "windows_i686_msvc" -version = "0.53.0" +version = "0.53.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "581fee95406bb13382d2f65cd4a908ca7b1e4c2f1917f143ba16efe98a589b5d" +checksum = "1e7ac75179f18232fe9c285163565a57ef8d3c89254a30685b57d83a38d326c2" [[package]] name = "windows_x86_64_gnu" @@ -7161,9 +7136,9 @@ checksum = "147a5c80aabfbf0c7d901cb5895d1de30ef2907eb21fbbab29ca94c5b08b1a78" [[package]] name = "windows_x86_64_gnu" -version = "0.53.0" +version = "0.53.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2e55b5ac9ea33f2fc1716d1742db15574fd6fc8dadc51caab1c16a3d3b4190ba" +checksum = "9c3842cdd74a865a8066ab39c8a7a473c0778a3f29370b5fd6b4b9aa7df4a499" [[package]] name = "windows_x86_64_gnullvm" @@ -7173,9 +7148,9 @@ checksum = "24d5b23dc417412679681396f2b49f3de8c1473deb516bd34410872eff51ed0d" [[package]] name = "windows_x86_64_gnullvm" -version = "0.53.0" +version = "0.53.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0a6e035dd0599267ce1ee132e51c27dd29437f63325753051e71dd9e42406c57" +checksum = "0ffa179e2d07eee8ad8f57493436566c7cc30ac536a3379fdf008f47f6bb7ae1" [[package]] name = "windows_x86_64_msvc" @@ -7185,9 +7160,9 @@ checksum = "589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec" [[package]] name = "windows_x86_64_msvc" -version = "0.53.0" +version = "0.53.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "271414315aff87387382ec3d271b52d7ae78726f5d44ac98b4f4030c91880486" +checksum = "d6bbff5f0aada427a1e5a6da5f1f98158182f26556f345ac9e04d36d0ebed650" [[package]] name = "winnow" @@ -7200,15 +7175,15 @@ dependencies = [ [[package]] name = "wit-bindgen" -version = "0.45.1" +version = "0.46.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5c573471f125075647d03df72e026074b7203790d41351cd6edc96f46bcccd36" +checksum = "f17a85883d4e6d00e8a97c586de764dabcc06133f7f1d55dce5cdc070ad7fe59" [[package]] name = "writeable" -version = "0.6.1" +version = "0.6.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ea2f10b9bb0928dfb1b42b65e1f9e36f7f54dbdf08457afefb38afcdec4fa2bb" +checksum = "9edde0db4769d2dc68579893f2306b26c6ecfbe0ef499b013d731b7b9247e0b9" [[package]] name = "ws_stream_wasm" @@ -7240,28 +7215,21 @@ dependencies = [ [[package]] name = "yaml-rust2" -version = "0.10.3" +version = "0.10.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4ce2a4ff45552406d02501cea6c18d8a7e50228e7736a872951fe2fe75c91be7" +checksum = "2462ea039c445496d8793d052e13787f2b90e750b833afee748e601c17621ed9" dependencies = [ "arraydeque", "encoding_rs", "hashlink", ] -[[package]] -name = "yansi" -version = "1.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cfe53a6657fd280eaa890a3bc59152892ffa3e30101319d168b781ed6529b049" - [[package]] name = "yoke" -version = "0.8.0" +version = "0.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5f41bb01b8226ef4bfd589436a297c53d118f65921786300e427be8d487695cc" +checksum = "72d6e5c6afb84d73944e5cedb052c4680d5657337201555f9f2a16b7406d4954" dependencies = [ - "serde", "stable_deref_trait", "yoke-derive", "zerofrom", @@ -7269,13 +7237,13 @@ dependencies = [ [[package]] name = "yoke-derive" -version = "0.8.0" +version = "0.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "38da3c9736e16c5d3c8c597a9aaa5d1fa565d0532ae05e27c24aa62fb32c0ab6" +checksum = "b659052874eb698efe5b9e8cf382204678a0086ebf46982b79d6ca3182927e5d" dependencies = [ "proc-macro2", "quote", - "syn 2.0.106", + "syn 2.0.110", "synstructure", ] @@ -7296,7 +7264,7 @@ checksum = "88d2b8d9c68ad2b9e4340d7832716a4d21a22a1154777ad56ea55c51a9cf3831" dependencies = [ "proc-macro2", "quote", - "syn 2.0.106", + "syn 2.0.110", ] [[package]] @@ -7316,15 +7284,15 @@ checksum = "d71e5d6e06ab090c67b5e44993ec16b72dcbaabc526db883a360057678b48502" dependencies = [ "proc-macro2", "quote", - "syn 2.0.106", + "syn 2.0.110", "synstructure", ] [[package]] name = "zeroize" -version = "1.8.1" +version = "1.8.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ced3678a2879b30306d323f4542626697a464a97c0a07c9aebf7ebca65cd4dde" +checksum = "b97154e67e32c85465826e8bcc1c59429aaaf107c1e4a9e53c8d8ccd5eff88d0" dependencies = [ "zeroize_derive", ] @@ -7337,14 +7305,14 @@ checksum = "ce36e65b0d2999d2aafac989fb249189a141aee1f53c612c1f37d72631959f69" dependencies = [ "proc-macro2", "quote", - "syn 2.0.106", + "syn 2.0.110", ] [[package]] name = "zerotrie" -version = "0.2.2" +version = "0.2.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "36f0bbd478583f79edad978b407914f61b2972f5af6fa089686016be8f9af595" +checksum = "2a59c17a5562d507e4b54960e8569ebee33bee890c70aa3fe7b97e85a9fd7851" dependencies = [ "displaydoc", "yoke", @@ -7353,9 +7321,9 @@ dependencies = [ [[package]] name = "zerovec" -version = "0.11.4" +version = "0.11.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e7aa2bd55086f1ab526693ecbe444205da57e25f4489879da80635a46d90e73b" +checksum = "6c28719294829477f525be0186d13efa9a3c602f7ec202ca9e353d310fb9a002" dependencies = [ "yoke", "zerofrom", @@ -7364,13 +7332,13 @@ dependencies = [ [[package]] name = "zerovec-derive" -version = "0.11.1" +version = "0.11.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5b96237efa0c878c64bd89c436f661be4e46b2f3eff1ebb976f7ef2321d2f58f" +checksum = "eadce39539ca5cb3985590102671f2567e659fca9666581ad3411d59207951f3" dependencies = [ "proc-macro2", "quote", - "syn 2.0.106", + "syn 2.0.110", ] [[package]] @@ -7395,7 +7363,6 @@ dependencies = [ "alloy-primitives", "alloy-rlp", "alloy-trie 0.9.1", - "k256", "reth-chainspec", "reth-errors", "reth-ethereum-primitives", @@ -7404,7 +7371,6 @@ dependencies = [ "reth-primitives-traits", "reth-stateless", "reth-trie-common", - "revm-bytecode", "risc0-ethereum-trie", "serde", "serde_with", @@ -7421,7 +7387,6 @@ dependencies = [ "bytemuck", "clap", "guests", - "k256", "reth-chainspec", "reth-ethereum-primitives", "reth-stateless", @@ -7453,6 +7418,7 @@ dependencies = [ "reth-primitives-traits", "reth-stateless", "revm", + "revm-context-interface", "risc0-ethereum-trie", "serde", "serde_json", diff --git a/Cargo.toml b/Cargo.toml index f68644956..b292164f1 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -11,7 +11,7 @@ rust-version = "1.86" # internal crates guests = { path = "guests" } zeth-core = { path = "crates/core" } -zeht-chainspec = { path = "crates/chainspec" } +zeth-chainspec = { path = "crates/chainspec" } # risc0 risc0-build = "3.0.3" @@ -19,30 +19,29 @@ risc0-zkvm = "3.0.3" risc0-ethereum-trie = { git = "https://github.com/risc0/risc0-ethereum.git", tag = "v3.0.1" } # reth -reth-primitives-traits = { git = "https://github.com/paradigmxyz/reth.git", tag = "v1.8.2" } -reth-ethereum-primitives = { git = "https://github.com/paradigmxyz/reth.git", tag = "v1.8.2" } -reth-stateless = { git = "https://github.com/paradigmxyz/reth.git", tag = "v1.8.2" } -reth-chainspec = { git = "https://github.com/paradigmxyz/reth.git", tag = "v1.8.2" } -reth-errors = { git = "https://github.com/paradigmxyz/reth.git", tag = "v1.8.2" } -reth-evm = { git = "https://github.com/paradigmxyz/reth.git", tag = "v1.8.2" } -reth-evm-ethereum = { git = "https://github.com/paradigmxyz/reth.git", tag = "v1.8.2" } -reth-network-peers = { git = "https://github.com/paradigmxyz/reth.git", tag = "v1.8.2" } -reth-trie-common = { git = "https://github.com/paradigmxyz/reth.git", tag = "v1.8.2" } +reth-primitives-traits = { git = "https://github.com/paradigmxyz/reth.git", tag = "v1.9.1" } +reth-ethereum-primitives = { git = "https://github.com/paradigmxyz/reth.git", tag = "v1.9.1" } +reth-stateless = { git = "https://github.com/paradigmxyz/reth.git", tag = "v1.9.1" } +reth-chainspec = { git = "https://github.com/paradigmxyz/reth.git", tag = "v1.9.1" } +reth-errors = { git = "https://github.com/paradigmxyz/reth.git", tag = "v1.9.1" } +reth-evm = { git = "https://github.com/paradigmxyz/reth.git", tag = "v1.9.1" } +reth-evm-ethereum = { git = "https://github.com/paradigmxyz/reth.git", tag = "v1.9.1" } +reth-network-peers = { git = "https://github.com/paradigmxyz/reth.git", tag = "v1.9.1" } +reth-trie-common = { git = "https://github.com/paradigmxyz/reth.git", tag = "v1.9.1" } # revm -revm = { version = "29.0.1", default-features = false } -revm-bytecode = { version = "6.2.2", default-features = false } +revm = { version = "31.0.1", default-features = false } # eth alloy-chains = { version = "0.2.5", default-features = false } -alloy-evm = { version = "0.21.0", default-features = false } -alloy-primitives = { version = "1.3.1", default-features = false, features = [ +alloy-evm = { version = "0.23.0", default-features = false } +alloy-primitives = { version = "1.4.1", default-features = false, features = [ "map-foldhash", ] } alloy-rlp = { version = "0.3.10", default-features = false } alloy-trie = { version = "0.9.1", default-features = false } -alloy-hardforks = "0.3.5" +alloy-hardforks = "0.4.4" alloy = { version = "1.0.37", features = ["full"] } alloy-consensus = { version = "1.0.37", default-features = false } @@ -56,7 +55,6 @@ blst = "0.3.15" bytemuck = "1.23" clap = "4.5" itertools = "0.14" -k256 = "0.13" serde = "1.0" serde_with = "3.14" serde_json = "1.0" diff --git a/crates/core/Cargo.toml b/crates/core/Cargo.toml index 681474c46..9abf3b8f4 100644 --- a/crates/core/Cargo.toml +++ b/crates/core/Cargo.toml @@ -9,7 +9,6 @@ alloy-consensus = { workspace = true } alloy-primitives = { workspace = true, features = ["map"] } alloy-rlp = { workspace = true } alloy-trie = { workspace = true } -k256 = { workspace = true, features = ["serde", "pem"] } reth-chainspec = { workspace = true } reth-errors = { workspace = true } reth-ethereum-primitives = { workspace = true } @@ -18,7 +17,6 @@ reth-evm-ethereum = { workspace = true } reth-primitives-traits = { workspace = true } reth-stateless = { workspace = true } reth-trie-common = { workspace = true } -revm-bytecode = { workspace = true } risc0-ethereum-trie = { workspace = true } serde = { workspace = true } serde_with = { workspace = true } diff --git a/crates/core/src/lib.rs b/crates/core/src/lib.rs index ae6fd677c..8479ef361 100644 --- a/crates/core/src/lib.rs +++ b/crates/core/src/lib.rs @@ -15,19 +15,16 @@ use alloy_consensus::{Header, private::serde}; use alloy_primitives::{Address, B256, Bytes, KECCAK256_EMPTY, U256, keccak256, map::B256Map}; use alloy_trie::{EMPTY_ROOT_HASH, TrieAccount}; -use k256::ecdsa::{VerifyingKey, signature::hazmat::PrehashVerifier}; use reth_chainspec::{EthChainSpec, Hardforks}; use reth_errors::ProviderError; -use reth_ethereum_primitives::{Block, TransactionSigned}; -use reth_evm::{EthEvmFactory, eth::spec::EthExecutorSpec}; -use reth_primitives_traits::RecoveredBlock; +use reth_ethereum_primitives::Block; +use reth_evm::{EthEvmFactory, eth::spec::EthExecutorSpec, revm::bytecode::Bytecode}; use reth_stateless::validation::StatelessValidationError; use reth_trie_common::HashedPostState; -use revm_bytecode::Bytecode; use risc0_ethereum_trie::CachedTrie; use std::{cell::RefCell, collections::hash_map::Entry, fmt::Debug, marker::PhantomData}; -pub use reth_stateless::{ExecutionWitness, StatelessTrie}; +pub use reth_stateless::{ExecutionWitness, StatelessTrie, UncompressedPublicKey}; pub type EthEvmConfig = reth_evm_ethereum::EthEvmConfig; @@ -42,7 +39,7 @@ pub struct Input { )] pub block: Block, /// List of signing public keys for each transaction in the block. - pub signers: Vec, + pub signers: Vec, /// `ExecutionWitness` for the stateless validation function pub witness: ExecutionWitness, } @@ -57,48 +54,11 @@ where C: EthExecutorSpec + EthChainSpec
+ Hardforks + 'static, { let chain_spec = config.chain_spec().clone(); - let is_homestead = chain_spec.is_homestead_active_at_block(block.number); - - // verify the transaction signatures and compute senders - let senders = signers - .iter() - .zip(block.body.transactions()) - .map(|(vk, tx)| recover_sender(vk, tx, is_homestead)) - .collect::, _>>() - .map_err(|_| StatelessValidationError::Custom("Sender recovery failed"))?; - - // create a RecoveredBlock from the senders - let block_hash = block.hash_slow(); - let block = RecoveredBlock::new(block, senders, block_hash); - - reth_stateless::stateless_validation_with_trie::( - block, witness, chain_spec, config, - ) -} - -/// Recovers the sending address from the given public key. -fn recover_sender( - vk: &VerifyingKey, - tx: &TransactionSigned, - is_homestead: bool, -) -> Result { - let sig = tx.signature(); - - let sig = match sig.normalize_s() { - None => sig.to_k256(), - Some(normalized) => { - // non-normalized signatures are only valid pre-homestead - if !is_homestead { - normalized.to_k256() - } else { - Err(k256::ecdsa::Error::from_source("signature not normalized")) - } - } - }; - - sig.and_then(|sig| vk.verify_prehash(tx.signature_hash().as_slice(), &sig))?; + let (hash, _) = reth_stateless::stateless_validation_with_trie::( + block, signers, witness, chain_spec, config, + )?; - Ok(Address::from_public_key(vk)) + Ok(hash) } /// Zero-overhead helper for tries that only contain RLP encoded data. diff --git a/crates/host/Cargo.toml b/crates/host/Cargo.toml index a0ffdad1d..5f4bfbf6e 100644 --- a/crates/host/Cargo.toml +++ b/crates/host/Cargo.toml @@ -12,7 +12,6 @@ blst = { workspace = true } bytemuck = { workspace = true } clap = { workspace = true, features = ["derive", "env"] } guests = { workspace = true } -k256 = { workspace = true } reth-chainspec = { workspace = true } reth-ethereum-primitives = { workspace = true } reth-stateless = { workspace = true } diff --git a/crates/host/src/lib.rs b/crates/host/src/lib.rs index 72e39fb47..54a5d2aba 100644 --- a/crates/host/src/lib.rs +++ b/crates/host/src/lib.rs @@ -17,14 +17,13 @@ use alloy::{ primitives::B256, providers::{Provider, ext::DebugApi}, rpc::types::debug::ExecutionWitness, - signers::k256, }; use alloy_chains::NamedChain; use anyhow::{Context, Result, bail}; use guests::{HOLESKY_ELF, MAINNET_ELF, SEPOLIA_ELF}; -use k256::ecdsa::VerifyingKey; use reth_chainspec::{ChainSpec, EthChainSpec}; use reth_ethereum_primitives::TransactionSigned; +use reth_stateless::UncompressedPublicKey; use risc0_zkvm::{Digest, ExecutorEnvBuilder, Receipt, compute_image_id, default_prover}; use std::sync::Arc; use zeth_core::Input; @@ -156,7 +155,7 @@ pub fn to_zkvm_input_bytes(input: &Input) -> Result> { } /// Recovers the signing [`VerifyingKey`] from each transaction's signature. -pub fn recover_signers<'a, I>(txs: I) -> Result> +pub fn recover_signers<'a, I>(txs: I) -> Result> where I: IntoIterator, { @@ -165,6 +164,11 @@ where .map(|(i, tx)| { tx.signature() .recover_from_prehash(&tx.signature_hash()) + .map(|keys| { + UncompressedPublicKey( + keys.to_encoded_point(false).as_bytes().try_into().unwrap(), + ) + }) .with_context(|| format!("failed to recover signature for tx #{i}")) }) .collect::, _>>() diff --git a/crates/rpc-proxy/Cargo.toml b/crates/rpc-proxy/Cargo.toml index 6499de56d..2f60c40e8 100644 --- a/crates/rpc-proxy/Cargo.toml +++ b/crates/rpc-proxy/Cargo.toml @@ -22,6 +22,7 @@ reth-evm-ethereum = { workspace = true } reth-primitives-traits = { workspace = true } reth-stateless = { workspace = true } revm = { workspace = true, features = ["c-kzg"] } +revm-context-interface = "~12.0" risc0-ethereum-trie = { workspace = true, features = ["orphan"] } serde = { workspace = true } serde_json = { workspace = true } diff --git a/guests/stateless-client/Cargo.lock b/guests/stateless-client/Cargo.lock index 1b5a8c453..ee1dd04dc 100644 --- a/guests/stateless-client/Cargo.lock +++ b/guests/stateless-client/Cargo.lock @@ -2,21 +2,6 @@ # It is not intended for manual editing. version = 4 -[[package]] -name = "addr2line" -version = "0.24.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dfbe277e56a376000877090da837660b4427aad530e3028d44e0bffe4f89a1c1" -dependencies = [ - "gimli", -] - -[[package]] -name = "adler2" -version = "2.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "320119579fcad9c21884f5c4861d16174d0e06250625266f50fe6898340abefa" - [[package]] name = "ahash" version = "0.8.12" @@ -31,9 +16,9 @@ dependencies = [ [[package]] name = "aho-corasick" -version = "1.1.3" +version = "1.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8e60d3430d3a69478ad0993f19238d2df97c507009a52b3c10addcd7f6bcb916" +checksum = "ddd31a130427c27518df266943a5308ed92d4b226cc639f5a8f1002816174301" dependencies = [ "memchr", ] @@ -46,9 +31,9 @@ checksum = "683d7910e743518b0e34f1186f92494becacb047c7b6bf616c96772180fef923" [[package]] name = "alloy-chains" -version = "0.2.9" +version = "0.2.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ef8ff73a143281cb77c32006b04af9c047a6b8fe5860e85a88ad325328965355" +checksum = "6068f356948cd84b5ad9ac30c50478e433847f14a50714d2b68f15d052724049" dependencies = [ "alloy-primitives", "alloy-rlp", @@ -59,9 +44,9 @@ dependencies = [ [[package]] name = "alloy-consensus" -version = "1.0.37" +version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "59094911f05dbff1cf5b29046a00ef26452eccc8d47136d50a47c0cf22f00c85" +checksum = "90d103d3e440ad6f703dd71a5b58a6abd24834563bde8a5fabe706e00242f810" dependencies = [ "alloy-eips", "alloy-primitives", @@ -85,9 +70,9 @@ dependencies = [ [[package]] name = "alloy-consensus-any" -version = "1.0.37" +version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "903cb8f728107ca27c816546f15be38c688df3c381d7bd1a4a9f215effc1ddb4" +checksum = "48ead76c8c84ab3a50c31c56bc2c748c2d64357ad2131c32f9b10ab790a25e1a" dependencies = [ "alloy-consensus", "alloy-eips", @@ -112,23 +97,25 @@ dependencies = [ [[package]] name = "alloy-eip2930" -version = "0.2.1" +version = "0.2.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7b82752a889170df67bbb36d42ca63c531eb16274f0d7299ae2a680facba17bd" +checksum = "9441120fa82df73e8959ae0e4ab8ade03de2aaae61be313fbf5746277847ce25" dependencies = [ "alloy-primitives", "alloy-rlp", + "borsh", "serde", ] [[package]] name = "alloy-eip7702" -version = "0.6.1" +version = "0.6.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9d4769c6ffddca380b0070d71c8b7f30bed375543fe76bb2f74ec0acf4b7cd16" +checksum = "2919c5a56a1007492da313e7a3b6d45ef5edc5d33416fdec63c0d7a2702a0d20" dependencies = [ "alloy-primitives", "alloy-rlp", + "borsh", "k256", "serde", "serde_with", @@ -137,9 +124,9 @@ dependencies = [ [[package]] name = "alloy-eips" -version = "1.0.37" +version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ac7f1c9a1ccc7f3e03c36976455751a6166a4f0d2d2c530c3f87dfe7d0cdc836" +checksum = "7bdbec74583d0067798d77afa43d58f00d93035335d7ceaa5d3f93857d461bb9" dependencies = [ "alloy-eip2124", "alloy-eip2930", @@ -151,27 +138,31 @@ dependencies = [ "c-kzg", "derive_more", "either", + "ethereum_ssz", + "ethereum_ssz_derive", "serde", "serde_with", - "sha2 0.10.9", + "sha2", "thiserror", ] [[package]] name = "alloy-evm" -version = "0.21.1" +version = "0.23.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "48e536feefca2ba96c75798ac75a31046e8adfcefecdb6653803361045cc65b9" +checksum = "6223235f0b785a83dd10dc1599b7f3763c65e4f98b4e9e4e10e576bbbdf7dfa2" dependencies = [ "alloy-consensus", "alloy-eips", "alloy-hardforks", "alloy-primitives", + "alloy-rpc-types-engine", "alloy-rpc-types-eth", "alloy-sol-types", "auto_impl", "derive_more", "op-alloy-consensus", + "op-alloy-rpc-types-engine", "op-revm", "revm", "thiserror", @@ -179,9 +170,9 @@ dependencies = [ [[package]] name = "alloy-genesis" -version = "1.0.37" +version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1421f6c9d15e5b86afbfe5865ca84dea3b9f77173a0963c1a2ee4e626320ada9" +checksum = "c25d5acb35706e683df1ea333c862bdb6b7c5548836607cd5bb56e501cca0b4f" dependencies = [ "alloy-eips", "alloy-primitives", @@ -193,9 +184,9 @@ dependencies = [ [[package]] name = "alloy-hardforks" -version = "0.3.5" +version = "0.4.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "889eb3949b58368a09d4f16931c660275ef5fb08e5fbd4a96573b19c7085c41f" +checksum = "1e29d7eacf42f89c21d7f089916d0bdb4f36139a31698790e8837d2dbbd4b2c3" dependencies = [ "alloy-chains", "alloy-eip2124", @@ -206,9 +197,9 @@ dependencies = [ [[package]] name = "alloy-json-abi" -version = "1.3.1" +version = "1.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "125a1c373261b252e53e04d6e92c37d881833afc1315fceab53fd46045695640" +checksum = "5513d5e6bd1cba6bdcf5373470f559f320c05c8c59493b6e98912fbe6733943f" dependencies = [ "alloy-primitives", "alloy-sol-type-parser", @@ -218,9 +209,9 @@ dependencies = [ [[package]] name = "alloy-network-primitives" -version = "1.0.37" +version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "46e9374c667c95c41177602ebe6f6a2edd455193844f011d973d374b65501b38" +checksum = "a0e7918396eecd69d9c907046ec8a93fb09b89e2f325d5e7ea9c4e3929aa0dd2" dependencies = [ "alloy-consensus", "alloy-eips", @@ -231,18 +222,18 @@ dependencies = [ [[package]] name = "alloy-primitives" -version = "1.3.1" +version = "1.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bc9485c56de23438127a731a6b4c87803d49faf1a7068dcd1d8768aca3a9edb9" +checksum = "355bf68a433e0fd7f7d33d5a9fc2583fde70bf5c530f63b80845f8da5505cf28" dependencies = [ "alloy-rlp", "bytes", "cfg-if", "const-hex", "derive_more", - "foldhash", - "hashbrown 0.15.5", - "indexmap 2.11.0", + "foldhash 0.2.0", + "hashbrown 0.16.0", + "indexmap 2.12.0", "itoa", "k256", "keccak-asm", @@ -275,14 +266,14 @@ checksum = "64b728d511962dda67c1bc7ea7c03736ec275ed2cf4c35d9585298ac9ccf3b73" dependencies = [ "proc-macro2", "quote", - "syn 2.0.106", + "syn 2.0.110", ] [[package]] name = "alloy-rpc-types-debug" -version = "1.0.37" +version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aeff305b7d10cc1c888456d023e7bb8a5ea82e9e42b951e37619b88cc1a1486d" +checksum = "977698b458738369ba5ca645d2cdb4d51ba07a81db37306ff85322853161ea3a" dependencies = [ "alloy-primitives", "derive_more", @@ -292,9 +283,9 @@ dependencies = [ [[package]] name = "alloy-rpc-types-engine" -version = "1.0.37" +version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "222ecadcea6aac65e75e32b6735635ee98517aa63b111849ee01ae988a71d685" +checksum = "07da696cc7fbfead4b1dda8afe408685cae80975cbb024f843ba74d9639cd0d3" dependencies = [ "alloy-consensus", "alloy-eips", @@ -302,15 +293,17 @@ dependencies = [ "alloy-rlp", "alloy-serde", "derive_more", + "ethereum_ssz", + "ethereum_ssz_derive", "serde", "strum", ] [[package]] name = "alloy-rpc-types-eth" -version = "1.0.37" +version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "db46b0901ee16bbb68d986003c66dcb74a12f9d9b3c44f8e85d51974f2458f0f" +checksum = "a15e4831b71eea9d20126a411c1c09facf1d01d5cac84fd51d532d3c429cfc26" dependencies = [ "alloy-consensus", "alloy-consensus-any", @@ -329,9 +322,9 @@ dependencies = [ [[package]] name = "alloy-serde" -version = "1.0.37" +version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5413814be7a22fbc81e0f04a2401fcc3eb25e56fd53b04683e8acecc6e1fe01b" +checksum = "751d1887f7d202514a82c5b3caf28ee8bd4a2ad9549e4f498b6f0bff99b52add" dependencies = [ "alloy-primitives", "serde", @@ -340,41 +333,41 @@ dependencies = [ [[package]] name = "alloy-sol-macro" -version = "1.3.1" +version = "1.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d20d867dcf42019d4779519a1ceb55eba8d7f3d0e4f0a89bcba82b8f9eb01e48" +checksum = "f3ce480400051b5217f19d6e9a82d9010cdde20f1ae9c00d53591e4a1afbb312" dependencies = [ "alloy-sol-macro-expander", "alloy-sol-macro-input", "proc-macro-error2", "proc-macro2", "quote", - "syn 2.0.106", + "syn 2.0.110", ] [[package]] name = "alloy-sol-macro-expander" -version = "1.3.1" +version = "1.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b74e91b0b553c115d14bd0ed41898309356dc85d0e3d4b9014c4e7715e48c8ad" +checksum = "6d792e205ed3b72f795a8044c52877d2e6b6e9b1d13f431478121d8d4eaa9028" dependencies = [ "alloy-sol-macro-input", "const-hex", "heck", - "indexmap 2.11.0", + "indexmap 2.12.0", "proc-macro-error2", "proc-macro2", "quote", - "syn 2.0.106", + "syn 2.0.110", "syn-solidity", "tiny-keccak", ] [[package]] name = "alloy-sol-macro-input" -version = "1.3.1" +version = "1.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "84194d31220803f5f62d0a00f583fd3a062b36382e2bea446f1af96727754565" +checksum = "0bd1247a8f90b465ef3f1207627547ec16940c35597875cdc09c49d58b19693c" dependencies = [ "const-hex", "dunce", @@ -382,15 +375,15 @@ dependencies = [ "macro-string", "proc-macro2", "quote", - "syn 2.0.106", + "syn 2.0.110", "syn-solidity", ] [[package]] name = "alloy-sol-type-parser" -version = "1.3.1" +version = "1.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fe8c27b3cf6b2bb8361904732f955bc7c05e00be5f469cec7e2280b6167f3ff0" +checksum = "954d1b2533b9b2c7959652df3076954ecb1122a28cc740aa84e7b0a49f6ac0a9" dependencies = [ "serde", "winnow", @@ -398,9 +391,9 @@ dependencies = [ [[package]] name = "alloy-sol-types" -version = "1.3.1" +version = "1.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f5383d34ea00079e6dd89c652bcbdb764db160cef84e6250926961a0b2295d04" +checksum = "70319350969a3af119da6fb3e9bddb1bce66c9ea933600cb297c8b1850ad2a3c" dependencies = [ "alloy-json-abi", "alloy-primitives", @@ -434,7 +427,7 @@ dependencies = [ "alloy-rlp", "arrayvec", "derive_more", - "nybbles 0.4.3", + "nybbles 0.4.6", "serde", "smallvec", "tracing", @@ -442,15 +435,14 @@ dependencies = [ [[package]] name = "alloy-tx-macros" -version = "1.0.37" +version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e64c09ec565a90ed8390d82aa08cd3b22e492321b96cb4a3d4f58414683c9e2f" +checksum = "cd7ce8ed34106acd6e21942022b6a15be6454c2c3ead4d76811d3bdcd63cf771" dependencies = [ - "alloy-primitives", "darling 0.21.3", "proc-macro2", "quote", - "syn 2.0.106", + "syn 2.0.110", ] [[package]] @@ -464,9 +456,9 @@ dependencies = [ [[package]] name = "anyhow" -version = "1.0.99" +version = "1.0.100" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b0674a1ddeecb70197781e945de4b3b8ffb61fa939a5597bcf48503737663100" +checksum = "a23eb6b1614318a8071c9b2521f36b424b2c83db5eb3a0fead4a6c0809af6e61" [[package]] name = "ark-bls12-381" @@ -511,7 +503,7 @@ dependencies = [ "digest 0.10.7", "fnv", "merlin", - "sha2 0.10.9", + "sha2", ] [[package]] @@ -522,7 +514,7 @@ checksum = "e7e89fe77d1f0f4fe5b96dfc940923d88d17b6a773808124f21e764dfb063c6a" dependencies = [ "proc-macro2", "quote", - "syn 2.0.106", + "syn 2.0.110", ] [[package]] @@ -631,7 +623,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "62945a2f7e6de02a31fe400aa489f0e0f5b2502e69f95f853adb82a96c7a6b60" dependencies = [ "quote", - "syn 2.0.106", + "syn 2.0.110", ] [[package]] @@ -669,7 +661,7 @@ dependencies = [ "num-traits", "proc-macro2", "quote", - "syn 2.0.106", + "syn 2.0.110", ] [[package]] @@ -773,7 +765,7 @@ checksum = "213888f660fddcca0d257e88e54ac05bca01885f258ccdf695bafd77031bb69d" dependencies = [ "proc-macro2", "quote", - "syn 2.0.106", + "syn 2.0.110", ] [[package]] @@ -863,7 +855,7 @@ checksum = "ffdcb70bdbc4d478427380519163274ac86e52916e10f0a8889adf0f96d3fee7" dependencies = [ "proc-macro2", "quote", - "syn 2.0.106", + "syn 2.0.110", ] [[package]] @@ -878,21 +870,6 @@ version = "1.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7b7e4c2464d97fe331d41de9d5db0def0a96f4d823b8b32a2efd503578988973" -[[package]] -name = "backtrace" -version = "0.3.75" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6806a6321ec58106fea15becdad98371e28d92ccbc7c8f1b3b6dd724fe8f1002" -dependencies = [ - "addr2line", - "cfg-if", - "libc", - "miniz_oxide", - "object", - "rustc-demangle", - "windows-targets 0.52.6", -] - [[package]] name = "base16ct" version = "0.2.0" @@ -959,11 +936,11 @@ checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" [[package]] name = "bitflags" -version = "2.9.4" +version = "2.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2261d10cca569e4643e526d8dc2e62e433cc8aba21ab764233731f8d369bf394" +checksum = "812e12b5285cc515a9c72a5c1d3b6d46a19dac5acfef5265968c166106e31dd3" dependencies = [ - "serde", + "serde_core", ] [[package]] @@ -994,15 +971,6 @@ version = "0.1.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0d8c1fef690941d3e7788d328517591fecc684c084084702d6ff1641e993699a" -[[package]] -name = "block-buffer" -version = "0.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4152116fd6e9dadb291ae18fc1ec3575ed6d84c29642d97890f4b4a3417297e4" -dependencies = [ - "generic-array", -] - [[package]] name = "block-buffer" version = "0.10.4" @@ -1057,7 +1025,7 @@ dependencies = [ "proc-macro-crate", "proc-macro2", "quote", - "syn 2.0.106", + "syn 2.0.110", ] [[package]] @@ -1074,22 +1042,22 @@ checksum = "7575182f7272186991736b70173b0ea045398f984bf5ebbb3804736ce1330c9d" [[package]] name = "bytemuck" -version = "1.23.2" +version = "1.24.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3995eaeebcdf32f91f980d360f78732ddc061097ab4e39991ae7a6ace9194677" +checksum = "1fbdf580320f38b612e485521afda1ee26d10cc9884efaaa750d383e13e3c5f4" dependencies = [ "bytemuck_derive", ] [[package]] name = "bytemuck_derive" -version = "1.10.1" +version = "1.10.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4f154e572231cb6ba2bd1176980827e3d5dc04cc183a75dea38109fbdd672d29" +checksum = "f9abbd1bc6865053c427f7198e6af43bfdedc55ab791faed4fbd361d789575ff" dependencies = [ "proc-macro2", "quote", - "syn 2.0.106", + "syn 2.0.110", ] [[package]] @@ -1109,8 +1077,8 @@ dependencies = [ [[package]] name = "c-kzg" -version = "2.1.1" -source = "git+https://github.com/risc0/c-kzg-4844?tag=c-kzg%2Fv2.1.1-risczero.1#7be9eb119fc3564c93d208f23e2f75ac99712618" +version = "2.1.5" +source = "git+https://github.com/risc0/c-kzg-4844?tag=v2.1.5-risczero.0#f09162713bbf948e5ad766fd692b98e3d63236c9" dependencies = [ "blst", "bytemuck", @@ -1124,11 +1092,11 @@ dependencies = [ [[package]] name = "camino" -version = "1.1.12" +version = "1.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dd0b03af37dad7a14518b7691d81acb0f8222604ad3d1b02f6b4bed5188c0cd5" +checksum = "276a59bf2b2c967788139340c9f0c5b12d7fd6630315c15c217e559de85d2609" dependencies = [ - "serde", + "serde_core", ] [[package]] @@ -1148,7 +1116,7 @@ checksum = "dd5eb614ed4c27c5d706420e4320fbe3216ab31fa1c33cd8246ac36dae4479ba" dependencies = [ "camino", "cargo-platform", - "semver 1.0.26", + "semver 1.0.27", "serde", "serde_json", "thiserror", @@ -1156,9 +1124,9 @@ dependencies = [ [[package]] name = "cc" -version = "1.2.36" +version = "1.2.45" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5252b3d2648e5eedbc1a6f501e3c795e07025c1e93bbf8bbdd6eef7f447a6d54" +checksum = "35900b6c8d709fb1d854671ae27aeaa9eec2f8b01b364e1619a40da3e6fe2afe" dependencies = [ "find-msvc-tools", "jobserver", @@ -1168,9 +1136,9 @@ dependencies = [ [[package]] name = "cfg-if" -version = "1.0.3" +version = "1.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2fd1289c04a9ea8cb22300a459a72a385d7c73d3259e2ed7dcb2af674838cfa9" +checksum = "9330f8b2ff13f34540b44e946ef35111825727b38d33286ef986142615121801" [[package]] name = "cfg_aliases" @@ -1187,7 +1155,7 @@ dependencies = [ "iana-time-zone", "num-traits", "serde", - "windows-link 0.2.0", + "windows-link", ] [[package]] @@ -1201,15 +1169,14 @@ dependencies = [ [[package]] name = "const-hex" -version = "1.15.0" +version = "1.17.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dccd746bf9b1038c0507b7cec21eb2b11222db96a2902c96e8c185d6d20fb9c4" +checksum = "3bb320cac8a0750d7f25280aa97b09c26edfe161164238ecbbb31092b079e735" dependencies = [ "cfg-if", "cpufeatures", - "hex", "proptest", - "serde", + "serde_core", ] [[package]] @@ -1220,9 +1187,9 @@ checksum = "c2459377285ad874054d797f3ccebf984978aa39129f6eafde5cdc8315b612f8" [[package]] name = "const_format" -version = "0.2.34" +version = "0.2.35" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "126f97965c8ad46d6d9163268ff28432e8f6a1196a55578867832e3049df63dd" +checksum = "7faa7469a93a566e9ccc1c73fe783b4a65c274c5ace346038dca9c39fe0030ad" dependencies = [ "const_format_proc_macros", ] @@ -1363,7 +1330,7 @@ dependencies = [ "proc-macro2", "quote", "strsim", - "syn 2.0.106", + "syn 2.0.110", ] [[package]] @@ -1378,7 +1345,7 @@ dependencies = [ "quote", "serde", "strsim", - "syn 2.0.106", + "syn 2.0.110", ] [[package]] @@ -1389,7 +1356,7 @@ checksum = "fc34b93ccb385b40dc71c6fceac4b2ad23662c7eeb248cf10d529b7e055b6ead" dependencies = [ "darling_core 0.20.11", "quote", - "syn 2.0.106", + "syn 2.0.110", ] [[package]] @@ -1400,7 +1367,7 @@ checksum = "d38308df82d1080de0afee5d069fa14b0326a88c14f15c5ccda35b4a6c414c81" dependencies = [ "darling_core 0.21.3", "quote", - "syn 2.0.106", + "syn 2.0.110", ] [[package]] @@ -1416,12 +1383,12 @@ dependencies = [ [[package]] name = "deranged" -version = "0.5.3" +version = "0.5.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d630bccd429a5bb5a64b5e94f693bfc48c9f8566418fda4c494cc94f911f87cc" +checksum = "ececcb659e7ba858fb4f10388c250a7252eb0a27373f1a72b8748afdd248e587" dependencies = [ "powerfmt", - "serde", + "serde_core", ] [[package]] @@ -1443,7 +1410,7 @@ checksum = "ef941ded77d15ca19b40374869ac6000af1c9f2a4c0f3d4c70926287e6364a8f" dependencies = [ "proc-macro2", "quote", - "syn 2.0.106", + "syn 2.0.110", ] [[package]] @@ -1464,7 +1431,7 @@ dependencies = [ "darling 0.20.11", "proc-macro2", "quote", - "syn 2.0.106", + "syn 2.0.110", ] [[package]] @@ -1474,7 +1441,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ab63b0e2bf4d5928aff72e83a7dace85d7bba5fe12dcc3c5a572d78caffd3f3c" dependencies = [ "derive_builder_core", - "syn 2.0.106", + "syn 2.0.110", ] [[package]] @@ -1495,7 +1462,7 @@ dependencies = [ "convert_case", "proc-macro2", "quote", - "syn 2.0.106", + "syn 2.0.110", "unicode-xid", ] @@ -1514,7 +1481,7 @@ version = "0.10.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292" dependencies = [ - "block-buffer 0.10.4", + "block-buffer", "const-oid", "crypto-common", "subtle", @@ -1538,7 +1505,7 @@ dependencies = [ "libc", "option-ext", "redox_users", - "windows-sys 0.61.0", + "windows-sys 0.61.2", ] [[package]] @@ -1549,7 +1516,7 @@ checksum = "97369cbbc041bc366949bc74d34658d6cda5621039731c6310521892a3a20ae0" dependencies = [ "proc-macro2", "quote", - "syn 2.0.106", + "syn 2.0.110", ] [[package]] @@ -1572,9 +1539,9 @@ checksum = "92773504d58c093f6de2459af4af33faa518c13451eb8f2b5698ed3d36e7c813" [[package]] name = "duplicate" -version = "2.0.0" +version = "2.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "97af9b5f014e228b33e77d75ee0e6e87960124f0f4b16337b586a6bec91867b1" +checksum = "8e92f10a49176cbffacaedabfaa11d51db1ea0f80a83c26e1873b43cd1742c24" dependencies = [ "heck", "proc-macro2", @@ -1611,7 +1578,7 @@ dependencies = [ "enum-ordinalize", "proc-macro2", "quote", - "syn 2.0.106", + "syn 2.0.110", ] [[package]] @@ -1641,7 +1608,6 @@ dependencies = [ "ff", "generic-array", "group", - "pem-rfc7468", "pkcs8", "rand_core 0.6.4", "sec1", @@ -1673,22 +1639,22 @@ dependencies = [ [[package]] name = "enum-ordinalize" -version = "4.3.0" +version = "4.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fea0dcfa4e54eeb516fe454635a95753ddd39acda650ce703031c6973e315dd5" +checksum = "4a1091a7bb1f8f2c4b28f1fe2cef4980ca2d410a3d727d67ecc3178c9b0800f0" dependencies = [ "enum-ordinalize-derive", ] [[package]] name = "enum-ordinalize-derive" -version = "4.3.1" +version = "4.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0d28318a75d4aead5c4db25382e8ef717932d0346600cacae6357eb5941bc5ff" +checksum = "8ca9601fb2d62598ee17836250842873a413586e5d7ed88b356e38ddbb0ec631" dependencies = [ "proc-macro2", "quote", - "syn 2.0.106", + "syn 2.0.110", ] [[package]] @@ -1699,12 +1665,52 @@ checksum = "877a4ace8713b0bcf2a4e7eec82529c029f1d0619886d18145fea96c3ffe5c0f" [[package]] name = "errno" -version = "0.3.13" +version = "0.3.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "778e2ac28f6c47af28e4907f13ffd1e1ddbd400980a9abd7c8df189bf578a5ad" +checksum = "39cab71617ae0d63f51a36d69f866391735b51691dbda63cf6f96d042b63efeb" dependencies = [ "libc", - "windows-sys 0.60.2", + "windows-sys 0.61.2", +] + +[[package]] +name = "ethereum_serde_utils" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3dc1355dbb41fbbd34ec28d4fb2a57d9a70c67ac3c19f6a5ca4d4a176b9e997a" +dependencies = [ + "alloy-primitives", + "hex", + "serde", + "serde_derive", + "serde_json", +] + +[[package]] +name = "ethereum_ssz" +version = "0.9.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0dcddb2554d19cde19b099fadddde576929d7a4d0c1cd3512d1fd95cf174375c" +dependencies = [ + "alloy-primitives", + "ethereum_serde_utils", + "itertools 0.13.0", + "serde", + "serde_derive", + "smallvec", + "typenum", +] + +[[package]] +name = "ethereum_ssz_derive" +version = "0.9.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a657b6b3b7e153637dc6bdc6566ad9279d9ee11a15b12cfb24a2e04360637e9f" +dependencies = [ + "darling 0.20.11", + "proc-macro2", + "quote", + "syn 2.0.110", ] [[package]] @@ -1747,9 +1753,9 @@ dependencies = [ [[package]] name = "find-msvc-tools" -version = "0.1.1" +version = "0.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7fd99930f64d146689264c637b5af2f0233a933bef0d8570e2526bf9e083192d" +checksum = "52051878f80a721bb68ebfbc930e07b65ba72f2da88968ea5c06fd6ca3d3a127" [[package]] name = "fixed-hash" @@ -1775,6 +1781,12 @@ version = "0.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d9c4f5dac5e15c24eb999c26181a6ca40b39fe946cbe4c263c7209467bc83af2" +[[package]] +name = "foldhash" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "77ce24cb58228fbb8aa041425bb1050850ac19177686ea6e0f41a70416f56fdb" + [[package]] name = "foreign-types" version = "0.5.0" @@ -1793,7 +1805,7 @@ checksum = "1a5c6c585bc94aaf2c7b51dd4c2ba22680844aba4c687be581871a6f518c5742" dependencies = [ "proc-macro2", "quote", - "syn 2.0.106", + "syn 2.0.110", ] [[package]] @@ -1847,7 +1859,7 @@ checksum = "162ee34ebcb7c64a8abebc059ce0fee27c2262618d7b60ed8faf72fef13c3650" dependencies = [ "proc-macro2", "quote", - "syn 2.0.106", + "syn 2.0.110", ] [[package]] @@ -1881,9 +1893,9 @@ dependencies = [ [[package]] name = "generic-array" -version = "0.14.7" +version = "0.14.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "85649ca51fd72272d7821adaf274ad91c288277713d9c18820d8499a7ff69e9a" +checksum = "4bb6743198531e02858aeaea5398fcc883e71851fcbcb5a2f773e2fb6cb1edf2" dependencies = [ "typenum", "version_check", @@ -1899,30 +1911,24 @@ dependencies = [ "cfg-if", "js-sys", "libc", - "wasi 0.11.1+wasi-snapshot-preview1", + "wasi", "wasm-bindgen", ] [[package]] name = "getrandom" -version = "0.3.3" +version = "0.3.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "26145e563e54f2cadc477553f1ec5ee650b00862f0a58bcd12cbdc5f0ea2d2f4" +checksum = "899def5c37c4fd7b2664648c28120ecec138e4d395b459e5ca34f9cce2dd77fd" dependencies = [ "cfg-if", "js-sys", "libc", "r-efi", - "wasi 0.14.4+wasi-0.2.4", + "wasip2", "wasm-bindgen", ] -[[package]] -name = "gimli" -version = "0.31.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "07e28edb80900c19c28f1072f2e8aeca7fa06b23cd4169cefe1af5aa3260783f" - [[package]] name = "glob" version = "0.3.3" @@ -1963,7 +1969,16 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9229cfe53dfd69f0609a49f65461bd93001ea1ef889cd5529dd176593f5338a1" dependencies = [ "allocator-api2", - "foldhash", + "foldhash 0.1.5", +] + +[[package]] +name = "hashbrown" +version = "0.16.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5419bdc4f6a9207fbeba6d11b604d481addf78ecd10c11ad51e76c2f6482748d" +dependencies = [ + "foldhash 0.2.0", "serde", ] @@ -1993,9 +2008,6 @@ name = "hex" version = "0.4.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70" -dependencies = [ - "serde", -] [[package]] name = "hex-conservative" @@ -2063,9 +2075,9 @@ checksum = "6dbf3de79e51f3d586ab4cb9d5c3e2c14aa28ed23d180cf89b4df0454a69cc87" [[package]] name = "hyper" -version = "1.7.0" +version = "1.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eb3aa54a13a0dfe7fbe3a59e0c76093041720fdc77b110cc0fc260fafb4dc51e" +checksum = "1744436df46f0bde35af3eda22aeaba453aada65d8f1c171cd8a5f59030bd69f" dependencies = [ "atomic-waker", "bytes", @@ -2101,9 +2113,9 @@ dependencies = [ [[package]] name = "hyper-util" -version = "0.1.16" +version = "0.1.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8d9b05277c7e8da2c93a568989bb6207bef0112e8d17df7a6eda4a3cf143bc5e" +checksum = "3c6995591a8f1380fcb4ba966a252a4b29188d51d2b89e3a252f5305be65aea8" dependencies = [ "base64", "bytes", @@ -2125,9 +2137,9 @@ dependencies = [ [[package]] name = "iana-time-zone" -version = "0.1.63" +version = "0.1.64" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b0c919e5debc312ad217002b8048a17b7d83f80703865bbfcfebb0458b0b27d8" +checksum = "33e57f83510bb73707521ebaffa789ec8caf86f9657cad665b092b581d40e9fb" dependencies = [ "android_system_properties", "core-foundation-sys", @@ -2149,9 +2161,9 @@ dependencies = [ [[package]] name = "icu_collections" -version = "2.0.0" +version = "2.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "200072f5d0e3614556f94a9930d5dc3e0662a652823904c3a75dc3b0af7fee47" +checksum = "4c6b649701667bbe825c3b7e6388cb521c23d88644678e83c0c4d0a621a34b43" dependencies = [ "displaydoc", "potential_utf", @@ -2162,9 +2174,9 @@ dependencies = [ [[package]] name = "icu_locale_core" -version = "2.0.0" +version = "2.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0cde2700ccaed3872079a65fb1a78f6c0a36c91570f28755dda67bc8f7d9f00a" +checksum = "edba7861004dd3714265b4db54a3c390e880ab658fec5f7db895fae2046b5bb6" dependencies = [ "displaydoc", "litemap", @@ -2175,11 +2187,10 @@ dependencies = [ [[package]] name = "icu_normalizer" -version = "2.0.0" +version = "2.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "436880e8e18df4d7bbc06d58432329d6458cc84531f7ac5f024e93deadb37979" +checksum = "5f6c8828b67bf8908d82127b2054ea1b4427ff0230ee9141c54251934ab1b599" dependencies = [ - "displaydoc", "icu_collections", "icu_normalizer_data", "icu_properties", @@ -2190,42 +2201,38 @@ dependencies = [ [[package]] name = "icu_normalizer_data" -version = "2.0.0" +version = "2.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "00210d6893afc98edb752b664b8890f0ef174c8adbb8d0be9710fa66fbbf72d3" +checksum = "7aedcccd01fc5fe81e6b489c15b247b8b0690feb23304303a9e560f37efc560a" [[package]] name = "icu_properties" -version = "2.0.1" +version = "2.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "016c619c1eeb94efb86809b015c58f479963de65bdb6253345c1a1276f22e32b" +checksum = "e93fcd3157766c0c8da2f8cff6ce651a31f0810eaa1c51ec363ef790bbb5fb99" dependencies = [ - "displaydoc", "icu_collections", "icu_locale_core", "icu_properties_data", "icu_provider", - "potential_utf", "zerotrie", "zerovec", ] [[package]] name = "icu_properties_data" -version = "2.0.1" +version = "2.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "298459143998310acd25ffe6810ed544932242d3f07083eee1084d83a71bd632" +checksum = "02845b3647bb045f1100ecd6480ff52f34c35f82d9880e029d329c21d1054899" [[package]] name = "icu_provider" -version = "2.0.0" +version = "2.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "03c80da27b5f4187909049ee2d72f276f0d9f99a42c306bd0131ecfe04d8e5af" +checksum = "85962cf0ce02e1e0a629cc34e7ca3e373ce20dda4c4d7294bbd0bf1fdb59e614" dependencies = [ "displaydoc", "icu_locale_core", - "stable_deref_trait", - "tinystr", "writeable", "yoke", "zerofrom", @@ -2277,7 +2284,7 @@ checksum = "a0eb5a3343abf848c0984fe4604b2b105da9539376e24fc0a3b0007411ae4fd9" dependencies = [ "proc-macro2", "quote", - "syn 2.0.106", + "syn 2.0.110", ] [[package]] @@ -2299,24 +2306,14 @@ dependencies = [ [[package]] name = "indexmap" -version = "2.11.0" +version = "2.12.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f2481980430f9f78649238835720ddccc57e52df14ffce1c6f37391d61b563e9" +checksum = "6717a8d2a5a929a1a2eb43a12812498ed141a0bcfb7e8f7844fbdbe4303bba9f" dependencies = [ "equivalent", - "hashbrown 0.15.5", + "hashbrown 0.16.0", "serde", -] - -[[package]] -name = "io-uring" -version = "0.7.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "046fa2d4d00aea763528b4950358d0ead425372445dc8ff86312b3c69ff7727b" -dependencies = [ - "bitflags 2.9.4", - "cfg-if", - "libc", + "serde_core", ] [[package]] @@ -2327,9 +2324,9 @@ checksum = "469fb0b9cefa57e3ef31275ee7cacb78f2fdca44e4765491884a2b119d4eb130" [[package]] name = "iri-string" -version = "0.7.8" +version = "0.7.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dbc5ebe9c3a1a7a5127f920a418f7585e9e758e911d0466ed004f393b0e380b2" +checksum = "4f867b9d1d896b67beb18518eda36fdb77a32ea590de864f1325b294a6d14397" dependencies = [ "memchr", "serde", @@ -2374,15 +2371,15 @@ version = "0.1.34" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9afb3de4395d6b3e67a780b6de64b51c978ecf11cb9a462c66be7d4ca9039d33" dependencies = [ - "getrandom 0.3.3", + "getrandom 0.3.4", "libc", ] [[package]] name = "js-sys" -version = "0.3.78" +version = "0.3.82" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0c0b063578492ceec17683ef2f8c5e89121fbd0b172cbc280635ab7567db2738" +checksum = "b011eec8cc36da2aab2d5cff675ec18454fad408585853910a202391cf9f8e65" dependencies = [ "once_cell", "wasm-bindgen", @@ -2400,8 +2397,7 @@ dependencies = [ "once_cell", "risc0-bigint2", "serdect", - "sha2 0.10.9", - "signature", + "sha2", ] [[package]] @@ -2425,9 +2421,9 @@ dependencies = [ [[package]] name = "lazy-regex" -version = "3.4.1" +version = "3.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "60c7310b93682b36b98fa7ea4de998d3463ccbebd94d935d6b48ba5b6ffa7126" +checksum = "191898e17ddee19e60bccb3945aa02339e81edd4a8c50e21fd4d48cdecda7b29" dependencies = [ "lazy-regex-proc_macros", "once_cell", @@ -2436,14 +2432,14 @@ dependencies = [ [[package]] name = "lazy-regex-proc_macros" -version = "3.4.1" +version = "3.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4ba01db5ef81e17eb10a5e0f2109d1b3a3e29bac3070fdbd7d156bf7dbd206a1" +checksum = "c35dc8b0da83d1a9507e12122c80dea71a9c7c613014347392483a83ea593e04" dependencies = [ "proc-macro2", "quote", "regex", - "syn 2.0.106", + "syn 2.0.110", ] [[package]] @@ -2457,9 +2453,9 @@ dependencies = [ [[package]] name = "libc" -version = "0.2.175" +version = "0.2.177" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6a82ae493e598baaea5209805c49bbf2ea7de956d50d7da0da1164f9c6d28543" +checksum = "2874a2af47a2325c2001a6e6fad9b16a53b802102b528163885171cf92b15976" [[package]] name = "libm" @@ -2469,71 +2465,25 @@ checksum = "f9fbbcab51052fe104eb5e5d351cf728d30a5be1fe14d9be8a3b097481fb97de" [[package]] name = "libredox" -version = "0.1.9" +version = "0.1.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "391290121bad3d37fbddad76d8f5d1c1c314cfc646d143d7e07a3086ddff0ce3" +checksum = "416f7e718bdb06000964960ffa43b4335ad4012ae8b99060261aa4a8088d5ccb" dependencies = [ - "bitflags 2.9.4", + "bitflags 2.10.0", "libc", ] -[[package]] -name = "libsecp256k1" -version = "0.7.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e79019718125edc905a079a70cfa5f3820bc76139fc91d6f9abc27ea2a887139" -dependencies = [ - "arrayref", - "base64", - "digest 0.9.0", - "libsecp256k1-core", - "libsecp256k1-gen-ecmult", - "libsecp256k1-gen-genmult", - "rand 0.8.5", - "serde", - "sha2 0.9.9", -] - -[[package]] -name = "libsecp256k1-core" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5be9b9bb642d8522a44d533eab56c16c738301965504753b03ad1de3425d5451" -dependencies = [ - "crunchy", - "digest 0.9.0", - "subtle", -] - -[[package]] -name = "libsecp256k1-gen-ecmult" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3038c808c55c87e8a172643a7d87187fc6c4174468159cb3090659d55bcb4809" -dependencies = [ - "libsecp256k1-core", -] - -[[package]] -name = "libsecp256k1-gen-genmult" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3db8d6ba2cec9eacc40e6e8ccc98931840301f1006e95647ceb2dd5c3aa06f7c" -dependencies = [ - "libsecp256k1-core", -] - [[package]] name = "linux-raw-sys" -version = "0.9.4" +version = "0.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cd945864f07fe9f5371a27ad7b52a172b4b499999f1d97574c9fa68373937e12" +checksum = "df1d3c3b53da64cf5760482273a98e575c651a67eec7f77df96b5b642de8f039" [[package]] name = "litemap" -version = "0.8.0" +version = "0.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "241eaef5fd12c88705a01fc1066c48c4b36e0dd4377dcdc7ec3942cea7a69956" +checksum = "6373607a59f0be73a39b6fe456b8192fcc3585f602af20751600e974dd455e77" [[package]] name = "log" @@ -2555,7 +2505,7 @@ checksum = "1b27834086c65ec3f9387b096d66e99f221cf081c2b738042aa252bcd41204e3" dependencies = [ "proc-macro2", "quote", - "syn 2.0.106", + "syn 2.0.110", ] [[package]] @@ -2575,14 +2525,14 @@ checksum = "5cf92c10c7e361d6b99666ec1c6f9805b0bea2c3bd8c78dc6fe98ac5bd78db11" dependencies = [ "proc-macro2", "quote", - "syn 2.0.106", + "syn 2.0.110", ] [[package]] name = "memchr" -version = "2.7.5" +version = "2.7.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "32a282da65faaf38286cf3be983213fcf1d2e2a58700e808f83f4ea9a4804bc0" +checksum = "f52b00d39961fc5b2736ea853c9cc86238e165017a493d1d5c8eac6bdc4cc273" [[package]] name = "merlin" @@ -2602,7 +2552,7 @@ version = "0.29.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7ecfd3296f8c56b7c1f6fbac3c71cefa9d78ce009850c45000015f206dc7fa21" dependencies = [ - "bitflags 2.9.4", + "bitflags 2.10.0", "block", "core-graphics-types", "foreign-types", @@ -2611,24 +2561,15 @@ dependencies = [ "paste", ] -[[package]] -name = "miniz_oxide" -version = "0.8.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1fa76a2c86f704bdb222d66965fb3d63269ce38518b83cb0575fca855ebb6316" -dependencies = [ - "adler2", -] - [[package]] name = "mio" -version = "1.0.4" +version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "78bed444cc8a2160f01cbcf811ef18cac863ad68ae8ca62092e8db51d51c761c" +checksum = "69d83b0086dc8ecf3ce9ae2874b2d1290252e2a30720bea58a5c6639b0092873" dependencies = [ "libc", - "wasi 0.11.1+wasi-snapshot-preview1", - "windows-sys 0.59.0", + "wasi", + "windows-sys 0.61.2", ] [[package]] @@ -2684,11 +2625,10 @@ dependencies = [ [[package]] name = "num-bigint-dig" -version = "0.8.4" +version = "0.8.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dc84195820f291c7697304f3cbdadd1cb7199c0efc917ff5eafd71225c136151" +checksum = "82c79c15c05d4bf82b6f5ef163104cc81a760d8e874d38ac50ab67c8877b647b" dependencies = [ - "byteorder", "lazy_static", "libm", "num-integer", @@ -2767,9 +2707,9 @@ dependencies = [ [[package]] name = "num_enum" -version = "0.7.4" +version = "0.7.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a973b4e44ce6cad84ce69d797acf9a044532e4184c4f267913d1b546a0727b7a" +checksum = "b1207a7e20ad57b847bbddc6776b968420d38292bbfe2089accff5e19e82454c" dependencies = [ "num_enum_derive", "rustversion", @@ -2777,14 +2717,14 @@ dependencies = [ [[package]] name = "num_enum_derive" -version = "0.7.4" +version = "0.7.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "77e878c846a8abae00dd069496dbe8751b16ac1c3d6bd2a7283a938e8228f90d" +checksum = "ff32365de1b6743cb203b710788263c44a03de03802daf96092f2da4fe6ba4d7" dependencies = [ "proc-macro-crate", "proc-macro2", "quote", - "syn 2.0.106", + "syn 2.0.110", ] [[package]] @@ -2802,9 +2742,9 @@ dependencies = [ [[package]] name = "nybbles" -version = "0.4.3" +version = "0.4.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "63cb50036b1ad148038105af40aaa70ff24d8a14fbc44ae5c914e1348533d12e" +checksum = "2c4b5ecbd0beec843101bffe848217f770e8b8da81d8355b7d6e226f2199b3dc" dependencies = [ "alloy-rlp", "cfg-if", @@ -2823,15 +2763,6 @@ dependencies = [ "malloc_buf", ] -[[package]] -name = "object" -version = "0.36.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "62948e14d923ea95ea2c7c86c71013138b66525b86bdc08d2dcc262bdb497b87" -dependencies = [ - "memchr", -] - [[package]] name = "once_cell" version = "1.21.3" @@ -2844,9 +2775,9 @@ dependencies = [ [[package]] name = "op-alloy-consensus" -version = "0.20.0" +version = "0.22.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3a501241474c3118833d6195312ae7eb7cc90bbb0d5f524cbb0b06619e49ff67" +checksum = "a0d7ec388eb83a3e6c71774131dbbb2ba9c199b6acac7dce172ed8de2f819e91" dependencies = [ "alloy-consensus", "alloy-eips", @@ -2859,23 +2790,36 @@ dependencies = [ "thiserror", ] +[[package]] +name = "op-alloy-rpc-types-engine" +version = "0.22.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c1abe694cd6718b8932da3f824f46778be0f43289e4103c88abc505c63533a04" +dependencies = [ + "alloy-consensus", + "alloy-eips", + "alloy-primitives", + "alloy-rlp", + "alloy-rpc-types-engine", + "derive_more", + "ethereum_ssz", + "ethereum_ssz_derive", + "op-alloy-consensus", + "snap", + "thiserror", +] + [[package]] name = "op-revm" -version = "10.0.0" +version = "12.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5ba21d705bbbfc947a423cba466d75e4af0c7d43ee89ba0a0f1cfa04963cede9" +checksum = "e31622d03b29c826e48800f4c8f389c8a9c440eb796a3e35203561a288f12985" dependencies = [ "auto_impl", "revm", "serde", ] -[[package]] -name = "opaque-debug" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c08d65885ee38876c4f86fa503fb49d7b507c2b62552df7c70b2fce627e06381" - [[package]] name = "option-ext" version = "0.2.0" @@ -2891,7 +2835,7 @@ dependencies = [ "ecdsa", "elliptic-curve", "primeorder", - "sha2 0.10.9", + "sha2", ] [[package]] @@ -2919,7 +2863,7 @@ dependencies = [ "proc-macro-crate", "proc-macro2", "quote", - "syn 2.0.106", + "syn 2.0.110", ] [[package]] @@ -2945,20 +2889,19 @@ checksum = "9b4f627cb1b25917193a259e49bdad08f671f8d9708acfd5fe0a8c1455d87220" [[package]] name = "pest" -version = "2.8.1" +version = "2.8.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1db05f56d34358a8b1066f67cbb203ee3e7ed2ba674a6263a1d5ec6db2204323" +checksum = "989e7521a040efde50c3ab6bbadafbe15ab6dc042686926be59ac35d74607df4" dependencies = [ "memchr", - "thiserror", "ucd-trie", ] [[package]] name = "phf" -version = "0.11.3" +version = "0.13.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1fd6780a80ae0c52cc120a26a1a42c1ae51b247a253e4e06113d23d2c2edd078" +checksum = "c1562dc717473dbaa4c1f85a36410e03c047b2e7df7f45ee938fbef64ae7fadf" dependencies = [ "phf_macros", "phf_shared", @@ -2967,32 +2910,32 @@ dependencies = [ [[package]] name = "phf_generator" -version = "0.11.3" +version = "0.13.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3c80231409c20246a13fddb31776fb942c38553c51e871f8cbd687a4cfb5843d" +checksum = "135ace3a761e564ec88c03a77317a7c6b80bb7f7135ef2544dbe054243b89737" dependencies = [ + "fastrand", "phf_shared", - "rand 0.8.5", ] [[package]] name = "phf_macros" -version = "0.11.3" +version = "0.13.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f84ac04429c13a7ff43785d75ad27569f2951ce0ffd30a3321230db2fc727216" +checksum = "812f032b54b1e759ccd5f8b6677695d5268c588701effba24601f6932f8269ef" dependencies = [ "phf_generator", "phf_shared", "proc-macro2", "quote", - "syn 2.0.106", + "syn 2.0.110", ] [[package]] name = "phf_shared" -version = "0.11.3" +version = "0.13.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "67eabc2ef2a60eb7faa00097bd1ffdb5bd28e62bf39990626a582201b7a754e5" +checksum = "e57fef6bc5981e38c2ce2d63bfa546861309f875b8a75f092d1d54ae2d64f266" dependencies = [ "siphasher", ] @@ -3056,9 +2999,9 @@ dependencies = [ [[package]] name = "potential_utf" -version = "0.1.3" +version = "0.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "84df19adbe5b5a0782edcab45899906947ab039ccf4573713735ee7de1e6b08a" +checksum = "b73949432f5e2a09657003c25bca5e19a0e9c84f8058ca374f49e0ebe605af77" dependencies = [ "zerovec", ] @@ -3100,11 +3043,11 @@ dependencies = [ [[package]] name = "proc-macro-crate" -version = "3.3.0" +version = "3.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "edce586971a4dfaa28950c6f18ed55e0406c1ab88bbce2c6f6293a7aaba73d35" +checksum = "219cb19e96be00ab2e37d6e299658a0cfa83e52429179969b0f0121b4ac46983" dependencies = [ - "toml_edit", + "toml_edit 0.23.7", ] [[package]] @@ -3126,14 +3069,14 @@ dependencies = [ "proc-macro-error-attr2", "proc-macro2", "quote", - "syn 2.0.106", + "syn 2.0.110", ] [[package]] name = "proc-macro2" -version = "1.0.101" +version = "1.0.103" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "89ae43fd86e4158d6db51ad8e2b80f313af9cc74f5c0e03ccb87de09998732de" +checksum = "5ee95bc4ef87b8d5ba32e8b7714ccc834865276eab0aed5c9958d00ec45f49e8" dependencies = [ "unicode-ident", ] @@ -3146,21 +3089,19 @@ checksum = "af066a9c399a26e020ada66a034357a868728e72cd426f3adcd35f80d88d88c8" dependencies = [ "proc-macro2", "quote", - "syn 2.0.106", + "syn 2.0.110", "version_check", - "yansi", ] [[package]] name = "proptest" -version = "1.7.0" +version = "1.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6fcdab19deb5195a31cf7726a210015ff1496ba1464fd42cb4f537b8b01b471f" +checksum = "bee689443a2bd0a16ab0348b52ee43e3b2d1b1f931c8aa5c9f8de4c86fbe8c40" dependencies = [ "bit-set", "bit-vec", - "bitflags 2.9.4", - "lazy_static", + "bitflags 2.10.0", "num-traits", "rand 0.9.2", "rand_chacha 0.9.0", @@ -3191,7 +3132,7 @@ dependencies = [ "itertools 0.14.0", "proc-macro2", "quote", - "syn 2.0.106", + "syn 2.0.110", ] [[package]] @@ -3227,7 +3168,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f1906b49b0c3bc04b5fe5d86a77925ae6524a19b816ae38ce1e426255f1d8a31" dependencies = [ "bytes", - "getrandom 0.3.3", + "getrandom 0.3.4", "lru-slab", "rand 0.9.2", "ring", @@ -3257,9 +3198,9 @@ dependencies = [ [[package]] name = "quote" -version = "1.0.40" +version = "1.0.42" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1885c039570dc00dcb4ff087a89e185fd56bae234ddc7f056a945bf36467248d" +checksum = "a338cc41d27e6cc6dce6cefc13a0729dfbb81c262b1f519331575dd80ef3067f" dependencies = [ "proc-macro2", ] @@ -3334,7 +3275,7 @@ version = "0.9.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "99d9a13982dcf210057a8a78572b2217b667c3beacbf3a0d8b454f6f82837d38" dependencies = [ - "getrandom 0.3.3", + "getrandom 0.3.4", "serde", ] @@ -3360,29 +3301,29 @@ dependencies = [ [[package]] name = "ref-cast" -version = "1.0.24" +version = "1.0.25" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4a0ae411dbe946a674d89546582cea4ba2bb8defac896622d6496f14c23ba5cf" +checksum = "f354300ae66f76f1c85c5f84693f0ce81d747e2c3f21a45fef496d89c960bf7d" dependencies = [ "ref-cast-impl", ] [[package]] name = "ref-cast-impl" -version = "1.0.24" +version = "1.0.25" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1165225c21bff1f3bbce98f5a1f889949bc902d3575308cc7b0de30b4f6d27c7" +checksum = "b7186006dcb21920990093f30e3dea63b7d6e977bf1256be20c3563a5db070da" dependencies = [ "proc-macro2", "quote", - "syn 2.0.106", + "syn 2.0.110", ] [[package]] name = "regex" -version = "1.11.2" +version = "1.12.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "23d7fd106d8c02486a8d64e778353d1cffe08ce79ac2e82f540c86d0facf6912" +checksum = "843bc0191f75f3e22651ae5f1e72939ab2f72a4bc30fa80a066bd66edefc24d4" dependencies = [ "aho-corasick", "memchr", @@ -3392,9 +3333,9 @@ dependencies = [ [[package]] name = "regex-automata" -version = "0.4.10" +version = "0.4.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6b9458fa0bfeeac22b5ca447c63aaf45f28439a709ccd244698632f9aa6394d6" +checksum = "5276caf25ac86c8d810222b3dbb938e512c55c6831a10f3e6ed1c93b84041f1c" dependencies = [ "aho-corasick", "memchr", @@ -3403,15 +3344,15 @@ dependencies = [ [[package]] name = "regex-syntax" -version = "0.8.6" +version = "0.8.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "caf4aa5b0f434c91fe5c7f1ecb6a5ece2130b02ad2a590589dda5146df959001" +checksum = "7a2d987857b319362043e95f5353c0535c1f58eec5336fdfcf626430af7def58" [[package]] name = "reqwest" -version = "0.12.23" +version = "0.12.24" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d429f34c8092b2d42c7c93cec323bb4adeb7c67698f70839adec842ec10c7ceb" +checksum = "9d0946410b9f7b082a427e4ef5c8ff541a88b357bc6c637c40db3a68ac70a36f" dependencies = [ "base64", "bytes", @@ -3451,8 +3392,8 @@ dependencies = [ [[package]] name = "reth-chainspec" -version = "1.8.2" -source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.8.2#9c30bf7af5e0d45deaf5917375c9922c16654b28" +version = "1.9.1" +source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.9.1#3afe69a5738459a7cb5f46c598c7f541a1510f32" dependencies = [ "alloy-chains", "alloy-consensus", @@ -3471,8 +3412,8 @@ dependencies = [ [[package]] name = "reth-codecs" -version = "1.8.2" -source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.8.2#9c30bf7af5e0d45deaf5917375c9922c16654b28" +version = "1.9.1" +source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.9.1#3afe69a5738459a7cb5f46c598c7f541a1510f32" dependencies = [ "alloy-consensus", "alloy-eips", @@ -3489,19 +3430,18 @@ dependencies = [ [[package]] name = "reth-codecs-derive" -version = "1.8.2" -source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.8.2#9c30bf7af5e0d45deaf5917375c9922c16654b28" +version = "1.9.1" +source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.9.1#3afe69a5738459a7cb5f46c598c7f541a1510f32" dependencies = [ - "convert_case", "proc-macro2", "quote", - "syn 2.0.106", + "syn 2.0.110", ] [[package]] name = "reth-consensus" -version = "1.8.2" -source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.8.2#9c30bf7af5e0d45deaf5917375c9922c16654b28" +version = "1.9.1" +source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.9.1#3afe69a5738459a7cb5f46c598c7f541a1510f32" dependencies = [ "alloy-consensus", "alloy-primitives", @@ -3513,8 +3453,8 @@ dependencies = [ [[package]] name = "reth-consensus-common" -version = "1.8.2" -source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.8.2#9c30bf7af5e0d45deaf5917375c9922c16654b28" +version = "1.9.1" +source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.9.1#3afe69a5738459a7cb5f46c598c7f541a1510f32" dependencies = [ "alloy-consensus", "alloy-eips", @@ -3525,8 +3465,8 @@ dependencies = [ [[package]] name = "reth-db-models" -version = "1.8.2" -source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.8.2#9c30bf7af5e0d45deaf5917375c9922c16654b28" +version = "1.9.1" +source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.9.1#3afe69a5738459a7cb5f46c598c7f541a1510f32" dependencies = [ "alloy-eips", "alloy-primitives", @@ -3537,8 +3477,8 @@ dependencies = [ [[package]] name = "reth-errors" -version = "1.8.2" -source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.8.2#9c30bf7af5e0d45deaf5917375c9922c16654b28" +version = "1.9.1" +source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.9.1#3afe69a5738459a7cb5f46c598c7f541a1510f32" dependencies = [ "reth-consensus", "reth-execution-errors", @@ -3548,8 +3488,8 @@ dependencies = [ [[package]] name = "reth-ethereum-consensus" -version = "1.8.2" -source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.8.2#9c30bf7af5e0d45deaf5917375c9922c16654b28" +version = "1.9.1" +source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.9.1#3afe69a5738459a7cb5f46c598c7f541a1510f32" dependencies = [ "alloy-consensus", "alloy-eips", @@ -3564,8 +3504,8 @@ dependencies = [ [[package]] name = "reth-ethereum-forks" -version = "1.8.2" -source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.8.2#9c30bf7af5e0d45deaf5917375c9922c16654b28" +version = "1.9.1" +source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.9.1#3afe69a5738459a7cb5f46c598c7f541a1510f32" dependencies = [ "alloy-eip2124", "alloy-hardforks", @@ -3577,8 +3517,8 @@ dependencies = [ [[package]] name = "reth-ethereum-primitives" -version = "1.8.2" -source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.8.2#9c30bf7af5e0d45deaf5917375c9922c16654b28" +version = "1.9.1" +source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.9.1#3afe69a5738459a7cb5f46c598c7f541a1510f32" dependencies = [ "alloy-consensus", "alloy-eips", @@ -3595,8 +3535,8 @@ dependencies = [ [[package]] name = "reth-evm" -version = "1.8.2" -source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.8.2#9c30bf7af5e0d45deaf5917375c9922c16654b28" +version = "1.9.1" +source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.9.1#3afe69a5738459a7cb5f46c598c7f541a1510f32" dependencies = [ "alloy-consensus", "alloy-eips", @@ -3616,8 +3556,8 @@ dependencies = [ [[package]] name = "reth-evm-ethereum" -version = "1.8.2" -source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.8.2#9c30bf7af5e0d45deaf5917375c9922c16654b28" +version = "1.9.1" +source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.9.1#3afe69a5738459a7cb5f46c598c7f541a1510f32" dependencies = [ "alloy-consensus", "alloy-eips", @@ -3637,21 +3577,21 @@ dependencies = [ [[package]] name = "reth-execution-errors" -version = "1.8.2" -source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.8.2#9c30bf7af5e0d45deaf5917375c9922c16654b28" +version = "1.9.1" +source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.9.1#3afe69a5738459a7cb5f46c598c7f541a1510f32" dependencies = [ "alloy-evm", "alloy-primitives", "alloy-rlp", - "nybbles 0.4.3", + "nybbles 0.4.6", "reth-storage-errors", "thiserror", ] [[package]] name = "reth-execution-types" -version = "1.8.2" -source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.8.2#9c30bf7af5e0d45deaf5917375c9922c16654b28" +version = "1.9.1" +source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.9.1#3afe69a5738459a7cb5f46c598c7f541a1510f32" dependencies = [ "alloy-consensus", "alloy-eips", @@ -3668,8 +3608,8 @@ dependencies = [ [[package]] name = "reth-network-peers" -version = "1.8.2" -source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.8.2#9c30bf7af5e0d45deaf5917375c9922c16654b28" +version = "1.9.1" +source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.9.1#3afe69a5738459a7cb5f46c598c7f541a1510f32" dependencies = [ "alloy-primitives", "alloy-rlp", @@ -3681,8 +3621,8 @@ dependencies = [ [[package]] name = "reth-primitives-traits" -version = "1.8.2" -source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.8.2#9c30bf7af5e0d45deaf5917375c9922c16654b28" +version = "1.9.1" +source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.9.1#3afe69a5738459a7cb5f46c598c7f541a1510f32" dependencies = [ "alloy-consensus", "alloy-eips", @@ -3708,19 +3648,20 @@ dependencies = [ [[package]] name = "reth-prune-types" -version = "1.8.2" -source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.8.2#9c30bf7af5e0d45deaf5917375c9922c16654b28" +version = "1.9.1" +source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.9.1#3afe69a5738459a7cb5f46c598c7f541a1510f32" dependencies = [ "alloy-primitives", "derive_more", "serde", + "strum", "thiserror", ] [[package]] name = "reth-revm" -version = "1.8.2" -source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.8.2#9c30bf7af5e0d45deaf5917375c9922c16654b28" +version = "1.9.1" +source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.9.1#3afe69a5738459a7cb5f46c598c7f541a1510f32" dependencies = [ "alloy-primitives", "reth-primitives-traits", @@ -3731,8 +3672,8 @@ dependencies = [ [[package]] name = "reth-stages-types" -version = "1.8.2" -source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.8.2#9c30bf7af5e0d45deaf5917375c9922c16654b28" +version = "1.9.1" +source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.9.1#3afe69a5738459a7cb5f46c598c7f541a1510f32" dependencies = [ "alloy-primitives", "bytes", @@ -3742,8 +3683,8 @@ dependencies = [ [[package]] name = "reth-stateless" -version = "1.8.2" -source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.8.2#9c30bf7af5e0d45deaf5917375c9922c16654b28" +version = "1.9.1" +source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.9.1#3afe69a5738459a7cb5f46c598c7f541a1510f32" dependencies = [ "alloy-consensus", "alloy-primitives", @@ -3751,6 +3692,7 @@ dependencies = [ "alloy-rpc-types-debug", "alloy-trie 0.9.1", "itertools 0.14.0", + "k256", "reth-chainspec", "reth-consensus", "reth-errors", @@ -3768,8 +3710,8 @@ dependencies = [ [[package]] name = "reth-static-file-types" -version = "1.8.2" -source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.8.2#9c30bf7af5e0d45deaf5917375c9922c16654b28" +version = "1.9.1" +source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.9.1#3afe69a5738459a7cb5f46c598c7f541a1510f32" dependencies = [ "alloy-primitives", "derive_more", @@ -3779,8 +3721,8 @@ dependencies = [ [[package]] name = "reth-storage-api" -version = "1.8.2" -source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.8.2#9c30bf7af5e0d45deaf5917375c9922c16654b28" +version = "1.9.1" +source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.9.1#3afe69a5738459a7cb5f46c598c7f541a1510f32" dependencies = [ "alloy-consensus", "alloy-eips", @@ -3801,8 +3743,8 @@ dependencies = [ [[package]] name = "reth-storage-errors" -version = "1.8.2" -source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.8.2#9c30bf7af5e0d45deaf5917375c9922c16654b28" +version = "1.9.1" +source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.9.1#3afe69a5738459a7cb5f46c598c7f541a1510f32" dependencies = [ "alloy-eips", "alloy-primitives", @@ -3817,8 +3759,8 @@ dependencies = [ [[package]] name = "reth-trie-common" -version = "1.8.2" -source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.8.2#9c30bf7af5e0d45deaf5917375c9922c16654b28" +version = "1.9.1" +source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.9.1#3afe69a5738459a7cb5f46c598c7f541a1510f32" dependencies = [ "alloy-consensus", "alloy-primitives", @@ -3826,10 +3768,11 @@ dependencies = [ "alloy-rpc-types-eth", "alloy-serde", "alloy-trie 0.9.1", + "arrayvec", "bytes", "derive_more", "itertools 0.14.0", - "nybbles 0.4.3", + "nybbles 0.4.6", "reth-primitives-traits", "revm-database", "serde", @@ -3838,8 +3781,8 @@ dependencies = [ [[package]] name = "reth-trie-sparse" -version = "1.8.2" -source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.8.2#9c30bf7af5e0d45deaf5917375c9922c16654b28" +version = "1.9.1" +source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.9.1#3afe69a5738459a7cb5f46c598c7f541a1510f32" dependencies = [ "alloy-primitives", "alloy-rlp", @@ -3854,17 +3797,17 @@ dependencies = [ [[package]] name = "reth-zstd-compressors" -version = "1.8.2" -source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.8.2#9c30bf7af5e0d45deaf5917375c9922c16654b28" +version = "1.9.1" +source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.9.1#3afe69a5738459a7cb5f46c598c7f541a1510f32" dependencies = [ "zstd", ] [[package]] name = "revm" -version = "29.0.1" +version = "31.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "718d90dce5f07e115d0e66450b1b8aa29694c1cf3f89ebddaddccc2ccbd2f13e" +checksum = "bb67a5223602113cae59a305acde2d9936bc18f2478dda879a6124b267cebfb6" dependencies = [ "revm-bytecode", "revm-context", @@ -3881,9 +3824,9 @@ dependencies = [ [[package]] name = "revm-bytecode" -version = "6.2.2" +version = "7.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "66c52031b73cae95d84cd1b07725808b5fd1500da3e5e24574a3b2dc13d9f16d" +checksum = "e2c6b5e6e8dd1e28a4a60e5f46615d4ef0809111c9e63208e55b5c7058200fb0" dependencies = [ "bitvec", "phf", @@ -3893,9 +3836,9 @@ dependencies = [ [[package]] name = "revm-context" -version = "9.1.0" +version = "11.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5a20c98e7008591a6f012550c2a00aa36cba8c14cc88eb88dec32eb9102554b4" +checksum = "92850e150f4f99d46c05a20ad0cd09286a7ad4ee21866fffb87101de6e602231" dependencies = [ "bitvec", "cfg-if", @@ -3910,9 +3853,9 @@ dependencies = [ [[package]] name = "revm-context-interface" -version = "10.2.0" +version = "12.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b50d241ed1ce647b94caf174fcd0239b7651318b2c4c06b825b59b973dfb8495" +checksum = "f6d701e2c2347d65216b066489ab22a0a8e1f7b2568256110d73a7d5eff3385c" dependencies = [ "alloy-eip2930", "alloy-eip7702", @@ -3926,9 +3869,9 @@ dependencies = [ [[package]] name = "revm-database" -version = "7.0.5" +version = "9.0.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "39a276ed142b4718dcf64bc9624f474373ed82ef20611025045c3fb23edbef9c" +checksum = "7b6c15bb255481fcf29f5ef7c97f00ed4c28a6ab6c490d77b990d73603031569" dependencies = [ "alloy-eips", "revm-bytecode", @@ -3940,9 +3883,9 @@ dependencies = [ [[package]] name = "revm-database-interface" -version = "7.0.5" +version = "8.0.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8c523c77e74eeedbac5d6f7c092e3851dbe9c7fec6f418b85992bd79229db361" +checksum = "8cce03e3780287b07abe58faf4a7f5d8be7e81321f93ccf3343c8f7755602bae" dependencies = [ "auto_impl", "either", @@ -3953,9 +3896,9 @@ dependencies = [ [[package]] name = "revm-handler" -version = "10.0.1" +version = "12.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "550331ea85c1d257686e672081576172fe3d5a10526248b663bbf54f1bef226a" +checksum = "b45418ed95cfdf0cb19effdbb7633cf2144cab7fb0e6ffd6b0eb9117a50adff6" dependencies = [ "auto_impl", "derive-where", @@ -3972,9 +3915,9 @@ dependencies = [ [[package]] name = "revm-inspector" -version = "10.0.1" +version = "12.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7c0a6e9ccc2ae006f5bed8bd80cd6f8d3832cd55c5e861b9402fdd556098512f" +checksum = "c99801eac7da06cc112df2244bd5a64024f4ef21240e923b26e73c4b4a0e5da6" dependencies = [ "auto_impl", "either", @@ -3990,21 +3933,22 @@ dependencies = [ [[package]] name = "revm-interpreter" -version = "25.0.3" +version = "29.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "06575dc51b1d8f5091daa12a435733a90b4a132dca7ccee0666c7db3851bc30c" +checksum = "22789ce92c5808c70185e3bc49732f987dc6fd907f77828c8d3470b2299c9c65" dependencies = [ "revm-bytecode", "revm-context-interface", "revm-primitives", + "revm-state", "serde", ] [[package]] name = "revm-precompile" -version = "27.0.0" +version = "29.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "25b57d4bd9e6b5fe469da5452a8a137bc2d030a3cd47c46908efc615bbc699da" +checksum = "968b124028960201abf6d6bf8e223f15fadebb4307df6b7dc9244a0aab5d2d05" dependencies = [ "ark-bls12-381", "ark-bn254", @@ -4017,21 +3961,20 @@ dependencies = [ "c-kzg", "cfg-if", "k256", - "libsecp256k1", "p256", "revm-primitives", "ripemd", "rug", "secp256k1 0.31.1", - "sha2 0.10.9", + "sha2", "substrate-bn", ] [[package]] name = "revm-primitives" -version = "20.2.1" +version = "21.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5aa29d9da06fe03b249b6419b33968ecdf92ad6428e2f012dc57bcd619b5d94e" +checksum = "29e161db429d465c09ba9cbff0df49e31049fe6b549e28eb0b7bd642fcbd4412" dependencies = [ "alloy-primitives", "num_enum", @@ -4041,11 +3984,11 @@ dependencies = [ [[package]] name = "revm-state" -version = "7.0.5" +version = "8.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1f64fbacb86008394aaebd3454f9643b7d5a782bd251135e17c5b33da592d84d" +checksum = "7d8be953b7e374dbdea0773cf360debed8df394ea8d82a8b240a6b5da37592fc" dependencies = [ - "bitflags 2.9.4", + "bitflags 2.10.0", "revm-bytecode", "revm-primitives", "serde", @@ -4111,7 +4054,7 @@ dependencies = [ "risc0-zkp", "risc0-zkvm-platform", "ruint", - "semver 1.0.26", + "semver 1.0.27", "serde", "tracing", ] @@ -4133,7 +4076,7 @@ dependencies = [ "risc0-zkp", "risc0-zkvm-platform", "rzup", - "semver 1.0.26", + "semver 1.0.27", "serde", "serde_json", "stability", @@ -4264,7 +4207,7 @@ dependencies = [ "risc0-core", "risc0-zkvm-platform", "serde", - "sha2 0.10.9", + "sha2", "stability", "tracing", ] @@ -4297,9 +4240,9 @@ dependencies = [ "risc0-zkvm-platform", "rrs-lib", "rzup", - "semver 1.0.26", + "semver 1.0.27", "serde", - "sha2 0.10.9", + "sha2", "stability", "tempfile", "tracing", @@ -4314,7 +4257,7 @@ dependencies = [ "bytemuck", "cfg-if", "getrandom 0.2.16", - "getrandom 0.3.3", + "getrandom 0.3.4", "libm", "num_enum", "paste", @@ -4375,13 +4318,14 @@ dependencies = [ [[package]] name = "ruint" -version = "1.16.0" +version = "1.17.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9ecb38f82477f20c5c3d62ef52d7c4e536e38ea9b73fb570a20c5cae0e14bcf6" +checksum = "a68df0380e5c9d20ce49534f292a36a7514ae21350726efe1865bdb1fa91d278" dependencies = [ "alloy-rlp", "ark-ff 0.3.0", "ark-ff 0.4.2", + "ark-ff 0.5.0", "borsh", "bytes", "fastrlp 0.3.1", @@ -4396,7 +4340,7 @@ dependencies = [ "rand 0.9.2", "rlp", "ruint-macro", - "serde", + "serde_core", "valuable", "zeroize", ] @@ -4407,12 +4351,6 @@ version = "1.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "48fd7bd8a6377e15ad9d42a8ec25371b94ddc67abe7c8b9127bec79bebaaae18" -[[package]] -name = "rustc-demangle" -version = "0.1.26" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "56f7d92ca342cea22a06f2121d944b4fd82af56988c270852495420f961d4ace" - [[package]] name = "rustc-hash" version = "2.1.1" @@ -4440,27 +4378,27 @@ version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "cfcb3a22ef46e85b45de6ee7e79d063319ebb6594faafcf1c225ea92ab6e9b92" dependencies = [ - "semver 1.0.26", + "semver 1.0.27", ] [[package]] name = "rustix" -version = "1.0.8" +version = "1.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "11181fbabf243db407ef8df94a6ce0b2f9a733bd8be4ad02b4eda9602296cac8" +checksum = "cd15f8a2c5551a84d56efdc1cd049089e409ac19a3072d5037a17fd70719ff3e" dependencies = [ - "bitflags 2.9.4", + "bitflags 2.10.0", "errno", "libc", "linux-raw-sys", - "windows-sys 0.60.2", + "windows-sys 0.61.2", ] [[package]] name = "rustls" -version = "0.23.31" +version = "0.23.35" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c0ebcbd2f03de0fc1122ad9bb24b127a5a6cd51d72604a3f3c50ac459762b6cc" +checksum = "533f54bc6a7d4f647e46ad909549eda97bf5afc1585190ef692b4286b198bd8f" dependencies = [ "once_cell", "ring", @@ -4472,9 +4410,9 @@ dependencies = [ [[package]] name = "rustls-pki-types" -version = "1.12.0" +version = "1.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "229a4a4c221013e7e1f1a043678c5cc39fe5171437c88fb47151a21e6f5b5c79" +checksum = "94182ad936a0c91c324cd46c6511b9510ed16af436d7b5bab34beab0afd55f7a" dependencies = [ "web-time", "zeroize", @@ -4482,9 +4420,9 @@ dependencies = [ [[package]] name = "rustls-webpki" -version = "0.103.4" +version = "0.103.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0a17884ae0c1b773f1ccd2bd4a8c72f16da897310a98b0e84bf349ad5ead92fc" +checksum = "2ffdfa2f5286e2247234e03f680868ac2815974dc39e00ea15adc445d0aafe52" dependencies = [ "ring", "rustls-pki-types", @@ -4499,9 +4437,9 @@ checksum = "b39cdef0fa800fc44525c84ccb54a029961a8215f9619753635a9c0d2538d46d" [[package]] name = "rusty-fork" -version = "0.3.0" +version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cb3dcc6e454c328bb824492db107ab7c0ae8fcffe4ad210136ef014458c1bc4f" +checksum = "cc6bf79ff24e648f6da1f8d1f011e9cac26491b619e6b9280f2b47f1774e6ee2" dependencies = [ "fnv", "quick-error", @@ -4523,10 +4461,10 @@ checksum = "5d2aed296f203fa64bcb4b52069356dd86d6ec578593985b919b6995bee1f0ae" dependencies = [ "hex", "rsa", - "semver 1.0.26", + "semver 1.0.27", "serde", "serde_with", - "sha2 0.10.9", + "sha2", "strum", "tempfile", "thiserror", @@ -4548,9 +4486,9 @@ dependencies = [ [[package]] name = "schemars" -version = "1.0.4" +version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "82d20c4491bc164fa2f6c5d44565947a52ad80b9505d8e36f8d54c27c739fcd0" +checksum = "9558e172d4e8533736ba97870c4b2cd63f84b382a3d6eb063da41b91cce17289" dependencies = [ "dyn-clone", "ref-cast", @@ -4625,11 +4563,12 @@ dependencies = [ [[package]] name = "semver" -version = "1.0.26" +version = "1.0.27" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "56e6fa9c48d24d85fb3de5ad847117517440f6beceb7798af16b4a87d616b8d0" +checksum = "d767eb0aabc880b29956c35734170f26ed551a859dbd361d140cdbeca61ab1e2" dependencies = [ "serde", + "serde_core", ] [[package]] @@ -4643,9 +4582,9 @@ dependencies = [ [[package]] name = "serde" -version = "1.0.226" +version = "1.0.228" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0dca6411025b24b60bfa7ec1fe1f8e710ac09782dca409ee8237ba74b51295fd" +checksum = "9a8e94ea7f378bd32cbbd37198a4a91436180c5bb472411e48b5ec2e2124ae9e" dependencies = [ "serde_core", "serde_derive", @@ -4653,35 +4592,36 @@ dependencies = [ [[package]] name = "serde_core" -version = "1.0.226" +version = "1.0.228" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ba2ba63999edb9dac981fb34b3e5c0d111a69b0924e253ed29d83f7c99e966a4" +checksum = "41d385c7d4ca58e59fc732af25c3983b67ac852c1a25000afe1175de458b67ad" dependencies = [ "serde_derive", ] [[package]] name = "serde_derive" -version = "1.0.226" +version = "1.0.228" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8db53ae22f34573731bafa1db20f04027b2d25e02d8205921b569171699cdb33" +checksum = "d540f220d3187173da220f885ab66608367b6574e925011a9353e4badda91d79" dependencies = [ "proc-macro2", "quote", - "syn 2.0.106", + "syn 2.0.110", ] [[package]] name = "serde_json" -version = "1.0.143" +version = "1.0.145" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d401abef1d108fbd9cbaebc3e46611f4b1021f714a0597a71f41ee463f5f4a5a" +checksum = "402a6f66d8c709116cf22f558eab210f5a50187f702eb4d7e5ef38d9a7f1c79c" dependencies = [ - "indexmap 2.11.0", + "indexmap 2.12.0", "itoa", "memchr", "ryu", "serde", + "serde_core", ] [[package]] @@ -4707,19 +4647,18 @@ dependencies = [ [[package]] name = "serde_with" -version = "3.14.0" +version = "3.15.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f2c45cd61fefa9db6f254525d46e392b852e0e61d9a1fd36e5bd183450a556d5" +checksum = "aa66c845eee442168b2c8134fec70ac50dc20e760769c8ba0ad1319ca1959b04" dependencies = [ "base64", "chrono", "hex", "indexmap 1.9.3", - "indexmap 2.11.0", + "indexmap 2.12.0", "schemars 0.9.0", - "schemars 1.0.4", - "serde", - "serde_derive", + "schemars 1.1.0", + "serde_core", "serde_json", "serde_with_macros", "time", @@ -4727,14 +4666,14 @@ dependencies = [ [[package]] name = "serde_with_macros" -version = "3.14.0" +version = "3.15.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "de90945e6565ce0d9a25098082ed4ee4002e047cb59892c318d66821e14bb30f" +checksum = "b91a903660542fced4e99881aa481bdbaec1634568ee02e0b8bd57c64cb38955" dependencies = [ - "darling 0.20.11", + "darling 0.21.3", "proc-macro2", "quote", - "syn 2.0.106", + "syn 2.0.110", ] [[package]] @@ -4747,19 +4686,6 @@ dependencies = [ "serde", ] -[[package]] -name = "sha2" -version = "0.9.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4d58a1e1bf39749807d89cf2d98ac2dfa0ff1cb3faa38fbb64dd88ac8013d800" -dependencies = [ - "block-buffer 0.9.0", - "cfg-if", - "cpufeatures", - "digest 0.9.0", - "opaque-debug", -] - [[package]] name = "sha2" version = "0.10.9" @@ -4827,14 +4753,20 @@ dependencies = [ "serde", ] +[[package]] +name = "snap" +version = "1.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1b6b67fb9a61334225b5b790716f609cd58395f895b3fe8b328786812a40bc3b" + [[package]] name = "socket2" -version = "0.6.0" +version = "0.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "233504af464074f9d066d7b5416c5f9b894a5862a6506e306f7b816cdd6f1807" +checksum = "17129e116933cf371d018bb80ae557e889637989d8638274fb25622827b03881" dependencies = [ "libc", - "windows-sys 0.59.0", + "windows-sys 0.60.2", ] [[package]] @@ -4860,14 +4792,14 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d904e7009df136af5297832a3ace3370cd14ff1546a232f4f185036c2736fcac" dependencies = [ "quote", - "syn 2.0.106", + "syn 2.0.110", ] [[package]] name = "stable_deref_trait" -version = "1.2.0" +version = "1.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a8f112729512f8e442d81f95a8a7ddf2b7c6b8a1a6f509a95864142b30cab2d3" +checksum = "6ce2be8dc25455e1f91df71bfa12ad37d7af1092ae736f3a6cd0e37bc7810596" [[package]] name = "stateless-client" @@ -4876,8 +4808,9 @@ dependencies = [ "blst", "c-kzg", "revm", + "revm-context-interface", "risc0-zkvm", - "sha2 0.10.9", + "sha2", "substrate-bn", "tiny-keccak", "zeth-chainspec", @@ -4914,7 +4847,7 @@ dependencies = [ "heck", "proc-macro2", "quote", - "syn 2.0.106", + "syn 2.0.110", ] [[package]] @@ -4951,9 +4884,9 @@ dependencies = [ [[package]] name = "syn" -version = "2.0.106" +version = "2.0.110" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ede7c438028d4436d71104916910f5bb611972c5cfd7f89b8300a8186e6fada6" +checksum = "a99801b5bd34ede4cf3fc688c5919368fea4e4814a4664359503e6015b280aea" dependencies = [ "proc-macro2", "quote", @@ -4962,14 +4895,14 @@ dependencies = [ [[package]] name = "syn-solidity" -version = "1.3.1" +version = "1.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a0b198d366dbec045acfcd97295eb653a7a2b40e4dc764ef1e79aafcad439d3c" +checksum = "ff790eb176cc81bb8936aed0f7b9f14fc4670069a2d371b3e3b0ecce908b2cb3" dependencies = [ "paste", "proc-macro2", "quote", - "syn 2.0.106", + "syn 2.0.110", ] [[package]] @@ -4989,7 +4922,7 @@ checksum = "728a70f3dbaf5bab7f0c4b1ac8d7ae5ea60a4b5549c8a5914361c99147a709d2" dependencies = [ "proc-macro2", "quote", - "syn 2.0.106", + "syn 2.0.110", ] [[package]] @@ -5000,35 +4933,35 @@ checksum = "55937e1799185b12863d447f42597ed69d9928686b8d88a1df17376a097d8369" [[package]] name = "tempfile" -version = "3.21.0" +version = "3.23.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "15b61f8f20e3a6f7e0649d825294eaf317edce30f82cf6026e7e4cb9222a7d1e" +checksum = "2d31c77bdf42a745371d260a26ca7163f1e0924b64afa0b688e61b5a9fa02f16" dependencies = [ "fastrand", - "getrandom 0.3.3", + "getrandom 0.3.4", "once_cell", "rustix", - "windows-sys 0.60.2", + "windows-sys 0.61.2", ] [[package]] name = "thiserror" -version = "2.0.16" +version = "2.0.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3467d614147380f2e4e374161426ff399c91084acd2363eaf549172b3d5e60c0" +checksum = "f63587ca0f12b72a0600bcba1d40081f830876000bb46dd2337a3051618f4fc8" dependencies = [ "thiserror-impl", ] [[package]] name = "thiserror-impl" -version = "2.0.16" +version = "2.0.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6c5e1be1c48b9172ee610da68fd9cd2770e7a4056cb3fc98710ee6906f0c7960" +checksum = "3ff15c8ecd7de3849db632e14d18d2571fa09dfc5ed93479bc4485c7a517c913" dependencies = [ "proc-macro2", "quote", - "syn 2.0.106", + "syn 2.0.110", ] [[package]] @@ -5042,11 +4975,12 @@ dependencies = [ [[package]] name = "time" -version = "0.3.43" +version = "0.3.44" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "83bde6f1ec10e72d583d91623c939f623002284ef622b87de38cfd546cbf2031" +checksum = "91e7d9e3bb61134e77bde20dd4825b97c010155709965fedf0f49bb138e52a9d" dependencies = [ "deranged", + "itoa", "num-conv", "powerfmt", "serde", @@ -5080,9 +5014,9 @@ dependencies = [ [[package]] name = "tinystr" -version = "0.8.1" +version = "0.8.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5d4f6d1145dcb577acf783d4e601bc1d76a13337bb54e6233add580b07344c8b" +checksum = "42d3e9c45c09de15d06dd8acf5f4e0e399e85927b7f00711024eb7ae10fa4869" dependencies = [ "displaydoc", "zerovec", @@ -5105,26 +5039,23 @@ checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" [[package]] name = "tokio" -version = "1.47.1" +version = "1.48.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "89e49afdadebb872d3145a5638b59eb0691ea23e46ca484037cfab3b76b95038" +checksum = "ff360e02eab121e0bc37a2d3b4d4dc622e6eda3a8e5253d5435ecf5bd4c68408" dependencies = [ - "backtrace", "bytes", - "io-uring", "libc", "mio", "pin-project-lite", - "slab", "socket2", - "windows-sys 0.59.0", + "windows-sys 0.61.2", ] [[package]] name = "tokio-rustls" -version = "0.26.2" +version = "0.26.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8e727b36a1a0e8b74c376ac2211e40c2c8af09fb4013c60d910495810f008e9b" +checksum = "1729aa945f29d91ba541258c8df89027d5792d85a8841fb65e8bf0f4ede4ef61" dependencies = [ "rustls", "tokio", @@ -5132,9 +5063,9 @@ dependencies = [ [[package]] name = "tokio-util" -version = "0.7.16" +version = "0.7.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "14307c986784f72ef81c89db7d9e28d6ac26d16213b109ea501696195e6e3ce5" +checksum = "2efa149fe76073d6e8fd97ef4f4eca7b67f599660115591483572e406e165594" dependencies = [ "bytes", "futures-core", @@ -5151,8 +5082,8 @@ checksum = "dc1beb996b9d83529a9e75c17a1686767d148d70663143c7854d8b4a09ced362" dependencies = [ "serde", "serde_spanned", - "toml_datetime", - "toml_edit", + "toml_datetime 0.6.11", + "toml_edit 0.22.27", ] [[package]] @@ -5164,20 +5095,50 @@ dependencies = [ "serde", ] +[[package]] +name = "toml_datetime" +version = "0.7.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f2cdb639ebbc97961c51720f858597f7f24c4fc295327923af55b74c3c724533" +dependencies = [ + "serde_core", +] + [[package]] name = "toml_edit" version = "0.22.27" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "41fe8c660ae4257887cf66394862d21dbca4a6ddd26f04a3560410406a2f819a" dependencies = [ - "indexmap 2.11.0", + "indexmap 2.12.0", "serde", "serde_spanned", - "toml_datetime", + "toml_datetime 0.6.11", "toml_write", "winnow", ] +[[package]] +name = "toml_edit" +version = "0.23.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6485ef6d0d9b5d0ec17244ff7eb05310113c3f316f2d14200d4de56b3cb98f8d" +dependencies = [ + "indexmap 2.12.0", + "toml_datetime 0.7.3", + "toml_parser", + "winnow", +] + +[[package]] +name = "toml_parser" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c0cbe268d35bdb4bb5a56a2de88d0ad0eb70af5384a99d648cd4b3d04039800e" +dependencies = [ + "winnow", +] + [[package]] name = "toml_write" version = "0.1.2" @@ -5205,7 +5166,7 @@ version = "0.6.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "adc82fd73de2a9722ac5da747f12383d2bfdb93591ee6c58486e0097890f05f2" dependencies = [ - "bitflags 2.9.4", + "bitflags 2.10.0", "bytes", "futures-util", "http", @@ -5249,7 +5210,7 @@ checksum = "81383ab64e72a7a8b8e13130c49e3dab29def6d0c7d76a03087b3cf71c5c6903" dependencies = [ "proc-macro2", "quote", - "syn 2.0.106", + "syn 2.0.110", ] [[package]] @@ -5279,9 +5240,9 @@ checksum = "e421abadd41a4225275504ea4d6566923418b7f05506fbc9c0fe86ba7396114b" [[package]] name = "typenum" -version = "1.18.0" +version = "1.19.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1dccffe3ce07af9386bfd29e80c0ab1a8205a2fc34e4bcd40364df902cfa8f3f" +checksum = "562d481066bde0658276a35467c4af00bdc6ee726305698a55b86e61d7ad82bb" [[package]] name = "ucd-trie" @@ -5309,9 +5270,9 @@ checksum = "eaea85b334db583fe3274d12b4cd1880032beab409c0d774be044d4480ab9a94" [[package]] name = "unicode-ident" -version = "1.0.18" +version = "1.0.22" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5a5f39404a5da50712a4c1eecf25e90dd62b613502b7e925fd4e4d19b5c96512" +checksum = "9312f7c4f6ff9069b165498234ce8be658059c6728633667c526e27dc2cf1df5" [[package]] name = "unicode-segmentation" @@ -5386,19 +5347,19 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ccf3ec651a847eb01de73ccad15eb7d99f80485de043efb2f370cd654f4ea44b" [[package]] -name = "wasi" -version = "0.14.4+wasi-0.2.4" +name = "wasip2" +version = "1.0.1+wasi-0.2.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "88a5f4a424faf49c3c2c344f166f0662341d470ea185e939657aaff130f0ec4a" +checksum = "0562428422c63773dad2c345a1882263bbf4d65cf3f42e90921f787ef5ad58e7" dependencies = [ "wit-bindgen", ] [[package]] name = "wasm-bindgen" -version = "0.2.101" +version = "0.2.105" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7e14915cadd45b529bb8d1f343c4ed0ac1de926144b746e2710f9cd05df6603b" +checksum = "da95793dfc411fbbd93f5be7715b0578ec61fe87cb1a42b12eb625caa5c5ea60" dependencies = [ "cfg-if", "once_cell", @@ -5407,25 +5368,11 @@ dependencies = [ "wasm-bindgen-shared", ] -[[package]] -name = "wasm-bindgen-backend" -version = "0.2.101" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e28d1ba982ca7923fd01448d5c30c6864d0a14109560296a162f80f305fb93bb" -dependencies = [ - "bumpalo", - "log", - "proc-macro2", - "quote", - "syn 2.0.106", - "wasm-bindgen-shared", -] - [[package]] name = "wasm-bindgen-futures" -version = "0.4.51" +version = "0.4.55" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0ca85039a9b469b38336411d6d6ced91f3fc87109a2a27b0c197663f5144dffe" +checksum = "551f88106c6d5e7ccc7cd9a16f312dd3b5d36ea8b4954304657d5dfba115d4a0" dependencies = [ "cfg-if", "js-sys", @@ -5436,9 +5383,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro" -version = "0.2.101" +version = "0.2.105" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7c3d463ae3eff775b0c45df9da45d68837702ac35af998361e2c84e7c5ec1b0d" +checksum = "04264334509e04a7bf8690f2384ef5265f05143a4bff3889ab7a3269adab59c2" dependencies = [ "quote", "wasm-bindgen-macro-support", @@ -5446,22 +5393,22 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro-support" -version = "0.2.101" +version = "0.2.105" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7bb4ce89b08211f923caf51d527662b75bdc9c9c7aab40f86dcb9fb85ac552aa" +checksum = "420bc339d9f322e562942d52e115d57e950d12d88983a14c79b86859ee6c7ebc" dependencies = [ + "bumpalo", "proc-macro2", "quote", - "syn 2.0.106", - "wasm-bindgen-backend", + "syn 2.0.110", "wasm-bindgen-shared", ] [[package]] name = "wasm-bindgen-shared" -version = "0.2.101" +version = "0.2.105" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f143854a3b13752c6950862c906306adb27c7e839f7414cec8fea35beab624c1" +checksum = "76f218a38c84bcb33c25ec7059b07847d465ce0e0a76b995e134a45adcb6af76" dependencies = [ "unicode-ident", ] @@ -5481,9 +5428,9 @@ dependencies = [ [[package]] name = "web-sys" -version = "0.3.78" +version = "0.3.82" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "77e4b637749ff0d92b8fad63aa1f7cff3cbe125fd49c175cd6345e7272638b12" +checksum = "3a1f95c0d03a47f4ae1f7a64643a6bb97465d9b740f0fa8f90ea33915c99a9a1" dependencies = [ "js-sys", "wasm-bindgen", @@ -5501,76 +5448,70 @@ dependencies = [ [[package]] name = "webpki-roots" -version = "1.0.2" +version = "1.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7e8983c3ab33d6fb807cfcdad2491c4ea8cbc8ed839181c7dfd9c67c83e261b2" +checksum = "b2878ef029c47c6e8cf779119f20fcf52bde7ad42a731b2a304bc221df17571e" dependencies = [ "rustls-pki-types", ] [[package]] name = "windows-core" -version = "0.61.2" +version = "0.62.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c0fdd3ddb90610c7638aa2b3a3ab2904fb9e5cdbecc643ddb3647212781c4ae3" +checksum = "b8e83a14d34d0623b51dce9581199302a221863196a1dde71a7663a4c2be9deb" dependencies = [ "windows-implement", "windows-interface", - "windows-link 0.1.3", + "windows-link", "windows-result", "windows-strings", ] [[package]] name = "windows-implement" -version = "0.60.0" +version = "0.60.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a47fddd13af08290e67f4acabf4b459f647552718f683a7b415d290ac744a836" +checksum = "053e2e040ab57b9dc951b72c264860db7eb3b0200ba345b4e4c3b14f67855ddf" dependencies = [ "proc-macro2", "quote", - "syn 2.0.106", + "syn 2.0.110", ] [[package]] name = "windows-interface" -version = "0.59.1" +version = "0.59.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bd9211b69f8dcdfa817bfd14bf1c97c9188afa36f4750130fcdf3f400eca9fa8" +checksum = "3f316c4a2570ba26bbec722032c4099d8c8bc095efccdc15688708623367e358" dependencies = [ "proc-macro2", "quote", - "syn 2.0.106", + "syn 2.0.110", ] [[package]] name = "windows-link" -version = "0.1.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5e6ad25900d524eaabdbbb96d20b4311e1e7ae1699af4fb28c17ae66c80d798a" - -[[package]] -name = "windows-link" -version = "0.2.0" +version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "45e46c0661abb7180e7b9c281db115305d49ca1709ab8242adf09666d2173c65" +checksum = "f0805222e57f7521d6a62e36fa9163bc891acd422f971defe97d64e70d0a4fe5" [[package]] name = "windows-result" -version = "0.3.4" +version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "56f42bd332cc6c8eac5af113fc0c1fd6a8fd2aa08a0119358686e5160d0586c6" +checksum = "7781fa89eaf60850ac3d2da7af8e5242a5ea78d1a11c49bf2910bb5a73853eb5" dependencies = [ - "windows-link 0.1.3", + "windows-link", ] [[package]] name = "windows-strings" -version = "0.4.2" +version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "56e6c93f3a0c3b36176cb1327a4958a0353d5d166c2a35cb268ace15e91d3b57" +checksum = "7837d08f69c77cf6b07689544538e017c1bfcf57e34b4c0ff58e6c2cd3b37091" dependencies = [ - "windows-link 0.1.3", + "windows-link", ] [[package]] @@ -5582,31 +5523,22 @@ dependencies = [ "windows-targets 0.52.6", ] -[[package]] -name = "windows-sys" -version = "0.59.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e38bc4d79ed67fd075bcc251a1c39b32a1776bbe92e5bef1f0bf1f8c531853b" -dependencies = [ - "windows-targets 0.52.6", -] - [[package]] name = "windows-sys" version = "0.60.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f2f500e4d28234f72040990ec9d39e3a6b950f9f22d3dba18416c35882612bcb" dependencies = [ - "windows-targets 0.53.3", + "windows-targets 0.53.5", ] [[package]] name = "windows-sys" -version = "0.61.0" +version = "0.61.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e201184e40b2ede64bc2ea34968b28e33622acdbbf37104f0e4a33f7abe657aa" +checksum = "ae137229bcbd6cdf0f7b80a31df61766145077ddf49416a728b02cb3921ff3fc" dependencies = [ - "windows-link 0.2.0", + "windows-link", ] [[package]] @@ -5627,19 +5559,19 @@ dependencies = [ [[package]] name = "windows-targets" -version = "0.53.3" +version = "0.53.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d5fe6031c4041849d7c496a8ded650796e7b6ecc19df1a431c1a363342e5dc91" +checksum = "4945f9f551b88e0d65f3db0bc25c33b8acea4d9e41163edf90dcd0b19f9069f3" dependencies = [ - "windows-link 0.1.3", - "windows_aarch64_gnullvm 0.53.0", - "windows_aarch64_msvc 0.53.0", - "windows_i686_gnu 0.53.0", - "windows_i686_gnullvm 0.53.0", - "windows_i686_msvc 0.53.0", - "windows_x86_64_gnu 0.53.0", - "windows_x86_64_gnullvm 0.53.0", - "windows_x86_64_msvc 0.53.0", + "windows-link", + "windows_aarch64_gnullvm 0.53.1", + "windows_aarch64_msvc 0.53.1", + "windows_i686_gnu 0.53.1", + "windows_i686_gnullvm 0.53.1", + "windows_i686_msvc 0.53.1", + "windows_x86_64_gnu 0.53.1", + "windows_x86_64_gnullvm 0.53.1", + "windows_x86_64_msvc 0.53.1", ] [[package]] @@ -5650,9 +5582,9 @@ checksum = "32a4622180e7a0ec044bb555404c800bc9fd9ec262ec147edd5989ccd0c02cd3" [[package]] name = "windows_aarch64_gnullvm" -version = "0.53.0" +version = "0.53.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "86b8d5f90ddd19cb4a147a5fa63ca848db3df085e25fee3cc10b39b6eebae764" +checksum = "a9d8416fa8b42f5c947f8482c43e7d89e73a173cead56d044f6a56104a6d1b53" [[package]] name = "windows_aarch64_msvc" @@ -5662,9 +5594,9 @@ checksum = "09ec2a7bb152e2252b53fa7803150007879548bc709c039df7627cabbd05d469" [[package]] name = "windows_aarch64_msvc" -version = "0.53.0" +version = "0.53.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c7651a1f62a11b8cbd5e0d42526e55f2c99886c77e007179efff86c2b137e66c" +checksum = "b9d782e804c2f632e395708e99a94275910eb9100b2114651e04744e9b125006" [[package]] name = "windows_i686_gnu" @@ -5674,9 +5606,9 @@ checksum = "8e9b5ad5ab802e97eb8e295ac6720e509ee4c243f69d781394014ebfe8bbfa0b" [[package]] name = "windows_i686_gnu" -version = "0.53.0" +version = "0.53.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c1dc67659d35f387f5f6c479dc4e28f1d4bb90ddd1a5d3da2e5d97b42d6272c3" +checksum = "960e6da069d81e09becb0ca57a65220ddff016ff2d6af6a223cf372a506593a3" [[package]] name = "windows_i686_gnullvm" @@ -5686,9 +5618,9 @@ checksum = "0eee52d38c090b3caa76c563b86c3a4bd71ef1a819287c19d586d7334ae8ed66" [[package]] name = "windows_i686_gnullvm" -version = "0.53.0" +version = "0.53.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9ce6ccbdedbf6d6354471319e781c0dfef054c81fbc7cf83f338a4296c0cae11" +checksum = "fa7359d10048f68ab8b09fa71c3daccfb0e9b559aed648a8f95469c27057180c" [[package]] name = "windows_i686_msvc" @@ -5698,9 +5630,9 @@ checksum = "240948bc05c5e7c6dabba28bf89d89ffce3e303022809e73deaefe4f6ec56c66" [[package]] name = "windows_i686_msvc" -version = "0.53.0" +version = "0.53.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "581fee95406bb13382d2f65cd4a908ca7b1e4c2f1917f143ba16efe98a589b5d" +checksum = "1e7ac75179f18232fe9c285163565a57ef8d3c89254a30685b57d83a38d326c2" [[package]] name = "windows_x86_64_gnu" @@ -5710,9 +5642,9 @@ checksum = "147a5c80aabfbf0c7d901cb5895d1de30ef2907eb21fbbab29ca94c5b08b1a78" [[package]] name = "windows_x86_64_gnu" -version = "0.53.0" +version = "0.53.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2e55b5ac9ea33f2fc1716d1742db15574fd6fc8dadc51caab1c16a3d3b4190ba" +checksum = "9c3842cdd74a865a8066ab39c8a7a473c0778a3f29370b5fd6b4b9aa7df4a499" [[package]] name = "windows_x86_64_gnullvm" @@ -5722,9 +5654,9 @@ checksum = "24d5b23dc417412679681396f2b49f3de8c1473deb516bd34410872eff51ed0d" [[package]] name = "windows_x86_64_gnullvm" -version = "0.53.0" +version = "0.53.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0a6e035dd0599267ce1ee132e51c27dd29437f63325753051e71dd9e42406c57" +checksum = "0ffa179e2d07eee8ad8f57493436566c7cc30ac536a3379fdf008f47f6bb7ae1" [[package]] name = "windows_x86_64_msvc" @@ -5734,9 +5666,9 @@ checksum = "589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec" [[package]] name = "windows_x86_64_msvc" -version = "0.53.0" +version = "0.53.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "271414315aff87387382ec3d271b52d7ae78726f5d44ac98b4f4030c91880486" +checksum = "d6bbff5f0aada427a1e5a6da5f1f98158182f26556f345ac9e04d36d0ebed650" [[package]] name = "winnow" @@ -5749,15 +5681,15 @@ dependencies = [ [[package]] name = "wit-bindgen" -version = "0.45.1" +version = "0.46.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5c573471f125075647d03df72e026074b7203790d41351cd6edc96f46bcccd36" +checksum = "f17a85883d4e6d00e8a97c586de764dabcc06133f7f1d55dce5cdc070ad7fe59" [[package]] name = "writeable" -version = "0.6.1" +version = "0.6.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ea2f10b9bb0928dfb1b42b65e1f9e36f7f54dbdf08457afefb38afcdec4fa2bb" +checksum = "9edde0db4769d2dc68579893f2306b26c6ecfbe0ef499b013d731b7b9247e0b9" [[package]] name = "wyz" @@ -5770,28 +5702,21 @@ dependencies = [ [[package]] name = "yaml-rust2" -version = "0.10.3" +version = "0.10.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4ce2a4ff45552406d02501cea6c18d8a7e50228e7736a872951fe2fe75c91be7" +checksum = "2462ea039c445496d8793d052e13787f2b90e750b833afee748e601c17621ed9" dependencies = [ "arraydeque", "encoding_rs", "hashlink", ] -[[package]] -name = "yansi" -version = "1.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cfe53a6657fd280eaa890a3bc59152892ffa3e30101319d168b781ed6529b049" - [[package]] name = "yoke" -version = "0.8.0" +version = "0.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5f41bb01b8226ef4bfd589436a297c53d118f65921786300e427be8d487695cc" +checksum = "72d6e5c6afb84d73944e5cedb052c4680d5657337201555f9f2a16b7406d4954" dependencies = [ - "serde", "stable_deref_trait", "yoke-derive", "zerofrom", @@ -5799,13 +5724,13 @@ dependencies = [ [[package]] name = "yoke-derive" -version = "0.8.0" +version = "0.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "38da3c9736e16c5d3c8c597a9aaa5d1fa565d0532ae05e27c24aa62fb32c0ab6" +checksum = "b659052874eb698efe5b9e8cf382204678a0086ebf46982b79d6ca3182927e5d" dependencies = [ "proc-macro2", "quote", - "syn 2.0.106", + "syn 2.0.110", "synstructure", ] @@ -5826,7 +5751,7 @@ checksum = "88d2b8d9c68ad2b9e4340d7832716a4d21a22a1154777ad56ea55c51a9cf3831" dependencies = [ "proc-macro2", "quote", - "syn 2.0.106", + "syn 2.0.110", ] [[package]] @@ -5846,15 +5771,15 @@ checksum = "d71e5d6e06ab090c67b5e44993ec16b72dcbaabc526db883a360057678b48502" dependencies = [ "proc-macro2", "quote", - "syn 2.0.106", + "syn 2.0.110", "synstructure", ] [[package]] name = "zeroize" -version = "1.8.1" +version = "1.8.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ced3678a2879b30306d323f4542626697a464a97c0a07c9aebf7ebca65cd4dde" +checksum = "b97154e67e32c85465826e8bcc1c59429aaaf107c1e4a9e53c8d8ccd5eff88d0" dependencies = [ "zeroize_derive", ] @@ -5867,14 +5792,14 @@ checksum = "ce36e65b0d2999d2aafac989fb249189a141aee1f53c612c1f37d72631959f69" dependencies = [ "proc-macro2", "quote", - "syn 2.0.106", + "syn 2.0.110", ] [[package]] name = "zerotrie" -version = "0.2.2" +version = "0.2.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "36f0bbd478583f79edad978b407914f61b2972f5af6fa089686016be8f9af595" +checksum = "2a59c17a5562d507e4b54960e8569ebee33bee890c70aa3fe7b97e85a9fd7851" dependencies = [ "displaydoc", "yoke", @@ -5883,9 +5808,9 @@ dependencies = [ [[package]] name = "zerovec" -version = "0.11.4" +version = "0.11.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e7aa2bd55086f1ab526693ecbe444205da57e25f4489879da80635a46d90e73b" +checksum = "6c28719294829477f525be0186d13efa9a3c602f7ec202ca9e353d310fb9a002" dependencies = [ "yoke", "zerofrom", @@ -5894,13 +5819,13 @@ dependencies = [ [[package]] name = "zerovec-derive" -version = "0.11.1" +version = "0.11.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5b96237efa0c878c64bd89c436f661be4e46b2f3eff1ebb976f7ef2321d2f58f" +checksum = "eadce39539ca5cb3985590102671f2567e659fca9666581ad3411d59207951f3" dependencies = [ "proc-macro2", "quote", - "syn 2.0.106", + "syn 2.0.110", ] [[package]] @@ -5925,7 +5850,6 @@ dependencies = [ "alloy-primitives", "alloy-rlp", "alloy-trie 0.9.1", - "k256", "reth-chainspec", "reth-errors", "reth-ethereum-primitives", @@ -5934,7 +5858,6 @@ dependencies = [ "reth-primitives-traits", "reth-stateless", "reth-trie-common", - "revm-bytecode", "risc0-ethereum-trie", "serde", "serde_with", diff --git a/guests/stateless-client/Cargo.toml b/guests/stateless-client/Cargo.toml index 30eb5db4b..02ecd6ab4 100644 --- a/guests/stateless-client/Cargo.toml +++ b/guests/stateless-client/Cargo.toml @@ -11,14 +11,15 @@ lto = "fat" [dependencies] blst = { version = "=0.3.15" } -c-kzg = { version = "=2.1.1" } -revm = { version = "29.0.1", default-features = false, features = [ +c-kzg = { version = "=2.1.5" } +revm = { version = "31.0.1", default-features = false, features = [ "std", "c-kzg", "portable", "blst", "bn", ] } +revm-context-interface = "~12.0" risc0-zkvm = "3.0.3" sha2 = { version = "=0.10.9" } substrate-bn = { version = "=0.6.0" } @@ -31,7 +32,7 @@ unsafe-pre-merge = ["zeth-core/unsafe-pre-merge"] [patch.crates-io] blst = { git = "https://github.com/risc0/blst", tag = "v0.3.15-risczero.1" } -c-kzg = { git = "https://github.com/risc0/c-kzg-4844", tag = "c-kzg/v2.1.1-risczero.1" } +c-kzg = { git = "https://github.com/risc0/c-kzg-4844", tag = "v2.1.5-risczero.0" } crypto-bigint = { git = "https://github.com/risc0/RustCrypto-crypto-bigint", tag = "v0.5.5-risczero.0" } k256 = { git = "https://github.com/risc0/RustCrypto-elliptic-curves", tag = "k256/v0.13.4-risczero.1" } sha2 = { git = "https://github.com/risc0/RustCrypto-hashes", tag = "sha2-v0.10.9-risczero.0" } From 02c011537cb53e85941c93d2f6b8b53c5b876f61 Mon Sep 17 00:00:00 2001 From: Wolfgang Welz Date: Tue, 11 Nov 2025 16:08:57 +0100 Subject: [PATCH 06/22] update CHANGELOG.md --- CHANGELOG.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 7c55dc37b..b4168c4be 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,6 +7,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] +- Updated core dependency to **Reth v1.9.1**, which includes support for the upcoming Osaka hardfork. + ### ⚡️ Features - New feature `unsafe-pre-merge` must be enabled to prove pre-merge blocks. From 9540f32c7ce41a92d1de1a7223b9f4f5808a3175 Mon Sep 17 00:00:00 2001 From: Wolfgang Welz Date: Wed, 12 Nov 2025 12:12:11 +0100 Subject: [PATCH 07/22] resolve revm-context-interface --- Cargo.lock | 5 ++--- crates/rpc-proxy/Cargo.toml | 1 - guests/stateless-client/Cargo.lock | 5 ++--- guests/stateless-client/Cargo.toml | 1 - 4 files changed, 4 insertions(+), 8 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 5b7aea938..cafd537f6 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -261,9 +261,9 @@ dependencies = [ [[package]] name = "alloy-chains" -version = "0.2.17" +version = "0.2.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6068f356948cd84b5ad9ac30c50478e433847f14a50714d2b68f15d052724049" +checksum = "bfaa9ea039a6f9304b4a593d780b1f23e1ae183acdee938b11b38795acacc9f1" dependencies = [ "alloy-primitives", "alloy-rlp", @@ -7418,7 +7418,6 @@ dependencies = [ "reth-primitives-traits", "reth-stateless", "revm", - "revm-context-interface", "risc0-ethereum-trie", "serde", "serde_json", diff --git a/crates/rpc-proxy/Cargo.toml b/crates/rpc-proxy/Cargo.toml index 2f60c40e8..6499de56d 100644 --- a/crates/rpc-proxy/Cargo.toml +++ b/crates/rpc-proxy/Cargo.toml @@ -22,7 +22,6 @@ reth-evm-ethereum = { workspace = true } reth-primitives-traits = { workspace = true } reth-stateless = { workspace = true } revm = { workspace = true, features = ["c-kzg"] } -revm-context-interface = "~12.0" risc0-ethereum-trie = { workspace = true, features = ["orphan"] } serde = { workspace = true } serde_json = { workspace = true } diff --git a/guests/stateless-client/Cargo.lock b/guests/stateless-client/Cargo.lock index ee1dd04dc..ea6dc020f 100644 --- a/guests/stateless-client/Cargo.lock +++ b/guests/stateless-client/Cargo.lock @@ -31,9 +31,9 @@ checksum = "683d7910e743518b0e34f1186f92494becacb047c7b6bf616c96772180fef923" [[package]] name = "alloy-chains" -version = "0.2.17" +version = "0.2.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6068f356948cd84b5ad9ac30c50478e433847f14a50714d2b68f15d052724049" +checksum = "bfaa9ea039a6f9304b4a593d780b1f23e1ae183acdee938b11b38795acacc9f1" dependencies = [ "alloy-primitives", "alloy-rlp", @@ -4808,7 +4808,6 @@ dependencies = [ "blst", "c-kzg", "revm", - "revm-context-interface", "risc0-zkvm", "sha2", "substrate-bn", diff --git a/guests/stateless-client/Cargo.toml b/guests/stateless-client/Cargo.toml index 02ecd6ab4..ff8df7224 100644 --- a/guests/stateless-client/Cargo.toml +++ b/guests/stateless-client/Cargo.toml @@ -19,7 +19,6 @@ revm = { version = "31.0.1", default-features = false, features = [ "blst", "bn", ] } -revm-context-interface = "~12.0" risc0-zkvm = "3.0.3" sha2 = { version = "=0.10.9" } substrate-bn = { version = "=0.6.0" } From c0e02fa6c9e308a323ff7064ecf558e4e1493065 Mon Sep 17 00:00:00 2001 From: Wolfgang Welz Date: Tue, 18 Nov 2025 20:00:52 +0100 Subject: [PATCH 08/22] update reth to v1.9.3 --- Cargo.lock | 104 ++++++++++++++--------------- Cargo.toml | 20 +++--- guests/stateless-client/Cargo.lock | 104 ++++++++++++++--------------- guests/stateless-client/Cargo.toml | 2 +- 4 files changed, 115 insertions(+), 115 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index cafd537f6..1955be857 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -4606,8 +4606,8 @@ dependencies = [ [[package]] name = "reth-chainspec" -version = "1.9.1" -source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.9.1#3afe69a5738459a7cb5f46c598c7f541a1510f32" +version = "1.9.3" +source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.9.3#27a8c0f5a6dfb27dea84c5751776ecabdd069646" dependencies = [ "alloy-chains", "alloy-consensus", @@ -4626,8 +4626,8 @@ dependencies = [ [[package]] name = "reth-codecs" -version = "1.9.1" -source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.9.1#3afe69a5738459a7cb5f46c598c7f541a1510f32" +version = "1.9.3" +source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.9.3#27a8c0f5a6dfb27dea84c5751776ecabdd069646" dependencies = [ "alloy-consensus", "alloy-eips", @@ -4644,8 +4644,8 @@ dependencies = [ [[package]] name = "reth-codecs-derive" -version = "1.9.1" -source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.9.1#3afe69a5738459a7cb5f46c598c7f541a1510f32" +version = "1.9.3" +source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.9.3#27a8c0f5a6dfb27dea84c5751776ecabdd069646" dependencies = [ "proc-macro2", "quote", @@ -4654,8 +4654,8 @@ dependencies = [ [[package]] name = "reth-consensus" -version = "1.9.1" -source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.9.1#3afe69a5738459a7cb5f46c598c7f541a1510f32" +version = "1.9.3" +source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.9.3#27a8c0f5a6dfb27dea84c5751776ecabdd069646" dependencies = [ "alloy-consensus", "alloy-primitives", @@ -4667,8 +4667,8 @@ dependencies = [ [[package]] name = "reth-consensus-common" -version = "1.9.1" -source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.9.1#3afe69a5738459a7cb5f46c598c7f541a1510f32" +version = "1.9.3" +source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.9.3#27a8c0f5a6dfb27dea84c5751776ecabdd069646" dependencies = [ "alloy-consensus", "alloy-eips", @@ -4679,8 +4679,8 @@ dependencies = [ [[package]] name = "reth-db-models" -version = "1.9.1" -source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.9.1#3afe69a5738459a7cb5f46c598c7f541a1510f32" +version = "1.9.3" +source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.9.3#27a8c0f5a6dfb27dea84c5751776ecabdd069646" dependencies = [ "alloy-eips", "alloy-primitives", @@ -4691,8 +4691,8 @@ dependencies = [ [[package]] name = "reth-errors" -version = "1.9.1" -source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.9.1#3afe69a5738459a7cb5f46c598c7f541a1510f32" +version = "1.9.3" +source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.9.3#27a8c0f5a6dfb27dea84c5751776ecabdd069646" dependencies = [ "reth-consensus", "reth-execution-errors", @@ -4702,8 +4702,8 @@ dependencies = [ [[package]] name = "reth-ethereum-consensus" -version = "1.9.1" -source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.9.1#3afe69a5738459a7cb5f46c598c7f541a1510f32" +version = "1.9.3" +source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.9.3#27a8c0f5a6dfb27dea84c5751776ecabdd069646" dependencies = [ "alloy-consensus", "alloy-eips", @@ -4718,8 +4718,8 @@ dependencies = [ [[package]] name = "reth-ethereum-forks" -version = "1.9.1" -source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.9.1#3afe69a5738459a7cb5f46c598c7f541a1510f32" +version = "1.9.3" +source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.9.3#27a8c0f5a6dfb27dea84c5751776ecabdd069646" dependencies = [ "alloy-eip2124", "alloy-hardforks", @@ -4731,8 +4731,8 @@ dependencies = [ [[package]] name = "reth-ethereum-primitives" -version = "1.9.1" -source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.9.1#3afe69a5738459a7cb5f46c598c7f541a1510f32" +version = "1.9.3" +source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.9.3#27a8c0f5a6dfb27dea84c5751776ecabdd069646" dependencies = [ "alloy-consensus", "alloy-eips", @@ -4749,8 +4749,8 @@ dependencies = [ [[package]] name = "reth-evm" -version = "1.9.1" -source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.9.1#3afe69a5738459a7cb5f46c598c7f541a1510f32" +version = "1.9.3" +source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.9.3#27a8c0f5a6dfb27dea84c5751776ecabdd069646" dependencies = [ "alloy-consensus", "alloy-eips", @@ -4770,8 +4770,8 @@ dependencies = [ [[package]] name = "reth-evm-ethereum" -version = "1.9.1" -source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.9.1#3afe69a5738459a7cb5f46c598c7f541a1510f32" +version = "1.9.3" +source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.9.3#27a8c0f5a6dfb27dea84c5751776ecabdd069646" dependencies = [ "alloy-consensus", "alloy-eips", @@ -4791,8 +4791,8 @@ dependencies = [ [[package]] name = "reth-execution-errors" -version = "1.9.1" -source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.9.1#3afe69a5738459a7cb5f46c598c7f541a1510f32" +version = "1.9.3" +source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.9.3#27a8c0f5a6dfb27dea84c5751776ecabdd069646" dependencies = [ "alloy-evm", "alloy-primitives", @@ -4804,8 +4804,8 @@ dependencies = [ [[package]] name = "reth-execution-types" -version = "1.9.1" -source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.9.1#3afe69a5738459a7cb5f46c598c7f541a1510f32" +version = "1.9.3" +source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.9.3#27a8c0f5a6dfb27dea84c5751776ecabdd069646" dependencies = [ "alloy-consensus", "alloy-eips", @@ -4822,8 +4822,8 @@ dependencies = [ [[package]] name = "reth-network-peers" -version = "1.9.1" -source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.9.1#3afe69a5738459a7cb5f46c598c7f541a1510f32" +version = "1.9.3" +source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.9.3#27a8c0f5a6dfb27dea84c5751776ecabdd069646" dependencies = [ "alloy-primitives", "alloy-rlp", @@ -4835,8 +4835,8 @@ dependencies = [ [[package]] name = "reth-primitives-traits" -version = "1.9.1" -source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.9.1#3afe69a5738459a7cb5f46c598c7f541a1510f32" +version = "1.9.3" +source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.9.3#27a8c0f5a6dfb27dea84c5751776ecabdd069646" dependencies = [ "alloy-consensus", "alloy-eips", @@ -4862,8 +4862,8 @@ dependencies = [ [[package]] name = "reth-prune-types" -version = "1.9.1" -source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.9.1#3afe69a5738459a7cb5f46c598c7f541a1510f32" +version = "1.9.3" +source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.9.3#27a8c0f5a6dfb27dea84c5751776ecabdd069646" dependencies = [ "alloy-primitives", "derive_more", @@ -4874,8 +4874,8 @@ dependencies = [ [[package]] name = "reth-revm" -version = "1.9.1" -source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.9.1#3afe69a5738459a7cb5f46c598c7f541a1510f32" +version = "1.9.3" +source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.9.3#27a8c0f5a6dfb27dea84c5751776ecabdd069646" dependencies = [ "alloy-primitives", "reth-primitives-traits", @@ -4886,8 +4886,8 @@ dependencies = [ [[package]] name = "reth-stages-types" -version = "1.9.1" -source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.9.1#3afe69a5738459a7cb5f46c598c7f541a1510f32" +version = "1.9.3" +source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.9.3#27a8c0f5a6dfb27dea84c5751776ecabdd069646" dependencies = [ "alloy-primitives", "bytes", @@ -4897,8 +4897,8 @@ dependencies = [ [[package]] name = "reth-stateless" -version = "1.9.1" -source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.9.1#3afe69a5738459a7cb5f46c598c7f541a1510f32" +version = "1.9.3" +source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.9.3#27a8c0f5a6dfb27dea84c5751776ecabdd069646" dependencies = [ "alloy-consensus", "alloy-primitives", @@ -4924,8 +4924,8 @@ dependencies = [ [[package]] name = "reth-static-file-types" -version = "1.9.1" -source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.9.1#3afe69a5738459a7cb5f46c598c7f541a1510f32" +version = "1.9.3" +source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.9.3#27a8c0f5a6dfb27dea84c5751776ecabdd069646" dependencies = [ "alloy-primitives", "derive_more", @@ -4935,8 +4935,8 @@ dependencies = [ [[package]] name = "reth-storage-api" -version = "1.9.1" -source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.9.1#3afe69a5738459a7cb5f46c598c7f541a1510f32" +version = "1.9.3" +source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.9.3#27a8c0f5a6dfb27dea84c5751776ecabdd069646" dependencies = [ "alloy-consensus", "alloy-eips", @@ -4957,8 +4957,8 @@ dependencies = [ [[package]] name = "reth-storage-errors" -version = "1.9.1" -source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.9.1#3afe69a5738459a7cb5f46c598c7f541a1510f32" +version = "1.9.3" +source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.9.3#27a8c0f5a6dfb27dea84c5751776ecabdd069646" dependencies = [ "alloy-eips", "alloy-primitives", @@ -4973,8 +4973,8 @@ dependencies = [ [[package]] name = "reth-trie-common" -version = "1.9.1" -source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.9.1#3afe69a5738459a7cb5f46c598c7f541a1510f32" +version = "1.9.3" +source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.9.3#27a8c0f5a6dfb27dea84c5751776ecabdd069646" dependencies = [ "alloy-consensus", "alloy-primitives", @@ -4995,8 +4995,8 @@ dependencies = [ [[package]] name = "reth-trie-sparse" -version = "1.9.1" -source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.9.1#3afe69a5738459a7cb5f46c598c7f541a1510f32" +version = "1.9.3" +source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.9.3#27a8c0f5a6dfb27dea84c5751776ecabdd069646" dependencies = [ "alloy-primitives", "alloy-rlp", @@ -5011,8 +5011,8 @@ dependencies = [ [[package]] name = "reth-zstd-compressors" -version = "1.9.1" -source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.9.1#3afe69a5738459a7cb5f46c598c7f541a1510f32" +version = "1.9.3" +source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.9.3#27a8c0f5a6dfb27dea84c5751776ecabdd069646" dependencies = [ "zstd", ] diff --git a/Cargo.toml b/Cargo.toml index b292164f1..e18358ae6 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -19,18 +19,18 @@ risc0-zkvm = "3.0.3" risc0-ethereum-trie = { git = "https://github.com/risc0/risc0-ethereum.git", tag = "v3.0.1" } # reth -reth-primitives-traits = { git = "https://github.com/paradigmxyz/reth.git", tag = "v1.9.1" } -reth-ethereum-primitives = { git = "https://github.com/paradigmxyz/reth.git", tag = "v1.9.1" } -reth-stateless = { git = "https://github.com/paradigmxyz/reth.git", tag = "v1.9.1" } -reth-chainspec = { git = "https://github.com/paradigmxyz/reth.git", tag = "v1.9.1" } -reth-errors = { git = "https://github.com/paradigmxyz/reth.git", tag = "v1.9.1" } -reth-evm = { git = "https://github.com/paradigmxyz/reth.git", tag = "v1.9.1" } -reth-evm-ethereum = { git = "https://github.com/paradigmxyz/reth.git", tag = "v1.9.1" } -reth-network-peers = { git = "https://github.com/paradigmxyz/reth.git", tag = "v1.9.1" } -reth-trie-common = { git = "https://github.com/paradigmxyz/reth.git", tag = "v1.9.1" } +reth-primitives-traits = { git = "https://github.com/paradigmxyz/reth.git", tag = "v1.9.3" } +reth-ethereum-primitives = { git = "https://github.com/paradigmxyz/reth.git", tag = "v1.9.3" } +reth-stateless = { git = "https://github.com/paradigmxyz/reth.git", tag = "v1.9.3" } +reth-chainspec = { git = "https://github.com/paradigmxyz/reth.git", tag = "v1.9.3" } +reth-errors = { git = "https://github.com/paradigmxyz/reth.git", tag = "v1.9.3" } +reth-evm = { git = "https://github.com/paradigmxyz/reth.git", tag = "v1.9.3" } +reth-evm-ethereum = { git = "https://github.com/paradigmxyz/reth.git", tag = "v1.9.3" } +reth-network-peers = { git = "https://github.com/paradigmxyz/reth.git", tag = "v1.9.3" } +reth-trie-common = { git = "https://github.com/paradigmxyz/reth.git", tag = "v1.9.3" } # revm -revm = { version = "31.0.1", default-features = false } +revm = { version = "31.0.2", default-features = false } # eth alloy-chains = { version = "0.2.5", default-features = false } diff --git a/guests/stateless-client/Cargo.lock b/guests/stateless-client/Cargo.lock index ea6dc020f..e81711b96 100644 --- a/guests/stateless-client/Cargo.lock +++ b/guests/stateless-client/Cargo.lock @@ -3392,8 +3392,8 @@ dependencies = [ [[package]] name = "reth-chainspec" -version = "1.9.1" -source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.9.1#3afe69a5738459a7cb5f46c598c7f541a1510f32" +version = "1.9.3" +source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.9.3#27a8c0f5a6dfb27dea84c5751776ecabdd069646" dependencies = [ "alloy-chains", "alloy-consensus", @@ -3412,8 +3412,8 @@ dependencies = [ [[package]] name = "reth-codecs" -version = "1.9.1" -source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.9.1#3afe69a5738459a7cb5f46c598c7f541a1510f32" +version = "1.9.3" +source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.9.3#27a8c0f5a6dfb27dea84c5751776ecabdd069646" dependencies = [ "alloy-consensus", "alloy-eips", @@ -3430,8 +3430,8 @@ dependencies = [ [[package]] name = "reth-codecs-derive" -version = "1.9.1" -source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.9.1#3afe69a5738459a7cb5f46c598c7f541a1510f32" +version = "1.9.3" +source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.9.3#27a8c0f5a6dfb27dea84c5751776ecabdd069646" dependencies = [ "proc-macro2", "quote", @@ -3440,8 +3440,8 @@ dependencies = [ [[package]] name = "reth-consensus" -version = "1.9.1" -source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.9.1#3afe69a5738459a7cb5f46c598c7f541a1510f32" +version = "1.9.3" +source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.9.3#27a8c0f5a6dfb27dea84c5751776ecabdd069646" dependencies = [ "alloy-consensus", "alloy-primitives", @@ -3453,8 +3453,8 @@ dependencies = [ [[package]] name = "reth-consensus-common" -version = "1.9.1" -source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.9.1#3afe69a5738459a7cb5f46c598c7f541a1510f32" +version = "1.9.3" +source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.9.3#27a8c0f5a6dfb27dea84c5751776ecabdd069646" dependencies = [ "alloy-consensus", "alloy-eips", @@ -3465,8 +3465,8 @@ dependencies = [ [[package]] name = "reth-db-models" -version = "1.9.1" -source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.9.1#3afe69a5738459a7cb5f46c598c7f541a1510f32" +version = "1.9.3" +source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.9.3#27a8c0f5a6dfb27dea84c5751776ecabdd069646" dependencies = [ "alloy-eips", "alloy-primitives", @@ -3477,8 +3477,8 @@ dependencies = [ [[package]] name = "reth-errors" -version = "1.9.1" -source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.9.1#3afe69a5738459a7cb5f46c598c7f541a1510f32" +version = "1.9.3" +source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.9.3#27a8c0f5a6dfb27dea84c5751776ecabdd069646" dependencies = [ "reth-consensus", "reth-execution-errors", @@ -3488,8 +3488,8 @@ dependencies = [ [[package]] name = "reth-ethereum-consensus" -version = "1.9.1" -source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.9.1#3afe69a5738459a7cb5f46c598c7f541a1510f32" +version = "1.9.3" +source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.9.3#27a8c0f5a6dfb27dea84c5751776ecabdd069646" dependencies = [ "alloy-consensus", "alloy-eips", @@ -3504,8 +3504,8 @@ dependencies = [ [[package]] name = "reth-ethereum-forks" -version = "1.9.1" -source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.9.1#3afe69a5738459a7cb5f46c598c7f541a1510f32" +version = "1.9.3" +source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.9.3#27a8c0f5a6dfb27dea84c5751776ecabdd069646" dependencies = [ "alloy-eip2124", "alloy-hardforks", @@ -3517,8 +3517,8 @@ dependencies = [ [[package]] name = "reth-ethereum-primitives" -version = "1.9.1" -source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.9.1#3afe69a5738459a7cb5f46c598c7f541a1510f32" +version = "1.9.3" +source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.9.3#27a8c0f5a6dfb27dea84c5751776ecabdd069646" dependencies = [ "alloy-consensus", "alloy-eips", @@ -3535,8 +3535,8 @@ dependencies = [ [[package]] name = "reth-evm" -version = "1.9.1" -source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.9.1#3afe69a5738459a7cb5f46c598c7f541a1510f32" +version = "1.9.3" +source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.9.3#27a8c0f5a6dfb27dea84c5751776ecabdd069646" dependencies = [ "alloy-consensus", "alloy-eips", @@ -3556,8 +3556,8 @@ dependencies = [ [[package]] name = "reth-evm-ethereum" -version = "1.9.1" -source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.9.1#3afe69a5738459a7cb5f46c598c7f541a1510f32" +version = "1.9.3" +source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.9.3#27a8c0f5a6dfb27dea84c5751776ecabdd069646" dependencies = [ "alloy-consensus", "alloy-eips", @@ -3577,8 +3577,8 @@ dependencies = [ [[package]] name = "reth-execution-errors" -version = "1.9.1" -source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.9.1#3afe69a5738459a7cb5f46c598c7f541a1510f32" +version = "1.9.3" +source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.9.3#27a8c0f5a6dfb27dea84c5751776ecabdd069646" dependencies = [ "alloy-evm", "alloy-primitives", @@ -3590,8 +3590,8 @@ dependencies = [ [[package]] name = "reth-execution-types" -version = "1.9.1" -source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.9.1#3afe69a5738459a7cb5f46c598c7f541a1510f32" +version = "1.9.3" +source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.9.3#27a8c0f5a6dfb27dea84c5751776ecabdd069646" dependencies = [ "alloy-consensus", "alloy-eips", @@ -3608,8 +3608,8 @@ dependencies = [ [[package]] name = "reth-network-peers" -version = "1.9.1" -source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.9.1#3afe69a5738459a7cb5f46c598c7f541a1510f32" +version = "1.9.3" +source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.9.3#27a8c0f5a6dfb27dea84c5751776ecabdd069646" dependencies = [ "alloy-primitives", "alloy-rlp", @@ -3621,8 +3621,8 @@ dependencies = [ [[package]] name = "reth-primitives-traits" -version = "1.9.1" -source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.9.1#3afe69a5738459a7cb5f46c598c7f541a1510f32" +version = "1.9.3" +source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.9.3#27a8c0f5a6dfb27dea84c5751776ecabdd069646" dependencies = [ "alloy-consensus", "alloy-eips", @@ -3648,8 +3648,8 @@ dependencies = [ [[package]] name = "reth-prune-types" -version = "1.9.1" -source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.9.1#3afe69a5738459a7cb5f46c598c7f541a1510f32" +version = "1.9.3" +source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.9.3#27a8c0f5a6dfb27dea84c5751776ecabdd069646" dependencies = [ "alloy-primitives", "derive_more", @@ -3660,8 +3660,8 @@ dependencies = [ [[package]] name = "reth-revm" -version = "1.9.1" -source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.9.1#3afe69a5738459a7cb5f46c598c7f541a1510f32" +version = "1.9.3" +source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.9.3#27a8c0f5a6dfb27dea84c5751776ecabdd069646" dependencies = [ "alloy-primitives", "reth-primitives-traits", @@ -3672,8 +3672,8 @@ dependencies = [ [[package]] name = "reth-stages-types" -version = "1.9.1" -source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.9.1#3afe69a5738459a7cb5f46c598c7f541a1510f32" +version = "1.9.3" +source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.9.3#27a8c0f5a6dfb27dea84c5751776ecabdd069646" dependencies = [ "alloy-primitives", "bytes", @@ -3683,8 +3683,8 @@ dependencies = [ [[package]] name = "reth-stateless" -version = "1.9.1" -source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.9.1#3afe69a5738459a7cb5f46c598c7f541a1510f32" +version = "1.9.3" +source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.9.3#27a8c0f5a6dfb27dea84c5751776ecabdd069646" dependencies = [ "alloy-consensus", "alloy-primitives", @@ -3710,8 +3710,8 @@ dependencies = [ [[package]] name = "reth-static-file-types" -version = "1.9.1" -source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.9.1#3afe69a5738459a7cb5f46c598c7f541a1510f32" +version = "1.9.3" +source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.9.3#27a8c0f5a6dfb27dea84c5751776ecabdd069646" dependencies = [ "alloy-primitives", "derive_more", @@ -3721,8 +3721,8 @@ dependencies = [ [[package]] name = "reth-storage-api" -version = "1.9.1" -source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.9.1#3afe69a5738459a7cb5f46c598c7f541a1510f32" +version = "1.9.3" +source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.9.3#27a8c0f5a6dfb27dea84c5751776ecabdd069646" dependencies = [ "alloy-consensus", "alloy-eips", @@ -3743,8 +3743,8 @@ dependencies = [ [[package]] name = "reth-storage-errors" -version = "1.9.1" -source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.9.1#3afe69a5738459a7cb5f46c598c7f541a1510f32" +version = "1.9.3" +source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.9.3#27a8c0f5a6dfb27dea84c5751776ecabdd069646" dependencies = [ "alloy-eips", "alloy-primitives", @@ -3759,8 +3759,8 @@ dependencies = [ [[package]] name = "reth-trie-common" -version = "1.9.1" -source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.9.1#3afe69a5738459a7cb5f46c598c7f541a1510f32" +version = "1.9.3" +source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.9.3#27a8c0f5a6dfb27dea84c5751776ecabdd069646" dependencies = [ "alloy-consensus", "alloy-primitives", @@ -3781,8 +3781,8 @@ dependencies = [ [[package]] name = "reth-trie-sparse" -version = "1.9.1" -source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.9.1#3afe69a5738459a7cb5f46c598c7f541a1510f32" +version = "1.9.3" +source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.9.3#27a8c0f5a6dfb27dea84c5751776ecabdd069646" dependencies = [ "alloy-primitives", "alloy-rlp", @@ -3797,8 +3797,8 @@ dependencies = [ [[package]] name = "reth-zstd-compressors" -version = "1.9.1" -source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.9.1#3afe69a5738459a7cb5f46c598c7f541a1510f32" +version = "1.9.3" +source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.9.3#27a8c0f5a6dfb27dea84c5751776ecabdd069646" dependencies = [ "zstd", ] diff --git a/guests/stateless-client/Cargo.toml b/guests/stateless-client/Cargo.toml index ff8df7224..e9d0ef983 100644 --- a/guests/stateless-client/Cargo.toml +++ b/guests/stateless-client/Cargo.toml @@ -12,7 +12,7 @@ lto = "fat" [dependencies] blst = { version = "=0.3.15" } c-kzg = { version = "=2.1.5" } -revm = { version = "31.0.1", default-features = false, features = [ +revm = { version = "31.0.2", default-features = false, features = [ "std", "c-kzg", "portable", From 3f2406a7801820654aa018bb22277edc22f719b6 Mon Sep 17 00:00:00 2001 From: Wolfgang Welz Date: Tue, 18 Nov 2025 20:04:12 +0100 Subject: [PATCH 09/22] fix pre-merge check --- crates/core/src/lib.rs | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/crates/core/src/lib.rs b/crates/core/src/lib.rs index 8479ef361..4cc5c499e 100644 --- a/crates/core/src/lib.rs +++ b/crates/core/src/lib.rs @@ -54,6 +54,13 @@ where C: EthExecutorSpec + EthChainSpec
+ Hardforks + 'static, { let chain_spec = config.chain_spec().clone(); + + #[cfg(not(feature = "unsafe-pre-merge"))] + assert!( + reth_chainspec::EthereumHardforks::is_paris_active_at_block(&chain_spec, block.number), + "only post-merge blocks supported" + ); + let (hash, _) = reth_stateless::stateless_validation_with_trie::( block, signers, witness, chain_spec, config, )?; From e3aaeccfce5efc7dec2ee47f2022dc962b9a0613 Mon Sep 17 00:00:00 2001 From: Wolfgang Welz Date: Tue, 18 Nov 2025 19:54:18 +0100 Subject: [PATCH 10/22] add cycle tracker # Conflicts: # crates/core/src/lib.rs --- Cargo.lock | 41 ++++ Cargo.toml | 2 + crates/core/Cargo.toml | 6 + crates/core/src/cycle_tracker/collector.rs | 173 +++++++++++++ crates/core/src/cycle_tracker/evm.rs | 244 +++++++++++++++++++ crates/core/src/cycle_tracker/mod.rs | 31 +++ crates/core/src/cycle_tracker/tracer.rs | 267 +++++++++++++++++++++ crates/core/src/cycle_tracker/types.rs | 112 +++++++++ crates/core/src/lib.rs | 6 + crates/host/Cargo.toml | 3 + crates/host/src/cycle_tracker.rs | 117 +++++++++ crates/host/src/lib.rs | 31 ++- guests/Cargo.toml | 1 + guests/build.rs | 10 +- guests/stateless-client/Cargo.lock | 54 +++++ guests/stateless-client/Cargo.toml | 1 + guests/stateless-client/src/lib.rs | 5 - run-parallel.sh | 93 ------- scripts/benchmark.py | 116 +++++++++ scripts/trace.py | 87 +++++++ 20 files changed, 1290 insertions(+), 110 deletions(-) create mode 100644 crates/core/src/cycle_tracker/collector.rs create mode 100644 crates/core/src/cycle_tracker/evm.rs create mode 100644 crates/core/src/cycle_tracker/mod.rs create mode 100644 crates/core/src/cycle_tracker/tracer.rs create mode 100644 crates/core/src/cycle_tracker/types.rs create mode 100644 crates/host/src/cycle_tracker.rs delete mode 100755 run-parallel.sh create mode 100755 scripts/benchmark.py create mode 100755 scripts/trace.py diff --git a/Cargo.lock b/Cargo.lock index 1955be857..08e7d1f62 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1519,6 +1519,15 @@ dependencies = [ "rustc_version 0.4.1", ] +[[package]] +name = "atomic-polyfill" +version = "1.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8cf2bce30dfe09ef0bfaef228b9d414faaf7e563035494d7fe092dba54b300f4" +dependencies = [ + "critical-section", +] + [[package]] name = "atomic-waker" version = "1.1.2" @@ -2881,6 +2890,15 @@ dependencies = [ "tracing", ] +[[package]] +name = "hash32" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b0c35f58762feb77d74ebe43bdbc3210f09be9fe6742234d573bacc26ed92b67" +dependencies = [ + "byteorder", +] + [[package]] name = "hashbrown" version = "0.12.3" @@ -2923,6 +2941,20 @@ dependencies = [ "hashbrown 0.15.5", ] +[[package]] +name = "heapless" +version = "0.7.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cdc6457c0eb62c71aac4bc17216026d8410337c4126773b9c5daba343f17964f" +dependencies = [ + "atomic-polyfill", + "hash32", + "rustc_version 0.4.1", + "serde", + "spin", + "stable_deref_trait", +] + [[package]] name = "heck" version = "0.5.0" @@ -4181,6 +4213,7 @@ dependencies = [ "cobs", "embedded-io 0.4.0", "embedded-io 0.6.1", + "heapless", "serde", ] @@ -6066,6 +6099,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" @@ -7363,6 +7399,7 @@ dependencies = [ "alloy-primitives", "alloy-rlp", "alloy-trie 0.9.1", + "postcard", "reth-chainspec", "reth-errors", "reth-ethereum-primitives", @@ -7372,8 +7409,10 @@ dependencies = [ "reth-stateless", "reth-trie-common", "risc0-ethereum-trie", + "risc0-zkvm", "serde", "serde_with", + "tracing", ] [[package]] @@ -7386,9 +7425,11 @@ dependencies = [ "blst", "bytemuck", "clap", + "flate2", "guests", "reth-chainspec", "reth-ethereum-primitives", + "reth-evm", "reth-stateless", "risc0-zkvm", "serde_json", diff --git a/Cargo.toml b/Cargo.toml index e18358ae6..2d890ac05 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -54,7 +54,9 @@ async-trait = "0.1" blst = "0.3.15" bytemuck = "1.23" clap = "4.5" +flate2 = "1.1" itertools = "0.14" +postcard = "1.1" serde = "1.0" serde_with = "3.14" serde_json = "1.0" diff --git a/crates/core/Cargo.toml b/crates/core/Cargo.toml index 9abf3b8f4..74f04b012 100644 --- a/crates/core/Cargo.toml +++ b/crates/core/Cargo.toml @@ -9,6 +9,7 @@ alloy-consensus = { workspace = true } alloy-primitives = { workspace = true, features = ["map"] } alloy-rlp = { workspace = true } alloy-trie = { workspace = true } +postcard = { workspace = true, optional = true } reth-chainspec = { workspace = true } reth-errors = { workspace = true } reth-ethereum-primitives = { workspace = true } @@ -18,10 +19,15 @@ reth-primitives-traits = { workspace = true } reth-stateless = { workspace = true } reth-trie-common = { workspace = true } risc0-ethereum-trie = { workspace = true } +risc0-zkvm = { workspace = true, optional = true } serde = { workspace = true } serde_with = { workspace = true } +[target.'cfg(not(target_os = "zkvm"))'.dependencies] +tracing = { workspace = true, optional = true } + [features] +cycle-tracker = ["postcard", "risc0-zkvm", "tracing"] # Allow proving of pre-merge (Proof-of-Work) blocks. # This is considered unsafe because reth does not correctly validate all difficulty constraints. unsafe-pre-merge = [] diff --git a/crates/core/src/cycle_tracker/collector.rs b/crates/core/src/cycle_tracker/collector.rs new file mode 100644 index 000000000..180a035a5 --- /dev/null +++ b/crates/core/src/cycle_tracker/collector.rs @@ -0,0 +1,173 @@ +// Copyright 2025 RISC Zero, Inc. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +use super::types::{EventKind, TraceFdEvent, TraceId}; +use alloy_primitives::bytes::{Buf, BytesMut}; +use std::{fmt::Display, io, vec::Vec}; + +/// A frame in the call stack maintained by the trace processor. +#[derive(Debug, Clone)] +struct StackFrame { + id: TraceId<'static>, + start_cycles: u64, + start_gas: u64, +} + +/// Processes trace events and maintains a call stack. +/// +/// Converts raw enter/exit/total events into structured [`TraceEvent`]s +/// with computed depths and durations. +#[derive(Debug, Clone)] +struct TraceProcessor { + stack: Vec, + callback: F, +} + +/// A processed trace event with call depth and cycle count. +#[derive(Clone, Debug)] +pub struct TraceEvent { + /// The identifier for this traced section + pub id: TraceId<'static>, + pub depth: usize, + pub cycles: u64, + pub gas: u64, +} + +impl Display for TraceEvent { + /// Default callback that prints trace events with indentation. + /// + /// Output format: + /// ```text + /// initialization: 1234 + /// [ OP] 0x01: 56 + /// [PRE] 0x0000...0001: 789 + /// ``` + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + let indent = " ".repeat(self.depth); + writeln!(f, "{}{}: {} cycles", indent, self.id, self.cycles) + } +} + +impl TraceProcessor { + /// Creates a new processor with a custom callback. + /// + /// The callback is invoked for each completed trace event. + fn new(callback: F) -> Self { + Self { stack: Vec::new(), callback } + } + + fn process(&mut self, event: TraceFdEvent) { + match event.kind { + EventKind::Total => { + let id = event.id.into_owned(); + let depth = self.stack.len(); + (self.callback)(TraceEvent { id, depth, cycles: event.cycles, gas: event.gas }); + } + EventKind::Enter => { + let id = event.id.into_owned(); + self.stack.push(StackFrame { + id, + start_cycles: event.cycles, + start_gas: event.gas, + }); + } + EventKind::Exit => { + if let Some(frame) = self.stack.pop() { + let id = event.id.into_owned(); + + // Safety Check: Verify we are popping what we expect + if frame.id == id { + let cycles = event.cycles.saturating_sub(frame.start_cycles); + let gas = event.gas.saturating_sub(frame.start_gas); + (self.callback)(TraceEvent { id, depth: self.stack.len(), cycles, gas }); + } else { + tracing::warn!("Trace Mismatch: Entered {:?} but exited {id:?}", frame.id); + } + } else { + tracing::warn!("Stack Underflow: Exited {:?} without entering it", event.id); + } + } + } + } +} + +/// Host-side collector that processes the trace stream. +/// +/// Implements [`io::Write`] so it can be passed to RiscZero's `write_fd`. +/// Deserializes COBS-framed events and invokes the processor callback. +/// +/// # Example +/// +/// ```rust,no_run +/// # use zeth_core::cycle_tracker::{CYCLE_TRACKER_FD, TraceCollector}; +/// # use risc0_zkvm::{ExecutorEnv, default_executor}; +/// # const GUEST_ELF: &[u8] = &[]; +/// # fn main() -> Result<(), Box> { +/// let mut collector = TraceCollector::new(|event| println!("{event}")); +/// +/// let env = ExecutorEnv::builder().write_fd(CYCLE_TRACKER_FD, collector).build()?; +/// +/// let exec = default_executor(); +/// exec.execute(env, GUEST_ELF)?; +/// # Ok(()) } +/// ``` +#[derive(Debug, Clone)] +pub struct TraceCollector { + buffer: BytesMut, + processor: TraceProcessor, +} + +impl TraceCollector { + /// Creates a new collector with a custom processor. + /// + /// Useful for collecting statistics or custom output formatting. + /// + /// # Example + /// ```rust + /// # use zeth_core::cycle_tracker::TraceCollector; + /// let collector = TraceCollector::new(|event| { + /// if event.cycles > 1000 { + /// println!("Expensive: {} took {} cycles", event.id, event.cycles); + /// } + /// }); + /// ``` + pub fn new(callback: F) -> Self { + Self { buffer: BytesMut::default(), processor: TraceProcessor::new(callback) } + } +} + +impl io::Write for TraceCollector { + /// Buffers partial frames and deserializes complete ones (delimited by zero bytes). + fn write(&mut self, buf: &[u8]) -> io::Result { + self.buffer.extend_from_slice(buf); + + while let Some(zero_pos) = self.buffer.iter().position(|&b| b == 0) { + let frame_len = zero_pos + 1; + let frame = &mut self.buffer[..frame_len]; + + match postcard::from_bytes_cobs::(frame) { + Ok(event) => self.processor.process(event), + Err(e) => return Err(io::Error::other(e)), + } + + self.buffer.advance(frame_len); + } + + Ok(buf.len()) + } + + fn flush(&mut self) -> io::Result<()> { + Ok(()) + } +} diff --git a/crates/core/src/cycle_tracker/evm.rs b/crates/core/src/cycle_tracker/evm.rs new file mode 100644 index 000000000..bc8dfc0ec --- /dev/null +++ b/crates/core/src/cycle_tracker/evm.rs @@ -0,0 +1,244 @@ +// Copyright 2025 RISC Zero, Inc. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +use super::tracer::CycleTracer; +use alloy_primitives::map::AddressSet; +use reth_errors::BlockExecutionError; +use reth_evm::{ + ConfigureEvm, Database, EvmEnvFor, EvmFactory, ExecutionCtxFor, OnStateHook, + block::{BlockExecutionResult, BlockExecutorFactory, BlockExecutorFor}, + execute::{BlockExecutor, Executor}, + revm::{ + Inspector, + bytecode::OpCode, + database::{State, states::bundle_state::BundleRetention}, + interpreter::{CallInputs, CallOutcome, Interpreter, interpreter_types::Jumps}, + precompile::{PrecompileSpecId, Precompiles}, + primitives::hardfork::SpecId, + }, +}; +use reth_evm_ethereum::EthEvmConfig; +use reth_primitives_traits::{ + BlockTy, HeaderTy, NodePrimitives, RecoveredBlock, SealedBlock, SealedHeader, +}; +use std::fmt::Debug; + +#[derive(Debug, Clone)] +pub struct CycleTrackerEvmConfig(EthEvmConfig); + +impl CycleTrackerEvmConfig { + pub fn new(config: EthEvmConfig) -> Self { + CycleTrackerEvmConfig(config) + } +} + +impl ConfigureEvm for CycleTrackerEvmConfig +where + EthEvmConfig: ConfigureEvm< + BlockExecutorFactory: BlockExecutorFactory>, + >, + ChainSpec: Clone + Debug, + EvmF: Clone + Debug, +{ + type Primitives = as ConfigureEvm>::Primitives; + type Error = as ConfigureEvm>::Error; + type NextBlockEnvCtx = as ConfigureEvm>::NextBlockEnvCtx; + type BlockExecutorFactory = + as ConfigureEvm>::BlockExecutorFactory; + type BlockAssembler = as ConfigureEvm>::BlockAssembler; + + fn block_executor_factory(&self) -> &Self::BlockExecutorFactory { + self.0.block_executor_factory() + } + + fn block_assembler(&self) -> &Self::BlockAssembler { + self.0.block_assembler() + } + + fn evm_env(&self, header: &HeaderTy) -> Result, Self::Error> { + self.0.evm_env(header) + } + + fn next_evm_env( + &self, + parent: &HeaderTy, + attributes: &Self::NextBlockEnvCtx, + ) -> Result, Self::Error> { + self.0.next_evm_env(parent, attributes) + } + + fn context_for_block<'a>( + &self, + block: &'a SealedBlock>, + ) -> Result, Self::Error> { + self.0.context_for_block(block) + } + + fn context_for_next_block( + &self, + parent: &SealedHeader>, + attributes: Self::NextBlockEnvCtx, + ) -> Result, Self::Error> { + self.0.context_for_next_block(parent, attributes) + } + + fn executor( + &self, + db: DB, + ) -> impl Executor { + // override the default implementation to execute with cycle tracking + CycleTrackerBlockExecutor::new(self, db) + } +} + +struct CycleTrackerBlockExecutor { + factory: F, + db: State, +} + +impl CycleTrackerBlockExecutor { + pub fn new(factory: F, db: DB) -> Self { + let db = + State::builder().with_database(db).with_bundle_update().without_state_clear().build(); + Self { factory, db } + } +} + +impl CycleTrackerBlockExecutor +where + F: ConfigureEvm< + BlockExecutorFactory: BlockExecutorFactory>, + >, + DB: Database, +{ + /// Creates a strategy for execution of a given block with the inspector. + fn executor_for_block<'a>( + &'a mut self, + block: &'a SealedBlock<<::Primitives as NodePrimitives>::Block>, + ) -> Result< + impl BlockExecutorFor< + 'a, + ::BlockExecutorFactory, + DB, + CycleTrackerInspector<'a>, + >, + ::Error, + > { + let evm_env = self.factory.evm_env(block.header())?; + + let inspector = CycleTrackerInspector::new(*evm_env.spec_id()); + let evm = self.factory.evm_with_env_and_inspector(&mut self.db, evm_env, inspector); + + let ctx = self.factory.context_for_block(block)?; + Ok(self.factory.create_executor(evm, ctx)) + } +} + +impl Executor for CycleTrackerBlockExecutor +where + F: ConfigureEvm< + BlockExecutorFactory: BlockExecutorFactory>, + >, + DB: Database, +{ + type Primitives = F::Primitives; + type Error = BlockExecutionError; + + fn execute_one( + &mut self, + block: &RecoveredBlock<::Block>, + ) -> Result::Receipt>, Self::Error> + { + let result = self + .executor_for_block(block) + .map_err(BlockExecutionError::other)? + .execute_block(block.transactions_recovered())?; + + self.db.merge_transitions(BundleRetention::Reverts); + + Ok(result) + } + + fn execute_one_with_state_hook( + &mut self, + _: &RecoveredBlock<::Block>, + _: H, + ) -> Result::Receipt>, Self::Error> + where + H: OnStateHook + 'static, + { + unimplemented!() + } + + fn into_state(self) -> State { + self.db + } + + fn size_hint(&self) -> usize { + self.db.bundle_state.size_hint() + } +} + +#[derive(Clone, Debug)] +struct CycleTrackerInspector<'a> { + precompiles: AddressSet, + last_opcode: Option, + // since exact cycle tracking is performance critical, we use a local Tracer instead of global + tracer: CycleTracer<'a>, +} + +impl CycleTrackerInspector<'_> { + pub fn new(spec_id: SpecId) -> Self { + let precompiles = Precompiles::new(PrecompileSpecId::from_spec_id(spec_id)); + + Self { + precompiles: AddressSet::from_iter(precompiles.inner().keys().copied()), + last_opcode: None, + tracer: CycleTracer::new(), + } + } +} + +impl Inspector for CycleTrackerInspector<'_> { + #[inline] + fn step(&mut self, interp: &mut Interpreter, _context: &mut CTX) { + if let Some(opcode) = OpCode::new(interp.bytecode.opcode()) { + // keep track of the last opcode executed + self.last_opcode = Some(opcode); + self.tracer.enter_with_gas(opcode.get(), interp.gas.spent()) + } + } + + #[inline] + fn step_end(&mut self, interp: &mut Interpreter, _context: &mut CTX) { + if let Some(opcode) = self.last_opcode.take() { + self.tracer.exit_with_gas(opcode.get(), interp.gas.spent()) + } + } + + #[inline] + fn call(&mut self, _context: &mut CTX, inputs: &mut CallInputs) -> Option { + if self.precompiles.contains(&inputs.bytecode_address) { + self.tracer.enter_with_gas(inputs.bytecode_address, 0); + } + None + } + + #[inline] + fn call_end(&mut self, _context: &mut CTX, inputs: &CallInputs, outcome: &mut CallOutcome) { + if self.precompiles.contains(&inputs.bytecode_address) { + self.tracer.exit_with_gas(inputs.bytecode_address, outcome.result.gas.spent()); + } + } +} diff --git a/crates/core/src/cycle_tracker/mod.rs b/crates/core/src/cycle_tracker/mod.rs new file mode 100644 index 000000000..c7a31199e --- /dev/null +++ b/crates/core/src/cycle_tracker/mod.rs @@ -0,0 +1,31 @@ +// Copyright 2025 RISC Zero, Inc. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +#[cfg(not(target_os = "zkvm"))] +mod collector; +mod evm; +mod tracer; +mod types; + +pub use types::{CYCLE_TRACKER_FD, TraceId}; + +#[cfg(not(target_os = "zkvm"))] +pub use collector::{TraceCollector, TraceEvent}; + +pub mod guest { + pub use super::{ + evm::CycleTrackerEvmConfig, + tracer::{CycleTracer, Span, enter, exit, span}, + }; +} diff --git a/crates/core/src/cycle_tracker/tracer.rs b/crates/core/src/cycle_tracker/tracer.rs new file mode 100644 index 000000000..2cb445154 --- /dev/null +++ b/crates/core/src/cycle_tracker/tracer.rs @@ -0,0 +1,267 @@ +// Copyright 2025 RISC Zero, Inc. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +use super::types::{EventKind, IntoTraceId, TraceFdEvent, TraceId}; +use serde::Serialize; +use std::cell::RefCell; + +#[cfg(target_os = "zkvm")] +mod platform { + use crate::cycle_tracker::types; + use risc0_zkvm::guest::env::{FdWriter, Write}; + + pub use risc0_zkvm::guest::env::cycle_count; + + #[inline(always)] + pub fn write_slice(buf: &[u8]) { + FdWriter::new(types::CYCLE_TRACKER_FD, |_| {}).write_slice(buf); + } +} + +#[cfg(not(target_os = "zkvm"))] +mod platform { + /// Returns 0 to prevent panics when instrumented code runs on the host. + pub fn cycle_count() -> u64 { + 0 + } + /// No-op on the host; trace data is discarded. + pub fn write_slice(_: &[u8]) {} +} + +/// Guest-side tracer for recording cycle counts. +/// +/// Records enter/exit events and sends them over the trace file descriptor. +/// Uses batching to minimize syscall overhead. +/// +/// # Performance Note +/// +/// For hot loops (like EVM opcode execution), instantiate this struct directly +/// and keep it alive to avoid the overhead of Thread Local Storage (TLS) associated +/// with the global [`enter`] and [`exit`] functions. +/// +/// # Example +/// +/// ```rust +/// # use zeth_core::cycle_tracker::guest::CycleTracer; +/// let mut tracer = CycleTracer::new(); +/// tracer.enter("my_function"); +/// // ... work ... +/// tracer.exit("my_function"); +/// ``` +#[derive(Clone, Debug)] +pub struct CycleTracer<'a> { + // use a Box to keep the struct itself small (stack-friendly) + buf: Box<[u8]>, + last_enter: Option<(TraceId<'a>, u64, u64)>, +} + +impl<'a> Default for CycleTracer<'a> { + fn default() -> Self { + Self::new() + } +} + +impl<'a> Drop for CycleTracer<'a> { + fn drop(&mut self) { + // ensure any pending "enter" is flushed if it is dropped before the corresponding "exit" + if let Some((id, cycles, gas)) = self.last_enter.take() { + self.send(EventKind::Enter, id, cycles, gas) + } + } +} + +impl<'a> CycleTracer<'a> { + /// Creates a new tracer with a 48-byte buffer. + pub fn new() -> Self { + Self { buf: Box::new([0u8; 48]), last_enter: None } + } + + /// Records the start of a traced section. + /// + /// If a previous [`CycleTracer::enter`] is pending, it's flushed before recording the new one. + /// This batching behavior minimizes syscalls. + /// + /// # Example + /// ```rust + /// # let mut tracer = zeth_core::cycle_tracker::guest::CycleTracer::new(); + /// tracer.enter("function_name"); + /// // ... work ... + /// tracer.exit("function_name"); + /// ``` + #[inline(always)] + pub fn enter(&mut self, id: impl IntoTraceId<'a>) { + self.enter_with_gas(id, 0) + } + + #[inline] + pub fn enter_with_gas(&mut self, id: impl IntoTraceId<'a>, gas: u64) { + let id = id.into_trace_id(); + let cycles = platform::cycle_count(); + + // If we have a pending enter that wasn't closed, flush it now. + // This handles nested calls like: enter(A) -> enter(B) -> exit(B) -> exit(A) + if let Some((enter_id, enter_cycles, enter_gas)) = + self.last_enter.replace((id, cycles, gas)) + { + self.send(EventKind::Enter, enter_id, enter_cycles, enter_gas); + } + } + + /// Records the end of a traced section. + /// + /// If the pending enter matches this exit, sends an [`EventKind::Total`] with the duration. + /// Otherwise, flushes the mismatched enter and sends a separate [`EventKind::Exit`]. + #[inline(always)] + pub fn exit(&mut self, id: impl IntoTraceId<'a>) { + self.exit_with_gas(id, 0) + } + + pub fn exit_with_gas(&mut self, id: impl IntoTraceId<'a>, gas: u64) { + let cycles = platform::cycle_count(); + let id = id.into_trace_id(); + match self.last_enter.take() { + None => self.send(EventKind::Exit, id, cycles, gas), + Some((enter_id, enter_cycles, enter_gas)) => { + if enter_id == id { + self.send(EventKind::Total, id, cycles - enter_cycles, gas - enter_gas); + } else { + self.send(EventKind::Enter, enter_id, enter_cycles, enter_gas); + self.send(EventKind::Exit, id, cycles, gas); + } + } + } + } + + /// Sends the corresponding event via the file descriptor. + /// # Panics + /// It panics if serialization fails (OOM or internal error). + fn send(&mut self, kind: EventKind, id: TraceId, cycles: u64, gas: u64) { + let event = TraceFdEvent { kind, id, cycles, gas }; + let encoded = self.serialize(&event).expect("should serialize"); + platform::write_slice(encoded); + } + + fn serialize(&mut self, value: &T) -> postcard::Result<&mut [u8]> { + match postcard::to_slice_cobs(value, &mut self.buf) { + Ok(encoded) => { + let len = encoded.len(); + Ok(&mut self.buf[..len]) + } + Err(postcard::Error::SerializeBufferFull) => { + // if buf is not sufficient, allocate a new vec and use that as the new buf + let mut buf = postcard::to_allocvec_cobs(value)?; + let len = buf.len(); + // we have allocated with capacity, so we might as well use everything + buf.resize(buf.capacity(), 0); + self.buf = buf.into_boxed_slice(); + Ok(&mut self.buf[..len]) + } + Err(err) => Err(err), + } + } +} + +thread_local! { + static GLOBAL_TRACER: RefCell> = RefCell::new(CycleTracer::new()) ; +} + +/// Records the start of a traced section using the thread-local global tracer. +/// +/// Use this for high-level logic. For tight loops, use [`CycleTracer`] directly. +pub fn enter(id: impl IntoTraceId<'static>) { + GLOBAL_TRACER.with_borrow_mut(move |t| t.enter(id)) +} + +/// Records the end of a traced section using the thread-local global tracer. +/// +/// Use this for high-level logic. For tight loops, use [`CycleTracer`] directly. +pub fn exit(id: impl IntoTraceId<'static>) { + GLOBAL_TRACER.with_borrow_mut(move |t| t.exit(id)) +} + +/// Creates a RAII guard for a traced section using the global tracer. +/// +/// # Example +/// ```rust +/// use zeth_core::cycle_tracker::guest::span; +/// pub fn process() { +/// let _outer = span("process"); +/// { +/// let _inner = span("inner"); +/// } +/// } +/// ``` +pub fn span(id: impl IntoTraceId<'static>) -> Span { + let id = id.into_trace_id(); + enter(&id); + Span { id } +} + +/// RAII guard that calls [`exit`] when dropped. +#[derive(Debug)] +#[must_use] +pub struct Span { + id: TraceId<'static>, +} + +impl Drop for Span { + #[inline(always)] + fn drop(&mut self) { + exit(&self.id); + } +} + +#[cfg(test)] +mod tests { + use super::*; + use alloy_primitives::{Address, Bytes}; + + #[test] + fn serialize() { + let mut tracer = CycleTracer::new(); + + // Small event (should fit in 48 bytes) + let event = TraceFdEvent { + kind: EventKind::Total, + id: TraceId::Precompile(Address::repeat_byte(0xff)), + cycles: u64::MAX, + gas: u64::MAX, + }; + let buf_len = tracer.buf.len(); + let encoded = tracer.serialize(&event).unwrap(); + println!("encoded: {}", Bytes::copy_from_slice(encoded)); + assert_eq!(event, postcard::from_bytes_cobs(encoded).unwrap()); + assert_eq!(buf_len, tracer.buf.len()); // must fit in original buffer + + let event = + TraceFdEvent { kind: EventKind::Enter, id: TraceId::Opcode(0), cycles: 0, gas: 0 }; + let encoded = tracer.serialize(&event).unwrap(); + assert_eq!(event, postcard::from_bytes_cobs(encoded).unwrap()); + + // Large event (should trigger resize) + let event = TraceFdEvent { + kind: EventKind::Enter, + id: TraceId::Custom("x".repeat(100).into()), + cycles: 0, + gas: 0, + }; + let encoded = tracer.serialize(&event).unwrap(); + assert_eq!(event, postcard::from_bytes_cobs(encoded).unwrap()); + assert!(buf_len < tracer.buf.len()); + + // repeat to make sure the new buffer can be reused + let encoded = tracer.serialize(&event).unwrap(); + assert_eq!(event, postcard::from_bytes_cobs(encoded).unwrap()); + } +} diff --git a/crates/core/src/cycle_tracker/types.rs b/crates/core/src/cycle_tracker/types.rs new file mode 100644 index 000000000..a5bb98b22 --- /dev/null +++ b/crates/core/src/cycle_tracker/types.rs @@ -0,0 +1,112 @@ +// Copyright 2025 RISC Zero, Inc. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +use alloy_primitives::Address; +use serde::{Deserialize, Serialize}; +use std::{borrow::Cow, fmt::Display}; + +/// The file descriptor used for trace communication. +/// +/// This must be configured on the Host via [`risc0_zkvm::ExecutorEnvBuilder::write_fd`] and is used +/// by the Guest to stream trace events. +pub const CYCLE_TRACKER_FD: u32 = 0x10; + +/// Identifier for a traced code section. +#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)] +pub enum TraceId<'a> { + #[serde(borrow)] + Custom(Cow<'a, str>), + Opcode(u8), + Precompile(Address), +} + +impl Display for TraceId<'_> { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + match self { + TraceId::Custom(s) => write!(f, "[ FN] {s}"), + TraceId::Opcode(op) => write!(f, "[ OP] 0x{op:02x}"), + TraceId::Precompile(addr) => write!(f, "[PRE] {addr}"), + } + } +} + +impl<'a> TraceId<'a> { + /// Converts a borrowed `TraceId` into an owned one. + pub fn into_owned(self) -> TraceId<'static> { + match self { + TraceId::Custom(s) => TraceId::Custom(Cow::Owned(s.into_owned())), + TraceId::Opcode(op) => TraceId::Opcode(op), + TraceId::Precompile(addr) => TraceId::Precompile(addr), + } + } +} + +/// Helper trait for ergonomic trace ID construction. +pub trait IntoTraceId<'a> { + fn into_trace_id(self) -> TraceId<'a>; +} + +impl<'a> IntoTraceId<'a> for TraceId<'a> { + fn into_trace_id(self) -> TraceId<'a> { + self + } +} + +impl<'a> IntoTraceId<'a> for &TraceId<'a> { + fn into_trace_id(self) -> TraceId<'a> { + self.clone() + } +} + +impl<'a> IntoTraceId<'a> for &'a str { + fn into_trace_id(self) -> TraceId<'a> { + TraceId::Custom(Cow::Borrowed(self)) + } +} + +impl<'a> IntoTraceId<'a> for String { + fn into_trace_id(self) -> TraceId<'a> { + TraceId::Custom(Cow::Owned(self)) + } +} + +impl<'a> IntoTraceId<'a> for u8 { + fn into_trace_id(self) -> TraceId<'a> { + TraceId::Opcode(self) + } +} + +impl<'a> IntoTraceId<'a> for Address { + fn into_trace_id(self) -> TraceId<'a> { + TraceId::Precompile(self) + } +} + +/// Internal event type for wire protocol. +#[derive(Debug, Copy, Clone, PartialEq, Eq, Serialize, Deserialize)] +pub(crate) enum EventKind { + Enter, + Exit, + Total, +} + +/// The packet sent over the trace file descriptor. +#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)] +pub(crate) struct TraceFdEvent<'a> { + pub kind: EventKind, + #[serde(borrow)] + pub id: TraceId<'a>, + pub cycles: u64, + pub gas: u64, +} diff --git a/crates/core/src/lib.rs b/crates/core/src/lib.rs index 4cc5c499e..95e50646c 100644 --- a/crates/core/src/lib.rs +++ b/crates/core/src/lib.rs @@ -28,6 +28,9 @@ pub use reth_stateless::{ExecutionWitness, StatelessTrie, UncompressedPublicKey} pub type EthEvmConfig = reth_evm_ethereum::EthEvmConfig; +#[cfg(feature = "cycle-tracker")] +pub mod cycle_tracker; + /// `StatelessInput` is a convenience structure for serializing the input needed /// for the stateless validation function. #[serde_with::serde_as] @@ -61,6 +64,9 @@ where "only post-merge blocks supported" ); + #[cfg(all(feature = "cycle-tracker", target_os = "zkvm"))] + let config = cycle_tracker::guest::CycleTrackerEvmConfig::new(config); + let (hash, _) = reth_stateless::stateless_validation_with_trie::( block, signers, witness, chain_spec, config, )?; diff --git a/crates/host/Cargo.toml b/crates/host/Cargo.toml index 5f4bfbf6e..29f2c8d90 100644 --- a/crates/host/Cargo.toml +++ b/crates/host/Cargo.toml @@ -11,9 +11,11 @@ anyhow = { workspace = true } blst = { workspace = true } bytemuck = { workspace = true } clap = { workspace = true, features = ["derive", "env"] } +flate2 = { workspace = true, optional = true } guests = { workspace = true } reth-chainspec = { workspace = true } reth-ethereum-primitives = { workspace = true } +reth-evm = { workspace = true } reth-stateless = { workspace = true } risc0-zkvm = { workspace = true } serde_json = { workspace = true } @@ -22,4 +24,5 @@ tracing-subscriber = { workspace = true } zeth-core = { workspace = true } [features] +cycle-tracker = ["flate2", "guests/cycle-tracker", "zeth-core/cycle-tracker"] unsafe-pre-merge = ["guests/unsafe-pre-merge", "zeth-core/unsafe-pre-merge"] diff --git a/crates/host/src/cycle_tracker.rs b/crates/host/src/cycle_tracker.rs new file mode 100644 index 000000000..4486f0bf6 --- /dev/null +++ b/crates/host/src/cycle_tracker.rs @@ -0,0 +1,117 @@ +// Copyright 2025 RISC Zero, Inc. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +use alloy::consensus::Header; +use reth_chainspec::ChainSpec; +use risc0_zkvm::ExecutorEnvBuilder; +use std::sync::Arc; + +#[cfg(feature = "cycle-tracker")] +pub use implementation::*; + +#[cfg(not(feature = "cycle-tracker"))] +pub use noop::*; + +#[cfg(feature = "cycle-tracker")] +mod implementation { + use super::*; + use alloy::primitives::map::AddressMap; + use flate2::{Compression, write::GzEncoder}; + use reth_evm::{ + ConfigureEvm, + revm::{ + bytecode::OpCode, + precompile::{PrecompileSpecId, Precompiles}, + }, + }; + use std::{collections::BTreeMap, env, fs::File, io::BufWriter}; + use zeth_core::{ + EthEvmConfig, + cycle_tracker::{CYCLE_TRACKER_FD, TraceCollector, TraceEvent, TraceId}, + }; + + const TRACE_FILE_ENV: &str = "TRACE_FILE"; + const DEFAULT_TRACE_FILE: &str = "trace.json.gz"; + + pub struct HostCycleTracker { + metrics: BTreeMap>, + precompiles: AddressMap<&'static str>, + } + + impl HostCycleTracker { + const UNKNOWN_LABEL: &'static str = "unknown"; + + pub fn new(chain_spec: Arc, header: &Header) -> Self { + // initialize precompiles map for decoding addresses + let spec_id = EthEvmConfig::new(chain_spec).evm_env(header).unwrap().cfg_env.spec; + let precompiles = Precompiles::new(PrecompileSpecId::from_spec_id(spec_id)).inner(); + + Self { + metrics: BTreeMap::default(), + precompiles: precompiles.iter().map(|(a, p)| (*a, p.id().name())).collect(), + } + } + + pub fn attach<'a>(&'a mut self, env_builder: &mut ExecutorEnvBuilder<'a>) { + let collector = TraceCollector::new(move |event| { + self.process(event); + }); + env_builder.write_fd(CYCLE_TRACKER_FD, collector); + } + + fn process(&mut self, event: TraceEvent) { + let key = match event.id { + TraceId::Custom(str) => str.into_owned(), + TraceId::Opcode(op) => match OpCode::new(op) { + Some(opcode) => opcode.to_string(), + None => Self::UNKNOWN_LABEL.to_string(), + }, + TraceId::Precompile(addr) => match self.precompiles.get(&addr) { + Some(precompile) => precompile.to_string(), + None => Self::UNKNOWN_LABEL.to_string(), + }, + }; + + self.metrics.entry(key).or_default().push((event.cycles, event.gas)); + } + + pub fn save(self) -> anyhow::Result<()> { + let path = env::var_os(TRACE_FILE_ENV).unwrap_or(DEFAULT_TRACE_FILE.into()); + let file = File::create(path)?; + let encoder = GzEncoder::new(BufWriter::new(file), Compression::fast()); + serde_json::to_writer(encoder, &self.metrics)?; + + Ok(()) + } + } +} + +#[cfg(not(feature = "cycle-tracker"))] +mod noop { + use super::*; + + pub struct HostCycleTracker; + + impl HostCycleTracker { + pub fn new(_: Arc, _: &Header) -> Self { + Self + } + + pub fn attach(&mut self, _: &mut ExecutorEnvBuilder) {} + + pub fn save(self) -> anyhow::Result<()> { + Ok(()) + } + } +} diff --git a/crates/host/src/lib.rs b/crates/host/src/lib.rs index 54a5d2aba..31eb285f8 100644 --- a/crates/host/src/lib.rs +++ b/crates/host/src/lib.rs @@ -28,6 +28,8 @@ use risc0_zkvm::{Digest, ExecutorEnvBuilder, Receipt, compute_image_id, default_ use std::sync::Arc; use zeth_core::Input; +mod cycle_tracker; + /// Processes Ethereum blocks, including creating inputs, validating, and proving. pub struct BlockProcessor

{ /// The provider for fetching data from the Ethereum network. @@ -127,20 +129,31 @@ impl BlockProcessor

{ /// This method is computationally intensive and is run on a blocking thread. pub async fn prove(&self, input: Input, po2: Option) -> Result<(Receipt, Digest)> { let (elf, image_id) = self.elf()?; + let chain_spec = self.chain_spec.clone(); // prove in a blocking thread using the default prover - let info = tokio::task::spawn_blocking(move || { - let mut env_builder = ExecutorEnvBuilder::default(); - if let Some(po2) = po2 { - env_builder.segment_limit_po2(po2); - } - let env = env_builder.write(&input)?.build()?; - default_prover().prove(env, elf) + let proof = tokio::task::spawn_blocking(move || { + // initialize Tracker (Real or No-Op based on feature flag) + let mut tracer = cycle_tracker::HostCycleTracker::new(chain_spec, &input.block.header); + + let proof = { + let mut env_builder = ExecutorEnvBuilder::default(); + if let Some(po2) = po2 { + env_builder.segment_limit_po2(po2); + } + tracer.attach(&mut env_builder); + let env = env_builder.write(&input)?.build()?; + default_prover().prove(env, elf)? + }; + // save trace to file + tracer.save().context("failed to save traces")?; + + Ok::<_, anyhow::Error>(proof) }) .await .context("proving task panicked")??; - Ok((info.receipt, image_id)) + Ok((proof.receipt, image_id)) } } @@ -154,7 +167,7 @@ pub fn to_zkvm_input_bytes(input: &Input) -> Result> { Ok(bytes.to_vec()) } -/// Recovers the signing [`VerifyingKey`] from each transaction's signature. +/// Recovers the signing public key from each transaction's signature. pub fn recover_signers<'a, I>(txs: I) -> Result> where I: IntoIterator, diff --git a/guests/Cargo.toml b/guests/Cargo.toml index e503a86a8..342470314 100644 --- a/guests/Cargo.toml +++ b/guests/Cargo.toml @@ -11,4 +11,5 @@ risc0-build = { workspace = true } methods = ["stateless-client"] [features] +cycle-tracker = [] unsafe-pre-merge = [] diff --git a/guests/build.rs b/guests/build.rs index e8f69a592..6b34b9a96 100644 --- a/guests/build.rs +++ b/guests/build.rs @@ -30,9 +30,13 @@ fn main() { let mut guest_opts = GuestOptionsBuilder::default(); - // pass the unsafe-pre-merge feature through to the guest - #[cfg(feature = "unsafe-pre-merge")] - guest_opts.features(vec!["unsafe-pre-merge".to_string()]); + let features = vec![ + #[cfg(feature = "unsafe-pre-merge")] + "unsafe-pre-merge".to_string(), + #[cfg(feature = "cycle-tracker")] + "cycle-tracker".to_string(), + ]; + guest_opts.features(features); // Use Docker for deterministic builds if RISC0_USE_DOCKER is set. if env::var("RISC0_USE_DOCKER").is_ok() { diff --git a/guests/stateless-client/Cargo.lock b/guests/stateless-client/Cargo.lock index e81711b96..98f98ee8f 100644 --- a/guests/stateless-client/Cargo.lock +++ b/guests/stateless-client/Cargo.lock @@ -831,6 +831,15 @@ dependencies = [ "serde", ] +[[package]] +name = "atomic-polyfill" +version = "1.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8cf2bce30dfe09ef0bfaef228b9d414faaf7e563035494d7fe092dba54b300f4" +dependencies = [ + "critical-section", +] + [[package]] name = "atomic-waker" version = "1.1.2" @@ -1956,6 +1965,15 @@ dependencies = [ "subtle", ] +[[package]] +name = "hash32" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b0c35f58762feb77d74ebe43bdbc3210f09be9fe6742234d573bacc26ed92b67" +dependencies = [ + "byteorder", +] + [[package]] name = "hashbrown" version = "0.12.3" @@ -1991,6 +2009,20 @@ dependencies = [ "hashbrown 0.15.5", ] +[[package]] +name = "heapless" +version = "0.7.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cdc6457c0eb62c71aac4bc17216026d8410337c4126773b9c5daba343f17964f" +dependencies = [ + "atomic-polyfill", + "hash32", + "rustc_version 0.4.1", + "serde", + "spin", + "stable_deref_trait", +] + [[package]] name = "heck" version = "0.5.0" @@ -2485,6 +2517,15 @@ version = "0.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6373607a59f0be73a39b6fe456b8192fcc3585f602af20751600e974dd455e77" +[[package]] +name = "lock_api" +version = "0.4.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "224399e74b87b5f3557511d98dff8b14089b3dadafcab6bb93eab67d3aace965" +dependencies = [ + "scopeguard", +] + [[package]] name = "log" version = "0.4.28" @@ -2994,6 +3035,7 @@ dependencies = [ "cobs", "embedded-io 0.4.0", "embedded-io 0.6.1", + "heapless", "serde", ] @@ -4496,6 +4538,12 @@ dependencies = [ "serde_json", ] +[[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" @@ -4774,6 +4822,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" @@ -5849,6 +5900,7 @@ dependencies = [ "alloy-primitives", "alloy-rlp", "alloy-trie 0.9.1", + "postcard", "reth-chainspec", "reth-errors", "reth-ethereum-primitives", @@ -5858,8 +5910,10 @@ dependencies = [ "reth-stateless", "reth-trie-common", "risc0-ethereum-trie", + "risc0-zkvm", "serde", "serde_with", + "tracing", ] [[package]] diff --git a/guests/stateless-client/Cargo.toml b/guests/stateless-client/Cargo.toml index e9d0ef983..1044c30ed 100644 --- a/guests/stateless-client/Cargo.toml +++ b/guests/stateless-client/Cargo.toml @@ -27,6 +27,7 @@ zeth-chainspec = { path = "../../crates/chainspec" } zeth-core = { path = "../../crates/core" } [features] +cycle-tracker = ["zeth-core/cycle-tracker"] unsafe-pre-merge = ["zeth-core/unsafe-pre-merge"] [patch.crates-io] diff --git a/guests/stateless-client/src/lib.rs b/guests/stateless-client/src/lib.rs index 64b590fa4..10988c173 100644 --- a/guests/stateless-client/src/lib.rs +++ b/guests/stateless-client/src/lib.rs @@ -22,13 +22,8 @@ pub fn entry(evm_config: EthEvmConfig) { let chain_spec = evm_config.chain_spec(); env::log(&format!("EVM config: {chain_spec}")); - env::log("cycle-tracker-report-start: read_input"); let input: Input = env::read(); - env::log("cycle-tracker-report-end: read_input"); - - env::log("cycle-tracker-report-start: validation"); let block_hash = validate_block(input, evm_config).unwrap(); - env::log("cycle-tracker-report-end: validation"); env::commit_slice(block_hash.as_slice()); } diff --git a/run-parallel.sh b/run-parallel.sh deleted file mode 100755 index e07a25a26..000000000 --- a/run-parallel.sh +++ /dev/null @@ -1,93 +0,0 @@ -#!/bin/bash -# Usage: ./script_name.sh [jobs] -# If not provided, the number of jobs defaults to 4. - -# Set the number of jobs based on the first command-line argument (default 4) -JOBS="${1:-4}" - -# Set the Ethereum RPC URL from the environment variable, with a default fallback -ETH_RPC_URL="${ETH_RPC_URL:-"https://ethereum-rpc.publicnode.com"}" - -# Name of CSV output file -OUTPUT_CSV="results.csv" - -# Write CSV header to the output file -echo "block_number,execution_time,total_cycles,user_cycles,paging_cycles,keccak_calls,gas_used" > "$OUTPUT_CSV" - -# This function processes a single file: it extracts the block number, -# runs the command, extracts metrics from its output, and finally echoes a CSV row. -process_file() { - file="$1" - - # The ETH_RPC_URL needs to be available in the sub-shell spawned by parallel - ETH_RPC_URL="${ETH_RPC_URL:-"https://ethereum-rpc.publicnode.com"}" - - hex_to_dec() { - local value="$1" - if [[ "$value" =~ ^0x ]]; then - echo $((value)) - else - echo "$value" - fi - } - - # Extract the number from the filename: remove up to '_' and the '.json' suffix - hash=${file#*_} - hash=${hash%.json} - - # Log progress (sent to stderr so it won’t pollute the CSV output) - echo "Processing file: $file with number: $hash" >&2 - - # Run your command and capture both stdout and stderr - output=$( - RISC0_INFO=true RUST_LOG=info RISC0_DEV_MODE=true ./target/release/cli --eth-rpc-url "$ETH_RPC_URL" --block "$hash" prove 2>&1 - ) - - # echo command output to stderr for debugging purposes - echo "$output" >&2 - - # Extract the execution time by capturing both the numeric value and its unit. - # This regex will match lines like: - # execution time: 1.23s - # execution time: 208.295537ms - if [[ "$output" =~ execution\ time:\ ([0-9.]+)(ms|s) ]]; then - time_number="${BASH_REMATCH[1]}" - time_unit="${BASH_REMATCH[2]}" - if [[ "$time_unit" == "ms" ]]; then - # Convert milliseconds to seconds - execution_time=$(awk "BEGIN {printf \"%.6f\", $time_number/1000}") - else - execution_time="$time_number" - fi - else - execution_time="N/A" - fi - - # Extract other metrics using grep with Perl-compatible regular expressions - total_cycles=$(echo "$output" | perl -nE 'say $1 if /(\d+) total cycles/') - user_cycles=$(echo "$output" | perl -nE 'say $1 if /(\d+) user cycles \(/') - paging_cycles=$(echo "$output" | perl -nE 'say $1 if /(\d+) paging cycles \(/') - keccak_calls=$(echo "$output" | perl -nE 'say $1 if /(\d+) Keccak calls/') - - # For robustness: if extraction fails, substitute with "N/A" - total_cycles=${total_cycles:-"N/A"} - user_cycles=${user_cycles:-"N/A"} - paging_cycles=${paging_cycles:-"N/A"} - keccak_calls=${keccak_calls:-"N/A"} - - # Retrieve the total gas used for the block using foundry cast. - # The output is expected in JSON format, so we use jq to parse it. - gas_used="N/A" - block_json=$(cast block "$hash" --rpc-url "$ETH_RPC_URL" --format-json) - block_number=$(hex_to_dec "$(echo "$block_json" | jq -r '.number')") - gas_used=$(hex_to_dec "$(echo "$block_json" | jq -r '.gasUsed')") - - # Output the CSV row to stdout - echo "$block_number,$execution_time,$total_cycles,$user_cycles,$paging_cycles,$keccak_calls,$gas_used" -} - -# Export the function so that GNU Parallel's sub-shells can access it. -export -f process_file - -# Use GNU Parallel with the configurable job count to process each file concurrently. -parallel --jobs "$JOBS" process_file ::: cache/input_0x*.json >> "$OUTPUT_CSV" diff --git a/scripts/benchmark.py b/scripts/benchmark.py new file mode 100755 index 000000000..02c55e2c2 --- /dev/null +++ b/scripts/benchmark.py @@ -0,0 +1,116 @@ +#!/usr/bin/env python3 + +import argparse, glob, json, os, re, subprocess, sys, urllib.request +from concurrent.futures import ThreadPoolExecutor + +# Configuration +ETH_RPC_URL = os.environ.get("ETH_RPC_URL", "https://ethereum-rpc.publicnode.com") +CLI_BIN = "./target/release/cli" +CSV_FILE = "benchmarks.csv" + + +def build(): + print("Building for raw performance (tracing disabled)...") + subprocess.check_call(["cargo", "build", "--release"]) + + +def get_block(block_hash): + payload = { + "jsonrpc": "2.0", + "method": "eth_getBlockByHash", + "params": [block_hash, False], + "id": 1 + } + req = urllib.request.Request( + ETH_RPC_URL, + data=json.dumps(payload).encode('utf-8'), + headers={"Content-Type": "application/json"} + ) + with urllib.request.urlopen(req) as response: + data = json.load(response) + return data.get("result") + + +def parse_metrics(block_hash, output): + # Helper to extract regex matches + def get_val(pattern, default="N/A"): + match = re.search(pattern, output) + return match.group(1) if match else default + + # 1. Execution Time + if time_match := re.search(r"execution time: ([0-9.]+)(ms|s)", output): + val, unit = time_match.groups() + exec_time = f"{float(val) / 1000:.6f}" if unit == "ms" else val + else: + exec_time = "N/A" + + # 2. Cycles & Counts + metrics = { + "total_cycles": get_val(r"(\d+) total cycles"), + "user_cycles": get_val(r"(\d+) user cycles"), + "paging_cycles": get_val(r"(\d+) paging cycles"), + "bigint_cycles": get_val(r"BigInt calls, (\d+) cycles"), + "keccak_calls": get_val(r"(\d+) Keccak calls"), + } + + # 3. Gas & Block Number + try: + block_data = get_block(block_hash) + block_number = int(block_data['number'], 16) + gas_used = int(block_data['gasUsed'], 16) + except Exception: + block_number = "N/A" + gas_used = "N/A" + + return [ + str(block_number), exec_time, metrics['total_cycles'], metrics['user_cycles'], metrics['paging_cycles'], + metrics['bigint_cycles'], metrics['keccak_calls'], str(gas_used) + ] + + +def run_benchmark(file_path): + # cache/input_0x1234.json -> 0x1234 + block_hash = os.path.basename(file_path).replace("input_", "").replace(".json", "") + print(f"Benchmarking block: {block_hash}") + + my_env = os.environ.copy() + my_env["RUST_LOG"] = "info" + my_env["RISC0_INFO"] = "true" + my_env["RISC0_DEV_MODE"] = "true" + + cmd = [CLI_BIN, "--eth-rpc-url", ETH_RPC_URL, "--block", block_hash, "prove"] + + try: + result = subprocess.run(cmd, env=my_env, capture_output=True, text=True, check=True) + return parse_metrics(block_hash, result.stdout) + except subprocess.CalledProcessError as e: + print(f"Error proving {block_hash}: {e.stderr}", file=sys.stderr) + return None + + +def main(): + parser = argparse.ArgumentParser(description="Run Zeth benchmarks") + parser.add_argument("--jobs", type=int, default=4) + args = parser.parse_args() + + build() + + files = glob.glob("cache/input_0x*.json") + print(f"Benchmarking {len(files)} blocks with {args.jobs} jobs...") + + # Write Header + with open(CSV_FILE, "w") as f: + f.write( + "block_number,execution_time,total_cycles,user_cycles,paging_cycles,bigint_cycles,keccak_calls,gas_used\n") + + with ThreadPoolExecutor(max_workers=args.jobs) as executor: + for result in executor.map(run_benchmark, files): + if result: + with open(CSV_FILE, "a") as f: + f.write(",".join(result) + "\n") + + print(f"Done. Results saved to {CSV_FILE}") + + +if __name__ == "__main__": + main() diff --git a/scripts/trace.py b/scripts/trace.py new file mode 100755 index 000000000..f5d50e5b4 --- /dev/null +++ b/scripts/trace.py @@ -0,0 +1,87 @@ +#!/usr/bin/env python3 + +import argparse, glob, gzip, json, os, statistics, subprocess, sys, tempfile +from concurrent.futures import ThreadPoolExecutor +from collections import defaultdict + +# Configuration +ETH_RPC_URL = os.environ.get("ETH_RPC_URL", "https://ethereum-rpc.publicnode.com") +CLI_BIN = "./target/release/cli" +CSV_FILE = "traces.csv" + + +def build(): + print("Building with cycle-tracker enabled...") + subprocess.check_call(["cargo", "build", "--release", "--features", "cycle-tracker"]) + + +def run_trace(file_path, output_dir): + # cache/input_0x1234.json -> 0x1234 + block_hash = os.path.basename(file_path).replace("input_", "").replace(".json", "") + + # Create a unique path inside the temporary directory + trace_file = os.path.join(output_dir, f"trace_{block_hash}.json") + + print(f"Tracing block: {block_hash}") + + my_env = os.environ.copy() + my_env["RISC0_DEV_MODE"] = "true" + my_env["TRACE_FILE"] = trace_file + + cmd = [CLI_BIN, "--eth-rpc-url", ETH_RPC_URL, "--block", block_hash, "prove"] + + try: + subprocess.run(cmd, env=my_env, capture_output=True, text=True, check=True) + return trace_file + except subprocess.CalledProcessError as e: + print(f"Error proving {block_hash}: {e.stderr}", file=sys.stderr) + return None + + +def analyze_traces(trace_files, csv_file): + print("Analyzing trace data...") + + data = defaultdict(list) + for filename in trace_files: + with gzip.open(filename, "rb") as f: + for name, traces in json.load(f).items(): + data[name].extend(traces) + + with open(csv_file, "w") as f: + f.write("name,count,min cost,median cost,max cost,min cycles,median cycles,max cycles\n") + for name, traces in data.items(): + cycles = [cycles for (cycles, gas) in traces if gas > 0] + costs = [cycles // gas for (cycles, gas) in traces if gas > 0] + if cycles and costs: + f.write( + f"{name},{len(costs)}," + f"{min(costs)},{statistics.median(costs)},{max(costs)}," + f"{min(cycles)},{statistics.median(cycles)},{max(cycles)}\n" + ) + + +def main(): + parser = argparse.ArgumentParser(description="Run Zeth cycle profiling") + parser.add_argument("--jobs", type=int, default=4) + args = parser.parse_args() + + build() + + files = glob.glob("cache/input_0x*.json") + print(f"Profiling {len(files)} blocks with {args.jobs} jobs...") + + with tempfile.TemporaryDirectory() as temp_dir: + print(f"Using temporary directory: {temp_dir}") + + generated_files = [] + with ThreadPoolExecutor(max_workers=args.jobs) as executor: + for res in executor.map(lambda file: run_trace(file, temp_dir), files): + if res: generated_files.append(res) + + analyze_traces(generated_files, CSV_FILE) + + print(f"Done. Results saved to {CSV_FILE}") + + +if __name__ == "__main__": + main() From 45599d54268a9bfd9202bad128555fdeedbef29b Mon Sep 17 00:00:00 2001 From: Wolfgang Welz Date: Wed, 19 Nov 2025 16:04:55 +0100 Subject: [PATCH 11/22] fix call and create gas cost --- crates/core/src/cycle_tracker/evm.rs | 69 ++++++++++++++------------ crates/core/src/cycle_tracker/types.rs | 3 ++ 2 files changed, 41 insertions(+), 31 deletions(-) diff --git a/crates/core/src/cycle_tracker/evm.rs b/crates/core/src/cycle_tracker/evm.rs index bc8dfc0ec..21364563f 100644 --- a/crates/core/src/cycle_tracker/evm.rs +++ b/crates/core/src/cycle_tracker/evm.rs @@ -13,7 +13,6 @@ // limitations under the License. use super::tracer::CycleTracer; -use alloy_primitives::map::AddressSet; use reth_errors::BlockExecutionError; use reth_evm::{ ConfigureEvm, Database, EvmEnvFor, EvmFactory, ExecutionCtxFor, OnStateHook, @@ -21,10 +20,12 @@ use reth_evm::{ execute::{BlockExecutor, Executor}, revm::{ Inspector, - bytecode::OpCode, + context::{ContextTr, JournalTr}, database::{State, states::bundle_state::BundleRetention}, - interpreter::{CallInputs, CallOutcome, Interpreter, interpreter_types::Jumps}, - precompile::{PrecompileSpecId, Precompiles}, + interpreter::{ + CallInputs, CallOutcome, FrameInput, Interpreter, InterpreterAction, + interpreter_types::Jumps, + }, primitives::hardfork::SpecId, }, }; @@ -39,7 +40,7 @@ pub struct CycleTrackerEvmConfig(EthEvmConfig) impl CycleTrackerEvmConfig { pub fn new(config: EthEvmConfig) -> Self { - CycleTrackerEvmConfig(config) + Self(config) } } @@ -137,7 +138,7 @@ where > { let evm_env = self.factory.evm_env(block.header())?; - let inspector = CycleTrackerInspector::new(*evm_env.spec_id()); + let inspector = CycleTrackerInspector::default(); let evm = self.factory.evm_with_env_and_inspector(&mut self.db, evm_env, inspector); let ctx = self.factory.context_for_block(block)?; @@ -190,54 +191,60 @@ where } } -#[derive(Clone, Debug)] +#[derive(Clone, Debug, Default)] struct CycleTrackerInspector<'a> { - precompiles: AddressSet, - last_opcode: Option, - // since exact cycle tracking is performance critical, we use a local Tracer instead of global + // last opcode executed + last_opcode: Option, + // since cycle tracking is performance-critical, we use a local tracer instead of a global one tracer: CycleTracer<'a>, } -impl CycleTrackerInspector<'_> { - pub fn new(spec_id: SpecId) -> Self { - let precompiles = Precompiles::new(PrecompileSpecId::from_spec_id(spec_id)); - - Self { - precompiles: AddressSet::from_iter(precompiles.inner().keys().copied()), - last_opcode: None, - tracer: CycleTracer::new(), - } +impl Inspector for CycleTrackerInspector<'_> { + #[inline] + fn initialize_interp(&mut self, _interp: &mut Interpreter, _context: &mut CTX) { + // make sure the last opcode is reset, even if the interpreter is reused + self.last_opcode = None; } -} -impl Inspector for CycleTrackerInspector<'_> { #[inline] fn step(&mut self, interp: &mut Interpreter, _context: &mut CTX) { - if let Some(opcode) = OpCode::new(interp.bytecode.opcode()) { - // keep track of the last opcode executed - self.last_opcode = Some(opcode); - self.tracer.enter_with_gas(opcode.get(), interp.gas.spent()) - } + let opcode = interp.bytecode.opcode(); + + // keep track of the last opcode executed + self.last_opcode = Some(opcode); + self.tracer.enter_with_gas(opcode, interp.gas.spent()) } #[inline] fn step_end(&mut self, interp: &mut Interpreter, _context: &mut CTX) { if let Some(opcode) = self.last_opcode.take() { - self.tracer.exit_with_gas(opcode.get(), interp.gas.spent()) + let mut gas = interp.gas.spent(); + + // Calls and creations include the gas limit in the gas cost. We need to subtract this + // amount because we want to track how much gas the opcode itself consumes. + if let Some(InterpreterAction::NewFrame(frame)) = &interp.bytecode.action { + let gas_limit = match frame { + FrameInput::Empty => 0, + FrameInput::Call(input) => input.gas_limit, + FrameInput::Create(input) => input.gas_limit, + }; + gas -= gas_limit; + } + self.tracer.exit_with_gas(opcode, gas) } } #[inline] - fn call(&mut self, _context: &mut CTX, inputs: &mut CallInputs) -> Option { - if self.precompiles.contains(&inputs.bytecode_address) { + fn call(&mut self, context: &mut CTX, inputs: &mut CallInputs) -> Option { + if context.journal_ref().precompile_addresses().contains(&inputs.bytecode_address) { self.tracer.enter_with_gas(inputs.bytecode_address, 0); } None } #[inline] - fn call_end(&mut self, _context: &mut CTX, inputs: &CallInputs, outcome: &mut CallOutcome) { - if self.precompiles.contains(&inputs.bytecode_address) { + fn call_end(&mut self, context: &mut CTX, inputs: &CallInputs, outcome: &mut CallOutcome) { + if context.journal_ref().precompile_addresses().contains(&inputs.bytecode_address) { self.tracer.exit_with_gas(inputs.bytecode_address, outcome.result.gas.spent()); } } diff --git a/crates/core/src/cycle_tracker/types.rs b/crates/core/src/cycle_tracker/types.rs index a5bb98b22..8e21afe2d 100644 --- a/crates/core/src/cycle_tracker/types.rs +++ b/crates/core/src/cycle_tracker/types.rs @@ -25,9 +25,12 @@ pub const CYCLE_TRACKER_FD: u32 = 0x10; /// Identifier for a traced code section. #[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)] pub enum TraceId<'a> { + // Custom name #[serde(borrow)] Custom(Cow<'a, str>), + // Opcode execution Opcode(u8), + // Precompile invocation Precompile(Address), } From efde3163a05e13f74541728ad90ead160457db76 Mon Sep 17 00:00:00 2001 From: Wolfgang Welz Date: Wed, 19 Nov 2025 17:45:05 +0100 Subject: [PATCH 12/22] minor improvements --- .gitignore | 5 ++ CHANGELOG.md | 1 + README.md | 21 ++++++++ crates/core/src/cycle_tracker/collector.rs | 2 +- crates/core/src/cycle_tracker/evm.rs | 2 + crates/core/src/cycle_tracker/tracer.rs | 49 +++++++++-------- crates/core/src/cycle_tracker/types.rs | 5 +- crates/host/src/cycle_tracker.rs | 10 ++++ scripts/benchmark.py | 2 +- scripts/trace.py | 62 +++++++++++++++------- 10 files changed, 113 insertions(+), 46 deletions(-) diff --git a/.gitignore b/.gitignore index 59b16d662..798ba55e8 100644 --- a/.gitignore +++ b/.gitignore @@ -16,4 +16,9 @@ target .idea/ .DS_Store + +# Zeth specific /cache/ +/block-benchmarks.csv +/opcode-profile.csv +/trace.json.gz diff --git a/CHANGELOG.md b/CHANGELOG.md index b4168c4be..1b4a91ebc 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -12,6 +12,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ### ⚡️ Features - New feature `unsafe-pre-merge` must be enabled to prove pre-merge blocks. +- Added `cycle-tracker` feature and helper script for detailed profiling of zkVM cycle costs per opcode. ## [0.2.1](https://github.com/boundless-xyz/zeth/releases/tag/v0.2.1) - 2025-08-05 diff --git a/README.md b/README.md index cfa250f30..85b5eae85 100644 --- a/README.md +++ b/README.md @@ -119,6 +119,27 @@ ETH_RPC_URL="" cargo run --release --bin cli --features "unsafe-pr **Warning**: Proofs generated with this flag are not fully sound and should not be used in production. +## Cycle Profiling + +Zeth includes an optional `cycle-tracker` feature that allows you to profile the execution of blocks inside the zkVM. This generates detailed reports on how many cycles are spent on each EVM opcode and precompile. + +### Enabling the Tracker + +To use this feature, you must build the project with the `cycle-tracker` feature flag enabled: +```bash +cargo build --release --features cycle-tracker +```` + +When running the prover with this feature, you can set the `TRACE_FILE` environment variable to specify the output path for the raw trace data (defaults to `trace.json.gz`). +The output is a Gzip-compressed JSON file containing a map of trace identifiers (e.g., opcode names) to lists of (cycles, gas) usage tuples. + +### Analysis Scripts + +Two Python scripts are provided in the `scripts/` directory to help with benchmarking and profiling. **Note:** These scripts operate on cached input files, so ensure you have populated your `cache/` directory (e.g., by running `cli validate` on target blocks) before running them. + +* **`scripts/trace.py`**: Automates the process of building Zeth with the tracker enabled, running proofs for all cached blocks, and aggregating the cycle usage data into a CSV file (`opcode-profile.csv`). +* **`scripts/benchmark.py`**: Builds Zeth *without* the tracker (for maximum performance) and measures wall-clock execution time and total cycle counts for cached blocks. + ## Additional Resources * [RISC Zero Developer Portal](https://dev.risczero.com/) diff --git a/crates/core/src/cycle_tracker/collector.rs b/crates/core/src/cycle_tracker/collector.rs index 180a035a5..1b575469d 100644 --- a/crates/core/src/cycle_tracker/collector.rs +++ b/crates/core/src/cycle_tracker/collector.rs @@ -69,7 +69,7 @@ impl TraceProcessor { fn process(&mut self, event: TraceFdEvent) { match event.kind { - EventKind::Total => { + EventKind::Complete => { let id = event.id.into_owned(); let depth = self.stack.len(); (self.callback)(TraceEvent { id, depth, cycles: event.cycles, gas: event.gas }); diff --git a/crates/core/src/cycle_tracker/evm.rs b/crates/core/src/cycle_tracker/evm.rs index 21364563f..056f1dfaf 100644 --- a/crates/core/src/cycle_tracker/evm.rs +++ b/crates/core/src/cycle_tracker/evm.rs @@ -35,10 +35,12 @@ use reth_primitives_traits::{ }; use std::fmt::Debug; +/// A wrapper around [`EthEvmConfig`] that enables cycle tracking during execution. #[derive(Debug, Clone)] pub struct CycleTrackerEvmConfig(EthEvmConfig); impl CycleTrackerEvmConfig { + /// Creates a new cycle tracking configuration wrapping the provided inner config. pub fn new(config: EthEvmConfig) -> Self { Self(config) } diff --git a/crates/core/src/cycle_tracker/tracer.rs b/crates/core/src/cycle_tracker/tracer.rs index 2cb445154..0ee937384 100644 --- a/crates/core/src/cycle_tracker/tracer.rs +++ b/crates/core/src/cycle_tracker/tracer.rs @@ -41,24 +41,20 @@ mod platform { /// Guest-side tracer for recording cycle counts. /// -/// Records enter/exit events and sends them over the trace file descriptor. -/// Uses batching to minimize syscall overhead. +/// This struct is responsible for serializing trace events using [postcard] with COBS framing and +/// writing them to the trace file descriptor. /// -/// # Performance Note +/// # Optimization Strategy /// -/// For hot loops (like EVM opcode execution), instantiate this struct directly -/// and keep it alive to avoid the overhead of Thread Local Storage (TLS) associated -/// with the global [`enter`] and [`exit`] functions. +/// To minimize I/O overhead, the tracer employs a "write-combining" strategy: +/// If `exit` is called immediately after `enter` for the same ID (a leaf span), the tracer +/// calculates the diff and writes a single event. /// -/// # Example +/// # Performance Note /// -/// ```rust -/// # use zeth_core::cycle_tracker::guest::CycleTracer; -/// let mut tracer = CycleTracer::new(); -/// tracer.enter("my_function"); -/// // ... work ... -/// tracer.exit("my_function"); -/// ``` +/// For hot loops (like EVM opcode execution), instantiate this struct directly and keep it alive to +/// avoid the overhead of Thread Local Storage (TLS) associated with the global [`enter`] and +/// [`exit`] functions. #[derive(Clone, Debug)] pub struct CycleTracer<'a> { // use a Box to keep the struct itself small (stack-friendly) @@ -82,7 +78,7 @@ impl<'a> Drop for CycleTracer<'a> { } impl<'a> CycleTracer<'a> { - /// Creates a new tracer with a 48-byte buffer. + /// Creates a new tracer with a default 48-byte serialization buffer. pub fn new() -> Self { Self { buf: Box::new([0u8; 48]), last_enter: None } } @@ -104,6 +100,11 @@ impl<'a> CycleTracer<'a> { self.enter_with_gas(id, 0) } + /// Records the start of a traced section with an associated gas metric. + /// + /// It captures the current cycle count and the provided `gas` value (typically cumulative gas + /// spent). The `gas` value is stored and used later in [`CycleTracer::exit_with_gas`] to + /// calculate the exact amount of gas consumed during this span (`end_gas - start_gas`). #[inline] pub fn enter_with_gas(&mut self, id: impl IntoTraceId<'a>, gas: u64) { let id = id.into_trace_id(); @@ -119,14 +120,16 @@ impl<'a> CycleTracer<'a> { } /// Records the end of a traced section. - /// - /// If the pending enter matches this exit, sends an [`EventKind::Total`] with the duration. - /// Otherwise, flushes the mismatched enter and sends a separate [`EventKind::Exit`]. #[inline(always)] pub fn exit(&mut self, id: impl IntoTraceId<'a>) { self.exit_with_gas(id, 0) } + /// Records the end of a traced section with an associated gas metric. + /// + /// It captures the current cycle count and provided `gas` value (typically cumulative gas + /// spent).If the pending enter event matches this exit (same ID), the tracer emits a single + /// event containing the net cycles and gas used. pub fn exit_with_gas(&mut self, id: impl IntoTraceId<'a>, gas: u64) { let cycles = platform::cycle_count(); let id = id.into_trace_id(); @@ -134,7 +137,7 @@ impl<'a> CycleTracer<'a> { None => self.send(EventKind::Exit, id, cycles, gas), Some((enter_id, enter_cycles, enter_gas)) => { if enter_id == id { - self.send(EventKind::Total, id, cycles - enter_cycles, gas - enter_gas); + self.send(EventKind::Complete, id, cycles - enter_cycles, gas - enter_gas); } else { self.send(EventKind::Enter, enter_id, enter_cycles, enter_gas); self.send(EventKind::Exit, id, cycles, gas); @@ -233,16 +236,16 @@ mod tests { // Small event (should fit in 48 bytes) let event = TraceFdEvent { - kind: EventKind::Total, + kind: EventKind::Complete, id: TraceId::Precompile(Address::repeat_byte(0xff)), cycles: u64::MAX, gas: u64::MAX, }; - let buf_len = tracer.buf.len(); + let scratch_len = tracer.buf.len(); let encoded = tracer.serialize(&event).unwrap(); println!("encoded: {}", Bytes::copy_from_slice(encoded)); assert_eq!(event, postcard::from_bytes_cobs(encoded).unwrap()); - assert_eq!(buf_len, tracer.buf.len()); // must fit in original buffer + assert_eq!(scratch_len, tracer.buf.len()); // must fit in original buffer let event = TraceFdEvent { kind: EventKind::Enter, id: TraceId::Opcode(0), cycles: 0, gas: 0 }; @@ -258,7 +261,7 @@ mod tests { }; let encoded = tracer.serialize(&event).unwrap(); assert_eq!(event, postcard::from_bytes_cobs(encoded).unwrap()); - assert!(buf_len < tracer.buf.len()); + assert!(scratch_len < tracer.buf.len()); // repeat to make sure the new buffer can be reused let encoded = tracer.serialize(&event).unwrap(); diff --git a/crates/core/src/cycle_tracker/types.rs b/crates/core/src/cycle_tracker/types.rs index 8e21afe2d..f7335e280 100644 --- a/crates/core/src/cycle_tracker/types.rs +++ b/crates/core/src/cycle_tracker/types.rs @@ -99,9 +99,12 @@ impl<'a> IntoTraceId<'a> for Address { /// Internal event type for wire protocol. #[derive(Debug, Copy, Clone, PartialEq, Eq, Serialize, Deserialize)] pub(crate) enum EventKind { + /// Marks the start of a traced scope (e.g., entering an opcode or function). Enter, + /// Marks the end of a traced scope that was previously opened with [`EventKind::Enter`]. Exit, - Total, + /// Represents a complete, atomic execution of a scope (Enter + Exit). + Complete, } /// The packet sent over the trace file descriptor. diff --git a/crates/host/src/cycle_tracker.rs b/crates/host/src/cycle_tracker.rs index 4486f0bf6..f17178c72 100644 --- a/crates/host/src/cycle_tracker.rs +++ b/crates/host/src/cycle_tracker.rs @@ -49,6 +49,11 @@ mod implementation { precompiles: AddressMap<&'static str>, } + /// Manages the collection and saving of execution cycle traces from the zkVM guest. + /// + /// This struct runs on the host and listens to trace events streamed from the guest via a + /// dedicated file descriptor. It aggregates these events and saves them to a file for later + /// analysis. impl HostCycleTracker { const UNKNOWN_LABEL: &'static str = "unknown"; @@ -63,6 +68,7 @@ mod implementation { } } + /// Attaches the cycle tracker to the zkVM executor environment. pub fn attach<'a>(&'a mut self, env_builder: &mut ExecutorEnvBuilder<'a>) { let collector = TraceCollector::new(move |event| { self.process(event); @@ -86,6 +92,10 @@ mod implementation { self.metrics.entry(key).or_default().push((event.cycles, event.gas)); } + /// Saves the collected trace metrics to a Gzip-compressed JSON file. + /// + /// The output path is determined by the `TRACE_FILE` environment variable, defaulting to + /// `trace.json.gz` if unset. pub fn save(self) -> anyhow::Result<()> { let path = env::var_os(TRACE_FILE_ENV).unwrap_or(DEFAULT_TRACE_FILE.into()); let file = File::create(path)?; diff --git a/scripts/benchmark.py b/scripts/benchmark.py index 02c55e2c2..bbb09165c 100755 --- a/scripts/benchmark.py +++ b/scripts/benchmark.py @@ -6,7 +6,7 @@ # Configuration ETH_RPC_URL = os.environ.get("ETH_RPC_URL", "https://ethereum-rpc.publicnode.com") CLI_BIN = "./target/release/cli" -CSV_FILE = "benchmarks.csv" +CSV_FILE = "block-benchmarks.csv" def build(): diff --git a/scripts/trace.py b/scripts/trace.py index f5d50e5b4..c51ef7886 100755 --- a/scripts/trace.py +++ b/scripts/trace.py @@ -1,18 +1,18 @@ -#!/usr/bin/env python3 - -import argparse, glob, gzip, json, os, statistics, subprocess, sys, tempfile +import argparse, csv, glob, gzip, json, os, statistics, subprocess, sys, tempfile from concurrent.futures import ThreadPoolExecutor from collections import defaultdict # Configuration ETH_RPC_URL = os.environ.get("ETH_RPC_URL", "https://ethereum-rpc.publicnode.com") CLI_BIN = "./target/release/cli" -CSV_FILE = "traces.csv" +CSV_FILE = "opcode-profile.csv" def build(): print("Building with cycle-tracker enabled...") - subprocess.check_call(["cargo", "build", "--release", "--features", "cycle-tracker"]) + subprocess.check_call( + ["cargo", "build", "--release", "--features", "cycle-tracker"] + ) def run_trace(file_path, output_dir): @@ -38,26 +38,47 @@ def run_trace(file_path, output_dir): return None -def analyze_traces(trace_files, csv_file): +def analyze_traces(trace_files, output_csv): print("Analyzing trace data...") data = defaultdict(list) for filename in trace_files: with gzip.open(filename, "rb") as f: - for name, traces in json.load(f).items(): - data[name].extend(traces) + for name, entries in json.load(f).items(): + data[name].extend((c, g) for c, g in entries) + + with open(output_csv, "w") as f: + writer = csv.writer(f) + header = [ + "name", + "count", + "min cpg", + "median cpg", + "max cpg", + "min cycles", + "median cycles", + "max cycles", + ] + writer.writerow(header) - with open(csv_file, "w") as f: - f.write("name,count,min cost,median cost,max cost,min cycles,median cycles,max cycles\n") for name, traces in data.items(): - cycles = [cycles for (cycles, gas) in traces if gas > 0] - costs = [cycles // gas for (cycles, gas) in traces if gas > 0] - if cycles and costs: - f.write( - f"{name},{len(costs)}," - f"{min(costs)},{statistics.median(costs)},{max(costs)}," - f"{min(cycles)},{statistics.median(cycles)},{max(cycles)}\n" - ) + cycles_list = [c for c, _ in traces] + cpg_list = [c // g for c, g in traces if g > 0] + if not cpg_list: + continue + + writer.writerow( + [ + name, + len(cpg_list), + min(cpg_list), + int(statistics.median(cpg_list)), + max(cpg_list), + min(cycles_list), + int(statistics.median(cycles_list)), + max(cycles_list), + ] + ) def main(): @@ -67,7 +88,7 @@ def main(): build() - files = glob.glob("cache/input_0x*.json") + files = glob.glob("cache/input_0xa04482cfa72fff3bfbd3197c335be7e180fe3e1ebe02a98ddf8417e71c7a60e0.json") print(f"Profiling {len(files)} blocks with {args.jobs} jobs...") with tempfile.TemporaryDirectory() as temp_dir: @@ -76,7 +97,8 @@ def main(): generated_files = [] with ThreadPoolExecutor(max_workers=args.jobs) as executor: for res in executor.map(lambda file: run_trace(file, temp_dir), files): - if res: generated_files.append(res) + if res: + generated_files.append(res) analyze_traces(generated_files, CSV_FILE) From aaf8a17c53f0a1b5dfe985ad90108a5d9692b6d5 Mon Sep 17 00:00:00 2001 From: Wolfgang Welz Date: Wed, 19 Nov 2025 17:51:42 +0100 Subject: [PATCH 13/22] fix trace.py --- scripts/trace.py | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/scripts/trace.py b/scripts/trace.py index c51ef7886..0dfe14df7 100755 --- a/scripts/trace.py +++ b/scripts/trace.py @@ -58,11 +58,12 @@ def analyze_traces(trace_files, output_csv): "min cycles", "median cycles", "max cycles", + "total cycles" ] writer.writerow(header) for name, traces in data.items(): - cycles_list = [c for c, _ in traces] + cycle_list = [c for c, _ in traces] cpg_list = [c // g for c, g in traces if g > 0] if not cpg_list: continue @@ -74,9 +75,10 @@ def analyze_traces(trace_files, output_csv): min(cpg_list), int(statistics.median(cpg_list)), max(cpg_list), - min(cycles_list), - int(statistics.median(cycles_list)), - max(cycles_list), + min(cycle_list), + int(statistics.median(cycle_list)), + max(cycle_list), + sum(cycle_list) ] ) @@ -88,7 +90,7 @@ def main(): build() - files = glob.glob("cache/input_0xa04482cfa72fff3bfbd3197c335be7e180fe3e1ebe02a98ddf8417e71c7a60e0.json") + files = glob.glob("cache/input_0x*.json") print(f"Profiling {len(files)} blocks with {args.jobs} jobs...") with tempfile.TemporaryDirectory() as temp_dir: From 9f1a3a99544ec4218d9c644a603e2fa7924ff7a6 Mon Sep 17 00:00:00 2001 From: Wolfgang Welz Date: Thu, 20 Nov 2025 10:22:44 +0100 Subject: [PATCH 14/22] minor improvements --- .github/workflows/main.yml | 2 +- crates/core/src/cycle_tracker/tracer.rs | 59 +++++++++---------------- crates/core/src/cycle_tracker/types.rs | 2 +- crates/host/src/cycle_tracker.rs | 6 +-- 4 files changed, 26 insertions(+), 43 deletions(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 47408b3c3..5ead7eca9 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -51,7 +51,7 @@ jobs: - name: run tests env: RISC0_DEV_MODE: true - run: cargo test --locked + run: cargo test --locked --all-features - name: Show sccache stats run: sccache --show-stats diff --git a/crates/core/src/cycle_tracker/tracer.rs b/crates/core/src/cycle_tracker/tracer.rs index 0ee937384..212b4998d 100644 --- a/crates/core/src/cycle_tracker/tracer.rs +++ b/crates/core/src/cycle_tracker/tracer.rs @@ -57,9 +57,10 @@ mod platform { /// [`exit`] functions. #[derive(Clone, Debug)] pub struct CycleTracer<'a> { - // use a Box to keep the struct itself small (stack-friendly) - buf: Box<[u8]>, + /// Stores the pending `enter` event that has not yet been written to the trace. last_enter: Option<(TraceId<'a>, u64, u64)>, + /// A pre-allocated scratch buffer used for serializing individual events. + scratch: [u8; 64], } impl<'a> Default for CycleTracer<'a> { @@ -79,8 +80,9 @@ impl<'a> Drop for CycleTracer<'a> { impl<'a> CycleTracer<'a> { /// Creates a new tracer with a default 48-byte serialization buffer. - pub fn new() -> Self { - Self { buf: Box::new([0u8; 48]), last_enter: None } + #[inline] + pub const fn new() -> Self { + Self { last_enter: None, scratch: [0; 64] } } /// Records the start of a traced section. @@ -105,7 +107,6 @@ impl<'a> CycleTracer<'a> { /// It captures the current cycle count and the provided `gas` value (typically cumulative gas /// spent). The `gas` value is stored and used later in [`CycleTracer::exit_with_gas`] to /// calculate the exact amount of gas consumed during this span (`end_gas - start_gas`). - #[inline] pub fn enter_with_gas(&mut self, id: impl IntoTraceId<'a>, gas: u64) { let id = id.into_trace_id(); let cycles = platform::cycle_count(); @@ -147,8 +148,6 @@ impl<'a> CycleTracer<'a> { } /// Sends the corresponding event via the file descriptor. - /// # Panics - /// It panics if serialization fails (OOM or internal error). fn send(&mut self, kind: EventKind, id: TraceId, cycles: u64, gas: u64) { let event = TraceFdEvent { kind, id, cycles, gas }; let encoded = self.serialize(&event).expect("should serialize"); @@ -156,19 +155,10 @@ impl<'a> CycleTracer<'a> { } fn serialize(&mut self, value: &T) -> postcard::Result<&mut [u8]> { - match postcard::to_slice_cobs(value, &mut self.buf) { - Ok(encoded) => { - let len = encoded.len(); - Ok(&mut self.buf[..len]) - } + match postcard::to_slice_cobs(value, &mut self.scratch) { + Ok(encoded) => Ok(encoded), Err(postcard::Error::SerializeBufferFull) => { - // if buf is not sufficient, allocate a new vec and use that as the new buf - let mut buf = postcard::to_allocvec_cobs(value)?; - let len = buf.len(); - // we have allocated with capacity, so we might as well use everything - buf.resize(buf.capacity(), 0); - self.buf = buf.into_boxed_slice(); - Ok(&mut self.buf[..len]) + panic!("buffer too small, use shorter ID") } Err(err) => Err(err), } @@ -176,7 +166,7 @@ impl<'a> CycleTracer<'a> { } thread_local! { - static GLOBAL_TRACER: RefCell> = RefCell::new(CycleTracer::new()) ; + static GLOBAL_TRACER: RefCell> = const { RefCell::new(CycleTracer::new()) }; } /// Records the start of a traced section using the thread-local global tracer. @@ -228,42 +218,35 @@ impl Drop for Span { #[cfg(test)] mod tests { use super::*; - use alloy_primitives::{Address, Bytes}; + use alloy_primitives::Address; #[test] fn serialize() { let mut tracer = CycleTracer::new(); - // Small event (should fit in 48 bytes) + // Custom event let event = TraceFdEvent { kind: EventKind::Complete, - id: TraceId::Precompile(Address::repeat_byte(0xff)), + id: TraceId::Custom("x".repeat(32).into()), cycles: u64::MAX, gas: u64::MAX, }; - let scratch_len = tracer.buf.len(); let encoded = tracer.serialize(&event).unwrap(); - println!("encoded: {}", Bytes::copy_from_slice(encoded)); assert_eq!(event, postcard::from_bytes_cobs(encoded).unwrap()); - assert_eq!(scratch_len, tracer.buf.len()); // must fit in original buffer - let event = - TraceFdEvent { kind: EventKind::Enter, id: TraceId::Opcode(0), cycles: 0, gas: 0 }; - let encoded = tracer.serialize(&event).unwrap(); - assert_eq!(event, postcard::from_bytes_cobs(encoded).unwrap()); - - // Large event (should trigger resize) + // Precompile event let event = TraceFdEvent { - kind: EventKind::Enter, - id: TraceId::Custom("x".repeat(100).into()), - cycles: 0, - gas: 0, + kind: EventKind::Complete, + id: TraceId::Precompile(Address::repeat_byte(0xff)), + cycles: u64::MAX, + gas: u64::MAX, }; let encoded = tracer.serialize(&event).unwrap(); assert_eq!(event, postcard::from_bytes_cobs(encoded).unwrap()); - assert!(scratch_len < tracer.buf.len()); - // repeat to make sure the new buffer can be reused + // Opcode event + let event = + TraceFdEvent { kind: EventKind::Enter, id: TraceId::Opcode(0), cycles: 0, gas: 0 }; let encoded = tracer.serialize(&event).unwrap(); assert_eq!(event, postcard::from_bytes_cobs(encoded).unwrap()); } diff --git a/crates/core/src/cycle_tracker/types.rs b/crates/core/src/cycle_tracker/types.rs index f7335e280..c75c357ee 100644 --- a/crates/core/src/cycle_tracker/types.rs +++ b/crates/core/src/cycle_tracker/types.rs @@ -23,7 +23,7 @@ use std::{borrow::Cow, fmt::Display}; pub const CYCLE_TRACKER_FD: u32 = 0x10; /// Identifier for a traced code section. -#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)] +#[derive(Debug, Clone, PartialEq, Eq, Ord, PartialOrd, Hash, Serialize, Deserialize)] pub enum TraceId<'a> { // Custom name #[serde(borrow)] diff --git a/crates/host/src/cycle_tracker.rs b/crates/host/src/cycle_tracker.rs index f17178c72..f23214a08 100644 --- a/crates/host/src/cycle_tracker.rs +++ b/crates/host/src/cycle_tracker.rs @@ -35,7 +35,7 @@ mod implementation { precompile::{PrecompileSpecId, Precompiles}, }, }; - use std::{collections::BTreeMap, env, fs::File, io::BufWriter}; + use std::{collections::HashMap, env, fs::File, io::BufWriter}; use zeth_core::{ EthEvmConfig, cycle_tracker::{CYCLE_TRACKER_FD, TraceCollector, TraceEvent, TraceId}, @@ -45,7 +45,7 @@ mod implementation { const DEFAULT_TRACE_FILE: &str = "trace.json.gz"; pub struct HostCycleTracker { - metrics: BTreeMap>, + metrics: HashMap>, precompiles: AddressMap<&'static str>, } @@ -63,7 +63,7 @@ mod implementation { let precompiles = Precompiles::new(PrecompileSpecId::from_spec_id(spec_id)).inner(); Self { - metrics: BTreeMap::default(), + metrics: HashMap::default(), precompiles: precompiles.iter().map(|(a, p)| (*a, p.id().name())).collect(), } } From 87aaacf3c8a28b4ed03809e2a1e96d0a13ad4919 Mon Sep 17 00:00:00 2001 From: Wolfgang Welz Date: Fri, 28 Nov 2025 16:53:15 +0100 Subject: [PATCH 15/22] fix file extension --- scripts/trace.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/trace.py b/scripts/trace.py index 0dfe14df7..142a780b4 100755 --- a/scripts/trace.py +++ b/scripts/trace.py @@ -20,7 +20,7 @@ def run_trace(file_path, output_dir): block_hash = os.path.basename(file_path).replace("input_", "").replace(".json", "") # Create a unique path inside the temporary directory - trace_file = os.path.join(output_dir, f"trace_{block_hash}.json") + trace_file = os.path.join(output_dir, f"trace_{block_hash}.json.gz") print(f"Tracing block: {block_hash}") From bda2c9bcad617921a67dcbaef0fca22968149d3a Mon Sep 17 00:00:00 2001 From: Wolfgang Welz Date: Mon, 2 Feb 2026 16:07:50 +0100 Subject: [PATCH 16/22] update license header --- crates/core/src/cycle_tracker/collector.rs | 2 +- crates/core/src/cycle_tracker/evm.rs | 2 +- crates/core/src/cycle_tracker/mod.rs | 2 +- crates/core/src/cycle_tracker/tracer.rs | 2 +- crates/core/src/cycle_tracker/types.rs | 2 +- crates/host/src/cycle_tracker.rs | 2 +- 6 files changed, 6 insertions(+), 6 deletions(-) diff --git a/crates/core/src/cycle_tracker/collector.rs b/crates/core/src/cycle_tracker/collector.rs index 1b575469d..1f8b636bb 100644 --- a/crates/core/src/cycle_tracker/collector.rs +++ b/crates/core/src/cycle_tracker/collector.rs @@ -1,4 +1,4 @@ -// Copyright 2025 RISC Zero, Inc. +// Copyright 2026 RISC Zero, Inc. // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/crates/core/src/cycle_tracker/evm.rs b/crates/core/src/cycle_tracker/evm.rs index c277c34cf..37830c54e 100644 --- a/crates/core/src/cycle_tracker/evm.rs +++ b/crates/core/src/cycle_tracker/evm.rs @@ -1,4 +1,4 @@ -// Copyright 2025 RISC Zero, Inc. +// Copyright 2026 RISC Zero, Inc. // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/crates/core/src/cycle_tracker/mod.rs b/crates/core/src/cycle_tracker/mod.rs index c7a31199e..dcfe622eb 100644 --- a/crates/core/src/cycle_tracker/mod.rs +++ b/crates/core/src/cycle_tracker/mod.rs @@ -1,4 +1,4 @@ -// Copyright 2025 RISC Zero, Inc. +// Copyright 2026 RISC Zero, Inc. // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/crates/core/src/cycle_tracker/tracer.rs b/crates/core/src/cycle_tracker/tracer.rs index 22880249a..7ee03c0f9 100644 --- a/crates/core/src/cycle_tracker/tracer.rs +++ b/crates/core/src/cycle_tracker/tracer.rs @@ -1,4 +1,4 @@ -// Copyright 2025 RISC Zero, Inc. +// Copyright 2026 RISC Zero, Inc. // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/crates/core/src/cycle_tracker/types.rs b/crates/core/src/cycle_tracker/types.rs index c75c357ee..e7ec78a8f 100644 --- a/crates/core/src/cycle_tracker/types.rs +++ b/crates/core/src/cycle_tracker/types.rs @@ -1,4 +1,4 @@ -// Copyright 2025 RISC Zero, Inc. +// Copyright 2026 RISC Zero, Inc. // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/crates/host/src/cycle_tracker.rs b/crates/host/src/cycle_tracker.rs index f23214a08..120c5cbbc 100644 --- a/crates/host/src/cycle_tracker.rs +++ b/crates/host/src/cycle_tracker.rs @@ -1,4 +1,4 @@ -// Copyright 2025 RISC Zero, Inc. +// Copyright 2026 RISC Zero, Inc. // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. From cbdacbf9c1dac3c635dd7604c66ea996bc7391e0 Mon Sep 17 00:00:00 2001 From: Wolfgang Welz Date: Fri, 6 Feb 2026 23:20:38 +0100 Subject: [PATCH 17/22] improve trace --- scripts/trace.py | 62 ++++++++++++++++++++++++++++++++---------------- 1 file changed, 41 insertions(+), 21 deletions(-) diff --git a/scripts/trace.py b/scripts/trace.py index 142a780b4..074e69a85 100755 --- a/scripts/trace.py +++ b/scripts/trace.py @@ -16,8 +16,8 @@ def build(): def run_trace(file_path, output_dir): - # cache/input_0x1234.json -> 0x1234 - block_hash = os.path.basename(file_path).replace("input_", "").replace(".json", "") + # cache/input_0x1234.v2.json -> 0x1234 + block_hash = os.path.basename(file_path).replace("input_", "").replace(".v2.json", "") # Create a unique path inside the temporary directory trace_file = os.path.join(output_dir, f"trace_{block_hash}.json.gz") @@ -41,11 +41,23 @@ def run_trace(file_path, output_dir): def analyze_traces(trace_files, output_csv): print("Analyzing trace data...") - data = defaultdict(list) - for filename in trace_files: + cycle_data = defaultdict(lambda: array('Q')) + gas_data = defaultdict(lambda: array('Q')) + + for i, filename in enumerate(trace_files, 1): + print(f" Loading trace {i}/{len(trace_files)}: {os.path.basename(filename)}") with gzip.open(filename, "rb") as f: - for name, entries in json.load(f).items(): - data[name].extend((c, g) for c, g in entries) + trace = json.load(f) + + for name, entries in trace.items(): + cycles = cycle_data[name] + gas = gas_data[name] + for c, g in entries: + cycles.append(c) + gas.append(g) + + # Free the large decoded JSON dict before loading the next file + del trace with open(output_csv, "w") as f: writer = csv.writer(f) @@ -58,27 +70,35 @@ def analyze_traces(trace_files, output_csv): "min cycles", "median cycles", "max cycles", - "total cycles" + "total cycles", ] writer.writerow(header) - for name, traces in data.items(): - cycle_list = [c for c, _ in traces] - cpg_list = [c // g for c, g in traces if g > 0] - if not cpg_list: - continue + for name in cycle_data: + cycle_arr = cycle_data[name] + gas_arr = gas_data[name] + + cpg_list = sorted(c // g for c, g in zip(cycle_arr, gas_arr) if g > 0) + cycle_list = sorted(cycle_arr) + + def median_sorted(s): + n = len(s) + mid = n // 2 + return (s[mid - 1] + s[mid]) // 2 if n % 2 == 0 else s[mid] + + cpg_min, cpg_med, cpg_max = (cpg_list[0], median_sorted(cpg_list), cpg_list[-1]) if cpg_list else ("N/A", "N/A", "N/A") writer.writerow( [ name, - len(cpg_list), - min(cpg_list), - int(statistics.median(cpg_list)), - max(cpg_list), - min(cycle_list), - int(statistics.median(cycle_list)), - max(cycle_list), - sum(cycle_list) + len(cycle_arr), + cpg_min, + cpg_med, + cpg_max, + sorted_cycles[0], + median_sorted(sorted_cycles), + sorted_cycles[-1], + sum(cycle_arr), ] ) @@ -90,7 +110,7 @@ def main(): build() - files = glob.glob("cache/input_0x*.json") + files = glob.glob("cache/input_0x*.v2.json") print(f"Profiling {len(files)} blocks with {args.jobs} jobs...") with tempfile.TemporaryDirectory() as temp_dir: From 3e3047bb323deb662b13331e2f843335a0c01ce2 Mon Sep 17 00:00:00 2001 From: Wolfgang Welz Date: Mon, 9 Feb 2026 19:33:23 +0100 Subject: [PATCH 18/22] fix scratch --- scripts/trace.py | 30 +++++++++++++++++++----------- 1 file changed, 19 insertions(+), 11 deletions(-) diff --git a/scripts/trace.py b/scripts/trace.py index 074e69a85..dea6796e0 100755 --- a/scripts/trace.py +++ b/scripts/trace.py @@ -1,4 +1,5 @@ -import argparse, csv, glob, gzip, json, os, statistics, subprocess, sys, tempfile +import argparse, csv, glob, gzip, json, os, subprocess, sys, tempfile +from array import array from concurrent.futures import ThreadPoolExecutor from collections import defaultdict @@ -44,6 +45,13 @@ def analyze_traces(trace_files, output_csv): cycle_data = defaultdict(lambda: array('Q')) gas_data = defaultdict(lambda: array('Q')) + # Helper function defined ONCE, outside the loop + def median_sorted(s): + if not s: return 0 + n = len(s) + mid = n // 2 + return (s[mid - 1] + s[mid]) // 2 if n % 2 == 0 else s[mid] + for i, filename in enumerate(trace_files, 1): print(f" Loading trace {i}/{len(trace_files)}: {os.path.basename(filename)}") with gzip.open(filename, "rb") as f: @@ -74,19 +82,19 @@ def analyze_traces(trace_files, output_csv): ] writer.writerow(header) - for name in cycle_data: + for name in sorted(cycle_data.keys()): # Sort keys for consistent CSV output cycle_arr = cycle_data[name] gas_arr = gas_data[name] + # Calculate CPG (Cycles Per Gas) cpg_list = sorted(c // g for c, g in zip(cycle_arr, gas_arr) if g > 0) + # Use the raw cycle array for cycle stats cycle_list = sorted(cycle_arr) - def median_sorted(s): - n = len(s) - mid = n // 2 - return (s[mid - 1] + s[mid]) // 2 if n % 2 == 0 else s[mid] - - cpg_min, cpg_med, cpg_max = (cpg_list[0], median_sorted(cpg_list), cpg_list[-1]) if cpg_list else ("N/A", "N/A", "N/A") + if cpg_list: + cpg_min, cpg_med, cpg_max = cpg_list[0], median_sorted(cpg_list), cpg_list[-1] + else: + cpg_min, cpg_med, cpg_max = "N/A", "N/A", "N/A" writer.writerow( [ @@ -95,9 +103,9 @@ def median_sorted(s): cpg_min, cpg_med, cpg_max, - sorted_cycles[0], - median_sorted(sorted_cycles), - sorted_cycles[-1], + cycle_list[0], + median_sorted(cycle_list), + cycle_list[-1], sum(cycle_arr), ] ) From 3bff1d1c1dab0312f4332ded890b8a4b6e1b4d8e Mon Sep 17 00:00:00 2001 From: Wolfgang Welz Date: Tue, 10 Mar 2026 15:52:25 +0100 Subject: [PATCH 19/22] minor cleanups --- crates/core/src/cycle_tracker/collector.rs | 2 +- crates/core/src/cycle_tracker/evm.rs | 10 +++++++--- crates/core/src/cycle_tracker/tracer.rs | 2 +- crates/host/Cargo.toml | 7 +++++-- crates/host/src/cycle_tracker.rs | 20 ++++++++++---------- 5 files changed, 24 insertions(+), 17 deletions(-) diff --git a/crates/core/src/cycle_tracker/collector.rs b/crates/core/src/cycle_tracker/collector.rs index 1f8b636bb..ab3193635 100644 --- a/crates/core/src/cycle_tracker/collector.rs +++ b/crates/core/src/cycle_tracker/collector.rs @@ -14,7 +14,7 @@ use super::types::{EventKind, TraceFdEvent, TraceId}; use alloy_primitives::bytes::{Buf, BytesMut}; -use std::{fmt::Display, io, vec::Vec}; +use std::{fmt::Display, io}; /// A frame in the call stack maintained by the trace processor. #[derive(Debug, Clone)] diff --git a/crates/core/src/cycle_tracker/evm.rs b/crates/core/src/cycle_tracker/evm.rs index 37830c54e..7b2852895 100644 --- a/crates/core/src/cycle_tracker/evm.rs +++ b/crates/core/src/cycle_tracker/evm.rs @@ -197,6 +197,8 @@ where struct CycleTrackerInspector<'a> { // last opcode executed last_opcode: Option, + // true when the current call is to a precompile (cached between call/call_end) + in_precompile: bool, // since cycle tracking is performance-critical, we use a local tracer instead of a global one tracer: CycleTracer<'a>, } @@ -238,15 +240,17 @@ impl Inspector for CycleTrackerInspector<'_> { #[inline] fn call(&mut self, context: &mut CTX, inputs: &mut CallInputs) -> Option { - if context.journal_ref().precompile_addresses().contains(&inputs.bytecode_address) { + self.in_precompile = + context.journal_ref().precompile_addresses().contains(&inputs.bytecode_address); + if self.in_precompile { self.tracer.enter_with_gas(inputs.bytecode_address, 0); } None } #[inline] - fn call_end(&mut self, context: &mut CTX, inputs: &CallInputs, outcome: &mut CallOutcome) { - if context.journal_ref().precompile_addresses().contains(&inputs.bytecode_address) { + fn call_end(&mut self, _context: &mut CTX, inputs: &CallInputs, outcome: &mut CallOutcome) { + if self.in_precompile { self.tracer.exit_with_gas(inputs.bytecode_address, outcome.result.gas.spent()); } } diff --git a/crates/core/src/cycle_tracker/tracer.rs b/crates/core/src/cycle_tracker/tracer.rs index 7ee03c0f9..a79224f8e 100644 --- a/crates/core/src/cycle_tracker/tracer.rs +++ b/crates/core/src/cycle_tracker/tracer.rs @@ -79,7 +79,7 @@ impl<'a> Drop for CycleTracer<'a> { } impl<'a> CycleTracer<'a> { - /// Creates a new tracer with a default 48-byte serialization buffer. + /// Creates a new tracer with a pre-allocated 64-byte serialization buffer. #[inline] pub const fn new() -> Self { Self { last_enter: None, scratch: [0; 64] } diff --git a/crates/host/Cargo.toml b/crates/host/Cargo.toml index 76721e655..b60bf6cc8 100644 --- a/crates/host/Cargo.toml +++ b/crates/host/Cargo.toml @@ -7,7 +7,7 @@ license = { workspace = true } repository = { workspace = true } [features] -cycle-tracker = ["flate2", "guests/cycle-tracker", "zeth-core/cycle-tracker"] +cycle-tracker = ["flate2", "reth-evm", "guests/cycle-tracker", "zeth-core/cycle-tracker"] unsafe-pre-merge = ["guests/unsafe-pre-merge", "zeth-core/unsafe-pre-merge"] [dependencies] @@ -20,7 +20,7 @@ flate2 = { workspace = true, optional = true } guests = { workspace = true } reth-chainspec = { workspace = true } reth-ethereum-primitives = { workspace = true } -reth-evm = { workspace = true } +reth-evm = { workspace = true, optional = true } reth-stateless = { workspace = true } risc0-zkvm = { workspace = true } serde = { workspace = true, features = ["derive"] } @@ -35,3 +35,6 @@ zeth-core = { workspace = true } [dev-dependencies] serde_json = { workspace = true, features = ["raw_value"] } test-log = { workspace = true } + +[lints] +workspace = true diff --git a/crates/host/src/cycle_tracker.rs b/crates/host/src/cycle_tracker.rs index 120c5cbbc..83b3be777 100644 --- a/crates/host/src/cycle_tracker.rs +++ b/crates/host/src/cycle_tracker.rs @@ -18,10 +18,10 @@ use risc0_zkvm::ExecutorEnvBuilder; use std::sync::Arc; #[cfg(feature = "cycle-tracker")] -pub use implementation::*; +pub(crate) use implementation::*; #[cfg(not(feature = "cycle-tracker"))] -pub use noop::*; +pub(crate) use noop::*; #[cfg(feature = "cycle-tracker")] mod implementation { @@ -44,7 +44,7 @@ mod implementation { const TRACE_FILE_ENV: &str = "TRACE_FILE"; const DEFAULT_TRACE_FILE: &str = "trace.json.gz"; - pub struct HostCycleTracker { + pub(crate) struct HostCycleTracker { metrics: HashMap>, precompiles: AddressMap<&'static str>, } @@ -57,7 +57,7 @@ mod implementation { impl HostCycleTracker { const UNKNOWN_LABEL: &'static str = "unknown"; - pub fn new(chain_spec: Arc, header: &Header) -> Self { + pub(crate) fn new(chain_spec: Arc, header: &Header) -> Self { // initialize precompiles map for decoding addresses let spec_id = EthEvmConfig::new(chain_spec).evm_env(header).unwrap().cfg_env.spec; let precompiles = Precompiles::new(PrecompileSpecId::from_spec_id(spec_id)).inner(); @@ -69,7 +69,7 @@ mod implementation { } /// Attaches the cycle tracker to the zkVM executor environment. - pub fn attach<'a>(&'a mut self, env_builder: &mut ExecutorEnvBuilder<'a>) { + pub(crate) fn attach<'a>(&'a mut self, env_builder: &mut ExecutorEnvBuilder<'a>) { let collector = TraceCollector::new(move |event| { self.process(event); }); @@ -96,7 +96,7 @@ mod implementation { /// /// The output path is determined by the `TRACE_FILE` environment variable, defaulting to /// `trace.json.gz` if unset. - pub fn save(self) -> anyhow::Result<()> { + pub(crate) fn save(self) -> anyhow::Result<()> { let path = env::var_os(TRACE_FILE_ENV).unwrap_or(DEFAULT_TRACE_FILE.into()); let file = File::create(path)?; let encoder = GzEncoder::new(BufWriter::new(file), Compression::fast()); @@ -111,16 +111,16 @@ mod implementation { mod noop { use super::*; - pub struct HostCycleTracker; + pub(crate) struct HostCycleTracker; impl HostCycleTracker { - pub fn new(_: Arc, _: &Header) -> Self { + pub(crate) fn new(_: Arc, _: &Header) -> Self { Self } - pub fn attach(&mut self, _: &mut ExecutorEnvBuilder) {} + pub(crate) fn attach(&mut self, _: &mut ExecutorEnvBuilder) {} - pub fn save(self) -> anyhow::Result<()> { + pub(crate) fn save(self) -> anyhow::Result<()> { Ok(()) } } From 9c269055ccd2a24cc35cda7d70080f37642b4dce Mon Sep 17 00:00:00 2001 From: Wolfgang Welz Date: Tue, 10 Mar 2026 16:52:01 +0100 Subject: [PATCH 20/22] minor fixes --- crates/core/src/cycle_tracker/evm.rs | 2 +- crates/core/src/cycle_tracker/tracer.rs | 9 ++++++-- crates/host/src/cycle_tracker.rs | 2 +- scripts/benchmark.py | 25 ++++++++++++++++----- scripts/trace.py | 30 ++++++++++++++++++------- 5 files changed, 50 insertions(+), 18 deletions(-) diff --git a/crates/core/src/cycle_tracker/evm.rs b/crates/core/src/cycle_tracker/evm.rs index 7b2852895..52b381be5 100644 --- a/crates/core/src/cycle_tracker/evm.rs +++ b/crates/core/src/cycle_tracker/evm.rs @@ -232,7 +232,7 @@ impl Inspector for CycleTrackerInspector<'_> { FrameInput::Call(input) => input.gas_limit, FrameInput::Create(input) => input.gas_limit(), }; - gas -= gas_limit; + gas = gas.saturating_sub(gas_limit); } self.tracer.exit_with_gas(opcode, gas) } diff --git a/crates/core/src/cycle_tracker/tracer.rs b/crates/core/src/cycle_tracker/tracer.rs index a79224f8e..541050f50 100644 --- a/crates/core/src/cycle_tracker/tracer.rs +++ b/crates/core/src/cycle_tracker/tracer.rs @@ -129,7 +129,7 @@ impl<'a> CycleTracer<'a> { /// Records the end of a traced section with an associated gas metric. /// /// It captures the current cycle count and provided `gas` value (typically cumulative gas - /// spent).If the pending enter event matches this exit (same ID), the tracer emits a single + /// spent). If the pending enter event matches this exit (same ID), the tracer emits a single /// event containing the net cycles and gas used. pub fn exit_with_gas(&mut self, id: impl IntoTraceId<'a>, gas: u64) { let cycles = platform::cycle_count(); @@ -138,7 +138,12 @@ impl<'a> CycleTracer<'a> { None => self.send(EventKind::Exit, id, cycles, gas), Some((enter_id, enter_cycles, enter_gas)) => { if enter_id == id { - self.send(EventKind::Complete, id, cycles - enter_cycles, gas - enter_gas); + self.send( + EventKind::Complete, + id, + cycles.saturating_sub(enter_cycles), + gas.saturating_sub(enter_gas), + ); } else { self.send(EventKind::Enter, enter_id, enter_cycles, enter_gas); self.send(EventKind::Exit, id, cycles, gas); diff --git a/crates/host/src/cycle_tracker.rs b/crates/host/src/cycle_tracker.rs index 83b3be777..ca3c187a8 100644 --- a/crates/host/src/cycle_tracker.rs +++ b/crates/host/src/cycle_tracker.rs @@ -78,7 +78,7 @@ mod implementation { fn process(&mut self, event: TraceEvent) { let key = match event.id { - TraceId::Custom(str) => str.into_owned(), + TraceId::Custom(s) => s.into_owned(), TraceId::Opcode(op) => match OpCode::new(op) { Some(opcode) => opcode.to_string(), None => Self::UNKNOWN_LABEL.to_string(), diff --git a/scripts/benchmark.py b/scripts/benchmark.py index bbb09165c..e102d3d7c 100755 --- a/scripts/benchmark.py +++ b/scripts/benchmark.py @@ -2,6 +2,9 @@ import argparse, glob, json, os, re, subprocess, sys, urllib.request from concurrent.futures import ThreadPoolExecutor +from pathlib import Path + +_CACHE_RE = re.compile(r"^input_(0x[0-9a-fA-F]+)(?:\.v(\d))?$") # Configuration ETH_RPC_URL = os.environ.get("ETH_RPC_URL", "https://ethereum-rpc.publicnode.com") @@ -9,6 +12,18 @@ CSV_FILE = "block-benchmarks.csv" +def find_cached_blocks(): + best = {} # block_hash -> version + for f in glob.glob("cache/input_0x*.json"): + m = _CACHE_RE.match(Path(f).stem) + if not m: + continue + block_hash, ver = m.group(1), int(m.group(2) or 0) + if ver > best.get(block_hash, -1): + best[block_hash] = ver + return list(best) + + def build(): print("Building for raw performance (tracing disabled)...") subprocess.check_call(["cargo", "build", "--release"]) @@ -68,9 +83,7 @@ def get_val(pattern, default="N/A"): ] -def run_benchmark(file_path): - # cache/input_0x1234.json -> 0x1234 - block_hash = os.path.basename(file_path).replace("input_", "").replace(".json", "") +def run_benchmark(block_hash): print(f"Benchmarking block: {block_hash}") my_env = os.environ.copy() @@ -95,8 +108,8 @@ def main(): build() - files = glob.glob("cache/input_0x*.json") - print(f"Benchmarking {len(files)} blocks with {args.jobs} jobs...") + blocks = find_cached_blocks() + print(f"Benchmarking {len(blocks)} blocks with {args.jobs} jobs...") # Write Header with open(CSV_FILE, "w") as f: @@ -104,7 +117,7 @@ def main(): "block_number,execution_time,total_cycles,user_cycles,paging_cycles,bigint_cycles,keccak_calls,gas_used\n") with ThreadPoolExecutor(max_workers=args.jobs) as executor: - for result in executor.map(run_benchmark, files): + for result in executor.map(run_benchmark, blocks): if result: with open(CSV_FILE, "a") as f: f.write(",".join(result) + "\n") diff --git a/scripts/trace.py b/scripts/trace.py index dea6796e0..f4d4e9181 100755 --- a/scripts/trace.py +++ b/scripts/trace.py @@ -1,7 +1,12 @@ -import argparse, csv, glob, gzip, json, os, subprocess, sys, tempfile +#!/usr/bin/env python3 + +import argparse, csv, glob, gzip, json, os, re, subprocess, sys, tempfile from array import array from concurrent.futures import ThreadPoolExecutor from collections import defaultdict +from pathlib import Path + +_CACHE_RE = re.compile(r"^input_(0x[0-9a-fA-F]+)(?:\.v(\d))?$") # Configuration ETH_RPC_URL = os.environ.get("ETH_RPC_URL", "https://ethereum-rpc.publicnode.com") @@ -9,6 +14,18 @@ CSV_FILE = "opcode-profile.csv" +def find_cached_blocks(): + best = {} # block_hash -> version + for f in glob.glob("cache/input_0x*.json"): + m = _CACHE_RE.match(Path(f).stem) + if not m: + continue + block_hash, ver = m.group(1), int(m.group(2) or 0) + if ver > best.get(block_hash, -1): + best[block_hash] = ver + return list(best) + + def build(): print("Building with cycle-tracker enabled...") subprocess.check_call( @@ -16,10 +33,7 @@ def build(): ) -def run_trace(file_path, output_dir): - # cache/input_0x1234.v2.json -> 0x1234 - block_hash = os.path.basename(file_path).replace("input_", "").replace(".v2.json", "") - +def run_trace(block_hash, output_dir): # Create a unique path inside the temporary directory trace_file = os.path.join(output_dir, f"trace_{block_hash}.json.gz") @@ -118,15 +132,15 @@ def main(): build() - files = glob.glob("cache/input_0x*.v2.json") - print(f"Profiling {len(files)} blocks with {args.jobs} jobs...") + blocks = find_cached_blocks() + print(f"Profiling {len(blocks)} blocks with {args.jobs} jobs...") with tempfile.TemporaryDirectory() as temp_dir: print(f"Using temporary directory: {temp_dir}") generated_files = [] with ThreadPoolExecutor(max_workers=args.jobs) as executor: - for res in executor.map(lambda file: run_trace(file, temp_dir), files): + for res in executor.map(lambda h: run_trace(h, temp_dir), blocks): if res: generated_files.append(res) From c6793300561be575cce54c77e135f3c163d3d4f7 Mon Sep 17 00:00:00 2001 From: Wolfgang Welz Date: Tue, 10 Mar 2026 16:55:41 +0100 Subject: [PATCH 21/22] minor fixes --- scripts/benchmark.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/benchmark.py b/scripts/benchmark.py index e102d3d7c..5d29f5311 100755 --- a/scripts/benchmark.py +++ b/scripts/benchmark.py @@ -95,7 +95,7 @@ def run_benchmark(block_hash): try: result = subprocess.run(cmd, env=my_env, capture_output=True, text=True, check=True) - return parse_metrics(block_hash, result.stdout) + return parse_metrics(block_hash, result.stdout + result.stderr) except subprocess.CalledProcessError as e: print(f"Error proving {block_hash}: {e.stderr}", file=sys.stderr) return None From cf812e806e32a91d345a99599a11b52c5e627eec Mon Sep 17 00:00:00 2001 From: Wolfgang Welz Date: Wed, 13 May 2026 16:20:11 +0200 Subject: [PATCH 22/22] fix: adapt cycle tracker to reth v2.1.0 API Updates CycleTrackerBlockExecutor to match BasicBlockExecutor in reth v2.1.0: relocates BlockExecutionError import, drops the now-default without_state_clear(), and threads &'a mut State through BlockExecutorFor. Replaces deprecated Gas::spent() with Gas::total_gas_spent() and aligns the field name with reth's strategy_factory. --- crates/core/src/cycle_tracker/evm.rs | 30 ++++++++++----------- guests/stateless-client/Cargo.lock | 39 ++++++++++++++++++++++++++++ 2 files changed, 54 insertions(+), 15 deletions(-) diff --git a/crates/core/src/cycle_tracker/evm.rs b/crates/core/src/cycle_tracker/evm.rs index 52b381be5..01eea7e9e 100644 --- a/crates/core/src/cycle_tracker/evm.rs +++ b/crates/core/src/cycle_tracker/evm.rs @@ -13,11 +13,10 @@ // limitations under the License. use super::tracer::CycleTracer; -use reth_errors::BlockExecutionError; use reth_evm::{ ConfigureEvm, Database, EvmEnvFor, EvmFactory, ExecutionCtxFor, OnStateHook, block::{BlockExecutionResult, BlockExecutorFactory, BlockExecutorFor}, - execute::{BlockExecutor, Executor}, + execute::{BlockExecutionError, BlockExecutor, Executor}, revm::{ Inspector, context::{ContextTr, JournalTr}, @@ -106,15 +105,14 @@ where } struct CycleTrackerBlockExecutor { - factory: F, + strategy_factory: F, db: State, } impl CycleTrackerBlockExecutor { - pub(crate) fn new(factory: F, db: DB) -> Self { - let db = - State::builder().with_database(db).with_bundle_update().without_state_clear().build(); - Self { factory, db } + pub(crate) fn new(strategy_factory: F, db: DB) -> Self { + let db = State::builder().with_database(db).with_bundle_update().build(); + Self { strategy_factory, db } } } @@ -133,18 +131,19 @@ where impl BlockExecutorFor< 'a, ::BlockExecutorFactory, - DB, + &'a mut State, CycleTrackerInspector<'a>, >, ::Error, > { - let evm_env = self.factory.evm_env(block.header())?; + let evm_env = self.strategy_factory.evm_env(block.header())?; let inspector = CycleTrackerInspector::default(); - let evm = self.factory.evm_with_env_and_inspector(&mut self.db, evm_env, inspector); + let evm = + self.strategy_factory.evm_with_env_and_inspector(&mut self.db, evm_env, inspector); - let ctx = self.factory.context_for_block(block)?; - Ok(self.factory.create_executor(evm, ctx)) + let ctx = self.strategy_factory.context_for_block(block)?; + Ok(self.strategy_factory.create_executor(evm, ctx)) } } @@ -216,13 +215,13 @@ impl Inspector for CycleTrackerInspector<'_> { // keep track of the last opcode executed self.last_opcode = Some(opcode); - self.tracer.enter_with_gas(opcode, interp.gas.spent()) + self.tracer.enter_with_gas(opcode, interp.gas.total_gas_spent()) } #[inline] fn step_end(&mut self, interp: &mut Interpreter, _context: &mut CTX) { if let Some(opcode) = self.last_opcode.take() { - let mut gas = interp.gas.spent(); + let mut gas = interp.gas.total_gas_spent(); // Calls and creations include the gas limit in the gas cost. We need to subtract this // amount because we want to track how much gas the opcode itself consumes. @@ -251,7 +250,8 @@ impl Inspector for CycleTrackerInspector<'_> { #[inline] fn call_end(&mut self, _context: &mut CTX, inputs: &CallInputs, outcome: &mut CallOutcome) { if self.in_precompile { - self.tracer.exit_with_gas(inputs.bytecode_address, outcome.result.gas.spent()); + self.tracer + .exit_with_gas(inputs.bytecode_address, outcome.result.gas.total_gas_spent()); } } } diff --git a/guests/stateless-client/Cargo.lock b/guests/stateless-client/Cargo.lock index 618daf21f..ef0737c51 100644 --- a/guests/stateless-client/Cargo.lock +++ b/guests/stateless-client/Cargo.lock @@ -804,6 +804,15 @@ version = "0.7.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7c02d123df017efcdfbd739ef81735b36c5ba83ec3c59c80a9d7ecc718f92e50" +[[package]] +name = "atomic-polyfill" +version = "1.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8cf2bce30dfe09ef0bfaef228b9d414faaf7e563035494d7fe092dba54b300f4" +dependencies = [ + "critical-section", +] + [[package]] name = "atomic-waker" version = "1.1.2" @@ -1952,6 +1961,15 @@ dependencies = [ "subtle", ] +[[package]] +name = "hash32" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b0c35f58762feb77d74ebe43bdbc3210f09be9fe6742234d573bacc26ed92b67" +dependencies = [ + "byteorder", +] + [[package]] name = "hashbrown" version = "0.12.3" @@ -2000,6 +2018,20 @@ dependencies = [ "hashbrown 0.15.5", ] +[[package]] +name = "heapless" +version = "0.7.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cdc6457c0eb62c71aac4bc17216026d8410337c4126773b9c5daba343f17964f" +dependencies = [ + "atomic-polyfill", + "hash32", + "rustc_version 0.4.1", + "serde", + "spin", + "stable_deref_trait", +] + [[package]] name = "heck" version = "0.5.0" @@ -3001,6 +3033,7 @@ dependencies = [ "cobs", "embedded-io 0.4.0", "embedded-io 0.6.1", + "heapless", "serde", ] @@ -4734,6 +4767,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" @@ -5991,6 +6027,7 @@ version = "0.3.0" dependencies = [ "alloy-primitives", "alloy-rlp", + "postcard", "reth-chainspec", "reth-ethereum-primitives", "reth-evm", @@ -5999,8 +6036,10 @@ dependencies = [ "reth-trie-common", "risc0-crypto-evm", "risc0-ethereum-trie", + "risc0-zkvm", "serde", "stateless", + "tracing", "tries", ]