首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将KMS与醚_signTypedData (EIP712)集成

将KMS与醚_signTypedData (EIP712)集成
EN

Ethereum用户
提问于 2022-02-12 08:11:49
回答 1查看 818关注 0票数 3

我正在尝试集成KMS (亚马逊)和以太签署typedData,并在智能合同中验证签名者。

以前:

私钥作为环境变量保存。因为这可能是一个安全问题,而且可能会失去锁定在其中的资金。签字人也是smart合同的所有者。

现身:

我不想用存储在服务器中的私钥对msg进行签名,而是使用存储在KMS中的私钥对数据进行签名。我以前已经集成了KMS来签署事务和发送,但是我不知道如何处理输入的数据。

代码片段-原始代码片段与醚类

代码语言:javascript
复制
  const { ethers }   = require("ethers"); 
  let privateKey = "";
  let signer = new ethers.Wallet(privateKey); 

  let signature = await signer._signTypedData( {
  name: "name",
  version: "1.0.0",
  chainId: 4,
  verifyingContract: ""
},
{
  Request: [
    {
      name: "id",
      type: "string",
    },
    {
      name: "amount",
      type: "uint256",
    },
    {
      name: "wallet",
      type: "address",
    },
  ],
},
{
  id: "id",
  amount: 1,
  wallet: ""
});

输出:

签名样本输出:

代码语言:javascript
复制
0x8dea897d8a25b32a354d41c1c6d96aa6c19466a8a743fc41c3c3da97d7cd9fb131f0e905b96c4bfb560a74fb52ae454ca1a73b7189710fc6a35236d0bc11d1d51c

以下是我迄今尝试过的:

  1. 尝试使用eip-712 npm包将类型化数据转换为可签名的消息,然后尝试使用KMS对其进行签名。但是,签名没有得到核实。
  2. ethers signer试图使用上面的包发送事务,甚至sendTransaction也抛出了错误。

"KeyId在params中失踪“

  1. 试图实现塞洛·莫雷波所使用的概念。这对我来说不管用。参考文献
  2. 然后是一连串的打击和审判。

有人能告诉我如何做到这一点吗?我不能更改类型化数据的JSON模式,因为契约已经部署。

感谢你的时间。请评论一下。

谢谢!

EN

回答 1

Ethereum用户

发布于 2022-06-25 21:06:08

您可以使用这个回购程序,它是PRs https://github.com/rjchow/ethers-aws-kms-signer

票数 1
EN
页面原文内容由Ethereum提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://ethereum.stackexchange.com/questions/121467

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档