difftreelog
fix(rmrk) accept/reject nft events
in: master
1 file changed
pallets/proxy-rmrk-core/src/lib.rsdiffbeforeafterboth105 nft_id: RmrkNftId,105 nft_id: RmrkNftId,106 approval_required: bool,106 approval_required: bool,107 },107 },108 NFTAccepted {109 sender: T::AccountId,110 recipient: RmrkAccountIdOrCollectionNftTuple<T::AccountId>,111 collection_id: RmrkCollectionId,112 nft_id: RmrkNftId,113 },114 NFTRejected {115 sender: T::AccountId,116 collection_id: RmrkCollectionId,117 nft_id: RmrkNftId,118 },108 PropertySet {119 PropertySet {109 collection_id: RmrkCollectionId,120 collection_id: RmrkCollectionId,110 maybe_nft_id: Option<RmrkNftId>,121 maybe_nft_id: Option<RmrkNftId>,486 new_owner: RmrkAccountIdOrCollectionNftTuple<T::AccountId>,497 new_owner: RmrkAccountIdOrCollectionNftTuple<T::AccountId>,487 ) -> DispatchResult {498 ) -> DispatchResult {488 let sender = ensure_signed(origin.clone())?;499 let sender = ensure_signed(origin.clone())?;489 let cross_sender = T::CrossAccountId::from_sub(sender);500 let cross_sender = T::CrossAccountId::from_sub(sender.clone());490501491 let collection_id = Self::unique_collection_id(rmrk_collection_id)?;502 let collection_id = Self::unique_collection_id(rmrk_collection_id)?;492 let nft_id = rmrk_nft_id.into();503 let nft_id = rmrk_nft_id.into();493504494 let collection =505 let collection =495 Self::get_typed_nft_collection(collection_id, misc::CollectionType::Regular)?;506 Self::get_typed_nft_collection(collection_id, misc::CollectionType::Regular)?;496507497 let new_owner = match new_owner {508 let new_cross_owner = match new_owner {498 RmrkAccountIdOrCollectionNftTuple::AccountId(account_id) => {509 RmrkAccountIdOrCollectionNftTuple::AccountId(ref account_id) => {499 T::CrossAccountId::from_sub(account_id)510 T::CrossAccountId::from_sub(account_id.clone())500 }511 }501 RmrkAccountIdOrCollectionNftTuple::CollectionAndNftTuple(512 RmrkAccountIdOrCollectionNftTuple::CollectionAndNftTuple(502 target_collection_id,513 target_collection_id,513524514 let budget = budget::Value::new(NESTING_BUDGET);525 let budget = budget::Value::new(NESTING_BUDGET);515526516 <PalletNft<T>>::transfer(&collection, &cross_sender, &new_owner, nft_id, &budget)527 <PalletNft<T>>::transfer(&collection, &cross_sender, &new_cross_owner, nft_id, &budget)517 .map_err(|err| {528 .map_err(|err| {518 if err == <CommonError<T>>::OnlyOwnerAllowedToNest.into() {529 if err == <CommonError<T>>::OnlyOwnerAllowedToNest.into() {519 <Error<T>>::CannotAcceptNonOwnedNft.into()530 <Error<T>>::CannotAcceptNonOwnedNft.into()529 Self::rmrk_property(PendingNftAccept, &false)?,540 Self::rmrk_property(PendingNftAccept, &false)?,530 )?;541 )?;542543 Self::deposit_event(Event::NFTAccepted {544 sender,545 recipient: new_owner,546 collection_id: rmrk_collection_id,547 nft_id: rmrk_nft_id,548 });531549532 Ok(())550 Ok(())533 }551 }536 #[transactional]554 #[transactional]537 pub fn reject_nft(555 pub fn reject_nft(538 origin: OriginFor<T>,556 origin: OriginFor<T>,539 collection_id: RmrkCollectionId,557 rmrk_collection_id: RmrkCollectionId,540 nft_id: RmrkNftId,558 rmrk_nft_id: RmrkNftId,541 ) -> DispatchResult {559 ) -> DispatchResult {542 let sender = ensure_signed(origin)?;560 let sender = ensure_signed(origin)?;543 let cross_sender = T::CrossAccountId::from_sub(sender);561 let cross_sender = T::CrossAccountId::from_sub(sender.clone());544562545 let collection_id = Self::unique_collection_id(collection_id)?;563 let collection_id = Self::unique_collection_id(rmrk_collection_id)?;546 let nft_id = nft_id.into();564 let nft_id = rmrk_nft_id.into();547565548 Self::destroy_nft(cross_sender, collection_id, nft_id).map_err(|err| {566 Self::destroy_nft(cross_sender, collection_id, nft_id).map_err(|err| {549 if err == <CommonError<T>>::NoPermission.into()567 if err == <CommonError<T>>::NoPermission.into()555 }573 }556 })?;574 })?;575576 Self::deposit_event(Event::NFTRejected {577 sender,578 collection_id: rmrk_collection_id,579 nft_id: rmrk_nft_id,580 });557581558 Ok(())582 Ok(())559 }583 }