git.delta.rocks / unique-network / refs/commits / 16c94288be87

difftreelog

refactor remove unnecessary contains_key checks for Allowances

Yaroslav Bolyukin2021-03-23parent: #18bd1f5.patch.diff
in: master

1 file changed

modifiedpallets/nft/src/lib.rsdiffbeforeafterboth
1295 Self::check_white_list(&target_collection, &spender)?;1295 Self::check_white_list(&target_collection, &spender)?;
1296 }1296 }
12971297
1298 let allowance_exists = <Allowances<T>>::contains_key(collection_id, (item_id, &sender, &spender));1298 let allowance: u128 = amount
1299 let mut allowance: u128 = amount;
1300 if allowance_exists {
1301 allowance += <Allowances<T>>::get(collection_id, (item_id, &sender, &spender));1299 .checked_add(<Allowances<T>>::get(collection_id, (item_id, &sender, &spender)))
1302 }1300 .ok_or(Error::<T>::NumOverflow)?;
1303 if let Some(limit) = allowance_limit {1301 if let Some(limit) = allowance_limit {
1304 ensure!(limit >= allowance, Error::<T>::TokenValueTooLow);1302 ensure!(limit >= allowance, Error::<T>::TokenValueTooLow);
1305 }1303 }
1335 let sender = ensure_signed(origin)?;1333 let sender = ensure_signed(origin)?;
1336 let target_collection = Self::get_collection(collection_id)?;1334 let target_collection = Self::get_collection(collection_id)?;
1337
1338 let mut appoved_transfer = false;
13391335
1340 // Check approval1336 // Check approval
1341 let mut approval: u128 = 0;1337 let approval: u128 = <Allowances<T>>::get(collection_id, (item_id, &from, &sender));
1342 if <Allowances<T>>::contains_key(collection_id, (item_id, &from, &sender)) {
1343 approval = <Allowances<T>>::get(collection_id, (item_id, &from, &sender));
1344 ensure!(approval >= value, Error::<T>::TokenValueNotEnough);
1345 appoved_transfer = true;
1346 }
13471338
1348 // Limits check1339 // Limits check
1349 Self::is_correct_transfer(&target_collection, &recipient)?;1340 Self::is_correct_transfer(&target_collection, &recipient)?;
13501341
1351 // Transfer permissions check 1342 // Transfer permissions check
1352 ensure!(1343 ensure!(
1353 appoved_transfer || 1344 approval >= value ||
1354 (1345 (
1355 target_collection.limits.owner_can_transfer &&1346 target_collection.limits.owner_can_transfer &&
1356 Self::is_owner_or_admin_permissions(&target_collection, sender.clone())1347 Self::is_owner_or_admin_permissions(&target_collection, sender.clone())