CW-1024 Improve performance of xmr wallet (#2128)

* - enabled development options in CI builds.
- Implemented caching for account retrieval.
- refactor transaction handling in `dashboard_view_model.dart` to improve efficiency and reduce unnecessary updates in xmr.
- `DevMoneroCallProfilerPage`, for profiling performance of xmr,wow,zano wallet calls.

* use FeatureFlag.hasDevOptions

* prevent crashes in monero_c by using mutexes properly
improve performance of _transactionDisposer
remove unnecessary checks

* remove logging, bring back simplified logic

* update _transactionDisposer on length and confirmation of first and last transaction

* address comments from review

* don't throw unhandled exceptions in unawaited async code

* use cached transaction list in getAllSubaddresses, fix usage of txHistoryMutex

* [DNM] fix: crashes when opening wallet, performance issue when syncing and update dependencies

* Revert "use cached transaction list in getAllSubaddresses, fix usage of txHistoryMutex"

This reverts commit 4c4c33ac6a47603e970a6c8d940e90204525b241.

* Revert "[DNM] fix: crashes when opening wallet, performance issue when syncing and update dependencies"

This reverts commit d7603445ad6ae76d76bf179c34728ce242c8c610.

* Revert "use cached transaction list in getAllSubaddresses, fix usage of txHistoryMutex"

This reverts commit 4c4c33ac6a47603e970a6c8d940e90204525b241.

* update shared_preferences

* improve state management performance by not rendering multiple changes in transaction screen on a single frame

* fix wallet switching
This commit is contained in:
cyan 2025-04-03 03:31:25 +02:00 committed by GitHub
parent 27eaa1b1cc
commit cbca4c9c77
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
25 changed files with 498 additions and 105 deletions

View file

@ -425,6 +425,7 @@ abstract class Monero {
void setLedgerConnection(Object wallet, ledger.LedgerConnection connection);
void resetLedgerConnection();
void setGlobalLedgerConnection(ledger.LedgerConnection connection);
Map<String, List<int>> debugCallLength();
}
abstract class MoneroSubaddressList {
@ -610,6 +611,7 @@ abstract class Wownero {
WalletService createWowneroWalletService(Box<WalletInfo> walletInfoSource, Box<UnspentCoinsInfo> unspentCoinSource);
Map<String, String> pendingTransactionInfo(Object transaction);
String getLegacySeed(Object wallet, String langName);
Map<String, List<int>> debugCallLength();
}
abstract class WowneroSubaddressList {
@ -1253,6 +1255,7 @@ import 'package:cw_zano/model/zano_transaction_info.dart';
import 'package:cw_zano/zano_formatter.dart';
import 'package:cw_zano/zano_wallet.dart';
import 'package:cw_zano/zano_wallet_service.dart';
import 'package:cw_zano/zano_wallet_api.dart' as api;
import 'package:cw_zano/zano_utils.dart';
""";
const zanoCwPart = "part 'cw_zano.dart';";
@ -1279,6 +1282,7 @@ abstract class Zano {
Future<CryptoCurrency?> getZanoAsset(WalletBase wallet, String contractAddress);
String getAddress(WalletBase wallet);
bool validateAddress(String address);
Map<String, List<int>> debugCallLength();
}
""";
const zanoEmptyDefinition = 'Zano? zano;\n';