Skip to content

How should transactions be sorted

Andrey Scherbovich edited this page Nov 4, 2020 · 2 revisions

Things to consider:

  • Txs have a nonce (Theoretically propose txs can have the same nonce)
  • Mined txs have an executed timestamp
  • Txs have a "created" timestamp (when they were created in our backend)
  • Usually txs should have a created timestamp <= executed timestamp, but that's not always true (if backend doesn't notice it in time)
  • Incoming transactions don’t have a nonce, just an execution date
  • Cancelled transactions don’t have an executed timestamp but are also not waiting for confirmations anymore.
  • Metamask separates pending and history.
    • Pending is sorted by nonce, ascending
    • History is sorted by nonce, descending
  • Transactions states

Decision

  • Clearly separate txs that are waiting for confirmations, which are pending and those that have been executed or cancelled.
  • Sections for each of those types: Queue and History
    • Note: Pending transactions can only be seen by the owner submitting it -> not relevant for mobile right now.

Queue

  • Includes: Pending, Waiting for confirmations, waiting for execution (submission)
  • Sorted by nonce, ascending (See reasoning)
    • If 2 txs with same nonce, then put the one with the later creation date higher
  • The txs with the lowest nonce (i.e. the one that can be executed next) is on top

History

  • Executed txs sorted by execution date, descending (Both incoming and outgoing)
  • Add cancelled txs in that list with their created timestamp

Reasons

  • This option won the Slack poll 6:5
  • Metamask does it that way which most current users should be familiar with. We conclude that users are used to it.
  • It brings the most important item to the top which is important on mobile screens.
    • That’s also the reason why Metamask does it that way: The top item is the one that needs attention first (See Slack conversation with Jenny and Dan).
  • We don’t think a user test for this specifically is worth it right now. We would rather have this as part of another future test and then adjust if the other option is vastly preferred.
  • cf. Slack
Clone this wiki locally