Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Feat/v2 orderbooks #94

Merged
merged 2 commits into from Dec 27, 2022
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
117 changes: 117 additions & 0 deletions client/exchange/exchange.go
Expand Up @@ -25,8 +25,11 @@ type ExchangeClient interface {
GetDerivativeMarket(ctx context.Context, marketId string) (derivativeExchangePB.MarketResponse, error)
GetDerivativeOrderbook(ctx context.Context, marketId string) (derivativeExchangePB.OrderbookResponse, error)
GetDerivativeOrderbooks(ctx context.Context, marketIds []string) (derivativeExchangePB.OrderbooksResponse, error)
GetDerivativeOrderbookV2(ctx context.Context, marketId string) (derivativeExchangePB.OrderbookV2Response, error)
GetDerivativeOrderbooksV2(ctx context.Context, marketIds []string) (derivativeExchangePB.OrderbooksV2Response, error)
// StreamDerivativeOrderbook deprecated API
StreamDerivativeOrderbook(ctx context.Context, marketIds []string) (derivativeExchangePB.InjectiveDerivativeExchangeRPC_StreamOrderbookClient, error)
StreamDerivativeOrderbookV2(ctx context.Context, marketIds []string) (derivativeExchangePB.InjectiveDerivativeExchangeRPC_StreamOrderbookV2Client, error)
StreamDerivativeOrderbookUpdate(ctx context.Context, marketIds []string) (derivativeExchangePB.InjectiveDerivativeExchangeRPC_StreamOrderbookUpdateClient, error)
StreamDerivativeMarket(ctx context.Context, marketIds []string) (derivativeExchangePB.InjectiveDerivativeExchangeRPC_StreamMarketClient, error)
GetDerivativeOrders(ctx context.Context, req derivativeExchangePB.OrdersRequest) (derivativeExchangePB.OrdersResponse, error)
Expand Down Expand Up @@ -58,8 +61,11 @@ type ExchangeClient interface {
GetSpotOrders(ctx context.Context, req spotExchangePB.OrdersRequest) (spotExchangePB.OrdersResponse, error)
GetSpotOrderbook(ctx context.Context, marketId string) (spotExchangePB.OrderbookResponse, error)
GetSpotOrderbooks(ctx context.Context, marketIds []string) (spotExchangePB.OrderbooksResponse, error)
GetSpotOrderbookV2(ctx context.Context, marketId string) (spotExchangePB.OrderbookV2Response, error)
GetSpotOrderbooksV2(ctx context.Context, marketIds []string) (spotExchangePB.OrderbooksV2Response, error)
// StreamSpotOrderbook deprecated API
StreamSpotOrderbook(ctx context.Context, marketIds []string) (spotExchangePB.InjectiveSpotExchangeRPC_StreamOrderbookClient, error)
StreamSpotOrderbookV2(ctx context.Context, marketIds []string) (spotExchangePB.InjectiveSpotExchangeRPC_StreamOrderbookV2Client, error)
StreamSpotOrderbookUpdate(ctx context.Context, marketIds []string) (spotExchangePB.InjectiveSpotExchangeRPC_StreamOrderbookUpdateClient, error)
GetSpotMarkets(ctx context.Context, req spotExchangePB.MarketsRequest) (spotExchangePB.MarketsResponse, error)
GetSpotMarket(ctx context.Context, marketId string) (spotExchangePB.MarketResponse, error)
Expand Down Expand Up @@ -232,6 +238,40 @@ func (c *exchangeClient) GetDerivativeOrderbooks(ctx context.Context, marketIds
return *res, nil
}

func (c *exchangeClient) GetDerivativeOrderbookV2(ctx context.Context, marketId string) (derivativeExchangePB.OrderbookV2Response, error) {
req := derivativeExchangePB.OrderbookV2Request{
MarketId: marketId,
}

var header metadata.MD
ctx = c.getCookie(ctx)
res, err := c.derivativeExchangeClient.OrderbookV2(ctx, &req, grpc.Header(&header))
if err != nil {
fmt.Println(err)
return derivativeExchangePB.OrderbookV2Response{}, err
}
c.setCookie(header)

return *res, nil
}

func (c *exchangeClient) GetDerivativeOrderbooksV2(ctx context.Context, marketIds []string) (derivativeExchangePB.OrderbooksV2Response, error) {
req := derivativeExchangePB.OrderbooksV2Request{
MarketIds: marketIds,
}

var header metadata.MD
ctx = c.getCookie(ctx)
res, err := c.derivativeExchangeClient.OrderbooksV2(ctx, &req, grpc.Header(&header))
if err != nil {
fmt.Println(err)
return derivativeExchangePB.OrderbooksV2Response{}, err
}
c.setCookie(header)

return *res, nil
}

func (c *exchangeClient) StreamDerivativeOrderbook(ctx context.Context, marketIds []string) (derivativeExchangePB.InjectiveDerivativeExchangeRPC_StreamOrderbookClient, error) {
req := derivativeExchangePB.StreamOrderbookRequest{
MarketIds: marketIds,
Expand All @@ -252,6 +292,28 @@ func (c *exchangeClient) StreamDerivativeOrderbook(ctx context.Context, marketId

return stream, nil
}

func (c *exchangeClient) StreamDerivativeOrderbookV2(ctx context.Context, marketIds []string) (derivativeExchangePB.InjectiveDerivativeExchangeRPC_StreamOrderbookV2Client, error) {
req := derivativeExchangePB.StreamOrderbookV2Request{
MarketIds: marketIds,
}

ctx = c.getCookie(ctx)
stream, err := c.derivativeExchangeClient.StreamOrderbookV2(ctx, &req)
if err != nil {
fmt.Println(err)
return nil, err
}
header, err := stream.Header()
if err != nil {
fmt.Println(err)
return nil, err
}
c.setCookie(header)

return stream, nil
}

func (c *exchangeClient) StreamDerivativeOrderbookUpdate(ctx context.Context, marketIds []string) (derivativeExchangePB.InjectiveDerivativeExchangeRPC_StreamOrderbookUpdateClient, error) {
req := derivativeExchangePB.StreamOrderbookUpdateRequest{
MarketIds: marketIds,
Expand Down Expand Up @@ -729,6 +791,23 @@ func (c *exchangeClient) GetSpotOrderbook(ctx context.Context, marketId string)
return *res, nil
}

func (c *exchangeClient) GetSpotOrderbookV2(ctx context.Context, marketId string) (spotExchangePB.OrderbookV2Response, error) {
req := spotExchangePB.OrderbookV2Request{
MarketId: marketId,
}

var header metadata.MD
ctx = c.getCookie(ctx)
res, err := c.spotExchangeClient.OrderbookV2(ctx, &req, grpc.Header(&header))
if err != nil {
fmt.Println(err)
return spotExchangePB.OrderbookV2Response{}, err
}
c.setCookie(header)

return *res, nil
}

func (c *exchangeClient) GetSpotOrderbooks(ctx context.Context, marketIds []string) (spotExchangePB.OrderbooksResponse, error) {
req := spotExchangePB.OrderbooksRequest{
MarketIds: marketIds,
Expand All @@ -746,6 +825,23 @@ func (c *exchangeClient) GetSpotOrderbooks(ctx context.Context, marketIds []stri
return *res, nil
}

func (c *exchangeClient) GetSpotOrderbooksV2(ctx context.Context, marketIds []string) (spotExchangePB.OrderbooksV2Response, error) {
req := spotExchangePB.OrderbooksV2Request{
MarketIds: marketIds,
}

var header metadata.MD
ctx = c.getCookie(ctx)
res, err := c.spotExchangeClient.OrderbooksV2(ctx, &req, grpc.Header(&header))
if err != nil {
fmt.Println(err)
return spotExchangePB.OrderbooksV2Response{}, err
}
c.setCookie(header)

return *res, nil
}

func (c *exchangeClient) StreamSpotOrderbookUpdate(ctx context.Context, marketIds []string) (spotExchangePB.InjectiveSpotExchangeRPC_StreamOrderbookUpdateClient, error) {
req := spotExchangePB.StreamOrderbookUpdateRequest{
MarketIds: marketIds,
Expand Down Expand Up @@ -788,6 +884,27 @@ func (c *exchangeClient) StreamSpotOrderbook(ctx context.Context, marketIds []st
return stream, nil
}

func (c *exchangeClient) StreamSpotOrderbookV2(ctx context.Context, marketIds []string) (spotExchangePB.InjectiveSpotExchangeRPC_StreamOrderbookV2Client, error) {
req := spotExchangePB.StreamOrderbookV2Request{
MarketIds: marketIds,
}

ctx = c.getCookie(ctx)
stream, err := c.spotExchangeClient.StreamOrderbookV2(ctx, &req)
if err != nil {
fmt.Println(err)
return nil, err
}
header, err := stream.Header()
if err != nil {
fmt.Println(err)
return nil, err
}
c.setCookie(header)

return stream, nil
}

func (c *exchangeClient) GetSpotMarkets(ctx context.Context, req spotExchangePB.MarketsRequest) (spotExchangePB.MarketsResponse, error) {
var header metadata.MD
ctx = c.getCookie(ctx)
Expand Down
Expand Up @@ -66,7 +66,7 @@ func main() {

// prepare orderbooks map
orderbooks := map[string]*MapOrderbook{}
res, err := exchangeClient.GetDerivativeOrderbooks(ctx, marketIds)
res, err := exchangeClient.GetDerivativeOrderbooksV2(ctx, marketIds)
if err != nil {
panic(err)
}
Expand Down Expand Up @@ -154,7 +154,7 @@ func main() {
}
}

res, _ = exchangeClient.GetDerivativeOrderbooks(ctx, marketIds)
res, _ = exchangeClient.GetDerivativeOrderbooksV2(ctx, marketIds)
fmt.Println("query", res.Orderbooks[0].Orderbook.Sequence, len(res.Orderbooks[0].Orderbook.Sells), len(res.Orderbooks[0].Orderbook.Buys))

// print orderbook
Expand Down
4 changes: 2 additions & 2 deletions examples/exchange/spot/8_StreamOrderbookUpdate/example.go
Expand Up @@ -71,7 +71,7 @@ func main() {

// prepare orderbooks map
orderbooks := map[string]*MapOrderbook{}
res, err := exchangeClient.GetSpotOrderbooks(ctx, marketIds)
res, err := exchangeClient.GetSpotOrderbooksV2(ctx, marketIds)
if err != nil {
panic(err)
}
Expand Down Expand Up @@ -156,7 +156,7 @@ func main() {
}
}

res, _ = exchangeClient.GetSpotOrderbooks(ctx, marketIds)
res, _ = exchangeClient.GetSpotOrderbooksV2(ctx, marketIds)
fmt.Println("query", res.Orderbooks[0].Orderbook.Sequence, len(res.Orderbooks[0].Orderbook.Sells), len(res.Orderbooks[0].Orderbook.Buys))

// print orderbook
Expand Down