pub struct Backend<Block: BlockT> { /* private fields */ }
Implementations§
source§impl<Block> Backend<Block>where
Block: BlockT<Hash = H256> + BlockT,
impl<Block> Backend<Block>where
Block: BlockT<Hash = H256> + BlockT,
sourcepub async fn new(
config: BackendConfig<'_>,
pool_size: u32,
num_ops_timeout: Option<NonZeroU32>,
overrides: Arc<OverrideHandle<Block>>
) -> Result<Self, Error>
pub async fn new( config: BackendConfig<'_>, pool_size: u32, num_ops_timeout: Option<NonZeroU32>, overrides: Arc<OverrideHandle<Block>> ) -> Result<Self, Error>
Creates a new instance of the SQL backend.
sourcepub async fn canonicalize(
&self,
retracted: &[H256],
enacted: &[H256]
) -> Result<(), Error>
pub async fn canonicalize( &self, retracted: &[H256], enacted: &[H256] ) -> Result<(), Error>
Canonicalize the indexed blocks, marking/demarking them as canon based on the
provided retracted
and enacted
values.
sourcepub async fn insert_genesis_block_metadata<Client, BE>(
&self,
client: Arc<Client>
) -> Result<Option<H256>, Error>where
Client: StorageProvider<Block, BE> + HeaderBackend<Block> + 'static + ProvideRuntimeApi<Block>,
Client::Api: EthereumRuntimeRPCApi<Block>,
BE: BackendT<Block> + 'static,
BE::State: StateBackend<BlakeTwo256>,
pub async fn insert_genesis_block_metadata<Client, BE>(
&self,
client: Arc<Client>
) -> Result<Option<H256>, Error>where
Client: StorageProvider<Block, BE> + HeaderBackend<Block> + 'static + ProvideRuntimeApi<Block>,
Client::Api: EthereumRuntimeRPCApi<Block>,
BE: BackendT<Block> + 'static,
BE::State: StateBackend<BlakeTwo256>,
Index the block metadata for the genesis block.
sourcepub async fn insert_block_metadata<Client, BE>(
&self,
client: Arc<Client>,
hash: H256
) -> Result<(), Error>where
Client: StorageProvider<Block, BE> + HeaderBackend<Block> + 'static,
BE: BackendT<Block> + 'static,
BE::State: StateBackend<BlakeTwo256>,
pub async fn insert_block_metadata<Client, BE>(
&self,
client: Arc<Client>,
hash: H256
) -> Result<(), Error>where
Client: StorageProvider<Block, BE> + HeaderBackend<Block> + 'static,
BE: BackendT<Block> + 'static,
BE::State: StateBackend<BlakeTwo256>,
Insert the block metadata for the provided block hashes.
sourcepub async fn index_block_logs<Client, BE>(
&self,
client: Arc<Client>,
block_hash: Block::Hash
)where
Client: StorageProvider<Block, BE> + HeaderBackend<Block> + 'static,
BE: BackendT<Block> + 'static,
BE::State: StateBackend<BlakeTwo256>,
pub async fn index_block_logs<Client, BE>(
&self,
client: Arc<Client>,
block_hash: Block::Hash
)where
Client: StorageProvider<Block, BE> + HeaderBackend<Block> + 'static,
BE: BackendT<Block> + 'static,
BE::State: StateBackend<BlakeTwo256>,
Index the logs for the newly indexed blocks upto a max_pending_blocks
value.
sourcepub async fn is_block_indexed(&self, block_hash: Block::Hash) -> bool
pub async fn is_block_indexed(&self, block_hash: Block::Hash) -> bool
Retrieves the status if a block has been already indexed.
sourcepub async fn block_indexed_and_canon_status(
&self,
block_hash: Block::Hash
) -> BlockIndexedStatus
pub async fn block_indexed_and_canon_status( &self, block_hash: Block::Hash ) -> BlockIndexedStatus
Retrieves the status if a block is indexed and if also marked as canon.
sourcepub async fn set_block_as_canon(
&self,
block_hash: H256
) -> Result<SqliteQueryResult, Error>
pub async fn set_block_as_canon( &self, block_hash: H256 ) -> Result<SqliteQueryResult, Error>
Sets the provided block as canon.
sourcepub async fn get_first_missing_canon_block(&self) -> Option<u32>
pub async fn get_first_missing_canon_block(&self) -> Option<u32>
Retrieves the first missing canonical block number in decreasing order that hasn’t been indexed yet.
If no unindexed block exists or the table or the rows do not exist, then the function
returns None
.
sourcepub async fn get_first_pending_canon_block(&self) -> Option<H256>
pub async fn get_first_pending_canon_block(&self) -> Option<H256>
Retrieves the first pending canonical block hash in decreasing order that hasn’t had
then the function returns None
.
sourcepub async fn get_last_indexed_canon_block(&self) -> Result<H256, Error>
pub async fn get_last_indexed_canon_block(&self) -> Result<H256, Error>
Retrieve the block hash for the last indexed canon block.
Trait Implementations§
source§impl<Block: BlockT<Hash = H256>> Backend<Block> for Backend<Block>
impl<Block: BlockT<Hash = H256>> Backend<Block> for Backend<Block>
source§fn block_hash<'life0, 'life1, 'async_trait>(
&'life0 self,
ethereum_block_hash: &'life1 H256
) -> Pin<Box<dyn Future<Output = Result<Option<Vec<Block::Hash>>, String>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn block_hash<'life0, 'life1, 'async_trait>(
&'life0 self,
ethereum_block_hash: &'life1 H256
) -> Pin<Box<dyn Future<Output = Result<Option<Vec<Block::Hash>>, String>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
source§fn transaction_metadata<'life0, 'life1, 'async_trait>(
&'life0 self,
ethereum_transaction_hash: &'life1 H256
) -> Pin<Box<dyn Future<Output = Result<Vec<TransactionMetadata<Block>>, String>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn transaction_metadata<'life0, 'life1, 'async_trait>(
&'life0 self,
ethereum_transaction_hash: &'life1 H256
) -> Pin<Box<dyn Future<Output = Result<Vec<TransactionMetadata<Block>>, String>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
source§fn log_indexer(&self) -> &dyn LogIndexerBackend<Block>
fn log_indexer(&self) -> &dyn LogIndexerBackend<Block>
source§fn is_indexed(&self) -> bool
fn is_indexed(&self) -> bool
source§impl<Block: BlockT<Hash = H256>> LogIndexerBackend<Block> for Backend<Block>
impl<Block: BlockT<Hash = H256>> LogIndexerBackend<Block> for Backend<Block>
source§fn is_indexed(&self) -> bool
fn is_indexed(&self) -> bool
source§fn filter_logs<'life0, 'async_trait>(
&'life0 self,
from_block: u64,
to_block: u64,
addresses: Vec<H160>,
topics: Vec<Vec<Option<H256>>>
) -> Pin<Box<dyn Future<Output = Result<Vec<FilteredLog<Block>>, String>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn filter_logs<'life0, 'async_trait>(
&'life0 self,
from_block: u64,
to_block: u64,
addresses: Vec<H160>,
topics: Vec<Vec<Option<H256>>>
) -> Pin<Box<dyn Future<Output = Result<Vec<FilteredLog<Block>>, String>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Auto Trait Implementations§
impl<Block> !RefUnwindSafe for Backend<Block>
impl<Block> Send for Backend<Block>
impl<Block> Sync for Backend<Block>
impl<Block> Unpin for Backend<Block>
impl<Block> !UnwindSafe for Backend<Block>
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> CheckedConversion for T
impl<T> CheckedConversion for T
§fn checked_from<T>(t: T) -> Option<Self>where
Self: TryFrom<T>,
fn checked_from<T>(t: T) -> Option<Self>where
Self: TryFrom<T>,
§fn checked_into<T>(self) -> Option<T>where
Self: TryInto<T>,
fn checked_into<T>(self) -> Option<T>where
Self: TryInto<T>,
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>
§impl<T> IsType<T> for T
impl<T> IsType<T> for T
§impl<T, Outer> IsWrappedBy<Outer> for T
impl<T, Outer> IsWrappedBy<Outer> for T
§impl<T> Pointable for T
impl<T> Pointable for T
§impl<T> SaturatedConversion for T
impl<T> SaturatedConversion for T
§fn saturated_from<T>(t: T) -> Selfwhere
Self: UniqueSaturatedFrom<T>,
fn saturated_from<T>(t: T) -> Selfwhere
Self: UniqueSaturatedFrom<T>,
§fn saturated_into<T>(self) -> Twhere
Self: UniqueSaturatedInto<T>,
fn saturated_into<T>(self) -> Twhere
Self: UniqueSaturatedInto<T>,
T
. Read more§impl<T, U> TryIntoKey<U> for Twhere
U: TryFromKey<T>,
impl<T, U> TryIntoKey<U> for Twhere
U: TryFromKey<T>,
type Error = <U as TryFromKey<T>>::Error
fn try_into_key(self) -> Result<U, <U as TryFromKey<T>>::Error>
§impl<S, T> UncheckedInto<T> for Swhere
T: UncheckedFrom<S>,
impl<S, T> UncheckedInto<T> for Swhere
T: UncheckedFrom<S>,
§fn unchecked_into(self) -> T
fn unchecked_into(self) -> T
unchecked_from
.§impl<T, S> UniqueSaturatedInto<T> for S
impl<T, S> UniqueSaturatedInto<T> for S
§fn unique_saturated_into(self) -> T
fn unique_saturated_into(self) -> T
T
.