CashuWalletTransactionModel.fromJson constructor

CashuWalletTransactionModel.fromJson(
  1. Map<String, dynamic> json
)

Implementation

factory CashuWalletTransactionModel.fromJson(Map<String, dynamic> json) {
  final metadata = Map<String, dynamic>.from(json['metadata'] as Map? ?? {});

  final rawQuote = json['qoute'] as Map<String, dynamic>? ??
      metadata['qoute'] as Map<String, dynamic>?;
  final rawQuoteMelt = json['qouteMelt'] as Map<String, dynamic>? ??
      metadata['qouteMelt'] as Map<String, dynamic>?;

  final rawUsedKeysets = json['usedKeysets'] as List<dynamic>? ??
      metadata['usedKeyset'] as List<dynamic>? ??
      metadata['usedKeysets'] as List<dynamic>?;

  final rawProofPubKeys = json['proofPubKeys'] as List<dynamic>? ??
      metadata['proofPubKeys'] as List<dynamic>?;

  return CashuWalletTransactionModel(
    id: json['id'] as String,
    walletId: json['walletId'] as String,
    changeAmount: json['changeAmount'] as int,
    unit: json['unit'] as String,
    walletType: WalletType.fromValue(json['walletType'] as String),
    state: WalletTransactionState.fromValue(json['state'] as String),
    completionMsg: json['completionMsg'] as String?,
    transactionDate: json['transactionDate'] as int?,
    initiatedDate: json['initiatedDate'] as int?,
    mintUrl: json['mintUrl'] as String? ?? metadata['mintUrl'] as String,
    note: json['note'] as String? ?? metadata['note'] as String?,
    method: json['method'] as String? ?? metadata['method'] as String?,
    qoute: rawQuote != null ? CashuQuote.fromJson(rawQuote) : null,
    qouteMelt:
        rawQuoteMelt != null ? CashuQuoteMelt.fromJson(rawQuoteMelt) : null,
    usedKeysets: rawUsedKeysets
        ?.map((entry) => CahsuKeyset.fromJson(entry as Map<String, dynamic>))
        .toList(),
    token: json['token'] as String? ?? metadata['token'] as String?,
    proofPubKeys: rawProofPubKeys?.map((entry) => entry.toString()).toList(),
    metadata: metadata,
  );
}