IEnumerator INFTMarket.FetchNFTsFromOwner(string assetContractAddress, Action <NFTOwner> onSuccess, Action <string> onError) { string ownerId = assetContractAddress; if (cachedResponses.ContainsKey(ownerId)) { onSuccess?.Invoke(ownerCachedResponses[ownerId]); yield break; } OpenSeaRequestAllNFTs request = new OpenSeaRequestAllNFTs(assetContractAddress, (assetsResponse) => { NFTOwner nftOwner = ResponseToNFTOwner(assetContractAddress, assetsResponse); if (!ownerCachedResponses.ContainsKey(ownerId)) { ownerCachedResponses.Add(ownerId, nftOwner); } onSuccess?.Invoke(nftOwner); }, (error) => { onError?.Invoke($"{openSeaMarketInfo.name} error fetching {assetContractAddress} {error}"); }); }
public void NftsFeteched(NFTOwner nftOwner) { this.nftOwner = nftOwner; string json = JsonUtility.ToJson(nftOwner); desactivateNFT = false; OnNftsFetched?.Invoke(this.nftOwner.assets); }
public static void CreateNFT() { string jsonPath = TestAssetsUtils.GetPathRaw() + "/BuilderInWorldCatalog/nftAsset.json"; if (File.Exists(jsonPath)) { string jsonValue = File.ReadAllText(jsonPath); NFTOwner owner = NFTOwner.defaultNFTOwner; owner.assets.Add(JsonUtility.FromJson <NFTInfo>(jsonValue)); BIWNFTController.i.NftsFeteched(owner); } }
private NFTOwner ResponseToNFTOwner(string ethAddress, AssetsResponse response) { NFTOwner ownerInfo = NFTOwner.defaultNFTOwner; ownerInfo.ethAddress = ethAddress; foreach (AssetResponse assetResponse in response.assets) { ownerInfo.assets.Add(ResponseToNFTInfo(assetResponse)); } return(ownerInfo); }
IEnumerator FetchNfts() { UserProfile userProfile = UserProfile.GetOwnUserProfile(); string userId = userProfile.ethAddress; yield return(NFTHelper.FetchNFTsFromOwner(userId, (nftOwner) => { this.nftOwner = nftOwner; desactivateNFT = false; }, (error) => { desactivateNFT = true; Debug.Log($"error getting NFT from owner: {error}"); })); }