Struct Policy

Source
pub struct Policy {
    pub to_self_delay_max: u16,
    pub feerate_per_kw_range: Range<u32>,
    pub minimum_depth: u32,
    pub maximum_depth: Option<u32>,
    pub funding_satoshis_min: Option<u64>,
    pub htlc_minimum_msat_max: Option<u64>,
    pub max_htlc_value_in_flight_msat_min: Option<u64>,
    pub channel_reserve_satoshis_max_abs: Option<u64>,
    pub channel_reserve_satoshis_max_percent: Option<u8>,
    pub max_accepted_htlcs_min: Option<u16>,
    pub dust_limit_satoshis_max: Option<u64>,
}
Expand description

Policy to validate channel parameters proposed by a remote peer.

By default, crate::Channel::new uses reasonable default policy created by Policy::default() method. Channel creator may provide a custom policy by using crate::Channel::with method.

Fields§

§to_self_delay_max: u16

Reasonable limit to check value of to_self_delay required by a remote node, in blocks.

§feerate_per_kw_range: Range<u32>

Range of acceptable channel fees.

§minimum_depth: u32

Minimum funding transaction mining depth required from the remote node for a channel proposed by it.

§maximum_depth: Option<u32>

Maximum funding transaction mining depth which may be required by a remote node for a channel opened by a local node.

§funding_satoshis_min: Option<u64>

Minimum funding for a channel by this node.

§htlc_minimum_msat_max: Option<u64>

The maximum acceptable limit on the value stored in a single HTLC.

§max_htlc_value_in_flight_msat_min: Option<u64>

Minimum boundary for the upper limit of in-flight HTLC funds.

§channel_reserve_satoshis_max_abs: Option<u64>

Maximum reserve for a channel from a local node required by the remote node in absolute value.

§channel_reserve_satoshis_max_percent: Option<u8>

Maximum reserve for a channel from a local node required by the remote node in persents from the channel funding.

§max_accepted_htlcs_min: Option<u16>

Minimum boundary to the limit of HTLCs offered to a remote peer.

§dust_limit_satoshis_max: Option<u64>

Maximum value for the dust limit required by a remote node.

Implementations§

Source§

impl Policy

Source

pub fn with_clightning_defaults() -> Policy

Sets policy to match default policy used in c-lightning

Source

pub fn with_lnd_defaults() -> Policy

Sets policy to match default policy used in LND

Source

pub fn with_eclair_defaults() -> Policy

Sets policy to match default policy used in Eclair

Source

pub fn validate_inbound( &self, open_channel: &OpenChannel, ) -> Result<PeerParams, PolicyError>

Validates parameters proposed by remote peer in open_channel message against the policy

§Arguments
  • self: local policy;
  • open_channel: BOLT-2 message received by the peer.
§Returns

PeerParams to use for constructing channel transactions which should be signed by the local node.

Source

pub fn confirm_outbound( &self, our_params: PeerParams, accept_channel: &AcceptChannel, ) -> Result<PeerParams, PolicyError>

Confirms that parameters which were asked by a remote node via accept_channel message are confirming our policy.

§Arguments
  • self: local policy;
  • params: parameters proposed by the local node in open_channel message;
  • accept_channel: BOLT-2 message received by the peer.
§Returns

PeerParams to use for constructing channel transactions which should be signed by the local node.

Trait Implementations§

Source§

impl Clone for Policy

Source§

fn clone(&self) -> Policy

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

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

Performs copy-assignment from source. Read more
Source§

impl Debug for Policy

Source§

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

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

impl Default for Policy

Source§

fn default() -> Policy

Sets reasonable values for the local node policies

Source§

impl<'de> Deserialize<'de> for Policy

Source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
Source§

impl Display for Policy

Source§

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

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

impl Hash for Policy

Source§

fn hash<__H: Hasher>(&self, state: &mut __H)

Feeds this value into the given Hasher. Read more
1.3.0 · Source§

fn hash_slice<H>(data: &[Self], state: &mut H)
where H: Hasher, Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
Source§

impl PartialEq for Policy

Source§

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

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

const 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 Serialize for Policy

Source§

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
where __S: Serializer,

Serialize this value into the given Serde serializer. Read more
Source§

impl StrictDecode for Policy

Source§

fn strict_decode<D: Read>(d: D) -> Result<Self, Error>

Decode with the given std::io::Read instance; must either construct an instance or return implementation-specific error type.
Source§

fn strict_deserialize(data: impl AsRef<[u8]>) -> Result<Self, Error>

Tries to deserialize byte array into the current type using StrictDecode::strict_decode. If there are some data remains in the buffer once deserialization is completed, fails with Error::DataNotEntirelyConsumed. Use io::Cursor over the buffer and StrictDecode::strict_decode to avoid such failures.
Source§

fn strict_file_load(path: impl AsRef<Path>) -> Result<Self, Error>

Reads data from file at path and reconstructs object from it. Fails with Error::DataNotEntirelyConsumed if file contains remaining data after the object reconstruction.
Source§

impl StrictEncode for Policy

Source§

fn strict_encode<E: Write>(&self, e: E) -> Result<usize, Error>

Encode with the given std::io::Write instance; must return result with either amount of bytes encoded – or implementation-specific error type.
Source§

fn strict_serialize(&self) -> Result<Vec<u8>, Error>

Serializes data as a byte array using StrictEncode::strict_encode function
Source§

fn strict_file_save(&self, path: impl AsRef<Path>) -> Result<usize, Error>

Saves data to a file at a given path. If the file does not exists, attempts to create the file. If the file already exists, it gets truncated.
Source§

impl ToYamlString for Policy

Available on crate feature serde only.
Source§

fn to_yaml_string(&self) -> String

Performs conversion of the self into a YAML-encoded string
Source§

impl Eq for Policy

Source§

impl StructuralPartialEq for Policy

Auto Trait Implementations§

§

impl Freeze for Policy

§

impl RefUnwindSafe for Policy

§

impl Send for Policy

§

impl Sync for Policy

§

impl Unpin for Policy

§

impl UnwindSafe for Policy

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

Source§

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

Compare self to key and return true if they are equal.
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> 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> ToString for T
where T: Display + ?Sized,

Source§

fn to_string(&self) -> String

Converts the given value to a String. 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

Source§

impl<T> VerifyEq for T
where T: Eq,

Source§

fn verify_eq(&self, other: &T) -> bool

Verifies commit-equivalence of two instances of the same type.
Source§

impl<T> DeserializeOwned for T
where T: for<'de> Deserialize<'de>,