SPVValidationResult class

SPV validation result after processing received transaction

Inheritance

Constructors

SPVValidationResult({required String txid, required bool isValid, String? validationError, List<Map<String, dynamic>> spendableUTXOs = const [], List<Map<String, dynamic>> spentUTXOs = const [], String? targetWalletId, BigInt? transactionFee, Map<String, dynamic>? transactionData, List<Map<String, dynamic>> unreadableOutputs = const [], List<ProvenTransaction> provenTransactions = const [], String? counterpartyMarker, String? memo, String? requestId, String? invoiceId, BigInt? invoicePaidAmount, List<String> invoicePaidAddresses = const [], bool awaitingHeader = false, bool subjectCarriesProof = false, String? beefHex})

Properties

awaitingHeader → bool
Not a verdict: the BEEF's proofs name a block header we have not synced, the receive is parked, and it is validated again — and answered again — once the header arrives (bead libspiffy-xggs). isValid is false only because nothing is proven yet.
final
beefHex → String?
The BEEF the receive came in, as hex, set where the receive answers. A payment's broadcast takes the outputs it spends from it (Extended Format): they are the payer's, and no wallet here stores them. Arcade refuses a raw transaction with 460. Null for a verdict that is not a receive.
final
correlationId → String
The correlation ID of the message.
no setter
counterpartyMarker → String?
The app's opaque marker for the counterparty that handed us this transaction (bead libspiffy-cq16), carried from ReceiveTransactionMessage.fromCounterparty so the wallet can journal it with the payment. Null when the app supplied none; never interpreted, validated or parsed.
final
error → String?
Why the request failed; null when success is true.
no setteroverride
hashCode → int
The hash code for this object.
no setterinherited
invoiceId → String?
The ReceiveTransactionMessage.invoiceId the receive carried, echoed back (bead libspiffy-xggs), so a verdict that reaches the coordinator with nobody waiting for it — a payment replayed after a restart — is still answered as the payment of that invoice.
final
invoicePaidAddresses → List<String>
final
invoicePaidAmount → BigInt?
What this payment pays its invoice (invoiceId), when it validated against one and is not the delivery that already paid it: the satoshis of the outputs that pay the invoice (bead libspiffy-n0p: an invoice output the wallet cannot spend alone pays the invoice and is no wallet UTXO) and the addresses they pay.
final
isValid → bool
Whether the transaction validated. Also reported as success, so a caller can ask any reply the same question (bead libspiffy-97zj).
final
memo → String?
The payment's note, written by the payer for the payee, carried from ReceiveTransactionMessage.memo so the wallet can journal it with the payment. Null when none; never interpreted.
final
metadata → Map<String, dynamic>
The metadata of the message.
no setter
payload → dynamic
The reply itself, so ask<ConcreteResponse>() completes with it.
no setterinherited
provenTransactions → List<ProvenTransaction>
Every transaction of the BEEF whose BUMP verifies against our active header chain, subject and ancestors alike (bead libspiffy-fggl). The ones the wallet recorded itself are confirmed from these proofs; a member whose block header we have not synced is not listed (its BUMP is still retained, stored as a pendingHeader proof).
final
replyTo → ActorRef?
The actor to reply to.
no setter
requestId → String?
The ReceiveTransactionMessage.requestId of the receive this is the verdict on, echoed back unchanged (bead libspiffy-l8uf).
final
runtimeType → Type
A representation of the runtime type of the object.
no setterinherited
sender → ActorRef?
finalinherited
spendableUTXOs → List<Map<String, dynamic>>
final
spentUTXOs → List<Map<String, dynamic>>
final
subjectCarriesProof → bool
Whether the BEEF carried a merkle proof for txid itself, verified or not. A transaction received without one is a payment the network may not have yet, which the receiver submits (bead libspiffy-xggs); one carrying its proof is already mined.
final
success → bool
Whether the request this reply answers succeeded.
no setteroverride
targetWalletId → String?
final
timestamp → DateTime
The timestamp of the message.
no setter
transactionData → Map<String, dynamic>?
final
transactionFee → BigInt?
final
txid → String
final
unreadableOutputs → List<Map<String, dynamic>>
Outputs of the transaction whose locking script could not be read (a script template or a plugin threw), so nobody could tell whether they are the wallet's (bead libspiffy-rp6x). One map per output: 'vout', 'satoshis', 'script' (hex), 'scriptType' (when something recognised the script before failing) and 'reason'. They are not credited; the transaction is still recorded whole, so they can be read again later.
final
validationError → String?
Why it did not. Also reported as error.
final

Methods

answering(String? marker, {String? requestId, String? invoiceId, bool awaitingHeader = false, bool? subjectCarriesProof, String? memo, String? beefHex}) → SPVValidationResult
This result as the answer to the request that asked for it: marker as its counterpartyMarker (a blank marker is no marker), memo as its memo (a blank memo is no memo), and the request's requestId and invoiceId; awaitingHeader when the receive was parked rather than decided; subjectCarriesProof from the BEEF it received. Applied in one place, where the receive answers, so every branch that builds a result carries them (beads libspiffy-cq16, libspiffy-l8uf, libspiffy-xggs).
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