LoginSignup
0
0

More than 1 year has passed since last update.

Moralis Unity SDKでスマートコントラクトの実行まで

Posted at

概要

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から以下のように取得することができます。
(ダブルクオーテーションをエスケープして上記の定数に設定します。)

  1. コンパイル
  2. 対象のコントラクトを選択
  3. ABIボタンを押下

お知らせ

Web3ゲームを新たに作ろうかなと思っています。
構想とかも含めてになりますが、興味ある方がいればツイッターからDMください!
よろしくお願いします。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0