mirror of
https://github.com/Such-Software/hash-wallet.git
synced 2026-10-26 06:08:40 +01:00
* fix android CI * feat: add anypay core models, parser and routing engine * feat: add anypay resolver, anypay service and wallet switch service * refactor: route the send page payment flow through anypay service * fix: show message when there's no swap providers for a pair and reset the trade guard on dismissal * refactor: merge the swap from network and send to network decision pages together and clean up anypay widgets * feat: reapply deep links to a currently open send flow and register the solana scheme * feat: add support for zcash address detection to anypay and other minor fixes * refactor: remove trailing icon * feat: hide swap flow for sp and mweb addresses * feat: enhance zcash address detection and deeplink handling * fix: pin bitcoin_base * refactor: Move the anypay decision navigation out of the send page and address minor review comments * refactor: Move the anypay decision navigation out of the send page and address minor review comments * feat: handle exception in switch service and mvoe balance compute to call site * refactor: combine anypay entry points to one and extract selected mode widget --------- Co-authored-by: Czarek Nakamoto <cyjan@mrcyjanek.net>
30 lines
1.0 KiB
Dart
30 lines
1.0 KiB
Dart
import "package:cake_wallet/core/wallet_loading_service.dart";
|
|
import "package:cake_wallet/store/app_store.dart";
|
|
import "package:cw_core/exceptions.dart";
|
|
import "package:cw_core/wallet_info.dart";
|
|
|
|
class WalletSwitchService {
|
|
WalletSwitchService({
|
|
required WalletLoadingService walletLoadingService,
|
|
required AppStore appStore,
|
|
}) : _walletLoadingService = walletLoadingService,
|
|
_appStore = appStore;
|
|
|
|
final AppStore _appStore;
|
|
final WalletLoadingService _walletLoadingService;
|
|
|
|
Future<void> switchToWallet(WalletInfo walletInfo) async {
|
|
final wallet = await _walletLoadingService.load(walletInfo.type, walletInfo.name);
|
|
|
|
// load() recovers from a corrupted wallet by opening any other wallet it can,
|
|
// so the one it returns may not be the one that was requested.
|
|
if (wallet.name != walletInfo.name || wallet.type != walletInfo.type) {
|
|
throw WalletSwitchException(
|
|
"wallet switch loaded ${wallet.name} instead of ${walletInfo.name}",
|
|
);
|
|
}
|
|
|
|
await _appStore.changeCurrentWallet(wallet);
|
|
}
|
|
}
|