git.delta.rocks / unique-network / refs/commits / 008a188c3ea9

difftreelog

Remove variableOnChainSchema

Daniel Shiposha2022-05-12parent: #edc04ac.patch.diff
in: master

12 files changed

modifiedpallets/common/src/benchmarking.rsdiffbeforeafterboth
--- a/pallets/common/src/benchmarking.rs
+++ b/pallets/common/src/benchmarking.rs
@@ -19,7 +19,7 @@
 use up_data_structs::{
 	CollectionMode, CreateCollectionData, CollectionId, MAX_COLLECTION_NAME_LENGTH,
 	MAX_COLLECTION_DESCRIPTION_LENGTH, MAX_TOKEN_PREFIX_LENGTH, OFFCHAIN_SCHEMA_LIMIT,
-	VARIABLE_ON_CHAIN_SCHEMA_LIMIT, CONST_ON_CHAIN_SCHEMA_LIMIT,
+	CONST_ON_CHAIN_SCHEMA_LIMIT,
 };
 use frame_support::{
 	traits::{Currency, Get},
@@ -67,7 +67,6 @@
 	let description = create_u16_data::<MAX_COLLECTION_DESCRIPTION_LENGTH>();
 	let token_prefix = create_data::<MAX_TOKEN_PREFIX_LENGTH>();
 	let offchain_schema = create_data::<OFFCHAIN_SCHEMA_LIMIT>();
-	let variable_on_chain_schema = create_data::<VARIABLE_ON_CHAIN_SCHEMA_LIMIT>();
 	let const_on_chain_schema = create_data::<CONST_ON_CHAIN_SCHEMA_LIMIT>();
 	handler(
 		owner,
@@ -77,7 +76,6 @@
 			description,
 			token_prefix,
 			offchain_schema,
-			variable_on_chain_schema,
 			const_on_chain_schema,
 			..Default::default()
 		},
modifiedpallets/common/src/lib.rsdiffbeforeafterboth
--- a/pallets/common/src/lib.rs
+++ b/pallets/common/src/lib.rs
@@ -482,12 +482,6 @@
 					.expect("data has lower bounds than field");
 					Self::set_field_raw(
 						id,
-						CollectionField::VariableOnChainSchema,
-						v.variable_on_chain_schema.clone().into_inner(),
-					)
-					.expect("data has lower bounds than field");
-					Self::set_field_raw(
-						id,
 						CollectionField::ConstOnChainSchema,
 						v.const_on_chain_schema.clone().into_inner(),
 					)
@@ -621,11 +615,6 @@
 				CollectionField::ConstOnChainSchema,
 			))
 			.into_inner(),
-			variable_on_chain_schema: <CollectionData<T>>::get((
-				collection,
-				CollectionField::VariableOnChainSchema,
-			))
-			.into_inner(),
 			token_property_permissions,
 			properties,
 		})
@@ -723,12 +712,6 @@
 			id,
 			CollectionField::OffchainSchema,
 			data.offchain_schema.into_inner(),
-		)
-		.expect("data has lower bounds than field");
-		Self::set_field_raw(
-			id,
-			CollectionField::VariableOnChainSchema,
-			data.variable_on_chain_schema.into_inner(),
 		)
 		.expect("data has lower bounds than field");
 		Self::set_field_raw(
modifiedpallets/unique/src/benchmarking.rsdiffbeforeafterboth
before · pallets/unique/src/benchmarking.rs
1// Copyright 2019-2022 Unique Network (Gibraltar) Ltd.2// This file is part of Unique Network.34// Unique Network is free software: you can redistribute it and/or modify5// it under the terms of the GNU General Public License as published by6// the Free Software Foundation, either version 3 of the License, or7// (at your option) any later version.89// Unique Network is distributed in the hope that it will be useful,10// but WITHOUT ANY WARRANTY; without even the implied warranty of11// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the12// GNU General Public License for more details.1314// You should have received a copy of the GNU General Public License15// along with Unique Network. If not, see <http://www.gnu.org/licenses/>.1617#![cfg(feature = "runtime-benchmarks")]1819use super::*;20use crate::Pallet;21use frame_system::RawOrigin;22use frame_support::traits::{tokens::currency::Currency, Get};23use frame_benchmarking::{benchmarks, account};24use sp_runtime::DispatchError;25use pallet_common::benchmarking::{create_data, create_var_data, create_u16_data};2627const SEED: u32 = 1;2829fn create_collection_helper<T: Config>(30	owner: T::AccountId,31	mode: CollectionMode,32) -> Result<CollectionId, DispatchError> {33	T::Currency::deposit_creating(&owner, T::CollectionCreationPrice::get());34	let col_name = create_u16_data::<MAX_COLLECTION_NAME_LENGTH>();35	let col_desc = create_u16_data::<MAX_COLLECTION_DESCRIPTION_LENGTH>();36	let token_prefix = create_data::<MAX_TOKEN_PREFIX_LENGTH>();37	<Pallet<T>>::create_collection(38		RawOrigin::Signed(owner).into(),39		col_name,40		col_desc,41		token_prefix,42		mode,43	)?;44	Ok(<pallet_common::CreatedCollectionCount<T>>::get())45}46fn create_nft_collection<T: Config>(owner: T::AccountId) -> Result<CollectionId, DispatchError> {47	create_collection_helper::<T>(owner, CollectionMode::NFT)48}4950benchmarks! {51	create_collection {52		let col_name = create_u16_data::<MAX_COLLECTION_NAME_LENGTH>();53		let col_desc = create_u16_data::<MAX_COLLECTION_DESCRIPTION_LENGTH>();54		let token_prefix = create_data::<MAX_TOKEN_PREFIX_LENGTH>();55		let mode: CollectionMode = CollectionMode::NFT;56		let caller: T::AccountId = account("caller", 0, SEED);57		T::Currency::deposit_creating(&caller, T::CollectionCreationPrice::get());58	}: _(RawOrigin::Signed(caller.clone()), col_name.clone(), col_desc.clone(), token_prefix.clone(), mode)59	verify {60		assert_eq!(<pallet_common::CollectionById<T>>::get(CollectionId(1)).unwrap().owner, caller);61	}6263	destroy_collection {64		let caller: T::AccountId = account("caller", 0, SEED);65		let collection = create_nft_collection::<T>(caller.clone())?;66	}: _(RawOrigin::Signed(caller.clone()), collection)6768	add_to_allow_list {69		let caller: T::AccountId = account("caller", 0, SEED);70		let allowlist_account: T::AccountId = account("admin", 0, SEED);71		let collection = create_nft_collection::<T>(caller.clone())?;72	}: _(RawOrigin::Signed(caller.clone()), collection, T::CrossAccountId::from_sub(allowlist_account))7374	remove_from_allow_list {75		let caller: T::AccountId = account("caller", 0, SEED);76		let allowlist_account: T::AccountId = account("admin", 0, SEED);77		let collection = create_nft_collection::<T>(caller.clone())?;78		<Pallet<T>>::add_to_allow_list(RawOrigin::Signed(caller.clone()).into(), collection, T::CrossAccountId::from_sub(allowlist_account.clone()))?;79	}: _(RawOrigin::Signed(caller.clone()), collection, T::CrossAccountId::from_sub(allowlist_account))8081	set_public_access_mode {82		let caller: T::AccountId = account("caller", 0, SEED);83		let collection = create_nft_collection::<T>(caller.clone())?;84	}: _(RawOrigin::Signed(caller.clone()), collection, AccessMode::AllowList)8586	set_mint_permission {87		let caller: T::AccountId = account("caller", 0, SEED);88		let collection = create_nft_collection::<T>(caller.clone())?;89	}: _(RawOrigin::Signed(caller.clone()), collection, true)9091	change_collection_owner {92		let caller: T::AccountId = account("caller", 0, SEED);93		let collection = create_nft_collection::<T>(caller.clone())?;94		let new_owner: T::AccountId = account("admin", 0, SEED);95	}: _(RawOrigin::Signed(caller.clone()), collection, new_owner)9697	add_collection_admin {98		let caller: T::AccountId = account("caller", 0, SEED);99		let collection = create_nft_collection::<T>(caller.clone())?;100		let new_admin: T::AccountId = account("admin", 0, SEED);101	}: _(RawOrigin::Signed(caller.clone()), collection, T::CrossAccountId::from_sub(new_admin))102103	remove_collection_admin {104		let caller: T::AccountId = account("caller", 0, SEED);105		let collection = create_nft_collection::<T>(caller.clone())?;106		let new_admin: T::AccountId = account("admin", 0, SEED);107		<Pallet<T>>::add_collection_admin(RawOrigin::Signed(caller.clone()).into(), collection, T::CrossAccountId::from_sub(new_admin.clone()))?;108	}: _(RawOrigin::Signed(caller.clone()), collection, T::CrossAccountId::from_sub(new_admin))109110	set_collection_sponsor {111		let caller: T::AccountId = account("caller", 0, SEED);112		let collection = create_nft_collection::<T>(caller.clone())?;113	}: _(RawOrigin::Signed(caller.clone()), collection, caller.clone())114115	confirm_sponsorship {116		let caller: T::AccountId = account("caller", 0, SEED);117		let collection = create_nft_collection::<T>(caller.clone())?;118		<Pallet<T>>::set_collection_sponsor(RawOrigin::Signed(caller.clone()).into(), collection, caller.clone())?;119	}: _(RawOrigin::Signed(caller.clone()), collection)120121	remove_collection_sponsor {122		let caller: T::AccountId = account("caller", 0, SEED);123		let collection = create_nft_collection::<T>(caller.clone())?;124		<Pallet<T>>::set_collection_sponsor(RawOrigin::Signed(caller.clone()).into(), collection, caller.clone())?;125		<Pallet<T>>::confirm_sponsorship(RawOrigin::Signed(caller.clone()).into(), collection)?;126	}: _(RawOrigin::Signed(caller.clone()), collection)127128	set_transfers_enabled_flag {129		let caller: T::AccountId = account("caller", 0, SEED);130		let collection = create_nft_collection::<T>(caller.clone())?;131	}: _(RawOrigin::Signed(caller.clone()), collection, false)132133	set_offchain_schema {134		let b in 0..OFFCHAIN_SCHEMA_LIMIT;135136		let caller: T::AccountId = account("caller", 0, SEED);137		let collection = create_nft_collection::<T>(caller.clone())?;138		let data = create_var_data(b);139	}: set_offchain_schema(RawOrigin::Signed(caller.clone()), collection, data)140141	set_const_on_chain_schema {142		let b in 0..CONST_ON_CHAIN_SCHEMA_LIMIT;143144		let caller: T::AccountId = account("caller", 0, SEED);145		let collection = create_nft_collection::<T>(caller.clone())?;146		let data = create_var_data(b);147	}: set_const_on_chain_schema(RawOrigin::Signed(caller.clone()), collection, data)148149	set_variable_on_chain_schema {150		let b in 0..VARIABLE_ON_CHAIN_SCHEMA_LIMIT;151152		let caller: T::AccountId = account("caller", 0, SEED);153		let collection = create_nft_collection::<T>(caller.clone())?;154		let data = create_var_data(b);155	}: set_variable_on_chain_schema(RawOrigin::Signed(caller.clone()), collection, data)156157	set_schema_version {158		let caller: T::AccountId = account("caller", 0, SEED);159		let collection = create_nft_collection::<T>(caller.clone())?;160	}: set_schema_version(RawOrigin::Signed(caller.clone()), collection, SchemaVersion::Unique)161162	set_collection_limits{163		let caller: T::AccountId = account("caller", 0, SEED);164		let collection = create_nft_collection::<T>(caller.clone())?;165166		let cl = CollectionLimits {167			account_token_ownership_limit: Some(0),168			sponsored_data_size: Some(0),169			token_limit: Some(1),170			sponsor_transfer_timeout: Some(0),171			sponsor_approve_timeout: None,172			owner_can_destroy: Some(true),173			owner_can_transfer: Some(true),174			sponsored_data_rate_limit: None,175			transfers_enabled: Some(true),176			nesting_rule: None,177		};178	}: set_collection_limits(RawOrigin::Signed(caller.clone()), collection, cl)179180	set_meta_update_permission_flag {181		let caller: T::AccountId = account("caller", 0, SEED);182		let collection = create_nft_collection::<T>(caller.clone())?;183	}: _(RawOrigin::Signed(caller.clone()), collection, MetaUpdatePermission::Admin)184}
modifiedpallets/unique/src/lib.rsdiffbeforeafterboth
--- a/pallets/unique/src/lib.rs
+++ b/pallets/unique/src/lib.rs
@@ -35,7 +35,7 @@
 use frame_system::{self as system, ensure_signed};
 use sp_runtime::{sp_std::prelude::Vec};
 use up_data_structs::{
-	VARIABLE_ON_CHAIN_SCHEMA_LIMIT, CONST_ON_CHAIN_SCHEMA_LIMIT, OFFCHAIN_SCHEMA_LIMIT,
+	CONST_ON_CHAIN_SCHEMA_LIMIT, OFFCHAIN_SCHEMA_LIMIT,
 	MAX_COLLECTION_NAME_LENGTH, MAX_COLLECTION_DESCRIPTION_LENGTH, MAX_TOKEN_PREFIX_LENGTH,
 	AccessMode, CreateItemData, CollectionLimits, CollectionId, CollectionMode, TokenId,
 	SchemaVersion, SponsorshipState, MetaUpdatePermission, CreateCollectionData, CustomDataLimit,
@@ -191,13 +191,6 @@
 		///
 		/// * collection_id: Globally unique collection identifier.
 		SchemaVersionSet(CollectionId),
-
-		/// Variable on chain schema was set
-		///
-		/// # Arguments
-		///
-		/// * collection_id: Globally unique collection identifier.
-		VariableOnChainSchemaSet(CollectionId),
 	}
 }
 
@@ -1083,38 +1076,6 @@
 			<PalletCommon<T>>::set_field(&collection, &sender, CollectionField::ConstOnChainSchema, schema.into_inner())?;
 
 			<Pallet<T>>::deposit_event(Event::<T>::ConstOnChainSchemaSet(
-				collection_id
-			));
-			Ok(())
-		}
-
-		/// Set variable on-chain data schema.
-		///
-		/// # Permissions
-		///
-		/// * Collection Owner
-		/// * Collection Admin
-		///
-		/// # Arguments
-		///
-		/// * collection_id.
-		///
-		/// * schema: String representing the variable on-chain data schema.
-		#[weight = <SelfWeightOf<T>>::set_const_on_chain_schema(schema.len() as u32)]
-		#[transactional]
-		pub fn set_variable_on_chain_schema (
-			origin,
-			collection_id: CollectionId,
-			schema: BoundedVec<u8, ConstU32<VARIABLE_ON_CHAIN_SCHEMA_LIMIT>>
-		) -> DispatchResult {
-			let sender = T::CrossAccountId::from_sub(ensure_signed(origin)?);
-			let collection = <CollectionHandle<T>>::try_get(collection_id)?;
-
-			// =========
-
-			<PalletCommon<T>>::set_field(&collection, &sender, CollectionField::VariableOnChainSchema, schema.into_inner())?;
-
-			<Pallet<T>>::deposit_event(Event::<T>::VariableOnChainSchemaSet(
 				collection_id
 			));
 			Ok(())
modifiedpallets/unique/src/weights.rsdiffbeforeafterboth
--- a/pallets/unique/src/weights.rs
+++ b/pallets/unique/src/weights.rs
@@ -47,7 +47,6 @@
 	fn set_transfers_enabled_flag() -> Weight;
 	fn set_offchain_schema(b: u32, ) -> Weight;
 	fn set_const_on_chain_schema(b: u32, ) -> Weight;
-	fn set_variable_on_chain_schema(b: u32, ) -> Weight;
 	fn set_schema_version() -> Weight;
 	fn set_collection_limits() -> Weight;
 	fn set_meta_update_permission_flag() -> Weight;
@@ -156,12 +155,6 @@
 	// Storage: Common CollectionById (r:1 w:1)
 	fn set_const_on_chain_schema(_b: u32, ) -> Weight {
 		(14_984_000 as Weight)
-			.saturating_add(T::DbWeight::get().reads(1 as Weight))
-			.saturating_add(T::DbWeight::get().writes(1 as Weight))
-	}
-	// Storage: Common CollectionById (r:1 w:1)
-	fn set_variable_on_chain_schema(_b: u32, ) -> Weight {
-		(15_196_000 as Weight)
 			.saturating_add(T::DbWeight::get().reads(1 as Weight))
 			.saturating_add(T::DbWeight::get().writes(1 as Weight))
 	}
@@ -287,12 +280,6 @@
 	// Storage: Common CollectionById (r:1 w:1)
 	fn set_const_on_chain_schema(_b: u32, ) -> Weight {
 		(14_984_000 as Weight)
-			.saturating_add(RocksDbWeight::get().reads(1 as Weight))
-			.saturating_add(RocksDbWeight::get().writes(1 as Weight))
-	}
-	// Storage: Common CollectionById (r:1 w:1)
-	fn set_variable_on_chain_schema(_b: u32, ) -> Weight {
-		(15_196_000 as Weight)
 			.saturating_add(RocksDbWeight::get().reads(1 as Weight))
 			.saturating_add(RocksDbWeight::get().writes(1 as Weight))
 	}
modifiedprimitives/data-structs/src/lib.rsdiffbeforeafterboth
--- a/primitives/data-structs/src/lib.rs
+++ b/primitives/data-structs/src/lib.rs
@@ -76,11 +76,9 @@
 
 // Schema limits
 pub const OFFCHAIN_SCHEMA_LIMIT: u32 = 8192;
-pub const VARIABLE_ON_CHAIN_SCHEMA_LIMIT: u32 = 8192;
 pub const CONST_ON_CHAIN_SCHEMA_LIMIT: u32 = 32768;
 
 pub const COLLECTION_FIELD_LIMIT: u32 = CONST_ON_CHAIN_SCHEMA_LIMIT;
-// u32::max is not const: OFFCHAIN_SCHEMA_LIMIT.max(VARIABLE_ON_CHAIN_SCHEMA_LIMIT).max(CONST_ON_CHAIN_SCHEMA_LIMIT);
 
 pub const MAX_COLLECTION_NAME_LENGTH: u32 = 64;
 pub const MAX_COLLECTION_DESCRIPTION_LENGTH: u32 = 256;
@@ -303,8 +301,6 @@
 	#[version(2.., upper(limits.into()))]
 	pub limits: CollectionLimitsVersion2,
 
-	#[version(..2)]
-	pub variable_on_chain_schema: BoundedVec<u8, ConstU32<VARIABLE_ON_CHAIN_SCHEMA_LIMIT>>,
 	#[version(..2)]
 	pub const_on_chain_schema: BoundedVec<u8, ConstU32<CONST_ON_CHAIN_SCHEMA_LIMIT>>,
 
@@ -326,7 +322,6 @@
 	pub schema_version: SchemaVersion,
 	pub sponsorship: SponsorshipState<AccountId>,
 	pub limits: CollectionLimits,
-	pub variable_on_chain_schema: Vec<u8>,
 	pub const_on_chain_schema: Vec<u8>,
 	pub meta_update_permission: MetaUpdatePermission,
 	pub token_property_permissions: Vec<PropertyKeyPermission>,
@@ -336,7 +331,6 @@
 #[derive(Encode, Decode, Clone, PartialEq, TypeInfo, MaxEncodedLen)]
 #[cfg_attr(feature = "serde1", derive(Serialize, Deserialize))]
 pub enum CollectionField {
-	VariableOnChainSchema,
 	ConstOnChainSchema,
 	OffchainSchema,
 }
@@ -354,7 +348,6 @@
 	pub schema_version: Option<SchemaVersion>,
 	pub pending_sponsor: Option<AccountId>,
 	pub limits: Option<CollectionLimits>,
-	pub variable_on_chain_schema: BoundedVec<u8, ConstU32<VARIABLE_ON_CHAIN_SCHEMA_LIMIT>>,
 	pub const_on_chain_schema: BoundedVec<u8, ConstU32<CONST_ON_CHAIN_SCHEMA_LIMIT>>,
 	pub meta_update_permission: Option<MetaUpdatePermission>,
 	pub token_property_permissions: CollectionPropertiesPermissionsVec,
modifiedruntime/tests/src/tests.rsdiffbeforeafterboth
--- a/runtime/tests/src/tests.rs
+++ b/runtime/tests/src/tests.rs
@@ -2423,45 +2423,6 @@
 			)),
 			b"test const on chain schema".to_vec()
 		);
-		assert_eq!(
-			<pallet_common::CollectionData<Test>>::get((
-				collection_id,
-				CollectionField::VariableOnChainSchema
-			)),
-			b"".to_vec()
-		);
-	});
-}
-
-#[test]
-fn set_variable_on_chain_schema() {
-	new_test_ext().execute_with(|| {
-		let collection_id = create_test_collection(&CollectionMode::NFT, CollectionId(1));
-
-		let origin1 = Origin::signed(1);
-		assert_ok!(Unique::set_variable_on_chain_schema(
-			origin1,
-			collection_id,
-			b"test variable on chain schema"
-				.to_vec()
-				.try_into()
-				.unwrap()
-		));
-
-		assert_eq!(
-			<pallet_common::CollectionData<Test>>::get((
-				collection_id,
-				CollectionField::ConstOnChainSchema
-			)),
-			b"".to_vec()
-		);
-		assert_eq!(
-			<pallet_common::CollectionData<Test>>::get((
-				collection_id,
-				CollectionField::VariableOnChainSchema
-			)),
-			b"test variable on chain schema".to_vec()
-		);
 	});
 }
 
modifiedtests/src/createCollection.test.tsdiffbeforeafterboth
--- a/tests/src/createCollection.test.ts
+++ b/tests/src/createCollection.test.ts
@@ -40,20 +40,20 @@
   });
 
   it('create new collection with properties #1', async () => {
-    await createCollectionWithPropsExpectSuccess({name: 'A', description: 'B', tokenPrefix: 'C', mode: {type: 'NFT'}, 
-      properties: [{key: 'key1', value: 'val1'}], 
+    await createCollectionWithPropsExpectSuccess({name: 'A', description: 'B', tokenPrefix: 'C', mode: {type: 'NFT'},
+      properties: [{key: 'key1', value: 'val1'}],
       propPerm:   [{key: 'key1', tokenOwner: true, mutable: false, collectionAdmin: true}]});
   });
 
   it('create new collection with properties #2', async () => {
-    await createCollectionWithPropsExpectSuccess({name: 'A', description: 'B', tokenPrefix: 'C', mode: {type: 'NFT'}, 
-      properties: [{key: 'key1', value: 'val1'}], 
+    await createCollectionWithPropsExpectSuccess({name: 'A', description: 'B', tokenPrefix: 'C', mode: {type: 'NFT'},
+      properties: [{key: 'key1', value: 'val1'}],
       propPerm:   [{key: 'key1', tokenOwner: false, mutable: true, collectionAdmin: false}]});
   });
 
   it('create new collection with properties #3', async () => {
-    await createCollectionWithPropsExpectSuccess({name: 'A', description: 'B', tokenPrefix: 'C', mode: {type: 'NFT'}, 
-      properties: [{key: 'key1', value: 'val1'}], 
+    await createCollectionWithPropsExpectSuccess({name: 'A', description: 'B', tokenPrefix: 'C', mode: {type: 'NFT'},
+      properties: [{key: 'key1', value: 'val1'}],
       propPerm:   [{key: 'key1', tokenOwner: true, mutable: false, collectionAdmin: false}]});
   });
 
@@ -73,7 +73,6 @@
         limits: {
           accountTokenOwnershipLimit: 3,
         },
-        variableOnChainSchema: '0x222222',
         constOnChainSchema: '0x333333',
         metaUpdatePermission: 'Admin',
       });
@@ -91,7 +90,6 @@
       expect(collection.schemaVersion.isUnique).to.be.true;
       expect(collection.sponsorship.asUnconfirmed.toString()).to.equal(bob.address);
       expect(collection.limits.accountTokenOwnershipLimit.unwrap().toNumber()).to.equal(3);
-      expect(collection.variableOnChainSchema.toString()).to.equal('0x222222');
       expect(collection.constOnChainSchema.toString()).to.equal('0x333333');
       expect(collection.metaUpdatePermission.isAdmin).to.be.true;
     });
modifiedtests/src/nesting/migration-check.test.tsdiffbeforeafterboth
--- a/tests/src/nesting/migration-check.test.ts
+++ b/tests/src/nesting/migration-check.test.ts
@@ -11,7 +11,7 @@
 // todo skip
 describe('Migration testing for pallet-common', () => {
   let alice: IKeyringPair;
-  
+
   before(async() => {
     await usingApi(async () => {
       alice = privateKey('//Alice');
@@ -36,7 +36,6 @@
         limits: {
           accountTokenOwnershipLimit: 3,
         },
-        variableOnChainSchema: '0x222222',
         constOnChainSchema: '0x333333',
         metaUpdatePermission: 'Admin',
       });
@@ -78,13 +77,11 @@
 
     await usingApi(async api => {
       const collectionNew = (await api.query.common.collectionById(collectionId)).toJSON() as any;
-      
+
       // Make sure the extra fields are what they should be
-      const variableOnChainSchema = await api.query.common.collectionData(collectionId, 'VariableOnChainSchema');
       const constOnChainSchema = await api.query.common.collectionData(collectionId, 'ConstOnChainSchema');
       const offchainSchema = await api.query.common.collectionData(collectionId, 'OffchainSchema');
 
-      expect(variableOnChainSchema.toHex()).to.be.deep.equal((collectionOld.variableOnChainSchema));
       expect(constOnChainSchema.toHex()).to.be.deep.equal(collectionOld.constOnChainSchema);
       expect(offchainSchema.toHex()).to.be.deep.equal(collectionOld.offchainSchema);
       expect(collectionNew).to.have.nested.property('limits.nestingRule');
@@ -93,10 +90,8 @@
       delete collectionNew.limits.nestingRule;
       delete collectionOld.constOnChainSchema;
       delete collectionOld.offchainSchema;
-      delete collectionOld.variableOnChainSchema;
 
       expect(collectionNew).to.be.deep.equal(collectionOld);
     });
   });
 });
-  
\ No newline at end of file
modifiedtests/src/setChainLimits.test.tsdiffbeforeafterboth
--- a/tests/src/setChainLimits.test.ts
+++ b/tests/src/setChainLimits.test.ts
@@ -44,7 +44,6 @@
         fungibleSponsorTransferTimeout: 1,
         refungibleSponsorTransferTimeout: 1,
         offchainSchemaLimit: 1,
-        variableOnChainSchemaLimit: 1,
         constOnChainSchemaLimit: 1,
       };
     });
deletedtests/src/setVariableOnChainSchema.test.tsdiffbeforeafterboth
--- a/tests/src/setVariableOnChainSchema.test.ts
+++ /dev/null
@@ -1,136 +0,0 @@
-// Copyright 2019-2022 Unique Network (Gibraltar) Ltd.
-// This file is part of Unique Network.
-
-// Unique Network is free software: you can redistribute it and/or modify
-// it under the terms of the GNU General Public License as published by
-// the Free Software Foundation, either version 3 of the License, or
-// (at your option) any later version.
-
-// Unique Network is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-// GNU General Public License for more details.
-
-// You should have received a copy of the GNU General Public License
-// along with Unique Network. If not, see <http://www.gnu.org/licenses/>.
-
-import {Keyring} from '@polkadot/api';
-import {IKeyringPair} from '@polkadot/types/types';
-import chai from 'chai';
-import chaiAsPromised from 'chai-as-promised';
-import {default as usingApi, submitTransactionAsync, submitTransactionExpectFailAsync} from './substrate/substrate-api';
-import {
-  createCollectionExpectSuccess,
-  destroyCollectionExpectSuccess,
-  addCollectionAdminExpectSuccess,
-  queryCollectionExpectSuccess,
-  getCreatedCollectionCount,
-} from './util/helpers';
-
-chai.use(chaiAsPromised);
-const expect = chai.expect;
-
-let alice: IKeyringPair;
-let bob: IKeyringPair;
-let schema: any;
-let largeSchema: any;
-
-before(async () => {
-  await usingApi(async () => {
-    const keyring = new Keyring({type: 'sr25519'});
-    alice = keyring.addFromUri('//Alice');
-    bob = keyring.addFromUri('//Bob');
-    schema = '0x31';
-    largeSchema = new Array(8 * 1024 + 10).fill(0xff);
-
-  });
-});
-describe('Integration Test ext. setVariableOnChainSchema()', () => {
-
-  it('Run extrinsic with parameters of the collection id, set the scheme', async () => {
-    await usingApi(async (api) => {
-      const collectionId = await createCollectionExpectSuccess();
-      const collection = await queryCollectionExpectSuccess(api, collectionId);
-      expect(collection.owner.toString()).to.be.eq(alice.address);
-      const setSchema = api.tx.unique.setVariableOnChainSchema(collectionId, schema);
-      await submitTransactionAsync(alice, setSchema);
-    });
-  });
-
-  it('Checking collection data using the setVariableOnChainSchema parameter', async () => {
-    await usingApi(async (api) => {
-      const collectionId = await createCollectionExpectSuccess();
-      const setSchema = api.tx.unique.setVariableOnChainSchema(collectionId, schema);
-      await submitTransactionAsync(alice, setSchema);
-      const collection = await queryCollectionExpectSuccess(api, collectionId);
-      expect(collection.variableOnChainSchema.toString()).to.be.eq(schema);
-
-    });
-  });
-});
-
-describe('Integration Test ext. collection admin setVariableOnChainSchema()', () => {
-
-  it('Run extrinsic with parameters of the collection id, set the scheme', async () => {
-    await usingApi(async (api) => {
-      const collectionId = await createCollectionExpectSuccess();
-      const collection = await queryCollectionExpectSuccess(api, collectionId);
-      expect(collection.owner.toString()).to.be.eq(alice.address);
-      await addCollectionAdminExpectSuccess(alice, collectionId, bob.address);
-      const setSchema = api.tx.unique.setVariableOnChainSchema(collectionId, schema);
-      await submitTransactionAsync(bob, setSchema);
-    });
-  });
-
-  it('Checking collection data using the setVariableOnChainSchema parameter', async () => {
-    await usingApi(async (api) => {
-      const collectionId = await createCollectionExpectSuccess();
-      await addCollectionAdminExpectSuccess(alice, collectionId, bob.address);
-      const setSchema = api.tx.unique.setVariableOnChainSchema(collectionId, schema);
-      await submitTransactionAsync(bob, setSchema);
-      const collection = await queryCollectionExpectSuccess(api, collectionId);
-      expect(collection.variableOnChainSchema.toString()).to.be.eq(schema);
-
-    });
-  });
-});
-
-describe('Negative Integration Test ext. setVariableOnChainSchema()', () => {
-
-  it('Set a non-existent collection', async () => {
-    await usingApi(async (api) => {
-      // tslint:disable-next-line: radix
-      const collectionId = await getCreatedCollectionCount(api) + 1;
-      const setSchema = api.tx.unique.setVariableOnChainSchema(collectionId, schema);
-      await expect(submitTransactionExpectFailAsync(alice, setSchema)).to.be.rejected;
-    });
-  });
-
-  it('Set a previously deleted collection', async () => {
-    await usingApi(async (api) => {
-      const collectionId = await createCollectionExpectSuccess();
-      await destroyCollectionExpectSuccess(collectionId);
-      const setSchema = api.tx.unique.setVariableOnChainSchema(collectionId, schema);
-      await expect(submitTransactionExpectFailAsync(alice, setSchema)).to.be.rejected;
-    });
-  });
-
-  it('Set invalid data in schema (size too large:> 8kB)', async () => {
-    await usingApi(async (api) => {
-      const collectionId = await createCollectionExpectSuccess();
-      const setSchema = api.tx.unique.setVariableOnChainSchema(collectionId, largeSchema);
-      await expect(submitTransactionExpectFailAsync(alice, setSchema)).to.be.rejected;
-    });
-  });
-
-  it('Execute method not on behalf of the collection owner', async () => {
-    await usingApi(async (api) => {
-      const collectionId = await createCollectionExpectSuccess();
-      const collection = await queryCollectionExpectSuccess(api, collectionId);
-      expect(collection.owner.toString()).to.be.eq(alice.address);
-      const setSchema = api.tx.unique.setVariableOnChainSchema(collectionId, schema);
-      await expect(submitTransactionExpectFailAsync(bob, setSchema)).to.be.rejected;
-    });
-  });
-
-});
modifiedtests/src/util/helpers.tsdiffbeforeafterboth
--- a/tests/src/util/helpers.ts
+++ b/tests/src/util/helpers.ts
@@ -136,7 +136,6 @@
   fungibleSponsorTransferTimeout: number;
   refungibleSponsorTransferTimeout: number;
   offchainSchemaLimit: number;
-  variableOnChainSchemaLimit: number;
   constOnChainSchemaLimit: number;
 }