git.delta.rocks / unique-network / refs/commits / 05f22b5514d1

difftreelog

refactor review unwraps

Yaroslav Bolyukin2021-03-12parent: #572dabd.patch.diff
in: master

1 file changed

modifiedpallets/nft/src/lib.rsdiffbeforeafterboth
423 /// Schema data size limit bound exceeded423 /// Schema data size limit bound exceeded
424 SchemaDataLimitExceeded,424 SchemaDataLimitExceeded,
425 /// Maximum refungibility exceeded425 /// Maximum refungibility exceeded
426 WrongRefungiblePieces426 WrongRefungiblePieces,
427 /// createRefungible should be called with one owner
428 BadCreateRefungibleCall,
427 }429 }
428}430}
429431
1301 }1303 }
13021304
1303 // Reduce approval by transferred amount or remove if remaining approval drops to 01305 // Reduce approval by transferred amount or remove if remaining approval drops to 0
1304 if approval.checked_sub(value).unwrap_or(0) > 0 {1306 if approval.saturating_sub(value) > 0 {
1305 <Allowances<T>>::insert(collection_id, (item_id, &from, &sender), approval - value);1307 <Allowances<T>>::insert(collection_id, (item_id, &from, &sender), approval - value);
1306 }1308 }
1307 else {1309 else {
1863 .ok_or(Error::<T>::NumOverflow)?;1865 .ok_or(Error::<T>::NumOverflow)?;
1864 let itemcopy = item.clone();1866 let itemcopy = item.clone();
18651867
1868 ensure!(
1869 item.owner.len() == 1,
1870 Error::<T>::BadCreateRefungibleCall,
1871 );
1866 let value = item.owner.first().unwrap().fraction;1872 let item_owner = item.owner.first().expect("only one owner is defined");
1873
1874 let value = item_owner.fraction;
1867 let owner = item.owner.first().unwrap().owner.clone();1875 let owner = item_owner.owner.clone();
18681876
1869 Self::add_token_index(collection_id, current_index, &owner)?;1877 Self::add_token_index(collection_id, current_index, &owner)?;
18701878
1915 let rft_balance = token1923 let rft_balance = token
1916 .owner1924 .owner
1917 .iter()1925 .iter()
1918 .filter(|&i| i.owner == *owner)1926 .find(|&i| i.owner == *owner)
1919 .next()1927 .ok_or(Error::<T>::TokenNotFound)?;
1920 .unwrap();
1921 Self::remove_token_index(collection_id, item_id, owner)?;1928 Self::remove_token_index(collection_id, item_id, owner)?;
19221929
1923 // update balance1930 // update balance
1931 .owner1938 .owner
1932 .iter()1939 .iter()
1933 .position(|i| i.owner == *owner)1940 .position(|i| i.owner == *owner)
1934 .unwrap();1941 .expect("owned item is exists");
1935 token.owner.remove(index);1942 token.owner.remove(index);
1936 let owner_count = token.owner.len();1943 let owner_count = token.owner.len();
19371944
2158 .iter()2165 .iter()
2159 .filter(|i| i.owner == owner)2166 .filter(|i| i.owner == owner)
2160 .next()2167 .next()
2161 .ok_or(Error::<T>::NumOverflow)?;2168 .ok_or(Error::<T>::TokenNotFound)?;
2162 let amount = item.fraction;2169 let amount = item.fraction;
21632170
2164 ensure!(amount >= value, Error::<T>::TokenValueTooLow);2171 ensure!(amount >= value, Error::<T>::TokenValueTooLow);
2186 .owner2193 .owner
2187 .iter_mut()2194 .iter_mut()
2188 .find(|i| i.owner == owner)2195 .find(|i| i.owner == owner)
2189 .unwrap()2196 .expect("old owner does present in refungible")
2190 .owner = new_owner.clone();2197 .owner = new_owner.clone();
2191 <ReFungibleItemList<T>>::insert(collection_id, item_id, new_full_item);2198 <ReFungibleItemList<T>>::insert(collection_id, item_id, new_full_item);
21922199
2198 .owner2205 .owner
2199 .iter_mut()2206 .iter_mut()
2200 .find(|i| i.owner == owner)2207 .find(|i| i.owner == owner)
2201 .unwrap()2208 .expect("old owner does present in refungible")
2202 .fraction -= value;2209 .fraction -= value;
22032210
2204 // separate amount2211 // separate amount
2208 .owner2215 .owner
2209 .iter_mut()2216 .iter_mut()
2210 .find(|i| i.owner == new_owner)2217 .find(|i| i.owner == new_owner)
2211 .unwrap()2218 .expect("new owner has account")
2212 .fraction += value;2219 .fraction += value;
2213 } else {2220 } else {
2214 // new owner do not have account2221 // new owner do not have account