# Redspot known types redspot known types 是一个自动添加已知的链的 types 的插件。 在 polkadot 中,添加 types 是很麻烦的事,因为必须手动添加,而不能自动生成。而且又时候也要处理不同链的版本的兼容性问题。 我们希望使用 redspot 的用户,能够专注合约开发,而不用操心这些细枝末节的事。所以我们添加了这个插件,目的就是为了解决不同链的 types 的问题。 大部分链都在 polkadot apps 上提交过 types,所有 types 定义都在 `@polkadot/apps-config` 这个 npm 包里面。所以我们会部分引用`@polkadot/apps-config` 中的 types 定义。但 `@polkadot/apps-config` 缺少开发环境的 types 定义。然后我们会手动补这一部分。 目前支持的链有 canvas, jupiter, europa,edgeware,plasm,clover。 我们已经将这个插件默认加入模版,用户无需进行额外配置。 如果需要手动添加这个插件,首先安装依赖: ```bash= $ yarn add @redspot/known-types ``` 然后在 `redspot.config` 文件中,引入插件: ```javascript= ... import "@redspot/known-types" ... export default { ... }; ``` 我们可以通过 jupiter 链来验证。我们将配置文件的节点,改为连接 jupiter,然后注意删除所有 types: ```javascript= ... // import "@redspot/known-types" ... export default { ... networks: { development: { endpoint: "wss://ws.jupiter-poa.patract.cn/", }, types: {}, ... } ... }; ``` 然后启动 redspot console: ```bash= $ npx redspot console ``` 然后运行命令,查询账户信息: ``` $ await network.api.isReady;(await network.api.query.system.account("3eTmoLUQtK2dsVFtzLUztfPSd3KghZggMpnz1XdzVt33vK9c")).toHuman() { nonce: '0', consumers: '1', providers: '1', sufficients: '4,106,261,181', data: { free: '23.2834 mDOT', reserved: '0', miscFrozen: '0', feeFrozen: '0' } } ``` 现在得到的账户信息是有问题的,我们可以引入 @redspot/known-types 然后对比一下差异: ```javascript= ... import "@redspot/known-types" ... export default { ... networks: { development: { endpoint: "wss://ws.jupiter-poa.patract.cn/", }, types: {}, ... } ... }; ``` 然后,和之前一样步骤查询账户信息,这时我们应该会得到这样的结果: ``` { nonce: '0', consumers: '1', providers: '1', data: { free: '100.0016 MDOT', reserved: '0', miscFrozen: '0', feeFrozen: '0' } } ``` 对比上面结果,这才正确的 accountInfo 的类型,@redspot/known-types 成功识别到了 jupiter 链并且注入了已知的 types。