Gridcoin online wallet

in #gridcoin6 years ago

I'm on the planning stage of gridcoin online wallet. I'll try to illustrate how I create new resources. Below you can see lists of features and interfaces I think to implement.

Features:

  • Web interface
  • 2FA
  • POST API
  • QR codes
  • Captcha register/login
  • Mail notices
  • Multiple languages support
  • Auto wallet backup

Tables (database structure):

  • users - uid, mail, login, password_hash, salt, balance, register_time, login_time, api_enabled, mail_notices_enabled, withdraw_address
  • auth_tokens - uid user_uid, token, timestamp
  • wallets - uid, user_uid, address, received
  • api_keys - uid, user_uid, key, access
  • labels - uid, user_uid, address, label
  • transactions - uid, user_uid, amount, address, status, tx id, add_time, sent_time
  • mail - uid, user_uid, mail, subject, body, add_time, sent_time
  • variables - uid, name, value, timestamp

Variables - used to change pool settings from pool interface:

  • payouts_enabled - allows enable or disable payouts for all users
  • login_enabled - allows enable or disable payouts for all users
  • api_enabled - allows enable or disable API calls for all users
  • global_message - text for header on every page
  • news - news section text
  • current_block - current Gridcoin block
  • current_block_hash - current Gridcoin block hash

Web interfaces:

  • Login/register page
  • Balance - you can see your balance here, also can send some funds and view last 10 transactions
  • Address book & send - address book, also with send ability
  • Receive addresses & qr - list of all receiving addresses
  • Transactions - list of all your transactions
  • Settings: - 2FA, api, api_key, password, mail, mail_notifications
  • Administration page - global options, news editor, client status

Forms (user actions):

  • generate_new_address - generates new receiving address
  • send - for sending funds
  • add_address_alias - change address book
  • edit_address_alias - change address book
  • delete_address_alias - change address book
  • apply_settings - change settings on settings page
  • register - add new user
  • login - check existing user and login
  • global_enable_login - enable logging in for ordinary users
  • global_disable_login - disable logging in for ordinary users
  • global_enable_payouts - enable payouts
  • global_disable_payouts - disable payouts
  • global_enable_api - enable API calls
  • global_disable_api - disable API calls
  • global_message_edit - edit global message
  • news_edit - edit news

API (almost all functions from block.io):

  • send {address} {amount} - for sending
  • get_balance - get account balance
  • get_address_balance {address} - get balance of specific address
  • get_new_address - generate new address
  • get_my_addresses - get addresses list
  • get_current_price - get current Gridcoin price
  • get_transactions - get transactions list
  • get_address_book - get all address book records

Gridcoin client interaction commands (not a complete list):

  • getreceivedbyaddress - for checking user address balance
  • listtransactions - for getting transactions
  • sendtoaddress - for sending funds

How balance works:

  • User balance is all received funds (getreceivedbyaddress) minus all sent funds (stored in DB)

If you think wallet need another features, you can write them in comments.

Sort:  

Congratulations @sau412! You have completed the following achievement on the Steem blockchain and have been rewarded with new badge(s) :

You made more than 50 comments. Your next target is to reach 100 comments.

Click here to view your Board of Honor
If you no longer want to receive notifications, reply to this comment with the word STOP

Do not miss the last post from @steemitboard:

Meet the Steemians Contest - The results, the winners and the prizes
Meet the Steemians Contest - Special attendees revealed

Support SteemitBoard's project! Vote for its witness and get one more award!

Coin Marketplace

STEEM 0.17
TRX 0.15
JST 0.028
BTC 62952.72
ETH 2429.38
USDT 1.00
SBD 2.56