pub trait Transaction {
    // Required methods
    fn prepare_transaction<'life0, 'async_trait>(
        &'life0 self,
        tx: TransactionRepoModel,
    ) -> Pin<Box<dyn Future<Output = Result<TransactionRepoModel, TransactionError>> + Send + 'async_trait>>
       where Self: 'async_trait,
             'life0: 'async_trait;
    fn submit_transaction<'life0, 'async_trait>(
        &'life0 self,
        tx: TransactionRepoModel,
    ) -> Pin<Box<dyn Future<Output = Result<TransactionRepoModel, TransactionError>> + Send + 'async_trait>>
       where Self: 'async_trait,
             'life0: 'async_trait;
    fn resubmit_transaction<'life0, 'async_trait>(
        &'life0 self,
        tx: TransactionRepoModel,
    ) -> Pin<Box<dyn Future<Output = Result<TransactionRepoModel, TransactionError>> + Send + 'async_trait>>
       where Self: 'async_trait,
             'life0: 'async_trait;
    fn handle_transaction_status<'life0, 'async_trait>(
        &'life0 self,
        tx: TransactionRepoModel,
    ) -> Pin<Box<dyn Future<Output = Result<TransactionRepoModel, TransactionError>> + Send + 'async_trait>>
       where Self: 'async_trait,
             'life0: 'async_trait;
    fn cancel_transaction<'life0, 'async_trait>(
        &'life0 self,
        tx: TransactionRepoModel,
    ) -> Pin<Box<dyn Future<Output = Result<TransactionRepoModel, TransactionError>> + Send + 'async_trait>>
       where Self: 'async_trait,
             'life0: 'async_trait;
    fn replace_transaction<'life0, 'async_trait>(
        &'life0 self,
        tx: TransactionRepoModel,
    ) -> Pin<Box<dyn Future<Output = Result<TransactionRepoModel, TransactionError>> + Send + 'async_trait>>
       where Self: 'async_trait,
             'life0: 'async_trait;
    fn sign_transaction<'life0, 'async_trait>(
        &'life0 self,
        tx: TransactionRepoModel,
    ) -> Pin<Box<dyn Future<Output = Result<TransactionRepoModel, TransactionError>> + Send + 'async_trait>>
       where Self: 'async_trait,
             'life0: 'async_trait;
    fn validate_transaction<'life0, 'async_trait>(
        &'life0 self,
        tx: TransactionRepoModel,
    ) -> Pin<Box<dyn Future<Output = Result<bool, TransactionError>> + Send + 'async_trait>>
       where Self: 'async_trait,
             'life0: 'async_trait;
}Expand description
A trait that defines the operations for handling transactions across different networks.