NFT 민팅 플랫폼

  • 요구사항
    • 블록넘버
    • 민팅 (트랜잭션 당 / 지갑당 개수 제한 필요)
    • 디스플레이
  • 기능
    • 블록넘버: 블록체인의 service provider 를 통해서 가장 최신 블록 높이를 가져와서 보여줌
    • 민팅
      • ERC721 기반의 스마트 컨트랙트를 작성. 기존에 있는 모든 함수들 그대로 사용하기 때문에 크게 바꿀 것은 없음.
      • 이 스마트 컨트랙트를 배포하게 되면, NFT의 총량(balanceOf), 각 tokenID 의 소유자가 누구인지 (ownerOf) 알 수 있음. 이 말은 즉, 컨트랙트의 스토리지에 이러한 정보들이 저장되어서 관리되고 있고, transferFrom 과 같은 함수들을 통해서 owner의 상태만 변경하는 것이라고 볼 수 있음.
      • 따라서, 민팅을 하는 과정은 NFT 를 발행한 소유주에게서 민팅에 성공한 사용자로 특정 tokenID의 owner 를 변경하는 작업이라고 볼 수 있음. 만약 그 작업이 성공했다면, 사용자는 민팅에 성공했다고 메시지를 받을 것임.
    • 디스플레이: 오픈씨나 팔라와 같은 거래소를 보면 내가 어떤 NFT를 소유하고 있는지 알 수 있다. 이것이 어떻게 가능할까? 기본적으로 ERC721 에서는 어떤 주소를 주면 tokenID 를 반환하는 함수는 없다. 이 기능은 표준으로 제공되진 않고, 데이터베이스에 별도로 저장해야 되는 것으로 보인다. 해당 NFT contract 에 대해서 Transfer 이벤트를 모니터링하고 있다가, 이벤트가 발생했을 때 해당 address를 balanceOf 함수를 통해서 수행시킨 다음 데이터베이스를 업데이트 한다. 그러면 특정 주소가 어떤 tokenID 를 갖고 있는지 관리할 수 있다.

참고: https://ethereum.stackexchange.com/questions/98233/how-to-find-all-erc721-compliant-nfts-owned-by-an-address-web3-js