hashtree_cli/webrtc/
cashu.rs1pub use hashtree_network::{cashu_mint_metadata_path, CashuMintMetadataStore, CashuRoutingConfig};
2
3impl From<&crate::config::CashuConfig> for CashuRoutingConfig {
4 fn from(config: &crate::config::CashuConfig) -> Self {
5 Self {
6 accepted_mints: config.accepted_mints.clone(),
7 default_mint: config.default_mint.clone(),
8 quote_payment_offer_sat: config.quote_payment_offer_sat,
9 quote_ttl_ms: config.quote_ttl_ms,
10 settlement_timeout_ms: config.settlement_timeout_ms,
11 mint_failure_block_threshold: config.mint_failure_block_threshold,
12 peer_suggested_mint_base_cap_sat: config.peer_suggested_mint_base_cap_sat,
13 peer_suggested_mint_success_step_sat: config.peer_suggested_mint_success_step_sat,
14 peer_suggested_mint_receipt_step_sat: config.peer_suggested_mint_receipt_step_sat,
15 peer_suggested_mint_max_cap_sat: config.peer_suggested_mint_max_cap_sat,
16 payment_default_block_threshold: config.payment_default_block_threshold,
17 chunk_target_bytes: config.chunk_target_bytes,
18 }
19 }
20}
21
22#[cfg(test)]
23mod tests {
24 use super::*;
25
26 #[test]
27 fn cashu_routing_config_maps_cli_config() {
28 let mut config = crate::config::CashuConfig::default();
29 config.accepted_mints = vec!["https://mint.example".to_string()];
30 config.default_mint = Some("https://mint.example".to_string());
31 config.quote_payment_offer_sat = 7;
32 config.quote_ttl_ms = 900;
33 config.settlement_timeout_ms = 3_000;
34 config.mint_failure_block_threshold = 4;
35 config.peer_suggested_mint_base_cap_sat = 5;
36 config.peer_suggested_mint_success_step_sat = 6;
37 config.peer_suggested_mint_receipt_step_sat = 7;
38 config.peer_suggested_mint_max_cap_sat = 8;
39 config.payment_default_block_threshold = 9;
40 config.chunk_target_bytes = 10_000;
41
42 let routing = CashuRoutingConfig::from(&config);
43 assert_eq!(routing.accepted_mints, config.accepted_mints);
44 assert_eq!(routing.default_mint, config.default_mint);
45 assert_eq!(routing.quote_payment_offer_sat, 7);
46 assert_eq!(routing.quote_ttl_ms, 900);
47 assert_eq!(routing.settlement_timeout_ms, 3_000);
48 assert_eq!(routing.mint_failure_block_threshold, 4);
49 assert_eq!(routing.peer_suggested_mint_base_cap_sat, 5);
50 assert_eq!(routing.peer_suggested_mint_success_step_sat, 6);
51 assert_eq!(routing.peer_suggested_mint_receipt_step_sat, 7);
52 assert_eq!(routing.peer_suggested_mint_max_cap_sat, 8);
53 assert_eq!(routing.payment_default_block_threshold, 9);
54 assert_eq!(routing.chunk_target_bytes, 10_000);
55 }
56}