@Override public Value convert(CoinType type, Coin coin) { return convert(Value.valueOf(type, coin)); }
/** * Get the lowest deposit or withdraw for the provided amount type */ private Value getLowestAmount(ValueType type) { Value min = type.getMinNonDust(); if (marketInfo != null) { if (marketInfo.minimum.isOfType(min)) { min = Value.max(marketInfo.minimum, min); } else if (marketInfo.rate.canConvert(type, marketInfo.minimum.type)) { min = Value.max(marketInfo.rate.convert(marketInfo.minimum), min); } } return min; }
tradeWithdrawAmount = marketInfo.rate.convert(amountSending); } else {
@Test public void smallValues() { ShapeShiftExchangeRate rate = new ShapeShiftExchangeRate(DOGE, BTC, "5.1e-7", "0.0001"); assertEquals(BTC.value("0"), rate.convert(DOGE.value("1"))); }
"minimum: 0.17391304\n" + "}")); assertEquals(BTC.value("0.00098678").subtract("0.0001"), info.rate.convert(PPC.value("1"))); assertEquals(PPC.value("2162.119259"), info.limit); assertEquals(PPC.value("0.173914"), info.minimum); "minimum: 0.0000198\n" + "}")); assertEquals(PPC.value("866.739130").subtract("0.01"), info.rate.convert(BTC.value("1"))); assertEquals(BTC.value("1.1185671"), info.limit); assertEquals(BTC.value("0.0000198"), info.minimum); "minimum: 0.00008692\n" + "}")); assertEquals(NBT.value("226.3957").subtract("0.01"), info.rate.convert(BTC.value("1"))); assertEquals(BTC.value("3.70968678"), info.limit); assertEquals(BTC.value("0.00008692"), info.minimum); "minimum: 0.04542677\n" + "}")); assertEquals(BTC.value("0.00433171").subtract("0.0001"), info.rate.convert(NBT.value("1"))); assertEquals(NBT.value("1021.5033"), info.limit); assertEquals(NBT.value("0.0455"), info.minimum);
@Test public void baseFee() { ShapeShiftExchangeRate rate = new ShapeShiftExchangeRate(BTC, NBT, "100", "0.01"); assertEquals(BTC.value("1"), rate.value1); assertEquals(NBT.value("100"), rate.value2); assertEquals(NBT.value("0.01"), rate.minerFee); assertEquals(NBT.value("99.99"), rate.convert(BTC.oneCoin())); assertEquals(BTC.value("1"), rate.convert(NBT.value("99.99"))); rate = new ShapeShiftExchangeRate(BTC.oneCoin(), DOGE.value("1911057.69230769"), DOGE.value("1")); assertEquals(BTC.value("1"), rate.value1); assertEquals(DOGE.value("1911057.69230769"), rate.value2); assertEquals(DOGE.value("1"), rate.minerFee); assertEquals(BTC.value("0.00052379"), rate.convert(DOGE.value("1000"))); rate = new ShapeShiftExchangeRate(BTC.oneCoin(), DOGE.value("1878207.54716981"), DOGE.value("1")); assertEquals(BTC.value("1"), rate.value1); assertEquals(DOGE.value("1878207.54716981"), rate.value2); assertEquals(DOGE.value("1"), rate.minerFee); assertEquals(BTC.value("0.00532476"), rate.convert(DOGE.value("10000"))); }
@Test public void testMarketInfo() throws JSONException, ShapeShiftException { JSONObject json = new JSONObject( "{" + "\"pair\" : \"btc_nbt\"," + "\"rate\" : \"100\"," + "\"minerFee\" : \"0.01\"," + "\"limit\" : \"4\"," + "\"minimum\" : 0.00000104" + "}"); ShapeShiftMarketInfo marketInfo = new ShapeShiftMarketInfo(json); assertNotNull(marketInfo); assertFalse(marketInfo.isError); assertEquals("btc_nbt", marketInfo.pair); assertTrue(marketInfo.isPair("BTC_NBT")); assertTrue(marketInfo.isPair("btc_nbt")); assertTrue(marketInfo.isPair(BTC, NBT)); assertFalse(marketInfo.isPair("doge_ltc")); assertFalse(marketInfo.isPair(DOGE, LTC)); assertNotNull(marketInfo.rate); assertNotNull(marketInfo.limit); assertNotNull(marketInfo.minimum); assertEquals(NBT.value("99.99"), marketInfo.rate.convert(BTC.value("1"))); assertEquals(BTC.value("4"), marketInfo.limit); assertEquals(BTC.value("0.00000104"), marketInfo.minimum); }
@Test public void testGetMarketInfo() throws ShapeShiftException, IOException, InterruptedException, JSONException { // Schedule some responses. server.enqueue(new MockResponse().setBody(MARKET_INFO_BTC_NBT_JSON)); ShapeShiftMarketInfo marketInfoReply = shapeShift.getMarketInfo(BTC, NBT); assertFalse(marketInfoReply.isError); assertEquals("btc_nbt", marketInfoReply.pair); assertNotNull(marketInfoReply.rate); assertNotNull(marketInfoReply.rate); assertNotNull(marketInfoReply.limit); assertNotNull(marketInfoReply.minimum); assertEquals(NBT.value("99.99"), marketInfoReply.rate.convert(BTC.value("1"))); assertEquals(BTC.value("4"), marketInfoReply.limit); assertEquals(BTC.value("0.00000104"), marketInfoReply.minimum); // Optional: confirm that your app made the HTTP requests you were expecting. RecordedRequest request = server.takeRequest(); assertEquals("/marketinfo/btc_nbt", request.getPath()); }