如何将字符串或字节转换为 AccountId

问题描述

如何将帐户 ID 字符串转换AccountId 原语

let account = "5DJk1gegyQJk6BNs7LceZ1akt5e9fpm4gUYGzcfpKaLG9Mmb".to_owned();
let AccountId: T::AccountId = account;

解决方法

您可能暴露这样的事情在代码硬编码值,而是让他们的配置的。此外,T::AccountId 是通用的,我们不会以任何方式假设它与 SS58 兼容(请注意,AccountId32Ss58Codec,而不是 T::AccountId)。在这种情况下,您想要的是在顶级运行时解析 SS58 字符串并将其作为配置传递到托盘中,这意味着这是以下内容的副本:How to hardcode an address in the substrate runtime?