Skip to main content

SpendFailureStage

Enum SpendFailureStage 

Source
pub enum SpendFailureStage {
    Signing,
    Broadcast,
    Confirmation,
}
Expand description

Where an attempt died.

Coarse and stable on purpose: the point is which STEP failed, because that is what tells a person whether their money is at risk. This distinction is load-bearing and MUST NOT be flattened into a bare “failed”. A client that collapses it is structurally unable to tell someone the truth about their own money.

Variants§

§

Signing

The spend could not be built or signed. No signed bundle ever existed, so nothing could reach a mempool and nothing moved.

§

Broadcast

A signed bundle was rejected by the mempool, as far as this node saw. The bundle may still have reached the network by another route, or been accepted after the rejection this node observed.

§

Confirmation

The bundle went out and the chain then reported it could not succeed.

Implementations§

Source§

impl SpendFailureStage

Source

pub fn money_may_have_moved(self) -> bool

Could the money have moved anyway, despite the attempt failing at this stage?

Signing is the only stage that answers NO, and it answers structurally: no signed bundle existed, so there was nothing that could reach a mempool. Broadcast and Confirmation both happen AFTER a valid signed bundle exists, and neither observation proves absence — a rejection this node saw does not bind a network it does not fully observe.

This is the ONE place the distinction is decided. Every consumer asks the stage rather than re-listing the variants, so the “it did not happen” claim cannot be re-attached to a stage that never earned it. Written as an exhaustive match so adding a stage is a compile error here, forcing whoever adds it to choose a side.

Source

pub const fn token(self) -> &'static str

The stable lowercase wire token.

Trait Implementations§

Source§

impl Clone for SpendFailureStage

Source§

fn clone(&self) -> SpendFailureStage

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

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

Performs copy-assignment from source. Read more
Source§

impl Copy for SpendFailureStage

Source§

impl Debug for SpendFailureStage

Source§

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

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

impl<'de> Deserialize<'de> for SpendFailureStage

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 Eq for SpendFailureStage

Source§

impl PartialEq for SpendFailureStage

Source§

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

Equality operator ==. Read more
1.0.0 (const: unstable) · Source§

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

Inequality operator !=. Read more
Source§

impl Serialize for SpendFailureStage

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 StructuralPartialEq for SpendFailureStage

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<T> DeserializeOwned for T
where T: for<'de> Deserialize<'de>,

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 = !

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.