I’m using MetaMask as a Google extension (v10.29.0)
With the introduction of Eip-1559, MetaMask allows users to set “Max base fee” and “Priority fee” in the “Advanced Gas Fee” menu when sending transactions.
The problem here is that the title “Max base fee” is being used incorrectly.
From the developer’s point of view, if you send the eip-1559 version of Raw Transaction, you will know that “maxFeePerGas” and “maxPriorityFeePerGas” are entered as fee-related factors.
At this point, “maxFeePerGas” usually uses base fee and maxPriorityFeePerGas to calculate the “appropriate” value. (something like; 2 * prior base fee + maxPriorityFeePerGas)
Therefore, base fee and priority fee are values used to determine maxFeePerGas and are independent of each other.
Let’s see how the Advanced Gas Fee menu in MetaMask works.
If you type 90 in max base fee and 91 in priority fee, you can see the following warning statement.
“Max base fee cannot be lower than priority fee”
Why? The “Max base fee” tab in the “Advanced Gas Fee” menu of MetaMask is a TextField that sets the maxFeePerGas value, not the base fee related value.
In fact, if you enter 90 for Max base fee and 89 for priority fee, you can see that the transaction has been sent to the settings of maxFeePerGas = 90, and maxPriorityFee = 89.
“Can’t we just understand the context and move on?” No, this is a menu for ADVANCED users. Users who understand the fee mechanism of EIP-1559 can rather induce incorrect settings.
If the value intended by the MetaMask developers is “Max base fee” as its title, maxFeePerGas should be set to maxbasefee + priorityfee and transmitted.
If the value intended by the MetaMask developers is the “maxFeePerGas” value, the appropriate title (such as Max Fee, Max Price) should be given.
Max Base Fee should never be used in the same sense as maxFeePerGas.