ReclaimDeferredPaymentCommand class
Reclaim an outstanding deferred payment: spend the inputs it holds back into this wallet and broadcast that transaction. Answered with DeferredPaymentReclaimedEvent.
Immediate and irreversible. There is no confirmation step, no dry run: the self-spend is built, signed, journaled and broadcast by this one command. libspiffy does not own confirmation UX — warn the user first if your app wants that.
It invalidates the signed transaction the recipient holds. Both spend the same inputs, and only one of two transactions spending an input can be mined. Unlike CancelDeferredPaymentCommand, which only releases the hold and leaves the recipient's copy spendable, a reclaim takes the coins out of its reach.
This is Bitcoin SV: there is no replace-by-fee, and first seen wins. The self-spend pays the standard ARC policy fee, like every other transaction the wallet builds; paying more would buy nothing. If the recipient already got their copy to the network first, theirs is the one that is mined and the self-spend is the one rejected — an ordering fact, decided before this command was sent.
The payment is not resolved at broadcast time: it stays outstanding, with its inputs now held by the self-spend, until the network reports the self-spend. It is then DeferredPaymentState.reclaimed and the coins are back in the wallet, less the fee.
Nothing is deleted: the reclaimed payment keeps its row, its stored
transaction and its raw hex, and both txids stay queryable
(GetDeferredPaymentsQuery with includeResolved).
Constructors
- ReclaimDeferredPaymentCommand({required String walletId, required String txid, DeferredPaymentNetworkSource via = DeferredPaymentNetworkSource.arc, String? reason, String? requestId})
Properties
- correlationId → String
-
The correlation ID of the message.
no setter
- hashCode → int
-
The hash code for this object.
no setterinherited
-
metadata
→ Map<
String, dynamic> -
The metadata of the message.
no setter
- reason → String?
-
Recorded as the reclaimed payment's resolution reason.
final
- replyTo → ActorRef?
-
The actor to reply to.
no setter
- requestId → String?
-
final
- runtimeType → Type
-
A representation of the runtime type of the object.
no setterinherited
- timestamp → DateTime
-
The timestamp of the message.
no setter
- txid → String
-
The outstanding deferred payment to reclaim.
final
- via → DeferredPaymentNetworkSource
-
Where the self-spend is broadcast.
final
- walletId → String
-
final
Methods
-
noSuchMethod(
Invocation invocation) → dynamic -
Invoked when a nonexistent method or property is accessed.
inherited
-
toString(
) → String -
A string representation of this object.
inherited
Operators
-
operator ==(
Object other) → bool -
The equality operator.
inherited