본문 바로가기

ERC5

[Ethereum] ERC-721 소스 분석(4) - Enumerable ERC-721 Enumerable 인터페이스 'Enumerable'이란 '나열이 가능한'의 뜻으로 해당 인터페이스의 기능은 발행한 ERC-721 토큰의 전체 리스트를 읽고 필요한 토큰 데이터를 찾게 도와주는 것이다. 메타 데이터와 같이 선택적으로 구현하는 기능이다. Enumerable이 구현되면 토큰 Index를 통해 특정 토큰 ID를 읽어오는 것이 가능하며, 특정 주소에서 소유한 ERC-721 토큰 역시 찾을 수 있다. 인터페이스에 선언된 함수 totalSupply : 총 발행된 토큰 수량 tokenByIndex : 토큰 리스트에서 특정 토큰 ID 조회 (토큰 Index 참조) tokenOfOwnerByIndex : 특정 주소 토큰 리스트에서 토큰 ID 조회 (토큰 Index 참조) // SPDX-Li.. 2022. 3. 25.
[Ethereum] ERC-721 소스 분석(3) - 메타 데이터 ERC-721 메타 데이터 인터페이스 ERC-721 메타 데이터는 토큰 이름 및 토큰 상세 정보를 제공한다. ERC-721 컨트렉트를 구현할 때 필요에 따라 선택적으로 구현한다. 메타 데이터 인터페이스에서 제공하는 데이터 토큰 이름 : ERC-721 토큰 풀 네임 토큰 심볼 : ERC-721 토큰 약어 토큰 URI : ERC-721 토큰 이미지 및 상세 정보를 불러오는 URI 주소 // SPDX-License-Identifier: MIT pragma solidity ^0.8.0; // [Optional] ERC-721 메타 데이터 인터페이스 // https://github.com/ethereum/EIPs/blob/master/EIPS/eip-721.md. interface ERC721Metadata { .. 2022. 3. 25.
[Ethereum] ERC-721 소스 분석(2) - 토큰 이전 포스트에서 공유한 ERC-721 인터페이스에 이어서 해당 인터페이스들을 구현한 ERC-721 토큰 컨트렉트를 공유한다. 이 소스는 깃허브의 ERC-721 오픈 소스를 참고하여 작성하였다. 해당 오픈 소스 코드는 ERC-721 규칙을 잘 따르고 있고, 개발자 입장에서 확장성 있는 코드를 추가하기에 적합하다 판단하해 참조 자료로 선택하게되었다. ERC-721 주요 기능 이 컨트렉트 코드에서 구현된 기능은 다음과 같다. 주소 및 토큰 유효성 검증 에러 핸들링 토큰 소유 관계 매핑 토큰 권한 관계 매핑 소유자와 오퍼레이터 관계 매핑 토큰 전송 - 일반 전송(transfer)과 Receiver 인터페이스이 포함된 안전 전송(safeTransfer) 권한(Approval) 관리 토큰 발행 토큰 소각 자산 확인.. 2022. 3. 24.
[Ethereum] ERC-721 소스 분석(1) - 인터페이스 ERC-721 인터페이스 ERC-721 인터페이스에 명시된 함수는 ERC-20에 비해 상대적으로 많은 편이다. 토큰 정보 확인부터 전송, 권한 설정, 주소 추적 기능이 명시되어 있다. 인터페이스 함수 목록 balanceOf : 파라미터로 전달받은 주소가 보유하고 있는 NFT 수량 반환 ownerOf : 파라미터로 전달 받은 NFT 토큰 주소를 소유하고 있는 주소 반환 safeTransferFrom : 전전송받을 주소(_to)가 NFT 토큰을 받을 수 있는지 검증하고 전송 진행(주소 종류가 EOA, CA에 따라 전달 파라미터 형식이 달라진다. 아래 코드 참조) transferFrom : NFT 소유 주소로부터 다른 주소로 토큰 전송 approve : 파라미터로 전달 받은 주소에 NFT 전송 권한 부여 se.. 2022. 3. 23.