pub struct DatabaseProvider<TX, N>where
N: NodeTypes,{ /* private fields */ }provider only.Expand description
A provider struct that fetches data from the database.
Wrapper around DbTx and DbTxMut. Example: HeaderProvider BlockHashReader
Implementations§
Source§impl<TX, N> DatabaseProvider<TX, N>where
N: NodeTypes,
impl<TX, N> DatabaseProvider<TX, N>where
N: NodeTypes,
Sourcepub const fn prune_modes_ref(&self) -> &PruneModes
pub const fn prune_modes_ref(&self) -> &PruneModes
Returns reference to prune modes.
Source§impl<TX, N> DatabaseProvider<TX, N>
impl<TX, N> DatabaseProvider<TX, N>
Sourcepub fn latest<'a>(&'a self) -> Box<dyn StateProvider + 'a>
pub fn latest<'a>(&'a self) -> Box<dyn StateProvider + 'a>
State provider for latest state
Sourcepub fn history_by_block_hash<'a>(
&'a self,
block_hash: FixedBytes<32>,
) -> Result<Box<dyn StateProvider + 'a>, ProviderError>
pub fn history_by_block_hash<'a>( &'a self, block_hash: FixedBytes<32>, ) -> Result<Box<dyn StateProvider + 'a>, ProviderError>
Storage provider for state at that given block hash
Sourcepub const fn set_prune_modes(&mut self, prune_modes: PruneModes)
pub const fn set_prune_modes(&mut self, prune_modes: PruneModes)
Sets the prune modes for provider.
Source§impl<TX, N> DatabaseProvider<TX, N>
impl<TX, N> DatabaseProvider<TX, N>
Sourcepub const fn new_rw(
tx: TX,
chain_spec: Arc<<N as NodeTypes>::ChainSpec>,
static_file_provider: StaticFileProvider<<N as NodeTypes>::Primitives>,
prune_modes: PruneModes,
storage: Arc<<N as NodeTypes>::Storage>,
) -> DatabaseProvider<TX, N>
pub const fn new_rw( tx: TX, chain_spec: Arc<<N as NodeTypes>::ChainSpec>, static_file_provider: StaticFileProvider<<N as NodeTypes>::Primitives>, prune_modes: PruneModes, storage: Arc<<N as NodeTypes>::Storage>, ) -> DatabaseProvider<TX, N>
Creates a provider with an inner read-write transaction.
Source§impl<TX, N> DatabaseProvider<TX, N>
impl<TX, N> DatabaseProvider<TX, N>
Sourcepub fn save_blocks(
&self,
blocks: Vec<ExecutedBlock<<N as NodeTypes>::Primitives>>,
) -> Result<(), ProviderError>
pub fn save_blocks( &self, blocks: Vec<ExecutedBlock<<N as NodeTypes>::Primitives>>, ) -> Result<(), ProviderError>
Writes executed blocks and state to storage.
Sourcepub fn unwind_trie_state_from(&self, from: u64) -> Result<(), ProviderError>
pub fn unwind_trie_state_from(&self, from: u64) -> Result<(), ProviderError>
Unwinds trie state starting at and including the given block.
This includes calculating the resulted state root and comparing it with the parent block state root.
Source§impl<TX, N> DatabaseProvider<TX, N>where
TX: DbTx + 'static,
N: NodeTypesForProvider,
impl<TX, N> DatabaseProvider<TX, N>where
TX: DbTx + 'static,
N: NodeTypesForProvider,
Sourcepub const fn new(
tx: TX,
chain_spec: Arc<<N as NodeTypes>::ChainSpec>,
static_file_provider: StaticFileProvider<<N as NodeTypes>::Primitives>,
prune_modes: PruneModes,
storage: Arc<<N as NodeTypes>::Storage>,
) -> DatabaseProvider<TX, N>
pub const fn new( tx: TX, chain_spec: Arc<<N as NodeTypes>::ChainSpec>, static_file_provider: StaticFileProvider<<N as NodeTypes>::Primitives>, prune_modes: PruneModes, storage: Arc<<N as NodeTypes>::Storage>, ) -> DatabaseProvider<TX, N>
Creates a provider with an inner read-only transaction.
Sourcepub fn chain_spec(&self) -> &<N as NodeTypes>::ChainSpec
pub fn chain_spec(&self) -> &<N as NodeTypes>::ChainSpec
Returns a reference to the chain specification.
Trait Implementations§
Source§impl<TX, N> AccountExtReader for DatabaseProvider<TX, N>
impl<TX, N> AccountExtReader for DatabaseProvider<TX, N>
Source§fn changed_accounts_with_range(
&self,
range: impl RangeBounds<u64>,
) -> Result<BTreeSet<Address>, ProviderError>
fn changed_accounts_with_range( &self, range: impl RangeBounds<u64>, ) -> Result<BTreeSet<Address>, ProviderError>
Source§fn basic_accounts(
&self,
iter: impl IntoIterator<Item = Address>,
) -> Result<Vec<(Address, Option<Account>)>, ProviderError>
fn basic_accounts( &self, iter: impl IntoIterator<Item = Address>, ) -> Result<Vec<(Address, Option<Account>)>, ProviderError>
AccountReader::basic_account repeatedly. Read moreSource§fn changed_accounts_and_blocks_with_range(
&self,
range: RangeInclusive<u64>,
) -> Result<BTreeMap<Address, Vec<u64>>, ProviderError>
fn changed_accounts_and_blocks_with_range( &self, range: RangeInclusive<u64>, ) -> Result<BTreeMap<Address, Vec<u64>>, ProviderError>
Source§impl<TX, N> AccountReader for DatabaseProvider<TX, N>
impl<TX, N> AccountReader for DatabaseProvider<TX, N>
Source§fn basic_account(
&self,
address: &Address,
) -> Result<Option<Account>, ProviderError>
fn basic_account( &self, address: &Address, ) -> Result<Option<Account>, ProviderError>
Source§impl<DB, N> AsRef<DatabaseProvider<<DB as Database>::TXMut, N>> for DatabaseProviderRW<DB, N>
impl<DB, N> AsRef<DatabaseProvider<<DB as Database>::TXMut, N>> for DatabaseProviderRW<DB, N>
Source§impl<TX, N> AsRef<DatabaseProvider<TX, N>> for DatabaseProvider<TX, N>where
N: NodeTypes,
impl<TX, N> AsRef<DatabaseProvider<TX, N>> for DatabaseProvider<TX, N>where
N: NodeTypes,
Source§fn as_ref(&self) -> &DatabaseProvider<TX, N>
fn as_ref(&self) -> &DatabaseProvider<TX, N>
Source§impl<TX, N> BlockBodyIndicesProvider for DatabaseProvider<TX, N>where
TX: DbTx + 'static,
N: NodeTypesForProvider,
impl<TX, N> BlockBodyIndicesProvider for DatabaseProvider<TX, N>where
TX: DbTx + 'static,
N: NodeTypesForProvider,
Source§fn block_body_indices(
&self,
num: u64,
) -> Result<Option<StoredBlockBodyIndices>, ProviderError>
fn block_body_indices( &self, num: u64, ) -> Result<Option<StoredBlockBodyIndices>, ProviderError>
Source§fn block_body_indices_range(
&self,
range: RangeInclusive<u64>,
) -> Result<Vec<StoredBlockBodyIndices>, ProviderError>
fn block_body_indices_range( &self, range: RangeInclusive<u64>, ) -> Result<Vec<StoredBlockBodyIndices>, ProviderError>
Source§impl<TX, N> BlockExecutionWriter for DatabaseProvider<TX, N>
impl<TX, N> BlockExecutionWriter for DatabaseProvider<TX, N>
Source§fn take_block_and_execution_above(
&self,
block: u64,
) -> Result<Chain<<DatabaseProvider<TX, N> as NodePrimitivesProvider>::Primitives>, ProviderError>
fn take_block_and_execution_above( &self, block: u64, ) -> Result<Chain<<DatabaseProvider<TX, N> as NodePrimitivesProvider>::Primitives>, ProviderError>
Source§fn remove_block_and_execution_above(
&self,
block: u64,
) -> Result<(), ProviderError>
fn remove_block_and_execution_above( &self, block: u64, ) -> Result<(), ProviderError>
Source§impl<TX, N> BlockHashReader for DatabaseProvider<TX, N>
impl<TX, N> BlockHashReader for DatabaseProvider<TX, N>
Source§fn block_hash(
&self,
number: u64,
) -> Result<Option<FixedBytes<32>>, ProviderError>
fn block_hash( &self, number: u64, ) -> Result<Option<FixedBytes<32>>, ProviderError>
None if no block with this number
exists.Source§fn canonical_hashes_range(
&self,
start: u64,
end: u64,
) -> Result<Vec<FixedBytes<32>>, ProviderError>
fn canonical_hashes_range( &self, start: u64, end: u64, ) -> Result<Vec<FixedBytes<32>>, ProviderError>
Source§fn convert_block_hash(
&self,
hash_or_number: HashOrNumber,
) -> Result<Option<FixedBytes<32>>, ProviderError>
fn convert_block_hash( &self, hash_or_number: HashOrNumber, ) -> Result<Option<FixedBytes<32>>, ProviderError>
None if no block with this number
exists.Source§impl<TX, N> BlockNumReader for DatabaseProvider<TX, N>
impl<TX, N> BlockNumReader for DatabaseProvider<TX, N>
Source§fn chain_info(&self) -> Result<ChainInfo, ProviderError>
fn chain_info(&self) -> Result<ChainInfo, ProviderError>
Source§fn best_block_number(&self) -> Result<u64, ProviderError>
fn best_block_number(&self) -> Result<u64, ProviderError>
Source§fn last_block_number(&self) -> Result<u64, ProviderError>
fn last_block_number(&self) -> Result<u64, ProviderError>
Source§fn block_number(
&self,
hash: FixedBytes<32>,
) -> Result<Option<u64>, ProviderError>
fn block_number( &self, hash: FixedBytes<32>, ) -> Result<Option<u64>, ProviderError>
BlockNumber for the given hash. Returns None if no block with this hash exists.Source§fn earliest_block_number(&self) -> Result<u64, ProviderError>
fn earliest_block_number(&self) -> Result<u64, ProviderError>
Source§fn convert_hash_or_number(
&self,
id: HashOrNumber,
) -> Result<Option<u64>, ProviderError>
fn convert_hash_or_number( &self, id: HashOrNumber, ) -> Result<Option<u64>, ProviderError>
BlockHashOrNumber. Returns None if no block with
this hash exists. If the BlockHashOrNumber is a Number, it is returned as is.Source§fn convert_number(
&self,
id: HashOrNumber,
) -> Result<Option<FixedBytes<32>>, ProviderError>
fn convert_number( &self, id: HashOrNumber, ) -> Result<Option<FixedBytes<32>>, ProviderError>
BlockHashOrNumber. Returns None if no block with this
number exists. If the BlockHashOrNumber is a Hash, it is returned as is.Source§impl<TX, N> BlockReader for DatabaseProvider<TX, N>where
TX: DbTx + 'static,
N: NodeTypesForProvider,
impl<TX, N> BlockReader for DatabaseProvider<TX, N>where
TX: DbTx + 'static,
N: NodeTypesForProvider,
Source§fn block(
&self,
id: HashOrNumber,
) -> Result<Option<<DatabaseProvider<TX, N> as BlockReader>::Block>, ProviderError>
fn block( &self, id: HashOrNumber, ) -> Result<Option<<DatabaseProvider<TX, N> as BlockReader>::Block>, ProviderError>
Returns the block with matching number from database.
If the header for this block is not found, this returns None.
If the header is found, but the transactions either do not exist, or are not indexed, this
will return None.
Source§fn recovered_block(
&self,
id: HashOrNumber,
transaction_kind: TransactionVariant,
) -> Result<Option<RecoveredBlock<<DatabaseProvider<TX, N> as BlockReader>::Block>>, ProviderError>
fn recovered_block( &self, id: HashOrNumber, transaction_kind: TransactionVariant, ) -> Result<Option<RecoveredBlock<<DatabaseProvider<TX, N> as BlockReader>::Block>>, ProviderError>
Returns the block with senders with matching number or hash from database.
NOTE: The transactions have invalid hashes, since they would need to be calculated on the spot, and we want fast querying.
If the header for this block is not found, this returns None.
If the header is found, but the transactions either do not exist, or are not indexed, this
will return None.
Source§type Block = <<N as NodeTypes>::Primitives as NodePrimitives>::Block
type Block = <<N as NodeTypes>::Primitives as NodePrimitives>::Block
Source§fn find_block_by_hash(
&self,
hash: FixedBytes<32>,
source: BlockSource,
) -> Result<Option<<DatabaseProvider<TX, N> as BlockReader>::Block>, ProviderError>
fn find_block_by_hash( &self, hash: FixedBytes<32>, source: BlockSource, ) -> Result<Option<<DatabaseProvider<TX, N> as BlockReader>::Block>, ProviderError>
Source§fn pending_block(
&self,
) -> Result<Option<RecoveredBlock<<DatabaseProvider<TX, N> as BlockReader>::Block>>, ProviderError>
fn pending_block( &self, ) -> Result<Option<RecoveredBlock<<DatabaseProvider<TX, N> as BlockReader>::Block>>, ProviderError>
Source§fn pending_block_and_receipts(
&self,
) -> Result<Option<(RecoveredBlock<<DatabaseProvider<TX, N> as BlockReader>::Block>, Vec<<DatabaseProvider<TX, N> as ReceiptProvider>::Receipt>)>, ProviderError>
fn pending_block_and_receipts( &self, ) -> Result<Option<(RecoveredBlock<<DatabaseProvider<TX, N> as BlockReader>::Block>, Vec<<DatabaseProvider<TX, N> as ReceiptProvider>::Receipt>)>, ProviderError>
Source§fn sealed_block_with_senders(
&self,
id: HashOrNumber,
transaction_kind: TransactionVariant,
) -> Result<Option<RecoveredBlock<<DatabaseProvider<TX, N> as BlockReader>::Block>>, ProviderError>
fn sealed_block_with_senders( &self, id: HashOrNumber, transaction_kind: TransactionVariant, ) -> Result<Option<RecoveredBlock<<DatabaseProvider<TX, N> as BlockReader>::Block>>, ProviderError>
Source§fn block_range(
&self,
range: RangeInclusive<u64>,
) -> Result<Vec<<DatabaseProvider<TX, N> as BlockReader>::Block>, ProviderError>
fn block_range( &self, range: RangeInclusive<u64>, ) -> Result<Vec<<DatabaseProvider<TX, N> as BlockReader>::Block>, ProviderError>
Source§fn block_with_senders_range(
&self,
range: RangeInclusive<u64>,
) -> Result<Vec<RecoveredBlock<<DatabaseProvider<TX, N> as BlockReader>::Block>>, ProviderError>
fn block_with_senders_range( &self, range: RangeInclusive<u64>, ) -> Result<Vec<RecoveredBlock<<DatabaseProvider<TX, N> as BlockReader>::Block>>, ProviderError>
Source§fn recovered_block_range(
&self,
range: RangeInclusive<u64>,
) -> Result<Vec<RecoveredBlock<<DatabaseProvider<TX, N> as BlockReader>::Block>>, ProviderError>
fn recovered_block_range( &self, range: RangeInclusive<u64>, ) -> Result<Vec<RecoveredBlock<<DatabaseProvider<TX, N> as BlockReader>::Block>>, ProviderError>
Source§fn block_by_transaction_id(&self, id: u64) -> Result<Option<u64>, ProviderError>
fn block_by_transaction_id(&self, id: u64) -> Result<Option<u64>, ProviderError>
Source§fn block_by_hash(
&self,
hash: FixedBytes<32>,
) -> Result<Option<Self::Block>, ProviderError>
fn block_by_hash( &self, hash: FixedBytes<32>, ) -> Result<Option<Self::Block>, ProviderError>
Source§fn block_by_number(
&self,
num: u64,
) -> Result<Option<Self::Block>, ProviderError>
fn block_by_number( &self, num: u64, ) -> Result<Option<Self::Block>, ProviderError>
Source§impl<TX, N> BlockWriter for DatabaseProvider<TX, N>
impl<TX, N> BlockWriter for DatabaseProvider<TX, N>
Source§fn insert_block(
&self,
block: RecoveredBlock<<DatabaseProvider<TX, N> as BlockWriter>::Block>,
) -> Result<StoredBlockBodyIndices, ProviderError>
fn insert_block( &self, block: RecoveredBlock<<DatabaseProvider<TX, N> as BlockWriter>::Block>, ) -> Result<StoredBlockBodyIndices, ProviderError>
Inserts the block into the database, always modifying the following static file segments and tables:
If there are transactions in the block, the following static file segments and tables will be modified:
If ommers are not empty, this will modify BlockOmmers.
If withdrawals are not empty, this will modify
BlockWithdrawals.
If the provider has not configured full sender pruning, this will modify
TransactionSenders.
If the provider has not configured full transaction lookup pruning, this will modify
TransactionHashNumbers.
Source§fn append_blocks_with_state(
&self,
blocks: Vec<RecoveredBlock<<DatabaseProvider<TX, N> as BlockWriter>::Block>>,
execution_outcome: &ExecutionOutcome<<DatabaseProvider<TX, N> as BlockWriter>::Receipt>,
hashed_state: HashedPostStateSorted,
) -> Result<(), ProviderError>
fn append_blocks_with_state( &self, blocks: Vec<RecoveredBlock<<DatabaseProvider<TX, N> as BlockWriter>::Block>>, execution_outcome: &ExecutionOutcome<<DatabaseProvider<TX, N> as BlockWriter>::Receipt>, hashed_state: HashedPostStateSorted, ) -> Result<(), ProviderError>
TODO(joshie): this fn should be moved to UnifiedStorageWriter eventually
Source§type Block = <<N as NodeTypes>::Primitives as NodePrimitives>::Block
type Block = <<N as NodeTypes>::Primitives as NodePrimitives>::Block
Source§type Receipt = <<N as NodeTypes>::Primitives as NodePrimitives>::Receipt
type Receipt = <<N as NodeTypes>::Primitives as NodePrimitives>::Receipt
ExecutionOutcome.Source§fn append_block_bodies(
&self,
bodies: Vec<(u64, Option<<<N as NodeTypes>::Primitives as NodePrimitives>::BlockBody>)>,
) -> Result<(), ProviderError>
fn append_block_bodies( &self, bodies: Vec<(u64, Option<<<N as NodeTypes>::Primitives as NodePrimitives>::BlockBody>)>, ) -> Result<(), ProviderError>
Bodies stage and does not write to TransactionHashNumbers and TransactionSenders
tables which are populated on later stages. Read moreSource§fn remove_blocks_above(&self, block: u64) -> Result<(), ProviderError>
fn remove_blocks_above(&self, block: u64) -> Result<(), ProviderError>
Source§fn remove_bodies_above(&self, block: u64) -> Result<(), ProviderError>
fn remove_bodies_above(&self, block: u64) -> Result<(), ProviderError>
Source§impl<TX, N> ChainSpecProvider for DatabaseProvider<TX, N>
impl<TX, N> ChainSpecProvider for DatabaseProvider<TX, N>
Source§fn chain_spec(
&self,
) -> Arc<<DatabaseProvider<TX, N> as ChainSpecProvider>::ChainSpec>
fn chain_spec( &self, ) -> Arc<<DatabaseProvider<TX, N> as ChainSpecProvider>::ChainSpec>
Arc to the chainspec.Source§impl<TX, N> ChainStateBlockReader for DatabaseProvider<TX, N>
impl<TX, N> ChainStateBlockReader for DatabaseProvider<TX, N>
Source§fn last_finalized_block_number(&self) -> Result<Option<u64>, ProviderError>
fn last_finalized_block_number(&self) -> Result<Option<u64>, ProviderError>
Source§fn last_safe_block_number(&self) -> Result<Option<u64>, ProviderError>
fn last_safe_block_number(&self) -> Result<Option<u64>, ProviderError>
Source§impl<TX, N> ChainStateBlockWriter for DatabaseProvider<TX, N>
impl<TX, N> ChainStateBlockWriter for DatabaseProvider<TX, N>
Source§fn save_finalized_block_number(
&self,
block_number: u64,
) -> Result<(), ProviderError>
fn save_finalized_block_number( &self, block_number: u64, ) -> Result<(), ProviderError>
Source§fn save_safe_block_number(&self, block_number: u64) -> Result<(), ProviderError>
fn save_safe_block_number(&self, block_number: u64) -> Result<(), ProviderError>
Source§impl<TX, N> ChangeSetReader for DatabaseProvider<TX, N>
impl<TX, N> ChangeSetReader for DatabaseProvider<TX, N>
Source§fn account_block_changeset(
&self,
block_number: u64,
) -> Result<Vec<AccountBeforeTx>, ProviderError>
fn account_block_changeset( &self, block_number: u64, ) -> Result<Vec<AccountBeforeTx>, ProviderError>
Source§fn get_account_before_block(
&self,
block_number: u64,
address: Address,
) -> Result<Option<AccountBeforeTx>, ProviderError>
fn get_account_before_block( &self, block_number: u64, address: Address, ) -> Result<Option<AccountBeforeTx>, ProviderError>
Source§impl<TX, N> DBProvider for DatabaseProvider<TX, N>
impl<TX, N> DBProvider for DatabaseProvider<TX, N>
Source§fn tx_ref(&self) -> &<DatabaseProvider<TX, N> as DBProvider>::Tx
fn tx_ref(&self) -> &<DatabaseProvider<TX, N> as DBProvider>::Tx
Source§fn tx_mut(&mut self) -> &mut <DatabaseProvider<TX, N> as DBProvider>::Tx
fn tx_mut(&mut self) -> &mut <DatabaseProvider<TX, N> as DBProvider>::Tx
Source§fn into_tx(self) -> <DatabaseProvider<TX, N> as DBProvider>::Tx
fn into_tx(self) -> <DatabaseProvider<TX, N> as DBProvider>::Tx
Source§fn prune_modes_ref(&self) -> &PruneModes
fn prune_modes_ref(&self) -> &PruneModes
Source§fn disable_long_read_transaction_safety(self) -> Self
fn disable_long_read_transaction_safety(self) -> Self
Source§fn table<T>(
&self,
) -> Result<Vec<(<T as Table>::Key, <T as Table>::Value)>, DatabaseError>
fn table<T>( &self, ) -> Result<Vec<(<T as Table>::Key, <T as Table>::Value)>, DatabaseError>
Source§fn get<T>(
&self,
range: impl RangeBounds<<T as Table>::Key>,
) -> Result<Vec<(<T as Table>::Key, <T as Table>::Value)>, DatabaseError>where
T: Table,
fn get<T>(
&self,
range: impl RangeBounds<<T as Table>::Key>,
) -> Result<Vec<(<T as Table>::Key, <T as Table>::Value)>, DatabaseError>where
T: Table,
Source§fn cursor_read_collect<T>(
&self,
range: impl RangeBounds<<T as Table>::Key>,
) -> Result<Vec<<T as Table>::Value>, ProviderError>
fn cursor_read_collect<T>( &self, range: impl RangeBounds<<T as Table>::Key>, ) -> Result<Vec<<T as Table>::Value>, ProviderError>
Source§fn cursor_collect<T>(
&self,
cursor: &mut impl DbCursorRO<T>,
range: impl RangeBounds<<T as Table>::Key>,
) -> Result<Vec<<T as Table>::Value>, ProviderError>
fn cursor_collect<T>( &self, cursor: &mut impl DbCursorRO<T>, range: impl RangeBounds<<T as Table>::Key>, ) -> Result<Vec<<T as Table>::Value>, ProviderError>
Source§fn cursor_collect_with_capacity<T>(
&self,
cursor: &mut impl DbCursorRO<T>,
range: impl RangeBounds<<T as Table>::Key>,
capacity: usize,
) -> Result<Vec<<T as Table>::Value>, ProviderError>
fn cursor_collect_with_capacity<T>( &self, cursor: &mut impl DbCursorRO<T>, range: impl RangeBounds<<T as Table>::Key>, capacity: usize, ) -> Result<Vec<<T as Table>::Value>, ProviderError>
Source§fn remove<T>(
&self,
range: impl RangeBounds<<T as Table>::Key>,
) -> Result<usize, DatabaseError>
fn remove<T>( &self, range: impl RangeBounds<<T as Table>::Key>, ) -> Result<usize, DatabaseError>
Source§impl<TX, N> Debug for DatabaseProvider<TX, N>
impl<TX, N> Debug for DatabaseProvider<TX, N>
Source§impl<DB, N> From<DatabaseProviderRW<DB, N>> for DatabaseProvider<<DB as Database>::TXMut, N>
impl<DB, N> From<DatabaseProviderRW<DB, N>> for DatabaseProvider<<DB as Database>::TXMut, N>
Source§fn from(
provider: DatabaseProviderRW<DB, N>,
) -> DatabaseProvider<<DB as Database>::TXMut, N>
fn from( provider: DatabaseProviderRW<DB, N>, ) -> DatabaseProvider<<DB as Database>::TXMut, N>
Source§impl<TX, N> HashingWriter for DatabaseProvider<TX, N>
impl<TX, N> HashingWriter for DatabaseProvider<TX, N>
Source§fn unwind_account_hashing<'a>(
&self,
changesets: impl Iterator<Item = &'a (u64, AccountBeforeTx)>,
) -> Result<BTreeMap<FixedBytes<32>, Option<Account>>, ProviderError>
fn unwind_account_hashing<'a>( &self, changesets: impl Iterator<Item = &'a (u64, AccountBeforeTx)>, ) -> Result<BTreeMap<FixedBytes<32>, Option<Account>>, ProviderError>
Source§fn unwind_account_hashing_range(
&self,
range: impl RangeBounds<u64>,
) -> Result<BTreeMap<FixedBytes<32>, Option<Account>>, ProviderError>
fn unwind_account_hashing_range( &self, range: impl RangeBounds<u64>, ) -> Result<BTreeMap<FixedBytes<32>, Option<Account>>, ProviderError>
Source§fn insert_account_for_hashing(
&self,
changesets: impl IntoIterator<Item = (Address, Option<Account>)>,
) -> Result<BTreeMap<FixedBytes<32>, Option<Account>>, ProviderError>
fn insert_account_for_hashing( &self, changesets: impl IntoIterator<Item = (Address, Option<Account>)>, ) -> Result<BTreeMap<FixedBytes<32>, Option<Account>>, ProviderError>
AccountsHistory table. Read moreSource§fn unwind_storage_hashing(
&self,
changesets: impl Iterator<Item = (BlockNumberAddress, StorageEntry)>,
) -> Result<HashMap<FixedBytes<32>, BTreeSet<FixedBytes<32>>, DefaultHashBuilder>, ProviderError>
fn unwind_storage_hashing( &self, changesets: impl Iterator<Item = (BlockNumberAddress, StorageEntry)>, ) -> Result<HashMap<FixedBytes<32>, BTreeSet<FixedBytes<32>>, DefaultHashBuilder>, ProviderError>
Source§fn unwind_storage_hashing_range(
&self,
range: impl RangeBounds<BlockNumberAddress>,
) -> Result<HashMap<FixedBytes<32>, BTreeSet<FixedBytes<32>>, DefaultHashBuilder>, ProviderError>
fn unwind_storage_hashing_range( &self, range: impl RangeBounds<BlockNumberAddress>, ) -> Result<HashMap<FixedBytes<32>, BTreeSet<FixedBytes<32>>, DefaultHashBuilder>, ProviderError>
Source§fn insert_storage_for_hashing(
&self,
storages: impl IntoIterator<Item = (Address, impl IntoIterator<Item = StorageEntry>)>,
) -> Result<HashMap<FixedBytes<32>, BTreeSet<FixedBytes<32>>, DefaultHashBuilder>, ProviderError>
fn insert_storage_for_hashing( &self, storages: impl IntoIterator<Item = (Address, impl IntoIterator<Item = StorageEntry>)>, ) -> Result<HashMap<FixedBytes<32>, BTreeSet<FixedBytes<32>>, DefaultHashBuilder>, ProviderError>
Source§impl<TX, N> HeaderProvider for DatabaseProvider<TX, N>where
TX: DbTx + 'static,
N: NodeTypesForProvider,
impl<TX, N> HeaderProvider for DatabaseProvider<TX, N>where
TX: DbTx + 'static,
N: NodeTypesForProvider,
Source§type Header = <<N as NodeTypes>::Primitives as NodePrimitives>::BlockHeader
type Header = <<N as NodeTypes>::Primitives as NodePrimitives>::BlockHeader
Source§fn header(
&self,
block_hash: FixedBytes<32>,
) -> Result<Option<<DatabaseProvider<TX, N> as HeaderProvider>::Header>, ProviderError>
fn header( &self, block_hash: FixedBytes<32>, ) -> Result<Option<<DatabaseProvider<TX, N> as HeaderProvider>::Header>, ProviderError>
Source§fn header_by_number(
&self,
num: u64,
) -> Result<Option<<DatabaseProvider<TX, N> as HeaderProvider>::Header>, ProviderError>
fn header_by_number( &self, num: u64, ) -> Result<Option<<DatabaseProvider<TX, N> as HeaderProvider>::Header>, ProviderError>
Source§fn headers_range(
&self,
range: impl RangeBounds<u64>,
) -> Result<Vec<<DatabaseProvider<TX, N> as HeaderProvider>::Header>, ProviderError>
fn headers_range( &self, range: impl RangeBounds<u64>, ) -> Result<Vec<<DatabaseProvider<TX, N> as HeaderProvider>::Header>, ProviderError>
Source§fn sealed_header(
&self,
number: u64,
) -> Result<Option<SealedHeader<<DatabaseProvider<TX, N> as HeaderProvider>::Header>>, ProviderError>
fn sealed_header( &self, number: u64, ) -> Result<Option<SealedHeader<<DatabaseProvider<TX, N> as HeaderProvider>::Header>>, ProviderError>
Source§fn sealed_headers_while(
&self,
range: impl RangeBounds<u64>,
predicate: impl FnMut(&SealedHeader<<DatabaseProvider<TX, N> as HeaderProvider>::Header>) -> bool,
) -> Result<Vec<SealedHeader<<DatabaseProvider<TX, N> as HeaderProvider>::Header>>, ProviderError>
fn sealed_headers_while( &self, range: impl RangeBounds<u64>, predicate: impl FnMut(&SealedHeader<<DatabaseProvider<TX, N> as HeaderProvider>::Header>) -> bool, ) -> Result<Vec<SealedHeader<<DatabaseProvider<TX, N> as HeaderProvider>::Header>>, ProviderError>
predicate returns true or the range is exhausted.Source§fn is_known(&self, block_hash: FixedBytes<32>) -> Result<bool, ProviderError>
fn is_known(&self, block_hash: FixedBytes<32>) -> Result<bool, ProviderError>
Source§fn sealed_header_by_hash(
&self,
block_hash: FixedBytes<32>,
) -> Result<Option<SealedHeader<Self::Header>>, ProviderError>
fn sealed_header_by_hash( &self, block_hash: FixedBytes<32>, ) -> Result<Option<SealedHeader<Self::Header>>, ProviderError>
Source§fn header_by_hash_or_number(
&self,
hash_or_num: HashOrNumber,
) -> Result<Option<Self::Header>, ProviderError>
fn header_by_hash_or_number( &self, hash_or_num: HashOrNumber, ) -> Result<Option<Self::Header>, ProviderError>
Source§fn sealed_headers_range(
&self,
range: impl RangeBounds<u64>,
) -> Result<Vec<SealedHeader<Self::Header>>, ProviderError>
fn sealed_headers_range( &self, range: impl RangeBounds<u64>, ) -> Result<Vec<SealedHeader<Self::Header>>, ProviderError>
Source§impl<TX, N> HeaderSyncGapProvider for DatabaseProvider<TX, N>where
TX: DbTx + 'static,
N: NodeTypesForProvider,
impl<TX, N> HeaderSyncGapProvider for DatabaseProvider<TX, N>where
TX: DbTx + 'static,
N: NodeTypesForProvider,
Source§type Header = <<N as NodeTypes>::Primitives as NodePrimitives>::BlockHeader
type Header = <<N as NodeTypes>::Primitives as NodePrimitives>::BlockHeader
Source§fn local_tip_header(
&self,
highest_uninterrupted_block: u64,
) -> Result<SealedHeader<<DatabaseProvider<TX, N> as HeaderSyncGapProvider>::Header>, ProviderError>
fn local_tip_header( &self, highest_uninterrupted_block: u64, ) -> Result<SealedHeader<<DatabaseProvider<TX, N> as HeaderSyncGapProvider>::Header>, ProviderError>
Source§impl<TX, N> HistoryWriter for DatabaseProvider<TX, N>
impl<TX, N> HistoryWriter for DatabaseProvider<TX, N>
Source§fn unwind_account_history_indices<'a>(
&self,
changesets: impl Iterator<Item = &'a (u64, AccountBeforeTx)>,
) -> Result<usize, ProviderError>
fn unwind_account_history_indices<'a>( &self, changesets: impl Iterator<Item = &'a (u64, AccountBeforeTx)>, ) -> Result<usize, ProviderError>
Source§fn unwind_account_history_indices_range(
&self,
range: impl RangeBounds<u64>,
) -> Result<usize, ProviderError>
fn unwind_account_history_indices_range( &self, range: impl RangeBounds<u64>, ) -> Result<usize, ProviderError>
Source§fn insert_account_history_index(
&self,
account_transitions: impl IntoIterator<Item = (Address, impl IntoIterator<Item = u64>)>,
) -> Result<(), ProviderError>
fn insert_account_history_index( &self, account_transitions: impl IntoIterator<Item = (Address, impl IntoIterator<Item = u64>)>, ) -> Result<(), ProviderError>
AccountHistoryIndex stageSource§fn unwind_storage_history_indices(
&self,
changesets: impl Iterator<Item = (BlockNumberAddress, StorageEntry)>,
) -> Result<usize, ProviderError>
fn unwind_storage_history_indices( &self, changesets: impl Iterator<Item = (BlockNumberAddress, StorageEntry)>, ) -> Result<usize, ProviderError>
Source§fn unwind_storage_history_indices_range(
&self,
range: impl RangeBounds<BlockNumberAddress>,
) -> Result<usize, ProviderError>
fn unwind_storage_history_indices_range( &self, range: impl RangeBounds<BlockNumberAddress>, ) -> Result<usize, ProviderError>
Source§fn insert_storage_history_index(
&self,
storage_transitions: impl IntoIterator<Item = ((Address, FixedBytes<32>), impl IntoIterator<Item = u64>)>,
) -> Result<(), ProviderError>
fn insert_storage_history_index( &self, storage_transitions: impl IntoIterator<Item = ((Address, FixedBytes<32>), impl IntoIterator<Item = u64>)>, ) -> Result<(), ProviderError>
StorageHistoryIndex stageSource§fn update_history_indices(
&self,
range: RangeInclusive<u64>,
) -> Result<(), ProviderError>
fn update_history_indices( &self, range: RangeInclusive<u64>, ) -> Result<(), ProviderError>
Source§impl<TX, N> NodePrimitivesProvider for DatabaseProvider<TX, N>where
N: NodeTypes,
impl<TX, N> NodePrimitivesProvider for DatabaseProvider<TX, N>where
N: NodeTypes,
Source§type Primitives = <N as NodeTypes>::Primitives
type Primitives = <N as NodeTypes>::Primitives
Source§impl<TX, N> PruneCheckpointReader for DatabaseProvider<TX, N>
impl<TX, N> PruneCheckpointReader for DatabaseProvider<TX, N>
Source§fn get_prune_checkpoint(
&self,
segment: PruneSegment,
) -> Result<Option<PruneCheckpoint>, ProviderError>
fn get_prune_checkpoint( &self, segment: PruneSegment, ) -> Result<Option<PruneCheckpoint>, ProviderError>
Source§fn get_prune_checkpoints(
&self,
) -> Result<Vec<(PruneSegment, PruneCheckpoint)>, ProviderError>
fn get_prune_checkpoints( &self, ) -> Result<Vec<(PruneSegment, PruneCheckpoint)>, ProviderError>
Source§impl<TX, N> PruneCheckpointWriter for DatabaseProvider<TX, N>
impl<TX, N> PruneCheckpointWriter for DatabaseProvider<TX, N>
Source§fn save_prune_checkpoint(
&self,
segment: PruneSegment,
checkpoint: PruneCheckpoint,
) -> Result<(), ProviderError>
fn save_prune_checkpoint( &self, segment: PruneSegment, checkpoint: PruneCheckpoint, ) -> Result<(), ProviderError>
Source§impl<TX, N> ReceiptProvider for DatabaseProvider<TX, N>where
TX: DbTx + 'static,
N: NodeTypesForProvider,
impl<TX, N> ReceiptProvider for DatabaseProvider<TX, N>where
TX: DbTx + 'static,
N: NodeTypesForProvider,
Source§type Receipt = <<N as NodeTypes>::Primitives as NodePrimitives>::Receipt
type Receipt = <<N as NodeTypes>::Primitives as NodePrimitives>::Receipt
Source§fn receipt(
&self,
id: u64,
) -> Result<Option<<DatabaseProvider<TX, N> as ReceiptProvider>::Receipt>, ProviderError>
fn receipt( &self, id: u64, ) -> Result<Option<<DatabaseProvider<TX, N> as ReceiptProvider>::Receipt>, ProviderError>
Source§fn receipt_by_hash(
&self,
hash: FixedBytes<32>,
) -> Result<Option<<DatabaseProvider<TX, N> as ReceiptProvider>::Receipt>, ProviderError>
fn receipt_by_hash( &self, hash: FixedBytes<32>, ) -> Result<Option<<DatabaseProvider<TX, N> as ReceiptProvider>::Receipt>, ProviderError>
Source§fn receipts_by_block(
&self,
block: HashOrNumber,
) -> Result<Option<Vec<<DatabaseProvider<TX, N> as ReceiptProvider>::Receipt>>, ProviderError>
fn receipts_by_block( &self, block: HashOrNumber, ) -> Result<Option<Vec<<DatabaseProvider<TX, N> as ReceiptProvider>::Receipt>>, ProviderError>
Source§fn receipts_by_tx_range(
&self,
range: impl RangeBounds<u64>,
) -> Result<Vec<<DatabaseProvider<TX, N> as ReceiptProvider>::Receipt>, ProviderError>
fn receipts_by_tx_range( &self, range: impl RangeBounds<u64>, ) -> Result<Vec<<DatabaseProvider<TX, N> as ReceiptProvider>::Receipt>, ProviderError>
Source§fn receipts_by_block_range(
&self,
block_range: RangeInclusive<u64>,
) -> Result<Vec<Vec<<DatabaseProvider<TX, N> as ReceiptProvider>::Receipt>>, ProviderError>
fn receipts_by_block_range( &self, block_range: RangeInclusive<u64>, ) -> Result<Vec<Vec<<DatabaseProvider<TX, N> as ReceiptProvider>::Receipt>>, ProviderError>
Source§impl<TX, N> StageCheckpointReader for DatabaseProvider<TX, N>
impl<TX, N> StageCheckpointReader for DatabaseProvider<TX, N>
Source§fn get_stage_checkpoint_progress(
&self,
id: StageId,
) -> Result<Option<Vec<u8>>, ProviderError>
fn get_stage_checkpoint_progress( &self, id: StageId, ) -> Result<Option<Vec<u8>>, ProviderError>
Get stage checkpoint progress.
Source§fn get_stage_checkpoint(
&self,
id: StageId,
) -> Result<Option<StageCheckpoint>, ProviderError>
fn get_stage_checkpoint( &self, id: StageId, ) -> Result<Option<StageCheckpoint>, ProviderError>
Source§fn get_all_checkpoints(
&self,
) -> Result<Vec<(String, StageCheckpoint)>, ProviderError>
fn get_all_checkpoints( &self, ) -> Result<Vec<(String, StageCheckpoint)>, ProviderError>
Source§impl<TX, N> StageCheckpointWriter for DatabaseProvider<TX, N>
impl<TX, N> StageCheckpointWriter for DatabaseProvider<TX, N>
Source§fn save_stage_checkpoint(
&self,
id: StageId,
checkpoint: StageCheckpoint,
) -> Result<(), ProviderError>
fn save_stage_checkpoint( &self, id: StageId, checkpoint: StageCheckpoint, ) -> Result<(), ProviderError>
Save stage checkpoint.
Source§fn save_stage_checkpoint_progress(
&self,
id: StageId,
checkpoint: Vec<u8>,
) -> Result<(), ProviderError>
fn save_stage_checkpoint_progress( &self, id: StageId, checkpoint: Vec<u8>, ) -> Result<(), ProviderError>
Save stage checkpoint progress.
Source§fn update_pipeline_stages(
&self,
block_number: u64,
drop_stage_checkpoint: bool,
) -> Result<(), ProviderError>
fn update_pipeline_stages( &self, block_number: u64, drop_stage_checkpoint: bool, ) -> Result<(), ProviderError>
Source§impl<TX, N> StateWriter for DatabaseProvider<TX, N>
impl<TX, N> StateWriter for DatabaseProvider<TX, N>
Source§fn remove_state_above(&self, block: u64) -> Result<(), ProviderError>
fn remove_state_above(&self, block: u64) -> Result<(), ProviderError>
Remove the last N blocks of state.
The latest state will be unwound
- Iterate over the
BlockBodyIndicestable to get all the transaction ids. - Iterate over the
StorageChangeSetstable and theAccountChangeSetstables in reverse order to reconstruct the changesets.- In order to have both the old and new values in the changesets, we also access the plain state tables.
- While iterating over the changeset tables, if we encounter a new account or storage slot,
we:
- Take the old value from the changeset
- Take the new value from the plain state
- Save the old value to the local state
- While iterating over the changeset tables, if we encounter an account/storage slot we
have seen before we:
- Take the old value from the changeset
- Take the new value from the local state
- Set the local state to the value in the changeset
Source§fn take_state_above(
&self,
block: u64,
) -> Result<ExecutionOutcome<<DatabaseProvider<TX, N> as StateWriter>::Receipt>, ProviderError>
fn take_state_above( &self, block: u64, ) -> Result<ExecutionOutcome<<DatabaseProvider<TX, N> as StateWriter>::Receipt>, ProviderError>
Take the last N blocks of state, recreating the ExecutionOutcome.
The latest state will be unwound and returned back with all the blocks
- Iterate over the
BlockBodyIndicestable to get all the transaction ids. - Iterate over the
StorageChangeSetstable and theAccountChangeSetstables in reverse order to reconstruct the changesets.- In order to have both the old and new values in the changesets, we also access the plain state tables.
- While iterating over the changeset tables, if we encounter a new account or storage slot,
we:
- Take the old value from the changeset
- Take the new value from the plain state
- Save the old value to the local state
- While iterating over the changeset tables, if we encounter an account/storage slot we
have seen before we:
- Take the old value from the changeset
- Take the new value from the local state
- Set the local state to the value in the changeset
Source§type Receipt = <<N as NodeTypes>::Primitives as NodePrimitives>::Receipt
type Receipt = <<N as NodeTypes>::Primitives as NodePrimitives>::Receipt
ExecutionOutcome.Source§fn write_state(
&self,
execution_outcome: &ExecutionOutcome<<DatabaseProvider<TX, N> as StateWriter>::Receipt>,
is_value_known: OriginalValuesKnown,
) -> Result<(), ProviderError>
fn write_state( &self, execution_outcome: &ExecutionOutcome<<DatabaseProvider<TX, N> as StateWriter>::Receipt>, is_value_known: OriginalValuesKnown, ) -> Result<(), ProviderError>
static_file_producer is
Some. It should be None if there is any kind of pruning/filtering over the receipts.Source§fn write_state_reverts(
&self,
reverts: PlainStateReverts,
first_block: u64,
) -> Result<(), ProviderError>
fn write_state_reverts( &self, reverts: PlainStateReverts, first_block: u64, ) -> Result<(), ProviderError>
Source§fn write_state_changes(
&self,
changes: StateChangeset,
) -> Result<(), ProviderError>
fn write_state_changes( &self, changes: StateChangeset, ) -> Result<(), ProviderError>
Source§fn write_hashed_state(
&self,
hashed_state: &HashedPostStateSorted,
) -> Result<(), ProviderError>
fn write_hashed_state( &self, hashed_state: &HashedPostStateSorted, ) -> Result<(), ProviderError>
Source§impl<TX, N> StaticFileProviderFactory for DatabaseProvider<TX, N>where
N: NodeTypes,
impl<TX, N> StaticFileProviderFactory for DatabaseProvider<TX, N>where
N: NodeTypes,
Source§fn static_file_provider(
&self,
) -> StaticFileProvider<<DatabaseProvider<TX, N> as NodePrimitivesProvider>::Primitives>
fn static_file_provider( &self, ) -> StaticFileProvider<<DatabaseProvider<TX, N> as NodePrimitivesProvider>::Primitives>
Returns a static file provider
Source§impl<TX, N> StatsReader for DatabaseProvider<TX, N>where
TX: DbTx + 'static,
N: NodeTypesForProvider,
impl<TX, N> StatsReader for DatabaseProvider<TX, N>where
TX: DbTx + 'static,
N: NodeTypesForProvider,
Source§fn count_entries<T>(&self) -> Result<usize, ProviderError>where
T: Table,
fn count_entries<T>(&self) -> Result<usize, ProviderError>where
T: Table,
Source§impl<TX, N> StorageChangeSetReader for DatabaseProvider<TX, N>
impl<TX, N> StorageChangeSetReader for DatabaseProvider<TX, N>
Source§fn storage_changeset(
&self,
block_number: u64,
) -> Result<Vec<(BlockNumberAddress, StorageEntry)>, ProviderError>
fn storage_changeset( &self, block_number: u64, ) -> Result<Vec<(BlockNumberAddress, StorageEntry)>, ProviderError>
Source§impl<TX, N> StorageReader for DatabaseProvider<TX, N>
impl<TX, N> StorageReader for DatabaseProvider<TX, N>
Source§fn plain_state_storages(
&self,
addresses_with_keys: impl IntoIterator<Item = (Address, impl IntoIterator<Item = FixedBytes<32>>)>,
) -> Result<Vec<(Address, Vec<StorageEntry>)>, ProviderError>
fn plain_state_storages( &self, addresses_with_keys: impl IntoIterator<Item = (Address, impl IntoIterator<Item = FixedBytes<32>>)>, ) -> Result<Vec<(Address, Vec<StorageEntry>)>, ProviderError>
Source§fn changed_storages_with_range(
&self,
range: RangeInclusive<u64>,
) -> Result<BTreeMap<Address, BTreeSet<FixedBytes<32>>>, ProviderError>
fn changed_storages_with_range( &self, range: RangeInclusive<u64>, ) -> Result<BTreeMap<Address, BTreeSet<FixedBytes<32>>>, ProviderError>
Source§fn changed_storages_and_blocks_with_range(
&self,
range: RangeInclusive<u64>,
) -> Result<BTreeMap<(Address, FixedBytes<32>), Vec<u64>>, ProviderError>
fn changed_storages_and_blocks_with_range( &self, range: RangeInclusive<u64>, ) -> Result<BTreeMap<(Address, FixedBytes<32>), Vec<u64>>, ProviderError>
Source§impl<TX, N> StorageTrieWriter for DatabaseProvider<TX, N>
impl<TX, N> StorageTrieWriter for DatabaseProvider<TX, N>
Source§fn write_storage_trie_updates_sorted<'a>(
&self,
storage_tries: impl Iterator<Item = (&'a FixedBytes<32>, &'a StorageTrieUpdatesSorted)>,
) -> Result<usize, ProviderError>
fn write_storage_trie_updates_sorted<'a>( &self, storage_tries: impl Iterator<Item = (&'a FixedBytes<32>, &'a StorageTrieUpdatesSorted)>, ) -> Result<usize, ProviderError>
Writes storage trie updates from the given storage trie map with already sorted updates.
Expects the storage trie updates to already be sorted by the hashed address key.
Returns the number of entries modified.
Source§fn write_storage_trie_changesets<'a>(
&self,
block_number: u64,
storage_tries: impl Iterator<Item = (&'a FixedBytes<32>, &'a StorageTrieUpdatesSorted)>,
updates_overlay: Option<&TrieUpdatesSorted>,
) -> Result<usize, ProviderError>
fn write_storage_trie_changesets<'a>( &self, block_number: u64, storage_tries: impl Iterator<Item = (&'a FixedBytes<32>, &'a StorageTrieUpdatesSorted)>, updates_overlay: Option<&TrieUpdatesSorted>, ) -> Result<usize, ProviderError>
Records the current values of all trie nodes which will be updated using the
StorageTrieUpdates into the storage trie changesets table.
The intended usage of this method is to call it prior to calling
write_storage_trie_updates with the same set of StorageTrieUpdates.
Returns the number of keys written.
Source§impl<TX, N> TransactionsProvider for DatabaseProvider<TX, N>where
TX: DbTx + 'static,
N: NodeTypesForProvider,
impl<TX, N> TransactionsProvider for DatabaseProvider<TX, N>where
TX: DbTx + 'static,
N: NodeTypesForProvider,
Source§type Transaction = <<N as NodeTypes>::Primitives as NodePrimitives>::SignedTx
type Transaction = <<N as NodeTypes>::Primitives as NodePrimitives>::SignedTx
Source§fn transaction_id(
&self,
tx_hash: FixedBytes<32>,
) -> Result<Option<u64>, ProviderError>
fn transaction_id( &self, tx_hash: FixedBytes<32>, ) -> Result<Option<u64>, ProviderError>
Source§fn transaction_by_id(
&self,
id: u64,
) -> Result<Option<<DatabaseProvider<TX, N> as TransactionsProvider>::Transaction>, ProviderError>
fn transaction_by_id( &self, id: u64, ) -> Result<Option<<DatabaseProvider<TX, N> as TransactionsProvider>::Transaction>, ProviderError>
Source§fn transaction_by_id_unhashed(
&self,
id: u64,
) -> Result<Option<<DatabaseProvider<TX, N> as TransactionsProvider>::Transaction>, ProviderError>
fn transaction_by_id_unhashed( &self, id: u64, ) -> Result<Option<<DatabaseProvider<TX, N> as TransactionsProvider>::Transaction>, ProviderError>
Source§fn transaction_by_hash(
&self,
hash: FixedBytes<32>,
) -> Result<Option<<DatabaseProvider<TX, N> as TransactionsProvider>::Transaction>, ProviderError>
fn transaction_by_hash( &self, hash: FixedBytes<32>, ) -> Result<Option<<DatabaseProvider<TX, N> as TransactionsProvider>::Transaction>, ProviderError>
Source§fn transaction_by_hash_with_meta(
&self,
tx_hash: FixedBytes<32>,
) -> Result<Option<(<DatabaseProvider<TX, N> as TransactionsProvider>::Transaction, TransactionMeta)>, ProviderError>
fn transaction_by_hash_with_meta( &self, tx_hash: FixedBytes<32>, ) -> Result<Option<(<DatabaseProvider<TX, N> as TransactionsProvider>::Transaction, TransactionMeta)>, ProviderError>
Source§fn transaction_block(&self, id: u64) -> Result<Option<u64>, ProviderError>
fn transaction_block(&self, id: u64) -> Result<Option<u64>, ProviderError>
Source§fn transactions_by_block(
&self,
id: HashOrNumber,
) -> Result<Option<Vec<<DatabaseProvider<TX, N> as TransactionsProvider>::Transaction>>, ProviderError>
fn transactions_by_block( &self, id: HashOrNumber, ) -> Result<Option<Vec<<DatabaseProvider<TX, N> as TransactionsProvider>::Transaction>>, ProviderError>
Source§fn transactions_by_block_range(
&self,
range: impl RangeBounds<u64>,
) -> Result<Vec<Vec<<DatabaseProvider<TX, N> as TransactionsProvider>::Transaction>>, ProviderError>
fn transactions_by_block_range( &self, range: impl RangeBounds<u64>, ) -> Result<Vec<Vec<<DatabaseProvider<TX, N> as TransactionsProvider>::Transaction>>, ProviderError>
Source§fn transactions_by_tx_range(
&self,
range: impl RangeBounds<u64>,
) -> Result<Vec<<DatabaseProvider<TX, N> as TransactionsProvider>::Transaction>, ProviderError>
fn transactions_by_tx_range( &self, range: impl RangeBounds<u64>, ) -> Result<Vec<<DatabaseProvider<TX, N> as TransactionsProvider>::Transaction>, ProviderError>
Source§fn senders_by_tx_range(
&self,
range: impl RangeBounds<u64>,
) -> Result<Vec<Address>, ProviderError>
fn senders_by_tx_range( &self, range: impl RangeBounds<u64>, ) -> Result<Vec<Address>, ProviderError>
Source§fn transaction_sender(&self, id: u64) -> Result<Option<Address>, ProviderError>
fn transaction_sender(&self, id: u64) -> Result<Option<Address>, ProviderError>
Source§impl<TX, N> TransactionsProviderExt for DatabaseProvider<TX, N>where
TX: DbTx + 'static,
N: NodeTypesForProvider,
impl<TX, N> TransactionsProviderExt for DatabaseProvider<TX, N>where
TX: DbTx + 'static,
N: NodeTypesForProvider,
Source§fn transaction_hashes_by_range(
&self,
tx_range: Range<u64>,
) -> Result<Vec<(FixedBytes<32>, u64)>, ProviderError>
fn transaction_hashes_by_range( &self, tx_range: Range<u64>, ) -> Result<Vec<(FixedBytes<32>, u64)>, ProviderError>
Recovers transaction hashes by walking through Transactions table and
calculating them in a parallel manner. Returned unsorted.
Source§fn transaction_range_by_block_range(
&self,
block_range: RangeInclusive<u64>,
) -> Result<RangeInclusive<u64>, ProviderError>
fn transaction_range_by_block_range( &self, block_range: RangeInclusive<u64>, ) -> Result<RangeInclusive<u64>, ProviderError>
Source§impl<TX, N> TrieReader for DatabaseProvider<TX, N>
impl<TX, N> TrieReader for DatabaseProvider<TX, N>
Source§fn trie_reverts(&self, from: u64) -> Result<TrieUpdatesSorted, ProviderError>
fn trie_reverts(&self, from: u64) -> Result<TrieUpdatesSorted, ProviderError>
TrieUpdatesSorted for reverting the trie database to its state prior to the
given block and onwards having been processed.Source§fn get_block_trie_updates(
&self,
block_number: u64,
) -> Result<TrieUpdatesSorted, ProviderError>
fn get_block_trie_updates( &self, block_number: u64, ) -> Result<TrieUpdatesSorted, ProviderError>
Source§impl<TX, N> TrieWriter for DatabaseProvider<TX, N>
impl<TX, N> TrieWriter for DatabaseProvider<TX, N>
Source§fn write_trie_updates_sorted(
&self,
trie_updates: &TrieUpdatesSorted,
) -> Result<usize, ProviderError>
fn write_trie_updates_sorted( &self, trie_updates: &TrieUpdatesSorted, ) -> Result<usize, ProviderError>
Writes trie updates to the database with already sorted updates.
Returns the number of entries modified.
Source§fn write_trie_changesets(
&self,
block_number: u64,
trie_updates: &TrieUpdatesSorted,
updates_overlay: Option<&TrieUpdatesSorted>,
) -> Result<usize, ProviderError>
fn write_trie_changesets( &self, block_number: u64, trie_updates: &TrieUpdatesSorted, updates_overlay: Option<&TrieUpdatesSorted>, ) -> Result<usize, ProviderError>
Records the current values of all trie nodes which will be updated using the TrieUpdates
into the trie changesets tables.
The intended usage of this method is to call it prior to calling write_trie_updates with
the same TrieUpdates.
Returns the number of keys written.
Source§fn clear_trie_changesets(&self) -> Result<(), ProviderError>
fn clear_trie_changesets(&self) -> Result<(), ProviderError>
Source§fn clear_trie_changesets_from(&self, from: u64) -> Result<(), ProviderError>
fn clear_trie_changesets_from(&self, from: u64) -> Result<(), ProviderError>
Source§fn write_trie_updates(
&self,
trie_updates: TrieUpdates,
) -> Result<usize, ProviderError>
fn write_trie_updates( &self, trie_updates: TrieUpdates, ) -> Result<usize, ProviderError>
Source§impl<TX, N> TryIntoHistoricalStateProvider for DatabaseProvider<TX, N>
impl<TX, N> TryIntoHistoricalStateProvider for DatabaseProvider<TX, N>
Source§fn try_into_history_at_block(
self,
block_number: u64,
) -> Result<Box<dyn StateProvider>, ProviderError>
fn try_into_history_at_block( self, block_number: u64, ) -> Result<Box<dyn StateProvider>, ProviderError>
StateProvider indexed by the given historic block number.Auto Trait Implementations§
impl<TX, N> Freeze for DatabaseProvider<TX, N>where
TX: Freeze,
impl<TX, N> !RefUnwindSafe for DatabaseProvider<TX, N>
impl<TX, N> Send for DatabaseProvider<TX, N>where
TX: Send,
impl<TX, N> Sync for DatabaseProvider<TX, N>where
TX: Sync,
impl<TX, N> Unpin for DatabaseProvider<TX, N>where
TX: Unpin,
impl<TX, N> !UnwindSafe for DatabaseProvider<TX, N>
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
§impl<T> Conv for T
impl<T> Conv for T
§impl<T> FmtForward for T
impl<T> FmtForward for T
§fn fmt_binary(self) -> FmtBinary<Self>where
Self: Binary,
fn fmt_binary(self) -> FmtBinary<Self>where
Self: Binary,
self to use its Binary implementation when Debug-formatted.§fn fmt_display(self) -> FmtDisplay<Self>where
Self: Display,
fn fmt_display(self) -> FmtDisplay<Self>where
Self: Display,
self to use its Display implementation when
Debug-formatted.§fn fmt_lower_exp(self) -> FmtLowerExp<Self>where
Self: LowerExp,
fn fmt_lower_exp(self) -> FmtLowerExp<Self>where
Self: LowerExp,
self to use its LowerExp implementation when
Debug-formatted.§fn fmt_lower_hex(self) -> FmtLowerHex<Self>where
Self: LowerHex,
fn fmt_lower_hex(self) -> FmtLowerHex<Self>where
Self: LowerHex,
self to use its LowerHex implementation when
Debug-formatted.§fn fmt_octal(self) -> FmtOctal<Self>where
Self: Octal,
fn fmt_octal(self) -> FmtOctal<Self>where
Self: Octal,
self to use its Octal implementation when Debug-formatted.§fn fmt_pointer(self) -> FmtPointer<Self>where
Self: Pointer,
fn fmt_pointer(self) -> FmtPointer<Self>where
Self: Pointer,
self to use its Pointer implementation when
Debug-formatted.§fn fmt_upper_exp(self) -> FmtUpperExp<Self>where
Self: UpperExp,
fn fmt_upper_exp(self) -> FmtUpperExp<Self>where
Self: UpperExp,
self to use its UpperExp implementation when
Debug-formatted.§fn fmt_upper_hex(self) -> FmtUpperHex<Self>where
Self: UpperHex,
fn fmt_upper_hex(self) -> FmtUpperHex<Self>where
Self: UpperHex,
self to use its UpperHex implementation when
Debug-formatted.§fn fmt_list(self) -> FmtList<Self>where
&'a Self: for<'a> IntoIterator,
fn fmt_list(self) -> FmtList<Self>where
&'a Self: for<'a> IntoIterator,
§impl<TxEnv, T> FromRecoveredTx<&T> for TxEnvwhere
TxEnv: FromRecoveredTx<T>,
impl<TxEnv, T> FromRecoveredTx<&T> for TxEnvwhere
TxEnv: FromRecoveredTx<T>,
§fn from_recovered_tx(tx: &&T, sender: Address) -> TxEnv
fn from_recovered_tx(tx: &&T, sender: Address) -> TxEnv
TxEnv from a transaction and a sender address.§impl<TxEnv, T> FromTxWithEncoded<&T> for TxEnvwhere
TxEnv: FromTxWithEncoded<T>,
impl<TxEnv, T> FromTxWithEncoded<&T> for TxEnvwhere
TxEnv: FromTxWithEncoded<T>,
§impl<T> FutureExt for T
impl<T> FutureExt for T
§fn with_context(self, otel_cx: Context) -> WithContext<Self> ⓘ
fn with_context(self, otel_cx: Context) -> WithContext<Self> ⓘ
§fn with_current_context(self) -> WithContext<Self> ⓘ
fn with_current_context(self) -> WithContext<Self> ⓘ
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
Source§fn in_current_span(self) -> Instrumented<Self> ⓘ
fn in_current_span(self) -> Instrumented<Self> ⓘ
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more§impl<T> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
§fn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
T in a tonic::Request§impl<L> LayerExt<L> for L
impl<L> LayerExt<L> for L
§fn named_layer<S>(&self, service: S) -> Layered<<L as Layer<S>>::Service, S>where
L: Layer<S>,
fn named_layer<S>(&self, service: S) -> Layered<<L as Layer<S>>::Service, S>where
L: Layer<S>,
Layered].§impl<T> Paint for Twhere
T: ?Sized,
impl<T> Paint for Twhere
T: ?Sized,
§fn fg(&self, value: Color) -> Painted<&T>
fn fg(&self, value: Color) -> Painted<&T>
Returns a styled value derived from self with the foreground set to
value.
This method should be used rarely. Instead, prefer to use color-specific
builder methods like red() and
green(), which have the same functionality but are
pithier.
§Example
Set foreground color to white using fg():
use yansi::{Paint, Color};
painted.fg(Color::White);Set foreground color to white using white().
use yansi::Paint;
painted.white();§fn bright_black(&self) -> Painted<&T>
fn bright_black(&self) -> Painted<&T>
§fn bright_red(&self) -> Painted<&T>
fn bright_red(&self) -> Painted<&T>
§fn bright_green(&self) -> Painted<&T>
fn bright_green(&self) -> Painted<&T>
§fn bright_yellow(&self) -> Painted<&T>
fn bright_yellow(&self) -> Painted<&T>
§fn bright_blue(&self) -> Painted<&T>
fn bright_blue(&self) -> Painted<&T>
§fn bright_magenta(&self) -> Painted<&T>
fn bright_magenta(&self) -> Painted<&T>
§fn bright_cyan(&self) -> Painted<&T>
fn bright_cyan(&self) -> Painted<&T>
§fn bright_white(&self) -> Painted<&T>
fn bright_white(&self) -> Painted<&T>
§fn bg(&self, value: Color) -> Painted<&T>
fn bg(&self, value: Color) -> Painted<&T>
Returns a styled value derived from self with the background set to
value.
This method should be used rarely. Instead, prefer to use color-specific
builder methods like on_red() and
on_green(), which have the same functionality but
are pithier.
§Example
Set background color to red using fg():
use yansi::{Paint, Color};
painted.bg(Color::Red);Set background color to red using on_red().
use yansi::Paint;
painted.on_red();§fn on_primary(&self) -> Painted<&T>
fn on_primary(&self) -> Painted<&T>
§fn on_magenta(&self) -> Painted<&T>
fn on_magenta(&self) -> Painted<&T>
§fn on_bright_black(&self) -> Painted<&T>
fn on_bright_black(&self) -> Painted<&T>
§fn on_bright_red(&self) -> Painted<&T>
fn on_bright_red(&self) -> Painted<&T>
§fn on_bright_green(&self) -> Painted<&T>
fn on_bright_green(&self) -> Painted<&T>
§fn on_bright_yellow(&self) -> Painted<&T>
fn on_bright_yellow(&self) -> Painted<&T>
§fn on_bright_blue(&self) -> Painted<&T>
fn on_bright_blue(&self) -> Painted<&T>
§fn on_bright_magenta(&self) -> Painted<&T>
fn on_bright_magenta(&self) -> Painted<&T>
§fn on_bright_cyan(&self) -> Painted<&T>
fn on_bright_cyan(&self) -> Painted<&T>
§fn on_bright_white(&self) -> Painted<&T>
fn on_bright_white(&self) -> Painted<&T>
§fn attr(&self, value: Attribute) -> Painted<&T>
fn attr(&self, value: Attribute) -> Painted<&T>
Enables the styling [Attribute] value.
This method should be used rarely. Instead, prefer to use
attribute-specific builder methods like bold() and
underline(), which have the same functionality
but are pithier.
§Example
Make text bold using attr():
use yansi::{Paint, Attribute};
painted.attr(Attribute::Bold);Make text bold using using bold().
use yansi::Paint;
painted.bold();§fn rapid_blink(&self) -> Painted<&T>
fn rapid_blink(&self) -> Painted<&T>
§fn quirk(&self, value: Quirk) -> Painted<&T>
fn quirk(&self, value: Quirk) -> Painted<&T>
Enables the yansi [Quirk] value.
This method should be used rarely. Instead, prefer to use quirk-specific
builder methods like mask() and
wrap(), which have the same functionality but are
pithier.
§Example
Enable wrapping using .quirk():
use yansi::{Paint, Quirk};
painted.quirk(Quirk::Wrap);Enable wrapping using wrap().
use yansi::Paint;
painted.wrap();§fn clear(&self) -> Painted<&T>
👎Deprecated since 1.0.1: renamed to resetting() due to conflicts with Vec::clear().
The clear() method will be removed in a future release.
fn clear(&self) -> Painted<&T>
resetting() due to conflicts with Vec::clear().
The clear() method will be removed in a future release.§fn whenever(&self, value: Condition) -> Painted<&T>
fn whenever(&self, value: Condition) -> Painted<&T>
Conditionally enable styling based on whether the [Condition] value
applies. Replaces any previous condition.
See the crate level docs for more details.
§Example
Enable styling painted only when both stdout and stderr are TTYs:
use yansi::{Paint, Condition};
painted.red().on_yellow().whenever(Condition::STDOUTERR_ARE_TTY);§impl<T> Pipe for Twhere
T: ?Sized,
impl<T> Pipe for Twhere
T: ?Sized,
§fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> Rwhere
Self: Sized,
fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> Rwhere
Self: Sized,
§fn pipe_ref<'a, R>(&'a self, func: impl FnOnce(&'a Self) -> R) -> Rwhere
R: 'a,
fn pipe_ref<'a, R>(&'a self, func: impl FnOnce(&'a Self) -> R) -> Rwhere
R: 'a,
self and passes that borrow into the pipe function. Read more§fn pipe_ref_mut<'a, R>(&'a mut self, func: impl FnOnce(&'a mut Self) -> R) -> Rwhere
R: 'a,
fn pipe_ref_mut<'a, R>(&'a mut self, func: impl FnOnce(&'a mut Self) -> R) -> Rwhere
R: 'a,
self and passes that borrow into the pipe function. Read more§fn pipe_borrow<'a, B, R>(&'a self, func: impl FnOnce(&'a B) -> R) -> R
fn pipe_borrow<'a, B, R>(&'a self, func: impl FnOnce(&'a B) -> R) -> R
§fn pipe_borrow_mut<'a, B, R>(
&'a mut self,
func: impl FnOnce(&'a mut B) -> R,
) -> R
fn pipe_borrow_mut<'a, B, R>( &'a mut self, func: impl FnOnce(&'a mut B) -> R, ) -> R
§fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
self, then passes self.as_ref() into the pipe function.§fn pipe_as_mut<'a, U, R>(&'a mut self, func: impl FnOnce(&'a mut U) -> R) -> R
fn pipe_as_mut<'a, U, R>(&'a mut self, func: impl FnOnce(&'a mut U) -> R) -> R
self, then passes self.as_mut() into the pipe
function.§fn pipe_deref<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> R
fn pipe_deref<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> R
self, then passes self.deref() into the pipe function.§impl<T> Pointable for T
impl<T> Pointable for T
§impl<T> PolicyExt for Twhere
T: ?Sized,
impl<T> PolicyExt for Twhere
T: ?Sized,
§impl<T> ServiceExt for T
impl<T> ServiceExt for T
§fn propagate_header(self, header: HeaderName) -> PropagateHeader<Self>where
Self: Sized,
fn propagate_header(self, header: HeaderName) -> PropagateHeader<Self>where
Self: Sized,
§fn add_extension<T>(self, value: T) -> AddExtension<Self, T>where
Self: Sized,
fn add_extension<T>(self, value: T) -> AddExtension<Self, T>where
Self: Sized,
§fn map_request_body<F>(self, f: F) -> MapRequestBody<Self, F>where
Self: Sized,
fn map_request_body<F>(self, f: F) -> MapRequestBody<Self, F>where
Self: Sized,
§fn map_response_body<F>(self, f: F) -> MapResponseBody<Self, F>where
Self: Sized,
fn map_response_body<F>(self, f: F) -> MapResponseBody<Self, F>where
Self: Sized,
§fn compression(self) -> Compression<Self>where
Self: Sized,
fn compression(self) -> Compression<Self>where
Self: Sized,
§fn decompression(self) -> Decompression<Self>where
Self: Sized,
fn decompression(self) -> Decompression<Self>where
Self: Sized,
§fn trace_for_http(self) -> Trace<Self, SharedClassifier<ServerErrorsAsFailures>>where
Self: Sized,
fn trace_for_http(self) -> Trace<Self, SharedClassifier<ServerErrorsAsFailures>>where
Self: Sized,
§fn trace_for_grpc(self) -> Trace<Self, SharedClassifier<GrpcErrorsAsFailures>>where
Self: Sized,
fn trace_for_grpc(self) -> Trace<Self, SharedClassifier<GrpcErrorsAsFailures>>where
Self: Sized,
§fn follow_redirects(self) -> FollowRedirect<Self>where
Self: Sized,
fn follow_redirects(self) -> FollowRedirect<Self>where
Self: Sized,
§fn sensitive_headers(
self,
headers: impl IntoIterator<Item = HeaderName>,
) -> SetSensitiveRequestHeaders<SetSensitiveResponseHeaders<Self>>where
Self: Sized,
fn sensitive_headers(
self,
headers: impl IntoIterator<Item = HeaderName>,
) -> SetSensitiveRequestHeaders<SetSensitiveResponseHeaders<Self>>where
Self: Sized,
§fn sensitive_request_headers(
self,
headers: impl IntoIterator<Item = HeaderName>,
) -> SetSensitiveRequestHeaders<Self>where
Self: Sized,
fn sensitive_request_headers(
self,
headers: impl IntoIterator<Item = HeaderName>,
) -> SetSensitiveRequestHeaders<Self>where
Self: Sized,
§fn sensitive_response_headers(
self,
headers: impl IntoIterator<Item = HeaderName>,
) -> SetSensitiveResponseHeaders<Self>where
Self: Sized,
fn sensitive_response_headers(
self,
headers: impl IntoIterator<Item = HeaderName>,
) -> SetSensitiveResponseHeaders<Self>where
Self: Sized,
§fn override_request_header<M>(
self,
header_name: HeaderName,
make: M,
) -> SetRequestHeader<Self, M>where
Self: Sized,
fn override_request_header<M>(
self,
header_name: HeaderName,
make: M,
) -> SetRequestHeader<Self, M>where
Self: Sized,
§fn append_request_header<M>(
self,
header_name: HeaderName,
make: M,
) -> SetRequestHeader<Self, M>where
Self: Sized,
fn append_request_header<M>(
self,
header_name: HeaderName,
make: M,
) -> SetRequestHeader<Self, M>where
Self: Sized,
§fn insert_request_header_if_not_present<M>(
self,
header_name: HeaderName,
make: M,
) -> SetRequestHeader<Self, M>where
Self: Sized,
fn insert_request_header_if_not_present<M>(
self,
header_name: HeaderName,
make: M,
) -> SetRequestHeader<Self, M>where
Self: Sized,
§fn override_response_header<M>(
self,
header_name: HeaderName,
make: M,
) -> SetResponseHeader<Self, M>where
Self: Sized,
fn override_response_header<M>(
self,
header_name: HeaderName,
make: M,
) -> SetResponseHeader<Self, M>where
Self: Sized,
§fn append_response_header<M>(
self,
header_name: HeaderName,
make: M,
) -> SetResponseHeader<Self, M>where
Self: Sized,
fn append_response_header<M>(
self,
header_name: HeaderName,
make: M,
) -> SetResponseHeader<Self, M>where
Self: Sized,
§fn insert_response_header_if_not_present<M>(
self,
header_name: HeaderName,
make: M,
) -> SetResponseHeader<Self, M>where
Self: Sized,
fn insert_response_header_if_not_present<M>(
self,
header_name: HeaderName,
make: M,
) -> SetResponseHeader<Self, M>where
Self: Sized,
§fn set_request_id<M>(
self,
header_name: HeaderName,
make_request_id: M,
) -> SetRequestId<Self, M>where
Self: Sized,
M: MakeRequestId,
fn set_request_id<M>(
self,
header_name: HeaderName,
make_request_id: M,
) -> SetRequestId<Self, M>where
Self: Sized,
M: MakeRequestId,
§fn set_x_request_id<M>(self, make_request_id: M) -> SetRequestId<Self, M>where
Self: Sized,
M: MakeRequestId,
fn set_x_request_id<M>(self, make_request_id: M) -> SetRequestId<Self, M>where
Self: Sized,
M: MakeRequestId,
x-request-id as the header name. Read more§fn propagate_request_id(
self,
header_name: HeaderName,
) -> PropagateRequestId<Self>where
Self: Sized,
fn propagate_request_id(
self,
header_name: HeaderName,
) -> PropagateRequestId<Self>where
Self: Sized,
§fn propagate_x_request_id(self) -> PropagateRequestId<Self>where
Self: Sized,
fn propagate_x_request_id(self) -> PropagateRequestId<Self>where
Self: Sized,
x-request-id as the header name. Read more§fn catch_panic(self) -> CatchPanic<Self, DefaultResponseForPanic>where
Self: Sized,
fn catch_panic(self) -> CatchPanic<Self, DefaultResponseForPanic>where
Self: Sized,
500 Internal Server responses. Read more§fn request_body_limit(self, limit: usize) -> RequestBodyLimit<Self>where
Self: Sized,
fn request_body_limit(self, limit: usize) -> RequestBodyLimit<Self>where
Self: Sized,
413 Payload Too Large responses. Read more§fn trim_trailing_slash(self) -> NormalizePath<Self>where
Self: Sized,
fn trim_trailing_slash(self) -> NormalizePath<Self>where
Self: Sized,
§fn append_trailing_slash(self) -> NormalizePath<Self>where
Self: Sized,
fn append_trailing_slash(self) -> NormalizePath<Self>where
Self: Sized,
§impl<T> Tap for T
impl<T> Tap for T
§fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
Borrow<B> of a value. Read more§fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
BorrowMut<B> of a value. Read more§fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
AsRef<R> view of a value. Read more§fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
AsMut<R> view of a value. Read more§fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
Deref::Target of a value. Read more§fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
Deref::Target of a value. Read more§fn tap_dbg(self, func: impl FnOnce(&Self)) -> Self
fn tap_dbg(self, func: impl FnOnce(&Self)) -> Self
.tap() only in debug builds, and is erased in release builds.§fn tap_mut_dbg(self, func: impl FnOnce(&mut Self)) -> Self
fn tap_mut_dbg(self, func: impl FnOnce(&mut Self)) -> Self
.tap_mut() only in debug builds, and is erased in release
builds.§fn tap_borrow_dbg<B>(self, func: impl FnOnce(&B)) -> Self
fn tap_borrow_dbg<B>(self, func: impl FnOnce(&B)) -> Self
.tap_borrow() only in debug builds, and is erased in release
builds.§fn tap_borrow_mut_dbg<B>(self, func: impl FnOnce(&mut B)) -> Self
fn tap_borrow_mut_dbg<B>(self, func: impl FnOnce(&mut B)) -> Self
.tap_borrow_mut() only in debug builds, and is erased in release
builds.§fn tap_ref_dbg<R>(self, func: impl FnOnce(&R)) -> Self
fn tap_ref_dbg<R>(self, func: impl FnOnce(&R)) -> Self
.tap_ref() only in debug builds, and is erased in release
builds.§fn tap_ref_mut_dbg<R>(self, func: impl FnOnce(&mut R)) -> Self
fn tap_ref_mut_dbg<R>(self, func: impl FnOnce(&mut R)) -> Self
.tap_ref_mut() only in debug builds, and is erased in release
builds.§fn tap_deref_dbg<T>(self, func: impl FnOnce(&T)) -> Self
fn tap_deref_dbg<T>(self, func: impl FnOnce(&T)) -> Self
.tap_deref() only in debug builds, and is erased in release
builds.§impl<T> TryConv for T
impl<T> TryConv for T
§impl<T> WithSubscriber for T
impl<T> WithSubscriber for T
§fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self> ⓘwhere
S: Into<Dispatch>,
fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self> ⓘwhere
S: Into<Dispatch>,
§fn with_current_subscriber(self) -> WithDispatch<Self> ⓘ
fn with_current_subscriber(self) -> WithDispatch<Self> ⓘ
Source§impl<T> WithSubscriber for T
impl<T> WithSubscriber for T
Source§fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self> ⓘwhere
S: Into<Dispatch>,
fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self> ⓘwhere
S: Into<Dispatch>,
Source§fn with_current_subscriber(self) -> WithDispatch<Self> ⓘ
fn with_current_subscriber(self) -> WithDispatch<Self> ⓘ
impl<N, T> BlockReaderFor<N> for Twhere
N: NetworkPrimitives,
T: BlockReader<Block = <N as NetworkPrimitives>::Block, Header = <N as NetworkPrimitives>::BlockHeader, Transaction = <<N as NetworkPrimitives>::BlockBody as BlockBody>::Transaction, Receipt = <N as NetworkPrimitives>::Receipt>,
impl<T> ErasedDestructor for Twhere
T: 'static,
impl<T> MaybeDebug for Twhere
T: Debug,
impl<T> MaybeSend for Twhere
T: Send,
impl<T> MaybeSendSync for T
Layout§
Note: Unable to compute type layout, possibly due to this type having generic parameters. Layout can only be computed for concrete, fully-instantiated types.