revert: 恢复资产页面的倍数显示和计算

- 资产显示值恢复为 积分股余额 × (1 + burnMultiplier) × price
- 显示有效积分股(含倍数)而非实际积分股数量
- 实时计算也考虑倍数因子

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
hailin 2026-01-18 20:46:57 -08:00
parent 07247fe05f
commit cfa3979a97
1 changed files with 16 additions and 10 deletions

View File

@ -33,6 +33,7 @@ class _AssetPageState extends ConsumerState<AssetPage> {
//
Timer? _refreshTimer;
int _elapsedSeconds = 0;
double _initialDisplayValue = 0;
double _initialShareBalance = 0;
double _growthPerSecond = 0;
String? _lastAccountSequence;
@ -53,6 +54,7 @@ class _AssetPageState extends ConsumerState<AssetPage> {
_refreshTimer?.cancel();
_elapsedSeconds = 0;
_initialDisplayValue = double.tryParse(asset.displayAssetValue) ?? 0;
_initialShareBalance = double.tryParse(asset.shareBalance) ?? 0;
// 使 mining-service
_growthPerSecond = double.tryParse(perSecondEarning) ?? 0;
@ -76,10 +78,13 @@ class _AssetPageState extends ConsumerState<AssetPage> {
}
///
/// = × price使
/// = × (1 + burnMultiplier) × price
/// = × (1 + burnMultiplier) × price
double get _currentDisplayValue {
final price = double.tryParse(_lastAsset?.currentPrice ?? '0') ?? 0;
return _currentShareBalance * price;
final burnMultiplier = double.tryParse(_lastAsset?.burnMultiplier ?? '0') ?? 0;
final multiplierFactor = 1 + burnMultiplier;
return _initialDisplayValue + (_elapsedSeconds * _growthPerSecond * multiplierFactor * price);
}
///
@ -207,15 +212,16 @@ class _AssetPageState extends ConsumerState<AssetPage> {
// 使 mining-service
final growthPerSecond = double.tryParse(perSecondEarning) ?? 0.0;
// 使-
// 使
final displayValue = asset != null && currentDisplayValue > 0
? currentDisplayValue.toString()
: null;
: asset?.displayAssetValue;
// 使-
final shareBalance = asset != null && currentShareBalance > 0
? currentShareBalance.toString()
: asset?.shareBalance;
// = × (1 + burnMultiplier)
final burnMultiplier = double.tryParse(asset?.burnMultiplier ?? '0') ?? 0;
final effectiveShareBalance = asset != null && currentShareBalance > 0
? (currentShareBalance * (1 + burnMultiplier)).toString()
: asset?.effectiveShares;
return Container(
decoration: BoxDecoration(
@ -300,9 +306,9 @@ class _AssetPageState extends ConsumerState<AssetPage> {
),
),
const SizedBox(height: 4),
// -
//
DataText(
data: shareBalance != null ? '${formatCompact(shareBalance)} 积分股' : null,
data: effectiveShareBalance != null ? '${formatCompact(effectiveShareBalance)} 积分股 (含倍数)' : null,
isLoading: isLoading,
placeholder: '≈ -- 积分股',
style: const TextStyle(