ethereum - 何时调用合约构造函数?
问题描述
从这个solidity doc我知道构造函数在合约创建时被调用一次。但是还有其他调用构造函数的实例吗?
我正在寻找所有可能调用合约构造函数的情况,以更好地理解智能合约中构造函数的使用以及没有构造函数的后果。
解决方案
不。正如文档中所说,构造函数只被调用一次。
当一个合约被创建时,它的构造函数(一个使用 constructor 关键字声明的函数)被执行一次。
如果它可以被多次调用,这将是一个巨大的安全漏洞,因为构造函数通常会设置合约所有权和其他重要变量。
Parity hack的发生正是因为可以使用delegatecall
.
推荐阅读
- javascript - 通过 html datalist 和 *ngFor 显示一个值并提交另一个值
- google-apps-script - 如何将 onEdit 限制为特定单元格中的更改?
- android - 如何使用 FilePcker.Builder 的相机选项隐藏我正在拍摄的画廊中的图像?
- kubernetes - glusterfs heketi 使用分区而不是原始设备以允许轻松扩展
- php - 发送多封电子邮件时出错,应该只发送一封
- rest - 如果休息端点正在使用外部休息端点,Swagger/其他 API 文档/工具能否提供信息
- c# - HTTP 错误 403.14 - 禁止,本地主机:12401
- python - Python exec() 无法在函数中初始化类实例
- sql - sql server 数据透视表查询
- php - 如何在不修改它们的情况下获取所有 CRUD Mysql 查询的 ID?