When you program an Ethereum contract in Bamboo, you see prestates and poststates clearly on the program. Bamboo is particularly suitable for implementing games with multiple stages. A Bamboo program’s outermost structure is those stages. Each stage contains possible operations from there. Every finishing line of an operation contains the next state explicitly. The Bamboo compiler emits EVM bytecode that you can deploy on test networks.

I didn’t make any new Bamboo releases for several months, and I saw an issue about some leftover debugging messages in the ABI JSON output. The issue didn’t reproduce for me on the master branch, and I remembered I had fixed the same issue, but on the master branch only. I needed a new release.

So, here comes Bamboo 0.0.03. opam update; opam install bamboo should get you the latest version.

Bamboo.js

Now you can run the Bamboo compiler as a Javascript program, thanks to Javier Chávarri. By the way, the above linked instruction should appear somewhere in README.

Integration with ganache-cli

A while ago, the Bamboo compiler was tested against cpp-ethereum. The client works fine, but the interaction with the compiler was awkward at best. I typed sixty-four 0’s to represent a zero, and concatenated several such zeros. Now Travis runs tests with ganache-cli through web3 interface (thanks Tim Gestson), so it’s getting closer to how everybody uses Ethereum.

It’s time to write more tests like this one. It’s all about deploying a contract and making calls and checking results.