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)
This commit is contained in:
tinkle-community
2025-12-06 01:28:43 +08:00
parent 6922f915af
commit 8259daddd7

View File

@@ -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)
}
}