Add skipSimulation parameter to swap functionality; update related methods to handle simulation logic accordingly.
This commit is contained in:
@@ -463,6 +463,7 @@ export type SwapParams = (
|
|||||||
|
|
||||||
/** If presented, then it's limit swap order */
|
/** If presented, then it's limit swap order */
|
||||||
triggerPrice?: bigint;
|
triggerPrice?: bigint;
|
||||||
|
skipSimulation?: boolean;
|
||||||
} & BaseOptionalParams;
|
} & BaseOptionalParams;
|
||||||
|
|
||||||
export async function swap(sdk: GmxSdk, params: SwapParams) {
|
export async function swap(sdk: GmxSdk, params: SwapParams) {
|
||||||
@@ -581,6 +582,7 @@ export async function swap(sdk: GmxSdk, params: SwapParams) {
|
|||||||
allowedSlippage: params.allowedSlippageBps ?? 100,
|
allowedSlippage: params.allowedSlippageBps ?? 100,
|
||||||
referralCodeForTxn: params.referralCodeForTxn,
|
referralCodeForTxn: params.referralCodeForTxn,
|
||||||
triggerPrice: params.triggerPrice,
|
triggerPrice: params.triggerPrice,
|
||||||
|
skipSimulation: params.skipSimulation,
|
||||||
};
|
};
|
||||||
|
|
||||||
return sdk.orders.createSwapOrder(createSwapOrderParams);
|
return sdk.orders.createSwapOrder(createSwapOrderParams);
|
||||||
|
|||||||
@@ -388,6 +388,7 @@ export class Orders extends Module {
|
|||||||
referralCodeForTxn,
|
referralCodeForTxn,
|
||||||
tokensData,
|
tokensData,
|
||||||
triggerPrice,
|
triggerPrice,
|
||||||
|
skipSimulation,
|
||||||
}: {
|
}: {
|
||||||
isLimit: boolean;
|
isLimit: boolean;
|
||||||
allowedSlippage: number;
|
allowedSlippage: number;
|
||||||
@@ -397,6 +398,7 @@ export class Orders extends Module {
|
|||||||
toToken: TokenData;
|
toToken: TokenData;
|
||||||
tokensData: TokensData;
|
tokensData: TokensData;
|
||||||
triggerPrice?: bigint;
|
triggerPrice?: bigint;
|
||||||
|
skipSimulation?: boolean;
|
||||||
}) {
|
}) {
|
||||||
const orderType = isLimit ? OrderType.LimitSwap : OrderType.MarketSwap;
|
const orderType = isLimit ? OrderType.LimitSwap : OrderType.MarketSwap;
|
||||||
|
|
||||||
@@ -420,6 +422,7 @@ export class Orders extends Module {
|
|||||||
allowedSlippage,
|
allowedSlippage,
|
||||||
tokensData,
|
tokensData,
|
||||||
triggerPrice: isLimit && triggerPrice !== undefined ? triggerPrice : undefined,
|
triggerPrice: isLimit && triggerPrice !== undefined ? triggerPrice : undefined,
|
||||||
|
skipSimulation,
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -26,13 +26,14 @@ export type SwapOrderParams = {
|
|||||||
allowedSlippage: number;
|
allowedSlippage: number;
|
||||||
triggerPrice?: bigint;
|
triggerPrice?: bigint;
|
||||||
dataList?: string[];
|
dataList?: string[];
|
||||||
|
skipSimulation?: boolean;
|
||||||
};
|
};
|
||||||
|
|
||||||
export async function createSwapOrderTxn(sdk: GmxSdk, p: SwapOrderParams) {
|
export async function createSwapOrderTxn(sdk: GmxSdk, p: SwapOrderParams) {
|
||||||
const { encodedPayload, totalWntAmount } = await getParams(sdk, p);
|
const { encodedPayload, totalWntAmount } = await getParams(sdk, p);
|
||||||
const { encodedPayload: simulationEncodedPayload, totalWntAmount: simulationTotalWntAmount } = 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, {
|
await simulateExecuteOrder(sdk, {
|
||||||
primaryPriceOverrides: {},
|
primaryPriceOverrides: {},
|
||||||
createMulticallPayload: simulationEncodedPayload,
|
createMulticallPayload: simulationEncodedPayload,
|
||||||
|
|||||||
@@ -2972,6 +2972,7 @@ export const swapGmxTokensImpl = async (
|
|||||||
executionFee: executionFee.feeTokenAmount,
|
executionFee: executionFee.feeTokenAmount,
|
||||||
allowedSlippage: allowedSlippageBps,
|
allowedSlippage: allowedSlippageBps,
|
||||||
tokensData: tokensData,
|
tokensData: tokensData,
|
||||||
|
skipSimulation: true,
|
||||||
});
|
});
|
||||||
console.log('✅ Direct createSwapOrderTxn successful!');
|
console.log('✅ Direct createSwapOrderTxn successful!');
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user