Chris Hitchcott (Digix Core Dev)

Greetings! Chris here to once again update you with this week’s development activities. We’ve been busy with continued work on the toolchain and have a few new releases that we’re using in our stack. In order of descending ‘coolness’, here they are:

Doxity 0.3.0

https://digixglobal.github.io/DigixMath/docs/DigixMath/

For me the most exciting thing to announce is the update to Doxity that now integrates more closely with truffle. So closely, in fact, that if a contract has been deployed with truffle, the generated documentation will contain an interactive GUI so anyone visiting your documentation site can play around with your live deployed contracts — (don’t worry, no transactions, just `call`s).

In case you didn’t know Doxity is our recently released tool that automatically generates static HTML webpages from natspec-commented solidity files. Previously this was purely as a nice way of viewing the comments on a published website.

But now we’ve gone ahead and made it much cooler by having it interact with real, deployed, on-chain smart contracts. Check out the demo site — which has contracts deployed to morden that you can interact with by filling in the input boxes. Thanks to infura for the hosted node.

Truffle NPM Libraries

Example: https://github.com/DigixGlobal/DigixMath

During devcon I learned about truffle’s 3.0 beta release which includes support for npm-packaged solidity files. Basically, this allows us to leverage node’s package manager with solidity contracts, whilst keeping track of deployment addresses for different network.

We’ve now implemented this feature and will be using it for the release for the Digix core contracts. The benefit here is that both Digix and non-Digix developers can extremely easily import our contracts (and even deployed contracts) into their project without having to copy the source code.

We hope using this approach will encourage synergies and code-sharing within the solidity ecosystem, and be a foundation for future development patterns similar to this. Peronally I believe that node’s success is closely tied with the excellent NPM, which has become a staple tool for any javascript dev. In time, hopefully it’ll be the same for any Solidity dev, and we’ll have tonnes of easily-shared pre-deployed Solidity contracts that devs can make use from.

Sigmate 0.2.0

https://github.com/DigixGlobal/sigmate

Sigmate is a tool that was being used for keystore management in our core project, signing transactions within the test environment rather than the node. We’ve explained why this is cool in a previous post.

This week, along with the aforementioned truffle integration, sigmate has been updated to better integrate with truffle — hooking in at the config file level rather than the test/deploy/execution environment. This makes for a more vanilla-truffle-like experience when running tests and relegates the use of Sigmate to a single line of code in truffle.js.

Sigmate now also uses the new wallet keystore format (with a custom ProviderEngine plugin to handle multiple accounts), and we’ve introduced a CLI tool for generating new keystores with minimal effort.

Migration Tool

https://digixglobal.github.io/wallet-migration/migrate/

Finally, we’ve created a little tool to help with the release of 2.0 — a wallet migration tool that will convert old-style Digix lightwallet keystore into the fancy new `V3` style, which is compatible with Geth and MyEtherWallet.