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