본문 바로가기
블록체인/블록체인 서비스 개발

[이더리움개발101] Truffle Console 사용

by 마고커 2022. 4. 18.


Truffle의 초기화 및 배포 방법은 아래를 참조한다.

 

 

[이더리움개발101] Truffle, Ganache-cli 설치, Initial 배포

1. 이더리움 배포와 테스트를 위한 Truffle(배포), Ganach-cli(테스트) 설치 > npm install truffle -g > npm install ganache-cli -g 2. 설치 후 version 확인 > truffle version Truffle v5.5.7 (core: 5.5.7) G..

magoker.tistory.com

 

여기서는 Truffle Console을 통해 계약서에 접근하는 방법을 본다. Truffle Console은 geth를 대체한다.

 

우선 계약서(Lottery.sol)에 일부 테스트할 내용을 추가한다. getSomeValue() 함수를 Truffle Console에서 접근할 예정이다. 

 

// SPDX-License-Identifier: MIT
pragma solidity >=0.4.22 <0.9.0;

contract Lottery {
    address public owner;

    constructor() {
        owner = msg.sender;
    }

    function getSomeValue() public pure returns (uint256 value) {
        return 5;
    }
}

 

작성된 계약서를 배포(truffle migrate --reset)한 뒤, Truffle Console을 실행한다.

 

> truffle console
 
 // 계약서 주소 확인
truffle(development)> Lottery.address
'0x2e9EE18D1BE414103941b5F5F83DF4101E444c1b'

// 계약서 접근을 용이하게 하기 위해 변수(lt)에 계약서 인스턴스를 할당
truffle(development)> Lottery.deployed().then(function(instance){lt=instance}

// 확인
truffle(development)> lt
TruffleContract {
  constructor: [Function: TruffleContract] {
    _constructorMethods: {
      configureNetwork: [Function: configureNetwork],
      setProvider: [Function: setProvider],
      new: [Function: new],
      .....
      .....
      
// 사용할 수 있는 함수 확인 (lt. type하고 탭을 두번 누르면 나옴)
truffle(development)> lt.
lt.__proto__             lt.hasOwnProperty        lt.isPrototypeOf         lt.propertyIsEnumerable
lt.toLocaleString        lt.toString              lt.valueOf

lt.abi                   lt.address               lt.allEvents             lt.constructor
lt.contract              lt.getPastEvents         lt.getSomeValue          lt.methods
lt.owner                 lt.send                  lt.sendTransaction       lt.transactionHash

// owner 확인
truffle(development)> lt.owner()
'0xF76c9B7012c0A3870801eaAddB93B6352c8893DB'

// 계약서에 정의된 함수(getSomeValue) 실행
truffle(development)> lt.getSomeValue()
BN { negative: 0, words: [ 5, <1 empty item> ], length: 1, red: null }

 

 



댓글