Updated on 2026-08-14

This commit is contained in:
Tangem 2019-09-18 12:14:54 +03:00
parent 8776b23e97
commit 98a5774baa
2 changed files with 58 additions and 14 deletions

View file

@ -26,7 +26,14 @@ public class ServerApiAdalite {
private int requestsCount = 0;
public static String lastNode;
private final String adaliteURL1 = "https://explorer2.adalite.io"; //TODO: make random selection, add more?, move
private final String adaliteURL2 = "https://nodes.southeastasia.cloudapp.azure.com";
private String currentURL = adaliteURL1;
public String getCurrentURL() {
return currentURL;
}
public boolean isRequestsSequenceCompleted() {
Log.i(TAG, String.format("isRequestsSequenceCompleted: %s (%d requests left)", String.valueOf(requestsCount <= 0), requestsCount));
@ -50,12 +57,14 @@ public class ServerApiAdalite {
}
public void requestData(String method, String wallet, String tx) {
requestData(method, wallet, tx, false);
}
public void requestData(String method, String wallet, String tx, boolean isRetry) {
requestsCount++;
String adaliteURL = "https://explorer2.adalite.io"; //TODO: make random selection
this.lastNode = adaliteURL; //TODO: show node instead of URL
Retrofit retrofitAdalite = new Retrofit.Builder()
.baseUrl(adaliteURL)
.baseUrl(currentURL)
.addConverterFactory(ScalarsConverterFactory.create())
.addConverterFactory(GsonConverterFactory.create())
.build();
@ -75,16 +84,26 @@ public class ServerApiAdalite {
responseListener.onSuccess(method, response.body());
Log.i(TAG, "requestData " + method + " onResponse " + response.code());
} else {
responseListener.onFail(method, String.valueOf(response.code()));
Log.e(TAG, "requestData " + method + " onResponse " + response.code());
if (!isRetry) {
retryRequest(method, wallet, tx);
} else {
responseListener.onFail(method, String.valueOf(response.code()));
}
}
}
@Override
public void onFailure(@NonNull Call<AdaliteResponse> call, @NonNull Throwable t) {
requestsCount--;
responseListener.onFail(method, String.valueOf(t.getMessage()));
Log.e(TAG, "requestData " + method + " onFailure " + t.getMessage());
requestsCount--;
if (!isRetry) {
retryRequest(method, wallet, tx);
} else {
responseListener.onFail(method, String.valueOf(t.getMessage()));
}
}
});
break;
@ -100,16 +119,26 @@ public class ServerApiAdalite {
responseListener.onSuccess(method, response.body());
Log.i(TAG, "requestData " + method + " onResponse " + response.code());
} else {
responseListener.onFail(method, String.valueOf(response.code()));
Log.e(TAG, "requestData " + method + " onResponse " + response.code());
if (!isRetry) {
retryRequest(method, wallet, tx);
} else {
responseListener.onFail(method, String.valueOf(response.code()));
}
}
}
@Override
public void onFailure(@NonNull Call<AdaliteResponseUtxo> call, @NonNull Throwable t) {
requestsCount--;
responseListener.onFail(method, String.valueOf(t.getMessage()));
Log.e(TAG, "requestData " + method + " onFailure " + t.getMessage());
requestsCount--;
if (!isRetry) {
retryRequest(method, wallet, tx);
} else {
responseListener.onFail(method, String.valueOf(t.getMessage()));
}
}
});
break;
@ -125,16 +154,26 @@ public class ServerApiAdalite {
responseListener.onSuccess(method, response.body());
Log.i(TAG, "requestData " + method + " onResponse " + response.code());
} else {
responseListener.onFail(method, String.valueOf(response.code()));
Log.e(TAG, "requestData " + method + " onResponse " + response.code());
if (!isRetry) {
retryRequest(method, wallet, tx);
} else {
responseListener.onFail(method, String.valueOf(response.code()));
}
}
}
@Override
public void onFailure(@NonNull Call<List> call, @NonNull Throwable t) {
requestsCount--;
responseListener.onFail(method, String.valueOf(t.getMessage()));
Log.e(TAG, "requestData " + method + " onFailure " + t.getMessage());
requestsCount--;
if (!isRetry) {
retryRequest(method, wallet, tx);
} else {
responseListener.onFail(method, String.valueOf(t.getMessage()));
}
}
});
break;
@ -147,5 +186,10 @@ public class ServerApiAdalite {
}
}
private void retryRequest(String method, String wallet, String tx) {
currentURL = adaliteURL2;
requestData(method, wallet, tx, true);
}
}

View file

@ -618,7 +618,7 @@ public class CardanoEngine extends CoinEngine {
}
coinData.setBalanceReceived(true);
coinData.setBalance(adaliteResponse.getRight().getCaBalance().getGetCoin());
coinData.setValidationNodeDescription(ServerApiAdalite.lastNode);
coinData.setValidationNodeDescription(serverApiAdalite.getCurrentURL());
//check pending
if (App.pendingTransactionsStorage.hasTransactions(ctx.getCard())) {