-
Notifications
You must be signed in to change notification settings - Fork 4
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Transaction design for signing messages. #134
Comments
Signing simple string: https://invis.io/FBPH0OFQ57P#/350856184_01_Sign_ Signing json like message, message can scroll: https://invis.io/FBPH0OFQ57P#/350856192_02_Sign_Json_ |
I think as a v1 this design is enough. We need also that screen where we are waiting for the signature from the extension. (Where the push can be re-send etc.) @rmeissner @sche @DmitryBespalov What do you think about these basic versions? @germartinez this is the ticket where we would create also the extension screens. :) |
would like to see an android version of this ;) since the sign button will be at the bottom (I assume) |
Just for clearification:
Else I think this looks clean and easy to understand 😄 |
I also agree that seeing some real data example would help. For the first iteration, I don't see big issues otherwise. |
UX sync:
|
Changes after UX sync: Start screen: https://invis.io/FBPH0OFQ57P#/355143691_01_Signature_Request_ Confirmed by browser extension: https://invis.io/FBPH0OFQ57P#/355143693_03_Confirmed_ Rejected by browser extension: https://invis.io/FBPH0OFQ57P#/355143694_04_Rejected_ Without the extension: https://invis.io/FBPH0OFQ57P#/355143695_05_Without_Browser_Extension_ Browser extension: Middle part should scroll. |
@posthnikova for the smaller screens I would actually reduce the bottom sticky part to just a toolbar (64-point height) and put button (s) in there, that would increase the scrollable content height. Also, for that screen size, the header part takes ~30% of the height, I think it could be compressed - the most important thing on this screen is the content to be signed, that's why I think we should increase the space for it. Regarding colorization of the message itself: that looks like a lot of work to me, I would reduce to just 2 colors: 1) is color of the keys 2) color of the values (string, numbers, and so on). Making just the colon ':' different color is making things more complicated. @tschubotz do we allow to select the text in the middle part? I assume not. |
In terms of the middle part scrolling, I think we should prevent that. As the area you can actually scroll is tiny compared to the rest of the view. Couple of ways I see we could improve this:
If real estate is still a problem:
|
No need to be able to select something.
I also agree, just the colon in red add no real value. We also still need the inverse flow, i.e. (1) signature request is triggered by extension and (2) phone confirms. Essentially it's this flow https://zpl.io/awrBg3M + the submission screen on the phone. (Potentially a version of this screen: https://zpl.io/bWq5JqM) |
Why do we need coloring at all? Maybe we should display the data differently. It makes no sense to display it as JSON, since that is just the format how it is transmitted. Maybe we should use proper labels and text fields to display the data. With the current format there is a lot of unnecessary information (duplicate For me it makes no sense to put effort into proper json syntax highlighting if we gonna remove it soon anyways, that's why I would probably rather go directly to a version where the data is nicely formatted/ displayed. Note: |
Also what about not making the buttons sticky and forcing the user to scroll through the whole message? |
I'd not be in favor of this, as the upfront available actions (CANCEL / SIGN) aren't initially visible. In terms of putting effort in formatting/stylizing JSON, I agree with @rmeissner that we need to be sure if we'll replace it soon or not. What data can we standardize in specifically formatted labels? Perhaps going forward we should explore other options to display this specifically on mobile. |
While I think that canceling from the get go is fine, this is security critical data, signing it without knowing its content might be harmfull (e.g. cause loss of funds) |
UX sync:
|
What data should we show? (e.g. if a Safe signs a Safe transaction and we don't show the gasPrice, this allows stealing of funds) |
The data to be signed :) |
Just checked EIP712 again. Essentially, the "Domain" contains the info about the dapps. We have the following attributes we could display, besides the actual data:
I think name and verifying contract are 2 things we could display upfront. And then there is a button to show the entire thing to sign. (cf. Metamask - No clue how they figure out the "url", it's not part of the EIP) |
Concerning the URL: Richard says it's from the page that triggered the popup, so that's something we can definitely also display. |
New version is ready. What's been done:
Signature request: https://invis.io/FBPH0OFQ57P#/356316626_01_Signature_Request_
There are two flows: from mobile to extension and from extension to mobile: Full message in extension looks like this: |
lgtm |
👍 |
Some comments:
|
New version https://invis.io/FBPH0OFQ57P#/358454862_Divider What's been done:
There are two flows: from mobile to extension and from extension to mobile: Full message in extension: |
Small changes: https://invis.io/FBPH0OFQ57P#/358454862_Divider |
@biocom We need android for this |
lgtm |
lgtm2 :) |
Hereby my proposal for the Android screens:
Yesterday I added a suggestion to relocate the 2FA card as a bottom sheet overlay. I feel this solves for a lot of spacing issues. The ticket with a visual suggestion: #186 |
Added the Android screens to Zeplin. Signature request -> https://zpl.io/agQKm10
View full message -> https://zpl.io/2j5mqKO |
@posthnikova Noticed a subtle difference: iOS -----> https://zpl.io/aNDEx84 -> Given it's a signature request and technically not a transaction, I think the Android text is factually the correct one? |
@biocom You're right, on the other screens it's also called request. Corrected https://zpl.io/aNDEx84 |
Background
Task / details
Examples from Metamask:
EIP712 typed signed data:
(from https://cdn-images-1.medium.com/max/800/0*Xk26NjDpM8FURwdp)
Diceether:
Airswap:
Idex:
The text was updated successfully, but these errors were encountered: