Added support for EUR in coinmarketcap

This commit is contained in:
kkyovsky 2018-03-23 11:45:07 +01:00
parent 65087288d5
commit 2c7a378100
5 changed files with 40 additions and 9 deletions

View File

@ -112,7 +112,11 @@ public class DashExtension implements IExtension{
}
return new FixPriceRateSource(rate, preferedFiatCurrency);
} else if ("coinmarketcap".equalsIgnoreCase(exchangeType)) {
return new CoinmarketcapRateSource();
String preferedFiatCurrency = ICurrencies.USD;
if (st.hasMoreTokens()) {
preferedFiatCurrency = st.nextToken().toUpperCase();
}
return new CoinmarketcapRateSource(preferedFiatCurrency);
}
}
return null;
@ -122,6 +126,7 @@ public class DashExtension implements IExtension{
public Set<String> getSupportedCryptoCurrencies() {
Set<String> result = new HashSet<String>();
result.add(ICurrencies.BTC);
result.add(ICurrencies.BTX);
result.add(ICurrencies.BCH);
result.add(ICurrencies.LTC);
result.add(ICurrencies.XMR);

View File

@ -14,6 +14,7 @@ public class CMCTicker {
private String symbol;
private BigDecimal rank;
private BigDecimal price_usd;
private BigDecimal price_eur;
private BigDecimal price_btc;
@JsonProperty("24h_volume_usd")
@ -67,6 +68,14 @@ public class CMCTicker {
this.price_usd = price_usd;
}
public BigDecimal getPrice_eur() {
return price_eur;
}
public void setPrice_eur(BigDecimal price_eur) {
this.price_eur = price_eur;
}
public BigDecimal getPrice_btc() {
return price_btc;
}

View File

@ -16,6 +16,18 @@ import si.mazi.rescu.RestProxyFactory;
public class CoinmarketcapRateSource implements IRateSource {
private ICoinmarketcapAPI api;
private String preferredFiatCurrency = ICurrencies.USD;
public CoinmarketcapRateSource(String preferedFiatCurrency) {
this();
if (ICurrencies.EUR.equalsIgnoreCase(preferedFiatCurrency)) {
this.preferredFiatCurrency = ICurrencies.EUR;
}
if (ICurrencies.USD.equalsIgnoreCase(preferedFiatCurrency)) {
this.preferredFiatCurrency = ICurrencies.USD;
}
}
public CoinmarketcapRateSource() {
api = RestProxyFactory.createProxy(ICoinmarketcapAPI.class, "https://api.coinmarketcap.com");
}
@ -25,6 +37,7 @@ public class CoinmarketcapRateSource implements IRateSource {
Set<String> result = new HashSet<String>();
result.add(ICurrencies.BTC);
result.add(ICurrencies.BCH);
result.add(ICurrencies.BTX);
result.add(ICurrencies.LTC);
result.add(ICurrencies.ETH);
result.add(ICurrencies.DASH);
@ -37,6 +50,7 @@ public class CoinmarketcapRateSource implements IRateSource {
public Set<String> getFiatCurrencies() {
Set<String> result = new HashSet<String>();
result.add(ICurrencies.USD);
result.add(ICurrencies.EUR);
return result;
}
@ -52,19 +66,23 @@ public class CoinmarketcapRateSource implements IRateSource {
if (!getFiatCurrencies().contains(fiatCurrency)) {
return null;
}
CMCTicker[] tickers = api.getTickers();
CMCTicker[] tickers = api.getTickers(fiatCurrency);
for (int i = 0; i < tickers.length; i++) {
CMCTicker ticker = tickers[i];
if (cryptoCurrency.equalsIgnoreCase(ticker.getSymbol())) {
if (ICurrencies.EUR.equalsIgnoreCase(fiatCurrency)) {
return ticker.getPrice_eur();
}else{
return ticker.getPrice_usd();
}
}
}
return null;
}
// public static void main(String[] args) {
// CoinmarketcapRateSource rs = new CoinmarketcapRateSource();
// BigDecimal exchangeRateLast = rs.getExchangeRateLast(ICurrencies.BTC, ICurrencies.USD);
// CoinmarketcapRateSource rs = new CoinmarketcapRateSource(ICurrencies.EUR);
// BigDecimal exchangeRateLast = rs.getExchangeRateLast(ICurrencies.BTC, ICurrencies.EUR);
// System.out.println("exchangeRateLast = " + exchangeRateLast);
// }
}

View File

@ -17,12 +17,10 @@
************************************************************************************/
package com.generalbytes.batm.server.extensions.extra.dash.sources.coinmarketcap;
import com.generalbytes.batm.server.extensions.extra.dash.sources.cddash.CryptodiggersResponse;
import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.PathParam;
import javax.ws.rs.Produces;
import javax.ws.rs.QueryParam;
import javax.ws.rs.core.MediaType;
@Path("/v1/ticker")
@ -30,5 +28,5 @@ import javax.ws.rs.core.MediaType;
public interface ICoinmarketcapAPI {
@GET
@Path("/")
CMCTicker[] getTickers();
CMCTicker[] getTickers(@QueryParam("convert") String fiatCurrency);
}

View File

@ -55,6 +55,7 @@
<cryptocurrency>BTC</cryptocurrency>
</ratesource>
<ratesource prefix="coinmarketcap" name ="CoinMarketCap.com" >
<param name="fiatcurrency" />
<cryptocurrency>BTC</cryptocurrency>
<cryptocurrency>BCH</cryptocurrency>
<cryptocurrency>LTC</cryptocurrency>