Fix monero swaps (#3195)
* Fix monero swaps not showing in history * await more sublist instances * await more sublist instances
Omar Hatem committed
Apr 23, 2026 at 01:31 UTC
7c8a2b926d99dcfe10851d8527e896f68e38edf9
8 files changed
+24
-25
cw_monero/lib/monero_subaddress_list.dart
+2
-2
@@ -67,14 +67,14 @@ abstract class MoneroSubaddressListBase with Store {
67
68
Future<void> addSubaddress({required int accountIndex, required String label}) async {
69
await subaddress_list.addSubaddress(accountIndex: accountIndex, label: label);
70
- update(accountIndex: accountIndex);
70
+ await update(accountIndex: accountIndex);
71
}
72
73
Future<void> setLabelSubaddress(
74
{required int accountIndex, required int addressIndex, required String label}) async {
75
await subaddress_list.setLabelForSubaddress(
76
accountIndex: accountIndex, addressIndex: addressIndex, label: label);
77
- update(accountIndex: accountIndex);
77
+ await update(accountIndex: accountIndex);
78
}
79
80
void refresh({required int accountIndex}) {
cw_monero/lib/monero_wallet.dart
+5
-6
@@ -3,7 +3,6 @@ import 'dart:ffi';
3
import 'dart:io';
4
import 'dart:isolate';
5
6
-import 'package:cw_core/format_fixed.dart';
6
import 'package:cw_core/monero_amount_format.dart';
7
import 'package:cw_core/pathForWallet.dart';
8
import 'package:cw_core/transaction_priority.dart';
@@ -180,7 +179,7 @@ abstract class MoneroWalletBase extends WalletBase<MoneroBalance,
179
_autoSaveTimer = Timer.periodic(
180
Duration(seconds: _autoSaveInterval), (_) async => await save());
181
// update transaction details after restore
183
- walletAddresses.subaddressList.update(accountIndex: walletAddresses.account?.id??0);
182
+ await walletAddresses.subaddressList.update(accountIndex: walletAddresses.account?.id??0);
183
}
184
185
@override
@@ -504,7 +503,7 @@ abstract class MoneroWalletBase extends WalletBase<MoneroBalance,
503
await walletAddresses.updateUsedSubaddress();
504
505
if (isEnabledAutoGenerateSubaddress) {
507
- walletAddresses.updateUnusedSubaddress(
506
+ await walletAddresses.updateUnusedSubaddress(
507
accountIndex: walletAddresses.account?.id ?? 0,
508
defaultLabel: walletAddresses.account?.label ?? '');
509
}
@@ -951,14 +950,14 @@ abstract class MoneroWalletBase extends WalletBase<MoneroBalance,
950
}
951
}
952
954
- void _updateSubAddress(bool enableAutoGenerate, {Account? account}) {
953
+ Future<void> _updateSubAddress(bool enableAutoGenerate, {Account? account}) async {
954
if (enableAutoGenerate) {
956
- walletAddresses.updateUnusedSubaddress(
955
+ await walletAddresses.updateUnusedSubaddress(
956
accountIndex: account?.id ?? 0,
957
defaultLabel: account?.label ?? '',
958
);
959
} else {
961
- walletAddresses.updateSubaddressList(accountIndex: account?.id ?? 0);
960
+ await walletAddresses.updateSubaddressList(accountIndex: account?.id ?? 0);
961
}
962
}
963
cw_monero/lib/monero_wallet_addresses.dart
+5
-5
@@ -72,7 +72,7 @@ abstract class MoneroWalletAddressesBase extends WalletAddresses with Store {
72
Future<void> init() async {
73
accountList.update();
74
account = accountList.accounts.isEmpty ? Account(id: 0, label: "Primary address") : accountList.accounts.first;
75
- updateSubaddressList(accountIndex: account?.id ?? 0);
75
+ await updateSubaddressList(accountIndex: account?.id ?? 0);
76
await updateAddressesInBox();
77
}
78
@@ -84,8 +84,8 @@ abstract class MoneroWalletAddressesBase extends WalletAddresses with Store {
84
addressesMap.clear();
85
addressInfos.clear();
86
87
- accountList.accounts.forEach((account) {
88
- _subaddressList.update(accountIndex: account.id);
87
+ accountList.accounts.forEach((account) async {
88
+ await _subaddressList.update(accountIndex: account.id);
89
_subaddressList.subaddresses.forEach((subaddress) {
90
addressesMap[subaddress.address] = subaddress.label;
91
addressInfos[account.id] ??= [];
@@ -122,8 +122,8 @@ abstract class MoneroWalletAddressesBase extends WalletAddresses with Store {
122
return true;
123
}
124
125
- void updateSubaddressList({required int accountIndex}) {
126
- subaddressList.update(accountIndex: accountIndex);
125
+ Future<void> updateSubaddressList({required int accountIndex}) async {
126
+ await subaddressList.update(accountIndex: accountIndex);
127
address = subaddressList.subaddresses.isNotEmpty
128
? subaddressList.subaddresses.first.address
129
: getAddress();
lib/monero/cw_monero.dart
+2
-2
@@ -77,9 +77,9 @@ class CWMoneroSubaddressList extends MoneroSubaddressList {
77
}
78
79
@override
80
- void update(Object wallet, {required int accountIndex}) {
80
+ Future<void> update(Object wallet, {required int accountIndex}) async {
81
final moneroWallet = wallet as MoneroWallet;
82
- moneroWallet.walletAddresses.subaddressList.update(accountIndex: accountIndex);
82
+ await moneroWallet.walletAddresses.subaddressList.update(accountIndex: accountIndex);
83
}
84
85
@override
lib/view_model/wallet_address_list/wallet_address_list_view_model.dart
+1
-1
@@ -409,7 +409,7 @@ abstract class WalletAddressListViewModelBase extends WalletChangeListenerViewMo
409
// update the address list:
410
await wallet.walletAddresses.saveAddressesInBox();
411
if (wallet.type == WalletType.monero) {
412
- monero!
412
+ await monero!
413
.getSubaddressList(wallet)
414
.update(wallet, accountIndex: monero!.getCurrentAccount(wallet).id);
415
} else if (wallet.type == WalletType.wownero) {
scripts/android/app_env.sh
+4
-4
@@ -14,15 +14,15 @@ TYPES=($MONERO_COM $CAKEWALLET)
14
APP_ANDROID_TYPE=$1
15
16
MONERO_COM_NAME="Monero.com"
17
-MONERO_COM_VERSION="6.1.0"
18
-MONERO_COM_BUILD_NUMBER=4157
17
+MONERO_COM_VERSION="6.1.2"
18
+MONERO_COM_BUILD_NUMBER=4158
19
MONERO_COM_BUNDLE_ID="com.monero.app"
20
MONERO_COM_PACKAGE="com.monero.app"
21
MONERO_COM_SCHEME="monero.com"
22
23
CAKEWALLET_NAME="Cake Wallet"
24
-CAKEWALLET_VERSION="6.1.1"
25
-CAKEWALLET_BUILD_NUMBER=4409
24
+CAKEWALLET_VERSION="6.1.2"
25
+CAKEWALLET_BUILD_NUMBER=4410
26
CAKEWALLET_BUNDLE_ID="com.cakewallet.cake_wallet"
27
CAKEWALLET_PACKAGE="com.cakewallet.cake_wallet"
28
CAKEWALLET_SCHEME="cakewallet"
scripts/ios/app_env.sh
+4
-4
@@ -12,13 +12,13 @@ TYPES=($MONERO_COM $CAKEWALLET)
12
APP_IOS_TYPE=$1
13
14
MONERO_COM_NAME="Monero.com"
15
-MONERO_COM_VERSION="6.1.0"
16
-MONERO_COM_BUILD_NUMBER=162
15
+MONERO_COM_VERSION="6.1.2"
16
+MONERO_COM_BUILD_NUMBER=163
17
MONERO_COM_BUNDLE_ID="com.cakewallet.monero"
18
19
CAKEWALLET_NAME="Cake Wallet"
20
-CAKEWALLET_VERSION="6.1.1"
21
-CAKEWALLET_BUILD_NUMBER=417
20
+CAKEWALLET_VERSION="6.1.2"
21
+CAKEWALLET_BUILD_NUMBER=418
22
CAKEWALLET_BUNDLE_ID="com.fotolockr.cakewallet"
23
24
tool/configure.dart
+1
-1
@@ -490,7 +490,7 @@ WalletCredentials createMoneroNewWalletCredentials({required String name, requir
490
491
abstract class MoneroSubaddressList {
492
ObservableList<Subaddress> get subaddresses;
493
- void update(Object wallet, {required int accountIndex});
493
+ Future<void> update(Object wallet, {required int accountIndex});
494
void refresh(Object wallet, {required int accountIndex});
495
Future<List<Subaddress>> getAll(Object wallet);
496
Future<void> addSubaddress(Object wallet, {required int accountIndex, required String label});