Struct lightning::chain::channelmonitor::ChannelMonitorUpdate

source ·
pub struct ChannelMonitorUpdate {
    pub update_id: u64,
    pub channel_id: Option<ChannelId>,
    /* private fields */
}
Expand description

An update generated by the underlying channel itself which contains some new information the ChannelMonitor should be made aware of.

Because this represents only a small number of updates to the underlying state, it is generally much smaller than a full ChannelMonitor. However, for large single commitment transaction updates (e.g. ones during which there are hundreds of HTLCs pending on the commitment transaction), a single update may reach upwards of 1 MiB in serialized size.

Fields§

§update_id: u64

The sequence number of this update. Updates must be replayed in-order according to this sequence number (and updates may panic if they are not). The update_id values are strictly increasing and increase by one for each new update, with two exceptions specified below.

This sequence number is also used to track up to which points updates which returned ChannelMonitorUpdateStatus::InProgress have been applied to all copies of a given ChannelMonitor when ChannelManager::channel_monitor_updated is called.

The only instances we allow where update_id values are not strictly increasing have a special update ID of CLOSED_CHANNEL_UPDATE_ID. This update ID is used for updates that will force close the channel by broadcasting the latest commitment transaction or special post-force-close updates, like providing preimages necessary to claim outputs on the broadcast commitment transaction. See its docs for more details.

§channel_id: Option<ChannelId>

The channel ID associated with these updates.

Will be None for ChannelMonitorUpdates constructed on LDK versions prior to 0.0.121 and always Some otherwise.

Trait Implementations§

source§

impl Clone for ChannelMonitorUpdate

source§

fn clone(&self) -> ChannelMonitorUpdate

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 ChannelMonitorUpdate

source§

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

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

impl PartialEq for ChannelMonitorUpdate

source§

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

This method tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

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

This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
source§

impl Readable for ChannelMonitorUpdate

source§

fn read<R: Read>(r: &mut R) -> Result<Self, DecodeError>

Reads a Self in from the given Read.
source§

impl Writeable for ChannelMonitorUpdate

source§

fn write<W: Writer>(&self, w: &mut W) -> Result<(), Error>

Writes self out to the given Writer.
source§

fn encode(&self) -> Vec<u8>

Writes self out to a Vec<u8>.
source§

fn serialized_length(&self) -> usize

Gets the length of this object after it has been serialized. This can be overridden to optimize cases where we prepend an object with its length.
source§

impl Eq for ChannelMonitorUpdate

source§

impl StructuralPartialEq for ChannelMonitorUpdate

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> 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> MaybeReadable for T
where T: Readable,

source§

fn read<R>(reader: &mut R) -> Result<Option<T>, DecodeError>
where R: Read,

Reads a Self in from the given Read.
source§

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

§

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

§

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

§

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.