incubed
Version:
Typescript-version of the incubed client
42 lines • 1.92 kB
JavaScript
;
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
return new (P || (P = Promise))(function (resolve, reject) {
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }
step((generator = generator.apply(thisArg, _arguments || [])).next());
});
};
Object.defineProperty(exports, "__esModule", { value: true });
const modules = {};
function tryLoadModule(path, name) {
try {
require(path);
return modules[name];
}
catch (_a) {
return null;
}
}
function getModule(name) {
const m = modules[name] || tryLoadModule('../modules/' + name, name) || tryLoadModule(name, name);
if (!m)
throw new Error('Could not find the module ' + name + ' please ensure it was loaded before!');
return m;
}
exports.getModule = getModule;
/** general verification-function which handles it according to its given type. */
function verifyProof(request, response, allowWithoutProof, ctx) {
return __awaiter(this, void 0, void 0, function* () {
return (yield ctx.module.verifyProof(request, response, allowWithoutProof, ctx))
|| Promise.all(Object.keys(modules).filter(_ => _ !== ctx.module.name).map(m => modules[m].verifyProof(request, response, allowWithoutProof, ctx))).then(a => a.find(_ => !!_));
});
}
exports.verifyProof = verifyProof;
function register(module) {
modules[module.name] = module;
}
exports.register = register;
// we are always importing the eth-modules because it is needed in order to verify the nodelist
require("../modules/eth");
//# sourceMappingURL=modules.js.map