![見出し画像](https://assets.st-note.com/production/uploads/images/108719660/rectangle_large_type_2_345f249970358fa699e508a1f212a57c.png?width=800)
Photo by
shimanoayako
【完全保存版】AstarのWASMにおける、Id型の使用方法について
ミントを行うときに、このように、Id型の値を渡します。
例えば、token ID: 1をミントするというような具合です。
![](https://assets.st-note.com/img/1687236937133-0L51Y8J97e.png?width=800)
そのため、変数をID型として定義したくなります。
しかし、柔軟に実行させるにはu32型などで変数を用意し、それをID型に変えた上で実行するのが簡便であると感じました。
![](https://assets.st-note.com/img/1687237117297-Eq6ldk8Dcq.png?width=800)
1 変数の定義
まずは、下のように変数を定義しています。
ここでは、「u32型」にしています。
![](https://assets.st-note.com/img/1687237390454-pGppY7uPhj.png?width=800)
2 関数の確認
では、下のようなclaimを行う関数を考えてみましょう。
![](https://assets.st-note.com/img/1687237693703-hItu9su6hE.png?width=800)
1 checked_addについて
まずは、ここが大事です。
checked_add関数は、加算結果が整数型の範囲内であるかを確認した上で、計算を行います。
これができるのは、u32型が整数型だからです。
![](https://assets.st-note.com/img/1687237807268-D2TcUZmRUF.png?width=800)
このように、柔軟に計算を行うことができます。
2 Id型への変換について
そして、ミント時に必要なのはId型です。
この必要な時点で、Id型への変換を行えば、事足ります。
![](https://assets.st-note.com/img/1687238035613-Ijfzn1e8O3.png?width=800)
「token_id」を「u32」型にしているので、「Id::U32()」で、変換しています。
サポートをしていただけたらすごく嬉しいです😄 いただけたサポートを励みに、これからもコツコツ頑張っていきます😊