envio
Version:
A latency and sync speed optimized, developer friendly blockchain data indexer.
46 lines (40 loc) • 1.34 kB
JavaScript
// Generated by ReScript, PLEASE EDIT WITH CARE
;
var Viem = require("viem");
var Caml_option = require("rescript/lib/js/caml_option.js");
var Caml_exceptions = require("rescript/lib/js/caml_exceptions.js");
var Caml_js_exceptions = require("rescript/lib/js/caml_js_exceptions.js");
var ParseError = /* @__PURE__ */Caml_exceptions.create("Viem.ParseError");
var UnknownContractName = /* @__PURE__ */Caml_exceptions.create("Viem.UnknownContractName");
function parseLogOrThrow(contractNameAbiMapping, contractName, topics, data) {
var abi = contractNameAbiMapping[contractName];
if (abi !== undefined) {
var viemLog_abi = Caml_option.valFromOption(abi);
var viemLog = {
abi: viemLog_abi,
data: data,
topics: topics
};
try {
return Viem.decodeEventLog(viemLog);
}
catch (raw_exn){
var exn = Caml_js_exceptions.internalToOCamlException(raw_exn);
throw {
RE_EXN_ID: ParseError,
_1: exn,
Error: new Error()
};
}
} else {
throw {
RE_EXN_ID: UnknownContractName,
contractName: contractName,
Error: new Error()
};
}
}
exports.ParseError = ParseError;
exports.UnknownContractName = UnknownContractName;
exports.parseLogOrThrow = parseLogOrThrow;
/* viem Not a pure module */