mirror of
https://github.com/aljazceru/cdk.git
synced 2026-02-16 10:35:36 +01:00
multiple active keysets and return active keyset with lowest fee (#448)
This commit is contained in:
committed by
GitHub
parent
4e2c013c79
commit
e5c81d3848
@@ -50,7 +50,7 @@ impl Wallet {
|
||||
/// Queries mint for current keysets then gets [`Keys`] for any unknown
|
||||
/// keysets
|
||||
#[instrument(skip(self))]
|
||||
pub async fn get_active_mint_keyset(&self) -> Result<KeySetInfo, Error> {
|
||||
pub async fn get_active_mint_keysets(&self) -> Result<Vec<KeySetInfo>, Error> {
|
||||
let keysets = self.client.get_mint_keysets(self.mint_url.clone()).await?;
|
||||
let keysets = keysets.keysets;
|
||||
|
||||
@@ -86,6 +86,21 @@ impl Wallet {
|
||||
}
|
||||
}
|
||||
|
||||
active_keysets.first().ok_or(Error::NoActiveKeyset).cloned()
|
||||
Ok(active_keysets)
|
||||
}
|
||||
|
||||
/// Get active keyset for mint with the lowest fees
|
||||
///
|
||||
/// Queries mint for current keysets then gets [`Keys`] for any unknown
|
||||
/// keysets
|
||||
#[instrument(skip(self))]
|
||||
pub async fn get_active_mint_keyset(&self) -> Result<KeySetInfo, Error> {
|
||||
let active_keysets = self.get_active_mint_keysets().await?;
|
||||
|
||||
let keyset_with_lowest_fee = active_keysets
|
||||
.into_iter()
|
||||
.min_by_key(|key| key.input_fee_ppk)
|
||||
.ok_or(Error::NoActiveKeyset)?;
|
||||
Ok(keyset_with_lowest_fee)
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user