#solidity #nft
Вопрос:
Я разрабатываю контракт на сбор NFT, который имеет отношения между различными NFT. Это означает, что каждый отчеканенный NFT имеет запутанный NFT из одной и той же коллекции (например, NFT № 25 связан с NFT№222 и наоборот). Дело в том, что я хочу иметь веб-сайт, который рандомизирует идентификатор NFT, который покупает пользователь, чтобы он не мог напрямую монтировать запутанный NFT, который может быть редким (и пользователь легко узнает это по внешнему виду).
Короче говоря, я пытаюсь найти способ запретить пользователям чеканить новые NFT, но все равно заставляю их платить комиссию. Единственный способ, которым я, хотя и был возможен, — это развернуть контракт с кодом доступа для чеканки, который будет передан по запросу чеканки из веб-приложения, так что:
uint256 MINT_PASS;
constructor(uint256 pass) ERC721("NFTexample", "XMP") public {
CEOaddress = msg.sender;
MINT_PASS = pass;
}
function minting(address recipient, string memory tokenURI, uint256 _tokenID, uint256 SECRET_CODE) public
returns (uint256)
{
require(MINT_PASS == SECRET_CODE);
uint256 newItemId = _tokenID;
_mint(recipient, newItemId);
}
Существуют ли лучшие и более безопасные реализации для того, что я хочу сделать?