mirror of
https://github.com/cake-tech/cake_wallet.git
synced 2025-01-18 16:55:58 +00:00
Calculate Estimated fee and deduct it from the Fiat Amount on "ALL" transactions
This commit is contained in:
parent
0b4acd33af
commit
3f71755fe5
2 changed files with 23 additions and 10 deletions
|
@ -560,7 +560,9 @@ class SendCardState extends State<SendCard>
|
||||||
|
|
||||||
reaction((_) => output.fiatAmount, (String amount) {
|
reaction((_) => output.fiatAmount, (String amount) {
|
||||||
if (amount != fiatAmountController.text) {
|
if (amount != fiatAmountController.text) {
|
||||||
fiatAmountController.text = amount;
|
final doubleAmount = double.tryParse(amount) ?? 0;
|
||||||
|
final doubleFee = double.tryParse(sendViewModel.estimatedFiatFee(sendViewModel.balance)) ?? 0;
|
||||||
|
fiatAmountController.text = doubleAmount - doubleFee > 0 ? "${doubleAmount - doubleFee}" : "0.00";
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
|
@ -1,3 +1,4 @@
|
||||||
|
import 'package:cake_wallet/core/amount_converter.dart';
|
||||||
import 'package:cake_wallet/entities/balance_display_mode.dart';
|
import 'package:cake_wallet/entities/balance_display_mode.dart';
|
||||||
import 'package:cake_wallet/entities/transaction_description.dart';
|
import 'package:cake_wallet/entities/transaction_description.dart';
|
||||||
import 'package:cake_wallet/view_model/dashboard/balance_view_model.dart';
|
import 'package:cake_wallet/view_model/dashboard/balance_view_model.dart';
|
||||||
|
@ -83,10 +84,7 @@ abstract class SendViewModelBase with Store {
|
||||||
String get pendingTransactionFiatAmount {
|
String get pendingTransactionFiatAmount {
|
||||||
try {
|
try {
|
||||||
if (pendingTransaction != null) {
|
if (pendingTransaction != null) {
|
||||||
final fiat = calculateFiatAmount(
|
return _calculateFiatAmount(pendingTransaction.amountFormatted);
|
||||||
price: _fiatConversationStore.prices[selectedCryptoCurrency],
|
|
||||||
cryptoAmount: pendingTransaction.amountFormatted);
|
|
||||||
return fiat;
|
|
||||||
} else {
|
} else {
|
||||||
return '0.00';
|
return '0.00';
|
||||||
}
|
}
|
||||||
|
@ -99,10 +97,7 @@ abstract class SendViewModelBase with Store {
|
||||||
String get pendingTransactionFeeFiatAmount {
|
String get pendingTransactionFeeFiatAmount {
|
||||||
try {
|
try {
|
||||||
if (pendingTransaction != null) {
|
if (pendingTransaction != null) {
|
||||||
final fiat = calculateFiatAmount(
|
return _calculateFiatAmount(pendingTransaction.feeFormatted);
|
||||||
price: _fiatConversationStore.prices[selectedCryptoCurrency],
|
|
||||||
cryptoAmount: pendingTransaction.feeFormatted);
|
|
||||||
return fiat;
|
|
||||||
} else {
|
} else {
|
||||||
return '0.00';
|
return '0.00';
|
||||||
}
|
}
|
||||||
|
@ -111,6 +106,12 @@ abstract class SendViewModelBase with Store {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
String _calculateFiatAmount(String cryptoAmount) {
|
||||||
|
return calculateFiatAmount(
|
||||||
|
price: _fiatConversationStore.prices[selectedCryptoCurrency],
|
||||||
|
cryptoAmount: cryptoAmount);
|
||||||
|
}
|
||||||
|
|
||||||
FiatCurrency get fiat => _settingsStore.fiatCurrency;
|
FiatCurrency get fiat => _settingsStore.fiatCurrency;
|
||||||
|
|
||||||
TransactionPriority get transactionPriority =>
|
TransactionPriority get transactionPriority =>
|
||||||
|
@ -159,6 +160,16 @@ abstract class SendViewModelBase with Store {
|
||||||
|
|
||||||
bool get hasCurrecyChanger => walletType == WalletType.haven;
|
bool get hasCurrecyChanger => walletType == WalletType.haven;
|
||||||
|
|
||||||
|
int estimatedFee(String amount) {
|
||||||
|
return _wallet.calculateEstimatedFee(_settingsStore.priority[_wallet.type], AmountConverter.amountStringToInt(
|
||||||
|
selectedCryptoCurrency, amount));
|
||||||
|
}
|
||||||
|
|
||||||
|
String estimatedFiatFee(String amount) {
|
||||||
|
return _calculateFiatAmount(AmountConverter.amountIntToString(
|
||||||
|
selectedCryptoCurrency, estimatedFee(amount)));
|
||||||
|
}
|
||||||
|
|
||||||
final WalletBase _wallet;
|
final WalletBase _wallet;
|
||||||
final SettingsStore _settingsStore;
|
final SettingsStore _settingsStore;
|
||||||
final SendTemplateViewModel sendTemplateViewModel;
|
final SendTemplateViewModel sendTemplateViewModel;
|
||||||
|
|
Loading…
Reference in a new issue