code: func (rc *Client) createTP(req InstantiateCCRequest, channelID string, ccProposalType chaincodeProposalType) (*fab.TransactionProposal, fab.TransactionID, error) {
  	deployProposal := chaincodeDeployRequest(req)
  
  	txID, err := txn.NewHeader(rc.ctx, channelID)
  	if err != nil {
  		return nil, fab.EmptyTransactionID, errors.WithMessage(err, "create transaction ID failed")
  	}
  
  	tp, err := createChaincodeDeployProposal(txID, ccProposalType, channelID, deployProposal)
  	if err != nil {
  		return nil, txID.TransactionID(), errors.WithMessage(err, "creating chaincode deploy transaction proposal failed")
  	}
  	return tp, txID.TransactionID(), nil
  }
docs: // createTP