juice-shop
31 строка · 1.1 Кб
1pragma solidity ^0.8.0;
2
3import "@openzeppelin/contracts/token/ERC721/ERC721.sol";
4import "@openzeppelin/contracts/access/Ownable.sol";
5import "@openzeppelin/contracts/utils/math/SafeMath.sol";
6import "@openzeppelin/contracts/token/ERC20/IERC20.sol";
7
8contract HoneyPotNFT is ERC721, Ownable {
9using SafeMath for uint256;
10
11IERC20 public token = IERC20(0x36435796Ca9be2bf150CE0dECc2D8Fab5C4d6E13);
12uint256 public constant mintPrice = 1000 * (10**18);
13uint256 public totalSupply = 0;
14
15string public constant fixedMetadataHash = "QmRad1vxT3soFMNx9j3bBmkABb4C86anY1f5XeonosHy3m";
16event NFTMinted(address indexed owner, uint256 tokenId);
17
18constructor() ERC721("The Enchanted Honey Pot", "EHP") {}
19
20function mintNFT() external {
21token.transferFrom(msg.sender, address(this), mintPrice);
22_safeMint(msg.sender, totalSupply);
23totalSupply = totalSupply.add(1);
24emit NFTMinted(msg.sender, totalSupply - 1);
25}
26
27function tokenURI(uint256 tokenId) public view override returns (string memory) {
28require(_exists(tokenId), "Token does not exist.");
29return fixedMetadataHash;
30}
31}