NEAR SC Challenge AS参数不足报错及Powershell/VSCode环境合约方法调用失败问题
NEAR SC Challenge 环境问题解决方案(Powershell + VSCode)
问题1:AssemblyScript 编译报错 Not enough non-option arguments: got 1, need at least 2
触发原因
该报错为near-sdk-as编译指令参数缺失导致,Powershell环境下常见触发场景为手动修改了项目预设编译脚本,或者直接在终端执行asb指令时缺省必填参数。
解决方法
- 检查项目根目录
package.json的scripts字段,确保build配置为默认值:"build": "asb --target debug && asb --target release",不要删除target参数 - 编译合约统一执行
yarn build或npm run build调用预设脚本,不要直接手动执行asb指令 - 如需自定义编译逻辑,确保
asb指令后同时传入合约入口文件路径和wasm输出目录路径两个必填参数
问题2:合约完成构建与dev-deploy后,修改/新增方法调用失败
触发原因
本地修改合约代码后未完成全量重新部署流程,调用时仍指向旧版本合约;或者dev-deploy生成了新的测试账户,调用时仍使用旧的合约账户地址。
解决方法
- 每次修改合约代码后,先执行
yarn build重新编译生成最新的wasm文件 - 执行
near dev-deploy重新部署合约,复制部署成功后终端输出的新合约账户:Done deploying to dev-xxxxxxxxxxx-xxxxxx - 调用合约时必须使用新生成的合约账户地址:
- 无参view方法
helloWorld调用指令:near view <新合约账户名> helloWorld - 新增的
whatsYourName方法如果是view方法参照上述指令格式,如为change方法需使用near call指令,注意配置gas限额和签名账户
- 无参view方法
- 如需固定使用同一个dev测试账户部署,可指定账户参数部署:
near dev-deploy --accountId <已有的dev账户名>,前提是本地.near-credentials目录下存在该账户的密钥文件
内容的提问来源于stack exchange,提问作者CTN
相关产品推荐
相关产品推荐

