avalanche-atomic-swap-daemon 0.2.0

Production-ready HTLC atomic swap daemon for Avalanche C-Chain and Subnet-EVM chains with bidirectional support and Prometheus metrics
use alloy::primitives::Address;
use clap::Parser;
use url::Url;

#[derive(Parser, Debug)]
#[command(author, version, about = "Avalanche C-Chain ↔ Subnet-EVM Bidirectional HTLC Atomic Swap Daemon")]
pub struct Config {
    #[arg(long, env = "CCHAIN_RPC", default_value = "https://api.avax.network/ext/bc/C/rpc")]
    pub cchain_rpc: Url,

    #[arg(long, env = "SUBNET_RPC")]
    pub subnet_rpc: Url,

    #[arg(long, env = "DAEMON_PRIVATE_KEY")]
    pub private_key: String,

    #[arg(long, env = "HTLC_CCHAIN")]
    pub htlc_cchain: Address,

    #[arg(long, env = "HTLC_SUBNET")]
    pub htlc_subnet: Address,

    #[arg(long, env = "MIN_AMOUNT_AVAX", default_value = "100000000000000000")]
    pub min_amount: u128,

    #[arg(long, env = "POLL_INTERVAL_MS", default_value = "4000")]
    pub poll_interval_ms: u64,

    #[arg(long, env = "METRICS_PORT", default_value = "8080")]
    pub metrics_port: u16,
}