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);
        }
Beispiel #5
0
    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}");
        }));
    }