import 'package:stackwallet/hive/db.dart'; class TransactionNotificationTracker { final String walletId; TransactionNotificationTracker({required this.walletId}); List<String> get pendings { final notifiedPendingTransactions = DB.instance.get<dynamic>( boxName: walletId, key: "notifiedPendingTransactions") as Map? ?? {}; return List<String>.from(notifiedPendingTransactions.keys); } bool wasNotifiedPending(String txid) { final notifiedPendingTransactions = DB.instance.get<dynamic>( boxName: walletId, key: "notifiedPendingTransactions") as Map? ?? {}; return notifiedPendingTransactions[txid] as bool? ?? false; } Future<void> addNotifiedPending(String txid) async { final notifiedPendingTransactions = DB.instance.get<dynamic>( boxName: walletId, key: "notifiedPendingTransactions") as Map? ?? {}; notifiedPendingTransactions[txid] = true; await DB.instance.put<dynamic>( boxName: walletId, key: "notifiedPendingTransactions", value: notifiedPendingTransactions); } List<String> get confirmeds { final notifiedConfirmedTransactions = DB.instance.get<dynamic>( boxName: walletId, key: "notifiedConfirmedTransactions") as Map? ?? {}; return List<String>.from(notifiedConfirmedTransactions.keys); } bool wasNotifiedConfirmed(String txid) { final notifiedConfirmedTransactions = DB.instance.get<dynamic>( boxName: walletId, key: "notifiedConfirmedTransactions") as Map? ?? {}; return notifiedConfirmedTransactions[txid] as bool? ?? false; } Future<void> addNotifiedConfirmed(String txid) async { final notifiedConfirmedTransactions = DB.instance.get<dynamic>( boxName: walletId, key: "notifiedConfirmedTransactions") as Map? ?? {}; notifiedConfirmedTransactions[txid] = true; await DB.instance.put<dynamic>( boxName: walletId, key: "notifiedConfirmedTransactions", value: notifiedConfirmedTransactions); } }