This truffle project utilizes the unstructured storage pattern to allow users to choose which version of a smart contract to use.
From your terminal clone this repo: 'git clone https://github.com/kyledewy/upgradeable.versioning'
Go to the project root and install dependencies 'yarn install'
Run tests: 'yarn truffle test'
Thanks to Ali Azam for coming up with and presenting this topic at Devcon IV
ZeppelinOS Patterns: https://docs.zeppelinos.org/docs/pattern.html#the-constructor-caveat ZeppelinOS Proxies: https://blog.zeppelinos.org/proxy-patterns/ On name clashes: https://blog.zeppelinos.org/the-transparent-proxy-pattern/