mirror of
https://github.com/paradigmxyz/reth.git
synced 2026-04-30 03:01:58 -04:00
feat: make base fee computation parameters configurable via chain spec (#3992)
This commit is contained in:
@@ -1,18 +1,18 @@
|
||||
use crate::{
|
||||
traits::{BlockSource, ReceiptProvider},
|
||||
AccountReader, BlockHashReader, BlockIdReader, BlockNumReader, BlockReader, BlockReaderIdExt,
|
||||
EvmEnvProvider, HeaderProvider, PostState, PostStateDataProvider, ReceiptProviderIdExt,
|
||||
StateProvider, StateProviderBox, StateProviderFactory, StateRootProvider, TransactionsProvider,
|
||||
WithdrawalsProvider,
|
||||
ChainSpecProvider, EvmEnvProvider, HeaderProvider, PostState, PostStateDataProvider,
|
||||
ReceiptProviderIdExt, StateProvider, StateProviderBox, StateProviderFactory, StateRootProvider,
|
||||
TransactionsProvider, WithdrawalsProvider,
|
||||
};
|
||||
use parking_lot::Mutex;
|
||||
use reth_db::models::StoredBlockBodyIndices;
|
||||
use reth_interfaces::{provider::ProviderError, Result};
|
||||
use reth_primitives::{
|
||||
keccak256, Account, Address, Block, BlockHash, BlockHashOrNumber, BlockId, BlockNumber,
|
||||
BlockWithSenders, Bytecode, Bytes, ChainInfo, Header, Receipt, SealedBlock, SealedHeader,
|
||||
StorageKey, StorageValue, TransactionMeta, TransactionSigned, TransactionSignedNoHash, TxHash,
|
||||
TxNumber, H256, U256,
|
||||
BlockWithSenders, Bytecode, Bytes, ChainInfo, ChainSpec, Header, Receipt, SealedBlock,
|
||||
SealedHeader, StorageKey, StorageValue, TransactionMeta, TransactionSigned,
|
||||
TransactionSignedNoHash, TxHash, TxNumber, H256, U256,
|
||||
};
|
||||
use reth_revm_primitives::primitives::{BlockEnv, CfgEnv};
|
||||
use std::{
|
||||
@@ -22,7 +22,7 @@ use std::{
|
||||
};
|
||||
|
||||
/// A mock implementation for Provider interfaces.
|
||||
#[derive(Debug, Clone, Default)]
|
||||
#[derive(Debug, Clone)]
|
||||
pub struct MockEthProvider {
|
||||
/// Local block store
|
||||
pub blocks: Arc<Mutex<HashMap<H256, Block>>>,
|
||||
@@ -30,6 +30,19 @@ pub struct MockEthProvider {
|
||||
pub headers: Arc<Mutex<HashMap<H256, Header>>>,
|
||||
/// Local account store
|
||||
pub accounts: Arc<Mutex<HashMap<Address, ExtendedAccount>>>,
|
||||
/// Local chain spec
|
||||
pub chain_spec: Arc<ChainSpec>,
|
||||
}
|
||||
|
||||
impl Default for MockEthProvider {
|
||||
fn default() -> MockEthProvider {
|
||||
MockEthProvider {
|
||||
blocks: Default::default(),
|
||||
headers: Default::default(),
|
||||
accounts: Default::default(),
|
||||
chain_spec: Arc::new(reth_primitives::ChainSpecBuilder::mainnet().build()),
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/// An extended account for local store
|
||||
@@ -160,6 +173,12 @@ impl HeaderProvider for MockEthProvider {
|
||||
}
|
||||
}
|
||||
|
||||
impl ChainSpecProvider for MockEthProvider {
|
||||
fn chain_spec(&self) -> Arc<ChainSpec> {
|
||||
self.chain_spec.clone()
|
||||
}
|
||||
}
|
||||
|
||||
impl TransactionsProvider for MockEthProvider {
|
||||
fn transaction_id(&self, _tx_hash: TxHash) -> Result<Option<TxNumber>> {
|
||||
todo!()
|
||||
|
||||
Reference in New Issue
Block a user