envio
Version:
A latency and sync speed optimized, developer friendly blockchain data indexer.
43 lines (35 loc) • 1.29 kB
JavaScript
// Generated by ReScript, PLEASE EDIT WITH CARE
;
var $$BigInt = require("./bindings/BigInt.res.js");
var Js_exn = require("rescript/lib/js/js_exn.js");
var Caml_obj = require("rescript/lib/js/caml_obj.js");
function getOrderedBatchItemComparator(item) {
if (item.kind === 0) {
return [
item.timestamp,
item.chain,
item.blockNumber,
item.logIndex
];
} else {
return Js_exn.raiseError("Block handlers are not supported for ordered multichain mode.");
}
}
var isEarlier = Caml_obj.lessthan;
var isEarlierUnordered = Caml_obj.lessthan;
function packEventIndex(blockNumber, logIndex) {
var blockNumber$1 = BigInt(blockNumber);
var logIndex$1 = BigInt(logIndex);
var blockNumber$2 = $$BigInt.Bitwise.shift_left(blockNumber$1, BigInt(16));
return $$BigInt.Bitwise.logor(blockNumber$2, logIndex$1);
}
function getEventIdKeyString(chainId, eventId) {
var chainIdStr = String(chainId);
return chainIdStr + "_" + eventId;
}
exports.getOrderedBatchItemComparator = getOrderedBatchItemComparator;
exports.isEarlier = isEarlier;
exports.isEarlierUnordered = isEarlierUnordered;
exports.packEventIndex = packEventIndex;
exports.getEventIdKeyString = getEventIdKeyString;
/* BigInt Not a pure module */