My system keeps track of ETH wallets in a local DB. It is preferable that I know exactly what the fee is beforehand, so I can update the DB before broadcasting, and then rollback if anything goes wrong. I prefer not to update the DB after broadcasting, because I don't want to wait until broadcasting is done.
Since I'm using EIP-1559 transactions, the GWei spent per gas has become unpredictable. The following variables are relevant here:
maxFeePerGas
= how much GWei is spent in total per unit of gasmaxPriorityFeePerGas
= how much GWei is spent for miner tips
So I don't want to broadcast a transaction where maxFeePerGas = 20
and maxPriorityFeePerGas = 2
, and then see that the ETH blockchain consumed 14.87458745887485 GWei per gas. I want it to have consumed 20 as I have defined beforehand.
maxFeePerGas - maxPriorityFeePerGas = baseFeePerGas
As far as I know the maxPriorityFeePerGas
is always consumed in full, so it is a predictable amount. Therefore I was wondering, what if I always just set maxFeePerGas = maxPriorityFeePerGas
? Then I will always know beforehand precisely how much fee is consumed, and I don't have to update my DB after the fact.
The only downside I can think of is that I would pay a bit too much fee every time, because for the base fee, the ETH blockchain only uses as much as it needs. Is this possible? Are there other downsides I'm missing?