Skip to main content

Установка

ws - опциональная peer-зависимость. Устанавливайте её, только если используете WebSocket-клиент.

Сборка клиента

Минимально:
Обратите внимание: .build() асинхронный - перед резолвом устанавливается WebSocket-соединение. При ошибке подключения промис отклоняется сразу.

Методы билдера

.url(url) - основной WebSocket-эндпоинт. Резерв: переменная ORBITFLARE_WS_URL.
.urls([...]) - основной и резервные за один вызов.
.fallbackUrl(url) / .fallbackUrls([...]) - добавить резерв для failover. При переподключении SDK перебирает их по очереди.
.apiKey(key) - лицензионный ключ. Резерв: ORBITFLARE_LICENSE_KEY.
.retry(policy) - backoff при переподключении. По умолчанию: 100 мс начальная, 30 с максимум, 2×, бесконечные попытки.
.pingIntervalSecs(n) - как часто SDK отправляет фреймы WebSocket Ping. По умолчанию: 10.
.maxMissedPongs(n) - сколько ping без ответа перед обрывом соединения. По умолчанию: 3.

Доступные подписки

slotSubscribe()

Срабатывает при обработке, подтверждении или финализации слота.
Каждое событие - объект с полями slot, parent и root:

accountSubscribe(address, commitment)

Срабатывает при изменении данных указанного аккаунта.
Возвращает данные аккаунта в base64 вместе с lamports, владельцем и флагом executable.

logsSubscribe(mentions, commitment)

Для транзакций, в которых фигурируют указанные адреса. Передайте пустой массив для всех транзакций.
Все логи:

signatureSubscribe(signature, commitment)

Срабатывает один раз, когда транзакция достигает заданного уровня commitment. Удобно для подтверждения только что отправленной транзакции.

Чтение событий

Все подписки возвращают WsSubscription. Вызовите .next() для следующего события:
.next() резолвится в undefined, когда подписка закрыта. Также можно подключить колбэк в стиле слушателя событий:

Отписка

Отправляет на сервер сообщение об отписке. Если дропнуть подписку без вызова, SDK обнаружит «сироту» и сам отправит отписку.

Несколько подписок

Все подписки идут по одному WebSocket-соединению. SDK маршрутизирует уведомления на нужную подписку внутри себя.
Новые подписки можно добавлять в любой момент, пока работают существующие.

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

Если соединение обрывается, фоновая задача переподключается с экспоненциальным backoff и автоматически заново подписывается. Ваши вызовы .next() продолжают работать - события возобновятся после восстановления связи.

Полный пример

Скрипт мониторинга: подписка на обновления слотов и изменения аккаунта USDC, вывод ленты в реальном времени.