feat(mobile-app): add DST network support to deposit page
- Add DST to NetworkType enum - Add dstAddress field to DepositAddressResponse - Update deposit_service to fetch and cache DST address - Add DST network button in deposit page UI 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
parent
c6c4a75984
commit
e8be584336
|
|
@ -7,12 +7,14 @@ import '../storage/storage_keys.dart';
|
|||
class DepositAddressResponse {
|
||||
final String? kavaAddress;
|
||||
final String? bscAddress;
|
||||
final String? dstAddress;
|
||||
final bool isValid;
|
||||
final String? message;
|
||||
|
||||
DepositAddressResponse({
|
||||
this.kavaAddress,
|
||||
this.bscAddress,
|
||||
this.dstAddress,
|
||||
required this.isValid,
|
||||
this.message,
|
||||
});
|
||||
|
|
@ -21,6 +23,7 @@ class DepositAddressResponse {
|
|||
return DepositAddressResponse(
|
||||
kavaAddress: json['kavaAddress'],
|
||||
bscAddress: json['bscAddress'],
|
||||
dstAddress: json['dstAddress'],
|
||||
isValid: json['isValid'] ?? false,
|
||||
message: json['message'],
|
||||
);
|
||||
|
|
@ -96,13 +99,16 @@ class DepositService {
|
|||
// 先尝试从本地存储读取
|
||||
final kavaAddress = await _secureStorage.read(key: StorageKeys.walletAddressKava);
|
||||
final bscAddress = await _secureStorage.read(key: StorageKeys.walletAddressBsc);
|
||||
final dstAddress = await _secureStorage.read(key: StorageKeys.walletAddressDst);
|
||||
|
||||
if (kavaAddress != null && kavaAddress.isNotEmpty &&
|
||||
bscAddress != null && bscAddress.isNotEmpty) {
|
||||
debugPrint('从本地存储获取充值地址: kava=$kavaAddress, bsc=$bscAddress');
|
||||
bscAddress != null && bscAddress.isNotEmpty &&
|
||||
dstAddress != null && dstAddress.isNotEmpty) {
|
||||
debugPrint('从本地存储获取充值地址: kava=$kavaAddress, bsc=$bscAddress, dst=$dstAddress');
|
||||
return DepositAddressResponse(
|
||||
kavaAddress: kavaAddress,
|
||||
bscAddress: bscAddress,
|
||||
dstAddress: dstAddress,
|
||||
isValid: true,
|
||||
);
|
||||
}
|
||||
|
|
@ -120,8 +126,9 @@ class DepositService {
|
|||
if (addresses != null) {
|
||||
final kava = addresses['kava'] as String?;
|
||||
final bsc = addresses['bsc'] as String?;
|
||||
final dst = addresses['dst'] as String?;
|
||||
|
||||
debugPrint('从服务器获取充值地址成功: kava=$kava, bsc=$bsc');
|
||||
debugPrint('从服务器获取充值地址成功: kava=$kava, bsc=$bsc, dst=$dst');
|
||||
|
||||
// 保存到本地存储
|
||||
if (kava != null && kava.isNotEmpty) {
|
||||
|
|
@ -130,12 +137,16 @@ class DepositService {
|
|||
if (bsc != null && bsc.isNotEmpty) {
|
||||
await _secureStorage.write(key: StorageKeys.walletAddressBsc, value: bsc);
|
||||
}
|
||||
if (dst != null && dst.isNotEmpty) {
|
||||
await _secureStorage.write(key: StorageKeys.walletAddressDst, value: dst);
|
||||
}
|
||||
|
||||
return DepositAddressResponse(
|
||||
kavaAddress: kava,
|
||||
bscAddress: bsc,
|
||||
isValid: kava != null && bsc != null,
|
||||
message: (kava == null || bsc == null) ? '部分地址未生成' : null,
|
||||
dstAddress: dst,
|
||||
isValid: kava != null && bsc != null && dst != null,
|
||||
message: (kava == null || bsc == null || dst == null) ? '部分地址未生成' : null,
|
||||
);
|
||||
}
|
||||
} else if (data != null && data['status'] == 'generating') {
|
||||
|
|
|
|||
|
|
@ -9,6 +9,7 @@ import '../../../../core/di/injection_container.dart';
|
|||
enum NetworkType {
|
||||
kava,
|
||||
bsc,
|
||||
dst,
|
||||
}
|
||||
|
||||
/// 充值 USDT 页面
|
||||
|
|
@ -36,6 +37,9 @@ class _DepositUsdtPageState extends ConsumerState<DepositUsdtPage> {
|
|||
/// BSC 网络充值地址
|
||||
String? _bscAddress;
|
||||
|
||||
/// DST 网络充值地址
|
||||
String? _dstAddress;
|
||||
|
||||
@override
|
||||
void initState() {
|
||||
super.initState();
|
||||
|
|
@ -71,6 +75,7 @@ class _DepositUsdtPageState extends ConsumerState<DepositUsdtPage> {
|
|||
|
||||
_kavaAddress = addressResponse.kavaAddress;
|
||||
_bscAddress = addressResponse.bscAddress;
|
||||
_dstAddress = addressResponse.dstAddress;
|
||||
|
||||
// 查询实时余额
|
||||
try {
|
||||
|
|
@ -115,6 +120,8 @@ class _DepositUsdtPageState extends ConsumerState<DepositUsdtPage> {
|
|||
return _kavaAddress ?? '';
|
||||
case NetworkType.bsc:
|
||||
return _bscAddress ?? '';
|
||||
case NetworkType.dst:
|
||||
return _dstAddress ?? '';
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -287,7 +294,7 @@ class _DepositUsdtPageState extends ConsumerState<DepositUsdtPage> {
|
|||
// KAVA 网络按钮
|
||||
Expanded(
|
||||
child: _buildNetworkButton(
|
||||
label: 'KAVA 网络',
|
||||
label: 'KAVA',
|
||||
network: NetworkType.kava,
|
||||
isSelected: _selectedNetwork == NetworkType.kava,
|
||||
),
|
||||
|
|
@ -295,11 +302,19 @@ class _DepositUsdtPageState extends ConsumerState<DepositUsdtPage> {
|
|||
// BSC 网络按钮
|
||||
Expanded(
|
||||
child: _buildNetworkButton(
|
||||
label: 'BSC 网络',
|
||||
label: 'BSC',
|
||||
network: NetworkType.bsc,
|
||||
isSelected: _selectedNetwork == NetworkType.bsc,
|
||||
),
|
||||
),
|
||||
// DST 网络按钮
|
||||
Expanded(
|
||||
child: _buildNetworkButton(
|
||||
label: 'DST',
|
||||
network: NetworkType.dst,
|
||||
isSelected: _selectedNetwork == NetworkType.dst,
|
||||
),
|
||||
),
|
||||
],
|
||||
),
|
||||
),
|
||||
|
|
|
|||
Loading…
Reference in New Issue