You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
This commit was created on GitHub.com and signed with GitHub’s verified signature.
Changelog
New AMM Integration & Updates
The Fantastical Finance Factory integration (formerly Dr Fraudsworth): ZIG/ZAG faction pools and the ZIG/ZAG <-> MOTION vault
Sanctum Infinity Reserve V2
QuantumV2 with Token-2022 support
BisonFi SDK 0.4.0 (batch-clock mode 2 quoting), and market-backed pools now pass the market tick account, which BisonFi will require on every swap
Kipseli: stop quoting prices older than the pool's max_slot_gap, SDK synced with the deployed program
Jupiter Lend: jlX tokens can route through any eligible pool, not only the Jupiter Lend pool
Whitelist ZeroFi and Scorch PropAMMs for API users, exclude Obsidian
Remove Metric (program closed)
Alpenglow support: richat 14.1.1, yellowstone-grpc-proto 14.0.1 / client 15.0.0, account updates tracked per (slot, bank_id). Servers that send no bank_id still work
Agave 4.3.2 and v3 SPL interfaces
Experimental RouteByPrice partition algorithm, opt-in via routingConstraints.partitionAlgo (default unchanged)
Performances
jemalloc replaces snmalloc: steady RSS 10.9 -> 8.2 GiB with the full market set on Linux, no CPU or latency change. New allocator_* gauges on the metrics endpoint
Skip AMM updates for account changes that can't affect quotes (a WSOL mint rewrite used to re-update ~840K AMMs, a pump.fun Global lamports change ~675K)
Lower router memory, on the benchmark snapshot: compact account <-> AMM link sets (1.28 GiB -> 682 MiB), Pump curves share decoded global accounts (2.43 -> 1.43 GiB of AMM state), smaller AmmMetadata (-112 MiB), single-neighbor mints stored inline in the route graph
Raydium CLMM (and PancakeSwap / Stabble CLMM) keep only the swap window's tick arrays, so memory and update cost no longer grow with uptime
Whirlpool: faster quote math, and updates reload only changed tick arrays (40–57% faster, 1 GiB -> 177 MiB held)
Faster quotes and updates for Meteora DLMM, DefiTuna, Saber/Mercurial stable swaps, Sanctum and Pump
Routing: pin AMM metadata per request, skip known-rejected AMM edges, one graph lookup per neighbor link, scc maps for market info and AMM metadata (less lock contention)
Swap simulations request inner instructions only when simulation errors are logged (~8 ms faster simulateTransaction at median, 37% smaller response)
TCP_NODELAY on API connections
Bug Fixes
routingConstraints: maxhop above 5 and bucketSizePercentage outside 1–100 now return HTTP 400. Before, one request could abort the process, and a few could tie up every quote worker
keyedUiAccounts (--enable-external-amm-loading): return an error for undecodable account data instead of aborting the process
OpenBook V2: return an error for a missing or malformed oracle instead of aborting the process
Keep the RPC URL, and any token in it, out of error responses and logs
Keep the clock sysvar subscribed when no loaded market links it. With --dex-program-ids, --exclude-dex-program-ids or --filter-markets-with-mints, AMMs could quote on the startup clock until restart
Always load Sanctum router AMMs at startup, even when a router PDA holds lamports
/quote-multiple-output-mints: cache base58 names only for routable mints (random mints grew memory until restart)
skipLosingQuotes: account for pool rounding so a winning quote isn't skipped
Read rent from the Rent sysvar (SIMD-0437) for WSOL setup, vault and Sanctum prefund quotes
Reject a platform fee in a transfer-hook mint instead of building a swap that fails on-chain
Meteora DLMM: quote at the exact drain boundary at extreme prices. A single overflowing bin no longer stops the pool from updating