envio
Version:
A latency and sync speed optimized, developer friendly blockchain data indexer.
125 lines (112 loc) • 4.07 kB
JavaScript
// Generated by ReScript, PLEASE EDIT WITH CARE
;
var Logging = require("./Logging.res.js");
var Belt_Option = require("rescript/lib/js/belt_Option.js");
var ErrorHandling = require("./ErrorHandling.res.js");
var Caml_exceptions = require("rescript/lib/js/caml_exceptions.js");
function getHandler(t) {
return t.handler;
}
function getContractRegister(t) {
return t.contractRegister;
}
function getEventFilters(t) {
return Belt_Option.flatMap(t.eventOptions, (function (value) {
return value.eventFilters;
}));
}
function isWildcard(t) {
return Belt_Option.getWithDefault(Belt_Option.flatMap(t.eventOptions, (function (value) {
return value.wildcard;
})), false);
}
function hasRegistration(param) {
var handler = param.handler;
var contractRegister = param.contractRegister;
if (Belt_Option.isSome(handler)) {
return true;
} else {
return Belt_Option.isSome(contractRegister);
}
}
function make(contractName, eventName) {
return {
contractName: contractName,
eventName: eventName,
handler: undefined,
contractRegister: undefined,
eventOptions: undefined
};
}
var DuplicateEventRegistration = /* @__PURE__ */Caml_exceptions.create("EventRegister.DuplicateEventRegistration");
function setEventOptions(t, eventOptions, loggerOpt) {
var logger = loggerOpt !== undefined ? loggerOpt : Logging.getLogger();
if (eventOptions === undefined) {
return ;
}
var existingValue = t.eventOptions;
if (existingValue === undefined) {
t.eventOptions = eventOptions;
return ;
}
if (!(existingValue.wildcard !== eventOptions.wildcard || existingValue.eventFilters !== eventOptions.eventFilters)) {
return ;
}
var eventNamespace_contractName = t.contractName;
var eventNamespace_eventName = t.eventName;
var eventNamespace = {
contractName: eventNamespace_contractName,
eventName: eventNamespace_eventName
};
ErrorHandling.mkLogAndRaise(Logging.createChildFrom(logger, eventNamespace), "Duplicate eventOptions in handlers not allowed", {
RE_EXN_ID: DuplicateEventRegistration,
_1: eventNamespace
});
}
function setHandler(t, handler, eventOptions, loggerOpt) {
var logger = loggerOpt !== undefined ? loggerOpt : Logging.getLogger();
var match = t.handler;
if (match !== undefined) {
var eventNamespace_contractName = t.contractName;
var eventNamespace_eventName = t.eventName;
var eventNamespace = {
contractName: eventNamespace_contractName,
eventName: eventNamespace_eventName
};
ErrorHandling.mkLogAndRaise(Logging.createChildFrom(logger, eventNamespace), "Duplicate registration of event handlers not allowed", {
RE_EXN_ID: DuplicateEventRegistration,
_1: eventNamespace
});
} else {
t.handler = handler;
}
setEventOptions(t, eventOptions, logger);
}
function setContractRegister(t, contractRegister, eventOptions, loggerOpt) {
var logger = loggerOpt !== undefined ? loggerOpt : Logging.getLogger();
var match = t.contractRegister;
if (match !== undefined) {
var eventNamespace_contractName = t.contractName;
var eventNamespace_eventName = t.eventName;
var eventNamespace = {
contractName: eventNamespace_contractName,
eventName: eventNamespace_eventName
};
ErrorHandling.mkLogAndRaise(Logging.createChildFrom(logger, eventNamespace), "Duplicate contractRegister handlers not allowed", {
RE_EXN_ID: DuplicateEventRegistration,
_1: eventNamespace
});
} else {
t.contractRegister = contractRegister;
}
setEventOptions(t, eventOptions, logger);
}
exports.make = make;
exports.setHandler = setHandler;
exports.setContractRegister = setContractRegister;
exports.getHandler = getHandler;
exports.getContractRegister = getContractRegister;
exports.getEventFilters = getEventFilters;
exports.isWildcard = isWildcard;
exports.hasRegistration = hasRegistration;
/* Logging Not a pure module */