UNPKG

@signumjs/core

Version:

Principal package with functions and models for building Signum Network applications.

41 lines 1.69 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.sendAmountToMultipleRecipients = void 0; const signIfPrivateKey_1 = require("../../../internal/signIfPrivateKey"); const constants_1 = require("../../../constants"); function mountRecipientsString(recipientAmounts) { return recipientAmounts.map(({ amountNQT, recipient }) => `${recipient}:${amountNQT}`).join(';'); } function assertDuplicates(recipientAmounts) { const recipientIds = new Set(); for (const ra of recipientAmounts) { if (recipientIds.has(ra.recipient)) { throw new Error('Duplicate Recipients found'); } recipientIds.add(ra.recipient); } } /** * Use with {@link ApiComposer} and belongs to {@link TransactionApi}. * * See details at {@link TransactionApi.sendAmountToMultipleRecipients} * * @category factories */ const sendAmountToMultipleRecipients = (service) => (args) => (0, signIfPrivateKey_1.signIfPrivateKey)(service, args, async (a) => { const { recipientAmounts, deadline = constants_1.DefaultDeadline, feePlanck, senderPublicKey, referencedTransactionFullHash } = a; assertDuplicates(recipientAmounts); if (recipientAmounts.length === 0) { throw new Error('No recipients given. Send ignored'); } const parameters = { publicKey: senderPublicKey, recipients: mountRecipientsString(recipientAmounts), feeNQT: feePlanck, deadline, referencedTransactionFullHash }; return service.send('sendMoneyMulti', parameters); }); exports.sendAmountToMultipleRecipients = sendAmountToMultipleRecipients; //# sourceMappingURL=sendAmountToMultipleRecipients.js.map