OpenZeppelin
OpenZeppelin
은 2015년 데미안 브리너와 마누엘 아라오스가 공동 설립한 블록체인 개발 회사이다. 솔리디티 기반의 스마트 컨트랙트를 프레임워크인 OpenZeppelin
과 스마트 컨트랙트를 관리하고 운영하는 플랫폼인 제플린OS를 제공하고 있다.
$ mkdir openZeppelinSample
$ cd openZeppelinSample
$ truffle init
$ npm install -E openzeppelin-solidity
VScode에서 내부 구조를 확인할 수 있다.
Ganache에 업로드하기 위해 truffle-config.js
에서 Ganache - Truffle을 연동한다.
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
에서는 자동으로 npm 패키지를 제공한다.
`ZepplinTestToken.sol 파일을 만들면 왼쪽 폴더에 자동으로 생성된다.
Metamask를 이용해 배포 후 토큰이 잘 들어왔는지 테스트를 진행한다.