UNPKG

@fruitsjs/core

Version:

Principal package with functions and models for building Fruits Eco-Blockchain applications.

38 lines (32 loc) 1.5 kB
import {ChainService} from '../../../service/chainService'; import {TransactionId} from '../../../typings/transactionId'; import {TransactionResponse} from '../../../typings/transactionResponse'; import {DefaultDeadline} from '../../../constants'; import {SendMessageArgs} from '../../../typings/args'; import {signAndBroadcastTransaction} from '../transaction/signAndBroadcastTransaction'; /** * Use with [[ApiComposer]] and belongs to [[MessageApi]]. * * See details at [[MessageApi.sendMessage]] * @module core.api.factories */ export const sendMessage = (service: ChainService): (args: SendMessageArgs) => Promise<TransactionId> => async (args: SendMessageArgs): Promise<TransactionId> => { const parameters = { message: args.message, publicKey: args.senderPublicKey, recipient: args.recipientId, recipientPublicKey: args.recipientPublicKey || undefined, feeNQT: args.feePlanck, deadline: args.deadline || DefaultDeadline, messageIsText: args.messageIsText !== false, broadcast: true, }; const {unsignedTransactionBytes: unsignedHexMessage} = await service.send<TransactionResponse>('sendMessage', parameters); return signAndBroadcastTransaction(service)({ senderPublicKey: args.senderPublicKey, senderPrivateKey: args.senderPrivateKey, unsignedHexMessage }); };