From b5356375f1185121a4798a0efbf3e91696a9b59f Mon Sep 17 00:00:00 2001 From: robGG1997 Date: Thu, 14 Sep 2023 11:30:11 +0300 Subject: [PATCH 01/10] Revert "automated duplicating imported samples modifications (#595)" This reverts commit a5558941827a91df51e2dd200648dcd13a1231c8. --- .github/workflows/duplicate_sample.yaml | 28 ------------------- duplicate_package_sample.sh | 14 ---------- .../Samples~/Web3.Unity/Prefabs.meta | 8 ------ .../Samples~/Web3.Unity/Scenes.meta | 8 ------ .../Samples~/Web3.Unity/Scripts.meta | 8 ------ .../Samples~/Web3.Unity/Sprites.meta | 8 ------ 6 files changed, 74 deletions(-) delete mode 100644 .github/workflows/duplicate_sample.yaml delete mode 100644 duplicate_package_sample.sh delete mode 100644 src/UnityPackages/io.chainsafe.web3-unity/Samples~/Web3.Unity/Prefabs.meta delete mode 100644 src/UnityPackages/io.chainsafe.web3-unity/Samples~/Web3.Unity/Scenes.meta delete mode 100644 src/UnityPackages/io.chainsafe.web3-unity/Samples~/Web3.Unity/Scripts.meta delete mode 100644 src/UnityPackages/io.chainsafe.web3-unity/Samples~/Web3.Unity/Sprites.meta diff --git a/.github/workflows/duplicate_sample.yaml b/.github/workflows/duplicate_sample.yaml deleted file mode 100644 index 793149e56..000000000 --- a/.github/workflows/duplicate_sample.yaml +++ /dev/null @@ -1,28 +0,0 @@ -name: Duplicate-Package-Sample - -on: - push: - branches: - - main - -jobs: - duplicate: - name: duplicate package sample - runs-on: ubuntu-latest - - steps: - - name: Checkout Repository - uses: actions/checkout@v2 - - - name: Run duplicate script file - run: bash ${GITHUB_WORKSPACE}/duplicate_package_sample.sh - - - name: Commit and Push - run: | - git config --global user.email $git_email - git config --global user.name "${{ github.actor }}" - git add ./src/UnityPackages/io.chainsafe.web3-unity/Samples~/Web3.Unity/. -f - git diff-index --cached --quiet HEAD || git commit -m "Auto-duplicate Package Samples" - git push - env: - git_email: "${{ github.actor }}@users.noreply.github.com" \ No newline at end of file diff --git a/duplicate_package_sample.sh b/duplicate_package_sample.sh deleted file mode 100644 index f3a677742..000000000 --- a/duplicate_package_sample.sh +++ /dev/null @@ -1,14 +0,0 @@ -#!/bin/bash - -# Specify the source directory and the destination directory -SOURCE_DIRECTORY="src/UnitySampleProject/Assets/Samples/web3.unity SDK/2.5.0-pre001/Web3.Unity Samples/" -DESTINATION_DIRECTORY="src/UnityPackages/io.chainsafe.web3-unity/Samples~/Web3.Unity/" - -# clear destination directory first -rm -r "$DESTINATION_DIRECTORY" - -# Copy source to the destination -cp -r "$SOURCE_DIRECTORY" "$DESTINATION_DIRECTORY" - -#add all modified files -git add "src/UnityPackages/io.chainsafe.web3-unity/Samples~/Web3.Unity/." -f \ No newline at end of file diff --git a/src/UnityPackages/io.chainsafe.web3-unity/Samples~/Web3.Unity/Prefabs.meta b/src/UnityPackages/io.chainsafe.web3-unity/Samples~/Web3.Unity/Prefabs.meta deleted file mode 100644 index 5b35daff8..000000000 --- a/src/UnityPackages/io.chainsafe.web3-unity/Samples~/Web3.Unity/Prefabs.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: 45a04d2621549e3458049c6c447c3941 -folderAsset: yes -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/src/UnityPackages/io.chainsafe.web3-unity/Samples~/Web3.Unity/Scenes.meta b/src/UnityPackages/io.chainsafe.web3-unity/Samples~/Web3.Unity/Scenes.meta deleted file mode 100644 index 5488a62ed..000000000 --- a/src/UnityPackages/io.chainsafe.web3-unity/Samples~/Web3.Unity/Scenes.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: f39f8dda9616349489a7803d7e0aff30 -folderAsset: yes -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/src/UnityPackages/io.chainsafe.web3-unity/Samples~/Web3.Unity/Scripts.meta b/src/UnityPackages/io.chainsafe.web3-unity/Samples~/Web3.Unity/Scripts.meta deleted file mode 100644 index 9a1e8b8d4..000000000 --- a/src/UnityPackages/io.chainsafe.web3-unity/Samples~/Web3.Unity/Scripts.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: eaef630f284e6e04a88b5939e0eb1cc5 -folderAsset: yes -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/src/UnityPackages/io.chainsafe.web3-unity/Samples~/Web3.Unity/Sprites.meta b/src/UnityPackages/io.chainsafe.web3-unity/Samples~/Web3.Unity/Sprites.meta deleted file mode 100644 index 7175ee89d..000000000 --- a/src/UnityPackages/io.chainsafe.web3-unity/Samples~/Web3.Unity/Sprites.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: 0c06517aee7843642a091a67c72b1379 -folderAsset: yes -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: From 7ecba01b211315f1854749dbd5adc2e3bb3841d8 Mon Sep 17 00:00:00 2001 From: robGG1997 Date: Wed, 8 Nov 2023 09:08:24 +0300 Subject: [PATCH 02/10] checkpoint --- .../Runtime/Scripts/EVM/Token/Erc721.cs | 20 ++++++++++--------- 1 file changed, 11 insertions(+), 9 deletions(-) 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..6cc0d929c 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 @@ -39,10 +39,11 @@ public static async Task OwnerOf(Web3 web3, string contractAddress, stri { var method = CommonMethod.OwnerOf; var contract = web3.ContractBuilder.Build(_abi, contractAddress); - var contractData = await contract.Call(method, new object[] - { - tokenId - }); + + object[] parameters = tokenId.StartsWith("0x") ? + new object[] { tokenId, } : new object[] { int.Parse(tokenId), }; + + var contractData = await contract.Call(method, parameters); return contractData[0].ToString(); } @@ -62,12 +63,13 @@ public static async Task> OwnerOfBatch( { var method = CommonMethod.OwnerOf; // build array of args - var obj = new string[tokenIds.Length][]; + var obj = new object[tokenIds.Length][]; for (var i = 0; i < tokenIds.Length; i++) - obj[i] = new[] - { - tokenIds[i] - }; + { + string tokenId = tokenIds[i]; + + obj[i] = tokenId.StartsWith("0x") ? new object[] { tokenId } : new object[] { int.Parse(tokenId) }; + } 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); From ec8d80ca0cb3f3f60d7a05e3889da1c96b24c614 Mon Sep 17 00:00:00 2001 From: robGG1997 Date: Wed, 8 Nov 2023 10:49:35 +0300 Subject: [PATCH 03/10] added overload with different typed tokenId parameter --- .../Runtime/Scripts/EVM/Token/Erc721.cs | 20 ++++++++++++++++--- .../Runtime/Scripts/Samples/Erc721Sample.cs | 5 +++++ .../Erc721/Erc721OwnerOfBehaviour.cs | 4 +++- 3 files changed, 25 insertions(+), 4 deletions(-) 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 6cc0d929c..e8bf04fcf 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 @@ -36,13 +36,27 @@ 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, int 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); - object[] parameters = tokenId.StartsWith("0x") ? - new object[] { tokenId, } : new object[] { int.Parse(tokenId), }; - var contractData = await contract.Call(method, parameters); return contractData[0].ToString(); } 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..aa35a3dd8 100644 --- a/Packages/io.chainsafe.web3-unity/Runtime/Scripts/Samples/Erc721Sample.cs +++ b/Packages/io.chainsafe.web3-unity/Runtime/Scripts/Samples/Erc721Sample.cs @@ -25,6 +25,11 @@ public async Task OwnerOf(string contractAddress, string tokenId) { return await Erc721.OwnerOf(web3, contractAddress, tokenId); } + + public async Task OwnerOf(string contractAddress, int tokenId) + { + return await Erc721.OwnerOf(web3, contractAddress, tokenId); + } public async Task> OwnerOfBatch(string contractAddress, string[] tokenIds, string multicall = "") { 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..7e60e6670 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 @@ -19,7 +19,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, int.Parse(tokenId)); SampleOutputUtil.PrintResult(owner, nameof(Erc721Sample), nameof(Erc721Sample.OwnerOf)); } } From 5ece09ba4c0ec3d1d0fc35ed2b7b2d929311ebb1 Mon Sep 17 00:00:00 2001 From: robGG1997 Date: Wed, 8 Nov 2023 11:16:54 +0300 Subject: [PATCH 04/10] reverted type cast for batchOwnerOf --- .../Runtime/Scripts/EVM/Token/Erc721.cs | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) 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 e8bf04fcf..80df85563 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 @@ -80,9 +80,10 @@ public static async Task> OwnerOfBatch( var obj = new object[tokenIds.Length][]; for (var i = 0; i < tokenIds.Length; i++) { - string tokenId = tokenIds[i]; - - obj[i] = tokenId.StartsWith("0x") ? new object[] { tokenId } : new object[] { int.Parse(tokenId) }; + obj[i] = new object[] + { + tokenIds[i] + }; } var args = JsonConvert.SerializeObject(obj); var response = await Remote.CSServer.Multicall(web3, web3.ChainConfig.ChainId, web3.ChainConfig.Network, From 18d7bc345093b4c5c2863515295bccc9b22b2f46 Mon Sep 17 00:00:00 2001 From: robGG1997 Date: Wed, 8 Nov 2023 13:14:29 +0300 Subject: [PATCH 05/10] small optimization changes --- .../Runtime/Scripts/EVM/Token/Erc721.cs | 4 ++-- .../Scenes/SampleMain/Erc721/Erc721OwnerOfBatchBehaviour.cs | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) 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 80df85563..3bd4aff2e 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 @@ -77,10 +77,10 @@ public static async Task> OwnerOfBatch( { var method = CommonMethod.OwnerOf; // build array of args - var obj = new object[tokenIds.Length][]; + var obj = new string[tokenIds.Length][]; for (var i = 0; i < tokenIds.Length; i++) { - obj[i] = new object[] + obj[i] = new[] { tokenIds[i] }; 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)); } From 423d05c9f77e54dfc297b3196e984a0153cab152 Mon Sep 17 00:00:00 2001 From: robGG1997 Date: Wed, 8 Nov 2023 10:19:26 +0000 Subject: [PATCH 06/10] Auto-duplicate Packages Samples --- .../Scenes/SampleMain/Erc721/Erc721OwnerOfBatchBehaviour.cs | 4 ++-- .../Scenes/SampleMain/Erc721/Erc721OwnerOfBehaviour.cs | 4 +++- 2 files changed, 5 insertions(+), 3 deletions(-) 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..7e60e6670 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 @@ -19,7 +19,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, int.Parse(tokenId)); SampleOutputUtil.PrintResult(owner, nameof(Erc721Sample), nameof(Erc721Sample.OwnerOf)); } } From 398a05c642c5ff5565336f0fbc9cce6418444812 Mon Sep 17 00:00:00 2001 From: robGG1997 Date: Wed, 8 Nov 2023 15:40:29 +0300 Subject: [PATCH 07/10] tokenId type now BigInteger --- .../Runtime/Scripts/EVM/Token/Erc721.cs | 3 ++- .../Runtime/Scripts/Samples/Erc721Sample.cs | 3 ++- .../Scenes/SampleMain/Erc721/Erc721OwnerOfBehaviour.cs | 5 +++-- 3 files changed, 7 insertions(+), 4 deletions(-) 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 3bd4aff2e..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; @@ -47,7 +48,7 @@ public static async Task OwnerOf(Web3 web3, string contractAddress, stri /// /// /// - public static async Task OwnerOf(Web3 web3, string contractAddress, int tokenId) + public static async Task OwnerOf(Web3 web3, string contractAddress, BigInteger tokenId) { return await OwnerOf(web3, contractAddress, new object[] { tokenId, }); } 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 aa35a3dd8..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; @@ -26,7 +27,7 @@ public async Task OwnerOf(string contractAddress, string tokenId) return await Erc721.OwnerOf(web3, contractAddress, tokenId); } - public async Task OwnerOf(string contractAddress, int tokenId) + public async Task OwnerOf(string contractAddress, BigInteger tokenId) { return await Erc721.OwnerOf(web3, contractAddress, tokenId); } 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 7e60e6670..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; @@ -21,7 +22,7 @@ protected override async Task ExecuteSample() { // check if tokenId is int or hex string var owner = tokenId.StartsWith("0x") ? - await logic.OwnerOf(contractAddress, tokenId) : await logic.OwnerOf(contractAddress, int.Parse(tokenId)); + await logic.OwnerOf(contractAddress, tokenId) : await logic.OwnerOf(contractAddress, BigInteger.Parse(tokenId)); SampleOutputUtil.PrintResult(owner, nameof(Erc721Sample), nameof(Erc721Sample.OwnerOf)); } } From b520786d3c7b71c8e33185c20fa1a28e2c504fb6 Mon Sep 17 00:00:00 2001 From: robGG1997 Date: Wed, 8 Nov 2023 15:53:45 +0300 Subject: [PATCH 08/10] added overload implementation for 1155 --- .../Runtime/Scripts/EVM/Token/Erc1155.cs | 26 +++++++++++++++++-- .../Runtime/Scripts/Samples/Erc1155Sample.cs | 5 ++++ .../Erc1155/Erc1155BalanceOfBehaviour.cs | 6 +++-- 3 files changed, 33 insertions(+), 4 deletions(-) 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/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/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)); } } From 4da49165747166db9dcc378df87c0baf575a3fcf Mon Sep 17 00:00:00 2001 From: robGG1997 Date: Wed, 8 Nov 2023 18:41:56 +0300 Subject: [PATCH 09/10] fix for loading SampleImportNftTexture scene --- .../Scripts/Scenes/SampleNftTexture/LoadScene.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) 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 From 2b699199480c6e9648e42302f94dc9b67ccdc41a Mon Sep 17 00:00:00 2001 From: robGG1997 Date: Wed, 8 Nov 2023 15:42:23 +0000 Subject: [PATCH 10/10] Auto-duplicate Packages Samples --- .../Scenes/SampleMain/Erc1155/Erc1155BalanceOfBehaviour.cs | 6 ++++-- .../Scenes/SampleMain/Erc721/Erc721OwnerOfBehaviour.cs | 5 +++-- .../Web3.Unity/Scripts/Scenes/SampleNftTexture/LoadScene.cs | 2 +- 3 files changed, 8 insertions(+), 5 deletions(-) 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/Erc721OwnerOfBehaviour.cs b/Packages/io.chainsafe.web3-unity/Samples~/Web3.Unity/Scripts/Scenes/SampleMain/Erc721/Erc721OwnerOfBehaviour.cs index 7e60e6670..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; @@ -21,7 +22,7 @@ protected override async Task ExecuteSample() { // check if tokenId is int or hex string var owner = tokenId.StartsWith("0x") ? - await logic.OwnerOf(contractAddress, tokenId) : await logic.OwnerOf(contractAddress, int.Parse(tokenId)); + 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