Giter Site home page Giter Site logo

ravikantcool2023 / emerald-wallet Goto Github PK

View Code? Open in Web Editor NEW

This project forked from emeraldpay/emerald-wallet

1.0 1.0 0.0 14.08 MB

Emerald Wallet

Home Page: https://emerald.cash

License: Apache License 2.0

JavaScript 0.46% Rust 3.33% TypeScript 96.11% HTML 0.10%

emerald-wallet's Introduction

Emerald Wallet for Desktop

Unit Tests Codecov 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 (the required version of NodeJS >= v18.)

  • Typescript

  • React + Redux

  • Rust for some modules

Setup Environments

Install System 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

Install Rust

Since the Emerald Wallet now contains a code written in Rust you need to have Rust compiler installed, please follow instructions at https://rustup.rs

You may also need to have Visual Studio Build Tools with "Desktop development with C++" component, install it from https://visualstudio.microsoft.com/downloads/#build-tools-for-visual-studio-2022

Install NPM packages

Install development tools
npm install -g yarn
Install dependencies:
yarn install

Run for development

Build sources
yarn build:native
yarn build

Optionally you can build desktop app with automatic rebuild on change. Please note that it rebuilds only main Desktop module, and you have responsibility to rebuild other modules manually when changed.

Continuous rebuild of Desktop (optional):
yarn build:watch
or
yarn workspace @emeraldwallet/desktop build:watch
Start Electron application:
yarn workspace @emeraldwallet/desktop start

Troubleshooting

Cleanup

If you’re facing some weird problem it makes sense to make a full cleanup and then rebuild everything from scratch.

Erase compiled Javascript (it’s also done automatically on build):
yarn clean
To erase NPM modules (may be needed when you build under different NodeJS version):
yarn run clean:modules

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

Contact

Chat

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

Submit Security Issue

License

Copyright 2023 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.

emerald-wallet's People

Contributors

splix avatar gagarin55 avatar elaineo avatar boomer74 avatar shanejonas avatar belfordz avatar whilei avatar sorpaas avatar r8d8 avatar kominkyu avatar pocesar avatar jypdev avatar sndyuk avatar

Stargazers

Ravikant avatar

Watchers

Ravikant avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.