mirror of
https://github.com/hl-archive-node/nanoreth.git
synced 2025-12-06 10:59:55 +00:00
chore: no_std for reth-execution-types (#14465)
This commit is contained in:
5
.github/assets/check_rv32imac.sh
vendored
5
.github/assets/check_rv32imac.sh
vendored
@ -10,6 +10,11 @@ crates_to_check=(
|
|||||||
reth-chainspec
|
reth-chainspec
|
||||||
reth-consensus
|
reth-consensus
|
||||||
reth-consensus-common
|
reth-consensus-common
|
||||||
|
reth-prune-types
|
||||||
|
reth-static-file-types
|
||||||
|
reth-storage-errors
|
||||||
|
reth-execution-errors
|
||||||
|
reth-execution-types
|
||||||
|
|
||||||
## ethereum
|
## ethereum
|
||||||
reth-ethereum-forks
|
reth-ethereum-forks
|
||||||
|
|||||||
3
.github/assets/check_wasm.sh
vendored
3
.github/assets/check_wasm.sh
vendored
@ -28,6 +28,7 @@ exclude_crates=(
|
|||||||
reth-ethereum-cli
|
reth-ethereum-cli
|
||||||
reth-ethereum-payload-builder
|
reth-ethereum-payload-builder
|
||||||
reth-etl
|
reth-etl
|
||||||
|
reth-evm
|
||||||
reth-exex
|
reth-exex
|
||||||
reth-exex-test-utils
|
reth-exex-test-utils
|
||||||
reth-ipc
|
reth-ipc
|
||||||
@ -58,7 +59,7 @@ exclude_crates=(
|
|||||||
reth-invalid-block-hooks # reth-provider
|
reth-invalid-block-hooks # reth-provider
|
||||||
reth-libmdbx # mdbx
|
reth-libmdbx # mdbx
|
||||||
reth-mdbx-sys # mdbx
|
reth-mdbx-sys # mdbx
|
||||||
reth-payload-builder # reth-metrics
|
reth-payload-builder # reth-metrics
|
||||||
reth-provider # tokio
|
reth-provider # tokio
|
||||||
reth-prune # tokio
|
reth-prune # tokio
|
||||||
reth-stages-api # reth-provider, reth-prune
|
reth-stages-api # reth-provider, reth-prune
|
||||||
|
|||||||
2
Cargo.lock
generated
2
Cargo.lock
generated
@ -7707,9 +7707,7 @@ dependencies = [
|
|||||||
"rand 0.8.5",
|
"rand 0.8.5",
|
||||||
"reth-ethereum-primitives",
|
"reth-ethereum-primitives",
|
||||||
"reth-execution-errors",
|
"reth-execution-errors",
|
||||||
"reth-primitives",
|
|
||||||
"reth-primitives-traits",
|
"reth-primitives-traits",
|
||||||
"reth-trie",
|
|
||||||
"reth-trie-common",
|
"reth-trie-common",
|
||||||
"revm",
|
"revm",
|
||||||
"serde",
|
"serde",
|
||||||
|
|||||||
12
Cargo.toml
12
Cargo.toml
@ -348,8 +348,8 @@ reth-etl = { path = "crates/etl" }
|
|||||||
reth-evm = { path = "crates/evm" }
|
reth-evm = { path = "crates/evm" }
|
||||||
reth-evm-ethereum = { path = "crates/ethereum/evm" }
|
reth-evm-ethereum = { path = "crates/ethereum/evm" }
|
||||||
reth-optimism-evm = { path = "crates/optimism/evm" }
|
reth-optimism-evm = { path = "crates/optimism/evm" }
|
||||||
reth-execution-errors = { path = "crates/evm/execution-errors" }
|
reth-execution-errors = { path = "crates/evm/execution-errors", default-features = false }
|
||||||
reth-execution-types = { path = "crates/evm/execution-types" }
|
reth-execution-types = { path = "crates/evm/execution-types", default-features = false }
|
||||||
reth-exex = { path = "crates/exex/exex" }
|
reth-exex = { path = "crates/exex/exex" }
|
||||||
reth-exex-test-utils = { path = "crates/exex/test-utils" }
|
reth-exex-test-utils = { path = "crates/exex/test-utils" }
|
||||||
reth-exex-types = { path = "crates/exex/types" }
|
reth-exex-types = { path = "crates/exex/types" }
|
||||||
@ -394,7 +394,7 @@ reth-primitives = { path = "crates/primitives", default-features = false }
|
|||||||
reth-primitives-traits = { path = "crates/primitives-traits", default-features = false }
|
reth-primitives-traits = { path = "crates/primitives-traits", default-features = false }
|
||||||
reth-provider = { path = "crates/storage/provider" }
|
reth-provider = { path = "crates/storage/provider" }
|
||||||
reth-prune = { path = "crates/prune/prune" }
|
reth-prune = { path = "crates/prune/prune" }
|
||||||
reth-prune-types = { path = "crates/prune/types" }
|
reth-prune-types = { path = "crates/prune/types", default-features = false }
|
||||||
reth-revm = { path = "crates/revm", default-features = false }
|
reth-revm = { path = "crates/revm", default-features = false }
|
||||||
reth-rpc = { path = "crates/rpc/rpc" }
|
reth-rpc = { path = "crates/rpc/rpc" }
|
||||||
reth-rpc-api = { path = "crates/rpc/rpc-api" }
|
reth-rpc-api = { path = "crates/rpc/rpc-api" }
|
||||||
@ -410,9 +410,9 @@ reth-stages = { path = "crates/stages/stages" }
|
|||||||
reth-stages-api = { path = "crates/stages/api" }
|
reth-stages-api = { path = "crates/stages/api" }
|
||||||
reth-stages-types = { path = "crates/stages/types", default-features = false }
|
reth-stages-types = { path = "crates/stages/types", default-features = false }
|
||||||
reth-static-file = { path = "crates/static-file/static-file" }
|
reth-static-file = { path = "crates/static-file/static-file" }
|
||||||
reth-static-file-types = { path = "crates/static-file/types" }
|
reth-static-file-types = { path = "crates/static-file/types", default-features = false }
|
||||||
reth-storage-api = { path = "crates/storage/storage-api" }
|
reth-storage-api = { path = "crates/storage/storage-api" }
|
||||||
reth-storage-errors = { path = "crates/storage/errors" }
|
reth-storage-errors = { path = "crates/storage/errors", default-features = false }
|
||||||
reth-tasks = { path = "crates/tasks" }
|
reth-tasks = { path = "crates/tasks" }
|
||||||
reth-testing-utils = { path = "testing/testing-utils" }
|
reth-testing-utils = { path = "testing/testing-utils" }
|
||||||
reth-tokio-util = { path = "crates/tokio-util" }
|
reth-tokio-util = { path = "crates/tokio-util" }
|
||||||
@ -436,7 +436,7 @@ alloy-chains = { version = "0.1.32", default-features = false }
|
|||||||
alloy-dyn-abi = "0.8.20"
|
alloy-dyn-abi = "0.8.20"
|
||||||
alloy-eip2124 = { version = "0.1.0", default-features = false }
|
alloy-eip2124 = { version = "0.1.0", default-features = false }
|
||||||
alloy-primitives = { version = "0.8.20", default-features = false, features = ["map-foldhash"] }
|
alloy-primitives = { version = "0.8.20", default-features = false, features = ["map-foldhash"] }
|
||||||
alloy-rlp = { version = "0.3.10", default-features = false }
|
alloy-rlp = { version = "0.3.10", default-features = false, features = ["core-net"] }
|
||||||
alloy-sol-types = "0.8.20"
|
alloy-sol-types = "0.8.20"
|
||||||
alloy-trie = { version = "0.7", default-features = false }
|
alloy-trie = { version = "0.7", default-features = false }
|
||||||
|
|
||||||
|
|||||||
@ -61,4 +61,5 @@ std = [
|
|||||||
"reth-primitives-traits/std",
|
"reth-primitives-traits/std",
|
||||||
"reth-chainspec/std",
|
"reth-chainspec/std",
|
||||||
"derive_more/std",
|
"derive_more/std",
|
||||||
|
"reth-execution-types/std",
|
||||||
]
|
]
|
||||||
|
|||||||
@ -59,6 +59,9 @@ std = [
|
|||||||
"reth-ethereum-primitives/std",
|
"reth-ethereum-primitives/std",
|
||||||
"reth-chainspec/std",
|
"reth-chainspec/std",
|
||||||
"reth-consensus-common/std",
|
"reth-consensus-common/std",
|
||||||
|
"reth-execution-errors/std",
|
||||||
|
"reth-storage-errors/std",
|
||||||
|
"reth-execution-types/std",
|
||||||
]
|
]
|
||||||
test-utils = [
|
test-utils = [
|
||||||
"dep:parking_lot",
|
"dep:parking_lot",
|
||||||
|
|||||||
@ -29,4 +29,5 @@ std = [
|
|||||||
"alloy-rlp/std",
|
"alloy-rlp/std",
|
||||||
"thiserror/std",
|
"thiserror/std",
|
||||||
"nybbles/std",
|
"nybbles/std",
|
||||||
|
"reth-storage-errors/std",
|
||||||
]
|
]
|
||||||
|
|||||||
@ -11,11 +11,10 @@ repository.workspace = true
|
|||||||
workspace = true
|
workspace = true
|
||||||
|
|
||||||
[dependencies]
|
[dependencies]
|
||||||
reth-primitives.workspace = true
|
reth-ethereum-primitives.workspace = true
|
||||||
reth-primitives-traits.workspace = true
|
reth-primitives-traits.workspace = true
|
||||||
reth-execution-errors.workspace = true
|
reth-execution-errors.workspace = true
|
||||||
reth-trie-common = { workspace = true, optional = true }
|
reth-trie-common.workspace = true
|
||||||
reth-trie.workspace = true
|
|
||||||
|
|
||||||
revm.workspace = true
|
revm.workspace = true
|
||||||
|
|
||||||
@ -31,7 +30,6 @@ serde_with = { workspace = true, optional = true }
|
|||||||
arbitrary.workspace = true
|
arbitrary.workspace = true
|
||||||
bincode.workspace = true
|
bincode.workspace = true
|
||||||
rand.workspace = true
|
rand.workspace = true
|
||||||
reth-primitives = { workspace = true, features = ["arbitrary", "test-utils"] }
|
|
||||||
reth-ethereum-primitives.workspace = true
|
reth-ethereum-primitives.workspace = true
|
||||||
|
|
||||||
[features]
|
[features]
|
||||||
@ -45,13 +43,11 @@ serde = [
|
|||||||
"alloy-primitives/serde",
|
"alloy-primitives/serde",
|
||||||
"reth-primitives-traits/serde",
|
"reth-primitives-traits/serde",
|
||||||
"alloy-consensus/serde",
|
"alloy-consensus/serde",
|
||||||
"reth-trie/serde",
|
"reth-trie-common/serde",
|
||||||
"reth-trie-common?/serde",
|
|
||||||
]
|
]
|
||||||
serde-bincode-compat = [
|
serde-bincode-compat = [
|
||||||
"serde",
|
"serde",
|
||||||
"reth-trie-common/serde-bincode-compat",
|
"reth-trie-common/serde-bincode-compat",
|
||||||
"reth-primitives/serde-bincode-compat",
|
|
||||||
"reth-primitives-traits/serde-bincode-compat",
|
"reth-primitives-traits/serde-bincode-compat",
|
||||||
"serde_with",
|
"serde_with",
|
||||||
"alloy-eips/serde-bincode-compat",
|
"alloy-eips/serde-bincode-compat",
|
||||||
@ -59,7 +55,6 @@ serde-bincode-compat = [
|
|||||||
"reth-ethereum-primitives/serde-bincode-compat",
|
"reth-ethereum-primitives/serde-bincode-compat",
|
||||||
]
|
]
|
||||||
std = [
|
std = [
|
||||||
"reth-primitives/std",
|
|
||||||
"alloy-eips/std",
|
"alloy-eips/std",
|
||||||
"alloy-primitives/std",
|
"alloy-primitives/std",
|
||||||
"revm/std",
|
"revm/std",
|
||||||
@ -67,6 +62,7 @@ std = [
|
|||||||
"reth-primitives-traits/std",
|
"reth-primitives-traits/std",
|
||||||
"alloy-consensus/std",
|
"alloy-consensus/std",
|
||||||
"serde_with?/std",
|
"serde_with?/std",
|
||||||
"reth-trie-common?/std",
|
"reth-trie-common/std",
|
||||||
"reth-ethereum-primitives/std",
|
"reth-ethereum-primitives/std",
|
||||||
|
"reth-execution-errors/std",
|
||||||
]
|
]
|
||||||
|
|||||||
@ -2,16 +2,16 @@
|
|||||||
|
|
||||||
use crate::ExecutionOutcome;
|
use crate::ExecutionOutcome;
|
||||||
use alloc::{borrow::Cow, boxed::Box, collections::BTreeMap, vec::Vec};
|
use alloc::{borrow::Cow, boxed::Box, collections::BTreeMap, vec::Vec};
|
||||||
use alloy_consensus::BlockHeader;
|
use alloy_consensus::{transaction::Recovered, BlockHeader};
|
||||||
use alloy_eips::{eip1898::ForkBlock, eip2718::Encodable2718, BlockNumHash};
|
use alloy_eips::{eip1898::ForkBlock, eip2718::Encodable2718, BlockNumHash};
|
||||||
use alloy_primitives::{Address, BlockHash, BlockNumber, TxHash};
|
use alloy_primitives::{Address, BlockHash, BlockNumber, TxHash};
|
||||||
use core::{fmt, ops::RangeInclusive};
|
use core::{fmt, ops::RangeInclusive};
|
||||||
use reth_execution_errors::{BlockExecutionError, InternalBlockExecutionError};
|
use reth_execution_errors::{BlockExecutionError, InternalBlockExecutionError};
|
||||||
use reth_primitives::{
|
use reth_primitives_traits::{
|
||||||
transaction::SignedTransactionIntoRecoveredExt, Recovered, RecoveredBlock, SealedHeader,
|
transaction::signed::SignedTransactionIntoRecoveredExt, Block, BlockBody, NodePrimitives,
|
||||||
|
RecoveredBlock, SealedHeader, SignedTransaction,
|
||||||
};
|
};
|
||||||
use reth_primitives_traits::{Block, BlockBody, NodePrimitives, SignedTransaction};
|
use reth_trie_common::updates::TrieUpdates;
|
||||||
use reth_trie::updates::TrieUpdates;
|
|
||||||
use revm::db::BundleState;
|
use revm::db::BundleState;
|
||||||
|
|
||||||
/// A chain of blocks and their final state.
|
/// A chain of blocks and their final state.
|
||||||
@ -26,7 +26,7 @@ use revm::db::BundleState;
|
|||||||
/// A chain of blocks should not be empty.
|
/// A chain of blocks should not be empty.
|
||||||
#[derive(Clone, Debug, PartialEq, Eq)]
|
#[derive(Clone, Debug, PartialEq, Eq)]
|
||||||
#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
|
#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
|
||||||
pub struct Chain<N: NodePrimitives = reth_primitives::EthPrimitives> {
|
pub struct Chain<N: NodePrimitives = reth_ethereum_primitives::EthPrimitives> {
|
||||||
/// All blocks in this chain.
|
/// All blocks in this chain.
|
||||||
blocks: BTreeMap<BlockNumber, RecoveredBlock<N::Block>>,
|
blocks: BTreeMap<BlockNumber, RecoveredBlock<N::Block>>,
|
||||||
/// The outcome of block execution for this chain.
|
/// The outcome of block execution for this chain.
|
||||||
@ -470,7 +470,7 @@ impl<B: Block> IntoIterator for ChainBlocks<'_, B> {
|
|||||||
|
|
||||||
/// Used to hold receipts and their attachment.
|
/// Used to hold receipts and their attachment.
|
||||||
#[derive(Default, Clone, Debug, PartialEq, Eq)]
|
#[derive(Default, Clone, Debug, PartialEq, Eq)]
|
||||||
pub struct BlockReceipts<T = reth_primitives::Receipt> {
|
pub struct BlockReceipts<T = reth_ethereum_primitives::Receipt> {
|
||||||
/// Block identifier
|
/// Block identifier
|
||||||
pub block: BlockNumHash,
|
pub block: BlockNumHash,
|
||||||
/// Transaction identifier and receipt.
|
/// Transaction identifier and receipt.
|
||||||
@ -500,7 +500,7 @@ impl From<BlockHash> for ChainSplitTarget {
|
|||||||
|
|
||||||
/// Result of a split chain.
|
/// Result of a split chain.
|
||||||
#[derive(Clone, Debug, PartialEq, Eq)]
|
#[derive(Clone, Debug, PartialEq, Eq)]
|
||||||
pub enum ChainSplit<N: NodePrimitives = reth_primitives::EthPrimitives> {
|
pub enum ChainSplit<N: NodePrimitives = reth_ethereum_primitives::EthPrimitives> {
|
||||||
/// Chain is not split. Pending chain is returned.
|
/// Chain is not split. Pending chain is returned.
|
||||||
/// Given block split is higher than last block.
|
/// Given block split is higher than last block.
|
||||||
/// Or in case of split by hash when hash is unknown.
|
/// Or in case of split by hash when hash is unknown.
|
||||||
@ -529,8 +529,11 @@ pub(super) mod serde_bincode_compat {
|
|||||||
use crate::ExecutionOutcome;
|
use crate::ExecutionOutcome;
|
||||||
use alloc::borrow::Cow;
|
use alloc::borrow::Cow;
|
||||||
use alloy_primitives::BlockNumber;
|
use alloy_primitives::BlockNumber;
|
||||||
use reth_primitives::{serde_bincode_compat::RecoveredBlock, EthPrimitives, NodePrimitives};
|
use reth_ethereum_primitives::EthPrimitives;
|
||||||
use reth_primitives_traits::{serde_bincode_compat::SerdeBincodeCompat, Block};
|
use reth_primitives_traits::{
|
||||||
|
serde_bincode_compat::{RecoveredBlock, SerdeBincodeCompat},
|
||||||
|
Block, NodePrimitives,
|
||||||
|
};
|
||||||
use reth_trie_common::serde_bincode_compat::updates::TrieUpdates;
|
use reth_trie_common::serde_bincode_compat::updates::TrieUpdates;
|
||||||
use serde::{ser::SerializeMap, Deserialize, Deserializer, Serialize, Serializer};
|
use serde::{ser::SerializeMap, Deserialize, Deserializer, Serialize, Serializer};
|
||||||
use serde_with::{DeserializeAs, SerializeAs};
|
use serde_with::{DeserializeAs, SerializeAs};
|
||||||
@ -568,7 +571,7 @@ pub(super) mod serde_bincode_compat {
|
|||||||
'a,
|
'a,
|
||||||
B: reth_primitives_traits::Block<Header: SerdeBincodeCompat, Body: SerdeBincodeCompat>
|
B: reth_primitives_traits::Block<Header: SerdeBincodeCompat, Body: SerdeBincodeCompat>
|
||||||
+ 'static,
|
+ 'static,
|
||||||
>(Cow<'a, BTreeMap<BlockNumber, reth_primitives::RecoveredBlock<B>>>);
|
>(Cow<'a, BTreeMap<BlockNumber, reth_primitives_traits::RecoveredBlock<B>>>);
|
||||||
|
|
||||||
impl<B> Serialize for RecoveredBlocks<'_, B>
|
impl<B> Serialize for RecoveredBlocks<'_, B>
|
||||||
where
|
where
|
||||||
@ -666,7 +669,7 @@ pub(super) mod serde_bincode_compat {
|
|||||||
use super::super::{serde_bincode_compat, Chain};
|
use super::super::{serde_bincode_compat, Chain};
|
||||||
use arbitrary::Arbitrary;
|
use arbitrary::Arbitrary;
|
||||||
use rand::Rng;
|
use rand::Rng;
|
||||||
use reth_primitives::RecoveredBlock;
|
use reth_primitives_traits::RecoveredBlock;
|
||||||
use serde::{Deserialize, Serialize};
|
use serde::{Deserialize, Serialize};
|
||||||
use serde_with::serde_as;
|
use serde_with::serde_as;
|
||||||
|
|
||||||
@ -705,23 +708,9 @@ mod tests {
|
|||||||
use reth_ethereum_primitives::Receipt;
|
use reth_ethereum_primitives::Receipt;
|
||||||
use revm::primitives::{AccountInfo, HashMap};
|
use revm::primitives::{AccountInfo, HashMap};
|
||||||
|
|
||||||
// TODO: this is temporary, until we fully switch over to `reth_ethereum_primitives` for the
|
|
||||||
// `Receipt` type in `EthPrimitives`.
|
|
||||||
#[derive(Debug, Clone, Default, PartialEq, Eq, serde::Serialize, serde::Deserialize)]
|
|
||||||
#[non_exhaustive]
|
|
||||||
struct TestPrimitives;
|
|
||||||
|
|
||||||
impl reth_primitives_traits::NodePrimitives for TestPrimitives {
|
|
||||||
type Block = reth_primitives::Block;
|
|
||||||
type BlockHeader = alloy_consensus::Header;
|
|
||||||
type BlockBody = reth_primitives::BlockBody;
|
|
||||||
type SignedTx = reth_primitives::TransactionSigned;
|
|
||||||
type Receipt = Receipt;
|
|
||||||
}
|
|
||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
fn chain_append() {
|
fn chain_append() {
|
||||||
let block: RecoveredBlock<reth_primitives::Block> = Default::default();
|
let block: RecoveredBlock<reth_ethereum_primitives::Block> = Default::default();
|
||||||
let block1_hash = B256::new([0x01; 32]);
|
let block1_hash = B256::new([0x01; 32]);
|
||||||
let block2_hash = B256::new([0x02; 32]);
|
let block2_hash = B256::new([0x02; 32]);
|
||||||
let block3_hash = B256::new([0x03; 32]);
|
let block3_hash = B256::new([0x03; 32]);
|
||||||
@ -785,13 +774,13 @@ mod tests {
|
|||||||
vec![],
|
vec![],
|
||||||
);
|
);
|
||||||
|
|
||||||
let mut block1: RecoveredBlock<reth_primitives::Block> = Default::default();
|
let mut block1: RecoveredBlock<reth_ethereum_primitives::Block> = Default::default();
|
||||||
let block1_hash = B256::new([15; 32]);
|
let block1_hash = B256::new([15; 32]);
|
||||||
block1.set_block_number(1);
|
block1.set_block_number(1);
|
||||||
block1.set_hash(block1_hash);
|
block1.set_hash(block1_hash);
|
||||||
block1.push_sender(Address::new([4; 20]));
|
block1.push_sender(Address::new([4; 20]));
|
||||||
|
|
||||||
let mut block2: RecoveredBlock<reth_primitives::Block> = Default::default();
|
let mut block2: RecoveredBlock<reth_ethereum_primitives::Block> = Default::default();
|
||||||
let block2_hash = B256::new([16; 32]);
|
let block2_hash = B256::new([16; 32]);
|
||||||
block2.set_block_number(2);
|
block2.set_block_number(2);
|
||||||
block2.set_hash(block2_hash);
|
block2.set_hash(block2_hash);
|
||||||
@ -852,7 +841,7 @@ mod tests {
|
|||||||
#[test]
|
#[test]
|
||||||
fn receipts_by_block_hash() {
|
fn receipts_by_block_hash() {
|
||||||
// Create a default RecoveredBlock object
|
// Create a default RecoveredBlock object
|
||||||
let block: RecoveredBlock<reth_primitives::Block> = Default::default();
|
let block: RecoveredBlock<reth_ethereum_primitives::Block> = Default::default();
|
||||||
|
|
||||||
// Define block hashes for block1 and block2
|
// Define block hashes for block1 and block2
|
||||||
let block1_hash = B256::new([0x01; 32]);
|
let block1_hash = B256::new([0x01; 32]);
|
||||||
@ -896,7 +885,7 @@ mod tests {
|
|||||||
|
|
||||||
// Create a Chain object with a BTreeMap of blocks mapped to their block numbers,
|
// Create a Chain object with a BTreeMap of blocks mapped to their block numbers,
|
||||||
// including block1_hash and block2_hash, and the execution_outcome
|
// including block1_hash and block2_hash, and the execution_outcome
|
||||||
let chain: Chain<TestPrimitives> = Chain {
|
let chain: Chain = Chain {
|
||||||
blocks: BTreeMap::from([(10, block1), (11, block2)]),
|
blocks: BTreeMap::from([(10, block1), (11, block2)]),
|
||||||
execution_outcome: execution_outcome.clone(),
|
execution_outcome: execution_outcome.clone(),
|
||||||
..Default::default()
|
..Default::default()
|
||||||
|
|||||||
@ -3,7 +3,7 @@ use alloc::{vec, vec::Vec};
|
|||||||
use alloy_eips::eip7685::Requests;
|
use alloy_eips::eip7685::Requests;
|
||||||
use alloy_primitives::{logs_bloom, map::HashMap, Address, BlockNumber, Bloom, Log, B256, U256};
|
use alloy_primitives::{logs_bloom, map::HashMap, Address, BlockNumber, Bloom, Log, B256, U256};
|
||||||
use reth_primitives_traits::{Account, Bytecode, Receipt, StorageEntry};
|
use reth_primitives_traits::{Account, Bytecode, Receipt, StorageEntry};
|
||||||
use reth_trie::{HashedPostState, KeyHasher};
|
use reth_trie_common::{HashedPostState, KeyHasher};
|
||||||
use revm::{
|
use revm::{
|
||||||
db::{states::BundleState, BundleAccount},
|
db::{states::BundleState, BundleAccount},
|
||||||
primitives::AccountInfo,
|
primitives::AccountInfo,
|
||||||
@ -33,7 +33,7 @@ impl ChangedAccount {
|
|||||||
/// blocks, capturing the resulting state, receipts, and requests following the execution.
|
/// blocks, capturing the resulting state, receipts, and requests following the execution.
|
||||||
#[derive(Debug, Clone, PartialEq, Eq)]
|
#[derive(Debug, Clone, PartialEq, Eq)]
|
||||||
#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
|
#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
|
||||||
pub struct ExecutionOutcome<T = reth_primitives::Receipt> {
|
pub struct ExecutionOutcome<T = reth_ethereum_primitives::Receipt> {
|
||||||
/// Bundle state with reverts.
|
/// Bundle state with reverts.
|
||||||
pub bundle: BundleState,
|
pub bundle: BundleState,
|
||||||
/// The collection of receipts.
|
/// The collection of receipts.
|
||||||
@ -390,7 +390,7 @@ impl ExecutionOutcome {
|
|||||||
pub fn ethereum_receipts_root(&self, block_number: BlockNumber) -> Option<B256> {
|
pub fn ethereum_receipts_root(&self, block_number: BlockNumber) -> Option<B256> {
|
||||||
self.generic_receipts_root_slow(
|
self.generic_receipts_root_slow(
|
||||||
block_number,
|
block_number,
|
||||||
reth_primitives::Receipt::calculate_receipt_root_no_memo,
|
reth_ethereum_primitives::Receipt::calculate_receipt_root_no_memo,
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -61,4 +61,5 @@ std = [
|
|||||||
"alloy-consensus/std",
|
"alloy-consensus/std",
|
||||||
"derive_more/std",
|
"derive_more/std",
|
||||||
"reth-network-peers/std",
|
"reth-network-peers/std",
|
||||||
|
"reth-storage-errors/std",
|
||||||
]
|
]
|
||||||
|
|||||||
@ -71,6 +71,8 @@ std = [
|
|||||||
"reth-chainspec/std",
|
"reth-chainspec/std",
|
||||||
"reth-optimism-consensus/std",
|
"reth-optimism-consensus/std",
|
||||||
"reth-consensus-common/std",
|
"reth-consensus-common/std",
|
||||||
|
"reth-execution-errors/std",
|
||||||
|
"reth-execution-types/std",
|
||||||
]
|
]
|
||||||
optimism = [
|
optimism = [
|
||||||
"reth-execution-types/optimism",
|
"reth-execution-types/optimism",
|
||||||
|
|||||||
@ -62,6 +62,7 @@ std = [
|
|||||||
"reth-ethereum-primitives/std",
|
"reth-ethereum-primitives/std",
|
||||||
"alloy-rlp/std",
|
"alloy-rlp/std",
|
||||||
"alloy-primitives/std",
|
"alloy-primitives/std",
|
||||||
|
"reth-static-file-types/std",
|
||||||
]
|
]
|
||||||
reth-codec = [
|
reth-codec = [
|
||||||
"std",
|
"std",
|
||||||
|
|||||||
@ -37,6 +37,14 @@ test-fuzz.workspace = true
|
|||||||
toml.workspace = true
|
toml.workspace = true
|
||||||
|
|
||||||
[features]
|
[features]
|
||||||
|
default = ["std"]
|
||||||
|
std = [
|
||||||
|
"alloy-primitives/std",
|
||||||
|
"derive_more/std",
|
||||||
|
"serde?/std",
|
||||||
|
"serde_json/std",
|
||||||
|
"thiserror/std",
|
||||||
|
]
|
||||||
test-utils = [
|
test-utils = [
|
||||||
"dep:arbitrary",
|
"dep:arbitrary",
|
||||||
"reth-codecs?/test-utils",
|
"reth-codecs?/test-utils",
|
||||||
|
|||||||
@ -1,6 +1,7 @@
|
|||||||
use crate::PrunedSegmentInfo;
|
use crate::PrunedSegmentInfo;
|
||||||
|
use alloc::vec::Vec;
|
||||||
use alloy_primitives::BlockNumber;
|
use alloy_primitives::BlockNumber;
|
||||||
use std::time::Duration;
|
use core::time::Duration;
|
||||||
|
|
||||||
/// An event emitted by a pruner.
|
/// An event emitted by a pruner.
|
||||||
#[derive(Debug, PartialEq, Eq, Clone)]
|
#[derive(Debug, PartialEq, Eq, Clone)]
|
||||||
|
|||||||
@ -7,6 +7,9 @@
|
|||||||
)]
|
)]
|
||||||
#![cfg_attr(not(test), warn(unused_crate_dependencies))]
|
#![cfg_attr(not(test), warn(unused_crate_dependencies))]
|
||||||
#![cfg_attr(docsrs, feature(doc_cfg, doc_auto_cfg))]
|
#![cfg_attr(docsrs, feature(doc_cfg, doc_auto_cfg))]
|
||||||
|
#![cfg_attr(not(feature = "std"), no_std)]
|
||||||
|
|
||||||
|
extern crate alloc;
|
||||||
|
|
||||||
mod checkpoint;
|
mod checkpoint;
|
||||||
mod event;
|
mod event;
|
||||||
@ -15,7 +18,10 @@ mod pruner;
|
|||||||
mod segment;
|
mod segment;
|
||||||
mod target;
|
mod target;
|
||||||
|
|
||||||
|
use alloc::{collections::BTreeMap, vec::Vec};
|
||||||
|
use alloy_primitives::{Address, BlockNumber};
|
||||||
pub use checkpoint::PruneCheckpoint;
|
pub use checkpoint::PruneCheckpoint;
|
||||||
|
use core::ops::Deref;
|
||||||
pub use event::PrunerEvent;
|
pub use event::PrunerEvent;
|
||||||
pub use mode::PruneMode;
|
pub use mode::PruneMode;
|
||||||
pub use pruner::{
|
pub use pruner::{
|
||||||
@ -23,12 +29,8 @@ pub use pruner::{
|
|||||||
SegmentOutputCheckpoint,
|
SegmentOutputCheckpoint,
|
||||||
};
|
};
|
||||||
pub use segment::{PrunePurpose, PruneSegment, PruneSegmentError};
|
pub use segment::{PrunePurpose, PruneSegment, PruneSegmentError};
|
||||||
use std::collections::BTreeMap;
|
|
||||||
pub use target::{PruneModes, MINIMUM_PRUNING_DISTANCE};
|
pub use target::{PruneModes, MINIMUM_PRUNING_DISTANCE};
|
||||||
|
|
||||||
use alloy_primitives::{Address, BlockNumber};
|
|
||||||
use std::ops::Deref;
|
|
||||||
|
|
||||||
/// Configuration for pruning receipts not associated with logs emitted by the specified contracts.
|
/// Configuration for pruning receipts not associated with logs emitted by the specified contracts.
|
||||||
#[derive(Debug, Clone, PartialEq, Eq, Default)]
|
#[derive(Debug, Clone, PartialEq, Eq, Default)]
|
||||||
#[cfg_attr(any(test, feature = "serde"), derive(serde::Serialize, serde::Deserialize))]
|
#[cfg_attr(any(test, feature = "serde"), derive(serde::Serialize, serde::Deserialize))]
|
||||||
|
|||||||
@ -1,4 +1,5 @@
|
|||||||
use crate::{PruneCheckpoint, PruneMode, PruneSegment};
|
use crate::{PruneCheckpoint, PruneMode, PruneSegment};
|
||||||
|
use alloc::vec::Vec;
|
||||||
use alloy_primitives::{BlockNumber, TxNumber};
|
use alloy_primitives::{BlockNumber, TxNumber};
|
||||||
use derive_more::Display;
|
use derive_more::Display;
|
||||||
|
|
||||||
|
|||||||
@ -99,6 +99,7 @@ fn deserialize_opt_prune_mode_with_min_blocks<
|
|||||||
>(
|
>(
|
||||||
deserializer: D,
|
deserializer: D,
|
||||||
) -> Result<Option<PruneMode>, D::Error> {
|
) -> Result<Option<PruneMode>, D::Error> {
|
||||||
|
use alloc::format;
|
||||||
use serde::Deserialize;
|
use serde::Deserialize;
|
||||||
let prune_mode = Option::<PruneMode>::deserialize(deserializer)?;
|
let prune_mode = Option::<PruneMode>::deserialize(deserializer)?;
|
||||||
|
|
||||||
|
|||||||
@ -38,6 +38,7 @@ std = [
|
|||||||
"revm/std",
|
"revm/std",
|
||||||
"alloy-consensus/std",
|
"alloy-consensus/std",
|
||||||
"reth-ethereum-forks/std",
|
"reth-ethereum-forks/std",
|
||||||
|
"reth-storage-errors/std",
|
||||||
]
|
]
|
||||||
witness = ["dep:reth-trie"]
|
witness = ["dep:reth-trie"]
|
||||||
test-utils = [
|
test-utils = [
|
||||||
|
|||||||
@ -23,4 +23,11 @@ strum = { workspace = true, features = ["derive"] }
|
|||||||
reth-nippy-jar.workspace = true
|
reth-nippy-jar.workspace = true
|
||||||
|
|
||||||
[features]
|
[features]
|
||||||
|
default = ["std"]
|
||||||
|
std = [
|
||||||
|
"alloy-primitives/std",
|
||||||
|
"derive_more/std",
|
||||||
|
"serde/std",
|
||||||
|
"strum/std",
|
||||||
|
]
|
||||||
clap = ["dep:clap"]
|
clap = ["dep:clap"]
|
||||||
|
|||||||
@ -1,5 +1,5 @@
|
|||||||
use crate::StaticFileTargets;
|
use crate::StaticFileTargets;
|
||||||
use std::time::Duration;
|
use core::time::Duration;
|
||||||
|
|
||||||
/// An event emitted by the static file producer.
|
/// An event emitted by the static file producer.
|
||||||
#[derive(Debug, PartialEq, Eq, Clone)]
|
#[derive(Debug, PartialEq, Eq, Clone)]
|
||||||
|
|||||||
@ -7,6 +7,9 @@
|
|||||||
)]
|
)]
|
||||||
#![cfg_attr(not(test), warn(unused_crate_dependencies))]
|
#![cfg_attr(not(test), warn(unused_crate_dependencies))]
|
||||||
#![cfg_attr(docsrs, feature(doc_cfg, doc_auto_cfg))]
|
#![cfg_attr(docsrs, feature(doc_cfg, doc_auto_cfg))]
|
||||||
|
#![cfg_attr(not(feature = "std"), no_std)]
|
||||||
|
|
||||||
|
extern crate alloc;
|
||||||
|
|
||||||
mod compression;
|
mod compression;
|
||||||
mod event;
|
mod event;
|
||||||
@ -14,9 +17,9 @@ mod segment;
|
|||||||
|
|
||||||
use alloy_primitives::BlockNumber;
|
use alloy_primitives::BlockNumber;
|
||||||
pub use compression::Compression;
|
pub use compression::Compression;
|
||||||
|
use core::ops::RangeInclusive;
|
||||||
pub use event::StaticFileProducerEvent;
|
pub use event::StaticFileProducerEvent;
|
||||||
pub use segment::{SegmentConfig, SegmentHeader, SegmentRangeInclusive, StaticFileSegment};
|
pub use segment::{SegmentConfig, SegmentHeader, SegmentRangeInclusive, StaticFileSegment};
|
||||||
use std::ops::RangeInclusive;
|
|
||||||
|
|
||||||
/// Default static file block count.
|
/// Default static file block count.
|
||||||
pub const DEFAULT_BLOCKS_PER_STATIC_FILE: u64 = 500_000;
|
pub const DEFAULT_BLOCKS_PER_STATIC_FILE: u64 = 500_000;
|
||||||
|
|||||||
@ -1,8 +1,12 @@
|
|||||||
use crate::{BlockNumber, Compression};
|
use crate::{BlockNumber, Compression};
|
||||||
|
use alloc::{
|
||||||
|
format,
|
||||||
|
string::{String, ToString},
|
||||||
|
};
|
||||||
use alloy_primitives::TxNumber;
|
use alloy_primitives::TxNumber;
|
||||||
|
use core::{ops::RangeInclusive, str::FromStr};
|
||||||
use derive_more::Display;
|
use derive_more::Display;
|
||||||
use serde::{Deserialize, Serialize};
|
use serde::{Deserialize, Serialize};
|
||||||
use std::{ops::RangeInclusive, str::FromStr};
|
|
||||||
use strum::{AsRefStr, EnumString};
|
use strum::{AsRefStr, EnumString};
|
||||||
|
|
||||||
#[derive(
|
#[derive(
|
||||||
@ -338,8 +342,8 @@ impl SegmentRangeInclusive {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
impl std::fmt::Display for SegmentRangeInclusive {
|
impl core::fmt::Display for SegmentRangeInclusive {
|
||||||
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
|
fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result {
|
||||||
write!(f, "{}..={}", self.start, self.end)
|
write!(f, "{}..={}", self.start, self.end)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -34,4 +34,6 @@ std = [
|
|||||||
"derive_more/std",
|
"derive_more/std",
|
||||||
"reth-primitives-traits/std",
|
"reth-primitives-traits/std",
|
||||||
"thiserror/std",
|
"thiserror/std",
|
||||||
|
"reth-prune-types/std",
|
||||||
|
"reth-static-file-types/std",
|
||||||
]
|
]
|
||||||
|
|||||||
@ -47,4 +47,7 @@ std = [
|
|||||||
"reth-primitives-traits/std",
|
"reth-primitives-traits/std",
|
||||||
"revm/std",
|
"revm/std",
|
||||||
"reth-stages-types/std",
|
"reth-stages-types/std",
|
||||||
|
"reth-prune-types/std",
|
||||||
|
"reth-storage-errors/std",
|
||||||
|
"reth-execution-types/std",
|
||||||
]
|
]
|
||||||
|
|||||||
Reference in New Issue
Block a user