inblog logo
|
정리한 노션 내용을 올리는 공간
    Blockchain

    SBT 토큰 발행하기

    to
    tofu
    May 29, 2024
    SBT 토큰 발행하기
    1. SBT 스마트 컨트랙트를 작성
    // SPDX-License-Identifier: MIT pragma solidity ^0.8.4; import "@openzeppelin/contracts@4.7.0/token/ERC721/ERC721.sol"; import "@openzeppelin/contracts@4.7.0/token/ERC721/extensions/ERC721URIStorage.sol"; import "@openzeppelin/contracts@4.7.0/access/Ownable.sol"; import "@openzeppelin/contracts@4.7.0/utils/Counters.sol"; contract SoulBoundTest is ERC721, ERC721URIStorage, Ownable { using Counters for Counters.Counter; Counters.Counter private _tokenIdCounter; constructor() ERC721("SoulBoundTest", "SBT") {} function safeMint(address to, string memory uri) public onlyOwner { uint256 tokenId = _tokenIdCounter.current(); _tokenIdCounter.increment(); _safeMint(to, tokenId); _setTokenURI(tokenId, uri); } function _beforeTokenTransfer( address from, address to, uint256 tokenId ) internal override virtual { require(from == address(0), "Err: token transfer is BLOCKED"); super._beforeTokenTransfer(from, to, tokenId); } // The following functions are overrides required by Solidity. function _burn(uint256 tokenId) internal override(ERC721, ERC721URIStorage) { super._burn(tokenId); } function tokenURI(uint256 tokenId) public view override(ERC721, ERC721URIStorage) returns (string memory) { return super.tokenURI(tokenId); } }
    2. Testnet에서 Deploy 시켜야 됨
    Share article

    정리한 노션 내용을 올리는 공간

    RSS·Powered by Inblog