testing - Truffle testing - 尝试使用 web3 来测试 EIP712,有没有其他选择?

标签 testing ethereum solidity web3js truffle

我一直在研究 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

在此先感谢大家。

最佳答案

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

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

关于testing - Truffle testing - 尝试使用 web3 来测试 EIP712,有没有其他选择?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69586521/

相关文章:

unit-testing - 您是在编写功能代码之前还是之后编写单元测试?

java - TestNG:在类路径中找不到类,testng.xml

go - 将参数作为 bytes32 传递给 Solidity 智能合约

blockchain - 以去中心化方式从 Chainlink 获取代币历史价格数据的最佳方式是什么?

python - python的Web3端口是否完全实现了Web3 API?

ubuntu - 无法将 solc 链接到 Geth

ios - 有什么方法可以配置针对一个特定模拟器启动的测试吗?

java - 使用内存中的 PostgreSQL

ethereum - Solidity 中的字符串数组

random - Solidity - 生成不依赖于输入的不可预测的随机数