LogoLogo
PAO DocsCommunity DocsInfrastructure DocsPeerplays.com
  • Developer Documentation
  • API Reference
    • Peerplays Core API
      • Popular API Calls
      • Account History
      • Asset API
      • Block API
      • Crypto API
      • Database API
      • Network Broadcast API
      • Network Nodes API
      • Orders API
    • Wallet API
      • Account Calls
      • Asset Calls
      • Blockchain Inspection
      • General Calls
      • Governance
      • Privacy Mode
      • Trading Calls
      • Transaction Builder
      • Wallet Calls
    • Bookie API
      • General Calls
      • Listeners
      • Tournaments
  • Peerplays API Libraries
    • Python Peerplays
      • Installation
      • Creating an Account
      • Creating a Peerplays Wallet
      • NFT API
      • Marketplace API
      • Role Based Permissions API
  • Development Guides
    • Creating User Issued Assets
    • Introduction to Permissions
    • NFT Minting
    • Calculating Costs
  • The Cookbook
    • NFTs for Staking Creator Tokens
  • Tools and Integrations
    • PeerID
      • 1.0.0
        • Infrastructure
          • Deployment on a Linux Serve
          • Deployment to AWS ECS
            • Building the Docker Images
            • Storing Secrets in Amazon Parameter Store to use in ECS
            • Creating the Task Definition
            • Creating the Cluster
            • Creating the Service
        • Development
          • How does PeerID work without storing the keys ?
          • Authentication with PeerID
          • Brain Storming
          • Software Requirements
      • Authentication with PeerID
      • Requirements Specification
    • Random Number Generator
      • RNG Technical Summary
      • RNG API
  • Supporting & Reference Docs
    • Peerplays Development FAQs
    • Sidechain Operator Node (SON) Development
      • Generic Sidechain Docs
        • Quick joining GLADIATOR
        • Changes to Peerplaysjs-lib
        • Requirements Specification
        • Low Level Designs
          • bitcoin-deposit-handling-lld
          • bitcoin-operations-draft
          • bitcoin-sidechain-handler-lld
          • bitcoin-sidechain-multisig-bitcoin-wallet-and-bitcoin-addresses-pw
          • bitcoin-withdrawal-handling-lld
          • btc-address-scripting-mechanism
          • comparison-between-scenarios-for-handling-deposits-and-withdrawals
          • exchange-rate-list
          • generic-sidechain-deposit-hld
          • generic-sidechain-high-level-design
          • generic-sidechain-listener-hld
          • generic-sidechain-withdrawal-hld
          • refund-btc-mechanism
          • son-configuration
          • son-consensus-communication-and-transaction-signing-on-chain-lld
          • son-de-register-proposals-lld
          • son-objects-and-operators
          • son-rewards-lld
          • son-voting-lld
          • son-wallet-list_sons-lld
          • creation of a multi-sig bitcoin address lld
          • claiming initial son vesting lld
          • changeover and SON maintenance scenarios lld
          • user-sidechain-addresses-mapping
          • wallet-commands-for-son
        • Functional Specs
          • SON Configuration
          • SON rewards
          • SON Voting and Consensus
          • SONs switchover scenarios
          • SON Status Operations & Monitoring
          • Proposals
          • SON Smart Contracts
      • Bitcoin Sidechain Docs
        • Functional Specs
          • btc-refunds
          • voting-and-consensus
          • son-switchover
          • son-rewards
          • son-proposals
          • son-configuration
          • heartbeat-monitoring
          • BTC Transaction Processing & Signing
          • Bitcoin Withdrawal Handling
          • Bitcoin Deposit Handling
          • SON Multisig Bitcoin Wallet
      • Hive Sidechain Docs
        • Functional Specs
          • HIVE Deposit Handling
          • HIVE Withdrawal Handling
    • Peerplays DEX Development
      • Peerplays NEX
        • Functional Specifications
          • NEX-FS01 Dashboard Page
            • NEX-FS12 ETH-SONs Deposit/Withdraw Functionality
          • NEX-FS02 Login and Account Creation
          • NEX-FS03 Menus and Nav
          • NEX-FS04 Notifications
          • NEX-FS05a Market Page (alpha)
          • NEX-FS05 Market Page
          • NEX-FS06 Profile Page
          • NEX-FS07 Wallet Functions
          • NEX-FS08 App Settings
          • NEX-FS09 Blockchain Page
          • NEX-FS10 GPOS Page
          • NEX-FS11 WhaleVault Integration
      • Requirements Specification
      • Functional Specs
        • Asset Info Page and Asset Lists
        • Dashboard
        • Exchange Page
        • Login and Account Creation
        • User Account Page
        • Voting Page
    • SPK Network
      • Functional Specs
        • Claimdrop Snapshot Functional Specification
        • Initial Claimdrop Functional Specification
    • NFT Development
      • NFT Store
        • NFT Store User Stories
        • NFT Store UI HLD
        • NFT Store Requirements Specification
        • Functional Specifications
          • APP-FS01 App Header
          • APP-FS02 App Body
          • APP-FS03 App Footer
          • APP-FS04 App Navigation
          • APP-FS05 Wallet Functions
          • APP-FS06 App Home Page
          • APP-FS07 Account Page
          • APP-FS08 Browse View
        • App Page List
        • Requirement Traceability Matrix
    • Operation IDs List
    • Sidechain Flow Diagram (HIVE coin)
    • Sidechain Flow Diagram (Bitcoin)
    • Sidechain Flow Diagram (Ethereum coin)
    • TradeHands Explorer
      • User Personas
      • User stories
      • APP-FS01 Detailed View
      • Draft: APP-FS02 Front Page
      • APP-FS03 Collection Details Page
    • Grafana
      • Grafana Installation
      • Install Grafana Behind reverse proxy
      • Loki Installation
      • Promtail agent Installation
      • Grafana Explorer
    • NEX Deployment & Configuration
      • NEX Deployment
      • NEX - Blockchain API configuration
      • Deploying NEX in a HA scenario
    • API Node
      • MarketCap API
    • TOTO Application
      • FS-Subscription Plan
      • FS-Achievements
  • Development Workflow Docs
    • Development Workflow
  • Other Documentation
    • Peerplays Home
    • Community Docs
    • Infrastructure Docs
    • Site Reliability Engineering
Powered by GitBook
On this page
  • 1. Purpose
  • 2. Document Tracking
  • 2.1. Parent Document
  • 2.2. Categorization
  • 3. Scope
  • 3.1. Components
  • 4. Document Conventions
  • 5. Process Overviews
  • 5.1. Sending Assets
  • 5.2. Receiving Assets
  • 6. Context
  • 7. Design Wire-frames
  • 8. Requirements
  • 8.1. Wallet Page Layout
  • 8.2. Assets List
  • 8.3. Send Function
  • 8.4. Receive Function
  • 9. Appendix A: Glossary

Was this helpful?

Export as PDF
  1. Supporting & Reference Docs
  2. Peerplays DEX Development
  3. Peerplays NEX
  4. Functional Specifications

NEX-FS07 Wallet Functions

The Peerplays NEX application functional requirements specification for the wallet functions.

1. Purpose

The purpose of this functional specification (FS) document is to detail functional requirements for the Peerplays NEX application (the “app”) relating to the wallet functions from a business and user perspective.

2. Document Tracking

2.1. Parent Document

This document is a child document of the NEX Requirements Specification (NEX-RS).

2.2. Categorization

This document relates to the following tags.

App Component

process

page fragment

3. Scope

This FS will describe the requirements and basic design for the app’s wallet design and functions.

3.1. Components

Specific components and features covered in this FS include:

  • wallet page layout

  • user asset list

  • send functions

  • receive functions

4. Document Conventions

For the purpose of traceability, the following code(s) will be used in this functional specification:

Code
Meaning

NEX-FS07-#

NEX App Requirement - Wallet Functions

The keyword shall indicates a requirement statement.

The keywords may, could, and should are not requirements but rather indicate items related to requirements that are worthy of consideration.

5. Process Overviews

The processes which will be described here are as follows.

  • sending assets

  • receiving assets

5.1. Sending Assets

  1. The user navigates to the wallet send function.

  2. The user reviews their assets available to send.

  3. The user selects an asset in the asset selection field.

  4. The send form updates as necessary per the selected asset.

  5. The user enters an amount of available asset to send in the amount field.

  6. The send form updates as necessary per the user inputs.

  7. The user enters the recipient account name into the to field.

  8. The user selects which blockchain to send the funds to, if withdrawing to a sidechain.

  9. The user may enter a memo if sending assets within the Peerplays network.

  10. The user reviews the send transaction information, such as fees, total costs, and estimated confirmation time.

  11. The user initiates the transaction by clicking the “send” button.

  12. The app displays a confirmation dialog to the user.

  13. The user reviews and accepts the confirmation.

  14. The app signs and sends the transaction to the blockchain.

  15. Upon success, the app displays a success message to the user and updates the user’s available balances.

5.2. Receiving Assets

  1. The user navigates to the wallet receive function.

  2. The user selects an asset in the asset selection field.

  3. The receive form updates as necessary per the selected asset.

  4. The user reviews the instructions for receiving the asset they selected.

  5. If the selected asset is BTC, the app displays their BTC deposit address and allows the user to cope the address to their clipboard.

  6. If the selected asset is BTC and a BTC deposit address is not yet associated with the user’s Peerplays account, the app displays a “Generate Bitcoin Address” function.

  7. The user clicks the “Generate Bitcoin Address” button.

  8. The app generates a new BTC deposit and BTC withdraw address, displays the BTC deposit address to the user, and displays a download link for the deposit and withdraw address private keys.

  9. The user downloads their private keys.

6. Context

The wallet is at the heart of the app. It’s the way assets can come and go from the market. Using the wallet, users can work seamlessly with sidechain assets like BTC and HIVE. These assets can then be traded in the open exchange, sent around the network, and even sent back to the sidechains.

7. Design Wire-frames

The original designs for the NEX app wallet functions are available here:

Here are updated wire-frames for the design covered in this FS:

Figure 1. The user’s assets list in the wallet.

Figure 2. The send function (blank form) in the wallet.

Figure 3. The send function (PPY example) in the wallet.

Figure 4. The send function (BTC example) in the wallet.

Figure 5. The send function (HIVE example) in the wallet.

Figure 6. The receive function (blank form) in the wallet.

Figure 7. The receive function (PPY example) in the wallet.

Figure 8. The receive function (BTC example) in the wallet.

Figure 9. The receive function (HIVE example) in the wallet.

8. Requirements

Requirements specific to the items listed in this FS are as follows.

8.1. Wallet Page Layout

The wallet, in the context of the page layout:

NEX-FS07-1: shall be available for authenticated users within the application menu.

NEX-FS07-2: shall provide the user with navigation to the following pages:

  • the app dashboard

  • the market page

  • the user profile page

  • the user wallet

  • the app settings

  • the blockchain blocks page (if advanced mode is active)

  • the voting (GPOS) page (if advanced mode is active)

NEX-FS07-3: shall provide menus for displaying the following components:

  • user’s assets list

  • wallet send function

  • wallet receive function

NEX-FS07-4: shall use graphic design elements which adhere to Peerplays branding guidelines.

NEX-FS07-5: shall use graphic design elements which remain consistent throughout the app.

NEX-FS07-6: shall allow user input in relevant form fields to perform the functions of the related component.

NEX-FS07-7: shall perform input field validation and inform the user of acceptable form inputs.

NEX-FS07-8: shall provide the user with help and/or hint text to explain available options and input fields.

NEX-FS07-9: shall provide unobtrusive help text to the user about each function. This may take any of the following forms:

  • tooltip when hovering an element (button, title, etc.)

  • pop-up when clicking an element (icon, link, etc.)

  • expanding panels or menus with help text

  • one time tutorial flow for new users

  • similar techniques for revealing content

NEX-FS07-10: shall indicate to the user when content is loading and avoid showing incorrect, outdated, or blank content.

NEX-FS07-11: displayed lists shall provide pagination controls for large record sets requiring multiple pages.

NEX-FS07-12: displayed lists shall display information about their records in a tabular format.

NEX-FS07-13: displayed lists shall display a header row with column names.

NEX-FS07-14: displayed lists shall provide controls in the header to sort columns based on their values, if appropriate.

NEX-FS07-15: displayed lists shall display columns of a width appropriate for their values.

NEX-FS07-16: displayed lists shall highlight row which the user is hovering on.

NEX-FS07-17: displayed lists shall highlight row which the user has clicked on (focused).

8.2. Assets List

The wallet, in the context of the assets list:

NEX-FS07-18: shall display two lists of the user’s available assets:

  • coins and tokens

  • NFTs

8.2.1. coins and tokens list

NEX-FS07-19: shall include the following fields for each available asset:

  • asset symbol

  • asset name

  • amount available

  • amount in orders

  • total amount owned (available + in orders)

  • total value

  • actions

    • send

    • receive

NEX-FS07-20: shall display the total value in the user’s preferred currency (app settings).

NEX-FS07-21: shall, upon activating the “send” action, navigate to the wallet send function and populate the asset selection with the corresponding asset.

NEX-FS07-22: shall, upon activating the “receive” action, navigate to the wallet receive function and populate the asset selection with the corresponding asset.

NEX-FS07-23: shall display the total value of all assets (excluding NFTs) in the user’s wallet in the user’s preferred currency (app settings).

NEX-FS07-24: shall allow the user to sort the list by its data fields.

NEX-FS07-25: shall allow the user to filter the list by its data fields.

NEX-FS07-26: shall allow the user to open and close the list (expandable menu).

NEX-FS07-27: shall allow the user to download a copy of the list, as it has been filtered and sorted, as either a PDF file or CSV file.

8.2.2. NFTs list

NEX-FS07-28: shall include the following fields for each available asset:

  • NFT image

  • NFT name

  • creator name

  • collection name

  • last price

  • best offer

  • quantity

  • total value

  • on sale (true/false)

NEX-FS07-29: shall display the total value in the user’s preferred currency (app settings).

NEX-FS07-30: shall display the total value of all assets (excluding coins and tokens) in the user’s wallet in the user’s preferred currency (app settings).

NEX-FS07-31: shall allow the user to sort the list by its data fields.

NEX-FS07-32: shall allow the user to filter the list by its data fields.

NEX-FS07-33: shall allow the user to open and close the list (expandable menu).

NEX-FS07-34: shall allow the user to download a copy of the list, as it has been filtered and sorted, as either a PDF file or CSV file.

NEX-FS07-35: shall display a link to the Peerplays NFT Store.

NEX-FS07-36: shall make the NFT name field link to the corresponding NFT detail page within the Peerplays NFT Store.

8.3. Send Function

The wallet, in the context of the send function:

NEX-FS07-37: shall provide the following user input controls:

  • asset to send (drop down)

  • amount to send (numeric field)

  • convenience slider control for sending percentages of available balance (See NEX-FS07-29)

  • recipient account (or recipient address for BTC)

  • blockchain (drop down)

  • memo (text field, optional)

  • “Send” button to initiate the send function

  • “clear form” function

NEX-FS07-38: shall provide convenience controls to the user which allows them to easily adjust the send amount automatically to any percentage of their asset available to send. For example, supply a slider user input control which allows input from 0% to 100% of their available asset balance. This slider could even have nodes that allow easy selection of 0%, 25%, 50%, 75%, and 100%, but still allows any whole number percentage in between.

NEX-FS07-39: shall display the following information relevant to the send transaction:

  • amount of selected asset available to send

  • estimated fees

  • transaction total

  • estimated confirmation time (length of time)

NEX-FS07-40: shall allow the selection of any asset for which the user has an available balance.

NEX-FS07-41: shall, upon selecting an asset, update the form controls in the following ways:

  • (PPY selected) blockchain selection set to Peerplays and disabled.

  • (BTC selected and Bitcoin blockchain selected) memo is disabled.

  • (HIVE selected and Hive blockchain selected) memo is disabled.

NEX-FS07-42: shall, upon selecting the “clear form” function, clear the form back to its initial state.

NEX-FS07-43: shall, when necessary, indicate to the user that the Peerplays network is not available for transactions.

NEX-FS07-44: shall, once initiated by the user, summarize the send and ask the user for their confirmation to proceed.

NEX-FS07-45: shall, once initiated or confirmed by the user, indicate send is in process. (loading spinner)

NEX-FS07-46: shall, once confirmed by the user, submit the transaction to the Peerplays network.

NEX-FS07-47: shall indicate to the user if the send was successfully (or unsuccessfully) initiated. This could be indicated with a message modal, UI elements like color and icons, etc.

NEX-FS07-48: shall, if the send initiation process fails, explain to the user why the process failed and steps the user can take to fix the issue or learn more about the issue.

NEX-FS07-49: shall, upon successful send initiation, update the user’s asset balances.

NEX-FS07-50: shall display a list of the user’s available assets (excluding NFTs).

NEX-FS07-51: shall include the following fields for each available asset:

  • asset symbol

  • asset name

  • amount available (to send)

  • amount in orders

  • total amount owned (available + in orders)

  • total value

  • actions

    • select this asset

NEX-FS07-52: shall display the total value in the user’s preferred currency (app settings).

NEX-FS07-53: shall, upon activating the “select this asset” action, populate the asset selection with the corresponding asset.

NEX-FS07-54: shall allow the user to sort the list by its data fields.

NEX-FS07-55: shall allow the user to filter the list by its data fields.

NEX-FS07-56: shall allow the user to open and close the list (expandable menu).

8.4. Receive Function

The wallet, in the context of the receive function:

NEX-FS07-57: shall provide the following user input controls:

  • asset to receive (drop down)

NEX-FS07-58: shall allow the selection of any asset which can be received on the Peerplays network.

NEX-FS07-59: shall, upon selecting an asset, update the form controls in the following ways:

  • (PPY selected) display help text for receiving PPY to a Peerplays account.

  • (BTC selected) display help text for receiving BTC to a Peerplays account.

  • (HIVE selected) display help text for receiving HIVE to a Peerplays account.

NEX-FS07-60: shall, if BTC is the selected asset, check if the user has a BTC sidechain address which is associated with their account. If not, display a “Generate Bitcoin Address” function. If so, display the BTC deposit address with a function to copy the address to the user’s clipboard.

NEX-FS07-61: shall, when generating a new BTC address, generate a new BTC deposit and withdraw address and associate them with the user’s Peerplays account.

NEX-FS07-62: shall, when generating a new BTC address, display the newly generated BTC deposit address with a function to copy the address to the user’s clipboard.

NEX-FS07-63: shall, when generating a new BTC address, display a link to download the BTC deposit and withdraw address private keys and a warning for the user to do so.

NEX-FS07-64: shall, when necessary, indicate to the user that the Peerplays network is not available for transactions.

NEX-FS07-65: shall display a list of the user’s available assets (excluding NFTs).

NEX-FS07-66: shall include the following fields for each available asset:

  • asset symbol

  • asset name

  • amount available (to send)

  • amount in orders

  • total amount owned (available + in orders)

  • total value

  • actions

    • select this asset

NEX-FS07-67: shall display the total value in the user’s preferred currency (app settings).

NEX-FS07-68: shall, upon activating the “select this asset” action, populate the asset selection with the corresponding asset.

NEX-FS07-69: shall allow the user to sort the list by its data fields.

NEX-FS07-70: shall allow the user to filter the list by its data fields.

NEX-FS07-71: shall allow the user to open and close the list (expandable menu).

9. Appendix A: Glossary

Term
Meaning

RS

Requirements Specification

FS

Functional Specification

UI

User Interface

PreviousNEX-FS06 Profile PageNextNEX-FS08 App Settings

Last updated 2 years ago

Was this helpful?

DEX Hifi - All tabs with Market