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を使用してイベントを発火させます。
最終更新