Struct fc_db::sql::Backend

source ·
pub struct Backend<Block: BlockT> { /* private fields */ }

Implementations§

source§

impl<Block> Backend<Block>
where Block: BlockT<Hash = H256> + BlockT,

source

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.

source

pub fn pool(&self) -> &SqlitePool

Get the underlying Sqlite pool.

source

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.

source

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.

source

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.

source

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.

source

pub async fn is_block_indexed(&self, block_hash: Block::Hash) -> bool

Retrieves the status if a block has been already indexed.

source

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.

source

pub async fn set_block_as_canon( &self, block_hash: H256 ) -> Result<SqliteQueryResult, Error>

Sets the provided block as canon.

source

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.

source

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.

source

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>

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,

Get the substrate hash with the given ethereum block hash.
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,

Get the transaction metadata with the given ethereum block hash.
source§

fn log_indexer(&self) -> &dyn LogIndexerBackend<Block>

Returns reference to log indexer backend.
source§

fn is_indexed(&self) -> bool

Indicate whether the log indexing feature is supported.
source§

impl<Block: Clone + BlockT> Clone for Backend<Block>

source§

fn clone(&self) -> Backend<Block>

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl<Block: BlockT<Hash = H256>> LogIndexerBackend<Block> for Backend<Block>

source§

fn is_indexed(&self) -> bool

Indicate whether the log indexing feature is supported.
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,

Filter the logs by the parameters.

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> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
§

impl<T> CheckedConversion for T

§

fn checked_from<T>(t: T) -> Option<Self>
where Self: TryFrom<T>,

Convert from a value of T into an equivalent instance of Option<Self>. Read more
§

fn checked_into<T>(self) -> Option<T>
where Self: TryInto<T>,

Consume self to return Some equivalent value of Option<T>. Read more
source§

impl<T> DynClone for T
where T: Clone,

source§

fn __clone_box(&self, _: Private) -> *mut ()

source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

source§

impl<T> Instrument for T

source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
source§

impl<T, U> Into<U> for T
where U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

§

impl<T, U> IntoKey<U> for T
where U: FromKey<T>,

§

fn into_key(self) -> U

§

impl<T> IsType<T> for T

§

fn from_ref(t: &T) -> &T

Cast reference.
§

fn into_ref(&self) -> &T

Cast reference.
§

fn from_mut(t: &mut T) -> &mut T

Cast mutable reference.
§

fn into_mut(&mut self) -> &mut T

Cast mutable reference.
§

impl<T, Outer> IsWrappedBy<Outer> for T
where Outer: AsRef<T> + AsMut<T> + From<T>, T: From<Outer>,

§

fn from_ref(outer: &Outer) -> &T

Get a reference to the inner from the outer.

§

fn from_mut(outer: &mut Outer) -> &mut T

Get a mutable reference to the inner from the outer.

§

impl<T> Pointable for T

§

const ALIGN: usize = _

The alignment of pointer.
§

type Init = T

The type for initializers.
§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
source§

impl<T> Same for T

§

type Output = T

Should always be Self
§

impl<T> SaturatedConversion for T

§

fn saturated_from<T>(t: T) -> Self
where Self: UniqueSaturatedFrom<T>,

Convert from a value of T into an equivalent instance of Self. Read more
§

fn saturated_into<T>(self) -> T
where Self: UniqueSaturatedInto<T>,

Consume self to return an equivalent value of T. Read more
source§

impl<T> ToOwned for T
where T: Clone,

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

impl<T, U> TryIntoKey<U> for T
where 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 S
where T: UncheckedFrom<S>,

§

fn unchecked_into(self) -> T

The counterpart to unchecked_from.
§

impl<T, S> UniqueSaturatedInto<T> for S
where T: Bounded, S: TryInto<T>,

§

fn unique_saturated_into(self) -> T

Consume self to return an equivalent value of T.
§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

§

fn vzip(self) -> V

source§

impl<T> WithSubscriber for T

source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more
§

impl<T> JsonSchemaMaybe for T