スマート・コントラクトの実行
TxTypeSmartContractExecutionは、与えられたデータでスマート・コントラクトを実行する。 TxTypeSmartContractExecutionは、"to "がスマート・コントラクト・アカウントである場合のみ受理されます。
web3をkaia web3に拡張するために、web3py_extからextendをインポートする。
eth_account、web3py_ext、*cytoolz**から必要なutilsをインポートする。
指定されたkairosテストネットURLでWeb3インスタンスを作成する
また、プロバイダのURLをkairosからquicknodeに変更することができます。
秘密鍵からaccountを読み込む
秘密鍵から料金支払い者アカウントをロードする。
TxType.FEE_DELEGATED_SMART_CONTRACT_EXECUTION型の空のトランザクションを作成します。 empty_txユーティリティを使えば、デフォルトのフィールドが埋められたtxを得ることができる。
mergeユーティリティを使用して、from、to、dataなどの追加フィールドを空のtxにマージする。
実行したい契約アドレスをtoフィールドに設定 する。
このチュートリアルでは、契約の関数を呼び出すためのデータは、バイトストリームにエンコードされる。 エンコードされたデータを作成するには、スマートコントラクトセクションのライトチュートリアルを参照してください。
fill_transactionを使用して、トランザクション・オブジェクトにガス・リミットなどのパラメータを追加する。
値転送txにユーザーの秘密鍵で署名する。
署名されたTxの署名から署名者のアドレスを復元する。
料金支払者の秘密鍵でバリュー移転txに署名する。
署名入りTXの署名から料金支払い者の住所を復元する。
RLPエンコードされたtxはAccount.decode_transactionユーティリティでデコードできます。
ブロックチェーンにtxを送信する。 このハッシュは受信を待つために使用される。
wait_for_transaction_receiptメソッドは、ブロックチェーンで完了した場合、txレシートを返す。