envio
Version:
A latency and sync speed optimized, developer friendly blockchain data indexer.
76 lines (65 loc) • 2.73 kB
JavaScript
// Generated by ReScript, PLEASE EDIT WITH CARE
;
var $$BigInt = require("./bindings/BigInt.res.js");
var Belt_Int = require("rescript/lib/js/belt_Int.js");
var Caml_obj = require("rescript/lib/js/caml_obj.js");
function getEventComparator(multiChainEventIndex) {
return [
multiChainEventIndex.timestamp,
multiChainEventIndex.chainId,
multiChainEventIndex.blockNumber,
multiChainEventIndex.logIndex
];
}
function getEventComparatorFromQueueItem(param) {
return [
param.timestamp,
param.chain,
param.blockNumber,
param.logIndex
];
}
function isEarlierEvent(event1, event2) {
return Caml_obj.lessthan(getEventComparator(event1), getEventComparator(event2));
}
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 packMultiChainEventIndex(timestamp, chainId, blockNumber, logIndex) {
var timestamp$1 = BigInt(timestamp);
var chainId$1 = BigInt(chainId);
var blockNumber$1 = BigInt(blockNumber);
var logIndex$1 = BigInt(logIndex);
var timestamp$2 = $$BigInt.Bitwise.shift_left(timestamp$1, BigInt(48));
var chainId$2 = $$BigInt.Bitwise.shift_left(chainId$1, BigInt(16));
var blockNumber$2 = $$BigInt.Bitwise.shift_left(blockNumber$1, BigInt(16));
return $$BigInt.Bitwise.logor($$BigInt.Bitwise.logor($$BigInt.Bitwise.logor(timestamp$2, chainId$2), blockNumber$2), logIndex$1);
}
function unpackEventIndex(packedEventIndex) {
var blockNumber = $$BigInt.Bitwise.shift_right(packedEventIndex, BigInt(16));
var logIndexMask = BigInt(65535);
var logIndex = $$BigInt.Bitwise.logand(packedEventIndex, logIndexMask);
return {
blockNumber: Belt_Int.fromString(blockNumber.toString()),
logIndex: Belt_Int.fromString(logIndex.toString())
};
}
function packEventIndexFromRecord(eventIndex) {
return packEventIndex(eventIndex.blockNumber, eventIndex.logIndex);
}
function getEventIdKeyString(chainId, eventId) {
var chainIdStr = String(chainId);
return chainIdStr + "_" + eventId;
}
exports.getEventComparator = getEventComparator;
exports.getEventComparatorFromQueueItem = getEventComparatorFromQueueItem;
exports.isEarlierEvent = isEarlierEvent;
exports.packEventIndex = packEventIndex;
exports.packMultiChainEventIndex = packMultiChainEventIndex;
exports.unpackEventIndex = unpackEventIndex;
exports.packEventIndexFromRecord = packEventIndexFromRecord;
exports.getEventIdKeyString = getEventIdKeyString;
/* BigInt Not a pure module */