Blockchain - OpenZeppelin 실습

김도영·2022년 7월 14일
0

OpenZeppelin

OpenZeppelin은 2015년 데미안 브리너와 마누엘 아라오스가 공동 설립한 블록체인 개발 회사이다. 솔리디티 기반의 스마트 컨트랙트를 프레임워크인 OpenZeppelin과 스마트 컨트랙트를 관리하고 운영하는 플랫폼인 제플린OS를 제공하고 있다.

Truffle를 활용한 openzeppelin-solidity 라이브러리 활용

$ mkdir openZeppelinSample
$ cd openZeppelinSample
$ truffle init

openzeppelin solidity 라이브러리 설치

$ npm install -E openzeppelin-solidity

VScode에서 내부 구조를 확인할 수 있다.

Ganache 연동

Ganache에 업로드하기 위해 truffle-config.js 에서 Ganache - Truffle을 연동한다.

ERC-20 스마트 컨트랙트 작성

ZeppelinTestToekn.sol을 작성한다.

// SPDX-License-Identifier: GPL-3.0
pragma solidity ^0.8.10;

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

contract ZeppelinTestToken is ERC20 {
    constructor() ERC20("ZeppelinTestToken", "ZTT") {
        _mint(msg.sender, 100000000e18);
    }
}

migration 폴더 안에 2_deploy_ZeppelinTestToken.js를 작성한다.

var ZeppelinTesetToken = artifacts.require("ZeppelinTestToken");

module.exports = function(deployer) {
    deployer.deploy(ZeppelinTesetToken);
};

배포를 하기 전에 사용할 openzeppelin/contract 경로를 추가한다.

$ npm install @openzeppelin/contracts

이후 배포를 진행하여 Ganache에서 블록 생성과 Metamask를 활용한 테스트를 실시한다.

$ truffle migrate

Remix에서 OpenZepplein 라이브러리 사용하기

Remix에서는 자동으로 npm 패키지를 제공한다.

`ZepplinTestToken.sol 파일을 만들면 왼쪽 폴더에 자동으로 생성된다.

Metamask를 이용해 배포 후 토큰이 잘 들어왔는지 테스트를 진행한다.

profile
Blockchain Developer

0개의 댓글