[클레이튼] Klaytn KIP7 토큰 만들기 / 발행량 조절하기
본문 바로가기
Block Chain

[클레이튼] Klaytn KIP7 토큰 만들기 / 발행량 조절하기

by 쏠수있어ㅤ 2022. 2. 28.
반응형

 

유튜버 "코인리서치" 님의 강의로 공부하면서 정리해본 글

코인리서치님이 매우 쉽게 잘 알려주셔서 잘 성공할 수 있었다. 

블록체인 선구자 역할을 해주셔서 감사합니다.

 

https://www.youtube.com/watch?v=3Z1FTufzD1Y 

 

 

 


 

 

 

클레이튼 Klaytn으로 아래 두 가지의 토큰을 만들어볼 예정이다. 

 

  1. premint 하는 방법 - 발행량이 딱! 정해진 토큰 : 생성할 토큰의 일정 발행량 정하고 이후에 발행 안함
  2. premint하고 mint 하는 방법 - 발행량이 추가로 늘어날 수 있는 토큰 : 일정 발행량 생성하고 이후에 추가 발행

 

 

토큰을 만들어 보기에 앞서 준비해놓아햐 하는 것 

 

1. kaikas : 클레이튼 지갑 (이더리움의 메타마스크와 매우 흡사함)

아래 링크를 타거나 구글에 "kaikas" 검색해서 크롬 확장 프로그램으로 설치 및 회원가입하면 된다. 

주의점은 각 계정마다 주어지는 본인인증 암호(?)라고 해야하나 본인만 알아야하는 (kaikas도 알면 안됨) 글자들로 이루어진 키를 주는데 이 키를 (영문 소문자 무작위 단어로 이루어져있음) 소중하게 나만 잘 보관해야함. 메모지에 적어두거나 일기장에 적어두거나 ! 이걸 까먹거나 잃어버리게 되면 나중에 나의 코인들을 찾지 못하게 된다. 그 누구도...... 

    https://chrome.google.com/webstore/detail/kaikas/jblndlipeogpafnldhgmapagcccfchpi

 

Kaikas

클레이튼 블록체인 지갑을 웹 브라우저에서 만나보세요

chrome.google.com

 

그리고 왼쪽 위의 버튼을 눌러 메인넷 -> baobab 테스트 넷으로 변경한다. 

 

 

 

2. 테스트 클레이 얻기 : 

클레이튼의 메인넷 블록체인에 올릴 때 진짜 클레이튼 코인이 필요하듯이 테스트넷에는 테스트 용 클레이 코인이 필요하다. 

아래의 링크로 들어가서 테스트용 코인을 받기!  보통 테스트용 코인을 받는 걸  faucet(수도꼭지)이라고 한다. 

https://baobab.wallet.klaytn.com/access?next=faucet 

 

Klaytn Wallet

 

baobab.wallet.klaytn.com

 

klaytn wallet key or private key 넣어 주는 곳에 우리는 private key를 넣을 예정이다. 

아까 설치한 클레이튼 kaikas 카이카스를 열고 왼쪽 위의 본인 아이디 클릭 -> 아래 그림의 "지갑키 관리" 를 클릭 -> 비밀번호 입력하고 "지갑키 내보내기"까지 하면 나의 개인키 주소가 나온다. 

 

복사한 걸 붙여 넣고 Access를 눌러주면 테스트용 클레이 코인을 얻을 수 있다. 오른쪽 사진을 보면 5Klay 가 생겼다~! 현재 1450원 시세로 따지면 7,250원 정도의 가짜(?) 테스트용 코인을 얻었다. 물론 실제 사용할 수 없음 

현재 24시간에 한번씩 다시 받는게 가능하다. 

 

 

 

 

3. Kaytn IDE : 이더리움의 remix와 같은 존재 

그냥 아래 링크 또는 구글에 "Klaytn IDE" 검색해서 들어가면 된다. 들어간 것만으로 준비는 끗 ~

https://ide.klaytn.com/#optimize=false&runs=200&evmVersion=constantinople&version=soljson-v0.8.7+commit.e28d00a7.js 

 

Klaytn IDE

 

ide.klaytn.com

 

 

 

 

4. KlaytnScope : 모든 클레이튼 거래의 집약소

테스트넷의 클레이튼의 거래 진행상황을 실시간으로 보고 또 과거의 기록을 검색할 수 있는 사이트이다. 

이것도 아래 링크에 들어가면 바로 볼 수 있다.

 

https://baobab.scope.klaytn.com/

 

Klaytnscope

Klaytnscope allows you to find data by monitoring network health and statistics of Klaytn as well as profiling blocks and transactions on Klaytn.

baobab.scope.klaytn.com

 

 

 

 

 


 

 

 

 

이제 토큰 만들기 준비는 끝! 이제 토큰 만들기 시작 💫

 

먼저 Premint (발행량이 딱 정해져있는 토큰 - 추가 발급 없는) 토큰을  발행하는 방법

 

1. 오픈제플린에 들어가 ERC20 규격으로 솔리디티 코드를 복사하기

아래 링크 openZeppelin 사이트에서 erc20 규격에 맞는 토큰 코드를 아주 쉽게 만들 수 있다. openZeppelin은 토큰 생성을 쉽고 편하게 만들어주는 하나의 라이브러리라고 생각하면 된다. 

Name : 내가 발행할 토큰 이름 

Symbol : 토큰의 상징이름 (이더리움의 경우 ETH) 

premint : 발행할 코튼의 개수 

 

https://wizard.openzeppelin.com/

 

OpenZeppelin Contracts Wizard

How can I use this? Select the kind of contract that you want (current support for ERC20, ERC721, ERC1155, and Governor), set your parameters and desired features (token name, symbol, premint amount, access control, etc.), and Contracts Wizard will generat

wizard.openzeppelin.com

 

 

 

2. Klaytn IDE 코드 컴파일하기

(컴파일하기 -> 블록체인이 알아들을 수 있는 언어로 바꾼다)

Klaytn IDE 를 열고 위에서 복사한 코드 contracts 폴더 안, 파일 생성하여 붙여넣기

여기서 파일명은 자유롭게 해도 좋지만 소스 코드가 솔리디티 언어이므로 .sol 로 끝나게 한다.

그 다음

왼쪽 메뉴의 두번째 아이콘을 클릭 -> compliler의 버전을 맞춰준다. 

Language : solidity 

EVM version : istanbul (Baobab) 

-> 그리고 컴파일 버튼 클릭!

 

 

3. 블록체인 테스트용 네트워크 상에 배포하기 (deploy) 

메뉴 세번째 클레이튼 K 아이콘 클릭

-> Account에 나의 개인키를 넣어줘야 한다. (개인키 얻는 방법은 위 준비사항의 2번. 테스트 클레이 얻기 참고) 

-> Contract : 작성한 코드의 배포할 함수명을 선택해준다. 아래 그림에서 내가 배포할 함수는 "CoinResearch"이므로 "CoinResearch"를 찾아 선택!

-> Deploy 버튼 클릭 

Deploy 성공! == 테스트넷에 나의 토큰생성하는 함수가 배포됨 

아래에 ERC20규격 (토큰만들 때 정해져있는 규칙)에 맞는 함수들이 쭉 나온다. 

balanceOf 함수에 나의 계정주소를 넣고 call을 하면 (함수호출) 내 계정에 100만 토큰이 들어온다. 

저 0이 많은 이유는 끝에서 18개는 소수점이다. 

 

나온 함수들을 잘 보면 "mint (발행하다, 주조하다)" 새로 토큰을 생성할 때 사용할 함수가 없는 걸 확인할 수 있다. 

위의 방법은 발행량 100만개로 정해져있는 토큰이었고 이제 계속해서 첫 발행 이후에도 계속 토큰을 찍어낼 수 있는 방법을 알아보자 

 

 

 


 

 

 

 

추가 토큰 발행할 수 있는 방법

위의 내용과 크게 다르지 않다. 그냥 토큰 소스를 오픈제플린에서 가져올 때 mintable(발행할 수 있는) 을 클릭만 해주면 된다. 

 

1. OpenZepplin 에서 mintable기능을 추가한 코드를 복사한다. 

CRMint라는 토큰 이름의 상징 CRM으로 설정, mintable을 클릭 -> mint 함수 생김

-> 코인을 만든 사람이 찍어낼 수 있다. (onlyOwner) 

즉, 코인을 만든사람에게만 mint 함수 권리가 있다. (다른 사람이 계속 찍어낼 수 있는 건 토큰계의 초인플레이션을 불러올듯..)

 

이후 Klaytn IDE에서 컴파일, 배포 모두 동일하게 진행한다.  (위 첫번째 방법의 2, 3번째 과정 그대로 ㄱㄱ) 

그럼 내 계좌에 현재 CRMint 코인이 10000개가 있는 상태이다. 여기에 더 추가로 토큰을 발행하고 싶으면 

 

-> 배포 후에 Mint라는 함수 찾기 

mint함수에 to - 내 주소 넣고 amount 넣고 transact 클릭 

0 이 18개가 소수점이므로 위의 0은 총 19개 -> 토큰 10개 !만 추가 발행 

 

그리고 테스트넷 상의 나의 거래들을 확인하고 싶을 때 klaytnScope 사이트에서 확인하기 

 

 

KlaytnScope 활용

검색 창에 나의 주소나 contract 토큰 주소를 넣어 트렌젝션을 트레킹해볼 수 있다. 

내 계정주소를 넣고 토큰 발랜스 클릭해보니 위에서 실행한 토큰들을 확인할 수 있었다. 

https://baobab.scope.klaytn.com/

 

Klaytnscope

Klaytnscope allows you to find data by monitoring network health and statistics of Klaytn as well as profiling blocks and transactions on Klaytn.

baobab.scope.klaytn.com

 

 

 

 

사실상 클레이튼 토큰 발행은 Klaytn IDE에서 코드를 작성 -> 컴파일 -> 배포 라는 간단한 절차였다. 

 

openZeppeline은 토큰 규격에 맞는 소스코드를 제공해주고

Klaytn IDE에서 실질적으로 솔리디티언어의 코드를 컴파일, 블록체인 네트워크 상 배포하고

KlaytnScope에서 나의 거래를 확인할 수 있다. 

 

처음에는 뭐가 먼지 헷갈렸는데 정리해보니 조금 이해가 간다. 위에서 ERC20 토큰 규격으로 만들어보았는데 ERC20과 다른 규격들이 또 어떻게 다른지 자세하게 공부겸 정리를 또 해봐야겠다. 

 

 

반응형

댓글