private IEnumerator ProcessTransactions(AccountTransactions accountTransactions, int currentPage, int itemsPerPage, int totalPages, Action successCallback = null, Action errorCallback = null) { if (currentPage < totalPages) { yield return(PhantasmaApi.GetAddressTransactions(Key.Address.Text, (uint)currentPage + 1, (uint)itemsPerPage, (accountTxs, cPage, tPages) => { LastTransactions.AddRange(accountTransactions.txs); StartCoroutine(ProcessTransactions(accountTxs, cPage, itemsPerPage, tPages, successCallback, errorCallback)); }, (errorType, errorMessage) => { CanvasManager.Instance.HideOperationPopup(); CanvasManager.Instance.ShowResultPopup(EOPERATION_RESULT.FAIL, errorType + " - " + errorMessage); })); } else { CanvasManager.Instance.HideOperationPopup(); if (totalPages == 0) { CanvasManager.Instance.transactionsHistoryMenu.ShowRefreshButton("No transactions associated to your address on the blockchain."); } else { LastTransactions.AddRange(accountTransactions.txs); if (successCallback != null) { successCallback(); } } } }
private IEnumerator GetTransactionsHistoryCoroutine(Action successCallback = null, Action errorCallback = null) { CanvasManager.Instance.ShowOperationPopup("Fetching last transactions from the blockchain...", false); int itemsPerPage = 20; LastTransactions.Clear(); yield return(PhantasmaApi.GetAddressTransactions(Key.Address.Text, 1, (uint)itemsPerPage, (accountTransactions, currentPage, totalPages) => { StartCoroutine(ProcessTransactions(accountTransactions, currentPage, itemsPerPage, totalPages, successCallback, errorCallback)); }, (errorType, errorMessage) => { CanvasManager.Instance.HideOperationPopup(); CanvasManager.Instance.ShowResultPopup(EOPERATION_RESULT.FAIL, errorType + " - " + errorMessage); if (errorCallback != null) { errorCallback(); } })); }