HashLips

git주소

https://github.com/HashLips/hashlips_art_engine

npm update

build폴더 생성

config.js

명령어 입력

npm run build

layers 폴더

pinata Upload Folder

basUri 경로 : pinata > image경로로 설정

이미지 경로 설정 후 명령어 입력
>npm run update_info


업데이트 된 json 폴터 Pinata에 업로드

Remix IDE

// 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 수량)

생성 완료

0개의 댓글