UNPKG

vasku

Version:

TVM-Solidity contract development framework

48 lines (47 loc) 1.61 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.createPayload = exports.createTransferPayload = void 0; const transfer_abi_json_1 = __importDefault(require("./transfer.abi.json")); const global_1 = require("../../global"); const hex_1 = require("../../utils/hex"); const constants_1 = require("../constants"); /** * Generate payload for transfer coins with comment * @example * getTransferPayload('for homeless') */ async function createTransferPayload(comment = '', client) { const cl = client ?? global_1.Global.client; if (cl === undefined) throw constants_1.error.noClient; return await createPayload(transfer_abi_json_1.default, 'transfer', { comment: (0, hex_1.stringToHex)(comment) }, cl); } exports.createTransferPayload = createTransferPayload; /** * Create payload to call another contract * @example * getPayload({'ABI version': 2, '...'}, 'bet', {luckyNumber: 50}) */ async function createPayload(abi, method, input = {}, client) { const cl = client ?? global_1.Global.client; if (cl === undefined) throw constants_1.error.noClient; return (await cl.abi.encode_message_body({ abi: { type: 'Contract', value: abi }, signer: { type: 'None' }, call_set: { function_name: method, input }, is_internal: true })).body; } exports.createPayload = createPayload;