Skip to main content
Solana venue integration perps-jlp under svm/venues/perps-jlp.
Generated from the type declarations shipped in @eco-incorp/sauce 0.99.4. Each entry shows the package authors’ JSDoc and declaration for this SDK version. For runtime compatibility and deployed addresses, see architecture and deployments.

bakedDecimalScale

Function · sdk/dist/svm/venues/perps-jlp/index.d.ts Baked scale for floor(c1 * c2 * 10^(e1+e2-te)) - the shared shape of every checkedDecimalMul(c1, e1, c2, e2, te) call this venue’s math uses (both the exchange-rate conversion and every USD conversion). Because decimals/exponents are all baked (governance/feed constants), the SIGN of targetPower is known off-chain, so the fragment never needs a runtime branch: exactly one of scaleUp/scaleDown is ever != 1, so floor(c1 * c2 * scaleUp / scaleDown) reproduces the reference’s two-way branch with ONE unconditional expression.

custodyPda

Function · sdk/dist/svm/venues/perps-jlp/index.d.ts findProgramAddress(["custody", pool, mint], PERPS_JLP_PROGRAM_ID) - verified against real SOL custody.

transferAuthorityPda

Function · sdk/dist/svm/venues/perps-jlp/index.d.ts findProgramAddress(["transfer_authority"], PERPS_JLP_PROGRAM_ID) - cached (program-wide constant).

perpetualsPda

Function · sdk/dist/svm/venues/perps-jlp/index.d.ts findProgramAddress(["perpetuals"], PERPS_JLP_PROGRAM_ID) - cached (program-wide constant).

eventAuthorityPda

Function · sdk/dist/svm/venues/perps-jlp/index.d.ts findProgramAddress(["__event_authority"], PERPS_JLP_PROGRAM_ID) - matches the published constant.

fetchPerpsJlpConfig

Function · sdk/dist/svm/venues/perps-jlp/index.d.ts custodyIn is the account to decode DIRECTLY (its mint field IS mintIn - self-discovered, never taken on faith from a caller) - the address-source derives it deterministically from pair.inMint (see ladder discovery wiring), so this function never needs the input mint as a separate argument. mintOut is the ONE piece of information genuinely external: a basket has no single account embedding both sides, so SOMETHING must name which of the OTHER custodies this trade targets. Both this function’s callers (the discovery resolver and the pre-codegen re-fetch) have it - the former from the requested pair directly, the latter from the spec’s own direction string (this family stores mintOut’s base58 there, see the consuming app SVM solver entry’s FAMILIES entry) - so fetchPoolConfig never needs a signature wider than every other family’s (load, pool) PLUS this one extra, always-a-plain-string direction parameter already threads through both call sites unchanged.

PERPS_JLP_PROGRAM_ID

Variable · sdk/dist/svm/venues/perps-jlp/index.d.ts

JLP_POOL_ADDRESS

Variable · sdk/dist/svm/venues/perps-jlp/index.d.ts The single production JLP pool (name “Pool”, 6 custodies as of 2026-07-31).

SWAP2_DISCRIMINATOR

Variable · sdk/dist/svm/venues/perps-jlp/index.d.ts sha256(‘global:swap2’)[0..8].

CUSTODY_ACCOUNT_SIZE

Variable · sdk/dist/svm/venues/perps-jlp/index.d.ts The full occupied Custody struct length (confirmed all-zero padding past this on 6 real mainnet custodies).

DOVES_PRICE_OFFSET

Variable · sdk/dist/svm/venues/perps-jlp/index.d.ts

DOVES_EXPO_OFFSET

Variable · sdk/dist/svm/venues/perps-jlp/index.d.ts

DOVES_TIMESTAMP_OFFSET

Variable · sdk/dist/svm/venues/perps-jlp/index.d.ts

DOVES_FEED_SIZE

Variable · sdk/dist/svm/venues/perps-jlp/index.d.ts

DOVES_MAX_AGE_SEC

Variable · sdk/dist/svm/venues/perps-jlp/index.d.ts A “the feed is dead, not just latent” sanity ceiling (seconds) - the real on-chain custody enforces its OWN much tighter oracle.maxPriceAgeSec (observed 5s on the real mainnet SOL/USDC custodies 2026-07-31) at swap2 execution time; that live, on-chain check is the authoritative freshness backstop and reverts the whole cook for this slot if violated, exactly like every other venue’s runtime-failure self-drop. Trying to replicate a 5s bound OFF-CHAIN at prepare time would self-drop this venue almost unconditionally (any nonzero prepare-to-cook latency exceeds it) - a “NO PREMATURE GATING” violation, not a safety measure. This constant only catches a feed that has stopped updating entirely (an abandoned/broken Doves keeper), not ordinary staleness.

PerpsJlpPoolConfig

Interface · sdk/dist/svm/venues/perps-jlp/index.d.ts

perpsJlp

Variable · sdk/dist/svm/venues/perps-jlp/index.d.ts Family facade for the recipe orchestrator (ladder-only - not in the v1 registry; see quantum/solfi-v2).

perpsJlpConfig

Function · sdk/dist/svm/venues/perps-jlp/index.d.ts

ORACLE_PRICE_SCALE

Variable · sdk/dist/svm/venues/perps-jlp/index.d.ts getSwapPrice’s ORACLE_PRICE_SCALE / ORACLE_EXPONENT_SCALE constants.