Week 1 HoloFuel UI Call Notes:

NB: The button wording info is near the bottom. :D


Based on the UI https://bitbucket.org/88media/fungi-wallet
Needs Clear license!!!
(license ok)


API Calls:


  • get_ledger_state() > Balance, Limit (This info will be included in the list_transactions call)

  • list_pending() display first

    • Returns all requests, proposals,refunds that may require user interaction.
  • list_transactions( details of filtering, pagination, etc + Balance, limit info, etc.) :

    • (state as Enum, since as Date, until as Date) > PagingData (for infinite scroll + the actual data, fitting 64Kb)
  • request_payment( Some(Spender), Transaction )

    • Could make the "tx/request" Request not have a Spender hash and not make a Link, and use the QR code w/ commit hash and Transaction to communicate w/ Spender.

TODO
(on transaction detail page )

  • receive_payment (Proposal as JSON) > automatic if the Proposal has a linked Request (from me)

  • *reject_payment (Proposal as JSON) > automatic if the spender is in my Blacklist

  • pay_request (Request) > always manual

  • *decline_request (Request) > automatic if the recipient is in my Blacklist (warrant for being fraudulent, spammer etc.)

Later Functionality:

  • Pull down to refresh
  • Infinite scroll

Request Fuel


  1. Request button -> Request -> propose_request (Proposal / Pay button) -> Proposal -> receive_payment (automatic)
  2. Request button -> Request -> decline_request (Decline button)

Send Fuel


  1. Send button -> Proposal -> receive_payment (Receive button)
  2. Send button -> Proposal -> reject_payment (Reject button)

General HF hApp Questions

Q. How to specify which Hash are you using (Deepkey? Holo Vault / Personas?)

Q. Bridging? Think about this on open alpha?

Q. How to display account names?

  • get %AGENT_ID from container?
  • commit a nickname anchor (easier)
  • get from Holo Vault / Personas?

Initial Holo fuel:

  • "Generous bob" sender - auto-approve requests?
    • Holo run agent (fixed Hash?)
    • Max 3 requests per day?
    • Works like a bootstrap node
  • Credit limits (of zero initially)

Not doing: (for Closed Alpha)

  • Service Logs Bridging?
  • HOT Swap
  • Partial sends
  • Fees
  • Refunds
  • Advanced error scenarios
  • Blacklists and Warrants
  • Migrating data away from closed alpha

Holofuel UI-View Summary

View Points:

  1. Transactor / Transactee > Whomever I'm not
  2. Whole transaction row active link to the detail view of transaction
  3. Sortable table by column
  4. incoming/requested api call to populate tables

Main Table APIS:
1.) Paginate for past tranactions: list_transactions(since_date) that will include the ledger_state (Not first version)

Pending Proposals/Requests Table (Show above the main table - ??)

  1. Sorted by most pressing deadline
  2. Show expiration date/time

Example calls:

const list_tx = alice.call("transactions", "main", "list_transactions", {})
  console.log("***DEBUG***: list_tx: " + JSON.stringify( list_tx ))
  t.isEquivalent( list_tx.Ok.transactions.length, 1 )
  for ( var i = 0; i < list_tx.Ok.transactions.length; ++i ) {
    t.isEquivalent( list_tx.Ok.transactions[i].state, "outgoing proposed" )
  }

Main UI : Tx Overview

Balance (+ credit limit)

Requiring attention (list):
++ list_requests() > Accept, Reject
++ list_proposals() > Accept, Reject (if not tied to a Request by me)
|| Expires in, From / Direction, Value, Human interaction buttons

Transaction history (list):
++ list_transactions()
||Date, From, Direction (in/out), Value, Status

Access to Requesting/Proposing Fuel > Lead to another page?
(Request_button) (Send_button)

Detail Screen

  • Date
  • Receiver / Sender (whichever is not you) > Counterparty
  • Amount
  • Notes / Description

Buttons:

  • Recipient of funds (incoming):

    • requested > (Review), (Decline)
    • rejected > (Review)
    • accepted > (Return)
    • returned > (Review)
    • completed >(Review)
    • refunded > (Review)
    • error > (REPORT BUG?)
  • Spender of funds (outgoing):

    • approved > (Propose/Request > determine), (Decline)
    • declined > (Review)
    • completed > (Refund)(Review)
    • recovered > (Review)
    • error > (REPORT BUG?)

Note: Propose === Pay fuel


NB: Reject, Decline, Return / Refund and Recover are NOT yet created in DNA


(Closed Alpha)

Transaction State Spender Actions Recipient Actions
Requested (Receive) (Reject)
Accepted / Approved (Review Tx)(Return)
Proposed / Offered (Receive) (Reject)
Completed (Refund) (Review Tx)
Error (REPORT) (REPORT)
ALL OTHER (no buttons) (no buttons)
Select a repo