UNPKG

jcc-call-utils

Version:

Toolkit of crossing chain from Call chain to SWTC chain

70 lines 2.95 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var bignumber_js_1 = require("bignumber.js"); var jingtum_1 = require("jcc_wallet/lib/jingtum"); var callFingate_1 = require("../callFingate"); var router = Symbol(); var checkCallAddressKey = Symbol(); var checkMemoKey = Symbol(); var checkCallSecretKey = Symbol(); var checkAmountKey = Symbol(); var setTarget = function (target, name, index, key) { target[router] = target[router] || {}; target[router][name] = target[router][name] || {}; target[router][name].params = target[router][name].params || []; target[router][name].params[index] = key; }; exports.isValidCallAddress = function (target, name, index) { setTarget(target, name, index, checkCallAddressKey); }; exports.isValidCallSecret = function (target, name, index) { setTarget(target, name, index, checkCallSecretKey); }; exports.isValidMemo = function (target, name, index) { setTarget(target, name, index, checkMemoKey); }; exports.isValidAmount = function (target, name, index) { setTarget(target, name, index, checkAmountKey); }; exports.validate = function (target, name, descriptor) { var method = descriptor.value; descriptor.value = function () { var params = target[router][name].params; /* istanbul ignore else */ if (Array.isArray(params)) { var length = params.length; for (var index = 0; index < length; index++) { var element = params[index]; var value = arguments[index]; switch (element) { case checkCallAddressKey: if (!callFingate_1.default.isValidAddress(value)) { throw new Error(value + " is invalid call address."); } break; case checkCallSecretKey: if (!callFingate_1.default.isValidSecret(value)) { throw new Error(value + " is invalid call secret."); } break; case checkAmountKey: var bn = new bignumber_js_1.default(value); if (!bignumber_js_1.default.isBigNumber(bn) || !bn.isGreaterThan(0)) { throw new Error(value + " is invalid amount."); } break; case checkMemoKey: if (!jingtum_1.isValidAddress(value.jtaddress)) { throw new Error(value.jtaddress + " is invalid jingtum address in memo."); } break; /* istanbul ignore next */ default: break; } } } return method.apply(this, arguments); }; }; //# sourceMappingURL=index.js.map