git.delta.rocks / unique-network / refs/commits / e4dd4c0eeff5

difftreelog

Merge pull request #133 from usetech-llc/feature/NFTPAR-196_sponsor_setVariableMetadata

Greg Zaitsev2021-03-22parents: #e72e7a9 #ff8c59d.patch.diff
in: master
Feature/nftpar 196 sponsor set variable metadata

3 files changed

modifiedpallets/nft/src/lib.rsdiffbeforeafterboth
174 pub mint_mode: bool,174 pub mint_mode: bool,
175 pub offchain_schema: Vec<u8>,175 pub offchain_schema: Vec<u8>,
176 pub schema_version: SchemaVersion,176 pub schema_version: SchemaVersion,
177 pub sponsorship: SponsorshipState<AccountId>,177 pub sponsorship: SponsorshipState<T::AccountId>,
178 pub limits: CollectionLimits<T::BlockNumber>, // Collection private restrictions 178 pub limits: CollectionLimits<T::BlockNumber>, // Collection private restrictions
179 pub variable_on_chain_schema: Vec<u8>, //179 pub variable_on_chain_schema: Vec<u8>, //
180 pub const_on_chain_schema: Vec<u8>, //180 pub const_on_chain_schema: Vec<u8>, //
1853 }1853 }
18541854
1855 fn create_item_no_validation(collection: &CollectionHandle<T>, owner: T::AccountId, data: CreateItemData) -> DispatchResult {1855 fn create_item_no_validation(collection: &CollectionHandle<T>, owner: T::AccountId, data: CreateItemData) -> DispatchResult {
1856 let collection_id = collection.id;
1857
1858 match data1856 match data
1859 {1857 {
2622 // sponsor timeout2620 // sponsor timeout
2623 let block_number = <system::Module<T>>::block_number() as T::BlockNumber;2621 let block_number = <system::Module<T>>::block_number() as T::BlockNumber;
2624
2625 let collection = <Collection<T>>::get(collection_id);
26262622
2627 let limit = collection.limits.sponsor_transfer_timeout;2623 let limit = collection.limits.sponsor_transfer_timeout;
2628 let mut sponsored = true;
2629 if <CreateItemBasket<T>>::contains_key((collection_id, &who)) {2624 if <CreateItemBasket<T>>::contains_key((collection_id, &who)) {
2630 let last_tx_block = <CreateItemBasket<T>>::get((collection_id, &who));2625 let last_tx_block = <CreateItemBasket<T>>::get((collection_id, &who));
2631 let limit_time = last_tx_block + limit.into();2626 let limit_time = last_tx_block + limit.into();
2636 <CreateItemBasket<T>>::insert((collection_id, who.clone()), block_number);2631 <CreateItemBasket<T>>::insert((collection_id, who.clone()), block_number);
26372632
2638 // check free create limit2633 // check free create limit
2639 if (collection.limits.sponsored_data_size >= (_properties.len() as u32)) &&2634 if collection.limits.sponsored_data_size >= (_properties.len() as u32) {
2640 (sponsored)
2641 {
2642 collection.sponsorship.sponsor()2635 collection.sponsorship.sponsor()
2643 .cloned()2636 .cloned()
2747 let collection = <CollectionById<T>>::get(collection_id)?;2740 let collection = <CollectionById<T>>::get(collection_id)?;
27482741
2749 if2742 if
2750 collection.sponsor_confirmed &&2743 collection.sponsorship.confirmed() &&
2751 // Can't sponsor fungible collection, this tx will be rejected2744 // Can't sponsor fungible collection, this tx will be rejected
2752 // as invalid2745 // as invalid
2753 !matches!(collection.mode, CollectionMode::Fungible(_)) &&2746 !matches!(collection.mode, CollectionMode::Fungible(_)) &&
2769 if !sponsor_metadata_changes {2762 if !sponsor_metadata_changes {
2770 None2763 None
2771 } else {2764 } else {
2772 Some(collection.sponsor)2765 collection.sponsorship.sponsor().cloned()
2773 }2766 }
2774 }2767 }
27752768
modifiedtests/src/rpc.load.tsdiffbeforeafterboth
--- a/tests/src/rpc.load.ts
+++ b/tests/src/rpc.load.ts
@@ -110,7 +110,7 @@
     });
   });
 
-  it.only('Smart Contract RPC Load Test', async () => {
+  it('Smart Contract RPC Load Test', async () => {
     await usingApi(async api => {
 
       // Deploy smart contract
modifiedtests/src/setVariableMetadataSponsoringRateLimit.test.tsdiffbeforeafterboth
--- a/tests/src/setVariableMetadataSponsoringRateLimit.test.ts
+++ b/tests/src/setVariableMetadataSponsoringRateLimit.test.ts
@@ -68,7 +68,7 @@
     await setVariableMetaDataExpectFailure(userWithNoBalance, collectionId, itemId, [1, 2]);
   });
 
-  it.only('Default value of rate limit does not sponsor setting variable metadata', async () => {
+  it('Default value of rate limit does not sponsor setting variable metadata', async () => {
     const collectionId = await createCollectionExpectSuccess();
     await setCollectionSponsorExpectSuccess(collectionId, alice.address);
     await confirmSponsorshipExpectSuccess(collectionId);