Web3WalletSendArray.cs 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637
  1. using UnityEngine;
  2. using Web3Unity.Scripts.Library.Ethers.Contracts;
  3. using Web3Unity.Scripts.Library.Web3Wallet;
  4. public class Web3WalletSendArray : MonoBehaviour
  5. {
  6. public async void SendArrayObject()
  7. {
  8. // https://chainlist.org/
  9. var chainId = "5"; // goerli
  10. // contract to interact with
  11. var contractAddress = "0x5244d0453A727EDa96299384370359f4A2B5b20a";
  12. // value in wei
  13. var value = "0";
  14. // abi in json format
  15. var abi =
  16. "[{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"_addresses\",\"type\":\"address[]\"}],\"name\":\"setStore\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"bought\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getStore\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"}]";
  17. // smart contract method to call
  18. var method = "setStore";
  19. string[] stringArray =
  20. {"0xFb3aECf08940785D4fB3Ad87cDC6e1Ceb20e9aac", "0x92d4040e4f3591e60644aaa483821d1bd87001e3"};
  21. var contract = new Contract(abi, contractAddress);
  22. // gas limit OPTIONAL
  23. var gasLimit = "";
  24. // gas price OPTIONAL
  25. var gasPrice = "";
  26. Debug.Log("Contract: " + contract);
  27. var calldata = contract.Calldata(method, new object[]
  28. {
  29. stringArray
  30. });
  31. Debug.Log("Contract Data: " + calldata);
  32. // send transaction
  33. var response = await Web3Wallet.SendTransaction(chainId, contractAddress, value, calldata, gasLimit, gasPrice);
  34. print(response);
  35. }
  36. }