Deterministic deployment using Upgrades plugin

Hey @spalladino
This is a pretty old thread, but I’m just getting back to using openzeppelin for upgradability after some time away.
On the new project, we’re using Hardhat tooling, and so we’re checking out your upgrades plugin.
We would love to be able to use create2 for deploying the proxy via the plugin… Is this possible?

2 Likes

Hey @n44o! The hardhat and truffle plugins don’t support create2 out of the box, you’ll have to set that up manually on your end. However, you can still rely on the plugins for checking upgrade safety by using the prepareUpgrade method, which takes care of running all upgrade-related validations (including storage layout checks) and then deploying the implementation contract. You will then have to deploy the proxy yourself using a create2 factory, for which you may reuse the one we shipped with the OZ SDK.

Looping in @frangio and @Amxx in case they have any other suggestions!

1 Like

@spalladino Thanks for the info. While out-of-the-box support would be ideal :wink: , this should be enough to get started.
That said, what does the roadmap look like for the hardhat-plugin? It would be great to see what’s coming in terms of features.

1 Like

In terms of roadmap, we have a big release coming up with support for structs and enums.

We’re also looking at allowing more flexibility for deployments, including potentially the ability to plug in deterministic deployments. See https://github.com/OpenZeppelin/openzeppelin-upgrades/pull/273.

We also want to add overrides for all checks, so that users who want to skip a particular check because it results in a false positive error can do so. See https://github.com/OpenZeppelin/openzeppelin-upgrades/issues/280.

We’re guiding the roadmap based on user feedback so be sure to open issues or comment on the existing issues to let us know about your needs!

3 Likes

4 posts were split to a new topic: Integrating hardhat-deploy and openzeppelin/hardhat-upgrades