@signumjs/core
Version:
Principal package with functions and models for building Signum Network applications.
42 lines • 1.5 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.publishContract = void 0;
/**
* Copyright (c) 2019 Burst Apps Team
* Modified (c) 2022 Signum Network
*/
const contracts_1 = require("@signumjs/contracts");
const constants_1 = require("../../../constants");
const signIfPrivateKey_1 = require("../../../internal/signIfPrivateKey");
const contracts_2 = require("@signumjs/contracts");
/**
* Use with {@link ApiComposer} and belongs to {@link ContractApi}.
*
* See details at {@link ContractApi.publishContract}
*
* @category factories
*/
const publishContract = (service) => (args) => (0, signIfPrivateKey_1.signIfPrivateKey)(service, args, async (a) => {
const { dataHex, dataPageCount } = (0, contracts_2.generateDataStack)(a.data || []);
const feeNQT = a.feePlanck || (0, contracts_1.calculateMinimumCreationFee)({
dataHex,
codeHex: a.codeHex
}).getPlanck();
const parameters = {
code: a.codeHex,
deadline: a.deadline || constants_1.DefaultDeadline,
description: a.description,
feeNQT,
minActivationAmountNQT: a.activationAmountPlanck,
name: a.name,
publicKey: a.senderPublicKey,
data: dataHex || undefined,
dpages: dataPageCount || 1,
cspages: 1,
uspages: 1,
broadcast: true,
};
return service.send('createATProgram', parameters);
});
exports.publishContract = publishContract;
//# sourceMappingURL=publishContract.js.map