code: func getChaincodeResponseStatus(response *pb.ProposalResponse) (int32, error) {
  	if response.Payload != nil {
  		payload, err := protoutil.GetProposalResponsePayload(response.Payload)
  		if err != nil {
  			return 0, errors.Wrap(err, "unmarshal of proposal response payload failed")
  		}
  
  		extension, err := protoutil.GetChaincodeAction(payload.Extension)
  		if err != nil {
  			return 0, errors.Wrap(err, "unmarshal of chaincode action failed")
  		}
  
  		if extension != nil && extension.Response != nil {
  			return extension.Response.Status, nil
  		}
  	}
  	return response.Response.Status, nil
  }
docs: // getChaincodeResponseStatus gets the actual response status from response.Payload.extension.Response.status, as fabric always returns actual 200