SPVValidationResult class
SPV validation result after processing received transaction
- Inheritance
-
- Object
- ActorResponse
- SPVValidationResult
Constructors
-
SPVValidationResult({required String txid, required bool isValid, String? validationError, List<
Map< spendableUTXOs = const [], List<String, dynamic> >Map< spentUTXOs = const [], String? targetWalletId, BigInt? transactionFee, Map<String, dynamic> >String, dynamic> ? transactionData, List<Map< unreadableOutputs = const [], List<String, dynamic> >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:
markeras its counterpartyMarker (a blank marker is no marker),memoas itsmemo(a blank memo is no memo), and the request'srequestIdandinvoiceId;awaitingHeaderwhen the receive was parked rather than decided;subjectCarriesProoffrom 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