이번시간에는 배포한 Contract를 통해 Token 발행과 전송을 해보겠습니다. 이를 위한 준비는 아래 2미디엄 글을 참조해주세요
먼저 저번 시간에 배포한 token 발행 abi 를 확인해 보겠습니다.
$
cleos get abi hexlanthenry
abi를 확인하다보면 actions 라는 항목에 총 3개의 action이 있음을 확인할 수 있습니다. 이 3개의 name이 실행할 수 있는 action입니다. token발행은 create action을 통해 진행할 수 있습니다.
$
cleos push action hexlanthenry create '["hexlanthenry", "10000000000.0000 HEX"]' -p hexlanthenry
create action 을 통해 ‘HEX’ 토큰을 100억개 생성했습니다. create 라는 action의 인자는 account_name(hexlanthenry), maximum_supply(10000000000.0000 HEX) 입니다. 즉 첫번째 인자는 토큰의 발행자를 나타내며, 두번째 인자는 토큰의 최대 수량을 나타냅니다.
이 인자가 어떻게 들어가는지는 abi 의 struct 를 확인하면 알 수 있습니다.
parameter 1 : account_name type— issuer
parameter 2 : asset type — maximum_supply
+ 저번 강의에서 공지한데로 다음 포스팅에서는 abi가 무엇을 뜻하는지, 이를 통해 어떻게 action을 실행할 수 있는지 알아보도록 하겠습니다.
생성과 발행 이 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 action 역시 data로 어떤 인자가 들어가는지는 abi를 통해 확인 가능합니다.
parameter 1 : account_name type — to
parameter 2 : asset type — quantity
parameter 3 : string type — memo
issue가 잘 실행 되었는지 확인해 보겠습니다.
$
cleos get currency balance hexlanthenry hexlanthenry
저는 issue 를 4번 수행한 후 balance 를 체크 했기 때문에 총 40000개의 HEX token이 존재하는 것을 확인 할 수 있습니다.
create 하지 않은 token을 issue 할 경우
생성한 token 수보다 많은 양을 issue 할 경우
마지막으로 token을 다른 계정에 전송 해보도록 하겠습니다. 다른계정에 token을 보내야 하기 때문에 계정을 생성하거나 존재하고 있는 계정을 사용하시면 됩니다.
아래 명령으로 hexlanthenry 계정이 babylion1234 계정으로 10000개의 HEX 토큰을 보냅니다.
$
cleos push action hexlanthenry transfer '["hexlanthenry", "babylion1234", "10000.0000 HEX", "first"]' -p hexlanthenry
transfer 시 들어가는 data에 대해서도 abi를 확인해보겠습니다. 다른 action보다 많은 인자를 필요로 합니다. [“hexlanthenry”, “babylion1234”, “10000.0000 HEX”, “first”]
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을 보유하고있는 것을 확인할 수 있습니다.
이번 포스팅에서는 token을 생성과 발행 그리고 전송을 다뤄봤습니다. EOS는 Ethereum 과 달리 토큰 발행을 매우 쉽게 진행할 수 있습니다. 이 두 dapp의 차이에 대해서도 포스팅을 하고 싶으나 우선 다음 포스팅에서는 contract 개발의 기초를 다루도록 하겠습니다.
감사합니다.
#헥슬란트 #HEXLANT #블록체인 #개발자 #개발팀 #기술기업 #기술중심