Aptos 上的模块
Aptos 允许在包中进行无需许可的模块发布, 同时也支持对设置了适当兼容性策略的模块进行升级。
模块包含多个结构体和函数,这一点与 Rust 类似。
在包发布时,需要遵守以下约束:
- 结构体和公共函数签名都以不可变的方式发布。
init_module
函数在模块初始化中扮演着关键角色:- 当首次发布模块时(即该模块在链上不存在),VM 将会查找并执行
init_module(account: &signer)
函数。 - 当升级已经存在于链上的模块时,
init_module
函数将不会被调用。 - 发布模块的账户的签名者会被传入
init_module
函数。 - 此函数必须是私有的,且不能返回任何值。
init_module
函数通常用于初始化模块特定的数据结构或设置初始状态。
- 当首次发布模块时(即该模块在链上不存在),VM 将会查找并执行