2021. 7. 15. 15:05ㆍ블록체인/Solidity
1. truffle init을 통한 skeleton 만들기
2. 기초 코드 작성하기
3. 배포 코드 작성하기
4. 컨트랙트 배포하기
1. truffle init
openzeppelin 라이브러리를 설치해야 하는데 openzeppelin은 smartcontract 코드를 모아둔 라이브러리이다.
$ mkdir smartcontract
$ cd smartcontract
$ truffle init
$ npm init -y
$ npm install -E openzeppelin-solidity
truffle-config.js 파일을 키고 network와 complier 버전을 수정해야 한다.
2. 기초 코드 작성하기
contracts폴더에 Test.sol 만들기
// SPDX-License-Identifier: GPL-3.0
pragma solidity ^0.8.0; // 솔리디티 버전
contract Test {
string public name = "Test Token"; //토큰 이름
string public symbol = "TEST"; //명칭 이름
uint public decimals = 18; //소수점 18자리 까지 사용
uint public INITIAL_SUPPLY = 10000 * 10 ** decimals; //초기 발행량설정 1000.000000000000000000
string constant test = "You can not see this message";
}
public : 누구나 확인할 수 있다,
constant :변하지 않는다.
public이 없으면 사람들이 외부에서 이 TEST 컨트랙트를 확인할 때 그 변수를 찾을 수 없다.
3. 배포 코드 작성하기
migrations 폴더에 2_Test_Migration.js 파일 생성
const TestToken = artifacts.require("./Test.sol");
module.exports = function(deployer){
deployer.deploy(TestToken)
};
4. 컨트랙트 배포하기
배포 전에 ubuntu 하나를 더 켜서
ganache를 실행해줘야 한다.
ganache-cli --host 0.0.0.0
실행 후
기존 우분투에서 컴파일
중요한 건 contract address인데 이 주소를 기반으로 우리가 발행한 "TEST"라는 smart contract와 통신할 수 있다.
complie, migrate가 오류 없이 잘 되었다면 build 폴더가 생성된 걸 볼 수 있다.
생성 후 Metamask를 켜고 network는 localhost8545로 설정해준다.
https://www.myetherwallet.com/
Browser Extension 클릭 후 계정 연결
Contract Address에는 truffle migrate 해서 나온 지갑 주소를 넣어주고
ABI/JSON Interface에는
"abi": [] 코드에서
[] 안에 해당하는 줄을 복사해서 넣어주면 된다.
Read를 누르면 contracts폴더에 Test.sol에 설정한 값이 나온다.
'블록체인 > Solidity' 카테고리의 다른 글
이더리움 토큰 발행 4) Ropsten 테스트넷에서 발행하기 (infura) (0) | 2021.07.21 |
---|---|
이더리움 토큰 발행 3) 토큰 Local에서 발행하기 / metamask (0) | 2021.07.16 |
Solidity )remix 스마트 컨트랙트 예약 예제 (0) | 2021.07.14 |
Solidity)remix 짝수 판별 / 반복문 (0) | 2021.07.14 |
Solidity ) mapping - 조건문 (0) | 2021.07.14 |