fix(mining-app): sellRestrictionProvider 绑定用户身份,避免跨账号缓存污染

[问题] sellRestrictionProvider 未绑定用户身份。若先用预种账号(isRestricted=true)
测试,再切换为正式认种账号,Riverpod keepAlive 缓存会在 2 分钟内残留上一个用户
的 true 值,导致正式认种用户错误看到预种卖出限制提示。

[修复] 在 provider 内 watch userNotifierProvider.select((s) => s.accountSequence),
accountSequence 变化(登录/切换账号)时 provider 自动失效并重新请求。

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
hailin 2026-03-04 07:29:12 -08:00
parent 59097203ae
commit 2b07219046
1 changed files with 5 additions and 0 deletions

View File

@ -8,6 +8,7 @@ import '../../domain/entities/kline.dart';
import '../../domain/repositories/trading_repository.dart';
import '../../data/models/trade_order_model.dart';
import '../../core/di/injection.dart';
import 'user_providers.dart';
// Repository Provider
final tradingRepositoryProvider = Provider<TradingRepository>((ref) {
@ -32,7 +33,11 @@ final buyEnabledProvider = FutureProvider<bool>((ref) async {
});
// Provider (2fail-open)
// accountSequence
final sellRestrictionProvider = FutureProvider<bool>((ref) async {
// accountSequence /
ref.watch(userNotifierProvider.select((s) => s.accountSequence));
final repository = ref.watch(tradingRepositoryProvider);
final result = await repository.getSellRestriction();