Skip to content
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

Error when signing messages using a Ledger-connected wallet #5319

Closed
weijiekoh opened this issue Sep 22, 2018 · 5 comments
Closed

Error when signing messages using a Ledger-connected wallet #5319

weijiekoh opened this issue Sep 22, 2018 · 5 comments
Assignees

Comments

@weijiekoh
Copy link
Contributor

Describe the bug

When you use personal_sign, eth_signTypedData, or eth_signTypedData_v3 with a Ledger Nano S wallet connected to MetaMask, this error shows up in the console:

inpage.js:1 MetaMask - RPC Error: Error: MetaMask Message Signature: TypeError: a._getWalletForAccount is not a function
    at t.<anonymous> (chrome-extension://nkbihfbeogaeaoehlefnkodbefgpgknn/background.js:1:124951)
    at Object.h (chrome-extension://nkbihfbeogaeaoehlefnkodbefgpgknn/background.js:1:607322)
    at chrome-extension://nkbihfbeogaeaoehlefnkodbefgpgknn/background.js:1:608886
    at t.a.emit (chrome-extension://nkbihfbeogaeaoehlefnkodbefgpgknn/background.js:1:608956)
    at t.value (chrome-extension://nkbihfbeogaeaoehlefnkodbefgpgknn/background.js:1:127814)
    at t.value (chrome-extension://nkbihfbeogaeaoehlefnkodbefgpgknn/background.js:1:127537)
    at t.<anonymous> (chrome-extension://nkbihfbeogaeaoehlefnkodbefgpgknn/background.js:1:154138)
    at _ (chrome-extension://nkbihfbeogaeaoehlefnkodbefgpgknn/background.js:1:1592069)
    at Generator._invoke (chrome-extension://nkbihfbeogaeaoehlefnkodbefgpgknn/background.js:1:1591857)
    at Generator.e.(anonymous function) [as next] (chrome-extension://nkbihfbeogaeaoehlefnkodbefgpgknn/background.js:1:1592248)
    at n (chrome-extension://nkbihfbeogaeaoehlefnkodbefgpgknn/background.js:1:413929)
    at chrome-extension://nkbihfbeogaeaoehlefnkodbefgpgknn/background.js:1:414025 
{code: -32603, message: "Error: MetaMask Message Signature: TypeError: a._g…beogaeaoehlefnkodbefgpgknn/background.js:1:414025"}
code: -32603
message: "Error: MetaMask Message Signature: TypeError: a._getWalletForAccount is not a function↵    at t.<anonymous> (chrome-extension://nkbihfbeogaeaoehlefnkodbefgpgknn/background.js:1:124951)↵    at Object.h (chrome-extension://nkbihfbeogaeaoehlefnkodbefgpgknn/background.js:1:607322)↵    at chrome-extension://nkbihfbeogaeaoehlefnkodbefgpgknn/background.js:1:608886↵    at t.a.emit (chrome-extension://nkbihfbeogaeaoehlefnkodbefgpgknn/background.js:1:608956)↵    at t.value (chrome-extension://nkbihfbeogaeaoehlefnkodbefgpgknn/background.js:1:127814)↵    at t.value (chrome-extension://nkbihfbeogaeaoehlefnkodbefgpgknn/background.js:1:127537)↵    at t.<anonymous> (chrome-extension://nkbihfbeogaeaoehlefnkodbefgpgknn/background.js:1:154138)↵    at _ (chrome-extension://nkbihfbeogaeaoehlefnkodbefgpgknn/background.js:1:1592069)↵    at Generator._invoke (chrome-extension://nkbihfbeogaeaoehlefnkodbefgpgknn/background.js:1:1591857)↵    at Generator.e.(anonymous function) [as next] (chrome-extension://nkbihfbeogaeaoehlefnkodbefgpgknn/background.js:1:1592248)↵    at n (chrome-extension://nkbihfbeogaeaoehlefnkodbefgpgknn/background.js:1:413929)↵    at chrome-extension://nkbihfbeogaeaoehlefnkodbefgpgknn/background.js:1:414025"
__proto__: Object

To Reproduce
Steps to reproduce the behavior:

  1. Go to https://danfinlay.github.io/js-eth-personal-sign-examples/
  2. Connect your Ledger to MetaMask
  3. Have the browser console open
  4. Click on personal_sign and/or "sign typed data"
  5. See errors

Expected behavior
It should behave the same way as it does with a non-Ledger MetaMask wallet.

Browser details (please complete the following information):

  • Kubuntu Linux
  • MetaMask Version 4.10.0
  • New UI
@tomcbean
Copy link

With v4.14.0 I'm seeing "Not supported on this device" error with eth_sign.

@brunobar79
Copy link
Contributor

@weijiekoh Thanks for reporting!

Regarding Personal Sign not working on that example it's related to #5523 (that msg has non unicode chars). If you try personal_ecRecover you should see it works (pretty much the same except with a unicode message).

Regarding signTypedData, it's not supported in hardware wallets yet but at least now we're throwing the right error message (see #5792)

@ghost ghost removed the in progress label Nov 20, 2018
@weijiekoh
Copy link
Contributor Author

Thanks @brunobar79. Just wondering if eth_signTypedData and eth_signTypedData_v3 support needs to be implemented in-device, or if it could be done off-device.

@brunobar79
Copy link
Contributor

@weijiekoh It needs to be supported in the hardware wallet firmware since it requires the private keys to sign the message (and hardware wallet don’t expose it).

We’ll add support on our end as soon as Trezor and Ledger does it

@sidsverma
Copy link

@brunobar79 does ledger also have the same issue with signing with hex data as in trezor(#5218)?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants