4

我有一个要求,我需要传递一些字节,我需要在 Substrate 2.0 中从中创建一个 accountId。

有没有办法在运行时(FRAME)之间AccountId32进行转换?<T as frame_system::Trait>::AccountId或者创建一个<T as frame_system::Trait>::AccountIdfrom bytes 的实例?

谢谢

4

1 回答 1

8

给定原始字节,您可以尝试构造一个帐户 ID,如下所示:

T::AccountId::decode(&mut &bytes[..]).unwrap_or_default();

您可能希望以不同于返回默认 AccountId 的方式处理错误情况。

如果您可以验证原始字节的长度为 32 ( [u8; 32]),则此操作应该永远不会失败,因此您可以放置​​一个.expect("32 bytes can always construct an AccountId32").

于 2020-04-15T15:51:30.867 回答