Replies: 3 comments 1 reply
-
Agree! To me this further opens up the question on where to draw the line between what should be part of the Proxy's bytecode and what should be moved into a dedicated target contract to further optimize for deployment cost. |
Beta Was this translation helpful? Give feedback.
-
I ended up implementing this: The I have also moved the |
Beta Was this translation helpful? Give feedback.
-
Since v4.0.0-beta.4, the enshrined target contract is called |
Beta Was this translation helpful? Give feedback.
-
The proxy version on the
staging
branch has become rather expensive to deploy. Based on my preliminary findings, it can take anything between ~750k and 1.4k to deploy it, based on how the Solidity optimizer is configured.Then, as I explained in this comment, it will not be possible to call the
installPlugin
method immediately after callingdeploy
. So users will have to sign another transaction to install the plugins they want (adding adeployAndInstallPlugin
method would be overkill).Given the above, I am now considering deleting the
installPlugin
and theuninstallPlugin
functions from the proxy itself, relegating them to a "glorified" target contract that will ship with the PRBProxy system. That means that I will personally deploy the said target contract, and the only difference for the user experience will be that instead of callinginstallPlugin
, users will have to ABI-encode the call and callexecute
instead.The major benefits of doing this would be:
2 votes ·
Beta Was this translation helpful? Give feedback.
All reactions