🖼️NFT үүсгэх

Корэкс блокчэйн дээр хэрхэн NFT үүсгэх вэ?

TEO блокчэйн дээр ERC721 стандартын ухаалаг гэрээ буюу NFT үүсгэх зааврыг Remix Ethereum түүл болон Метамаск ашиглан хүргэе. Хэрэв та Метамаск эсвэл Remix-ийг төдийлөн мэдэхгүй бол өмнө оруулсан Токэн үүсгэх зааврыг үзэхийг зөвлөе.

ERC721-ын ухаалаг гэрээ үүсгэхдээ OpenZeppelin (Solidity хэлний хамгийн том сан)-ын ERC721 классыг дахин ашиглаж, шинээр бүтээгдэхүүн үүсгэх awardItem нэртэй функцийг эзэмшигчийн хаяг, токэний хаяг, файлын URI утгуудыг гаднаас дамжуулдаг байдлаар хөгжүүлэв.

pragma solidity ^0.7.0;

import "https://github.com/OpenZeppelin/openzeppelin-contracts/blob/release-v3.4-solc-0.7/contracts/token/ERC721/ERC721.sol";

contract NftItem is ERC721 {
    constructor() ERC721("TestNft", "TNFT") {
    }

    /**
    * Шинээр NFT item үүсгэх функц
    * @param player - эзэмшигчийн хаяг
    * @param tokenId - шинээр үүсгэх бүтээгдэхүүний дугаар
    * @param tokenURI - шинэ бүтээгдэхүүний эх файлын байршил. 
    *  (өөрчлөгдөхгүй байх хэрэгтэй тул ipfs дээр хадгалахыг зөвлөе)
    */
    function awardItem(address player, uint256 tokenId, string memory tokenURI)
        public
        returns (uint256)
    {
        _mint(player, tokenId);
        _setTokenURI(tokenId, tokenURI);

        return tokenId;
    }
}

Компайл хийхдээ Solidity Compiler цэсрүү орж компайл хийх файлыг сонгоод "Compile TestNft.sol" товчыг дарна. Таны файлын нэр TestNft.sol-с ялгаатай бол "Compile ${FileName}" хэлбэртэй харагдана(${FileName} нь таны файлын нэр юм). Хэрэв компайл амжилттай болсон бол зүүн дээд хэсгийн Solidity Compiler-ийн лого зөв тэмдэгтэй харагдана.

Компайл хийж дууссан бол Deploy & Run transactions цэсний Environment утгыг "Injected Web3" болгож өөрчлөөд "Deploy" товч дээр дарна. Бид корэксийн тест сүлжээг ашиглан заавар бэлтгэж буй тул "Custom (3305) network" гэж харагдаж байна. Хэрэв та корэксийн үндсэн сүлжээн дээр үүсгэх гэж буй бол метамаск дээрээ корэксийн үндсэн сүлжээг сонгоорой. Сүлжээ зөв бол "Custom (1104) network" гэж харагдана.

Deploy үйлдэл нь блокчэйний гүйлгээ тул таны холбосон хаягт CRX байх ёстойг анхаараарай. Хэрэв та тестнэт ашиглаж байгаа бол faucet ашиглах, үнсдэн сүлжээ бол биржээс цэнэглэх боломжтой.

"Deploy" товчийг дараад метамаскын гүйлгээ амжилттай хийгдсэн бол таны ухаалаг гэрээ корэкс сүлжээн дээр амжилттай үүслээ гэж хэлж болно. Блокчэйний explorer-ийн Contracts цэснээс үүсгэсэн NFT ухаалаг гэрээгээ шалгаж үзээрэй.

Мөн Remix түүлийн Deploy & Run transactions цэсний хэсэгт "At Address" болон "Deployed Contracts" утгууд автоматаар бөглөгдөнө. "At Address" нь шинээр үүсэн ухаалаг гэрээний блокчэйн дээрх хаяг бол "Deployed Contracts"-д уг ухаалаг гэрээг шалгаж үзэх орчин үүсэх юм. Шалгахын тулд awardItem функцийг дуудаж үзье. Дуудахдаа дараах утгуудыг ашигласан.

player: "0x01a810F6C2f88EeAC22b2D5D7f47B255b154Df56" tokenId: "1" tokenURI: "https://www.corexchain.io/wp-content/uploads/2021/10/logo-colored.svg"

awardItem амжилттай болсон бол "0x01...Df56" хаягын ERC721 гүйлгээний жагсаалт дотор "0x00...0000" хаягаас дараах шиг гүйлгээ хийгдсэн байгааг харж болно. Энэ нь "0x01...Df56" хаягт "1" гэсэн ID-тай NFT бүртгэгдснийг илэрхийлнэ.

Одоо "0x01...Df56"-ийн NFT-ийг өөр хаягруу шижлүүлж туршъя. Ингэхдээ safeTranferFrom функцийг дуудна.

from: "0x01a810F6C2f88EeAC22b2D5D7f47B255b154Df56" to: "0xf96B054736e8537FC00b832bB4c536924dca21eF" tokenId: "1"

Хэрэв гүйлгээ амжилттай болсон бол "0x01...Df56"-д байсан 1 ширхэг "1" гэсэн ID-тай NFT "0xf9...21eF" шилжинэ. Хэрхэн шилжснийг Explorer-ийн ERC721 Txns хэсгээс шалгаж харж болно.

Last updated