currently app.sol enable creating a contract instance according to the package name .
this will give always the latest implementation version of the specific package.
what will be the recommended approach to enable creating a contract instance from an older package versions ?
options:
versioning via the package name - each package has its own version- not nice.
bypass app.sol create function. get the package contract to get the specific provider for the require version.
I am not sure what would be the best approach.
My initial thought would be option 1, though community members with more experience than me in this area may have a better answer.
Hey @oren! Agree that option 3 is the cleanest one, but before implementing it, I’d like to better understand your case. Why do you want to create outdated versions of contracts?
For now, option 2 is the best for you, since it does not require any changes in the App contract. In your contract, you’d need to do sth like the following. This could even be packaged into a lib that you import in your contract, with a using Lib for App for convenience.
Hey @spalladino,
There are few reasons why we would like to enable creation of contracts(in our case daos) from older versions : feature sets which was deprecated on new versions, using old safe audited contracts… and more.
sure, option 2 is doable (and actually we done that already) though why not provide a generic solution at the app.sol level .if it provide create function so lets make it useful.