Blockchain - OpenZeppelin 실습

김도영·2022년 7월 14일

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개의 댓글