Truffle의 초기화 및 배포 방법은 아래를 참조한다.
여기서는 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 }
'블록체인 > 블록체인 서비스 개발' 카테고리의 다른 글
[오류해결] Web3 설치 시, React 에러 해결 (972) | 2022.04.22 |
---|---|
[이더리움개발101] Truffle Test 사용해서 검증하기 (0) | 2022.04.18 |
[이더리움개발101] Truffle, Ganache-cli 설치, Initial 배포 (990) | 2022.04.18 |
[NFT 101] 블록체인 테스트 개발 계정설정 (0) | 2022.03.25 |
[NFT 101] Frontend 개발 (0) | 2022.03.25 |
댓글