메타코인(Metacoin) 발행 트러플 예제

2019. 3. 21. 13:50BlockChain/Solidity

'처음 배우는 블록체인' 8장 실습을 참고로 구성된 예제입니다.

트러플 버전은 5.0.4에서 진행하였습니다.

버전정보

-truffle(develop)> version

-Truffle v5.0.4 (core: 5.0.4)

-Solidity v0.5.0 (solc-js)

-Node v8.10.0

MetaCoin 실습은 원문링크를 참고하세요.

###예제 프로젝트 다운로드


mkdir metacoin

cd metacoin

truffle unbox metacoin

컴파일 및 마이그레이션


truffle develop

compile

마이그레이션 실행


migrate

마이그레이션을 실행한 후 결과에서 계약주소를 복사해놓아야 한다.

배포 확인

커맨드 8-16 메타코인 계약을 변수에 저장


truffle(develop)> let instance = await MetaCoin.deployed()

undefined

truffle(develop)> let accounts = await web3.eth.getAccounts()

undefined

커멘드 8-17 getBanlance 함수 호출

web3.eth.getBalance("0x

~

") 로는 이더리움 잔액을 확인하는 것이고 아래는 발행한 메타코인의 잔액을 확인하는 것이다. 착각하지 말자.


truffle(develop)> let balance1 = await instance.getBalance(accounts[0])

undefined

truffle(develop)> balance1.toNumber()

10000

커멘드 8-18 getBalance 호출


truffle(develop)> let balance2 = await instance.getBalance(accounts[1])

undefined

truffle(develop)> balance2.toNumber()

0

커멘드 8-19 sendCoin 함수로 계정 1에 메타코인 송금하기


truffle(develop)> instance.sendCoin(accounts[1], 1000)

커맨드 8-20 계정 0과 1의 잔액 확인


truffle(develop)> let newBalance = await instance.getBalance(accounts[0])

undefined

truffle(develop)> newBalance.toNumber()

9500

truffle(develop)> let received = await instance.getBalance(accounts[1])

undefined

truffle(develop)> received.toNumber()

500

커맨드 8-21 소유한 메타코인양을 초과해서 송금

1,000 메타코인을 송금했을 때와 비교하면 거래 로그의 logs 항목이 비어있음을 확인할 수 있다.


truffle(develop)> instance.sendCoin(accounts[1], 9500)