ผู้แต่งต้นฉบับ: @tari404, Eric @DoraFactory
สรุปง่ายๆ
ตัวอย่าง
ตัวอย่าง
โดยทั่วไป ทุกสิ่งที่สามารถตั้งโปรแกรมได้สามารถดำเนินการได้ใน Loot Box กรณีการใช้งานเบื้องต้นบางกรณี ได้แก่ สิทธิพิเศษ ของรางวัล รางวัลโทเค็น แอร์ดรอป การลงทะเบียนออนไลน์ รายการที่อนุญาต และอื่นๆ แต่อย่าพลาด สถานการณ์การใช้งานที่ตั้งโปรแกรมได้สำหรับ Loot Box นั้นไร้ขีดจำกัด
ติดตั้ง
ผู้สร้าง NFT สามารถใช้ setLootBox(uint256,address) (หรือเริ่มต้นในเวลาสร้างเหรียญกษาปณ์) เพื่อผูก BUIDL NFT เข้ากับสัญญา LootBox
interface BuidlNFT {
function setLootBox(uint256 tokenId, address lootBoxAddr) external;
function mint(uint256 initPrice, uint256 bid, address lootBoxAddr, bytes calldata sign) external;
function mint(uint256 initPrice, uint256 bid, bytes calldata sign) external;
}
interface ILootBox {
function afterHarbergerBuy(uint256 tokenId, address newNFTOwner) external;
}
เมื่อ NFT ถูก harbergerBuy()ed โดยใครก็ตาม หากมี LootBox อยู่แล้ว ก็จะพยายามเรียกใช้ฟังก์ชัน afterHarbergerBuy() จาก LootBox นักขุด (หรือที่เรียกว่า BUIDLers) ของ BUIDL NFT สามารถกำหนดพฤติกรรมของ afterHarbergerBuy() ได้ตามอำเภอใจ โดยทั่วไปแล้ว สิ่งนี้จะเป็นสิ่งจูงใจ/สิ่งจูงใจสำหรับผู้ซื้อ ผู้ซื้อ NFT สามารถคาดเดาได้ว่าคุณลักษณะนี้จะทำงานอย่างไรก่อนที่จะซื้อ
เพื่อความปลอดภัย LootBox ควรตรวจสอบ:
Ÿmsg.sender: ป้องกันไม่ให้อินเตอร์เฟสถูกใช้งานในทางที่ผิด
ตัวอย่าง
ตัวอย่าง
BUIDL NFT ได้รับการเสนอในบทความ (Geeks and Painters: Open Source Projects, NFTs และ Simplified Harberger Tax) ซึ่งกล่าวถึงวิธีที่ NFTs ใช้กลไกการทำธุรกรรม เช่น Harberger Tax แบบธรรมดาสามารถช่วยสนับสนุนซอฟต์แวร์โอเพ่นซอร์ส Web3 และวิธีการสร้างความสนุกสนาน สำหรับนักสะสมของสะสมที่ไม่ซ้ำใครที่สร้างขึ้นโดยโครงการโอเพ่นซอร์ส
pragma solidity 0.8.6;
import "./BuidlNFT.sol";
contract AirdropLootBox is ILootBox {
address public token;
address public owner;
address public entrypoint;
uint256 public mintTokenId;
constructor(address _toAirdropToken, address _ep, uint256 _mintTokenId) {
owner = msg.sender;
token = _toAirdropToken;
entrypoint = _ep;
mintTokenId = _mintTokenId;
}
function afterHarbergerBuy(uint256 _tokenId, address _newOwner) override external {
require(msg.sender == entrypoint);
require(_tokenId == mintTokenId);
(,,,uint256 currentPrice,,,,) = BuidlNFT(msg.sender).metadataOf(_tokenId);
ERC20(token).transferFrom(owner, _newOwner, currentPrice / 100);
}
}
พื้นหลัง
BUIDL NFT ได้รับการเสนอในบทความ (Geeks and Painters: Open Source Projects, NFTs และ Simplified Harberger Tax) ซึ่งกล่าวถึงวิธีที่ NFTs ใช้กลไกการทำธุรกรรม เช่น Harberger Tax แบบธรรมดาสามารถช่วยสนับสนุนซอฟต์แวร์โอเพ่นซอร์ส Web3 และวิธีการสร้างความสนุกสนาน สำหรับนักสะสมของสะสมที่ไม่ซ้ำใครที่สร้างขึ้นโดยโครงการโอเพ่นซอร์ส
กลไกนี้ได้รับการทดสอบครั้งแรกบน HackerLink HackerLink BUIDL กว่าโหลสร้าง BUIDL NFT ของพวกเขา มีลีดเดอร์บอร์ดของ BUIDL NFT ทั้งหมดบน HackerLink
ในข้อความต้นฉบับ ฝ่ายที่สร้าง NFT ควรให้คำจำกัดความของ NFT มีข้อกำหนดสองข้อที่ไม่เป็นที่นิยมในยุค Web3:
1) ต้องการความไว้วางใจที่ไม่สามารถตรวจสอบได้ เช่นเดียวกับบริการ Web2/ออฟไลน์ การอนุญาตจะได้รับการยืนยันนอกเครือข่าย ตัวอย่างคือแพลตฟอร์มการระดมทุน ซึ่งผลประโยชน์และสิทธิ์มักเขียนเป็นข้อความและยากต่อการบังคับใช้/ตรวจสอบหลังจากการซื้อจริง
2) จำกัดสิ่งที่ NFT สามารถทำได้
BUIDL NFT เดิมเรียกว่า "ถุงเท้า Uniswap" สำหรับโครงการโอเพ่นซอร์ส/สินค้าสาธารณะ ด้วย Loot Box ทำให้ BUIDL NFT สามารถตั้งโปรแกรมได้ ทำให้การโต้ตอบที่ยืดหยุ่นมากขึ้นสำหรับนักพัฒนาและนักสะสม NFT
ความคิด
สำหรับแนวคิดสำหรับกรณีการใช้งาน Loot Box ที่น่าสนใจ เราดูแล lootboxideas.md ทุกคนสามารถมีส่วนร่วมในรายการไอเดียนี้และสร้างแรงบันดาลใจให้ผู้อื่นทำในสิ่งที่ Loot Box สามารถทำได้ ดูรายละเอียด: https://github.com/dorahacksglobal/BUIDL-NFT


