Truffle testing - 尝试使用 web3 测试 EIP712,有没有其他选择?
Posted
技术标签:
【中文标题】Truffle testing - 尝试使用 web3 测试 EIP712,有没有其他选择?【英文标题】:Truffle testing - Trying to use web3 to test EIP712, are there any alternatives? 【发布时间】:2021-12-03 18:21:05 【问题描述】:我一直在研究 EIP712 并尝试使用 truffle 和 Web3js 进行一些测试。但是,我注意到 web3.eth.accounts.sign() 符合 EIP191,因此我无法使用 OZ 存储库中的 ECDSA.recover 正确检索签名者地址。
在这方面,我的问题是:哪些替代方案可用于为这个新的加密签名标准开发一些测试?我注意到 Metamask 有这个方法 signTypedData_V4,它坚持 OZ 草案的当前签名版本。我想知道我是否可以在没有 Metamask 帮助的情况下按此标准进行哈希和签名。
来自 OZ 的 ECDSA 和 EIP712(草案)合同链接:
https://github.com/OpenZeppelin/openzeppelin-contracts/blob/master/contracts/utils/cryptography/ECDSA.sol
https://github.com/OpenZeppelin/openzeppelin-contracts/blob/master/contracts/utils/cryptography/draft-EIP712.sol
提前感谢大家。
【问题讨论】:
【参考方案1】:您可以使用signTypedData
中的方法@metamask/eth-sig-util
。
https://github.com/MetaMask/eth-sig-util/blob/main/src/sign-typed-data.ts#L521
【讨论】:
以上是关于Truffle testing - 尝试使用 web3 测试 EIP712,有没有其他选择?的主要内容,如果未能解决你的问题,请参考以下文章
无法使用 Ganache GUI 连接到 Truffle 或 testrpc