cdk_mintd/env_vars/
cln.rs

1//! CLN environment variables
2
3use std::env;
4use std::path::PathBuf;
5
6use crate::config::Cln;
7
8// CLN environment variables
9pub const ENV_CLN_RPC_PATH: &str = "CDK_MINTD_CLN_RPC_PATH";
10pub const ENV_CLN_BOLT12: &str = "CDK_MINTD_CLN_BOLT12";
11pub const ENV_CLN_FEE_PERCENT: &str = "CDK_MINTD_CLN_FEE_PERCENT";
12pub const ENV_CLN_RESERVE_FEE_MIN: &str = "CDK_MINTD_CLN_RESERVE_FEE_MIN";
13
14impl Cln {
15    pub fn from_env(mut self) -> Self {
16        // RPC Path
17        if let Ok(path) = env::var(ENV_CLN_RPC_PATH) {
18            self.rpc_path = PathBuf::from(path);
19        }
20
21        // BOLT12 flag
22        if let Ok(bolt12_str) = env::var(ENV_CLN_BOLT12) {
23            if let Ok(bolt12) = bolt12_str.parse() {
24                self.bolt12 = bolt12;
25            }
26        }
27
28        // Fee percent
29        if let Ok(fee_str) = env::var(ENV_CLN_FEE_PERCENT) {
30            if let Ok(fee) = fee_str.parse() {
31                self.fee_percent = fee;
32            }
33        }
34
35        // Reserve fee minimum
36        if let Ok(reserve_fee_str) = env::var(ENV_CLN_RESERVE_FEE_MIN) {
37            if let Ok(reserve_fee) = reserve_fee_str.parse::<u64>() {
38                self.reserve_fee_min = reserve_fee.into();
39            }
40        }
41
42        self
43    }
44}