【问题标题】:Formatting of message in MetaMask Signature Request is offMetaMask 签名请求中的消息格式已关闭
【发布时间】:2021-10-16 04:15:24
【问题描述】:

我正在使用 MetaMask 签署随机数以进行服务器端身份验证。一切都按预期工作,期望 MetaMask 窗口中显示的消息是神秘符号而不是实际消息。

这就是我触发 MetaMask 对消息进行签名的方式 (n):

console.log(n); //0x123456789...123456789
const sig = await web3.eth.personal.sign(n, address, "password!");

结果:

有人知道为什么会这样吗?

感谢您的帮助!

【问题讨论】:

  • 嘿,@sebastiansieber。我实际上被困在触发元掩码来签署消息。由于您至少能够使元掩码弹出,请帮助我。
  • 您可以在上面看到我是如何触发 MetaMask 对消息进行签名的,如果没有更多详细信息,我不确定如何为您提供帮助
  • 您使用的是本地托管的 ganache 还是其他提供商的 infura?因为我在ganache上试过了,还不支持personal_sign方法。
  • 我使用注入的 web3 提供程序(带有 web3.js): const web3 = new Web3(Web3.givenProvider);

标签: node.js ethereum metamask


【解决方案1】:

您必须像这样将“n”变量转换为 HEX:

let message = web3.utils.utf8ToHex(n);
const sig = await web3.eth.personal.sign(message, address, "password!");

链接到文档https://web3js.readthedocs.io/en/v1.2.11/web3-utils.html#utils-utf8tohex

【讨论】:

    猜你喜欢
    • 2022-06-15
    • 1970-01-01
    • 2022-07-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多