blockchain

스마트 컨트랙트 배포(Truffle)

chanchand 2023. 2. 12. 16:43
반응형

* Baobab 네트워크에서 배포합니다.

 

- 트러플(Truffle)

솔리디티로 작성된 스마트 컨트랙트를 트러플을 통해 컴파일하고 배포할 수 있다.

 

 

- 트러플 설치

$ npm i -g truffle

 

 

- 클레이 받기

배포를 위해서는 klay가 필요하기 때문에 카이카스 지갑에 klay를 받는다.

2023.02.03 - [blockchain] - [Klaytn] Baobab환경-Klay 받기

 

[Klaytn] Baobab환경-Klay 받기

- Baobab Klaytn Wallet 사이트 접속 https://baobab.wallet.klaytn.foundation/faucet Klaytn Wallet baobab.wallet.klaytn.foundation - Faucet 실행 계정 주소를 입력하면 KLAY 잔액을 확인할 수 있다. Run Faucet 버튼을 클릭하면 150 KL

chandlerbong.tistory.com

 

 

 

- 프로젝트 디렉터리 생성

$ mkdir klay
$ cd klay

 

 

- 트러플 초기화

컨트랙트 배포를 위해 트러플을 초기화한다.

$ truffle init

 

 

- 솔리디티 스마트 컨트랙트 작성

$ cd contracts
$ touch test1.sol
$ vi test1.sol

test1.sol에 컨트랙트 코드를 작성한다.

pragma solidity 0.5.6;

contract CONTRACT_NAME {
 ...
}

 

- 마이그레이션 스크립트 작성

$ cd migrations
$ vi 1_initial_migration.js

 

-  1_initial_migration.js

const Test = artifacts.require('./test.sol')

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

 

 

- .env 파일 생성

$ npm i dotenv

클레이튼 계정의 개인키를 저장한다.

PRIVATE_KEY=''

 

 

- HDWallet-Provider 설치

$ npm install truffle-hdwallet-provider-klaytn

 

 

-  스마트 컨트랙트 배포

- truffle-config.js

require('dotenv').config();
const HDWalletProvider = require("truffle-hdwallet-provider-klaytn")

const NETWORK_ID = '1001'
const URL = 'https://api.baobab.klaytn.net:8651'
const GASLIMIT = '8500000'

const PRIVATE_KEY = process.env.PRIVATE_KEY; //환경변수

module.exports = {
  networks: {
    baobab: { //네트워크
      provider: () => new HDWalletProvider(PRIVATE_KEY, URL),
      network_id: NETWORK_ID,
      gas: GASLIMIT,
      gasPrice: null,
    },
  },
  // 컴파일러 버전
  compilers: {
    solc: {
      version: '0.5.6',
    },
  },
}

 

$ truffle deploy --network baobab

 

--network : 배포할 네트워크

--reset : 덮어쓰기

 

 

 

반응형

'blockchain' 카테고리의 다른 글

remix - Deploy & At Address  (0) 2023.03.18
IPFS  (0) 2023.03.03
[Klaytn] 스마트 컨트랙트 배포  (0) 2023.02.09
[Klaytn] EN  (0) 2023.02.09
[Klaytn] CountBApp  (0) 2023.02.05