feat: support TON and USDT Jetton payments

- add TON chain, token, RPC, address normalization, and order matching support
- add liteclient scanner with masterchain/shard catch-up and Jetton validation
- add TON manual payment verification and focused tests
This commit is contained in:
line-6000
2026-06-11 14:47:46 +08:00
parent 225cae2c24
commit 9b397bd45e
34 changed files with 3131 additions and 57 deletions
+9
View File
@@ -6,6 +6,7 @@ import (
"strings"
"github.com/GMWalletApp/epusdt/model/mdb"
addressutil "github.com/GMWalletApp/epusdt/util/address"
"github.com/btcsuite/btcutil/base58"
"github.com/gagliardetto/solana-go"
)
@@ -53,6 +54,9 @@ func isValidAddressByNetwork(network, addr string) bool {
return isValidTronAddress(addr)
case mdb.NetworkSolana:
return isValidSolanaAddress(addr)
case mdb.NetworkTon:
_, err := addressutil.ParseTonMainnetAddress(addr)
return err == nil
default:
// 其余 EVM 链统一使用 0x 地址校验
return isValidEthereumAddress(addr)
@@ -64,6 +68,11 @@ func normalizeWalletAddressByNetwork(network, addr string) string {
switch strings.ToLower(strings.TrimSpace(network)) {
case mdb.NetworkTron, mdb.NetworkSolana:
return addr
case mdb.NetworkTon:
if normalized, err := addressutil.NormalizeTonAddress(addr); err == nil {
return normalized
}
return addr
default:
return strings.ToLower(addr)
}