From f4e6a09bf61c13ae2448d593bcb5598ab86350d8 Mon Sep 17 00:00:00 2001 From: Nikolai Golub Date: Tue, 6 Aug 2024 15:51:54 +0200 Subject: [PATCH] Check features powerset in `reth-codecs` (#10134) --- Cargo.toml | 2 +- Makefile | 5 +++++ crates/storage/codecs/Cargo.toml | 3 ++- crates/storage/codecs/src/alloy/access_list.rs | 3 +++ crates/storage/codecs/src/alloy/genesis_account.rs | 3 +++ crates/storage/codecs/src/alloy/log.rs | 3 +++ crates/storage/codecs/src/alloy/trie.rs | 3 +++ 7 files changed, 20 insertions(+), 2 deletions(-) diff --git a/Cargo.toml b/Cargo.toml index 5a2d5eef2..0eeb57e5d 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -393,7 +393,7 @@ revm-primitives = { version = "7.1.0", features = [ # eth alloy-chains = "0.1.18" alloy-dyn-abi = "0.7.2" -alloy-primitives = "0.7.2" +alloy-primitives = { version = "0.7.2", default-features = false } alloy-rlp = "0.3.4" alloy-sol-types = "0.7.2" alloy-trie = { version = "0.4", default-features = false } diff --git a/Makefile b/Makefile index f042ada22..49161a7cb 100644 --- a/Makefile +++ b/Makefile @@ -467,3 +467,8 @@ pr: make lint && \ make update-book-cli && \ make test + +check-features: + cargo hack check \ + --package reth-codecs \ + --feature-powerset \ No newline at end of file diff --git a/crates/storage/codecs/Cargo.toml b/crates/storage/codecs/Cargo.toml index dea997281..7ecf75208 100644 --- a/crates/storage/codecs/Cargo.toml +++ b/crates/storage/codecs/Cargo.toml @@ -42,11 +42,12 @@ proptest-arbitrary-interop.workspace = true [features] default = ["std", "alloy"] -std = ["alloy-primitives/std", "bytes/std", "serde/std"] +std = ["alloy-primitives/std", "bytes/std", "serde?/std"] alloy = [ "dep:alloy-consensus", "dep:alloy-eips", "dep:alloy-genesis", "dep:modular-bitfield", "dep:alloy-trie", + "dep:serde" ] diff --git a/crates/storage/codecs/src/alloy/access_list.rs b/crates/storage/codecs/src/alloy/access_list.rs index ecc29ea49..306ef4f49 100644 --- a/crates/storage/codecs/src/alloy/access_list.rs +++ b/crates/storage/codecs/src/alloy/access_list.rs @@ -2,6 +2,9 @@ use crate::Compact; use alloy_eips::eip2930::{AccessList, AccessListItem}; use alloy_primitives::Address; +#[cfg(not(feature = "std"))] +use alloc::vec::Vec; + /// Implement `Compact` for `AccessListItem` and `AccessList`. impl Compact for AccessListItem { fn to_compact(&self, buf: &mut B) -> usize diff --git a/crates/storage/codecs/src/alloy/genesis_account.rs b/crates/storage/codecs/src/alloy/genesis_account.rs index 26456be5d..9f98687da 100644 --- a/crates/storage/codecs/src/alloy/genesis_account.rs +++ b/crates/storage/codecs/src/alloy/genesis_account.rs @@ -4,6 +4,9 @@ use alloy_primitives::{Bytes, B256, U256}; use reth_codecs_derive::reth_codec; use serde::{Deserialize, Serialize}; +#[cfg(not(feature = "std"))] +use alloc::vec::Vec; + /// GenesisAccount acts as bridge which simplifies Compact implementation for AlloyGenesisAccount. /// /// Notice: Make sure this struct is 1:1 with `alloy_genesis::GenesisAccount` diff --git a/crates/storage/codecs/src/alloy/log.rs b/crates/storage/codecs/src/alloy/log.rs index 3303bfbc7..2a3aa07b7 100644 --- a/crates/storage/codecs/src/alloy/log.rs +++ b/crates/storage/codecs/src/alloy/log.rs @@ -4,6 +4,9 @@ use crate::Compact; use alloy_primitives::{Address, Bytes, Log, LogData}; use bytes::BufMut; +#[cfg(not(feature = "std"))] +use alloc::vec::Vec; + /// Implement `Compact` for `LogData` and `Log`. impl Compact for LogData { fn to_compact(&self, buf: &mut B) -> usize diff --git a/crates/storage/codecs/src/alloy/trie.rs b/crates/storage/codecs/src/alloy/trie.rs index 0aa8940f6..5b73f3b05 100644 --- a/crates/storage/codecs/src/alloy/trie.rs +++ b/crates/storage/codecs/src/alloy/trie.rs @@ -5,6 +5,9 @@ use alloy_primitives::B256; use alloy_trie::{hash_builder::HashBuilderValue, BranchNodeCompact, TrieMask}; use bytes::{Buf, BufMut}; +#[cfg(not(feature = "std"))] +use alloc::vec::Vec; + impl Compact for HashBuilderValue { fn to_compact(&self, buf: &mut B) -> usize where