diff --git a/crates/cashu-sdk/src/mint.rs b/crates/cashu-sdk/src/mint.rs index d039e08f..8eecf028 100644 --- a/crates/cashu-sdk/src/mint.rs +++ b/crates/cashu-sdk/src/mint.rs @@ -6,6 +6,7 @@ pub use cashu::error::mint::Error; use cashu::nuts::nut00::BlindedMessage; use cashu::nuts::nut00::BlindedSignature; use cashu::nuts::nut00::Proof; +use cashu::nuts::nut02::mint::KeySet; use cashu::nuts::nut06::SplitRequest; use cashu::nuts::nut06::SplitResponse; use cashu::nuts::nut07::CheckSpendableRequest; @@ -64,6 +65,21 @@ impl Mint { self.inactive_keysets.get(id).map(|k| k.clone().into()) } + /// Add current keyset to inactive keysets + /// Generate new keyset + pub fn rotate_keyset( + &mut self, + secret: impl Into, + derivation_path: impl Into, + max_order: u8, + ) { + // Add current set to inactive keysets + self.inactive_keysets + .insert(self.active_keyset.id.clone(), self.active_keyset.clone()); + + self.active_keyset = KeySet::generate(secret, derivation_path, max_order); + } + pub fn process_mint_request( &mut self, mint_request: nut04::MintRequest,