Skip to content

scalecrx/jupiter-sdk-vmm

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 

Repository files navigation

jupiter-sdk-vmm

Scale VMM adapter crate for Jupiter's jupiter-amm-interface.

What This Implements

  • ScaleVmm implementing jupiter_amm_interface::Amm.
  • Offline quote logic matching Scale VMM on-chain math for:
    • Constant product
    • Exponential
    • Buy path (mint_a -> mint_b) with fee on input mint_a
    • Sell path (mint_b -> mint_a) with fee on output mint_a
  • ExactIn support and explicit ExactOut rejection.
  • Dynamic account metas including beneficiary token accounts.
  • Full VMM swap account contract including mandatory AMM graduation accounts:
    • VMM config PDA: ["config"]
    • VMM vault PDAs: [pair, mint]
    • AMM pool PDA: ["pool", pair, mint_a, mint_b]
    • AMM vault PDAs: [amm_pool, mint]
    • AMM config PDA: ["config"]
    • Fee token ATA for platform + beneficiaries on mint_a

Swap Leg Selection

By default, this adapter emits Swap::TokenSwap.

You can override per market using KeyedAccount.params:

{
  "swap": "gamma",
  "amm_program_id": "SCALEwAvEK5gtkdHiFzXfPgtk2YwJxPDzaV3aDmR7tA"
}

Supported swap overrides:

  • token_swap
  • gamma
  • meteora_damm_v2
  • obsidian
  • raydium_v2

Local Validation

cargo test

About

Scale VMM adapter implementing Jupiter AMM interface

Resources

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages