我花了 4 个多小时来解决这个问题...如果我写错了,抱歉。 我有一个 json 对象(我搜索过,这个叫做 eip712),我需要签名并接受签名:
message = {
"types": {
"EIP712Domain": [
{
"name": "name",
"type": "string"
}
],
"Challenge": [
{
"name": "value",
"type": "string"
}
]
},
"domain": {
"name": "SomeSite"
},
"primaryType": "Challenge",
"message": {
"value": "Some value with nonce"
}
}
但我发现“
web3.eth.sign_typed_data(acc.address, message)
”的唯一方法总是返回错误:web3.exceptions.MethodUnavailable: {'code': -32601, 'message': 'the method eth_signTypedData does not exist/is not available'}
并且有人在 github 页面上说“看起来 infura 不支持 eth_signTypedData” 但是!!!!我尝试了大约 10 个不同的节点,但它们有时都返回不同的错误 :))
我不知道该怎么做,我不敢相信没有办法用 python 签署 eip712 消息,更不用说只使用 web3.py