mirror of
https://github.com/hl-archive-node/nanoreth.git
synced 2025-12-06 19:09:54 +00:00
primitives: use SealedHeader::seal (#12507)
This commit is contained in:
@ -10,7 +10,7 @@ use alloy_eips::{
|
||||
eip4895::{Withdrawal, Withdrawals},
|
||||
BlockHashOrNumber, BlockId, BlockNumHash, BlockNumberOrTag, HashOrNumber,
|
||||
};
|
||||
use alloy_primitives::{Address, BlockHash, BlockNumber, Sealable, TxHash, TxNumber, B256, U256};
|
||||
use alloy_primitives::{Address, BlockHash, BlockNumber, TxHash, TxNumber, B256, U256};
|
||||
use reth_chain_state::{BlockState, CanonicalInMemoryState, MemoryOverlayStateProviderRef};
|
||||
use reth_chainspec::{ChainInfo, EthereumHardforks};
|
||||
use reth_db::models::BlockNumberAddress;
|
||||
@ -1324,34 +1324,20 @@ impl<N: ProviderNodeTypes> BlockReaderIdExt for ConsistentProvider<N> {
|
||||
Ok(self.canonical_in_memory_state.get_finalized_header())
|
||||
}
|
||||
BlockNumberOrTag::Safe => Ok(self.canonical_in_memory_state.get_safe_header()),
|
||||
BlockNumberOrTag::Earliest => self.header_by_number(0)?.map_or_else(
|
||||
|| Ok(None),
|
||||
|h| {
|
||||
let sealed = h.seal_slow();
|
||||
let (header, seal) = sealed.into_parts();
|
||||
Ok(Some(SealedHeader::new(header, seal)))
|
||||
},
|
||||
),
|
||||
BlockNumberOrTag::Earliest => self
|
||||
.header_by_number(0)?
|
||||
.map_or_else(|| Ok(None), |h| Ok(Some(SealedHeader::seal(h)))),
|
||||
BlockNumberOrTag::Pending => Ok(self.canonical_in_memory_state.pending_sealed_header()),
|
||||
BlockNumberOrTag::Number(num) => self.header_by_number(num)?.map_or_else(
|
||||
|| Ok(None),
|
||||
|h| {
|
||||
let sealed = h.seal_slow();
|
||||
let (header, seal) = sealed.into_parts();
|
||||
Ok(Some(SealedHeader::new(header, seal)))
|
||||
},
|
||||
),
|
||||
BlockNumberOrTag::Number(num) => self
|
||||
.header_by_number(num)?
|
||||
.map_or_else(|| Ok(None), |h| Ok(Some(SealedHeader::seal(h)))),
|
||||
}
|
||||
}
|
||||
|
||||
fn sealed_header_by_id(&self, id: BlockId) -> ProviderResult<Option<SealedHeader>> {
|
||||
Ok(match id {
|
||||
BlockId::Number(num) => self.sealed_header_by_number_or_tag(num)?,
|
||||
BlockId::Hash(hash) => self.header(&hash.block_hash)?.map(|h| {
|
||||
let sealed = h.seal_slow();
|
||||
let (header, seal) = sealed.into_parts();
|
||||
SealedHeader::new(header, seal)
|
||||
}),
|
||||
BlockId::Hash(hash) => self.header(&hash.block_hash)?.map(SealedHeader::seal),
|
||||
})
|
||||
}
|
||||
|
||||
|
||||
@ -11,7 +11,7 @@ use alloy_eips::{
|
||||
eip4895::{Withdrawal, Withdrawals},
|
||||
BlockHashOrNumber, BlockId, BlockNumHash, BlockNumberOrTag,
|
||||
};
|
||||
use alloy_primitives::{Address, BlockHash, BlockNumber, Sealable, TxHash, TxNumber, B256, U256};
|
||||
use alloy_primitives::{Address, BlockHash, BlockNumber, TxHash, TxNumber, B256, U256};
|
||||
use reth_blockchain_tree_api::{
|
||||
error::{CanonicalError, InsertBlockError},
|
||||
BlockValidationKind, BlockchainTreeEngine, BlockchainTreeViewer, CanonicalOutcome,
|
||||
@ -847,34 +847,20 @@ where
|
||||
BlockNumberOrTag::Latest => Ok(Some(self.chain_info.get_canonical_head())),
|
||||
BlockNumberOrTag::Finalized => Ok(self.chain_info.get_finalized_header()),
|
||||
BlockNumberOrTag::Safe => Ok(self.chain_info.get_safe_header()),
|
||||
BlockNumberOrTag::Earliest => self.header_by_number(0)?.map_or_else(
|
||||
|| Ok(None),
|
||||
|h| {
|
||||
let sealed = h.seal_slow();
|
||||
let (header, seal) = sealed.into_parts();
|
||||
Ok(Some(SealedHeader::new(header, seal)))
|
||||
},
|
||||
),
|
||||
BlockNumberOrTag::Earliest => self
|
||||
.header_by_number(0)?
|
||||
.map_or_else(|| Ok(None), |h| Ok(Some(SealedHeader::seal(h)))),
|
||||
BlockNumberOrTag::Pending => Ok(self.tree.pending_header()),
|
||||
BlockNumberOrTag::Number(num) => self.header_by_number(num)?.map_or_else(
|
||||
|| Ok(None),
|
||||
|h| {
|
||||
let sealed = h.seal_slow();
|
||||
let (header, seal) = sealed.into_parts();
|
||||
Ok(Some(SealedHeader::new(header, seal)))
|
||||
},
|
||||
),
|
||||
BlockNumberOrTag::Number(num) => self
|
||||
.header_by_number(num)?
|
||||
.map_or_else(|| Ok(None), |h| Ok(Some(SealedHeader::seal(h)))),
|
||||
}
|
||||
}
|
||||
|
||||
fn sealed_header_by_id(&self, id: BlockId) -> ProviderResult<Option<SealedHeader>> {
|
||||
Ok(match id {
|
||||
BlockId::Number(num) => self.sealed_header_by_number_or_tag(num)?,
|
||||
BlockId::Hash(hash) => self.header(&hash.block_hash)?.map(|h| {
|
||||
let sealed = h.seal_slow();
|
||||
let (header, seal) = sealed.into_parts();
|
||||
SealedHeader::new(header, seal)
|
||||
}),
|
||||
BlockId::Hash(hash) => self.header(&hash.block_hash)?.map(SealedHeader::seal),
|
||||
})
|
||||
}
|
||||
|
||||
|
||||
@ -2,8 +2,7 @@
|
||||
use crate::{DBProvider, DatabaseProviderRW, ExecutionOutcome};
|
||||
use alloy_consensus::{TxLegacy, EMPTY_OMMER_ROOT_HASH};
|
||||
use alloy_primitives::{
|
||||
b256, hex_literal::hex, map::HashMap, Address, BlockNumber, Bytes, Log, Sealable, TxKind, B256,
|
||||
U256,
|
||||
b256, hex_literal::hex, map::HashMap, Address, BlockNumber, Bytes, Log, TxKind, B256, U256,
|
||||
};
|
||||
|
||||
use alloy_eips::eip4895::{Withdrawal, Withdrawals};
|
||||
@ -233,9 +232,7 @@ fn block1(number: BlockNumber) -> (SealedBlockWithSenders, ExecutionOutcome) {
|
||||
header.number = number;
|
||||
header.state_root = state_root;
|
||||
header.parent_hash = B256::ZERO;
|
||||
let sealed = header.seal_slow();
|
||||
let (header, seal) = sealed.into_parts();
|
||||
block.header = SealedHeader::new(header, seal);
|
||||
block.header = SealedHeader::seal(header);
|
||||
|
||||
(SealedBlockWithSenders { block, senders: vec![Address::new([0x30; 20])] }, execution_outcome)
|
||||
}
|
||||
@ -299,9 +296,7 @@ fn block2(
|
||||
header.state_root = state_root;
|
||||
// parent_hash points to block1 hash
|
||||
header.parent_hash = parent_hash;
|
||||
let sealed = header.seal_slow();
|
||||
let (header, seal) = sealed.into_parts();
|
||||
block.header = SealedHeader::new(header, seal);
|
||||
block.header = SealedHeader::seal(header);
|
||||
|
||||
(SealedBlockWithSenders { block, senders: vec![Address::new([0x31; 20])] }, execution_outcome)
|
||||
}
|
||||
@ -365,9 +360,7 @@ fn block3(
|
||||
header.state_root = state_root;
|
||||
// parent_hash points to block1 hash
|
||||
header.parent_hash = parent_hash;
|
||||
let sealed = header.seal_slow();
|
||||
let (header, seal) = sealed.into_parts();
|
||||
block.header = SealedHeader::new(header, seal);
|
||||
block.header = SealedHeader::seal(header);
|
||||
|
||||
(SealedBlockWithSenders { block, senders: vec![Address::new([0x31; 20])] }, execution_outcome)
|
||||
}
|
||||
@ -456,9 +449,7 @@ fn block4(
|
||||
header.state_root = state_root;
|
||||
// parent_hash points to block1 hash
|
||||
header.parent_hash = parent_hash;
|
||||
let sealed = header.seal_slow();
|
||||
let (header, seal) = sealed.into_parts();
|
||||
block.header = SealedHeader::new(header, seal);
|
||||
block.header = SealedHeader::seal(header);
|
||||
|
||||
(SealedBlockWithSenders { block, senders: vec![Address::new([0x31; 20])] }, execution_outcome)
|
||||
}
|
||||
@ -544,9 +535,7 @@ fn block5(
|
||||
header.state_root = state_root;
|
||||
// parent_hash points to block1 hash
|
||||
header.parent_hash = parent_hash;
|
||||
let sealed = header.seal_slow();
|
||||
let (header, seal) = sealed.into_parts();
|
||||
block.header = SealedHeader::new(header, seal);
|
||||
block.header = SealedHeader::seal(header);
|
||||
|
||||
(SealedBlockWithSenders { block, senders: vec![Address::new([0x31; 20])] }, execution_outcome)
|
||||
}
|
||||
|
||||
@ -13,8 +13,7 @@ use alloy_eips::{
|
||||
use alloy_primitives::{
|
||||
keccak256,
|
||||
map::{HashMap, HashSet},
|
||||
Address, BlockHash, BlockNumber, Bytes, Sealable, StorageKey, StorageValue, TxHash, TxNumber,
|
||||
B256, U256,
|
||||
Address, BlockHash, BlockNumber, Bytes, StorageKey, StorageValue, TxHash, TxNumber, B256, U256,
|
||||
};
|
||||
use parking_lot::Mutex;
|
||||
use reth_chainspec::{ChainInfo, ChainSpec};
|
||||
@ -218,11 +217,7 @@ impl HeaderProvider for MockEthProvider {
|
||||
}
|
||||
|
||||
fn sealed_header(&self, number: BlockNumber) -> ProviderResult<Option<SealedHeader>> {
|
||||
Ok(self.header_by_number(number)?.map(|h| {
|
||||
let sealed = h.seal_slow();
|
||||
let (header, seal) = sealed.into_parts();
|
||||
SealedHeader::new(header, seal)
|
||||
}))
|
||||
Ok(self.header_by_number(number)?.map(SealedHeader::seal))
|
||||
}
|
||||
|
||||
fn sealed_headers_while(
|
||||
@ -233,11 +228,7 @@ impl HeaderProvider for MockEthProvider {
|
||||
Ok(self
|
||||
.headers_range(range)?
|
||||
.into_iter()
|
||||
.map(|h| {
|
||||
let sealed = h.seal_slow();
|
||||
let (header, seal) = sealed.into_parts();
|
||||
SealedHeader::new(header, seal)
|
||||
})
|
||||
.map(SealedHeader::seal)
|
||||
.take_while(|h| predicate(h))
|
||||
.collect())
|
||||
}
|
||||
@ -566,14 +557,7 @@ impl BlockReaderIdExt for MockEthProvider {
|
||||
}
|
||||
|
||||
fn sealed_header_by_id(&self, id: BlockId) -> ProviderResult<Option<SealedHeader>> {
|
||||
self.header_by_id(id)?.map_or_else(
|
||||
|| Ok(None),
|
||||
|h| {
|
||||
let sealed = h.seal_slow();
|
||||
let (header, seal) = sealed.into_parts();
|
||||
Ok(Some(SealedHeader::new(header, seal)))
|
||||
},
|
||||
)
|
||||
self.header_by_id(id)?.map_or_else(|| Ok(None), |h| Ok(Some(SealedHeader::seal(h))))
|
||||
}
|
||||
|
||||
fn header_by_id(&self, id: BlockId) -> ProviderResult<Option<Header>> {
|
||||
|
||||
@ -3,7 +3,7 @@ use crate::{
|
||||
TransactionsProvider, WithdrawalsProvider,
|
||||
};
|
||||
use alloy_eips::{BlockHashOrNumber, BlockId, BlockNumberOrTag};
|
||||
use alloy_primitives::{BlockNumber, Sealable, B256};
|
||||
use alloy_primitives::{BlockNumber, B256};
|
||||
use reth_db_models::StoredBlockBodyIndices;
|
||||
use reth_primitives::{
|
||||
Block, BlockWithSenders, Header, Receipt, SealedBlock, SealedBlockWithSenders, SealedHeader,
|
||||
@ -243,14 +243,7 @@ pub trait BlockReaderIdExt: BlockReader + ReceiptProviderIdExt {
|
||||
) -> ProviderResult<Option<SealedHeader>> {
|
||||
self.convert_block_number(id)?
|
||||
.map_or_else(|| Ok(None), |num| self.header_by_hash_or_number(num.into()))?
|
||||
.map_or_else(
|
||||
|| Ok(None),
|
||||
|h| {
|
||||
let sealed = h.seal_slow();
|
||||
let (header, seal) = sealed.into_parts();
|
||||
Ok(Some(SealedHeader::new(header, seal)))
|
||||
},
|
||||
)
|
||||
.map_or_else(|| Ok(None), |h| Ok(Some(SealedHeader::seal(h))))
|
||||
}
|
||||
|
||||
/// Returns the sealed header with the matching `BlockId` from the database.
|
||||
|
||||
Reference in New Issue
Block a user