From bb8d745113cb7e98e41dcbd6b22778dcab5b01a1 Mon Sep 17 00:00:00 2001 From: Donald Jackson Date: Thu, 12 Sep 2024 11:58:41 +0200 Subject: [PATCH 1/5] [bitstamp] fix ledgers apis --- .../xchange/bitstamp/BitstampAdapters.java | 15 +++++++- .../dto/trade/BitstampUserTransaction.java | 14 ++++--- .../xchange/bitstamp/BitstampCliTester.java | 38 +++++++++++++++++++ 3 files changed, 60 insertions(+), 7 deletions(-) create mode 100644 xchange-bitstamp/src/test/java/org/knowm/xchange/bitstamp/BitstampCliTester.java diff --git a/xchange-bitstamp/src/main/java/org/knowm/xchange/bitstamp/BitstampAdapters.java b/xchange-bitstamp/src/main/java/org/knowm/xchange/bitstamp/BitstampAdapters.java index 20b2266932f..dfa74b213be 100644 --- a/xchange-bitstamp/src/main/java/org/knowm/xchange/bitstamp/BitstampAdapters.java +++ b/xchange-bitstamp/src/main/java/org/knowm/xchange/bitstamp/BitstampAdapters.java @@ -242,7 +242,7 @@ 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); @@ -250,6 +250,17 @@ public static UserTrades adaptTradeHistory(BitstampUserTransaction[] bitstampUse 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 findNonzeroAmount(BitstampUserTransaction transaction) throws ExchangeException { for (Map.Entry entry : transaction.getAmounts().entrySet()) { @@ -294,7 +305,7 @@ public static List adaptFundingHistory( type, FundingRecord.Status.COMPLETE, null, - trans.getFee(), + getFeeFromString(trans.getFee()), null); fundingRecords.add(record); } diff --git a/xchange-bitstamp/src/main/java/org/knowm/xchange/bitstamp/dto/trade/BitstampUserTransaction.java b/xchange-bitstamp/src/main/java/org/knowm/xchange/bitstamp/dto/trade/BitstampUserTransaction.java index 03a4c6572f5..a625afa1989 100644 --- a/xchange-bitstamp/src/main/java/org/knowm/xchange/bitstamp/dto/trade/BitstampUserTransaction.java +++ b/xchange-bitstamp/src/main/java/org/knowm/xchange/bitstamp/dto/trade/BitstampUserTransaction.java @@ -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 amounts = new HashMap<>(); // possible pairs at the moment: btcusd, btceur, eurusd, xrpusd, xrpeur, xrpbtc private String base; // btc, eur, xrp @@ -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; @@ -123,7 +123,7 @@ public String getBaseCurrency() { return base; } - public BigDecimal getFee() { + public String getFee() { return fee; } @@ -169,7 +169,9 @@ public enum TransactionType { sentAssetsToStaking, stakingReward, referralReward, - interAccountTransfer; + interAccountTransfer, + settlementTransfer, + unknown; @JsonCreator public static TransactionType fromString(int type) { @@ -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; } } } diff --git a/xchange-bitstamp/src/test/java/org/knowm/xchange/bitstamp/BitstampCliTester.java b/xchange-bitstamp/src/test/java/org/knowm/xchange/bitstamp/BitstampCliTester.java new file mode 100644 index 00000000000..b9f9d89e7d3 --- /dev/null +++ b/xchange-bitstamp/src/test/java/org/knowm/xchange/bitstamp/BitstampCliTester.java @@ -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 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); + } +} From b6ffb13bcd4df82d18358cee9fcfd9f61a6fa6cf Mon Sep 17 00:00:00 2001 From: Donald Jackson Date: Wed, 25 Sep 2024 14:26:20 +0100 Subject: [PATCH 2/5] [bitstamp] add settlements as deposit type --- .../xchange/bitstamp/dto/trade/BitstampUserTransaction.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/xchange-bitstamp/src/main/java/org/knowm/xchange/bitstamp/dto/trade/BitstampUserTransaction.java b/xchange-bitstamp/src/main/java/org/knowm/xchange/bitstamp/dto/trade/BitstampUserTransaction.java index a625afa1989..7ba5c63d3ab 100644 --- a/xchange-bitstamp/src/main/java/org/knowm/xchange/bitstamp/dto/trade/BitstampUserTransaction.java +++ b/xchange-bitstamp/src/main/java/org/knowm/xchange/bitstamp/dto/trade/BitstampUserTransaction.java @@ -88,11 +88,11 @@ public TransactionType getType() { } public boolean isDeposit() { - return type == TransactionType.deposit; + return type == TransactionType.deposit || type == TransactionType.rippleDeposit || type == TransactionType.settlementTransfer; } public boolean isWithdrawal() { - return type == TransactionType.withdrawal; + return type == TransactionType.withdrawal || type == TransactionType.rippleWithdrawal; } public boolean isMarketTrade() { From 6ca2d84214b21ae5e40aea57eabe87e6a4bed3a1 Mon Sep 17 00:00:00 2001 From: Donald Jackson Date: Tue, 28 Jan 2025 15:57:54 +0100 Subject: [PATCH 3/5] [bitstamp] use correct tx type --- .../xchange/bitstamp/dto/trade/BitstampUserTransaction.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/xchange-bitstamp/src/main/java/org/knowm/xchange/bitstamp/dto/trade/BitstampUserTransaction.java b/xchange-bitstamp/src/main/java/org/knowm/xchange/bitstamp/dto/trade/BitstampUserTransaction.java index 7ba5c63d3ab..a152d3ffae7 100644 --- a/xchange-bitstamp/src/main/java/org/knowm/xchange/bitstamp/dto/trade/BitstampUserTransaction.java +++ b/xchange-bitstamp/src/main/java/org/knowm/xchange/bitstamp/dto/trade/BitstampUserTransaction.java @@ -88,7 +88,7 @@ public TransactionType getType() { } public boolean isDeposit() { - return type == TransactionType.deposit || type == TransactionType.rippleDeposit || type == TransactionType.settlementTransfer; + return type == TransactionType.deposit || type == TransactionType.rippleDeposit; } public boolean isWithdrawal() { @@ -100,7 +100,7 @@ public boolean isMarketTrade() { } public boolean isSubAccountTransfer() { - return type == TransactionType.subAccountTransfer; + return type == TransactionType.subAccountTransfer || type == TransactionType.settlementTransfer; } public BigDecimal getCounterAmount() { From d8eb4ff9ef2bff5d1f868d895b1f2d7f804133cd Mon Sep 17 00:00:00 2001 From: Donald Jackson Date: Tue, 28 Jan 2025 15:58:50 +0100 Subject: [PATCH 4/5] [bitstamp] remove cli tool --- .../xchange/bitstamp/BitstampCliTester.java | 38 ------------------- 1 file changed, 38 deletions(-) delete mode 100644 xchange-bitstamp/src/test/java/org/knowm/xchange/bitstamp/BitstampCliTester.java diff --git a/xchange-bitstamp/src/test/java/org/knowm/xchange/bitstamp/BitstampCliTester.java b/xchange-bitstamp/src/test/java/org/knowm/xchange/bitstamp/BitstampCliTester.java deleted file mode 100644 index b9f9d89e7d3..00000000000 --- a/xchange-bitstamp/src/test/java/org/knowm/xchange/bitstamp/BitstampCliTester.java +++ /dev/null @@ -1,38 +0,0 @@ -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 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); - } -} From afa6297a91c70827e1bb48564e3b7aed5f6cfa48 Mon Sep 17 00:00:00 2001 From: Donald Jackson Date: Tue, 28 Jan 2025 16:02:45 +0100 Subject: [PATCH 5/5] [bitstamp] run format bitstamp only --- .../main/java/org/knowm/xchange/bitstamp/BitstampAdapters.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/xchange-bitstamp/src/main/java/org/knowm/xchange/bitstamp/BitstampAdapters.java b/xchange-bitstamp/src/main/java/org/knowm/xchange/bitstamp/BitstampAdapters.java index dfa74b213be..4ecacf39013 100644 --- a/xchange-bitstamp/src/main/java/org/knowm/xchange/bitstamp/BitstampAdapters.java +++ b/xchange-bitstamp/src/main/java/org/knowm/xchange/bitstamp/BitstampAdapters.java @@ -251,7 +251,7 @@ public static UserTrades adaptTradeHistory(BitstampUserTransaction[] bitstampUse } private static BigDecimal getFeeFromString(String value) { - if("None".equals(value)) { + if ("None".equals(value)) { return BigDecimal.ZERO; } try {