用途:在 gtest 已全绿后,验证生成的客户端路径能否对接本地节点。
主要能力与要点:部署产物应使用 .opt.wasm(wasm-opt 优化后的 WASM),而非普通 .wasm,后者上传常因 CodeTooLarge 失败。优先用 vara-wallet 部署到本地节点,可处理账户管理与程序上传;已有 gclient 的 Rust 测试框架可用 GearApi + GclientEnv 作为次要路径。
使用方式(主路径 vara-wallet + sails-js):确认 gtest 记录为绿;启动或复用本地节点(ws://localhost:9944);设置端点,如 $VW config set network local、export VARA_WS=ws://localhost:9944 或 --network local,默认是 mainnet,本地必须覆盖;导入有资金的开发账户,如 $VW wallet import --seed '//Alice' --name alice;上传 .opt.wasm 并记录 program id,例如 UPLOAD=$($VW --account alice program upload ./target/wasm32-unknown-unknown/release/my_program.opt.wasm --idl ./my_program.idl --args '[]'),PROGRAM_ID=$(echo $UPLOAD | jq -r .programId);构造函数较重时用 --gas-limit 覆盖 gas;部署后立即调用查询验证初始化;若使用延迟消息,向程序地址转账 VARA,如 $VW --account alice transfer $PROGRAM_ID 100;最后执行一次命令与一次查询,如 $VW --account alice call $PROGRAM_ID MyService/DoSomething --args '["hello"]' --idl ./my_program.idl 和 $VW call $PROGRAM_ID MyService/GetState --args '[]' --idl ./my_program.idl。
次要路径(Rust gclient):确认 gtest 绿;用 GearApi::init(WSAddress::dev()) 连接本地默认端口,不要用 GearApi::dev_from_path();部署 .opt.wasm 并记录真实 program id;有延迟消息时先转 VARA;通过 GclientEnv 接入真实 program id 的类型化客户端,跑通一条命令或查询。
限制与规则:账户用 SS58 形式的本地开发账户或用户提供地址,不要默认以太坊 0x 地址;program id 与 voucher id 必须来自实际部署或签发,不得编造;种子短语和私钥不得写入脚本、文档或示例;gtest 未通过或缺失时应先回到 sails-gtest;不要用浏览器查询或临时 CLI 替代本地冒烟测试;部署命令与文档不要写机器相关的绝对路径。