Class LockupNeedsRecoveryException
- Namespace
- NArk.ArkadeIntents.Recovery
- Assembly
- NArk.ArkadeIntents.dll
Thrown when part of a lockup is out of the covenant's reach, so a refund would move only some of the money.
public sealed class LockupNeedsRecoveryException : InvalidOperationException, ISerializable
- Inheritance
-
LockupNeedsRecoveryException
- Implements
- Inherited Members
Remarks
The whole push is refused rather than narrowed to what is spendable, and that is the point. Filtering the unreachable outputs out silently is worse than failing: it reports success over money that never moved, and a caller that believes the swap is refunded stops watching the part that is still sitting there.
Both causes are recoverable and neither is recoverable here. A swept output goes through the wallet's own recovery path; an exited one needs its unroll finished and then an on-chain spend of the same leaves. Either way the outpoints are named, because a caller has to act on them one at a time.
Constructors
LockupNeedsRecoveryException(LockupFate, IReadOnlyList<OutPoint>, string)
Creates the exception.
public LockupNeedsRecoveryException(LockupFate fate, IReadOnlyList<OutPoint> outpoints, string message)
Parameters
fateLockupFateWhether they were swept or exited.
outpointsIReadOnlyList<OutPoint>The outputs needing recovery.
messagestringThe explanation.
Properties
Fate
Why they are out of reach.
public LockupFate Fate { get; }
Property Value
Outpoints
The outputs that must be dealt with before a refund can move everything.
public IReadOnlyList<OutPoint> Outpoints { get; }
Property Value
- IReadOnlyList<OutPoint>