[Solidity] Truffle 공부 Console 기능들
Solidity 메모2!
유튜브 영상 자료(Dapp Campus)를 따라해보면서 배우고 있는 중입니다. 한번 따라해보면 처음에 익숙해지는데 꽤나 좋을 것 같습니다.
여기서는 로또비스무리한 컨트랙트를 만들고 있군요. 그래서 Lottery Contract로 만들어 보고 있습니다.
Truffle에는 블록체인 Console로 접근하는 기능을 제공하고 있습니다.
truffle console
console에 진입하면 각종 기능들을 사용 할 수 있는데 가장 대표적인 것이 web3.js 사용이 가능해집니다.
console에서는 기본적으로 "javascript" 기능은 먹는 것 같습니다.
// console 에서 web3 을 입력하면 web3 항목들이 표시됩니다.
web3
// 가장 많이 사용되는 것은 web3.eth 이므로 eth라는 변수로 설정도 가능합니다.
eth = web3.eth
// eth 함수 예시들
eth.getAccounts()
eth.getBalance('0x105Dd1dB1EE66aeC9D7259a45544081Dd93F04FF')
결과 화면
console 에 배포된 contract가 있는 경우에도 바로 접근이 가능합니다.
컨트랙트 소스
// Lottery.sol source
pragma solidity >=0.4.21 < 0.6.0;
contract Lottery{
address public owner;
constructor() public {
owner = msg.sender;
}
function getSomeValue() public pure returns(uint256 value) {
return 6 * 6;
}
}
기능 호출
// 비동기 함수로, lt라는 변수에 instance 값을 할당해줍니다.
// deployed 함수는 배포된 컨트랙트의 정보들을 가져옵니다.
Lottery
.deployed()
.then(function(instance){
lt=instance
})
// owner 주소 확인
lt.owner();
// 컨트랙트에 선언한 컨트랙트 호출
lt.getSomeValue();
// 결과화면
// 제일 앞의 BN은 BigNumber 라는 것을 의미
// 이더리움에서는 다루는 숫자가 크기 때문에(2의 31승 - 1의 범위) Bignumber을 많이 사용함
BN { negative: 0, words: [ 36, <1 empty item> ], length: 1, red: null }
contract abi
- 인터페이스로 외부에서 어떤 함수에 접근 가능한지, 파라미터가 무엇인지, 리턴값이 무엇인지 확인 가능합니다.
[
{
inputs: [],
payable: false,
stateMutability: 'nonpayable',
type: 'constructor',
constant: undefined
},
{
constant: true,
inputs: [],
name: 'owner',
outputs: [ [Object] ],
payable: false,
stateMutability: 'view',
type: 'function',
signature: '0x8da5cb5b'
},
{
constant: true,
inputs: [],
name: 'getSomeValue',
outputs: [ [Object] ],
payable: false,
stateMutability: 'pure',
type: 'function',
signature: '0xa40674b7'
}
]
0
0
0.000
0 comments