vasku
Version:
TVM-Solidity contract development framework
48 lines (47 loc) • 1.61 kB
JavaScript
;
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;