Skip to main content
Solana venue integration spl-token-swap-forks, exported from @eco-incorp/sauce/svm. Generated from the type declarations of @eco-incorp/sauce.

TOKEN_SWAP_V1_PROGRAM_ID

Variable ยท @eco-incorp/sauce/svm Token Swap - the original solana-labs/solana-program-library deployment.

tokenSwapV1

Variable ยท @eco-incorp/sauce/svm

DEXLAB_PROGRAM_ID

Variable ยท @eco-incorp/sauce/svm DexLab - GATED (see unresolvedGate above): a real-CPI probe against the live mainnet binary (a real SOL/USDC pool, 4KizLX56YSbTtc8NJQWDBz3iiwSTpJRHFUXAvB4v6MM3, dumped 2026-07-31) shows the deployed Swap instruction reads MORE than the standard spl-token-swap 10 (or 11, with the optional host-fee account) accounts - it still fails NotEnoughAccountKeys with 10 or 11 provided, and only clears that check at 14 (10 + 4 arbitrary dummy reads), at which point it fails a DIFFERENT (custom code 24) check - meaning DexLabโ€™s fork genuinely extends the account list with something this repo hasnโ€™t identified (no public source was available to cross-reference). Gated rather than guessed at: a wrong account list here would revert every dexlab cook in production, and DexLab is otherwise the single deepest-liquidity fork of the six (2,097 live constant-product pools).

dexlab

Variable ยท @eco-incorp/sauce/svm

SAROS_PROGRAM_ID

Variable ยท @eco-incorp/sauce/svm The program id of Sarosโ€™s AMM, a fork of SPL Token Swap. The saros adapter quotes it with the fork formulaโ€™s stored trade and owner fee rates (30 bps on the pool measured), while the program charged about 4 bps: on the 14 trades sampled, the quote never exceeded the output the swap delivered.

saros

Variable ยท @eco-incorp/sauce/svm

ORCA_V1_PROGRAM_ID

Variable ยท @eco-incorp/sauce/svm Orca V1 - the ORIGINAL Orca token-swap deployment, a DIFFERENT program from the already-wired orca-legacy-token-swap (โ€œOrca V2โ€, 9W959DqEETiGZocYWCQPaJ6sBmUzgfxXfqGeTEdp3aQP). Confirmed distinct live (routePlan ammKey 6fTRDD7sYxCN7oyoSQaN1AWC3P2m8A6gVZzGrpej9DvL, owner DjVE6JNiYqPL2QXyCUUh8rNjHrbz9hXHNYt99MQ59qw1).

orcaV1

Variable ยท @eco-incorp/sauce/svm

PENGUIN_PROGRAM_ID

Variable ยท @eco-incorp/sauce/svm Penguin.

penguin

Variable ยท @eco-incorp/sauce/svm

STEPN_PROGRAM_ID

Variable ยท @eco-incorp/sauce/svm StepN (Dooar).

stepn

Variable ยท @eco-incorp/sauce/svm

makeSplTokenSwapForkAdapter

Function ยท @eco-incorp/sauce/svm One adapter per deployed spl-token-swap fork - SAME math/layout as orca-legacy-token-swap (see module header), parameterized only by the forkโ€™s own program id (the CPI target AND the swap-authority PDA domain). unresolvedGate, when passed, makes fetchPoolConfig throw UNCONDITIONALLY for every pool of this family (naming the reason) - the SAME mechanism orca-legacy-token-swap uses to keep its stable-curve pools out of the electable universe (see that adapterโ€™s curve_type check), just applied to the WHOLE family instead of a per-pool byte. resolveSvmPoolSpec catches any fetchPoolConfig throw and drops the candidate - one venueโ€™s gate never breaks discovery or any other family, and (critically) it means the family is WIRED (program id, discovery filter, CU entry all present and exercised) while being STRUCTURALLY UNABLE to enter a cook until the gate is lifted, so there is zero production revert/mispricing risk from an unresolved integration question.

SplTokenSwapForkPoolConfig

Interface ยท @eco-incorp/sauce/svm

SplTokenSwapForkAdapter

Interface ยท @eco-incorp/sauce/svm