如何在Polkadot.js Apps中配置Substrate带关联值的枚举类型
解决Polkadot.js中带关联值的Substrate枚举配置问题
你的问题核心在于:你定义的PoolId是带关联数据的枚举变体(TX(ItemId)里的ItemId本质是u8类型),而你之前用的数组式_enum配置只适用于无关联数据的简单枚举,所以无法正确解析该类型。
正确的JSON配置方式
你需要使用对象格式的_enum配置,把每个枚举变体和它对应的关联数据类型绑定起来,具体配置如下:
{ "PoolId": { "_enum": { "TX": "u8" } } }
配置细节说明
- 外层的
PoolId对应你Substrate代码里的枚举类型名 _enum对象里的键是枚举变体的名称("TX"),值是该变体关联的数据类型(这里ItemId被定义为u8,所以直接写"u8")- 如果后续你的枚举新增其他带关联值的变体,比如:
对应的配置可以直接扩展为:pub enum PoolId { TX(ItemId), Stake(u32), }{ "PoolId": { "_enum": { "TX": "u8", "Stake": "u32" } } }
使用提示
把这个配置粘贴到Polkadot.js Apps的Settings > Developer页面的「Additional types」输入框中,保存后就能正确解析PoolId类型的数据了。
内容的提问来源于stack exchange,提问作者dev-for-fun
相关产品推荐
相关产品推荐

