アカウント更新
ベーシック
web3をkaia web3に拡張するために、web3py_extからextendをインポートする。
eth_account、web3py_ext、cytoolsから必要なutilsをインポートする。
指定されたkairosテストネットURLでWeb3インスタンスを作成する
また、プロバイダーのURLをkairosからquicknodeに変更することもできます。
秘密鍵からtransaction鍵をロードし、それをトランザクション・ロール・キーとして使用する。 トランザクションの署名に使用できる
秘密鍵からupdate鍵をロードし、それを更新ロール鍵として使用する。 この口座の口座更新取引に署名するために使用できます。 つまり、このキーを持っている人だけが、このアカウントを更新できるということだ。
秘密鍵からfee payer鍵をロードし、fee payer role keyとして使用する。 手数料の支払い者として取引に署名するために使用できる。
TxType.ACCOUNT_UPDATE型の空のトランザクションを作成しています。 empty_txユーティリティを使えば、デフォルトのフィールドが埋められたtxを得ることができる。
mergeユーティリティを使用して、senderやkeysのような追加フィールドを空のtxにマージする。
この場合、更新するアカウント・キーはrole-basedキーであり、各ロールはpubkeyタイプを持っている。 各ロールはパブキーまたはマルチシグを持つことができる。
それぞれのロール・キーを設定するには、compressed_key utilを使用します。 圧縮された公開鍵を鍵から抽出する。
fill_transactionを使用して、トランザクション・オブジェクトにガス・リミットなどのパラメータを追加する。
to_prettyユーティリティを使えば、フォーマットされたtxをプリントすることができる。
アカウント更新TXタイプに署名する。 アカウント "0x5bd2...cea "はすでにロールベースのアカウントであるため、このアカウントを更新するには、update role keyで署名する必要があります。
**署名されたトランザクションから送信者のアドレスを復元する。
RLPエンコードされた署名付きtxを見たい場合は、decode_transactionユーティリティを使用する。
**署名されたトランザクションをネットワークに送信し、ブロックチェーンで完全に実行されるまで受信を待つ。