本文へスキップ
このページは英語からの機械翻訳を使用しており、誤りや不明瞭な表現が含まれている可能性があります。最も正確な情報については、オリジナルの英語版をご覧ください。頻繁な更新のため、一部のコンテンツはオリジナルの英語になっている可能性があります。Crowdinでの取り組みに参加して、このページの翻訳改善にご協力ください。 (Crowdin translation page, Contributing guide)

レガシー・アカウント・キー

eth_utilseth_accountから必要なutilsをインポートする。

web3をkaia web3に拡張するために、web3py_extからextendをインポートする。

秘密鍵からウォレットを定義するには、Account.from_keyを使用します。

署名するメッセージを定義する

EIP-191標準と互換性を持たせるために、encode_defunctを使ってメッセージをフォーマットする。

作成したアカウントで取引に署名する

署名されたメッセージからAccount.recover_messageで送信者アドレスを復元します

web3_legacy_value_transfer_message_recover.py

from eth_account import Account
from eth_account.messages import encode_defunct
from eth_utils.curried import to_hex
from web3py_ext import extend
def web3_legacy_value_transfer_sign_recover():
user = Account.from_key('0x0e4ca6d38096ad99324de0dde108587e5d7c600165ae4cd6c2462c597458c2b8')
message_text = "I♥KLAYTN"
msghash = encode_defunct(text=message_text)
signature = Account.sign_message(msghash, user.key)
recovered = Account.recover_message(msghash, signature=signature.signature)
print("\nsender", user.address, "\nrecovered", recovered)
web3_legacy_value_transfer_sign_recover()

output

❯ web3_legacy_value_transfer_message_recover.py
sender 0xA2a8854b1802D8Cd5De631E690817c253d6a9153
recovered 0xA2a8854b1802D8Cd5De631E690817c253d6a9153

ページを改善してください。