mirror of
https://github.com/cake-tech/cake_wallet.git
synced 2025-01-03 09:29:48 +00:00
CW-672: Enhance ETH Wallet Fee Calculation - Fix ERC20 Transaction Fee (#1548)
* fix: Eth transaction fees WIP
* Revert "fix: Eth transaction fees WIP"
This reverts commit b9a469bc7e
.
* fix: Modifying fee WIP
* fix: Enhance ETH Wallet fee calculation WIP
* feat: Enhance Transaction fees for ETH Transactions, Native transactions done, left with ERC20 transactions
* fix: Pre PR cleanups
* fix: ETH transaction fees for ERC20 transactions
* fix: ETH transaction fees for ERC20 transactions
* chore: Clarify comment in getEstimatedGas
* fix: Switch call to estimate gas units to a more cleaner approach
This commit is contained in:
parent
5c9f176d18
commit
a4282cb704
2 changed files with 9 additions and 11 deletions
|
@ -72,12 +72,12 @@ abstract class EVMChainClient {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
Future<int> getGasBaseFee() async {
|
Future<int?> getGasBaseFee() async {
|
||||||
try {
|
try {
|
||||||
final blockInfo = await _client!.getBlockInformation(isContainFullObj: false);
|
final blockInfo = await _client!.getBlockInformation(isContainFullObj: false);
|
||||||
final baseFee = blockInfo.baseFeePerGas;
|
final baseFee = blockInfo.baseFeePerGas;
|
||||||
|
|
||||||
return baseFee!.getInWei.toInt();
|
return baseFee?.getInWei.toInt();
|
||||||
} catch (_) {
|
} catch (_) {
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
@ -110,19 +110,19 @@ abstract class EVMChainClient {
|
||||||
EthereumAddress.fromHex(contractAddress),
|
EthereumAddress.fromHex(contractAddress),
|
||||||
);
|
);
|
||||||
|
|
||||||
final transferFunction = contract.function('transferFrom');
|
final transfer = contract.function('transfer');
|
||||||
|
|
||||||
final estimatedGas = await _client!.estimateGas(
|
// Estimate gas units
|
||||||
|
final gasEstimate = await _client!.estimateGas(
|
||||||
sender: senderAddress,
|
sender: senderAddress,
|
||||||
to: toAddress,
|
to: EthereumAddress.fromHex(contractAddress),
|
||||||
value: value,
|
data: transfer.encodeCall([
|
||||||
data: transferFunction.encodeCall([
|
|
||||||
senderAddress,
|
|
||||||
toAddress,
|
toAddress,
|
||||||
value.getInWei,
|
value.getInWei,
|
||||||
]),
|
]),
|
||||||
);
|
);
|
||||||
return estimatedGas.toInt();
|
|
||||||
|
return gasEstimate.toInt();
|
||||||
}
|
}
|
||||||
} catch (_) {
|
} catch (_) {
|
||||||
return 0;
|
return 0;
|
||||||
|
|
|
@ -387,8 +387,6 @@ abstract class EVMChainWalletBase
|
||||||
|
|
||||||
estimatedFeesForTransaction = BigInt.from(estimateFees);
|
estimatedFeesForTransaction = BigInt.from(estimateFees);
|
||||||
|
|
||||||
debugPrint('Estimated Fees for Transaction: $estimatedFeesForTransaction');
|
|
||||||
|
|
||||||
if (output.sendAll && transactionCurrency is! Erc20Token) {
|
if (output.sendAll && transactionCurrency is! Erc20Token) {
|
||||||
totalAmount = (erc20Balance.balance - estimatedFeesForTransaction);
|
totalAmount = (erc20Balance.balance - estimatedFeesForTransaction);
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue