五月天青色头像情侣网名,国产亚洲av片在线观看18女人,黑人巨茎大战俄罗斯美女,扒下她的小内裤打屁股

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

NFT卡牌盲盒系統(tǒng)開發(fā)(開發(fā)案例)丨NFT卡牌盲盒開發(fā)源碼詳情

2023-07-08 09:59 作者:bili_36625761919  | 我要投稿

作為一種可能的Web3.0底層技術(shù),區(qū)塊鏈以去中心化、不可篡改、可溯源等特點(diǎn),構(gòu)建起數(shù)字經(jīng)濟(jì)時代的全新信任體系。


  從技術(shù)角度分析,區(qū)塊鏈讓數(shù)字資產(chǎn)價值流轉(zhuǎn)的每一個節(jié)點(diǎn)都公開透明、有跡可循且不可篡改,這將會讓W(xué)eb3.0時代的一切交易變得更加真實(shí)可信。


  同時,數(shù)據(jù)通過區(qū)塊鏈技術(shù)可以確定權(quán)屬,實(shí)現(xiàn)數(shù)據(jù)的資產(chǎn)化,這也將使得區(qū)塊鏈成為Web3.0時代的基礎(chǔ)設(shè)施。


  //SPDX-License-Identifier:MIT


  pragma solidity^0.8.10;


  import"openzeppelin/contracts/token/ERC721/extensions/ERC721Enumerable.sol";


  import"openzeppelin/contracts/access/Ownable.sol";


  import"openzeppelin/contracts/utils/Strings.sol";


  contract NftMeta is ERC721Enumerable,Ownable{


  using Strings for uint256;


  //是否準(zhǔn)許nft開賣-開關(guān)


  bool public _isSaleActive=false;


  //初始化盲盒,等到一定時機(jī)可以隨機(jī)開箱,變成true


  bool public _revealed=false;


  //nft的總數(shù)量


  uint256 public constant MAX_SUPPLY=10;


  //鑄造Nft的價格


  uint256 public mintPrice=0.3 ether;


  //鑄造的錢包最多只能有一個nft數(shù)量


  uint256 public maxBalance=1;


  //一次mint的nft的數(shù)量


  uint256 public maxMint=1;


  //盲盒開關(guān)打開后,需要顯示開箱的圖片的base地址


  string baseURI;


  //盲盒圖片的meta,json地址,后文會提到


  string public notRevealedUri;


  //默認(rèn)地址的擴(kuò)展類型


  string public baseExtension=".json";


  mapping(uint256=>string)private _tokenURIs;


  //構(gòu)造器


  constructor(string memory initBaseURI,string memory initNotRevealedUri)


  ERC721("Nft Meta","NM")//實(shí)現(xiàn)了ERC721的父類構(gòu)造器,是子類繼承的一種實(shí)現(xiàn)方式


  {


  setBaseURI(initBaseURI);


  setNotRevealedURI(initNotRevealedUri);


  }


  //外部地址進(jìn)行鑄造nft的函數(shù)調(diào)用


  function mintNftMeta(uint256 tokenQuantity)public payable{


  //校驗(yàn)總供應(yīng)量+每次鑄造的數(shù)量<=nft的總數(shù)量


  require(


  totalSupply()+tokenQuantity<=MAX_SUPPLY,


  "Sale would exceed max supply"


  );


  //校驗(yàn)是否開啟開賣狀態(tài)


  require(_isSaleActive,"Sale must be active to mint NicMetas");


  //校驗(yàn)鑄造的錢包地址中的nft的數(shù)量+本次鑄造的數(shù)量<=該錢包最大擁有的nft的數(shù)量


  require(


  balanceOf(msg.sender)+tokenQuantity<=maxBalance,


  "Sale would exceed max balance"


  );


  //校驗(yàn)本次鑄造的數(shù)量*鑄造的價格<=本次消息附帶的eth的數(shù)量


  require(


  tokenQuantity*mintPrice<=msg.value,


  "Not enough ether sent"


  );


  //校驗(yàn)本次鑄造的數(shù)量<=本次鑄造的最大數(shù)量


  require(tokenQuantity<=maxMint,"Can only mint 1 tokens at a time");


  //以上校驗(yàn)條件滿足,進(jìn)行nft的鑄造


  _mintNftMeta(tokenQuantity);


  }


  //進(jìn)行鑄造


  function _mintNftMeta(uint256 tokenQuantity)internal{


  for(uint256 i=0;i<tokenQuantity;i++){


  //mintIndex是鑄造nft的序號,按照總供應(yīng)量從0開始累加


  uint256 mintIndex=totalSupply();


  if(totalSupply()<MAX_SUPPLY){


  //調(diào)用erc721的安全鑄造方法進(jìn)行調(diào)用


  _safeMint(msg.sender,mintIndex);


  }


  }


  }


  //返回每個nft地址的Uri,這里包含了nft的整個信息,包括名字,描述,屬性等


  function tokenURI(uint256 tokenId)


  public


  view


  virtual


  override


  returns(string memory)


  {


  require(


  _exists(tokenId),


  "ERC721Metadata:URI query for nonexistent token"


  );


  //盲盒還沒開啟,那么默認(rèn)是一張黑色背景圖片或者其他圖片


  if(_revealed==false){


  return notRevealedUri;


  }


NFT卡牌盲盒系統(tǒng)開發(fā)(開發(fā)案例)丨NFT卡牌盲盒開發(fā)源碼詳情的評論 (共 條)

分享到微博請遵守國家法律
邢台县| 电白县| 安仁县| 容城县| 繁峙县| 德昌县| 益阳市| 玉树县| 思茅市| 龙海市| 肥西县| 仁怀市| 阳春市| 安康市| 肃北| 东宁县| 遂宁市| 密山市| 阳山县| 安泽县| 前郭尔| 南木林县| 通道| 罗江县| 故城县| 古丈县| 盖州市| 宁国市| 霍山县| 澄城县| 平阳县| 白银市| 金昌市| 泽库县| 永登县| 乌海市| 东方市| 甘孜| 永宁县| 兰坪| 上高县|