Enable communities to distribute funds to push their cause forward. https://openbounty.status.im/
Go to file
Goran Jovic d3ec7fb5a0 added github logo to landing page 2017-10-31 11:36:45 +01:00
.github Adopt status-react issue template 2017-03-06 20:36:21 +02:00
contracts updated addresses 2017-08-22 00:30:33 -03:00
doc Update testing document 2017-10-30 22:06:22 +02:00
env Improved dev experience 2017-10-29 18:09:00 +02:00
externs Fix issues with injected web3 and advanced cljs compilation 2017-02-23 12:26:29 +02:00
resources Get rid of purple favicon for landing page 2017-10-31 11:40:39 +02:00
src Error handling for hubspot contact create 2017-10-31 08:50:44 +02:00
static_langing_page added github logo to landing page 2017-10-31 11:36:45 +01:00
test Unit test for deploying multisig 2017-08-22 13:53:05 +03:00
.gitignore Allow token-data reloading in REPL, refactoring 2017-08-22 12:02:41 +03:00
LICENSE.md Update LICENSE.md 2017-03-09 15:32:03 +01:00
README.md Basic build/link landing page script 2017-10-30 11:12:27 -05:00
build-landing-page.sh Basic build/link landing page script 2017-10-30 11:12:27 -05:00
build_contracts.sh Use correct namespace for generated contract wrappers 2017-08-22 12:02:41 +03:00
project.clj add precompilation of java files in order to make lein run work without cp dancing 2017-10-30 16:27:51 +01:00

README.md

Commiteth

Allows you to set bounties for Github issues, paid out in Ether.

More information: http://wiki.status.im/proposals/commiteth/

Live alpha version: https://commiteth.com The master branch is automatically deployed here.

Live testnet (Ropsten) version: https://openbounty.status.im:444 The develop branch is automatically deployed here.

Prerequisites

You will need Leiningen 2.0 or above installed.

PostgreSQL

Make sure you install PostgreSQL and properly set it up:

sudo -u postgres psql -c "CREATE USER commiteth WITH PASSWORD 'commiteth';"
sudo -u postgres createdb commiteth

solc

Solidity compiler 0.4.15 is required and needs to be in $PATH.

web3j

Web3j 2.3.0 is required and the command line tools need to be in $PATH.

Running

Make sure env/dev/resources/config.edn is correctly populated.

Lauch a local geth node with the bot account unlocked:

#!/bin/bash
geth --fast --testnet --cache=1024 --datadir=$HOME/.ropsten --verbosity 4 --port 50100 --ipcpath ~/.ropsten/geth.ipc --rpc --rpcaddr 127.0.0.1 --rpcport 8545 --rpcapi db,eth,net,web3,personal --rpccorsdomain "https://wallet.ethereum.org" --unlock "0xYOUR_ADDR" --password <(echo "YOUR_PASSPHRASE")

Launch the following command in a separate shell:

lein less auto

Next you want to start a REPL on the backend and the frontend.

lein repl

Now you can start a CLJS repl with:

(use 'figwheel-sidecar.repl-api)
(start-figwheel!)
(cljs-repl)

(Alternatively, if you use emacs and CIDER, you can run cider-jack-in. Details here)

Next start the application from the clojure REPL with:

(user/start)

Gotchas

Due to a current limitation you will get the following exception from the clojure compiler with dev builds:

Caused by: java.lang.ClassNotFoundException: commiteth.eth.contracts.TokenReg, compiling:(commiteth/eth/token_registry.clj:1:1)

The problem is the java classes generated by web3j have not been compiled. It can be worked around by running these commands:

lein build-contracts
lein jar
lein repl # this will fail
cp -r target/classes/commiteth target/base+system+user+dev/classes

This should be fixed to project.clj ASAP.

Uberjar build

To create a standalone uberjar:

lein uberjar

This creates target/uberjar/commiteth-<git-sha>.jar

Testing

QA

Please refer to doc/testing.md

Clojure tests

lein test

ClojureScript tests

lein with-profile test doo phantom test

Reagent component devcards

lein with-profile test figwheel devcards

Open http://localhost:3449/cards.html

Update landing page

Landing page is static and different CSS and JS due to time constraints.

  • Build CSS with Gulp (see static_landing_page/README.md
  • Make changes and ./build-landing-page.sh

This copies over necessary artifacts to resources dir.

License

Licensed under the Affero General Public License v3.0