From 0eb04b412f402de2c6e59ad69d21536f19437bed Mon Sep 17 00:00:00 2001 From: 0xFirekeeper <0xFirekeeper@gmail.com> Date: Thu, 7 Nov 2024 23:24:02 +0700 Subject: [PATCH] Non-blocking fallback if NFTMetadata unfetcheable --- .../Thirdweb.Extensions/ThirdwebExtensions.cs | 20 +++++++++++++++++-- 1 file changed, 18 insertions(+), 2 deletions(-) diff --git a/Thirdweb/Thirdweb.Extensions/ThirdwebExtensions.cs b/Thirdweb/Thirdweb.Extensions/ThirdwebExtensions.cs index 476bf56..26cb908 100644 --- a/Thirdweb/Thirdweb.Extensions/ThirdwebExtensions.cs +++ b/Thirdweb/Thirdweb.Extensions/ThirdwebExtensions.cs @@ -1187,7 +1187,15 @@ public static async Task ERC721_GetNFT(this ThirdwebContract contract, BigI } var uri = await contract.ERC721_TokenURI(tokenId).ConfigureAwait(false); - var metadata = await ThirdwebStorage.Download(contract.Client, uri).ConfigureAwait(false); + NFTMetadata metadata; + try + { + metadata = await ThirdwebStorage.Download(contract.Client, uri).ConfigureAwait(false); + } + catch (Exception e) + { + metadata = new NFTMetadata { Description = e.Message }; + } metadata.Id = tokenId.ToString(); string owner; @@ -1324,7 +1332,15 @@ public static async Task ERC1155_GetNFT(this ThirdwebContract contract, Big } var uri = await contract.ERC1155_URI(tokenId).ConfigureAwait(false); - var metadata = await ThirdwebStorage.Download(contract.Client, uri).ConfigureAwait(false); + NFTMetadata metadata; + try + { + metadata = await ThirdwebStorage.Download(contract.Client, uri).ConfigureAwait(false); + } + catch (Exception e) + { + metadata = new NFTMetadata { Description = e.Message }; + } metadata.Id = tokenId.ToString(); var owner = string.Empty; BigInteger supply;