code: func (rc *Client) QueryInstalledChaincodes(options ...RequestOption) (*pb.ChaincodeQueryResponse, error) {
  
  	opts, err := rc.prepareRequestOpts(options...)
  	if err != nil {
  		return nil, err
  	}
  
  	if len(opts.Targets) != 1 {
  		return nil, errors.New("only one target is supported")
  	}
  
  	reqCtx, cancel := rc.createRequestContext(opts, fab.PeerResponse)
  	defer cancel()
  
  	return resource.QueryInstalledChaincodes(reqCtx, opts.Targets[0], resource.WithRetry(opts.Retry))
  }
docs: // QueryInstalledChaincodes queries the installed chaincodes on a peer.
  //  Parameters:
  //  options hold optional request options
  //  Note: One target(peer) has to be specified using either WithTargetURLs or WithTargets request option
  //
  //  Returns:
  //  list of installed chaincodes on specified peer