ChainReadAccountOperations

Trait ChainReadAccountOperations 

Source
pub trait ChainReadAccountOperations {
    type Error: Error + Send + Sync + 'static;

    // Required methods
    fn get_balance<'life0, 'async_trait, C, A>(
        &'life0 self,
        address: A,
    ) -> Pin<Box<dyn Future<Output = Result<Balance<C>, Self::Error>> + Send + 'async_trait>>
       where C: 'async_trait + Currency,
             A: 'async_trait + Into<Address> + Send,
             Self: 'async_trait,
             'life0: 'async_trait;
    fn safe_allowance<'life0, 'async_trait, C, A>(
        &'life0 self,
        safe_address: A,
    ) -> Pin<Box<dyn Future<Output = Result<Balance<C>, Self::Error>> + Send + 'async_trait>>
       where C: 'async_trait + Currency,
             A: 'async_trait + Into<Address> + Send,
             Self: 'async_trait,
             'life0: 'async_trait;
    fn stream_accounts<'a, 'async_trait>(
        &'a self,
        selector: AccountSelector,
    ) -> Pin<Box<dyn Future<Output = Result<BoxStream<'a, AccountEntry>, Self::Error>> + Send + 'async_trait>>
       where Self: 'async_trait,
             'a: 'async_trait;
    fn count_accounts<'life0, 'async_trait>(
        &'life0 self,
        selector: AccountSelector,
    ) -> Pin<Box<dyn Future<Output = Result<usize, Self::Error>> + Send + 'async_trait>>
       where Self: 'async_trait,
             'life0: 'async_trait;
}
Expand description

Chain operations that read on-chain node accounts.

Required Associated Types§

Source

type Error: Error + Send + Sync + 'static

Required Methods§

Source

fn get_balance<'life0, 'async_trait, C, A>( &'life0 self, address: A, ) -> Pin<Box<dyn Future<Output = Result<Balance<C>, Self::Error>> + Send + 'async_trait>>
where C: 'async_trait + Currency, A: 'async_trait + Into<Address> + Send, Self: 'async_trait, 'life0: 'async_trait,

Returns the native or token currency balance of the given on-chain account.

Source

fn safe_allowance<'life0, 'async_trait, C, A>( &'life0 self, safe_address: A, ) -> Pin<Box<dyn Future<Output = Result<Balance<C>, Self::Error>> + Send + 'async_trait>>
where C: 'async_trait + Currency, A: 'async_trait + Into<Address> + Send, Self: 'async_trait, 'life0: 'async_trait,

Returns the native or token currency Safe allowance.

Source

fn stream_accounts<'a, 'async_trait>( &'a self, selector: AccountSelector, ) -> Pin<Box<dyn Future<Output = Result<BoxStream<'a, AccountEntry>, Self::Error>> + Send + 'async_trait>>
where Self: 'async_trait, 'a: 'async_trait,

Returns on-chain node accounts with the given AccountSelector.

Source

fn count_accounts<'life0, 'async_trait>( &'life0 self, selector: AccountSelector, ) -> Pin<Box<dyn Future<Output = Result<usize, Self::Error>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Counts the accounts with the given AccountSelector.

This is potentially done more effectively than counting more elements of the stream returned by ChainReadAccountOperations::stream_accounts.

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.

Implementations on Foreign Types§

Source§

impl<'b, T: 'b + ChainReadAccountOperations + ?Sized> ChainReadAccountOperations for &'b T

Source§

type Error = <T as ChainReadAccountOperations>::Error

Source§

fn get_balance<'life0, 'async_trait, C, A>( &'life0 self, address: A, ) -> Pin<Box<dyn Future<Output = Result<Balance<C>, Self::Error>> + Send + 'async_trait>>
where C: 'async_trait + Currency, A: 'async_trait + Into<Address> + Send, Self: 'async_trait, 'life0: 'async_trait,

Source§

fn safe_allowance<'life0, 'async_trait, C, A>( &'life0 self, safe_address: A, ) -> Pin<Box<dyn Future<Output = Result<Balance<C>, Self::Error>> + Send + 'async_trait>>
where C: 'async_trait + Currency, A: 'async_trait + Into<Address> + Send, Self: 'async_trait, 'life0: 'async_trait,

Source§

fn stream_accounts<'a, 'async_trait>( &'a self, selector: AccountSelector, ) -> Pin<Box<dyn Future<Output = Result<BoxStream<'a, AccountEntry>, Self::Error>> + Send + 'async_trait>>
where Self: 'async_trait, 'a: 'async_trait,

Source§

fn count_accounts<'life0, 'async_trait>( &'life0 self, selector: AccountSelector, ) -> Pin<Box<dyn Future<Output = Result<usize, Self::Error>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Source§

impl<T: ChainReadAccountOperations + ?Sized> ChainReadAccountOperations for Box<T>

Source§

type Error = <T as ChainReadAccountOperations>::Error

Source§

fn get_balance<'life0, 'async_trait, C, A>( &'life0 self, address: A, ) -> Pin<Box<dyn Future<Output = Result<Balance<C>, Self::Error>> + Send + 'async_trait>>
where C: 'async_trait + Currency, A: 'async_trait + Into<Address> + Send, Self: 'async_trait, 'life0: 'async_trait,

Source§

fn safe_allowance<'life0, 'async_trait, C, A>( &'life0 self, safe_address: A, ) -> Pin<Box<dyn Future<Output = Result<Balance<C>, Self::Error>> + Send + 'async_trait>>
where C: 'async_trait + Currency, A: 'async_trait + Into<Address> + Send, Self: 'async_trait, 'life0: 'async_trait,

Source§

fn stream_accounts<'a, 'async_trait>( &'a self, selector: AccountSelector, ) -> Pin<Box<dyn Future<Output = Result<BoxStream<'a, AccountEntry>, Self::Error>> + Send + 'async_trait>>
where Self: 'async_trait, 'a: 'async_trait,

Source§

fn count_accounts<'life0, 'async_trait>( &'life0 self, selector: AccountSelector, ) -> Pin<Box<dyn Future<Output = Result<usize, Self::Error>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Source§

impl<T: ChainReadAccountOperations + ?Sized> ChainReadAccountOperations for Arc<T>

Source§

type Error = <T as ChainReadAccountOperations>::Error

Source§

fn get_balance<'life0, 'async_trait, C, A>( &'life0 self, address: A, ) -> Pin<Box<dyn Future<Output = Result<Balance<C>, Self::Error>> + Send + 'async_trait>>
where C: 'async_trait + Currency, A: 'async_trait + Into<Address> + Send, Self: 'async_trait, 'life0: 'async_trait,

Source§

fn safe_allowance<'life0, 'async_trait, C, A>( &'life0 self, safe_address: A, ) -> Pin<Box<dyn Future<Output = Result<Balance<C>, Self::Error>> + Send + 'async_trait>>
where C: 'async_trait + Currency, A: 'async_trait + Into<Address> + Send, Self: 'async_trait, 'life0: 'async_trait,

Source§

fn stream_accounts<'a, 'async_trait>( &'a self, selector: AccountSelector, ) -> Pin<Box<dyn Future<Output = Result<BoxStream<'a, AccountEntry>, Self::Error>> + Send + 'async_trait>>
where Self: 'async_trait, 'a: 'async_trait,

Source§

fn count_accounts<'life0, 'async_trait>( &'life0 self, selector: AccountSelector, ) -> Pin<Box<dyn Future<Output = Result<usize, Self::Error>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Implementors§