/** * @name perps/adrena/adrena-builder-trading * @description Trading position builders for the Adrena perps protocol. * * Contains builders for opening/closing long and short positions, stop loss, * take profit, and limit order operations. * * @module perps/adrena/adrena-builder-trading */ import { PublicKey, Connection } from '@solana/web3.js'; import { type PositionSide, type UnsignedTransactionResult, type SimulatePositionResult, type AdrenaPool } from './adrena-builder-core.js'; /** * @name buildOpenPositionLong * @description Build an unsigned transaction to open a long position on Adrena. * * @param connection — Solana RPC connection. * @param owner — Position owner and fee payer. * @param principalToken — Asset to trade (e.g. "JITOSOL"). * @param collateralToken — Collateral token (must match principal for longs). * @param collateralAmount — Collateral amount in human-readable units (e.g. 10 = 10 JITOSOL). * @param leverage — Leverage multiplier. * @param price — Price in USD (scaled by 10^10), or null for market order. * @returns Unsigned transaction result. */ export declare function buildSimulatePosition(connection: Connection, owner: PublicKey, principalToken: string, collateralToken: string, collateralAmount: number, leverage: number, side: PositionSide, poolName: AdrenaPool, price?: bigint | null): Promise; export declare function buildOpenPositionLong(connection: Connection, owner: PublicKey, principalToken: string, collateralToken: string, collateralAmount: number, leverage: number, price: bigint | null): Promise; /** * @name buildOpenPositionShort * @description Build an unsigned transaction to open a short position on Adrena. * * @param connection — Solana RPC connection. * @param owner — Position owner and fee payer. * @param principalToken — Asset to short (e.g. "JITOSOL"). * @param collateralToken — Collateral token (must be USDC for shorts). * @param collateralAmount — Collateral amount in human-readable units. * @param leverage — Leverage multiplier. * @param price — Price in USD (scaled by 10^10), or null for market order. * @returns Unsigned transaction result. */ export declare function buildOpenPositionShort(connection: Connection, owner: PublicKey, principalToken: string, collateralToken: string, collateralAmount: number, leverage: number, price: bigint | null): Promise; /** * @name buildClosePositionLong * @description Build an unsigned transaction to close a long position on Adrena. * * @param connection — Solana RPC connection. * @param owner — Position owner and fee payer. * @param principalToken — Asset of the position. * @param price — Optional close price (scaled by 10^10), null for market close. * @param percentage — Percentage to close (1_000_000 = 100%). * @returns Unsigned transaction result. */ export declare function buildClosePositionLong(connection: Connection, owner: PublicKey, principalToken: string, price: bigint | null, percentage?: bigint): Promise; /** * @name buildClosePositionShort * @description Build an unsigned transaction to close a short position on Adrena. * * @param connection — Solana RPC connection. * @param owner — Position owner and fee payer. * @param principalToken — Asset of the position. * @param collateralToken — Collateral token (USDC for shorts). * @param price — Optional close price (scaled by 10^10), null for market close. * @param percentage — Percentage to close (1_000_000 = 100%). * @returns Unsigned transaction result. */ export declare function buildClosePositionShort(connection: Connection, owner: PublicKey, principalToken: string, collateralToken: string, price: bigint | null, percentage?: bigint): Promise; /** * @name buildSetStopLoss * @description Build an unsigned transaction to set stop loss on a position. * * @param connection — Solana RPC connection. * @param owner — Position owner and fee payer. * @param principalToken — Asset of the position. * @param side — Position side. * @param stopLossLimitPrice — Stop loss trigger price (scaled by 10^10). * @param closePositionPrice — Optional close position price (scaled by 10^10). * @returns Unsigned transaction result. */ export declare function buildSetStopLoss(connection: Connection, owner: PublicKey, principalToken: string, side: PositionSide, stopLossLimitPrice: bigint, closePositionPrice: bigint | null): Promise; /** * @name buildSetTakeProfit * @description Build an unsigned transaction to set take profit on a position. * * @param connection — Solana RPC connection. * @param owner — Position owner and fee payer. * @param principalToken — Asset of the position. * @param side — Position side. * @param takeProfitLimitPrice — Take profit trigger price (scaled by 10^10). * @returns Unsigned transaction result. */ export declare function buildSetTakeProfit(connection: Connection, owner: PublicKey, principalToken: string, side: PositionSide, takeProfitLimitPrice: bigint): Promise; /** * @name buildCancelStopLoss * @description Build an unsigned transaction to cancel stop loss on a position. * @param connection — Solana RPC connection. * @param owner — Position owner and fee payer. * @param principalToken — Asset of the position. * @param side — Position side. * @returns Unsigned transaction result. */ export declare function buildCancelStopLoss(connection: Connection, owner: PublicKey, principalToken: string, side: PositionSide): Promise; /** * @name buildCancelTakeProfit * @description Build an unsigned transaction to cancel take profit on a position. * @param connection — Solana RPC connection. * @param owner — Position owner and fee payer. * @param principalToken — Asset of the position. * @param side — Position side. * @returns Unsigned transaction result. */ export declare function buildCancelTakeProfit(connection: Connection, owner: PublicKey, principalToken: string, side: PositionSide): Promise; /** * @name buildAddLimitOrder * @description Build an unsigned transaction to place a limit order on Adrena. * * @param connection — Solana RPC connection. * @param owner — Order owner and fee payer. * @param principalToken — Asset to trade. * @param collateralToken — Collateral token. * @param collateralAmount — Collateral amount in human-readable units. * @param leverage — Leverage multiplier. * @param side — Order side: long or short. * @param triggerPrice — Trigger price (scaled by 10^10). * @param limitPrice — Optional limit price (scaled by 10^10), null for market at fill. * @returns Unsigned transaction result. */ export declare function buildAddLimitOrder(connection: Connection, owner: PublicKey, principalToken: string, collateralToken: string, collateralAmount: number, leverage: number, side: PositionSide, triggerPrice: bigint, limitPrice: bigint | null): Promise; /** * @name buildCancelLimitOrder * @description Build an unsigned transaction to cancel a limit order on Adrena. * * @param connection — Solana RPC connection. * @param owner — Order owner and fee payer. * @param collateralToken — Collateral token. * @param orderId — Limit order ID. * @returns Unsigned transaction result. */ export declare function buildCancelLimitOrder(connection: Connection, owner: PublicKey, collateralToken: string, orderId: bigint): Promise; /** * @name buildPositionPackage * @description Build a single unsigned transaction that atomically opens a * position AND sets stop loss AND take profit. This combines 3 separate * builder calls into 1 transaction — 1 payment, 1 signing, 1 submit. * * If stopLossPriceUsd or takeProfitPriceUsd is null, that instruction is * omitted (e.g. you can open + SL without TP). * * @param connection — Solana RPC connection. * @param owner — Position owner and fee payer. * @param principalToken — Asset to trade (e.g. "BONK"). * @param collateralToken — Collateral token (USDC for shorts, match principal for longs). * @param collateralAmount — Collateral amount in human-readable units. * @param leverage — Leverage multiplier (e.g. 3 = 3x). * @param side — Position side: 'long' or 'short'. * @param stopLossPriceUsd — Stop loss trigger price in USD, or null to skip. * @param takeProfitPriceUsd — Take profit trigger price in USD, or null to skip. * @param price — Optional limit price in USD (scaled by 10^10), null for market. * @returns Unsigned transaction result with all instructions combined. */ export declare function buildPositionPackage(connection: Connection, owner: PublicKey, principalToken: string, collateralToken: string, collateralAmount: number, leverage: number, side: PositionSide, stopLossPriceUsd: number | null, takeProfitPriceUsd: number | null, price?: bigint | null): Promise; //# sourceMappingURL=adrena-builder-trading.d.ts.map