Truffle尝试使用web3测试EIP712,是否有其他替代方法?



我一直在研究EIP712,并试图使用松露和Web3js实现一些测试。但是,我注意到web3.eth.accounts.sign()与EIP191兼容,因此我无法通过使用ECDSA正确检索签名者地址。从OZ存储库中恢复。

在这方面,我的问题是:可以使用哪些替代方案来为这种新的加密签名标准开发一些测试?我注意到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

提前感谢大家。

您可以使用@metamask/eth-sig-util中的signTypedData方法。

https://github.com/MetaMask/eth-sig-util/blob/main/src/sign-typed-data.ts L521

您的签名需要使用@truffle/hdwallet-provider才能通过测试

最新更新