feat: 更新 Lighter 适配器的订单过期逻辑,支持即时或取消订单类型的处理

This commit is contained in:
discountry
2025-10-03 03:29:54 +08:00
parent f565c399e3
commit 7635b7d467
+10 -3
View File
@@ -745,10 +745,17 @@ export class LighterGateway {
if (params.stopPrice != null) {
triggerPriceScaled = decimalToScaled(params.stopPrice, this.priceDecimals);
}
// Align with chain expectations: use absolute future timestamp (ms) for OrderExpiry
// and a shorter-lived tx ExpiredAt. 28 days for order expiry, ~10 minutes for tx expiry.
// Align with chain expectations:
// - IOC and MARKET/STOP_MARKET orders must use Nil/Immediate expiry
// - All other orders use absolute future timestamp (ms) for ~28 days
const TWENTY_EIGHT_DAYS_MS = 28 * 24 * 60 * 60 * 1000;
const orderExpiry = BigInt(Date.now() + TWENTY_EIGHT_DAYS_MS);
const isImmediate =
resultTimeInForce === LIGHTER_TIME_IN_FORCE.IMMEDIATE_OR_CANCEL ||
resultType === LIGHTER_ORDER_TYPE.MARKET ||
resultType === LIGHTER_ORDER_TYPE.STOP_LOSS;
const orderExpiry = isImmediate
? BigInt(IMMEDIATE_OR_CANCEL_EXPIRY_PLACEHOLDER)
: BigInt(Date.now() + TWENTY_EIGHT_DAYS_MS);
return {
marketIndex: this.marketId,