mithril_signer

Trait Runner

source
pub trait Runner: Send + Sync {
    // Required methods
    fn get_epoch_settings<'life0, 'async_trait>(
        &'life0 self,
    ) -> Pin<Box<dyn Future<Output = StdResult<Option<SignerEpochSettings>>> + Send + 'async_trait>>
       where Self: 'async_trait,
             'life0: 'async_trait;
    fn get_beacon_to_sign<'life0, 'async_trait>(
        &'life0 self,
        time_point: TimePoint,
    ) -> Pin<Box<dyn Future<Output = StdResult<Option<BeaconToSign>>> + Send + 'async_trait>>
       where Self: 'async_trait,
             'life0: 'async_trait;
    fn get_current_time_point<'life0, 'async_trait>(
        &'life0 self,
    ) -> Pin<Box<dyn Future<Output = StdResult<TimePoint>> + Send + 'async_trait>>
       where Self: 'async_trait,
             'life0: 'async_trait;
    fn register_signer_to_aggregator<'life0, 'async_trait>(
        &'life0 self,
    ) -> Pin<Box<dyn Future<Output = StdResult<()>> + Send + 'async_trait>>
       where Self: 'async_trait,
             'life0: 'async_trait;
    fn update_stake_distribution<'life0, 'async_trait>(
        &'life0 self,
        epoch: Epoch,
    ) -> Pin<Box<dyn Future<Output = StdResult<()>> + Send + 'async_trait>>
       where Self: 'async_trait,
             'life0: 'async_trait;
    fn can_sign_current_epoch<'life0, 'async_trait>(
        &'life0 self,
    ) -> Pin<Box<dyn Future<Output = StdResult<bool>> + Send + 'async_trait>>
       where Self: 'async_trait,
             'life0: 'async_trait;
    fn inform_epoch_settings<'life0, 'async_trait>(
        &'life0 self,
        epoch_settings: SignerEpochSettings,
    ) -> Pin<Box<dyn Future<Output = StdResult<()>> + Send + 'async_trait>>
       where Self: 'async_trait,
             'life0: 'async_trait;
    fn compute_message<'life0, 'life1, 'async_trait>(
        &'life0 self,
        signed_entity_type: &'life1 SignedEntityType,
    ) -> Pin<Box<dyn Future<Output = StdResult<ProtocolMessage>> + Send + 'async_trait>>
       where Self: 'async_trait,
             'life0: 'async_trait,
             'life1: 'async_trait;
    fn compute_publish_single_signature<'life0, 'life1, 'life2, 'async_trait>(
        &'life0 self,
        beacon_to_sign: &'life1 BeaconToSign,
        message: &'life2 ProtocolMessage,
    ) -> Pin<Box<dyn Future<Output = StdResult<()>> + Send + 'async_trait>>
       where Self: 'async_trait,
             'life0: 'async_trait,
             'life1: 'async_trait,
             'life2: 'async_trait;
    fn update_era_checker<'life0, 'async_trait>(
        &'life0 self,
        epoch: Epoch,
    ) -> Pin<Box<dyn Future<Output = StdResult<()>> + Send + 'async_trait>>
       where Self: 'async_trait,
             'life0: 'async_trait;
    fn upkeep<'life0, 'async_trait>(
        &'life0 self,
        current_epoch: Epoch,
    ) -> Pin<Box<dyn Future<Output = StdResult<()>> + Send + 'async_trait>>
       where Self: 'async_trait,
             'life0: 'async_trait;
}
Expand description

This trait is mainly intended for mocking.

Required Methods§

source

fn get_epoch_settings<'life0, 'async_trait>( &'life0 self, ) -> Pin<Box<dyn Future<Output = StdResult<Option<SignerEpochSettings>>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Fetch the current epoch settings if any.

source

fn get_beacon_to_sign<'life0, 'async_trait>( &'life0 self, time_point: TimePoint, ) -> Pin<Box<dyn Future<Output = StdResult<Option<BeaconToSign>>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Fetch the beacon to sign if any.

source

fn get_current_time_point<'life0, 'async_trait>( &'life0 self, ) -> Pin<Box<dyn Future<Output = StdResult<TimePoint>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Fetch the current time point from the Cardano node.

source

fn register_signer_to_aggregator<'life0, 'async_trait>( &'life0 self, ) -> Pin<Box<dyn Future<Output = StdResult<()>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Register the signer verification key to the aggregator.

source

fn update_stake_distribution<'life0, 'async_trait>( &'life0 self, epoch: Epoch, ) -> Pin<Box<dyn Future<Output = StdResult<()>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Read the stake distribution and store it.

source

fn can_sign_current_epoch<'life0, 'async_trait>( &'life0 self, ) -> Pin<Box<dyn Future<Output = StdResult<bool>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Check if the signer can sign the current epoch.

source

fn inform_epoch_settings<'life0, 'async_trait>( &'life0 self, epoch_settings: SignerEpochSettings, ) -> Pin<Box<dyn Future<Output = StdResult<()>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Register epoch information

source

fn compute_message<'life0, 'life1, 'async_trait>( &'life0 self, signed_entity_type: &'life1 SignedEntityType, ) -> Pin<Box<dyn Future<Output = StdResult<ProtocolMessage>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,

Create the message to be signed with the single signature.

source

fn compute_publish_single_signature<'life0, 'life1, 'life2, 'async_trait>( &'life0 self, beacon_to_sign: &'life1 BeaconToSign, message: &'life2 ProtocolMessage, ) -> Pin<Box<dyn Future<Output = StdResult<()>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait,

Create the single signature.

source

fn update_era_checker<'life0, 'async_trait>( &'life0 self, epoch: Epoch, ) -> Pin<Box<dyn Future<Output = StdResult<()>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Read the current era and update the EraChecker.

source

fn upkeep<'life0, 'async_trait>( &'life0 self, current_epoch: Epoch, ) -> Pin<Box<dyn Future<Output = StdResult<()>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Perform the upkeep tasks.

Implementors§