Chris Hitchcott (Digix Core Dev)

I started this week continuing with the refactoring I discussed last week; converting Spectrum’s redux datastore into a more manageable, efficient and developer-friendly format. It’s very nearly done; finalizing how the web3-redux action-creators api will be efficiently generated, but that requires a fair amount of thought and experimentation to get right (whilst balancing with the idea of not over-optimizing before needed).

But then, midweek, to my surprise, Tim Coulter (and team) released the wonderful Truffle ~~4.0~~ 3.0. Amazing! And, by god, it was fairly different (and superior) to what I had expected having followed along with the 3.0-beta releases. What it meant what that we now have (for the first time) proper modularity of smart contracts leveraging NPM (and finally I didn’t have to re-publish every contract dependancy each time `ether-pudding` updated or needs to be patched).

This week I studied the new Truffle and migrated the existing solidity codebase. With the majority of contract migrated (pending some minor learning opportunities to do with imported contracts), and the creation of `@digix/truffle-lightwallet-provider` (RIP sigmate), I’ve gained a fair understanding of how the new version Truffle works, and my impression so far is that Tim has done an excellent job eviscerating the codebase into decoupled units. Let it be said: from my perspective, new Truffle is damn good, and I expect it to be relatively stable (or at least there won’t be a huge overhaul) for some time to come.

On a side note, for now I’m going to be sticking with NPM for contract package management for a little while. Whilst EPM will definitely be a big deal for production package deployments, right now NPM is a development comfort blanket that we’re not quite willing to let go of just yet. Private repos, `npm link`, offline development (via yarn), plus just not having to deal with the extra complexity of an on-chain registry is something that (for development), cannot be beaten by NPM.

We’re now very happy to be on a brand spanking stable release of Truffle, and I’m extremely excited about the future eco-system that this new contract modularity will enable.

Weekly Commit Report

# Project github.com:DigixGlobal/sigmate

- 9b9d4ce — [maint] update readme with `expose`

- ea278a5 — [feature] don’t show seed on creation, add `sigmate expose` command

- 51c9e73 — [bugfix] create correct number of accounts

- e7e4d5f — [feature] [3.0] uses `eth-lightwallet` HD keystore, remove truffle-specific code

# Project github.com:DigixGlobal/Spectrum

- 35fe521 — [maint] remove old restoreBakcup method (now hanlded by redux-persist)

- 25b0121 — [maint] remove potentially buggy rerender check on Acocunt

- d6da238 — [maint] better UI for updated networks config panel

- 60b7936 — [bugfix] `status` existentiality check to prevevent uncaught error on initial load

# Project github.com:DigixGlobal/solidity-core-libraries

- 9bf2b97 — [maint] use latest lightwallet-provder, add `prefund` in truffle.js

- 6fa8521 — [maint] fix gitignore

- 9223909 — [maint] remove another doxity hangover

- 7ba84cd — [maint] v0.0.8

- 9f228aa — [maint] use `@digix/truffle-lightwallet-provider`, deploy using ropsten! <U+1F60E>

- b473622 — [maint] remove doxity hangover

- 9c28aa6 — Merge commit ‘f9bb06575db9112413e51a025da6298d699d27ab’

- 637123c — [maint] use truffle-lightwallet-provider

- f9bb065 — [maint] bump version

- ce25cc6 — Merge branch ‘master’ of github.com:DigixGlobal/solidity-core-libraries

- 334701f — [feature] Add TX fee calculation

- 630a533 — [maint] add watch-test script

- 8a05390 — [maint] update readme

- fd1cf60 — [maint] migrate test environment to truffle 3.0 [todo ropsten]

- ef5ea7b — [maint] recompile MathUtils

- 1c536a6 — [maint] Bump npm version

- 1333f68 — [feature] Move demurrage info function into MathUtils

- 5f596cc — [maint] bump npm package version

- 06f8db3 — [maint] use underscore for function and variables

- a9c129d — [maint] update to match latest boilerplate

# Project github.com:DigixGlobal/core2-storage-library-contracts

- 1a54f88 — [maint] fix MathUtils import & deploy to ropsten

- 56e925d — [maint] migrate to truffle 3.0 [wip; figure out MathUtils]

- 8c5d287 — [maint] Bump solidity-core-libraries to v0.0.5

- 1b79be0 — [maint] bump solidity-core-library dependency version

- 2708973 — [maint] fix tests

- 976dc21 — [feature] Digix User storage type