Как направить логи receipt NEAR в декодер событий нужной версии

В одном массиве логов receipt могут быть и произвольные сообщения, и структурированные события NEP-297. Перед использованием значений индексатору нужно установить источник и схему события.

Разберите оболочку события

Прочитайте логи конкретного результата исполнения. Если строка начинается с маркера события, удалите префикс и разберите оставшееся как JSON. В примере показан собственный стандарт приложения: структуру data определяет само приложение.

EVENT_JSON:{"standard":"example_shop","version":"1.0.0","event":"order_ready","data":{"order_id":"42"}}

Сохраните исполнителя и позицию строки

Выбирайте обработчик по аккаунту исполнителя и полям standard, version и event. Если order_ready пришёл от постороннего контракта, совпадение структуры JSON не делает его событием магазина. Для устранения дублей сохраняйте идентификатор результата и индекс строки, в том числе для событий без data.

Для неизвестной версии сохраняйте исходное содержимое. Перед зачётом события как совершившегося действия отдельно проверьте результат исполнения.

Источники