diff --git a/xchange-core/src/main/java/org/knowm/xchange/service/trade/params/HistoryParamsFundingType.java b/xchange-core/src/main/java/org/knowm/xchange/service/trade/params/HistoryParamsFundingType.java new file mode 100644 index 00000000000..3bf8650d424 --- /dev/null +++ b/xchange-core/src/main/java/org/knowm/xchange/service/trade/params/HistoryParamsFundingType.java @@ -0,0 +1,10 @@ +package org.knowm.xchange.service.trade.params; + +import org.knowm.xchange.dto.account.FundingRecord; + +public interface HistoryParamsFundingType extends TradeHistoryParams { + + FundingRecord.Type getType(); + + void setType(FundingRecord.Type type); +} diff --git a/xchange-examples/src/main/java/org/knowm/xchange/examples/kraken/account/KrakenAccountDemo.java b/xchange-examples/src/main/java/org/knowm/xchange/examples/kraken/account/KrakenAccountDemo.java index fe8f4d572b5..4d80bf695b6 100644 --- a/xchange-examples/src/main/java/org/knowm/xchange/examples/kraken/account/KrakenAccountDemo.java +++ b/xchange-examples/src/main/java/org/knowm/xchange/examples/kraken/account/KrakenAccountDemo.java @@ -12,6 +12,7 @@ import org.knowm.xchange.examples.util.AccountServiceTestUtil; import org.knowm.xchange.kraken.service.KrakenAccountServiceRaw; import org.knowm.xchange.service.account.AccountService; +import org.knowm.xchange.service.trade.params.HistoryParamsFundingType; import org.knowm.xchange.service.trade.params.TradeHistoryParamCurrencies; import org.knowm.xchange.service.trade.params.TradeHistoryParams; import org.knowm.xchange.service.trade.params.TradeHistoryParamsTimeSpan; @@ -57,6 +58,10 @@ private static void fundingHistory(AccountService accountService) throws IOExcep timeSpanParam.setStartTime(new Date(System.currentTimeMillis() - (1 * 12 * 30 * 24 * 60 * 60 * 1000L))); } + if (params instanceof HistoryParamsFundingType) { + ((HistoryParamsFundingType) params).setType(FundingRecord.Type.DEPOSIT); + } + if (params instanceof TradeHistoryParamCurrencies) { final TradeHistoryParamCurrencies currenciesParam = (TradeHistoryParamCurrencies) params; currenciesParam.setCurrencies(new Currency[] {Currency.BTC, Currency.USD}); diff --git a/xchange-kraken/src/main/java/org/knowm/xchange/kraken/service/KrakenAccountService.java b/xchange-kraken/src/main/java/org/knowm/xchange/kraken/service/KrakenAccountService.java index 1be9bca6a1f..8365f6b0405 100644 --- a/xchange-kraken/src/main/java/org/knowm/xchange/kraken/service/KrakenAccountService.java +++ b/xchange-kraken/src/main/java/org/knowm/xchange/kraken/service/KrakenAccountService.java @@ -14,8 +14,10 @@ import org.knowm.xchange.exceptions.NotYetImplementedForExchangeException; import org.knowm.xchange.kraken.KrakenAdapters; import org.knowm.xchange.kraken.dto.account.KrakenDepositAddress; +import org.knowm.xchange.kraken.dto.account.LedgerType; import org.knowm.xchange.service.account.AccountService; import org.knowm.xchange.service.trade.params.DefaultTradeHistoryParamsTimeSpan; +import org.knowm.xchange.service.trade.params.HistoryParamsFundingType; import org.knowm.xchange.service.trade.params.TradeHistoryParamCurrencies; import org.knowm.xchange.service.trade.params.TradeHistoryParamOffset; import org.knowm.xchange.service.trade.params.TradeHistoryParams; @@ -86,15 +88,23 @@ public List getFundingHistory(TradeHistoryParams params) throws E } } - return KrakenAdapters.adaptFundingHistory(getKrakenLedgerInfo(null, startTime, endTime, offset, currencies)); + LedgerType ledgerType = null; + if (params instanceof HistoryParamsFundingType) { + final FundingRecord.Type type = ((HistoryParamsFundingType) params).getType(); + ledgerType = type == FundingRecord.Type.DEPOSIT ? LedgerType.DEPOSIT + : type == FundingRecord.Type.WITHDRAWAL ? LedgerType.WITHDRAWAL + : null; + } + return KrakenAdapters.adaptFundingHistory(getKrakenLedgerInfo(ledgerType, startTime, endTime, offset, currencies)); } public static class KrakenFundingHistoryParams extends DefaultTradeHistoryParamsTimeSpan - implements TradeHistoryParamOffset, TradeHistoryParamCurrencies{ + implements TradeHistoryParamOffset, TradeHistoryParamCurrencies, HistoryParamsFundingType { private Long offset; private Currency[] currencies; + private FundingRecord.Type type; public KrakenFundingHistoryParams(final Date startTime, final Date endTime, final Long offset, final Currency... currencies) { super(startTime, endTime); @@ -121,6 +131,16 @@ public void setCurrencies(Currency[] currencies) { public Currency[] getCurrencies() { return this.currencies; } + + @Override + public FundingRecord.Type getType() { + return type; + } + + @Override + public void setType(FundingRecord.Type type) { + this.type = type; + } } }