mirror of
https://github.com/cypherstack/stack_wallet.git
synced 2024-12-22 11:29:23 +00:00
108 lines
3.1 KiB
Dart
108 lines
3.1 KiB
Dart
/*
|
|
* This file is part of Stack Wallet.
|
|
*
|
|
* Copyright (c) 2023 Cypher Stack
|
|
* All Rights Reserved.
|
|
* The code is distributed under GPLv3 license, see LICENSE file for details.
|
|
* Generated by Cypher Stack on 2023-05-26
|
|
*
|
|
*/
|
|
|
|
import '../db/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,
|
|
);
|
|
}
|
|
|
|
Future<void> deleteTransaction(String txid) async {
|
|
final notifiedPendingTransactions = DB.instance.get<dynamic>(
|
|
boxName: walletId,
|
|
key: "notifiedPendingTransactions",
|
|
) as Map? ??
|
|
{};
|
|
final notifiedConfirmedTransactions = DB.instance.get<dynamic>(
|
|
boxName: walletId,
|
|
key: "notifiedConfirmedTransactions",
|
|
) as Map? ??
|
|
{};
|
|
|
|
notifiedPendingTransactions.remove(txid);
|
|
notifiedConfirmedTransactions.remove(txid);
|
|
|
|
await DB.instance.put<dynamic>(
|
|
boxName: walletId,
|
|
key: "notifiedConfirmedTransactions",
|
|
value: notifiedConfirmedTransactions,
|
|
);
|
|
await DB.instance.put<dynamic>(
|
|
boxName: walletId,
|
|
key: "notifiedPendingTransactions",
|
|
value: notifiedPendingTransactions,
|
|
);
|
|
}
|
|
}
|