Skip to main content
Solana venue integration solfi-v2 under svm/venues/solfi-v2.
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.

solfiSwapAccounts

Function · sdk/dist/svm/venues/solfi-v2/index.d.ts The 13-account order for SolFi V2’s swap (disc 0x07), shared by v1 buildSwap and v2 buildSwapV2. Decoded from landed simulations, not docs (no IDL/docs exist for this venue): [signer, pool, oracle, registry, vaultA, vaultB, userA, userB, mintA, mintB, TOKEN, TOKEN (slot repeated), instructions sysvar]. userA/userB are POSITIONAL BY MINT, never by direction.

readAccountU64

Function · sdk/dist/svm/venues/solfi-v2/index.d.ts Re-exported for the ladder mirror + tests (avoids a second copy of the offset table).

SOLFI_V2_PROGRAM_ID

Variable · sdk/dist/svm/venues/solfi-v2/index.d.ts

OFF_ORACLE

Variable · sdk/dist/svm/venues/solfi-v2/index.d.ts

OFF_MINT_A

Variable · sdk/dist/svm/venues/solfi-v2/index.d.ts

OFF_MINT_B

Variable · sdk/dist/svm/venues/solfi-v2/index.d.ts

OFF_VAULT_A

Variable · sdk/dist/svm/venues/solfi-v2/index.d.ts

OFF_VAULT_B

Variable · sdk/dist/svm/venues/solfi-v2/index.d.ts

OFF_REGISTRY

Variable · sdk/dist/svm/venues/solfi-v2/index.d.ts

CFG

Variable · sdk/dist/svm/venues/solfi-v2/index.d.ts

OFF_SPLINE_D1

Variable · sdk/dist/svm/venues/solfi-v2/index.d.ts Four splines, stride 0x88 from CFG; d0/d1 select by TRADE DIRECTION (not stride order).

OFF_SPLINE_D0

Variable · sdk/dist/svm/venues/solfi-v2/index.d.ts

OFF_SPLINE_AGE

Variable · sdk/dist/svm/venues/solfi-v2/index.d.ts

OFF_SPLINE_SF

Variable · sdk/dist/svm/venues/solfi-v2/index.d.ts

OFF_CACHED_TS

Variable · sdk/dist/svm/venues/solfi-v2/index.d.ts

OFF_SPREAD_DIR1

Variable · sdk/dist/svm/venues/solfi-v2/index.d.ts

OFF_SPREAD_DIR0

Variable · sdk/dist/svm/venues/solfi-v2/index.d.ts

OFF_THRESHOLD

Variable · sdk/dist/svm/venues/solfi-v2/index.d.ts

OFF_SKEW_NUM

Variable · sdk/dist/svm/venues/solfi-v2/index.d.ts

OFF_SKEW_DEN

Variable · sdk/dist/svm/venues/solfi-v2/index.d.ts

OFF_SKEW_HI

Variable · sdk/dist/svm/venues/solfi-v2/index.d.ts

OFF_SKEW_LO_MAG

Variable · sdk/dist/svm/venues/solfi-v2/index.d.ts

OFF_DECAY_PPM

Variable · sdk/dist/svm/venues/solfi-v2/index.d.ts

OFF_LAST_SWAP_SLOT

Variable · sdk/dist/svm/venues/solfi-v2/index.d.ts

OFF_FEE_SCALE

Variable · sdk/dist/svm/venues/solfi-v2/index.d.ts

SPLINE_X_STRIDE

Variable · sdk/dist/svm/venues/solfi-v2/index.d.ts Spline struct: x[0..7] u64 @ +0x00, y[0..7] u64 @ +0x40, len u64 @ +0x80. 136 bytes.

SPLINE_Y_STRIDE

Variable · sdk/dist/svm/venues/solfi-v2/index.d.ts

SPLINE_LEN_STRIDE

Variable · sdk/dist/svm/venues/solfi-v2/index.d.ts

SPLINE_SIZE

Variable · sdk/dist/svm/venues/solfi-v2/index.d.ts

ORACLE_OFF_EXP

Variable · sdk/dist/svm/venues/solfi-v2/index.d.ts

ORACLE_OFF_MAN

Variable · sdk/dist/svm/venues/solfi-v2/index.d.ts

ORACLE_OFF_SLOT

Variable · sdk/dist/svm/venues/solfi-v2/index.d.ts

ORACLE_OFF_TS

Variable · sdk/dist/svm/venues/solfi-v2/index.d.ts

ORACLE_OFF_CONF

Variable · sdk/dist/svm/venues/solfi-v2/index.d.ts

ORACLE_OFF_EXPIRY_SLOT

Variable · sdk/dist/svm/venues/solfi-v2/index.d.ts

ORACLE_OFF_FEE_WORD

Variable · sdk/dist/svm/venues/solfi-v2/index.d.ts

ORACLE_KEY_WORDS

Variable · sdk/dist/svm/venues/solfi-v2/index.d.ts 168-byte XOR keystream (21 u64 words), recovered from fn 0x26328 (0x26380-0x264a8 stores it as 21 immediates; XOR loop at 0x264c0-0x26518). Word i covers plaintext bytes [8i, 8i+8). Only the words this adapter actually reads are listed; word 3 (bytes 24..31, the ms timestamp) is literally 0 - that field is plaintext in the raw account.

POOL_K

Variable · sdk/dist/svm/venues/solfi-v2/index.d.ts The one un-derived additive constant (units of 1e-7 impact), keyed by POOL - see ladder.ts’s module doc “residualRisk” for how it composes on-chain. FIXED (2026-07): this table used to be keyed by REGISTRY, not pool, on the false premise that every pool sharing a registry shares its K. It does not: registry QoFvFhDZg9TaZEi4SsasWpH5xXzk3zBqfRyicGexfNQ alone carries at least two pools with DIFFERENT, independently-fitted K (K in [0, 12000] bisected against drift-free bursts) - FkEB6uvyzuoaGpgs4yRtFtxC4WJxhejNFbUkj5R6wR32 (USDT/USDC) needs K=0, 2Q6S8p9iZNzMvpTemiC56HqCJ3F3szNoyRkvqEKfCanY needs K=5832 - and the old registry-keyed table quoted BOTH with 5832, so the USDT pool was systematically wrong by 5832 units of 1e-7 impact (5.832 bps), understating the true impact and so OVER-quoting the output by that amount on every trade - not the ”<=1 unit, always-safe” residual the old comment claimed (that claim was true of ONE pool, 65ZHSArs…, and was written as if venue-wide). fetchPoolConfig read the registry key blindly, admitting all ~18 pools on that registry with an unverified, borrowed K. Fixed: keyed by POOL. A pool whose K has not been independently verified throws at fetchPoolConfig instead of borrowing its registry-mate’s value - REFUSE, don’t guess (see fetchPoolConfig below). Each entry below is verified wei-exact against fresh mainnet simulateTransaction calls at that SPECIFIC pool (65ZHSArs…: 84+ calls, 0 mismatch, within one oracle-publish burst - see ladder.ts’s module doc and solfi-v2.test.ts; FkEB6uvy…/2Q6S8p9i…: bisected against drift-free bursts, K in [0, 12000]).

SolfiV2PoolConfig

Interface · sdk/dist/svm/venues/solfi-v2/index.d.ts

solfiV2

Variable · sdk/dist/svm/venues/solfi-v2/index.d.ts