UTXOReservationReleasedEvent class

Event fired when UTXO reservation is released.

Nothing in lib/ emits this event (reachability sweep 2026-09-18, section 2). Releases are journaled as UTXOReleasedEvent, one per UTXO: UtxoReservations.releaseMany used to emit this event, which released nothing, and was changed by audit 2026-09-14 M3.

DO NOT DELETE THIS CLASS. It is deprecated, not dead. It is registered for replay in LibSpiffyActorSystem under the stable type name wallet.utxo_reservation.released, and journals written before M3 do contain events with that name. A journal is permanent and its contents are never rewritten, so deleting the class (or its fromMap, or its registration) would make such a journal unreplayable — which the data-retention rule in spv-understanding.md forbids outright. The deprecation marks it as "do not emit anything new"; it says nothing about removability.

Inheritance
Annotations
  • @Deprecated('Nothing emits this event; do not journal new ones. The class MUST be ' 'kept: it is registered for replay as wallet.utxo_reservation.released ' 'and a journal written by an earlier release may contain it, so deleting ' 'the class would make that journal unreplayable. Not scheduled for ' 'removal.')

Constructors

UTXOReservationReleasedEvent({required String walletId, required String reservationId, required List<Map<String, dynamic>> utxoIdentifiers, 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
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
reservationId → String
final
runtimeType → Type
A representation of the runtime type of the object.
no setterinherited
timestamp → DateTime
Timestamp when the event occurred
no setterinherited
typeName → String
Stable identity of this event type in storage.
no setter
utxoIdentifiers → List<Map<String, dynamic>>
final
version → int
Version/sequence number of this event within its aggregate Used for ordering and optimistic concurrency control
no setterinherited
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) → UTXOReservationReleasedEvent
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).