Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
feat(ethereum-storage): gas fee multiplier & max gas fee #1318
feat(ethereum-storage): gas fee multiplier & max gas fee #1318
Changes from 1 commit
26b2527
412b1c7
acdbcdb
32498c0
7ba25f3
File filter
Filter by extension
Conversations
Jump to
There are no files selected for viewing
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I have a question, according to the formula:
Total Fee = Gas unit (limits)*(Base fee + Tip)
Could it be useful to have a parameter that multiplies only the Tip? Allowing to be better than other tips, but without a gasFees value too high.
In the test, gasFees => 20 + (2) x 2 = 24 Gwei
I might be lacking of context (google didn't help that much).
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The formula for eip-1559 is
maxFeePerGas = baseFeePerGas + maxPriorityFeePerGas
, see https://docs.alchemy.com/docs/maxpriorityfeepergas-vs-maxfeepergasThe priority fee is the fee given to validators for including our transaction. The priority fee is set by us: we use the
urgent
value of the librainbow-me/fee-suggestions
, which is set to a minimum of 2Gwei, see here. This signals the network that we are willing to pay for our transaction to be included ASAP. We have control over this value, this is not an issue.However, we have no control over the base fee. The base fee is set by the network, and it is burned when the transaction is included. It is approximated by the lib
rainbow-me/fee-suggestions
, but between the time of approximation and the time of the transaction, the base fee can change a bit.Because the base fee can change, the total will also change, which is the second value we control: we can set a cap for the total value with
maxFeePerGas
. However ifmaxFeePerGas
is set too low and the base fee increases between approximation and inclusion, there might be a very low amount of gas remaining for validators to take their priority fee cut.To fix this, I introduced a multiplier that acts on the total. We can virtually increase the total (hence the approximation) and this will give room for our transaction to be included. Note that this doesn't mean we will pay more gas in the end, because miners/validators cannot cheat on the amount of gas used (defined by the EVM) and the base fee (defined by the network on each block). They can only decide which cut of the priority fee they want to take (they usually take all of it).