Openzeppelin

為代表 ERC721 契約處理銷售邏輯的外部代理契約正確打開 Zeppelin 契約?

  • September 19, 2018

我剛剛完成了這篇關於 Open Zeppelin ERC721 令牌實現的文章:

https://medium.com/blockchannel/walking-through-the-erc721-full-implementation-72ad72735f3c

我即將開始實施。文章指出,ERC721 代幣與處理支出邏輯的外部合約一起使用,並且該“代理”合約的地址最終出現在主合約的“允許”映射中。如果我理解正確的話,ERC721 代幣充當代幣所有權記錄的管理實體,並促進代幣轉移和配額的完整性。

那麼,我是否應該假設是否轉移代幣的邏輯(例如 - 銷售或託管釋放等)*應該駐留在外部契約中,*而不是從 ERC721 契約之一派生新契約並將該邏輯在派生契約的正文中?如果是這樣,是否有我應該查看的 Open Zeppelin 契約並將其用作我應該從中派生該契約的外部“代理”契約的模板?

至少就目前而言,我的情況非常簡單,代幣的價格是固定的,一旦買家付款,代幣應該從目前所有者(賣家)轉移給買家。我需要處理的一個主要細微差別是買家是否想要出售代幣。如果沒有,在目前所有者決定出售之前,它不應該出售給任何人。

簡單的架構設計:

合約 1——NFT 合約

  • 實現 ERC-721
  • 處理轉移
  • 處理安全
  • 定義傳輸“打開”或“關閉”的情況

契約 2——託管

  • 代幣保管
  • 實施託管方案
  • 保管可出售的代幣並出售它們*

在某些架構中,例如 Su Squares,* 項是在原始第一方 NFT 合約中實現的。

引用自:https://ethereum.stackexchange.com/questions/47771