나만의 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
- How to Create and Deploy an ERC20 Token
반응형
'블록체인 > 솔리디티' 카테고리의 다른 글
[솔리디티] 간단한 Smart Contract (코인 발행 예제) (0) | 2022.05.24 |
---|---|
[Solidity]Truffle, Ganache를 이용한 Smart Contract 작성 (0) | 2021.12.10 |
[Solidity] 함수 (0) | 2021.12.04 |
[Solidity] 변수 및 데이터 타입 (0) | 2021.12.01 |
[Solidity] 구조체 & 배열 (0) | 2021.12.01 |