Parity-ethereum: meta: web E2E Dapp MVP

Created on 4 Aug 2016  路  4Comments  路  Source: openethereum/parity-ethereum

Meta tracking for web E2E Dapp MVP -

infrastructure:

First run:

  • [x] User familiarisation, ex. walkme 'this is what is available'
  • [x] Account creation & naming

Account creation

  • [x] Account creation (shared with first-up)
  • [x] normal creation (as availble in first-run setup)
  • [x] geth import
  • [x] import all geth accounts (RPCs - get list of addr, import list of addr, show balances available)
  • [x] pre-sale import
  • [x] Refresh IdentityIcons so user can pick from more samples
  • [x] Allow password hint to be supplied, stored as metadata
  • [x] Error handling, display of errors via .catch
  • [x] Dialog needs a cancel on steps before actual create is completed
  • [x] Import doesn't clear phrase correctly, i.e. it shows up
  • [x] Required fields & validation error handling on inputs
  • [x] Some geth json files crash Parity (normal import works, via RPC not), send to @NikVolf to investigate

Account list

  • [x] Filter where uuid != null (when null, part of address-book)
  • summary/sum total of all available balances
  • [x] IdentityIcon should be based on lowercase (not mixed-case) addresses
  • [x] Poll accounts to determine if any has been added

Accounts details, e.g. funds, tokens https://github.com/ethereum/EIPs/issues/20 (???):

  • [x] Simple account-to-account transfers
  • [x] Address book for external addresses
  • [x] Transaction views, ex. blockchain explorer-like in/out
  • [ ] Account recovery via recovery phrase
  • [x] When no name is available, show as 'Unnamed'
  • [x] transaction list shows contract creations horribly
  • [x] alignment of the non-icon items is off and doesn't match up
  • [x] display address in the same was as we do on the summary/list page (simplify)
  • [x] display the number of outgoing transactions for the account (more, less empty)
  • [x] display testnet transactions for testnet, live for live
  • [x] Named accounts should carry their names across to their transaction history page.
  • [x] editing the account name is exceptionally laggy
  • [ ] backup functionality

Address book

  • [x] separate section, re-use what we have from accounts
  • [ ] delete functionality (could do with meta or real, i.e. rpc)
  • [ ] backup functionality
  • [ ] show description of addresses somewhere (summary, real page)
  • [ ] allow editing of description (once displayed) in addition to name

Balances

  • [x] display balances via "chips" (like in GAVcoin), auto-sizing based on values
  • [x] display "no balances available" when there are nothing (clean-up the UI gaps)

Transact and sending

  • [ ] eth.gasPriceStatistics - curve based on availability
  • [x] show current/default gasPrice
  • [x] data, maybe expand section to include - hide gas & gasPrice by default in this section
  • [x] up gas price to 30,000/calculated
  • [x] progress bar, final has link to explorer txid
  • [x] error handling, .catch errors (as per import, generic)
  • [x] selection of address from internal, address book or pasted
  • [x] use only sendTransaction with the signer
  • [ ] search in actual address box (by name)
  • [x] IdentityIcons everywhere
  • [x] change eth_sendTransaction to eth_postTransaction
  • [x] send all tokens doesn't work, deducts balance
  • [x] extraData manual input doesn't seem to be operational
  • [x] selected balance type should be visible
  • [ ] confirmation dialog, i.e. "do you want to send this transaction to the signer confirmation queue"
  • [x] display from account address, name, icon somewhere in header
  • [x] --chain testnet doesn't show up as test transactions
  • [ ] adding data drops the gas to 0 (estimateGas returns 0)

Tokens

  • [x] display token balances on all pages
  • [x] transfer tokens to another recipient

Contracts (developer-tool, not for general public, they have dapps)

  • [ ] allow state of dapps to be queries
  • [ ] allow ability to call functions on dapps
  • [ ] view events on dapps
  • [ ] state expansion
  • [ ] add contracts, remove them, watch them

Signer

  • [x] pull in signer, get operational as part of structure
  • [x] align styling with the overall theme
  • [ ] throw out web3 api, bring in our api
  • [ ] blacklist, whitelists, graylists, time limits
  • [ ] notifications via extension to the user - different icons (extension)
  • [x] sender, recipient (named) and amount of eth should always be displayed
  • [ ] recipient address needs to be checked in a couple of places so we can do some semantic analysis. these could be contracts (like the token reg) or local (like a list of smart wallets owned by the user). If the recipient is 'recognised' then we can figure out what the transaction is doing and display that underneath. MVP is recognising a token transfer.
  • [x] re-use main components such as Container to get a consistent L&F
  • [x] split pending & finished into 2 Containers, pending first
  • [x] order by latest (greatest id) on-top
  • [x] offline status never recovers back into online status
  • [ ] enumerate or timestamp when they arrive in the signer
  • [ ] bulk approve all from an account? (not sure about that one... maybe just have a think about how it would work as certain dapp functions will need multiple transactions sending)
  • [x] remove the toastr and replace it with the error handler
  • [x] on unlock errors, since toastr removal, submit button state doesn't recover
  • [ ] password hint to be displayed (if available)
  • [ ] keep track of attempts, cool-down after 3

Topbar

  • [x] smaller injectable by client pages
  • [x] accessible parity application (wallet, apps, etc.)
  • [x] quick nav to embedded signer (via signer fingerprint icon)
  • [ ] status, network & connection

Apps

  • [x] seperate section
  • [ ] pull in apps from Parity, not hardcoded
  • [ ] backup of list
  • [ ] allow whitelist of addresses to be exposed per app

GAVcoin

  • [x] completely separate index.html just using the exposed APIs
  • [x] proper UI for the app, nothing "generic" or "developer-like"
  • [x] buy in functionality
  • [x] transfer functionality
  • [ ] refund functionality
  • [ ] event filtering based on parameters & types specified
  • [x] only allow selection of transaction accounts with >0 balance
  • [x] check amounts sent to account balance (> balance == error)
  • [ ] paged event history load (infinite scrolling, load in block chunks?)
  • [x] address selection only has our accounts when sending (uuid !== null)
  • [x] dropdown/input combination for to address in transfer
  • [x] signer still redirects to old 8180 link
  • [ ] popups are not scrollable, doesn't work on small screens
  • [ ] it should check for total <= available, show error if not in-range
  • [ ] to should not only display accounts with only GAV, rather all available (+ address)

Tokenreg

  • [x] implement skeleton
  • [ ] ...

Registry

  • [x] implement skeleton
  • [ ] allow the queries of registered addresses by name
  • [ ] register an address
  • [ ] ...

Status page

  • [x] pull in status page
  • [ ] throw out web3 api, bring in our api
  • [x] update to styling to fit in
  • [ ] adapt UI to fit in general structures
  • [ ] use own components where applicable
  • [x] remove the toastr and replace it with the error handler
  • [x] remove non-standard styles & components used on Status, replace with material-ui
  • [x] add DebugPage (styled properly)
  • [ ] add RpcPage & RpcDocs
  • [ ] no duplication in calls, remove extra calls duplicated elsewhere

Potential, UX extensions

  • [ ] JS console (real power user, along with status-like interactions) through parity.js
  • [ ] Notifier for account state

    • [ ] Notifier on actions

    • [ ] Rich actions view (normal & power, depending on Dapp)

  • [ ] Natspec & rich state diff

General

  • [x] default Chrome monospace font sucks
  • [x] Tooltips should not show again when we are actually done
  • [x] Update application logo, "<> PARITY" should do the trick
  • [x] error handling of api via .catch everywhere
  • [x] application topbar doesn't show the correct tab when refreshing (selected tab based on url on initial set)
  • [x] default font should be 300 weight, don't import others
  • [x] show the actual network we are corrected to, along with connection status (top)
  • [ ] move all validation to a central location along with errors (services/validation)
  • [ ] the supplied address is an invalid network address should be augmented with: the supplied address has no checksum formatting & the supplied address has failed the checksum formatting (validation)
  • [x] white input boxes (unstyled) appear, cleanup
  • [x] tooltips do not show up at the correct locations, move from %-based

General availability, 1 Nov 2016

F8-enhancement 馃帄

All 4 comments

[ EDIT/@jacogr - Added all issues to the list above to allow checking them off, a couple addressed, a number remaining ]

NITPICKS FOR TODAY(chrome & firefox):

  • Named accounts do not carry their names across to their transaction history page.
  • White input boxes still visible in accounts detail page and send transaction window.
  • extradata manual input doesn't work?
  • not seeing testnet transactions...

Wallet App UI wishlist:

  1. Better errors for addresses. The below:
    the supplied address is an invalid network address
    should be augmented with:
    the supplied address has no checksum formatting &
    the supplied address has failed the checksum formatting
  2. in Transfer details sending account should be visible and upon choosing a token the balance should be displayed.
  3. confirm dialogue on send which asks "do you wish to send this transaction to the trusted signer queue"

Signer UI (not sure how far you've thought about this)

  1. sender, recipient and amount of eth should always be displayed
  2. recipient address needs to be checked in a couple of places so we can do some semantic analysis. these could be contracts (like the token reg) or local (like a list of smart wallets owned by the user)
  3. if the recipient is 'recognised' then we can figure out what the transaction is doing and display that underneath. MVP is recognising a token transfer.

[ EDIT/@jacogr - Added all issues to the list above to allow checking them off ]

NITPICKS/Bugs:
Adding transaction data reduces gas to zero (deliberate?)
Occasionally losing Gavcoin...returns on refresh
I am not seeing testnet transactions even though that feature is ticked off above?

Signer thoughts:

Now is probably the time to think about how we handle transaction records which have been sent by this instance of parity... Mist keeps them in a separate db so users can view their history. I don't think we will want to rely entirely on getting info from etherscan (or something better) so its definitely worth doing.
UI:

  1. enumerate or timestamp when they arrive in the signer
  2. bulk approve all from an account? (not sure about that one... maybe just have a think about how it would work as certain dapp functions will need multiple transactions sending)

[ EDIT/@jacogr - Added all issues to the list above, except the first 2 - already fixed on Thu ]

NITPICKS:

Address book: Optional contract description:

  • field is not formatted correctly (textbox is not alligned)
  • should be 'an expanded' not 'a expanded'
  • Where does this information get used?

Gavcoin:

  • from and to drop down do not include the whole address book, only the accounts with gavcoins. This doesnt make sense for the 'to' drop down - but we probably need to think about what information about accounts we disclose to dapps.

Signer:

  • Where does password hint come into this?
  • should we keep track of attempts and reject after 3?

Wishlist:

  • delete button for address book
  • backup button (wallets, transaction history, address book, apps)

Closing. this meta issue became a bit unwieldily, split out all the issues as per their relevant sections into separate/smaller meta-issues.

Was this page helpful?
0 / 5 - 0 ratings

Related issues

famfamfam picture famfamfam  路  3Comments

jurijbajzelj picture jurijbajzelj  路  3Comments

gituser picture gituser  路  4Comments

mr-older picture mr-older  路  3Comments

vmenond picture vmenond  路  3Comments