问题描述
场景::您正在为使用存储或事件中的自定义类型的自定义FRAME pallet节点开发Substrate。要与自定义的“基材”节点进行交互,请使用Polkadot/Substrate frontend
问题:
- 当您查询包含您的自定义类型的存储空间时,前端将返回“未知” 作为值 >
- 当您使用自定义类型提交要包含在应导致发出事件的区块中的外部时, Polkadot / Substrate 前端似乎被卡住,同时指出外部对象已经“准备好”包含在区块中。但是,情况并非如此,如果检查外部应包含的块,则会看到以下错误消息:
无法检索指定的块详细信息。 createType(Vec)::结构:'data'失败::无法构造未知类型YOUR_CUSTOM_TYPE
解决方法
解决方案:您必须在Polkadot / Substrate前端中指定自定义类型。为此,请在顶部菜单栏中选择“设置”->“开发人员”:
在下面,您可以看到一个标题为“其他类型作为JSON文件”的文本字段。在此文本字段中,您必须输入前端的自定义类型,以便能够正确解释这些类型。在版本号正下方的右上角,应该可以看到灰色圆圈中的白色大问号。通过单击此问号,可以进入帮助对话框。
示例配置:让我们以the pallet I learned this lesson with为例。在突出显示的行中,您将看到自定义枚举“状态”:
pub enum States {
Propose,VotePropose,Concern,VoteConcern,VoteCouncil,}
使用帮助对话框(白色问号),可以看到正确的配置JSON代码片段如下所示:
"States": {
"_enum": [
"Propose","VotePropose","Concern","VoteConcern","VoteCouncil"
]
}