Skip to content

Commit f34bf37

Browse files
committed
BTC-E api implemented
1 parent 2c09725 commit f34bf37

File tree

19 files changed

+306
-41
lines changed

19 files changed

+306
-41
lines changed

xchange-bitcoincharts/src/main/java/com/xeiam/xchange/bitcoincharts/service/polling/BitcoinChartsPollingMarketDataService.java

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@
2424
import java.io.IOException;
2525
import java.util.List;
2626

27+
import com.xeiam.xchange.dto.ExchangeInfo;
2728
import org.slf4j.Logger;
2829
import org.slf4j.LoggerFactory;
2930

@@ -123,7 +124,13 @@ public Trades getTrades(String tradableIdentifier, String currency, Object... ar
123124
throw new NotAvailableFromExchangeException();
124125
}
125126

126-
/**
127+
@Override
128+
public ExchangeInfo getExchangeInfo() throws IOException {
129+
130+
return null;
131+
}
132+
133+
/**
127134
* Verify
128135
*
129136
* @param tradableIdentifier The tradable identifier (e.g. BTC in BTC/USD)

xchange-bitcurex/src/main/java/com/xeiam/xchange/bitcurex/service/polling/BitcurexPollingMarketDataService.java

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@
2424
import java.io.IOException;
2525
import java.util.List;
2626

27+
import com.xeiam.xchange.dto.ExchangeInfo;
2728
import si.mazi.rescu.RestProxyFactory;
2829

2930
import com.xeiam.xchange.ExchangeSpecification;
@@ -111,7 +112,13 @@ public Trades getTrades(String tradableIdentifier, String currency, Object... ar
111112
return BitcurexAdapters.adaptTrades(bitcurexTrades, currency, tradableIdentifier);
112113
}
113114

114-
/**
115+
@Override
116+
public ExchangeInfo getExchangeInfo() throws IOException {
117+
118+
return null;
119+
}
120+
121+
/**
115122
* Verify
116123
*
117124
* @param tradableIdentifier The tradable identifier (e.g. BTC in BTC/USD)

xchange-bitstamp/src/main/java/com/xeiam/xchange/bitstamp/service/polling/BitstampPollingMarketDataService.java

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@
2424
import java.io.IOException;
2525
import java.util.List;
2626

27+
import com.xeiam.xchange.dto.ExchangeInfo;
2728
import si.mazi.rescu.RestProxyFactory;
2829

2930
import com.xeiam.xchange.ExchangeException;
@@ -107,7 +108,13 @@ else if (args.length == 1) {
107108
return BitstampAdapters.adaptTrades(transactions, tradableIdentifier, currency);
108109
}
109110

110-
/**
111+
@Override
112+
public ExchangeInfo getExchangeInfo() throws IOException {
113+
114+
return null;
115+
}
116+
117+
/**
111118
* Verify
112119
*
113120
* @param tradableIdentifier The tradable identifier (e.g. BTC in BTC/USD)

xchange-btcchina/src/main/java/com/xeiam/xchange/btcchina/service/polling/BTCChinaPollingMarketDataService.java

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@
2424
import java.io.IOException;
2525
import java.util.List;
2626

27+
import com.xeiam.xchange.dto.ExchangeInfo;
2728
import si.mazi.rescu.RestProxyFactory;
2829

2930
import com.xeiam.xchange.ExchangeSpecification;
@@ -112,7 +113,12 @@ public Trades getTrades(String tradableIdentifier, String currency, Object... ar
112113
return BTCChinaAdapters.adaptTrades(btcChinaTrades, currency, tradableIdentifier);
113114
}
114115

115-
/**
116+
@Override
117+
public ExchangeInfo getExchangeInfo() throws IOException {
118+
return null;
119+
}
120+
121+
/**
116122
* Verify
117123
*
118124
* @param tradableIdentifier The tradable identifier (e.g. BTC in BTC/USD)

xchange-btce/src/main/java/com/xeiam/xchange/btce/BTCE.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -53,10 +53,10 @@ public interface BTCE {
5353

5454
@GET
5555
@Path("3/depth/{pairs}")
56-
BTCEDepthV3 getDepthV3(@PathParam("pairs") String pairs, @DefaultValue("") @QueryParam("limit") int limit, @DefaultValue("1") @QueryParam("ignore_invalid") int ignoreInvalid) throws IOException;
56+
BTCEDepthV3 getDepthV3(@PathParam("pairs") String pairs, @DefaultValue("1") @QueryParam("limit") int limit, @DefaultValue("1") @QueryParam("ignore_invalid") int ignoreInvalid) throws IOException;
5757

5858
@GET
5959
@Path("3/trades/{pairs}")
60-
BTCETradesV3 getTradesV3(@PathParam("pairs") String pairs, @DefaultValue("") @QueryParam("limit") int limit, @DefaultValue("1") @QueryParam("ignore_invalid") int ignoreInvalid) throws IOException;
60+
BTCETradesV3 getTradesV3(@PathParam("pairs") String pairs, @DefaultValue("1") @QueryParam("limit") int limit, @DefaultValue("1") @QueryParam("ignore_invalid") int ignoreInvalid) throws IOException;
6161

6262
}

xchange-btce/src/main/java/com/xeiam/xchange/btce/BTCEAdapters.java

Lines changed: 14 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -22,12 +22,12 @@
2222
package com.xeiam.xchange.btce;
2323

2424
import java.math.BigDecimal;
25-
import java.util.ArrayList;
26-
import java.util.Date;
27-
import java.util.List;
28-
import java.util.Map;
25+
import java.util.*;
2926
import java.util.Map.Entry;
3027

28+
import com.xeiam.xchange.btce.dto.marketdata.BTCEInfoV3;
29+
import com.xeiam.xchange.currency.CurrencyPair;
30+
import com.xeiam.xchange.dto.ExchangeInfo;
3131
import org.joda.money.BigMoney;
3232
import org.joda.money.CurrencyUnit;
3333
import org.joda.money.IllegalCurrencyException;
@@ -216,7 +216,17 @@ public static Trades adaptTradeHistory(Map<Long, BTCETradeHistoryResult> tradeHi
216216
trades.add(new Trade(type, tradableAmount, tradableIdentifier, transactionCurrency, price, timeStamp, entry.getKey()));
217217
}
218218
return new Trades(trades);
219+
}
220+
221+
public static ExchangeInfo adaptExchangeInfo(BTCEInfoV3 infoV3) {
219222

223+
Set<String> btcePairs = infoV3.getPairs().keySet();
224+
List<CurrencyPair> pairs = new ArrayList<CurrencyPair>();
225+
for (String s : btcePairs) {
226+
String[] p = s.split("_");
227+
pairs.add(new CurrencyPair(p[0].toUpperCase(), p[1].toUpperCase()));
228+
}
229+
return new ExchangeInfo(pairs);
220230
}
221231

222232
}

xchange-btce/src/main/java/com/xeiam/xchange/btce/dto/marketdata/BTCEInfoV3.java

Lines changed: 32 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -21,31 +21,40 @@
2121
*/
2222
package com.xeiam.xchange.btce.dto.marketdata;
2323

24+
import com.fasterxml.jackson.annotation.JsonProperty;
25+
26+
import java.util.Map;
27+
2428
/**
2529
* Author: brox
26-
* Since: 11/14/13 1:00 AM
30+
*
31+
* Takes public BTC-E exchange info, such as valid currency pairs, fees, etc
2732
*/
2833
public class BTCEInfoV3 {
29-
// TODO: implement me
34+
35+
private final long serverTime;
36+
private final Map<String, BTCEPairInfo> pairs;
37+
38+
public BTCEInfoV3(@JsonProperty("server_time") long serverTime, @JsonProperty("pairs") Map<String, BTCEPairInfo> pairs) {
39+
40+
this.serverTime = serverTime;
41+
this.pairs = pairs;
42+
}
43+
44+
public long getServerTime() {
45+
46+
return serverTime;
47+
}
48+
49+
public Map<String, BTCEPairInfo> getPairs() {
50+
51+
return pairs;
52+
}
53+
54+
@Override
55+
public String toString() {
56+
57+
return "BTCEInfoV3 [serverTime=" + serverTime + "pairs=" + pairs.toString() + "]";
58+
}
59+
3060
}
31-
/*
32-
{"server_time":1384383452,"pairs":{
33-
"btc_usd":{"decimal_places":3,"min_price":0.1,"max_price":800,"min_amount":0.01,"hidden":0,"fee":0.2},
34-
"btc_rur":{"decimal_places":5,"min_price":1,"max_price":24000,"min_amount":0.1,"hidden":0,"fee":0.2},
35-
"btc_eur":{"decimal_places":5,"min_price":0.1,"max_price":800,"min_amount":0.1,"hidden":0,"fee":0.2},
36-
"ltc_btc":{"decimal_places":5,"min_price":0.0001,"max_price":10,"min_amount":0.1,"hidden":0,"fee":0.2},
37-
"ltc_usd":{"decimal_places":6,"min_price":0.0001,"max_price":100,"min_amount":0.1,"hidden":0,"fee":0.2},
38-
"ltc_rur":{"decimal_places":5,"min_price":0.1,"max_price":1000,"min_amount":0.1,"hidden":0,"fee":0.2},
39-
"ltc_eur":{"decimal_places":3,"min_price":0.0001,"max_price":100,"min_amount":0.1,"hidden":0,"fee":0.2},
40-
"nmc_btc":{"decimal_places":5,"min_price":0.0001,"max_price":10,"min_amount":0.1,"hidden":0,"fee":0.2},
41-
"nmc_usd":{"decimal_places":3,"min_price":0.001,"max_price":10,"min_amount":0.1,"hidden":0,"fee":0.2},
42-
"nvc_btc":{"decimal_places":5,"min_price":0.0001,"max_price":10,"min_amount":0.1,"hidden":0,"fee":0.2},
43-
"nvc_usd":{"decimal_places":3,"min_price":0.001,"max_price":10,"min_amount":0.1,"hidden":0,"fee":0.2},
44-
"usd_rur":{"decimal_places":5,"min_price":25,"max_price":40,"min_amount":0.1,"hidden":0,"fee":0.5},
45-
"eur_usd":{"decimal_places":5,"min_price":1,"max_price":2,"min_amount":0.1,"hidden":0,"fee":0.2},
46-
"trc_btc":{"decimal_places":5,"min_price":0.0001,"max_price":10,"min_amount":0.1,"hidden":0,"fee":0.2},
47-
"ppc_btc":{"decimal_places":5,"min_price":0.0001,"max_price":10,"min_amount":0.1,"hidden":0,"fee":0.2},
48-
"ftc_btc":{"decimal_places":5,"min_price":0.00001,"max_price":10,"min_amount":0.1,"hidden":0,"fee":0.2},
49-
"xpm_btc":{"decimal_places":5,"min_price":0.0001,"max_price":10,"min_amount":0.1,"hidden":0,"fee":0.2}
50-
}}
51-
*/
Lines changed: 70 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,70 @@
1+
package com.xeiam.xchange.btce.dto.marketdata;
2+
3+
import com.fasterxml.jackson.annotation.JsonProperty;
4+
5+
import java.math.BigDecimal;
6+
7+
/**
8+
* Author: brox
9+
*/
10+
11+
public class BTCEPairInfo {
12+
13+
private final int decimals;
14+
private final BigDecimal minPrice;
15+
private final BigDecimal maxPrice;
16+
private final BigDecimal minAmount;
17+
private final int hidden;
18+
private final BigDecimal fee;
19+
20+
public BTCEPairInfo(@JsonProperty("decimal_places") int decimals,
21+
@JsonProperty("min_price") BigDecimal minPrice,
22+
@JsonProperty("max_price") BigDecimal maxPrice,
23+
@JsonProperty("min_amount") BigDecimal minAmount,
24+
@JsonProperty("hidden") int hidden,
25+
@JsonProperty("fee") BigDecimal fee) {
26+
this.decimals = decimals;
27+
this.minPrice = minPrice;
28+
this.maxPrice = maxPrice;
29+
this.minAmount = minAmount;
30+
this.hidden = hidden;
31+
this.fee = fee;
32+
}
33+
34+
public int getDecimals() {
35+
36+
return decimals;
37+
}
38+
39+
public BigDecimal getMinPrice() {
40+
41+
return minPrice;
42+
}
43+
44+
public BigDecimal getMaxPrice() {
45+
46+
return maxPrice;
47+
}
48+
49+
public BigDecimal getMinAmount() {
50+
51+
return minAmount;
52+
}
53+
54+
public int getHidden() {
55+
56+
return hidden;
57+
}
58+
59+
public BigDecimal getFee() {
60+
61+
return fee;
62+
}
63+
64+
@Override
65+
public String toString() {
66+
67+
return "BTCEPairInfo [decimals=" + decimals + ", minPrice=" + minPrice + ", maxPrice=" + maxPrice + ", minAmount=" + minAmount + ", hidden=" + hidden + ", fee=" + fee + "]";
68+
}
69+
70+
}

xchange-btce/src/main/java/com/xeiam/xchange/btce/service/polling/BTCEPollingMarketDataService.java

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -24,11 +24,11 @@
2424
import java.io.IOException;
2525
import java.util.List;
2626

27-
import com.xeiam.xchange.btce.dto.marketdata.BTCEDepthV3;
27+
import com.xeiam.xchange.btce.dto.marketdata.*;
28+
import com.xeiam.xchange.dto.ExchangeInfo;
2829
import si.mazi.rescu.RestProxyFactory;
2930

3031
import com.xeiam.xchange.ExchangeSpecification;
31-
import com.xeiam.xchange.NotAvailableFromExchangeException;
3232
import com.xeiam.xchange.btce.BTCE;
3333
import com.xeiam.xchange.btce.BTCEAdapters;
3434
import com.xeiam.xchange.btce.BTCEUtils;
@@ -131,4 +131,10 @@ public List<CurrencyPair> getExchangeSymbols() {
131131
return BTCEUtils.CURRENCY_PAIRS;
132132
}
133133

134+
public ExchangeInfo getExchangeInfo() throws IOException {
135+
136+
BTCEInfoV3 infoV3 = btce.getInfoV3();
137+
return BTCEAdapters.adaptExchangeInfo(infoV3);
138+
}
139+
134140
}

xchange-campbx/src/main/java/com/xeiam/xchange/campbx/service/polling/CampBXPollingMarketDataService.java

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@
2424
import java.io.IOException;
2525
import java.util.List;
2626

27+
import com.xeiam.xchange.dto.ExchangeInfo;
2728
import org.slf4j.Logger;
2829
import org.slf4j.LoggerFactory;
2930

@@ -107,7 +108,13 @@ public Trades getTrades(String tradableIdentifier, String currency, Object... ar
107108
throw new NotAvailableFromExchangeException();
108109
}
109110

110-
/**
111+
@Override
112+
public ExchangeInfo getExchangeInfo() throws IOException {
113+
114+
return null;
115+
}
116+
117+
/**
111118
* Verify
112119
*
113120
* @param tradableIdentifier The tradable identifier (e.g. BTC in BTC/USD)

0 commit comments

Comments
 (0)