UpdateUTXOConfirmationsCommand class

Command to record a confirmation count a caller reports for a UTXO.

Deprecated, and it changes no status. Two decisions left it with nothing to do:

  • A caller-supplied count or height is a claim, not evidence (bead libspiffy-5ry / V-60), so it must not make a UTXO spendable. Since bead libspiffy-8oaq, applying the event it journals leaves the status exactly as it was.
  • Since bead libspiffy-pq8p it writes only the count. blockHeight is journaled as the claim it was and reaches no row: blockHeight != null is what "confirmed" means at every layer (WalletBalances.bucketOf, BitcoinUtxo.isConfirmed, spv-understanding.md "Balances"), so recording an unverified height made an output report as confirmed balance on the strength of a claim. Pass it or leave it out: either way this command confirms nothing.
  • The wallet does not store a confirmation count as truth anyway (bead libspiffy-4dja / V-71): a stored count is stale at the very next block, so the count is derived at read time as tip height - blockHeight + 1.

Nothing in libspiffy sends it. Use MarkUTXOAvailableCommand to make an output spendable (ARC/SPV saw its transaction on the network), or ConfirmTransactionCommand when a merkle proof verified against our own header chain says which block it is in — that is what stamps a height.

Inheritance
Annotations
  • @Deprecated('Records an unverified claim and changes nothing about spendability. Use ' 'MarkUTXOAvailableCommand to make an output spendable, or ' 'ConfirmTransactionCommand with a height from a merkle proof verified ' 'against our own header chain. Will be removed in a future release.')

Constructors

UpdateUTXOConfirmationsCommand({required String walletId, required String utxoKey, required int confirmations, int? blockHeight, String? commandId, DateTime? timestamp, Map<String, dynamic>? metadata})

Properties

blockHeight → int?
The height the caller claims, journaled as a record of what we were told and written to no row (bead libspiffy-pq8p).
final
commandId → String
Unique identifier for this command Used for deduplication and tracing
no setterinherited
commandType → String
Command type identifier for logging and debugging
no setteroverride
confirmations → int
final
correlationId → String
finalinherited
hashCode → int
The hash code for this object.
no setterinherited
metadata → Map<String, dynamic>
finalinherited
payload → dynamic
Override payload to return the command itself for LocalMessage compatibility
no setterinherited
persistableMetadata → Map<String, dynamic>
metadata as it is persisted: transient ActorRef entries removed.
no setterinherited
replyTo → ActorRef?
finalinherited
runtimeType → Type
A representation of the runtime type of the object.
no setterinherited
sender → ActorRef?
finalinherited
timestamp → DateTime
finalinherited
typeName → String
Stable identity of this command type in storage.
no setterinherited
utxoKey → String
final
walletId → String
finalinherited

Methods

getValidationErrors() → List<String>
Get validation errors Override in subclasses to provide specific error messages
inherited
isValid() → bool
Validate the command Override in subclasses for custom validation
inherited
noSuchMethod(Invocation invocation) → dynamic
Invoked when a nonexistent method or property is accessed.
inherited
toCbor() → List<int>
Serialize command to CBOR bytes
inherited
toMap() → Map<String, dynamic>
Convert command to a map for serialization.
inherited
toString() → String
A string representation of this object.
inherited

Operators

operator ==(Object other) → bool
The equality operator.
inherited