【问题标题】:Use custom types (Substrate FRAME pallet + Polkadot/Substrate frontend)使用自定义类型(Substrate FRAME 托盘 + Polkadot/Substrate 前端)
【发布时间】:2020-10-30 02:12:14
【问题描述】:

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

问题:

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

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

【问题讨论】:

  • Hey Sea,你能支持我们的 Substrate StackExchange 提案吗:area51.stackexchange.com/proposals/126136
  • @ShawnTabrizi 当然,我已经承诺并鼓励其他对 Substrate 感兴趣的人也这样做。

标签: substrate polkadot polkadot-js


【解决方案1】:

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

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

配置示例:我们以the pallet I learned this lesson with为例。在突出显示的行中,您会看到自定义枚举“States”:

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

使用帮助对话框(白色问号),原来正确的配置JSON sn-p如下所示:

"States": {
    "_enum": [
        "Propose",
        "VotePropose",
        "Concern",
        "VoteConcern",
        "VoteCouncil"
    ]
}

【讨论】:

【解决方案2】:

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

【讨论】:

猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-02-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-07-15
相关资源
最近更新 更多