- 1155번째로 등록된 EIP
- ERC20와 ERC721을 합친 개념. Multi Token Standard.
- 한 컨트랙트 안에서 다양한 종류의 토큰을 관리 할 수 있음
- 보통 게임 아이템, 현실 세계 자산의 유동화, Digital Art등에서 사용됨
- ERC-1155는 코드가 공개되어 있어 누구나 쉽게 배포 가능함
- 가장 표준적이고 안정적인 구현체 : Openzepplin, Consensys
ERC1155_openzeppelin : openzeppelin의 ERC1155 코드는 필수적인 요소 외에도 사용하기 편한 기능들이 많이 포함되어 있다.
CODE 구성
구성 요소 function balanceOf, balanceOfBatch, safeTransferFrom, safeBatchTransferFrom, setApprovalForAll, isApprovedForAll event TransferSingle, TransferBatch, ApprovalForAll, URI mapping - _balances, _operatorApprovals ERC1155로 인식되기 위한 기본 스펙은 위의 표와 같다. setURI는 필수 요소는 아니지만 보통 포함시켜 구현하는 편이다.
- _balances
- n번 토큰의 갯수를 해당 지갑주소에 기록
-mapping(uint256 => mapping(address => uint256))
- key : 토큰ID, 지갑주소 | value : 특정 지갑주소의 잔고- balanceof : 해당주소에 존재하는 tokenId 갯수 반환
- balanceOfBatch
- A가 가지고 있는 토큰들을 조회하거나, 1번 토큰을 가진 주소들을 조회할때 용이
- output이 array형태- setApprovalForAll : 보유한 모든 토큰에 대한 권한 부여 or 회수
- isApprovedForAll : 보유한 모든 토큰의 권한을 부여 받았는지 확인
➕ ERC1155 URI
: pinata에 NFT의 이미지와 json파일을 올리고, ipfs의 json주소를 받아서 사용
코드와 함께 살펴보기
다른 함수 자세히 살펴보기👉 ERC20, ERC721
정리가 잘 된 글이네요. 도움이 됐습니다.