fix uiFee

This commit is contained in:
2025-06-09 15:56:32 +07:00
parent 894f518d2c
commit fa5ad081d7
3 changed files with 56 additions and 46 deletions

View File

@@ -1,25 +1,30 @@
import { Address } from "viem"; import {Address} from "viem";
import { getWrappedToken } from "../../configs/tokens.js"; import {getWrappedToken} from "../../configs/tokens.js";
import { MarketFilterLongShortItemData } from "../../modules/trades/trades.js"; import {MarketFilterLongShortItemData} from "../../modules/trades/trades.js";
import { MarketInfo, MarketsInfoData } from "../../types/markets.js"; import {MarketInfo, MarketsInfoData} from "../../types/markets.js";
import { Order, OrdersData, OrdersInfoData, OrderType, PositionOrderInfo } from "../../types/orders.js"; import {Order, OrdersData, OrdersInfoData, OrderType, PositionOrderInfo} from "../../types/orders.js";
import { SidecarLimitOrderEntryValid, SidecarSlTpOrderEntryValid } from "../../types/sidecarOrders.js"; import {SidecarLimitOrderEntryValid, SidecarSlTpOrderEntryValid} from "../../types/sidecarOrders.js";
import { TokenData, TokensData } from "../../types/tokens.js"; import {TokenData, TokensData} from "../../types/tokens.js";
import { DecreasePositionAmounts, IncreasePositionAmounts, SwapAmounts } from "../../types/trade.js"; import {DecreasePositionAmounts, IncreasePositionAmounts, SwapAmounts} from "../../types/trade.js";
import { getByKey } from "../../utils/objects.js"; import {getByKey} from "../../utils/objects.js";
import { getOrderInfo, isOrderForPositionByData, isVisibleOrder } from "../../utils/orders.js"; import {getOrderInfo, isOrderForPositionByData, isVisibleOrder} from "../../utils/orders.js";
import { createDecreaseOrderTxn } from "./transactions/createDecreaseOrderTxn.js"; import {createDecreaseOrderTxn} from "./transactions/createDecreaseOrderTxn.js";
import { createIncreaseOrderTxn } from "./transactions/createIncreaseOrderTxn.js"; import {createIncreaseOrderTxn} from "./transactions/createIncreaseOrderTxn.js";
import { buildGetOrdersMulticall, getExecutionFeeAmountForEntry, matchByMarket, parseGetOrdersResponse } from "./utils.js"; import {
import { Module } from "../base.js"; buildGetOrdersMulticall,
import { createSwapOrderTxn } from "./transactions/createSwapOrderTxn.js"; getExecutionFeeAmountForEntry,
import { createWrapOrUnwrapTxn, WrapOrUnwrapParams } from "./transactions/createWrapOrUnwrapTxn.js"; matchByMarket,
import { cancelOrdersTxn } from "./transactions/cancelOrdersTxn.js"; parseGetOrdersResponse
import { PositionIncreaseParams, SwapParams, increaseOrderHelper, swap } from "./helpers.js"; } from "./utils.js";
import {Module} from "../base.js";
import {createSwapOrderTxn} from "./transactions/createSwapOrderTxn.js";
import {createWrapOrUnwrapTxn, WrapOrUnwrapParams} from "./transactions/createWrapOrUnwrapTxn.js";
import {cancelOrdersTxn} from "./transactions/cancelOrdersTxn.js";
import {increaseOrderHelper, PositionIncreaseParams, swap, SwapParams} from "./helpers.js";
export class Orders extends Module { export class Orders extends Module {
async getOrders({ async getOrders({
@@ -237,6 +242,7 @@ export class Orders extends Module {
indexToken: marketInfo.indexToken, indexToken: marketInfo.indexToken,
tokensData, tokensData,
skipSimulation: skipSimulation || isLimit, skipSimulation: skipSimulation || isLimit,
uiFeeReceiver: this.sdk.config.settings?.uiFeeReceiverAccount,
}, },
createDecreaseOrderParams: createSltpEntries?.map((entry, i) => { createDecreaseOrderParams: createSltpEntries?.map((entry, i) => {
return { return {
@@ -255,6 +261,7 @@ export class Orders extends Module {
txnType: entry.txnType!, txnType: entry.txnType!,
skipSimulation: isLimit, skipSimulation: isLimit,
autoCancel: i < autoCancelOrdersLimit, autoCancel: i < autoCancelOrdersLimit,
uiFeeReceiver: this.sdk.config.settings?.uiFeeReceiverAccount,
}; };
}), }),
cancelOrderParams: cancelSltpEntries?.map((entry) => ({ cancelOrderParams: cancelSltpEntries?.map((entry) => ({
@@ -265,6 +272,7 @@ export class Orders extends Module {
sizeDeltaUsd: entry.order!.sizeDeltaUsd, sizeDeltaUsd: entry.order!.sizeDeltaUsd,
txnType: entry.txnType!, txnType: entry.txnType!,
initialCollateralDeltaAmount: entry.order?.initialCollateralDeltaAmount ?? 0n, initialCollateralDeltaAmount: entry.order?.initialCollateralDeltaAmount ?? 0n,
uiFeeReceiver: this.sdk.config.settings?.uiFeeReceiverAccount,
})), })),
updateOrderParams: updateSltpEntries?.map((entry) => ({ updateOrderParams: updateSltpEntries?.map((entry) => ({
...commonSecondaryOrderParams, ...commonSecondaryOrderParams,
@@ -278,6 +286,7 @@ export class Orders extends Module {
txnType: entry.txnType!, txnType: entry.txnType!,
initialCollateralDeltaAmount: entry.order?.initialCollateralDeltaAmount ?? 0n, initialCollateralDeltaAmount: entry.order?.initialCollateralDeltaAmount ?? 0n,
autoCancel: entry.order!.autoCancel, autoCancel: entry.order!.autoCancel,
uiFeeReceiver: this.sdk.config.settings?.uiFeeReceiverAccount,
})), })),
}); });
} }

View File

@@ -1,17 +1,17 @@
import { getContract } from "../../../configs/contracts.js"; import {getContract} from "../../../configs/contracts.js";
import type { DecreasePositionSwapType, OrderType } from "../../../types/orders.js"; import type {DecreasePositionSwapType, OrderType} from "../../../types/orders.js";
import type { Token, TokensData } from "../../../types/tokens.js"; import type {Token, TokensData} from "../../../types/tokens.js";
import type { GmxSdk } from "../../../index.js"; import type {GmxSdk} from "../../../index.js";
import type { PriceOverrides } from "./createIncreaseOrderTxn.js"; import type {PriceOverrides} from "./createIncreaseOrderTxn.js";
import { abis } from "../../../abis/index.js"; import {abis} from "../../../abis/index.js";
import { convertTokenAddress, NATIVE_TOKEN_ADDRESS } from "../../../configs/tokens.js"; import {convertTokenAddress, NATIVE_TOKEN_ADDRESS} from "../../../configs/tokens.js";
import { isMarketOrderType } from "../../../utils/orders.js"; import {isMarketOrderType} from "../../../utils/orders.js";
import { simulateExecuteOrder } from "../../../utils/simulateExecuteOrder.js"; import {simulateExecuteOrder} from "../../../utils/simulateExecuteOrder.js";
import { convertToContractPrice } from "../../../utils/tokens.js"; import {convertToContractPrice} from "../../../utils/tokens.js";
import { applySlippageToMinOut, applySlippageToPrice } from "../../../utils/trade/index.js"; import {applySlippageToMinOut, applySlippageToPrice} from "../../../utils/trade/index.js";
import { Abi, encodeFunctionData, zeroAddress, zeroHash } from "viem"; import {Abi, encodeFunctionData, zeroAddress, zeroHash} from "viem";
export type DecreaseOrderParams = { export type DecreaseOrderParams = {
account: string; account: string;
@@ -114,7 +114,7 @@ export function createDecreaseEncodedPayload({
callbackContract: zeroAddress, callbackContract: zeroAddress,
market: p.marketAddress, market: p.marketAddress,
swapPath: p.swapPath, swapPath: p.swapPath,
uiFeeReceiver: zeroAddress, uiFeeReceiver: sdk.config.settings?.uiFeeReceiverAccount,
}, },
numbers: { numbers: {
sizeDeltaUsd: p.sizeDeltaUsd, sizeDeltaUsd: p.sizeDeltaUsd,

View File

@@ -1,19 +1,19 @@
import { abis } from "../../../abis/index.js"; import {abis} from "../../../abis/index.js";
import { getContract } from "../../../configs/contracts.js"; import {getContract} from "../../../configs/contracts.js";
import { convertTokenAddress, NATIVE_TOKEN_ADDRESS } from "../../../configs/tokens.js"; import {convertTokenAddress, NATIVE_TOKEN_ADDRESS} from "../../../configs/tokens.js";
import type { GmxSdk } from "../../../index.js"; import type {GmxSdk} from "../../../index.js";
import concat from "lodash/concat.js"; import concat from "lodash/concat.js";
import { DecreasePositionSwapType, OrderTxnType, OrderType } from "../../../types/orders.js"; import {DecreasePositionSwapType, OrderTxnType, OrderType} from "../../../types/orders.js";
import { TokenData, TokenPrices, TokensData } from "../../../types/tokens.js"; import {TokenData, TokenPrices, TokensData} from "../../../types/tokens.js";
import { isMarketOrderType } from "../../../utils/orders.js"; import {isMarketOrderType} from "../../../utils/orders.js";
import { convertToContractPrice } from "../../../utils/tokens.js"; import {convertToContractPrice} from "../../../utils/tokens.js";
import { Abi, encodeFunctionData, zeroAddress, zeroHash } from "viem"; import {Abi, encodeFunctionData, zeroAddress, zeroHash} from "viem";
import { createCancelEncodedPayload } from "./cancelOrdersTxn.js"; import {createCancelEncodedPayload} from "./cancelOrdersTxn.js";
import { createDecreaseEncodedPayload, DecreaseOrderParams } from "./createDecreaseOrderTxn.js"; import {createDecreaseEncodedPayload, DecreaseOrderParams} from "./createDecreaseOrderTxn.js";
import { createUpdateEncodedPayload } from "./updateOrderTxn.js"; import {createUpdateEncodedPayload} from "./updateOrderTxn.js";
import { simulateExecuteOrder } from "../../../utils/simulateExecuteOrder.js"; import {simulateExecuteOrder} from "../../../utils/simulateExecuteOrder.js";
import { applySlippageToMinOut, applySlippageToPrice } from "../../../utils/trade/index.js"; import {applySlippageToMinOut, applySlippageToPrice} from "../../../utils/trade/index.js";
export type PriceOverrides = { export type PriceOverrides = {
[address: string]: TokenPrices | undefined; [address: string]: TokenPrices | undefined;
@@ -39,6 +39,7 @@ type IncreaseOrderParams = {
referralCode: string | undefined; referralCode: string | undefined;
indexToken: TokenData; indexToken: TokenData;
tokensData: TokensData; tokensData: TokensData;
uiFeeReceiver: string;
}; };
type SecondaryOrderCommonParams = { type SecondaryOrderCommonParams = {
@@ -244,7 +245,7 @@ function createOrderParams({
callbackContract: zeroAddress, callbackContract: zeroAddress,
market: p.marketAddress, market: p.marketAddress,
swapPath: p.swapPath, swapPath: p.swapPath,
uiFeeReceiver: zeroAddress, uiFeeReceiver: p.uiFeeReceiver,
}, },
numbers: { numbers: {
sizeDeltaUsd: p.sizeDeltaUsd, sizeDeltaUsd: p.sizeDeltaUsd,