jcc-call-utils
Version:
Toolkit of crossing chain from Call chain to SWTC chain
70 lines • 2.95 kB
JavaScript
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
;