Skip to content

Чеклист интеграции

Используйте эти правила при сборке продакшен-потребителя.

Суммы

Суммы токенов используют пару полей:

json
{
  "mint": "So111...",
  "amountRaw": "14841398823",
  "amount": "14.841398823"
}
  • amountRaw — целочисленная строка в наименьших единицах токена.
  • amount — десятичная строка с учётом decimals токена.

Держите оба как строки или используйте библиотеку произвольной точности. JavaScript number не может точно представить каждую сырую сумму токена.

Значения в USD

valueUsd заполняется, когда одна сторона сделки — SOL или стейблкоин. Для сделок, где ни одну сторону нельзя так оценить, это null.

minUsdAmount пропускает события с valueUsd: null. Не считайте, что фильтр убирает все неоценённые события.

Время и финальность

  • Стримятся только успешные транзакции.
  • blockTime может быть null, пока Solana ещё не предоставила его.
  • Tessium эмитит, как только сеть обработала транзакцию; не ждёт появления времени блока.

Пересечение подписок

Если вы подписаны и на токен, и на кошелёк, торгующий этим токеном, одна ончейн-сделка даёт два события: по одному на каждую подписку. Дедуплицируйте только когда приложению нужно слить эти два представления.

Для стабильной идентичности события используйте signature плюс индекс события в курсоре. Маршрут может содержать несколько событий в одной транзакции.

Новые токены

Только что созданный токен сразу доступен для mint-scoped подписок.

Переподключения

  1. Сохраняйте последний полностью обработанный курсор на каждую подписку.
  2. Переподключайтесь с экспоненциальным backoff и джиттером.
  3. Пересоздавайте каждую подписку с сохранённым курсором.
  4. Переупорядочивайте replay и live-события по курсору.
  5. Явно обрабатывайте gap, dropped и replay_rate_limited.

Окна и лимиты replay — в Cursor & replay.

Медленные потребители

Читайте непрерывно; выносите тяжёлую CPU-работу и запись в БД с ридера WebSocket. Notice dropped означает, что данные уже потеряны. Notice slow_consumer означает, что соединение закрывается.

Перед масштабированием потребителей сужайте широкие подписки серверными фильтрами.

Размер сообщений

Сообщения клиента — не более 64 KB. Списки принимают не более 50 значений, строки — не более 64 символов.

Realtime Solana data API