use ln::channelmanager::{BREAKDOWN_TIMEOUT, MAX_LOCAL_BREAKDOWN_TIMEOUT};
#[derive(Copy, Clone, Debug)]
pub struct ChannelHandshakeConfig {
pub minimum_depth: u32,
pub our_to_self_delay: u16,
pub our_htlc_minimum_msat: u64,
}
impl Default for ChannelHandshakeConfig {
fn default() -> ChannelHandshakeConfig {
ChannelHandshakeConfig {
minimum_depth: 6,
our_to_self_delay: BREAKDOWN_TIMEOUT,
our_htlc_minimum_msat: 1,
}
}
}
#[derive(Copy, Clone, Debug)]
pub struct ChannelHandshakeLimits {
pub min_funding_satoshis: u64,
pub max_htlc_minimum_msat: u64,
pub min_max_htlc_value_in_flight_msat: u64,
pub max_channel_reserve_satoshis: u64,
pub min_max_accepted_htlcs: u16,
pub min_dust_limit_satoshis: u64,
pub max_dust_limit_satoshis: u64,
pub max_minimum_depth: u32,
pub force_announced_channel_preference: bool,
pub their_to_self_delay: u16
}
impl Default for ChannelHandshakeLimits {
fn default() -> Self {
ChannelHandshakeLimits {
min_funding_satoshis: 0,
max_htlc_minimum_msat: <u64>::max_value(),
min_max_htlc_value_in_flight_msat: 0,
max_channel_reserve_satoshis: <u64>::max_value(),
min_max_accepted_htlcs: 0,
min_dust_limit_satoshis: 546,
max_dust_limit_satoshis: <u64>::max_value(),
max_minimum_depth: 144,
force_announced_channel_preference: true,
their_to_self_delay: MAX_LOCAL_BREAKDOWN_TIMEOUT,
}
}
}
#[derive(Copy, Clone, Debug)]
pub struct ChannelConfig {
pub fee_proportional_millionths: u32,
pub announced_channel: bool,
pub commit_upfront_shutdown_pubkey: bool
}
impl Default for ChannelConfig {
fn default() -> Self {
ChannelConfig {
fee_proportional_millionths: 0,
announced_channel: false,
commit_upfront_shutdown_pubkey: true,
}
}
}
impl_writeable!(ChannelConfig, 8+1+1, {
fee_proportional_millionths,
announced_channel,
commit_upfront_shutdown_pubkey
});
#[derive(Copy, Clone, Debug)]
pub struct UserConfig {
pub own_channel_config: ChannelHandshakeConfig,
pub peer_channel_config_limits: ChannelHandshakeLimits,
pub channel_options: ChannelConfig,
}
impl Default for UserConfig {
fn default() -> Self {
UserConfig {
own_channel_config: ChannelHandshakeConfig::default(),
peer_channel_config_limits: ChannelHandshakeLimits::default(),
channel_options: ChannelConfig::default(),
}
}
}