Struct UserConfig

Source
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 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

§manually_handle_bolt12_invoices: bool

If this is set to true, the user needs to manually pay Bolt12Invoices 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§

Source§

impl Clone for UserConfig

Source§

fn clone(&self) -> UserConfig

Returns a copy of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for UserConfig

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Default for UserConfig

Source§

fn default() -> Self

Returns the “default value” for a type. Read more
Source§

impl Copy for UserConfig

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.