cdk_mintd/env_vars/
fake_wallet.rs

1//! FakeWallet environment variables
2
3use std::env;
4
5use cdk::nuts::CurrencyUnit;
6
7use crate::config::FakeWallet;
8
9// Fake Wallet environment variables
10pub const ENV_FAKE_WALLET_SUPPORTED_UNITS: &str = "CDK_MINTD_FAKE_WALLET_SUPPORTED_UNITS";
11pub const ENV_FAKE_WALLET_FEE_PERCENT: &str = "CDK_MINTD_FAKE_WALLET_FEE_PERCENT";
12pub const ENV_FAKE_WALLET_RESERVE_FEE_MIN: &str = "CDK_MINTD_FAKE_WALLET_RESERVE_FEE_MIN";
13pub const ENV_FAKE_WALLET_MIN_DELAY: &str = "CDK_MINTD_FAKE_WALLET_MIN_DELAY";
14pub const ENV_FAKE_WALLET_MAX_DELAY: &str = "CDK_MINTD_FAKE_WALLET_MAX_DELAY";
15
16impl FakeWallet {
17    pub fn from_env(mut self) -> Self {
18        // Supported Units - expects comma-separated list
19        if let Ok(units_str) = env::var(ENV_FAKE_WALLET_SUPPORTED_UNITS) {
20            if let Ok(units) = units_str
21                .split(',')
22                .map(|s| s.trim().parse())
23                .collect::<Result<Vec<CurrencyUnit>, _>>()
24            {
25                self.supported_units = units;
26            }
27        }
28
29        if let Ok(fee_str) = env::var(ENV_FAKE_WALLET_FEE_PERCENT) {
30            if let Ok(fee) = fee_str.parse() {
31                self.fee_percent = fee;
32            }
33        }
34
35        if let Ok(reserve_fee_str) = env::var(ENV_FAKE_WALLET_RESERVE_FEE_MIN) {
36            if let Ok(reserve_fee) = reserve_fee_str.parse::<u64>() {
37                self.reserve_fee_min = reserve_fee.into();
38            }
39        }
40
41        if let Ok(min_delay_str) = env::var(ENV_FAKE_WALLET_MIN_DELAY) {
42            if let Ok(min_delay) = min_delay_str.parse() {
43                self.min_delay_time = min_delay;
44            }
45        }
46
47        if let Ok(max_delay_str) = env::var(ENV_FAKE_WALLET_MAX_DELAY) {
48            if let Ok(max_delay) = max_delay_str.parse() {
49                self.max_delay_time = max_delay;
50            }
51        }
52
53        self
54    }
55}