@somnia-chain/markets-sdk


@somnia-chain/markets-sdk / index / CADENCE_LADDER_SEC

Variable: CADENCE_LADDER_SEC

const CADENCE_LADDER_SEC: readonly [60, 300, 900, 3600, 14400, 86400]

Defined in: packages/sdk/src/interval.ts:105

The cadences a rolling binary series is currently rolled at, ascending: 1m, 5m, 15m, 1h, 4h, 24h.

A snapshot, and NARROWING. The exact cadence is not a mystery — a series knows it, and MarketCreator.MarketCreated emits it as intervalSec for exactly this purpose ("not derivable from a single market's (tradingStart, expiry) — a series' FIRST market is a bootstrap partial — so it is surfaced here for indexers/UIs").

The indexer now DOES read that event and patches the true cadence onto the Market entity, so for anything a MarketCreator rolled the cadence is exact and joins by equality — this list, CADENCE_TOLERANCE_SEC, snapToCadence and the banded filter are all inert on that path. They still carry every market the patch does not reach: markets created directly through the module rather than by a creator, and history indexed before the patch shipped, both of which fall back to the lossy intervalSec = expiry − tradingStart derivation the contract warns about. That fallback is why the indexer's distinct values run to a hundred-odd one-off windows rather than a handful of cadences.

So: still needed, but no longer the primary path. A venue rolling an off-ladder cadence outside a creator still fragments, so treat the list as a deployment's current habits, not a rule.