Add risk warning and decoding to message signing#63
Conversation
SignMessagePopup showed only the raw (often hex/base64) payload with no framing, so users blind-signed opaque blobs. Add a prominent risk warning and a best-effort decode that surfaces the human-readable message when the payload is hex/base64. Builds for net10.0-android (0 errors).
There was a problem hiding this comment.
Pull request overview
Adds user-facing anti–blind-signing context to the message signing flow by introducing a prominent risk warning and a best-effort “decoded” view of message payloads (hex/base64) in SignMessagePopup, plus new localized strings to support the UI.
Changes:
- Add localized strings for a sign-message risk warning and a decoded-message label.
- Update
SignMessagePopupUI to show a warning banner and (when available) a decoded message section. - Add best-effort decoding logic in
SignMessagePopup.xaml.csto surface human-readable content.
Reviewed changes
Copilot reviewed 5 out of 6 changed files in this pull request and generated 4 comments.
Show a summary per file
| File | Description |
|---|---|
| OneGateApp/Properties/Strings.resx | Adds new base (English) resource strings for decoded message and risk warning. |
| OneGateApp/Properties/Strings.zh-Hans.resx | Adds Simplified Chinese translations for the new strings. |
| OneGateApp/Properties/Strings.zh-Hant.resx | Adds Traditional Chinese translations for the new strings. |
| OneGateApp/Properties/Strings.Designer.cs | Exposes the new resource keys via strongly-typed properties. |
| OneGateApp/Controls/Popups/SignMessagePopup.xaml | Adds the warning banner and conditional decoded-message UI section. |
| OneGateApp/Controls/Popups/SignMessagePopup.xaml.cs | Implements best-effort decoding and binds it into the popup view model. |
Files not reviewed (1)
- OneGateApp/Properties/Strings.Designer.cs: Generated file
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
|
Handled the open #63 review threads. Changes:
Validation:
Note:
Screenshots: |
…risk-warning # Conflicts: # OneGateApp/Controls/Popups/SignMessagePopup.xaml
|
Base refresh / conflict-resolution update. Changes pushed to
Validation:
Screenshots are uploaded as GitHub release assets and are not committed to the repository:
Current PR state after push: Known existing warning during build: SQLitePCLRaw NU1903 advisory, unrelated to this merge refresh. |
|
Conflicts |
…risk-warning # Conflicts: # OneGateApp/Properties/Strings.de.resx # OneGateApp/Properties/Strings.es.resx # OneGateApp/Properties/Strings.fr.resx # OneGateApp/Properties/Strings.id.resx # OneGateApp/Properties/Strings.it.resx # OneGateApp/Properties/Strings.ja.resx # OneGateApp/Properties/Strings.ko.resx # OneGateApp/Properties/Strings.nl.resx # OneGateApp/Properties/Strings.pt-BR.resx # OneGateApp/Properties/Strings.ru.resx # OneGateApp/Properties/Strings.tr.resx # OneGateApp/Properties/Strings.vi.resx # OneGateApp/Properties/Strings.zh-Hant.resx
|
Resolved the conflict reported by Erik. What changed in this follow-up:
Validation on branch head
Notes: builds still report existing SQLitePCLRaw NU1903 warnings and existing iOS duplicate asset warnings, with no errors. |
|
Conflicts |
…risk-warning # Conflicts: # OneGateApp/Properties/Strings.Designer.cs # OneGateApp/Properties/Strings.de.resx # OneGateApp/Properties/Strings.es.resx # OneGateApp/Properties/Strings.fr.resx # OneGateApp/Properties/Strings.id.resx # OneGateApp/Properties/Strings.it.resx # OneGateApp/Properties/Strings.ja.resx # OneGateApp/Properties/Strings.ko.resx # OneGateApp/Properties/Strings.nl.resx # OneGateApp/Properties/Strings.pt-BR.resx # OneGateApp/Properties/Strings.resx # OneGateApp/Properties/Strings.ru.resx # OneGateApp/Properties/Strings.tr.resx # OneGateApp/Properties/Strings.vi.resx # OneGateApp/Properties/Strings.zh-Hans.resx # OneGateApp/Properties/Strings.zh-Hant.resx
|
Resolved latest master conflicts. Changes pushed:
Validation:
Notes:
|
What
SignMessagePopupshowed only the raw message payload (often hex/base64) with no risk framing — classic blind-signing. This adds:Notes
SignMessagePopupis touched by no open PR (Add transaction preview v2 #50's transaction-preview work is onSendTransactionPopup, a different popup).