@signumjs/core
Version:
Principal package with functions and models for building Signum Network applications.
31 lines • 1.5 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.getRecipientAmountsFromMultiOutPayment = getRecipientAmountsFromMultiOutPayment;
const isMultiOutSameTransaction_1 = require("./isMultiOutSameTransaction");
const isMultiOutTransaction_1 = require("./isMultiOutTransaction");
const util_1 = require("@signumjs/util");
/**
* Tries to extract recipients and its amounts for multi out payments (different and same amount)
* @param transaction The transaction
* @return A list of recipients and their payed amount (in NQT)
* @throws An exception in case of wrong transaction types
*
*/
function getRecipientAmountsFromMultiOutPayment(transaction) {
if ((0, isMultiOutSameTransaction_1.isMultiOutSameTransaction)(transaction)) {
const recipients = transaction.attachment.recipients;
const amount = recipients.length ? util_1.Amount.fromPlanck(transaction.amountNQT).divide(recipients.length) : util_1.Amount.Zero();
return transaction.attachment.recipients.map(recipient => ({
recipient,
amountNQT: amount.getPlanck()
}));
}
if ((0, isMultiOutTransaction_1.isMultiOutTransaction)(transaction)) {
return transaction.attachment.recipients.map(r => ({
recipient: r[0],
amountNQT: r[1],
}));
}
throw new Error(`Transaction ${transaction.transaction} is not of type 'Multi Out Payment'`);
}
//# sourceMappingURL=getRecipientAmountsFromMultiOutPayment.js.map