Solidity 练习:删除合约
睡不醒的鲤鱼 2022-12-29 Web3 Solidity
# 一、题目说明
可以使用 selfdestruct 函数从区块链中永远删除合约。
selfdestruct 只接受一个参数,即一个 payable 的地址,以强制发送合约中存储的所有 Ether。下面是一个例子:
selfdestruct(payable(msg.sender))
1
- 将 msg.sender 转换为 payable 地址。
- 将合约持有的所有 Ether 发送给 msg.sender。
- 从区块链中删除合约。
# 二、任务列表
- 编写 kill 函数,将该合约删除,并将存储的 Ether 发送给 msg.sender。
# 三、解答代码
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.17;
contract Kill {
function kill() external {
selfdestruct(payable(msg.sender));
}
}
1
2
3
4
5
6
7
8
2
3
4
5
6
7
8