mirror of
https://github.com/hl-archive-node/nanoreth.git
synced 2025-12-06 19:09:54 +00:00
chore: rm receiptsext trait (#13296)
This commit is contained in:
@ -415,7 +415,7 @@ where
|
|||||||
|
|
||||||
// Compute or add new fields
|
// Compute or add new fields
|
||||||
transactions_root: proofs::calculate_transaction_root(&transactions),
|
transactions_root: proofs::calculate_transaction_root(&transactions),
|
||||||
receipts_root: outcome.receipts_root_slow(reorg_target.header.number).unwrap(),
|
receipts_root: outcome.ethereum_receipts_root(reorg_target.header.number).unwrap(),
|
||||||
logs_bloom: outcome.block_logs_bloom(reorg_target.header.number).unwrap(),
|
logs_bloom: outcome.block_logs_bloom(reorg_target.header.number).unwrap(),
|
||||||
gas_used: cumulative_gas_used,
|
gas_used: cumulative_gas_used,
|
||||||
blob_gas_used: blob_gas_used.map(Into::into),
|
blob_gas_used: blob_gas_used.map(Into::into),
|
||||||
|
|||||||
@ -408,7 +408,7 @@ where
|
|||||||
vec![requests.clone().unwrap_or_default()],
|
vec![requests.clone().unwrap_or_default()],
|
||||||
);
|
);
|
||||||
let receipts_root =
|
let receipts_root =
|
||||||
execution_outcome.receipts_root_slow(block_number).expect("Number is in range");
|
execution_outcome.ethereum_receipts_root(block_number).expect("Number is in range");
|
||||||
let logs_bloom = execution_outcome.block_logs_bloom(block_number).expect("Number is in range");
|
let logs_bloom = execution_outcome.block_logs_bloom(block_number).expect("Number is in range");
|
||||||
|
|
||||||
// calculate the state root
|
// calculate the state root
|
||||||
|
|||||||
@ -2,7 +2,7 @@ use crate::BlockExecutionOutput;
|
|||||||
use alloy_eips::eip7685::Requests;
|
use alloy_eips::eip7685::Requests;
|
||||||
use alloy_primitives::{logs_bloom, Address, BlockNumber, Bloom, Log, B256, U256};
|
use alloy_primitives::{logs_bloom, Address, BlockNumber, Bloom, Log, B256, U256};
|
||||||
use reth_primitives::Receipts;
|
use reth_primitives::Receipts;
|
||||||
use reth_primitives_traits::{receipt::ReceiptExt, Account, Bytecode, Receipt, StorageEntry};
|
use reth_primitives_traits::{Account, Bytecode, Receipt, StorageEntry};
|
||||||
use reth_trie::{HashedPostState, KeyHasher};
|
use reth_trie::{HashedPostState, KeyHasher};
|
||||||
use revm::{
|
use revm::{
|
||||||
db::{states::BundleState, BundleAccount},
|
db::{states::BundleState, BundleAccount},
|
||||||
@ -343,18 +343,17 @@ impl<T: Receipt<Log = Log>> ExecutionOutcome<T> {
|
|||||||
pub fn block_logs_bloom(&self, block_number: BlockNumber) -> Option<Bloom> {
|
pub fn block_logs_bloom(&self, block_number: BlockNumber) -> Option<Bloom> {
|
||||||
Some(logs_bloom(self.logs(block_number)?))
|
Some(logs_bloom(self.logs(block_number)?))
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/// Returns the receipt root for all recorded receipts.
|
impl ExecutionOutcome {
|
||||||
|
/// Returns the ethereum receipt root for all recorded receipts.
|
||||||
|
///
|
||||||
/// Note: this function calculated Bloom filters for every receipt and created merkle trees
|
/// Note: this function calculated Bloom filters for every receipt and created merkle trees
|
||||||
/// of receipt. This is a expensive operation.
|
/// of receipt. This is a expensive operation.
|
||||||
pub fn receipts_root_slow(&self, _block_number: BlockNumber) -> Option<B256>
|
pub fn ethereum_receipts_root(&self, _block_number: BlockNumber) -> Option<B256> {
|
||||||
where
|
self.receipts.root_slow(self.block_number_to_index(_block_number)?, |receipts| {
|
||||||
T: ReceiptExt,
|
reth_primitives::proofs::calculate_receipt_root_no_memo(receipts)
|
||||||
{
|
})
|
||||||
#[cfg(feature = "optimism")]
|
|
||||||
panic!("This should not be called in optimism mode. Use `optimism_receipts_root_slow` instead.");
|
|
||||||
#[cfg(not(feature = "optimism"))]
|
|
||||||
self.receipts.root_slow(self.block_number_to_index(_block_number)?, T::receipts_root)
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -1,19 +1,16 @@
|
|||||||
//! Receipt abstraction
|
//! Receipt abstraction
|
||||||
|
|
||||||
|
use crate::{InMemorySize, MaybeArbitrary, MaybeCompact, MaybeSerde};
|
||||||
use alloc::vec::Vec;
|
use alloc::vec::Vec;
|
||||||
use core::fmt;
|
|
||||||
|
|
||||||
use alloy_consensus::{
|
use alloy_consensus::{
|
||||||
Eip2718EncodableReceipt, RlpDecodableReceipt, RlpEncodableReceipt, TxReceipt, Typed2718,
|
Eip2718EncodableReceipt, RlpDecodableReceipt, RlpEncodableReceipt, TxReceipt, Typed2718,
|
||||||
};
|
};
|
||||||
use alloy_primitives::B256;
|
use core::fmt;
|
||||||
|
|
||||||
use crate::{InMemorySize, MaybeArbitrary, MaybeCompact, MaybeSerde};
|
|
||||||
|
|
||||||
/// Helper trait that unifies all behaviour required by receipt to support full node operations.
|
/// Helper trait that unifies all behaviour required by receipt to support full node operations.
|
||||||
pub trait FullReceipt: Receipt + MaybeCompact {}
|
pub trait FullReceipt: Receipt + MaybeCompact {}
|
||||||
|
|
||||||
impl<T> FullReceipt for T where T: ReceiptExt + MaybeCompact {}
|
impl<T> FullReceipt for T where T: Receipt + MaybeCompact {}
|
||||||
|
|
||||||
/// Abstraction of a receipt.
|
/// Abstraction of a receipt.
|
||||||
#[auto_impl::auto_impl(&, Arc)]
|
#[auto_impl::auto_impl(&, Arc)]
|
||||||
@ -35,12 +32,6 @@ pub trait Receipt:
|
|||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Extension if [`Receipt`] used in block execution.
|
|
||||||
pub trait ReceiptExt: Receipt {
|
|
||||||
/// Calculates the receipts root of the given receipts.
|
|
||||||
fn receipts_root(receipts: &[&Self]) -> B256;
|
|
||||||
}
|
|
||||||
|
|
||||||
/// Retrieves gas spent by transactions as a vector of tuples (transaction index, gas used).
|
/// Retrieves gas spent by transactions as a vector of tuples (transaction index, gas used).
|
||||||
pub fn gas_spent_by_transactions<I, T>(receipts: I) -> Vec<(u64, u64)>
|
pub fn gas_spent_by_transactions<I, T>(receipts: I) -> Vec<(u64, u64)>
|
||||||
where
|
where
|
||||||
|
|||||||
@ -9,7 +9,6 @@ use alloy_primitives::{Bloom, Log, B256};
|
|||||||
use alloy_rlp::{Decodable, Encodable, Header, RlpDecodable, RlpEncodable};
|
use alloy_rlp::{Decodable, Encodable, Header, RlpDecodable, RlpEncodable};
|
||||||
use bytes::BufMut;
|
use bytes::BufMut;
|
||||||
use derive_more::{DerefMut, From, IntoIterator};
|
use derive_more::{DerefMut, From, IntoIterator};
|
||||||
use reth_primitives_traits::receipt::ReceiptExt;
|
|
||||||
use serde::{Deserialize, Serialize};
|
use serde::{Deserialize, Serialize};
|
||||||
|
|
||||||
use crate::TxType;
|
use crate::TxType;
|
||||||
@ -269,15 +268,6 @@ impl Typed2718 for Receipt {
|
|||||||
|
|
||||||
impl reth_primitives_traits::Receipt for Receipt {}
|
impl reth_primitives_traits::Receipt for Receipt {}
|
||||||
|
|
||||||
impl ReceiptExt for Receipt {
|
|
||||||
fn receipts_root(_receipts: &[&Self]) -> B256 {
|
|
||||||
#[cfg(feature = "optimism")]
|
|
||||||
panic!("This should not be called in optimism mode. Use `optimism_receipts_root_slow` instead.");
|
|
||||||
#[cfg(not(feature = "optimism"))]
|
|
||||||
crate::proofs::calculate_receipt_root_no_memo(_receipts)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
impl InMemorySize for Receipt {
|
impl InMemorySize for Receipt {
|
||||||
/// Calculates a heuristic for the in-memory size of the [Receipt].
|
/// Calculates a heuristic for the in-memory size of the [Receipt].
|
||||||
#[inline]
|
#[inline]
|
||||||
|
|||||||
@ -16,7 +16,7 @@ use reth_evm::{
|
|||||||
ConfigureEvm, ConfigureEvmEnv, NextBlockEnvAttributes,
|
ConfigureEvm, ConfigureEvmEnv, NextBlockEnvAttributes,
|
||||||
};
|
};
|
||||||
use reth_primitives::{BlockExt, InvalidTransactionError, SealedBlockWithSenders};
|
use reth_primitives::{BlockExt, InvalidTransactionError, SealedBlockWithSenders};
|
||||||
use reth_primitives_traits::receipt::ReceiptExt;
|
use reth_primitives_traits::Receipt;
|
||||||
use reth_provider::{
|
use reth_provider::{
|
||||||
BlockReader, BlockReaderIdExt, ChainSpecProvider, EvmEnvProvider, ProviderBlock, ProviderError,
|
BlockReader, BlockReaderIdExt, ChainSpecProvider, EvmEnvProvider, ProviderBlock, ProviderError,
|
||||||
ProviderHeader, ProviderReceipt, ProviderTx, ReceiptProvider, StateProviderFactory,
|
ProviderHeader, ProviderReceipt, ProviderTx, ReceiptProvider, StateProviderFactory,
|
||||||
@ -47,7 +47,7 @@ pub trait LoadPendingBlock:
|
|||||||
HeaderResponse = alloy_rpc_types_eth::Header<ProviderHeader<Self::Provider>>,
|
HeaderResponse = alloy_rpc_types_eth::Header<ProviderHeader<Self::Provider>>,
|
||||||
>,
|
>,
|
||||||
> + RpcNodeCore<
|
> + RpcNodeCore<
|
||||||
Provider: BlockReaderIdExt<Receipt: ReceiptExt>
|
Provider: BlockReaderIdExt<Receipt: Receipt>
|
||||||
+ EvmEnvProvider<ProviderHeader<Self::Provider>>
|
+ EvmEnvProvider<ProviderHeader<Self::Provider>>
|
||||||
+ ChainSpecProvider<ChainSpec: EthChainSpec + EthereumHardforks>
|
+ ChainSpecProvider<ChainSpec: EthChainSpec + EthereumHardforks>
|
||||||
+ StateProviderFactory,
|
+ StateProviderFactory,
|
||||||
|
|||||||
Reference in New Issue
Block a user