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
