Skip to content

fix(wallet): show plain-text personal_sign messages as text - #1339

Merged
JulesFiliot merged 2 commits into
status-im:developfrom
mmlado:fix/wallet/personal-sign-text
Oct 30, 2026
Merged

JulesFiliot merged 2 commits into
status-im:developfrom
mmlado:fix/wallet/personal-sign-text

Conversation

@mmlado

@mmlado mmlado commented Oct 28, 2026 •

Copy link
Copy Markdown
Contributor

Summary

  • The personal_sign approval view decodes the message only when it is 0x-prefixed hex and shows any other string as UTF-8 text, the same rule the wallet uses when it signs (signMessage in apps/wallet/src/data/api.ts).
  • Adds personalMessageBytes in apps/wallet/src/lib/personal-message.ts, with tests.
  • approval-page.tsx uses it in place of hexToReadableMessage.

Test plan

  • apps/wallet unit tests pass, including the new personal-message.test.ts
  • From a dApp, personal_sign with a plain-text message: the approval popup shows the text as written
  • From a dApp, personal_sign with a hex message: the popup shows the decoded text
  • From a dApp, personal_sign with multi-byte text (héllo 👋): the popup shows it intact
  • Each signature recovers to the signing account over the message as sent

@vercel

vercel Bot commented Oct 28, 2026

Copy link
Copy Markdown

@mmlado is attempting to deploy a commit to the IFT Team on Vercel.

A member of the Team first needs to authorize it.

@status-im-auto

status-im-auto commented Oct 28, 2026 •

Copy link
Copy Markdown
Member

Jenkins Builds

❔ Commit #️⃣ Finished (UTC) Duration Platform Result
❌ 11343de 1 2026-10-28 10:50:15 ~2 min wallet 📄log
❌ 2316ecb 2 2026-10-28 12:16:42 ~1 min wallet 📄log

@github-actions

Copy link
Copy Markdown
Contributor

⚠️ Preview deployment failed

Check the workflow logs for details.

@JulesFiliot

Copy link
Copy Markdown
Collaborator

/ai-review

@github-actions github-actions Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

AI review (claude-opus-5-5 + gpt-6-sol)

The main remaining risk is that binary personal_sign payloads may display as replacement characters rather than in a form the user can identify. Reviewer A flagged this display issue, while Reviewer B found no issues and noted that the displayed bytes match those identified by the helper. The change otherwise appears safe based on the reported tests for hex, plain text, and empty messages.

0 critical, 0 other issue(s) shown (threshold: major).

API usage

Call Model In Cached Out Cost
reviewer-codex gpt-6-sol 3343 0 742 $0.0141
reviewer-claude claude-opus-5-5 5141 0 1031 $0.0412
synthesizer gpt-6-luna 684 0 285 $0.0002

Total ~$0.0555

@JulesFiliot
JulesFiliot self-requested a review October 28, 2026 12:10
@mmlado
mmlado requested a deployment to preview-deploy-approval October 28, 2026 12:14 — with GitHub Actions Waiting
@changeset-bot

changeset-bot Bot commented Oct 28, 2026

Copy link
Copy Markdown

⚠️ No Changeset found

Latest commit: 2316ecb

Merging this PR will not cause a version bump for any packages. If these changes should not result in a new version, you're good to go. If these changes should result in a version bump, you need to add a changeset.

Click here to learn what changesets are, and how to add one.

Click here if you're a maintainer who wants to add a changeset to this PR

@mmlado

mmlado commented Oct 28, 2026

Copy link
Copy Markdown
Contributor Author

Messages whose bytes are not valid UTF-8 now show as 0x hex instead of replacement characters (2316ecb).

@JulesFiliot JulesFiliot left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@mmlado tested and working, thank you for the PR! Let's merge this :shipit:.

@github-project-automation github-project-automation Bot moved this from In Progress to Waiting in Web & User Interfaces Oct 30, 2026
@JulesFiliot
JulesFiliot merged commit 7ece2b9 into status-im:develop Oct 30, 2026
2 of 14 checks passed
@github-project-automation github-project-automation Bot moved this from Waiting to Done in Web & User Interfaces Oct 30, 2026
@mmlado
mmlado deleted the fix/wallet/personal-sign-text branch October 30, 2026 11:35

This branch is waiting to be deployed

1 waiting deployment
preview-deploy-approval — 2316ecb7 Waiting Oct 28, 2026 by mmlado via deploy #1291
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

Status: Done

Development

Successfully merging this pull request may close these issues.

3 participants