1. OpenZeppelin 이란?
- 오픈제플린은 2015년 데미안 브리너와 마누엘 아라오스가 공동 설립한 블록체인 개발 회사
- 솔리디티 기반의 스마트 컨트랙트를 개발하는 프레임워크인 오픈제플린과, 스마트 컨트랙트를 관리하고 운영하는 플랫폼인 제플린 OS를 제공
- 오픈제플린을 사용하면 ERC-20, ERC-721의 코드를 직접 구현하지 않고 라이브러리를 불러와서 사용하면되서 편함!
2. 사용법
2.1. Truffle를 이용한 solidity library 활용
2.1.1. truffle init 프로젝트 초기화
$ truffle init
2.1.2. openzeppelin solidity 라이브러리 설치
$ npm install -E openzeppelin-solidity
2.1.3. Ganache - Truffle 연동
- version을 통일해 준다.
2.2. 스마트 컨트랙트 작성
pragma solidity 0.8.10;
import "@openzeppelin/contracts/token/ERC20/ERC20.sol";
contract ZeppelinTestToken is ERC20 {
constructor() ERC20("ZeppelinTestToken", "ZTT") {
_mint(msg.sender, 100000000e18);
}
}
- migrations 폴더 안에 2_deploy_ZeppelinTestToken.js를 작성합니다.
var ZeppelinTestToken = artifacts.require("ZeppelinTestToken");
module.exports = function(deployer) {
deployer.deploy(ZeppelinTestToken);
};
- 배포하기 전 사용할 openzeppelin/contract 경로를 추가함
$ npm install @openzeppelin/contracts
- 배포 후 Ganache에서 블록 생성과 메타마스크를 활용한 테스트 실시
$ truffle migrate