WISH2017 2021-05-14 14:01 采纳率: 0%
浏览 59

智能合约验证不了web3EIP标准的签名

我想在前端页面用web3对一些数据做签名,然后在智能合约里验证,但是一直不成功。

前端代码如下:一开始想用web.eth.sign,但是现在他不能用了,就用了EIPv1中的eth_signTypedData,后来发现personal_sign的签名直接和V1的不一样。但是都验证不了。

const data=[
      {
        type: 'bytes32',      // Any valid solidity type
        name: 'Message',     // Any string label you want
        value: 'zaijian'  // The value to sign
      }
    ]
web3.currentProvider.sendAsync({
      // method:'eth_signTypedData',
      method:'personal_sign',
      params:[data,web3.eth.defaultAccount],
      from:web3.eth.defaultAccount,
    }, function (err, result) {
        if (err) return console.dir(err)
        if (result.error) {
          alert(result.error.message);
          return console.error(result)
        }
        $("#InfoSign").val(result.result);
}

而且solidity现在也不能直接对数据keccak256了,需要用abi.encode打包一下,在前端也不知道怎么实现他那个编码,人直接傻掉。有大佬救救孩子吗

  • 写回答

1条回答 默认 最新

  • 有问必答小助手 2021-05-17 18:03
    关注

    你好,我是有问必答小助手,非常抱歉,本次您提出的有问必答问题,技术专家团超时未为您做出解答

    本次提问扣除的有问必答次数,将会以问答VIP体验卡(1次有问必答机会、商城购买实体图书享受95折优惠)的形式为您补发到账户。

    ​​​​因为有问必答VIP体验卡有效期仅有1天,您在需要使用的时候【私信】联系我,我会为您补发。

    评论

报告相同问题?

悬赏问题

  • ¥15 如何在maya程序中利用python编写领子和褶裥的模型的方法
  • ¥15 Linux权限管理相关操作(求解答)
  • ¥15 Bug traq 数据包 大概什么价
  • ¥15 在anaconda上pytorch和paddle paddle下载报错
  • ¥25 自动填写QQ腾讯文档收集表
  • ¥15 DbVisualizer Pro 12.0.7 sql commander光标错位 显示位置与实际不符
  • ¥15 求一份STM32F10X的I2S外设库
  • ¥15 android 打包报错
  • ¥15 关于stm32的问题
  • ¥15 ncode振动疲劳分析中,noisefloor如何影响PSD函数?