MultiversX Unity Tools
  • Overview
  • Demo App
  • Setup Guide
  • Quick Start
  • Video Tutorials
  • Complete API
    • CallSCMethod
    • CheckTransactionStatus
    • Connect
    • DeepLinkLogin
    • Disconnect
    • GetApiProvider
    • GetConnectedAccount
    • GetNetworkConfig
    • GetRequest
    • IsWalletConnected
    • LoadAllTokens
    • LoadImage
    • LoadNetworkConfig
    • LoadWalletNFTs
    • MakeSCQuery
    • PostRequest
    • SendEGLDTransaction
    • SendESDTTransaction
    • SendMultipleTrasactions
    • SendNFT
    • SignMessage
    • SignMultipleTrasactions
    • RefreshAccount
  • Releases
Powered by GitBook
On this page
  • Description
  • Declaration
  • Parameters
  • Example
  1. Complete API

SendESDTTransaction

Description

Send an ESDT transaction for signing into the xPortal wallet. After it is signed the transaction will be automatically broadcasted to the blockchain.

Declaration

public static void SendESDTTransaction(string destinationAddress, ESDT token, string amount, UnityAction<CompleteCallback<string[]>> completeMethod)

Parameters

Name
Description

destinationAddress

The erd address of the receiver.

token

Token to send.

amount

Amount of token to send(in decimals) as a string.

completeMethod

Callback to track the status of the transaction. At complete, the message will be the transaction hash.

Example

public class Test : MonoBehaviour
{
    private string destinationAddress = "erd1jza9qqw0l24svfmm2u8wj24gdf84hksd5xrctk0s0a36leyqptgs5whlhf";
    private string amount = "1";

    //define the token
    private ESDT USDC = ESDT.ESDT_TOKEN(ESDTTokenType.FungibleESDT, "USDC", "USDC-8d4068", 6);

    public void SendUSDC()
    {
        //send transaction
        MultiversX.UnityTools.API.SendESDTTransaction(destinationAddress, USDC, amount, CompleteMethod);
    }

    private void CompleteMethod(CompleteCallback<string[]> result)
    {
        switch (result.status)
        {
            case OperationStatus.InProgress:
                Debug.Log($"Waiting for xPortal signature");
                break;
            case OperationStatus.Error:
                Debug.LogError($"{result.errorMessage}");
                break;
            case OperationStatus.Success:
                //result.data contains the hash of the transaction
                //at this point transaction is broadcasted to the blockchain to be processed
                //use this method to check if it was processed succesfully or not
                MultiversX.UnityTools.API.CheckTransactionStatus(result.data, TransactionProcessed, 1);
                break;
        }
    }

    private void TransactionProcessed(CompleteCallback<Transaction[]> result)
    {
        switch (result.status)
        {
            case OperationStatus.InProgress:
                foreach (Transaction transaction in result.data)
                {
                    Debug.Log($"Tx: {transaction.TxHash} : {transaction.Status}");
                }
                break;
            case OperationStatus.Success:
                Debug.Log("Success");
                break;

            case OperationStatus.Error:
                Debug.LogError($"{result.status} {result.errorMessage}");
                foreach (Transaction transaction in result.data)
                {
                    //the GetLogs() will return additional info about why the transaction failed.
                    Debug.Log($"Tx: {transaction.TxHash} : {transaction.Status} {transaction.GetLogs()}");
                }
                break;
        }
    }
}
PreviousSendEGLDTransactionNextSendMultipleTrasactions

Last updated 1 year ago