From b479b3439c7bfcad36c30332e9a7cd64d5edcc22 Mon Sep 17 00:00:00 2001 From: Emilia Hane Date: Tue, 4 Feb 2025 11:23:35 +0100 Subject: [PATCH] feat(no_std): Add `no_std` support for `reth-storage-api` (#14187) Co-authored-by: Matthias Seitz --- Cargo.lock | 229 +++++++++--------- .../primitives/src/transaction/signed.rs | 1 - crates/optimism/rpc/src/eth/transaction.rs | 1 - crates/storage/storage-api/Cargo.toml | 13 + crates/storage/storage-api/src/account.rs | 9 +- crates/storage/storage-api/src/block.rs | 5 +- crates/storage/storage-api/src/block_hash.rs | 1 + .../storage/storage-api/src/block_indices.rs | 3 +- crates/storage/storage-api/src/chain.rs | 4 +- crates/storage/storage-api/src/chain_info.rs | 7 +- .../storage-api/src/database_provider.rs | 3 +- crates/storage/storage-api/src/hashing.rs | 6 +- crates/storage/storage-api/src/header.rs | 3 +- crates/storage/storage-api/src/history.rs | 2 +- crates/storage/storage-api/src/legacy.rs | 1 + crates/storage/storage-api/src/lib.rs | 3 + crates/storage/storage-api/src/noop.rs | 26 +- crates/storage/storage-api/src/ommers.rs | 3 +- .../storage-api/src/prune_checkpoint.rs | 1 + crates/storage/storage-api/src/receipts.rs | 3 +- .../storage-api/src/stage_checkpoint.rs | 1 + crates/storage/storage-api/src/state.rs | 1 + crates/storage/storage-api/src/storage.rs | 9 +- .../storage/storage-api/src/transactions.rs | 3 +- 24 files changed, 179 insertions(+), 159 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index fc472c9a0..dae3fbee1 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -175,9 +175,9 @@ dependencies = [ [[package]] name = "alloy-dyn-abi" -version = "0.8.19" +version = "0.8.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bc9138f4f0912793642d453523c3116bd5d9e11de73b70177aa7cb3e94b98ad2" +checksum = "7f2d547eba3f2d331b0e08f64a24e202f66d4f291e2a3e0073914c0e1400ced3" dependencies = [ "alloy-json-abi", "alloy-primitives", @@ -188,7 +188,7 @@ dependencies = [ "itoa", "serde", "serde_json", - "winnow 0.6.26", + "winnow", ] [[package]] @@ -273,9 +273,9 @@ dependencies = [ [[package]] name = "alloy-json-abi" -version = "0.8.19" +version = "0.8.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "24acd2f5ba97c7a320e67217274bc81fe3c3174b8e6144ec875d9d54e760e278" +checksum = "d62cf1b25f5a50ca2d329b0b4aeb0a0dedeaf225ad3c5099d83b1a4c4616186e" dependencies = [ "alloy-primitives", "alloy-sol-type-parser", @@ -354,9 +354,9 @@ dependencies = [ [[package]] name = "alloy-primitives" -version = "0.8.19" +version = "0.8.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ec878088ec6283ce1e90d280316aadd3d6ce3de06ff63d68953c855e7e447e92" +checksum = "bc1360603efdfba91151e623f13a4f4d3dc4af4adc1cbd90bf37c81e84db4c77" dependencies = [ "alloy-rlp", "arbitrary", @@ -462,7 +462,7 @@ checksum = "a40e1ef334153322fd878d07e86af7a529bcb86b2439525920a88eba87bcf943" dependencies = [ "proc-macro2", "quote", - "syn 2.0.97", + "syn 2.0.98", ] [[package]] @@ -694,23 +694,23 @@ dependencies = [ [[package]] name = "alloy-sol-macro" -version = "0.8.19" +version = "0.8.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8d039d267aa5cbb7732fa6ce1fd9b5e9e29368f580f80ba9d7a8450c794de4b2" +checksum = "13f28f2131dc3a7b8e2cda882758ad4d5231ca26281b9861d4b18c700713e2da" dependencies = [ "alloy-sol-macro-expander", "alloy-sol-macro-input", "proc-macro-error2", "proc-macro2", "quote", - "syn 2.0.97", + "syn 2.0.98", ] [[package]] name = "alloy-sol-macro-expander" -version = "0.8.19" +version = "0.8.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "620ae5eee30ee7216a38027dec34e0585c55099f827f92f50d11e3d2d3a4a954" +checksum = "1ee2da033256a3b27131c030933eab0460a709fbcc4d4bd57bf9a5650b2441c5" dependencies = [ "alloy-sol-macro-input", "const-hex", @@ -719,41 +719,41 @@ dependencies = [ "proc-macro-error2", "proc-macro2", "quote", - "syn 2.0.97", + "syn 2.0.98", "syn-solidity", "tiny-keccak", ] [[package]] name = "alloy-sol-macro-input" -version = "0.8.19" +version = "0.8.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ad9f7d057e00f8c5994e4ff4492b76532c51ead39353aa2ed63f8c50c0f4d52e" +checksum = "4e9d9918b0abb632818bf27e2dfb86b209be8433baacf22100b190bbc0904bd4" dependencies = [ "const-hex", "dunce", "heck", "proc-macro2", "quote", - "syn 2.0.97", + "syn 2.0.98", "syn-solidity", ] [[package]] name = "alloy-sol-type-parser" -version = "0.8.19" +version = "0.8.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "74e60b084fe1aef8acecda2743ff2d93c18ff3eb67a2d3b12f62582a1e66ef5e" +checksum = "a971129d242338d92009470a2f750d3b2630bc5da00a40a94d51f5d456b5712f" dependencies = [ "serde", - "winnow 0.6.26", + "winnow", ] [[package]] name = "alloy-sol-types" -version = "0.8.19" +version = "0.8.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c1382302752cd751efd275f4d6ef65877ddf61e0e6f5ac84ef4302b79a33a31a" +checksum = "75f306fc801b3aa2e3c4785b7b5252ec8b19f77b30e3b75babfd23849c81bd8c" dependencies = [ "alloy-json-abi", "alloy-primitives", @@ -942,7 +942,7 @@ dependencies = [ "proc-macro-error2", "proc-macro2", "quote", - "syn 2.0.97", + "syn 2.0.98", ] [[package]] @@ -1140,7 +1140,7 @@ checksum = "3b43422f69d8ff38f95f1b2bb76517c91589a924d1559a0e935d7c8ce0274c11" dependencies = [ "proc-macro2", "quote", - "syn 2.0.97", + "syn 2.0.98", ] [[package]] @@ -1176,7 +1176,7 @@ checksum = "c7c24de15d275a1ecfd47a380fb4d5ec9bfe0933f309ed5e705b775596a3574d" dependencies = [ "proc-macro2", "quote", - "syn 2.0.97", + "syn 2.0.98", ] [[package]] @@ -1187,7 +1187,7 @@ checksum = "644dd749086bf3771a2fbc5f256fdb982d53f011c7d5d560304eafeecebce79d" dependencies = [ "proc-macro2", "quote", - "syn 2.0.97", + "syn 2.0.98", ] [[package]] @@ -1225,7 +1225,7 @@ checksum = "e12882f59de5360c748c4cbf569a042d5fb0eb515f7bea9c1f470b47f6ffbd73" dependencies = [ "proc-macro2", "quote", - "syn 2.0.97", + "syn 2.0.98", ] [[package]] @@ -1331,7 +1331,7 @@ dependencies = [ "regex", "rustc-hash 1.1.0", "shlex", - "syn 2.0.97", + "syn 2.0.98", ] [[package]] @@ -1527,7 +1527,7 @@ checksum = "9fd3f870829131332587f607a7ff909f1af5fc523fd1b192db55fbbdf52e8d3c" dependencies = [ "proc-macro2", "quote", - "syn 2.0.97", + "syn 2.0.98", "synstructure", ] @@ -1649,7 +1649,7 @@ checksum = "3fa76293b4f7bb636ab88fd78228235b5248b4d05cc589aed610f954af5d7c7a" dependencies = [ "proc-macro2", "quote", - "syn 2.0.97", + "syn 2.0.98", ] [[package]] @@ -1660,9 +1660,9 @@ checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b" [[package]] name = "bytes" -version = "1.9.0" +version = "1.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "325918d6fe32f23b19878fe4b34794ae41fc19ddbe53b10571a4874d44ffd39b" +checksum = "f61dac84819c6588b558454b194026eb1f09c293b9036ae9b159e74e73ab6cf9" dependencies = [ "serde", ] @@ -1838,9 +1838,9 @@ dependencies = [ [[package]] name = "clap" -version = "4.5.27" +version = "4.5.28" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "769b0145982b4b48713e01ec42d61614425f27b7058bda7180a3a41f30104796" +checksum = "3e77c3243bd94243c03672cb5154667347c457ca271254724f9f393aee1c05ff" dependencies = [ "clap_builder", "clap_derive", @@ -1860,14 +1860,14 @@ dependencies = [ [[package]] name = "clap_derive" -version = "4.5.24" +version = "4.5.28" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "54b755194d6389280185988721fffba69495eed5ee9feeee9a599b53db80318c" +checksum = "bf4ced95c6f4a675af3da73304b9ac4ed991640c36374e4b46795c49e17cf1ed" dependencies = [ "heck", "proc-macro2", "quote", - "syn 2.0.97", + "syn 2.0.98", ] [[package]] @@ -2349,7 +2349,7 @@ checksum = "f46882e17999c6cc590af592290432be3bce0428cb0d5f8b6715e4dc7b383eb3" dependencies = [ "proc-macro2", "quote", - "syn 2.0.97", + "syn 2.0.98", ] [[package]] @@ -2373,7 +2373,7 @@ dependencies = [ "proc-macro2", "quote", "strsim", - "syn 2.0.97", + "syn 2.0.98", ] [[package]] @@ -2384,7 +2384,7 @@ checksum = "d336a2a514f6ccccaa3e09b02d41d35330c07ddf03a62165fcec10bb561c7806" dependencies = [ "darling_core", "quote", - "syn 2.0.97", + "syn 2.0.98", ] [[package]] @@ -2425,7 +2425,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1145d32e826a7748b69ee8fc62d3e6355ff7f1051df53141e7048162fc90481b" dependencies = [ "data-encoding", - "syn 2.0.97", + "syn 2.0.98", ] [[package]] @@ -2493,7 +2493,7 @@ checksum = "30542c1ad912e0e3d22a1935c290e12e8a29d704a420177a31faad4a601a0800" dependencies = [ "proc-macro2", "quote", - "syn 2.0.97", + "syn 2.0.98", ] [[package]] @@ -2514,7 +2514,7 @@ dependencies = [ "convert_case", "proc-macro2", "quote", - "syn 2.0.97", + "syn 2.0.98", "unicode-xid", ] @@ -2628,7 +2628,7 @@ checksum = "97369cbbc041bc366949bc74d34658d6cda5621039731c6310521892a3a20ae0" dependencies = [ "proc-macro2", "quote", - "syn 2.0.97", + "syn 2.0.98", ] [[package]] @@ -2774,7 +2774,7 @@ dependencies = [ "heck", "proc-macro2", "quote", - "syn 2.0.97", + "syn 2.0.98", ] [[package]] @@ -2785,7 +2785,7 @@ checksum = "2f9ed6b3789237c8a0c1c505af1c7eb2c560df6186f01b098c3a1064ea532f38" dependencies = [ "proc-macro2", "quote", - "syn 2.0.97", + "syn 2.0.98", ] [[package]] @@ -2805,7 +2805,7 @@ checksum = "3bf679796c0322556351f287a51b49e48f7c4986e727b5dd78c972d30e2e16cc" dependencies = [ "proc-macro2", "quote", - "syn 2.0.97", + "syn 2.0.98", ] [[package]] @@ -2861,7 +2861,7 @@ dependencies = [ "darling", "proc-macro2", "quote", - "syn 2.0.97", + "syn 2.0.98", ] [[package]] @@ -3435,7 +3435,7 @@ checksum = "162ee34ebcb7c64a8abebc059ce0fee27c2262618d7b60ed8faf72fef13c3650" dependencies = [ "proc-macro2", "quote", - "syn 2.0.97", + "syn 2.0.98", ] [[package]] @@ -4128,7 +4128,7 @@ checksum = "1ec89e9337638ecdc08744df490b221a7399bf8d164eb52a665454e60e075ad6" dependencies = [ "proc-macro2", "quote", - "syn 2.0.97", + "syn 2.0.98", ] [[package]] @@ -4185,7 +4185,7 @@ checksum = "a0eb5a3343abf848c0984fe4604b2b105da9539376e24fc0a3b0007411ae4fd9" dependencies = [ "proc-macro2", "quote", - "syn 2.0.97", + "syn 2.0.98", ] [[package]] @@ -4306,7 +4306,7 @@ dependencies = [ "indoc", "proc-macro2", "quote", - "syn 2.0.97", + "syn 2.0.98", ] [[package]] @@ -4564,7 +4564,7 @@ dependencies = [ "proc-macro-crate", "proc-macro2", "quote", - "syn 2.0.97", + "syn 2.0.98", ] [[package]] @@ -4962,7 +4962,7 @@ dependencies = [ "proc-macro2", "quote", "regex", - "syn 2.0.97", + "syn 2.0.98", ] [[package]] @@ -5351,7 +5351,7 @@ dependencies = [ "proc-macro-crate", "proc-macro2", "quote", - "syn 2.0.97", + "syn 2.0.98", ] [[package]] @@ -5404,9 +5404,9 @@ checksum = "b410bbe7e14ab526a0e86877eb47c6996a2bd7746f027ba551028c925390e4e9" [[package]] name = "op-alloy-consensus" -version = "0.10.0" +version = "0.10.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "36e8e67b41afd338096ca31f24c5e7800797858b963490be2e8971d17d733f49" +checksum = "5275708d0f67d5d8e85ee6bed0882ec4acb74a757f0ecdcd210f18bfcea8fedb" dependencies = [ "alloy-consensus", "alloy-eips", @@ -5422,15 +5422,15 @@ dependencies = [ [[package]] name = "op-alloy-flz" -version = "0.10.0" +version = "0.10.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f5402b85f0fa22712960498c3a123875d7b53da21928b24a8f8667babb268c4c" +checksum = "12c334b6d83b097deac10dd6c83d829975331d42664ec1488c2cbb888b45b707" [[package]] name = "op-alloy-network" -version = "0.10.0" +version = "0.10.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b062f0c57e8b910f9ec1222b6fba2dddd7e33fb7b139a68556a7390d40b03624" +checksum = "cd4a73bca68a8b6c9e14b632b8db9b3f6aeafe4af3fcd072af8f4e98b9e8d37d" dependencies = [ "alloy-consensus", "alloy-network", @@ -5443,9 +5443,9 @@ dependencies = [ [[package]] name = "op-alloy-rpc-jsonrpsee" -version = "0.10.0" +version = "0.10.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "31e5288739ee87d1fbf1c7e09e991ead1f86f01aea63bf91e8530cde4faa7713" +checksum = "4ed8cd3b7ef9984ccbc8acd5185c3323e240f6cf6539d9f6678b468f68926317" dependencies = [ "alloy-primitives", "jsonrpsee", @@ -5453,9 +5453,9 @@ dependencies = [ [[package]] name = "op-alloy-rpc-types" -version = "0.10.0" +version = "0.10.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "06d55acda15bd273d1d9a052536cf46c3520f597ac9884376c9c56241f2f5e9b" +checksum = "80f4778cdeb5af964d22a87b25be99dcb9a68a63e3ec4effc196df76d127a65a" dependencies = [ "alloy-consensus", "alloy-eips", @@ -5471,9 +5471,9 @@ dependencies = [ [[package]] name = "op-alloy-rpc-types-engine" -version = "0.10.0" +version = "0.10.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "26c6735ec88e69917c0cb0a3ee60ad7e5cd14dcb905a6ca55fbc7004b72c5e20" +checksum = "804a85282dcf9280eb58f04ca1f744a40f44ee2a113b9dff75add05c7e73de66" dependencies = [ "alloy-eips", "alloy-primitives", @@ -5701,7 +5701,7 @@ dependencies = [ "phf_shared", "proc-macro2", "quote", - "syn 2.0.97", + "syn 2.0.98", ] [[package]] @@ -5715,22 +5715,22 @@ dependencies = [ [[package]] name = "pin-project" -version = "1.1.8" +version = "1.1.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e2ec53ad785f4d35dac0adea7f7dc6f1bb277ad84a680c7afefeae05d1f5916" +checksum = "dfe2e71e1471fe07709406bf725f710b02927c9c54b2b5b2ec0e8087d97c327d" dependencies = [ "pin-project-internal", ] [[package]] name = "pin-project-internal" -version = "1.1.8" +version = "1.1.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d56a66c0c55993aa927429d0f8a0abfd74f084e4d9c192cffed01e418d83eefb" +checksum = "f6e859e6e5bd50440ab63c47e3ebabc90f26251f7c73c3d3e837b74a1cc3fa67" dependencies = [ "proc-macro2", "quote", - "syn 2.0.97", + "syn 2.0.98", ] [[package]] @@ -5877,7 +5877,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6924ced06e1f7dfe3fa48d57b9f74f55d8915f5036121bef647ef4b204895fac" dependencies = [ "proc-macro2", - "syn 2.0.97", + "syn 2.0.98", ] [[package]] @@ -5928,7 +5928,7 @@ dependencies = [ "proc-macro-error-attr2", "proc-macro2", "quote", - "syn 2.0.97", + "syn 2.0.98", ] [[package]] @@ -6026,7 +6026,7 @@ checksum = "4ee1c9ac207483d5e7db4940700de86a9aae46ef90c48b57f99fe7edb8345e49" dependencies = [ "proc-macro2", "quote", - "syn 2.0.97", + "syn 2.0.98", ] [[package]] @@ -6739,7 +6739,7 @@ dependencies = [ "proc-macro2", "quote", "similar-asserts", - "syn 2.0.97", + "syn 2.0.98", ] [[package]] @@ -9724,7 +9724,7 @@ dependencies = [ "regex", "relative-path", "rustc_version 0.4.1", - "syn 2.0.97", + "syn 2.0.98", "unicode-ident", ] @@ -10127,7 +10127,7 @@ checksum = "5a9bf7cf98d04a2b28aead066b7496853d4779c9cc183c440dbac457641e19a0" dependencies = [ "proc-macro2", "quote", - "syn 2.0.97", + "syn 2.0.98", ] [[package]] @@ -10202,7 +10202,7 @@ dependencies = [ "darling", "proc-macro2", "quote", - "syn 2.0.97", + "syn 2.0.98", ] [[package]] @@ -10235,7 +10235,7 @@ checksum = "5d69265a08751de7844521fd15003ae0a888e035773ba05695c5c759a6f89eef" dependencies = [ "proc-macro2", "quote", - "syn 2.0.97", + "syn 2.0.98", ] [[package]] @@ -10537,7 +10537,7 @@ dependencies = [ "proc-macro2", "quote", "rustversion", - "syn 2.0.97", + "syn 2.0.98", ] [[package]] @@ -10595,9 +10595,9 @@ dependencies = [ [[package]] name = "syn" -version = "2.0.97" +version = "2.0.98" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5dabd04e3b9a8c3c03d5e743f5ef5e1207befc9de704d477f7198cc28049763e" +checksum = "36147f1a48ae0ec2b5b3bc5b537d267457555a10dc06f3dbc8cb11ba3006d3b1" dependencies = [ "proc-macro2", "quote", @@ -10606,14 +10606,14 @@ dependencies = [ [[package]] name = "syn-solidity" -version = "0.8.19" +version = "0.8.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b84e4d83a0a6704561302b917a932484e1cae2d8c6354c64be8b7bac1c1fe057" +checksum = "b7f6a4b9002584ea56d0a19713b65da44cbbf6070aca9ae0360577cba5c4db68" dependencies = [ "paste", "proc-macro2", "quote", - "syn 2.0.97", + "syn 2.0.98", ] [[package]] @@ -10633,7 +10633,7 @@ checksum = "c8af7666ab7b6390ab78131fb5b0fce11d6b7a6951602017c35fa82800708971" dependencies = [ "proc-macro2", "quote", - "syn 2.0.97", + "syn 2.0.98", ] [[package]] @@ -10711,7 +10711,7 @@ dependencies = [ "prettyplease", "proc-macro2", "quote", - "syn 2.0.97", + "syn 2.0.98", ] [[package]] @@ -10759,7 +10759,7 @@ checksum = "4fee6c4efc90059e10f81e6d42c60a18f76588c3d74cb83a0b242a2b6c7504c1" dependencies = [ "proc-macro2", "quote", - "syn 2.0.97", + "syn 2.0.98", ] [[package]] @@ -10770,7 +10770,7 @@ checksum = "26afc1baea8a989337eeb52b6e72a039780ce45c3edfcc9c5b9d112feeb173c2" dependencies = [ "proc-macro2", "quote", - "syn 2.0.97", + "syn 2.0.98", ] [[package]] @@ -10927,7 +10927,7 @@ checksum = "6e06d43f1345a3bcd39f6a56dbb7dcab2ba47e68e8ac134855e7e2bdbaf8cab8" dependencies = [ "proc-macro2", "quote", - "syn 2.0.97", + "syn 2.0.98", ] [[package]] @@ -11014,7 +11014,7 @@ dependencies = [ "serde", "serde_spanned", "toml_datetime", - "winnow 0.7.0", + "winnow", ] [[package]] @@ -11128,7 +11128,7 @@ checksum = "395ae124c09f9e6918a2310af6038fba074bcf474ac352496d5910dd59a2226d" dependencies = [ "proc-macro2", "quote", - "syn 2.0.97", + "syn 2.0.98", ] [[package]] @@ -11464,14 +11464,14 @@ checksum = "d674d135b4a8c1d7e813e2f8d1c9a58308aee4a680323066025e53132218bd91" dependencies = [ "proc-macro2", "quote", - "syn 2.0.97", + "syn 2.0.98", ] [[package]] name = "wait-timeout" -version = "0.2.0" +version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9f200f5b12eb75f8c1ed65abd4b2db8a6e1b138a20de009dacee265a2498f3f6" +checksum = "09ac3b126d3914f9849036f826e054cbabdc8519970b8998ddaf3b5bd3c65f11" dependencies = [ "libc", ] @@ -11544,7 +11544,7 @@ dependencies = [ "log", "proc-macro2", "quote", - "syn 2.0.97", + "syn 2.0.98", "wasm-bindgen-shared", ] @@ -11579,7 +11579,7 @@ checksum = "8ae87ea40c9f689fc23f209965b6fb8a99ad69aeeb0231408be24920604395de" dependencies = [ "proc-macro2", "quote", - "syn 2.0.97", + "syn 2.0.98", "wasm-bindgen-backend", "wasm-bindgen-shared", ] @@ -11748,7 +11748,7 @@ checksum = "9107ddc059d5b6fbfbffdfa7a7fe3e22a226def0b2608f72e9d552763d3e1ad7" dependencies = [ "proc-macro2", "quote", - "syn 2.0.97", + "syn 2.0.98", ] [[package]] @@ -11759,7 +11759,7 @@ checksum = "2bbd5b46c938e506ecbce286b6628a02171d56153ba733b6c741fc627ec9579b" dependencies = [ "proc-macro2", "quote", - "syn 2.0.97", + "syn 2.0.98", ] [[package]] @@ -11770,7 +11770,7 @@ checksum = "29bee4b38ea3cde66011baa44dba677c432a78593e202392d1e9070cf2a7fca7" dependencies = [ "proc-macro2", "quote", - "syn 2.0.97", + "syn 2.0.98", ] [[package]] @@ -11781,7 +11781,7 @@ checksum = "053c4c462dc91d3b1504c6fe5a726dd15e216ba718e84a0e46a88fbe5ded3515" dependencies = [ "proc-macro2", "quote", - "syn 2.0.97", + "syn 2.0.98", ] [[package]] @@ -11973,18 +11973,9 @@ checksum = "589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec" [[package]] name = "winnow" -version = "0.6.26" +version = "0.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e90edd2ac1aa278a5c4599b1d89cf03074b610800f866d4026dc199d7929a28" -dependencies = [ - "memchr", -] - -[[package]] -name = "winnow" -version = "0.7.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7e49d2d35d3fad69b39b94139037ecfb4f359f08958b9c11e7315ce770462419" +checksum = "86e376c75f4f43f44db463cf729e0d3acbf954d13e22c51e26e4c264b4ab545f" dependencies = [ "memchr", ] @@ -12074,7 +12065,7 @@ checksum = "2380878cad4ac9aac1e2435f3eb4020e8374b5f13c296cb75b4620ff8e229154" dependencies = [ "proc-macro2", "quote", - "syn 2.0.97", + "syn 2.0.98", "synstructure", ] @@ -12096,7 +12087,7 @@ checksum = "fa4f8080344d4671fb4e831a13ad1e68092748387dfc4f55e356242fae12ce3e" dependencies = [ "proc-macro2", "quote", - "syn 2.0.97", + "syn 2.0.98", ] [[package]] @@ -12116,7 +12107,7 @@ checksum = "595eed982f7d355beb85837f651fa22e90b3c044842dc7f2c2842c086f295808" dependencies = [ "proc-macro2", "quote", - "syn 2.0.97", + "syn 2.0.98", "synstructure", ] @@ -12137,7 +12128,7 @@ checksum = "ce36e65b0d2999d2aafac989fb249189a141aee1f53c612c1f37d72631959f69" dependencies = [ "proc-macro2", "quote", - "syn 2.0.97", + "syn 2.0.98", ] [[package]] @@ -12159,7 +12150,7 @@ checksum = "6eafa6dfb17584ea3e2bd6e76e0cc15ad7af12b09abdd1ca55961bed9b1063c6" dependencies = [ "proc-macro2", "quote", - "syn 2.0.97", + "syn 2.0.98", ] [[package]] diff --git a/crates/optimism/primitives/src/transaction/signed.rs b/crates/optimism/primitives/src/transaction/signed.rs index 513dd6660..64790226b 100644 --- a/crates/optimism/primitives/src/transaction/signed.rs +++ b/crates/optimism/primitives/src/transaction/signed.rs @@ -166,7 +166,6 @@ impl From for OpTransactionSigned { OpTxEnvelope::Eip1559(tx) => tx.into(), OpTxEnvelope::Eip7702(tx) => tx.into(), OpTxEnvelope::Deposit(tx) => tx.into(), - _ => unreachable!(), } } } diff --git a/crates/optimism/rpc/src/eth/transaction.rs b/crates/optimism/rpc/src/eth/transaction.rs index 60a029541..e2e6adf97 100644 --- a/crates/optimism/rpc/src/eth/transaction.rs +++ b/crates/optimism/rpc/src/eth/transaction.rs @@ -169,7 +169,6 @@ where std::mem::swap(tx, &mut deposit); return } - _ => return, }; *input = input.slice(..4); } diff --git a/crates/storage/storage-api/Cargo.toml b/crates/storage/storage-api/Cargo.toml index 7ebff976d..2b6cd5bc3 100644 --- a/crates/storage/storage-api/Cargo.toml +++ b/crates/storage/storage-api/Cargo.toml @@ -34,3 +34,16 @@ alloy-consensus.workspace = true alloy-rpc-types-engine.workspace = true auto_impl.workspace = true + +[features] +default = ["std"] +std = [ + "reth-chainspec/std", + "alloy-consensus/std", + "alloy-eips/std", + "alloy-primitives/std", + "alloy-rpc-types-engine/std", + "reth-primitives/std", + "reth-primitives-traits/std", + "revm/std", +] diff --git a/crates/storage/storage-api/src/account.rs b/crates/storage/storage-api/src/account.rs index abcb289a2..b01deb359 100644 --- a/crates/storage/storage-api/src/account.rs +++ b/crates/storage/storage-api/src/account.rs @@ -1,12 +1,13 @@ +use alloc::{ + collections::{BTreeMap, BTreeSet}, + vec::Vec, +}; use alloy_primitives::{Address, BlockNumber}; use auto_impl::auto_impl; +use core::ops::{RangeBounds, RangeInclusive}; use reth_db_models::AccountBeforeTx; use reth_primitives_traits::Account; use reth_storage_errors::provider::ProviderResult; -use std::{ - collections::{BTreeMap, BTreeSet}, - ops::{RangeBounds, RangeInclusive}, -}; /// Account reader #[auto_impl(&, Arc, Box)] diff --git a/crates/storage/storage-api/src/block.rs b/crates/storage/storage-api/src/block.rs index 23c0f8460..5f0e35700 100644 --- a/crates/storage/storage-api/src/block.rs +++ b/crates/storage/storage-api/src/block.rs @@ -2,11 +2,12 @@ use crate::{ BlockBodyIndicesProvider, BlockNumReader, HeaderProvider, OmmersProvider, ReceiptProvider, ReceiptProviderIdExt, TransactionVariant, TransactionsProvider, WithdrawalsProvider, }; +use alloc::{sync::Arc, vec::Vec}; use alloy_eips::{BlockHashOrNumber, BlockId, BlockNumberOrTag}; use alloy_primitives::{BlockNumber, B256}; +use core::ops::RangeInclusive; use reth_primitives::{RecoveredBlock, SealedBlock, SealedHeader}; use reth_storage_errors::provider::ProviderResult; -use std::ops::RangeInclusive; /// A helper enum that represents the origin of the requested block. /// @@ -153,7 +154,7 @@ pub trait BlockReader: ) -> ProviderResult>>; } -impl BlockReader for std::sync::Arc { +impl BlockReader for Arc { type Block = T::Block; fn find_block_by_hash( diff --git a/crates/storage/storage-api/src/block_hash.rs b/crates/storage/storage-api/src/block_hash.rs index aa8624b83..a617d31eb 100644 --- a/crates/storage/storage-api/src/block_hash.rs +++ b/crates/storage/storage-api/src/block_hash.rs @@ -1,3 +1,4 @@ +use alloc::vec::Vec; use alloy_eips::BlockHashOrNumber; use alloy_primitives::{BlockNumber, B256}; use reth_storage_errors::provider::ProviderResult; diff --git a/crates/storage/storage-api/src/block_indices.rs b/crates/storage/storage-api/src/block_indices.rs index 3c6860fb2..5a4f1e22b 100644 --- a/crates/storage/storage-api/src/block_indices.rs +++ b/crates/storage/storage-api/src/block_indices.rs @@ -1,7 +1,8 @@ +use alloc::vec::Vec; use alloy_primitives::BlockNumber; +use core::ops::RangeInclusive; use reth_db_models::StoredBlockBodyIndices; use reth_storage_errors::provider::ProviderResult; -use std::ops::RangeInclusive; /// Client trait for fetching block body indices related data. #[auto_impl::auto_impl(&, Arc)] diff --git a/crates/storage/storage-api/src/chain.rs b/crates/storage/storage-api/src/chain.rs index 4a77c4a06..dba4428d6 100644 --- a/crates/storage/storage-api/src/chain.rs +++ b/crates/storage/storage-api/src/chain.rs @@ -1,6 +1,8 @@ use crate::{DBProvider, OmmersProvider, StorageLocation}; +use alloc::vec::Vec; use alloy_consensus::Header; use alloy_primitives::BlockNumber; +use core::marker::PhantomData; use reth_chainspec::{ChainSpecProvider, EthereumHardforks}; use reth_db::{ cursor::{DbCursorRO, DbCursorRW}, @@ -83,7 +85,7 @@ impl ChainStorageReader(std::marker::PhantomData<(T, H)>); +pub struct EthStorage(PhantomData<(T, H)>); impl Default for EthStorage { fn default() -> Self { diff --git a/crates/storage/storage-api/src/chain_info.rs b/crates/storage/storage-api/src/chain_info.rs index a15bf58a0..77b5e5ceb 100644 --- a/crates/storage/storage-api/src/chain_info.rs +++ b/crates/storage/storage-api/src/chain_info.rs @@ -1,6 +1,5 @@ use alloy_rpc_types_engine::ForkchoiceState; use reth_primitives_traits::SealedHeader; -use std::time::Instant; /// A type that can track updates related to fork choice updates. pub trait CanonChainTracker: Send + Sync { @@ -12,14 +11,16 @@ pub trait CanonChainTracker: Send + Sync { /// Returns the last time a fork choice update was received from the CL /// ([`CanonChainTracker::on_forkchoice_update_received`]) - fn last_received_update_timestamp(&self) -> Option; + #[cfg(feature = "std")] + fn last_received_update_timestamp(&self) -> Option; /// Notify the tracker about a transition configuration exchange. fn on_transition_configuration_exchanged(&self); /// Returns the last time a transition configuration was exchanged with the CL /// ([`CanonChainTracker::on_transition_configuration_exchanged`]) - fn last_exchanged_transition_configuration_timestamp(&self) -> Option; + #[cfg(feature = "std")] + fn last_exchanged_transition_configuration_timestamp(&self) -> Option; /// Sets the canonical head of the chain. fn set_canonical_head(&self, header: SealedHeader); diff --git a/crates/storage/storage-api/src/database_provider.rs b/crates/storage/storage-api/src/database_provider.rs index 20aebce88..a4c734677 100644 --- a/crates/storage/storage-api/src/database_provider.rs +++ b/crates/storage/storage-api/src/database_provider.rs @@ -1,3 +1,5 @@ +use alloc::vec::Vec; +use core::ops::{Bound, RangeBounds}; use reth_db_api::{ common::KeyValue, cursor::DbCursorRO, @@ -8,7 +10,6 @@ use reth_db_api::{ }; use reth_prune_types::PruneModes; use reth_storage_errors::provider::ProviderResult; -use std::ops::{Bound, RangeBounds}; /// Database provider. pub trait DBProvider: Send + Sync + Sized + 'static { diff --git a/crates/storage/storage-api/src/hashing.rs b/crates/storage/storage-api/src/hashing.rs index 7cd30a825..c6753e554 100644 --- a/crates/storage/storage-api/src/hashing.rs +++ b/crates/storage/storage-api/src/hashing.rs @@ -1,12 +1,10 @@ +use alloc::collections::{BTreeMap, BTreeSet}; use alloy_primitives::{map::HashMap, Address, BlockNumber, B256}; use auto_impl::auto_impl; +use core::ops::{RangeBounds, RangeInclusive}; use reth_db::models::{AccountBeforeTx, BlockNumberAddress}; use reth_primitives::{Account, StorageEntry}; use reth_storage_errors::provider::ProviderResult; -use std::{ - collections::{BTreeMap, BTreeSet}, - ops::{RangeBounds, RangeInclusive}, -}; /// Hashing Writer #[auto_impl(&, Arc, Box)] diff --git a/crates/storage/storage-api/src/header.rs b/crates/storage/storage-api/src/header.rs index b331a9e3a..a4c9b215f 100644 --- a/crates/storage/storage-api/src/header.rs +++ b/crates/storage/storage-api/src/header.rs @@ -1,8 +1,9 @@ +use alloc::vec::Vec; use alloy_eips::BlockHashOrNumber; use alloy_primitives::{BlockHash, BlockNumber, U256}; +use core::ops::RangeBounds; use reth_primitives_traits::{BlockHeader, SealedHeader}; use reth_storage_errors::provider::ProviderResult; -use std::ops::RangeBounds; /// A helper type alias to access [`HeaderProvider::Header`]. pub type ProviderHeader

=

::Header; diff --git a/crates/storage/storage-api/src/history.rs b/crates/storage/storage-api/src/history.rs index 77c6324d8..ec7b1a5e3 100644 --- a/crates/storage/storage-api/src/history.rs +++ b/crates/storage/storage-api/src/history.rs @@ -1,9 +1,9 @@ use alloy_primitives::{Address, BlockNumber, B256}; use auto_impl::auto_impl; +use core::ops::{RangeBounds, RangeInclusive}; use reth_db::models::{AccountBeforeTx, BlockNumberAddress}; use reth_primitives_traits::StorageEntry; use reth_storage_errors::provider::ProviderResult; -use std::ops::{RangeBounds, RangeInclusive}; /// History Writer #[auto_impl(&, Arc, Box)] diff --git a/crates/storage/storage-api/src/legacy.rs b/crates/storage/storage-api/src/legacy.rs index e53a5d8bf..bb6a21e4e 100644 --- a/crates/storage/storage-api/src/legacy.rs +++ b/crates/storage/storage-api/src/legacy.rs @@ -2,6 +2,7 @@ //! //! This module is scheduled for removal in the future. +use alloc::boxed::Box; use alloy_eips::BlockNumHash; use alloy_primitives::{BlockHash, BlockNumber}; use auto_impl::auto_impl; diff --git a/crates/storage/storage-api/src/lib.rs b/crates/storage/storage-api/src/lib.rs index 150d745e3..70714dcc8 100644 --- a/crates/storage/storage-api/src/lib.rs +++ b/crates/storage/storage-api/src/lib.rs @@ -7,6 +7,9 @@ )] #![cfg_attr(not(test), warn(unused_crate_dependencies))] #![cfg_attr(docsrs, feature(doc_cfg, doc_auto_cfg))] +#![cfg_attr(not(feature = "std"), no_std)] + +extern crate alloc; // Re-export used error types. pub use reth_storage_errors as errors; diff --git a/crates/storage/storage-api/src/noop.rs b/crates/storage/storage-api/src/noop.rs index 20d975852..a16b49e73 100644 --- a/crates/storage/storage-api/src/noop.rs +++ b/crates/storage/storage-api/src/noop.rs @@ -8,12 +8,17 @@ use crate::{ StateProviderBox, StateProviderFactory, StateRootProvider, StorageRootProvider, TransactionVariant, TransactionsProvider, WithdrawalsProvider, }; +use alloc::{boxed::Box, string::String, sync::Arc, vec::Vec}; use alloy_consensus::transaction::TransactionMeta; use alloy_eips::{eip4895::Withdrawals, BlockHashOrNumber, BlockId, BlockNumberOrTag}; use alloy_primitives::{ map::{B256HashMap, HashMap}, Address, BlockHash, BlockNumber, Bytes, StorageKey, StorageValue, TxHash, TxNumber, B256, U256, }; +use core::{ + marker::PhantomData, + ops::{RangeBounds, RangeInclusive}, +}; use reth_chainspec::{ChainInfo, ChainSpecProvider, EthChainSpec, MAINNET}; use reth_db_models::{AccountBeforeTx, StoredBlockBodyIndices}; use reth_primitives::{EthPrimitives, RecoveredBlock, SealedBlock}; @@ -25,11 +30,6 @@ use reth_trie::{ updates::TrieUpdates, AccountProof, HashedPostState, HashedStorage, MultiProof, MultiProofTargets, TrieInput, }; -use std::{ - marker::PhantomData, - ops::{RangeBounds, RangeInclusive}, - sync::Arc, -}; /// Supports various api interfaces for testing purposes. #[derive(Debug)] @@ -83,7 +83,7 @@ impl BlockHashReader for NoopProvider ProviderResult> { - Ok(vec![]) + Ok(Vec::new()) } } @@ -196,21 +196,21 @@ impl BlockReader for NoopProvider { } fn block_range(&self, _range: RangeInclusive) -> ProviderResult> { - Ok(vec![]) + Ok(Vec::new()) } fn block_with_senders_range( &self, _range: RangeInclusive, ) -> ProviderResult>> { - Ok(vec![]) + Ok(Vec::new()) } fn sealed_block_with_senders_range( &self, _range: RangeInclusive, ) -> ProviderResult>> { - Ok(vec![]) + Ok(Vec::new()) } } @@ -302,7 +302,7 @@ impl ReceiptProvider for NoopProvider { &self, _range: impl RangeBounds, ) -> ProviderResult> { - Ok(vec![]) + Ok(Vec::new()) } } @@ -331,7 +331,7 @@ impl HeaderProvider for NoopProvider { &self, _range: impl RangeBounds, ) -> ProviderResult> { - Ok(vec![]) + Ok(Vec::new()) } fn sealed_header( @@ -346,7 +346,7 @@ impl HeaderProvider for NoopProvider { _range: impl RangeBounds, _predicate: impl FnMut(&SealedHeader) -> bool, ) -> ProviderResult>> { - Ok(vec![]) + Ok(Vec::new()) } } @@ -572,6 +572,6 @@ impl BlockBodyIndicesProvider for NoopProvider, ) -> ProviderResult> { - Ok(vec![]) + Ok(Vec::new()) } } diff --git a/crates/storage/storage-api/src/ommers.rs b/crates/storage/storage-api/src/ommers.rs index 52c54104e..c3f68b4f9 100644 --- a/crates/storage/storage-api/src/ommers.rs +++ b/crates/storage/storage-api/src/ommers.rs @@ -1,4 +1,5 @@ use crate::HeaderProvider; +use alloc::{sync::Arc, vec::Vec}; use alloy_eips::BlockHashOrNumber; use reth_storage_errors::provider::ProviderResult; @@ -10,7 +11,7 @@ pub trait OmmersProvider: HeaderProvider + Send + Sync { fn ommers(&self, id: BlockHashOrNumber) -> ProviderResult>>; } -impl OmmersProvider for std::sync::Arc { +impl OmmersProvider for Arc { fn ommers(&self, id: BlockHashOrNumber) -> ProviderResult>> { T::ommers(self, id) } diff --git a/crates/storage/storage-api/src/prune_checkpoint.rs b/crates/storage/storage-api/src/prune_checkpoint.rs index ba83ea510..6b3abebd6 100644 --- a/crates/storage/storage-api/src/prune_checkpoint.rs +++ b/crates/storage/storage-api/src/prune_checkpoint.rs @@ -1,3 +1,4 @@ +use alloc::vec::Vec; use reth_prune_types::{PruneCheckpoint, PruneSegment}; use reth_storage_errors::provider::ProviderResult; diff --git a/crates/storage/storage-api/src/receipts.rs b/crates/storage/storage-api/src/receipts.rs index fdb703238..969e0627c 100644 --- a/crates/storage/storage-api/src/receipts.rs +++ b/crates/storage/storage-api/src/receipts.rs @@ -1,9 +1,10 @@ use crate::BlockIdReader; +use alloc::vec::Vec; use alloy_eips::{BlockHashOrNumber, BlockId, BlockNumberOrTag}; use alloy_primitives::{TxHash, TxNumber}; +use core::ops::RangeBounds; use reth_primitives_traits::Receipt; use reth_storage_errors::provider::ProviderResult; -use std::ops::RangeBounds; /// A helper type alias to access [`ReceiptProvider::Receipt`]. pub type ProviderReceipt

=

::Receipt; diff --git a/crates/storage/storage-api/src/stage_checkpoint.rs b/crates/storage/storage-api/src/stage_checkpoint.rs index 90ad9eadb..37324e608 100644 --- a/crates/storage/storage-api/src/stage_checkpoint.rs +++ b/crates/storage/storage-api/src/stage_checkpoint.rs @@ -1,3 +1,4 @@ +use alloc::{string::String, vec::Vec}; use alloy_primitives::BlockNumber; use reth_stages_types::{StageCheckpoint, StageId}; use reth_storage_errors::provider::ProviderResult; diff --git a/crates/storage/storage-api/src/state.rs b/crates/storage/storage-api/src/state.rs index 23ba7ebb2..21f75dc23 100644 --- a/crates/storage/storage-api/src/state.rs +++ b/crates/storage/storage-api/src/state.rs @@ -2,6 +2,7 @@ use super::{ AccountReader, BlockHashReader, BlockIdReader, StateProofProvider, StateRootProvider, StorageRootProvider, }; +use alloc::boxed::Box; use alloy_consensus::constants::KECCAK_EMPTY; use alloy_eips::{BlockId, BlockNumberOrTag}; use alloy_primitives::{Address, BlockHash, BlockNumber, StorageKey, StorageValue, B256, U256}; diff --git a/crates/storage/storage-api/src/storage.rs b/crates/storage/storage-api/src/storage.rs index fbdde1374..6a9be1997 100644 --- a/crates/storage/storage-api/src/storage.rs +++ b/crates/storage/storage-api/src/storage.rs @@ -1,11 +1,12 @@ +use alloc::{ + collections::{BTreeMap, BTreeSet}, + vec::Vec, +}; use alloy_primitives::{Address, BlockNumber, B256}; +use core::ops::RangeInclusive; use reth_db_api::models::BlockNumberAddress; use reth_primitives_traits::StorageEntry; use reth_storage_errors::provider::ProviderResult; -use std::{ - collections::{BTreeMap, BTreeSet}, - ops::RangeInclusive, -}; /// Storage reader #[auto_impl::auto_impl(&, Arc, Box)] diff --git a/crates/storage/storage-api/src/transactions.rs b/crates/storage/storage-api/src/transactions.rs index e156119b8..8d9f20bf2 100644 --- a/crates/storage/storage-api/src/transactions.rs +++ b/crates/storage/storage-api/src/transactions.rs @@ -1,10 +1,11 @@ use crate::{BlockNumReader, BlockReader}; +use alloc::vec::Vec; use alloy_consensus::transaction::TransactionMeta; use alloy_eips::BlockHashOrNumber; use alloy_primitives::{Address, BlockNumber, TxHash, TxNumber}; +use core::ops::{Range, RangeBounds, RangeInclusive}; use reth_primitives_traits::SignedTransaction; use reth_storage_errors::provider::{ProviderError, ProviderResult}; -use std::ops::{Range, RangeBounds, RangeInclusive}; /// Enum to control transaction hash inclusion. ///