@@ -104,16 +104,21 @@ ApplicationWindow {
104
104
105
105
// {provider name: {ticker: price_api_url}}
106
106
// API response schema depends on the provider
107
- // fiat currencies also hard coded in SettingsLayout.qml
108
- property var fiatPriceAPIs: [" usd" , " eur" ].reduce (function (obj , x ) {
107
+ property var fiatCurrencies: [" usd" , " eur" , " aed" , " ars" , " aud" , " bdt" , " bhd" , " brl" , " cad" , " chf" , " clp" , " cny" , " czk" , " gbp" , " hkd" ,
108
+ " huf" , " idr" , " ils" , " inr" , " jpy" , " krw" , " kwd" , " lkr" , " mmk" , " mxn" , " myr" , " ngn" , " nok" , " nzd" , " php" ,
109
+ " pkr" , " pln" , " rub" , " sar" , " sek" , " sgd" , " thb" , " try" , " twd" , " uah" , " vef" , " vnd" , " zar" , " xau" ];
110
+ property var fiatPriceAPIs: fiatCurrencies .reduce (function (obj , x ) {
109
111
const key = ` xmr${ x} ` ; // e.g. xmrusd
110
- const xUp = x .toUpperCase (); // e.g. usd -> USD
111
- obj[" kraken" ][key] = ` https://api.kraken.com/0/public/Ticker?pair=XMR${ xUp} ` ;
112
+ if (x === " usd" || x === " eur" ) {
113
+ // Kraken only supports XMRUSD and XMREUR
114
+ obj[" kraken" ][key] = ` https://api.kraken.com/0/public/Ticker?pair=XMR${ x} ` ;
115
+ }
112
116
obj[" coingecko" ][key] = ` https://api.coingecko.com/api/v3/simple/price?ids=monero&vs_currencies=${ x} ` ;
113
- obj[" cryptocompare" ][key] = ` https://min-api.cryptocompare.com/data/price?fsym=XMR&tsyms=${ xUp } ` ;
117
+ obj[" cryptocompare" ][key] = ` https://min-api.cryptocompare.com/data/price?fsym=XMR&tsyms=${ x } ` ;
114
118
return obj;
115
119
}, {" kraken" : {}, " coingecko" : {}, " cryptocompare" : {}})
116
-
120
+ // if the user is using Kraken, the following is used if the user wants non USD/EUR
121
+ property string fiatPriceBackupProvider: " coingecko"
117
122
// true if wallet ever synchronized
118
123
property bool walletInitialized : false
119
124
@@ -1143,7 +1148,7 @@ ApplicationWindow {
1143
1148
if (persistentSettings .fiatPriceEnabled )
1144
1149
appWindow .fiatApiRefresh ();
1145
1150
}
1146
- triggeredOnStart: false
1151
+ triggeredOnStart: true
1147
1152
}
1148
1153
1149
1154
function fiatApiParseTicker (url , resp , currency ){
@@ -1153,20 +1158,21 @@ ApplicationWindow {
1153
1158
appWindow .fiatApiError (" Kraken API has error(s)" );
1154
1159
return ;
1155
1160
}
1156
- // currency is of the form xmr[a-Z]+. Replaces only starting XMR
1157
- var key = ` ${ currency} ` . replace ( " xmr " , " xxmrz " ).toUpperCase ();
1161
+ // i.e. xmr[a-z]+ -> XXMRZ[A-Z]+
1162
+ var key = ` XXMRZ ${ currency . substring ( 3 ).toUpperCase ()} ` ;
1158
1163
var ticker = resp .result [key][" c" ][0 ];
1159
1164
return ticker;
1160
1165
} else if (url .startsWith (" https://api.coingecko.com/api/v3/" )){
1161
- // i.e. xmr[a-Z ]+ -> [a-Z ]+
1162
- var key = currency .replace ( " xmr " , " " );
1166
+ // i.e. xmr[a-z ]+ -> [a-z ]+
1167
+ var key = currency .substring ( 3 );
1163
1168
if (! resp .hasOwnProperty (" monero" ) || ! resp[" monero" ].hasOwnProperty (key)){
1164
1169
appWindow .fiatApiError (" Coingecko API has error(s)" );
1165
1170
return ;
1166
1171
}
1167
1172
return resp[" monero" ][key];
1168
1173
} else if (url .startsWith (" https://min-api.cryptocompare.com/data/" )){
1169
- var key = currency .replace (" xmr" , " " ).toUpperCase ();
1174
+ // i.e. xmr[a-z]+ -> [A-Z]+
1175
+ var key = currency .substring (3 ).toUpperCase ();
1170
1176
if (! resp .hasOwnProperty (key)){
1171
1177
appWindow .fiatApiError (" cryptocompare API has error(s)" );
1172
1178
return ;
@@ -1237,15 +1243,15 @@ ApplicationWindow {
1237
1243
var provider = appWindow .fiatPriceAPIs [userProvider];
1238
1244
var userCurrency = persistentSettings .fiatPriceCurrency ;
1239
1245
if (! provider .hasOwnProperty (userCurrency)){
1240
- appWindow .fiatApiError (" currency \" " + userCurrency + " \" not implemented " );
1246
+ appWindow .fiatApiError (" currency \" " + userCurrency + " \" is not supported by provider \" " + userProvider + " \" " );
1241
1247
}
1242
1248
1243
1249
var url = provider[userCurrency];
1244
1250
network .getJSON (url, fiatApiJsonReceived);
1245
1251
}
1246
1252
1247
1253
function fiatApiCurrencySymbol () {
1248
- return persistentSettings .fiatPriceCurrency .replace ( " xmr " , " " ).toUpperCase ();
1254
+ return persistentSettings .fiatPriceCurrency .substring ( 3 ).toUpperCase ();
1249
1255
}
1250
1256
1251
1257
function fiatApiConvertToFiat (amount ) {
@@ -1339,7 +1345,7 @@ ApplicationWindow {
1339
1345
}
1340
1346
1341
1347
if (persistentSettings .fiatPriceEnabled ){
1342
- appWindow .fiatApiRefresh ();
1348
+ // appWindow.fiatApiRefresh();
1343
1349
appWindow .fiatTimerStart ();
1344
1350
}
1345
1351
0 commit comments