スマート・コントラクトの実行
TxTypeSmartContractExecution*は、与えられたデータでスマート・コントラクトを実行する。 TxTypeSmartContractExecutionは、"to "がスマート・コントラクト・アカウントである場合のみ受理される。
この種の取引は、アカウントの作成、トークンの送金、スマートコントラクトの展開、スマートコントラクトの実行、または前述の組み合わせの実行が可能である。
web3にkaiaの機能を追加するために**@kaiachain/viem-ext**パッケージをインポートする。
createPublicClientを使用してpublicClientを作成し、HTTPトランスポート(http()
)を介してKaia Kairos testnet** (kairos
)と対話するように設定します。 パブリック・クライアントは、ブロックチェーンへの問い合わせやスマート・コントラクトの状態の読み取りなど、読み取り専用の操作に使用され、秘密鍵や署名機能を必要としない。
createWalletClientを使用 してウォレットクライアントをセットアップし、Kairosチェーン、HTTPトランスポート、および送信者の秘密鍵**をアカウントに変換して設定します。
実行したい契約アドレスをtoフィールドにセットし、ABIをセットする。
関数名とパラメータをencodeFunctionData関数でエンコードする。
prepareTransactionRequest**を使用して、スマート・コントラクトを実行するトランザクション・リクエストを作成する。 トランザクションタイプを指定する (TxType.smartContractExecution) 。
ブロックチェーンに送信する。 関数 sendTransaction
は内部的にアカウントの秘密鍵で署名し、ブロックチェーンネットワークに送信する。
publicClientは、スマート・コントラクトのnumber**関数を呼び出し、コントラクトのステートに格納されている現在の値を取得する。