Digix Dev Update — April 8th 2017
Kc Chng (CEO)
Digix Core Code Review
As mentioned in the last update, DappHub has agreed to performing a code review of Digix’s Core contracts.
As an extra pair of eyes, we have also gotten Vincent Eli’s agreement to take a look at our digix core contracts. Vincent is the founder of S3 Labs and CTO of StabL (A Consensys project). Vincent, being an experienced Ethereum developer with a PhD in decision / game theory, would definitely help us navigate or advice on any potential pitfalls (if there are any) in our smart contracts.
DappHub devs have begun a quick overview into our repository, and have estimated it could take between 4 to 6 weeks to do a full security audit. We will await their quotation for this project, and find a suitable date and time to begin, estimated no later than 1st May. When the formal audit begins, we will act on the ETC refund proposal.
We will, as usual, keep everyone informed of our progress.
Anthony Eufemio (CTO)
Last Sunday I gave a talk at UC Berkeley with the Blockchain @ Berkeley crowd on how to code ICS/CACP using the Digix development tools and truffle. The talk can be found here. (https://livestream.com/accounts/24422201/events/7219413).
Last week we have sent off our DigixCore 2.0 contracts to DappHub for an initial 3rd party code review. I am also doing my own run through the entire 1300 lines of solidity code to ensure quality, writing more unit tests, and adding NatSpec documentation.
Chris Hitchcott (Core Dev)
I was hoping to get this week’s Spectrum update released last Saturday, but I unfortunately was caught off guard by an unusually intense illness that took the most part of last week to recover from. I am now back in action, and apologies for the delay.
Anyways, since the last update I’ve been working intensely on Spectrum, specifically completing the integration of Ledger Nano and Offline Signing (via QR code) support. Check out this video for a run down:
There’s also a live demo available at: https://spectrum-alpha.digixdev.com/. We’ve even thrown in the Digix PoA UI we showed in an earlier update as an example dapplet (including the pdf/jpg/png/ipfs combiner), although it’s in read-only mode as the contract system only allows specific addresses to interact with it.
Right now there are a few caveats — some reasons why you shouldn’t be using Spectrum for anything serious right now:
- EIP155 support is implemented but not fully tested across multiple networks (and Kovan currently accepts transactions from other chains, so will need to be forked)
- I haven’t been able to test Ledger Nano with different firmware versions yet — it’s only tested with firmware 1.2.0.
- If you try and have hundreds of accounts with hundreds of tokens, you’ll probably run into some rendering performance bottlenecks (the app feeling sluggish). This will be addressed using redux middleware to batch requests / updates in a future update
- Browser support; we’ve only tested with Chrome and Android so far. Some of the features such as offline mode are unlikely to work on iOS; probably never, as it’s up to Apple to support web standards on iOS.
Finally, I also released the react-ledger-container package, which includes some enhanced behaviour for interacting with the ledger in a react app (automatically connecting, fetching config, pausing the polling to sign transactions, etc), which will make maintenance and integration easier in the future.
cacp-contracts
git@github.com:DigixGlobal/cacp-contracts.git
- f5fdc0f — [maint] bump npm version
- f705d09 — [feature] contract checker
core2-storage-library-contracts
git@github.com:DigixGlobal/core2-storage-library-contracts.git
- 01c0693 — [maint] update CACP package
- d21b9c7 — [feature] remove factories and use assembly to create adhoc addresses
- 6316f14 — [feature] end to end testing for Vendor Interface
- 4a90363 — [feature] Custodian delivery listing
- 2d9ae06 — [feature] marketplace order preocessing
- 1ad7b6c — [feature] List marketplace items in Vendor Interface
- 7bc1f97 — [wip] cleanup for dappsys guys
- eafe825 — [feature] Product registration
- 7cbbae2 — [feature] Authority registration and query
digix.io
git@github.com:DigixGlobal/digix.io-v2.git
- 539b6c7 — [maint] build
- 2c2850c — [maint] update slack invite link
react-ledger-container
git@github.com:DigixGlobal/react-ledger-container.git
- 8d9ba44 — [bugfix] expose raw ethLedger object to childProps
- 2c1f680 — [maint] minor tweak to chainId logic for eip155 (needs testing)
- 553ff6d — [features] implementation of eip155 (untested)
- 1898dd4 — [maint] update readme / package.json
- c1b5c48 — [wip] inital commit; implenent container with polling & signTransaction
spectrum
git@github.com:DigixGlobal/Spectrum.git
- 9d2f241 — [wip] minor update to landing page
- 8e22456 — [wip] re-enable tokens, use infura
- 8fc1cf9 — [bugfix] allow cold address scannign with no existing addresses
- bc13d78 — [wip] bump react-ledger-container version, show version in address list
- 399543b — [wip] add tx info to all tx ui
- 4aa4e55 — [wip] tx ui for (base) tokens
- fed77e9 — [wip] better keystore menu, minor refactor
- bf7fcd6 — [wip] landing modal warning, misc markup tweaks
- 29696a1 — [wip] add immediate checksum feedback to addressInput
- 5c2a048 — [wip] remove header from qr code scanner modal
- cd5b5c1 — [wip] add qr code scanner to address input
- 6351e48 — [wip] more tweaks
- 63928e8 — [wip] minor ui/css tweaks
- 8b3fec6 — [wip] basics for nicer accounts dropdown
- 2aff8ae — [wip] update web3 to 0.18.4
- fe46bb0 — [wip] rename ‘create’ buttons
- 6c5ff4f — [wip] add chainId to tx data
- d9a3ada — [wip] validate existing addresses before inserting keystore
- bec166f — [wip] import cold storage accounts via QR code
- 3a32d5b — [wip] explicitly export web3Util methods
- 1565880 — [wip] multiple addresses per cold storage keystore
- d389cf3 — [wip] misc. refactoring of keystore managmenet
- e39e9f3 — [wip] enable digix_assets dapplet, show read-only message
- d036d34 — [wip] make defaultAddress not mandatory
- 20c1dbb — [wip] add babel-eslint dep to package.json
- f099116 — [wip] add shrinkwrap
- e7de38b — [wip] complete nicer offline signing workflow
- 937377d — [bugfix] use ledgerContainer in creationForm
- 7a5bb20 — [wip] basic working offline signing (needs nicer UI)
- 69213a2 — [wip] use @digix/react-ledger-container
- 9b4c23d — [wip] minor cleanup; fix webpack linking
- 81a6ed2 — [wip] validation for tokens/networks
- 85bb7a5 — [wip] export all web3 helpers from stringUtils
- 4a4bf0a — [wip] move modal form submit buttons into ezmodal
- 8e99bf5 — [maint] update ezmodal version, replace change with formChange & drop target api
- fbe1807 — [wip] clean up ledger transaction sigining, add onReady to ledgerContainer
- 7d232e9 — [wip] ledger nano support (needs a little cleaning up)
- 68804d9 — [wip] ledger nano crud
- 18646a9 — [wip] complete UI for creation
- 4a63476 — [wip] add modal option for networks_token_selector to show modal button
- 4967dd1 — [maint] refactor networks & defaultNetworks into token selector
- 640b9a0 — [bugfix] deleting keystores doens’t flip out
- 2a750f4 — [wip] begin integration with keystore modal
- 7f741ef — [wip] minor pagination refactor
- 4d3f489 — [wip] paginated ledger addresses (+ fix HD path)
- 1922133 — [wip] ledger nano accounts selector
- 7372a9b — [wip] refactor v3 & redux provider to expect signed tx
- 8a30ca7 — [wip] add addHexPredix to stringUtils
- 7fdab30 — [wip] rename headers
sui-react-ezmodal
https://hitchcott@github.com/hitchcott/sui-react-ezmodal.git
- d6bb22e — [feature] add dynamic header text, bump version
- 3337a35 — [feature] only show done button if no submit action passed
- 6ac12dc — [bugfix] properly show error messages & show error for non-asnyc submits
- c8bad40 — [feature] add hidden submit button to forms, disable with disableHiddenSubmitButton 😬
- 7ee25a3 — [maint] remove change in favor of formChange (with optional target), bump minor version