-
Notifications
You must be signed in to change notification settings - Fork 50
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
EVM: make transferEntryPoint virtual #584
EVM: make transferEntryPoint virtual #584
Conversation
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.
This in itself is safe, but it pushes a lot of burden to the integrator and should not be overridden lightly.
Is the integrator problem something that could be solved with a new hook instead?
@djb15 thank you for your feedback!
It might be possible to solve all these issues with additional hooks, but it will require more intrusive changes to NTTNanager which won't be applicable to the majority of integrators. |
@djb15 do you have any recommendation on fixing stack too deep issues when compiling with
Observe
Looks like this commit from |
@0xIryna thanks for the context! No objections to making those changes on a fork, but is there a reason you want to get this into Regarding the stack issues, I believe that's specific to your fork as I'm not able to replicate on the tip of main here. My general advise for trying to resolve those errors is trying to block scope variables. I feel your pain though, it's annoyingly easy to hit the EVM stack constraints with a moderately complex function |
@djb15 Thank you for your feedback! I understand your concern, we will use the fork then. As for stack too deep. The issue is related to via-ir compilation and cannot be easily solved by adding block scope variables. There are a bunch of similar issues in solidity repo (14358, 14378, 14187, etc.) and there is no solution that fits all. The current default NTTManager implementation doesn't have the issue, and our codebase didn't have it until we upgraded to the latest NTT code, so it's a combination of factors that causes it. Any other integrator might encounter it since we're forced to use via-ir |
Yeah sadly the |
Overview
This PR makes
_transferEntryPoint
function virtual inNttManager
contract allowing more flexibility for integratorsChanges
virtual
modifier to_transferEntryPoint
functionMotivation
Impact
Testing