pub enum VtxoStandardnessError {
Dusty,
DustSibling {
item_idx: usize,
item_count: usize,
output_idx: usize,
},
Script,
ScriptSibling {
item_idx: usize,
item_count: usize,
output_idx: usize,
},
}Expand description
Reason a Vtxo failed the Vtxo::check_standard check.
A VTXO is standard if and only if every output in its exit chain — its own output plus all sibling outputs of every exit transaction — uses a known script type and carries a value at or above that script’s dust limit. Each variant identifies the first violation encountered.
Sibling-typed variants (VtxoStandardnessError::DustSibling and
VtxoStandardnessError::ScriptSibling) locate the offending output by
genesis item index plus the index inside that item’s other_outputs
list; with item_count they tell you how deep along the chain the
problem sits.
Variants§
Dusty
The VTXO’s own output value is below the dust limit for its script type, so the final exit transaction cannot be relayed.
DustSibling
A sibling output produced somewhere along the exit chain is below the dust limit. The current VTXO can clear dust on its own and still trip this variant — the exit transaction containing the sub-dust sibling is the part that won’t relay.
§Example: a small total dust-isolation can’t rescue
Suppose Alice owns a 600-sat VTXO and pays Bob 200 sat. The arkoor builder produces:
600 sat -> 200 sat // Bob (sub-dust — below P2TR_DUST = 330)
400 sat // Alice's change (above dust)Even when the builder is asked to apply dust isolation (see
ArkoorBuilder::new_with_checkpoint_isolate_dust),
the total is too small to fix. An isolation output has to be
at least P2TR_DUST (330 sat) to clear the relay limit. Bob’s
200 sat already lives in the dust pool; to reach 330 the builder
would have to split Alice’s change and pull another 130 sat into
the pool. That leaves 270 sat as the leftover piece of Alice’s
change — still sub-dust. Splitting trades one sub-dust output
for two, so the builder falls through and emits the 200/400
outputs as-is.
Script
The VTXO’s own output uses an unrecognised script type, or an OP_RETURN longer than the 83-byte standardness ceiling.
ScriptSibling
A sibling output along the exit chain uses an unrecognised script type (or an over-long OP_RETURN). Same locator semantics as VtxoStandardnessError::DustSibling.
Trait Implementations§
Source§impl Clone for VtxoStandardnessError
impl Clone for VtxoStandardnessError
Source§fn clone(&self) -> VtxoStandardnessError
fn clone(&self) -> VtxoStandardnessError
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for VtxoStandardnessError
impl Debug for VtxoStandardnessError
Source§impl Display for VtxoStandardnessError
impl Display for VtxoStandardnessError
impl Eq for VtxoStandardnessError
Source§impl Error for VtxoStandardnessError
impl Error for VtxoStandardnessError
1.30.0 · Source§fn source(&self) -> Option<&(dyn Error + 'static)>
fn source(&self) -> Option<&(dyn Error + 'static)>
1.0.0 · Source§fn description(&self) -> &str
fn description(&self) -> &str
use the Display impl or to_string()