Struct UserConfig
pub struct UserConfig {
pub channel_handshake_config: ChannelHandshakeConfig,
pub channel_handshake_limits: ChannelHandshakeLimits,
pub channel_config: ChannelConfig,
pub accept_forwards_to_priv_channels: bool,
pub accept_inbound_channels: bool,
pub manually_accept_inbound_channels: bool,
pub accept_intercept_htlcs: bool,
pub accept_mpp_keysend: bool,
pub manually_handle_bolt12_invoices: bool,
}
Expand description
Top-level config which holds ChannelHandshakeLimits and ChannelConfig.
Default::default()
provides sane defaults for most configurations
(but currently with zero relay fees!)
Fields§
§channel_handshake_config: ChannelHandshakeConfig
Channel handshake config that we propose to our counterparty.
channel_handshake_limits: ChannelHandshakeLimits
Limits applied to our counterparty’s proposed channel handshake config settings.
channel_config: ChannelConfig
Channel config which affects behavior during channel lifetime.
accept_forwards_to_priv_channels: bool
If this is set to false
, we will reject any HTLCs which were to be forwarded over private
channels. This prevents us from taking on HTLC-forwarding risk when we intend to run as a
node which is not online reliably.
For nodes which are not online reliably, you should set all channels to not be announced
(using ChannelHandshakeConfig::announce_for_forwarding
and
ChannelHandshakeLimits::force_announced_channel_preference
) and set this to false
to
ensure you are not exposed to any forwarding risk.
Note that because you cannot change a channel’s announced state after creation, there is no way to disable forwarding on public channels retroactively. Thus, in order to change a node from a publicly-announced forwarding node to a private non-forwarding node you must close all your channels and open new ones. For privacy, you should also change your node_id (swapping all private and public key material for new ones) at that time.
Default value: false
accept_inbound_channels: bool
If this is set to false
, we do not accept inbound requests to open a new channel.
Default value: true
manually_accept_inbound_channels: bool
If this is set to true
, the user needs to manually accept inbound requests to open a new
channel.
When set to true
, Event::OpenChannelRequest
will be triggered once a request to open a
new inbound channel is received through a msgs::OpenChannel
message. In that case, a
msgs::AcceptChannel
message will not be sent back to the counterparty node unless the
user explicitly chooses to accept the request.
Default value: false
accept_intercept_htlcs: bool
If this is set to true
, LDK will intercept HTLCs that are attempting to be forwarded over
fake short channel ids generated via ChannelManager::get_intercept_scid
. Upon HTLC
intercept, LDK will generate an Event::HTLCIntercepted
which MUST be handled by the user.
Setting this to true
may break backwards compatibility with LDK versions < 0.0.113.
Default value: false
accept_mpp_keysend: bool
If this is set to false
, when receiving a keysend payment we’ll fail it if it has multiple
parts. If this is set to true
, we’ll accept the payment.
Setting this to true
will break backwards compatibility upon downgrading to an LDK
version prior to 0.0.116 while receiving an MPP keysend. If we have already received an MPP
keysend, downgrading will cause us to fail to deserialize ChannelManager
.
Default value: false
manually_handle_bolt12_invoices: bool
If this is set to true
, the user needs to manually pay Bolt12Invoice
s when received.
When set to true
, Event::InvoiceReceived
will be generated for each received
Bolt12Invoice
instead of being automatically paid after verification. Use
ChannelManager::send_payment_for_bolt12_invoice
to pay the invoice or
ChannelManager::abandon_payment
to abandon the associated payment.
Default value: false
Trait Implementations§
§impl Clone for UserConfig
impl Clone for UserConfig
§fn clone(&self) -> UserConfig
fn clone(&self) -> UserConfig
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read more§impl Debug for UserConfig
impl Debug for UserConfig
§impl Default for UserConfig
impl Default for UserConfig
§fn default() -> UserConfig
fn default() -> UserConfig
impl Copy for UserConfig
Auto Trait Implementations§
impl Freeze for UserConfig
impl RefUnwindSafe for UserConfig
impl Send for UserConfig
impl Sync for UserConfig
impl Unpin for UserConfig
impl UnwindSafe for UserConfig
Blanket Implementations§
§impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
§impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
Source§impl<T> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
Source§fn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
T
in a tonic::Request
Source§impl<T> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
Source§fn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
T
in a tonic::Request