diff --git a/Packages/io.chainsafe.web3-unity/Runtime/Scripts/EVM/Token/Erc1155.cs b/Packages/io.chainsafe.web3-unity/Runtime/Scripts/EVM/Token/Erc1155.cs
index c926dea80..dd9392bef 100644
--- a/Packages/io.chainsafe.web3-unity/Runtime/Scripts/EVM/Token/Erc1155.cs
+++ b/Packages/io.chainsafe.web3-unity/Runtime/Scripts/EVM/Token/Erc1155.cs
@@ -20,12 +20,34 @@ public class Erc1155
///
public static async Task BalanceOf(Web3 web3, string contractAddress, string account, string tokenId)
{
- var contract = web3.ContractBuilder.Build(Abi, contractAddress);
- var contractData = await contract.Call(CommonMethod.BalanceOf, new object[]
+ return await BalanceOf(web3, contractAddress, account, new object[]
+ {
+ account,
+ tokenId
+ });
+ }
+
+ ///
+ /// Balance of ERC1155 Token
+ ///
+ ///
+ ///
+ ///
+ ///
+ ///
+ public static async Task BalanceOf(Web3 web3, string contractAddress, string account, BigInteger tokenId)
+ {
+ return await BalanceOf(web3, contractAddress, account, new object[]
{
account,
tokenId
});
+ }
+
+ private static async Task BalanceOf(Web3 web3, string contractAddress, string account, object[] parameters)
+ {
+ var contract = web3.ContractBuilder.Build(Abi, contractAddress);
+ var contractData = await contract.Call(CommonMethod.BalanceOf, parameters);
return BigInteger.Parse(contractData[0].ToString());
}
diff --git a/Packages/io.chainsafe.web3-unity/Runtime/Scripts/EVM/Token/Erc721.cs b/Packages/io.chainsafe.web3-unity/Runtime/Scripts/EVM/Token/Erc721.cs
index b3a09d4bd..800b709c4 100644
--- a/Packages/io.chainsafe.web3-unity/Runtime/Scripts/EVM/Token/Erc721.cs
+++ b/Packages/io.chainsafe.web3-unity/Runtime/Scripts/EVM/Token/Erc721.cs
@@ -1,4 +1,5 @@
using System.Collections.Generic;
+using System.Numerics;
using System.Threading.Tasks;
using ChainSafe.Gaming.Web3;
using Newtonsoft.Json;
@@ -36,13 +37,28 @@ public static async Task BalanceOf(Web3 web3, string contractAddress, strin
///
///
public static async Task OwnerOf(Web3 web3, string contractAddress, string tokenId)
+ {
+ return await OwnerOf(web3, contractAddress, new object[] { tokenId, });
+ }
+
+ ///
+ /// Owner Of ERC721 Token
+ ///
+ ///
+ ///
+ ///
+ ///
+ public static async Task OwnerOf(Web3 web3, string contractAddress, BigInteger tokenId)
+ {
+ return await OwnerOf(web3, contractAddress, new object[] { tokenId, });
+ }
+
+ private static async Task OwnerOf(Web3 web3, string contractAddress, object[] parameters)
{
var method = CommonMethod.OwnerOf;
var contract = web3.ContractBuilder.Build(_abi, contractAddress);
- var contractData = await contract.Call(method, new object[]
- {
- tokenId
- });
+
+ var contractData = await contract.Call(method, parameters);
return contractData[0].ToString();
}
@@ -64,10 +80,12 @@ public static async Task> OwnerOfBatch(
// build array of args
var obj = new string[tokenIds.Length][];
for (var i = 0; i < tokenIds.Length; i++)
+ {
obj[i] = new[]
{
tokenIds[i]
};
+ }
var args = JsonConvert.SerializeObject(obj);
var response = await Remote.CSServer.Multicall(web3, web3.ChainConfig.ChainId, web3.ChainConfig.Network,
contractAddress, _abi, method, args, multicall, web3.ChainConfig.Rpc);
diff --git a/Packages/io.chainsafe.web3-unity/Runtime/Scripts/Samples/Erc1155Sample.cs b/Packages/io.chainsafe.web3-unity/Runtime/Scripts/Samples/Erc1155Sample.cs
index 4f033c43e..bf0cef1bd 100644
--- a/Packages/io.chainsafe.web3-unity/Runtime/Scripts/Samples/Erc1155Sample.cs
+++ b/Packages/io.chainsafe.web3-unity/Runtime/Scripts/Samples/Erc1155Sample.cs
@@ -31,6 +31,11 @@ public async Task BalanceOf(string contract, string account, string
{
return await Erc1155.BalanceOf(web3, contract, account, tokenId);
}
+
+ public async Task BalanceOf(string contract, string account, BigInteger tokenId)
+ {
+ return await Erc1155.BalanceOf(web3, contract, account, tokenId);
+ }
public async Task> BalanceOfBatch(string contract, string[] accounts, string[] tokenIds)
{
diff --git a/Packages/io.chainsafe.web3-unity/Runtime/Scripts/Samples/Erc721Sample.cs b/Packages/io.chainsafe.web3-unity/Runtime/Scripts/Samples/Erc721Sample.cs
index b3f2a6dcf..5ef59c02a 100644
--- a/Packages/io.chainsafe.web3-unity/Runtime/Scripts/Samples/Erc721Sample.cs
+++ b/Packages/io.chainsafe.web3-unity/Runtime/Scripts/Samples/Erc721Sample.cs
@@ -1,5 +1,6 @@
using System;
using System.Collections.Generic;
+using System.Numerics;
using System.Threading.Tasks;
using ChainSafe.Gaming.Web3;
using Scripts.EVM.Remote;
@@ -25,6 +26,11 @@ public async Task OwnerOf(string contractAddress, string tokenId)
{
return await Erc721.OwnerOf(web3, contractAddress, tokenId);
}
+
+ public async Task OwnerOf(string contractAddress, BigInteger tokenId)
+ {
+ return await Erc721.OwnerOf(web3, contractAddress, tokenId);
+ }
public async Task> OwnerOfBatch(string contractAddress, string[] tokenIds, string multicall = "")
{
diff --git a/Packages/io.chainsafe.web3-unity/Samples~/Web3.Unity/Scripts/Scenes/SampleMain/Erc1155/Erc1155BalanceOfBehaviour.cs b/Packages/io.chainsafe.web3-unity/Samples~/Web3.Unity/Scripts/Scenes/SampleMain/Erc1155/Erc1155BalanceOfBehaviour.cs
index 5e9a7d02e..a6f9a67d0 100644
--- a/Packages/io.chainsafe.web3-unity/Samples~/Web3.Unity/Scripts/Scenes/SampleMain/Erc1155/Erc1155BalanceOfBehaviour.cs
+++ b/Packages/io.chainsafe.web3-unity/Samples~/Web3.Unity/Scripts/Scenes/SampleMain/Erc1155/Erc1155BalanceOfBehaviour.cs
@@ -1,4 +1,5 @@
-using System.Threading.Tasks;
+using System.Numerics;
+using System.Threading.Tasks;
using ChainSafe.Gaming.UnityPackage;
using Web3Unity.Scripts.Prefabs;
@@ -20,7 +21,8 @@ protected override void Awake()
protected override async Task ExecuteSample()
{
- var balance = await logic.BalanceOf(contractAddress, account, tokenId);
+ var balance = tokenId.StartsWith("0x") ?
+ await logic.BalanceOf(contractAddress, account, tokenId) : await logic.BalanceOf(contractAddress, account, BigInteger.Parse(tokenId));
SampleOutputUtil.PrintResult(balance.ToString(), nameof(Erc1155Sample), nameof(Erc1155Sample.BalanceOf));
}
}
diff --git a/Packages/io.chainsafe.web3-unity/Samples~/Web3.Unity/Scripts/Scenes/SampleMain/Erc721/Erc721OwnerOfBatchBehaviour.cs b/Packages/io.chainsafe.web3-unity/Samples~/Web3.Unity/Scripts/Scenes/SampleMain/Erc721/Erc721OwnerOfBatchBehaviour.cs
index c8cf3f325..f6abeaa3b 100644
--- a/Packages/io.chainsafe.web3-unity/Samples~/Web3.Unity/Scripts/Scenes/SampleMain/Erc721/Erc721OwnerOfBatchBehaviour.cs
+++ b/Packages/io.chainsafe.web3-unity/Samples~/Web3.Unity/Scripts/Scenes/SampleMain/Erc721/Erc721OwnerOfBatchBehaviour.cs
@@ -9,7 +9,7 @@ namespace Samples.Behaviours.Erc721
public class Erc721OwnerOfBatchBehaviour : SampleBehaviour
{
public string contractAddress = "0x47381c5c948254e6e0E324F1AA54b7B24104D92D";
- public List tokenIds = new() { "33", "29" };
+ public string[] tokenIds = { "33", "29" };
[Header("Optional")]
// optional: multicall contract https://github.com/makerdao/multicall
@@ -25,7 +25,7 @@ protected override void Awake()
protected override async Task ExecuteSample()
{
- var owners = await logic.OwnerOfBatch(contractAddress, tokenIds.ToArray(), multicall);
+ var owners = await logic.OwnerOfBatch(contractAddress, tokenIds, multicall);
var ownersString = $"{owners.Count} owner(s):\n" + string.Join(",\n", owners);
SampleOutputUtil.PrintResult(ownersString, nameof(Erc721Sample), nameof(Erc721Sample.OwnerOfBatch));
}
diff --git a/Packages/io.chainsafe.web3-unity/Samples~/Web3.Unity/Scripts/Scenes/SampleMain/Erc721/Erc721OwnerOfBehaviour.cs b/Packages/io.chainsafe.web3-unity/Samples~/Web3.Unity/Scripts/Scenes/SampleMain/Erc721/Erc721OwnerOfBehaviour.cs
index 9628aacb7..9346a12f0 100644
--- a/Packages/io.chainsafe.web3-unity/Samples~/Web3.Unity/Scripts/Scenes/SampleMain/Erc721/Erc721OwnerOfBehaviour.cs
+++ b/Packages/io.chainsafe.web3-unity/Samples~/Web3.Unity/Scripts/Scenes/SampleMain/Erc721/Erc721OwnerOfBehaviour.cs
@@ -1,4 +1,5 @@
-using System.Threading.Tasks;
+using System.Numerics;
+using System.Threading.Tasks;
using ChainSafe.Gaming.UnityPackage;
using Web3Unity.Scripts.Prefabs;
@@ -19,7 +20,9 @@ protected override void Awake()
protected override async Task ExecuteSample()
{
- var owner = await logic.OwnerOf(contractAddress, tokenId);
+ // check if tokenId is int or hex string
+ var owner = tokenId.StartsWith("0x") ?
+ await logic.OwnerOf(contractAddress, tokenId) : await logic.OwnerOf(contractAddress, BigInteger.Parse(tokenId));
SampleOutputUtil.PrintResult(owner, nameof(Erc721Sample), nameof(Erc721Sample.OwnerOf));
}
}
diff --git a/Packages/io.chainsafe.web3-unity/Samples~/Web3.Unity/Scripts/Scenes/SampleNftTexture/LoadScene.cs b/Packages/io.chainsafe.web3-unity/Samples~/Web3.Unity/Scripts/Scenes/SampleNftTexture/LoadScene.cs
index fd1b1b79c..912f02a29 100644
--- a/Packages/io.chainsafe.web3-unity/Samples~/Web3.Unity/Scripts/Scenes/SampleNftTexture/LoadScene.cs
+++ b/Packages/io.chainsafe.web3-unity/Samples~/Web3.Unity/Scripts/Scenes/SampleNftTexture/LoadScene.cs
@@ -7,7 +7,7 @@ public class LoadScene : MonoBehaviour
{
public void Load()
{
- SceneManager.LoadScene(Login.LoginSceneIndex);
+ SceneManager.LoadScene("SampleImportNftTexture");
}
}
}
\ No newline at end of file
diff --git a/src/UnitySampleProject/Assets/Samples/web3.unity SDK/2.5.0/Web3.Unity Samples/Scripts/Scenes/SampleMain/Erc1155/Erc1155BalanceOfBehaviour.cs b/src/UnitySampleProject/Assets/Samples/web3.unity SDK/2.5.0/Web3.Unity Samples/Scripts/Scenes/SampleMain/Erc1155/Erc1155BalanceOfBehaviour.cs
index 5e9a7d02e..a6f9a67d0 100644
--- a/src/UnitySampleProject/Assets/Samples/web3.unity SDK/2.5.0/Web3.Unity Samples/Scripts/Scenes/SampleMain/Erc1155/Erc1155BalanceOfBehaviour.cs
+++ b/src/UnitySampleProject/Assets/Samples/web3.unity SDK/2.5.0/Web3.Unity Samples/Scripts/Scenes/SampleMain/Erc1155/Erc1155BalanceOfBehaviour.cs
@@ -1,4 +1,5 @@
-using System.Threading.Tasks;
+using System.Numerics;
+using System.Threading.Tasks;
using ChainSafe.Gaming.UnityPackage;
using Web3Unity.Scripts.Prefabs;
@@ -20,7 +21,8 @@ protected override void Awake()
protected override async Task ExecuteSample()
{
- var balance = await logic.BalanceOf(contractAddress, account, tokenId);
+ var balance = tokenId.StartsWith("0x") ?
+ await logic.BalanceOf(contractAddress, account, tokenId) : await logic.BalanceOf(contractAddress, account, BigInteger.Parse(tokenId));
SampleOutputUtil.PrintResult(balance.ToString(), nameof(Erc1155Sample), nameof(Erc1155Sample.BalanceOf));
}
}
diff --git a/src/UnitySampleProject/Assets/Samples/web3.unity SDK/2.5.0/Web3.Unity Samples/Scripts/Scenes/SampleMain/Erc721/Erc721OwnerOfBatchBehaviour.cs b/src/UnitySampleProject/Assets/Samples/web3.unity SDK/2.5.0/Web3.Unity Samples/Scripts/Scenes/SampleMain/Erc721/Erc721OwnerOfBatchBehaviour.cs
index c8cf3f325..f6abeaa3b 100644
--- a/src/UnitySampleProject/Assets/Samples/web3.unity SDK/2.5.0/Web3.Unity Samples/Scripts/Scenes/SampleMain/Erc721/Erc721OwnerOfBatchBehaviour.cs
+++ b/src/UnitySampleProject/Assets/Samples/web3.unity SDK/2.5.0/Web3.Unity Samples/Scripts/Scenes/SampleMain/Erc721/Erc721OwnerOfBatchBehaviour.cs
@@ -9,7 +9,7 @@ namespace Samples.Behaviours.Erc721
public class Erc721OwnerOfBatchBehaviour : SampleBehaviour
{
public string contractAddress = "0x47381c5c948254e6e0E324F1AA54b7B24104D92D";
- public List tokenIds = new() { "33", "29" };
+ public string[] tokenIds = { "33", "29" };
[Header("Optional")]
// optional: multicall contract https://github.com/makerdao/multicall
@@ -25,7 +25,7 @@ protected override void Awake()
protected override async Task ExecuteSample()
{
- var owners = await logic.OwnerOfBatch(contractAddress, tokenIds.ToArray(), multicall);
+ var owners = await logic.OwnerOfBatch(contractAddress, tokenIds, multicall);
var ownersString = $"{owners.Count} owner(s):\n" + string.Join(",\n", owners);
SampleOutputUtil.PrintResult(ownersString, nameof(Erc721Sample), nameof(Erc721Sample.OwnerOfBatch));
}
diff --git a/src/UnitySampleProject/Assets/Samples/web3.unity SDK/2.5.0/Web3.Unity Samples/Scripts/Scenes/SampleMain/Erc721/Erc721OwnerOfBehaviour.cs b/src/UnitySampleProject/Assets/Samples/web3.unity SDK/2.5.0/Web3.Unity Samples/Scripts/Scenes/SampleMain/Erc721/Erc721OwnerOfBehaviour.cs
index 9628aacb7..9346a12f0 100644
--- a/src/UnitySampleProject/Assets/Samples/web3.unity SDK/2.5.0/Web3.Unity Samples/Scripts/Scenes/SampleMain/Erc721/Erc721OwnerOfBehaviour.cs
+++ b/src/UnitySampleProject/Assets/Samples/web3.unity SDK/2.5.0/Web3.Unity Samples/Scripts/Scenes/SampleMain/Erc721/Erc721OwnerOfBehaviour.cs
@@ -1,4 +1,5 @@
-using System.Threading.Tasks;
+using System.Numerics;
+using System.Threading.Tasks;
using ChainSafe.Gaming.UnityPackage;
using Web3Unity.Scripts.Prefabs;
@@ -19,7 +20,9 @@ protected override void Awake()
protected override async Task ExecuteSample()
{
- var owner = await logic.OwnerOf(contractAddress, tokenId);
+ // check if tokenId is int or hex string
+ var owner = tokenId.StartsWith("0x") ?
+ await logic.OwnerOf(contractAddress, tokenId) : await logic.OwnerOf(contractAddress, BigInteger.Parse(tokenId));
SampleOutputUtil.PrintResult(owner, nameof(Erc721Sample), nameof(Erc721Sample.OwnerOf));
}
}
diff --git a/src/UnitySampleProject/Assets/Samples/web3.unity SDK/2.5.0/Web3.Unity Samples/Scripts/Scenes/SampleNftTexture/LoadScene.cs b/src/UnitySampleProject/Assets/Samples/web3.unity SDK/2.5.0/Web3.Unity Samples/Scripts/Scenes/SampleNftTexture/LoadScene.cs
index fd1b1b79c..912f02a29 100644
--- a/src/UnitySampleProject/Assets/Samples/web3.unity SDK/2.5.0/Web3.Unity Samples/Scripts/Scenes/SampleNftTexture/LoadScene.cs
+++ b/src/UnitySampleProject/Assets/Samples/web3.unity SDK/2.5.0/Web3.Unity Samples/Scripts/Scenes/SampleNftTexture/LoadScene.cs
@@ -7,7 +7,7 @@ public class LoadScene : MonoBehaviour
{
public void Load()
{
- SceneManager.LoadScene(Login.LoginSceneIndex);
+ SceneManager.LoadScene("SampleImportNftTexture");
}
}
}
\ No newline at end of file