git주소
npm update
build폴더 생성
config.js
명령어 입력
npm run build
layers 폴더
pinata Upload Folder
basUri 경로 : pinata > image경로로 설정
이미지 경로 설정 후 명령어 입력
>npm run update_info
업데이트 된 json 폴터 Pinata에 업로드
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.18;
import "@openzeppelin/contracts/token/ERC721/extensions/ERC721Enumerable.sol";
import "@openzeppelin/contracts/utils/Strings.sol";
contract MintNft is ERC721Enumerable {
string public metadataUri;
uint public totalNft;
uint public mintedNft;
constructor(
string memory _name,
string memory _symbol,
string memory _metadataUri,
uint _totalNft
) ERC721(_name, _symbol) {
metadataUri = _metadataUri;
totalNft = _totalNft;
}
function mintNft() public {
require(totalNft > mintedNft, "No more mint.");
mintedNft++;
_mint(msg.sender, mintedNft);
}
function batchMint(uint _amount) public {
for(uint i = 0; i < _amount; i++) {
mintNft();
}
}
function tokenURI(uint _tokenId) public override view returns(string memory) {
return string(abi.encodePacked(metadataUri, '/', Strings.toString(_tokenId), '.json'));
}
function burnNFT(uint _tokenId) public {
require(msg.sender == ownerOf(_tokenId), "Caller is not token owner.");
_burn(_tokenId);
}
}
transact
_METADATAURI : (json파일 URL경로)
_TOTALNFT: (만든 NFT 갯수)
NFT 배치 생성 함수
batchMint _amount: (NFT 수량)