Skip to content

Releases: jup-ag/jupiter-swap-api

v6.0.12

03 Mar 23:14
70a4973
Compare
Choose a tag to compare

Raydium CLMM program breaking changes by supporting Token2022

Changelog

  • fix: JupiterError (error 400) on missing AMM and /swap /swap-instructions support
  • feat: Price tracker improve locking
  • feat: Every jupiter-swap-api arg can be an env var (#643)
  • feat: Raydium CLMM V2 add support for token2022 (market cache not including yet)
  • fix: Same token mints is an error 400 and other spam user input based errors
  • feat: Bellman ford supports exact out
  • feat: Tracking account "trackingAccount" transaction config
  • fix: ACCESS_CONTROL_MAX_AGE to max, to avoid unnecessary round trip on subsequent requests

Commit a84cc55adfdd6f52acf9ca413ae5b102c07ced4d (release fork from d10812fbc2ffe4749e4d6d83ba790bf1c4a10ce0)

v6.0.11

19 Feb 04:34
70a4973
Compare
Choose a tag to compare

The /indexed-route-map endpoint no longer returns the indexed-route-map by default, its usage is deprecated and not recommended but can be enabled with --enable-deprecated-indexed-route-maps

Changelog

  • feat: on startup dex and tokens filtering:
    --dexes and --exclude-dexes flag to control dexes loaded, usage identical to the /quote params. All by default.
    --filter-markets-with-mints to filter markets which do not have at least 2 mints from this set.
    New integrations are now behind --enable-new-dexes until stabilized.
  • chore: Valentine cleanup, remove Jupiter limit order...
  • fix: Prevent max accounts usage with ExactOut
  • feat: add support for ExactOutRoute
  • feat: raydium exact out
  • feat: Token not tradable error, return error early and more meaningful than "No routes found"
  • feat: enable deprecated indexed route maps cli arg and disable computing indexed-route-maps by default, use --enable-deprecated-indexed-route-maps
  • fix: no routes found, typo
  • chore: Stakedex-sdk update for lst list, for more flexible new LSTs inclusion
  • feat: OpenBook V2 integration
  • fix: SplTokenSwapAmm support only cp and stable curve types
  • fix: anchor extension to deserialize zero copy accounts using slice of the account struct size, to match on-chain code and avoid client crashes
  • feat: get tokens /tokens endpoint to fetch all tradable tokens
  • fix: Mercurial fix stable curve by using precision multiplier for fee amount
  • fix: --allow-circular-arbitrage to enable input outputs mints for self hosted
  • fix: Fetch unique ALT instead of one per AMM (mass duplicated work)

Commit 52c22bfa1e2ce509190f3dea6e6973f0f8c07816

v6.0.10

30 Jan 12:35
70a4973
Compare
Choose a tag to compare

Changelog:
chore: Update Meteora DLMM disallow partial fill

Commit 6f7c40617fd05b0b7135af75d5d093621d0e5bb8

v6.0.9

26 Jan 00:55
70a4973
Compare
Choose a tag to compare

Changelog:
feat: Add enable ping flag, to disable yellowstone grpc ping by default and allow enabling it
feat: Do not use shared accounts if non-openbook single swap, no additional account write contention, less CU consumption.
fix: fetch with sleep for stability, for caches such as address lookup tables
feat: Market endpoint HTTP GET /market?address=<pubkey>
chore: Meteora DLMM add max swapped amount update
chore: Sync stakedex SDK to disable esol and lido deposit
feat: implement Yellowstone grpc ping, see rpcpool/yellowstone-grpc#225

Commit b8347e26f878c14f8a0345211c9fb6d5550c5125

v6.0.8

21 Jan 04:50
70a4973
Compare
Choose a tag to compare

Changelog:

  • fix: Upgrade h2 due to sec advisory https://rustsec.org/advisories/RUSTSEC-2024-0003
  • fix: raydium CLMM remove dangerous unwraps in swap math
  • fix: update to support dynamic accounts and accounts len for GooseFX
  • feat: Meteora DLMM slot activation support
  • chore: update GooseFX
  • fix: Optimize route map, only a few seconds
  • fix: Remove pointless price impact warning when it cannot be computed
  • fix: get_program_failure_consumed_units correct logic for multi instructions
  • chore: BalanceSol updates their algorithm
  • fix: Meteora DLMM find next bin array indices fix loop, a bug was limiting to 2 bin arrays instead of 3
  • feat: reduce auto to 0.001 SOL and auto multiplier based on that and remove cap on auto multiplier
  • fix: Fluxbeam token2022 fix handling for mint that get closed
  • fix: onlyDirectRoutes bellman-ford constraints to be 1 maxhop, 1 totalhops

Commit c93e3d50a91b6ea0ee279896cde2a47d35b7de7b

v6.0.7

02 Jan 20:44
70a4973
Compare
Choose a tag to compare
  • fix: docker image

binary from 6.0.6

v6.0.6

02 Jan 07:59
0acf2c8
Compare
Choose a tag to compare

Changelog:

  • chore: update rust to 1.75
  • feat: Swap build swap through keyedUiAccounts for BYO AMMs, to be used with --enable-external-amm-loading
  • fix: Add input_mint to allowed tokens for calc dist to target to fix
  • feat: Raydium use status enforced to reduce accounts, resulting in lower RPC load and significant reduction in egress
  • fix: Raydium CLMM continue when no liquidity for first tick array to prevent irrelevant warning and incorrect state
  • feat: JupiterError for better api error control, return error code 400 when relevant
  • fix: thread block on geyser loop
  • fix: bellman-ford direct routes
  • hotfix: ExactOut to not use bellman-ford automatically for low input value
  • fix: dont fetch what is fetched to reduce initial start load
  • fix: Raydium err when event queue is full to set reserves to None, to allow correct quote when the event queue is full
  • fix: intermediate tokens auto restrict when top token for bellman-ford
  • feat: Use bellman ford when input value is below a threshold, quote below $100 of input value use quoteType bellman-ford rather than rbp (metis algorithm) in order to provide simpler routes for low price impact trades
  • feat: restrict intermediate tokens override works with rbp

Commit 4e4ea7a22642cf6903b7757fcbe524f30cb782b2

v6.0.5

21 Dec 10:20
0acf2c8
Compare
Choose a tag to compare

Changelog:

  • feat: added skipUserAccountsRpcCalls to skip checking account on /swap, this assume the user have all the accounts needed for swap.
  • feat: added snapshot_poll_interval_ms to configure the polling rate of rpc to update states, default is 200ms for polling mode and 30000ms for yellowstone grpc mode
  • feat: /swap and /swap-instructions return prioritization_fee_lamports to indicate the amount of fee that will be used, excluding base fee.
  • feat: prioritization_fee_lamports now accepts { autoMultiplier: number } this multiplies the auto priority fee which is 2x 75th percentile of the recent fee used.
  • feat: use different runtime for fetching and serving api.
  • fix: reduce max accounts for legacy to prevent transaction too large

For documentation on the new parameters go to https://station.jup.ag/api-v6/post-swap

Commit e3f07315756e21e17bacd8171bdb9a173d72c543

v6.0.4

13 Dec 22:27
a95e9bf
Compare
Choose a tag to compare

Changelog:

  • Add prioritizationFeeLamports to /swap, to set the prioritization fee to be paid. Now defaults to "auto" to prevent underpricing
  • Add dynamicComputeUnitLimit to /swap, it will simulate the swap to adjust compute unit limit to 140% of consumed_units
  • Increase compute unit micro lamports to be 2x p75 over the last 20 slots when using "auto" prioritizationFeeLamports or computeUnitPriceMicroLamports, to easier outbid.
  • Update Stakedex SDK (Sanctum) to latest for preferred withdrawer exhaustion fix and ignore private pools igneous-labs/stakedex-sdk#32
  • Update Jupiter Perps AMM to support updated token weightage checks
  • Fix and enable again split for ExactOut
  • Fix to use other_amount_threshold for ExactOut as input_amount when building swap, to prevent insufficient tokens before slippage tolerance is hit.

For documentation on the new parameters go to https://station.jup.ag/api-v6/post-swap

Commit 2e5258f05825ba9a7f58179bfb03cbad0382b8b2

v6.0.3

04 Dec 04:04
159f50c
Compare
Choose a tag to compare

Changelog:

  • Sync latest GooseFX updates, previous version of GooseFX will not work
  • Remove quote splitting for exact out
  • Added native SPL pool
  • Allow cli variables to be configured through CLI for jupiter-swap-api, this is useful for Docker deployment and just set env.
    • env available: MARKET_CACHE, RPC_URL, YELLOWSTONE_GRPC_ENDPOINT, YELLOWSTONE_GRPC_X_TOKEN, PORT

Commit 8e842ef6bd666c41f0b270e63ece0dee175b4c80