@signumjs/contracts
Version:
Smart Contracts package for Signum Network
33 lines • 1.27 kB
JavaScript
;
/**
* Copyright (c) 2019 Burst Apps Team
*
* Credits to AJ ONeal for the two-complements stuff
* https://coolaj86.com/articles/convert-decimal-to-hex-with-js-bigints/
*/
Object.defineProperty(exports, "__esModule", { value: true });
exports.generateDataStack = void 0;
const util_1 = require("@signumjs/util");
const convertContractData_1 = require("./internal/convertContractData");
const countDataPages_1 = require("./countDataPages");
/**
* Generates a data stack message of a contracts, which can be used as initialization. The message can be used on a contract's creation with
* {@link core.ContractApi.publishContract} or {@link core.ContractApi.publishContractByReference}
* @param data A list of variables forming the data stack
* @return The data stack
*
*/
const generateDataStack = (data) => {
const dataHex = data
.map(convertContractData_1.convertContractData)
.map(long => (0, util_1.convertDecStringToHexString)(long, 16))
.map(util_1.convertHexEndianess)
.join('');
const dataPageCount = (0, countDataPages_1.countDataPages)(dataHex);
return {
dataHex,
dataPageCount
};
};
exports.generateDataStack = generateDataStack;
//# sourceMappingURL=generateDataStack.js.map