免费 TON tonos-cli无法部署合约错误:无法创建入站消息:编码部署消息失败:参数计数错误

问题描述

我无法通过 tonos-cli 部署已编译的免费 ton solidity 智能合约。

> tonos-cli deploy Hello.tvc tonos-cli.conf.json

Config: /ton/solidity_deploy/hello/tonos-cli.conf.json
Input arguments:
     tvc: Hello.tvc
  params: {""url"":""https://main.ton.dev"",""wc"":-1,""addr"":null,""wallet"":null,""abi_path"":""Hello.abi.json"",""keys_path"":""keyfile.json"",""retries"":3,""timeout"":600,""is_json"":false,""depool_fee"":0.5,""lifetime"":3600,""no_answer"":true,""use_delimiters"":true,""local_run"":true}
     abi: Hello.abi.json
    keys: keyfile.json
      wc: None
Connecting to https://main.ton.dev
deploying...
Error: Failed to create inbound message: Encode deploy message Failed: Wrong parameters count. Expected: 0,provided: 14
Error: 1

错误结束。我的配置是:

❯ tonos-cli config --list

Config: /ton/solidity_deploy/hello/tonos-cli.conf.json
{
  ""url"": ""https://main.ton.dev"",""wc"": -1,""addr"": null,""wallet"": null,""abi_path"": ""Hello.abi.json"",""keys_path"": ""keyfile.json"",""retries"": 3,""timeout"": 600,""is_json"": false,""depool_fee"": 0.5,""lifetime"": 3600,""no_answer"": true,""use_delimiters"": true,""local_run"": true
}

有人知道怎么回事吗?我按照手册上写的去做。配置是按照 repo 中的描述生成的。可能问题出在参数上.."

解决方法

params 指的是合约构造函数中的参数。您在构造函数中有 0 个参数(预期值:0),因此您需要编写“{}”。

如果tonos-cli.conf.json在当前目录下,则无需在命令行中写入--config tonos-cli.conf.json。

修复tonos-cli.conf.json 中的引号:从"" 到" 和 试试这个: tonos-cli deploy Hello.tvc "{}"