Unify agent routing and tighten exchange config

This commit is contained in:
lky-spec
2026-04-28 11:58:58 +08:00
parent d481b3d88c
commit 30a703a827
12 changed files with 679 additions and 77 deletions

View File

@@ -2,6 +2,55 @@ package store
import "strings"
func MissingRequiredExchangeCredentialFields(exchangeType, apiKey, secretKey, passphrase, hyperliquidWalletAddr, asterUser, asterSigner, asterPrivateKey, lighterWalletAddr, lighterAPIKeyPrivateKey string) []string {
switch strings.ToLower(strings.TrimSpace(exchangeType)) {
case "binance", "bybit", "gate", "indodax":
return missingNamedFields(
namedField{"api_key", apiKey},
namedField{"secret_key", secretKey},
)
case "okx", "bitget", "kucoin":
return missingNamedFields(
namedField{"api_key", apiKey},
namedField{"secret_key", secretKey},
namedField{"passphrase", passphrase},
)
case "hyperliquid":
return missingNamedFields(
namedField{"api_key", apiKey},
namedField{"hyperliquid_wallet_addr", hyperliquidWalletAddr},
)
case "aster":
return missingNamedFields(
namedField{"aster_user", asterUser},
namedField{"aster_signer", asterSigner},
namedField{"aster_private_key", asterPrivateKey},
)
case "lighter":
return missingNamedFields(
namedField{"lighter_wallet_addr", lighterWalletAddr},
namedField{"lighter_api_key_private_key", lighterAPIKeyPrivateKey},
)
default:
return []string{"exchange_type"}
}
}
type namedField struct {
name string
value string
}
func missingNamedFields(fields ...namedField) []string {
missing := make([]string, 0, len(fields))
for _, field := range fields {
if strings.TrimSpace(field.value) == "" {
missing = append(missing, field.name)
}
}
return missing
}
func IsVisibleAIModel(model *AIModel) bool {
if model == nil {
return false
@@ -45,4 +94,3 @@ func IsVisibleStrategy(strategy *Strategy) bool {
}
return strings.TrimSpace(strategy.Name) != ""
}