difftreelog
Merge pull request #133 from usetech-llc/feature/NFTPAR-196_sponsor_setVariableMetadata
in: master
Feature/nftpar 196 sponsor set variable metadata
3 files changed
pallets/nft/src/lib.rsdiffbeforeafterboth--- a/pallets/nft/src/lib.rs
+++ b/pallets/nft/src/lib.rs
@@ -174,7 +174,7 @@
pub mint_mode: bool,
pub offchain_schema: Vec<u8>,
pub schema_version: SchemaVersion,
- pub sponsorship: SponsorshipState<AccountId>,
+ pub sponsorship: SponsorshipState<T::AccountId>,
pub limits: CollectionLimits<T::BlockNumber>, // Collection private restrictions
pub variable_on_chain_schema: Vec<u8>, //
pub const_on_chain_schema: Vec<u8>, //
@@ -1853,8 +1853,6 @@
}
fn create_item_no_validation(collection: &CollectionHandle<T>, owner: T::AccountId, data: CreateItemData) -> DispatchResult {
- let collection_id = collection.id;
-
match data
{
CreateItemData::NFT(data) => {
@@ -2622,10 +2620,7 @@
// sponsor timeout
let block_number = <system::Module<T>>::block_number() as T::BlockNumber;
- let collection = <Collection<T>>::get(collection_id);
-
let limit = collection.limits.sponsor_transfer_timeout;
- let mut sponsored = true;
if <CreateItemBasket<T>>::contains_key((collection_id, &who)) {
let last_tx_block = <CreateItemBasket<T>>::get((collection_id, &who));
let limit_time = last_tx_block + limit.into();
@@ -2636,9 +2631,7 @@
<CreateItemBasket<T>>::insert((collection_id, who.clone()), block_number);
// check free create limit
- if (collection.limits.sponsored_data_size >= (_properties.len() as u32)) &&
- (sponsored)
- {
+ if collection.limits.sponsored_data_size >= (_properties.len() as u32) {
collection.sponsorship.sponsor()
.cloned()
} else {
@@ -2747,7 +2740,7 @@
let collection = <CollectionById<T>>::get(collection_id)?;
if
- collection.sponsor_confirmed &&
+ collection.sponsorship.confirmed() &&
// Can't sponsor fungible collection, this tx will be rejected
// as invalid
!matches!(collection.mode, CollectionMode::Fungible(_)) &&
@@ -2769,7 +2762,7 @@
if !sponsor_metadata_changes {
None
} else {
- Some(collection.sponsor)
+ collection.sponsorship.sponsor().cloned()
}
}
tests/src/rpc.load.tsdiffbeforeafterboth110 });110 });111 });111 });112112113 it.only('Smart Contract RPC Load Test', async () => {113 it('Smart Contract RPC Load Test', async () => {114 await usingApi(async api => {114 await usingApi(async api => {115115116 // Deploy smart contract116 // Deploy smart contracttests/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);