Week of december 5th: Development Update — Quinten De Swaef (lead dev)

What?

This will be the first in the series of our weekly development update. We’re aiming at writing a short update on a weekly basis to make sure everyone is up to date with the current development. This is also the place where people can react and ask questions regarding to any of the updates of that week.

Next to our development updates, we’ll also release some more technical, in depth blog posts concerning technologies we’re using or how we solved certain problems we faced. We’ll try to keep development updates concise and to the point.

Initial setup of the crowdsale application

As you’ll see, we’re setting up the web application of our crowdsale. It’s a simple spring boot application, using a straight forward template. The entire build is started by Gradle. Internally, Gradle uses npm and gulp to build the web application that will be presented. The entire application is packaged in an easy to deploy docker image, which we can quickly dispose of after the crowdsale has ended. We’re still actively developing this, but it shouldn’t take very long.

Next up in this repository will be the integration of the code our truffle build will be generating. We’ll publish each release to the npm-registry, so we can use it as a dependency in our crowdsale application.

The purpose of these easily accessible docker files is that we can create a dev/test/acc/production environment, which can be used by anyone to test and validate our code. Our hard deadline for the first testable release is this month, so the focus of development will mainly be the crowdsale application (frontend) and the token (blockchain backend);

Creation of our wallet contract

Initially, we were thinking of using a MultiSig Wallet, which is basically a fork of the ConsenSys wallet. However, we’ll be adding a few things to this wallet, before we’ll deploy it.

In the MultiSig wallet, we’ll be adding a special closure for advertisers. We have set up special agreements with certain advertisers. In the event of a fully funded crowdsale, these advertisers will be able to withdraw X-Amount of funds, depending on the agreement. All of the amounts and addresses will be fully visible in our GitHub repository.

Expansion of our token

Because we added in our whitepaper that we’ll be refunding the funds should our goal not be reached, we’re currently thinking out the best way to put this in the initial contract. This actually goes hand in hand with the creation of our wallet contract. At this point, our crowdsale will automatically send the funds to an address which we can choose (our MultiSig wallet). However, if we want to automatically be able to make refunds possible in the event of a no-goal AND make sure everyone is reimbursed correctly (due to power hour differences), we’re still testing our code to make sure everything works. An update on this will be available next week, but needs more unit tests to make sure every path executes as expected.

Travis Configurations

In all of the application that we’ll be building, as well as all of the contracts, we’re making sure everything can be build independently. Therefore, we’re adding travis configurations to each and every single one of them. We’ll be writing a blogpost on the deeper details of how you can set up a truffle project using npm/yarn use travis to manage your continuous integration.

Preparation of our communication with MetaMask

In the previous weeks, we’ve contacted MetaMask to solve our inter-extension communication. The way MetaMask works now, is that any website’s web3 environment can be replaced if you have the MetaMask Chrome Extension. Unfortunately, two independent extensions can’t cooperate with each other. If one extension (ours) injects javascript to create a web3 environment, MetaMask can’t pick it up, because our code is sandboxed. We’ve contacted MetaMask in the past, and they’re open to look at this feature. We’re opening an issue soon to discuss this feature further, because it would open up all other extensions to be able to talk to MetaMask.

Questions?

Feel free to ask any questions here, on twitter (@fundrequest_io) or slack (fundrequest.slack.com). We’ll be happy to respond.