Truffle을 이용하여 Local 환경에서 ERC-721 배포 해보자. solidity 문법과 openzeppelin 라이브러리를 안다는 가정하에 진행된다.
로컬에서 NFT를 개발하기 위해, Truffle을 사용한다. 먼저, 새로운 폴더를 생성하고 Truffle을 이용한 개발 환경을 준비한다.
# 폴더 생성
mkdir erc721
# 폴더 진입
cd erc721
# truffle 초기화
truffle init
# npm 초기화
npm init
개발 환경 준비를 마쳤다면, VScode를 실행한다.
먼저 몇 가지 세팅을 해야한다. truffle-config.js
를 열고, solc
를 설정한다. solc
는 Solidity, Compiler의 버전 등을 설정한다. 이 예시에서 사용하는 Solidity의 버전은 "0.8.7"이고, Compiler의 버전은 "london"이다.
MyNFT.sol 파일을 생성하고 아래와 같이 코드를 작성한다.
이 파일에서는 OpenZeppelin의 파일을 참조하고 있다. 따라서, npm 을 통해 openzeppelin
을 설치해야 한다.
npm install @openzeppelin/contracts
붙여넣은 코드가 정상적으로 배포되기 위해서는, migration 파일을 설정해야 한다.1_initial_migration.js
파일을 연다. 그리고 다음과 같이 편집한다.
이걸로 ERC721을 이용한 개발을 마쳤다.
infura 로 테스트넷 환경에 노드로 접속하기
• infura.io 접속 후 truffle과 Ethereum ropsten TestNet 을 연결한다.
migrate 명령어를 입력해주면 ropsten 테스트 네트워크에 배포가 완료된다.
MyNFTs 의 mintNFT 함수 실행, 결과 확인
이더스캔에 컨트랙트 주소를 검색하여 ropsten네트워크에 컨트랙트가 성공적으로 배포되었는지 확인 할 수 있다.
truffle을 이용에 가나슈에 배포했을때보다 더 직관적으로 배포결과를 확인 할 수 있어서 좋았다. 개발을 진행하면서 막히는 부분이 몇번 있어서 해맸다. 검색을 통해 문제를 이 해매는 과정을 혼자서 해결하면서 그저 컨텐츠를 따라 개발하는 것 보다 더 명확하게 배울 수 있었다.