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:
David Adegoke 2024-07-23 01:21:03 +01:00 committed by GitHub
parent 5c9f176d18
commit a4282cb704
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
2 changed files with 9 additions and 11 deletions

View file

@ -72,12 +72,12 @@ abstract class EVMChainClient {
}
}
Future<int> getGasBaseFee() async {
Future<int?> getGasBaseFee() async {
try {
final blockInfo = await _client!.getBlockInformation(isContainFullObj: false);
final baseFee = blockInfo.baseFeePerGas;
return baseFee!.getInWei.toInt();
return baseFee?.getInWei.toInt();
} catch (_) {
return 0;
}
@ -110,19 +110,19 @@ abstract class EVMChainClient {
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,
to: toAddress,
value: value,
data: transferFunction.encodeCall([
senderAddress,
to: EthereumAddress.fromHex(contractAddress),
data: transfer.encodeCall([
toAddress,
value.getInWei,
]),
);
return estimatedGas.toInt();
return gasEstimate.toInt();
}
} catch (_) {
return 0;

View file

@ -387,8 +387,6 @@ abstract class EVMChainWalletBase
estimatedFeesForTransaction = BigInt.from(estimateFees);
debugPrint('Estimated Fees for Transaction: $estimatedFeesForTransaction');
if (output.sendAll && transactionCurrency is! Erc20Token) {
totalAmount = (erc20Balance.balance - estimatedFeesForTransaction);