アカウント更新
web3py_extからextendを取得し、web3をkaia web3に拡張します
eth_account、web3py_ext、cytoolsから必要なutilsをインポートする。
指定されたkairosテストネットURLでWeb3インスタンスを作成する
また、プロバイダーのURLをkairosからquicknodeに変更することもできます。
秘密鍵からtransaction鍵をロードし、それをトランザクション・ロール・キーとして使用する。 トランザクションの署名に使用できる
秘密鍵からupdate鍵をロードし、それを更新ロール鍵として使用する。 この口座の口座更新取引に署名するために使用できます。 つまり、このキーを持っている人だけが、このアカウントを更新できるということだ。 z
秘密鍵からfee payer鍵をロードし、fee payer role keyとして使用する。 手数料の支払い者として取引に署名するために使用できる。
秘密鍵からfee fee_delegator鍵をロードする。
TxType.FEE_DELEGATED_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ユーティリティを使用する。
signed_tx.rawTransactionに手数料デリゲータアカウントで署名する。
**署名されたトランザクションから料金デリゲータのアドレスを復 元する。
RLPエンコードされた署名付きtxを見たい場合は、decode_transactionユーティリティを使用する。
**署名されたトランザクションを手数料デリゲーターアカウントを使ってネットワークに送信し、ブロックチェーンで完全に実行されるまで受領を待つ。