diff --git a/lib/app/service/nekoton_related/connection_service/transport_strategies/custom_transport_strategy.dart b/lib/app/service/nekoton_related/connection_service/transport_strategies/custom_transport_strategy.dart index 79ed69324..2891b6810 100644 --- a/lib/app/service/nekoton_related/connection_service/transport_strategies/custom_transport_strategy.dart +++ b/lib/app/service/nekoton_related/connection_service/transport_strategies/custom_transport_strategy.dart @@ -1,4 +1,3 @@ -import 'package:app/app/service/nekoton_related/connection_service/transport_strategies/utils.dart'; import 'package:app/data/models/models.dart'; import 'package:nekoton_repository/nekoton_repository.dart'; @@ -33,8 +32,21 @@ class CustomTransportStrategy extends TransportStrategy { String currencyUrl(String currencyAddress) => ''; @override - String defaultAccountName(WalletType walletType) => - getDefaultAccountName(walletType); + String defaultAccountName(WalletType walletType) => walletType.when( + multisig: (type) => switch (type) { + MultisigType.safeMultisigWallet => 'SafeMultisig24h', + MultisigType.safeMultisigWallet24h => 'SafeMultisig24h', + MultisigType.setcodeMultisigWallet => 'SetcodeMultisig', + MultisigType.setcodeMultisigWallet24h => 'SetcodeMultisig24h', + MultisigType.bridgeMultisigWallet => 'BridgeMultisig', + MultisigType.surfWallet => 'Surf wallet', + MultisigType.multisig2 => 'Legacy Multisig', + MultisigType.multisig2_1 => 'Multisig', + }, + walletV3: () => 'WalletV3', + highloadWalletV2: () => 'HighloadWalletV2', + everWallet: () => 'Default', + ); @override final defaultWalletType = const WalletType.everWallet(); diff --git a/lib/app/service/nekoton_related/connection_service/transport_strategies/ever_transport_strategy.dart b/lib/app/service/nekoton_related/connection_service/transport_strategies/ever_transport_strategy.dart index 5c52b1abd..267adcb3f 100644 --- a/lib/app/service/nekoton_related/connection_service/transport_strategies/ever_transport_strategy.dart +++ b/lib/app/service/nekoton_related/connection_service/transport_strategies/ever_transport_strategy.dart @@ -1,4 +1,3 @@ -import 'package:app/app/service/nekoton_related/connection_service/transport_strategies/utils.dart'; import 'package:app/data/models/models.dart'; import 'package:app/generated/generated.dart'; import 'package:nekoton_repository/nekoton_repository.dart'; @@ -40,8 +39,21 @@ class EverTransportStrategy extends TransportStrategy { 'https://api.flatqube.io/v1/currencies/$currencyAddress'; @override - String defaultAccountName(WalletType walletType) => - getDefaultAccountName(walletType); + String defaultAccountName(WalletType walletType) => walletType.when( + multisig: (type) => switch (type) { + MultisigType.safeMultisigWallet => 'SafeMultisig24h', + MultisigType.safeMultisigWallet24h => 'SafeMultisig24h', + MultisigType.setcodeMultisigWallet => 'SetcodeMultisig', + MultisigType.setcodeMultisigWallet24h => 'SetcodeMultisig24h', + MultisigType.bridgeMultisigWallet => 'BridgeMultisig', + MultisigType.surfWallet => 'Surf wallet', + MultisigType.multisig2 => 'Multisig', + MultisigType.multisig2_1 => 'Multisig 2.1', + }, + walletV3: () => 'WalletV3', + highloadWalletV2: () => 'HighloadWalletV2', + everWallet: () => 'EVER Wallet', + ); @override final defaultWalletType = const WalletType.everWallet(); diff --git a/lib/app/service/nekoton_related/connection_service/transport_strategies/utils.dart b/lib/app/service/nekoton_related/connection_service/transport_strategies/utils.dart deleted file mode 100644 index f2468e84a..000000000 --- a/lib/app/service/nekoton_related/connection_service/transport_strategies/utils.dart +++ /dev/null @@ -1,27 +0,0 @@ -import 'package:nekoton_repository/nekoton_repository.dart'; - -String getDefaultAccountName(WalletType walletType) => walletType.when( - multisig: (multisigType) { - switch (multisigType) { - case MultisigType.safeMultisigWallet: - return 'SafeMultisig'; - case MultisigType.safeMultisigWallet24h: - return 'SafeMultisig24'; - case MultisigType.setcodeMultisigWallet: - return 'SetcodeMultisig'; - case MultisigType.setcodeMultisigWallet24h: - return 'SetcodeMultisig24'; - case MultisigType.bridgeMultisigWallet: - return 'BridgeMultisig'; - case MultisigType.surfWallet: - return 'Surf wallet'; - case MultisigType.multisig2: - return 'Multisig2'; - case MultisigType.multisig2_1: - return 'Multisig2.1'; - } - }, - everWallet: () => 'EVER Wallet', - walletV3: () => 'Wallet V3', - highloadWalletV2: () => 'HighloadWalletV2', - ); diff --git a/lib/app/service/nekoton_related/connection_service/transport_strategies/venom_transport_strategy.dart b/lib/app/service/nekoton_related/connection_service/transport_strategies/venom_transport_strategy.dart index a4ad2ebc2..334c10120 100644 --- a/lib/app/service/nekoton_related/connection_service/transport_strategies/venom_transport_strategy.dart +++ b/lib/app/service/nekoton_related/connection_service/transport_strategies/venom_transport_strategy.dart @@ -32,29 +32,19 @@ class VenomTransportStrategy extends TransportStrategy { @override String defaultAccountName(WalletType walletType) => walletType.when( - multisig: (multisigType) { - switch (multisigType) { - case MultisigType.safeMultisigWallet: - return 'SafeMultisig'; - case MultisigType.safeMultisigWallet24h: - return 'SafeMultisig24'; - case MultisigType.setcodeMultisigWallet: - return 'SetcodeMultisig'; - case MultisigType.setcodeMultisigWallet24h: - return 'SetcodeMultisig24'; - case MultisigType.bridgeMultisigWallet: - return 'Legacy Multisignature'; - case MultisigType.surfWallet: - return 'Surf'; - case MultisigType.multisig2: - return 'Multisig2'; - case MultisigType.multisig2_1: - return 'Multisignature'; - } + multisig: (type) => switch (type) { + MultisigType.safeMultisigWallet => 'SafeMultisig24h', + MultisigType.safeMultisigWallet24h => 'SafeMultisig24h', + MultisigType.setcodeMultisigWallet => 'SetcodeMultisig', + MultisigType.setcodeMultisigWallet24h => 'SetcodeMultisig24h', + MultisigType.bridgeMultisigWallet => 'BridgeMultisig', + MultisigType.surfWallet => 'Surf wallet', + MultisigType.multisig2 => 'Legacy Multisig', + MultisigType.multisig2_1 => 'Multisig', }, - everWallet: () => 'Default', walletV3: () => 'Legacy', highloadWalletV2: () => 'HighloadWalletV2', + everWallet: () => 'Default', ); @override diff --git a/lib/feature/wallet/widgets/wallet_app_bar/wallet_app_bar_model.dart b/lib/feature/wallet/widgets/wallet_app_bar/wallet_app_bar_model.dart index 2ec9e7294..922e0fcac 100644 --- a/lib/feature/wallet/widgets/wallet_app_bar/wallet_app_bar_model.dart +++ b/lib/feature/wallet/widgets/wallet_app_bar/wallet_app_bar_model.dart @@ -30,6 +30,8 @@ class WalletAppBarModel extends ElementaryModel { ), ); - Stream get connection => + Stream get connectionStream => _storageService.currentConnectionStream; + + TransportStrategy get transport => _nekotonRepository.currentTransport; } diff --git a/lib/feature/wallet/widgets/wallet_app_bar/wallet_app_bar_widget.dart b/lib/feature/wallet/widgets/wallet_app_bar/wallet_app_bar_widget.dart index 3e868256c..7b7e3a7db 100644 --- a/lib/feature/wallet/widgets/wallet_app_bar/wallet_app_bar_widget.dart +++ b/lib/feature/wallet/widgets/wallet_app_bar/wallet_app_bar_widget.dart @@ -40,6 +40,9 @@ class WalletAppBarWidget extends ElementaryWidget (value) => _AccountInfo( account: value, walletState: walletState, + walletTypeName: wm.getWalletTypeName( + account.account.tonWallet.contract, + ), ), ) ?? const SizedBox.shrink(), @@ -80,15 +83,16 @@ class _AccountInfo extends StatelessWidget { const _AccountInfo({ required this.account, required this.walletState, + required this.walletTypeName, }); final KeyAccount account; final TonWalletState? walletState; + final String walletTypeName; @override Widget build(BuildContext context) { final theme = context.themeStyleV2; - final contract = account.account.tonWallet.contract; final custodians = walletState?.wallet?.custodians?.length ?? 1; final requiredConfirmations = walletState?.wallet?.details.requiredConfirmations; @@ -119,7 +123,7 @@ class _AccountInfo extends StatelessWidget { const SizedBox(width: DimensSizeV2.d4), Flexible( child: Text( - contract.toReadableName(), + walletTypeName, style: theme.textStyles.labelXSmall.copyWith( color: theme.colors.content3, ), @@ -155,21 +159,3 @@ class _AccountInfo extends StatelessWidget { ); } } - -extension on WalletType { - String toReadableName() => when( - multisig: (type) => switch (type) { - MultisigType.safeMultisigWallet => 'SafeMultisig24h', - MultisigType.safeMultisigWallet24h => 'SafeMultisig24h', - MultisigType.setcodeMultisigWallet => 'SetcodeMultisig', - MultisigType.setcodeMultisigWallet24h => 'SetcodeMultisig24h', - MultisigType.bridgeMultisigWallet => 'BridgeMultisig', - MultisigType.surfWallet => 'Surf wallet', - MultisigType.multisig2 => 'Multisig', - MultisigType.multisig2_1 => 'Multisig 2.1', - }, - walletV3: () => 'WalletV3', - highloadWalletV2: () => 'HighloadWalletV2', - everWallet: () => 'EVER Wallet', - ); -} diff --git a/lib/feature/wallet/widgets/wallet_app_bar/wallet_app_bar_wm.dart b/lib/feature/wallet/widgets/wallet_app_bar/wallet_app_bar_wm.dart index c51605505..e35aade51 100644 --- a/lib/feature/wallet/widgets/wallet_app_bar/wallet_app_bar_wm.dart +++ b/lib/feature/wallet/widgets/wallet_app_bar/wallet_app_bar_wm.dart @@ -29,7 +29,7 @@ class WalletAppBarWidgetModel late final _currentAccount = createNotifierFromStream(model.currentAccount); late final _walletState = createNotifierFromStream(model.walletState); - late final _connection = createNotifierFromStream(model.connection); + late final _connection = createNotifierFromStream(model.connectionStream); ListenableState get currentAccount => _currentAccount; @@ -39,6 +39,9 @@ class WalletAppBarWidgetModel ThemeStyleV2 get theme => context.themeStyleV2; + String getWalletTypeName(WalletType walletType) => + model.transport.defaultAccountName(walletType); + void onNetwork() { showSelectNetworkSheet(context: context); }