Git Product home page Git Product logo

tornadowallet's Introduction

TornadoWallet

Thumbnail

A Python/HTML Wallet based upon the Tornado framework.

First stable release, still work ongoing, but useable and nice looking!

First stable version 0.1.19

Goal is to re-use the existing python code for behind the scene heavy lifting, but leverage HTML/JS flexibility for GUI.

First release has following features

  • manage wallets (several addresses)
  • auto connect to an available wallet server
  • check balance and transactions
  • request BIS payments
  • Send simple BIS transactions
  • network status
  • encrypt and decrypt off chain messages
  • spend protection
  • support for crystals (plugins, like dApps running in the wallet)

Installation from release

See Release tab for info/installer and OS Specific FAQ.

Installation from source

pip3 install -r requirements.txt

Pycryptodomex is used and may need extra install on your machine.

An auto-installer will be provided with first beta version.

Mac

You may have to install xcode compiler:

xcode-select --install

then pip3 install -r requirements.txt

Windows

See https://pycryptodome.readthedocs.io/en/latest/src/installation.html#windows-from-sources-python-3-5-and-newer

then pip3 install -r requirements.txt

Usage

If you have no wallet yet, you'll be redirected to the wallet load page.

Possible command line switches:

  • --verbose --debug
  • --theme=themes/material Force a specific theme
  • --server=ip:port Force a specific wallet server (like 127.0.0.1:8150)

See the FAQ: https://github.com/bismuthfoundation/Bismuth-FAQ/tree/master/Wallet/Tornado

Wallet(s) location

Wallets and other potential private info are to be stored under a "bismuth-private" dir, under the user's own home directory.

The wallet prints that dir at start.
You should also find it on the wallet/load page:
http://127.0.0.1:8888/wallet/load

Roadmap

  • Proof of concept (check)
  • Basic wallet functionality (check)
  • Auth (check)
  • Multiwallet (check)
  • Plugins (check: See crystals)
  • Allinone mobile app with embedded browser and python engine

The tech

  • Tornado web app
  • Templates / HTML Themes
  • JS
  • Embedded local webserver

Translations

Thanks to a great community effort, the wallet is available in several languages, see translations.md for list and credits.

Localized help

Help file / User guide is a WIP, see locale/en/Help.md

tornadowallet's People

Contributors

alias-bitsignal avatar eggpool avatar geho2 avatar hclivess avatar heavensgold avatar iyomisc avatar kristianmk avatar

Stargazers

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

Watchers

 avatar  avatar  avatar  avatar  avatar

tornadowallet's Issues

[Request] Stats-Crystal to show wallet statistics

Would be nice to have a Crystal for wallet statistics. Especially a graph where you could see the amount of BIS over time. Something like this:
https://heatnodes.org/?ac=7d5c2999f9a2e44c23e7b2b73b4c0edae308e9d39482bf44da481edc&page_id=874

Here is the response to this idea from Discord:

This would potentially need a new api call to get the data (full at first runvia addlist , then incremental with local cache, to avoid too much load)
But this is doable, and would be a nice crystal use case (graphical or non, stats for your address. with also whom did you pay the most, avg payment, spent by month aso...)
some crystals already use jschart, we have almost all at hand.

Transaction list pagination is active even when there is nothing to paginate

Given an address with less than 10 transactions, the "+10" button is active nonetheless. It can be clicked deliberately often, leading to pages with "10", "20", etc. in the middle, but no transactions, for obvious reasons.

Suggestion: the "+10" button should only be active if more than 10 transactions exist for the given address.

[SSL: CERTIFICATE_VERIFY_FAILED] - fallback to http

On some OS systems you get a '[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: unable to get local issuer certificate (_ssl.c:1051)')]' error message when connecting to a https site (e.g. dragginator-crystal). Python 2.7.10 could be the problem.

Therefore a fallback to http in case https should fail could help.

Encrypted legacy wallets can't be imported

<class 'ValueError'> bismuthmultiwallet.py 281
Error: Error importing the der file
INFO:tornado.access:200 GET /wallet/import_der//Users/name/bismuth-private/wallet.der (127.0.0.1) 140.01ms

Improve Windows installer

"When tornado wallet is installed (windows) there is no shortcut created.. so you need to go manually into the installation folder to find exe."

I guess this would need some tweaking to the packaging process for windows.
Help is welcome.

[Request] UX Improvement

"when you want to unlock the wallet in Tornado the first thing I do is to press "unlock wallet" and then it gives me a message that password is incorrect... so I need to go back and find the place where you're supposed to put password.. would be much easier if there's a popup"

New themes

This POC uses an html/js theme from mBitcoin.

Since the system uses templates, it's easy to change the wallet look.

I'd like to have at least:

  • a proper mobile only theme
  • a bootstrap desktop theme

No need for fancy graphics, rather a minimal and nice looking, usable wallet.

Inspiration/port from other crypto wallet are ok if the source licence allows that.

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.