EOS Token 생성과 발행, 전송

HEXLANT

이번시간에는 배포한 Contract를 통해 Token 발행과 전송을 해보겠습니다. 이를 위한 준비는 아래 2미디엄 글을 참조해주세요

EOS Smart Contract 를 위한 준비

EOS Smart Contract 배포

먼저 저번 시간에 배포한 token 발행 abi 를 확인해 보겠습니다.

$ cleos get abi hexlanthenry

get abi


abi를 확인하다보면 actions 라는 항목에 총 3개의 action이 있음을 확인할 수 있습니다. 이 3개의 name이 실행할 수 있는 action입니다. token발행은 create action을 통해 진행할 수 있습니다.

Token 생성

$ cleos push action hexlanthenry create '["hexlanthenry", "10000000000.0000 HEX"]' -p hexlanthenry

create action 실행 결과


create action 을 통해 ‘HEX’ 토큰을 100억개 생성했습니다. create 라는 action의 인자는 account_name(hexlanthenry), maximum_supply(10000000000.0000 HEX) 입니다. 즉 첫번째 인자는 토큰의 발행자를 나타내며, 두번째 인자는 토큰의 최대 수량을 나타냅니다.

이 인자가 어떻게 들어가는지는 abi 의 struct 를 확인하면 알 수 있습니다.


abi의 create struct


parameter 1 : account_name type— issuer
parameter 2 : asset type — maximum_supply

+ 저번 강의에서 공지한데로 다음 포스팅에서는 abi가 무엇을 뜻하는지, 이를 통해 어떻게 action을 실행할 수 있는지 알아보도록 하겠습니다.

Token 발행

생성과 발행 이 2개의 개념이 헷갈릴 수 있습니다. create action을 통한 생성은 최대 발행량을 결정 하는 것이며, issue action 은 토큰을 유통 시키는 것입니다.

create : token 생성과 동시에 최대 발행량 결정
issue : token 의 유통

따라서 issue action을 통해 이전에 생성한 HEX token을 발행해보겠습니다.

$ cleos push action hexlanthenry issue '["hexlanthenry", "10000.0000 HEX", "initial issue"]' -p hexlanthenry

issue contract 실행 결과


issue action 역시 data로 어떤 인자가 들어가는지는 abi를 통해 확인 가능합니다.


abi의 issue struct


parameter 1 : account_name type — to
parameter 2 : asset type — quantity
parameter 3 : string type — memo
  • memo 는 transfer 가 어떤 목적인지에 대해 설명해주는 인자 입니다. 생략해도 되는 값으로, 원하시면 parameter 개수를 유지하는 선에서 empty string을 넣으시면 됩니다. memo를 어떻게 쓰면 유용한지에 대해서도 다른 포스팅에 담도록 하겠습니다.

issue가 잘 실행 되었는지 확인해 보겠습니다.

$ cleos get currency balance hexlanthenry hexlanthenry

저는 issue 를 4번 수행한 후 balance 를 체크 했기 때문에 총 40000개의 HEX token이 존재하는 것을 확인 할 수 있습니다.


hexlanthenry 의 HEX token개수


예외사항1

create 하지 않은 token을 issue 할 경우


해당 symbol 이 존재하지 않음


예외사항2

생성한 token 수보다 많은 양을 issue 할 경우


maximum supply를 초과함


Token transfer

마지막으로 token을 다른 계정에 전송 해보도록 하겠습니다. 다른계정에 token을 보내야 하기 때문에 계정을 생성하거나 존재하고 있는 계정을 사용하시면 됩니다.

아래 명령으로 hexlanthenry 계정이 babylion1234 계정으로 10000개의 HEX 토큰을 보냅니다.

$ cleos push action hexlanthenry transfer '["hexlanthenry", "babylion1234", "10000.0000 HEX", "first"]' -p hexlanthenry

transfer 실행결과


transfer 시 들어가는 data에 대해서도 abi를 확인해보겠습니다. 다른 action보다 많은 인자를 필요로 합니다. [“hexlanthenry”, “babylion1234”, “10000.0000 HEX”, “first”]


abi의 transfer struct


parameter 1 : account_name type — from
parameter 2 : account_name type — to
parameter 3 : asset type — quantity
parameter 4 : string type — memo

실제로 babylion1234 계정을 확인해 보면, 방금 배포한 HEX token을 보유하고있는 것을 확인할 수 있습니다.


babylion1234의 HEX 보유


이번 포스팅에서는 token을 생성과 발행 그리고 전송을 다뤄봤습니다. EOS는 Ethereum 과 달리 토큰 발행을 매우 쉽게 진행할 수 있습니다. 이 두 dapp의 차이에 대해서도 포스팅을 하고 싶으나 우선 다음 포스팅에서는 contract 개발의 기초를 다루도록 하겠습니다.

감사합니다.


#헥슬란트 #HEXLANT #블록체인 #개발자 #개발팀 #기술기업 #기술중심

기업문화 엿볼 때, 더팀스

로그인

/