Limit Orders
The Fusion AMM SDK provides tools to manage limit orders in a FusionPool. Developers can open or close limit orders using straightforward SDK methods, as well as fetch Limit Orders by the owner.
Open Limit Order: creates a new limit order and adds the specified token amount. See
openLimitOrderInstructions,increaseLimitOrderInstructionsfunctions of the high-level SDK package.Close Limit Order: removes all ordered or swapped amount (if partially or fully swapped), collects accrued fees, pays any applicable fees, and closes the order, as detailed in Fees and Incentives. See
closeLimitOrderInstructions,decreaseLimitOrderInstructionsfunctions of the high-level SDK package.Fetch Limit Orders: fetches multiple limit orders according to input parameters. See
fetchLimitOrdersForOwnerfunction of the high-level SDK package.
Limit order amounts can also be increased or decreased independently, offering flexible management.
Examples:
1. Open Limit Order
import { openLimitOrderInstructions } from "@crypticdot/fusionamm-sdk";
import { sendTransaction } from "@crypticdot/fusionamm-tx-sender";
import { address, createSolanaRpc } from "@solana/kit";
export const rpc = createSolanaRpc("https://api.mainnet-beta.solana.com");
export const signer = await loadKeypair(); // Load your wallet
// SOL/USDC pool address
let poolAddress = address("7VuKeevbvbQQcxz6N4SNLmuq6PYy4AcGQRDssoqo4t65");
let amount = 1_000_000_000n; // The limit order input amount
let aToB = true; // The limit order direction
const open = await openLimitOrderInstructions(
rpc,
poolAddress,
amount,
{ price: 140.0 },
aToB,
signer,
);
const signature = await sendTransaction(rpc, open.instructions, signer);
console.log("Transaction ID:", signature);
console.log("Initialization cost:", open.initializationCost);
console.log("Limit order mint:", open.limitOrderMint);2. Close Limit Order
Last updated