conn, err := grpc.NewClient("ams.rpc.sodae.io:10301",
grpc.WithTransportCredentials(insecure.NewCredentials()),
grpc.WithDefaultCallOptions(grpc.MaxCallRecvMsgSize(64<<20)))
ctx := metadata.AppendToOutgoingContext(context.Background(), "x-token", token)
stream, err := pb.NewShredstreamProxyClient(conn).SubscribeEntries(ctx, &pb.SubscribeEntriesRequest{})
for {
message, err := stream.Recv()
if err != nil {
return err
}
entries, err := decodeEntries(message.Entries)
if err != nil {
continue
}
for _, entry := range entries {
for _, tx := range entry.Transactions {
if slices.Contains(tx.Message.AccountKeys, program) {
fmt.Println(message.Slot, tx.Signatures[0], "signer="+tx.Message.AccountKeys[0].String())
}
}
}
}