envio
Version:
A latency and sync speed optimized, developer friendly blockchain data indexer.
45 lines (39 loc) • 1.22 kB
JavaScript
// Generated by ReScript, PLEASE EDIT WITH CARE
import * as Viem from "viem";
import * as Primitive_option from "@rescript/runtime/lib/es6/Primitive_option.js";
import * as Primitive_exceptions from "@rescript/runtime/lib/es6/Primitive_exceptions.js";
let ParseError = /* @__PURE__ */Primitive_exceptions.create("Viem.ParseError");
let UnknownContractName = /* @__PURE__ */Primitive_exceptions.create("Viem.UnknownContractName");
function parseLogOrThrow(contractNameAbiMapping, contractName, topics, data) {
let abi = contractNameAbiMapping[contractName];
if (abi !== undefined) {
let viemLog_abi = Primitive_option.valFromOption(abi);
let viemLog = {
abi: viemLog_abi,
data: data,
topics: topics
};
try {
return Viem.decodeEventLog(viemLog);
} catch (raw_exn) {
let exn = Primitive_exceptions.internalToException(raw_exn);
throw {
RE_EXN_ID: ParseError,
_1: exn,
Error: new Error()
};
}
} else {
throw {
RE_EXN_ID: UnknownContractName,
contractName: contractName,
Error: new Error()
};
}
}
export {
ParseError,
UnknownContractName,
parseLogOrThrow,
}
/* viem Not a pure module */