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:
```JS
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) |