ZeppelinOS April 2019 development update

dev-update
#1

Hey everyone! It’s time for the April development update of ZeppelinOS. We have published the release candidate for version 2.3, which includes some really awesome usability improvements as well as exciting new features. We have also been working closely with the Tabookey team to push forward the Gas Station Network, which will be deeply integrated in the upcoming versions of the entire Zeppelin platform.

Interactive commands

Long gone are the days where you needed to run a zos command with half a dozen flags, or needing to add and push your contract before createing them. Thanks to the amazing work by @jcarpanelli, the zos CLI will now guide and walk you though the actions that you want to run via a set of interactive prompts.

The commands add, create, init, link, publish, push, remove, session, unlink, update, and verify are now all interactive, and the remaining ones are coming soon! We will be releasing this as part of version 2.3.0.

New unpack command

Earlier this year we released Zepkit, a starter box for building DApps using ZeppelinOS, OpenZeppelin, Truffle, Infura, and React. We are now adding a new zos unpack command that can be used to bootstrap a new project on not only Zepkit, but any compatible starter box.

unpack2

Any repository with a stable branch and a kit.json manifest file can be used to kickstart a project using zos unpack. This opens up the game for the entire community to build their own starter boxes! Kudos to @ylv-io for the great work on this command.

Revamped set-admin command

With version 2.2 we released the new ProxyAdmin component, which acts as the upgradeability admin of the entire ZeppelinOS application. @ylv-io has modified the zos set-admin command so, instead of changing the admin of a single contract, it allows you to change the admin of this central ProxyAdmin. This enables you to move the entire management of upgradeability of your project in a single transaction!

We will be updating our upgradeability governance guides to reflect this new feature.

CREATE2 command with meta-txs support

During March we worked on a new experimental zos create2 command that uses the CREATE2 opcode to reserve a deployment address. By choosing a salt value, zos determines a unique deployment address given your address and the salt, which can be used to deploy any contract to that address at any point in the future.

Last month we added support for signatures in this command. Instead of having an address execute the zos create2 command to determine the deployment address, now any user can just sign a request for a deployment, and any other address can run the create2 command on their behalf. This will use the signer account for calculating the deployment address, instead of the actual sender.

This effectively enables a relayer to submit a transaction on behalf of a user to deploy a contract at a predetermined address. This opens the door to some very interesting user onboarding flows, such as the one that @chris.whinfrey and @jamesyoung have been working on. We will share more news on this soon!

Check out our sample project for more info on using zos create2. A full-blown guide by @Dennison is also coming soon!

Gas station network collaboration

We have strengthened our collaboration with the Tabookey team for pushing forward the Gas Station Network. In addition to the audit of the protocol we did during March, starting April we began actively contributing to their codebase - both on the client side javascript libraries and on the relayer process.

We are really excited about the possibilities that the gas station network will open up for new user onboarding flows. We have already seen it at work during EthDenver on the Burner Wallet, and the experience was great!

Version 2.2.3 released

Last but not least, we released a new patch for version 2.2 with a bugfix for zos-lib. Make sure to upgrade your code to the latest version!

What’s next

During the upcoming days we will be shipping a release candidate for version 2.3 with the new interactive flows, and the new zos unpack and create2, and updated set-admin commands.

Meanwhile, we are working on adding new capabilities to the zos CLI, to make it easy to send arbitrary transactions and calls to your contracts directly from the command line. We will also be keeping the work on the gas station network alliance moving forward.

Part of our team will also be at EthNYC, so make sure to look for folks wearing Zeppelin t-shirts there!

Happy coding!

5 Likes
Using the AdminUpgradeabilityProxy