Smartify 功能說明:作品集(Collections) 與 收藏者(Collectors) 頁面 首先感謝 @cycyyayaya 火力支援 在 Smartify 平台上鑄造了四款貓咪插畫並上架 Oasis https://noise.cash/u/cycyyayaya 製作非常精美,歡迎大家參觀收藏。(先偷偷收了一隻了 XD) ◎ 作品集(Collections) 而目前 Smartify 作品集(Collections)頁面也已經完成與 Oasis 對接的功能 (上線後這幾天一直在補程式債 QQ) 作品集頁面可以直接顯示綠洲的上架交易資訊,如圖一。 https://smartify-items.github.io/collections.html?a=0x534bB083A8E1221Ff6ee3D51E48FD7C579Fc01d0&h=&auction=true @cycyyayaya 這個系列目前還沒有把主題標籤送上鏈 如果把主題標籤送上鏈,那在創作者屬性之外另外可以主題標籤作區隔來顯示,如 @Amiao 的美食生肖系列(圖二): https://smartify-items.github.io/collections.html?a=0x5c933CA68D583F688B978822E0eF3eD66a04ec0c&h=%23%E7%BE%8E%E9%A3%9F%E7%94%9F%E8%82%96 亦感謝 @Amiao 火力支援美食夢工廠 mentions 作品~~ 歡迎大家收藏 ◎ 收藏者(Collectors) 而作為收藏者,如果想要展示特定創作者的收藏品,目前也增加了以創作者做區隔的功能,如圖三,為黑鴨的 Smartify Items 收藏。 https://smartify-items.github.io/collectors.html?a=0x5eAaBf71831F577D2098CCB9994C175d7faD4d19 希望這些小功能能幫助各位創作者與收藏者展示自己的創作與收藏~~ 把更多新血活力都帶進 smartBCH 社群裡。 ◎ 手機上展示分享與轉發 一個大家或許會想問的問題是:如何在茶餘飯後間分享這些 NFT? 目前 Smartify 平台還沒有作針對行動裝置(就手機啦)的顯示最佳化 但鑄造方面與 Oasis 下標用小狐狸錢包的瀏覽器都是沒問題的 而如果只是想分享與轉發贈送,也可以直接匯入到小狐狸的錢包,呈現如圖四。黑鴨所描述的純純的 NFT,應該可以是朋友間製造話題的好媒介。 歡迎創作者一起來加白名單發發發,還沒有閒暇創作的也可以來逛逛、收藏、推廣 smartBCH 生態。 Smartify 頻道也歡迎訂閱追蹤 https://noise.cash/c/smartify-1kn9n62l #Smartify
15 comments
嗚啊謝謝李維大的分享和支持QQ 您真的太神啦,跪著看完 原來把主題標籤送上鏈是這個意思,恍然大悟!下次就來試試看!!
主題標籤可以補送上鏈的 我之後再寫一篇說明使用方式
推一個!!!
想要加個白名單,過幾天來試試~ 0xae271751d0cBe1Dd71CBd6Cd36BC31D6A32631d8
0x5eAaBf71831F577D2098CCB9994C175d7faD4d19 我也要加個白名單,幫別人上架一下作品。 另外問一下你會對外開放API串接嗎?
黑鴨板大當然是直接加管理員 到 https://smartify-items.github.io/contract.html 用 adminAddUser 就可以把用戶加入白名單了 有適合的人選還請黑鴨逕自加進來 多多益善 未來合約本身也希望能夠一步一步去中心化 白名單的部分我也一併處理了 API 的部分是指? 如果是合約的 ABI 的話在 GitHub 上就有 https://github.com/smartify-items/smartify-items.github.io/blob/main/script/contract-abi.js 歡迎各方逕行接來用 確定是要這個的話我可以寫一篇說明 我也可以提供合約原始碼
感謝加入白名單,ABI的話也可以,這樣我的網站就直接把Smartify Items的合約加進去就好
感謝黑鴨支持 好的我再準備檔案跟說明給你
合約原始碼見 https://github.com/dliwilb/smartify-contract-enum-royalty-ipfs-simple 可以 clone 進 remix 後隨便找個 testnet 部署 可能就比較快知道合約在幹嘛 網站要接進來我想比較會用到的 function 就兩個 function createToken( uint16 _editions, address _to, bytes32 _part_1, bytes32 _part_2, uint16 _royaltyAmount ) 與 function createTokenHashtags( uint256 _tokenId, bytes32 _hashtag_1, bytes32 _hashtag_2, bytes32 _hashtag_3) 除此之外就是個 ERC721 + Enumerable + EIP-2981 合約,加上一些階段性發展或許會需要的 access control。 createToken 的部分 TokenURI = ipfs_prefix + ipfsCID ipfsCID 考量未來支援性以兩個 bytes32 存放 struct ipfsCID{ bytes32 part_1; bytes32 part_2; } ipfsCID 字串拆成兩段然後轉成 bytes32 的部分可參考 https://rinkeby.etherscan.io/address/0xfb0c28b3f49c907907b68d5554baec2379d7704b#readContract 與 https://github.com/dliwilb/smartify-items/blob/main/script/common-tools.js ~ 133 行以後 createTokenHashtags 的部分就是給 tokenId 跟至多三個轉成 bytes32 的主題標籤,方法同上。 這兩個 function 都有對應的 events 方便鏈上索引 其中 ipfsCID 的部分也直接做成 events 了(甚至還做了兩份) 所以刷過 events 後可以直接讀 args[4] 來湊出 tokenURI 而不用再一個一個用 tokenURI 函式刷 event CreateToken( uint256 indexed tokenId, string indexed hashedIpfsCID, address indexed createdBy, uint16 editions, string plainIpfsCID ); event TokenHashtags( uint256 tokenId, bytes32 indexed hashtag_1, bytes32 indexed hashtag_2, bytes32 indexed hashtag_3 ); 如果要沿用這個合約 目前已知一個臭蟲是改 tokenURI 的後門忘了做 不是什麼大問題 就我本來打算初期有需要可以手動修正 上軌道後再鎖死 目前 Smartify 也出現一例鑄造失敗 發生原因就案主描述可能跟網路有關 鑄造過程中跑去地下室這樣 但這也不是大問題 因為是用 IPFS 系統 Smartify 前端會自動排除非 IPFS CID 的內容 用的是 is-ipfs 函式庫 https://github.com/ipfs-shipyard/is-ipfs 為尊重鑄造者 鑄造失敗的 NFT 在 Manage Items 與 Items 頁面還是可以找到 如果合約要改進 或許可以在 CreateToken 的地方 做一個檢查 _part_1 + _part_2 是否為 ipfsCID 的判斷 然後 EIP-2981 的部分我不知道要去哪實測 另外就是瓦斯最佳化 應該還有不少空間 (最大的部分應該是把 3 個 bytes32/uint256 = 2 個 ipfsCID + 1 個 tokenId 擠成一個) (再來可能就 events 的部分) 我也不確定這個合約能夠走多遠 沒大問題就繼續用 有問題的話我的想法是寫新合約然後繼承舊合約已發行的 NFT 資料 我想到的大概是這樣 抱歉寫的有點雜亂 如果有特別需要什麼資訊的再麻煩跟我說
太棒了,不過我這邊也要花時間看一下。 另外可以問一下mint的時候可以加上作者名稱或暱稱嗎? 目前看到都是鑄造地址,這對一般人比較難以識別。 假如怕有人亂冒名的話,也可以設計一個function把地址與名稱綁定,且只有管理者角色才能用這個function。
識別名系統上線測試了: https://noise.cash/post/lxg5p0km 有管理員功能,可以把特定地址的紀錄消掉,也可以強制把特定識別名稱設在某個位址下。 但有一個軟性管理問題我剛才想到,如果被大量濫用的話變成要準備大量空地址來放特別識別名。我之後會改版做一個管理員可以控制的旗標,但這個合約應該還是足以進入測試用。
讚~~~正在測試中
我把你的 0x5eAa 位址設成管理員 1) 可以直接幫特定使用者設定識別名(上面 address 跟 artist name 兩個欄位都填的話) 2) 可以把某個使用者取消登記(address 填入該使用者,artist name 空白) 如果有空歡迎幫忙亂試,感謝。 如上述,合約細節還會再修改,但概念的部分大概是這樣了;但概念的部分如果有任何想法我也都可以加進來。
目前 Smartify 沒有類似 naming service 的功能 但的確我有在想這個問題 目前的想法是另外寫一個合約來記錄 位址 -> 作者名稱 的對應 那每一個位址的擁有者可以自己去那個合約註冊 註冊除了會在鏈上有 state variables 貯存以外也會發出 events 方便日後查詢對照 名稱不可重複這樣 不過最近要先把一些精力放到另一個跟噪咖合作的專案上(敬請期待~~)
所以 wall.cash 還是持續進展中對吧? 期待!