Как выгрузить коллекцию NFT в NEAR на фиксированной высоте

Каталог маркетплейса может пропустить или повторить токены, если коллекция меняется между страницами. У контрактов с NEP-181 есть постраничный метод, который можно привязать к одному блоку.

Зафиксируйте выпуск и хеш блока

Через query/call_function прочитайте nft_total_supply и сохраните block_hash. Используйте его как block_id для nft_tokens. Ниже показаны аргументы метода для страницы со смещением 100. В запросе RPC передайте JSON этих аргументов в виде args_base64.

{
  "from_index": "100",
  "limit": 25
}

Сдвигайте позицию по полученным записям

Начните со строки "0". После страницы из 25 записей следующее смещение равно "25". Идентификатором актива сохраняйте token_id: смещение показывает только позицию в текущей выгрузке. Сверьте число уникальных токенов с выпуском на том же блоке.

Контракт без расширения перечисления может отклонить метод. Отметьте отсутствие возможности и сохраните имя метода отдельно от результата пустой коллекции.

Источники