Giter Site home page Giter Site logo

fibercrypto / fibercryptowallet Goto Github PK

View Code? Open in Web Editor NEW
27.0 27.0 15.0 42.27 MB

Multi-coin cryptocurrency wallet

License: GNU General Public License v3.0

QML 34.34% Makefile 1.27% Go 59.45% Shell 1.48% JavaScript 3.45%
bitcoin cryptocurrency cryptocurrency-wallet cryptocurrency-wallets ethereum skycoin

fibercryptowallet's Introduction

fibercrypto

Open-source ecosystem of cryptocurrency tools

fibercryptowallet's People

Contributors

antid2ta avatar e1ru1o avatar hsequeda avatar mauricio1802 avatar olemis avatar rlsalgueiro avatar stdevalden avatar stdevcrow avatar stdevmac 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

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

fibercryptowallet's Issues

Add documentation for the QML API

Feature description
As QML files are separate components, a more general implementation can be done, making the components more generic and reusable. Then, an API will born, and a documentation for that API will be useful.

Add an UI to report errors related to the hardware wallet

Feature description
An UI to inform about errors related to the hardware wallet (device not found, access error, etc).

Possible implementation

  • A Dialog or Tooltip with an icon that can be a hardware-related icon, or an icon specific to the error.

Add an UI to create a new wallet or load an existing one

Feature description
A widget that allows the user to create a new wallet given a name and a seed, or load an existing wallet.

Possible implementation

  • A control to switch between "Create" and "Load".
  • A control to input the name, another to input the seed, and another to confirm the seed if are in "Create".
  • A "CREATE" button.
  • Descriptive labels that make the UI intuitive, maybe ToolTips too.

An UI that shows the pending transactions

Feature description
Add an UI that shows the pending transactions

Possible implementation

  • A Page with a list. Each element must have
    • The transaction ID
    • The amount of coins
    • The amount of coins hours
    • The timestamp

Migrate backend from Python to C++

Feature description
Due to the lack of supported platforms in Qt for Python, we decided to migrate the backend from Python to C++.
Currently, Qt for Python is only available for the three major desktop platforms. Using C++ instead of Python allows us to compile the application to all platforms supported by Qt in the CI under opensource license (Windows, macOS, Linux, WinRT, Android, iOS, tvOS, watchOS).
Also, it allows us to compile the Qt libs for other platforms. Qt Quick 2 apps can be compiled to every platform with a C++ 11 implementation.

An UI to enter the password when sending a transaction

Feature description
Add an UI to enter the password when sending a transaction, providing an alternative if the user forgot the password

Possible implementation

  • A Dialog
    • A LineEdit to enter the password
    • An I forgot my password Button
    • An OK and a CANCEL dialog button

A UI to show blockchains

Feature description
Need an UI that shows the blockchain information like:

  • Number of Blocks
  • Timestamps of the last block
  • Hash of the last block
  • Current Sky supply
  • Total Sky supply
  • Current Coin Hours supply
  • Total Coin Hours supply

Possible implementation

  • A Page. Must be included in the main StackView
    • Two GroupBox, one showing the Blocks info and other showing the SKY info

Implement Pex

Context
Implement a peer exchange system

Should implement

  • Download default peers
  • Load cache peers
  • Load custom peers
  • Functions related to add, load, save and delete peer or peers
  • Functions related to internal work of peers

An UI that shows the outputs

Feature description
Add an UI that shows the outputs, by address.

Possible implementation

  • A Page with a list. Each element must have:
    • The name of the wallet
    • The address
    • A list of transaction IDs, each of which must have:
      • The ID of the transaction
      • The amount of coins
      • The amount of coins hours

setup travis-ci integration

Feature description
Setup and activate travis-ci for this project

  • Add file travis.yml
    • Configure it
  • Activate travis-ci integration

Backend to manage pending transactions

Feature description:
Need a backend to manage the pending transactions. No image available (for now, check the electron app).

Possible implementation:

An About dialog

Feature description
Need a dialog that shows useful information about this application.

Possible implementation

  • A Dialog
  • The application icon
  • The application name
  • The application version
  • The copyright (if any)
  • The license (if any)
  • A concise description of what the application does

Add an UI to confirm the removing of a wallet

Feature description
Add a UI to confirm the removing of a wallet, describing the procedure to adding it again at a latter time.

Possible implementation

  • A Dialog
  • A label describing the consequences of removing the wallet and the procedure to adding it again
  • A CheckBox (with the style "I understand the consequences")
  • A Button to confirm

Set a license

Feature description
This program is under the terms of ???.

A "Neworking" UI

Feature description
Add an UI that shows the peer's IP and port, the source, the block height, and a last seen status

Possible implementation

  • A Page with a list. Each element must have:
    • The IP:Port of the peer
    • The source
    • The block height
    • The last seen status

Add an UI to enter the PIN code

Feature description
Add a UI to enter the PIN code if the user want to secure the wallet with a PIN.

Possible implementation

  • A Dialog or New Window
  • A buttons matrix to simulate a numpad
  • A backspace button, to remove the last digit entered
  • A Button to accept the input

Add internationalization support

Feature description
Multiple languages in user interface

Is your feature request related to a problem? Please describe.
Only English messages rendered in wallet UI, which could be a barrier for new users.

Describe the solution you'd like
A way to switch from one language to the other. Default to the language configured in OS, or English if not available.

Describe alternatives you've considered
Native Qt tooling should be preferred over golang-specific solutions e.g. nicksnyder/go-i18n, maximilien/i18n4go, GNU gettext, golang.org/x/text, or alike.

Additional context
Reference Qt i18n tools are tr() and qsTr() . Qt Linguist has lupdate tool which extracts potential i18n strings from tr() and qsTr() calls in code using static analysis, as well as lrelease tool for compiling TS files into QM equivalents.

Possible implementation

  • Prepare the UI for translation
    Use qsTr("Some text") QML function for all texts, labels and messages, insead of just "Some text"
    For non-text values: qsTr("This are numbers: %1 and %2").arg(43).arg(60)
  • Prepare the backend for translations
    Use tr("Some text") instead of just "Some text" for any string that needs translation
    For non-text values: tr("This are numbers: %1 and %2 and more text: %3").arg(43).arg(60).arg("bla bla bla")
    • Implement global tr() function for language-specific string lookup (English pass-through)
  • Add Qt's translations resource file
  • Setup translation (.ts) files (using lupdate)
  • Release binary translations (.qm) files (using lrelease)
  • Embedd .qm files into the application (using rcc)
  • Load translations from the application (QTranslator)
  • Detect OS language and change GUI texts accordingly (using QLocale)
  • Language switch UI control including default option to fall back o OS language
  • Allow dynamic translation (using QQmlEngine::retranslate())
  • Add icon flags for each translation language
  • Translations repositories for Spanish, French, ...
  • Makefile rules for i18n tasks e.g. new language, update language, compile, bundle in resources, ...
  • Transifex integration

Backend to manage history

Feature description:
Need a backend to manage the history. See the following image:
History

Possible implementation:

Add an UI that shows the wallets list

Feature description
Add a UI that shows a list of all wallets. The status of the wallets must be reflected in the list

Possible implementation

  • A ListView with a delegate that shows an icon (representing the status), the name of the wallet, the sky coins and the coin hours.
  • Every wallet must have a list containing addresses, each with the number of sky and coin hours.
  • Add the bottom, must have an option to add a new wallet, remove a wallet or edit a wallet. Also another to hide empty wallets. A footer it's a good idea, so then the buttons are not moved when the list is flicked or scrolled.
  • Add an option to copy the address.

Backend to manage the networking

Feature description:
Need a backend to manage the networking. No image available (for now, check the electron app).

Possible implementation:

Backend to manage outputs

Feature description:
Need a backend to manage outputs. No image available (for now, check the electron app).

Possible implementation:

Add an UI to inform the user to resolve security issues before using the wallet

Feature description
Add a UI to inform the user to resolve security issues before using the wallet.

Possible implementation

  • A Dialog or New Window
  • An inform of the security issues
  • A Checkbox that allows continue if checked (style "I understand the consequences")
  • An option to continue anyway if the above checkbox is checked

Show USD <-> Sky conversions

Description
Make clear the equivalence between Sky and USD.

  • Add USD equivalent next to every Sky amount
  • Allows sending Sky using its USD equivalent

Add an UI to manage transactions

Feature description
Add an UI that allows to submit a transaction.

Possible implementation

  • A Page that allows to make a transaction in a simple way
    • A ComboBox to select the wallet
    • A LineEdit to write the destination address
    • The amount of the transaction
  • A Page that allows to make a transaction in a more advanced way
    • Allows to select the address from where the transaction will be send
    • Allows send Sky and CoinHours (if needed) to multiple addresses
    • Allows to specify an address where receive change
    • An option to manage the coin hours automatically

Add an UI to configure an unconfigured hardware wallet

Feature description
A UI that allows the user to configure a hardware wallet that is not yet configured.

Possible implementation

  • A Dialog or a new Window.
  • Option to configure it automatically.
  • Option to configure it using a previously saved configuration backup.

pip-installable package

Describe the solution you'd like

  • Build files through setup.py that can be published for distribution in PyPI
  • Test them in PyPI test sandbox

Fix initial project layout

  • Remove .cpp files from ./src
  • Remove .pro files from ./src
  • Move contents of ./pkg onto ./src and remove the former folder
  • Review README.md . Python => go

An About Qt dialog

Feature description
Need a dialog that shows useful information about Qt, the framework used here.

Possible implementation
In absence of a built-in dialog (see QTBUG-72917) we need to implement one that must be manually updated in each release.

  • Mimic the Qt Widget's About Qt dialog
    • Qt icon
    • Same text present in the widget version

An UI that shows the details of a transaction

Feature description
Add an UI that shows the details involving a specific transaction.

Possible implementation

  • A basic view
    • The transaction ID
    • The date and hour
    • The status
    • The amount of coins sended/received.
    • The hours received/sended/burned
    • A button to show detailed information
  • A detailed view that shows all contained in the basic view plus:
    • The inputs and outputs, showing the coins and coin hours for each address involved

Add an UI to secure the wallet

Feature description
Add an UI to secure the wallet. Must provide a way to backup and enter a PIN.

Possible implementation

  • A Dialog or New Window
  • An option to make a backup
  • An option to create a PIN code
  • An option to wipe the device

Initialize repository

Feature description

Initialize source code version control repository.

Describe the solution you'd like
Initial (unfinished) code with tests.

Describe alternatives you've considered
Appveyor for Windows CI builds

Possible implementation

  • Make targets QT relies on cmake
  • Concise README
  • Empty CHANGELOG
  • Travis build matrix for linux and osx
  • Travis notifications for Telegram bot
  • Setup build env
  • Setup Github templates

Add an UI to manage wallets

Feature description
Add a UI that allows to check the status of all wallets, add and load new wallets, edit wallets, add addresses...

Possible implementation

  • A TabWidget inside the window
  • A Tab to see all wallets and the status of each (like a list)
    • Each element (wallet) must have an option to edit and encrypt the wallet, add a new address, etc.
    • And a list of addresses
  • A Button to add a new wallet
  • A Button to load a wallet

Add an UI to review the history of transactions

Feature description
Add an UI that shows an history of transactions. Each transaction must show whatever it's an import or an export of coins, the amount of coins, the date and hour of the transaction, and the addresses involved.

Possible implementation

  • A List that shows the history of transactions
    • A Label and/or Icon that shows whatever the transaction send or receive coins
    • The date/time of the transaction
    • The involved addresses
    • The amount of coins sended/received

Add an UI to configure a hardware wallet from a backup

Feature description
A UI to enter the words saved in the hardware wallet, if the user choose configure the wallet using a backup.

Possible implementation

  • A Dialog or New Window
  • A line edit where the use must input the word received in the hardware wallet
  • A button to accept the input once finished

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.