From 59ee1e0bb9cfc36fe7e075de156852bfd627a4af Mon Sep 17 00:00:00 2001 From: Vexta Project Date: Tue, 8 Sep 2026 21:28:46 +0000 Subject: [PATCH] Fix fiat balance price source --- .../org/vextaproject/wallet/WalletActivity.kt | 61 +++++++++++++++---- 1 file changed, 50 insertions(+), 11 deletions(-) diff --git a/app/src/main/java/org/vextaproject/wallet/WalletActivity.kt b/app/src/main/java/org/vextaproject/wallet/WalletActivity.kt index 561c9f9..254622a 100644 --- a/app/src/main/java/org/vextaproject/wallet/WalletActivity.kt +++ b/app/src/main/java/org/vextaproject/wallet/WalletActivity.kt @@ -1825,22 +1825,56 @@ class WalletActivity : FragmentActivity() { ) { Thread { try { - val nestExJson = - org.json.JSONObject( - java.net.URL( - "https://trade.nestex.one/api/cg/tickers/VTX_USDT" - ).readText() + fun readJson(url: String): org.json.JSONObject { + val connection = + java.net.URL(url) + .openConnection() as + java.net.HttpURLConnection + + try { + connection.requestMethod = "GET" + connection.connectTimeout = 10_000 + connection.readTimeout = 10_000 + connection.useCaches = false + connection.setRequestProperty( + "User-Agent", + "Mozilla/5.0" + ) + connection.setRequestProperty( + "Accept", + "application/json" + ) + + if (connection.responseCode !in 200..299) { + throw java.io.IOException( + "HTTP ${connection.responseCode} for $url" + ) + } + + return org.json.JSONObject( + connection.inputStream + .bufferedReader() + .use { it.readText() } + ) + } finally { + connection.disconnect() + } + } + + val priceJson = + readJson( + "https://vexta-pool.co.uk/vextaprice.json" ) val vtxUsdt = - nestExJson.getString("last_price") + priceJson.getString("price") .toDouble() + require(vtxUsdt > 0.0) + val fxJson = - org.json.JSONObject( - java.net.URL( - "https://api.frankfurter.app/latest?from=USD&to=GBP,EUR" - ).readText() + readJson( + "https://api.frankfurter.app/latest?from=USD&to=GBP,EUR" ) val rates = @@ -1869,7 +1903,12 @@ class WalletActivity : FragmentActivity() { runOnUiThread { onLoaded(values) } - } catch (_: Exception) { + } catch (error: Exception) { + android.util.Log.e( + "VextaFiat", + "Unable to load fiat values", + error + ) } }.start() }