solidity - 质问自毁
问题描述
我有可靠的代码,我想知道一些事情:我为 0x583 部署代码......首先,我将 1 eth 发送到另一个帐户。在我点击withdrawAllMoney 之前,我点击destroySmartContract,1 eth 的自动发送到接收者(这没关系!)。但在那之后,我继续从 0x583.. 发送 1 个 eth 到另一个帐户,它仍然从 0x583.. 取出 eth.. 但其他人无法接收它。
我想知道:当我调用 selfdistruct 时,合同是否真的被删除了(无法发送或接收......)
谢谢!
解决方案
当我调用 selfdistruct 时,合同是否真正被删除(无法发送或接收......)
selfdestruct()
有效地从合约地址中删除已部署的字节码。
在下一个区块中,这个(前合约)地址将充当没有智能合约的常规地址,因此它能够接收代币和 ETH。
但是,由于它不再包含任何字节码,您将无法与合约进行交互(它不再存在)。
推荐阅读
- javascript - 在 Elastic Beanstalk 中运行 Docker 构建脚本之前将文件复制到构建目录中?
- angular - 使用 Angular 中的反应形式修补数组内部的数组
- sql - 聚合后的窗口函数
- python - Python、selenium 机器人下拉选择
- angularjs - 当我使用 $locationProvider.html5Mode(true); 时,$window.location.href 刷新整个页面;
- sql - 如何使用匹配值使用 CSV 文件中的数据更新 Postgres 中的列
- anaconda - Anaconda 安装错误
- javascript - 有没有办法将数据流式传输到一个 blob(或生成一个巨大的 blob)
- ios - 使用键从 2 个 JSON 对象创建单个 JSON 字符串
- windows - SSMS 17.5当单元格数据大于可用显示区域时不显示椭圆