zeppelinos/zos-lib

Implement a new migrations mechanism simulating the initialization process of the EVM

facuspagnuolo opened this issue · 2 comments

We've been discussing this improvement with @frangio, here are some side notes about it:

We should work on a new mechanism that should allow developers not to migrate their constructors to initialization/migration functions. We should be able to deploy the bytecode of a constructor to the blockchain and call it with a delegatecall from the proxy to perform an initialization or a migration.

This will allow handling those initializers/migrations in separate contracts and registering them in the implementation provider. This means we will be able to manage multiple migrations for a new version, for example having different migrations based on the project/version you are migrating your code from. Additionally, we won't need to work with strings as migration IDs anymore, we will be able to identify migrations with addresses since they will be contracts themselves.

We forgot that we already had an issue for this. #61

Closing in favor of #61.