menu-icon
anue logo
熱門時事鉅亨號鉅亨買幣
search icon

區塊鏈

Solidity極簡入門|第二十六講:刪除合約

BlockBeats 律動財經 2022-09-08 22:01

cover image of news article
律動財經圖片

我最近在重新學 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 社群(點此入群
不管是新手發問,還是老手交流,只要你想參與虛擬貨幣現貨交易、合約跟單、合約網格、量化交易、理財產品的投資,都歡迎入群討論學習!

前往鉅亨買幣找交易所優惠

文章標籤


Empty