-
Notifications
You must be signed in to change notification settings - Fork 5
Create and submit update transactions #69
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
Conversation
); | ||
}; | ||
|
||
export const estimateMulticallGasLimit = async ( |
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.
Fully based on Airseeker v1 implementation. Later we might do #67 but that needs a discussion and agreement first.
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.
Hey, AFAIK in airseeker v1 a configured gas limit is used (gas for calls is not estimated).
Separately, manager-multisig often has to do multicalls and the gas is sometimes incorrectly estimated (often repeatedly for the same transaction). It's just something we should probably keep in mind; if we do estimates will we have a config parameter for adding headroom?
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.
Hey, AFAIK in airseeker v1 a configured gas limit is used (gas for calls is not estimated).
Mhh, are you sure? I based the implementation of the code in the main branch. I can see that we did the estimation here (for all beacons to be updated).
Separately, manager-multisig often has to do multicalls and the gas is sometimes incorrectly estimated (often repeatedly for the same transaction). It's just something we should probably keep in mind; if we do estimates will we have a config parameter for adding headroom?
Yeah, the estimating implementation seems a bit off, but I found the reasoning in:
- https://github.com/api3dao/airseeker/pull/481
- chore(deps): update non-major-dev-dependencies #447
- https://github.com/api3dao/manager-multisig/pull/214#issuecomment-1663995357
And the estimation function implemented here should have the same behaviour as the one in Airseeker (if not it's my mistake and should be fixed).
cc: @acenolaza since we talked about this a bit on Slack.
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.
if we do estimates will we have a config parameter for adding headroom?
There is 10% headroom added when we do estimate of the multicall
, so I guess that covers the need for tryMulticall
and also adds this headroom.
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.
It's possible I made a mistake, thanks for clarifying :)
The current Airseeker implementation works well, so it must be fine :)
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.
(LGTM currently 🚀 ) - One comment about gas estimates
); | ||
}; | ||
|
||
export const estimateMulticallGasLimit = async ( |
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.
Hey, AFAIK in airseeker v1 a configured gas limit is used (gas for calls is not estimated).
Separately, manager-multisig often has to do multicalls and the gas is sometimes incorrectly estimated (often repeatedly for the same transaction). It's just something we should probably keep in mind; if we do estimates will we have a config parameter for adding headroom?
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.
LGTM 🔥 🚀
Closes #36
Ideally merged after #65 so I can rebase and use the decoded
dataFeed
value received from the contract.Rationalle
The logic is based of Airseeker v1. There could be some optimisations done, but I am not doing them just yet.
There are some subtle differences, most notably in the sponsor wallet derivation and the general architecture (how we process the dAPIs in batches).