Skip to main content

Установка

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

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

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

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

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

slot_subscribe()

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

account_subscribe(address, commitment)

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

logs_subscribe(mentions, commitment)

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

signature_subscribe(signature, commitment)

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

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

Все подписки возвращают WsSubscription. Вызовите .next() для следующего события:
.next() возвращает Option<serde_json::Value>. None — подписка закрыта.

Отписка

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

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

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

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

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

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

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