概要
Moralis SDKのサンプルがスマートコントラクトの実行の部分で古い関数を使っていたので、新しい関数を使用したコントラクトの実行について記載します。
準備
ウォレットのログインや署名を済ましておきます。
ここができていないとスマートコントラクトの実行時にエラーが発生します。
実行
実際のコードです。
以前だとスマートコントラクトインスタンスの生成などが必要でしたが、新しい関数ではそのままスマートコントラクトの実行が可能です。
コード
private const string CLAIM_FUNCTION = "fugaFunction";
private const string ABI ="hogehoge";
private const string NFT_ID = "1";
private const string CONTRACT_ADDRESS = "fugafuga";
public async void Execute()
{
if (BigInteger.TryParse(TOKEN_ID, out var bi))
{
// コントラクトコールが期待するように、トークンIDを16進数に変換します。
object[] pars = {bi.ToString()};
// ガスの推定値を設定する
var gas = new HexBigInteger(0);
var resp = await MoralisInterface.ExecuteContractFunction(CONTRACT_ADDRESS,
ABI,
CLAIM_FUNCTION, pars, new HexBigInteger("0x0"), gas, gas);
}
}
注意点
ちなみに私は以下の2つでエラーが発生しましたので、ご注意ください。
- ログインが正しくできていない。
- ABIが正しく設定されていない。
ABIはremixから以下のように取得することができます。
(ダブルクオーテーションをエスケープして上記の定数に設定します。)
- コンパイル
- 対象のコントラクトを選択
- ABIボタンを押下
お知らせ
Web3ゲームを新たに作ろうかなと思っています。
構想とかも含めてになりますが、興味ある方がいればツイッターからDMください!
よろしくお願いします。