Чеклист интеграции
Используйте эти правила при сборке продакшен-потребителя.
Суммы
Суммы токенов используют пару полей:
{
"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 подписок.
Переподключения
- Сохраняйте последний полностью обработанный курсор на каждую подписку.
- Переподключайтесь с экспоненциальным backoff и джиттером.
- Пересоздавайте каждую подписку с сохранённым курсором.
- Переупорядочивайте replay и live-события по курсору.
- Явно обрабатывайте
gap,droppedиreplay_rate_limited.
Окна и лимиты replay — в Cursor & replay.
Медленные потребители
Читайте непрерывно; выносите тяжёлую CPU-работу и запись в БД с ридера WebSocket. Notice dropped означает, что данные уже потеряны. Notice slow_consumer означает, что соединение закрывается.
Перед масштабированием потребителей сужайте широкие подписки серверными фильтрами.
Размер сообщений
Сообщения клиента — не более 64 KB. Списки принимают не более 50 значений, строки — не более 64 символов.