pub enum CollateralUnknownReason {
NotCensused,
BehindFinalityDepth,
RecordUnreadable,
NoChainSource,
BalanceUnreadable,
}Expand description
Why a node cannot state this epoch’s collateral requirement.
Each variant names a DIFFERENT missing fact, because the remedies differ: a node that has not censused the epoch needs to run the census, whereas a node inside the finality depth needs only to wait for the chain to settle. Collapsing them into one “unavailable” would hand every client the same unactionable sentence.
Variants§
NotCensused
This node has not censused the epoch, so it holds no record to answer from.
BehindFinalityDepth
The epoch’s census inputs are not yet final — the node is inside
CENSUS_FINALITY_DEPTH_BLOCKS of the chain tip and any figure it derived could still move.
RecordUnreadable
The node holds a record for the epoch but could not read it.
NoChainSource
The node cannot see the chain at all, so it cannot know whether a record should exist.
BalanceUnreadable
The node can read the epoch’s record, but cannot read its OWN $DIG balance, so it cannot tell whether it could fund what the record prices.
The one WALLET-shaped reason, and it exists because every other reason in this enum points
an operator at the census, the record, or the chain. A node whose census is healthy and
whose wallet read failed, reported as RecordUnreadable, tells
that operator to repair a census that is working — the same remedy misdirection the
withheld/disabled/reclaiming split exists to prevent.
It is emphatically NOT a shortfall. Answering
Unfunded here would assert a gap the node has
no evidence for, on the surface an operator uses to decide whether to alarm.
Implementations§
Trait Implementations§
Source§impl Clone for CollateralUnknownReason
impl Clone for CollateralUnknownReason
Source§fn clone(&self) -> CollateralUnknownReason
fn clone(&self) -> CollateralUnknownReason
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more