Browse Source

Working_group: remove lower bound limit from worker_storage_size constraint

iorveth 4 years ago
parent
commit
33f53545ed

+ 1 - 4
runtime-modules/working-group/src/errors.rs

@@ -85,10 +85,7 @@ decl_error! {
         WorkerExitRationaleTextTooShort,
 
         /// Worker storage text is too long.
-        WorkerStorageTextTooLong,
-
-        /// Worker storage text is too short.
-        WorkerStorageTextTooShort,
+        WorkerStorageValueTooLong,
 
         /// Signer is not worker role account.
         SignerIsNotWorkerRoleAccount,

+ 12 - 14
runtime-modules/working-group/src/lib.rs

@@ -327,8 +327,8 @@ decl_storage! {
         /// Worker exit rationale text length limits.
         pub WorkerExitRationaleText get(fn worker_exit_rationale_text) : InputValidationLengthConstraint;
 
-        /// Worker storage text length limits.
-        pub WorkerStorageText get(fn worker_storage_size) : InputValidationLengthConstraint;
+        /// Worker storage size upper bound.
+        pub WorkerStorageSize get(fn worker_storage_size) : u16;
 
         /// Map member id by hiring application id.
         /// Required by StakingEventsHandler callback call to refund the balance on unstaking.
@@ -341,7 +341,7 @@ decl_storage! {
         config(opening_human_readable_text_constraint): InputValidationLengthConstraint;
         config(worker_application_human_readable_text_constraint): InputValidationLengthConstraint;
         config(worker_exit_rationale_text_constraint): InputValidationLengthConstraint;
-        config(worker_storage_size_constraint): InputValidationLengthConstraint;
+        config(worker_storage_size_constraint): u16;
         build(|config: &GenesisConfig<T, I>| {
             Module::<T, I>::initialize_working_group(
                 config.opening_human_readable_text_constraint,
@@ -1367,13 +1367,11 @@ impl<T: Trait<I>, I: Instance> Module<T, I> {
     }
 
     fn ensure_worker_role_storage_text_is_valid(text: &[u8]) -> DispatchResult {
-        Self::worker_storage_size()
-            .ensure_valid(
-                text.len(),
-                Error::<T, I>::WorkerStorageTextTooShort.into(),
-                Error::<T, I>::WorkerStorageTextTooLong.into(),
-            )
-            .map_err(|e| DispatchError::Other(e))
+        ensure!(
+            text.len() as u16 <= Self::worker_storage_size(),
+            Error::<T, I>::WorkerStorageValueTooLong
+        );
+        Ok(())
     }
 }
 
@@ -1383,8 +1381,8 @@ pub fn default_text_constraint() -> InputValidationLengthConstraint {
 }
 
 /// Creates default storage size constraint.
-pub fn default_storage_size_constraint() -> InputValidationLengthConstraint {
-    InputValidationLengthConstraint::new(0, 2048)
+pub fn default_storage_size_constraint() -> u16 {
+    2048
 }
 
 impl<T: Trait<I>, I: Instance> Module<T, I> {
@@ -1539,7 +1537,7 @@ impl<T: Trait<I>, I: Instance> Module<T, I> {
         opening_human_readable_text_constraint: InputValidationLengthConstraint,
         worker_application_human_readable_text_constraint: InputValidationLengthConstraint,
         worker_exit_rationale_text_constraint: InputValidationLengthConstraint,
-        worker_storage_size_constraint: InputValidationLengthConstraint,
+        worker_storage_size_constraint: u16,
         working_group_mint_capacity: minting::BalanceOf<T>,
     ) {
         // Create a mint.
@@ -1557,7 +1555,7 @@ impl<T: Trait<I>, I: Instance> Module<T, I> {
             worker_application_human_readable_text_constraint,
         );
         <WorkerExitRationaleText<I>>::put(worker_exit_rationale_text_constraint);
-        <WorkerStorageText<I>>::put(worker_storage_size_constraint);
+        <WorkerStorageSize<I>>::put(worker_storage_size_constraint);
     }
 
     // Set worker id as a leader id.

+ 1 - 4
runtime-modules/working-group/src/tests/mock.rs

@@ -169,10 +169,7 @@ pub fn build_test_externalities() -> sp_io::TestExternalities {
             WORKING_GROUP_CONSTRAINT_MIN,
             WORKING_GROUP_CONSTRAINT_DIFF,
         ),
-        worker_storage_size_constraint: InputValidationLengthConstraint::new(
-            WORKING_GROUP_CONSTRAINT_MIN,
-            WORKING_GROUP_CONSTRAINT_DIFF,
-        ),
+        worker_storage_size_constraint: crate::default_storage_size_constraint(),
     }
     .assimilate_storage(&mut t)
     .unwrap();

+ 1 - 16
runtime-modules/working-group/src/tests/mod.rs

@@ -1262,7 +1262,7 @@ fn update_worker_storage_fails_with_invalid_worker_id() {
 #[test]
 fn update_worker_storage_fails_with_too_long_text() {
     build_test_externalities().execute_with(|| {
-        let storage_field = vec![0u8].repeat(default_text_constraint().max() as usize + 1);
+        let storage_field = vec![0u8].repeat(default_text_constraint() as usize + 1);
 
         let worker_id = fill_default_worker_position();
 
@@ -1276,21 +1276,6 @@ fn update_worker_storage_fails_with_too_long_text() {
     });
 }
 
-#[test]
-fn update_worker_storage_fails_with_too_short_text() {
-    build_test_externalities().execute_with(|| {
-        let worker_id = fill_default_worker_position();
-
-        let storage_field = vec![0u8].repeat(default_text_constraint().min as usize - 1);
-
-        let update_storage_fixture =
-            UpdateWorkerStorageFixture::default_with_storage_field(worker_id, storage_field);
-
-        update_storage_fixture
-            .call_and_assert(Err(DispatchError::Other("WorkerStorageTextTooShort")));
-    });
-}
-
 #[test]
 fn update_worker_reward_account_succeeds() {
     build_test_externalities().execute_with(|| {