[NFT 만들기] 2. vscode를 이용해 contract 작성하고 truffle 과 ganache 환경에서 테스트

솔리디티 파일 만들고 contract 작성

contract 폴더 안에 원하는 솔리디티 파일을 만들어 코드를 작성해주세요.
(저의 경우 NFTsample.sol이라는 파일을 만들었습니다.)

migration 파일 만들기

migration 폴더 안에 위에서 만든 솔리디티 파일을 migration하기 위한 js 파일을 만듭니다.
주의할 것은 파일 이름 앞에 2_가 붙어야 하는 것! 번호가 인덱스가 됩니다!

1_initial_migration.js 안의 내용을 복사해
2_depoly_smart_contract.js에서 인자만 바꿔줍니다!

truffle-config.js 파일 수정하기

주석부분은 지우고

module.exports = {
  networks: {
    klaytn: {
      host: "127.0.0.1",
      port: 7545,
      network_id: "1337",
    },
  },
  compilers: {
    solc: {
      version: "0.5.6", // 컴파일러 버전을 0.5.6로 지정
    },
  },
};

host, port, 컴파일러 버전을 설정해주세요.
networks 밑에 있는 klaytn은 개인적으로 설정한 네트워크 이름입니다.
port는 기본적으로 8545로 되어있을텐데 이대로 해도 됩니다.
network_id도 기존에 설정된대로 "*" 로 해도 됩니다.

ganache 연결

ganache-cli 로 해도 괜찮구요 (geth와 비슷합니다. 노드역할!)
https://trufflesuite.com/ganache/
에서 가나슈를 다운로드 해도 됩니다.
저는 다운로드해서 GUI 환경에서 해볼게요.

가나슈를 다운로드하고 실행시키면 첫 화면은 이렇습니다.
왼쪽의 QUICKSTART를 클릭합니다.

만약 위에서 저처럼 포트 번호나 네트워크 아이디를 변경했다면 여기에도 똑같이 맞춰주세요.
그리고 RESTART 버튼을 누릅니다.

처음화면은 이렇습니다.

블록도 없는 상태구요.

트랜잭션도 없습니다.

기본터미널이나 vscode 터미널에서 마이그레이션을 합니다.

$ truffle migrate // 맨 처음 할 경우
$ truffle migrate --network klaytn // 맨 처음 하면서 네트워크 이름을 설정한 경우
$ truffle migrate --reset --network klaytn 
// 이후에는 --reset 옵션을 넣어주는 것이 좋습니다.
// --reset 옵션이 없으면 다음 숫자(만약 3번을 만든다면 3번만 마이그레이션됨)

이렇게 하고 나서 가나슈를 확인하면

account에서 가스비가 빠져나간 것을 확인할 수 있고

블록이 생성된 것을 볼 수 있습니다.

트랜잭션도 생성되었구요!

테스트하기

klaytn testing-guide 참고 링크

솔리디티나 자바스크립트로 테스트가 가능합니다.

좋은 웹페이지 즐겨찾기