1

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はありがとうを助けます

4

1 に答える 1