This is our C# code on unity
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using TMPro;
using System.Numerics;
using System;
using Newtonsoft.Json;
using Web3Unity.Scripts.Library.Ethers.Contracts;
using Web3Unity.Scripts.Library.Ethers.Providers;
using Web3Unity.Scripts.Library.ETHEREUEM.EIP;
public class GameController : MonoBehaviour
{
public static string TokenContract = "contract address"; // token contract
public static string TokenABI = "abi"; // contract ABI
public static string RPC = "RPC"; // RPC node
// System UI
public TextMeshProUGUI ConnectedWallet;
public TextMeshProUGUI TokenBalance;
public TextMeshProUGUI TxStatus;
// UI for buying NFTs
public TextMeshProUGUI SellerAccount;
public TextMeshProUGUI Price;
private void Start()
{
// shows account of the connected wallet
ConnectedWallet.text = PlayerPrefs.GetString("Account");
// Transfer of the ERC20 token
//TransferToken();
}
// code to test our connection with smart contracts
public async void FetchBalance()
{
// using method
string method = "balanceOf";
// parameter for the method
string _owner = PlayerPrefs.GetString("Account");
// RPC endpoint
var provider = new JsonRpcProvider(RPC);
// data to interact with smart contracts
var contract = new Contract(TokenABI, TokenContract, provider);
var data = await contract.Call(method, new object[]
{
// method's parameter
_owner,
});
// testing sanity
print(data[0].ToString());
}
}