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

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<String, dynamic>>? spendableUTXOs, List<Map<String, dynamic>> unreadableOutputs = const [], String? requestId})

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.ask throws 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