Skip to main content

ChainValues

Trait ChainValues 

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

    // Required methods
    fn balance<'life0, 'async_trait, C, A>(
        &'life0 self,
        address: A,
    ) -> Pin<Box<dyn Future<Output = Result<Balance<C>, Self::Error>> + Send + 'async_trait>>
       where 'life0: 'async_trait,
             C: 'async_trait + Currency,
             A: 'async_trait + Into<Address> + Send,
             Self: 'async_trait;
    fn domain_separators<'life0, 'async_trait>(
        &'life0 self,
    ) -> Pin<Box<dyn Future<Output = Result<DomainSeparators, Self::Error>> + Send + 'async_trait>>
       where 'life0: 'async_trait,
             Self: 'async_trait;
    fn minimum_incoming_ticket_win_prob<'life0, 'async_trait>(
        &'life0 self,
    ) -> Pin<Box<dyn Future<Output = Result<WinningProbability, Self::Error>> + Send + 'async_trait>>
       where 'life0: 'async_trait,
             Self: 'async_trait;
    fn minimum_ticket_price<'life0, 'async_trait>(
        &'life0 self,
    ) -> Pin<Box<dyn Future<Output = Result<Balance<WxHOPR>, Self::Error>> + Send + 'async_trait>>
       where 'life0: 'async_trait,
             Self: 'async_trait;
    fn key_binding_fee<'life0, 'async_trait>(
        &'life0 self,
    ) -> Pin<Box<dyn Future<Output = Result<Balance<WxHOPR>, Self::Error>> + Send + 'async_trait>>
       where 'life0: 'async_trait,
             Self: 'async_trait;
    fn channel_closure_notice_period<'life0, 'async_trait>(
        &'life0 self,
    ) -> Pin<Box<dyn Future<Output = Result<Duration, Self::Error>> + Send + 'async_trait>>
       where 'life0: 'async_trait,
             Self: 'async_trait;
    fn chain_info<'life0, 'async_trait>(
        &'life0 self,
    ) -> Pin<Box<dyn Future<Output = Result<ChainInfo, Self::Error>> + Send + 'async_trait>>
       where 'life0: 'async_trait,
             Self: 'async_trait;

    // Provided method
    fn outgoing_ticket_values<'life0, 'async_trait>(
        &'life0 self,
        cfg_out_wp: Option<WinningProbability>,
        cfg_out_price: Option<Balance<WxHOPR>>,
    ) -> Pin<Box<dyn Future<Output = Result<(WinningProbability, Balance<WxHOPR>), Self::Error>> + Send + 'async_trait>>
       where 'life0: 'async_trait,
             Self: Sync + 'async_trait { ... }
}
Expand description

Retrieves various on-chain information.

Required Associated Types§

type Error: Error + Send + Sync + 'static

Required Methods§

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

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

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

Retrieves the domain separators of HOPR smart contracts.

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

Retrieves the network-set minimum incoming ticket winning probability.

fn minimum_ticket_price<'life0, 'async_trait>( &'life0 self, ) -> Pin<Box<dyn Future<Output = Result<Balance<WxHOPR>, Self::Error>> + Send + 'async_trait>>
where 'life0: 'async_trait, Self: 'async_trait,

Retrieves the network-set minimum ticket price.

fn key_binding_fee<'life0, 'async_trait>( &'life0 self, ) -> Pin<Box<dyn Future<Output = Result<Balance<WxHOPR>, Self::Error>> + Send + 'async_trait>>
where 'life0: 'async_trait, Self: 'async_trait,

Retrieves the current key binding fee used for new key-binding announcements.

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

Gets the grace period for channel closure finalization.

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

Gets the information about the HOPR network on-chain deployment.

Provided Methods§

fn outgoing_ticket_values<'life0, 'async_trait>( &'life0 self, cfg_out_wp: Option<WinningProbability>, cfg_out_price: Option<Balance<WxHOPR>>, ) -> Pin<Box<dyn Future<Output = Result<(WinningProbability, Balance<WxHOPR>), Self::Error>> + Send + 'async_trait>>
where 'life0: 'async_trait, Self: Sync + 'async_trait,

Convenience function to determine the winning probability and ticket price for outgoing tickets.

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§

§

impl<'a, T> ChainValues for &'a T
where T: 'a + ChainValues + Sync + ?Sized,

§

type Error = <T as ChainValues>::Error

§

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

§

fn domain_separators<'life0, 'async_trait>( &'life0 self, ) -> Pin<Box<dyn Future<Output = Result<DomainSeparators, <&'a T as ChainValues>::Error>> + Send + 'async_trait>>
where 'life0: 'async_trait, &'a T: 'async_trait,

§

fn minimum_incoming_ticket_win_prob<'life0, 'async_trait>( &'life0 self, ) -> Pin<Box<dyn Future<Output = Result<WinningProbability, <&'a T as ChainValues>::Error>> + Send + 'async_trait>>
where 'life0: 'async_trait, &'a T: 'async_trait,

§

fn minimum_ticket_price<'life0, 'async_trait>( &'life0 self, ) -> Pin<Box<dyn Future<Output = Result<Balance<WxHOPR>, <&'a T as ChainValues>::Error>> + Send + 'async_trait>>
where 'life0: 'async_trait, &'a T: 'async_trait,

§

fn key_binding_fee<'life0, 'async_trait>( &'life0 self, ) -> Pin<Box<dyn Future<Output = Result<Balance<WxHOPR>, <&'a T as ChainValues>::Error>> + Send + 'async_trait>>
where 'life0: 'async_trait, &'a T: 'async_trait,

§

fn channel_closure_notice_period<'life0, 'async_trait>( &'life0 self, ) -> Pin<Box<dyn Future<Output = Result<Duration, <&'a T as ChainValues>::Error>> + Send + 'async_trait>>
where 'life0: 'async_trait, &'a T: 'async_trait,

§

fn chain_info<'life0, 'async_trait>( &'life0 self, ) -> Pin<Box<dyn Future<Output = Result<ChainInfo, <&'a T as ChainValues>::Error>> + Send + 'async_trait>>
where 'life0: 'async_trait, &'a T: 'async_trait,

§

fn outgoing_ticket_values<'life0, 'async_trait>( &'life0 self, cfg_out_wp: Option<WinningProbability>, cfg_out_price: Option<Balance<WxHOPR>>, ) -> Pin<Box<dyn Future<Output = Result<(WinningProbability, Balance<WxHOPR>), <&'a T as ChainValues>::Error>> + Send + 'async_trait>>
where 'life0: 'async_trait, &'a T: Sync + 'async_trait,

§

impl<T> ChainValues for Box<T>
where T: ChainValues + Sync + ?Sized,

§

type Error = <T as ChainValues>::Error

§

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

§

fn domain_separators<'life0, 'async_trait>( &'life0 self, ) -> Pin<Box<dyn Future<Output = Result<DomainSeparators, <Box<T> as ChainValues>::Error>> + Send + 'async_trait>>
where 'life0: 'async_trait, Box<T>: 'async_trait,

§

fn minimum_incoming_ticket_win_prob<'life0, 'async_trait>( &'life0 self, ) -> Pin<Box<dyn Future<Output = Result<WinningProbability, <Box<T> as ChainValues>::Error>> + Send + 'async_trait>>
where 'life0: 'async_trait, Box<T>: 'async_trait,

§

fn minimum_ticket_price<'life0, 'async_trait>( &'life0 self, ) -> Pin<Box<dyn Future<Output = Result<Balance<WxHOPR>, <Box<T> as ChainValues>::Error>> + Send + 'async_trait>>
where 'life0: 'async_trait, Box<T>: 'async_trait,

§

fn key_binding_fee<'life0, 'async_trait>( &'life0 self, ) -> Pin<Box<dyn Future<Output = Result<Balance<WxHOPR>, <Box<T> as ChainValues>::Error>> + Send + 'async_trait>>
where 'life0: 'async_trait, Box<T>: 'async_trait,

§

fn channel_closure_notice_period<'life0, 'async_trait>( &'life0 self, ) -> Pin<Box<dyn Future<Output = Result<Duration, <Box<T> as ChainValues>::Error>> + Send + 'async_trait>>
where 'life0: 'async_trait, Box<T>: 'async_trait,

§

fn chain_info<'life0, 'async_trait>( &'life0 self, ) -> Pin<Box<dyn Future<Output = Result<ChainInfo, <Box<T> as ChainValues>::Error>> + Send + 'async_trait>>
where 'life0: 'async_trait, Box<T>: 'async_trait,

§

fn outgoing_ticket_values<'life0, 'async_trait>( &'life0 self, cfg_out_wp: Option<WinningProbability>, cfg_out_price: Option<Balance<WxHOPR>>, ) -> Pin<Box<dyn Future<Output = Result<(WinningProbability, Balance<WxHOPR>), <Box<T> as ChainValues>::Error>> + Send + 'async_trait>>
where 'life0: 'async_trait, Box<T>: Sync + 'async_trait,

§

impl<T> ChainValues for Arc<T>
where T: ChainValues + Sync + ?Sized,

§

type Error = <T as ChainValues>::Error

§

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

§

fn domain_separators<'life0, 'async_trait>( &'life0 self, ) -> Pin<Box<dyn Future<Output = Result<DomainSeparators, <Arc<T> as ChainValues>::Error>> + Send + 'async_trait>>
where 'life0: 'async_trait, Arc<T>: 'async_trait,

§

fn minimum_incoming_ticket_win_prob<'life0, 'async_trait>( &'life0 self, ) -> Pin<Box<dyn Future<Output = Result<WinningProbability, <Arc<T> as ChainValues>::Error>> + Send + 'async_trait>>
where 'life0: 'async_trait, Arc<T>: 'async_trait,

§

fn minimum_ticket_price<'life0, 'async_trait>( &'life0 self, ) -> Pin<Box<dyn Future<Output = Result<Balance<WxHOPR>, <Arc<T> as ChainValues>::Error>> + Send + 'async_trait>>
where 'life0: 'async_trait, Arc<T>: 'async_trait,

§

fn key_binding_fee<'life0, 'async_trait>( &'life0 self, ) -> Pin<Box<dyn Future<Output = Result<Balance<WxHOPR>, <Arc<T> as ChainValues>::Error>> + Send + 'async_trait>>
where 'life0: 'async_trait, Arc<T>: 'async_trait,

§

fn channel_closure_notice_period<'life0, 'async_trait>( &'life0 self, ) -> Pin<Box<dyn Future<Output = Result<Duration, <Arc<T> as ChainValues>::Error>> + Send + 'async_trait>>
where 'life0: 'async_trait, Arc<T>: 'async_trait,

§

fn chain_info<'life0, 'async_trait>( &'life0 self, ) -> Pin<Box<dyn Future<Output = Result<ChainInfo, <Arc<T> as ChainValues>::Error>> + Send + 'async_trait>>
where 'life0: 'async_trait, Arc<T>: 'async_trait,

§

fn outgoing_ticket_values<'life0, 'async_trait>( &'life0 self, cfg_out_wp: Option<WinningProbability>, cfg_out_price: Option<Balance<WxHOPR>>, ) -> Pin<Box<dyn Future<Output = Result<(WinningProbability, Balance<WxHOPR>), <Arc<T> as ChainValues>::Error>> + Send + 'async_trait>>
where 'life0: 'async_trait, Arc<T>: Sync + 'async_trait,

Implementors§