DXdao 1.x in Rinkeby

DXdao in Rinkeby

Hola a todos, I haven’t been in active in the forum and our governance proposals this past months because of my reduced worker engagement that focused entirely on dxtrust and dxvote development, so this post might be like a short update on what has been done in the development/governance side this past months and the next steps to halt the dxtrust bonding curve and bring dxdao gov 1.x (dxvote) to xdai/mainnet.

Over the past two months Ive been working on updating the dxtrust and dxvote dapps to work in multiple networks, the main goal here is to have a proper testing procedure of our governance actions, automate as much as we can and be able to also test new features on our own having complete control of our governance environment.


Lot of changes has been done here, but the most important ones are:

  • Code refactor and dapp optimization.
  • New ui/ux based on designs provided by @Zett
  • Removed openzeppelin from the devops process and using only a .contracts .json file to keep track of contracts deployed (just like we do on swpr).
  • Buy of the curve is disabled when the minimum buy value is set to max uint.

Whats next?

Set new ENS record of dxtrust.eth to the new IPFS hash (the dapp will detect when we set the minimum buy value to max uint and disable the buys in the dapp.)

PR for dxtrust v0.3.0: v0.3.0 by AugustoL · Pull Request #348 · levelkdev/dxtrust · GitHub

DXtrust v0.3.0 will be deployed automatically to IPFS when is merged into master, then the devs would be able to verify the IPFS hash generated and submit the ENS update proposal.

Add the buy/sell to swapr, this is a complex feature to add and test since we will have to modify the test scripts to deploy swapr in the local network and fund the pool that can be used.


It might not look like it but the dapp was improved a lot and is very close to having an usable version, I was able to test the update of the DXD token deployed in rinkeby setting the minimum buy to max uint, and disabling the token buys, so it is already being used for testing purposes.

List of things done so far:

  • User page, with no functionality from now, but the data is there, I need to show it in a nice way, something like a list of all the actions done by the user.
  • Scheme page that show the scheme configuration information.
  • Configuration page to enable/disable dapp features and add API keys of services to be used in the dapp. Example: If you add an etherscan API key you will be able to decode the calls that can be made to smart contracts.
  • Big optimization in the storage of the dapp, now the dapp is getting all the events executed in the voting machine (votes, stakes, proposal creations and proposal state changes). The events are immutable which means that once emitted they cant be reverted, so now I can optimize a lo the dapp usage by keeping a cache to be used by all users of the events executed historically.
  • Vote, stake and redeem actions can be executed normally, I tested the entire proposal process in rinkeby when updating the DXD token to set min investment as max uint.

PR for v1.0: v1.0 by AugustoL · Pull Request #2 · AugustoL/dxvote · GitHub

Whats next?

We reach the state where we can start thinking in the UI that will be used in the dapp, I will have to meet with the dxdao designers to set the requirements for the first dxvote designs. ping @geronimo and @Zett

On the smart contract side there are two things left: One is to finish the integration of the PermissionRegistry contract into the dxdao gov 1.x contracts and then we will ready to have the contracts audited. I guess after that we will be deploying dxvote in xdai and using it in rinkeby and xdai for testing before going to mainnet. ping @JohnKelleher

I will commit myself to have dxvote 1.x audited and deployed in xdai with real funds in May on my worker proposal that will be submitted tomorrow.


DXtrust, you can see the buy disabled in Rinkeby network: DXdao.eth
DXvote, only works on Rinkeby network, with same REP as mainnet: dxvote.eth
Proposal that updated the DXtrust configuration: dxvote.eth
Transaction executed by proposal to update DXtrust configuration: Rinkeby Transaction Hash (Txhash) Details | Etherscan
DXD in rinkeby: AdminUpgradeabilityProxy | 0xa700BdAba48A3D96219247111B0b708Dc0b51033
DXdao avatar in rinkeby: Contract Address 0xc339bc89eda253e4871110c0366b4004b0009c15 | Etherscan

And at last, for the existing or new workers that are interested in helping me in the technical/development side of dxtrust/dxvote you can send me a message in keybase.