abi-util-lite
Version:
A light impletation to parse abi string array to abi json
50 lines • 1.42 kB
JavaScript
Object.defineProperty(exports, "__esModule", { value: true });
exports.splitNesting = exports._constructorGuard = exports.populate = exports.defineReadOnly = void 0;
var Logger_1 = require("./Logger");
function defineReadOnly(object, name, value) {
Object.defineProperty(object, name, {
enumerable: true,
value: value,
writable: false,
});
}
exports.defineReadOnly = defineReadOnly;
function populate(object, params) {
for (var key in params) {
defineReadOnly(object, key, params[key]);
}
}
exports.populate = populate;
exports._constructorGuard = {};
function splitNesting(value) {
value = value.trim();
var result = [];
var accum = "";
var depth = 0;
for (var offset = 0; offset < value.length; offset++) {
var c = value[offset];
if (c === "," && depth === 0) {
result.push(accum);
accum = "";
}
else {
accum += c;
if (c === "(") {
depth++;
}
else if (c === ")") {
depth--;
if (depth === -1) {
Logger_1.logger.throwArgumentError("unbalanced parenthesis", "value", value);
}
}
}
}
if (accum) {
result.push(accum);
}
return result;
}
exports.splitNesting = splitNesting;
//# sourceMappingURL=Utils.js.map
;