From 99b2b10ba046e8a68d4203ec5ac7737df1eb1d14 Mon Sep 17 00:00:00 2001 From: hailin Date: Sun, 4 Jan 2026 10:17:41 -0800 Subject: [PATCH] fix(mobile-app): always fetch deposit address from server in deposit_service MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Remove local storage cache priority to avoid returning wrong address after account switching. Always fetch from server API to ensure the address belongs to the currently logged-in user. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 --- .../lib/core/services/deposit_service.dart | 24 ++++--------------- 1 file changed, 4 insertions(+), 20 deletions(-) diff --git a/frontend/mobile-app/lib/core/services/deposit_service.dart b/frontend/mobile-app/lib/core/services/deposit_service.dart index 080b7c49..c580aa91 100644 --- a/frontend/mobile-app/lib/core/services/deposit_service.dart +++ b/frontend/mobile-app/lib/core/services/deposit_service.dart @@ -90,31 +90,15 @@ class DepositService { /// 获取充值地址 /// - /// 优先从本地存储获取,如果没有则从服务器获取 + /// 始终从服务器获取,确保返回当前登录用户的正确地址 + /// 不使用本地缓存,避免切换账号后显示错误的地址 /// 返回用户的 KAVA 和 BSC 充值地址 Future getDepositAddresses() async { try { debugPrint('获取充值地址...'); - // 先尝试从本地存储读取 - 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 && - dstAddress != null && dstAddress.isNotEmpty) { - debugPrint('从本地存储获取充值地址: kava=$kavaAddress, bsc=$bscAddress, dst=$dstAddress'); - return DepositAddressResponse( - kavaAddress: kavaAddress, - bscAddress: bscAddress, - dstAddress: dstAddress, - isValid: true, - ); - } - - // 本地没有,从服务器获取 - debugPrint('本地无缓存,从服务器获取钱包地址...'); + // 始终从服务器获取,确保是当前用户的地址 + debugPrint('从服务器获取钱包地址...'); final response = await _apiClient.get('/user/wallet'); if (response.statusCode == 200) {