git.delta.rocks / unique-network / refs/commits / 5013d4054efc

difftreelog

fix force admins to use transfer_from/burn_from

Daniel Shiposha2022-06-29parent: #66c5541.patch.diff
in: master

1 file changed

modifiedpallets/nonfungible/src/lib.rsdiffbeforeafterboth
381 <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>>::NoPermission
386 );385 );
387386
665664
666 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_from
669 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>>::NoPermission
673 );670 );
674671
977 collection.check_allowlist(spender)?;974 collection.check_allowlist(spender)?;
978 }975 }
976
977 if collection.limits.owner_can_transfer() && collection.is_owner_or_admin(spender) {
978 return Ok(());
979 }
980
979 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(),