Fix monero swaps (#3195)

* Fix monero swaps not showing in history

* await more sublist instances

* await more sublist instances
This commit is contained in:
Omar Hatem
2026-04-23 01:31:44 +02:00
committed by GitHub
parent 2c9d3dae9e
commit 7c8a2b926d
8 changed files with 24 additions and 25 deletions
+2 -2
View File
@@ -67,14 +67,14 @@ abstract class MoneroSubaddressListBase with Store {
Future<void> addSubaddress({required int accountIndex, required String label}) async { Future<void> addSubaddress({required int accountIndex, required String label}) async {
await subaddress_list.addSubaddress(accountIndex: accountIndex, label: label); await subaddress_list.addSubaddress(accountIndex: accountIndex, label: label);
update(accountIndex: accountIndex); await update(accountIndex: accountIndex);
} }
Future<void> setLabelSubaddress( Future<void> setLabelSubaddress(
{required int accountIndex, required int addressIndex, required String label}) async { {required int accountIndex, required int addressIndex, required String label}) async {
await subaddress_list.setLabelForSubaddress( await subaddress_list.setLabelForSubaddress(
accountIndex: accountIndex, addressIndex: addressIndex, label: label); accountIndex: accountIndex, addressIndex: addressIndex, label: label);
update(accountIndex: accountIndex); await update(accountIndex: accountIndex);
} }
void refresh({required int accountIndex}) { void refresh({required int accountIndex}) {
+5 -6
View File
@@ -3,7 +3,6 @@ import 'dart:ffi';
import 'dart:io'; import 'dart:io';
import 'dart:isolate'; import 'dart:isolate';
import 'package:cw_core/format_fixed.dart';
import 'package:cw_core/monero_amount_format.dart'; import 'package:cw_core/monero_amount_format.dart';
import 'package:cw_core/pathForWallet.dart'; import 'package:cw_core/pathForWallet.dart';
import 'package:cw_core/transaction_priority.dart'; import 'package:cw_core/transaction_priority.dart';
@@ -180,7 +179,7 @@ abstract class MoneroWalletBase extends WalletBase<MoneroBalance,
_autoSaveTimer = Timer.periodic( _autoSaveTimer = Timer.periodic(
Duration(seconds: _autoSaveInterval), (_) async => await save()); Duration(seconds: _autoSaveInterval), (_) async => await save());
// update transaction details after restore // update transaction details after restore
walletAddresses.subaddressList.update(accountIndex: walletAddresses.account?.id??0); await walletAddresses.subaddressList.update(accountIndex: walletAddresses.account?.id??0);
} }
@override @override
@@ -504,7 +503,7 @@ abstract class MoneroWalletBase extends WalletBase<MoneroBalance,
await walletAddresses.updateUsedSubaddress(); await walletAddresses.updateUsedSubaddress();
if (isEnabledAutoGenerateSubaddress) { if (isEnabledAutoGenerateSubaddress) {
walletAddresses.updateUnusedSubaddress( await walletAddresses.updateUnusedSubaddress(
accountIndex: walletAddresses.account?.id ?? 0, accountIndex: walletAddresses.account?.id ?? 0,
defaultLabel: walletAddresses.account?.label ?? ''); defaultLabel: walletAddresses.account?.label ?? '');
} }
@@ -951,14 +950,14 @@ abstract class MoneroWalletBase extends WalletBase<MoneroBalance,
} }
} }
void _updateSubAddress(bool enableAutoGenerate, {Account? account}) { Future<void> _updateSubAddress(bool enableAutoGenerate, {Account? account}) async {
if (enableAutoGenerate) { if (enableAutoGenerate) {
walletAddresses.updateUnusedSubaddress( await walletAddresses.updateUnusedSubaddress(
accountIndex: account?.id ?? 0, accountIndex: account?.id ?? 0,
defaultLabel: account?.label ?? '', defaultLabel: account?.label ?? '',
); );
} else { } else {
walletAddresses.updateSubaddressList(accountIndex: account?.id ?? 0); await walletAddresses.updateSubaddressList(accountIndex: account?.id ?? 0);
} }
} }
+5 -5
View File
@@ -72,7 +72,7 @@ abstract class MoneroWalletAddressesBase extends WalletAddresses with Store {
Future<void> init() async { Future<void> init() async {
accountList.update(); accountList.update();
account = accountList.accounts.isEmpty ? Account(id: 0, label: "Primary address") : accountList.accounts.first; account = accountList.accounts.isEmpty ? Account(id: 0, label: "Primary address") : accountList.accounts.first;
updateSubaddressList(accountIndex: account?.id ?? 0); await updateSubaddressList(accountIndex: account?.id ?? 0);
await updateAddressesInBox(); await updateAddressesInBox();
} }
@@ -84,8 +84,8 @@ abstract class MoneroWalletAddressesBase extends WalletAddresses with Store {
addressesMap.clear(); addressesMap.clear();
addressInfos.clear(); addressInfos.clear();
accountList.accounts.forEach((account) { accountList.accounts.forEach((account) async {
_subaddressList.update(accountIndex: account.id); await _subaddressList.update(accountIndex: account.id);
_subaddressList.subaddresses.forEach((subaddress) { _subaddressList.subaddresses.forEach((subaddress) {
addressesMap[subaddress.address] = subaddress.label; addressesMap[subaddress.address] = subaddress.label;
addressInfos[account.id] ??= []; addressInfos[account.id] ??= [];
@@ -122,8 +122,8 @@ abstract class MoneroWalletAddressesBase extends WalletAddresses with Store {
return true; return true;
} }
void updateSubaddressList({required int accountIndex}) { Future<void> updateSubaddressList({required int accountIndex}) async {
subaddressList.update(accountIndex: accountIndex); await subaddressList.update(accountIndex: accountIndex);
address = subaddressList.subaddresses.isNotEmpty address = subaddressList.subaddresses.isNotEmpty
? subaddressList.subaddresses.first.address ? subaddressList.subaddresses.first.address
: getAddress(); : getAddress();
+2 -2
View File
@@ -77,9 +77,9 @@ class CWMoneroSubaddressList extends MoneroSubaddressList {
} }
@override @override
void update(Object wallet, {required int accountIndex}) { Future<void> update(Object wallet, {required int accountIndex}) async {
final moneroWallet = wallet as MoneroWallet; final moneroWallet = wallet as MoneroWallet;
moneroWallet.walletAddresses.subaddressList.update(accountIndex: accountIndex); await moneroWallet.walletAddresses.subaddressList.update(accountIndex: accountIndex);
} }
@override @override
@@ -409,7 +409,7 @@ abstract class WalletAddressListViewModelBase extends WalletChangeListenerViewMo
// update the address list: // update the address list:
await wallet.walletAddresses.saveAddressesInBox(); await wallet.walletAddresses.saveAddressesInBox();
if (wallet.type == WalletType.monero) { if (wallet.type == WalletType.monero) {
monero! await monero!
.getSubaddressList(wallet) .getSubaddressList(wallet)
.update(wallet, accountIndex: monero!.getCurrentAccount(wallet).id); .update(wallet, accountIndex: monero!.getCurrentAccount(wallet).id);
} else if (wallet.type == WalletType.wownero) { } else if (wallet.type == WalletType.wownero) {
+4 -4
View File
@@ -14,15 +14,15 @@ TYPES=($MONERO_COM $CAKEWALLET)
APP_ANDROID_TYPE=$1 APP_ANDROID_TYPE=$1
MONERO_COM_NAME="Monero.com" MONERO_COM_NAME="Monero.com"
MONERO_COM_VERSION="6.1.0" MONERO_COM_VERSION="6.1.2"
MONERO_COM_BUILD_NUMBER=4157 MONERO_COM_BUILD_NUMBER=4158
MONERO_COM_BUNDLE_ID="com.monero.app" MONERO_COM_BUNDLE_ID="com.monero.app"
MONERO_COM_PACKAGE="com.monero.app" MONERO_COM_PACKAGE="com.monero.app"
MONERO_COM_SCHEME="monero.com" MONERO_COM_SCHEME="monero.com"
CAKEWALLET_NAME="Cake Wallet" CAKEWALLET_NAME="Cake Wallet"
CAKEWALLET_VERSION="6.1.1" CAKEWALLET_VERSION="6.1.2"
CAKEWALLET_BUILD_NUMBER=4409 CAKEWALLET_BUILD_NUMBER=4410
CAKEWALLET_BUNDLE_ID="com.cakewallet.cake_wallet" CAKEWALLET_BUNDLE_ID="com.cakewallet.cake_wallet"
CAKEWALLET_PACKAGE="com.cakewallet.cake_wallet" CAKEWALLET_PACKAGE="com.cakewallet.cake_wallet"
CAKEWALLET_SCHEME="cakewallet" CAKEWALLET_SCHEME="cakewallet"
+4 -4
View File
@@ -12,13 +12,13 @@ TYPES=($MONERO_COM $CAKEWALLET)
APP_IOS_TYPE=$1 APP_IOS_TYPE=$1
MONERO_COM_NAME="Monero.com" MONERO_COM_NAME="Monero.com"
MONERO_COM_VERSION="6.1.0" MONERO_COM_VERSION="6.1.2"
MONERO_COM_BUILD_NUMBER=162 MONERO_COM_BUILD_NUMBER=163
MONERO_COM_BUNDLE_ID="com.cakewallet.monero" MONERO_COM_BUNDLE_ID="com.cakewallet.monero"
CAKEWALLET_NAME="Cake Wallet" CAKEWALLET_NAME="Cake Wallet"
CAKEWALLET_VERSION="6.1.1" CAKEWALLET_VERSION="6.1.2"
CAKEWALLET_BUILD_NUMBER=417 CAKEWALLET_BUILD_NUMBER=418
CAKEWALLET_BUNDLE_ID="com.fotolockr.cakewallet" CAKEWALLET_BUNDLE_ID="com.fotolockr.cakewallet"
+1 -1
View File
@@ -490,7 +490,7 @@ WalletCredentials createMoneroNewWalletCredentials({required String name, requir
abstract class MoneroSubaddressList { abstract class MoneroSubaddressList {
ObservableList<Subaddress> get subaddresses; ObservableList<Subaddress> get subaddresses;
void update(Object wallet, {required int accountIndex}); Future<void> update(Object wallet, {required int accountIndex});
void refresh(Object wallet, {required int accountIndex}); void refresh(Object wallet, {required int accountIndex});
Future<List<Subaddress>> getAll(Object wallet); Future<List<Subaddress>> getAll(Object wallet);
Future<void> addSubaddress(Object wallet, {required int accountIndex, required String label}); Future<void> addSubaddress(Object wallet, {required int accountIndex, required String label});