fake_wallet.rs 1.8 KB

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