[Project 1] Open Sea
2343 ワード
テクノロジースタック
Client
React
NPM
react-router-dom, web3, ipfs-http-client, tailwindcss
ページ機能
Main
Create
画像をipfsにアップロードしurlを使用
ERC 721コインを発行
Explore
この契約で発行されたERC 721トークンをレンダリング
Profile
見積書に発行されたERC 721トークン
現在のメタマスクを使用して、ロックされたアドレスが持つタグをレンダリングします.
インテリジェント契約
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.7;
import "@openzeppelin/contracts/token/ERC721/ERC721.sol";
import "@openzeppelin/contracts/utils/Counters.sol";
import "@openzeppelin/contracts/access/Ownable.sol";
import "@openzeppelin/contracts/token/ERC721/extensions/ERC721URIStorage.sol";
import "@openzeppelin/contracts/token/ERC721/extensions/ERC721Enumerable.sol";
contract cozNFTs is ERC721URIStorage, Ownable, ERC721Enumerable {
using Counters for Counters.Counter;
Counters.Counter private _tokenIds;
constructor() public ERC721("cozNFT", "NFT"){}
function _beforeTokenTransfer(
address from,
address to,
uint256 tokenId
) internal
override(ERC721, ERC721Enumerable) {
super._beforeTokenTransfer(from, to, tokenId);
}
function _burn(
uint256 tokenId
) internal
override(ERC721, ERC721URIStorage) {
super._burn(tokenId);
}
function supportsInterface(bytes4 interfaceId)
public
view
override(ERC721, ERC721Enumerable)
returns (bool)
{
return super.supportsInterface(interfaceId);
}
function tokenURI(
uint256 tokenId
) public view
override(ERC721, ERC721URIStorage) returns (string memory) {
return super.tokenURI(tokenId);
}
function mintNFT(address recipient, string memory tokenURI) public onlyOwner returns (uint256) {
_tokenIds.increment();
uint256 newItemId = _tokenIds.current();
_mint(recipient, newItemId);
_setTokenURI(newItemId, tokenURI);
return newItemId;
}
}
ABI
トラック内の関数とパラメータをJSON形式で表すリストです.
openzeppelin
インテリジェント字幕情報を開発するためのライブラリ
github
Reference
この問題について([Project 1] Open Sea), 我々は、より多くの情報をここで見つけました https://velog.io/@royalblue/Project-1-Open-Seaテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol