スマート・コントラクトの実行
TxTypeSmartContractExecutionは、与えられたデータでスマート・コントラクトを実行する。 TxTypeSmartContractExecutionは、"to "がスマート・コントラクト・アカウントである場合のみ受理される。
KAIAの機能をethers.jsに追加するために、ethers と @kaiachain/ethers-ext パッケージをインポートします。
senderとfee payerのアドレスと秘密鍵を定義する。
指定されたkairos testnet URLでプロバイダを設定します。 エーテルにおけるプロバイダーとは、ブロックチェーンのデータにアクセスするための読み取り専用の抽象化されたものである。
また、プロバイダのURLをkairosからquicknodeに変更することができます。
送信者の秘密鍵とプロバイダーを使って送信者のウォレットを作成する。
送金者の秘密鍵とプロバイダーの秘密鍵を使用して、料金支払者のウォレットを作成する。
実行したい契約アドレスをtoフィールドにセットし、ABIをセットする。
Ethers.Contractで契約インスタンスを作成し、パラメータ contractAddr、abi、provider を指定します。 このインスタンスを通じて、契約の読み書きができる。
関数名とパラメータをencodeFunctionData関数でエンコードする。
FeeDelegatedSmartContractExecution型を持つトランザクションオブジェクトを構築する。
必要な詳細をトランザクションに入力する
送信者の財布で取引に署名する。
手数料支払者のウォレットを使ってブロックチェーンにトランザクションを送信する。 関数 sendTransactionAsFeePayer
は送信者の署名に FeePayer の秘密鍵による署名を追加し、ブロックチェーンネットワークに送信する。
wait関数は、txがブロックチェーンに正常に送信された場合、txレシートを返す。