emerald-wallet

by emeraldpay

emeraldpay / emerald-wallet

Emerald Wallet

197 Stars 86 Forks Last release: 3 months ago (v2.3.0) Other 1.8K Commits 44 Releases

Available items

No Items, yet!

The developer of this repository has not created any items for sale yet. Need a bug fixed? Help with integration? A different license? Create a request here:

= Emerald Wallet for Desktop

image:https://github.com/emeraldpay/emerald-wallet/workflows/Unit%20Tests/badge.svg["Unit Tests"] image:https://codecov.io/gh/emeraldpay/emerald-wallet/branch/master/graph/badge.svg[Codecov,link=https://codecov.io/gh/emeraldpay/emerald-wallet] image:https://img.shields.io/github/license/emeraldpay/emerald-wallet.svg?maxAge=2592000["License",link="https://github.com/emeraldpay/emerald-wallet/blob/master/LICENSE"]

Emerald is a non-custodial desktop cryptocurrency wallet. Official website: https://emerald.cash

Features:

  • Windows, macOS and Linux
  • Ethereum, Ethereum Classic, Tether and Dai
  • Imports Private Key from JSON or Raw Hex
  • Supports Mnemonic Phrase (BIP-39) and HD Accounts (BIP-32)
  • Supports Hardware Wallets, Ledger Nano S and Nano X
  • Doesn't require a local full node

== Development instructions

=== Code Design

The project is based on

  • Electron + NodeJS
  • Typescript
  • React + Redux
  • Rust for some modules

The recommended way to assert that you are using the correct version of node is to use https://github.com/nodenv/nodenv[nodenv], which will shim the

node
and
npm
commands and assert that the
local
version is set to what is specified in https://github.com/emeraldpay/emerald-wallet/blob/master/.node-version[.node-version].

Once nodenv is installed:


$ nodenv install

The required version of

node
>=
v12
.

=== Dependencies

==== Libs

You need

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

.On Ubuntu:

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

==== NPM packages

.Install development tools

npm install -g node-gyp lerna yarn

.For windows run also:

npm install -g npm [email protected]

.Install dependencies:

lerna bootstrap

=== Run for development

.Build sources

$ lerna run build

.Start Electron application

$ lerna run start:electron

=== Troubleshooting

==== Emerald Vault module error

Electron may show error, like:

[emerald-vault-native] was compiled against a different Node.js version using NODEMODULEVERSION 64. This version of Node.js requires NODEMODULEVERSION 69. Please try re-compiling or re-installing the module (for instance, using npm rebuild or npm install)

At this case you'll need to recompile Emerald Vault for your platform and version of Electron. You will need to have Rust compiler and LLVM installed, please follow instructions on:

  • https://rustup.rs/
  • http://releases.llvm.org/download.html

After installing Rust and LLVM run following to recompile the module:

export RUSTFLAGS=-C target-feature=+crt-static

npm run build:neon

=== Logs

Electron and Emerald logs persisted in:

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

=== 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:

yarn build: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


yarn test:watch

or for single run:

yarn test

== Contact

=== Submit Bug

https://github.com/emeraldpay/emerald-wallet/issues/new

=== Contact Support

https://emerald.cash/support

=== Chat

Chat with us via Gitter: https://gitter.im/emeraldpay/community

=== Submit Security Issue

Email to [email protected]

== License

Copyright 2020 EmeraldPay, Inc

Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

We use cookies. If you continue to browse the site, you agree to the use of cookies. For more information on our use of cookies please see our Privacy Policy.