chain network name display fixed

This commit is contained in:
Stephan D
2025-12-24 18:17:35 +01:00
parent 5836292adb
commit 9e6d530385
24 changed files with 143 additions and 78 deletions

View File

@@ -83,7 +83,9 @@ String fxSideToValue(FxSide side) {
}
ChainNetwork chainNetworkFromValue(String? value) {
switch (value) {
final raw = value ?? '';
final normalized = _normalizeChainNetwork(raw);
switch (normalized) {
case 'ethereum_mainnet':
return ChainNetwork.ethereumMainnet;
case 'arbitrum_one':
@@ -95,7 +97,7 @@ ChainNetwork chainNetworkFromValue(String? value) {
case 'unspecified':
return ChainNetwork.unspecified;
default:
throw ArgumentError('Unknown ChainNetwork value: $value');
throw ArgumentError('Unknown ChainNetwork value: $raw');
}
}
@@ -114,6 +116,19 @@ String chainNetworkToValue(ChainNetwork chain) {
}
}
String _normalizeChainNetwork(String value) {
final trimmed = value.trim();
if (trimmed.isEmpty) {
return 'unspecified';
}
final lower = trimmed.toLowerCase();
const prefix = 'chain_network_';
if (lower.startsWith(prefix)) {
return lower.substring(prefix.length);
}
return lower;
}
InsufficientNetPolicy insufficientNetPolicyFromValue(String? value) {
switch (value) {
case 'block_posting':

View File

@@ -0,0 +1,20 @@
import 'package:pshared/data/dto/wallet/asset.dart';
import 'package:pshared/data/mapper/payment/enums.dart';
import 'package:pshared/models/wallet/wallet.dart';
extension WalletAssetDTOMapper on WalletAssetDTO {
WalletAsset toDomain() => WalletAsset(
chain: chainNetworkFromValue(chain),
tokenSymbol: tokenSymbol,
contractAddress: contractAddress,
);
}
extension WalletAssetMapper on WalletAsset {
WalletAssetDTO toDTO() => WalletAssetDTO(
chain: chainNetworkToValue(chain),
tokenSymbol: tokenSymbol,
contractAddress: contractAddress,
);
}

View File

@@ -1,21 +1,17 @@
import 'package:pshared/data/dto/wallet/balance.dart';
import 'package:pshared/data/dto/wallet/wallet.dart';
import 'package:pshared/data/mapper/wallet/asset.dart';
import 'package:pshared/data/mapper/wallet/balance.dart';
import 'package:pshared/data/mapper/wallet/money.dart';
import 'package:pshared/models/describable.dart';
import 'package:pshared/models/wallet/wallet.dart';
extension WalletDTOMapper on WalletDTO {
WalletModel toDomain({WalletBalanceDTO? balance}) => WalletModel(
walletRef: walletRef,
organizationRef: organizationRef,
ownerRef: ownerRef,
asset: WalletAsset(
chain: asset.chain,
tokenSymbol: asset.tokenSymbol,
contractAddress: asset.contractAddress,
),
asset: asset.toDomain(),
depositAddress: depositAddress,
status: status,
metadata: metadata,
@@ -24,7 +20,7 @@ extension WalletDTOMapper on WalletDTO {
balance: balance?.toDomain(),
availableMoney: balance?.available?.toDomain(),
describable: newDescribable(
name: name.isNotEmpty ? name : (metadata?['name'] ?? 'Crypto Wallet'),
name: name.isNotEmpty ? name : (metadata?['name']?.toString() ?? ''),
description: (description != null && description!.isNotEmpty)
? description
: metadata?['description'],

View File

@@ -1,10 +1,11 @@
import 'package:pshared/models/describable.dart';
import 'package:pshared/models/payment/chain_network.dart';
import 'package:pshared/models/wallet/balance.dart';
import 'package:pshared/models/wallet/money.dart';
import 'package:pshared/models/describable.dart';
class WalletAsset {
final String chain;
final ChainNetwork chain;
final String tokenSymbol;
final String contractAddress;