WebGLSetArray.cs 1.7 KB

1234567891011121314151617181920212223242526272829303132333435
  1. using UnityEngine;
  2. using Web3Unity.Scripts.Library.Ethers.Contracts;
  3. #if UNITY_WEBGL
  4. public class WebGLSetArray : MonoBehaviour
  5. {
  6. public async void SetArrayObject()
  7. {
  8. // contract to interact with
  9. var contractAddress = "0x5244d0453A727EDa96299384370359f4A2B5b20a";
  10. // value in wei
  11. var value = "0";
  12. // abi in json format
  13. var abi =
  14. "[{\"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\"}]";
  15. // smart contract method to call
  16. var method = "setStore";
  17. string[] stringArray =
  18. {"0xFb3aECf08940785D4fB3Ad87cDC6e1Ceb20e9aac", "0x92d4040e4f3591e60644aaa483821d1bd87001e3"};
  19. var contract = new Contract(abi, contractAddress);
  20. // gas limit OPTIONAL
  21. var gasLimit = "";
  22. // gas price OPTIONAL
  23. var gasPrice = "";
  24. var calldata = contract.Calldata(method, new object[]
  25. {
  26. stringArray
  27. });
  28. Debug.Log("Contract Data: " + calldata[0]);
  29. // send transaction
  30. var response = await Web3GL.SendTransactionData(contractAddress, value, gasLimit, gasPrice, calldata);
  31. print(response);
  32. }
  33. }
  34. #endif