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 非同質化代幣

留言
avatar-img
Follow the Rainmaker 🌧️
5會員
91內容數
尋大神腳印, 亦步亦趨。
2024/06/12
0. 大綱Outline 以太坊交易 發起交易 與智能合約互動 receive & fallback function 1. 舊以太坊交易 Ethereum Gas Tracker - 7 Gwei - Etherscan //交易技術, 表示特定帳戶的交易數量,是計數器, 每發一筆交
2024/06/12
0. 大綱Outline 以太坊交易 發起交易 與智能合約互動 receive & fallback function 1. 舊以太坊交易 Ethereum Gas Tracker - 7 Gwei - Etherscan //交易技術, 表示特定帳戶的交易數量,是計數器, 每發一筆交
2024/06/05
1. Outline Takeaway Setting up Git and verifying installation Configuring your Git username and email Initializing a new Git repository Stagin
2024/06/05
1. Outline Takeaway Setting up Git and verifying installation Configuring your Git username and email Initializing a new Git repository Stagin
2024/05/30
React Hooks 是 React 16.8 中引入的一組新的 API,允許你在函數組件中使用狀態和其他 React 特性,而不需要寫類組件。 狀態管理: useState 鉤子允許在函數組件中添加狀態。 副作用管理: useEffect 鉤子允許處理副作用,如數據獲取、訂閱和手動 DO
2024/05/30
React Hooks 是 React 16.8 中引入的一組新的 API,允許你在函數組件中使用狀態和其他 React 特性,而不需要寫類組件。 狀態管理: useState 鉤子允許在函數組件中添加狀態。 副作用管理: useEffect 鉤子允許處理副作用,如數據獲取、訂閱和手動 DO
看更多
你可能也想看
Thumbnail
背景:從冷門配角到市場主線,算力與電力被重新定價   小P從2008進入股市,每一個時期的投資亮點都不同,記得2009蘋果手機剛上市,當時蘋果只要在媒體上提到哪一間供應鏈,隔天股價就有驚人的表現,當時光學鏡頭非常熱門,因為手機第一次搭上鏡頭可以拍照,也造就傳統相機廠的殞落,如今手機已經全面普及,題
Thumbnail
背景:從冷門配角到市場主線,算力與電力被重新定價   小P從2008進入股市,每一個時期的投資亮點都不同,記得2009蘋果手機剛上市,當時蘋果只要在媒體上提到哪一間供應鏈,隔天股價就有驚人的表現,當時光學鏡頭非常熱門,因為手機第一次搭上鏡頭可以拍照,也造就傳統相機廠的殞落,如今手機已經全面普及,題
Thumbnail
這是一場修復文化與重建精神的儀式,觀眾不需要完全看懂《遊林驚夢:巧遇Hagay》,但你能感受心與土地團聚的渴望,也不急著在此處釐清或定義什麼,但你的在場感受,就是一條線索,關於如何找著自己的路徑、自己的聲音。
Thumbnail
這是一場修復文化與重建精神的儀式,觀眾不需要完全看懂《遊林驚夢:巧遇Hagay》,但你能感受心與土地團聚的渴望,也不急著在此處釐清或定義什麼,但你的在場感受,就是一條線索,關於如何找著自己的路徑、自己的聲音。
Thumbnail
本文分析導演巴里・柯斯基(Barrie Kosky)如何運用極簡的舞臺配置,將布萊希特(Bertolt Brecht)的「疏離效果」轉化為視覺奇觀與黑色幽默,探討《三便士歌劇》在當代劇場中的新詮釋,並藉由舞臺、燈光、服裝、音樂等多方面,分析該作如何在保留批判核心的同時,觸及觀眾的觀看位置與人性幽微。
Thumbnail
本文分析導演巴里・柯斯基(Barrie Kosky)如何運用極簡的舞臺配置,將布萊希特(Bertolt Brecht)的「疏離效果」轉化為視覺奇觀與黑色幽默,探討《三便士歌劇》在當代劇場中的新詮釋,並藉由舞臺、燈光、服裝、音樂等多方面,分析該作如何在保留批判核心的同時,觸及觀眾的觀看位置與人性幽微。
Thumbnail
这篇文章主要介绍了通俗解释加密货币的采用是什么意思?的相关资料,需要的朋友可以参考下 🚀 币安 - 全球最大加密货币交易所 💥 独家优惠 💥 💰 注册即享 20% 手续费返佣 🔑 专属邀请码: R851UX3N 比特币和以太坊等加密货币使用点对点去中心化系统进行交易。 由于整个过
Thumbnail
这篇文章主要介绍了通俗解释加密货币的采用是什么意思?的相关资料,需要的朋友可以参考下 🚀 币安 - 全球最大加密货币交易所 💥 独家优惠 💥 💰 注册即享 20% 手续费返佣 🔑 专属邀请码: R851UX3N 比特币和以太坊等加密货币使用点对点去中心化系统进行交易。 由于整个过
Thumbnail
Launchpad指的是透過交易所或鏈上發行平台指定的代幣,優先申購新的代幣發行ICO(Initial Coin Offering,貨幣首次募資或販售)、IEO(Initial Exchange Offerings,首次交易發行)專案。
Thumbnail
Launchpad指的是透過交易所或鏈上發行平台指定的代幣,優先申購新的代幣發行ICO(Initial Coin Offering,貨幣首次募資或販售)、IEO(Initial Exchange Offerings,首次交易發行)專案。
Thumbnail
这篇文章主要介绍了区块链的51%原则 比特币帐本的运作方式是什么的相关资料,需要的朋友可以参考下本文详细内容介绍 🚀 币安 - 全球最大加密货币交易所 💥 独家优惠 💥 💰 注册即享 20% 手续费返佣 🔑 专属邀请码: R851UX3N 从比特币来谈区块链的原理 区块链起源于比
Thumbnail
这篇文章主要介绍了区块链的51%原则 比特币帐本的运作方式是什么的相关资料,需要的朋友可以参考下本文详细内容介绍 🚀 币安 - 全球最大加密货币交易所 💥 独家优惠 💥 💰 注册即享 20% 手续费返佣 🔑 专属邀请码: R851UX3N 从比特币来谈区块链的原理 区块链起源于比
Thumbnail
比特幣區塊鏈為了滿足各種不同的需求與技術,目前衍生出四種不同型態的地址形式,主要是針對安全性、靈活性與新版本兼容性的改革。
Thumbnail
比特幣區塊鏈為了滿足各種不同的需求與技術,目前衍生出四種不同型態的地址形式,主要是針對安全性、靈活性與新版本兼容性的改革。
Thumbnail
《轉轉生》(Re:INCARNATION)為奈及利亞編舞家庫德斯.奧尼奎庫與 Q 舞團創作的當代舞蹈作品,結合拉各斯街頭節奏、Afrobeat/Afrobeats、以及約魯巴宇宙觀的非線性時間,建構出關於輪迴的「誕生—死亡—重生」儀式結構。本文將從約魯巴哲學概念出發,解析其去殖民的身體政治。
Thumbnail
《轉轉生》(Re:INCARNATION)為奈及利亞編舞家庫德斯.奧尼奎庫與 Q 舞團創作的當代舞蹈作品,結合拉各斯街頭節奏、Afrobeat/Afrobeats、以及約魯巴宇宙觀的非線性時間,建構出關於輪迴的「誕生—死亡—重生」儀式結構。本文將從約魯巴哲學概念出發,解析其去殖民的身體政治。
追蹤感興趣的內容從 Google News 追蹤更多 vocus 的最新精選內容追蹤 Google News