fromMap static method

UTXOReceivedEvent fromMap(
  1. Map<String, dynamic> map
)

Create event from a map during deserialization This is a factory method that should be implemented by concrete event classes

Implementation

static UTXOReceivedEvent fromMap(Map<String, dynamic> map) {
  // Parse initialStatus, defaulting to pending for backwards compatibility
  UTXOStatus initialStatus = UTXOStatus.pending;
  if (map.containsKey('initialStatus')) {
    final statusName = map['initialStatus'] as String;
    initialStatus = UTXOStatus.values.firstWhere(
      (s) => s.name == statusName,
      orElse: () => UTXOStatus.pending,
    );
  }

  return UTXOReceivedEvent(
    walletId: map['walletId'] as String,
    txid: map['txid'] as String,
    vout: map['vout'] as int,
    satoshis: map['satoshis'] as int,
    scriptPubKey: map['scriptPubKey'] as String,
    address: map['address'] as String,
    blockHeight: map['blockHeight'] as int?,
    confirmations: map['confirmations'] as int?,
    initialStatus: initialStatus,
    eventId: map['eventId'] as String?,
    timestamp: map['timestamp'] != null
        ? (map['timestamp'] is String
            ? DateTime.parse(map['timestamp'] as String)
            : map['timestamp'] as DateTime)
        : null,
    version: map['version'] as int?,
    metadata: map['metadata'] as Map<String, dynamic>?,
  );
}