@signumjs/contracts
Version:
Smart Contracts package for Signum Network
28 lines • 1.22 kB
JavaScript
;
/**
* Copyright (c) 2019 Burst Apps Team
* Modified (c) 2022 Signum Network
*
* 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.generateMethodCall = void 0;
const util_1 = require("@signumjs/util");
const convertContractData_1 = require("./internal/convertContractData");
/**
* Generates a method call message of a contracts public method. The message can be sent using for example
* {@link core.MessageApi.sendMessage} with `messageIsText = false` or {@link core.ContractApi.callContractMethod}]
* @param args The argument object
* @return A hex string that can be used as contracts transaction message
*/
const generateMethodCall = (args) => {
const argArray = args.methodArgs ? [args.methodId, ...args.methodArgs] : [args.methodId];
return argArray
.map(convertContractData_1.convertContractData)
.map(long => (0, util_1.convertDecStringToHexString)(long, 16))
.map(util_1.convertHexEndianess)
.join('');
};
exports.generateMethodCall = generateMethodCall;
//# sourceMappingURL=generateMethodCall.js.map