You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Archway网络合约实例化时触发无效类型错误求助

排查Archway合约实例化"Invalid type"错误的可能原因

错误信息

Error: rpc error: code = Unknown desc = rpc error: code = Unknown desc
= failed to execute message; message index: 0: Error parsing into type cw_arcade::msg::InstantiateMsg: Invalid type: instantiate wasm
contract failed [CosmWasm/wasmd@v0.32.0/x/wasm/keeper/keeper.go:302]
With gas wanted: '300000000' and gas used: '135732' : unknown request

合约实例化消息结构

#[derive(Serialize, Deserialize, Clone, Debug, PartialEq, JsonSchema)]
pub struct InstantiateMsg {
    pub admins: Vec<String>,
    pub name: String,
    pub max: u8,
    pub price: u128,
    pub denom: String,
}

前端提交的数据

{
    "admins":
    [
        "archway1uwew6p8k70xa2lkzeujqcw430uky49zthsvc0y",
        "archway10mxcxvyjnpcmnkg0sxf7r25f3wzjqdz6jp4jux",
        "archway1a8dq0wced6q29rppdug7yvk8ek0dsrqwe3hxcz"
    ],
    "name": "Name",
    "max": 250,
    "price": 1000000000,
    "denom": "aconst"
}

可能的错误原因及排查步骤

  • price字段类型不匹配:JSON数字默认是64位浮点数,虽然1000000000在合法范围内,但部分serde配置或链上虚拟机版本可能无法直接将其反序列化为u128。尝试将price的值改为字符串格式,比如"1000000000"后重新提交。
  • 合约与链上wasmd版本不兼容:链上使用的wasmd v0.32.0对应特定版本的CosmWasm SDK,若合约编译时使用的cosmwasm-std等依赖版本过高,会导致反序列化逻辑冲突。检查合约Cargo.toml中的依赖版本,确保与链上版本匹配(wasmd v0.32.0对应cosmwasm-std v1.3.x系列)。
  • max字段的隐性类型问题:虽然250属于u8的合法范围(0-255),但某些情况下JSON数字的编码方式可能导致虚拟机识别错误。临时将max改为更小的值(如100)测试,验证是否能正常实例化。
  • 提交数据的格式隐性错误:检查地址字符串是否包含不可见字符、JSON是否存在隐性语法问题(如多余换行、空格)。使用JSON校验工具验证提交数据的合法性,同时确保地址是符合Archway规范的bech32格式。

内容的提问来源于stack exchange,提问作者user22306396

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.15 02:00:54