Skip to main content

PayProvider

Trait PayProvider 

Source
pub trait PayProvider: Send + Sync {
Show 22 methods // Required methods fn network(&self) -> Network; fn create_wallet<'life0, 'life1, 'async_trait>( &'life0 self, request: &'life1 WalletCreateRequest, ) -> Pin<Box<dyn Future<Output = Result<WalletInfo, PayError>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait; fn close_wallet<'life0, 'life1, 'async_trait>( &'life0 self, wallet: &'life1 str, ) -> Pin<Box<dyn Future<Output = Result<(), PayError>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait; fn list_wallets<'life0, 'async_trait>( &'life0 self, ) -> Pin<Box<dyn Future<Output = Result<Vec<WalletSummary>, PayError>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait; fn balance<'life0, 'life1, 'async_trait>( &'life0 self, wallet: &'life1 str, ) -> Pin<Box<dyn Future<Output = Result<BalanceInfo, PayError>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait; fn balance_all<'life0, 'async_trait>( &'life0 self, ) -> Pin<Box<dyn Future<Output = Result<Vec<WalletBalanceItem>, PayError>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait; fn receive_info<'life0, 'life1, 'async_trait>( &'life0 self, wallet: &'life1 str, amount: Option<Amount>, ) -> Pin<Box<dyn Future<Output = Result<ReceiveInfo, PayError>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait; fn receive_claim<'life0, 'life1, 'life2, 'async_trait>( &'life0 self, wallet: &'life1 str, quote_id: &'life2 str, ) -> Pin<Box<dyn Future<Output = Result<u64, PayError>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait; fn cashu_send<'life0, 'life1, 'life2, 'life3, 'async_trait>( &'life0 self, wallet: &'life1 str, amount: Amount, onchain_memo: Option<&'life2 str>, mints: Option<&'life3 [String]>, ) -> Pin<Box<dyn Future<Output = Result<CashuSendResult, PayError>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait, 'life3: 'async_trait; fn cashu_receive<'life0, 'life1, 'life2, 'async_trait>( &'life0 self, wallet: &'life1 str, token: &'life2 str, ) -> Pin<Box<dyn Future<Output = Result<CashuReceiveResult, PayError>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait; fn send<'life0, 'life1, 'life2, 'life3, 'life4, 'async_trait>( &'life0 self, wallet: &'life1 str, to: &'life2 str, onchain_memo: Option<&'life3 str>, mints: Option<&'life4 [String]>, ) -> Pin<Box<dyn Future<Output = Result<SendResult, PayError>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait, 'life3: 'async_trait, 'life4: 'async_trait; fn history_list<'life0, 'life1, 'async_trait>( &'life0 self, wallet: &'life1 str, limit: usize, offset: usize, ) -> Pin<Box<dyn Future<Output = Result<Vec<HistoryRecord>, PayError>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait; fn history_status<'life0, 'life1, 'async_trait>( &'life0 self, transaction_id: &'life1 str, ) -> Pin<Box<dyn Future<Output = Result<HistoryStatusInfo, PayError>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait; // Provided methods fn writes_locally(&self) -> bool { ... } fn ping<'life0, 'async_trait>( &'life0 self, ) -> Pin<Box<dyn Future<Output = Result<(), PayError>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait { ... } fn create_ln_wallet<'life0, 'async_trait>( &'life0 self, _request: LnWalletCreateRequest, ) -> Pin<Box<dyn Future<Output = Result<WalletInfo, PayError>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait { ... } fn check_balance<'life0, 'life1, 'async_trait>( &'life0 self, _wallet: &'life1 str, ) -> Pin<Box<dyn Future<Output = Result<BalanceInfo, PayError>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait { ... } fn restore<'life0, 'life1, 'async_trait>( &'life0 self, _wallet: &'life1 str, ) -> Pin<Box<dyn Future<Output = Result<RestoreResult, PayError>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait { ... } fn cashu_send_quote<'life0, 'life1, 'life2, 'async_trait>( &'life0 self, _wallet: &'life1 str, _amount: &'life2 Amount, ) -> Pin<Box<dyn Future<Output = Result<CashuSendQuoteInfo, PayError>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait { ... } fn send_quote<'life0, 'life1, 'life2, 'life3, 'async_trait>( &'life0 self, _wallet: &'life1 str, _to: &'life2 str, _mints: Option<&'life3 [String]>, ) -> Pin<Box<dyn Future<Output = Result<SendQuoteInfo, PayError>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait, 'life3: 'async_trait { ... } fn history_onchain_memo<'life0, 'life1, 'life2, 'async_trait>( &'life0 self, _wallet: &'life1 str, _transaction_id: &'life2 str, ) -> Pin<Box<dyn Future<Output = Result<Option<String>, PayError>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait { ... } fn history_sync<'life0, 'life1, 'async_trait>( &'life0 self, wallet: &'life1 str, limit: usize, ) -> Pin<Box<dyn Future<Output = Result<HistorySyncStats, PayError>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait { ... }
}

Required Methods§

Source

fn network(&self) -> Network

Source

fn create_wallet<'life0, 'life1, 'async_trait>( &'life0 self, request: &'life1 WalletCreateRequest, ) -> Pin<Box<dyn Future<Output = Result<WalletInfo, PayError>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,

Source

fn close_wallet<'life0, 'life1, 'async_trait>( &'life0 self, wallet: &'life1 str, ) -> Pin<Box<dyn Future<Output = Result<(), PayError>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,

Source

fn list_wallets<'life0, 'async_trait>( &'life0 self, ) -> Pin<Box<dyn Future<Output = Result<Vec<WalletSummary>, PayError>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Source

fn balance<'life0, 'life1, 'async_trait>( &'life0 self, wallet: &'life1 str, ) -> Pin<Box<dyn Future<Output = Result<BalanceInfo, PayError>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,

Source

fn balance_all<'life0, 'async_trait>( &'life0 self, ) -> Pin<Box<dyn Future<Output = Result<Vec<WalletBalanceItem>, PayError>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Source

fn receive_info<'life0, 'life1, 'async_trait>( &'life0 self, wallet: &'life1 str, amount: Option<Amount>, ) -> Pin<Box<dyn Future<Output = Result<ReceiveInfo, PayError>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,

Source

fn receive_claim<'life0, 'life1, 'life2, 'async_trait>( &'life0 self, wallet: &'life1 str, quote_id: &'life2 str, ) -> Pin<Box<dyn Future<Output = Result<u64, PayError>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait,

Source

fn cashu_send<'life0, 'life1, 'life2, 'life3, 'async_trait>( &'life0 self, wallet: &'life1 str, amount: Amount, onchain_memo: Option<&'life2 str>, mints: Option<&'life3 [String]>, ) -> Pin<Box<dyn Future<Output = Result<CashuSendResult, PayError>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait, 'life3: 'async_trait,

Source

fn cashu_receive<'life0, 'life1, 'life2, 'async_trait>( &'life0 self, wallet: &'life1 str, token: &'life2 str, ) -> Pin<Box<dyn Future<Output = Result<CashuReceiveResult, PayError>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait,

Source

fn send<'life0, 'life1, 'life2, 'life3, 'life4, 'async_trait>( &'life0 self, wallet: &'life1 str, to: &'life2 str, onchain_memo: Option<&'life3 str>, mints: Option<&'life4 [String]>, ) -> Pin<Box<dyn Future<Output = Result<SendResult, PayError>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait, 'life3: 'async_trait, 'life4: 'async_trait,

Source

fn history_list<'life0, 'life1, 'async_trait>( &'life0 self, wallet: &'life1 str, limit: usize, offset: usize, ) -> Pin<Box<dyn Future<Output = Result<Vec<HistoryRecord>, PayError>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,

Source

fn history_status<'life0, 'life1, 'async_trait>( &'life0 self, transaction_id: &'life1 str, ) -> Pin<Box<dyn Future<Output = Result<HistoryStatusInfo, PayError>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,

Provided Methods§

Source

fn writes_locally(&self) -> bool

Whether this provider writes to local disk (needs data-dir lock).

Source

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

Connectivity check. Remote providers ping the RPC endpoint; local providers no-op.

Source

fn create_ln_wallet<'life0, 'async_trait>( &'life0 self, _request: LnWalletCreateRequest, ) -> Pin<Box<dyn Future<Output = Result<WalletInfo, PayError>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Source

fn check_balance<'life0, 'life1, 'async_trait>( &'life0 self, _wallet: &'life1 str, ) -> Pin<Box<dyn Future<Output = Result<BalanceInfo, PayError>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,

Source

fn restore<'life0, 'life1, 'async_trait>( &'life0 self, _wallet: &'life1 str, ) -> Pin<Box<dyn Future<Output = Result<RestoreResult, PayError>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,

Source

fn cashu_send_quote<'life0, 'life1, 'life2, 'async_trait>( &'life0 self, _wallet: &'life1 str, _amount: &'life2 Amount, ) -> Pin<Box<dyn Future<Output = Result<CashuSendQuoteInfo, PayError>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait,

Source

fn send_quote<'life0, 'life1, 'life2, 'life3, 'async_trait>( &'life0 self, _wallet: &'life1 str, _to: &'life2 str, _mints: Option<&'life3 [String]>, ) -> Pin<Box<dyn Future<Output = Result<SendQuoteInfo, PayError>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait, 'life3: 'async_trait,

Source

fn history_onchain_memo<'life0, 'life1, 'life2, 'async_trait>( &'life0 self, _wallet: &'life1 str, _transaction_id: &'life2 str, ) -> Pin<Box<dyn Future<Output = Result<Option<String>, PayError>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait,

Optional provider-specific on-chain memo decoding for a transaction. Returns Ok(None) when memo cannot be decoded or is absent.

Source

fn history_sync<'life0, 'life1, 'async_trait>( &'life0 self, wallet: &'life1 str, limit: usize, ) -> Pin<Box<dyn Future<Output = Result<HistorySyncStats, PayError>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,

Implementors§