Releases: jup-ag/jupiter-swap-api
v6.0.29
chore: Add category name and heuristic max slippage bps to dynamic slippage report
feat: Blockhash provider with support for slots to expiry
fix: Process market batches instead of doing sequential work
fix: Update Obric sdk
fix: enable 3 split on 100k dollar route above
feat: drop ghost markets when it's more than 10 minutes
fix: minor refractor to rbp
fix: improve dlmm quote logic
fix: Cleanup error handling them as 400 bad request
fix: price tracker to fail to update when decimal is not fetched (related to priceImpactPct)
Commit 2df743e6ef6fca46f2ffba01f49a65e011e2a743
v6.0.28
- fix: obric to use safe math
- fix: stabble to not panic
- fix: remove jupiter_europa_url which is not used
- fix: invariant to use safe math
- feat: update Stakedex sdk with deposit cap program
- feat: implement
filter-markets-with-mints
to be applied for newly streamed markets as well - fix: dedicate 4 cores for updates (like geyser updates and markets updates)
- fix: consume more accounts to tame backpressure in geyser
- fix: incorrect market streaming caused by incorrect missing removal of amm_key from amm_key_to_amm_map
- feat: support repeated query parameters. Example:
dexes=Raydium&dexes=Meteora
- feat: update Stakedex sdk use clock from amm context to reduce unnecessary updates
Commit 7b9e3dda7205a6a82f1d876d5b692357d3f1651b
v6.0.27
- hotfix: sanctum amms not being loaded (introduced in v6.0.26) by setting account data to default
Commit 9bf100e3f03179dedf54f7400f348e8dcbdb1cf5
v6.0.26 Europa release
Breaking
- breaking:
--dexes
have been replaced by--dex-program-ids
, and--exclude-dexes
have been replaced by--exclude-dex-program-ids
. You can get the program id from this link: https://quote-api.jup.ag/v6/program-id-to-label- adding above will is also applied to new market streaming
- breaking: We will stop updating
cache.jup.ag/markets?v=3
you can usecache.jup.ag/markets?v=4
whichdata
field is dropped. Note: pump.fun and moonshot wont be supported through the remote url - feat: new
market-mode
arg which which default toeuropa
which enable all new market streaming, but if you want the remote cache markets, you can enable with--market-mode remote
or--market-mode=file --market-cache=./markets.json
Changelogs
- fix: Attenuate memory leak by dedicating first loop with low account filter in geyser loop
- fix: Correct update existing amms logic
- fix: max age on cors layer to avoid repeated preflight
- feat: Minor swap work reduction by not calculating authority PDA everytime
- chore: Remove program failing cu estimation case
- feat: Swap transaction avoid sequential awaits
- fix: 1intro quoting
- fix: check Phoenix data len to prevent
split_at
panic - fix: No slippage error on sim by using 100% slippage and default max if failure
- feat: Slippage from simulated amount with heuristic
- fix: Pump check real token reserves when buying
- feat: Basic cpmm detect frozen reserve and prevent quoting
- fix: Prevent partial fill with exact out CLMMs
- feat: show
prioritizationType
andcomputeUnitLimit
on swap response - fix: no sending to user account if
destinationTokenAccount
is set - fix: Revert
error_code
toerrorCode
json case - feat: quote-multiple-output-mints support exact out
- feat: Add simulation error to swap response
- feat: remote dynamic slippage config with bunch of auto slippage optimization
- fix: Sanctum inf filter out input disabled LSTs
- chore: solana 1.18 and anchor 0.29
- feat: Stabble stable and weighted swap programs
- feat: obric integration
- feat: support streaming and removal of markets through Europa
Commit 849d9ee814ffc829a7e46d9e2858a165647acab0
v6.0.25
Changelog
fix: make METRICS_PORT
optional
Commit 809bf7148e8ccd2c9e7a5b96fab8f7fa8bc3c63c
v6.0.24
Changelog
feat: Optimize dist_to_target stop expanding on source, cut quote time by 90%
feat: get market expose routing group
feat: Add benchmark for router update accounts and remove clone of account_map, reduce memory usage further
feat: update Jupiter perps oracle
feat: /metrics
endpoint on port 9100
feat: use ahash for HashMap when hashing pubkey, for perf improvement
feat: allow --enable-add-market
to be exposed on self hosted binary (read more: https://station.jup.ag/docs/apis/self-hosted#adding-new-markets-without-restart)
fix: panic when geyser ping failed, default to reconnect to geyser
fix: to not panic when blockhash failed to fetched, now it will log error, also increased timeout when fetching blockhash
Commit 73a9f8283df762f6f6f0a2f1b75ddb26f9df33c7
v6.0.23
Changelog
fix: Create user ATAs allowing system program as owner during account ownership check
fix: respect server port for /quote-and-simulate
fix: exact out fee is calculated differently now
fix: stop taking meteora referral fee
fix: Meteora dynamic amm pool state should be tracked
feat: replace routerify with axum, prometheus /metrics
Commit 039795bb371c6f89a7cc3eb16d1784a7780011ab
v6.0.22
Changelog
fix: Openbook v2 zero state on market closure
fix: set prefer liquid dexes to true by default
feat: mimalloc rust, reduce CPU usage, alleviate contentions. See anza-xyz/agave#1250
feat: integrate 1 intro
feat: update mercurial sdk + activation slot
chore: Remove unnecessary clone of Arc
fix: Sequential locking of full_liquid_intermediate_keys and simple_amm_keys
feat: deep liq pool, use full liquid intermediate routing group to reduce load when quoting
fix: remove crema unwraps
chore: Remove some clones and unecessary unwraps
fix: parsing issue with option from market cache
fix: set dynamic accounts for openbook v2
feat: surface routing_group + enum
Commit 402c62dba457e7ff664ea8c7db793d65ebcdf275
v6.0.21
Changelog
feat: whirlpool to support token2022
fix: blockhash fetcher, to use a smaller interval
fix: no need to check for destinationTokenAccount
when deciding use_shared_accounts
Commit f14d514e659bcc5d07ca56d97d6527fe495cd3ec
v6.0.20
Changelog
fix: update Clone for PythV2 support
fix: update GooseFX and fixed all the warnings
fix: move blockhash fetcher to another tokio runtime
chore: Meteora protocol fee part of LP trade fee
fix: incorrect intermediate routing logic
fix: reduce max split to 2 and increase min usd to $1k for rbp routing
fix: disable same mint to same mint on swap tx by default, enabled through allow_circular_arbitrage
cli or env
feat: add support for guacswap
chore: log large tx size limit
fix: refresh keyed account from startup
feat: enable grpc compression
fix: raydium cp pool panic in math
fix: disabled serum market keys for all new markets
fix: direct route issue
feat: /version
to get commit hash (#888)
feat: enable gzip for grpc
Commit 4da2f0d52f54d7e490fbfa2e6ffce1e762c33128