feat: get support chain api

This commit is contained in:
Ginta
2026-04-14 18:57:38 +08:00
parent 5e68bf8309
commit 1e2282ba2e
11 changed files with 546 additions and 30 deletions
+32
View File
@@ -5,6 +5,7 @@ import (
"encoding/hex"
"strings"
"github.com/assimon/luuu/model/mdb"
"github.com/btcsuite/btcutil/base58"
)
@@ -44,3 +45,34 @@ func isValidTronAddress(addr string) bool {
return string(checksum) == string(hash2[:4])
}
func isValidSolanaAddress(addr string) bool {
addr = strings.TrimSpace(addr)
if addr == "" {
return false
}
decoded := base58.Decode(addr)
return len(decoded) == 32
}
func isValidAddressByNetwork(network, addr string) bool {
switch strings.ToLower(strings.TrimSpace(network)) {
case mdb.NetworkTron:
return isValidTronAddress(addr)
case mdb.NetworkSolana:
return isValidSolanaAddress(addr)
default:
// 其余 EVM 链统一使用 0x 地址校验
return isValidEthereumAddress(addr)
}
}
func normalizeWalletAddressByNetwork(network, addr string) string {
addr = strings.TrimSpace(addr)
switch strings.ToLower(strings.TrimSpace(network)) {
case mdb.NetworkTron, mdb.NetworkSolana:
return addr
default:
return strings.ToLower(addr)
}
}