code: func NewChannel(clientProvider context.ClientProvider, channelID string) (*Channel, error) {
  
  	client, err := clientProvider()
  	if err != nil {
  		return nil, errors.WithMessage(err, "failed to get client context to create channel client")
  	}
  
  	channelService, err := client.ChannelProvider().ChannelService(client, channelID)
  	if err != nil {
  		return nil, errors.WithMessage(err, "failed to get channel service to create channel client")
  	}
  
  	channel := &Channel{
  		Client:         client,
  		channelService: channelService,
  		channelID:      channelID,
  		metrics:        client.GetMetrics(),
  	}
  	if pi, ok := channelService.(serviceInit); ok {
  		if err := pi.Initialize(channel); err != nil {
  			return nil, err
  		}
  	}
  	return channel, nil
  }
docs: //NewChannel creates new channel context client
  // Not be used by end developers, fabsdk package use only