Flow测试网已部署智能合约如何更新或删除?操作报错如何解决

Flow测试网已部署合约更新、删除操作方法
首先明确核心规则:Flow网络仅允许合约的部署账户本身对名下合约执行修改、删除操作,非部署账户发起相关请求会直接触发权限报错。
操作报错的常见原因
- 操作时签名使用的账户不是最初部署该合约的账户,权限校验不通过
- 本地CLI配置文件中填写的账户地址、私钥、签名算法和部署时的信息不匹配,实际签名账户有误
- 使用的Flow CLI版本过低(低于v0.42),测试网升级后旧版本接口的签名校验逻辑不兼容
- 网页端操作时连接的钱包地址和合约部署地址不一致,没有对应操作权限
CLI方式更新合约正确步骤
- 先将本地Flow CLI升级到v0.42及以上版本
- 打开工作目录下的
flow.json配置文件,核对部署账户的地址、私钥、签名哈希算法配置,和当初部署合约时的信息完全一致 - 在项目根目录执行更新命令,替换对应参数即可:
flow accounts update-contract ./你的合约源码文件.cdc --contract-name 部署时填写的合约名称 --signer flow.json中配置的部署账户别名 --network testnet
CLI方式删除合约正确步骤
注意:Flow主网不支持删除已部署合约,仅测试网、本地开发模拟器支持该操作。
执行以下命令即可完成删除:flow accounts remove-contract 部署时填写的合约名称 --signer flow.json中配置的部署账户别名 --network testnet
补充说明
网页端工具操作合约需要连接部署合约时使用的对应钱包账户,只要连接的钱包地址和部署地址不匹配就会抛错,优先使用CLI方式操作稳定性更高。
另外Flow测试网会定期重置全网状态,重置后所有历史部署的合约都会被清空,这种情况不需要手动执行删除操作,直接重新部署合约即可。
内容的提问来源于stack exchange,提问作者ponfepilot ponfepilot
相关产品推荐
相关产品推荐

