본문 바로가기

Klaytn Dev Ambassador

klaytn node 띄워보기 3탄(deploy contract + dapp open)

이번 실습을 정리해보면 다음과 같다.

 

1. 이더리움 & 클레이튼 노드 hh 키워드로 띄우기 

2. hh deploy --network localhost --reset

처음에는 컴파일 할게 없다며 뭐지..? 싶었다가 갑자기 Poll을 deploy 한다는 문구가 띄워졌다. 

3. hh addr --network localhost 

addr은 리눅스에서 address의 줄임말이라고 한다. 여기서 localhost에서 Poll로 배포된 주소를 출력하라는 의미같다. 

참고로 cat deployments/localhost/Poll.json | jq.address를 해보면 위에서는 { Poll: '주소'}가 나오지만 jq로 prettier 역할을 하니 좀 더 보기좋게 출력된다. 사실 한 줄 주소 출력이니 jq는 적용하지 않았다. 

4. 그런데 매번 --network localhost 치기 힘드니, 선언을 해주도록 한다. alias 같은 기능이다. 

export HARDHAT_NETWORK = localhost로 하면 hh 명령에서는 --network localhost라는 의미가 축약되어 있다는 것이다. 

 

5. hh call Poll catVotes 

localhost 네트워크야~ catVotes를 불러주렴~ 하면 0x00 밖에 출력이 안된다. 일단 Poll을 통해 catVotes를 호출했다 정도만 알아두자. 

 

 

6. hh send Poll voteDog 

localhost 네트워크야~ voteDog 멍멍이에게 투표해줘 라는 의미로 보인다. 

 

* 일단 이에 대해 좀 더 찾아보니, 이더를 보낼때와 받는때로 구분이 된다고 한다.

이더를 보낼때 : call,send,transfer

이더를 받을때 : payable, receive(), fallback() 

내 이더를 보낼테니~ 투표좀~

이더를 보내니  gasUsed가 찍혀 나온다. 

 

 

 

7. 멍멍이한테만 투표하지 말고 야옹이한테도 투표하자 

hh send Poll voteCat 

얘도 똑같이 가스를 썼고 블록해시가 얼마고.. 멍멍이한테 투표한다고 send() 보냈을때와 같은 형식으로 출력된다. 

 

이렇게 몇 번을 반복하다가... 

 

 

 

8. 이제 웹앱과 상호작용 하기 위해 지갑을 연결한다. 

메타마스크와 카이카스 연결해서 테스트 이더를 받는다(이게 다 진짜 이더고 내 돈이었으면...ㄸㄹㄹ ㅠㅠ) 

 

 

 

9. 다시 터미널로 돌아와 

- cd app

- npm run dev:localhost를 해주고 아래 로컬 주소로 들어가게 되면..! 

 

 

10. 멍멍이랑 야옹이 대결이 나온다. 

 

 

11. 지갑을 연결하고 Vote를 하면 이제 내가 이 컨트랙트 주소로 투표를 하겠다 (테스트 이더를 보내겠다) 하면 트랜잭션 확인 창이 나온다. 

 

 

12. 결과를 확인해보니 아깐 야옹이3 : 멍멍이1 이었던 결과가 나의 투표로 인해 4:1로 되었다. 

 

이거..꽤나 재밌는걸..후후후 

이제는 직접 만들어보고 싶다! 땡스 투 클튼 데브 부트캠프 !