Как нормализовать субаккаунт по умолчанию для депозитов ICRC-1
Один счёт реестра может поступить в двух представлениях. Если использовать исходное представление как ключ базы, для одного счёта появятся два баланса.
Приведите счёт к единому виду
Включите в ключ базы идентификатор канистры реестра, байты principal владельца и субаккаунт из 32 байтов. Отсутствующий субаккаунт замените 32 нулевыми байтами. Ненулевой сохраните целиком вместе с ведущими нулями. Перед нормализацией проверьте длину внешних данных.
A = { owner = P; subaccount = null }
B = { owner = P; subaccount = 32 zero bytes }
normalized(A) = normalized(B)
Сверьте обнаруженные дубликаты
Если A и B уже записаны в разные строки, пересоберите общий остаток по уникальным операциям реестра. Сложение накопленных итогов может дважды учесть один депозит. Счета с одинаковым владельцем и субаккаунтом в разных реестрах по-прежнему учитываются отдельно.