Code Monkey home page Code Monkey logo

signum-mobile-wallet's People

Contributors

ipr0310 avatar ohager avatar thetimewalker avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

signum-mobile-wallet's Issues

Settings Screen

Develop the settings screen
(This will allow the user to customize their experience within the mobile wallet)

Stories:

Related epic:

image

Import Existing Account

  • Initial UI
  • Form validation on user agreeing to the terms
  • Import Mnemonic or Watch-only accounts
  • After importing a full mnemonic account, store the keys on the Private Keys Storage service
  • After importing a watch-only account, store the account ID on the Account Storage service

image

Create New Account

  • Initial UI
  • Passphrase creation service
  • Form validation on user agreeing to the terms
  • After creation, store user's keys on the Private Keys Storage service

Screens (reference):
image

Home Screen

Develop the account overview home dashboard
(This will allow the user to Watch assets Watch Transactions History Get SIGNA value in other FIAT/Crypto currency)

Stories:

Related Epics:

Manage node connection types

Allow the user to connect to different public nodes automatically or just keep manually connected to a custom node.

Connection types:
Manual or Automatic

Extra context
When connecting to custom nodes, always keep the connection type as manual

Recipient Selection

  • Allow to scan QR Code
  • Detect when user is sending to burn address
  • Warn the user if they are sending funds or a message to a non-activated account

image

Market Rates Service

  • Setup service for fetching multiple FIAT/Crypto rates
  • Persist the rates
  • Show it on the UI
  • Allow the user to pick between different rates to show on the wallet

Currencies to be supported

  • USD
  • EUR
  • BTC
  • BRL
  • CAD
  • GBP
  • IDR
  • RUB
  • THB

We are going to use Coingecko's cryptocurrency data API
https://www.coingecko.com/en/api

Thanks Coingecko for this awesome tool :D

Private Keys Storage Service

As previously brainstormed, this is our new proposal for storing the user's keys on the device's keychain
image

The following modules are required:

  • Set up initial Expo SecureStore service
  • Store keys through PIN
  • Store keys through Biometric authentication

Initial Screen

Develop the welcome screen with all its required modules.
(This screen asks the users to read and accept the terms before using the wallet)

Change Language

Allow the user to change app language.

The initial language will be English, before the release other languages will be integrated

Holdings Selection

  • Allow the user to pick between SIGNA or a Smart Token
  • Validate the available balance of SIGNA or a Smart Token
  • Amount Field
  • Add Max Use all available balance Button

Token Screen

Develop the account tokens screen
(This will allow the user to Watch token holdings)

Stories:

Related Epics:

image

Account Transactions Activity

Show latest transactions of an account

  • Detect if a transaction is pending
  • Summary of 5 latest transactions
  • Dedicated screen of account transactions

image

Dedicated screen
image

Testnet detection

Detect if user picked a testnet node

  • Show testnet alert
  • Show TS on RS Address format
  • Detect account data from testnet

Unavailable Node Detection

  • Alert the user the node is unavailable/down
  • When node is unavailable, user should be able to switch node on the settings

Extra context
If connection type === Manual node connection will not change, because the user handpicked that specific node
If connection type === Automatic node connection will change to the ones from the public node lists

Proposal for `Account Storage` Service

@ohager @TheTimeWalker
As Expo SecureStore is using the device's keychain, it is a Key/Value DB.

It does not provide a method of knowing all keys which are saved on the device. The app must keep track of all accounts the user is importing/creating

Proposal:
The app should be able to identify all the account the user has created or imported through SQLite

We can create the following table called Account:

account (string) (unique) type (mnemonic or watch-only) timestamp (UNIX)
8629824288351884182 mnemonic 1707793722
9613514220065540170 watch-only 1707793722
8413162550188879456 mnemonic 1707793722

Any feedback is appreciated

Change Currency Unit

Allow the user to pick the currency of preference to be shown on the conversion

SIGNA -> BTC or SIGNA -> USD and etc...

Related EPIC:

Network node config

  • Allow the user to pick between Automatic and Manual mode
  • Allow the user to add/pick/remove custom nodes #24

Setup Husky Hooks

As builds will go through Expo EAS Build
We may consider at least running "ts:check": "tsc" for checking types before commit/push changes

Accept terms

  • Allow the user to accept terms
  • Verify user has agreed to all terms

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.