pub struct ProviderFactory<N: NodeTypesWithDB> { /* private fields */ }Expand description
A common provider that fetches data from a database or static file.
This provider implements most provider or provider factory traits.
Implementations§
Source§impl<N: NodeTypesForProvider> ProviderFactory<NodeTypesWithDBAdapter<N, Arc<DatabaseEnv>>>
impl<N: NodeTypesForProvider> ProviderFactory<NodeTypesWithDBAdapter<N, Arc<DatabaseEnv>>>
Sourcepub fn builder() -> ProviderFactoryBuilder<N>
pub fn builder() -> ProviderFactoryBuilder<N>
Instantiates the builder for this type
Source§impl<N: ProviderNodeTypes> ProviderFactory<N>
impl<N: ProviderNodeTypes> ProviderFactory<N>
Sourcepub fn new(
db: N::DB,
chain_spec: Arc<N::ChainSpec>,
static_file_provider: StaticFileProvider<N::Primitives>,
) -> ProviderResult<Self>
pub fn new( db: N::DB, chain_spec: Arc<N::ChainSpec>, static_file_provider: StaticFileProvider<N::Primitives>, ) -> ProviderResult<Self>
Create new database provider factory.
Source§impl<N: NodeTypesWithDB> ProviderFactory<N>
impl<N: NodeTypesWithDB> ProviderFactory<N>
Sourcepub fn with_prune_modes(self, prune_modes: PruneModes) -> Self
pub fn with_prune_modes(self, prune_modes: PruneModes) -> Self
Sets the pruning configuration for an existing ProviderFactory.
Source§impl<N: ProviderNodeTypes<DB = Arc<DatabaseEnv>>> ProviderFactory<N>
impl<N: ProviderNodeTypes<DB = Arc<DatabaseEnv>>> ProviderFactory<N>
Sourcepub fn new_with_database_path<P: AsRef<Path>>(
path: P,
chain_spec: Arc<N::ChainSpec>,
args: DatabaseArguments,
static_file_provider: StaticFileProvider<N::Primitives>,
) -> RethResult<Self>
pub fn new_with_database_path<P: AsRef<Path>>( path: P, chain_spec: Arc<N::ChainSpec>, args: DatabaseArguments, static_file_provider: StaticFileProvider<N::Primitives>, ) -> RethResult<Self>
Create new database provider by passing a path. ProviderFactory will own the database
instance.
Source§impl<N: ProviderNodeTypes> ProviderFactory<N>
impl<N: ProviderNodeTypes> ProviderFactory<N>
Sourcepub fn provider(&self) -> ProviderResult<DatabaseProviderRO<N::DB, N>>
pub fn provider(&self) -> ProviderResult<DatabaseProviderRO<N::DB, N>>
Returns a provider with a created DbTx inside, which allows fetching data from the
database using different types of providers. Example: HeaderProvider
BlockHashReader. This may fail if the inner read database transaction fails to open.
This sets the PruneModes to None, because they should only be relevant for writing
data.
Sourcepub fn provider_rw(&self) -> ProviderResult<DatabaseProviderRW<N::DB, N>>
pub fn provider_rw(&self) -> ProviderResult<DatabaseProviderRW<N::DB, N>>
Returns a provider with a created DbTxMut inside, which allows fetching and updating
data from the database using different types of providers. Example: HeaderProvider
BlockHashReader. This may fail if the inner read/write database transaction fails to
open.
Sourcepub fn latest(&self) -> ProviderResult<StateProviderBox>
pub fn latest(&self) -> ProviderResult<StateProviderBox>
State provider for latest block
Sourcepub fn history_by_block_number(
&self,
block_number: BlockNumber,
) -> ProviderResult<StateProviderBox>
pub fn history_by_block_number( &self, block_number: BlockNumber, ) -> ProviderResult<StateProviderBox>
Storage provider for state at that given block
Sourcepub fn history_by_block_hash(
&self,
block_hash: BlockHash,
) -> ProviderResult<StateProviderBox>
pub fn history_by_block_hash( &self, block_hash: BlockHash, ) -> ProviderResult<StateProviderBox>
Storage provider for state at that given block hash
Trait Implementations§
Source§impl<N: ProviderNodeTypes> BlockBodyIndicesProvider for ProviderFactory<N>
impl<N: ProviderNodeTypes> BlockBodyIndicesProvider for ProviderFactory<N>
Source§fn block_body_indices(
&self,
number: BlockNumber,
) -> ProviderResult<Option<StoredBlockBodyIndices>>
fn block_body_indices( &self, number: BlockNumber, ) -> ProviderResult<Option<StoredBlockBodyIndices>>
Source§fn block_body_indices_range(
&self,
range: RangeInclusive<BlockNumber>,
) -> ProviderResult<Vec<StoredBlockBodyIndices>>
fn block_body_indices_range( &self, range: RangeInclusive<BlockNumber>, ) -> ProviderResult<Vec<StoredBlockBodyIndices>>
Source§impl<N: ProviderNodeTypes> BlockHashReader for ProviderFactory<N>
impl<N: ProviderNodeTypes> BlockHashReader for ProviderFactory<N>
Source§fn block_hash(&self, number: u64) -> ProviderResult<Option<B256>>
fn block_hash(&self, number: u64) -> ProviderResult<Option<B256>>
None if no block with this number
exists.Source§fn canonical_hashes_range(
&self,
start: BlockNumber,
end: BlockNumber,
) -> ProviderResult<Vec<B256>>
fn canonical_hashes_range( &self, start: BlockNumber, end: BlockNumber, ) -> ProviderResult<Vec<B256>>
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<N: ProviderNodeTypes> BlockNumReader for ProviderFactory<N>
impl<N: ProviderNodeTypes> BlockNumReader for ProviderFactory<N>
Source§fn chain_info(&self) -> ProviderResult<ChainInfo>
fn chain_info(&self) -> ProviderResult<ChainInfo>
Source§fn best_block_number(&self) -> ProviderResult<BlockNumber>
fn best_block_number(&self) -> ProviderResult<BlockNumber>
Source§fn last_block_number(&self) -> ProviderResult<BlockNumber>
fn last_block_number(&self) -> ProviderResult<BlockNumber>
Source§fn earliest_block_number(&self) -> ProviderResult<BlockNumber>
fn earliest_block_number(&self) -> ProviderResult<BlockNumber>
Source§fn block_number(&self, hash: B256) -> ProviderResult<Option<BlockNumber>>
fn block_number(&self, hash: B256) -> ProviderResult<Option<BlockNumber>>
BlockNumber for the given hash. Returns None if no block with this hash exists.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<N: ProviderNodeTypes> BlockReader for ProviderFactory<N>
impl<N: ProviderNodeTypes> BlockReader for ProviderFactory<N>
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: B256,
source: BlockSource,
) -> ProviderResult<Option<Self::Block>>
fn find_block_by_hash( &self, hash: B256, source: BlockSource, ) -> ProviderResult<Option<Self::Block>>
Source§fn block(&self, id: BlockHashOrNumber) -> ProviderResult<Option<Self::Block>>
fn block(&self, id: BlockHashOrNumber) -> ProviderResult<Option<Self::Block>>
Source§fn pending_block(&self) -> ProviderResult<Option<RecoveredBlock<Self::Block>>>
fn pending_block(&self) -> ProviderResult<Option<RecoveredBlock<Self::Block>>>
Source§fn pending_block_and_receipts(
&self,
) -> ProviderResult<Option<(RecoveredBlock<Self::Block>, Vec<Self::Receipt>)>>
fn pending_block_and_receipts( &self, ) -> ProviderResult<Option<(RecoveredBlock<Self::Block>, Vec<Self::Receipt>)>>
Source§fn recovered_block(
&self,
id: BlockHashOrNumber,
transaction_kind: TransactionVariant,
) -> ProviderResult<Option<RecoveredBlock<Self::Block>>>
fn recovered_block( &self, id: BlockHashOrNumber, transaction_kind: TransactionVariant, ) -> ProviderResult<Option<RecoveredBlock<Self::Block>>>
Source§fn sealed_block_with_senders(
&self,
id: BlockHashOrNumber,
transaction_kind: TransactionVariant,
) -> ProviderResult<Option<RecoveredBlock<Self::Block>>>
fn sealed_block_with_senders( &self, id: BlockHashOrNumber, transaction_kind: TransactionVariant, ) -> ProviderResult<Option<RecoveredBlock<Self::Block>>>
Source§fn block_range(
&self,
range: RangeInclusive<BlockNumber>,
) -> ProviderResult<Vec<Self::Block>>
fn block_range( &self, range: RangeInclusive<BlockNumber>, ) -> ProviderResult<Vec<Self::Block>>
Source§fn block_with_senders_range(
&self,
range: RangeInclusive<BlockNumber>,
) -> ProviderResult<Vec<RecoveredBlock<Self::Block>>>
fn block_with_senders_range( &self, range: RangeInclusive<BlockNumber>, ) -> ProviderResult<Vec<RecoveredBlock<Self::Block>>>
Source§fn recovered_block_range(
&self,
range: RangeInclusive<BlockNumber>,
) -> ProviderResult<Vec<RecoveredBlock<Self::Block>>>
fn recovered_block_range( &self, range: RangeInclusive<BlockNumber>, ) -> ProviderResult<Vec<RecoveredBlock<Self::Block>>>
Source§fn block_by_transaction_id(
&self,
id: TxNumber,
) -> ProviderResult<Option<BlockNumber>>
fn block_by_transaction_id( &self, id: TxNumber, ) -> ProviderResult<Option<BlockNumber>>
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<N: NodeTypesWithDB> ChainSpecProvider for ProviderFactory<N>
impl<N: NodeTypesWithDB> ChainSpecProvider for ProviderFactory<N>
Source§impl<N: NodeTypesWithDB> Clone for ProviderFactory<N>
impl<N: NodeTypesWithDB> Clone for ProviderFactory<N>
Source§impl<N: ProviderNodeTypes> DatabaseProviderFactory for ProviderFactory<N>
impl<N: ProviderNodeTypes> DatabaseProviderFactory for ProviderFactory<N>
Source§type DB = <N as NodeTypesWithDB>::DB
type DB = <N as NodeTypesWithDB>::DB
Source§type Provider = DatabaseProvider<<<N as NodeTypesWithDB>::DB as Database>::TX, N>
type Provider = DatabaseProvider<<<N as NodeTypesWithDB>::DB as Database>::TX, N>
Source§type ProviderRW = DatabaseProvider<<<N as NodeTypesWithDB>::DB as Database>::TXMut, N>
type ProviderRW = DatabaseProvider<<<N as NodeTypesWithDB>::DB as Database>::TXMut, N>
Source§fn database_provider_ro(&self) -> ProviderResult<Self::Provider>
fn database_provider_ro(&self) -> ProviderResult<Self::Provider>
Source§fn database_provider_rw(&self) -> ProviderResult<Self::ProviderRW>
fn database_provider_rw(&self) -> ProviderResult<Self::ProviderRW>
Source§impl<N> Debug for ProviderFactory<N>
impl<N> Debug for ProviderFactory<N>
Source§impl<N: ProviderNodeTypes> HashedPostStateProvider for ProviderFactory<N>
impl<N: ProviderNodeTypes> HashedPostStateProvider for ProviderFactory<N>
Source§fn hashed_post_state(&self, bundle_state: &BundleState) -> HashedPostState
fn hashed_post_state(&self, bundle_state: &BundleState) -> HashedPostState
HashedPostState of the provided [BundleState].Source§impl<N: ProviderNodeTypes> HeaderProvider for ProviderFactory<N>
impl<N: ProviderNodeTypes> HeaderProvider for ProviderFactory<N>
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: BlockHash) -> ProviderResult<Option<Self::Header>>
fn header(&self, block_hash: BlockHash) -> ProviderResult<Option<Self::Header>>
Source§fn header_by_number(
&self,
num: BlockNumber,
) -> ProviderResult<Option<Self::Header>>
fn header_by_number( &self, num: BlockNumber, ) -> ProviderResult<Option<Self::Header>>
Source§fn headers_range(
&self,
range: impl RangeBounds<BlockNumber>,
) -> ProviderResult<Vec<Self::Header>>
fn headers_range( &self, range: impl RangeBounds<BlockNumber>, ) -> ProviderResult<Vec<Self::Header>>
Source§fn sealed_header(
&self,
number: BlockNumber,
) -> ProviderResult<Option<SealedHeader<Self::Header>>>
fn sealed_header( &self, number: BlockNumber, ) -> ProviderResult<Option<SealedHeader<Self::Header>>>
Source§fn sealed_headers_range(
&self,
range: impl RangeBounds<BlockNumber>,
) -> ProviderResult<Vec<SealedHeader<Self::Header>>>
fn sealed_headers_range( &self, range: impl RangeBounds<BlockNumber>, ) -> ProviderResult<Vec<SealedHeader<Self::Header>>>
Source§fn sealed_headers_while(
&self,
range: impl RangeBounds<BlockNumber>,
predicate: impl FnMut(&SealedHeader<Self::Header>) -> bool,
) -> ProviderResult<Vec<SealedHeader<Self::Header>>>
fn sealed_headers_while( &self, range: impl RangeBounds<BlockNumber>, predicate: impl FnMut(&SealedHeader<Self::Header>) -> bool, ) -> ProviderResult<Vec<SealedHeader<Self::Header>>>
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§impl<N: ProviderNodeTypes> HeaderSyncGapProvider for ProviderFactory<N>
impl<N: ProviderNodeTypes> HeaderSyncGapProvider for ProviderFactory<N>
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: BlockNumber,
) -> ProviderResult<SealedHeader<Self::Header>>
fn local_tip_header( &self, highest_uninterrupted_block: BlockNumber, ) -> ProviderResult<SealedHeader<Self::Header>>
Source§impl<N: ProviderNodeTypes> MetadataProvider for ProviderFactory<N>
impl<N: ProviderNodeTypes> MetadataProvider for ProviderFactory<N>
Source§fn get_metadata(&self, key: &str) -> ProviderResult<Option<Vec<u8>>>
fn get_metadata(&self, key: &str) -> ProviderResult<Option<Vec<u8>>>
Source§fn storage_settings(&self) -> Result<Option<StorageSettings>, ProviderError>
fn storage_settings(&self) -> Result<Option<StorageSettings>, ProviderError>
Source§impl<N: NodeTypesWithDB> NodePrimitivesProvider for ProviderFactory<N>
impl<N: NodeTypesWithDB> NodePrimitivesProvider for ProviderFactory<N>
Source§type Primitives = <N as NodeTypes>::Primitives
type Primitives = <N as NodeTypes>::Primitives
Source§impl<N: ProviderNodeTypes> PruneCheckpointReader for ProviderFactory<N>
impl<N: ProviderNodeTypes> PruneCheckpointReader for ProviderFactory<N>
Source§fn get_prune_checkpoint(
&self,
segment: PruneSegment,
) -> ProviderResult<Option<PruneCheckpoint>>
fn get_prune_checkpoint( &self, segment: PruneSegment, ) -> ProviderResult<Option<PruneCheckpoint>>
Source§fn get_prune_checkpoints(
&self,
) -> ProviderResult<Vec<(PruneSegment, PruneCheckpoint)>>
fn get_prune_checkpoints( &self, ) -> ProviderResult<Vec<(PruneSegment, PruneCheckpoint)>>
Source§impl<N: ProviderNodeTypes> ReceiptProvider for ProviderFactory<N>
impl<N: ProviderNodeTypes> ReceiptProvider for ProviderFactory<N>
Source§type Receipt = <<N as NodeTypes>::Primitives as NodePrimitives>::Receipt
type Receipt = <<N as NodeTypes>::Primitives as NodePrimitives>::Receipt
Source§fn receipt(&self, id: TxNumber) -> ProviderResult<Option<Self::Receipt>>
fn receipt(&self, id: TxNumber) -> ProviderResult<Option<Self::Receipt>>
Source§fn receipt_by_hash(&self, hash: TxHash) -> ProviderResult<Option<Self::Receipt>>
fn receipt_by_hash(&self, hash: TxHash) -> ProviderResult<Option<Self::Receipt>>
Source§fn receipts_by_block(
&self,
block: BlockHashOrNumber,
) -> ProviderResult<Option<Vec<Self::Receipt>>>
fn receipts_by_block( &self, block: BlockHashOrNumber, ) -> ProviderResult<Option<Vec<Self::Receipt>>>
Source§fn receipts_by_tx_range(
&self,
range: impl RangeBounds<TxNumber>,
) -> ProviderResult<Vec<Self::Receipt>>
fn receipts_by_tx_range( &self, range: impl RangeBounds<TxNumber>, ) -> ProviderResult<Vec<Self::Receipt>>
Source§fn receipts_by_block_range(
&self,
block_range: RangeInclusive<BlockNumber>,
) -> ProviderResult<Vec<Vec<Self::Receipt>>>
fn receipts_by_block_range( &self, block_range: RangeInclusive<BlockNumber>, ) -> ProviderResult<Vec<Vec<Self::Receipt>>>
Source§impl<N: ProviderNodeTypes> StageCheckpointReader for ProviderFactory<N>
impl<N: ProviderNodeTypes> StageCheckpointReader for ProviderFactory<N>
Source§fn get_stage_checkpoint(
&self,
id: StageId,
) -> ProviderResult<Option<StageCheckpoint>>
fn get_stage_checkpoint( &self, id: StageId, ) -> ProviderResult<Option<StageCheckpoint>>
Source§fn get_stage_checkpoint_progress(
&self,
id: StageId,
) -> ProviderResult<Option<Vec<u8>>>
fn get_stage_checkpoint_progress( &self, id: StageId, ) -> ProviderResult<Option<Vec<u8>>>
Source§fn get_all_checkpoints(&self) -> ProviderResult<Vec<(String, StageCheckpoint)>>
fn get_all_checkpoints(&self) -> ProviderResult<Vec<(String, StageCheckpoint)>>
Source§impl<N: NodeTypesWithDB> StaticFileProviderFactory for ProviderFactory<N>
impl<N: NodeTypesWithDB> StaticFileProviderFactory for ProviderFactory<N>
Source§fn static_file_provider(&self) -> StaticFileProvider<Self::Primitives>
fn static_file_provider(&self) -> StaticFileProvider<Self::Primitives>
Returns static file provider
Source§fn get_static_file_writer(
&self,
block: BlockNumber,
segment: StaticFileSegment,
) -> ProviderResult<StaticFileProviderRWRefMut<'_, Self::Primitives>>
fn get_static_file_writer( &self, block: BlockNumber, segment: StaticFileSegment, ) -> ProviderResult<StaticFileProviderRWRefMut<'_, Self::Primitives>>
StaticFileProviderRW of a
StaticFileSegment.Source§impl<N: NodeTypesWithDB> StorageSettingsCache for ProviderFactory<N>
impl<N: NodeTypesWithDB> StorageSettingsCache for ProviderFactory<N>
Source§fn cached_storage_settings(&self) -> StorageSettings
fn cached_storage_settings(&self) -> StorageSettings
Source§fn set_storage_settings_cache(&self, settings: StorageSettings)
fn set_storage_settings_cache(&self, settings: StorageSettings)
ProviderFactory. Read moreSource§impl<N: ProviderNodeTypes> TransactionsProvider for ProviderFactory<N>
impl<N: ProviderNodeTypes> TransactionsProvider for ProviderFactory<N>
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: TxHash) -> ProviderResult<Option<TxNumber>>
fn transaction_id(&self, tx_hash: TxHash) -> ProviderResult<Option<TxNumber>>
Source§fn transaction_by_id(
&self,
id: TxNumber,
) -> ProviderResult<Option<Self::Transaction>>
fn transaction_by_id( &self, id: TxNumber, ) -> ProviderResult<Option<Self::Transaction>>
Source§fn transaction_by_id_unhashed(
&self,
id: TxNumber,
) -> ProviderResult<Option<Self::Transaction>>
fn transaction_by_id_unhashed( &self, id: TxNumber, ) -> ProviderResult<Option<Self::Transaction>>
Source§fn transaction_by_hash(
&self,
hash: TxHash,
) -> ProviderResult<Option<Self::Transaction>>
fn transaction_by_hash( &self, hash: TxHash, ) -> ProviderResult<Option<Self::Transaction>>
Source§fn transaction_by_hash_with_meta(
&self,
tx_hash: TxHash,
) -> ProviderResult<Option<(Self::Transaction, TransactionMeta)>>
fn transaction_by_hash_with_meta( &self, tx_hash: TxHash, ) -> ProviderResult<Option<(Self::Transaction, TransactionMeta)>>
Source§fn transactions_by_block(
&self,
id: BlockHashOrNumber,
) -> ProviderResult<Option<Vec<Self::Transaction>>>
fn transactions_by_block( &self, id: BlockHashOrNumber, ) -> ProviderResult<Option<Vec<Self::Transaction>>>
Source§fn transactions_by_block_range(
&self,
range: impl RangeBounds<BlockNumber>,
) -> ProviderResult<Vec<Vec<Self::Transaction>>>
fn transactions_by_block_range( &self, range: impl RangeBounds<BlockNumber>, ) -> ProviderResult<Vec<Vec<Self::Transaction>>>
Source§fn transactions_by_tx_range(
&self,
range: impl RangeBounds<TxNumber>,
) -> ProviderResult<Vec<Self::Transaction>>
fn transactions_by_tx_range( &self, range: impl RangeBounds<TxNumber>, ) -> ProviderResult<Vec<Self::Transaction>>
Source§fn senders_by_tx_range(
&self,
range: impl RangeBounds<TxNumber>,
) -> ProviderResult<Vec<Address>>
fn senders_by_tx_range( &self, range: impl RangeBounds<TxNumber>, ) -> ProviderResult<Vec<Address>>
Source§fn transaction_sender(&self, id: TxNumber) -> ProviderResult<Option<Address>>
fn transaction_sender(&self, id: TxNumber) -> ProviderResult<Option<Address>>
Auto Trait Implementations§
impl<N> Freeze for ProviderFactory<N>
impl<N> !RefUnwindSafe for ProviderFactory<N>
impl<N> Send for ProviderFactory<N>
impl<N> Sync for ProviderFactory<N>
impl<N> Unpin for ProviderFactory<N>
impl<N> !UnwindSafe for ProviderFactory<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
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
§impl<T> Conv for T
impl<T> Conv for T
Source§impl<T> DatabaseProviderROFactory for Twhere
T: DatabaseProviderFactory,
impl<T> DatabaseProviderROFactory for Twhere
T: DatabaseProviderFactory,
Source§type Provider = <T as DatabaseProviderFactory>::Provider
type Provider = <T as DatabaseProviderFactory>::Provider
Source§fn database_provider_ro(
&self,
) -> Result<<T as DatabaseProviderROFactory>::Provider, ProviderError>
fn database_provider_ro( &self, ) -> Result<<T as DatabaseProviderROFactory>::Provider, ProviderError>
§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>,
§fn from_encoded_tx(tx: &&T, sender: Address, encoded: Bytes) -> TxEnv
fn from_encoded_tx(tx: &&T, sender: Address, encoded: Bytes) -> TxEnv
TxEnv] from a transaction, its sender, and encoded transaction bytes.§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>
§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> 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,
propagate-header only.§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,
add-extension only.§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,
map-request-body only.§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,
map-response-body only.§fn compression(self) -> Compression<Self>where
Self: Sized,
fn compression(self) -> Compression<Self>where
Self: Sized,
compression-br or compression-deflate or compression-gzip or compression-zstd only.§fn decompression(self) -> Decompression<Self>where
Self: Sized,
fn decompression(self) -> Decompression<Self>where
Self: Sized,
decompression-br or decompression-deflate or decompression-gzip or decompression-zstd only.§fn trace_for_http(self) -> Trace<Self, SharedClassifier<ServerErrorsAsFailures>>where
Self: Sized,
fn trace_for_http(self) -> Trace<Self, SharedClassifier<ServerErrorsAsFailures>>where
Self: Sized,
trace only.§fn trace_for_grpc(self) -> Trace<Self, SharedClassifier<GrpcErrorsAsFailures>>where
Self: Sized,
fn trace_for_grpc(self) -> Trace<Self, SharedClassifier<GrpcErrorsAsFailures>>where
Self: Sized,
trace only.§fn follow_redirects(self) -> FollowRedirect<Self>where
Self: Sized,
fn follow_redirects(self) -> FollowRedirect<Self>where
Self: Sized,
follow-redirect only.§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,
sensitive-headers only.§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,
sensitive-headers only.§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,
sensitive-headers only.§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,
set-header only.§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,
set-header only.§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,
set-header only.§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,
set-header only.§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,
set-header only.§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,
set-header only.§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,
request-id only.§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,
request-id only.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,
request-id only.§fn propagate_x_request_id(self) -> PropagateRequestId<Self>where
Self: Sized,
fn propagate_x_request_id(self) -> PropagateRequestId<Self>where
Self: Sized,
request-id only.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,
catch-panic only.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,
limit only.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,
normalize-path only.§fn append_trailing_slash(self) -> NormalizePath<Self>where
Self: Sized,
fn append_trailing_slash(self) -> NormalizePath<Self>where
Self: Sized,
normalize-path only.§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>
impl<T> ErasedDestructor for Twhere
T: 'static,
impl<T> MaybeDebug for Twhere
T: Debug,
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.