github.com/InjectiveLabs/sdk-go@v1.53.0/examples/exchange/oracle/1_StreamPrices/example.go (about) 1 package main 2 3 import ( 4 "context" 5 "encoding/json" 6 "fmt" 7 8 chainclient "github.com/InjectiveLabs/sdk-go/client/chain" 9 10 "github.com/InjectiveLabs/sdk-go/client/common" 11 exchangeclient "github.com/InjectiveLabs/sdk-go/client/exchange" 12 ) 13 14 func main() { 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 marketsAssistant, err := chainclient.NewMarketsAssistantInitializedFromChain(ctx, exchangeClient) 23 market := marketsAssistant.AllDerivativeMarkets()["0x17ef48032cb24375ba7c2e39f384e56433bcab20cbee9a7357e4cba2eb00abe6"] 24 25 baseSymbol := market.OracleBase 26 quoteSymbol := market.OracleQuote 27 oracleType := market.OracleType 28 stream, err := exchangeClient.StreamPrices(ctx, baseSymbol, quoteSymbol, oracleType) 29 if err != nil { 30 panic(err) 31 } 32 33 for { 34 select { 35 case <-ctx.Done(): 36 return 37 default: 38 res, err := stream.Recv() 39 if err != nil { 40 fmt.Println(err) 41 return 42 } 43 str, _ := json.MarshalIndent(res, "", " ") 44 fmt.Print(string(str)) 45 } 46 } 47 }