pub struct ChannelMonitorUpdate {
    pub update_id: u64,
    /* 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 one exception 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 instance where update_id values are not strictly increasing is the case where we allow post-force-close updates with a special update ID of CLOSED_CHANNEL_UPDATE_ID. See its docs for more details.

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

Auto Trait Implementations§

Blanket Implementations§

source§

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

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

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

const: unstable · source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

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

const: unstable · source§

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

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

const: unstable · source§

fn from(t: T) -> T

Returns the argument unchanged.

source§

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

const: unstable · 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 Twhere 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 Twhere 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 Twhere U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
const: unstable · source§

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

Performs the conversion.
source§

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

§

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

The type returned in the event of a conversion error.
const: unstable · source§

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

Performs the conversion.