Waffle 2.0 released

Marek Kirejczyk
Jan 23, 2019 · 2 min read

After weeks of hard work, I am glad to announce the release of Waffle version 2.0, with a dozen new functionalities.

What’s new?

Documentation and website
Waffle now has detailed documentation and a new website.

Faster compilation with native and dockerized solc
By default, Waffle uses solcjs as it’s solidity compiler. This is convenient, because solcjs can be easily installed with the same tools as Waffle. On the other hand it tends to be slow for bigger projects.

With Waffle 2.0 you can now use blazing quick native and dockerized solc. If you don’t mind a couple of additional setup steps. Stay tuned for some Benchmarks.

New chai matchers: changeBalance
The new changeBalance and changeBalances matchers allow checking if a balance of an account(s) changed, example below:

Read more about new matchers in the documentation.

Support for TypeScript
The code is now rewritten in TypeScript with near complete support for developing with TypeScript. Notable exceptions are the chai matchers, which we plan to include in version 2.1.

When extensively testing code dependent on smart contracts it is often useful to have a specific scenario play out before each test. That leads to repetition and slow code execution. With fixtures, you can clean-up your code and speed it up by a order of magnitude. Here comes an example fixtures declaration:

And here how to use it:

Read more about fixtures in the documentation.


  • Waffle now supports config files with both json and js extensions.
  • Contract linking should work for both solidity 4 and solidity 5
  • The compilation is covered with extensive end-to-end tests
  • Waffle is now officially released under MIT license

Breaking changes:

  • getWallet() function is not async anymore
  • Node versions older than 10 are not longer supported
  • A new format for compilation output files has been introduced


Waffle 2.0 was possible thanks to a group of wonderful contributors, in particular, I would like to thank:

  • sz-piotr for implementing fixtures and migrating to TypeScript
  • vanruch for implementing change balance checkers (and revertedWith in previous version)
  • rzadp for implementing linking of smart contracts
  • spherefoundry and JustynaBroniszewska for their help
  • And last, but not least special thanks go to snario for day to day testing, reporting and helping in fixing multiple issues along the way.

Get updates

If you would like to get updates on Waffle ⭐️ and follow us Waffle GitHub.


If would like to get updates on what we do — follow us on Medium and if you like the story 👏 👏 👏.


On the blockchain, software engineering and running a company.

Medium is an open platform where 170 million readers come to find insightful and dynamic thinking. Here, expert and undiscovered voices alike dive into the heart of any topic and bring new ideas to the surface. Learn more

Follow the writers, publications, and topics that matter to you, and you’ll see them on your homepage and in your inbox. Explore

If you have a story to tell, knowledge to share, or a perspective to offer — welcome home. It’s easy and free to post your thinking on any topic. Write on Medium

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store