UNPKG

envio

Version:

A latency and sync speed optimized, developer friendly blockchain data indexer.

125 lines (112 loc) 4.07 kB
// Generated by ReScript, PLEASE EDIT WITH CARE 'use strict'; 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 */