diff --git a/xchange-coinmate/src/main/java/org/knowm/xchange/coinmate/CoinmateAuthenticated.java b/xchange-coinmate/src/main/java/org/knowm/xchange/coinmate/CoinmateAuthenticated.java index e494e772c57..7c0342114ce 100644 --- a/xchange-coinmate/src/main/java/org/knowm/xchange/coinmate/CoinmateAuthenticated.java +++ b/xchange-coinmate/src/main/java/org/knowm/xchange/coinmate/CoinmateAuthenticated.java @@ -31,11 +31,27 @@ import jakarta.ws.rs.core.MediaType; import java.io.IOException; import java.math.BigDecimal; +import org.knowm.xchange.coinmate.dto.account.AmountType; import org.knowm.xchange.coinmate.dto.account.CoinmateBalance; import org.knowm.xchange.coinmate.dto.account.CoinmateDepositAddresses; import org.knowm.xchange.coinmate.dto.account.CoinmateTradingFeesResponse; import org.knowm.xchange.coinmate.dto.account.FeePriority; -import org.knowm.xchange.coinmate.dto.trade.*; +import org.knowm.xchange.coinmate.dto.account.TransferHistoryOrder; +import org.knowm.xchange.coinmate.dto.account.UnconfirmedDepositsResponse; +import org.knowm.xchange.coinmate.dto.trade.CoinmateBuyFixRateResponse; +import org.knowm.xchange.coinmate.dto.trade.CoinmateCancelOrderResponse; +import org.knowm.xchange.coinmate.dto.trade.CoinmateCancelOrderWithInfoResponse; +import org.knowm.xchange.coinmate.dto.trade.CoinmateOpenOrders; +import org.knowm.xchange.coinmate.dto.trade.CoinmateOrder; +import org.knowm.xchange.coinmate.dto.trade.CoinmateOrderHistory; +import org.knowm.xchange.coinmate.dto.trade.CoinmateOrders; +import org.knowm.xchange.coinmate.dto.trade.CoinmateReplaceResponse; +import org.knowm.xchange.coinmate.dto.trade.CoinmateSellFixRateResponse; +import org.knowm.xchange.coinmate.dto.trade.CoinmateTradeHistory; +import org.knowm.xchange.coinmate.dto.trade.CoinmateTradeResponse; +import org.knowm.xchange.coinmate.dto.trade.CoinmateTransactionHistory; +import org.knowm.xchange.coinmate.dto.trade.CoinmateTransferDetail; +import org.knowm.xchange.coinmate.dto.trade.CoinmateTransferHistory; import si.mazi.rescu.ParamsDigest; import si.mazi.rescu.SynchronizedValueFactory; @@ -266,6 +282,42 @@ CoinmateTradeResponse sellQuickFix( // withdrawal and deposits // bitcoin + + @POST + @Path("withdrawVirtualCurrency") + CoinmateTradeResponse withdrawVirtualCurrency( + @FormParam("publicKey") String publicKey, + @FormParam("clientId") String clientId, + @FormParam("signature") ParamsDigest signer, + @FormParam("nonce") SynchronizedValueFactory nonce, + @FormParam("currencyName") String currencyName, + @FormParam("amount") BigDecimal amount, + @FormParam("destinationTag") String destinationTag, + @FormParam("amountType") AmountType amountType, + @FormParam("address") String address, + @FormParam("feePriority") FeePriority feePriority) + throws IOException; + + @POST + @Path("virtualCurrencyDepositAddresses") + CoinmateDepositAddresses virtualCurrencyDepositAddresses( + @FormParam("publicKey") String publicKey, + @FormParam("clientId") String clientId, + @FormParam("signature") ParamsDigest signer, + @FormParam("nonce") SynchronizedValueFactory nonce, + @FormParam("currencyName") String currencyName) + throws IOException; + + @POST + @Path("unconfirmedVirtualCurrencyDeposits") + UnconfirmedDepositsResponse unconfirmedVirtualCurrencyDeposits( + @FormParam("publicKey") String publicKey, + @FormParam("clientId") String clientId, + @FormParam("signature") ParamsDigest signer, + @FormParam("nonce") SynchronizedValueFactory nonce, + @FormParam("currencyName") String currencyName) + throws IOException; + @POST @Path("bitcoinWithdrawal") CoinmateTradeResponse bitcoinWithdrawal( @@ -352,28 +404,6 @@ CoinmateDepositAddresses rippleDepositAddresses( @FormParam("nonce") SynchronizedValueFactory nonce) throws IOException; - // dash - - @POST - @Path("dashWithdrawal") - CoinmateTradeResponse dashWithdrawal( - @FormParam("publicKey") String publicKey, - @FormParam("clientId") String clientId, - @FormParam("signature") ParamsDigest signer, - @FormParam("nonce") SynchronizedValueFactory nonce, - @FormParam("amount") BigDecimal amount, - @FormParam("address") String address) - throws IOException; - - @POST - @Path("dashDepositAddresses") - CoinmateDepositAddresses dashDepositAddresses( - @FormParam("publicKey") String publicKey, - @FormParam("clientId") String clientId, - @FormParam("signature") ParamsDigest signer, - @FormParam("nonce") SynchronizedValueFactory nonce) - throws IOException; - @POST @Path("adaWithdrawal") CoinmateTradeResponse adaWithdrawal( @@ -452,7 +482,7 @@ CoinmateTransferHistory getTransferHistory( @FormParam("nonce") SynchronizedValueFactory nonce, @FormParam("limit") Integer limit, @FormParam("lastId") Integer lastId, - @FormParam("sort") String sort, + @FormParam("sort") TransferHistoryOrder sort, @FormParam("timestampFrom") Long timestampFrom, @FormParam("timestampTo") Long timestampTo, @FormParam("currency") String currency) diff --git a/xchange-coinmate/src/main/java/org/knowm/xchange/coinmate/dto/account/AmountType.java b/xchange-coinmate/src/main/java/org/knowm/xchange/coinmate/dto/account/AmountType.java new file mode 100644 index 00000000000..e5d8dbd2fba --- /dev/null +++ b/xchange-coinmate/src/main/java/org/knowm/xchange/coinmate/dto/account/AmountType.java @@ -0,0 +1,6 @@ +package org.knowm.xchange.coinmate.dto.account; + +public enum AmountType { + NET, + GROSS +} diff --git a/xchange-coinmate/src/main/java/org/knowm/xchange/coinmate/dto/account/TransferHistoryOrder.java b/xchange-coinmate/src/main/java/org/knowm/xchange/coinmate/dto/account/TransferHistoryOrder.java new file mode 100644 index 00000000000..914b4fc40d1 --- /dev/null +++ b/xchange-coinmate/src/main/java/org/knowm/xchange/coinmate/dto/account/TransferHistoryOrder.java @@ -0,0 +1,5 @@ +package org.knowm.xchange.coinmate.dto.account; + +public enum TransferHistoryOrder { + ASC, DESC +} diff --git a/xchange-coinmate/src/main/java/org/knowm/xchange/coinmate/dto/account/UnconfirmedDeposits.java b/xchange-coinmate/src/main/java/org/knowm/xchange/coinmate/dto/account/UnconfirmedDeposits.java new file mode 100644 index 00000000000..b9ef8a98aff --- /dev/null +++ b/xchange-coinmate/src/main/java/org/knowm/xchange/coinmate/dto/account/UnconfirmedDeposits.java @@ -0,0 +1,41 @@ +package org.knowm.xchange.coinmate.dto.account; + +import com.fasterxml.jackson.annotation.JsonProperty; +import java.math.BigDecimal; + +public class UnconfirmedDeposits { + private final Long id; + + private final BigDecimal amount; + + private final String address; + + private final Long confirmations; + + public UnconfirmedDeposits( + @JsonProperty Long id, + @JsonProperty BigDecimal amount, + @JsonProperty String address, + @JsonProperty Long confirmations) { + this.id = id; + this.amount = amount; + this.address = address; + this.confirmations = confirmations; + } + + public Long getId() { + return id; + } + + public BigDecimal getAmount() { + return amount; + } + + public String getAddress() { + return address; + } + + public Long getConfirmations() { + return confirmations; + } +} diff --git a/xchange-coinmate/src/main/java/org/knowm/xchange/coinmate/dto/account/UnconfirmedDepositsResponse.java b/xchange-coinmate/src/main/java/org/knowm/xchange/coinmate/dto/account/UnconfirmedDepositsResponse.java new file mode 100644 index 00000000000..4f16605c40a --- /dev/null +++ b/xchange-coinmate/src/main/java/org/knowm/xchange/coinmate/dto/account/UnconfirmedDepositsResponse.java @@ -0,0 +1,16 @@ +package org.knowm.xchange.coinmate.dto.account; + +import com.fasterxml.jackson.annotation.JsonProperty; +import java.util.ArrayList; +import org.knowm.xchange.coinmate.dto.CoinmateBaseResponse; + +public class UnconfirmedDepositsResponse + extends CoinmateBaseResponse> { + public UnconfirmedDepositsResponse( + @JsonProperty("error") boolean error, + @JsonProperty("errorMessage") String errorMessage, + @JsonProperty("data") ArrayList data) { + + super(error, errorMessage, data); + } +} diff --git a/xchange-coinmate/src/main/java/org/knowm/xchange/coinmate/dto/trade/CoinmateTransferHistoryEntry.java b/xchange-coinmate/src/main/java/org/knowm/xchange/coinmate/dto/trade/CoinmateTransferHistoryEntry.java index 201c7bb7adb..f10d6b49655 100644 --- a/xchange-coinmate/src/main/java/org/knowm/xchange/coinmate/dto/trade/CoinmateTransferHistoryEntry.java +++ b/xchange-coinmate/src/main/java/org/knowm/xchange/coinmate/dto/trade/CoinmateTransferHistoryEntry.java @@ -14,6 +14,7 @@ public class CoinmateTransferHistoryEntry { private final String walletType; private final String destination; private final String destinationTag; + private final String txid; public CoinmateTransferHistoryEntry( @JsonProperty("transactionId") long id, @@ -25,8 +26,9 @@ public CoinmateTransferHistoryEntry( @JsonProperty("amountCurrency") String amountCurrency, @JsonProperty("walletType") String walletType, @JsonProperty("destination") String destination, - @JsonProperty("destinationTag") String destinationTag) { - + @JsonProperty("destinationTag") String destinationTag, + @JsonProperty("txid") String txid + ) { this.fee = fee; this.transferType = transferType; this.timestamp = timestamp; @@ -37,6 +39,7 @@ public CoinmateTransferHistoryEntry( this.walletType = walletType; this.destination = destination; this.destinationTag = destinationTag; + this.txid = txid; } public long getId() { @@ -78,4 +81,6 @@ public String getDestination() { public String getDestinationTag() { return destinationTag; } + + public String getTxid() { return txid; } } diff --git a/xchange-coinmate/src/main/java/org/knowm/xchange/coinmate/service/CoinmateAccountService.java b/xchange-coinmate/src/main/java/org/knowm/xchange/coinmate/service/CoinmateAccountService.java index 78e37dc1dee..e268cdb5a7d 100644 --- a/xchange-coinmate/src/main/java/org/knowm/xchange/coinmate/service/CoinmateAccountService.java +++ b/xchange-coinmate/src/main/java/org/knowm/xchange/coinmate/service/CoinmateAccountService.java @@ -34,14 +34,17 @@ import org.knowm.xchange.Exchange; import org.knowm.xchange.coinmate.CoinmateAdapters; import org.knowm.xchange.coinmate.CoinmateUtils; +import org.knowm.xchange.coinmate.dto.account.AmountType; import org.knowm.xchange.coinmate.dto.account.CoinmateDepositAddresses; import org.knowm.xchange.coinmate.dto.account.CoinmateTradingFeesResponseData; +import org.knowm.xchange.coinmate.dto.account.FeePriority; import org.knowm.xchange.coinmate.dto.trade.CoinmateTradeResponse; import org.knowm.xchange.coinmate.dto.trade.CoinmateTransactionHistory; import org.knowm.xchange.coinmate.dto.trade.CoinmateTransferDetail; import org.knowm.xchange.coinmate.dto.trade.CoinmateTransferHistory; import org.knowm.xchange.currency.Currency; import org.knowm.xchange.dto.account.AccountInfo; +import org.knowm.xchange.dto.account.AddressWithTag; import org.knowm.xchange.dto.account.Fee; import org.knowm.xchange.dto.account.FundingRecord; import org.knowm.xchange.instrument.Instrument; @@ -97,12 +100,13 @@ public String withdrawFunds(Currency currency, BigDecimal amount, String address response = coinmateEthereumWithdrawal(amount, address); } else if (currency.equals(Currency.XRP)) { response = coinmateRippleWithdrawal(amount, address); - } else if (currency.equals(Currency.DASH)) { - response = coinmateDashWithdrawal(amount, address); } else if (currency.equals(Currency.ADA)) { response = coinmateCardanoWithdrawal(amount, address); } else if (currency.equals(Currency.SOL)) { response = coinmateSolanaWithdrawal(amount, address); + } else if (currency.equals(Currency.USDT)) { + Long tradeId = coinmateWithdrawVirtualCurrency(amount, address, Currency.USDT.getCurrencyCode(), AmountType.GROSS, FeePriority.HIGH, null); + return Long.toString(tradeId); } else { throw new IOException( "Wallet for currency" + currency.getCurrencyCode() + " is currently not supported"); @@ -111,10 +115,27 @@ public String withdrawFunds(Currency currency, BigDecimal amount, String address return Long.toString(response.getData()); } + @Override + public String withdrawFunds(Currency currency, BigDecimal amount, AddressWithTag address) + throws IOException { + if (currency.equals(Currency.XRP)) { + Long tradeId = coinmateWithdrawVirtualCurrency(amount, address.getAddress(), currency.getCurrencyCode(), AmountType.GROSS, FeePriority.HIGH, address.getAddressTag()); + return Long.toString(tradeId); + } else { + return withdrawFunds(currency, amount, address.getAddress()); + } + } + @Override public String withdrawFunds(WithdrawFundsParams params) throws IOException { if (params instanceof DefaultWithdrawFundsParams) { DefaultWithdrawFundsParams defaultParams = (DefaultWithdrawFundsParams) params; + + if (defaultParams.getCurrency().equals(Currency.XRP)) { + Long tradeId = coinmateWithdrawVirtualCurrency(defaultParams.getAmount(), defaultParams.getAddress(), defaultParams.getCurrency().getCurrencyCode(), AmountType.GROSS, FeePriority.HIGH, defaultParams.getAddressTag()); + return Long.toString(tradeId); + } + return withdrawFunds( defaultParams.getCurrency(), defaultParams.getAmount(), defaultParams.getAddress()); } @@ -132,12 +153,16 @@ public String requestDepositAddress(Currency currency, String... args) throws IO addresses = coinmateEthereumDepositAddresses(); } else if (currency.equals(Currency.XRP)) { addresses = coinmateRippleDepositAddresses(); - } else if (currency.equals(Currency.DASH)) { - addresses = coinmateDashDepositAddresses(); } else if (currency.equals(Currency.ADA)) { addresses = coinmateCardanoDepositAddresses(); } else if (currency.equals(Currency.SOL)) { addresses = coinmateSolanaDepositAddresses(); + } else if (currency.equals(Currency.USDT)) { + List addressesAll = coinmateVirtualCurrencyDepositAddresses(currency.getCurrencyCode()); + if (addressesAll.isEmpty()) { + return null; + } + return addressesAll.get(0); } else { throw new IOException( "Wallet for currency" + currency.getCurrencyCode() + " is currently not supported"); diff --git a/xchange-coinmate/src/main/java/org/knowm/xchange/coinmate/service/CoinmateAccountServiceRaw.java b/xchange-coinmate/src/main/java/org/knowm/xchange/coinmate/service/CoinmateAccountServiceRaw.java index 5c2579ac18d..e89d6dd016f 100644 --- a/xchange-coinmate/src/main/java/org/knowm/xchange/coinmate/service/CoinmateAccountServiceRaw.java +++ b/xchange-coinmate/src/main/java/org/knowm/xchange/coinmate/service/CoinmateAccountServiceRaw.java @@ -25,14 +25,20 @@ import java.io.IOException; import java.math.BigDecimal; +import java.util.ArrayList; +import java.util.List; import org.knowm.xchange.Exchange; import org.knowm.xchange.client.ExchangeRestProxyBuilder; import org.knowm.xchange.coinmate.CoinmateAuthenticated; +import org.knowm.xchange.coinmate.dto.account.AmountType; import org.knowm.xchange.coinmate.dto.account.CoinmateBalance; import org.knowm.xchange.coinmate.dto.account.CoinmateDepositAddresses; import org.knowm.xchange.coinmate.dto.account.CoinmateTradingFeesResponse; import org.knowm.xchange.coinmate.dto.account.CoinmateTradingFeesResponseData; import org.knowm.xchange.coinmate.dto.account.FeePriority; +import org.knowm.xchange.coinmate.dto.account.TransferHistoryOrder; +import org.knowm.xchange.coinmate.dto.account.UnconfirmedDeposits; +import org.knowm.xchange.coinmate.dto.account.UnconfirmedDepositsResponse; import org.knowm.xchange.coinmate.dto.trade.CoinmateTradeResponse; import org.knowm.xchange.coinmate.dto.trade.CoinmateTransactionHistory; import org.knowm.xchange.coinmate.dto.trade.CoinmateTransferDetail; @@ -89,6 +95,65 @@ public CoinmateTradingFeesResponseData getCoinmateTraderFees(String currencyPair return response.getData(); } + public Long coinmateWithdrawVirtualCurrency( + BigDecimal amount, + String address, + String currencyName, + AmountType amountType, + FeePriority feePriority, + String destinationTag + ) + throws IOException { + CoinmateTradeResponse response =coinmateAuthenticated.withdrawVirtualCurrency( + exchange.getExchangeSpecification().getApiKey(), + exchange.getExchangeSpecification().getUserName(), + signatureCreator, + exchange.getNonceFactory(), + currencyName, + amount, + destinationTag, + amountType, + address, + feePriority + ); + + throwExceptionIfError(response); + + return response.getData(); + } + + public ArrayList coinmateVirtualCurrencyDepositAddresses(String currencyName) + throws IOException { + CoinmateDepositAddresses response = + coinmateAuthenticated.virtualCurrencyDepositAddresses( + exchange.getExchangeSpecification().getApiKey(), + exchange.getExchangeSpecification().getUserName(), + signatureCreator, + exchange.getNonceFactory(), + currencyName + ); + + throwExceptionIfError(response); + + return response.getData(); + } + + public List coinmateUnconfirmedVirtualCurrencyDeposits(String currencyName) + throws IOException { + UnconfirmedDepositsResponse response = + coinmateAuthenticated.unconfirmedVirtualCurrencyDeposits( + exchange.getExchangeSpecification().getApiKey(), + exchange.getExchangeSpecification().getUserName(), + signatureCreator, + exchange.getNonceFactory(), + currencyName + ); + + throwExceptionIfError(response); + + return response.getData(); + } + public CoinmateTradeResponse coinmateBitcoinWithdrawal(BigDecimal amount, String address) throws IOException { return coinmateBitcoinWithdrawal(amount, address, FeePriority.HIGH); @@ -211,35 +276,6 @@ public CoinmateDepositAddresses coinmateRippleDepositAddresses() throws IOExcept return addresses; } - public CoinmateTradeResponse coinmateDashWithdrawal(BigDecimal amount, String address) - throws IOException { - CoinmateTradeResponse response = - coinmateAuthenticated.dashWithdrawal( - exchange.getExchangeSpecification().getApiKey(), - exchange.getExchangeSpecification().getUserName(), - signatureCreator, - exchange.getNonceFactory(), - amount, - address); - - throwExceptionIfError(response); - - return response; - } - - public CoinmateDepositAddresses coinmateDashDepositAddresses() throws IOException { - CoinmateDepositAddresses addresses = - coinmateAuthenticated.dashDepositAddresses( - exchange.getExchangeSpecification().getApiKey(), - exchange.getExchangeSpecification().getUserName(), - signatureCreator, - exchange.getNonceFactory()); - - throwExceptionIfError(addresses); - - return addresses; - } - public CoinmateTradeResponse coinmateCardanoWithdrawal(BigDecimal amount, String address) throws IOException { CoinmateTradeResponse response = @@ -327,7 +363,7 @@ public CoinmateTransferHistory getTransfersData( public CoinmateTransferHistory getCoinmateTransferHistory( Integer limit, Integer lastId, - String sort, + TransferHistoryOrder sort, Long timestampFrom, Long timestampTo, String currency) diff --git a/xchange-coinmate/src/main/resources/coinmate.json b/xchange-coinmate/src/main/resources/coinmate.json index cc880fea8c0..381f91a4735 100644 --- a/xchange-coinmate/src/main/resources/coinmate.json +++ b/xchange-coinmate/src/main/resources/coinmate.json @@ -1,164 +1,157 @@ { - "currency_pairs" : { - "DASH/BTC" : { - "price_scale" : 5, - "min_amount" : 0.001, - "base_scale" : 8 - }, - "DASH/CZK" : { - "price_scale" : 1, - "min_amount" : 0.001, - "base_scale" : 8 - }, - "ETH/DAI" : { - "price_scale" : 2, - "min_amount" : 0.001, - "base_scale" : 8 - }, - "XRP/EUR" : { - "price_scale" : 5, - "min_amount" : 1, - "base_scale" : 8 - }, - "BCH/EUR" : { - "price_scale" : 2, - "min_amount" : 0.001, - "base_scale" : 8 - }, - "ETH/BTC" : { - "price_scale" : 5, - "min_amount" : 0.001, - "base_scale" : 8 - }, - "LTC/BTC" : { - "price_scale" : 6, - "min_amount" : 0.01, - "base_scale" : 8 - }, - "ADA/CZK" : { - "price_scale" : 4, - "min_amount" : 1, - "base_scale" : 6 - }, - "ETH/CZK" : { - "price_scale" : 1, - "min_amount" : 0.001, - "base_scale" : 8 - }, - "SOL/CZK" : { - "price_scale" : 4, - "min_amount" : 0.01, - "base_scale" : 8 - }, - "BTC/CZK" : { - "price_scale" : 0, - "min_amount" : 0.0001, - "base_scale" : 8 - }, - "BCH/CZK" : { - "price_scale" : 1, - "min_amount" : 0.001, - "base_scale" : 8 - }, - "DASH/EUR" : { - "price_scale" : 2, - "min_amount" : 0.001, - "base_scale" : 8 - }, - "DAI/EUR" : { - "price_scale" : 4, - "min_amount" : 1, - "base_scale" : 2 - }, - "XRP/CZK" : { - "price_scale" : 4, - "min_amount" : 1, - "base_scale" : 8 - }, - "BCH/BTC" : { - "price_scale" : 5, - "min_amount" : 0.001, - "base_scale" : 8 - }, - "BTC/DAI" : { - "price_scale" : 2, - "min_amount" : 0.0001, - "base_scale" : 8 - }, - "LTC/CZK" : { - "price_scale" : 1, - "min_amount" : 0.01, - "base_scale" : 8 - }, - "XRP/BTC" : { - "price_scale" : 8, - "min_amount" : 1, - "base_scale" : 8 - }, - "LTC/EUR" : { - "price_scale" : 2, - "min_amount" : 0.01, - "base_scale" : 8 - }, - "ADA/EUR" : { - "price_scale" : 5, - "min_amount" : 1, - "base_scale" : 6 - }, - "SOL/EUR" : { - "price_scale" : 5, - "min_amount" : 0.01, - "base_scale" : 8 - }, - "BTC/EUR" : { - "price_scale" : 1, - "min_amount" : 0.0001, - "base_scale" : 8 - }, - "ETH/EUR" : { - "price_scale" : 2, - "min_amount" : 0.001, - "base_scale" : 8 + "currency_pairs": { + "XRP/EUR": { + "price_scale": 5, + "min_amount": 1, + "base_scale": 8 + }, + "BTC/USDT": { + "price_scale": 1, + "min_amount": 0.0001, + "base_scale": 8 + }, + "USDT/EUR": { + "price_scale": 4, + "min_amount": 1, + "base_scale": 2 + }, + "ETH/BTC": { + "price_scale": 5, + "min_amount": 0.001, + "base_scale": 8 + }, + "LTC/BTC": { + "price_scale": 6, + "min_amount": 0.01, + "base_scale": 8 + }, + "ADA/CZK": { + "price_scale": 4, + "min_amount": 1, + "base_scale": 6 + }, + "ETH/CZK": { + "price_scale": 1, + "min_amount": 0.001, + "base_scale": 8 + }, + "SOL/CZK": { + "price_scale": 4, + "min_amount": 0.01, + "base_scale": 8 + }, + "BTC/CZK": { + "price_scale": 0, + "min_amount": 0.0001, + "base_scale": 8 + }, + "XRP/CZK": { + "price_scale": 4, + "min_amount": 1, + "base_scale": 8 + }, + "LTC/CZK": { + "price_scale": 1, + "min_amount": 0.01, + "base_scale": 8 + }, + "XRP/BTC": { + "price_scale": 8, + "min_amount": 1, + "base_scale": 8 + }, + "ADA/EUR": { + "price_scale": 5, + "min_amount": 1, + "base_scale": 6 + }, + "LTC/EUR": { + "price_scale": 2, + "min_amount": 0.01, + "base_scale": 8 + }, + "SOL/EUR": { + "price_scale": 5, + "min_amount": 0.01, + "base_scale": 8 + }, + "USDT/CZK": { + "price_scale": 3, + "min_amount": 1, + "base_scale": 2 + }, + "BTC/EUR": { + "price_scale": 1, + "min_amount": 0.0001, + "base_scale": 8 + }, + "ETH/EUR": { + "price_scale": 2, + "min_amount": 0.001, + "base_scale": 8 } }, - "currencies" : { - "BTC" : { - "scale" : 8 + "currencies": { + "EUR": { + "scale": 2 }, - "SOL" : { - "scale" : 8 + "BCH": { + "scale": 8 }, - "EUR" : { - "scale" : 2 + "USD": { + "scale": 2 }, - "CZK" : { - "scale" : 2 + "USDT": { + "scale": 2 }, - "BCH" : { - "scale" : 8 + "DASH": { + "scale": 8 }, - "XRP" : { - "scale" : 8 + "DAI": { + "scale": 2 }, - "ETH" : { - "scale" : 8 + "BTC": { + "scale": 8 }, - "LTC" : { - "scale" : 8 + "SOL": { + "scale": 8 }, - "DASH" : { - "scale" : 8 + "PLN": { + "scale": 2 }, - "DAI" : { - "scale" : 2 + "GBP": { + "scale": 2 }, - "ADA" : { - "scale" : 6 + "CZK": { + "scale": 2 + }, + "XRP": { + "scale": 8 + }, + "ETH": { + "scale": 8 + }, + "HUF": { + "scale": 2 + }, + "LTC": { + "scale": 8 + }, + "TRX": { + "scale": 8 + }, + "ADA": { + "scale": 6 + }, + "LUNA": { + "scale": 8 } }, - "private_rate_limits" : [ { - "calls" : 100, - "time_unit" : "minutes" - } ], - "share_rate_limits" : true + "private_rate_limits": [ + { + "calls": 100, + "time_unit": "minutes" + } + ], + "share_rate_limits": true } \ No newline at end of file