DeferredSpendReclaimedEvent class

A deferred payment is being reclaimed: the wallet recorded its own transaction (reclaimTxid) spending that payment's held inputs back to itself, and the hold on those inputs moved to it (bead libspiffy-87a).

Journaled together with the self-spend's own record and hold, before it is broadcast. It does NOT resolve the payment: the payment becomes DeferredPaymentState.reclaimed only once the network has the self-spend (it is seen or mined). Nothing is deleted or overwritten — the reclaimed payment keeps its record, its stored transaction and its raw hex, and its txid stays queryable.

This is Bitcoin SV: first seen wins. The self-spend pays the standard policy fee. Whether it or the recipient's copy is mined is decided by which reached the network first, never by what either pays.

Inheritance

Constructors

DeferredSpendReclaimedEvent({required String walletId, required String txid, required String reclaimTxid, List<String> reclaimedUtxoKeys = const [], String? reason, 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
reason → String?
Why the payment was reclaimed (recorded as the resolution reason).
final
reclaimedUtxoKeys → List<String>
The inputs whose hold moved from txid to reclaimTxid.
final
reclaimTxid → String
The wallet's self-spend of that payment's held inputs.
final
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
The deferred payment being reclaimed.
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
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) → DeferredSpendReclaimedEvent
Create event from a map during deserialization This is a factory method that should be implemented by concrete event classes

Constants

stableTypeName → const String