Как стать автором
Обновить

Комментарии 4

1) почему ERC721Enumerable  , а не ERC721URIStorage ?

2) почему вы используете какието свои контукции для метаданных , а не IERC721Metadata?

3) как можно установить картинку для контакта? я видел на etherscan когда заходишь у некоторых картинка отображается

4) как можно сжешь токен?

5) от вопроса 4. как то можно соединить два nft в один? или это просто сжечь две штуки и сминтить новый?

6) вы указали цену 80000000000000000 , они перемещаются на кошелек кто создал смартконтакт?

7) для чего нужны supportsInterface и beforetransfer ?

1) Если у NFT коллекции baseURL общий, то нет необходимости хранить URL для каждого токена отдельно, т.к. его можно получить по формуле: baseURL/${TOKEN_ID}. В нашем случае, базовый URL был общий, поэтому это был самый оптимальный вариант.

2) Нам было очень важно торговаться на бирже opensea, у них есть документация, в каком формате должны быть аттрибуты.

3) Нужно выполнить верификацию на ehterscan, например с помощью hardhat достаточно запустить скрипт npx hardhat verify --network mainnet YOU_CONTRACT_ID

4) Нужно реализовать OpenZeppelin ERC721Burnable

5) Да, именно так и делают большинство NFT проектов

6) Сумма перемещается на адрес смарт-контракта, перевести на свой кошелек может только владелец смарт-контракта. Или например можно создать метод в смарт-контракте, который будет переводить равные суммы всем основателям.

    function withdrawAll() public payable onlyOwner {
        uint256 _each = address(this).balance / 2;
        require(payable(developer).send(_each));
        require(payable(ceo).send(_each));
    } 

Так я и не понял как реализуется функция

 function tokenURI(uint256 _tokenId) public view returns (string) {
    return Strings.strConcat(
        baseTokenURI(),
        Strings.uint2str(_tokenId)
    );
  }

Откуда OpenSia знает ID токена до его генерации?

Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации