From a1d2f11d975004c41ff68b9788cfc6e2e88f27e3 Mon Sep 17 00:00:00 2001 From: Bjarte Stien Karlsen Date: Mon, 19 Sep 2022 08:53:10 +0200 Subject: [PATCH] fix borrow using Receiver if CP does not work --- cadence/contracts/LostAndFound.cdc | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/cadence/contracts/LostAndFound.cdc b/cadence/contracts/LostAndFound.cdc index 9d0c3ac..bb67725 100644 --- a/cadence/contracts/LostAndFound.cdc +++ b/cadence/contracts/LostAndFound.cdc @@ -148,10 +148,15 @@ pub contract LostAndFound { let cap = receiver.borrow<&AnyResource>()! if cap.isInstance(Type<@NonFungibleToken.Collection>()) { - let target = receiver.borrow<&AnyResource{NonFungibleToken.CollectionPublic}>()! let token <- redeemableItem as! @NonFungibleToken.NFT? self.redeemed = true emit TicketRedeemed(redeemer: self.redeemer, ticketID: self.uuid, type: token.getType()) + + if let target = receiver.borrow<&AnyResource{NonFungibleToken.CollectionPublic}>() { + target.deposit(token: <- token!) + return + } + let target = receiver.borrow<&AnyResource{NonFungibleToken.Receiver}>()! target.deposit(token: <- token!) return } else if cap.isInstance(Type<@FungibleToken.Vault>()) { @@ -755,4 +760,4 @@ pub contract LostAndFound { self.account.link<&LostAndFound.ShelfManager>(self.LostAndFoundPublicPath, target: self.LostAndFoundStoragePath) } } - \ No newline at end of file +