본문 바로가기
⛓️ Web3

솔리디티 문해력 특강_4강

by meLR 2023. 9. 17.

디사이퍼에서 진행한 솔리디티 문해력 특강을 개인적으로 기록으로 남기기 위해 정리한 글입니다.

해당 특강은 아래 링크에서 확인 가능합니다. 강의를 진행해주신 안수찬님께 감사드립니다.

 

안수찬님 블로그 : https://solidity.ansuchan.com/

디사이퍼 솔리디티 문해력 특강 유튜브 : https://www.youtube.com/playlist?list=PLOY0jYV3zWiElk6lAXhuyRJ8dMDqelU_r    


openzepplin ERC721

contract NFT is ERC721 {
    constructor() ERC721("mer token", "MYT"){
        _mint(msg.sender,1);
    }
}

ERC721 문서를 읽어보면 토큰 아이디는 uint 값인 것을 확인 할수있다. 즉, 위 1자리에는 문자열은 들어갈수없다.

아주키 엘리멘탈 같은 경우 토큰 아이디가 10670으로 uint 값으로 들어가있는 것을 확인 할수있다.

여기서 ENS는 string 타입인데 표준 uint를 어떻게 거스를 수있느냐 하면 거스른것이 아니라 해당 string을 hasing하고 그 값을 넣었다는 것을 확인 할수있다.

(값이 같은 것을 확인할수있다.)

메타데이터는 json으로 이루어져 있으며 이 값들을 불러와서 프론트에서 보여주게된다.

💡 이러한 메타데이터 파일은 일반적으로 ipfs 위에 파일을 올린다. AWS에 올려도 상관없다.

 

토큰 URI는 어떻게 생성될까?

tokenURI 함수를 보면 baseURI+tokenId 로 이루어지는 것을 확인 할수있다.

 

💡 IPFS란? 토렌트처럼 분산화된 노드에서 해당 해시 데이터를 가져오는 방식 (컨텐츠 어드레싱 방식)

 

IPFS CID는 파일들이 다 같은 주소를 가진다.

내가 가진 파일이 내 컴퓨터가 항상 켜져있어서 제공을 하지 못하기 때문에 pinata같은 사이트들은 이러한 자료를 모아서 pinning해서 언제든지 제공한다.

 

hardhat은 이더리움 개발 환경을 제공한다.

→ Smart Contract작성, 컴파일, 테스트, 배포 등을 가능하게 해준다.