티스토리 뷰

이더리움(Ethereum) - ERC20 토큰, ERC721 표준 (다중상속)

 이더리움에 관심이 좀 있으신 분들은 ERC20 토큰에 대해서 들어보았을 것입니다. ERC20이란 이더리움에서 정해진 공통적인 매서드를 가진 스마트 컨트랙트입니다. 즉 전송, 잔액확인 등의 매서드(함수,function)들을 오버라이딩해서 사용하게 됩니다. 

 사실 토큰은 그저 하나의 contract에 불과하기 때문에 해당 컨트랙트에서 누구는 몇개의 코인을 가지고있는지를 저장해 놓는 것 뿐입니다. 그리고 전송기능과 같은 함수를 통해서 코인을 전송하거나 등의 기능을 하게되는 것이죠.

 예를 들어서 거래소에서도 토큰과 통신할 contract를 만든뒤에 그 contract로 전송을받고 고객들의 잔액을 관리하게 되는 것이죠. 또 ERC20표준을 따르기 때문에 새로운 토큰을 상장하고 싶다면, 그저 그 contract를 추가하기만 하면 끝입니다.

표준 다중상속 예시

 크립토좀비에서는 ERC721표준을 사용합니다. 통화교환개념이 아니라 그저 우리의 구조체를 교환하고자 할 때 사용할 수 있습니다. 토큰 자체가 유일하며(ID를 가짐) 교체가 불가능하다는 특징이 있는 ERC721토큰 표준입니다.

 ERC721은 위와 같은 컨트랙트를 상속하며, 위와 같은 매서드 목록을 오버라이딩하면서 구현하게됩니다. 예를 들어서 balanceOf는 주소를 받아서 해당 주소가 얼마만큼의 토큰을 가지고 있는지 반환합니다. ownerOf 매서드는 ID를 받아서 해당 ID를 가진 주소를 반환합니다.(매핑사용)

solidity version

 상속 내용 추가

이전 글에서 상속은 is키워드를 사용한다고 했었는데 추가적으로 다중상속에 대해서 써볼까합니다. 다중상속은 여타언어와 마찬가지로 콤마(',')를 사용해서 해주면 되겠습니다.

mapping ex

깜짝복습

 매핑에 대해서 다시 한 번 보고 가도록 하겠습니다. 위 사진 예시처럼 사용하며, 매핑은 파이썬에서 딕셔너리 같은 역할을 합니다. 즉 key와 value쌍을 보관하게 됩니다. 위 예제에서는 uint형을 키로 address(주소)는 값으로 설정해준 매핑을 하나 만들어준 모습입니다.

이더리움 솔리디티 이전 글

난수 랜덤 생성(keccak256, random)

payable

배열, memory, new (+for)


댓글
댓글쓰기 폼
네이버 이웃추가
«   2021/01   »
          1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
31            
글 보관함