All Projects → thorchain → asgardex-electron

thorchain / asgardex-electron

Licence: MIT license
||| ASGARDEX Electron App ||| desktop wallet and decentralized exchange for THORChain ||| 100% open-source

Programming Languages

typescript
32286 projects

Projects that are alternatives of or similar to asgardex-electron

Atomicdex Desktop
atomicDEX Desktop app - project codename "Dextop"
Stars: ✭ 126 (+35.48%)
Mutual labels:  wallet, dex
binance-chain-python
Binance chain SDK in Python
Stars: ✭ 22 (-76.34%)
Mutual labels:  wallet, dex
dexdeps
查看dex中class, field, method内部与外部依赖
Stars: ✭ 23 (-75.27%)
Mutual labels:  dex
RavenCoin-Wallet-With-Miners
RavenCoin Wallet including CPU and GPU miners! programs are directly from Ravencoin and official miner sources
Stars: ✭ 75 (-19.35%)
Mutual labels:  wallet
station
station.terra.money
Stars: ✭ 53 (-43.01%)
Mutual labels:  wallet
tangem-sdk-ios
The native Swift library for iOS platforms
Stars: ✭ 35 (-62.37%)
Mutual labels:  wallet
clorio-client
💰 A Mina Protocol Wallet - The most used Mina Protocol wallet.
Stars: ✭ 49 (-47.31%)
Mutual labels:  wallet
ethereum-light-wallet-android
react native based light ethreum wallet
Stars: ✭ 24 (-74.19%)
Mutual labels:  wallet
evian
www.balletcrypto.org/
Stars: ✭ 21 (-77.42%)
Mutual labels:  wallet
nanook
Ruby library for making and receiving payments and managing a nano currency node
Stars: ✭ 17 (-81.72%)
Mutual labels:  wallet
polkawallet-flutter
Replace to: https://github.com/polkawallet-io/app
Stars: ✭ 107 (+15.05%)
Mutual labels:  wallet
Codeigniter-blockchain
A library to use the Blockchain Wallet API: https://blockchain.info/api/blockchain_wallet_api
Stars: ✭ 19 (-79.57%)
Mutual labels:  wallet
kukai
Web wallet for the Tezos blockchain
Stars: ✭ 157 (+68.82%)
Mutual labels:  wallet
DAPSCoin
DAPS is the world's first coin to implement Bulletproofs and RingCT & Ring Signatures in a staking chain. With DAPS it is possible to stake, run masternodes and mine PoA blocks.
Stars: ✭ 58 (-37.63%)
Mutual labels:  wallet
cashuwallet
Cashu is a cryptocurrency wallet for smartphones. Be your own bank. Accept payments or spend crypto directly from your phone.
Stars: ✭ 35 (-62.37%)
Mutual labels:  wallet
fluidex-backend
Building the first permissionless layer2 orderbook DEX on Ethereum, powered by PLONK zk-rollup
Stars: ✭ 24 (-74.19%)
Mutual labels:  dex
ethereum-hdwallet
CLI and Node.js library for Ethereum HD Wallet derivations from mnemonic
Stars: ✭ 44 (-52.69%)
Mutual labels:  wallet
project-icarus-chrome
Icarus, a reference implementation for a lightweight wallet developed by the IOHK Engineering Team.
Stars: ✭ 32 (-65.59%)
Mutual labels:  wallet
Card-Tray-Demo
A clone of Apple's Wallet app
Stars: ✭ 40 (-56.99%)
Mutual labels:  wallet
cryptowallet-cli
CW is a crypto wallet generator CLI tool for a lot of blockchains: Bitcoin, Ethereum, Binance Smart Chain and many others
Stars: ✭ 45 (-51.61%)
Mutual labels:  wallet


Version Test Electron build

Discord Follow on Twitter

Feature list

Symbols: ✔️ implemented planned - not needed

Wallet

THOR BNB / BEP2 BTC BCH DOGE ETH / ERC20 LTC TERRA COSMOS
Keystore ✔️ ✔️ ✔️ ✔️ ✔️ ✔️ ✔️ ✔️ ✔️
Ledger * ✔️ ✔️ ✔️ ✔️ ✔️ ✔️ ✔️ ✔️
Send ** ✔️ ✔️ ✔️ ✔️ ✔️ ✔️ ✔️ ✔️ ✔️
Receive ✔️ ✔️ ✔️ ✔️ ✔️ ✔️ ✔️ ✔️ ✔️
Upgrade *** ✔️ ✔️ - - - ✔️ - - -
Deposit ✔️ - - - - - - - -
Shares ✔️ ✔️ ✔️ ✔️ ✔️ ✔️ ✔️ ✔️ ✔️
History ✔️ ✔️ ✔️ ✔️ ✔️ ✔️ ✔️ ✔️ ✔️
Synths

(*) Ledger THOR is not supported at stagenet. Ledger LTC/BCH/DOGE/Terra are not supported at testnet

(**) With or without memo

(***) Upgrade RUNE (BEP2) or RUNE (ERC20) to RUNE (Native)

Exchange

THOR BNB / BEP2 BTC BCH DOGE ETH / ERC20 LTC TERRA COSMOS
Pools overview - ✔️ ✔️ ✔️ ✔️ ✔️ ✔️ ✔️ ✔️
Pool detail - ✔️ ✔️ ✔️ ✔️ ✔️ ✔️ ✔️ ✔️
Swap ✔️ ✔️ ✔️ ✔️ ✔️ ✔️ ✔️ ✔️ ✔️
Deposit * ✔️ ✔️ ✔️ ✔️ ✔️ ✔️ ✔️ ✔️ ✔️
Withdraw * ✔️ ✔️ ✔️ ✔️ ✔️ ✔️ ✔️ ✔️ ✔️
Recovery tool
Synths

(*) Symmetrical deposit/withdraw only

THORNode

Overview Status BOND UNBOND LEAVE
✔️ ✔️ ✔️ ✔️

Languages

ENGLISH 🇺🇸 GERMAN 🇩🇪 FRENCH 🇫🇷 RUSSIAN 🇷🇺
✔️ ✔️ ✔️ ✔️

Misc.

  • 100% open-source (built by the community)
  • Security first
  • No extra (affiliate) fees

ASGARDEX uses following libraries, frameworks and more:

(in alphabetical order)

Install

It's recommended to use a Node version as same as Electron is running with (currently: Electron v19.x / Node 16.14.2). It's recommened to install nvm to run as same Node version locally as used for building ASGARDEX on CI.

git clone https://github.com/thorchain/asgardex-electron.git asgardex
cd asgardex
yarn

Environment variables

While environment variables are not required (defaults are set), you can configure them. Create an .env file by copying all content of .env.sample and change these for your needs.

Development

yarn prebuild
yarn dev

In case Node might run into memory issues locally set --max-old-space-size as follow:

export NODE_OPTIONS="--max-old-space-size=4096"

Generate types and endpoints for Midgard

Whenever Midgard has been updated with a new release, run following script to auto-generate types and endpoints

generate:types

Generated files are based on Midgard's swagger.json.

Generate ERC20 asset white list

Whenever THORChain ERC20 asset whitelist has been updated (usually with a new release of THORNode), run following script to auto-generate this list for ASGARDEX

yarn generate:erc20whitelist

How to auto-unlock a locked wallet while hot-reloading the app (for development only, disabled in production build)

Use REACT_APP_WALLET_PASSWORD to run the app by replacing password with your own password

REACT_APP_WALLET_PASSWORD=password yarn dev

Or add to REACT_APP_WALLET_PASSWORD=password to .env file and run yarn dev

How to enable (more) chains for development

Add chains you want to have for development to REACT_APP_CHAINS_ENABLED, for example

REACT_APP_CHAINS_ENABLED=THOR,BNB,BTC,ETH,LTC

Note: String of chains have to be as same as definitions in xchain-util

Tests

unit

yarn test

e2e

Note: Running test-cafe is disabled (see #750)

yarn test:e2e

lint

yarn lint

Note: eslint is provided by react-scripts located in ./node_modules/react-scripts/node_modules/ and don't need to be extra installed. If your editor has some issues to find eslint, you might point it to this location (see VSCode settings file as an example).

Storybook

Note: Running storybook is broken currently due lack of React 18 support (see #2248). It will be fixed as soon as storybook supports React 18.

yarn storybook

bundle analyze

visualize the bundle map using source-map-explorer

yarn analyze

Auto updates

To check locally if auto-update works correctly create dev-app-update.yml file at the root directory with a content based on dev-app-update.sample.yml with providing your GutHub personal access token. After that just play locally with version provided by package.json

Folder structure

src

src
├── index.ts # entry point for CRA
├── main # sources of Electron's main process
├── renderer # sources of Electron's renderer process (aka webapp)
└── shared # shared sources for Electron's main and renderer processes

src/main (Electron's "main" app)

src/main
├── electron.ts # entry point
├── i18n # internationalization (needed for menus)
└── menu # "native" menus

src/renderer (Electron's "renderer" app aka ReactJS webapp)

src/renderer
├── assets # static files (svg, fonts etc.)
├── components # basic components
├── contexts # React contexts to provide "global" accessible states (RxJS based)
├── helpers # helper functions
├── hooks # custom hooks
├── i18n # internationalization (translations etc.)
├── index.tsx # entry point
├── routes # routing
├── services # RxJS based IO handler and states (consumed by contexts)
├── types # TypeScript types (e.g. generated types for Midgard API)
└── views # "Container" components

Security

ASGARDEX follows security recommendation made by Electron team, such as:

Packaging

Important note for macOS users: Please follow guide of "How to package ASGARDEX on macOS" before running following command.

yarn package:electron

Keystore

By creating a new wallet or importing an existing one, ASGARDEX is saving wallet's phrase encrypted in keystore.json on your machine in Electron's appData folder at following location:

Windows

# ASGARDEX installed from *.exe
%APPDATA%/ASGARDEX/storage/keystore.json
# ASGARDEX built and run locally
%APPDATA%/Electron/storage/keystore.json

macOS

# ASGARDEX installed from *.dmg
~/Library/Application Support/ASGARDEX/storage/keystore.json
# ASGARDEX built and run locally
~/Library/Application Support/Electron/storage/keystore.json

Linux

# ASGARDEX installed from *.deb
~/.config/ASGARDEX/storage/keystore.json
# ASGARDEX built and run locally
~/.config/Electron/storage/keystore.json

keystore.json can be removed in ASGARDEX by clicking "Remove wallet" in Wallet -> Settings or by removing it manually.

Git branching workflow

See BRANCHING_WORKFLOW.md

Releasing

See RELEASE.md

Docs

See the docs and guides here

Contributing

Everyone is welcome to contribute. Check open issues or create a new one to start your work with and open a PR afterwards. Newcomers might want to check issues labeled as good first issues.

Bug Reports

Please use bug report template to file any bugs.

License

MIT THORChain

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].