Yabumi NFT ミント

コントラクトでのミント処理手順

1.Yabumi NFTのミント時に必要なもの

Yabumi NFTをミントする際、コントラクトはフロントエンドから以下を受け取ります。

  • JointedID

  • バックエンドで行った署名(r)

  • バックエンドで行った署名(s)

  • バックエンドで行った署名(v)

2.署名データ作成

以下の情報を元に、コントラクトでバックエンド同様の署名データ作成します。

  • JointedID

  • ミントアドレス(msg.sender)

3.署名アドレスを検証

以下情報を元に、コントラクトでバックエンド署名アドレスを検証します。

  • 2.で作成した署名データ

  • バックエンドで行った署名(r)

  • バックエンドで行った署名(s)

  • バックエンドで行った署名(v)

4.アドレスのエラー処理

2つのアドレスが一致しなかった場合はエラーとして処理します。

  • 3.で検証したバックエンド署名アドレス

  • コントラクトデプロイ時に受け取った署名アドレス

5.ミント済みのエラー処理

引数で受けったJointed IDが過去にミントされたものと一致した場合はエラーとして処理します。

6.インデックス割り当て

上記4,5のチェックをパスできたら、tokenIDを1~からミントされた順番に採番します。

7.Jointed IDを保存

「JointedID」をミント済みとして変数へ保存します。

これで同一IDで複数ミントされることを防ぎます。

8.Token IDとの紐づけ

「JointedID」とToken ID紐付け情報を変数へ保存します。

9.ミントしたウォレットアドレスの保存

Token IDに対応したウォレットアドレスを変数へ保存します。

これでYabumi NFTのToken IDからウォレットアドレスを割り出せます。

10.ミント処理

ミントしたウォレットアドレスと採番したToken IDでミント処理を実行じます。

11.イベントの発火

Token IDと「JointedID」をイベントへ保存し、emitを使用してイベントを発火させます。

最終更新