我有一个问题,我正在进入一个 Token 项目。而我还在修炼,我的diyuntiva如下。将代币编译到 BSC 后,我可以在代币上附加更多功能和更多智能合约,否则就没有别的事可做!感谢您的理解
问问题
43 次
1 回答
1
Solidity 源代码被编译为与 EVM 兼容的字节码。然后您可以将字节码部署到实际的实时网络。
编译代码后(使用solc
Solidity 编译器的缩写),您可以根据需要对其进行多次更新和重新编译。
但是,我猜您想问是否可以在将代码部署到网络后对其进行更新。
简单的答案是:不。字节码是不可变的,一旦部署了它,就无法更改它。
话虽如此,......您可以使用代理模式,您实际上并没有更改字节码,只是一个指向保存合约实现的地址的指针(存储中的值)。这允许您将新版本的合约部署到新的实现地址(在后台),而用户仍然与原始代理地址(在前面)进行交互。请参阅OpenZeppelin 的此页面以获取更多详细信息、代码示例以及更深入地了解其工作原理的图表。
进阶话题:由于selfdestruct
和create2
EVM 操作码的组合,还可以销毁合约并使用新的构造函数参数重新部署它。这篇文章总结得很清楚。
于 2021-11-10T09:48:16.000 回答