Skip to content

Releases: jup-ag/jupiter-swap-api

v6.0.33

15 Nov 09:56
5c7a33c
Compare
Choose a tag to compare
  • fix: massively optimize bellman-ford and rbp routing for most cases (~80% improvement)
  • chore: update top tokens
  • feat: pick route given score for CUs and parameters (will follow up with docs to use it)

Commit 60a34dbd1daa492db0cff2fb5bddd2ab53223211

v6.0.32

06 Nov 05:28
5c7a33c
Compare
Choose a tag to compare

fix: do not drop markets when failing to handle incoming
feat: add whirlpool sparseswap support
feat: thread pool for cpu bound quotes.
- 3 new args/env:
- webserver_thread_count thread: default is 2
- update_thread_count thread: default is 4
- total_thread_count thread: default is the number of cpus
- routing engine thread: total_thread_count - update_thread_count - webserver_thread_count
feat: add /health endpoint, so far surface latest blockhash with metadata

Commit 60ac587c738739f8d8e0865b895b37e25ad9b3f3

v6.0.31

01 Nov 11:41
5c7a33c
Compare
Choose a tag to compare

fix: price tracker no write locking at the top level and seperate concerns
fix: just use top token list for referrer to improve startup time
fix: get_highest_slot_response for finalized blockhash
fix: update whirlpool sdk
feat: SolFI integration
perf: remove duplicate edge checks in bellman-ford for better performance
fix: use for_each_unrestricted within calc_dist_to_target
fix: to not check expriy on obric update, since it's being check on quote
feat: added loki_url, loki_username, loki_password and loki_custom_labels env/cli args to send logs to loki when given params

Commit a4f0d60be464fee2ee354b37386dafa4e7d00c43

v6.0.30

24 Oct 23:01
5c7a33c
Compare
Choose a tag to compare

Changelog

fix: price tracker no write locking at the top level and seperate concerns
fix: Refactor market filtering to occur before RPC node calls
fix: Obric update SSTradingPair
feat: remove most rwlock with scc + dashmap
fix: add dedupe in europa for new markets
fix: Should restrict to only direct route only when single shared edge
fix: price tracker to fetch missing mints
chore: Some more info logs in load, some chunking with sleep
fix: dont fetch all accounts at one go to ease startup
fix: reduce rpc chunking size to help with startup
fix: sync Obric changes
fix: Add PYUSD to top tokens
fix: Obric to include doves and whirlpool
feat: Fox integration
fix: Stabble stable update current timestamp

Commit 08a2acba76d8e6a2f3c7f0a0243a0ed8ed0f3672

v6.0.29

09 Oct 15:05
5c7a33c
Compare
Choose a tag to compare

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

25 Sep 10:26
5c7a33c
Compare
Choose a tag to compare
  • 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

12 Sep 06:32
5c7a33c
Compare
Choose a tag to compare
  • hotfix: sanctum amms not being loaded (introduced in v6.0.26) by setting account data to default

Commit 9bf100e3f03179dedf54f7400f348e8dcbdb1cf5

v6.0.26 Europa release

28 Aug 11:41
5c7a33c
Compare
Choose a tag to compare

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 use cache.jup.ag/markets?v=4 which data field is dropped. Note: pump.fun and moonshot wont be supported through the remote url
  • feat: new market-mode arg which which default to europa 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 and computeUnitLimit on swap response
  • fix: no sending to user account if destinationTokenAccount is set
  • fix: Revert error_code to errorCode 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

01 Aug 16:12
5c7a33c
Compare
Choose a tag to compare

Changelog

fix: make METRICS_PORT optional

Commit 809bf7148e8ccd2c9e7a5b96fab8f7fa8bc3c63c

v6.0.24

01 Aug 11:32
5c7a33c
Compare
Choose a tag to compare

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