//Contract based on [<https://docs.openzeppelin.com/contracts/3.x/erc721>](<https://docs.openzeppelin.com/contracts/3.x/erc721>)
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.7;
import "@openzeppelin/contracts/token/ERC721/ERC721.sol";
import "@openzeppelin/contracts/utils/Counters.sol";
import "@openzeppelin/contracts/access/Ownable.sol";
import "@openzeppelin/contracts/token/ERC721/extensions/ERC721URIStorage.sol";
contract MyNFTs is ERC721URIStorage, Ownable {
using Counters for Counters.Counter;
Counters.Counter private _tokenIds;
constructor() public ERC721("MyNFT", "NFT") {}
function mintNFT(address recipient, string memory tokenURI)
public onlyOwner
returns (uint256)
{
_tokenIds.increment();
uint256 newItemId = _tokenIds.current();
_mint(recipient, newItemId);
_setTokenURI(newItemId, tokenURI);
return newItemId;
}
}
위 코드를 워크스페이스에서 새 파일을 만든후 입력하면 자동으로 npm install 이 진행되어 모든 추가 파일들이 설치된다.
ERC721URIStrogae 는 토큰의 정보를 저장하는 tokenURI를 관리하는 컨트랙트이다.
Ownable 은 컨트랙트 소유권을 관리하는 컨트랙트이다.
IPFS 는 모든 컴퓨터를 연결하고자 하는 분산된 P2P 파일 시스템이다. 기존의 HTTP Web의 문제점을 해결하고 보완한 새로운 Web이다.

