如何使用Aptos CLI执行Move脚本?含文件配置与运行指引
你的Move脚本
script { use std::signer; use aptos_framework::aptos_account; use aptos_framework::aptos_coin; use aptos_framework::coin; fun main(src: &signer, dest: address, desired_balance: u64) { let src_addr = signer::address_of(src); let balance = coin::balance<aptos_coin::AptosCoin>(src_addr); if (balance < desired_balance) { aptos_account::transfer(src, dest, desired_balance - balance); }; // 注意:此处addr需替换为自定义模块的实际发布地址 addr::my_module::do_nothing(); } }
自定义Move模块
// 注意:模块名中的addr需替换为你的账户地址(如0x1234...) module addr::my_module { public entry fun do_nothing() { } }
文件存放位置
按照标准Aptos Move项目结构存放即可:
- 创建项目根目录(比如
aptos-top-up-project) - 根目录下新建
sources文件夹,将自定义模块my_module.move放入其中 - 根目录下新建
scripts文件夹,将Move脚本放入其中(比如命名为top_up_balance.move)
是否需要配置Move.toml?
需要,Move.toml是Aptos项目的核心配置文件,用于声明依赖、项目信息等。在项目根目录创建Move.toml,内容示例如下:
[package] name = "AptosTopUpScript" version = "0.0.1" [dependencies] AptosFramework = { git = "https://github.com/aptos-labs/aptos-core", subdir = "aptos-move/framework/aptos-framework", rev = "main" } Stdlib = { git = "https://github.com/aptos-labs/aptos-core", subdir = "aptos-move/framework/aptos-stdlib", rev = "main" } [addresses] # 替换为你的账户地址,需与自定义模块中的addr保持一致 my_addr = "0x123456789abcdef"
提示:
rev字段可指定与你的CLI版本匹配的aptos-core提交或标签,避免版本兼容问题。
通过Aptos CLI运行脚本的步骤
1. 发布自定义模块到链上
脚本需调用链上已部署的模块,因此先执行发布命令:
aptos move publish --package-dir ./ --named-addresses my_addr=<你的账户地址> --profile default
说明:
--profile default使用你通过aptos init配置的默认账户,若使用其他配置文件,替换为对应profile名称即可。
2. 运行Move脚本
模块发布完成后,执行以下命令运行脚本,替换对应的参数值:
aptos move run-script --script-path ./scripts/top_up_balance.move --args address:<目标账户地址> u64:<期望余额数值> --profile default
示例:若要给地址
0xabc补足到1000000000000 APT,命令为:aptos move run-script --script-path ./scripts/top_up_balance.move --args address:0xabc u64:1000000000000 --profile default注意:
--args的参数顺序需与脚本main函数的参数对应,签名者src由--profile指定的账户自动传入。
内容的提问来源于stack exchange,提问作者Daniel Porteous
相关产品推荐
相关产品推荐

