Etherscan

燒錄ERC721無外露燒錄功能

  • March 25, 2022

情況是這樣的:我得到了這個平台,它可以讓使用者從其他收藏中發送特定的 NFT。我的平台應該燒掉它,並在交換過程中處理一些其他的東西(與此無關)。

問題是來自另一個集合的這個 NFT 沒有外部暴露的刻錄功能,因此我無法從中創建一個介面來呼叫我的程式碼。

如果這是一個 ERC20,我只會簡單地將它發送到一個死地址,但我從 ERC721 內部的 _burn 函式中了解到它並不是那麼簡單。

以這種方式刻錄令牌(發送到 0x0)仍然有效,但我不完全確定 opensea 是否會將其作為刻錄交易處理並從收集頁面中刪除被破壞的物品,etherscan 總供應量指標也是如此。

問題是,這個技巧會奏效嗎?

ERC20 和 ERC721 具有相同的燒錄概念。有兩種選擇:

  1. 通過呼叫某種刻錄功能來顯式刻錄。這必須在部署之前包含在程式碼中。
  2. 發送到死地址,例如 0x0。

第一個總是更好,因為它明確地減少了資產的總供應量,並且幾乎完全被燒毀了——在那之後它就不再存在了。

ERC721 的功能並沒有什麼奇怪或特別之處_burn,它與 ERC20 的功能基本相同。

從契約的角度來看,您可以使用任何一種方式。外部服務(例如 Opensea)在第二種刻錄之後是否“正確”處理它取決於它們的實施(我不知道)。

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