Как проверить существование основного хранилища актива Aptos

Адрес основного хранилища выводится из владельца и метаданных актива ещё до его создания. Индексатору важно различать вычислимый адрес и реально опубликованное хранилище.

Вычислите адрес для конкретного объекта метаданных

Возьмите адрес владельца и Object метаданных проверяемого актива. Два актива с одинаковым тикером могут давать разные адреса первичных хранилищ одного владельца. До создания строки о держателе проверьте существование.

let location = primary_fungible_store::primary_store_address(owner, metadata);
let allocated = fungible_asset::store_exists(location);

Разделите отсутствующее, пустое и дополнительное хранилища

Отсутствующее хранилище может появиться при пополнении по пути, который создаёт его автоматически. В существующем основном хранилище после вывода может быть ноль. У владельца также бывают дополнительные хранилища этого актива, поэтому одна проверка не определяет общий остаток. Храните адреса метаданных и хранилища отдельно.

Источники