Skip to content

SyncBybitEasyEarnSnapshot

Вызывает Bybit Easy Earn overview API, нормализует coin groups и записывает snapshot в Timescale через SQL ingest.

Код: internal/worker/activities/sync_bybit_easy_earn.go

Input (models.SyncBybitEasyEarnInput):

  • page_limit optional, default 10
  • max_pages optional, default 30

Output (models.SyncBybitEasyEarnResult):

  • snapshot_at
  • projects_seen
  • projects_upserted
  • subpools_seen
  • subpools_upserted
  • quarantine_rows

Details

  • Bybit endpoints:
  • GET https://www.bybit.com/x-api/s1/byfi/get-coins
  • POST https://www.bybit.com/x-api/s1/byfi/get-easy-earn-product-list
  • DB: SQL function ingest_bybit_easy_earn_snapshot($1::jsonb) + fct_bybit_easy_earn_*
  • Source marker: api
  • Optional env overrides:
  • BYBIT_EASY_EARN_COOKIE
  • BYBIT_EASY_EARN_TRACEPARENT
  • BYBIT_EASY_EARN_USER_AGENT
  • BYBIT_EASY_EARN_REFERER

Идемпотентность обеспечивается UPSERT-семантикой ingest_bybit_easy_earn_snapshot.

Monitoring

  • Логи: bybit_easy_earn_mapping_coverage, bybit easy earn product list request failed
  • Quarantine table: fct_bybit_easy_earn_quarantine