스마트 컨트랙트 배포

이제 MEVerse에 스마트 컨트랙트를 개발하고 배포할 준비가 되었습니다. Solidity를 컴파일하고 배포할수 있는 가장 대중적인 Truffle Framework 기준으로 작성합니다.

프로젝트 디렉토리 생성

우선, 소스 코드가 위치할 디렉토리를 생성하세요.

$ mkdir meverse-test
$ cd meverse-test

트러플 초기화

컨트랙트 배포를 위해 트러플을 초기화하세요.

$ truffle init

간단한 솔리디티 스마트 컨트랙트 작성

meverse-test/contracts 디렉토리에 MEVerseGreeter.sol을 생성합니다.

$ cd contracts
$ touch MEVerseGreeter.sol
$ vi MEVerseGreeter.sol

MEVerseGreeter.sol에 다음 코드를 작성하세요.

// SPDX-License-Identifier: MIT
pragma solidity ^0.5.6;
contract Mortal {
    /* 주소 타입의 소유자(owner) 변수 정의 */
    address payable owner;
    /* 이 함수는 초기화 시점에 실행되어 컨트랙트 소유자를 설정합니다 */
    constructor () public { owner = msg.sender; }
    /* 컨트랙트에서 자금을 회수하는 함수 */
    function kill() public payable { if (msg.sender == owner) selfdestruct(owner); }
}

contract MEVerseGreeter is Mortal {
    /* 문자열 타입의 변수 greeting 정의 */
    string greeting;
    /* 이 함수는 컨트랙트가 실행될 때 작동합니다 */
    constructor (string memory _greeting) public {
        greeting = _greeting;
    }
    /* 주(Main) 함수 */
    function greet() public view returns (string memory) {
        return greeting;
    }
}

마이그레이션(Migration) 스크립트 수정

hdwallet-provider를 활용하여 컨트랙트를 배포합니다. 배포를 하기 위해 library를 설치합니다.

  • truffle의 Dashboard를 활용하여 작성한 컨트랙트도 배포가 가능합니다. Dashboard의 자세한 내용은 하기 사이트를 참고하세요.

Use Truffle Dashboard : https://trufflesuite.com/docs/truffle/how-to/use-the-truffle-dashboard/

truffle-config.js에 MEVerse Testnet network 정보를 수정합니다.

트러플을 사용하여 스마트 컨트랙트 배포

Last updated