Struct AnchorChannelReserveContext

Source
pub struct AnchorChannelReserveContext {
    pub upper_bound_fee_rate: FeeRate,
    pub expected_accepted_htlcs: u16,
    pub taproot_wallet: bool,
}
Expand description

Parameters defining the context around the anchor channel reserve requirement calculation.

Fields§

§upper_bound_fee_rate: FeeRate

An upper bound fee rate estimate used to calculate the anchor channel reserve that is sufficient to provide fees for all required transactions.

§expected_accepted_htlcs: u16

The expected number of accepted in-flight HTLCs per channel.

Note that malicious counterparties can saturate the number of accepted in-flight HTLCs up to the maximum prior to forcing a unilateral closure. This estimate can include that case as a weighted average, assuming some percentage of channels are controlled by malicious peers and have the maximum number of accepted in-flight HTLCs.

See ChannelHandshakeConfig::our_max_accepted_htlcs to configure the maximum number of accepted in-flight HTLCs.

§taproot_wallet: bool

Whether the wallet handling anchor channel reserves creates Taproot P2TR outputs for any new outputs, or Segwit P2WPKH outputs otherwise.

Trait Implementations§

Source§

impl Clone for AnchorChannelReserveContext

Source§

fn clone(&self) -> AnchorChannelReserveContext

Returns a duplicate 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 AnchorChannelReserveContext

Source§

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

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

impl Default for AnchorChannelReserveContext

A default for the AnchorChannelReserveContext parameters is provided as follows:

  • The upper bound fee rate is set to the 99th percentile of the median block fee rate since 2019: ~50 sats/vbyte.
  • The number of accepted in-flight HTLCs per channel is set to 10, providing additional margin above the number seen for a large routing node over a month (average <1, maximum 10 accepted in-flight HTLCS aggregated across all channels).
  • The wallet is assumed to be a Segwit wallet.
Source§

fn default() -> Self

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

impl PartialEq for AnchorChannelReserveContext

Source§

fn eq(&self, other: &AnchorChannelReserveContext) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl Eq for AnchorChannelReserveContext

Source§

impl StructuralPartialEq for AnchorChannelReserveContext

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<Q, K> Equivalent<K> for Q
where Q: Eq + ?Sized, K: Borrow<Q> + ?Sized,

Source§

fn equivalent(&self, key: &K) -> bool

Checks if this value is equivalent to the given key. 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.
Source§

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

Source§

fn vzip(self) -> V