GithubHelp home page GithubHelp logo

liskarchive / lisk-nano Goto Github PK

View Code? Open in Web Editor NEW
159.0 33.0 61.0 10.95 MB

๐Ÿ–ฅ Minimal Lisk graphical user interface for desktop

Home Page: https://lisk.io

License: GNU General Public License v3.0

JavaScript 93.67% CSS 2.85% HTML 0.08% Shell 0.08% Gherkin 3.32%

lisk-nano's Introduction

Lisk Nano

Build Status Coverage Status License: GPL v3 Join the chat at https://gitter.im/LiskHQ/lisk devDependencies Status

Development

git clone https://github.com/LiskHQ/lisk-nano.git
cd lisk-nano
npm install
npm run dev

Open http://localhost:8080

For ease of development, you can setItem in localStorage to prefill a passphrase, e.g.:

localStorage.setItem('passphrase', 'wagon stock borrow episode laundry kitten salute link globe zero feed marble')

And then you can setItem in localStorage to login automatically

localStorage.setItem('autologin', true)

Build

npm run build

Electron

Start

Start the Electron client. Before staring you need to make sure the application is built. If you need to built the entire application, run

npm run build

as mentioned before. And if you want to solely build electron app, run

npm run build-electron

Then, in order to launch electron, you can run

npm run start

Windows

Build package for Windows (on Windows in Git BASH).

npm run pack:win

macOS

Build package for macOS (on macOs)

npm run pack 

Linux

Build package for Linux (on Linux).

npm run pack 

Run unit tests

Single run

npm run test

Run each time a file changes

npm run test-live

Run end-to-end tests

Setup

Setup protractor

./node_modules/protractor/bin/webdriver-manager update

Setup a lisk test node to run on localhost:4000 as described in https://github.com/LiskHQ/lisk#tests

And run it with pm2.

Run

Start the development version of lisk-nano:

npm run dev

Run the protractor tests (replace ~/git/lisk/ with your path to lisk core):

./e2e-test-setup.sh ~/git/lisk/
npm run e2e-test

Launch React Storybook

To launch storybook sandbox with components run

npm run storybook

and go to

http://localhost:6006/

Authors

License

Copyright ยฉ 2016-2017 Lisk Foundation

This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this program. If not, see http://www.gnu.org/licenses/.


This program also incorporates work previously released with lisk-nano 0.1.2 (and earlier) versions under the MIT License. To comply with the requirements of that license, the following permission notice, applicable to those parts of the code only, is included below:

Copyright ยฉ 2016-2017 Lisk Foundation Copyright ยฉ 2015 Crypti

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

lisk-nano's People

Contributors

183h avatar albinekcom avatar alepop avatar ccampbell avatar citizen-x avatar fchavant avatar francoilol avatar ginacontrino avatar greenkeeper[bot] avatar joerodrig avatar karmacoma avatar mackuba avatar nazgolze avatar reyraa avatar rferro avatar slaweet avatar toschdev avatar v1shvesh avatar willclarktech avatar yasharayari avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

lisk-nano's Issues

Send all

There should be option to send all funds, for example by clicking on account balance or as separate button.

Weird behaviour while UI is selected

It's related to #15 , after generation when UI is still selected, then generation of passphrase works weird and bugged way. It would be appropriate to remove selection while any button is clicked or/and when mouse movement event occurs.

"Load more" - replacement

My proposition is to remove "Load More" button with loading indicator when user is scrolling down to simply allow scrolling down executing loading more transactions - it would feel more like modern software design.

Mouse scroll changes transaction amount

I just experienced a possible scenario where the mouse scroll changed the amount I wanted to send. This may cause issues with some users, need a way to disable/enable.

Add delegate votes management

Add support for accounts to view and manage their delegate votes with the following key features.

  • My votes listing
    • Remove votes from selection of delegates
  • Delegates listing (Active, Standby)
    • Search for delegates by username
    • Add or remove votes to/from selection of delegates
  • Review vote selection review before committal

Possibility to vote

Lisk Nano may also contain simple interface to vote on delegates, with easy search engine. User provide delegate name, and if found can vote from Lisk Nano.

Transactions sent do not appear immediately within listing

after making transaction it does not appears in transactions section while it should appear there instantly with status broadcasting -> waiting for confirmation -> confirmed. Instead of not appearing if not confirmed. It feels misleading.

Logout button / app quitting

Quitting App, actually feels the same as log out. While there is no option to save wallet locally, encrypted with user-chosen regular password there should be at least possibility to store pubkey/address to easily manage through many accounts.

Implement launch protocol

I think it'll be a great idea to have something like bitcoin :
bitcoin:xxxxxxxxxxxADDRESSxxxxxxxxxxxxxxxxx
to open the wallet ๐Ÿ˜„

Add forging center

Add forging center for registered delegates to view:

  • Forging rank, productivity, approval graphs
  • LSK earned / forged
  • Forged blocks

Change license from MIT to GPLv3

As of lisk-nano version 0.2.0, we are changing the licensing scheme from MIT to to GPLv3.

The main reason for this change is to provide protection against the future use of the Lisk Explorer in a proprietary form, while at the same time maintaining all of the freedoms to use, change or share the project which are currently in-place.

For more information on GPLv3 please read: https://www.gnu.org/licenses/quick-guide-gplv3.html

Tasks:

  • Change license footer, with amendment to reflect change of license
  • Add license field to package.json
  • Add license basge to README.md
  • Include license file within project

Possibility to store passphrase localy / Trezor

Enterting passphrase each time is very not convenient. I suggest that each passphrase can be stored locally with AES/DES encrypted format. Each previously added account can be stored within app, then easily accessible by providing custom, likely easier password or no password if user chose to but still encrypted while stored locally - for example by some unique value based on hardware value.

Another good idea is to merge this with trezor, this is idea i have already mentioned in main lisk repository.

Multiple account management

It would be great to re-think Lisk-nano interface with possibility to

  • Just send transaction fast by providing passphrase without storing anything
  • Create wallet with many addresses, encrypted with AES256 or something strong enough with hassle free view mode

Webpack - Module build failed: SyntaxError

I'm encountering a number of babel related syntax errors when running npm run dev.

Scandium:src Oliver$ npm run dev

> [email protected] dev /Users/Oliver/github/LiskHQ/lisk-nano/src
> webpack-dev-server --host 0.0.0.0 --profile --progress

 70% 1/1 build moduleshttp://0.0.0.0:8080/
webpack result is served from /
content is served from /Users/Oliver/github/LiskHQ/lisk-nano/src
14688ms build modules
31ms seal
21ms optimize
45ms hashing
2765ms create chunk assets
42ms additional chunk assets
0ms optimize chunk assets
392ms optimize assets
273ms emit

ERROR in ./app/services/success.js
Module build failed: SyntaxError: /Users/Oliver/github/LiskHQ/lisk-nano/src/app/services/success.js: Unexpected token (8:6)
   6 |           .textContent(text)
   7 |           .position('bottom right'),
>  8 |       );
     |       ^
   9 |   },
  10 |   dialog({ title = 'Success', text, button = 'OK' }) {
  11 |     return $mdDialog.show(
    at Parser.pp.raise (/Users/Oliver/github/LiskHQ/lisk-nano/src/node_modules/babylon/lib/parser/location.js:22:13)
    at Parser.pp.unexpected (/Users/Oliver/github/LiskHQ/lisk-nano/src/node_modules/babylon/lib/parser/util.js:89:8)
    at Parser.pp.parseExprAtom (/Users/Oliver/github/LiskHQ/lisk-nano/src/node_modules/babylon/lib/parser/expression.js:522:12)
    at Parser.pp.parseExprSubscripts (/Users/Oliver/github/LiskHQ/lisk-nano/src/node_modules/babylon/lib/parser/expression.js:277:19)
    at Parser.pp.parseMaybeUnary (/Users/Oliver/github/LiskHQ/lisk-nano/src/node_modules/babylon/lib/parser/expression.js:257:19)
    at Parser.pp.parseExprOps (/Users/Oliver/github/LiskHQ/lisk-nano/src/node_modules/babylon/lib/parser/expression.js:188:19)
    at Parser.pp.parseMaybeConditional (/Users/Oliver/github/LiskHQ/lisk-nano/src/node_modules/babylon/lib/parser/expression.js:165:19)
    at Parser.pp.parseMaybeAssign (/Users/Oliver/github/LiskHQ/lisk-nano/src/node_modules/babylon/lib/parser/expression.js:128:19)
    at Parser.pp.parseExprListItem (/Users/Oliver/github/LiskHQ/lisk-nano/src/node_modules/babylon/lib/parser/expression.js:1046:16)
    at Parser.pp.parseCallExpressionArguments (/Users/Oliver/github/LiskHQ/lisk-nano/src/node_modules/babylon/lib/parser/expression.js:353:20)
    at Parser.pp.parseSubscripts (/Users/Oliver/github/LiskHQ/lisk-nano/src/node_modules/babylon/lib/parser/expression.js:316:31)
    at Parser.pp.parseExprSubscripts (/Users/Oliver/github/LiskHQ/lisk-nano/src/node_modules/babylon/lib/parser/expression.js:287:15)
    at Parser.pp.parseMaybeUnary (/Users/Oliver/github/LiskHQ/lisk-nano/src/node_modules/babylon/lib/parser/expression.js:257:19)
    at Parser.pp.parseExprOps (/Users/Oliver/github/LiskHQ/lisk-nano/src/node_modules/babylon/lib/parser/expression.js:188:19)
    at Parser.pp.parseMaybeConditional (/Users/Oliver/github/LiskHQ/lisk-nano/src/node_modules/babylon/lib/parser/expression.js:165:19)
    at Parser.pp.parseMaybeAssign (/Users/Oliver/github/LiskHQ/lisk-nano/src/node_modules/babylon/lib/parser/expression.js:128:19)
 @ ./app/index.js 47:0-29

ERROR in ./app/services/error.js
Module build failed: SyntaxError: /Users/Oliver/github/LiskHQ/lisk-nano/src/app/services/error.js: Unexpected token (8:6)
   6 |           .textContent(text)
   7 |           .position('bottom right'),
>  8 |       );
     |       ^
   9 |   },
  10 |   dialog({ title = 'Error', text, button = 'OK' }) {
  11 |     return $mdDialog.show(
    at Parser.pp.raise (/Users/Oliver/github/LiskHQ/lisk-nano/src/node_modules/babylon/lib/parser/location.js:22:13)
    at Parser.pp.unexpected (/Users/Oliver/github/LiskHQ/lisk-nano/src/node_modules/babylon/lib/parser/util.js:89:8)
    at Parser.pp.parseExprAtom (/Users/Oliver/github/LiskHQ/lisk-nano/src/node_modules/babylon/lib/parser/expression.js:522:12)
    at Parser.pp.parseExprSubscripts (/Users/Oliver/github/LiskHQ/lisk-nano/src/node_modules/babylon/lib/parser/expression.js:277:19)
    at Parser.pp.parseMaybeUnary (/Users/Oliver/github/LiskHQ/lisk-nano/src/node_modules/babylon/lib/parser/expression.js:257:19)
    at Parser.pp.parseExprOps (/Users/Oliver/github/LiskHQ/lisk-nano/src/node_modules/babylon/lib/parser/expression.js:188:19)
    at Parser.pp.parseMaybeConditional (/Users/Oliver/github/LiskHQ/lisk-nano/src/node_modules/babylon/lib/parser/expression.js:165:19)
    at Parser.pp.parseMaybeAssign (/Users/Oliver/github/LiskHQ/lisk-nano/src/node_modules/babylon/lib/parser/expression.js:128:19)
    at Parser.pp.parseExprListItem (/Users/Oliver/github/LiskHQ/lisk-nano/src/node_modules/babylon/lib/parser/expression.js:1046:16)
    at Parser.pp.parseCallExpressionArguments (/Users/Oliver/github/LiskHQ/lisk-nano/src/node_modules/babylon/lib/parser/expression.js:353:20)
    at Parser.pp.parseSubscripts (/Users/Oliver/github/LiskHQ/lisk-nano/src/node_modules/babylon/lib/parser/expression.js:316:31)
    at Parser.pp.parseExprSubscripts (/Users/Oliver/github/LiskHQ/lisk-nano/src/node_modules/babylon/lib/parser/expression.js:287:15)
    at Parser.pp.parseMaybeUnary (/Users/Oliver/github/LiskHQ/lisk-nano/src/node_modules/babylon/lib/parser/expression.js:257:19)
    at Parser.pp.parseExprOps (/Users/Oliver/github/LiskHQ/lisk-nano/src/node_modules/babylon/lib/parser/expression.js:188:19)
    at Parser.pp.parseMaybeConditional (/Users/Oliver/github/LiskHQ/lisk-nano/src/node_modules/babylon/lib/parser/expression.js:165:19)
    at Parser.pp.parseMaybeAssign (/Users/Oliver/github/LiskHQ/lisk-nano/src/node_modules/babylon/lib/parser/expression.js:128:19)
 @ ./app/index.js 49:0-27

ERROR in ./app/components/send/send.js
Module build failed: SyntaxError: /Users/Oliver/github/LiskHQ/lisk-nano/src/app/components/send/send.js: Unexpected token (82:10)
  80 |             this.recipient.value,
  81 |             this.amount.raw,
> 82 |           )
     |           ^
  83 |           .then(
  84 |             () => this.success.dialog({ text: `${this.amount.value} sent to ${this.recipient.value}` })
  85 |                 .then(() => {
    at Parser.pp.raise (/Users/Oliver/github/LiskHQ/lisk-nano/src/node_modules/babylon/lib/parser/location.js:22:13)
    at Parser.pp.unexpected (/Users/Oliver/github/LiskHQ/lisk-nano/src/node_modules/babylon/lib/parser/util.js:89:8)
    at Parser.pp.parseExprAtom (/Users/Oliver/github/LiskHQ/lisk-nano/src/node_modules/babylon/lib/parser/expression.js:522:12)
    at Parser.pp.parseExprSubscripts (/Users/Oliver/github/LiskHQ/lisk-nano/src/node_modules/babylon/lib/parser/expression.js:277:19)
    at Parser.pp.parseMaybeUnary (/Users/Oliver/github/LiskHQ/lisk-nano/src/node_modules/babylon/lib/parser/expression.js:257:19)
    at Parser.pp.parseExprOps (/Users/Oliver/github/LiskHQ/lisk-nano/src/node_modules/babylon/lib/parser/expression.js:188:19)
    at Parser.pp.parseMaybeConditional (/Users/Oliver/github/LiskHQ/lisk-nano/src/node_modules/babylon/lib/parser/expression.js:165:19)
    at Parser.pp.parseMaybeAssign (/Users/Oliver/github/LiskHQ/lisk-nano/src/node_modules/babylon/lib/parser/expression.js:128:19)
    at Parser.pp.parseExprListItem (/Users/Oliver/github/LiskHQ/lisk-nano/src/node_modules/babylon/lib/parser/expression.js:1046:16)
    at Parser.pp.parseCallExpressionArguments (/Users/Oliver/github/LiskHQ/lisk-nano/src/node_modules/babylon/lib/parser/expression.js:353:20)
    at Parser.pp.parseSubscripts (/Users/Oliver/github/LiskHQ/lisk-nano/src/node_modules/babylon/lib/parser/expression.js:316:31)
    at Parser.pp.parseExprSubscripts (/Users/Oliver/github/LiskHQ/lisk-nano/src/node_modules/babylon/lib/parser/expression.js:287:15)
    at Parser.pp.parseMaybeUnary (/Users/Oliver/github/LiskHQ/lisk-nano/src/node_modules/babylon/lib/parser/expression.js:257:19)
    at Parser.pp.parseExprOps (/Users/Oliver/github/LiskHQ/lisk-nano/src/node_modules/babylon/lib/parser/expression.js:188:19)
    at Parser.pp.parseMaybeConditional (/Users/Oliver/github/LiskHQ/lisk-nano/src/node_modules/babylon/lib/parser/expression.js:165:19)
    at Parser.pp.parseMaybeAssign (/Users/Oliver/github/LiskHQ/lisk-nano/src/node_modules/babylon/lib/parser/expression.js:128:19)
 @ ./app/index.js 35:0-33

ERROR in ./app/services/peers/peer.js
Module build failed: SyntaxError: /Users/Oliver/github/LiskHQ/lisk-nano/src/app/services/peers/peer.js: Unexpected token (125:8)
  123 |           passphrase,
  124 |           secondPassphrase,
> 125 |         );
      |         ^
  126 |     } catch (e) {
  127 |       return $q.reject();
  128 |     }
    at Parser.pp.raise (/Users/Oliver/github/LiskHQ/lisk-nano/src/node_modules/babylon/lib/parser/location.js:22:13)
    at Parser.pp.unexpected (/Users/Oliver/github/LiskHQ/lisk-nano/src/node_modules/babylon/lib/parser/util.js:89:8)
    at Parser.pp.parseExprAtom (/Users/Oliver/github/LiskHQ/lisk-nano/src/node_modules/babylon/lib/parser/expression.js:522:12)
    at Parser.pp.parseExprSubscripts (/Users/Oliver/github/LiskHQ/lisk-nano/src/node_modules/babylon/lib/parser/expression.js:277:19)
    at Parser.pp.parseMaybeUnary (/Users/Oliver/github/LiskHQ/lisk-nano/src/node_modules/babylon/lib/parser/expression.js:257:19)
    at Parser.pp.parseExprOps (/Users/Oliver/github/LiskHQ/lisk-nano/src/node_modules/babylon/lib/parser/expression.js:188:19)
    at Parser.pp.parseMaybeConditional (/Users/Oliver/github/LiskHQ/lisk-nano/src/node_modules/babylon/lib/parser/expression.js:165:19)
    at Parser.pp.parseMaybeAssign (/Users/Oliver/github/LiskHQ/lisk-nano/src/node_modules/babylon/lib/parser/expression.js:128:19)
    at Parser.pp.parseExprListItem (/Users/Oliver/github/LiskHQ/lisk-nano/src/node_modules/babylon/lib/parser/expression.js:1046:16)
    at Parser.pp.parseCallExpressionArguments (/Users/Oliver/github/LiskHQ/lisk-nano/src/node_modules/babylon/lib/parser/expression.js:353:20)
    at Parser.pp.parseSubscripts (/Users/Oliver/github/LiskHQ/lisk-nano/src/node_modules/babylon/lib/parser/expression.js:316:31)
    at Parser.pp.parseExprSubscripts (/Users/Oliver/github/LiskHQ/lisk-nano/src/node_modules/babylon/lib/parser/expression.js:287:15)
    at Parser.pp.parseMaybeUnary (/Users/Oliver/github/LiskHQ/lisk-nano/src/node_modules/babylon/lib/parser/expression.js:257:19)
    at Parser.pp.parseExprOps (/Users/Oliver/github/LiskHQ/lisk-nano/src/node_modules/babylon/lib/parser/expression.js:188:19)
    at Parser.pp.parseMaybeConditional (/Users/Oliver/github/LiskHQ/lisk-nano/src/node_modules/babylon/lib/parser/expression.js:165:19)
    at Parser.pp.parseMaybeAssign (/Users/Oliver/github/LiskHQ/lisk-nano/src/node_modules/babylon/lib/parser/expression.js:128:19)
 @ ./app/services/peers/peers.js 9:0-17
Child html-webpack-plugin for "index.html":

webpack: bundle is now VALID.

Person to person easy transfer

At the moment, it's very difficult to transfer some LSK 1 on 1. If I wanted to send some Lisk to someone who's right in front of me, he would have to create a new account in login.lisk.io or m.lisk.io and provide me his Lisk Address by showing it to me on his phone. I would then type his Lisk Address (manually) into my client and send him some Lisk.

What I suggest: QR Code! ๐Ÿ‘

On his phone he would be able to create a QR code that linked to his Lisk address. Someone can scan this and it automatically fills in his Lisk address.
On my side/client I would have a built in QR scanner in the client to scan it and input his Lisk address.

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.