[Solidity] Truffle 공부 Console 기능들

in hive-101145 •  2 months ago 

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'
  }
]
Authors get paid when people like you upvote their post.
If you enjoyed what you read here, create your account today and start earning FREE STEEM!
Sort Order:  

[US$140.00](▼54%)샤오미 드리미 V10 무선 청소기 / 유럽버전! / 6개월무료A/S / 무료배송/

WWW.QOO10.COM

@fur2002ks님이 당신을 멘션하였습니다.

https://www.steemit.com/@fur2002ks/2021-2

@happyberrysboy transfered 15 KRWP to @krwp.burn. voting percent : 100.00%, voting power : 60.57%, steem power : 2011843.13, STU KRW : 1200.
@happyberrysboy staking status : 7650 KRWP
@happyberrysboy limit for KRWP voting service : 15.3 KRWP (rate : 0.002)
What you sent : 15 KRWP (Voting Percent over 100 %)
Refund balance : 2.888 KRWP [50223626 - 621f3f61e20d8ff352eb14439b7becd77e817c9b]