From 317ea1234d3efd3ad193376c80bab4a6e3c3f3f5 Mon Sep 17 00:00:00 2001 From: hailin Date: Wed, 10 Dec 2025 09:07:15 -0800 Subject: [PATCH] fix(mobile): use wallet-service for balance queries MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Planting page: fetch USDT balance from wallet-service instead of blockchain-service - Deposit page: fetch USDT balance from wallet-service instead of blockchain-service This ensures balance reflects internal wallet state, not on-chain balance. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 --- .../presentation/pages/deposit_usdt_page.dart | 15 +++++---------- .../pages/planting_quantity_page.dart | 16 +++++----------- 2 files changed, 10 insertions(+), 21 deletions(-) diff --git a/frontend/mobile-app/lib/features/deposit/presentation/pages/deposit_usdt_page.dart b/frontend/mobile-app/lib/features/deposit/presentation/pages/deposit_usdt_page.dart index 9822fe5f..cc05ce30 100644 --- a/frontend/mobile-app/lib/features/deposit/presentation/pages/deposit_usdt_page.dart +++ b/frontend/mobile-app/lib/features/deposit/presentation/pages/deposit_usdt_page.dart @@ -77,19 +77,14 @@ class _DepositUsdtPageState extends ConsumerState { _bscAddress = addressResponse.bscAddress; _dstAddress = addressResponse.dstAddress; - // 查询实时余额 + // 从 wallet-service 查询钱包余额 try { - final balanceResponse = await depositService.getUsdtBalances(); - // 根据当前选中的网络显示余额 + final walletService = ref.read(walletServiceProvider); + final walletResponse = await walletService.getMyWallet(); + // 显示 USDT 可用余额 if (mounted) { setState(() { - if (_selectedNetwork == NetworkType.kava && balanceResponse.kava != null) { - _balance = balanceResponse.kava!.balance; - } else if (_selectedNetwork == NetworkType.bsc && balanceResponse.bsc != null) { - _balance = balanceResponse.bsc!.balance; - } else { - _balance = '0.00'; - } + _balance = walletResponse.balances.usdt.available.toStringAsFixed(2); _isLoading = false; }); } diff --git a/frontend/mobile-app/lib/features/planting/presentation/pages/planting_quantity_page.dart b/frontend/mobile-app/lib/features/planting/presentation/pages/planting_quantity_page.dart index 5ade4978..0bc9811c 100644 --- a/frontend/mobile-app/lib/features/planting/presentation/pages/planting_quantity_page.dart +++ b/frontend/mobile-app/lib/features/planting/presentation/pages/planting_quantity_page.dart @@ -96,18 +96,12 @@ class _PlantingQuantityPageState extends ConsumerState { }); try { - // 从 API 获取用户 USDT 余额 - final depositService = ref.read(depositServiceProvider); - final balanceResponse = await depositService.getUsdtBalances(); + // 从 wallet-service 获取用户钱包余额 + final walletService = ref.read(walletServiceProvider); + final walletResponse = await walletService.getMyWallet(); - // 合并 KAVA 和 BSC 链的余额 - double totalBalance = 0.0; - if (balanceResponse.kava != null) { - totalBalance += double.tryParse(balanceResponse.kava!.balance) ?? 0.0; - } - if (balanceResponse.bsc != null) { - totalBalance += double.tryParse(balanceResponse.bsc!.balance) ?? 0.0; - } + // 使用钱包中的 USDT 可用余额 + final totalBalance = walletResponse.balances.usdt.available; // 计算最大可认种数量并自动填入 final maxQty = (totalBalance / _pricePerTree).floor();