Skip to content

Commit

Permalink
Merge pull request #75 from donald-jackson/fixes/20240912-bitstamp-le…
Browse files Browse the repository at this point in the history
…dgers

Fixes/20240912 bitstamp ledgers
  • Loading branch information
donald-jackson authored Sep 18, 2024
2 parents e5cfa8d + 3c9be8c commit 1edb694
Show file tree
Hide file tree
Showing 3 changed files with 60 additions and 7 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -242,14 +242,25 @@ public static UserTrades adaptTradeHistory(BitstampUserTransaction[] bitstampUse
.timestamp(t.getDatetime())
.id(Long.toString(tradeId))
.orderId(Long.toString(t.getOrderId()))
.feeAmount(t.getFee())
.feeAmount(getFeeFromString(t.getFee()))
.feeCurrency(Currency.getInstance(t.getFeeCurrency().toUpperCase()))
.build();
trades.add(trade);
}
return new UserTrades(trades, lastTradeId, TradeSortType.SortByID);
}

private static BigDecimal getFeeFromString(String value) {
if("None".equals(value)) {
return BigDecimal.ZERO;
}
try {
return new BigDecimal(value);
} catch (NumberFormatException e) {
return BigDecimal.ZERO;
}
}

public static Map.Entry<String, BigDecimal> findNonzeroAmount(BitstampUserTransaction transaction)
throws ExchangeException {
for (Map.Entry<String, BigDecimal> entry : transaction.getAmounts().entrySet()) {
Expand Down Expand Up @@ -294,7 +305,7 @@ public static List<FundingRecord> adaptFundingHistory(
type,
FundingRecord.Status.COMPLETE,
null,
trans.getFee(),
getFeeFromString(trans.getFee()),
null);
fundingRecords.add(record);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ public final class BitstampUserTransaction {
private final long id;
private final long order_id;
private final TransactionType type;
private final BigDecimal fee;
private final String fee;
private final Map<String, BigDecimal> amounts = new HashMap<>();
// possible pairs at the moment: btcusd, btceur, eurusd, xrpusd, xrpeur, xrpbtc
private String base; // btc, eur, xrp
Expand All @@ -41,7 +41,7 @@ public BitstampUserTransaction(
@JsonProperty("id") long id,
@JsonProperty("order_id") long order_id,
@JsonProperty("type") TransactionType type,
@JsonProperty("fee") BigDecimal fee) {
@JsonProperty("fee") String fee) {

this.datetime = BitstampUtils.parseDate(datetime);
this.id = id;
Expand Down Expand Up @@ -123,7 +123,7 @@ public String getBaseCurrency() {
return base;
}

public BigDecimal getFee() {
public String getFee() {
return fee;
}

Expand Down Expand Up @@ -169,7 +169,9 @@ public enum TransactionType {
sentAssetsToStaking,
stakingReward,
referralReward,
interAccountTransfer;
interAccountTransfer,
settlementTransfer,
unknown;

@JsonCreator
public static TransactionType fromString(int type) {
Expand All @@ -194,10 +196,12 @@ public static TransactionType fromString(int type) {
return stakingReward;
case 32:
return referralReward;
case 33:
return settlementTransfer;
case 35:
return interAccountTransfer;
default:
throw new IllegalArgumentException(type + " has no corresponding value");
return unknown;
}
}
}
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
package org.knowm.xchange.bitstamp;

import java.util.Date;
import java.util.List;
import org.knowm.xchange.Exchange;
import org.knowm.xchange.ExchangeFactory;
import org.knowm.xchange.dto.account.AccountInfo;
import org.knowm.xchange.dto.account.FundingRecord;
import org.knowm.xchange.dto.trade.UserTrades;
import org.knowm.xchange.service.account.AccountService;
import org.knowm.xchange.service.trade.TradeService;
import org.knowm.xchange.service.trade.params.DefaultTradeHistoryParamsTimeSpan;

public class BitstampCliTester {
public static void main(String[] args) throws Exception{
Exchange exchange = ExchangeFactory.INSTANCE.createExchange(BitstampExchange.class, System.getenv("BITSTAMP_API_KEY"), System.getenv("BITSTAMP_SECRET_KEY"));

AccountService accountService = exchange.getAccountService();

DefaultTradeHistoryParamsTimeSpan defaultTradeHistoryParamsTimeSpan = new DefaultTradeHistoryParamsTimeSpan();
defaultTradeHistoryParamsTimeSpan.setStartTime(new Date(System.currentTimeMillis() - 1000 * 60 * 60 * 24));

List<FundingRecord> fundingRecordList= accountService.getFundingHistory(defaultTradeHistoryParamsTimeSpan);

System.out.println(fundingRecordList);


AccountInfo accountInfo = accountService.getAccountInfo();

System.out.println(accountInfo);

TradeService tradeService = exchange.getTradeService();

UserTrades userTrades = tradeService.getTradeHistory(tradeService.createTradeHistoryParams());

System.out.println(userTrades);
}
}

0 comments on commit 1edb694

Please sign in to comment.