code: func NewConnection(ctx fabcontext.Client, url string, opts ...options.Opt) (*GRPCConnection, error) {
  	if url == "" {
  		return nil, errors.New("server URL not specified")
  	}
  
  	params := defaultParams()
  	options.Apply(params, opts)
  
  	dialOpts, err := newDialOpts(ctx.EndpointConfig(), url, params)
  	if err != nil {
  		return nil, err
  	}
  
  	reqCtx, cancel := context.NewRequest(ctx, context.WithTimeout(params.connectTimeout))
  	defer cancel()
  
  	commManager, ok := context.RequestCommManager(reqCtx)
  	if !ok {
  		return nil, errors.New("unable to get comm manager")
  	}
  
  	grpcconn, err := commManager.DialContext(reqCtx, endpoint.ToAddress(url), dialOpts...)
  	if err != nil {
  		return nil, errors.Wrapf(err, "could not connect to %s", url)
  	}
  
  	hash, err := comm.TLSCertHash(ctx.EndpointConfig())
  	if err != nil {
  		return nil, errors.Wrapf(err, "failed to get tls cert hash")
  	}
  
  	return &GRPCConnection{
  		context:     ctx,
  		commManager: commManager,
  		conn:        grpcconn,
  		tlsCertHash: hash,
  	}, nil
  }
docs: // NewConnection creates a new connection