95 lines
3.0 KiB
Go
95 lines
3.0 KiB
Go
package excservice
|
|
|
|
import (
|
|
"go-admin/pkg/httputils"
|
|
|
|
"github.com/bytedance/sonic"
|
|
"go.uber.org/zap"
|
|
|
|
log "github.com/go-admin-team/go-admin-core/logger"
|
|
)
|
|
|
|
var (
|
|
// DefaultHttpClientConfig = &HttpClientConfig{
|
|
// Proxy: nil,
|
|
// HttpTimeout: 5 * time.Second,
|
|
// MaxIdleConns: 10}
|
|
)
|
|
var (
|
|
timeOffset int64 = 0
|
|
)
|
|
|
|
//var INERNAL_KLINE_PERIOD_CONVERTER = map[int]string{
|
|
// models.KLINE_1MIN: "1m",
|
|
// models.KLINE_3MIN: "3m",
|
|
// models.KLINE_5MIN: "5m",
|
|
// models.KLINE_15MIN: "15m",
|
|
// models.KLINE_30MIN: "30m",
|
|
// models.KLINE_60MIN: "1h",
|
|
// //models.KLINE_1H: "1h",
|
|
// models.KLINE_2H: "2h",
|
|
// models.KLINE_4H: "4h",
|
|
// models.KLINE_6H: "6h",
|
|
// models.KLINE_8H: "8h",
|
|
// models.KLINE_12H: "12h",
|
|
// models.KLINE_1DAY: "1d",
|
|
// models.KLINE_3DAY: "3d",
|
|
// models.KLINE_1WEEK: "1w",
|
|
// models.KLINE_1MONTH: "1M",
|
|
//}
|
|
|
|
type Filter struct {
|
|
FilterType string `json:"filterType"`
|
|
MaxPrice string `json:"maxPrice"`
|
|
MinPrice string `json:"minPrice"`
|
|
TickSize string `json:"tickSize"`
|
|
MultiplierUp string `json:"multiplierUp,string"`
|
|
MultiplierDown string `json:"multiplierDown,string"`
|
|
MinQty string `json:"minQty"`
|
|
MaxQty string `json:"maxQty"`
|
|
StepSize string `json:"stepSize"`
|
|
MinNotional string `json:"minNotional"`
|
|
}
|
|
|
|
//
|
|
//type RateLimit struct {
|
|
// Interval string `json:"interval"`
|
|
// IntervalNum int64 `json:"intervalNum"`
|
|
// Limit int64 `json:"limit"`
|
|
// RateLimitType string `json:"rateLimitType"`
|
|
//}
|
|
|
|
type TradeSymbol struct {
|
|
Symbol string `json:"symbol"`
|
|
Status string `json:"status"`
|
|
BaseAsset string `json:"baseAsset"` //基础币种
|
|
QuoteAsset string `json:"quoteAsset"` //计价币种
|
|
BaseAssetPrecision int `json:"baseAssetPrecision"` //基础币种小数点位数
|
|
QuotePrecision int `json:"quotePrecision"` //价格小数点位数 添加新字段 quoteAssetPrecision。此字段和 quotePrecision 重复。在未来的版本(v4)中 quotePrecision 会被移除
|
|
QuoteAssetPrecision int `json:"quoteAssetPrecision"` //
|
|
BaseCommissionPrecision int `json:"baseCommissionPrecision"`
|
|
QuoteCommissionPrecision int `json:"quoteCommissionPrecision"`
|
|
OrderTypes []string `json:"orderTypes"`
|
|
Filters []Filter `json:"filters"`
|
|
}
|
|
type ExchangeInfo struct {
|
|
Timezone string `json:"timezone"`
|
|
ServerTime int `json:"serverTime"`
|
|
//ExchangeFilters []interface{} `json:"exchangeFilters,omitempty"`
|
|
//RateLimits []RateLimit `json:"rateLimits"`
|
|
Symbols []TradeSymbol `json:"symbols"`
|
|
}
|
|
|
|
// 获取exchangeInfo
|
|
func GetExchangeInfoPro() ([]TradeSymbol, error) {
|
|
respData, err := httputils.NewHttpRequestWithFasthttp("GET", apiUrl+"/api/v3/exchangeInfo", "", nil)
|
|
if err != nil {
|
|
log.Error("获取exchangeInfo", zap.Error(err))
|
|
return nil, err
|
|
}
|
|
var info ExchangeInfo
|
|
sonic.Unmarshal(respData, &info)
|
|
|
|
return info.Symbols, nil
|
|
}
|