code: func GetSignedProposal(prop *peer.Proposal, signer msp.SigningIdentity) (*peer.SignedProposal, error) {
  	// check for nil argument
  	if prop == nil || signer == nil {
  		return nil, errors.New("nil arguments")
  	}
  
  	propBytes, err := GetBytesProposal(prop)
  	if err != nil {
  		return nil, err
  	}
  
  	signature, err := signer.Sign(propBytes)
  	if err != nil {
  		return nil, err
  	}
  
  	return &peer.SignedProposal{ProposalBytes: propBytes, Signature: signature}, nil
  }
docs: // GetSignedProposal returns a signed proposal given a Proposal message and a
  // signing identity