@Override public String toString() { return toPlainString() + type.getSymbol(); }
statusText.setVisibility(View.GONE); values.setVisibility(View.VISIBLE); deposit.setAmount(entry.depositAmount.toPlainString()); deposit.setSymbol(entry.depositAmount.type.getSymbol()); withdraw.setAmount(entry.withdrawAmount.toPlainString()); withdraw.setSymbol(entry.withdrawAmount.type.getSymbol()); addressView.setVisibility(View.VISIBLE);
requestJson.put("pair", pair); requestJson.put("returnAddress", refund.toString()); requestJson.put("amount", amount.toPlainString()); if (apiPublicKey != null) requestJson.put("apiKey", apiPublicKey); } catch (JSONException e) {
@Test public void scalingAndRounding() throws Exception { // 1BTC = 100.1234567890NBT // This rate causes the BTC & NBT to overflow so it sets the correct scale and rounding ExchangeRateBase rate = new ExchangeRateBase(BTC, NBT, "100.1234567890"); // Check the rate's internal state assertEquals("100000", rate.value1.toPlainString()); assertEquals("10012345.6789", rate.value2.toPlainString()); // Make some conversions assertEquals("0.00998767", rate.convert(oneNbt).toPlainString()); assertEquals("0.000001", rate.convert(Value.parse(NBT, "0.0001")).toPlainString()); assertEquals("0.0001", rate.convert(Value.parse(BTC, "0.00000099")).toPlainString()); assertEquals("0.0099", rate.convert(Value.parse(BTC, "0.000099")).toPlainString()); assertEquals("10012345.6789", rate.convert(oneBtc.multiply(100000)).toPlainString()); assertEquals("1001.2346", rate.convert(oneBtc.multiply(10)).toPlainString()); assertEquals("998766.95438852", rate.convert(oneNbt.multiply(100000000)).toPlainString()); // Check too precise rates rate = new ExchangeRateBase(BTC, NBT, "100.12345678901999"); assertEquals("100000", rate.value1.toPlainString()); assertEquals("10012345.6789", rate.value2.toPlainString()); }
@Test public void bigRate() throws Exception { ExchangeRateBase rate = new ExchangeRateBase(Value.parse(BTC, "0.0001"), FiatValue.parse("BYR", "5320387.3")); assertEquals("53203873000", rate.convert(oneBtc).toPlainString()); assertEquals("0", rate.convert(FiatValue.parse("BYR", "1")).toPlainString()); // Tiny value! }
@Test public void smallRate() throws Exception { ExchangeRateBase rate = new ExchangeRateBase(Value.parse(BTC, "10000"), FiatValue.parse("XXX", "0.00001")); assertEquals("0", rate.convert(oneBtc).toPlainString()); // Tiny value! assertEquals("1000000000", rate.convert(FiatValue.parse("XXX", "1")).toPlainString()); }
@Test public void cryptoToCryptoRate() throws Exception { // 1BTC = 100LTC ExchangeRateBase rate = new ExchangeRateBase(oneBtc, LTC.oneCoin().multiply(100)); assertEquals(LTC, rate.convert(oneBtc).type); assertEquals(BTC, rate.convert(LTC.oneCoin()).type); assertEquals("1", rate.convert(oneBtc.divide(100)).toPlainString()); assertEquals("0.01", rate.convert(LTC.oneCoin()).toPlainString()); // 250NBT = 1BTC rate = new ExchangeRateBase(oneNbt.multiply(250), oneBtc); assertEquals("0.004", rate.convert(oneNbt).toPlainString()); assertEquals("2500", rate.convert(oneBtc.multiply(10)).toPlainString()); }
@Test public void cryptoToCryptoRateParseConstructor() throws Exception { // 1BTC = 100LTC ExchangeRateBase rate = new ExchangeRateBase(BTC, LTC, "100"); assertEquals(LTC, rate.convert(oneBtc).type); assertEquals(BTC, rate.convert(LTC.oneCoin()).type); assertEquals("1", rate.convert(oneBtc.divide(100)).toPlainString()); assertEquals("0.01", rate.convert(LTC.oneCoin()).toPlainString()); }
@Test public void cryptoToFiatRate() throws Exception { ExchangeRateBase rate = new ExchangeRateBase(oneBtc, FiatValue.parse("EUR", "500")); assertEquals(FiatType.get("EUR"), rate.convert(oneBtc).type); assertEquals(BTC, rate.convert(FiatValue.parse("EUR", "1")).type); assertEquals("0.5", rate.convert(oneBtc.divide(1000)).toPlainString()); assertEquals("0.002", rate.convert(FiatValue.parse("EUR", "1")).toPlainString()); }
@Test public void testFixedAmountTransaction() throws ShapeShiftException, IOException, InterruptedException, JSONException, AddressMalformedException { // Schedule some responses. server.enqueue(new MockResponse().setBody(FIXED_AMOUNT_TRANSACTION_JSON)); AbstractAddress withdrawal = DOGE.newAddress("DMHLQYG4j96V8cZX9WSuXxLs5RnZn6ibrV"); AbstractAddress refund = BTC.newAddress("1Nz4xHJjNCnZFPjRUq8CN4BZEXTgLZfeUW"); Value amount = DOGE.value("1000"); ShapeShiftAmountTx amountTxReply = shapeShift.exchangeForAmount(amount, withdrawal, refund); assertFalse(amountTxReply.isError); assertEquals("btc_doge", amountTxReply.pair); assertEquals("14gQ3xywKEUA6CfH61F8t2c6oB5nLnUjL5", amountTxReply.deposit.toString()); assertEquals(BTC, amountTxReply.deposit.getType()); assertEquals("0.00052379", amountTxReply.depositAmount.toPlainString()); assertEquals(BTC, amountTxReply.depositAmount.type); assertEquals(withdrawal.toString(), amountTxReply.withdrawal.toString()); assertEquals(DOGE, amountTxReply.withdrawal.getType()); assertEquals(amount.toPlainString(), amountTxReply.withdrawalAmount.toPlainString()); assertEquals(DOGE, amountTxReply.withdrawalAmount.type); assertEquals(1427149038191L, amountTxReply.expiration.getTime()); assertEquals(BTC.value(".00052379"), amountTxReply.rate.convert(Value.parse(DOGE, "1000"))); // Optional: confirm that your app made the HTTP requests you were expecting. RecordedRequest request = server.takeRequest(); assertEquals("/sendamount", request.getPath()); JSONObject reqJson = new JSONObject(request.getBody().readUtf8()); assertEquals(withdrawal.toString(), reqJson.getString("withdrawal")); assertEquals(refund.toString(), reqJson.getString("returnAddress")); assertEquals("btc_doge", reqJson.getString("pair")); assertEquals(amount.toPlainString(), reqJson.getString("amount")); }
@Test public void testGetLimit() throws ShapeShiftException, IOException, InterruptedException, JSONException { // Schedule some responses. server.enqueue(new MockResponse().setBody(GET_LIMIT_BTC_LTC_JSON)); ShapeShiftLimit limitReply = shapeShift.getLimit(BTC, LTC); assertFalse(limitReply.isError); assertEquals("btc_ltc", limitReply.pair); assertNotNull(limitReply.limit); assertEquals(BTC, limitReply.limit.type); assertEquals("5", limitReply.limit.toPlainString()); // Optional: confirm that your app made the HTTP requests you were expecting. RecordedRequest request = server.takeRequest(); assertEquals("/limit/btc_ltc", request.getPath()); }
assertEquals(ShapeShiftTxStatus.Status.RECEIVED, txStatusReply.status); assertEquals(address, txStatusReply.address); assertEquals("0.00297537", txStatusReply.incomingValue.toPlainString()); assertEquals(BTC, txStatusReply.incomingValue.type); assertEquals(ShapeShiftTxStatus.Status.COMPLETE, txStatusReply.status); assertEquals(address, txStatusReply.address); assertEquals("0.00297537", txStatusReply.incomingValue.toPlainString()); assertEquals(BTC, txStatusReply.incomingValue.type); assertEquals("LMmeBWH17TWkQKvK7YFio2oiimPAzrHG6f", txStatusReply.withdraw.toString()); assertEquals(LTC, txStatusReply.withdraw.getType()); assertEquals("0.42", txStatusReply.outgoingValue.toPlainString()); assertEquals(LTC, txStatusReply.outgoingValue.type); assertEquals("66fa0b4c11227f9f05efa13d23e58c65b50acbd6395a126b5cd751064e6e79df",