Go-Ethereum

如何在 Python 中使用 ecRecover 恢復公鑰?

  • October 5, 2021

我可以使用 ecRecover 來驗證 Javascript 中的簽名者,例如:

const ecRecoverAddr = await window.ethereum.request({
   method: "personal_ecRecover",
   params: [message, signedMessage],
});

但是,當我嘗試以下 Python 程式碼時:

from web3 import Web3, HTTPProvider

def verify(request, message, signedMessage):
   response = web3.geth.personal.ecRecover(message, signature)
   return HttpResponse(response, content_type='text/json')

我收到此錯誤: name 'web3' is not defined

這是否意味著我需要為 web3 實例化某種提供程序?應該做什麼?

有沒有辦法在不使用提供者的情況下使用 ecRecover 檢索公鑰?

它不應該只是一種無需任何連接即可執行的方法嗎?

謝謝!

您將需要實例化 web3 對象,並且不能在此處引用包。

from web3 import Web3, HTTPProvider

w3 = Web3(Web3.HTTPProvider(<infura or alchemy URL>))

def verify(request, message, signedMessage):
   response = w3.geth.personal.ecRecover(message, signature)
   return HttpResponse(response, content_type='text/json')

引用自:https://ethereum.stackexchange.com/questions/110996