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 != nullis 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
-
- Object
- WalletCommand
- UpdateUTXOConfirmationsCommand
- 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
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> -
metadataas it is persisted: transientActorRefentries 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