Skip to content

Commit 0bc0fdf

Browse files
committed
fix(spl): mobile fee selection ui fix
1 parent 977222d commit 0bc0fdf

File tree

2 files changed

+30
-9
lines changed

2 files changed

+30
-9
lines changed

lib/pages/send_view/sol_token_send_view.dart

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -560,7 +560,10 @@ class _SolTokenSendViewState extends ConsumerState<SolTokenSendView> {
560560
@override
561561
void initState() {
562562
ref.refresh(feeSheetSessionCacheProvider);
563-
ref.read(feeRateTypeMobileStateProvider.state).state = FeeRateType.slow;
563+
564+
WidgetsBinding.instance.addPostFrameCallback((_) {
565+
ref.read(feeRateTypeMobileStateProvider.state).state = FeeRateType.slow;
566+
});
564567

565568
_calculateFeesFuture = calculateFees();
566569
_data = widget.autoFillData;

lib/pages/send_view/sub_widgets/transaction_fee_selection_sheet.dart

Lines changed: 26 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
/*
1+
wwwwwwwwwwwww/*
22
* This file is part of Stack Wallet.
33
*
44
* Copyright (c) 2023 Cypher Stack
@@ -28,6 +28,7 @@ import '../../../wallets/isar/providers/eth/current_token_wallet_provider.dart';
2828
import '../../../wallets/isar/providers/wallet_info_provider.dart';
2929
import '../../../wallets/wallet/impl/firo_wallet.dart';
3030
import '../../../wallets/wallet/intermediate/cryptonote_wallet.dart';
31+
import '../../../wallets/wallet/wallet.dart';
3132
import '../../../wallets/wallet/wallet_mixin_interfaces/electrumx_interface.dart';
3233
import '../../../widgets/animated_text.dart';
3334

@@ -115,8 +116,13 @@ class _TransactionFeeSelectionSheetState
115116
.estimateFeeFor(amount, feeRate);
116117
}
117118
} else {
118-
final tokenWallet = ref.read(pCurrentTokenWallet)!;
119-
final fee = await tokenWallet.estimateFeeFor(amount, feeRate);
119+
final Wallet wallet;
120+
if (coin is Ethereum) {
121+
wallet = ref.read(pCurrentTokenWallet)!;
122+
} else {
123+
wallet = ref.read(pWallets).getWallet(walletId);
124+
}
125+
final fee = await wallet.estimateFeeFor(amount, feeRate);
120126
ref.read(feeSheetSessionCacheProvider).fast[amount] = fee;
121127
}
122128
}
@@ -151,8 +157,13 @@ class _TransactionFeeSelectionSheetState
151157
await wallet.estimateFeeFor(amount, feeRate);
152158
}
153159
} else {
154-
final tokenWallet = ref.read(pCurrentTokenWallet)!;
155-
final fee = await tokenWallet.estimateFeeFor(amount, feeRate);
160+
final Wallet wallet;
161+
if (coin is Ethereum) {
162+
wallet = ref.read(pCurrentTokenWallet)!;
163+
} else {
164+
wallet = ref.read(pWallets).getWallet(walletId);
165+
}
166+
final fee = await wallet.estimateFeeFor(amount, feeRate);
156167
ref.read(feeSheetSessionCacheProvider).average[amount] = fee;
157168
}
158169
}
@@ -187,8 +198,13 @@ class _TransactionFeeSelectionSheetState
187198
.estimateFeeFor(amount, feeRate);
188199
}
189200
} else {
190-
final tokenWallet = ref.read(pCurrentTokenWallet)!;
191-
final fee = await tokenWallet.estimateFeeFor(amount, feeRate);
201+
final Wallet wallet;
202+
if (coin is Ethereum) {
203+
wallet = ref.read(pCurrentTokenWallet)!;
204+
} else {
205+
wallet = ref.read(pWallets).getWallet(walletId);
206+
}
207+
final fee = await wallet.estimateFeeFor(amount, feeRate);
192208
ref.read(feeSheetSessionCacheProvider).slow[amount] = fee;
193209
}
194210
}
@@ -269,7 +285,9 @@ class _TransactionFeeSelectionSheetState
269285
const SizedBox(height: 36),
270286
FutureBuilder(
271287
future: widget.isToken
272-
? ref.read(pCurrentTokenWallet)!.fees
288+
? (coin is Ethereum
289+
? ref.read(pCurrentTokenWallet)!.fees
290+
: wallet.fees)
273291
: wallet.fees,
274292
builder: (context, AsyncSnapshot<FeeObject> snapshot) {
275293
if (snapshot.connectionState == ConnectionState.done &&

0 commit comments

Comments
 (0)