编译我的erc20令牌后,我可以修改任何功能吗?
After compiling my erc20 token, can I modify any function?
我有一个问题,我正在进入一个 Token 项目。而我还在修炼中,我的diyuntiva如下。在将令牌编译到 BSC 之后,我可以向令牌附加更多功能和更多智能合约,否则就没有别的事可做!感谢理解
Solidity 源代码被编译为与 EVM 兼容的字节码。然后就可以将字节码部署到实际的现网中了。
编译代码后(使用 solc
,Solidity 编译器的缩写),您可以更新它并重新编译任意次数。
但是,我猜你想问的是在将代码部署到网络后是否可以更新代码。
简单的答案是:不。 字节码是不可变的,一旦部署它,就无法更改它。
话虽如此,...您可以使用 代理模式,您实际上并没有更改字节码,只是一个指针(存储中的值)到保存合约实现的地址。这允许您将新版本的合约部署到新的实现地址(在后台),而用户仍然与原始代理地址(在前面)交互。请参阅 OpenZeppelin 的 this page,了解更多详细信息、代码示例和更深入地了解其工作原理的图表。
高级主题:由于 selfdestruct
和 create2
EVM 操作码的组合,也可以销毁合约并使用新的构造函数重新部署它参数。 This article 总结得很好。
我有一个问题,我正在进入一个 Token 项目。而我还在修炼中,我的diyuntiva如下。在将令牌编译到 BSC 之后,我可以向令牌附加更多功能和更多智能合约,否则就没有别的事可做!感谢理解
Solidity 源代码被编译为与 EVM 兼容的字节码。然后就可以将字节码部署到实际的现网中了。
编译代码后(使用 solc
,Solidity 编译器的缩写),您可以更新它并重新编译任意次数。
但是,我猜你想问的是在将代码部署到网络后是否可以更新代码。
简单的答案是:不。 字节码是不可变的,一旦部署它,就无法更改它。
话虽如此,...您可以使用 代理模式,您实际上并没有更改字节码,只是一个指针(存储中的值)到保存合约实现的地址。这允许您将新版本的合约部署到新的实现地址(在后台),而用户仍然与原始代理地址(在前面)交互。请参阅 OpenZeppelin 的 this page,了解更多详细信息、代码示例和更深入地了解其工作原理的图表。
高级主题:由于 selfdestruct
和 create2
EVM 操作码的组合,也可以销毁合约并使用新的构造函数重新部署它参数。 This article 总结得很好。