이 글에서는 remix와 MetaMask를 이용해 goerli 테스트넷에 NFT를 발행하는 방법을 알아봅니다.
예시에서는BlockSDKTestNFT.sol
로 만들었으며, 사용자가 원하는 이름으로 만들어주세요
2번에서 만든 파일에 아래 예시코드를 붙여 넣고 수정합니다. 코드 블럭의 주석을 확인해주세요.
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;
import "@openzeppelin/contracts/token/ERC721/extensions/ERC721URIStorage.sol";
import "@openzeppelin/contracts/access/Ownable.sol";
contract BlockSDKTestNFT is ERC721URIStorage, Ownable {
uint public nextTokenId;
address public admin;
// 'BlockSDKTestNFT', 'BTNFT' 대신 자신이 원하는 이름과 심볼(상징성 문구)를 넣어주세요
constructor() ERC721('BlockSDKTestNFT', 'BTNFT') Ownable(msg.sender) {
admin = msg.sender;
}
function mint(string memory tokenURI) external onlyOwner {
_safeMint(admin, nextTokenId);
_setTokenURI(nextTokenId, tokenURI);
nextTokenId++;
}
}
외부 라이브러리를 임폴트 하는 과정에서 오류가 발생할 수 있습니다.
위와 같이 오류가 뜨시는 분들은 Remix의 Solidity compiler 에서 적절한 버전으로 변경해 주시기 바랍니다.
ERC721.sol
에 mint 메서드를 추가해줍니다. 파일의 위치는 아래 코드블럭의 주석을 확인해주세요.
// .deps/npm/@openzeppelin/contract/token/ERC721/ERC721.sol
function mint(uint256 tokenId) public virtual {
_mint(_msgSender(),tokenId);
}
솔리디티 파일을 컴파일 해줍니다. contract를 확인해주세요. 자신이 만든 파일 명이 적혀있어야 합니다.
배포 시 ENVIRONMENT를 MetaMask로 변경합니다.
※ 메타 마스크로 변경 시 브라우저 메타 마스크에서 로그인과 네트워크 설정이 진행 될 수 있습니다.
※ 만약 리스트에 메타마스크가 존재하지 않는다면 메타마스크를 먼저 설치하고, goerli 테스트넷에 연결해주세요.
Remix에서 배포 시 메타마스크로 연결되며, 컨펌을 클릭하면 배포가 진행됩니다. 배포는 약간의 시간이 소요될 수 있습니다
메타마스크에서 배포가 완료된 것을 확인할 수 있으며, 블록 탐색기에서 보기 클릭 시 goerli etherscan 에서 확인할 수 있습니다.
goerli etherscan에서 정상적으로 배포된 것을 확인 할 수 있으며, state에서 정보를 확인할 수 있습니다.
이 글을 통해 Remix IDE와 메타마스크를 활용하여 Goerli 테스트넷에 NFT를 발행하는 과정을 단계별로 알아보았습니다. 이 방법은 초보자도 이해하기 쉽도록 구성되어 있으며, 이더리움 기반의 NFT 개발을 위한 실질적인 첫 걸음으로 활용될 수 있습니다. 프로젝트를 시작하기 전에 항상 솔리디티 버전을 확인하고, 메타마스크 설정을 올바르게하는 등의 기본적인 준비를 철저히 하는 것이 중요합니다.
앞으로도 다양한 스마트 컨트랙트와 DApp 프로젝트를 통해 블록체인 기술의 무궁무진한 가능성을 탐색해 보시길 바랍니다. 이러한 프로세스가 처음에는 복잡하고 어려울 수 있지만, 지속적인 학습과 실습을 통해 블록체인 개발자로서의 역량을 키울 수 있을 것입니다.
[BLOCKSDK] JAVASCRPT로 ERC-721(NFT)을 생성하고 배포하는 방법