January 2019 development update

dev-update

#1

Hey folks! We wanted to start a new tradition this year of sharing monthly development updates of what we are up to in the ZeppelinOS team. Here are a few things we’ve been working on these past weeks:

Version 2.1 with Truffle 5 and Solidity 0.5 support

During the first days of January we released version 2.1, which supports projects managed with both truffle 4 and 5. By being compatible with truffle 5, ZeppelinOS now also supports Solidity 0.5.

It is worth mentioning that release 2.1 also included automatic gas price estimation via querying ethgasstation, and automatic contract verification on Etherscan, both features contributed by community members @zachzundel and @ProtonGustave respectively!

Upgrade to web3 1.0

We have migrated from web3 0.x to web3 1.0 beta 37. This means that you will be able to use ZeppelinOS scripts from your javascript code using web3 1.0. Also, any contract instances returned via programmatic usage of ZeppelinOS are now web3 contracts instead of truffle 4 contracts.

This will be available as part of release 2.2.

New proxy admin component

A frequent issue when working with transparent proxies created from ZeppelinOS is that such proxies reject any non-management call from their admin, for security reasons. This could be frustrating, since it required having two accounts: one for creating and upgrading proxies, and another for actually using them.

The ProxyAdmin is a small contract that takes over the responsibility of owning proxies from the user’s account and from the App contract. This contract only has a method to upgrade a proxy given its address, and is owned by the user’s account. The Nomic Labs team, who has audited previous releases of ZeppelinOS, has audited this new contract as well.

This way, the user goes through the ProxyAdmin contract for managing their proxies, instead of interacting directly with them. This allows the user account to interact directly with the proxies he creates.

We have also implemented an automatic migration process from zos version 2.0 and 2.1 that will automatically set up a new ProxyAdmin and transfer the admin of all proxies to it.

Read more about this new feature here, which will be released in v2.2.

Implementation of token mechanics

We have updated our Vouching contract to represent the latest iteration of the ZEP token mechanics. We now have a smart contract that allows you to register an EVM package, vouch for it, and challenge it if you find any bugs. Resolution of disputes is currently centralized, but we will swap it out for a voting mechanism in a future release (because upgradeability!).

We will be releasing this soon to the participants of our private beta to test our token mechanics with real stake. We are also happy to have been working with @asselstine from the DeltaCamp team to build a great front-end to this contract, so anyone will be able to easily follow on the status of the private beta network.

Zepkit, a starter box for DApps

We have been working on a starter kit for DApp development that bundles together ZeppelinOS, OpenZeppelin, Truffle, and React, plus a few goodies to jumpstart your project. The kit will be released in the upcoming days, so stay tuned!

Migration to typescript

We wrapped up the migration process of the entire codebase (except for the tests) of ZeppelinOS from javascript to typescript. While there is still more work to do in terms of polishing up some types and interfaces, this was a great first step, and even allowed us to catch some obscure bugs that only came up with the help of the compiler.

Version 2.2 will be the first one released on this codebase, and will include the typings for all code exported from zos-lib.


What’s next

As you can see, we have been quite busy. During February, we will be testing, polishing up, and documenting all the new stuff for version 2.2, which we plan to release in the upcoming days. We will also be assisting to EthDenver, where we plan to gather more feedback for ZeppelinOS development; if you happen to be there, please don’t hesitate to reach out to us!

Happy coding!


February 2019 development update
#2

I love the iniciative, it will make much easier to understand the current status and roadmap of the project :slight_smile:

Kudos ZeppelinOS team :raised_hands:t3: