Skip to content

Working Place: Emerald Wallet / Ethereum Classic Wallet

License

Notifications You must be signed in to change notification settings

EthersocialNetwork/emerald-wallet

 
 

Repository files navigation

Emerald - Ethereum and Ethereum Classic Wallet

CircleCI emerald wallet Travis CI Build Status License AppVeyor Build Status Codecov

Development instructions

The recommended way to assert that you are using the correct version of node is to use nodenv, which will shim the node and npm commands and assert that the local version is set to what is specified in .node-version.

Once nodenv is installed:

$ nodenv install

The required version of node >= v8.

Dependencies

Libs

You need libudev, libusb-1.0-0, libusb-1.0-0-dev installed on Linux

Ubuntu:

sudo apt-get install libudev-dev libusb-1.0-0 libusb-1.0-0-dev

NPM packages

This will install dependencies.

$ lerna bootstrap

Emerald and geth

Emerald

If you haven’t got emerald already installed on your system, you can execute ./dependencies.sh to automatically rustup and use cargo to install emerald-cli and move it to the project’s base dir. Note: this command is idempotent for rust and cargo (it won’t try to install cargo if you’ve already got it), but it will use cargo’s -f flag to force install emerald-cli and copy that version to the project directory.

Geth

If geth isn’t available in your project directory, upon launching the app, it automatically be downloaded and placed in your project base dir.

Run for development

Firstly: a couple things aren’t working right. If you can fix either of these issues, @whilei will buy you a beer.

  • Issue 1: webpack-dev-server isn’t working right with the current babel-webpack-electron-izing setup. So you’ve got to do your development in Electron for now. Which means you can’t run npm run start:web. Bummer.

With these caveats in mind, you can run:

Terminal 1

# This will begin a live-watching compiler for ./src/ and ./electron/ folders
$ yarn build:all:dev

Terminal 2

# This will begin the simulated electron app pulling from those compiled sources.
$ yarn start:electron

Logs

Emerald logs

Electron and Emerald logs persisted in:

  • OSX: ~/Library/Logs/EmeraldWallet/log.log

  • Linux: ~/.config/EmeraldWallet/log.log

Geth logs

During development, you’ll find geth’s logs in ./logs right in the project base directory.

In production, logs will be nestled in

  • OSX: ~/Library/Application Support/EmeraldWallet/

  • Windows: %USERPROFILE%\AppData\Roaming\EmeraldWallet\logs

Building alternatively

You can also use a variety of alternate build options, eg.

$ npm run build:all:nowatch
$ npm run build:web

Building distributions in development

You can run a distribution build in your development environment. Assuming you’ve already compiled ./src/ and ./electron/, you’ll be able to run:

$ npm run dist

This command will build for your current system. Note that there are configurations for several systems (OSX, Linux, Windows) specified in the "build" field of package.json, but the dist command will by default only build for the system it’s on.

Note: If you’re developing on OSX and have a developer signing identity on your machine, you can optionally disable that with CSC_IDENTITY_AUTO_DISCOVERY=false.

OSX is also able to build for Linux. Add -ml to that raw command to build for both OSX and Linux at the same time.

Troubleshooting

Some preliminary things to try in case you run into issues:

  • Clear out any persisted settings or userdata from previous trials

    • OSX: ~/Library/Application Support/EmeraldWallet

    • Linux: ~/.config/EmeraldWallet

    • Windows: %APPDATA%\EmeraldWallet

Run tests

npm run test:watch

or for single run:

npm test

Contact

Chat with us via Gitter

License

Apache 2.0

About

Working Place: Emerald Wallet / Ethereum Classic Wallet

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • JavaScript 82.6%
  • TypeScript 16.7%
  • Other 0.7%