Fixes for tx key for monero wallet

wownero
M 2 years ago
parent c2dfa3330d
commit 28cf8163ff

@ -1,5 +1,4 @@
import 'package:cw_core/transaction_direction.dart';
//import 'package:cake_wallet/utils/mobx.dart';
import 'package:cw_core/keyable.dart';
abstract class TransactionInfo extends Object with Keyable {
@ -18,4 +17,6 @@ abstract class TransactionInfo extends Object with Keyable {
@override
dynamic get keyIndex => id;
Map<String, dynamic> additionalInfo;
}

@ -23,7 +23,13 @@ class MoneroTransactionInfo extends TransactionInfo {
accountIndex = int.parse(map['accountIndex'] as String),
addressIndex = map['addressIndex'] as int,
key = getTxKey((map['hash'] ?? '') as String),
fee = map['fee'] as int ?? 0;
fee = map['fee'] as int ?? 0 {
additionalInfo = {
'key': key,
'accountIndex': accountIndex,
'addressIndex': addressIndex
};
}
MoneroTransactionInfo.fromRow(TransactionInfoRow row)
: id = row.getHash(),
@ -36,7 +42,13 @@ class MoneroTransactionInfo extends TransactionInfo {
accountIndex = row.subaddrAccount,
addressIndex = row.subaddrIndex,
key = getTxKey(row.getHash()),
fee = row.fee;
fee = row.fee {
additionalInfo = {
'key': key,
'accountIndex': accountIndex,
'addressIndex': addressIndex
};
}
final String id;
final int height;

@ -288,4 +288,9 @@ class CWMonero extends Monero {
WalletService createMoneroWalletService(Box<WalletInfo> walletInfoSource) {
return MoneroWalletService(walletInfoSource);
}
String getTransactionAddress(Object wallet, int accountIndex, int addressIndex) {
final moneroWallet = wallet as MoneroWallet;
return moneroWallet.getTransactionAddress(accountIndex, addressIndex);
}
}

@ -13,6 +13,7 @@ import 'package:mobx/mobx.dart';
import 'package:cake_wallet/store/settings_store.dart';
import 'package:cake_wallet/generated/i18n.dart';
import 'package:url_launcher/url_launcher.dart';
import 'package:cake_wallet/monero/monero.dart';
part 'transaction_details_view_model.g.dart';
@ -31,6 +32,9 @@ abstract class TransactionDetailsViewModelBase with Store {
final dateFormat = DateFormatter.withCurrentLocal();
final tx = transactionInfo;
final key = tx.additionalInfo['key'] as String;
final accountIndex = tx.additionalInfo['accountIndex'] as int;
final addressIndex = tx.additionalInfo['addressIndex'] as int;
if (wallet.type == WalletType.monero) {
final _items = [
@ -46,30 +50,27 @@ abstract class TransactionDetailsViewModelBase with Store {
value: tx.amountFormatted()),
StandartListItem(
title: S.current.transaction_details_fee, value: tx.feeFormatted()),
if (key?.isNotEmpty ?? false)
StandartListItem(title: S.current.transaction_key, value: key)
];
//if (tx.key?.isNotEmpty ?? null) {
// _items.add(
// StandartListItem(title: S.current.transaction_key, value: tx.key));
//}
//if (tx.direction == TransactionDirection.incoming) {
// try {
// final accountIndex = tx.accountIndex;
// final addressIndex = tx.addressIndex;
//final address = moneroUtils.getTransactionAddress(wallet, accountIndex, addressIndex);
//if (address?.isNotEmpty ?? false) {
// isRecipientAddressShown = true;
// _items.add(
// StandartListItem(
// title: S.current.transaction_details_recipient_address,
// value: address));
//}
// } catch (e) {
// print(e.toString());
// }
//}
if (tx.direction == TransactionDirection.incoming &&
accountIndex != null &&
addressIndex != null) {
try {
final address = monero.getTransactionAddress(wallet, accountIndex, addressIndex);
if (address?.isNotEmpty ?? false) {
isRecipientAddressShown = true;
_items.add(
StandartListItem(
title: S.current.transaction_details_recipient_address,
value: address));
}
} catch (e) {
print(e.toString());
}
}
items.addAll(_items);
}

@ -204,6 +204,8 @@ abstract class Monero {
MoneroWalletDetails getMoneroWalletDetails(Object wallet);
String getTransactionAddress(Object wallet, int accountIndex, int addressIndex);
int getHeigthByDate({DateTime date});
TransactionPriority getDefaultTransactionPriority();
TransactionPriority deserializeMoneroTransactionPriority({int raw});

Loading…
Cancel
Save