public Amount multiply(Amount multiplicand) { return multiply(multiplicand.value); }
public Amount multiply(Number multiplicand) { return multiply(BigDecimal.valueOf(multiplicand.doubleValue())); }
private void calculateStats() { Offer firstAsk = (Offer) asks.get(0); Offer firstBid = (Offer) bids.get(0); BigDecimal askQuality = firstAsk.askQuality(); BigDecimal bidQuality = firstBid.bidQuality(); Amount secondOne = firstAsk.paysOne(); ask = secondOne.multiply(askQuality); bid = secondOne.multiply(bidQuality); spread = ask.subtract(bid).abs(); }
private static void showOfferInfo(Offer offer) { BigDecimal payForOne = offer.askQuality(); Amount getsOne = offer.getsOne(); Amount paysOne = offer.paysOne(); printSeparatorBanner(); System.out.println("Directory quality: "+ offer.directoryAskQuality().toPlainString()); // Multiply and divide will round/scale to the required bounds print("%40s == %s\n", paysOne.multiply(payForOne).toText(), getsOne.toText()); print("%40s == %s\n", getsOne.divide(payForOne).toText(), paysOne.toText()); }
public ManagedTxn createPayment(Alternative alternative, BigDecimal sendMaxMultiplier) { Amount sourceAmount = alternative.sourceAmount; boolean hasPaths = alternative.hasPaths(); ignoreCurrentRequestAndPublishStaleState(); // Cancel the path finding request. requestPathFindClose(); Payment payment = new Payment(); ManagedTxn managed = srcAccount.transactionManager().manage(payment); payment.destination(dest); if (hasPaths) { // A payment with an empty, but specified paths is invalid payment.paths(alternative.paths); } // If we are sending XRP directly it's pointless to specify SendMax if (!alternative.directXRP()) { payment.sendMax(sourceAmount.multiply(sendMaxMultiplier)); } payment.amount(destinationAmount); return managed; }