using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using Newtonsoft.Json;
using Web3Unity.Scripts.Library.ETHEREUEM.EIP;
using Web3Unity.Scripts.Library.Ethers.Contracts;
using Web3Unity.Scripts.Library.Web3Wallet;

public class Web3WalletTransfer20Example : MonoBehaviour
{
    async public void OnTransfer20()
    {
        // https://chainlist.org/
        string chainId = "5"; // goerli
        // contract to interact with 
        string contract = "0xc778417e063141139fce010982780140aa0cd5ab";
        // value in wei
        string value = "0";
        // abi in json format
        string abi = "";//ABI.ERC_20;
        // smart contract method to call
        string method = "";//ETH_METHOD.Transfer;
        // account to send erc20 to
        string toAccount = "0xdD4c825203f97984e7867F11eeCc813A036089D1";
        // amount of erc20 tokens to send
        string amount = "1000000000000000";
        // create data to interact with smart contract
        var contractData = new Contract(abi, contract);
        var data = contractData.Calldata(method, new object[]
        {
            toAccount,
            amount
        });
        // gas limit OPTIONAL
        string gasLimit = "";
        // gas price OPTIONAL
        string gasPrice = "";
        // send transaction
        string response = await Web3Wallet.SendTransaction(chainId, contract, value, data, gasLimit, gasPrice);
        print(response);
    }
}
