57 lines
1.8 KiB
Go
57 lines
1.8 KiB
Go
package bybitapi
|
|
|
|
import (
|
|
"github.com/c9s/requestgen"
|
|
|
|
"git.qtrade.icu/lychiyu/qbtrade/pkg/fixedpoint"
|
|
)
|
|
|
|
//go:generate -command GetRequest requestgen -method GET -responseType .APIResponse -responseDataField Result
|
|
//go:generate -command PostRequest requestgen -method POST -responseType .APIResponse -responseDataField Result
|
|
|
|
type InstrumentsInfo struct {
|
|
Category Category `json:"category"`
|
|
List []Instrument `json:"list"`
|
|
}
|
|
|
|
type Instrument struct {
|
|
Symbol string `json:"symbol"`
|
|
BaseCoin string `json:"baseCoin"`
|
|
QuoteCoin string `json:"quoteCoin"`
|
|
Innovation string `json:"innovation"`
|
|
Status Status `json:"status"`
|
|
MarginTrading string `json:"marginTrading"`
|
|
LotSizeFilter struct {
|
|
BasePrecision fixedpoint.Value `json:"basePrecision"`
|
|
QuotePrecision fixedpoint.Value `json:"quotePrecision"`
|
|
MinOrderQty fixedpoint.Value `json:"minOrderQty"`
|
|
MaxOrderQty fixedpoint.Value `json:"maxOrderQty"`
|
|
MinOrderAmt fixedpoint.Value `json:"minOrderAmt"`
|
|
MaxOrderAmt fixedpoint.Value `json:"maxOrderAmt"`
|
|
} `json:"lotSizeFilter"`
|
|
|
|
PriceFilter struct {
|
|
TickSize fixedpoint.Value `json:"tickSize"`
|
|
} `json:"priceFilter"`
|
|
}
|
|
|
|
//go:generate GetRequest -url "/v5/market/instruments-info" -type GetInstrumentsInfoRequest -responseDataType .InstrumentsInfo
|
|
type GetInstrumentsInfoRequest struct {
|
|
client requestgen.APIClient
|
|
|
|
category Category `param:"category,query" validValues:"spot"`
|
|
symbol *string `param:"symbol,query"`
|
|
|
|
// limit is invalid if category spot.
|
|
limit *uint64 `param:"limit,query"`
|
|
// cursor is invalid if category spot.
|
|
cursor *string `param:"cursor,query"`
|
|
}
|
|
|
|
func (c *RestClient) NewGetInstrumentsInfoRequest() *GetInstrumentsInfoRequest {
|
|
return &GetInstrumentsInfoRequest{
|
|
client: c,
|
|
category: CategorySpot,
|
|
}
|
|
}
|