RequestAncestorProofCommand class
Ask the counterparty who handed us txid for a fresh merkle proof for its ancestry (bead libspiffy-a2v3).
When a reorganization takes an ancestor's block off the active chain the
wallet can no longer walk txid back to a proof, so the outputs it gave
us cannot go into a BEEF and cannot be spent
(ReadModelStorage.getOutputsAwaitingAncestorProof lists them). There are
exactly two recoveries: the block comes back, or the counterparty who
sent us the payment supplies a fresh BEEF. This command is the second.
It is app-triggered: libspiffy never polls a peer for proofs.
Who is asked is BitcoinTransaction.counterpartyMarker on txid's row —
the sender of that payment, who owed us its ancestry's proofs in the
first place, not the ancestor's own (unknown) counterparty. The request
goes out as a P2PMessageToSendEvent with messageType proof_request
addressed to the marker; the app delivers it. When no marker is recorded
(a payment received before markers existed, or an app that supplied none)
nobody can be asked: AncestorProofRequestedEvent reports the output as
unrecoverable by request.
- Inheritance
-
- Object
- CoordinatorRequest<
AncestorProofRequestedEvent> - RequestAncestorProofCommand
Constructors
Properties
-
ancestorTxids
→ List<
String> -
The ancestors a proof is wanted for. Informational — the responder
rebuilds the whole BEEF for txid — and filled in from
ReadModelStorage.getOutputsAwaitingAncestorProofwhen left empty.final - correlationId → String
-
The correlation ID of the message.
no setterinherited
- hashCode → int
-
The hash code for this object.
no setterinherited
-
metadata
→ Map<
String, dynamic> -
The metadata of the message.
no setter
- replyTimeout → Duration
-
How long
WalletCoordinator.askwaits for the reply when the caller gives no timeout. A request that is still running then is not cancelled: its reply arrives on the event stream later.no setterinherited - replyTo → ActorRef?
-
The actor to reply to.
no setterinherited
- requestId → String
-
Identifies this request; its reply carries it back.
finalinherited
- runtimeType → Type
-
A representation of the runtime type of the object.
no setterinherited
- timestamp → DateTime
-
The timestamp of the message.
finalinherited
- txid → String
-
The transaction we received whose ancestry no longer reaches a proof.
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