public static BigDecimal satoshiToBtc(long satoshis) {
        return new BigDecimal(satoshis).movePointLeft(SMALLEST_UNIT_EXPONENT);
    }
@Test
    public void testSatoshiToBtc() {
        assertThat(new BigDecimal("-92233720368.54775808"),  Matchers.comparesEqualTo(satoshiToBtc(Long.MIN_VALUE)));
        assertThat(new BigDecimal("-0.00000001"), Matchers.comparesEqualTo(satoshiToBtc(NEGATIVE_SATOSHI.value)));
        assertThat(BigDecimal.ZERO, Matchers.comparesEqualTo(satoshiToBtc(0L)));
        assertThat(new BigDecimal("0.00000001"), Matchers.comparesEqualTo(satoshiToBtc(SATOSHI.value)));
        assertThat(BigDecimal.ONE,  Matchers.comparesEqualTo(satoshiToBtc(COIN.value)));
        assertThat(new BigDecimal(50),  Matchers.comparesEqualTo(satoshiToBtc(FIFTY_COINS.value)));
        assertThat(new BigDecimal("92233720368.54775807"),  Matchers.comparesEqualTo(satoshiToBtc(Long.MAX_VALUE)));
    }