Skip to content

[Bug]: change in behavior of personal_sign on Ledger, in v10.31.0 #19568

Closed
@firnprotocol

Description

Describe the bug

as of v10.31.0, but not for versions strictly before it, there was a change in the output of personal_sign, which takes place only on Ledger devices.

prior to the upgrade, the final v byte of the signature was either 0x00 or 0x01. now, it is either 0x1b or 0x1c.

this appears to bring the behavior on Ledger in line with for regular EOAs, which are either 0x1b or 0x1c both before and after v10.31.0.

can someone please explain this? thank you very much.

Steps to reproduce

go to https://etherscan.io/verifiedSignatures#. click "Sign Message". follow the steps to log in using MetaMask. enter an arbitrary string for your message.

observe the last byte (i.e., last two hexits) of the raw signature output. if you're signing using a Ledger, it will be either 0x00 or 0x01 pre-upgrade, and either 0x1b or 0x1c post. for a non-ledger account, it'll be either 0x1b or 0x1c both pre-and post.

Error messages or log output

No response

Version

v10.31.0

Build type

None

Browser

Chrome

Operating system

MacOS

Hardware wallet

Ledger

Additional context

No response

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions