書き込み(Fee Delegation)
スマートコントラクトを実行したい場合、feepayerに支払い要求を含むtransactionを行うことができる。
KAIAの機能をethers.jsに追加するために、ethers と @kaiachain/ethers-ext モジュールをインポートします
送信者、料金支払者アドレス、送信者秘密鍵を定義する。
指定されたkairos testnet URLでプロバイダを設定します。 エーテルにおけるプロバイダーとは、ブロックチェーンのデータにアクセスするための読み取り専用の抽象化されたものである。
また、プロバイダのURLをkairosからquicknodeに変更することができます。
送信者の秘密鍵とプロバイダーを使って送信者のウォレットを作成する。
送金者の秘密鍵とプロバイダーの秘密鍵を使用して、料金支払者のウォレットを作成する。
solidityコードから生成されたAbiを設定する。
相互作用する契約アドレスを定義する
Ethers.Contractで契約インスタンスを作成し、パラメータ contractAddr、abi、provider を指定します。 このインスタンスを通じて、契約の読み書きができる。
メソッドcounter.number()を使用して、契約からnumberの値を取得する。
numberの値を更新するためのトランザクションデータを作成する。
前のステップのデータでトランザクション・オブジェクトを作成する
送金者のウォレットで取引に署名する
手数料支払者のウォレットを使ってブロックチェーンにトランザクションを送信する。 関数 sendTransactionAsFeePayer
は送信者の署名に FeePayer の秘密鍵による署名を追加し、ブロックチェーンネットワークに送信する。
メソッドcounter.number()で更新値numberを取得する。