From e8b35374fed02176b8404d2df08074ab7bfcdc1c Mon Sep 17 00:00:00 2001 From: Luis Rubio Date: Wed, 8 Sep 2021 16:01:23 +0200 Subject: [PATCH] feat(validation): remove extra validations for rng --- data_structures/src/error.rs | 2 -- validations/src/validations.rs | 30 ++---------------------------- 2 files changed, 2 insertions(+), 30 deletions(-) diff --git a/data_structures/src/error.rs b/data_structures/src/error.rs index aa875825c2..bb01d0424e 100644 --- a/data_structures/src/error.rs +++ b/data_structures/src/error.rs @@ -485,8 +485,6 @@ pub enum DataRequestError { UnfinishedDataRequest, #[fail(display = "The data request is not valid since it has no retrieval sources")] NoRetrievalSources, - #[fail(display = "The data request to generate a Random Number is invalid")] - InvalidRngRequest, } /// Possible errors when converting between epoch and timestamp diff --git a/validations/src/validations.rs b/validations/src/validations.rs index 97576fc642..3a9c1df111 100644 --- a/validations/src/validations.rs +++ b/validations/src/validations.rs @@ -38,7 +38,7 @@ use witnet_data_structures::{ }; use witnet_rad::{ error::RadError, - reducers::{mode::mode, RadonReducers}, + reducers::mode::mode, run_tally_report, script::{ create_radon_script_from_filters_and_reducer, unpack_radon_script, @@ -244,48 +244,22 @@ pub fn validate_rad_request(rad_request: &RADRequest) -> Result<(), failure::Err if retrieval_paths.is_empty() { return Err(DataRequestError::NoRetrievalSources.into()); } - let mut is_rng = false; for path in retrieval_paths { - if path.kind == RADType::Rng { - if path.url.is_empty() && path.script.is_empty() { - is_rng = true; - break; - } else { - return Err(DataRequestError::InvalidRngRequest.into()); - } - } - // If the sources are empty the data request is set as invalid - if path.url.is_empty() { + if path.url.is_empty() && path.kind != RADType::Rng { return Err(DataRequestError::NoRetrievalSources.into()); } unpack_radon_script(path.script.as_slice())?; } - if is_rng && retrieval_paths.len() > 1 { - return Err(DataRequestError::InvalidRngRequest.into()); - } - let aggregate = &rad_request.aggregate; let filters = aggregate.filters.as_slice(); let reducer = aggregate.reducer; - let valid_rng_aggregation_script = - filters.is_empty() && reducer == u32::from(u8::from(RadonReducers::Unwrap)); - - if is_rng && !valid_rng_aggregation_script { - return Err(DataRequestError::InvalidRngRequest.into()); - } create_radon_script_from_filters_and_reducer(filters, reducer)?; let consensus = &rad_request.tally; let filters = consensus.filters.as_slice(); let reducer = consensus.reducer; - let valid_rng_tally_script = - filters.is_empty() && reducer == u32::from(u8::from(RadonReducers::HashConcatenate)); - - if is_rng && !valid_rng_tally_script { - return Err(DataRequestError::InvalidRngRequest.into()); - } create_radon_script_from_filters_and_reducer(filters, reducer)?; Ok(())