Files
nofx/provider/coinank/base_coin.go

63 lines
1.8 KiB
Go

package coinank
import (
"context"
"encoding/json"
"nofx/provider/coinank/coinank_enum"
)
// ListCoin list all support coin from coinank, response is list of coin symbol
func (c *CoinankClient) ListCoin(ctx context.Context, productType coinank_enum.ProductType) (*[]string, error) {
paramsMap := make(map[string]string, 1)
paramsMap["productType"] = string(productType)
resp, err := c.Get(ctx, "/api/baseCoin/list", paramsMap)
if err != nil {
return nil, err
}
var result CoinankResponse[[]string]
err = json.Unmarshal([]byte(resp), &result)
if err != nil {
return nil, err
}
err = json.Unmarshal([]byte(resp), &result)
if err != nil {
return nil, err
}
if !result.Success {
return nil, HttpError
}
return &result.Data, nil
}
// ListSymbols list all support symbols from coinank
func (c *CoinankClient) ListSymbols(ctx context.Context, exchange coinank_enum.Exchange, productType coinank_enum.ProductType) (*[]SymbolResp, error) {
paramsMap := make(map[string]string, 2)
paramsMap["exchange"] = string(exchange)
paramsMap["productType"] = string(productType)
resp, err := c.Get(ctx, "/api/baseCoin/symbols", paramsMap)
if err != nil {
return nil, err
}
var result CoinankResponse[[]SymbolResp]
err = json.Unmarshal([]byte(resp), &result)
if err != nil {
return nil, err
}
err = json.Unmarshal([]byte(resp), &result)
if err != nil {
return nil, err
}
if !result.Success {
return nil, HttpError
}
return &result.Data, nil
}
type SymbolResp struct {
Symbol string `json:"symbol"` // symbol,such as:`BTCUSDT`
BaseCoin string `json:"baseCoin"` // baseCoin from symbol,such as `BTC`
ExchangeName string `json:"exchangeName"` // symbol source ,such as:`Binance`
ExpireAt int `json:"expireAt"`
UpdateAt int `json:"updateAt"`
}