Giter Site home page Giter Site logo

mm-uh / fibercryptowallet Goto Github PK

View Code? Open in Web Editor NEW

This project forked from fibercrypto/fibercryptowallet

0.0 1.0 0.0 25.33 MB

Multi-coin cryptocurrency wallet

License: GNU General Public License v3.0

QML 39.93% Makefile 1.32% Go 53.17% Shell 1.42% JavaScript 4.16%

fibercryptowallet's Introduction

FiberCrypto wallet

Build Status Contributions welcome License: GPL v3 Coverage Status

FiberCrypto wallet is a cryptocurrency software wallet aimed at:

  • Provide easy-to-use interactions to users
  • State
  • Out-of-the-box support for every SkyFiber token in a single place
  • Support other altcoins
  • Facilitate exchange of crypto assets
  • Buy and sell supported crypto assets using fiat (e.g. USD, GBP, EUR, ...)
  • Integrations with trading tools
  • Offer basic blockchain-specific tools

Development

Project folder structure

Project files are organized as follows:

  • main.go : Application entry point
  • CHANGELOG.md : Project changelog
  • Makefile : Project build rules
  • README.md : This file.
  • *.qrc : QML resource index files.
  • qtquickcontrols2.conf : QT Quick controls configuration file.
  • ./resources : Static resources.
  • ./resources/images : Graphics resources needed by the application.
  • ./resources/images/icons : Project and third-party icons
  • ./resources/fonts : Font files needed to compile the application.
  • ./src : Application source code.
  • ./src/ui : QML definitions for application GUI components.
  • ./src/ui/Dialogs : QML definitions for reusable dialogs.
  • ./src/ui/Delegates : QML specs for partial views.
  • ./src/core : Core go-lang interfaces.
  • ./src/main : Project specific source code.
  • ./src/util : Reusable code.
  • ./src/util/logging : Event logging infrastructure.
  • ./src/models : QT models linking coin-specific models to application GUI.
  • ./src/coin : Source code for altcoin integrations.
  • ./src/coin/mocks : Types implementing core interfaces for generic testing scenarios
  • ./src/coin/skycoin : Skycoin wallet integration
  • ./src/coin/skycoin/models : Skycoin implementation of golang core interfaces.
  • ./src/coin/skycoin/blockchain : Skycoin blockchain API.
  • ./src/coin/skycoin/sign : Skycoin sign API.
  • ./vendor : Project dependencies managed by dep.

Architecture

FiberCrypto wallet supports multiple altcoins. In order to cope with this complexity GUI code and QT models rely on strict interfaces which shall be implemented to add support for a given coin. Each such integration must have two main components:

  • Models API: Implements application core interfaces.
  • Sign API : Implements altcoin transaction and message signing primitives required by application code.
  • Blockchain API : Provides communication between application and altcoin service nodes to query for data via REST, JSON-RPC and other similar low-level client-server API.
  • Peer-exchange API (optional): Implements peer-to-peer interactions with altcoin blockchain nodes.

Build System

The build system is Qt framework. The front-end is programmed in QML, and the back-end in Go, using therecipe/qt.

Requirements

Windows requires the command line tool magick convert, that comes with the open-source ImageMagick project in order to build the icons (not necessary as default icons are always provided)

Qt version

Linux/X11 requirements
MacOS requirements
Windows requirements

The minimum Qt version required is Qt 5.12.0 LTS. However, is highly recommended using Qt 5.12.1 LTS or any later version of Qt5 due to some bugs:

We always recommend using the latest Qt version. See Qt Archive.

Make targets

Common actions are automated with the help of make. The following targets have been implemnented:

deps                           Add dependencies
run                            Run FiberCrypto Wallet.
install-deps-no-envs           Install therecipe/qt with -tags=no_env set
install-docker-deps            Install docker images for project compilation using docker
install-deps-Linux             Install Linux dependencies
install-deps-Darwin            Install osx dependencies
install-deps-Windows           Install Windowns dependencies
install-deps                   Install dependencies
build-docker                   Build project using docker
build-icon-Windows_NT          Build the application icon in Windows
build-icon-Darwin              Build the application icon in Darwin
build-icon-Linux               Build the application icon in Linux
build-icon                     Build the application icon (Windows_NT and Darwin systems)
build                          Build FiberCrypto Wallet
prepare-release                Change the resources in the app and prepare to release the app
clean-test                     Remove temporary test files
clean-build                    Remove temporary files
clean                          Remove temporary files
gen-mocks                      Generate mocks for interface types
test-sky                       Run Skycoin plugin test suite
test-core                      Run tests for API core and helpers
test-cover                     Show more details of test coverage
test                           Run project test suite
install-linters                Install linters
install-coveralls              Install coveralls
lint                           Run linters. Use make install-linters first.

Type make help in your console for details.

WIP

This is a Work-In-Progress.

fibercryptowallet's People

Contributors

stdevcrow avatar stdevmac avatar mauricio1802 avatar olemis avatar antid2ta avatar hsequeda avatar e1ru1o avatar stdevalden avatar rlsalgueiro avatar

Watchers

James Cloos avatar

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.