From 2239c22da582d666cbdf9ffbce7f5cdfabaab686 Mon Sep 17 00:00:00 2001 From: Mubarak Muhammad Aminu Date: Sat, 9 Nov 2024 21:32:01 +0100 Subject: [PATCH] Make delay time in fake wallet configurable (#445) --- crates/cdk-mintd/Cargo.toml | 1 + crates/cdk-mintd/src/config.rs | 4 ++++ crates/cdk-mintd/src/setup.rs | 7 ++++++- 3 files changed, 11 insertions(+), 1 deletion(-) diff --git a/crates/cdk-mintd/Cargo.toml b/crates/cdk-mintd/Cargo.toml index 34640215..b12372ef 100644 --- a/crates/cdk-mintd/Cargo.toml +++ b/crates/cdk-mintd/Cargo.toml @@ -36,6 +36,7 @@ home = "0.5.5" url = "2.3" utoipa = { version = "4", optional = true } utoipa-swagger-ui = { version = "4", features = ["axum"], optional = true } +rand = "0.8.5" [features] swagger = ["cdk-axum/swagger", "dep:utoipa", "dep:utoipa-swagger-ui"] \ No newline at end of file diff --git a/crates/cdk-mintd/src/config.rs b/crates/cdk-mintd/src/config.rs index a4a1ac07..dc5daca5 100644 --- a/crates/cdk-mintd/src/config.rs +++ b/crates/cdk-mintd/src/config.rs @@ -104,6 +104,8 @@ pub struct FakeWallet { pub supported_units: Vec, pub fee_percent: f32, pub reserve_fee_min: Amount, + pub min_delay_time: u64, + pub max_delay_time: u64, } impl Default for FakeWallet { @@ -112,6 +114,8 @@ impl Default for FakeWallet { supported_units: vec![CurrencyUnit::Sat], fee_percent: 0.02, reserve_fee_min: 2.into(), + min_delay_time: 1, + max_delay_time: 3, } } } diff --git a/crates/cdk-mintd/src/setup.rs b/crates/cdk-mintd/src/setup.rs index 53b0c5c6..63674288 100644 --- a/crates/cdk-mintd/src/setup.rs +++ b/crates/cdk-mintd/src/setup.rs @@ -5,6 +5,7 @@ use std::{ use anyhow::{anyhow, bail}; use axum::{async_trait, Router}; +use rand::Rng; use cdk::{cdk_lightning::MintLightning, mint::FeeReserve, mint_url::MintUrl, nuts::CurrencyUnit}; use tokio::sync::Mutex; @@ -217,11 +218,15 @@ impl LnBackendSetup for config::FakeWallet { percent_fee_reserve: self.fee_percent, }; + // calculate random delay time + let mut rng = rand::thread_rng(); + let delay_time = rng.gen_range(self.min_delay_time..=self.max_delay_time); + let fake_wallet = cdk_fake_wallet::FakeWallet::new( fee_reserve, HashMap::default(), HashSet::default(), - 3, + delay_time, ); Ok(fake_wallet)