UNPKG

envio

Version:

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

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