🔑 코인 투자 추천 링크 🔑
* Dapp NFT 플랫폼을 만들기 위한 사전 ERC721 발행관련 실습
1. IPFS 서비스 중 Pinata 서비스에 이미지 업로드 (https://www.pinata.cloud/)
- 가입 후 이메일 승인 후 로그인 하면 아래의 페이지가 뜸.
- IPFS에 대신 업로드 해주는 서비스임.
- 이미지 업로드 후 아래와 같이 CID 확인.
- 파일 업로드 후, pinata Docs 메뉴얼 참고하여 metadata file 작성.
- metadata.json 파일을 아래와 같이 작성 후 업로드
- description,name은 임의로 작성하고, image부분에 pinata에서 만들어준 CID를 입력.
- 해당 파일을 업로드 하면 아래와 같이 뜸.
2. NFT solidity 파일 작성 후 deploy
- 소스 작성 후 배포
소스파일
// SPDX-License-Identifier: GPL-3.0
pragma solidity ^0.8.0;
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";
import "@openzeppelin/contracts/utils/introspection/IERC165.sol";
contract NFT is ERC721URIStorage,Ownable{
using Counters for Counters.Counter;
Counters.Counter private tokenId;
constructor() ERC721("DannyWorld","DNW"){}
function mintNFT(string memory tokenURI) public onlyOwner returns (uint256){
tokenId.increment();
uint256 newId = tokenId.current();
_mint(msg.sender,newId);
_setTokenURI(newId,tokenURI);
return newId;
}
}
- IERC165.sol 파일 솔리디티 버전 0.8.0으로 변경
- 배포 후, NFT 민팅
- metada.json의 CID로 민팅.
- mintNFT에서 ipfs:// 이후에 CID 주소 입력후 transact 실행
* 트랜잭션 정상 배포되었는지 확인!!
댓글