You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Sui Move模块部署报错:需全为0x0地址,如何单独部署新模块?

Move模块部署报错解决指南

报错详情

部署新模块时遇到以下错误:

Failed to publish the Move module(s),
reason: Modules must all have 0x0 as their addresses.
Violated by module ModuleId { address: f2960e4b..., name: Identifier("Widget") }

当前Move.toml配置:

[addresses]
package_addr = "0x0"

核心问题解答

是否必须一次性部署所有模块?

不需要。完全可以分批部署不同模块,只要每一批部署的模块满足地址匹配规则即可——即待部署模块的编译后地址,要和部署时指定的目标地址一致。

如何配置将新模块部署到新地址?

按以下步骤操作:

  1. 修改Move.toml地址配置
    将package_addr的值改为你想要的新地址(也就是报错里提到的f2960e4b...):
    [addresses]
    package_addr = "0xf2960e4b..."
    
  2. 检查并修正模块地址声明
    打开Widget模块的代码,确保模块开头用的是package_addr别名,而非硬编码的旧地址:
    module package_addr::Widget {
        // 模块业务代码
    }
    
    如果之前模块里写了硬编码地址,全部替换成package_addr,这样编译时会自动映射为Move.toml里配置的新地址。
  3. 重新编译并部署
    重新编译模块,然后执行部署命令。大部分Move链的部署工具会自动读取Move.toml的地址配置,无需手动指定;如果需要手动输入目标地址,确保和package_addr的值一致即可。

报错原因说明

这次报错是因为你要部署的Widget模块,编译后的地址是f2960e4b...,但部署工具当前要求模块地址必须是0x0(和你之前部署第一个模块时的配置一致),两者不匹配导致失败。调整配置让模块地址和部署目标地址统一,就能解决问题。

内容的提问来源于stack exchange,提问作者Russo

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.12 22:22:38