블록체인 스터디 [10주차]

개발새발·2021년 7월 19일
0

블록체인 스터디

목록 보기
6/25

블록체인 스터디 [10주차]

이번주부터 수도권 거리두기가 4단계로 격상되면서 클러스터가 폐쇄됐다. 가뜩이나 무더위인 요즘 클러스터의 쾌적하고 시원한 환경 덕분에 그나마 컨디션을 유지할 수 있었는데 이번주는 거의 집에만 있으니까 축 쳐졌다. 하루종일 프로젝트 하다가 밤에 스터디 시간이 되면 거의 녹초가 되어 있다. (일단 밑밥으로 빌드업)

Cryptozombies lesson4로 들어가기 전에 이전에 배운 내용들을 코드로 정리하면서 전체적으로 복습을 한번 싹 했다. 어차피 배끼면서 하긴 했지만 최대한 이해하면서 하려고 했다. 코드는 아래 Github 주소에 올려두었다.

https://github.com/keonwoo98/Cryptozombies/tree/master/lesson-3

 

지금까지 다룬 함수 제어자(function modifier)들에는 접근 제어자(visibility modifier), 상태 제어자(state modifier), 사용자 정의 제어자가 있었다. lesson4에서 새로운 함수 제어자를 하나 더 배웠는데 바로 payable 제어자이다.

함수에 payable 제어자를 사용하면 함수를 실행하기 위해 컨트랙트에 일정 금액을 지불하게 하는 구성을 만들 수 있다.

예시 :

contract OnlineStore {
    function buySomething() external payable {
        // 함수 실행에 0.001이더가 보내졌는지 확인 :
        require(msg.value == 0.001 ether);
        // 보내졌다면, 함수를 호출한 자에게 디지털 아이템을 전달하기 위한 내용 구성 :
        transferThing(msg.sender);
    }
}

컨트랙트로 이더를 보내는 함수가 있다면, 컨트랙트로부터 이더를 인출하는 함수도 필요하다. 그렇지 않으면 해당 컨트랙트 이더리움 계좌에 이더가 갇히게 될 것이다.

다음과 같이 컨트랙트에서 이더를 인출하는 함수를 작성할 수 있다 :

contract GetPaid is Ownable {
    function withdraw() external onlyOwner {
        owner.transfer(this.balance);
    }
}

좀 더 자세한 내용은 아래 블로그에 정리해 두었다 :

https://velog.io/@dogfootbirdfoot/Cryptozombies-lesson4

 

일단 이번주는 여기까지 공부했고 다음주에 lesson4를 끝내고 복습까지 할 계획이다. 진도가 좀 느린감이 없지않아 있지만 blockchain 공부는 지금으로썬 어디까지나 사이드 프로젝트 느낌으로 하는 것이기 때문에 부담감을 느끼고 싶진 않다. 재미를 잃지 않고 꾸준히 길게 해나가는게 가장 이상적인 것 같다.ㅎㅎ

profile
블록체인 개발 어때요

0개의 댓글