76 lines
1.9 KiB
Markdown
76 lines
1.9 KiB
Markdown
# USDTMan
|
||
|
||
TRON USDT TRC20 收款监听服务 - 基于交易记录扫描 + 区块确认数验证
|
||
|
||
## 功能
|
||
|
||
- 实时监听多个 TRON 地址的 USDT 收款
|
||
- 区块确认数验证(默认6个确认)
|
||
- WebSocket 实时推送收款通知
|
||
- HTTP API 管理监听地址
|
||
|
||
## API 使用方式
|
||
|
||
```go
|
||
// 创建监听器(配置对象方式)
|
||
uman := usdtman.NewUSDTMan(usdtman.Config{
|
||
Addresses: []string{"地址1", "地址2"},
|
||
APIKey: "YOUR_API_KEY",
|
||
QueryInterval: 5 * time.Second, // 查询间隔(可选,默认 5 秒)
|
||
MinConfirmations: 6, // 最小确认数(可选,默认 6)
|
||
MaxHistoryTxns: 20, // 查询历史交易数(可选,默认 20)
|
||
ProxyURL: "http://127.0.0.1:7890", // HTTP/SOCKS5 代理(可选)
|
||
})
|
||
|
||
// 或者使用自定义 Transport
|
||
uman := usdtman.NewUSDTMan(usdtman.Config{
|
||
Addresses: []string{"地址1"},
|
||
APIKey: "YOUR_API_KEY",
|
||
Transport: &http.Transport{
|
||
Proxy: http.ProxyURL(proxyURL),
|
||
// 其他自定义配置...
|
||
},
|
||
})
|
||
|
||
// 设置收款回调
|
||
uman.OnPaymentComplete(func(payment *usdtman.USDTPayment) {
|
||
fmt.Printf("收到 %.6f USDT,确认数: %d\n", payment.Amount, payment.Confirmations)
|
||
})
|
||
|
||
// 启动监听
|
||
uman.Start()
|
||
|
||
// 停止监听
|
||
uman.Stop()
|
||
|
||
// 动态添加/移除地址
|
||
uman.AddAddress("新地址")
|
||
uman.RemoveAddress("旧地址")
|
||
```
|
||
|
||
## 运行
|
||
|
||
```bash
|
||
cd cmd/server
|
||
go run main.go
|
||
```
|
||
|
||
访问 http://localhost:8084
|
||
|
||
## 接口
|
||
|
||
- `POST /start` - 启动监听
|
||
- `POST /stop` - 停止监听
|
||
- `POST /add-address` - 添加监听地址
|
||
- `POST /remove-address` - 移除地址
|
||
- `GET /list-addresses` - 列出所有地址
|
||
- `GET /payments` - 获取收款历史
|
||
- `WS /ws` - WebSocket 连接
|
||
|
||
## 确认机制
|
||
|
||
- 扫描地址的最近交易记录
|
||
- 计算区块确认数(当前区块 - 交易区块)
|
||
- 仅在确认数 >= 6 时触发回调
|
||
- 自动去重,避免重复处理
|