SyncBybitLaunchpoolSnapshot
Purpose
Вызывает Bybit Launchpool history API, нормализует payload и записывает snapshot в Timescale через SQL ingest.
Код: internal/worker/activities/sync_bybit_launchpool.go
Input / Output
Input (models.SyncBybitLaunchpoolInput):
- current (optional, default 1)
Output (models.SyncBybitLaunchpoolResult):
- snapshot_at
- projects_seen, projects_upserted
- subpools_seen, subpools_upserted
- quarantine_rows
- errors[], has_errors
External Dependencies
- Bybit endpoint:
POST https://www.bybit.com/x-api/spot/api/launchpool/v1/history - DB: SQL function
ingest_bybit_launchpool_snapshot($1::jsonb)+fct_bybit_launchpool_*
Idempotency
- Идемпотентность обеспечивается UPSERT-семантикой
ingest_bybit_launchpool_snapshot.
Error Taxonomy
api_error(HTTP/network, non-200, access denied)parse_error(невозможно извлечь список проектов)
Callers
Observability
- Логи:
bybit_launchpool_mapping_coverage,bybit launchpool api request failed - Quarantine table:
fct_bybit_launchpool_quarantine