@signumjs/core
Version:
Principal package with functions and models for building Signum Network applications.
27 lines • 1.27 kB
JavaScript
;
/**
* Copyright (c) 2019 Burst Apps Team
*/
Object.defineProperty(exports, "__esModule", { value: true });
exports.signAndBroadcastTransaction = void 0;
const crypto_1 = require("@signumjs/crypto");
const broadcastTransaction_1 = require("./broadcastTransaction");
/**
* Use with {@link ApiComposer} and belongs to {@link TransactionApi}.
*
* See details at {@link TransactionApi.signAndBroadcastTransaction}
*
* @category factories
*/
const signAndBroadcastTransaction = (chainService) => async (unsignedTransaction) => {
const { unsignedHexMessage, senderPrivateKey, senderPublicKey } = unsignedTransaction;
const signature = (0, crypto_1.generateSignature)(unsignedHexMessage, senderPrivateKey);
const isValid = (0, crypto_1.verifySignature)(signature, unsignedHexMessage, senderPublicKey);
if (!isValid) {
throw new Error('The signed message could not be verified! Transaction not broadcasted!');
}
const signedMessage = (0, crypto_1.generateSignedTransactionBytes)(unsignedHexMessage, signature);
return (0, broadcastTransaction_1.broadcastTransaction)(chainService)(signedMessage);
};
exports.signAndBroadcastTransaction = signAndBroadcastTransaction;
//# sourceMappingURL=signAndBroadcastTransaction.js.map