@Test public void testIsIntegerValue() { assertTrue(Numeric.isIntegerValue(BigDecimal.ZERO)); assertTrue(Numeric.isIntegerValue(BigDecimal.ZERO)); assertTrue(Numeric.isIntegerValue(BigDecimal.valueOf(Long.MAX_VALUE))); assertTrue(Numeric.isIntegerValue(BigDecimal.valueOf(Long.MIN_VALUE))); assertTrue(Numeric.isIntegerValue(new BigDecimal( "9999999999999999999999999999999999999999999999999999999999999999.0"))); assertTrue(Numeric.isIntegerValue(new BigDecimal( "-9999999999999999999999999999999999999999999999999999999999999999.0"))); assertFalse(Numeric.isIntegerValue(BigDecimal.valueOf(0.1))); assertFalse(Numeric.isIntegerValue(BigDecimal.valueOf(-0.1))); assertFalse(Numeric.isIntegerValue(BigDecimal.valueOf(1.1))); assertFalse(Numeric.isIntegerValue(BigDecimal.valueOf(-1.1))); }
private TransactionReceipt send( String toAddress, BigDecimal value, Convert.Unit unit, BigInteger gasPrice, BigInteger gasLimit) throws IOException, InterruptedException, TransactionException { BigDecimal weiValue = Convert.toWei(value, unit); if (!Numeric.isIntegerValue(weiValue)) { throw new UnsupportedOperationException( "Non decimal Wei value provided: " + value + " " + unit.toString() + " = " + weiValue + " Wei"); } String resolvedAddress = ensResolver.resolve(toAddress); return send(resolvedAddress, "", weiValue.toBigIntegerExact(), gasPrice, gasLimit); }