WalletDatabase

Trait WalletDatabase 

Source
pub trait WalletDatabase: Send + Sync {
Show 28 methods // Required methods fn add_mint<'life0, 'async_trait>( &'life0 self, mint_url: MintUrl, mint_info: Option<MintInfo>, ) -> Pin<Box<dyn Future<Output = Result<(), FfiError>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait; fn remove_mint<'life0, 'async_trait>( &'life0 self, mint_url: MintUrl, ) -> Pin<Box<dyn Future<Output = Result<(), FfiError>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait; fn get_mint<'life0, 'async_trait>( &'life0 self, mint_url: MintUrl, ) -> Pin<Box<dyn Future<Output = Result<Option<MintInfo>, FfiError>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait; fn get_mints<'life0, 'async_trait>( &'life0 self, ) -> Pin<Box<dyn Future<Output = Result<HashMap<MintUrl, Option<MintInfo>>, FfiError>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait; fn update_mint_url<'life0, 'async_trait>( &'life0 self, old_mint_url: MintUrl, new_mint_url: MintUrl, ) -> Pin<Box<dyn Future<Output = Result<(), FfiError>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait; fn add_mint_keysets<'life0, 'async_trait>( &'life0 self, mint_url: MintUrl, keysets: Vec<KeySetInfo>, ) -> Pin<Box<dyn Future<Output = Result<(), FfiError>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait; fn get_mint_keysets<'life0, 'async_trait>( &'life0 self, mint_url: MintUrl, ) -> Pin<Box<dyn Future<Output = Result<Option<Vec<KeySetInfo>>, FfiError>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait; fn get_keyset_by_id<'life0, 'async_trait>( &'life0 self, keyset_id: Id, ) -> Pin<Box<dyn Future<Output = Result<Option<KeySetInfo>, FfiError>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait; fn add_mint_quote<'life0, 'async_trait>( &'life0 self, quote: MintQuote, ) -> Pin<Box<dyn Future<Output = Result<(), FfiError>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait; fn get_mint_quote<'life0, 'async_trait>( &'life0 self, quote_id: String, ) -> Pin<Box<dyn Future<Output = Result<Option<MintQuote>, FfiError>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait; fn get_mint_quotes<'life0, 'async_trait>( &'life0 self, ) -> Pin<Box<dyn Future<Output = Result<Vec<MintQuote>, FfiError>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait; fn remove_mint_quote<'life0, 'async_trait>( &'life0 self, quote_id: String, ) -> Pin<Box<dyn Future<Output = Result<(), FfiError>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait; fn add_melt_quote<'life0, 'async_trait>( &'life0 self, quote: MeltQuote, ) -> Pin<Box<dyn Future<Output = Result<(), FfiError>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait; fn get_melt_quote<'life0, 'async_trait>( &'life0 self, quote_id: String, ) -> Pin<Box<dyn Future<Output = Result<Option<MeltQuote>, FfiError>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait; fn get_melt_quotes<'life0, 'async_trait>( &'life0 self, ) -> Pin<Box<dyn Future<Output = Result<Vec<MeltQuote>, FfiError>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait; fn remove_melt_quote<'life0, 'async_trait>( &'life0 self, quote_id: String, ) -> Pin<Box<dyn Future<Output = Result<(), FfiError>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait; fn add_keys<'life0, 'async_trait>( &'life0 self, keyset: KeySet, ) -> Pin<Box<dyn Future<Output = Result<(), FfiError>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait; fn get_keys<'life0, 'async_trait>( &'life0 self, id: Id, ) -> Pin<Box<dyn Future<Output = Result<Option<Keys>, FfiError>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait; fn remove_keys<'life0, 'async_trait>( &'life0 self, id: Id, ) -> Pin<Box<dyn Future<Output = Result<(), FfiError>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait; fn update_proofs<'life0, 'async_trait>( &'life0 self, added: Vec<ProofInfo>, removed_ys: Vec<PublicKey>, ) -> Pin<Box<dyn Future<Output = Result<(), FfiError>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait; fn get_proofs<'life0, 'async_trait>( &'life0 self, mint_url: Option<MintUrl>, unit: Option<CurrencyUnit>, state: Option<Vec<ProofState>>, spending_conditions: Option<Vec<SpendingConditions>>, ) -> Pin<Box<dyn Future<Output = Result<Vec<ProofInfo>, FfiError>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait; fn get_balance<'life0, 'async_trait>( &'life0 self, mint_url: Option<MintUrl>, unit: Option<CurrencyUnit>, state: Option<Vec<ProofState>>, ) -> Pin<Box<dyn Future<Output = Result<u64, FfiError>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait; fn update_proofs_state<'life0, 'async_trait>( &'life0 self, ys: Vec<PublicKey>, state: ProofState, ) -> Pin<Box<dyn Future<Output = Result<(), FfiError>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait; fn increment_keyset_counter<'life0, 'async_trait>( &'life0 self, keyset_id: Id, count: u32, ) -> Pin<Box<dyn Future<Output = Result<u32, FfiError>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait; fn add_transaction<'life0, 'async_trait>( &'life0 self, transaction: Transaction, ) -> Pin<Box<dyn Future<Output = Result<(), FfiError>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait; fn get_transaction<'life0, 'async_trait>( &'life0 self, transaction_id: TransactionId, ) -> Pin<Box<dyn Future<Output = Result<Option<Transaction>, FfiError>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait; fn list_transactions<'life0, 'async_trait>( &'life0 self, mint_url: Option<MintUrl>, direction: Option<TransactionDirection>, unit: Option<CurrencyUnit>, ) -> Pin<Box<dyn Future<Output = Result<Vec<Transaction>, FfiError>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait; fn remove_transaction<'life0, 'async_trait>( &'life0 self, transaction_id: TransactionId, ) -> Pin<Box<dyn Future<Output = Result<(), FfiError>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait;
}
Expand description

FFI-compatible trait for wallet database operations This trait mirrors the CDK WalletDatabase trait but uses FFI-compatible types

Required Methods§

Source

fn add_mint<'life0, 'async_trait>( &'life0 self, mint_url: MintUrl, mint_info: Option<MintInfo>, ) -> Pin<Box<dyn Future<Output = Result<(), FfiError>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Add Mint to storage

Source

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

Remove Mint from storage

Source

fn get_mint<'life0, 'async_trait>( &'life0 self, mint_url: MintUrl, ) -> Pin<Box<dyn Future<Output = Result<Option<MintInfo>, FfiError>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Get mint from storage

Source

fn get_mints<'life0, 'async_trait>( &'life0 self, ) -> Pin<Box<dyn Future<Output = Result<HashMap<MintUrl, Option<MintInfo>>, FfiError>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Get all mints from storage

Source

fn update_mint_url<'life0, 'async_trait>( &'life0 self, old_mint_url: MintUrl, new_mint_url: MintUrl, ) -> Pin<Box<dyn Future<Output = Result<(), FfiError>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Update mint url

Source

fn add_mint_keysets<'life0, 'async_trait>( &'life0 self, mint_url: MintUrl, keysets: Vec<KeySetInfo>, ) -> Pin<Box<dyn Future<Output = Result<(), FfiError>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Add mint keyset to storage

Source

fn get_mint_keysets<'life0, 'async_trait>( &'life0 self, mint_url: MintUrl, ) -> Pin<Box<dyn Future<Output = Result<Option<Vec<KeySetInfo>>, FfiError>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Get mint keysets for mint url

Source

fn get_keyset_by_id<'life0, 'async_trait>( &'life0 self, keyset_id: Id, ) -> Pin<Box<dyn Future<Output = Result<Option<KeySetInfo>, FfiError>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Get mint keyset by id

Source

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

Add mint quote to storage

Source

fn get_mint_quote<'life0, 'async_trait>( &'life0 self, quote_id: String, ) -> Pin<Box<dyn Future<Output = Result<Option<MintQuote>, FfiError>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Get mint quote from storage

Source

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

Get mint quotes from storage

Source

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

Remove mint quote from storage

Source

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

Add melt quote to storage

Source

fn get_melt_quote<'life0, 'async_trait>( &'life0 self, quote_id: String, ) -> Pin<Box<dyn Future<Output = Result<Option<MeltQuote>, FfiError>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Get melt quote from storage

Source

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

Get melt quotes from storage

Source

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

Remove melt quote from storage

Source

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

Add Keys to storage

Source

fn get_keys<'life0, 'async_trait>( &'life0 self, id: Id, ) -> Pin<Box<dyn Future<Output = Result<Option<Keys>, FfiError>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Get Keys from storage

Source

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

Remove Keys from storage

Source

fn update_proofs<'life0, 'async_trait>( &'life0 self, added: Vec<ProofInfo>, removed_ys: Vec<PublicKey>, ) -> Pin<Box<dyn Future<Output = Result<(), FfiError>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Update the proofs in storage by adding new proofs or removing proofs by their Y value

Source

fn get_proofs<'life0, 'async_trait>( &'life0 self, mint_url: Option<MintUrl>, unit: Option<CurrencyUnit>, state: Option<Vec<ProofState>>, spending_conditions: Option<Vec<SpendingConditions>>, ) -> Pin<Box<dyn Future<Output = Result<Vec<ProofInfo>, FfiError>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Get proofs from storage

Source

fn get_balance<'life0, 'async_trait>( &'life0 self, mint_url: Option<MintUrl>, unit: Option<CurrencyUnit>, state: Option<Vec<ProofState>>, ) -> Pin<Box<dyn Future<Output = Result<u64, FfiError>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Get balance efficiently using SQL aggregation

Source

fn update_proofs_state<'life0, 'async_trait>( &'life0 self, ys: Vec<PublicKey>, state: ProofState, ) -> Pin<Box<dyn Future<Output = Result<(), FfiError>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Update proofs state in storage

Source

fn increment_keyset_counter<'life0, 'async_trait>( &'life0 self, keyset_id: Id, count: u32, ) -> Pin<Box<dyn Future<Output = Result<u32, FfiError>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Increment Keyset counter

Source

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

Add transaction to storage

Source

fn get_transaction<'life0, 'async_trait>( &'life0 self, transaction_id: TransactionId, ) -> Pin<Box<dyn Future<Output = Result<Option<Transaction>, FfiError>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Get transaction from storage

Source

fn list_transactions<'life0, 'async_trait>( &'life0 self, mint_url: Option<MintUrl>, direction: Option<TransactionDirection>, unit: Option<CurrencyUnit>, ) -> Pin<Box<dyn Future<Output = Result<Vec<Transaction>, FfiError>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

List transactions from storage

Source

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

Remove transaction from storage

Trait Implementations§

Source§

impl<T> FfiConverterArc<T> for dyn WalletDatabase

Source§

const TYPE_ID_META: MetadataBuffer

Source§

type FfiType = *const c_void

Source§

fn lower(obj: Arc<Self>) -> Self::FfiType

Source§

fn try_lift(v: Self::FfiType) -> Result<Arc<Self>>

Source§

fn write(obj: Arc<Self>, buf: &mut Vec<u8>)

Source§

fn try_read(buf: &mut &[u8]) -> Result<Arc<Self>>

Source§

impl<T> LiftRef<T> for dyn WalletDatabase

Implementors§