Altcoin
我可以關閉乙太坊智能合約嗎?
如果我創建了一個智能合約和代幣,我是否可以在某天關閉合約並且這些代幣是無用的或不能使用?有沒有可能?
如果合約支持這樣的功能,那麼是的。
你基本上有兩個選擇:
1)編寫程式碼以根據某些標準拒絕使用合約。例如,您可以編寫一個函式,該函式在呼叫時會禁用合約中的所有其他功能。
2)在合約中實現自毀功能。這將刪除契約,之後就不能再使用了。這是錘子方法,不是很……微妙。詳細資訊:http: //solidity.readthedocs.io/en/v0.4.24/introduction-to-smart-contracts.html#self-destruct
Solidity 的 Open-Zeppelin 庫有一些生命週期合約,可以處理您描述的場景。你可以在這裡找到它們:
https://github.com/OpenZeppelin/openzeppelin-solidity/tree/master/contracts/lifecycle
可破壞的.sol
這是最類似於您要執行的操作,並支持兩個功能:
function destroy() public onlyOwner { selfdestruct(owner); } function destroyAndSend(address _recipient) public onlyOwner { selfdestruct(_recipient); }
首先,它利用了另一個名為 Open-Zeppelin 的庫
Ownable.sol
,該庫允許合約擁有一個指定的地址作為合約的所有者。預設情況下,它是合約創建者。然後
Destructible.sol
使所有者能夠專門銷毀合約,將任何剩餘的 ETH 餘額發送給他們自己或特定的接收者。