我如何创建一个函数来验证用户是否可以铸造?
How can i create a function to validate if an user can mint?
我曾经为 erc720 使用此函数 isValidSignatureNow,但现在我正在使用 erc1155 我需要这样的函数。
我正在尝试铸造,但在我需要知道那个钱包是否可以为此铸造之前,我创建了一个函数 isAvailable 但现在我得到了
TypeError:成员“isValidSignatureNow”在地址中的参数相关查找后未找到或不可见。 --> Migrations.sol:112:16: |
我该如何解决该错误?
如果我修复了那个错误,我的代码看起来不错吗?
function isAvailable(
bytes memory signature, address _firmante
) internal view returns (bool whiteListed) {
bytes32 result = keccak256(
abi.encodePacked(msg.sender)
);
//doing hash by result
hash= ... // dont care yet
return isValidSignatureNow(_firmante, hash, signature);
}
我想使用此功能 'isValidSignatureNow' 来自:https://docs.openzeppelin.com/contracts/4.x/api/utils
SignatureChecker
是一个库,要调用其中的方法,您必须使用此语句:
[libraryName].[methodName]([parameters]);
对于您的情况,您必须更改这行代码:
return isValidSignatureNow(_firmante, hash, signature);
这样:
return SignatureChecker.isValidSignatureNow(_firmante, hash, signature);
注意:记得在您的智能合约中导入 SignatureChecker
库。
我曾经为 erc720 使用此函数 isValidSignatureNow,但现在我正在使用 erc1155 我需要这样的函数。
我正在尝试铸造,但在我需要知道那个钱包是否可以为此铸造之前,我创建了一个函数 isAvailable 但现在我得到了
TypeError:成员“isValidSignatureNow”在地址中的参数相关查找后未找到或不可见。 --> Migrations.sol:112:16: |
我该如何解决该错误?
如果我修复了那个错误,我的代码看起来不错吗?
function isAvailable(
bytes memory signature, address _firmante
) internal view returns (bool whiteListed) {
bytes32 result = keccak256(
abi.encodePacked(msg.sender)
);
//doing hash by result
hash= ... // dont care yet
return isValidSignatureNow(_firmante, hash, signature);
}
我想使用此功能 'isValidSignatureNow' 来自:https://docs.openzeppelin.com/contracts/4.x/api/utils
SignatureChecker
是一个库,要调用其中的方法,您必须使用此语句:
[libraryName].[methodName]([parameters]);
对于您的情况,您必须更改这行代码:
return isValidSignatureNow(_firmante, hash, signature);
这样:
return SignatureChecker.isValidSignatureNow(_firmante, hash, signature);
注意:记得在您的智能合约中导入 SignatureChecker
库。