-
Notifications
You must be signed in to change notification settings - Fork 12
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
Reconsider EIP712 implementation #452
Comments
After investigation, I've come to the following conclusions: Using openzeppelin's EIP712 contract adds a significant amount of bytecode (~0.8kB). This is likely largely due to the domain separator being calculated on runtime rather than stored as an immutable value, and their inefficient use of strings in errors. There is simply no way for a domain separator to be an immutable value in the implementation contract and be exclusive to the proxy contract without rearchitecting the proxy which I consider to be unsafe. AFAIK, our only options are to either:
Considering that calculating on runtime invades into our scant bytecode space, I will try a solution where we use a storage var. |
Yes, let's just try OZ upgradeable's version? I think this would be safer too |
That is also going to be no good. In my POC, it still takes an extraordinary amount of bytecode. I don't think bytecode was a priority for OZ's implementation. I'm reconsidering just reworking the existing code. |
This should be closed right @pakim249CAL ? |
#444 (comment)
The text was updated successfully, but these errors were encountered: