更新实时智能合约

问题描述

如果我有一个智能合约,其中硬编码了其他一些智能合约的地址。例如。也许我的合同有一些外部高产农业金库的地址,它会定期向其中存入一些余额。

现在假设我想更新地址列表并重新迁移它而不影响当前合约的操作..最好的方法是什么?

解决方法

以太坊字节码不可变,所以简单的答案是:您无法更新硬编码地址。您必须创建一个新合约,这次将地址保存到您可以稍后更新的变量中。


但是,如果您可以selfdestruct您的合约并持有部署者地址的私钥,似乎有一种方法可以重新部署自毁合约(使用不同的字节码)。我只读过几篇关于它的文章,并没有使用这种技术的实际经验,但这对您来说可能是一个很好的起点,并帮助您进行更深入的挖掘:

https://medium.com/@jason.carver/defend-against-wild-magic-in-the-next-ethereum-upgrade-b008247839d2