A Status client reference implementation using Status-JS.

WIP. DO NOT USE IN PRODUCTION. HIGH RISK ⚠



## Install Currently Status-JS-desktop relies on Geth, ensure that [**Geth**](https://github.com/ethereum/go-ethereum/wiki/Installing-Geth) is installed. In the future we plan for this to be bundled with status-js-desktop or use [**MurMur**](https://github.com/status-im/murmur). clone the repo via git: ```bash git clone https://github.com/status-im/status-js-desktop.git ``` And then install the dependencies with yarn. ```bash $ cd status-js-desktop $ yarn ``` ## Run Start Geth with shh flags ```bash $ geth --testnet --syncmode=light --ws --wsport=8546 --wsaddr=localhost --wsorigins=file:// --maxpeers=25 --shh --shh.pow=0.002 --wsapi=eth,web3,net,shh,debug console ``` Start the app in the `dev` environment. This starts the renderer process in [**hot-module-replacement**](https://webpack.js.org/guides/hmr-react/) mode and starts a webpack dev server that sends hot updates to the renderer process: ```bash $ yarn dev ``` If you don't need autofocus when your files was changed, then run `dev` with env `START_MINIMIZED=true`: ```bash $ START_MINIMIZED=true yarn dev ``` ## Packaging To package apps for the local platform: ```bash $ yarn package ``` To package apps for all platforms: First, refer to the [Multi Platform Build docs](https://www.electron.build/multi-platform-build) for dependencies. Then, ```bash $ yarn package-all ``` To package apps with options: ```bash $ yarn package --[option] ``` To run End-to-End Test ```bash $ yarn build-e2e $ yarn test-e2e # Running e2e tests in a minimized window $ START_MINIMIZED=true yarn build-e2e $ yarn test-e2e ``` :bulb: You can debug your production build with devtools by simply setting the `DEBUG_PROD` env variable: ```bash DEBUG_PROD=true yarn package ``` ## CSS Modules This boilerplate is configured to use [css-modules](https://github.com/css-modules/css-modules) out of the box. All `.css` file extensions will use css-modules unless it has `.global.css`. If you need global styles, stylesheets with `.global.css` will not go through the css-modules loader. e.g. `app.global.css` If you want to import global css libraries (like `bootstrap`), you can just write the following code in `.global.css`: ```css @import '~bootstrap/dist/css/bootstrap.css'; ``` ## SASS support If you want to use Sass in your app, you only need to import `.sass` files instead of `.css` once: ```js import './app.global.scss'; ``` ## Static Type Checking This project comes with Flow support out of the box! You can annotate your code with types, [get Flow errors as ESLint errors](https://github.com/amilajack/eslint-plugin-flowtype-errors), and get [type errors during runtime](https://github.com/codemix/flow-runtime) during development. Types are completely optional. ## Dispatching redux actions from main process See [#118](https://github.com/electron-react-boilerplate/electron-react-boilerplate/issues/118) and [#108](https://github.com/electron-react-boilerplate/electron-react-boilerplate/issues/108)