我发布了一个模块。它具有发布另一个模块的功能。当我尝试调用此函数时,事务提交时出现错误MODULE_ADDRESS_DOES_NOT_MATCH_SENDER
。
我的代码使用account::create_resource_account
创建未来的模块所有者帐户,使用Aptos框架的aptos_framework::code::publish_package_txn(owner: &signer, metadata_serialized: vector<u8>, code: vector<vector<u8>>)
发布模块。
我通过运行以下命令来检索元数据和代码:hexdump -ve '1/1 "%02x"' ./mymodue/build/mymodue/package-metadata.bcs
和hexdump -ve '1/1 "%02x"' ./mymodue/build/mymodule/bytecode_modules/mymodulesource.mv
这里,据说VM在发布模块时会这样做:
- 检查模块地址和发件人地址是否相同:此检查验证发布者是否是最终持有模块的帐户。如果两个地址不匹配,则返回
StatusCode::MODULE_ADDRESS_DOES_NOT_MATCH_SENDER
错误
是否检查Move.toml以确保部署模块的命名地址与您创建的资源帐户的地址匹配?