LOADING...
LOADING...
LOADING...
当前位置: 玩币族首页 > 行情分析 > Solidity极简入门|第二十六讲:删除合约

Solidity极简入门|第二十六讲:删除合约

2022-09-08 区块律动BlockBeat 来源:区块链网络
原文标题:《Solidity 极简入门: 26.删除合约》
原文作者:0xAA


我最近在重新学 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 合约转入 1ETH。这时,getBalance() 会返回 1ETH,value 变量是 10。


当我们调用 deleteContract() 函数,合约将自毁,所有变量都清空,此时 value 变为默认值 0,getBalance() 也返回空值。


总结


selfdestruct 是智能合约的紧急按钮,销毁合约并将剩余 ETH 转移到指定账户。当著名的 The DAO 攻击发生时,以太坊的创始人们一定后悔过没有在合约里加入 selfdestruct 来停止黑客的攻击吧。


原文链接


—-

编译者/作者:区块律动BlockBeat

玩币族申明:玩币族作为开放的资讯翻译/分享平台,所提供的所有资讯仅代表作者个人观点,与玩币族平台立场无关,且不构成任何投资理财建议。文章版权归原作者所有。

知识 Solidity
LOADING...
LOADING...