今天我們歡迎 Geez、Kodas、Chimpers 和 HV-MTL 來到 Amazon。 讓這些代碼可以在鏈上兌換是一個有趣的挑戰。 這一切都由為 Boximus 創建的簡單而強大的 RedemptionCodeRegistry 提供支持。 這是它的運作方式 1/🧵
Othersidemeta
Othersidemeta12 小時前
Feels 現在在 Otherside 的美國亞馬遜商店上線: → Otherside → @hvmtl2 → @GeezOnApe → @ChimpersHQ 很高興能將社群 IP 帶到 @AMZNvideogames,透過 Feels,這些表達情緒的 GIF 會在 Otherside 中顯示在你的頭像上,展現你的心情。
2/ 首先,每個代碼都是在鏈外安全生成的。每個代碼都分配有贖回數據,由一個函數選擇器(4 字節)、代幣 ID(最多 8 字節)和一個鑄造地址(20 字節)組成。 這樣設計是為了將其打包成一個單一的 bytes32,以最小化鏈上存儲成本。
3/ 每個兌換碼都會在鏈外進行哈希處理,然後哈希值會在鏈上存儲在一個映射中,指向其相應的兌換數據。 僅存儲哈希值可以保護底層代碼不被暴露。
4/ 將所有這些存儲在鏈上使我們能夠消除對鏈下贖回時間驗證要求的需求,例如簽名的梅克爾證明,這僅需約 0.04 美分的成本,這要歸功於數據打包。
5/ 用戶現在可以在亞馬遜上購買這些代碼。當代碼在 Otherside 中使用時,合約計算哈希,利用該哈希提取兌換數據,確保它尚未被使用(然後標記為已使用),最後解碼數據並用於調用鑄造合約。
6/ 對於 Boximus,每個代碼都映射到一個特定的代幣 ID,該代幣在兌換時鑄造。對於 Feels,我們需要稍微發揮創意。 我們不是鑄造單一的 ERC721 代幣,而是鑄造一包 1155s。為了使用相同的編碼格式,我們必須調整系統。
7/ 我們創造了「StickerPack」的概念,取代了「token ID」——這是一個靈活且經過存儲優化的結構,位於1155中,存儲任何給定「ID」的貼紙鑄造信息。 在今天的發布中,每個代碼可兌換包裝 #1,該包裝包含從一到十的每個 ID 的一個貼紙。
8/ 有趣的是,這些貼紙包如果需要的話,可以有隨機性的概念。未來的包可以標記為隨機,其中每個代幣 ID 被抽中的機率為 X%,而每個包有 Y 次抽取。
9/ 此處不需要 VRF - 隨機性由贖回碼本身決定。隨機包的選擇機制如下,使用贖回碼和擁有者為每張卡片設定的權重的組合來確定哪些卡片會被抽取到包中。
10/ 期待看到 Feels 在 Otherside 的演變。 還有哪些其他社群會加入呢? 誰會製作出一個聖杯(抽中機率低至 0.01%),誰會是第一個抽到的人? 在元宇宙中,每個人都需要一個數位的展示。 讓我們一起來玩得開心。
219