CW-476 Only get Transactions of one Account on tx-history refresh (#1077)

Konstantin Ullrich committed Sep 8, 2023 at 19:12 UTC 4bcf6162f11d45273d509c0e158c4fe07fa7372d
2 files changed +6 -4
cw_monero/lib/api/transaction_history.dart
+1 -1
@@ -55,7 +55,7 @@ void refreshTransactions() => transactionsRefreshNative();
55
56 int countOfTransactions() => transactionsCountNative();
57
58 -List<TransactionInfoRow> getAllTransations() {
58 +List<TransactionInfoRow> getAllTransactions() {
59 final size = transactionsCountNative();
60 final transactionsPointer = transactionsGetAllNative();
61 final transactionsAddresses = transactionsPointer.asTypedList(size);
cw_monero/lib/monero_wallet.dart
+5 -3
@@ -482,7 +482,7 @@ abstract class MoneroWalletBase extends WalletBase<MoneroBalance,
482 @override
483 Future<Map<String, MoneroTransactionInfo>> fetchTransactions() async {
484 transaction_history.refreshTransactions();
485 - return _getAllTransactions(null).fold<Map<String, MoneroTransactionInfo>>(
485 + return _getAllTransactionsOfAccount(walletAddresses.account?.id).fold<Map<String, MoneroTransactionInfo>>(
486 <String, MoneroTransactionInfo>{},
487 (Map<String, MoneroTransactionInfo> acc, MoneroTransactionInfo tx) {
488 acc[tx.id] = tx;
@@ -497,6 +497,7 @@ abstract class MoneroWalletBase extends WalletBase<MoneroBalance,
497 }
498
499 _isTransactionUpdating = true;
500 + transactionHistory.clear();
501 final transactions = await fetchTransactions();
502 transactionHistory.addMany(transactions);
503 await transactionHistory.save();
@@ -511,10 +512,11 @@ abstract class MoneroWalletBase extends WalletBase<MoneroBalance,
512 return monero_wallet.getSubaddressLabel(accountIndex, addressIndex);
513 }
514
514 - List<MoneroTransactionInfo> _getAllTransactions(dynamic _) =>
515 + List<MoneroTransactionInfo> _getAllTransactionsOfAccount(int? accountIndex) =>
516 transaction_history
516 - .getAllTransations()
517 + .getAllTransactions()
518 .map((row) => MoneroTransactionInfo.fromRow(row))
519 + .where((element) => element.accountIndex == (accountIndex ?? 0))
520 .toList();
521
522 void _setListeners() {