Skip to content
This repository was archived by the owner on Jun 10, 2026. It is now read-only.

Transaction decoding v2: design decisions

Sasha Postnikova edited this page Nov 6, 2020 · 5 revisions

Links
1 - Owners don’t know what they’re signing 📆

Mobile
Data decoding v2 - Special handling for multisends #350 🐱
Data decoding v3 - More info in Multisends #351 🐱
Data decoding v2 and v3 - Special handling for multisends 📆
Show decoded function & params on tx details v1 #329 🐱
Multisend Miro board 📌

Web
Decoding Transaction Information in Tx List #882 🐱
Decode multiSend tx details #1106 🐱

Platform: web, mobile.

App version: Android 2.3.0, iOS 2.5.0, web 2.9.0.

Which problem do we solve?
Owners don’t know what they’re signing (see 1 - Owners don’t know what they’re signing 📆). Transaction data is cryptic.

How does the feature fit into the product and larger product decisions?
This feature adds special handling for multisend transactions. Mobile and web are not quite aligned on this. Web already decodes multisend since v2.9.0.

What are the metrics and KPIs we will be measuring for this feature?
See Data decoding v2 - Special handling for multisends #350 🐱

Is there user research or quantitative data informing decisions made here?
Data from discovery interviews Q1 2020 💡
Insights from discovery interviews Q1 2020 💡
Roadmap Q3/Q4 2020 📆

Screens

1. Web – transaction details

2. Mobile – multisend transaction details

3. Non-multisend action details

Changes after v1: add data on top of screen for every non-multisend action.

Main design decisions

1. Show ‘Action 1, Action 2, ...’ (like web interface does) or show identicons, addresses and function names in the actions list.

Web interface shows ‘Action 1, Action 2, ...’ and function names in parentheses.

On mobile we decided to reuse existing elements from transactions list because less additional implementation is needed for this.

2. Show transaction type in the actions list or not

There could be different transaction types in the Multisend actions list.

We removed transaction type icon in the actions list in v2 for simplicity. Don’t show token and amount in case of transfers, only show function called.
Web is not aligned on this and shows custom tx icon for all actions, doesn’t show identicons.

3. Show ‘0 ETH’ header everywhere, for every multisend action

  • It’s simpler (same element for all action types)
  • Amount could be non-zero
  • It could be ERC-20 token in the future (in v2 it can only be ETH transfer)

4. What to show when method is not available

Show ‘Action #’ in the list. When there's no method, there will be no parameters as well. Show undecoded data on details screen in this case.

5. Always show undecoded data on multisend action details screen

Because sometimes parameters are unavailable.

6. Which identicons to show

For v2 the identicon in the list should be the ‘to’ identicon of the inner transaction.

In case of ‘fallback handler’ or ‘mastercopy’ actions the identicon is also the ‘to’ from action details. The address to which 0 ETH was sent is the recipient of actions ‘change mastercopy’ and ‘set fallback handler’.
In the normal tx list it’s different, we show identicons of new mastercopy and fallback handler in the list.

7. Nested multisends

Decode only 1 level.

8. Non-multisend action details: show undecoded data

Show undecoded data on top of non-multisend action details screen.

  • Because sometimes parameters are unavailable.

User tests – insights, changes after user tests

tbd

Changes after release, metrics

tbd

Clone this wiki locally