50 lines
1.0 KiB
Go
50 lines
1.0 KiB
Go
package main
|
|
|
|
import (
|
|
"os"
|
|
"strings"
|
|
)
|
|
|
|
// assetTicker: estrae solo il ticker (USDT, ETH, BTC) da "ETH.USDT-0x..." o "ETH.ETH"
|
|
func assetTicker(label string) string {
|
|
parts := strings.Split(label, ".")
|
|
if len(parts) != 2 {
|
|
return label
|
|
}
|
|
right := parts[1]
|
|
if i := strings.Index(right, "-"); i > 0 {
|
|
right = right[:i]
|
|
}
|
|
return right
|
|
}
|
|
|
|
// humanAction: rende leggibile la direzione dello swap
|
|
func humanAction(dec Decision, cfg Config) string {
|
|
fromTicker := assetTicker(cfg.ThorFrom)
|
|
toTicker := assetTicker(cfg.ThorTo)
|
|
switch dec.Action {
|
|
case "SWAP_AB":
|
|
return fromTicker + " -> " + toTicker
|
|
case "SWAP_BA":
|
|
return toTicker + " -> " + fromTicker
|
|
default:
|
|
return "HOLD"
|
|
}
|
|
}
|
|
|
|
// manualModeEnabled: true se MANUAL_MODE è impostata (default true)
|
|
func manualModeEnabled() bool {
|
|
v := strings.ToLower(strings.TrimSpace(os.Getenv("MANUAL_MODE")))
|
|
if v == "" {
|
|
return true
|
|
}
|
|
switch v {
|
|
case "1", "true", "yes", "y", "on":
|
|
return true
|
|
case "0", "false", "no", "n", "off":
|
|
return false
|
|
default:
|
|
return true
|
|
}
|
|
}
|