breez_sdk_liquid::lightning_with_bolt12::util::config

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

§

impl Clone for UserConfig

§

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
§

impl Debug for UserConfig

§

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

Formats the value using the given formatter. Read more
§

impl Default for UserConfig

§

fn default() -> UserConfig

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

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
§

impl<T> Any for T
where T: Any,

§

fn into_any(self: Box<T>) -> Box<dyn Any>

§

fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>

§

fn type_name(&self) -> &'static str

§

impl<T> AnySync for T
where T: Any + Send + Sync,

§

fn into_any_arc(self: Arc<T>) -> Arc<dyn Any + Send + Sync>

§

impl<'a, T, E> AsTaggedExplicit<'a, E> for T
where T: 'a,

§

fn explicit(self, class: Class, tag: u32) -> TaggedParser<'a, Explicit, Self, E>

§

impl<'a, T, E> AsTaggedImplicit<'a, E> for T
where T: 'a,

§

fn implicit( self, class: Class, constructed: bool, tag: u32, ) -> TaggedParser<'a, Implicit, Self, E>

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, dst: *mut u8)

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

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

§

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

§

fn from_ref(input: &T) -> T

Converts to this type from a reference to the input type.
§

impl<T> Instrument for T

§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided [Span], returning an Instrumented wrapper. Read more
§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
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> IntoEither for T

Source§

fn into_either(self, into_left: bool) -> Either<Self, Self>

Converts self into a Left variant of Either<Self, Self> if into_left is true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where F: FnOnce(&Self) -> bool,

Converts self into a Left variant of Either<Self, Self> if into_left(&self) returns true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
Source§

impl<T> IntoRequest<T> for T

Source§

fn into_request(self) -> Request<T>

Wrap the input message T in a tonic::Request
Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
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.
§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

§

fn vzip(self) -> V

§

impl<T> WithSubscriber for T

§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a [WithDispatch] wrapper. Read more
§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a [WithDispatch] wrapper. Read more
§

impl<T> DartSafe for T

§

impl<T> ErasedDestructor for T
where T: 'static,

§

impl<T> MaybeSendSync for T

§

impl<T> TaskRetFutTrait for T
where T: Send,