我知道我可以使用web3js来签署一条消息,但是我不知道如何才能做到这一点,那么如何使用ecrecover()来验证签名呢?
发布于 2021-09-21 15:33:26
您可以使用元请求对事务进行签名,请参阅它们的示例
https://docs.metamask.io/guide/signing-data.html#sign-typed-data-v4
基本上这些步骤是,
const keep_it_hidden = process.env.Key; // this is a private key
const CHAINID = 1;
const hash_data = web3.utils.soliditySha3(CHAINID, accounts[0] , "some data" ); // any data you want the func to hash
const sign = await web3.eth.accounts.sign(hash_data, keep_it_hidden )['signature'] // sign the hashed data现在,在smart合同中从OpenZeppelin导入椭圆曲线数字签名算法(ECDSA)操作,您可以使用recover方法和toEthSignedMessageHash运行sign as signature来散列合同中的消息。
我希望这是清楚的
https://ethereum.stackexchange.com/questions/110301
复制相似问题