FeePaymentMethod

Trait FeePaymentMethod 

Source
pub trait FeePaymentMethod: Send + Sync {
    // Required methods
    fn get_asset<'life0, 'async_trait>(
        &'life0 self,
    ) -> Pin<Box<dyn Future<Output = Result<AztecAddress, Error>> + Send + 'async_trait>>
       where 'life0: 'async_trait,
             Self: 'async_trait;
    fn get_fee_payer<'life0, 'async_trait>(
        &'life0 self,
    ) -> Pin<Box<dyn Future<Output = Result<AztecAddress, Error>> + Send + 'async_trait>>
       where 'life0: 'async_trait,
             Self: 'async_trait;
    fn get_fee_execution_payload<'life0, 'async_trait>(
        &'life0 self,
    ) -> Pin<Box<dyn Future<Output = Result<ExecutionPayload, Error>> + Send + 'async_trait>>
       where 'life0: 'async_trait,
             Self: 'async_trait;
}
Expand description

Trait that all fee payment strategies implement.

Each implementation produces an ExecutionPayload containing the function calls needed to set up fee payment. This payload is merged with the user’s transaction payload before submission.

Required Methods§

Source

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

Returns the address of the asset used for fee payment. For fee juice methods, this is the FeeJuice protocol contract address.

Source

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

Returns the address of the entity paying the fee.

Source

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

Builds an ExecutionPayload containing the function calls and auth witnesses needed to pay the transaction fee.

Implementors§