From 46518f9c232313d786a16aeee8dd85a71134a959 Mon Sep 17 00:00:00 2001 From: cryptooda Date: Fri, 26 Dec 2025 23:05:26 +0700 Subject: [PATCH] Add skipSimulation parameter to swap functionality; update related methods to handle simulation logic accordingly. --- .../src/generated/gmxsdk/modules/orders/helpers.ts | 2 ++ .../src/generated/gmxsdk/modules/orders/orders.ts | 3 +++ .../gmxsdk/modules/orders/transactions/createSwapOrderTxn.ts | 3 ++- src/Managing.Web3Proxy/src/plugins/custom/gmx.ts | 1 + 4 files changed, 8 insertions(+), 1 deletion(-) diff --git a/src/Managing.Web3Proxy/src/generated/gmxsdk/modules/orders/helpers.ts b/src/Managing.Web3Proxy/src/generated/gmxsdk/modules/orders/helpers.ts index b946e243..9dbe9cbc 100644 --- a/src/Managing.Web3Proxy/src/generated/gmxsdk/modules/orders/helpers.ts +++ b/src/Managing.Web3Proxy/src/generated/gmxsdk/modules/orders/helpers.ts @@ -463,6 +463,7 @@ export type SwapParams = ( /** If presented, then it's limit swap order */ triggerPrice?: bigint; + skipSimulation?: boolean; } & BaseOptionalParams; export async function swap(sdk: GmxSdk, params: SwapParams) { @@ -581,6 +582,7 @@ export async function swap(sdk: GmxSdk, params: SwapParams) { allowedSlippage: params.allowedSlippageBps ?? 100, referralCodeForTxn: params.referralCodeForTxn, triggerPrice: params.triggerPrice, + skipSimulation: params.skipSimulation, }; return sdk.orders.createSwapOrder(createSwapOrderParams); diff --git a/src/Managing.Web3Proxy/src/generated/gmxsdk/modules/orders/orders.ts b/src/Managing.Web3Proxy/src/generated/gmxsdk/modules/orders/orders.ts index 77e2a677..2dd98fa7 100644 --- a/src/Managing.Web3Proxy/src/generated/gmxsdk/modules/orders/orders.ts +++ b/src/Managing.Web3Proxy/src/generated/gmxsdk/modules/orders/orders.ts @@ -388,6 +388,7 @@ export class Orders extends Module { referralCodeForTxn, tokensData, triggerPrice, + skipSimulation, }: { isLimit: boolean; allowedSlippage: number; @@ -397,6 +398,7 @@ export class Orders extends Module { toToken: TokenData; tokensData: TokensData; triggerPrice?: bigint; + skipSimulation?: boolean; }) { const orderType = isLimit ? OrderType.LimitSwap : OrderType.MarketSwap; @@ -420,6 +422,7 @@ export class Orders extends Module { allowedSlippage, tokensData, triggerPrice: isLimit && triggerPrice !== undefined ? triggerPrice : undefined, + skipSimulation, }); } diff --git a/src/Managing.Web3Proxy/src/generated/gmxsdk/modules/orders/transactions/createSwapOrderTxn.ts b/src/Managing.Web3Proxy/src/generated/gmxsdk/modules/orders/transactions/createSwapOrderTxn.ts index accdebe1..01dd2171 100644 --- a/src/Managing.Web3Proxy/src/generated/gmxsdk/modules/orders/transactions/createSwapOrderTxn.ts +++ b/src/Managing.Web3Proxy/src/generated/gmxsdk/modules/orders/transactions/createSwapOrderTxn.ts @@ -26,13 +26,14 @@ export type SwapOrderParams = { allowedSlippage: number; triggerPrice?: bigint; dataList?: string[]; + skipSimulation?: boolean; }; export async function createSwapOrderTxn(sdk: GmxSdk, p: SwapOrderParams) { const { encodedPayload, totalWntAmount } = await getParams(sdk, p); const { encodedPayload: simulationEncodedPayload, totalWntAmount: simulationTotalWntAmount } = await getParams(sdk, p); - if (p.orderType !== OrderType.LimitSwap) { + if (p.orderType !== OrderType.LimitSwap && !p.skipSimulation) { await simulateExecuteOrder(sdk, { primaryPriceOverrides: {}, createMulticallPayload: simulationEncodedPayload, diff --git a/src/Managing.Web3Proxy/src/plugins/custom/gmx.ts b/src/Managing.Web3Proxy/src/plugins/custom/gmx.ts index e9681cc0..37cffd1c 100644 --- a/src/Managing.Web3Proxy/src/plugins/custom/gmx.ts +++ b/src/Managing.Web3Proxy/src/plugins/custom/gmx.ts @@ -2972,6 +2972,7 @@ export const swapGmxTokensImpl = async ( executionFee: executionFee.feeTokenAmount, allowedSlippage: allowedSlippageBps, tokensData: tokensData, + skipSimulation: true, }); console.log('✅ Direct createSwapOrderTxn successful!'); }