UNPKG

test-triam-base-contract

Version:

Low level triam smart cotnract support library

76 lines (54 loc) 2.48 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.callContract = undefined; var _stellarXdr_generated = require("../generated/stellar-xdr_generated"); var _stellarXdr_generated2 = _interopRequireDefault(_stellarXdr_generated); var _keypair = require("../keypair"); var _strkey = require("../strkey"); var _clone = require("lodash/clone"); var _clone2 = _interopRequireDefault(_clone); var _isUndefined = require("lodash/isUndefined"); var _isUndefined2 = _interopRequireDefault(_isUndefined); var _isString = require("lodash/isString"); var _isString2 = _interopRequireDefault(_isString); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } /** * Call a contract operation. * @function * @alias Operation.callContract * @param {object} opts * @param {string} opts.contractId - Contract account ID. * @param {object} opts.data - Address of contract * @param {string} [opts.data.funcName] - function name * @param {string|Buffer} [opts.data.contractParams] - params of contract functions * * @returns {xdr.CallContractOp} */ var callContract = exports.callContract = function callContract(opts) { if (!_strkey.StrKey.isValidContractKey(opts.contractId)) { throw new Error("contract is invalid"); } var attributes = {}; attributes.contractId = _keypair.Keypair.fromContractKey(opts.contractId).xdrContractId(); //----------------------- if (!(0, _isUndefined2.default)(opts.data.funcName) && !(0, _isString2.default)(opts.data.funcName)) { throw new TypeError('funcName argument must be of type String'); } if (!(0, _isString2.default)(opts.data.contractParams) && !Buffer.isBuffer(opts.data.contractParams) && opts.data.contractParams !== null) { throw new Error("contractParams must be a string, Buffer or null"); } if ((0, _isString2.default)(opts.data.contractParams)) { opts.data.contractParams = Buffer.from(opts.data.contractParams); } attributes.data = new _stellarXdr_generated2.default.ContractInput(opts.data); attributes.contrOps = []; attributes.errFlag = 0; //----------------------- var callContract = new _stellarXdr_generated2.default.CallContractOp(attributes); var opAttributes = {}; opAttributes.body = _stellarXdr_generated2.default.OperationBody.callContract(callContract); this.setSourceAccount(opAttributes, opts); return new _stellarXdr_generated2.default.Operation(opAttributes); };