-
Notifications
You must be signed in to change notification settings - Fork 4
Transaction decoding v1: design decisions
Links
1 - Owners don’t know what they’re signing 📆
Mobile
Show decoded function & params on tx details v1 #329 🐱
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 📆
Multisend Miro board 📌
Web
Transaction context #244 🐱
Transaction context #338 🐱
Decoding Transaction Information in Tx List #882 🐱
Decode multiSend tx details #1106 🐱
Add "Action" details in transaction list #1134 🐱
Platform: mobile, web
App version: Android 2.2.0, web v2.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 changes the way data is displayed in contract interactions and custom transactions. Before we displayed hex data without decoding (on mobile - with amount of bytes):
This feature allows to show function names and parameters in a human readable way. This is the first step. Web and mobile are not quite aligned on this. Multisend is not included in v1.
What are the metrics and KPIs we will be measuring for this feature?
Track screen ‘Action details’.
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 📆
We call it Action, because web interface and Etherscan do so, and there was no negative feedback.
We chose the separate screen instead of expandable view because it’s less crowded. The same structure will be used for multisend.
Possible parameter types are: address, integer, boolean, hex data, array (of addresses, integers, boolean, hex data), empty array, nested array. We use simple lists and reuse existing layouts for addresses.
Show action name (safeTransferFrom) in the nav bar instead of ‘Action details’ because it looks cleaner and no additional work to implement indentation required.
Show ‘empty’ because it can’t be null. If empty string is returned then that's “shown”.
Show ‘empty’.
Limit nesting levels to 10. Strings or values are not cut-off or ellipsized, they’re displayed in full (squeezed, in a very deep level of nesting).
tbd
V2 added special decoding for multisends (see Transaction decoding v2: design decisions).