Сервис цен
Небольшой отдельный HTTP-сервис, который изолирует единственную внешнюю зависимость dapp.
Почему он отдельный
Долларовая цена токенизированной акции не может браться из блокчейна — она приходит из API. Если поместить её в роут приложения, эта зависимость окажется вшита в продукт.
Благодаря выносу сервиса dapp продолжает читать всё состояние протокола напрямую из блокчейна и остаётся полезной, когда сервис цен недоступен. В этом случае она показывает «price unavailable», но никогда не ноль.
Правило свежести
Это правило дизайна проекта, а не деталь реализации:
Финансовое значение никогда не показывается без знания того, свежее ли оно, а недоступная цена показывается как недоступная — никогда как ноль, никогда как негласная оценка.
Поэтому каждая возвращаемая цена несёт своё происхождение, метку времени, когда она была зафиксирована у источника, и флаг устаревания. Полный ответ также содержит флаг «degraded», если хотя бы для одного символа не удалось получить цену.
Локально
Сервис работает в режиме фикстур: замороженные цены, никаких сетевых вызовов, что делает локальный сценарий воспроизводимым.