(web3.py) Восстановить адрес подписавшего из hexstr, подписанного eth.sign () - PullRequest
0 голосов
/ 13 декабря 2018

Я пытаюсь восстановить лицо, подписавшее hexstr, которое было подписано с использованием метода web3.eth.sign() (web3.py).Если я выполню следующий скрипт, recovered_address != web3_instance.personal.listAccounts[0].

from web3 import Web3
provider = Web3.HTTPProvider("http://127.0.0.1:8545")

web3_instance = Web3(provider)
message_hex = "0xa9581c281f0835317701b60d9a79893d691da5a00623836210181cc2319deb10"
signature = web3_instance.eth.sign(web3_instance.personal.listAccounts[0], hexstr=message_hex).hex()

recovered_address = web3_instance.eth.account.recoverHash(message_hex,signature).hex()

Я понимаю, что метод eth.sign() добавляет префикс '\x19Ethereum Signed Message:\n{len(message)}' к hexstr перед подписанием, но я не могу воссоздать это поведение,

TL; DR: Как вы можете восстановить адрес подписавшего, используя подпись, возвращенную из web3.eth.sign(), и сообщение hexstr (web3.py)?Заранее спасибо.

...