4

场景:您正在为自定义Substrate节点开发FRAME 托盘,该节点在存储或事件中使用自定义类型。要与您的自定义 Substrate 节点交互,请使用Polkadot/Substrate 前端

问题:

  1. 当您查询包含自定义类型的存储时,前端返回 “未知”作为
  2. 当您提交要包含在应该导致使用自定义类型发射事件的块中的外部时,Polkadot/Substrate前端似乎在声明外部已“准备好”包含在块中时卡住了。但情况并非如此,如果您检查应包含外部的块,您会看到以下错误消息:

无法检索指定的块详细信息。createType(Vec):: Struct: 'data' 失败:: 无法构造未知类型 YOUR_CUSTOM_TYPE

4

2 回答 2

7

解决方案:您必须在 Polkadot/Substrate 前端指定您的自定义类型。为此,请在顶部菜单栏中选择“设置”->“开发人员”:

设置

您可以在下面看到一个标题为“作为 JSON 文件的其他类型”的文本字段。在此文本字段中,您必须输入自定义类型,以便前端能够正确解释这些类型。在右上角,版本号的正下方,应该可以看到一个灰色圆圈中的白色大问号。通过单击此问号,将滑入一个帮助对话框。

示例配置:让我们以我在本课中学习的托盘为例。在突出显示的行中,您会看到自定义枚举“States”:

pub enum States {
    Propose,
    VotePropose,
    Concern,
    VoteConcern,
    VoteCouncil,
}

使用帮助对话框(白色问号),事实证明正确的配置 JSON 片段如下所示:

"States": {
    "_enum": [
        "Propose",
        "VotePropose",
        "Concern",
        "VoteConcern",
        "VoteCouncil"
    ]
}
于 2020-10-30T02:12:14.940 回答
0

现在可以从链上读取元数据,这个问题就不会发生了。

于 2021-12-03T08:54:55.780 回答