Solidity コントラクトに次のコードがあります。
uint256 定数 maxNum = 10000;
function mintNewFull(uint16 tokenId) public {
require (0 <= tokenId && tokenId < maxNum;
// do other stuff
}
そして、私は動作するethersでこのコードを使用してそれを呼び出しました:
contractWithSigner.mintNewFull(3);
しかし、後でtokenID 11でミントしようとするように変更したとき:
contractWithSigner.mintNewFull(11);
うまくいきませんでした。そして、私が試したところ、10 未満のすべての数値が機能するように見え、それを超える数値は機能しません。
uint16 uint256の問題ですか?定数 maxNum を uint16 に変更する必要があります。ethers を使用して uint16 パラメーターを持つ関数を呼び出すことはできませんか? ethers ドキュメントでパラメーターの型を宣言する方法が見つからなかったため、uint256 の代わりに uimt16 を渡す方法がわかりません。誰もが数字または文字列を使用しているように見えるので、混乱します (特に、後で配列を渡す必要がある場合)。
Plsはありがとうを助けます