Преобразование между AccountId32 и AccountId в субстрате - PullRequest
0 голосов
/ 15 апреля 2020

У меня есть требование, когда мне передают несколько байтов, и мне нужно создать из него идентификатор учетной записи в субстрате 2.0.

Есть ли способ преобразования между AccountId32 и <T as frame_system::Trait>::AccountId во время выполнения (РАМКА) ? Или создать экземпляр <T as frame_system::Trait>::AccountId из байтов?

Спасибо

1 Ответ

3 голосов
/ 15 апреля 2020

Учитывая необработанные байты, вы можете попытаться создать идентификатор учетной записи следующим образом:

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

Возможно, вы захотите обработать свое состояние ошибки иначе, чем возвращать идентификатор учетной записи по умолчанию.

Если вы Можно проверить, что ваши необработанные байты имеют длину 32 ([u8; 32]), эта операция никогда не должна завершаться с ошибкой, поэтому вы можете поместить .expect("32 bytes can always construct an AccountId32").

...