-
Notifications
You must be signed in to change notification settings - Fork 568
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: add MutliCall #867
base: master
Are you sure you want to change the base?
feat: add MutliCall #867
Conversation
|
Nice contribution @codeislight1. One question, why did you decide to keep "low level" bytes as the input for the new function? |
Hi bandon, thank you for the review! for the low level call it's purely to efficiently acquire the function inputs directly from the calldata, without copying to memory. if the signature ever changes, it should just:
but that comes with the limitation of only passing up to 7 arguments, simple workaround is to pass the argument index to the Calldata library getter functions, multiply it by 0x20. thus compromising on 5 gas saving on MUL opcode. the implementation is somewhat inspired by Universal Router Dispatcher by Uniswap: |
btw, for readability sake, i believe abi.decode would do the job, let me know if you d like to proceed with it as is, or decode it using abi.decode which is much cleaner |
@eboadom any update 👀 |
Stop spamming the PR, it is only meant to discuss the content of the PR, if you have any issues open an issue, or ask in aave forum to discuss it https://governance.aave.com |
MutliCall allows aave v3 users to perform multiple calls to Pool functions in a single transaction, thus saving on base gas fees. So it would make it easier for users for example:
let me know if there is anything that should be changed, I tried to write tests, but I stumbled upon
some errors while running tests on docker.