Files
proxy_server/utils/chainhelper/chainhelper.go

36 lines
910 B
Go
Raw Normal View History

2025-07-12 15:25:26 +08:00
package chainhelper
import (
"errors"
"regexp"
)
// 比较钱包地址格式
func JudgeChainAddress(chain, walletAddress string) error {
switch chain {
case "trx":
return validateTronAddress(walletAddress)
default:
return errors.New("invalid chain")
}
}
func validateTronAddress(address string) error {
// TRON 地址通常以 'T' 开头,并且是 34 个字符的 Base58Check 编码
// 这是一个简化的检查,最佳实践是使用专门的 Tron 地址验证库来包含校验和验证
if len(address) != 34 {
return errors.New("Tron 钱包地址长度不正确")
}
if address[0] != 'T' {
return errors.New("Tron 钱包地址长度不正确,必须以 'T'开头")
}
// 检查字符集
matched, _ := regexp.MatchString("^[T][1-9a-zA-Z]{33}$", address)
if !matched {
return errors.New("TRON 钱包地址格式不正确")
}
return nil
}