BEEFValidationResultEvent class
The answer to a ValidateBEEFCommand: a counterparty's payment, checked, recorded and submitted.
In the peer-to-peer model the receiver broadcasts the payment it cares
about (spv-understanding.md), so a payment whose transaction carries no
merkle proof of its own is submitted to ARC once it validates and the
wallet's read model holds it, and ARC then tracks it to its block. The
event is emitted after both (bead libspiffy-xggs): valid means the
payment is recorded and queryable, broadcasted that ARC accepted it.
It used to claim broadcasted: true the moment the submission was
handed to ARC's mailbox — before ARC answered, and with no ARC at all.
A payment whose proofs name a block header we have not synced is not
decided yet: awaitingHeader, with valid false, and this is not a
failure (ask returns it). A second event, the verdict, follows once the
header arrives, carrying the same requestId while this process runs;
after a restart the receive is replayed from storage and its verdict
carries none.
- Inheritance
-
- Object
- CoordinatorEvent
- CoordinatorReply
- BEEFValidationResultEvent
Constructors
-
BEEFValidationResultEvent({String? walletId, String? invoiceId, String? txid, required bool valid, String? error, bool broadcasted = false, String? networkStatus, String? broadcastError, bool awaitingHeader = false, List<
Map< ? spendableUTXOs, List<String, dynamic> >Map< unreadableOutputs = const [], String? requestId})String, dynamic> >
Properties
- awaitingHeader → bool
-
Not a verdict: the payment waits for a block header (see above).
final
- broadcasted → bool
-
ARC accepted the submission (networkStatus says how far it got).
False when it was not submitted: invalid, waiting for a header,
already mined (it carried its own proof, which verified), or ARC
refused or could not be reached (broadcastError).
final
- broadcastError → String?
-
Why the submission failed, when one was made and did not succeed.
final
- error → String?
-
Why it is not valid, or why the read model could not be shown to
hold it.
final
- eventTimestamp → DateTime
-
When the event was made.
finalinherited
- failure → String?
-
Why the request failed, or null when it succeeded.
WalletCoordinator.askthrows a CoordinatorFailure carrying this reply when it is not null.no setteroverride - hashCode → int
-
The hash code for this object.
no setterinherited
- invoiceId → String?
-
final
- networkStatus → String?
-
ARC's status for the submission, by its wire name, when ARC answered.
final
- requestId → String?
-
The CoordinatorRequest.requestId of the request this answers; null
when no request caused it.
final
- runtimeType → Type
-
A representation of the runtime type of the object.
no setterinherited
-
spendableUTXOs
→ List<
Map< ?String, dynamic> > -
final
- txid → String?
-
final
-
unreadableOutputs
→ List<
Map< String, dynamic> > -
Outputs of the payment whose locking script could not be read, so they
were not credited (bead libspiffy-rp6x; see
SPVValidationResultEvent.unreadableOutputs). The payment path now
carries them as the import path always did.
final
- valid → bool
-
final
- walletId → String?
-
Optional wallet ID for filtering events by wallet
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