diff --git a/cw_core/lib/wallet_addresses.dart b/cw_core/lib/wallet_addresses.dart index ca488cfed..4324823c5 100644 --- a/cw_core/lib/wallet_addresses.dart +++ b/cw_core/lib/wallet_addresses.dart @@ -23,7 +23,7 @@ abstract class WalletAddresses { return _localAddress ?? address; } - String? get primaryAddress => null; + String get primaryAddress; String? _localAddress; diff --git a/cw_evm/lib/evm_chain_wallet_addresses.dart b/cw_evm/lib/evm_chain_wallet_addresses.dart index 4615d79ed..7dd501cc5 100644 --- a/cw_evm/lib/evm_chain_wallet_addresses.dart +++ b/cw_evm/lib/evm_chain_wallet_addresses.dart @@ -17,6 +17,9 @@ abstract class EVMChainWalletAddressesBase extends WalletAddresses with Store { @observable String address; + @override + String get primaryAddress => address; + @override Future init() async { address = walletInfo.address; diff --git a/cw_monero/lib/monero_wallet_addresses.dart b/cw_monero/lib/monero_wallet_addresses.dart index c8a4448a4..ae78132d3 100644 --- a/cw_monero/lib/monero_wallet_addresses.dart +++ b/cw_monero/lib/monero_wallet_addresses.dart @@ -29,6 +29,9 @@ abstract class MoneroWalletAddressesBase extends WalletAddresses with Store { @observable String address; + @override + String get primaryAddress => getAddress(accountIndex: account?.id ?? 0, addressIndex: 0); + @override String get latestAddress { var addressIndex = subaddress_list.numSubaddresses(account?.id??0) - 1; diff --git a/cw_nano/lib/nano_wallet_addresses.dart b/cw_nano/lib/nano_wallet_addresses.dart index cc532d2c7..e8eae7737 100644 --- a/cw_nano/lib/nano_wallet_addresses.dart +++ b/cw_nano/lib/nano_wallet_addresses.dart @@ -18,6 +18,9 @@ abstract class NanoWalletAddressesBase extends WalletAddresses with Store { @observable String address; + @override + String get primaryAddress => address; + @observable NanoAccount? account; diff --git a/cw_solana/lib/solana_wallet_addresses.dart b/cw_solana/lib/solana_wallet_addresses.dart index 97a76fb99..19eb91fa1 100644 --- a/cw_solana/lib/solana_wallet_addresses.dart +++ b/cw_solana/lib/solana_wallet_addresses.dart @@ -14,6 +14,9 @@ abstract class SolanaWalletAddressesBase extends WalletAddresses with Store { @override String address; + @override + String get primaryAddress => address; + @override Future init() async { address = walletInfo.address; diff --git a/cw_tron/lib/tron_wallet_addresses.dart b/cw_tron/lib/tron_wallet_addresses.dart index 35939de26..095f97fa9 100644 --- a/cw_tron/lib/tron_wallet_addresses.dart +++ b/cw_tron/lib/tron_wallet_addresses.dart @@ -17,6 +17,9 @@ abstract class TronWalletAddressesBase extends WalletAddresses with Store { @observable String address; + @override + String get primaryAddress => address; + @override Future init() async { address = walletInfo.address; diff --git a/cw_wownero/lib/wownero_wallet_addresses.dart b/cw_wownero/lib/wownero_wallet_addresses.dart index b2f9ec67a..eed81eb45 100644 --- a/cw_wownero/lib/wownero_wallet_addresses.dart +++ b/cw_wownero/lib/wownero_wallet_addresses.dart @@ -29,6 +29,9 @@ abstract class WowneroWalletAddressesBase extends WalletAddresses with Store { @observable String address; + @override + String get primaryAddress => getAddress(accountIndex: account?.id ?? 0, addressIndex: 0); + @override String get latestAddress { var addressIndex = subaddress_list.numSubaddresses(account?.id??0) - 1; diff --git a/lib/view_model/send/send_view_model.dart b/lib/view_model/send/send_view_model.dart index 334394a18..4064a1258 100644 --- a/lib/view_model/send/send_view_model.dart +++ b/lib/view_model/send/send_view_model.dart @@ -482,12 +482,18 @@ abstract class SendViewModelBase extends WalletChangeListenerViewModel with Stor nano!.updateTransactions(wallet); } + if (pendingTransaction!.id.isNotEmpty) { + + final descriptionKey = '${pendingTransaction!.id}_${wallet.walletAddresses.primaryAddress}'; _settingsStore.shouldSaveRecipientAddress ? await transactionDescriptionBox.add(TransactionDescription( - id: pendingTransaction!.id, recipientAddress: address, transactionNote: note)) - : await transactionDescriptionBox - .add(TransactionDescription(id: pendingTransaction!.id, transactionNote: note)); + id: descriptionKey, + recipientAddress: address, + transactionNote: note)) + : await transactionDescriptionBox.add(TransactionDescription( + id: descriptionKey, + transactionNote: note)); } state = TransactionCommitted(); diff --git a/lib/view_model/transaction_details_view_model.dart b/lib/view_model/transaction_details_view_model.dart index a96d70a90..1833a0f51 100644 --- a/lib/view_model/transaction_details_view_model.dart +++ b/lib/view_model/transaction_details_view_model.dart @@ -110,9 +110,11 @@ abstract class TransactionDetailsViewModelBase with Store { } catch (e) {} })); + final descriptionKey = '${transactionInfo.txHash}_${wallet.walletAddresses.primaryAddress}'; + final description = transactionDescriptionBox.values.firstWhere( - (val) => val.id == transactionInfo.txHash, - orElse: () => TransactionDescription(id: transactionInfo.txHash)); + (val) => val.id == descriptionKey || val.id == transactionInfo.txHash, + orElse: () => TransactionDescription(id: descriptionKey)); items.add(TextFieldListItem( title: S.current.note_tap_to_change,