difftreelog
fix force admins to use transfer_from/burn_from
in: master
1 file changed
pallets/nonfungible/src/lib.rsdiffbeforeafterboth381 <TokenData<T>>::get((collection.id, token)).ok_or(<CommonError<T>>::TokenNotFound)?;381 <TokenData<T>>::get((collection.id, token)).ok_or(<CommonError<T>>::TokenNotFound)?;382 ensure!(382 ensure!(383 &token_data.owner == sender383 &token_data.owner == sender,384 || (collection.limits.owner_can_transfer() && collection.is_owner_or_admin(sender)),385 <CommonError<T>>::NoPermission384 <CommonError<T>>::NoPermission386 );385 );387386665664666 let token_data =665 let token_data =667 <TokenData<T>>::get((collection.id, token)).ok_or(<CommonError<T>>::TokenNotFound)?;666 <TokenData<T>>::get((collection.id, token)).ok_or(<CommonError<T>>::TokenNotFound)?;668 // TODO: require sender to be token, owner, require admins to go through transfer_from669 ensure!(667 ensure!(670 &token_data.owner == from668 &token_data.owner == from,671 || (collection.limits.owner_can_transfer() && collection.is_owner_or_admin(from)),672 <CommonError<T>>::NoPermission669 <CommonError<T>>::NoPermission673 );670 );674671977 collection.check_allowlist(spender)?;974 collection.check_allowlist(spender)?;978 }975 }976977 if collection.limits.owner_can_transfer() && collection.is_owner_or_admin(spender) {978 return Ok(());979 }980979 if let Some(source) = T::CrossTokenAddressMapping::address_to_token(from) {981 if let Some(source) = T::CrossTokenAddressMapping::address_to_token(from) {980 // TODO: should collection owner be allowed to perform this transfer?981 ensure!(982 ensure!(982 <PalletStructure<T>>::check_indirectly_owned(983 <PalletStructure<T>>::check_indirectly_owned(983 spender.clone(),984 spender.clone(),