マルチシグ・アカウント・キー
AccountKeyWeightedMultiSigは、閾値とWeightedPublicKeys(公開鍵とその重みからなるリスト)を含むアカウント鍵タイプである。
AccountKeyWeightedMultiSigに関連付けられたアカウントで取引が有効であるためには、 以下の条件を満たす必要がある: 署名された公開鍵の加重和が閾値より大きいこと。 無効な署名はトランザクションに含めるべきでない。 * 署名された公開鍵の数は、weightedPublicKeysの数より少なくなければならない。
web3をkaia web3に拡張するために、web3py_extからextendをインポートする。
web3とeth_accountから必要なutilsをインポートする。
Web3.HTTPProviderとRPCエンドポイントを使用してWeb3接続を定義します。
また、プロバイダのURLをkairosからquicknodeに変更することができます。
Account.from_key_pair を使用して、アドレスと秘密キーから 3 つの異なるウォレットを定義します
TxType.VALUE_TRANSFER型の空のトランザクションを作成する。 empty_txユーティリティを使えば、デフォルトのフィールドが埋められたtxを得ることができる。
転送する from、to、value フィールドを指定して、transaction を作成する。
from:送信者のアドレス、to:カイアを受信するターゲットのアドレス。
valueフィールドは、送信したいKaiaの数を意味し、KaiaをPeb単位に変換するにはWeb3.to_pebユーティルを使用します。
fill_transactionを使用して、gas limit、Nonceなどのようなトランザクションの残りのフィールドを追加する。 この行以降のすべてのフィールドを印刷することができる。
トランザクションにユーザー1の秘密鍵で署名する。
signed_txにuser2とuser3の秘密鍵で署名する。
**署名されたトランザクションをネットワークに送信し、ブロックチェーンで完全に実行されるまで受信を待つ。
user3からの署名付きトランザクションからaccount.recover_transactionでuser1のアドレスを回復する。