From cbbfe89f23f6db0803ea7736c5fc74fe80fe8c13 Mon Sep 17 00:00:00 2001 From: Nikola Garabandic Date: Wed, 2 Oct 2024 17:28:56 +0200 Subject: [PATCH 1/2] Fixed the issue with uri --- .../Scripts/Scenes/SampleMain/Erc1155/Erc1155Calls.cs | 4 +++- .../Scripts/Scenes/SampleMain/Erc721/Erc721Calls.cs | 2 +- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/src/UnitySampleProject/Assets/Samples/web3.unity SDK/2.6.0/Web3.Unity Samples/Scripts/Scenes/SampleMain/Erc1155/Erc1155Calls.cs b/src/UnitySampleProject/Assets/Samples/web3.unity SDK/2.6.0/Web3.Unity Samples/Scripts/Scenes/SampleMain/Erc1155/Erc1155Calls.cs index eecf45b78..5c064e6f3 100644 --- a/src/UnitySampleProject/Assets/Samples/web3.unity SDK/2.6.0/Web3.Unity Samples/Scripts/Scenes/SampleMain/Erc1155/Erc1155Calls.cs +++ b/src/UnitySampleProject/Assets/Samples/web3.unity SDK/2.6.0/Web3.Unity Samples/Scripts/Scenes/SampleMain/Erc1155/Erc1155Calls.cs @@ -3,11 +3,13 @@ using System.Numerics; using System.Threading.Tasks; using ChainSafe.Gaming.Evm.Contracts.BuiltIn; +using ChainSafe.Gaming.Ipfs; using ChainSafe.Gaming.UnityPackage; using ChainSafe.Gaming.UnityPackage.Connection; using ChainSafe.Gaming.Web3; using ChainSafe.Gaming.Web3.Build; using ChainSafe.Gaming.Web3.Core.Logout; +using Nethereum.Hex.HexConvertors.Extensions; using Scripts.EVM.Token; using UnityEngine; using UnityEngine.UI; @@ -98,7 +100,7 @@ public async void BalanceOfBatch() /// public async void Uri() { - var uri = await _erc1155.Uri(BigInteger.Parse(tokenIdUri)); + var uri = await Web3Unity.Web3.Erc1155.GetUri(ChainSafeContracts.Erc1155,tokenIdUri); SampleOutputUtil.PrintResult(uri, "ERC-1155", nameof(Erc1155Service.GetUri)); } diff --git a/src/UnitySampleProject/Assets/Samples/web3.unity SDK/2.6.0/Web3.Unity Samples/Scripts/Scenes/SampleMain/Erc721/Erc721Calls.cs b/src/UnitySampleProject/Assets/Samples/web3.unity SDK/2.6.0/Web3.Unity Samples/Scripts/Scenes/SampleMain/Erc721/Erc721Calls.cs index 9eb74f850..d127a9ade 100644 --- a/src/UnitySampleProject/Assets/Samples/web3.unity SDK/2.6.0/Web3.Unity Samples/Scripts/Scenes/SampleMain/Erc721/Erc721Calls.cs +++ b/src/UnitySampleProject/Assets/Samples/web3.unity SDK/2.6.0/Web3.Unity Samples/Scripts/Scenes/SampleMain/Erc721/Erc721Calls.cs @@ -111,7 +111,7 @@ public async void OwnerOfBatch() /// public async void Uri() { - var uri = await _erc721.TokenURI(BigInteger.Parse(tokenIdUri)); + var uri = await Web3Unity.Web3.Erc721.GetUri(ChainSafeContracts.Erc721, tokenIdUri); SampleOutputUtil.PrintResult(uri, "ERC-721", nameof(Erc721Service.GetUri)); } From 5fbf0d340e6b41376cffbdeace01929c27084674 Mon Sep 17 00:00:00 2001 From: Nikola Garabandic Date: Thu, 3 Oct 2024 08:51:48 +0200 Subject: [PATCH 2/2] Using generated contracts to be in line with the entire codebase. --- .../Scripts/Scenes/SampleMain/Erc1155/Erc1155Calls.cs | 2 +- .../Scripts/Scenes/SampleMain/Erc721/Erc721Calls.cs | 4 ++-- .../SampleMain/GeneratedContracts/Erc1155Contract.cs | 9 ++++++++- .../SampleMain/GeneratedContracts/Erc721Contract.cs | 7 ++++++- 4 files changed, 17 insertions(+), 5 deletions(-) diff --git a/src/UnitySampleProject/Assets/Samples/web3.unity SDK/2.6.0/Web3.Unity Samples/Scripts/Scenes/SampleMain/Erc1155/Erc1155Calls.cs b/src/UnitySampleProject/Assets/Samples/web3.unity SDK/2.6.0/Web3.Unity Samples/Scripts/Scenes/SampleMain/Erc1155/Erc1155Calls.cs index 5c064e6f3..8bdfe8c3e 100644 --- a/src/UnitySampleProject/Assets/Samples/web3.unity SDK/2.6.0/Web3.Unity Samples/Scripts/Scenes/SampleMain/Erc1155/Erc1155Calls.cs +++ b/src/UnitySampleProject/Assets/Samples/web3.unity SDK/2.6.0/Web3.Unity Samples/Scripts/Scenes/SampleMain/Erc1155/Erc1155Calls.cs @@ -100,7 +100,7 @@ public async void BalanceOfBatch() /// public async void Uri() { - var uri = await Web3Unity.Web3.Erc1155.GetUri(ChainSafeContracts.Erc1155,tokenIdUri); + var uri = await _erc1155.Uri(tokenIdUri); SampleOutputUtil.PrintResult(uri, "ERC-1155", nameof(Erc1155Service.GetUri)); } diff --git a/src/UnitySampleProject/Assets/Samples/web3.unity SDK/2.6.0/Web3.Unity Samples/Scripts/Scenes/SampleMain/Erc721/Erc721Calls.cs b/src/UnitySampleProject/Assets/Samples/web3.unity SDK/2.6.0/Web3.Unity Samples/Scripts/Scenes/SampleMain/Erc721/Erc721Calls.cs index d127a9ade..046c4c3a6 100644 --- a/src/UnitySampleProject/Assets/Samples/web3.unity SDK/2.6.0/Web3.Unity Samples/Scripts/Scenes/SampleMain/Erc721/Erc721Calls.cs +++ b/src/UnitySampleProject/Assets/Samples/web3.unity SDK/2.6.0/Web3.Unity Samples/Scripts/Scenes/SampleMain/Erc721/Erc721Calls.cs @@ -111,7 +111,7 @@ public async void OwnerOfBatch() /// public async void Uri() { - var uri = await Web3Unity.Web3.Erc721.GetUri(ChainSafeContracts.Erc721, tokenIdUri); + var uri = await _erc721.TokenURI(tokenIdUri); SampleOutputUtil.PrintResult(uri, "ERC-721", nameof(Erc721Service.GetUri)); } @@ -121,7 +121,7 @@ public async void Uri() public async void MintErc721() { var response = await _erc721.SafeMintWithReceipt(Web3Unity.Web3.Signer.PublicAddress, uriMint); - var output = SampleOutputUtil.BuildOutputValue(new [] {response.TransactionHash}); + var output = SampleOutputUtil.BuildOutputValue(new object[] {response.TransactionHash}); SampleOutputUtil.PrintResult(output, "ERC-721", nameof(Erc721Service.GetUri)); } diff --git a/src/UnitySampleProject/Assets/Samples/web3.unity SDK/2.6.0/Web3.Unity Samples/Scripts/Scenes/SampleMain/GeneratedContracts/Erc1155Contract.cs b/src/UnitySampleProject/Assets/Samples/web3.unity SDK/2.6.0/Web3.Unity Samples/Scripts/Scenes/SampleMain/GeneratedContracts/Erc1155Contract.cs index 414dfbf24..d5ffa3d8f 100644 --- a/src/UnitySampleProject/Assets/Samples/web3.unity SDK/2.6.0/Web3.Unity Samples/Scripts/Scenes/SampleMain/GeneratedContracts/Erc1155Contract.cs +++ b/src/UnitySampleProject/Assets/Samples/web3.unity SDK/2.6.0/Web3.Unity Samples/Scripts/Scenes/SampleMain/GeneratedContracts/Erc1155Contract.cs @@ -4,6 +4,7 @@ using System.Threading.Tasks; using ChainSafe.Gaming.Evm.Transactions; using ChainSafe.Gaming.Evm.Contracts; +using ChainSafe.Gaming.Ipfs; using Nethereum.Hex.HexTypes; using Nethereum.Contracts; using Nethereum.RPC.Reactive.Eth.Subscriptions; @@ -174,10 +175,16 @@ public async Task SupportsInterface(byte[] interfaceId) } - public async Task Uri(BigInteger uint256) + public async Task Uri(string tokenId) { + if (IpfsHelper.CanDecodeTokenIdToUri(tokenId)) + { + return IpfsHelper.DecodeTokenIdToUri(tokenId); + } + var response = await OriginalContract.Call("uri", new object[] { + tokenId }); return response; diff --git a/src/UnitySampleProject/Assets/Samples/web3.unity SDK/2.6.0/Web3.Unity Samples/Scripts/Scenes/SampleMain/GeneratedContracts/Erc721Contract.cs b/src/UnitySampleProject/Assets/Samples/web3.unity SDK/2.6.0/Web3.Unity Samples/Scripts/Scenes/SampleMain/GeneratedContracts/Erc721Contract.cs index 4b9b6ca20..0edb8de31 100644 --- a/src/UnitySampleProject/Assets/Samples/web3.unity SDK/2.6.0/Web3.Unity Samples/Scripts/Scenes/SampleMain/GeneratedContracts/Erc721Contract.cs +++ b/src/UnitySampleProject/Assets/Samples/web3.unity SDK/2.6.0/Web3.Unity Samples/Scripts/Scenes/SampleMain/GeneratedContracts/Erc721Contract.cs @@ -7,6 +7,7 @@ using ChainSafe.Gaming.Evm.Transactions; using ChainSafe.Gaming.Evm.Contracts; using ChainSafe.Gaming.Evm.Contracts.BuiltIn; +using ChainSafe.Gaming.Ipfs; using ChainSafe.Gaming.MultiCall; using ChainSafe.Gaming.UnityPackage; using ChainSafe.Gaming.Web3; @@ -210,8 +211,12 @@ public async Task Symbol() } - public async Task TokenURI(BigInteger tokenId) + public async Task TokenURI(string tokenId) { + if (IpfsHelper.CanDecodeTokenIdToUri(tokenId)) + { + return IpfsHelper.DecodeTokenIdToUri(tokenId); + } var response = await OriginalContract.Call("tokenURI", new object[] { tokenId