Web3WalletTransfer721Example.cs 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. using System.Diagnostics.Contracts;
  2. using UnityEngine;
  3. using Web3Unity.Scripts.Library.ETHEREUEM.EIP;
  4. using Web3Unity.Scripts.Library.Ethers.Contracts;
  5. using Web3Unity.Scripts.Library.Web3Wallet;
  6. using Web3Unity.Scripts.Prefabs;
  7. using Contract = Web3Unity.Scripts.Library.Ethers.Contracts.Contract;
  8. public class Web3WalletTransfer721Example : MonoBehaviour
  9. {
  10. public async void OnTransfer721()
  11. {
  12. // https://chainlist.org/
  13. var chainId = "5"; // goerli
  14. // contract to interact with
  15. var contract = "0x31A61D3B956d9E95e0b9434BEf24bfEebB48b2c5";
  16. // value in wei
  17. var value = "0";
  18. // abi in json format
  19. var abi = ABI.ERC_721;
  20. // smart contract method to call
  21. var method = ETH_METHOD.SafeTransferFrom;
  22. // account to send erc721 to
  23. var toAccount = PlayerPrefs.GetString("Account");
  24. // token id to send
  25. var tokenId = "0";
  26. var contractData = new Contract(abi, contract);
  27. var data = contractData.Calldata(method, new object[]
  28. {
  29. toAccount,
  30. toAccount,
  31. tokenId
  32. });
  33. print(data);
  34. // gas limit OPTIONAL
  35. var gasLimit = "";
  36. // gas price OPTIONAL
  37. var gasPrice = "";
  38. // send transaction
  39. var response = await Web3Wallet.SendTransaction(chainId, contract, value, data, gasLimit, gasPrice);
  40. print(response);
  41. }
  42. }