書き込み(手数料の委任)
スマートコントラクトを実行したい場合、feepayerに支払い要求を含むtransactionを行うことができる。
web3をkaia web3に拡張するために、web3py_extからextendをインポートする。
web3とeth_accountから必要なutilsをインポートする。
kairosテストネットエンドポイントでWeb3インスタンスを作成する
また、プロバイダのURLをkairosからquicknodeに変更することができます。
各秘密鍵からユーザーと料金デリゲーターアカウントをロードする。
アドレスとABIを持つ契約インスタンスを作成する。
デプロイチュートリアルでデプロイしたコントラクトアドレスを設定します(カウンターコントラクト)。 デプロイされたTXの領収書に住所が記載されています。
契約アビを設定する。 remixまたはsolcコンパイラでコンパイル後、ABIを取得できます。
コントラクトのビュー関数を呼び出し、その結果をプリントする。
パラメータとして渡されたフィールドと共にtxインスタンスを返すbuild_transactionでtxを作成する。 料金支 払者への料金委任を要求するには、TxType.FEE_DELEGATED_SMART_CONTRACT_EXECUTIONタイプを設定する必要があります。
increment()関数は自動的にデータを呼び出し、それをdataフィールドに設定する。
fill_transactionを使用して、gas limit、Nonceなどのようなトランザクションの残りのフィールドを追加する。 この行以降のすべてのフィールドを印刷することができる。
ユーザーの秘密鍵でトランザクションに署名する。
fee payerとして、料金委任者の鍵でトランザクションに署名する。 料金支払者の住所も伝える必要がある。
生のトランザクションを送信し、トランザクション・ハッシュを取得する。
トランザクションの受領を待つ
契約がupdateされているかチェックします