From 991fde2b20ece8c94d2605a74582423b5507ef5e Mon Sep 17 00:00:00 2001
From: oleksandr <59798783+creeppak@users.noreply.github.com>
Date: Mon, 13 May 2024 18:47:20 +0100
Subject: [PATCH 01/11] Removed static Erc20, Erc721, Erc1155 utility classes
from package scripts and added corresponding built-in contracts
(ErcXXContract) and services (ErcXXService) to the core solution.
Introduced IpfsHelper.
---
.../Runtime/Scripts/EVM/Token/Erc1155.cs | 191 -------
.../Runtime/Scripts/EVM/Token/Erc1155.cs.meta | 11 -
.../Scripts/EVM/Token/Erc1155Metadata.cs | 7 +
.../Scripts/EVM/Token/Erc1155Metadata.cs.meta | 3 +
.../EVM/Token/Erc1155UnityExtensions.cs | 46 ++
.../EVM/Token/Erc1155UnityExtensions.cs.meta | 3 +
.../Runtime/Scripts/EVM/Token/Erc20.cs | 145 -----
.../Runtime/Scripts/EVM/Token/Erc20.cs.meta | 11 -
.../Runtime/Scripts/EVM/Token/Erc721.cs | 170 ------
.../Runtime/Scripts/EVM/Token/Erc721.cs.meta | 11 -
.../Runtime/Scripts/EVM/Token/Methods.cs.meta | 11 -
.../Scripts/Model/OwnerOfBatchModel.cs.meta | 3 -
src/ChainSafe.Gaming/ChainSafe.Gaming.csproj | 8 +
src/ChainSafe.Gaming/Ipfs/IpfsHelper.cs | 28 +
.../RPC/Contracts/BuiltIn/BuiltInContract.cs | 44 ++
.../RPC/Contracts/BuiltIn/ContractMethods.cs | 4 +-
.../RPC/Contracts/BuiltIn/Erc1155Contract.cs | 135 +++++
.../RPC/Contracts/BuiltIn/Erc1155Service.cs | 41 ++
.../RPC/Contracts/BuiltIn/Erc20Contract.cs | 137 +++++
.../RPC/Contracts/BuiltIn/Erc20Service.cs | 42 ++
.../RPC/Contracts/BuiltIn/Erc721Contract.cs | 195 +++++++
.../RPC/Contracts/BuiltIn/Erc721Service.cs | 49 ++
.../Contracts/BuiltIn}/OwnerOfBatchModel.cs | 5 +-
.../RPC/Contracts/Contract.cs | 6 +-
.../RPC/Contracts/IContract.cs | 78 +++
.../Resources/erc-1155-abi.json | 489 +++++++++++++++++
.../Resources/erc-20-abi.json | 345 ++++++++++++
.../Resources/erc-721-abi.json | 508 ++++++++++++++++++
.../Scene/Rewards/Erc1155NftRewardFactory.cs | 3 +-
.../Scripts/StringExtensions.cs | 8 -
30 files changed, 2170 insertions(+), 567 deletions(-)
delete mode 100644 Packages/io.chainsafe.web3-unity/Runtime/Scripts/EVM/Token/Erc1155.cs
delete mode 100644 Packages/io.chainsafe.web3-unity/Runtime/Scripts/EVM/Token/Erc1155.cs.meta
create mode 100644 Packages/io.chainsafe.web3-unity/Runtime/Scripts/EVM/Token/Erc1155Metadata.cs
create mode 100644 Packages/io.chainsafe.web3-unity/Runtime/Scripts/EVM/Token/Erc1155Metadata.cs.meta
create mode 100644 Packages/io.chainsafe.web3-unity/Runtime/Scripts/EVM/Token/Erc1155UnityExtensions.cs
create mode 100644 Packages/io.chainsafe.web3-unity/Runtime/Scripts/EVM/Token/Erc1155UnityExtensions.cs.meta
delete mode 100644 Packages/io.chainsafe.web3-unity/Runtime/Scripts/EVM/Token/Erc20.cs
delete mode 100644 Packages/io.chainsafe.web3-unity/Runtime/Scripts/EVM/Token/Erc20.cs.meta
delete mode 100644 Packages/io.chainsafe.web3-unity/Runtime/Scripts/EVM/Token/Erc721.cs
delete mode 100644 Packages/io.chainsafe.web3-unity/Runtime/Scripts/EVM/Token/Erc721.cs.meta
delete mode 100644 Packages/io.chainsafe.web3-unity/Runtime/Scripts/EVM/Token/Methods.cs.meta
delete mode 100644 Packages/io.chainsafe.web3-unity/Runtime/Scripts/Model/OwnerOfBatchModel.cs.meta
create mode 100644 src/ChainSafe.Gaming/Ipfs/IpfsHelper.cs
create mode 100644 src/ChainSafe.Gaming/RPC/Contracts/BuiltIn/BuiltInContract.cs
rename Packages/io.chainsafe.web3-unity/Runtime/Scripts/EVM/Token/Methods.cs => src/ChainSafe.Gaming/RPC/Contracts/BuiltIn/ContractMethods.cs (88%)
create mode 100644 src/ChainSafe.Gaming/RPC/Contracts/BuiltIn/Erc1155Contract.cs
create mode 100644 src/ChainSafe.Gaming/RPC/Contracts/BuiltIn/Erc1155Service.cs
create mode 100644 src/ChainSafe.Gaming/RPC/Contracts/BuiltIn/Erc20Contract.cs
create mode 100644 src/ChainSafe.Gaming/RPC/Contracts/BuiltIn/Erc20Service.cs
create mode 100644 src/ChainSafe.Gaming/RPC/Contracts/BuiltIn/Erc721Contract.cs
create mode 100644 src/ChainSafe.Gaming/RPC/Contracts/BuiltIn/Erc721Service.cs
rename {Packages/io.chainsafe.web3-unity/Runtime/Scripts/Model => src/ChainSafe.Gaming/RPC/Contracts/BuiltIn}/OwnerOfBatchModel.cs (74%)
create mode 100644 src/ChainSafe.Gaming/RPC/Contracts/IContract.cs
create mode 100644 src/ChainSafe.Gaming/Resources/erc-1155-abi.json
create mode 100644 src/ChainSafe.Gaming/Resources/erc-20-abi.json
create mode 100644 src/ChainSafe.Gaming/Resources/erc-721-abi.json
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
deleted file mode 100644
index ae8b2fccc..000000000
--- a/Packages/io.chainsafe.web3-unity/Runtime/Scripts/EVM/Token/Erc1155.cs
+++ /dev/null
@@ -1,191 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.Numerics;
-using System.Threading.Tasks;
-using ChainSafe.Gaming.UnityPackage.Model;
-using ChainSafe.Gaming.Web3;
-using UnityEngine;
-using UnityEngine.Networking;
-
-namespace Scripts.EVM.Token
-{
- public static class Erc1155
- {
- ///
- /// Balance of ERC1155 Token (string parameter)
- ///
- ///
- ///
- ///
- ///
- ///
- public static async Task BalanceOf(Web3 web3, string contractAddress, string account, string tokenId)
- {
- return await BalanceOf(web3, contractAddress, account, new object[]
- {
- account,
- tokenId
- });
- }
-
- ///
- /// Balance of ERC1155 Token (biginteger parameter)
- ///
- ///
- ///
- ///
- ///
- ///
- 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.Erc1155, contractAddress);
- var contractData = await contract.Call(EthMethod.BalanceOf, parameters);
- return BigInteger.Parse(contractData[0].ToString());
- }
-
- ///
- /// Balance of Batch ERC1155
- ///
- ///
- ///
- ///
- ///
- ///
- public static async Task> BalanceOfBatch(Web3 web3, string contractAddress, string[] accounts, string[] tokenIds)
- {
- var contract = web3.ContractBuilder.Build(ABI.Erc1155, contractAddress);
- var contractData = await contract.Call(EthMethod.BalanceOfBatch, new object[]
- {
- accounts,
- tokenIds
- });
- return contractData[0] as List ?? throw new System.Exception("Unexpected result from contract call");
- }
-
- ///
- /// Token URI of ERC1155 Token
- ///
- ///
- ///
- ///
- ///
- public static async Task Uri(Web3 web3, string contractAddress, string tokenId)
- {
- const string ipfsPath = "https://ipfs.io/ipfs/";
- var contract = web3.ContractBuilder.Build(ABI.Erc1155, contractAddress);
- if (tokenId.StartsWith("0x"))
- {
- string convertUri = tokenId.Replace("0x", "f");
- return ipfsPath + convertUri;
- }
- var contractData = await contract.Call(EthMethod.Uri, new object[]
- {
- tokenId
- });
- return contractData[0].ToString();
- }
-
- ///
- /// Mints ERC721 token
- ///
- ///
- ///
- ///
- ///
- ///
- ///
- public static async Task