본문 바로가기
블록체인/솔리디티

[솔리디티] 나만의 토큰 만들기 (feat. ERC20)

by 발담그는블로그 2022. 5. 28.

나만의 ERC20 토큰 생성하기.

 

토큰 생성 및 mint

pragma solidity >=0.4.22 <0.9.0;

import "@openzeppelin/contracts/token/ERC20/ERC20.sol";

contract ZetToken is ERC20 {

    constructor () public ERC20("Zi Erc Token", "ZET") {    
        _mint(msg.sender,100000*10**18);
    }
}

ERC20 상속

npm install @openzeppelin/contracts

ERC20 컨트랙트를 만들기 위해선 openzeppelin의 ERC20을 import 한 후, is 문법을 통해 상속받아야 한다. 다음과 같이 상속받으면 ERC20안에 있는 메서드에 접근 가능하며, 이를 overriding하여 사용할 수 있다. 

constructor

컨트랙트가 처음 실행될 때 한번만 실행된다. 상속받은 ERC20을 사용하여 토큰을 생성한다. ERC20("Zi Erc Token", "ZET")를 통해 토큰의 이름을 지정한다.

_mint(to - 토큰을 받을 주소, amount - 토큰 생성하는 양) 

블록체인에서 Minting이란 정보를 검증하고, 새로운 블록을 생성하고, 블록체인안에 정보를 기록하는 과정을 말한다. 토큰이나 NFT를 생성하여 블록체인안에 저장하는 것을 Minting이라고 한다.

_mint 메서드는 Minting 과정을 할 수 있도록 하는 메서드다. ERC20 컨트랙트를 상속받아서 사용가능하다. 다음 로직은 100000개의 토큰을 생성한 후 생성한 사람의 주소값(msg.sender)에 보내는 로직이다. 

(참고할점: 솔리디티와 EVM은 소수점을 지원하지 않는다. 소수점을 사용하고 싶으면 다른 라이브러리?를 상속 받아야 한다.)

 

 

Reference

- Openzeppelin: ERC20

- How to Create and Deploy an ERC20 Token

- Solidity, 핵심만 정리했습니다

- LAB: ERC Token Sale

 

 
반응형