From 7f679d826d2c112a26747cb501536528056d029c Mon Sep 17 00:00:00 2001 From: lowkeynicc <85139158+lowkeynicc@users.noreply.github.com> Date: Wed, 6 Aug 2025 15:58:48 -0400 Subject: [PATCH] impl max leverage to endpoint (#488) --- src/index.ts | 4 ++++ src/utils/types.ts | 2 ++ src/utils/utils.ts | 13 +++++++++---- 3 files changed, 15 insertions(+), 4 deletions(-) diff --git a/src/index.ts b/src/index.ts index bd5364d..a09a7d6 100644 --- a/src/index.ts +++ b/src/index.ts @@ -939,6 +939,8 @@ const main = async (): Promise => { additionalEndPriceBuffer, userOrderId, forceUpToSlippage, + maxLeverageSelected, + maxLeverageOrderSize, } = req.query; // Validate required parameters @@ -1004,6 +1006,8 @@ const main = async (): Promise => { additionalEndPriceBuffer: additionalEndPriceBuffer as string, userOrderId: parseNumber(userOrderId as string), forceUpToSlippage: parseBoolean(forceUpToSlippage as string), + maxLeverageSelected: parseBoolean(maxLeverageSelected as string), + maxLeverageOrderSize: maxLeverageOrderSize as string, }; // Only add non-undefined values diff --git a/src/utils/types.ts b/src/utils/types.ts index 239f575..c66fa08 100644 --- a/src/utils/types.ts +++ b/src/utils/types.ts @@ -22,4 +22,6 @@ export type AuctionParamArgs = { additionalEndPriceBuffer?: string; userOrderId?: number; forceUpToSlippage?: boolean; + maxLeverageSelected?: boolean; + maxLeverageOrderSize?: string; }; diff --git a/src/utils/utils.ts b/src/utils/utils.ts index 2488ebe..ef81d28 100644 --- a/src/utils/utils.ts +++ b/src/utils/utils.ts @@ -1001,9 +1001,12 @@ export const mapToMarketOrderParams = async ( }; } - // Calculate baseAmount based on assetType + // Calculate baseAmount based on maxLeverageSelected or assetType let baseAmount: BN; - if (params.assetType === 'base') { + if (params.maxLeverageSelected && params.maxLeverageOrderSize) { + // If maxLeverageSelected is true, use maxLeverageOrderSize directly without any conversion + baseAmount = stringToBN(params.maxLeverageOrderSize); + } else if (params.assetType === 'base') { // If assetType is base, use the amount directly baseAmount = amount; } else { @@ -1019,8 +1022,10 @@ export const mapToMarketOrderParams = async ( marketType, marketIndex: params.marketIndex, direction, - maxLeverageSelected: false, - maxLeverageOrderSize: ZERO, + maxLeverageSelected: params.maxLeverageSelected ?? false, + maxLeverageOrderSize: params.maxLeverageOrderSize + ? stringToBN(params.maxLeverageOrderSize) + : ZERO, baseAmount, reduceOnly: params.reduceOnly ?? false, allowInfSlippage: params.allowInfSlippage ?? false,