메타코인(Metacoin) 발행 트러플 예제
2019. 3. 21. 13:50ㆍBlockChain/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)
'BlockChain > Solidity' 카테고리의 다른 글
오픈제플린을 이용한 토큰 생성 (2) | 2019.03.21 |
---|---|
우분투 도커로 트러플 환경 구성하기 (1) | 2019.03.21 |