From f116d80cda52fd3f06d959d0a4c1c4b69648248c Mon Sep 17 00:00:00 2001 From: tinkle-community Date: Sat, 6 Dec 2025 01:28:43 +0800 Subject: [PATCH] fix: use exchange.ID instead of exchange.Type in PositionSyncManager exchange.Type is cex/dex category, exchange.ID is the actual exchange name (binance/bybit/etc) --- trader/position_sync.go | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/trader/position_sync.go b/trader/position_sync.go index 30c2ca56..a7d270d5 100644 --- a/trader/position_sync.go +++ b/trader/position_sync.go @@ -260,7 +260,8 @@ func (m *PositionSyncManager) getTraderConfig(traderID string) (*store.TraderFul func (m *PositionSyncManager) createTrader(config *store.TraderFullConfig) (Trader, error) { exchange := config.Exchange - switch exchange.Type { + // 使用 exchange.ID 判断具体的交易所,而不是 exchange.Type (cex/dex) + switch exchange.ID { case "binance": return NewFuturesTrader(exchange.APIKey, exchange.SecretKey, config.Trader.UserID), nil @@ -285,7 +286,7 @@ func (m *PositionSyncManager) createTrader(config *store.TraderFullConfig) (Trad return NewLighterTrader(exchange.LighterPrivateKey, exchange.LighterWalletAddr, exchange.Testnet) default: - return nil, fmt.Errorf("不支持的交易所类型: %s", exchange.Type) + return nil, fmt.Errorf("不支持的交易所: %s", exchange.ID) } }