Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add the wallet GUI #8

Open
wants to merge 74 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
74 commits
Select commit Hold shift + click to select a range
f1d9bfc
Initial wallet UI
Senyoret1 Apr 30, 2020
5f0a621
Update the Travis config
Senyoret1 Apr 30, 2020
990a7f4
Add initial BTC files to the front-end
Senyoret1 May 3, 2020
25ab9c6
Obtain basic blockchain info from btcd
Senyoret1 May 4, 2020
ade5ad6
Get the outputs and balance data from btcd
Senyoret1 May 6, 2020
4c0d882
Improvements for the multicoin compatibility
Senyoret1 May 6, 2020
98f70eb
Show the tx history of btc wallets
Senyoret1 May 8, 2020
2cd7c0e
Get the pending transactions of btc wallets
Senyoret1 May 8, 2020
cb52d9d
Make the coin hours optional across the whole app
Senyoret1 May 9, 2020
62e8c81
Rname and move files
Senyoret1 May 10, 2020
5fd961e
Initial code for generating BTC transactions
Senyoret1 May 11, 2020
c8d56d6
Create the basic UI for entering the tx fee
Senyoret1 May 11, 2020
2f1b4b1
Improvements for the wallet
Senyoret1 May 12, 2020
6108d0c
Improvements for the addresses history page
Senyoret1 May 12, 2020
fdcdcce
Initial code for the ETH integration
Senyoret1 May 15, 2020
742ef81
Add a BalanceAndOutputsOperator implementation for ETH
Senyoret1 May 16, 2020
f15a9c7
Fix EthBlockchainOperator and EthNodeOperator
Senyoret1 May 16, 2020
7b10ac1
Create the history operator fot ETH
Senyoret1 May 16, 2020
e40af31
Create the initial code for sending ETH
Senyoret1 May 18, 2020
a28fcf8
Improvements for the multicoin wallet
Senyoret1 May 18, 2020
747a1ce
Use the indexing server for BTC
Senyoret1 May 22, 2020
0f70323
Use the indexing service for other BTC operators
Senyoret1 May 23, 2020
3dbefd3
Fixes for the Skywallet integration
Senyoret1 May 23, 2020
0fa140d
Base for the multicoin compatibility in the Skywallet integration
Senyoret1 May 23, 2020
5209013
Allow to add BTC hw wallets to the app
Senyoret1 May 24, 2020
692e03a
Several fixes for the multicoin wallet
Senyoret1 May 24, 2020
b467b12
Use the approximate fee to calculate the true available balance
Senyoret1 May 28, 2020
5897421
Add a BTC transaction encoder
Senyoret1 May 29, 2020
3e39ef0
Code base for creating TXs with P2PKH addresses
Senyoret1 May 31, 2020
d3d0a8f
Allow to send coins to different address types
Senyoret1 Jun 2, 2020
010bcf9
Allow to create and send ETH transactions
Senyoret1 Jun 3, 2020
1baabc3
Use Blockbook for ETH
Senyoret1 Jun 4, 2020
2d369f3
Improvements for sending transactions
Senyoret1 Jun 5, 2020
194ba69
Improve the output selection algorithm for BTC
Senyoret1 Jun 6, 2020
ec3736f
Improvements for the multicoin wallet code
Senyoret1 Jun 7, 2020
dd1e713
Improved way for checking the backend synchronization
Senyoret1 Jun 7, 2020
aebc760
Improve the code for checking the addresses
Senyoret1 Jun 7, 2020
20b475b
Basic improvements for the code for retrieving the history
Senyoret1 Jun 8, 2020
fdf2580
Remaining improvements for the code for retrieving the history
Senyoret1 Jun 9, 2020
58a4b55
General improvements for the multicoin wallet
Senyoret1 Jun 9, 2020
21b397e
Multiple improvements related to sending coins and the fees
Senyoret1 Jun 10, 2020
6e75e6f
Make the wallet calculate confirmed and pending balances
Senyoret1 Jun 11, 2020
7275f79
Improve the ways in which the UI informs about the pending balances
Senyoret1 Jun 12, 2020
aa76cf2
Use the hw wallet for signing BTC transactions
Senyoret1 Jun 14, 2020
5e1a315
Limit the available balance to confirmed coins not being spent
Senyoret1 Jun 14, 2020
3e28276
Multiple improvements for the wallet
Senyoret1 Jun 14, 2020
611c9e9
Additional improvements for the wallet
Senyoret1 Jun 15, 2020
5683e46
Process failed ETH transactions
Senyoret1 Jun 16, 2020
78331c6
Improvements for the change address selection
Senyoret1 Jun 16, 2020
4518c58
Add multicoin options to the wizard and wallet creation form
Senyoret1 Jun 18, 2020
d2c8004
Allow to create an Electron build
Senyoret1 Jun 22, 2020
e6ce5d4
Improved configurability of the main color
Senyoret1 Jun 23, 2020
b6c0980
Improve the handling of the rest of the basic colors
Senyoret1 Jun 24, 2020
ce5fe41
Improve the way the icons are colored and fix issues
Senyoret1 Jun 25, 2020
32aa7b4
Reorganize the coin configuration files
Senyoret1 Jun 26, 2020
0b154d1
Update Electron to V9
Senyoret1 Jun 26, 2020
171a9fc
Update to Angular 9
Senyoret1 Jun 26, 2020
fa84289
Additional fixes
Senyoret1 Jun 26, 2020
2d08595
Change the code for displaying and comparing wallet addresses
Senyoret1 Jul 9, 2020
ce5aa96
Improvements for the wallet
Senyoret1 Jul 9, 2020
6fd25c9
Various improvements related to entering the seeds
Senyoret1 Jul 31, 2020
25d512a
Update to Angular 10
Senyoret1 Aug 2, 2020
2627901
Fixes for the front-end
Senyoret1 Aug 5, 2020
ad63503
Allow to change the confirmations needed
Senyoret1 Aug 7, 2020
23a68b7
Show the burned hours in the history
Senyoret1 Aug 7, 2020
802fdd2
General improvements for the UI
Senyoret1 Aug 22, 2020
ce09cdd
Highlight the invalid addresses
Senyoret1 Aug 22, 2020
5653b89
Allow to set the hours percentage in the basic form
Senyoret1 Aug 22, 2020
c2e8121
Allow to save the addresses of a wallet as a CSV file
Senyoret1 Aug 23, 2020
13c5e42
Improvements for the UI
Senyoret1 Oct 14, 2020
74320da
Show validation errors in the forms
Senyoret1 Oct 21, 2020
c9cd709
Add notes about the font-end code
Senyoret1 Oct 21, 2020
fbcf2cc
Update to Electron 10
Senyoret1 Nov 1, 2020
644f81a
Better error msg for repeated wallets
Senyoret1 Nov 1, 2020
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
11 changes: 11 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -13,3 +13,14 @@

# Dependency directories (remove the comment below to include it)
# vendor/

# Electron.
electron/release
electron/.cache
electron/.electron_cache
electron/node_modules
electron/.gox_output
electron/server

# dependencies
**/node_modules
7 changes: 6 additions & 1 deletion .travis.yml
Original file line number Diff line number Diff line change
Expand Up @@ -13,9 +13,14 @@ matrix:
if: type != pull_request
osx_image: xcode8

before_install:
- nvm install 10.16

install:
- go get -u github.com/FiloSottile/vendorcheck
- make install-linters
- make install-deps-ui

script:
- make check
- make lint-ui
- make build-ui
12 changes: 12 additions & 0 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,9 @@ DEFAULT_GOAL := help
OPTS?=GO111MODULE=on
TEST_OPTS?=-race -tags no_ci -cover -timeout=10m

# Static files directory
GUI_STATIC_DIR = src/gui/static

check: lint test ## Run linters and tests

lint: ## Run linters. Use make install-linters first
Expand Down Expand Up @@ -32,5 +35,14 @@ dep: ## Sorts dependencies
${OPTS} go mod download
${OPTS} go mod tidy -v

install-deps-ui: ## Install the UI dependencies
cd $(GUI_STATIC_DIR) && npm ci

lint-ui: ## Lint the UI code
cd $(GUI_STATIC_DIR) && npm run lint

build-ui: ## Builds the UI
cd $(GUI_STATIC_DIR) && npm run build

help:
@grep -E '^[a-zA-Z_-]+:.*?## .*$$' $(MAKEFILE_LIST) | awk 'BEGIN {FS = ":.*?## "}; {printf "\033[36m%-30s\033[0m %s\n", $$1, $$2}'
48 changes: 48 additions & 0 deletions electron/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
# Build system

The GUI client is an Electron (http://electron.atom.io/) app.

It cross compiles for osx, linux and windows 64 bit systems.

## Requirements

The Skycoin repository must be cloned in the parent directory.

gox (go cross compiler), node and npm.

### gox

To install gox:

```sh
go get github.com/gz-c/gox
```

### NPM

Node and npm installation is system dependent.

## Make sure that the wallet dist is up to date

Recompile the wallet frontend. See [Wallet GUI Development README](../src/gui/static/README.md) for instructions.

## Use electron-builder to pack and create app installer

Use this command for preparing the build process.

```sh
./perpare-build.sh
```

Then you can compile the version for the OS you need with any of these commands:

```sh
npm run dist-win32
npm run dist-win64
npm run dist-win
npm run dist-linux
npm run dist-mac
npm run dist-mac
```

Final results are placed in the `release` folder.
9 changes: 9 additions & 0 deletions electron/app/.snyk
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
# Snyk (https://snyk.io) policy file, patches or ignores known vulnerabilities.
version: v1.13.1
# ignores vulnerabilities until expiry date; change duration by modifying expiry date
ignore:
'npm:chownr:20180731':
- '*':
reason: No fix available
expires: '2019-06-25T15:35:33.473Z'
patch: {}
10 changes: 10 additions & 0 deletions electron/app/electron-api.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
const { contextBridge, ipcRenderer } = require('electron')

// Allows to check the URL of the local node while using Electron, as the port number
// is selected randomly.

contextBridge.exposeInMainWorld('electron', {
getLocalServerUrl: () => {
return ipcRenderer.sendSync('localNodeUrl');
}
});
Loading