UI for sending tokens

  • Drop down menu: Select FROM address from addresses in address book that
    • Are registered as having the private key on file or in a linked wallet.
    • Have tags have match the current context.
    • ... modify the context wrt to tags they are allowed to interact with.
  • Drop down menu: Select TO address from addresses in address book that
    • Have tags have match the current context.
    • ... modify the context wrt to tags they are allowed to interact with.
    • Also option for copy/pasting an address, and/or for adding it to the address book?
  • Drop down menu: asset to be transferred
    • Amount box: lets you specify the amount of the asset (if it's an NFT, that's 0 or 1).
    • Option to send "all at address" (minus fees below).
    • Asset class may default to the "native token" for the current network.
    • Display the equivalent value in the user's unit of tax accounting (e.g. USD, CAD).
  • Information only: fees and totals in both units, in thinner/greyer font
    • Display the expected associated fees and rates in all relevant units (e.g. GAS + ETH/GAS + ETH + USD).
    • Display the total in the relevant units (e.g. ETH + USD).
    • Have tags have match the current context.
  • Step 2: can send multiple assets in one transaction, all on the same network.
    • Call backend API for sending as one tx per asset
    • Call backend API for sending as all assets in one tx (CANCELLED)
  • SEND button: only activated when all data is complete.
  • Talk to the local server wrt getting the data (address book, exchange rate, associated fees, executing the transaction).
  • Single app "send tokens" (not "from A to B"), that allows either single or multi transfers
  • Each asset being transferred has its own box with light separators above and below
  • Each asset has its equivalent price in unit of account
  • There is only one selection for the unit of account, across all assets
  • If there is more than one asset, there is also a total in unit of account.
  • A box to display current available assets: balances in existing asset classes + NFTs
  • Have a precompiled tested version that works checked in
  • Nix build for gloui
  • make it choose first contact and first address automagically
  • disallow sharing addresses by default
  • show balance before amount selection
  • warn if trying to send more than available
  • default icon as per https://www.npmjs.com/package/@metamask/jazzicon
  • if no icon selected for a contact, use the one from the first address
  • let users upload icon
  • send "all" feature
  • recognize the secret key with or without 0x prefix
  • delete contacts or addresses

Moving to other tickets

  • fare: add glow list-asset-classes
  • fare: add the "send all at address" functionality
  • fare: make glow transfer work for ERC20s as well as native tokens.
  • drewc: gh-pages
  • fare: replace CLI calls by a JSON RPC server
  • drewc: move build to GUIX instead of Nix(?)
  • both: negotiate a schema for identities, contacts, addresses, assets, ERCxx contracts, HD wallet key paths, key access via other wallets #150
  • both: UI for negotiating contract terms(?) #105
  • drewc: ERC20 #147 (closed)
  • drewc: multiple assets at once
  • drewc: UI for buy-sig #161 (closed)
  • drewc: UI for rps #162 (closed)
  • drewc: UI for coin-flip #168 (closed)
  • drewc: UI for asset swap #163 (closed)
  • Handle autosave: autosave drafts, but beware that any secrets must remain encrypted even in draft, etc.
  • Hand over GUI to someone else so drewc can focus on gxi-on-browser?
  • Have a single "contact" menu for a contact and all his addresses, in the style of Google Contacts.
  • Have a notion of "unregistered contact file" that you edit, with a "save" button at the end that does the save (and maybe fails and/or offers a merge if changes have been made to the contact by some other activity?)
  • Have a separate field for what name to use for the currency in the currency feed, if any.
  • Have a tag indicating that some networks and/or currencies are for testing, not production
Edited by François-René Rideau