REF: 20분만에 토큰배포 영문사이트


truffle환경에서 zeppelin을 이용해 토큰을 생성하는 방법 및 예제. 



<Zeppelin>


Zeppelin기반으로 Token을 만들고 싶다면..

   1. npm방식으로 zeppelin을 설치하는 방법과

   2. ethpm방식으로 zeppelin을 설치하는 방법이 있는데..   



  1.1  $ npm  install  zepplin-solidity

       혹은   package.json 이용 추천:
      => node_modules/zepplin-solidity 폴더 생성됨.

     

아래처럼 package.json을 만들고..   $ npm intall로 설치함.

{
"name": "truffle",
"version": "0.1.0",
"private": true,
"dependencies": {
"zeppelin-solidity": "1.9.0"
},
"devDependencies": {},
"scripts": {} } 


  ==>   2. Token생성.으로 이동.


  1-2.ethpm방식 (현재 비추)

    딱 필요한 것만 받는 ethpm방식이 더 좋을 수도 있는데

현재 1.9.0을 못 받고, 1.3.0을 받아오는 문제가 있다..  (일단 pass)

아래와 같이 ethpm.json파일을 만들고

  

  ethpm.json 파일

{
"package_name": "zeppelin",
"version": "1.9.0",
"description": "Secure Smart Contract library for Solidity",
"authors": [
"Manuel Araoz <manuelaraoz@gmail.com>"
],
"keywords": [
"solidity",
"ethereum",
"smart",
"contracts",
"security",
"zeppelin"
],
"license": "MIT"
}

 




$truffle install zeppelin  하면 intalled_contracts밑에 패키지가 설치가 된다..    REF


토큰관련 코딩후에는 그냥 

$truffle compile -> $truffle migrate  로 다른 일반 contracts와 함께 개발/배포 함. 



($truffle publish는 아직은 필요없는거 같은데.. 이건 ROPSTEN용도이려나? .... 아직 미 test중)



2. 그 후 Token solidity생성.


pragma solidity ^0.4.23;


import "../node_modules/zeppelin-solidity/contracts/token/StandardToken.sol";



contract ATZToken is StandardToken{

uint public INITIAL_SUPPLY = 10000000; //100만개 나누기 decimals(10**decimals)으로 표시됨.
string public name = 'Test ATZ Token';
string public symbol = 'ATZ';
uint8 public decimals = 1; //토큰을 얼마나 잘게 나눌수 있느냐. 10**X
address owner;

bool public released = false;

function ATZToken(){
totalSupply_ = INITIAL_SUPPLY * 10 ** uint(decimals);
balances[msg.sender] = INITIAL_SUPPLY; //각 계정별 잔액 저장. 상속받아 자동생성
owner = msg.sender;
}

function transfer(address to, uint256 value) public returns (bool) {
super.transfer(to, value);
}
function allowance(address owner, address spender) public view returns (uint256) {
super.allowance(owner, spender);
}
function transferFrom(address from, address to, uint256 value) public returns (bool) {
super.transferFrom(from, to, value);
}
function approve(address spender, uint256 value) public returns (bool) {
super.approve(spender, value);
}

}

그 후에,
truffle/migrations 폴더 밑에
2. _deploy_contracts.js에 ATZToken을 추가하고

$ truffle compile
$ truffle migrate (--reset) 하면 ganache등에 배포가 된다.




 






3. 회원가입등의 process가 발생할 때마다, 특정 회원에게 Token을 보내기..작성예정. REF

Posted by yongary
,