Scale VMM adapter crate for Jupiter's jupiter-amm-interface.
ScaleVmmimplementingjupiter_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 inputmint_a - Sell path (
mint_b -> mint_a) with fee on outputmint_a
ExactInsupport and explicitExactOutrejection.- 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
- VMM config PDA:
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_swapgammameteora_damm_v2obsidianraydium_v2
cargo test