Open3

thirdwebのNFT Dropのスマートコントラクトを読んでみる

shogosushogosu

maxTotalSupply について

変数とセッター関数、Eventが用意されている。
初期化されていないのでデフォルト値は 0 になる。
セッター関数はadmin roleのみが実行できる。
https://github.com/thirdweb-dev/contracts/blob/main/contracts/drop/DropERC721.sol#L62-L66

https://github.com/thirdweb-dev/contracts/blob/main/contracts/drop/DropERC721.sol#L193-L197

maxTotalSupply は ミント(mint, claim)する前に実行される _beforeClaim 関数の中で使用されており、ミントができるかどうかの判断で使われている。

maxTotalSupply0 以外に設定されている場合は、すでにミントされた数と、これからミントする数とを比較しているが、 maxTotalSupply がデフォルトの 0 の場合は、いくらでもミントできる、ということになる。

ただし Claim Conditions といういわゆるアローリストの設定をしている場合は、そちらの条件が適用される(はず)。ここは別途ソースを探して読む必要あり。
https://github.com/thirdweb-dev/contracts/blob/main/contracts/drop/DropERC721.sol#L203-L214