4.4

閱讀時間約 7 分鐘
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.24;

contract MyNFT is ERC721{

using Strings for uint256;

address owner;
uint256 public maxSupply = 10; // 最大發行量
bool private isOpened = false; // 盲盒是否打開, 預設就是沒開

uint256 public counter = 0;

modifier onlyOwner { // 只有owner才可以操作的function
require(msg.sender == owner);
_;
}

constructor (string memory _name, string memory _symbol) ERC721(_name, _symbol){
owner = msg.sender; // 佈合約的地址, 就是msg.sender
}

// 盲盒打開, 圖片就會變, tokenURI改變
function openBlindBox() external onlyOwner {
isOpened = true;
}

// 設定NFT的baseURI(盲盒)
function _baseURI() internal pure overrider returns (string memory) {
return ipfs://QmahbazMeYgjSyKuSLZ6EqGWVKYYKEtDnH1gXdGGioiYnX"; //
}

// 查看NFT MetaData網址
function tokenURI(uint256 tokenId) public view override returns (string memory) {
if(!isOpenid) { // 如果盲盒沒有被打開, 就回傳網址
return _baseURI(); // 不管有沒有開, 都回傳Json檔
}
return string(abi.encodePacked("ipfs://QmahbazMeYgjSyKuSLZ6EqGWVKYYKEtDnH1gXdGGioiYnX");
}

// 實作mint function, 主要用來demo確認用
function mint (uint256 amount) external {
require(amount + count <= maxSupply, "over max supply.");
// 迴圏批量鑄造NFT
for(uint256 i = 0; i < amount ; i++){
//鑄造NFT, counter為NFT的tokenId
_mint(msg.sender, counter);
counter ++;
}
}
}// SPDX-License-Identifier: MIT
pragma solidity ^0.8.24;

contract MyNFT is ERC721{

using Strings for uint256;

address owner;
uint256 public maxSupply = 10; // 最大發行量
bool private isOpened = false; // 盲盒是否打開, 預設就是沒開

uint256 public counter = 0;

modifier onlyOwner { // 只有owner才可以操作的function
require(msg.sender == owner);
_;
}

constructor (string memory _name, string memory _symbol) ERC721(_name, _symbol){
owner = msg.sender; // 佈合約的地址, 就是msg.sender
}

// 盲盒打開, 圖片就會變, tokenURI改變
function openBlindBox() external onlyOwner {
isOpened = true;
}

// 設定NFT的baseURI(盲盒)
function _baseURI() internal pure overrider returns (string memory) {
return ipfs://QmahbazMeYgjSyKuSLZ6EqGWVKYYKEtDnH1gXdGGioiYnX"; //
}

// 查看NFT MetaData網址
function tokenURI(uint256 tokenId) public view override returns (string memory) {
if(!isOpenid) { // 如果盲盒沒有被打開, 就回傳網址
return _baseURI(); // 不管有沒有開, 都回傳Json檔
}
return string(abi.encodePacked("ipfs://QmahbazMeYgjSyKuSLZ6EqGWVKYYKEtDnH1gXdGGioiYnX");
}

// 實作mint function, 主要用來demo確認用
function mint (uint256 amount) external {
require(amount + count <= maxSupply, "over max supply.");
// 迴圏批量鑄造NFT
for(uint256 i = 0; i < amount ; i++){
//鑄造NFT, counter為NFT的tokenId
_mint(msg.sender, counter);
counter ++;
}
}
}

Create an NFT Lootbox for blockchain games or NFT trading card platforms (NBA Topshot clone)

Solidity 實戰系列工作坊第 3 場精彩重播: ERC20 同質化代幣與 ERC721 NFT 非同質化代幣

    尋大神腳印, 亦步亦趨。
    留言0
    查看全部
    avatar-img
    發表第一個留言支持創作者!
    Dapp Tutorial - ERC20 帶你發行自己的加密貨幣 🔥 Build Your Own ERC-20 Crypto Coin
    Merkle Tree Solidity Whitelist Using Merkle Trees for NFT Whitelists - Solidity Tutorial (ERC-721, NFT, Whitelist, Solidity)
    Mapping Vs Arrays | Gas Optimisation - Solidity Top Solidity Interview Questions: Questions 7: Whitelist: Array Vs Mapping!  #solidity
    Random Number Generator in Solidity using keccak256 How to generate a random number in solidity?
    Create & Upload NFT Metadata
    Dapp Tutorial ERC721 帶你發行項目的 NFT 🔥
    Dapp Tutorial - ERC20 帶你發行自己的加密貨幣 🔥 Build Your Own ERC-20 Crypto Coin
    Merkle Tree Solidity Whitelist Using Merkle Trees for NFT Whitelists - Solidity Tutorial (ERC-721, NFT, Whitelist, Solidity)
    Mapping Vs Arrays | Gas Optimisation - Solidity Top Solidity Interview Questions: Questions 7: Whitelist: Array Vs Mapping!  #solidity
    Random Number Generator in Solidity using keccak256 How to generate a random number in solidity?
    Create & Upload NFT Metadata
    Dapp Tutorial ERC721 帶你發行項目的 NFT 🔥
    你可能也想看
    Google News 追蹤
    Thumbnail
    這個秋,Chill 嗨嗨!穿搭美美去賞楓,裝備款款去露營⋯⋯你的秋天怎麼過?秋日 To Do List 等你分享! 秋季全站徵文,我們準備了五個創作主題,參賽還有機會獲得「火烤兩用鍋」,一起來看看如何參加吧~
    Thumbnail
    11/20日NVDA即將公布最新一期的財報, 今天Sell Side的分析師, 開始調高目標價, 市場的股價也開始反應, 未來一週NVDA將重新回到美股市場的焦點, 今天我們要分析NVDA Sell Side怎麼看待這次NVDA的財報預測, 以及實際上Buy Side的倉位及操作, 從
    Thumbnail
    Hi 大家好,我是Ethan😊 相近大家都知道保濕是皮膚保養中最基本,也是最重要的一步。無論是在畫室裡長時間對著畫布,還是在旅途中面對各種氣候變化,保持皮膚的水分平衡對我來說至關重要。保濕化妝水不僅能迅速為皮膚補水,還能提升後續保養品的吸收效率。 曾經,我的保養程序簡單到只包括清潔和隨意上乳液
    Thumbnail
    連假第一天,這兩天要帶小孩去苗栗住宿。
    Thumbnail
    #小倉鼠 #社畜逃脫筆記 #自我成長 #財務自由 #PODCASTS #說書 #思考 #筆記#過度努力#宗教#企業菁英#效率#恐懼#我沒有用#量化黑洞#忙碌崇拜#罪惡感#薪水小偷#麥克斯.法蘭佐#MAX FRENZE#約翰.菲茨#JOHN.FITCH#沐光#麥克斯.法蘭佐#MAX FRENZE#約翰
    Thumbnail
    國曆二月是"寅",寅為"驛馬",有"啟動"的意謂,三月則是"卯",卯為"桃花",表示"人緣",意味計畫啟動後,就要透過人脈去發酵,本月則是"辰",辰為"庫",庫就像是箱子,有收成的概念。 「馬、花、庫」就是一個輪迴,本月可以好好檢視一下,農曆年後所許下的願望,執行到那裏,成效到哪裡...
    Thumbnail
    個人不是使用Word寫作,而且原本就習慣一章一章寫,不過看到Sigil的,從標記【<hr class="sigil_split_marker" />】分割的功能,很好奇是怎樣的,結果發現它超好用的,能夠幫你自動分章節成HTML檔。 要做到這點,非常的簡單,你只要使用儲存搜尋和Automation
    Thumbnail
    朱大哥預約更換前避震器 前日本KYB避震器+原廠件上座 , 追加前門限位器 原車前避震器是台製Y-KYB 前車門限位器更換 原廠限位器 出風口維修 冷氣濾網很久沒換了 , 更換新品濾網還要清洗鼓風機馬達
    Thumbnail
    Juliet: 華岡的冬天對你對我都具有刻骨銘心的意義。告訴過你,冷較有情調。你反問,還有什麼地方比華岡的冬天更情調更教人難忘? 山仔后猶在,冬天仍來,可是昔日的人兒呢? 沒有你,華岡之冬會有多寒冷?會有多潮濕呢?冷濕之中,我必更加想念那朵猶在南方池心的不凋不朽的蓮。 喬 1977年9月3日
    Thumbnail
    荷蘭生活停擺了五週, 但一切照舊 ,就像五週前一樣,無縫接軌真奇妙。 第一次在荷蘭上表演課 、客戶來取畫、氣炸鍋的優點 、波希米亞狂想曲 、不含鐵氟龍的氣炸鍋。
    Thumbnail
    2015年,七月十七~二十一號。 「這種語言是世界上最古老的語言之一喔! 且一直到現在都沒能知道它的來源,這個語言只有使用在法國和西班牙交界地帶這一區,就是巴斯克地區,但卻和歐語系沒有任何關聯,算是世界上最難又最神秘的語言之一。」見識不夠廣的我竟然第一次聽說有這種語言。 「是呀!」他回答我,
    03.03、03.10 1-12/ 編劇在寫左右手女警的切入點很值得研究,而且到12集仍琢磨。 查: 《操作》的李政勳導演與《我的夢幻葬禮》金恩亨作家合作打造。 OST / sunwoojunga 鮮于貞娥 온기。
    Thumbnail
    這個秋,Chill 嗨嗨!穿搭美美去賞楓,裝備款款去露營⋯⋯你的秋天怎麼過?秋日 To Do List 等你分享! 秋季全站徵文,我們準備了五個創作主題,參賽還有機會獲得「火烤兩用鍋」,一起來看看如何參加吧~
    Thumbnail
    11/20日NVDA即將公布最新一期的財報, 今天Sell Side的分析師, 開始調高目標價, 市場的股價也開始反應, 未來一週NVDA將重新回到美股市場的焦點, 今天我們要分析NVDA Sell Side怎麼看待這次NVDA的財報預測, 以及實際上Buy Side的倉位及操作, 從
    Thumbnail
    Hi 大家好,我是Ethan😊 相近大家都知道保濕是皮膚保養中最基本,也是最重要的一步。無論是在畫室裡長時間對著畫布,還是在旅途中面對各種氣候變化,保持皮膚的水分平衡對我來說至關重要。保濕化妝水不僅能迅速為皮膚補水,還能提升後續保養品的吸收效率。 曾經,我的保養程序簡單到只包括清潔和隨意上乳液
    Thumbnail
    連假第一天,這兩天要帶小孩去苗栗住宿。
    Thumbnail
    #小倉鼠 #社畜逃脫筆記 #自我成長 #財務自由 #PODCASTS #說書 #思考 #筆記#過度努力#宗教#企業菁英#效率#恐懼#我沒有用#量化黑洞#忙碌崇拜#罪惡感#薪水小偷#麥克斯.法蘭佐#MAX FRENZE#約翰.菲茨#JOHN.FITCH#沐光#麥克斯.法蘭佐#MAX FRENZE#約翰
    Thumbnail
    國曆二月是"寅",寅為"驛馬",有"啟動"的意謂,三月則是"卯",卯為"桃花",表示"人緣",意味計畫啟動後,就要透過人脈去發酵,本月則是"辰",辰為"庫",庫就像是箱子,有收成的概念。 「馬、花、庫」就是一個輪迴,本月可以好好檢視一下,農曆年後所許下的願望,執行到那裏,成效到哪裡...
    Thumbnail
    個人不是使用Word寫作,而且原本就習慣一章一章寫,不過看到Sigil的,從標記【<hr class="sigil_split_marker" />】分割的功能,很好奇是怎樣的,結果發現它超好用的,能夠幫你自動分章節成HTML檔。 要做到這點,非常的簡單,你只要使用儲存搜尋和Automation
    Thumbnail
    朱大哥預約更換前避震器 前日本KYB避震器+原廠件上座 , 追加前門限位器 原車前避震器是台製Y-KYB 前車門限位器更換 原廠限位器 出風口維修 冷氣濾網很久沒換了 , 更換新品濾網還要清洗鼓風機馬達
    Thumbnail
    Juliet: 華岡的冬天對你對我都具有刻骨銘心的意義。告訴過你,冷較有情調。你反問,還有什麼地方比華岡的冬天更情調更教人難忘? 山仔后猶在,冬天仍來,可是昔日的人兒呢? 沒有你,華岡之冬會有多寒冷?會有多潮濕呢?冷濕之中,我必更加想念那朵猶在南方池心的不凋不朽的蓮。 喬 1977年9月3日
    Thumbnail
    荷蘭生活停擺了五週, 但一切照舊 ,就像五週前一樣,無縫接軌真奇妙。 第一次在荷蘭上表演課 、客戶來取畫、氣炸鍋的優點 、波希米亞狂想曲 、不含鐵氟龍的氣炸鍋。
    Thumbnail
    2015年,七月十七~二十一號。 「這種語言是世界上最古老的語言之一喔! 且一直到現在都沒能知道它的來源,這個語言只有使用在法國和西班牙交界地帶這一區,就是巴斯克地區,但卻和歐語系沒有任何關聯,算是世界上最難又最神秘的語言之一。」見識不夠廣的我竟然第一次聽說有這種語言。 「是呀!」他回答我,
    03.03、03.10 1-12/ 編劇在寫左右手女警的切入點很值得研究,而且到12集仍琢磨。 查: 《操作》的李政勳導演與《我的夢幻葬禮》金恩亨作家合作打造。 OST / sunwoojunga 鮮于貞娥 온기。