Description of the issue:
The latest Brave update (1.37.109) has potentially a couple of issues with fees and usability with Avalanche transactions with the EIP-1559 fix (Maybe).
The fee oracle for the “base fee” runs about 10% high from the spot fee prices on snowtrace.io causing the user to potentially overpay on fees. It’s possible I don’t completely understand how this new oracle works or the nature of EIP-1559 transactions as the couple transactions I’ve run seem to register below the max fee limit that was sent. Below is an example, but keep in mind snowtrace.io was showing current fees about 10% below the Base Fee in the brave wallet and the wallet was not allowing me to edit the “Per gas price limit” to anything below the “Base Fee” …(in this one I just left the value that Brave Wallet had in there anyway):
Actual Transaction- note the actual fee paid was less than the max, and the base fee was ~8 nAVAX less than what the Brave Wallet had shown above ( 50.7 vs 58.9)
You cannot save a custom fee ( Per-Gas-price-limit) below the “Current Base Fee”. Is that by design? The “Save” button is greyed out when any value below the base fee is entered…could be an issue because the “base” fee above seems to be overestimated by about 10% ( see above). So for instance, if the “Current Base Fee” is 55 nAVAX, snowtrace.io is showing about 50 nAVAX. If I try to edit the “Per-Gas-price-limit” from say what Brave Wallet has auto populatied of 60 nAVAX down to 50 nAVAX I can’t set the fee because the “Save” remains greyed out for any fee below 55 nAVAX.
When you are in the custom fee menu…the value you can edit seems to jump around in real-time even after you have tried to edit it. So if I put in 55 nAVAX…if I am not quick to hit save button it will update to something else.
I wonder if it would be feasible, useful, etc to allow the user to set a transaction type of “Legacy” or EIP 1559 transaction type somewhere?
How can this issue be reproduced?
Run any Avax transaction, hit “edit” fee, then “Set custom”.
Thanks for the very detailed description. My response to each of your points below.
We do not “estimate” the base fee. It’s actually part of the headers of the latest block. Avalanche has a short block-time, so the discrepancy could be due to a difference in the view of the blockchain between the configured RPC vs snowtrace.io.
Also let’s note a couple of things here. First, the Base Fee displayed in Brave Wallet may have changed by the time the transaction is confirmed. So what you see is NOT what you pay. Secondly, the user will eventually pay whatever is the Base Fee (plus miner tip) at the time of transaction confirmation. Anything extra would be refunded back to the user. So there’s no “overpay” happening here; the suggested fees are actually an upper limit.
We do not allow setting a max fee below the base fee, because we won’t be able to guarantee transaction inclusion, since every confirmed transaction MUST burn the required base fee. Refer to the previous point regarding refund of any extra max fee - overestimating the max fee has the advantage that the transaction is likely to have enough room to burn the base fee.
Having said that, we could allow setting it to a lower value, but with an appropriate warning.
Noted. That’s indeed a pain point, particularly for Avalanche which has a short block-time.
I wonder if it would be feasible, useful, etc to allow the user to set a transaction type of “Legacy” or EIP 1559 transaction type somewhere?
We do not allow this currently, but could add a switch to force creation of legacy transactions. Anyway, it would be an “advanced setting” if we do add such a feature, since most users except the Wallet to make this decision.
Let me know if anything is not clear, or if I missed answering some of your questions.