fisco bcos中solidity销毁合约,删除合约的方法
fisco bcos中solidity销毁合约删除合约的方法
1.字节码中有一个selfdestruct指令,用于销毁合约。所以只需要暴露出自毁接口即可: ``` contract Mortal{ //自毁 function destroy() public { selfdestruct(msg.sender); } } ``` 2.Automatic Deprecation - 允许合约自动停止服务 如果你希望一个合约在指定期限后停止服务,而不需要人工介入,可以使用Automatic Deprecation模式。 ```javascript hljs contract AutoDeprecated{ uint private _deadline; function setDeadline(uint time) public { _deadline = time; } modifier notExpired(){ require(now <= _deadline); _; } function service() public notExpired{ //some code } } ``` 当用户调用service,notExpired修饰符会先进行日期检测,这样,一旦过了特定时间,调用就会因过期而被拦截在notExpired层。 ps: 合约部署前只能是内置了上述的函数,才能手动触发或者定时触发销毁。否则部署的合约会永久性的运行在系统之中。 ![](https://img.learnblockchain.cn/attachments/2020/10/2ffbsqGM5f9183ac8e10c.png)
1.字节码中有一个selfdestruct指令,用于销毁合约。所以只需要暴露出自毁接口即可:
contract Mortal{
//自毁
function destroy() public
{
selfdestruct(msg.sender);
}
}
2.Automatic Deprecation - 允许合约自动停止服务
如果你希望一个合约在指定期限后停止服务,而不需要人工介入,可以使用Automatic Deprecation模式。
contract AutoDeprecated{
uint private _deadline;
function setDeadline(uint time) public {
_deadline = time;
}
modifier notExpired(){
require(now <= _deadline);
_;
}
function service() public notExpired{
//some code
}
}
当用户调用service,notExpired修饰符会先进行日期检测,这样,一旦过了特定时间,调用就会因过期而被拦截在notExpired层。
ps: 合约部署前只能是内置了上述的函数,才能手动触发或者定时触发销毁。否则部署的合约会永久性的运行在系统之中。
- 发表于 2020-10-29 16:42
- 阅读 ( 2637 )
- 学分 ( 22 )
- 分类:FISCO BCOS
评论