如何将 FRAME 的 AccountId 转换为网络特定的 SS58?
How do I convert FRAME's AccountId to network specific SS58?
我想将 AccountId
转换为带有自定义网络前缀的 SS58
格式。
基本上从JS utilities复制以下内容,例如:
更改地址前缀(前缀查找),前缀 = 50
5GrwvaEF5zXb26Fz9rcQpDWS57CtERHpNehXCPcNoHGKutQY
65ADzWZUAKXQGZVhQ7ebqRdqEzMEftKytB8a7rknW82EASXB
一般如何在 Substrate pallet 中完成?我是否需要将关联类型添加到我的配置特征中以扩展 Ss58Codec
特征,或者我能否以某种方式将 AccountId
转换为 AccountId32
然后使用其 to_ss58check_with_version()
函数?
最后我决定不在运行时以 ss58 格式处理地址,因为它被视为严格的外部事物。此外,substrate 中与 ss58 相关的所有函数都使用 STD,因此无法按原样用于 wasm 编译。
另一种解决方案是在 JS UI 中处理这种情况,我会使用 this 代码向用户解释公钥地址是什么以及它映射到什么 ss58 地址。
签名邮件中的地址将保留为十六进制格式。
我想将 AccountId
转换为带有自定义网络前缀的 SS58
格式。
基本上从JS utilities复制以下内容,例如:
更改地址前缀(前缀查找),前缀 = 50
5GrwvaEF5zXb26Fz9rcQpDWS57CtERHpNehXCPcNoHGKutQY
65ADzWZUAKXQGZVhQ7ebqRdqEzMEftKytB8a7rknW82EASXB
一般如何在 Substrate pallet 中完成?我是否需要将关联类型添加到我的配置特征中以扩展 Ss58Codec
特征,或者我能否以某种方式将 AccountId
转换为 AccountId32
然后使用其 to_ss58check_with_version()
函数?
最后我决定不在运行时以 ss58 格式处理地址,因为它被视为严格的外部事物。此外,substrate 中与 ss58 相关的所有函数都使用 STD,因此无法按原样用于 wasm 编译。
另一种解决方案是在 JS UI 中处理这种情况,我会使用 this 代码向用户解释公钥地址是什么以及它映射到什么 ss58 地址。 签名邮件中的地址将保留为十六进制格式。