Skip to content

Commit ccd0255

Browse files
authored
Nikola/uri not working erc1155 erc721 (#1176)
* Fixed the issue with uri * Using generated contracts to be in line with the entire codebase.
1 parent b6794e0 commit ccd0255

4 files changed

Lines changed: 19 additions & 5 deletions

File tree

src/UnitySampleProject/Assets/Samples/web3.unity SDK/2.6.0/Web3.Unity Samples/Scripts/Scenes/SampleMain/Erc1155/Erc1155Calls.cs

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,11 +3,13 @@
33
using System.Numerics;
44
using System.Threading.Tasks;
55
using ChainSafe.Gaming.Evm.Contracts.BuiltIn;
6+
using ChainSafe.Gaming.Ipfs;
67
using ChainSafe.Gaming.UnityPackage;
78
using ChainSafe.Gaming.UnityPackage.Connection;
89
using ChainSafe.Gaming.Web3;
910
using ChainSafe.Gaming.Web3.Build;
1011
using ChainSafe.Gaming.Web3.Core.Logout;
12+
using Nethereum.Hex.HexConvertors.Extensions;
1113
using Scripts.EVM.Token;
1214
using UnityEngine;
1315
using UnityEngine.UI;
@@ -98,7 +100,7 @@ public async void BalanceOfBatch()
98100
/// </summary>
99101
public async void Uri()
100102
{
101-
var uri = await _erc1155.Uri(BigInteger.Parse(tokenIdUri));
103+
var uri = await _erc1155.Uri(tokenIdUri);
102104
SampleOutputUtil.PrintResult(uri, "ERC-1155", nameof(Erc1155Service.GetUri));
103105
}
104106

src/UnitySampleProject/Assets/Samples/web3.unity SDK/2.6.0/Web3.Unity Samples/Scripts/Scenes/SampleMain/Erc721/Erc721Calls.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -111,7 +111,7 @@ public async void OwnerOfBatch()
111111
/// </summary>
112112
public async void Uri()
113113
{
114-
var uri = await _erc721.TokenURI(BigInteger.Parse(tokenIdUri));
114+
var uri = await _erc721.TokenURI(tokenIdUri);
115115
SampleOutputUtil.PrintResult(uri, "ERC-721", nameof(Erc721Service.GetUri));
116116
}
117117

@@ -121,7 +121,7 @@ public async void Uri()
121121
public async void MintErc721()
122122
{
123123
var response = await _erc721.SafeMintWithReceipt(Web3Unity.Web3.Signer.PublicAddress, uriMint);
124-
var output = SampleOutputUtil.BuildOutputValue(new [] {response.TransactionHash});
124+
var output = SampleOutputUtil.BuildOutputValue(new object[] {response.TransactionHash});
125125
SampleOutputUtil.PrintResult(output, "ERC-721", nameof(Erc721Service.GetUri));
126126
}
127127

src/UnitySampleProject/Assets/Samples/web3.unity SDK/2.6.0/Web3.Unity Samples/Scripts/Scenes/SampleMain/GeneratedContracts/Erc1155Contract.cs

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
using System.Threading.Tasks;
55
using ChainSafe.Gaming.Evm.Transactions;
66
using ChainSafe.Gaming.Evm.Contracts;
7+
using ChainSafe.Gaming.Ipfs;
78
using Nethereum.Hex.HexTypes;
89
using Nethereum.Contracts;
910
using Nethereum.RPC.Reactive.Eth.Subscriptions;
@@ -174,10 +175,16 @@ public async Task<bool> SupportsInterface(byte[] interfaceId)
174175
}
175176

176177

177-
public async Task<string> Uri(BigInteger uint256)
178+
public async Task<string> Uri(string tokenId)
178179
{
180+
if (IpfsHelper.CanDecodeTokenIdToUri(tokenId))
181+
{
182+
return IpfsHelper.DecodeTokenIdToUri(tokenId);
183+
}
184+
179185
var response = await OriginalContract.Call<string>("uri", new object[]
180186
{
187+
tokenId
181188
});
182189

183190
return response;

src/UnitySampleProject/Assets/Samples/web3.unity SDK/2.6.0/Web3.Unity Samples/Scripts/Scenes/SampleMain/GeneratedContracts/Erc721Contract.cs

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
using ChainSafe.Gaming.Evm.Transactions;
88
using ChainSafe.Gaming.Evm.Contracts;
99
using ChainSafe.Gaming.Evm.Contracts.BuiltIn;
10+
using ChainSafe.Gaming.Ipfs;
1011
using ChainSafe.Gaming.MultiCall;
1112
using ChainSafe.Gaming.UnityPackage;
1213
using ChainSafe.Gaming.Web3;
@@ -210,8 +211,12 @@ public async Task<string> Symbol()
210211
}
211212

212213

213-
public async Task<string> TokenURI(BigInteger tokenId)
214+
public async Task<string> TokenURI(string tokenId)
214215
{
216+
if (IpfsHelper.CanDecodeTokenIdToUri(tokenId))
217+
{
218+
return IpfsHelper.DecodeTokenIdToUri(tokenId);
219+
}
215220
var response = await OriginalContract.Call<string>("tokenURI", new object[]
216221
{
217222
tokenId

0 commit comments

Comments
 (0)