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

     1  package main
     2  
     3  import (
     4  	"context"
     5  	"encoding/json"
     6  	"fmt"
     7  
     8  	"github.com/InjectiveLabs/sdk-go/client/common"
     9  	exchangeclient "github.com/InjectiveLabs/sdk-go/client/exchange"
    10  	spotExchangePB "github.com/InjectiveLabs/sdk-go/exchange/spot_exchange_rpc/pb"
    11  )
    12  
    13  func main() {
    14  	// network := common.LoadNetwork("mainnet", "k8s")
    15  	network := common.LoadNetwork("testnet", "lb")
    16  	exchangeClient, err := exchangeclient.NewExchangeClient(network)
    17  	if err != nil {
    18  		panic(err)
    19  	}
    20  
    21  	ctx := context.Background()
    22  	marketId := "0xa508cb32923323679f29a032c70342c147c17d0145625922b0ef22e955c844c0"
    23  	subaccountId := "0xaf79152ac5df276d9a8e1e2e22822f9713474902000000000000000000000000"
    24  	orderSide := "buy"
    25  
    26  	req := spotExchangePB.StreamOrdersRequest{
    27  		MarketId:     marketId,
    28  		SubaccountId: subaccountId,
    29  		OrderSide:    orderSide,
    30  	}
    31  	stream, err := exchangeClient.StreamSpotOrders(ctx, &req)
    32  	if err != nil {
    33  		panic(err)
    34  	}
    35  
    36  	for {
    37  		select {
    38  		case <-ctx.Done():
    39  			return
    40  		default:
    41  			res, err := stream.Recv()
    42  			if err != nil {
    43  				fmt.Println(err)
    44  				return
    45  			}
    46  			str, _ := json.MarshalIndent(res, "", " ")
    47  			fmt.Print(string(str))
    48  		}
    49  	}
    50  }