cake_wallet/lib/monero/monero_transaction_history.dart

49 lines
1.6 KiB
Dart
Raw Normal View History

2020-06-01 18:13:56 +00:00
import 'dart:core';
import 'package:mobx/mobx.dart';
import 'package:cw_monero/transaction_history.dart'
as monero_transaction_history;
import 'package:cake_wallet/core/transaction_history.dart';
import 'package:cake_wallet/src/domain/common/transaction_info.dart';
import 'package:cake_wallet/src/domain/monero/monero_transaction_info.dart';
part 'monero_transaction_history.g.dart';
2020-06-20 07:10:00 +00:00
List<MoneroTransactionInfo> _getAllTransactions(dynamic _) =>
2020-06-01 18:13:56 +00:00
monero_transaction_history
.getAllTransations()
.map((row) => MoneroTransactionInfo.fromRow(row))
.toList();
class MoneroTransactionHistory = MoneroTransactionHistoryBase
with _$MoneroTransactionHistory;
abstract class MoneroTransactionHistoryBase
2020-06-20 07:10:00 +00:00
extends TransactionHistoryBase<MoneroTransactionInfo> with Store {
MoneroTransactionHistoryBase() {
2020-08-25 16:32:40 +00:00
transactions = ObservableMap<String, MoneroTransactionInfo>();
2020-06-20 07:10:00 +00:00
}
2020-06-01 18:13:56 +00:00
@override
2020-08-25 16:32:40 +00:00
Future<Map<String, MoneroTransactionInfo>> fetchTransactions() async {
2020-06-01 18:13:56 +00:00
monero_transaction_history.refreshTransactions();
2020-08-25 16:32:40 +00:00
return _getAllTransactions(null).fold<Map<String, MoneroTransactionInfo>>(
<String, MoneroTransactionInfo>{},
(Map<String, MoneroTransactionInfo> acc, MoneroTransactionInfo tx) {
acc[tx.id] = tx;
return acc;
});
2020-06-01 18:13:56 +00:00
}
2020-08-25 16:32:40 +00:00
@override
void updateAsync({void Function() onFinished}) {
fetchTransactionsAsync(
(transaction) => transactions[transaction.id] = transaction,
onFinished: onFinished);
}
@override
void fetchTransactionsAsync(
void Function(MoneroTransactionInfo transaction) onTransactionLoaded,
{void Function() onFinished}) {}
2020-06-01 18:13:56 +00:00
}