Giter Club home page Giter Club logo

centaurus's Introduction

Centaurus

The First Stellar Wallet for Android!

Stellar aims for the stars. And the nearest star system to us is Alpha Centauri! The next step to get there is a functional app for sending and receiving payments.

The app is built using AngularJS, Cordova and the Ionic Framework. We first focus on android, but as Ionic is a platform agnostic tool, feel free to try it on the platform you like.

Features

  • Display account balances
  • Send by manually pasting an address
  • Send by scanning a QR-code
  • QR-code for receiving
  • Display recent transactions
  • Encrypted backups

Try it

Contribute

I am a complete newbee to HTML/JS, Ionic, so

  • Use the app and report any bugs
  • Just contribute new code
  • Peer review and improve existing code
  • Donate to our Stellar-Address GDJXQYEWDPGYK4LGCLFEV6HBIW3M22IK6NN2WQONHP3ELH6HINIKBVY7

Levels of Contribution

There is a simple way for contribution as long as you don't develop on phone specific issues.

While the simple mode is a good way to get started, you will soon want to see this on your own device. Or check the layout on several emulated devices or whatever.

Simple

  • Fork project as usual.
  • Open file './www/index.html' with your browser. What you see is close to what you have in the app.
  • Modify the html views in './www/templates/' or the JS files in './www/js/'. Watch your changes immediatly by refreshing the page in the browser.
  • You might also want to add some JS libs to './www/lib/'.
  • See www/Readme.md

Advanced (Android)

  • We recommend VisualStudio Community Edition (free) and Tools for Apache Cordova (a.k.a. Taco)
  • Fork project as usual.
  • make a copy of configTemplate.xml and name it config.xml
  • Make sure your device is visible to your computer. You can check this by running adb devices. More information coming soon.
  • Navigate to your Centaurus root folder in the command line, use ionic to add android platform
  • Build, deploy and run the app. Be Happy!
ionic platform android
ionic run android

Some problems might arise with the latest android platform version. Centaurus is best tested with version 3.7.1. You can get it by

cordova remove platform android
cordova add platform [email protected]

Advanced (other platforms)

No experience yet, so let us know.

Links

License

Centaurus is licensed under Mozilla Public License, v. 2.0. See the LICENSE file for details.

centaurus's People

Contributors

agyepong avatar bartekn avatar chrosim avatar dchrist22 avatar janmartchouk avatar manran avatar meldone avatar proxiweb avatar raymens avatar tbltzk avatar you21979 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

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

centaurus's Issues

Support multiple source currencies

  • Before sending payment, query the network for all (source) currency options.
  • Display all possible options and make the user choose one (consider ionic actionsheet for this purpose)

Display Account Reserve correctly

Currently the account reserve is hard coded to be 20 STR. This is fine as long as users use freshly created accounts. However as import of existing accounts is now supported, this might lead to confusion.

  • Check if the correct reserve is part of the account_info response.

account migration

  • announce migration in social media
  • announce migration within app
  • migrate button: STR -> XLM

Display recent transactions

In the Wallet tab display the user's recent transactions

  • Somewhere below the balance
  • Fix amount (e.g. 10 or 20 most recent entries)
  • keep in sync with balance when updating the view
  • nice to have: dynamic paging (load more when user scrolls down)

Display balances of all relevant currencies

  • change internal account representation as to allow multiple balances (decide whether STR is one Balance among others or remains a special balance)
  • UI Concept for multiple balances (merge different issuers or not). Refer to official client.

Send by manually pasting an adress

It must be possible to enter destination address and amount of STR and send it via the Stellar network

  • Display edit fields for address and amount
  • Send via api

Code cleanup after horizon migration

  • remove everything that remains from old websocket
  • remove websocket plugin
  • call other plugins into question
  • Use Account.isValidAddress()
  • call healthCheck into question
  • analyze upgrade to higher versions of
    • ionic
    • cordova

Rename Trx to History

Seems a better term to me that should fit on the screen.

Maybe move About to the top right too with just an information icon?

Reduce apk size

  • drop unnecessary resources
  • drop unnecessary files from lib-folder
  • ...

path payment

  • path payment
    • determine destination currencies
    • remind that I can always send assets to the respective issuer
    • calculate possible paths (streaming?)
    • do the payment

Update Ionic devDependency to latest stable release

It's currently using an old beta release:
"ionic": "driftyco/ionic-bower#1.0.0-beta.11"
This should be changed to the latest stable
"ionic": "driftyco/ionic-bower#1.1.1"

Or maybe even use the Bower repository for this.
"ionic": "1.1.1"

Update: seems that using any other version than the current beta 11 will mess up the UI big time. Haven't checked out why yet.

Update 2: in tabs.html the class is:
<ion-tabs class="tabs-icon-top"> but in the beta 11 version it's at the bottom. Is this intended? Changing the class to "tabs-icon-bottom" will put it back at the bottom (as in the beta) for v1.0.0. When using v1.1.1 there's no UI at all (except for a back button text).

Update 3: So it seems that the UI doesn't get messed up big time if v1.0.0 is used. The difference between beta 11 and v1 is that apparently v1 uses the default location for the location of the tabs. At the top for Android and bottom for iOS etc (http://ionicframework.com/docs/api/directive/ionTabs/). It's allowed to override this, so it's up to you to decide if you want to override it or don't...?

Using v1.1.1 does mess up the UI as nothing is visible anymore, but that's the next step to fix :)

Improve Readme.md

  • Build Instructions for Windows
  • Build Instructions other OSs
  • Levels of Contribution
  • Link to Stellar-Client on GitHub

Facilitate error reporting from within the app

A new button (let's say in the about-tab) for reporting errors:

  • automatically retrieve as much device information as possible (manufacturer, model, android version, screen resolution, ...)
  • retrieve the apk version (should somehow be the value from config.xml)
  • other helpful things like date and time, connectivity etc, suggest a category
  • checkbox if the functionality worked correctly in a previous version
  • Explain to the user, that all information is used exclusively for analyzing the error, nothing else
  • Transmit the information (e.g. mailto [email protected])
  • nice to have: display the apk version within the app

Display value of all stellar amounts in different currency

It is hard to get Dollars, Euros, Yen and Yuan out of people's head. So I would suggest the following feature:

  • integrate a currency conversion service
  • possibilty to choose a display currency (supported by the conversion service)
  • for all stellar amounts indicate (additionaly) the corresponding value in the display currency
  • wallet tab: balance, (maybe recent transactions, but prio 2)
  • send tab: available amount, payment amount

External links are opened within the wrapper browser. Navigation back not possible!

see templates/tab-about.html
When an <a href="http://some.external.link"> is clicked, the target site opens within the wrapper browser. This would be ok. But navigation back is not possible, so you are stuck an cannot get back to the app!

  • disabled the link to gh-pages for the moment
  • nice solution would just display like any link, but open in system browser
  • perfect solution would handle this once and for all within the app, e.g. with a new value for the <a target="..."> tag

Did not try the proposed solution from the ionic forum, yet!

Resolve contacts

  • in the send view. resolve contact name to address (done)
  • in the trx view: reverse match address(+memo) to contact name
  • nice to have: auto completion when typing the address in the send view

Connection monitor

Regularly check if connection is established.

  • indicate connection state (at least in the wallet tab or globally)
  • automatic reconnect (may 3 attempts or something)
  • manual reconnect

Support destination tag

  • new edit field for destination tag
  • determine whether receiver requires destionation tag (account flags)
  • hide edit field by default, show only on demand or if receiver requires destination tag

App does not run on galaxy S4, Android 4.2.2

The address remains "loading" all the time.
First we have to find out, whether this is a api version issue or device specific or something else like environment/branding.
Try to reproduce it in emulator first. --> No Problem in emulator
Maybe its a mobile provider issue (o2 Germany).

Display balance (STR)

The user's STR-Balance should be displayed in the Wallet tab.

  • It should be emphasized somehow, because this is the most important information on this tab.
  • Some refresh mechanism is required to keep the balance up to date. If automatic refresh is complicated, a user action for refreshing is acceptable

Add contact from recent transaction

In the transaction view use a recent transaction to create a new contact.

  • use on-hold to open dialog
  • in the dialog show name, address and memo, prefill address and memo from transaction
  • for debit trx use receiver to fill address, for credit trx use sender

Manage contacts

  • new view for displaying contacts (done)
  • display all contacts (done)
  • text input for filtering (done)
  • add new contact from scratch (done)
  • edit a contact (done)
  • fill send tab from contact (done)

Beatify UI

Use Ionic directives instead of plain html on all tabs.
Try to support copy/paste (at least where addresses/keys are displayed) (Prio 1)
Very nice to have: swipe to change tabs

Set inflation destionation

If inflation destination is not set and account holds enough reserve, set inflation destination to centaurus.
Solve #30 first.

Create Stellar Keys on First Use

If started for the first time, the app should create stellar keys and use them for any transaction afterwards.
A Following issue should

  • either use the wallet-service in order to retrieve keys for an existing account
  • or proper encryption with local password + backup-functionality for the created key, ...

Export/Import keys

In the wallet tab, provide a way to export keys, e.g.

  • write json file
  • import the keys from such file
  • import the keys from a qr code with json coded keys

Provide more content on github pages

Use jekyll to provide more than the start page on github pages:

  • Everything that is currently posted in Stellartalk.
  • Data privacy statement, that can be linked in the google store entry
  • qr code for immediate download of the app
  • ...

Login to an existing Stellar account

#18 (export/import keys) should be done first.

On startup, a login screen should popup in order to enter stellar credentials and retrieve keys from the stellar-wallet service.
The keys must be available for any stellar api calls during the apps lifetime.

track effects

track payments

  • update account balance (done)
  • show in trx tab (done)
  • how to navigate from effect to operation and transaction (done)
  • update account sequence number (done)
  • display effects in chronologic order (done)
  • nice to have: use http://momentjs.com/docs/#/displaying/fromnow/ to show relative time of transaction

Support multiple destination currencies

  • Additional input field to specify the destination currency
  • if possible, query the network for the possible destination currencies and display in a dropdown or something

Transactions are being displayed multiple times

On some devices transactions are displayed again and again!

  • not reproducible with emulator on testnet
  • when duplicated transactions appear, they also modify the account balance (which indicates it is a problem with the stream, not the initial fetch of transactions)
  • closing and reopening the app removes all duplicates and the account balance is correct.

screenshot_2015-11-10-09-09-02_de xcoins centaurus

send

  • simple payment (done)
  • destination tag (done)
  • if unfunded -> use create account instead (done)

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.