github.com/InjectiveLabs/sdk-go@v1.53.0/examples/exchange/spot/7_StreamOrderbook/example.go (about)

     1  package main
     2  
     3  import (
     4  	"context"
     5  	"fmt"
     6  
     7  	"github.com/InjectiveLabs/sdk-go/client/common"
     8  	exchangeclient "github.com/InjectiveLabs/sdk-go/client/exchange"
     9  )
    10  
    11  func main() {
    12  	network := common.LoadNetwork("devnet-1", "")
    13  	exchangeClient, err := exchangeclient.NewExchangeClient(network)
    14  	if err != nil {
    15  		panic(err)
    16  	}
    17  
    18  	ctx := context.Background()
    19  	marketIds := []string{"0xa508cb32923323679f29a032c70342c147c17d0145625922b0ef22e955c844c0"}
    20  	stream, err := exchangeClient.StreamSpotOrderbookV2(ctx, marketIds)
    21  	if err != nil {
    22  		panic(err)
    23  	}
    24  
    25  	for {
    26  		select {
    27  		case <-ctx.Done():
    28  			return
    29  		default:
    30  			res, err := stream.Recv()
    31  			if err != nil {
    32  				fmt.Println(err)
    33  				return
    34  			}
    35  			fmt.Println(res.MarketId, res.Orderbook, len(res.Orderbook.Sells), len(res.Orderbook.Buys))
    36  		}
    37  	}
    38  }