UTXOConfirmationUpdatedEvent class

Event fired when a confirmation count reported for a UTXO is recorded.

It records a claim, never evidence (bead libspiffy-8oaq): applying it writes the count onto the row and deliberately leaves the status alone, so it cannot make anything spendable. Availability comes from UTXOMarkedAvailableEvent or from TransactionConfirmedEvent, whose height is derived from a merkle proof checked against our own headers.

The height it carries reaches no row either (bead libspiffy-pq8p). blockHeight != null is what "confirmed" means at every layer (WalletBalances.bucketOf, BitcoinUtxo.isConfirmed), so recording an unverified height let a claim report as confirmed balance. The event keeps carrying it because the journal records what we were told; the apply is where it is given no authority.

Inheritance

Constructors

UTXOConfirmationUpdatedEvent({required String walletId, required String txid, required int vout, required int confirmations, int? blockHeight, String? eventId, DateTime? timestamp, int? version, Map<String, dynamic>? metadata})

Properties

aggregateId → String
The ID of the aggregate this event belongs to
no setterinherited
aggregateType → String
The type of aggregate this event belongs to
no setterinherited
blockHeight → int?
The height the count was reported at, or null when none was given. Null is "no height", not height 0: journaling an absent height as 0 said the output was mined in the genesis block (bead libspiffy-8oaq).
final
confirmations → int
final
correlationId → String
The correlation ID of the message.
no setterinherited
eventId → String
Unique identifier for this event Used for deduplication and correlation
no setterinherited
hashCode → int
The hash code for this object.
no setterinherited
metadata → Map<String, dynamic>
Additional metadata for the event Can include correlation IDs, causation IDs, user context, etc.
no setterinherited
persistableMetadata → Map<String, dynamic>
metadata as it is persisted: transient ActorRef entries removed.
no setterinherited
replyTo → ActorRef?
The actor to reply to, if a live ActorRef was placed in metadata['replyTo'].
no setterinherited
runtimeType → Type
A representation of the runtime type of the object.
no setterinherited
timestamp → DateTime
Timestamp when the event occurred
no setterinherited
txid → String
final
typeName → String
Stable identity of this event type in storage.
no setter
version → int
Version/sequence number of this event within its aggregate Used for ordering and optimistic concurrency control
no setterinherited
vout → int
final
walletId → String
ID of the wallet this event belongs to (same as aggregateId)
no setterinherited

Methods

getEventData() → Map<String, dynamic>
Implementation of SerializableEvent.getEventData
inherited
getValidationErrors() → List<String>
Get validation errors Override in subclasses to provide specific error messages
inherited
getWalletEventData() → Map<String, dynamic>
Wallet-specific event data (to be implemented by concrete events)
override
isValid() → bool
Validate the event 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 event to CBOR bytes
inherited
toMap() → Map<String, dynamic>
Convert event to a map for serialization Override in subclasses to include event-specific data
inherited
toString() → String
A string representation of this object.
inherited

Operators

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

Static Methods

fromMap(Map<String, dynamic> map) → UTXOConfirmationUpdatedEvent
Create event from a map during deserialization This is a factory method that should be implemented by concrete event classes

Constants

stableTypeName → const String
Journal identifier of this event type. Stored with every event and independent of the class name; never change it (audit 2026-09-14 M8).