OpenZeppelin 2.3.0: Release Candidate

In 2.3 we’re introducing ERC777, revert reasons, and a new documentation site. :fireworks:


The long awaited sequel to ERC20 is here. The EIP is almost finalized, and OpenZeppelin has an implementation of it. Please note that this code has not been audited yet. An audit will be performed soon, but for now we need you all to look at it and review it from top to bottom. The main source file is here at ERC777.sol :new::sparkles:. Anything you see, drop us a line in this thread or via email at Letting us know that you’ve looked at it and found nothing is also valuable!

Revert reasons

All error conditions in OpenZeppelin now have proper error messages that will be displayed by up to date tooling. If you would like to review these, they are found in commits 4a0a67b...2f8e844.

Documentation site

We have revamped the documentation site infrastructure and look. It will be officially released with the final 2.3.0 release, but here is a preview of it for the release candidate :new::sparkles:. We are now looking to significantly improve the content, which we know is much needed! A short description of the setup and how to contribute can be found in in the repository. Any critique, suggestions, and contributions will be welcome in this thread or in the appropriate repositories.


Some more things are included in this release such as an implementation of ERC1820, and a fix for a bug in PostDeliveryCrowdsale. Take a look at the changelog!


Congrats on the release team!

Some notes at first glance:

  • token standard docs should specify internal/external functions in the function list at the top, IMO
  • I really like the improvements to explanations of the various contracts related to a standard (for example ERC721Mintable, ERC721Pausable, etc.) at https://v2-3-0-rc-1–
  • There is no expanation in the docs for what 777 token standard is actually for within the docs. It should have a section in https://v2-3-0-rc-1– . Just as 721 and 20 do.
1 Like

Do you mean a separate index for external and internal functions? Yeah, that makes sense. In OpenZeppelin they’re easy to tell apart by the underscore prefix, but not everybody will know that.

This change would have to be implemented in Unfortunately the code to generate the indexes is a bit of a mess right now. :sweat_smile:

Great point! @nventuro is writing an explanation of ERC777 that might make a good fit for that page.


Hey, Is there a timeline for the final release of 2.3.0? Seems like everything was already implemented :thinking:


Thanks for asking! Everything is pretty much ready but we are improving the API docs before publishing. This is happening in the api-docs branch. Should be published very soon!