dev
dart 31 lines 971 Bytes
Raw
1 import 'package:mobx/mobx.dart';
2 import 'package:cw_core/transaction_info.dart';
3 import 'package:cw_core/transaction_history.dart';
4
5 class DecredTransactionHistory extends TransactionHistoryBase<TransactionInfo> {
6 DecredTransactionHistory() {
7 transactions = ObservableMap<String, TransactionInfo>();
8 }
9
10 @override
11 void addOne(TransactionInfo transaction) => transactions[transaction.id] = transaction;
12
13 @override
14 void addMany(Map<String, TransactionInfo> transactions) => this.transactions.addAll(transactions);
15
16 @override
17 Future<void> save() async {}
18
19 // update returns true if a known transaction that is not pending was found.
20 bool update(Map<String, TransactionInfo> txs) {
21 var foundOldTx = false;
22 txs.forEach((_, tx) {
23 if (!this.transactions.containsKey(tx.id) || this.transactions[tx.id]!.isPending) {
24 this.transactions[tx.id] = tx;
25 } else {
26 foundOldTx = true;
27 }
28 });
29 return foundOldTx;
30 }
31 }