Remix와 openzeppelin의 상속(Import) 사용하여 ERC721작성
ERC721의 변수로 첫번째 MyNFT는 스마트계약의 이름이고 두번째 변수 NFT는 기호이다.
새로운 NFT를 발행하는 mintNFT
function mintNFT(address recipient, string memory tokenURI)
public onlyOwner //오너만 생성할수 있게한다.
returns (uint256)
{
_tokenIds.increment(); //현재까지 생성된 NTF토큰ID에서 하나올린다.
uint256 newItemId = _tokenIds.current(); //현재 만들고있는 NTF으로 새 ID할당
_mint(recipient, newItemId); //받을 사람주소와 새 NTF의 ID값으로 생성
_setTokenURI(newItemId, tokenURI); //새 NFT ID와 NTF의 JSON정보인 URI로 토큰 URI생성
return newItemId; //uint256의 새 NTF ID값을 반환
}
mintNFT 함수에서 NFT를 받을 주소와 NFT의 정보가 든 json파일의 URI주소를 인자로 담는다.
_min 함수에 NFT를 받을 recipient와 새로 만들어진 NFT의 ID를 넣어 생성시킨다.
만약 mintNFT로 새 NFT를 발급할때 발급자 즉 msg.sender에게 바로 NFT가 발급되게 할려면
mintNFT함수에 인자를 tokenURI만 받고 _mint 내부함수에서 recipient대신 msg.sender로 대처한다.
'개발 학습 > 블록체인' 카테고리의 다른 글
S4: DID / SSI (0) | 2021.12.02 |
---|---|
S4: KIP17 ganache와 baobab에 배포 (0) | 2021.12.01 |
S4: ERC-721 함수 (0) | 2021.11.30 |
S4: 토큰 LOCK 설정 및 제거 (0) | 2021.11.29 |
S4: public 함수 중 관리자만 접근가능함수 OwnerHelper (0) | 2021.11.26 |
댓글