Solidity極簡入門|第二十六講:刪除合約
BlockBeats 律動財經 2022-09-08 22:01
我最近在重新學 solidity,鞏固一下細節,也寫一個「Solidity 極簡入門」,供小白們使用(編程大佬可以另找教程),每周更新 1-3 講。
所有代碼和教程開源在 github:github.com/AmazingAng/WTFSolidity
selfdestruct
selfdestruct(自毀)命令可以用來刪除智能合約,並將該合約剩餘 ETH 轉到指定地址。selfdestruct 是為了應對合約出錯的極端情況而設計的。它最早被命名為 suicide(自殺),但是這個詞太敏感。為了保護抑鬱的程序員,改名為 selfdestruct。
如何使用 selfdestruct
selfdestruct 使用起來非常簡單:
其中_addr 是接收合約中剩餘 ETH 的地址。
例子
在 DeleteContract 合約中,我們寫了一個 public 狀態變量 value,兩個函數:getBalance() 用於獲取合約 ETH 餘額,deleteContract() 用於自毀合約,並把 ETH 轉入給發起人。
部署好合約後,我們向 DeleteContract 合約轉入 1 ETH。這時,getBalance() 會返回 1 ETH,value 變量是 10。
當我們調用 deleteContract() 函數,合約將自毀,所有變量都清空,此時 value 變為默認值 0,getBalance() 也返回空值。
總結
selfdestruct 是智能合約的緊急按鈕,銷毀合約並將剩餘 ETH 轉移到指定帳戶。當著名的 The DAO 攻擊發生時,以太坊的創始人們一定後悔過沒有在合約里加入 selfdestruct 來停止駭客的攻擊吧。
暢行幣圈交易全攻略,專家駐群實戰交流
▌立即加入鉅亨買幣實戰交流 LINE 社群(點此入群)
不管是新手發問,還是老手交流,只要你想參與虛擬貨幣現貨交易、合約跟單、合約網格、量化交易、理財產品的投資,都歡迎入群討論學習!
- 從零開始學合約系列講座熱烈報名中
- 掌握全球財經資訊點我下載APP
文章標籤
上一篇
下一篇