#testing #ethereum #solidity #web3js #truffle
Вопрос:
Я изучал EIP712 и попытался провести некоторое тестирование с использованием трюфеля и Web3js. Однако я заметил, что web3.eth.accounts.sign() соответствует EIP191, поэтому я не могу правильно получить адрес подписавшего с помощью ECDSA.recover из репозитория OZ.
В этой связи мой вопрос заключается в следующем: какие альтернативы можно использовать для разработки некоторых тестов для этого нового стандарта криптографической подписи? Я заметил, что в Metamask есть этот метод signTypedData_V4, который соответствует текущей версии подписи проекта OZ. Я хотел бы знать, могу ли я хэшировать и подписываться по этому стандарту без помощи Метамаски.
Ссылки на ECDSA и EIP712 (проекты) контрактов из страны ОЗ:
Заранее благодарю всех вас.
Ответ №1:
Вы можете использовать метод signTypedData
из @metamask/eth-sig-util
.
https://github.com/MetaMask/eth-sig-util/blob/main/src/sign-typed-data.ts#L521