Erc-721

自毀 NFT (ERC-721) 代幣

  • October 2, 2019

我想要實現的是自毀令牌。

例如,我想為我的令牌分配一些可更新的 TTL 值。如果達到 TTL,則應自動刻錄令牌。

這種任務的最佳解決方案是什麼?

這樣的實現不安全嗎?有哪些好的做法?

有趣的問題,您正在描述類似於基於時間的資源的東西,例如活動門票或日曆約會,在某個截止日期之前具有價值,之後變得毫無價值(作為出席證明除外)。

您自己的代幣不必使用 ERC20 或 ERC721 的標準 OpenZeppelin 合約,但仍符合標準。你定義的“燒毀”或“活”取決於你的契約。在返回“ownerOf”或“balanceOf”時,您可以簡單地進行額外檢查以查看 TTL 是否仍然有效。

contract TTL_ERC721 {

 mapping(uint256 => uint256) public deadBlockNumbers;

 ...

 function ownerOf(uint256 _tokenId) view public returns (address _owner) {
   if ((deadBlockNumber[_tokenId] == 0) || (block.number > deadBlockNumber[_tokenId])) {
     return "0x0000000000000000000000000000000000"; // check to make sure this is the correct number of zeros
   }
   return owners[_tokenId];
 }

 function mint(uint256 _tokenId, uint256 _owner, uint256 _blocksFromNow) public {
   // do some checks / requires here to make sure msg.sender is able to own this token
   owners[_tokenId] = _owner;
   deadBlockNumber[_tokenId] = _blocksFromNow;
 }

}

祝你好運,希望這會有幫助。

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