假设我调用以下函数来生成用于生成签名的哈希消息。
function signMessage(recipient, amount, newNonce, contract, type) {
const msgHash = web3.utils.soliditySha3(
{ t: "address", v: recipient },
{ t: "uint256", v: amount },
{ t: "string", v: newNonce },
{ t: "address", v: contract },
{ t: "uint256", v: type }
) || ""
return web3.eth.accounts.sign(msgHash, privateKey);
}
在Solidity智能合约上,我应该如何从签名中提取每个信息(例如"类型"(?
原来哈希值是不可逆的,但我可以使用相同的变量在智能合约上再次进行哈希,并检查两个哈希值是否相同,这样我就可以知道值是否正确传输。