클레이튼 네트워크에서 사용되는 NFT, KIP-17을 개발해보자.
다음은 개발을 위한 몇 가지 링크이다.
ERC-721을 이용해 이더리움 기반의 스마트 컨트랙트를 만들었던 것처럼, 클레이튼 기반의 스마트 컨트랙트를 생성하기 위해서는 KIP를 사용해야 한다. ERC-721에는 Identity를 검증하는 ERC-165가 포함되어 있다.
Klaytn IDE에 접속하고, 새로운 Workspaces, 새로운 파일을 생성한다.
앞서 언급했듯이, 이더리움 기반의 스마트 컨트랙트와 달리, 클레이튼 기반의 스마트 컨트랙트는 KIP를 사용한다. 따라서 ERC-721 스마트 컨트랙트를 그대로 사용할 수 없다. ERC-721의 코드를 가져와서, 다음과 같이 수정한다.
수정된 이 코드만으로는 Klaytn IDE를 통해 배포할 수 없다. MyNFTs의 부모 객체를 모두 작성하여야 문제없이 동작할 수 있다.
부모객체의 코드링크. 다음의 링크를 통해 코드를 복사하고, Klaytn IDE에 복붙. 코드를 붙여넣었다면, 코드를 컴파일하고 배포한다.
컴파일러 탭에서 MyNFTs 컨트랙트를 컴파일한다.
이 문서를 작성하는 현재, 클레이튼 기반의 Solidity 컴파일러 버전은0.5.6+commit.b259423e.Emscripten.clang
이다.
배포 탭 바오밥 환경에서 ACCOUNT를 추가한다. 클레이튼 IDE 에서는 지갑을 연결 할려면 개인 키가 필요하다. 지갑을 성공적으로 연결 했으면 컨트랙트 드롭다운을 클릭하고 배포하려는 컨트랙트를 선택한 후 배포를 진행한다.
배포가 완료되면, 하단의 콘솔과 클레이튼 스코프 에서 확인할 수 있다.
화면 좌측하단에서 배포된 컨트랙트를 확인할 수 있다. 그 중에서 mintNFT
를 실행해 NFT를 생성하고 함수 ownerOf
를 실행하여, NFT 발행이 잘 이뤄졌는지 확인 해 보자.
클레이튼 개발환경에서 직접 NFT를 배포해보면서, 이더리움 개발환경과의 동일한 점과 차이점을 명확히 알 수 있었다. 이더리움 기반의 네트워크여서 상당부분 동일한 점이 있어서 개발을 진행하는데에 어려움점은 없었다.