@eternl/network-id 0.10.3 → 0.10.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/chain.cjs CHANGED
@@ -1,6 +1,6 @@
1
1
  Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: 'Module' } });
2
- const require_types_NetworkId = require('./types/NetworkId.cjs');
3
2
  const require_network_GenesisStore = require('./network/GenesisStore.cjs');
3
+ const require_types_NetworkId = require('./types/NetworkId.cjs');
4
4
  let _eternl_tools = require("@eternl/tools");
5
5
 
6
6
  //#region src/chain.ts
@@ -1 +1 @@
1
- {"version":3,"file":"chain.cjs","names":["GenesisStore","networkShelleyTransitionEpoch"],"sources":["../src/chain.ts"],"sourcesContent":["import {\n changeTimezone,\n now\n} from '@eternl/tools'\n\nimport {\n type NetworkId,\n networkShelleyTransitionEpoch\n} from './types/NetworkId'\nimport { type IChainTip } from './types/IChainTip'\nimport { type DateId } from './types/DateId'\n\nimport {\n type IByron,\n type IShelley,\n type IGenesisStore\n} from './network/IGenesisStore'\nimport { GenesisStore } from './network/GenesisStore'\n\n// Cache for storing calculated DateId results\nconst dateIdCache = new Map<string, DateId>()\n\n// Cache for Intl.DateTimeFormat instances (these are expensive to create)\nconst formatterCache = new Map<string, Intl.DateTimeFormat>()\n\nexport const getGenesis = (networkId: NetworkId): IGenesisStore => GenesisStore[networkId]\nexport const getByron = (networkId: NetworkId): IByron => GenesisStore[networkId].byron\nexport const getShelley = (networkId: NetworkId): IShelley => GenesisStore[networkId].shelley\nexport const getNetworkMagic = (networkId: NetworkId): number => GenesisStore[networkId].shelley.networkMagic\nexport const getEpochLength = (networkId: NetworkId): number => GenesisStore[networkId].shelley.epochLength\nexport const getNumEpochBlocks= (networkId: NetworkId): number => getEpochLength(networkId) * GenesisStore[networkId].shelley.activeSlotsCoeff\n\nconst getCommonData = (networkId: NetworkId): any => {\n\n const byron = getByron(networkId)\n\n const currentTimeSec = Math.floor(now() / 1000)\n const shelleyTransEpoch = networkShelleyTransitionEpoch[networkId]\n const byronEpochLength = byron.protocolConsts.k * 10\n const byronSlots = shelleyTransEpoch * byronEpochLength\n const byronSlotLength = byron.blockVersionData.slotDuration\n const byronEndTime = byron.startTime + Math.floor((shelleyTransEpoch * byronEpochLength * parseInt(byronSlotLength)) / 1000)\n\n return {\n currentTimeSec,\n shelleyTransEpoch,\n byronEpochLength,\n byronSlots,\n byronSlotLength,\n byronEndTime\n }\n}\n\nexport const getCalculatedChainTip = (networkId: NetworkId): number => {\n\n const byron = getByron(networkId)\n const shelley = getShelley(networkId)\n const common = getCommonData(networkId)\n\n if (common.currentTimeSec < common.byronEndTime) {\n\n return Math.floor(\n (common.currentTimeSec - byron.startTime) * 1000) /\n parseInt(byron.blockVersionData.slotDuration)\n }\n\n return common.byronSlots + Math.floor(\n (common.currentTimeSec - common.byronEndTime) / shelley.slotLength)\n}\n\nexport const getTimestampFromSlot = (networkId: NetworkId, slotNo: number): number => {\n\n const byron = getByron(networkId)\n const shelley = getShelley(networkId)\n const common = getCommonData(networkId)\n\n if (slotNo < common.byronSlots) {\n\n return (byron.startTime * 1000 + (slotNo * parseInt(byron.blockVersionData.slotDuration)))\n }\n\n return (common.byronEndTime + (slotNo - common.byronSlots) * shelley.slotLength) * 1000\n}\n\nexport const getEpochFromSlot = (networkId: NetworkId, slotNo: number): number => {\n\n const byron = getByron(networkId)\n const shelley = getShelley(networkId)\n const common = getCommonData(networkId)\n\n let timeSec = 0\n\n if (slotNo < common.byronSlots) {\n\n timeSec = (byron.startTime + (slotNo * parseInt(byron.blockVersionData.slotDuration)))\n\n } else {\n\n timeSec = (common.byronEndTime + (slotNo - common.byronSlots) * shelley.slotLength)\n }\n\n if (timeSec < common.byronEndTime) {\n\n return Math.floor(\n (((timeSec - byron.startTime) * 1000) /\n parseInt(byron.blockVersionData.slotDuration)\n ) / common.byronEpochLength)\n }\n\n return common.shelleyTransEpoch + Math.floor(\n (timeSec - common.byronEndTime) / shelley.slotLength / shelley.epochLength)\n}\n\nexport const getCalculatedSlotFromBlockTime = (networkId: NetworkId, timestamp: any): number => {\n\n const dateTimeSec = Math.floor((new Date(timestamp)).getTime() / 1000)\n\n const byron = getByron(networkId)\n const shelley = getShelley(networkId)\n const common = getCommonData(networkId)\n\n if (dateTimeSec < common.byronEndTime) {\n\n return Math.floor(\n (dateTimeSec - byron.startTime) * 1000) /\n parseInt(byron.blockVersionData.slotDuration)\n }\n\n return common.byronSlots + Math.floor(\n (dateTimeSec - common.byronEndTime) / shelley.slotLength)\n}\n\nexport const getCalculatedEpochSlot = (networkId: NetworkId): number => {\n\n const shelley = getShelley(networkId)\n const common = getCommonData(networkId)\n\n const tip = getCalculatedChainTip(networkId) - common.byronSlots - (\n (getCalculatedEpoch(networkId) - common.shelleyTransEpoch) * shelley.epochLength)\n\n return Math.floor(tip)\n}\n\nexport const getCalculatedEpoch = (id: NetworkId): number => {\n\n const byron = getByron(id)\n const shelley = getShelley(id)\n\n const common = getCommonData(id)\n\n if (common.currentTimeSec < common.byronEndTime) {\n\n return Math.floor(\n (((common.currentTimeSec - byron.startTime) * 1000) /\n parseInt(byron.blockVersionData.slotDuration)\n ) / common.byronEpochLength)\n }\n\n return common.shelleyTransEpoch + Math.floor(\n (common.currentTimeSec - common.byronEndTime) / shelley.slotLength / shelley.epochLength)\n}\n\nexport const getLastSlotOfEpoch = (id: NetworkId, epochNo: number): number => {\n\n const shelley = getShelley(id)\n\n const common = getCommonData(id)\n\n if (epochNo <= common.shelleyTransEpoch) {\n\n return common.byronEpochLength * epochNo\n }\n\n return (common.byronEpochLength * (common.shelleyTransEpoch - 1)) +\n ((epochNo - common.shelleyTransEpoch + 1) * shelley.epochLength)\n}\n\nexport const getEpochStart = (id: NetworkId, epochNo: number): {\n\n slotNumber: number,\n timestamp: number\n\n} => {\n\n const common = getCommonData(id)\n\n if (epochNo >= common.shelleyTransEpoch) {\n\n const shelley = getShelley(id)\n\n const shelleySlots = (epochNo - common.shelleyTransEpoch) * shelley.epochLength\n\n const slotNumber = common.byronSlots + shelleySlots + 1\n const timestamp = (common.byronEndTime + shelleySlots + 1) * 1000\n\n return { slotNumber, timestamp }\n\n } else {\n\n const byron = getByron(id)\n\n const slotNumber = epochNo * common.byronEpochLength\n const timestamp = (byron.startTime + slotNumber * parseInt(common.byronSlotLength) / 1000) * 1000\n\n return { slotNumber, timestamp }\n }\n}\n\nexport const updateChainTip = (id: NetworkId, chainTip: IChainTip, data: IChainTip): IChainTip => {\n\n const shelley = getShelley(id)\n\n const calcTip = getCalculatedChainTip(id)\n\n chainTip.blockNo = data.blockNo\n chainTip.slotNo = data.slotNo\n\n chainTip.epochNo = data.epochNo\n chainTip.epochSlot = data.epochSlot\n chainTip.epochSlots = shelley.epochLength\n chainTip.epochPercent = parseFloat(((chainTip.epochSlot / chainTip.epochSlots) * 100).toFixed(2))\n chainTip.syncProgress = Math.round((chainTip.slotNo / calcTip) * 10000) / 100\n\n chainTip.onTip = (calcTip - chainTip.slotNo) < 300 // 5 minutes without a block\n\n return chainTip\n}\n\nexport const getDateIdFromSlot = (networkId: NetworkId, slotNo: number, userSelectedTimezone: string): DateId => {\n\n const timeStamp = getTimestampFromSlot(networkId, slotNo)\n\n return getDateIdFromTimestamp(timeStamp, userSelectedTimezone)\n}\n\nexport const getDateIdFromTimestamp = (timeStamp: number, userSelectedTimezone: string): DateId => {\n\n const cacheKey = `${timeStamp}_${userSelectedTimezone}`\n\n const cachedResult = dateIdCache.get(cacheKey)\n\n if (cachedResult) { return cachedResult }\n\n let formatter = formatterCache.get(userSelectedTimezone)\n\n if (!formatter) {\n\n formatter = Intl.DateTimeFormat('de-DE', {\n year: 'numeric',\n month: '2-digit',\n day: '2-digit',\n timeZone: userSelectedTimezone,\n })\n\n formatterCache.set(userSelectedTimezone, formatter)\n }\n\n const date = new Date(timeStamp)\n const dateArray = formatter.formatToParts(date)\n\n const result: DateId = {\n\n year: parseInt(dateArray[4]!.value),\n month: parseInt(dateArray[2]!.value),\n day: parseInt(dateArray[0]!.value),\n timezone: userSelectedTimezone\n }\n\n dateIdCache.set(cacheKey, result)\n\n return result\n}\n\nexport const getSlotFromDateId = (\n networkId: NetworkId,\n dateId: Pick<DateId, 'year' | 'month' | 'day' | 'timezone'>,\n calcEnd: boolean = false\n): number => {\n\n const year = dateId.year // e.g. 2023\n const month = dateId.month - 1 // date months start at 0\n\n let date\n\n if (dateId.day === 0 && dateId.month === 0) {\n\n if (calcEnd) {\n\n // up to 31st Dec 23:59:59, it's slot based, which is 1 slot = 1 second\n date = new Date((new Date(year + 1, 0, 1, 0, 0, 0)).getTime() - 1000)\n\n } else {\n\n // from 1st Jan 00:00:00\n date = new Date((new Date(year, 0, 1, 0, 0, 0)).getTime())\n }\n\n } else if (dateId.day === 0) {\n\n if (calcEnd) {\n\n // up to last day of month 23:59:59, it's slot based, which is 1 slot = 1 second\n date = new Date((new Date(year, month + 1, 1, 0, 0, 0)).getTime() - 1000)\n\n } else {\n\n // from 1st day of month 00:00:00\n date = new Date((new Date(year, month, 1, 0, 0, 0)).getTime())\n }\n\n } else {\n\n if (calcEnd) {\n\n // up to 23:59:59\n date = new Date((new Date(year, month, dateId.day, 0, 0, 0)).getTime() + (86400 - 1) * 1000)\n\n } else {\n\n // from 00:00:00\n date = new Date((new Date(year, month, dateId.day, 0, 0, 0)).getTime())\n }\n }\n\n date = changeTimezone(date, dateId.timezone)\n\n return getCalculatedSlotFromBlockTime(networkId, date.getTime())\n}\n\nexport default {\n\n getNetworkMagic,\n getEpochLength,\n getGenesis,\n getByron,\n getShelley,\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"chain.cjs","names":["GenesisStore","networkShelleyTransitionEpoch"],"sources":["../src/chain.ts"],"sourcesContent":["\n\n// Cache for storing calculated DateId results\n\nimport {\n changeTimezone,\n now,\n} from '@eternl/tools'\n\nimport { GenesisStore } from './network/GenesisStore'\nimport {\n IByron,\n IGenesisStore,\n IShelley,\n} from './network/IGenesisStore'\nimport { DateId } from './types/DateId'\nimport { IChainTip } from './types/IChainTip'\nimport {\n NetworkId,\n networkShelleyTransitionEpoch,\n} from './types/NetworkId'\n\nconst dateIdCache = new Map<string, DateId>()\n\n// Cache for Intl.DateTimeFormat instances (these are expensive to create)\nconst formatterCache = new Map<string, Intl.DateTimeFormat>()\n\nexport const getGenesis = (networkId: NetworkId): IGenesisStore => GenesisStore[networkId]\nexport const getByron = (networkId: NetworkId): IByron => GenesisStore[networkId].byron\nexport const getShelley = (networkId: NetworkId): IShelley => GenesisStore[networkId].shelley\nexport const getNetworkMagic = (networkId: NetworkId): number => GenesisStore[networkId].shelley.networkMagic\nexport const getEpochLength = (networkId: NetworkId): number => GenesisStore[networkId].shelley.epochLength\nexport const getNumEpochBlocks= (networkId: NetworkId): number => getEpochLength(networkId) * GenesisStore[networkId].shelley.activeSlotsCoeff\n\nconst getCommonData = (networkId: NetworkId): any => {\n\n const byron = getByron(networkId)\n\n const currentTimeSec = Math.floor(now() / 1000)\n const shelleyTransEpoch = networkShelleyTransitionEpoch[networkId]\n const byronEpochLength = byron.protocolConsts.k * 10\n const byronSlots = shelleyTransEpoch * byronEpochLength\n const byronSlotLength = byron.blockVersionData.slotDuration\n const byronEndTime = byron.startTime + Math.floor((shelleyTransEpoch * byronEpochLength * parseInt(byronSlotLength)) / 1000)\n\n return {\n currentTimeSec,\n shelleyTransEpoch,\n byronEpochLength,\n byronSlots,\n byronSlotLength,\n byronEndTime\n }\n}\n\nexport const getCalculatedChainTip = (networkId: NetworkId): number => {\n\n const byron = getByron(networkId)\n const shelley = getShelley(networkId)\n const common = getCommonData(networkId)\n\n if (common.currentTimeSec < common.byronEndTime) {\n\n return Math.floor(\n (common.currentTimeSec - byron.startTime) * 1000) /\n parseInt(byron.blockVersionData.slotDuration)\n }\n\n return common.byronSlots + Math.floor(\n (common.currentTimeSec - common.byronEndTime) / shelley.slotLength)\n}\n\nexport const getTimestampFromSlot = (networkId: NetworkId, slotNo: number): number => {\n\n const byron = getByron(networkId)\n const shelley = getShelley(networkId)\n const common = getCommonData(networkId)\n\n if (slotNo < common.byronSlots) {\n\n return (byron.startTime * 1000 + (slotNo * parseInt(byron.blockVersionData.slotDuration)))\n }\n\n return (common.byronEndTime + (slotNo - common.byronSlots) * shelley.slotLength) * 1000\n}\n\nexport const getEpochFromSlot = (networkId: NetworkId, slotNo: number): number => {\n\n const byron = getByron(networkId)\n const shelley = getShelley(networkId)\n const common = getCommonData(networkId)\n\n let timeSec = 0\n\n if (slotNo < common.byronSlots) {\n\n timeSec = (byron.startTime + (slotNo * parseInt(byron.blockVersionData.slotDuration)))\n\n } else {\n\n timeSec = (common.byronEndTime + (slotNo - common.byronSlots) * shelley.slotLength)\n }\n\n if (timeSec < common.byronEndTime) {\n\n return Math.floor(\n (((timeSec - byron.startTime) * 1000) /\n parseInt(byron.blockVersionData.slotDuration)\n ) / common.byronEpochLength)\n }\n\n return common.shelleyTransEpoch + Math.floor(\n (timeSec - common.byronEndTime) / shelley.slotLength / shelley.epochLength)\n}\n\nexport const getCalculatedSlotFromBlockTime = (networkId: NetworkId, timestamp: any): number => {\n\n const dateTimeSec = Math.floor((new Date(timestamp)).getTime() / 1000)\n\n const byron = getByron(networkId)\n const shelley = getShelley(networkId)\n const common = getCommonData(networkId)\n\n if (dateTimeSec < common.byronEndTime) {\n\n return Math.floor(\n (dateTimeSec - byron.startTime) * 1000) /\n parseInt(byron.blockVersionData.slotDuration)\n }\n\n return common.byronSlots + Math.floor(\n (dateTimeSec - common.byronEndTime) / shelley.slotLength)\n}\n\nexport const getCalculatedEpochSlot = (networkId: NetworkId): number => {\n\n const shelley = getShelley(networkId)\n const common = getCommonData(networkId)\n\n const tip = getCalculatedChainTip(networkId) - common.byronSlots - (\n (getCalculatedEpoch(networkId) - common.shelleyTransEpoch) * shelley.epochLength)\n\n return Math.floor(tip)\n}\n\nexport const getCalculatedEpoch = (id: NetworkId): number => {\n\n const byron = getByron(id)\n const shelley = getShelley(id)\n\n const common = getCommonData(id)\n\n if (common.currentTimeSec < common.byronEndTime) {\n\n return Math.floor(\n (((common.currentTimeSec - byron.startTime) * 1000) /\n parseInt(byron.blockVersionData.slotDuration)\n ) / common.byronEpochLength)\n }\n\n return common.shelleyTransEpoch + Math.floor(\n (common.currentTimeSec - common.byronEndTime) / shelley.slotLength / shelley.epochLength)\n}\n\nexport const getLastSlotOfEpoch = (id: NetworkId, epochNo: number): number => {\n\n const shelley = getShelley(id)\n\n const common = getCommonData(id)\n\n if (epochNo <= common.shelleyTransEpoch) {\n\n return common.byronEpochLength * epochNo\n }\n\n return (common.byronEpochLength * (common.shelleyTransEpoch - 1)) +\n ((epochNo - common.shelleyTransEpoch + 1) * shelley.epochLength)\n}\n\nexport const getEpochStart = (id: NetworkId, epochNo: number): {\n\n slotNumber: number,\n timestamp: number\n\n} => {\n\n const common = getCommonData(id)\n\n if (epochNo >= common.shelleyTransEpoch) {\n\n const shelley = getShelley(id)\n\n const shelleySlots = (epochNo - common.shelleyTransEpoch) * shelley.epochLength\n\n const slotNumber = common.byronSlots + shelleySlots + 1\n const timestamp = (common.byronEndTime + shelleySlots + 1) * 1000\n\n return { slotNumber, timestamp }\n\n } else {\n\n const byron = getByron(id)\n\n const slotNumber = epochNo * common.byronEpochLength\n const timestamp = (byron.startTime + slotNumber * parseInt(common.byronSlotLength) / 1000) * 1000\n\n return { slotNumber, timestamp }\n }\n}\n\nexport const updateChainTip = (id: NetworkId, chainTip: IChainTip, data: IChainTip): IChainTip => {\n\n const shelley = getShelley(id)\n\n const calcTip = getCalculatedChainTip(id)\n\n chainTip.blockNo = data.blockNo\n chainTip.slotNo = data.slotNo\n\n chainTip.epochNo = data.epochNo\n chainTip.epochSlot = data.epochSlot\n chainTip.epochSlots = shelley.epochLength\n chainTip.epochPercent = parseFloat(((chainTip.epochSlot / chainTip.epochSlots) * 100).toFixed(2))\n chainTip.syncProgress = Math.round((chainTip.slotNo / calcTip) * 10000) / 100\n\n chainTip.onTip = (calcTip - chainTip.slotNo) < 300 // 5 minutes without a block\n\n return chainTip\n}\n\nexport const getDateIdFromSlot = (networkId: NetworkId, slotNo: number, userSelectedTimezone: string): DateId => {\n\n const timeStamp = getTimestampFromSlot(networkId, slotNo)\n\n return getDateIdFromTimestamp(timeStamp, userSelectedTimezone)\n}\n\nexport const getDateIdFromTimestamp = (timeStamp: number, userSelectedTimezone: string): DateId => {\n\n const cacheKey = `${timeStamp}_${userSelectedTimezone}`\n\n const cachedResult = dateIdCache.get(cacheKey)\n\n if (cachedResult) { return cachedResult }\n\n let formatter = formatterCache.get(userSelectedTimezone)\n\n if (!formatter) {\n\n formatter = Intl.DateTimeFormat('de-DE', {\n year: 'numeric',\n month: '2-digit',\n day: '2-digit',\n timeZone: userSelectedTimezone,\n })\n\n formatterCache.set(userSelectedTimezone, formatter)\n }\n\n const date = new Date(timeStamp)\n const dateArray = formatter.formatToParts(date)\n\n const result: DateId = {\n\n year: parseInt(dateArray[4]!.value),\n month: parseInt(dateArray[2]!.value),\n day: parseInt(dateArray[0]!.value),\n timezone: userSelectedTimezone\n }\n\n dateIdCache.set(cacheKey, result)\n\n return result\n}\n\nexport const getSlotFromDateId = (\n networkId: NetworkId,\n dateId: Pick<DateId, 'year' | 'month' | 'day' | 'timezone'>,\n calcEnd: boolean = false\n): number => {\n\n const year = dateId.year // e.g. 2023\n const month = dateId.month - 1 // date months start at 0\n\n let date\n\n if (dateId.day === 0 && dateId.month === 0) {\n\n if (calcEnd) {\n\n // up to 31st Dec 23:59:59, it's slot based, which is 1 slot = 1 second\n date = new Date((new Date(year + 1, 0, 1, 0, 0, 0)).getTime() - 1000)\n\n } else {\n\n // from 1st Jan 00:00:00\n date = new Date((new Date(year, 0, 1, 0, 0, 0)).getTime())\n }\n\n } else if (dateId.day === 0) {\n\n if (calcEnd) {\n\n // up to last day of month 23:59:59, it's slot based, which is 1 slot = 1 second\n date = new Date((new Date(year, month + 1, 1, 0, 0, 0)).getTime() - 1000)\n\n } else {\n\n // from 1st day of month 00:00:00\n date = new Date((new Date(year, month, 1, 0, 0, 0)).getTime())\n }\n\n } else {\n\n if (calcEnd) {\n\n // up to 23:59:59\n date = new Date((new Date(year, month, dateId.day, 0, 0, 0)).getTime() + (86400 - 1) * 1000)\n\n } else {\n\n // from 00:00:00\n date = new Date((new Date(year, month, dateId.day, 0, 0, 0)).getTime())\n }\n }\n\n date = changeTimezone(date, dateId.timezone)\n\n return getCalculatedSlotFromBlockTime(networkId, date.getTime())\n}\n\nexport default {\n\n getNetworkMagic,\n getEpochLength,\n getGenesis,\n getByron,\n getShelley,\n}\n"],"mappings":"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"}
package/dist/chain.d.cts CHANGED
@@ -1,6 +1,6 @@
1
- import { NetworkId } from "./types/NetworkId.cjs";
2
1
  import { IByron, IGenesisStore, IShelley } from "./network/IGenesisStore.cjs";
3
2
  import { DateId } from "./types/DateId.cjs";
3
+ import { NetworkId } from "./types/NetworkId.cjs";
4
4
  import { IChainTip } from "./types/IChainTip.cjs";
5
5
 
6
6
  //#region src/chain.d.ts
@@ -1 +1 @@
1
- {"version":3,"file":"chain.d.cts","names":[],"sources":["../src/chain.ts"],"mappings":";;;;;;cAyBa,UAAA,GAAoB,SAAA,EAAW,SAAA,KAAY,aAAA;AAAA,cAC3C,QAAA,GAAoB,SAAA,EAAW,SAAA,KAAY,MAAA;AAAA,cAC3C,UAAA,GAAoB,SAAA,EAAW,SAAA,KAAY,QAAA;AAAA,cAC3C,eAAA,GAAoB,SAAA,EAAW,SAAA;AAAA,cAC/B,cAAA,GAAoB,SAAA,EAAW,SAAA;AAAA,cAC/B,iBAAA,GAAoB,SAAA,EAAW,SAAA;AAAA,cAuB/B,qBAAA,GAAyB,SAAA,EAAW,SAAA;AAAA,cAiBpC,oBAAA,GAAwB,SAAA,EAAW,SAAA,EAAW,MAAA;AAAA,cAc9C,gBAAA,GAAoB,SAAA,EAAW,SAAA,EAAW,MAAA;AAAA,cA6B1C,8BAAA,GAAkC,SAAA,EAAW,SAAA,EAAW,SAAA;AAAA,cAmBxD,sBAAA,GAA0B,SAAA,EAAW,SAAA;AAAA,cAWrC,kBAAA,GAAsB,EAAA,EAAI,SAAA;AAAA,cAmB1B,kBAAA,GAAsB,EAAA,EAAI,SAAA,EAAW,OAAA;AAAA,cAerC,aAAA,GAAoB,EAAA,EAAI,SAAA,EAAW,OAAA;EAE9C,UAAA;EACA,SAAA;AAAA;AAAA,cA4BW,cAAA,GAAoB,EAAA,EAAI,SAAA,EAAW,QAAA,EAAU,SAAA,EAAW,IAAA,EAAM,SAAA,KAAY,SAAA;AAAA,cAoB1E,iBAAA,GAAqB,SAAA,EAAW,SAAA,EAAW,MAAA,UAAgB,oBAAA,aAA+B,MAAA;AAAA,cAO1F,sBAAA,GAA0B,SAAA,UAAmB,oBAAA,aAA+B,MAAA;AAAA,cAsC5E,iBAAA,GACX,SAAA,EAAW,SAAA,EACX,MAAA,EAAQ,IAAA,CAAK,MAAA,0CACb,OAAA;AAAA,cAmDD,QAAA;+BA3S2C,SAAA;8BACA,SAAA;0BAJA,SAAA,KAAY,aAAA;wBACZ,SAAA,KAAY,MAAA;0BACZ,SAAA,KAAY,QAAA;AAAA"}
1
+ {"version":3,"file":"chain.d.cts","names":[],"sources":["../src/chain.ts"],"mappings":";;;;;;cA2Ba,UAAA,GAAoB,SAAA,EAAW,SAAA,KAAY,aAAA;AAAA,cAC3C,QAAA,GAAoB,SAAA,EAAW,SAAA,KAAY,MAAA;AAAA,cAC3C,UAAA,GAAoB,SAAA,EAAW,SAAA,KAAY,QAAA;AAAA,cAC3C,eAAA,GAAoB,SAAA,EAAW,SAAA;AAAA,cAC/B,cAAA,GAAoB,SAAA,EAAW,SAAA;AAAA,cAC/B,iBAAA,GAAoB,SAAA,EAAW,SAAA;AAAA,cAuB/B,qBAAA,GAAyB,SAAA,EAAW,SAAA;AAAA,cAiBpC,oBAAA,GAAwB,SAAA,EAAW,SAAA,EAAW,MAAA;AAAA,cAc9C,gBAAA,GAAoB,SAAA,EAAW,SAAA,EAAW,MAAA;AAAA,cA6B1C,8BAAA,GAAkC,SAAA,EAAW,SAAA,EAAW,SAAA;AAAA,cAmBxD,sBAAA,GAA0B,SAAA,EAAW,SAAA;AAAA,cAWrC,kBAAA,GAAsB,EAAA,EAAI,SAAA;AAAA,cAmB1B,kBAAA,GAAsB,EAAA,EAAI,SAAA,EAAW,OAAA;AAAA,cAerC,aAAA,GAAoB,EAAA,EAAI,SAAA,EAAW,OAAA;EAE9C,UAAA;EACA,SAAA;AAAA;AAAA,cA4BW,cAAA,GAAoB,EAAA,EAAI,SAAA,EAAW,QAAA,EAAU,SAAA,EAAW,IAAA,EAAM,SAAA,KAAY,SAAA;AAAA,cAoB1E,iBAAA,GAAqB,SAAA,EAAW,SAAA,EAAW,MAAA,UAAgB,oBAAA,aAA+B,MAAA;AAAA,cAO1F,sBAAA,GAA0B,SAAA,UAAmB,oBAAA,aAA+B,MAAA;AAAA,cAsC5E,iBAAA,GACX,SAAA,EAAW,SAAA,EACX,MAAA,EAAQ,IAAA,CAAK,MAAA,0CACb,OAAA;AAAA,cAmDD,QAAA;+BA3S2C,SAAA;8BACA,SAAA;0BAJA,SAAA,KAAY,aAAA;wBACZ,SAAA,KAAY,MAAA;0BACZ,SAAA,KAAY,QAAA;AAAA"}
package/dist/chain.d.mts CHANGED
@@ -1,6 +1,6 @@
1
- import { NetworkId } from "./types/NetworkId.mjs";
2
1
  import { IByron, IGenesisStore, IShelley } from "./network/IGenesisStore.mjs";
3
2
  import { DateId } from "./types/DateId.mjs";
3
+ import { NetworkId } from "./types/NetworkId.mjs";
4
4
  import { IChainTip } from "./types/IChainTip.mjs";
5
5
 
6
6
  //#region src/chain.d.ts
@@ -1 +1 @@
1
- {"version":3,"file":"chain.d.mts","names":[],"sources":["../src/chain.ts"],"mappings":";;;;;;cAyBa,UAAA,GAAoB,SAAA,EAAW,SAAA,KAAY,aAAA;AAAA,cAC3C,QAAA,GAAoB,SAAA,EAAW,SAAA,KAAY,MAAA;AAAA,cAC3C,UAAA,GAAoB,SAAA,EAAW,SAAA,KAAY,QAAA;AAAA,cAC3C,eAAA,GAAoB,SAAA,EAAW,SAAA;AAAA,cAC/B,cAAA,GAAoB,SAAA,EAAW,SAAA;AAAA,cAC/B,iBAAA,GAAoB,SAAA,EAAW,SAAA;AAAA,cAuB/B,qBAAA,GAAyB,SAAA,EAAW,SAAA;AAAA,cAiBpC,oBAAA,GAAwB,SAAA,EAAW,SAAA,EAAW,MAAA;AAAA,cAc9C,gBAAA,GAAoB,SAAA,EAAW,SAAA,EAAW,MAAA;AAAA,cA6B1C,8BAAA,GAAkC,SAAA,EAAW,SAAA,EAAW,SAAA;AAAA,cAmBxD,sBAAA,GAA0B,SAAA,EAAW,SAAA;AAAA,cAWrC,kBAAA,GAAsB,EAAA,EAAI,SAAA;AAAA,cAmB1B,kBAAA,GAAsB,EAAA,EAAI,SAAA,EAAW,OAAA;AAAA,cAerC,aAAA,GAAoB,EAAA,EAAI,SAAA,EAAW,OAAA;EAE9C,UAAA;EACA,SAAA;AAAA;AAAA,cA4BW,cAAA,GAAoB,EAAA,EAAI,SAAA,EAAW,QAAA,EAAU,SAAA,EAAW,IAAA,EAAM,SAAA,KAAY,SAAA;AAAA,cAoB1E,iBAAA,GAAqB,SAAA,EAAW,SAAA,EAAW,MAAA,UAAgB,oBAAA,aAA+B,MAAA;AAAA,cAO1F,sBAAA,GAA0B,SAAA,UAAmB,oBAAA,aAA+B,MAAA;AAAA,cAsC5E,iBAAA,GACX,SAAA,EAAW,SAAA,EACX,MAAA,EAAQ,IAAA,CAAK,MAAA,0CACb,OAAA;AAAA,cAmDD,QAAA;+BA3S2C,SAAA;8BACA,SAAA;0BAJA,SAAA,KAAY,aAAA;wBACZ,SAAA,KAAY,MAAA;0BACZ,SAAA,KAAY,QAAA;AAAA"}
1
+ {"version":3,"file":"chain.d.mts","names":[],"sources":["../src/chain.ts"],"mappings":";;;;;;cA2Ba,UAAA,GAAoB,SAAA,EAAW,SAAA,KAAY,aAAA;AAAA,cAC3C,QAAA,GAAoB,SAAA,EAAW,SAAA,KAAY,MAAA;AAAA,cAC3C,UAAA,GAAoB,SAAA,EAAW,SAAA,KAAY,QAAA;AAAA,cAC3C,eAAA,GAAoB,SAAA,EAAW,SAAA;AAAA,cAC/B,cAAA,GAAoB,SAAA,EAAW,SAAA;AAAA,cAC/B,iBAAA,GAAoB,SAAA,EAAW,SAAA;AAAA,cAuB/B,qBAAA,GAAyB,SAAA,EAAW,SAAA;AAAA,cAiBpC,oBAAA,GAAwB,SAAA,EAAW,SAAA,EAAW,MAAA;AAAA,cAc9C,gBAAA,GAAoB,SAAA,EAAW,SAAA,EAAW,MAAA;AAAA,cA6B1C,8BAAA,GAAkC,SAAA,EAAW,SAAA,EAAW,SAAA;AAAA,cAmBxD,sBAAA,GAA0B,SAAA,EAAW,SAAA;AAAA,cAWrC,kBAAA,GAAsB,EAAA,EAAI,SAAA;AAAA,cAmB1B,kBAAA,GAAsB,EAAA,EAAI,SAAA,EAAW,OAAA;AAAA,cAerC,aAAA,GAAoB,EAAA,EAAI,SAAA,EAAW,OAAA;EAE9C,UAAA;EACA,SAAA;AAAA;AAAA,cA4BW,cAAA,GAAoB,EAAA,EAAI,SAAA,EAAW,QAAA,EAAU,SAAA,EAAW,IAAA,EAAM,SAAA,KAAY,SAAA;AAAA,cAoB1E,iBAAA,GAAqB,SAAA,EAAW,SAAA,EAAW,MAAA,UAAgB,oBAAA,aAA+B,MAAA;AAAA,cAO1F,sBAAA,GAA0B,SAAA,UAAmB,oBAAA,aAA+B,MAAA;AAAA,cAsC5E,iBAAA,GACX,SAAA,EAAW,SAAA,EACX,MAAA,EAAQ,IAAA,CAAK,MAAA,0CACb,OAAA;AAAA,cAmDD,QAAA;+BA3S2C,SAAA;8BACA,SAAA;0BAJA,SAAA,KAAY,aAAA;wBACZ,SAAA,KAAY,MAAA;0BACZ,SAAA,KAAY,QAAA;AAAA"}
package/dist/chain.mjs CHANGED
@@ -1,5 +1,5 @@
1
- import { networkShelleyTransitionEpoch } from "./types/NetworkId.mjs";
2
1
  import { GenesisStore } from "./network/GenesisStore.mjs";
2
+ import { networkShelleyTransitionEpoch } from "./types/NetworkId.mjs";
3
3
  import { changeTimezone, now } from "@eternl/tools";
4
4
 
5
5
  //#region src/chain.ts
@@ -1 +1 @@
1
- {"version":3,"file":"chain.mjs","names":[],"sources":["../src/chain.ts"],"sourcesContent":["import {\n changeTimezone,\n now\n} from '@eternl/tools'\n\nimport {\n type NetworkId,\n networkShelleyTransitionEpoch\n} from './types/NetworkId'\nimport { type IChainTip } from './types/IChainTip'\nimport { type DateId } from './types/DateId'\n\nimport {\n type IByron,\n type IShelley,\n type IGenesisStore\n} from './network/IGenesisStore'\nimport { GenesisStore } from './network/GenesisStore'\n\n// Cache for storing calculated DateId results\nconst dateIdCache = new Map<string, DateId>()\n\n// Cache for Intl.DateTimeFormat instances (these are expensive to create)\nconst formatterCache = new Map<string, Intl.DateTimeFormat>()\n\nexport const getGenesis = (networkId: NetworkId): IGenesisStore => GenesisStore[networkId]\nexport const getByron = (networkId: NetworkId): IByron => GenesisStore[networkId].byron\nexport const getShelley = (networkId: NetworkId): IShelley => GenesisStore[networkId].shelley\nexport const getNetworkMagic = (networkId: NetworkId): number => GenesisStore[networkId].shelley.networkMagic\nexport const getEpochLength = (networkId: NetworkId): number => GenesisStore[networkId].shelley.epochLength\nexport const getNumEpochBlocks= (networkId: NetworkId): number => getEpochLength(networkId) * GenesisStore[networkId].shelley.activeSlotsCoeff\n\nconst getCommonData = (networkId: NetworkId): any => {\n\n const byron = getByron(networkId)\n\n const currentTimeSec = Math.floor(now() / 1000)\n const shelleyTransEpoch = networkShelleyTransitionEpoch[networkId]\n const byronEpochLength = byron.protocolConsts.k * 10\n const byronSlots = shelleyTransEpoch * byronEpochLength\n const byronSlotLength = byron.blockVersionData.slotDuration\n const byronEndTime = byron.startTime + Math.floor((shelleyTransEpoch * byronEpochLength * parseInt(byronSlotLength)) / 1000)\n\n return {\n currentTimeSec,\n shelleyTransEpoch,\n byronEpochLength,\n byronSlots,\n byronSlotLength,\n byronEndTime\n }\n}\n\nexport const getCalculatedChainTip = (networkId: NetworkId): number => {\n\n const byron = getByron(networkId)\n const shelley = getShelley(networkId)\n const common = getCommonData(networkId)\n\n if (common.currentTimeSec < common.byronEndTime) {\n\n return Math.floor(\n (common.currentTimeSec - byron.startTime) * 1000) /\n parseInt(byron.blockVersionData.slotDuration)\n }\n\n return common.byronSlots + Math.floor(\n (common.currentTimeSec - common.byronEndTime) / shelley.slotLength)\n}\n\nexport const getTimestampFromSlot = (networkId: NetworkId, slotNo: number): number => {\n\n const byron = getByron(networkId)\n const shelley = getShelley(networkId)\n const common = getCommonData(networkId)\n\n if (slotNo < common.byronSlots) {\n\n return (byron.startTime * 1000 + (slotNo * parseInt(byron.blockVersionData.slotDuration)))\n }\n\n return (common.byronEndTime + (slotNo - common.byronSlots) * shelley.slotLength) * 1000\n}\n\nexport const getEpochFromSlot = (networkId: NetworkId, slotNo: number): number => {\n\n const byron = getByron(networkId)\n const shelley = getShelley(networkId)\n const common = getCommonData(networkId)\n\n let timeSec = 0\n\n if (slotNo < common.byronSlots) {\n\n timeSec = (byron.startTime + (slotNo * parseInt(byron.blockVersionData.slotDuration)))\n\n } else {\n\n timeSec = (common.byronEndTime + (slotNo - common.byronSlots) * shelley.slotLength)\n }\n\n if (timeSec < common.byronEndTime) {\n\n return Math.floor(\n (((timeSec - byron.startTime) * 1000) /\n parseInt(byron.blockVersionData.slotDuration)\n ) / common.byronEpochLength)\n }\n\n return common.shelleyTransEpoch + Math.floor(\n (timeSec - common.byronEndTime) / shelley.slotLength / shelley.epochLength)\n}\n\nexport const getCalculatedSlotFromBlockTime = (networkId: NetworkId, timestamp: any): number => {\n\n const dateTimeSec = Math.floor((new Date(timestamp)).getTime() / 1000)\n\n const byron = getByron(networkId)\n const shelley = getShelley(networkId)\n const common = getCommonData(networkId)\n\n if (dateTimeSec < common.byronEndTime) {\n\n return Math.floor(\n (dateTimeSec - byron.startTime) * 1000) /\n parseInt(byron.blockVersionData.slotDuration)\n }\n\n return common.byronSlots + Math.floor(\n (dateTimeSec - common.byronEndTime) / shelley.slotLength)\n}\n\nexport const getCalculatedEpochSlot = (networkId: NetworkId): number => {\n\n const shelley = getShelley(networkId)\n const common = getCommonData(networkId)\n\n const tip = getCalculatedChainTip(networkId) - common.byronSlots - (\n (getCalculatedEpoch(networkId) - common.shelleyTransEpoch) * shelley.epochLength)\n\n return Math.floor(tip)\n}\n\nexport const getCalculatedEpoch = (id: NetworkId): number => {\n\n const byron = getByron(id)\n const shelley = getShelley(id)\n\n const common = getCommonData(id)\n\n if (common.currentTimeSec < common.byronEndTime) {\n\n return Math.floor(\n (((common.currentTimeSec - byron.startTime) * 1000) /\n parseInt(byron.blockVersionData.slotDuration)\n ) / common.byronEpochLength)\n }\n\n return common.shelleyTransEpoch + Math.floor(\n (common.currentTimeSec - common.byronEndTime) / shelley.slotLength / shelley.epochLength)\n}\n\nexport const getLastSlotOfEpoch = (id: NetworkId, epochNo: number): number => {\n\n const shelley = getShelley(id)\n\n const common = getCommonData(id)\n\n if (epochNo <= common.shelleyTransEpoch) {\n\n return common.byronEpochLength * epochNo\n }\n\n return (common.byronEpochLength * (common.shelleyTransEpoch - 1)) +\n ((epochNo - common.shelleyTransEpoch + 1) * shelley.epochLength)\n}\n\nexport const getEpochStart = (id: NetworkId, epochNo: number): {\n\n slotNumber: number,\n timestamp: number\n\n} => {\n\n const common = getCommonData(id)\n\n if (epochNo >= common.shelleyTransEpoch) {\n\n const shelley = getShelley(id)\n\n const shelleySlots = (epochNo - common.shelleyTransEpoch) * shelley.epochLength\n\n const slotNumber = common.byronSlots + shelleySlots + 1\n const timestamp = (common.byronEndTime + shelleySlots + 1) * 1000\n\n return { slotNumber, timestamp }\n\n } else {\n\n const byron = getByron(id)\n\n const slotNumber = epochNo * common.byronEpochLength\n const timestamp = (byron.startTime + slotNumber * parseInt(common.byronSlotLength) / 1000) * 1000\n\n return { slotNumber, timestamp }\n }\n}\n\nexport const updateChainTip = (id: NetworkId, chainTip: IChainTip, data: IChainTip): IChainTip => {\n\n const shelley = getShelley(id)\n\n const calcTip = getCalculatedChainTip(id)\n\n chainTip.blockNo = data.blockNo\n chainTip.slotNo = data.slotNo\n\n chainTip.epochNo = data.epochNo\n chainTip.epochSlot = data.epochSlot\n chainTip.epochSlots = shelley.epochLength\n chainTip.epochPercent = parseFloat(((chainTip.epochSlot / chainTip.epochSlots) * 100).toFixed(2))\n chainTip.syncProgress = Math.round((chainTip.slotNo / calcTip) * 10000) / 100\n\n chainTip.onTip = (calcTip - chainTip.slotNo) < 300 // 5 minutes without a block\n\n return chainTip\n}\n\nexport const getDateIdFromSlot = (networkId: NetworkId, slotNo: number, userSelectedTimezone: string): DateId => {\n\n const timeStamp = getTimestampFromSlot(networkId, slotNo)\n\n return getDateIdFromTimestamp(timeStamp, userSelectedTimezone)\n}\n\nexport const getDateIdFromTimestamp = (timeStamp: number, userSelectedTimezone: string): DateId => {\n\n const cacheKey = `${timeStamp}_${userSelectedTimezone}`\n\n const cachedResult = dateIdCache.get(cacheKey)\n\n if (cachedResult) { return cachedResult }\n\n let formatter = formatterCache.get(userSelectedTimezone)\n\n if (!formatter) {\n\n formatter = Intl.DateTimeFormat('de-DE', {\n year: 'numeric',\n month: '2-digit',\n day: '2-digit',\n timeZone: userSelectedTimezone,\n })\n\n formatterCache.set(userSelectedTimezone, formatter)\n }\n\n const date = new Date(timeStamp)\n const dateArray = formatter.formatToParts(date)\n\n const result: DateId = {\n\n year: parseInt(dateArray[4]!.value),\n month: parseInt(dateArray[2]!.value),\n day: parseInt(dateArray[0]!.value),\n timezone: userSelectedTimezone\n }\n\n dateIdCache.set(cacheKey, result)\n\n return result\n}\n\nexport const getSlotFromDateId = (\n networkId: NetworkId,\n dateId: Pick<DateId, 'year' | 'month' | 'day' | 'timezone'>,\n calcEnd: boolean = false\n): number => {\n\n const year = dateId.year // e.g. 2023\n const month = dateId.month - 1 // date months start at 0\n\n let date\n\n if (dateId.day === 0 && dateId.month === 0) {\n\n if (calcEnd) {\n\n // up to 31st Dec 23:59:59, it's slot based, which is 1 slot = 1 second\n date = new Date((new Date(year + 1, 0, 1, 0, 0, 0)).getTime() - 1000)\n\n } else {\n\n // from 1st Jan 00:00:00\n date = new Date((new Date(year, 0, 1, 0, 0, 0)).getTime())\n }\n\n } else if (dateId.day === 0) {\n\n if (calcEnd) {\n\n // up to last day of month 23:59:59, it's slot based, which is 1 slot = 1 second\n date = new Date((new Date(year, month + 1, 1, 0, 0, 0)).getTime() - 1000)\n\n } else {\n\n // from 1st day of month 00:00:00\n date = new Date((new Date(year, month, 1, 0, 0, 0)).getTime())\n }\n\n } else {\n\n if (calcEnd) {\n\n // up to 23:59:59\n date = new Date((new Date(year, month, dateId.day, 0, 0, 0)).getTime() + (86400 - 1) * 1000)\n\n } else {\n\n // from 00:00:00\n date = new Date((new Date(year, month, dateId.day, 0, 0, 0)).getTime())\n }\n }\n\n date = changeTimezone(date, dateId.timezone)\n\n return getCalculatedSlotFromBlockTime(networkId, date.getTime())\n}\n\nexport default {\n\n getNetworkMagic,\n getEpochLength,\n getGenesis,\n getByron,\n getShelley,\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"chain.mjs","names":[],"sources":["../src/chain.ts"],"sourcesContent":["\n\n// Cache for storing calculated DateId results\n\nimport {\n changeTimezone,\n now,\n} from '@eternl/tools'\n\nimport { GenesisStore } from './network/GenesisStore'\nimport {\n IByron,\n IGenesisStore,\n IShelley,\n} from './network/IGenesisStore'\nimport { DateId } from './types/DateId'\nimport { IChainTip } from './types/IChainTip'\nimport {\n NetworkId,\n networkShelleyTransitionEpoch,\n} from './types/NetworkId'\n\nconst dateIdCache = new Map<string, DateId>()\n\n// Cache for Intl.DateTimeFormat instances (these are expensive to create)\nconst formatterCache = new Map<string, Intl.DateTimeFormat>()\n\nexport const getGenesis = (networkId: NetworkId): IGenesisStore => GenesisStore[networkId]\nexport const getByron = (networkId: NetworkId): IByron => GenesisStore[networkId].byron\nexport const getShelley = (networkId: NetworkId): IShelley => GenesisStore[networkId].shelley\nexport const getNetworkMagic = (networkId: NetworkId): number => GenesisStore[networkId].shelley.networkMagic\nexport const getEpochLength = (networkId: NetworkId): number => GenesisStore[networkId].shelley.epochLength\nexport const getNumEpochBlocks= (networkId: NetworkId): number => getEpochLength(networkId) * GenesisStore[networkId].shelley.activeSlotsCoeff\n\nconst getCommonData = (networkId: NetworkId): any => {\n\n const byron = getByron(networkId)\n\n const currentTimeSec = Math.floor(now() / 1000)\n const shelleyTransEpoch = networkShelleyTransitionEpoch[networkId]\n const byronEpochLength = byron.protocolConsts.k * 10\n const byronSlots = shelleyTransEpoch * byronEpochLength\n const byronSlotLength = byron.blockVersionData.slotDuration\n const byronEndTime = byron.startTime + Math.floor((shelleyTransEpoch * byronEpochLength * parseInt(byronSlotLength)) / 1000)\n\n return {\n currentTimeSec,\n shelleyTransEpoch,\n byronEpochLength,\n byronSlots,\n byronSlotLength,\n byronEndTime\n }\n}\n\nexport const getCalculatedChainTip = (networkId: NetworkId): number => {\n\n const byron = getByron(networkId)\n const shelley = getShelley(networkId)\n const common = getCommonData(networkId)\n\n if (common.currentTimeSec < common.byronEndTime) {\n\n return Math.floor(\n (common.currentTimeSec - byron.startTime) * 1000) /\n parseInt(byron.blockVersionData.slotDuration)\n }\n\n return common.byronSlots + Math.floor(\n (common.currentTimeSec - common.byronEndTime) / shelley.slotLength)\n}\n\nexport const getTimestampFromSlot = (networkId: NetworkId, slotNo: number): number => {\n\n const byron = getByron(networkId)\n const shelley = getShelley(networkId)\n const common = getCommonData(networkId)\n\n if (slotNo < common.byronSlots) {\n\n return (byron.startTime * 1000 + (slotNo * parseInt(byron.blockVersionData.slotDuration)))\n }\n\n return (common.byronEndTime + (slotNo - common.byronSlots) * shelley.slotLength) * 1000\n}\n\nexport const getEpochFromSlot = (networkId: NetworkId, slotNo: number): number => {\n\n const byron = getByron(networkId)\n const shelley = getShelley(networkId)\n const common = getCommonData(networkId)\n\n let timeSec = 0\n\n if (slotNo < common.byronSlots) {\n\n timeSec = (byron.startTime + (slotNo * parseInt(byron.blockVersionData.slotDuration)))\n\n } else {\n\n timeSec = (common.byronEndTime + (slotNo - common.byronSlots) * shelley.slotLength)\n }\n\n if (timeSec < common.byronEndTime) {\n\n return Math.floor(\n (((timeSec - byron.startTime) * 1000) /\n parseInt(byron.blockVersionData.slotDuration)\n ) / common.byronEpochLength)\n }\n\n return common.shelleyTransEpoch + Math.floor(\n (timeSec - common.byronEndTime) / shelley.slotLength / shelley.epochLength)\n}\n\nexport const getCalculatedSlotFromBlockTime = (networkId: NetworkId, timestamp: any): number => {\n\n const dateTimeSec = Math.floor((new Date(timestamp)).getTime() / 1000)\n\n const byron = getByron(networkId)\n const shelley = getShelley(networkId)\n const common = getCommonData(networkId)\n\n if (dateTimeSec < common.byronEndTime) {\n\n return Math.floor(\n (dateTimeSec - byron.startTime) * 1000) /\n parseInt(byron.blockVersionData.slotDuration)\n }\n\n return common.byronSlots + Math.floor(\n (dateTimeSec - common.byronEndTime) / shelley.slotLength)\n}\n\nexport const getCalculatedEpochSlot = (networkId: NetworkId): number => {\n\n const shelley = getShelley(networkId)\n const common = getCommonData(networkId)\n\n const tip = getCalculatedChainTip(networkId) - common.byronSlots - (\n (getCalculatedEpoch(networkId) - common.shelleyTransEpoch) * shelley.epochLength)\n\n return Math.floor(tip)\n}\n\nexport const getCalculatedEpoch = (id: NetworkId): number => {\n\n const byron = getByron(id)\n const shelley = getShelley(id)\n\n const common = getCommonData(id)\n\n if (common.currentTimeSec < common.byronEndTime) {\n\n return Math.floor(\n (((common.currentTimeSec - byron.startTime) * 1000) /\n parseInt(byron.blockVersionData.slotDuration)\n ) / common.byronEpochLength)\n }\n\n return common.shelleyTransEpoch + Math.floor(\n (common.currentTimeSec - common.byronEndTime) / shelley.slotLength / shelley.epochLength)\n}\n\nexport const getLastSlotOfEpoch = (id: NetworkId, epochNo: number): number => {\n\n const shelley = getShelley(id)\n\n const common = getCommonData(id)\n\n if (epochNo <= common.shelleyTransEpoch) {\n\n return common.byronEpochLength * epochNo\n }\n\n return (common.byronEpochLength * (common.shelleyTransEpoch - 1)) +\n ((epochNo - common.shelleyTransEpoch + 1) * shelley.epochLength)\n}\n\nexport const getEpochStart = (id: NetworkId, epochNo: number): {\n\n slotNumber: number,\n timestamp: number\n\n} => {\n\n const common = getCommonData(id)\n\n if (epochNo >= common.shelleyTransEpoch) {\n\n const shelley = getShelley(id)\n\n const shelleySlots = (epochNo - common.shelleyTransEpoch) * shelley.epochLength\n\n const slotNumber = common.byronSlots + shelleySlots + 1\n const timestamp = (common.byronEndTime + shelleySlots + 1) * 1000\n\n return { slotNumber, timestamp }\n\n } else {\n\n const byron = getByron(id)\n\n const slotNumber = epochNo * common.byronEpochLength\n const timestamp = (byron.startTime + slotNumber * parseInt(common.byronSlotLength) / 1000) * 1000\n\n return { slotNumber, timestamp }\n }\n}\n\nexport const updateChainTip = (id: NetworkId, chainTip: IChainTip, data: IChainTip): IChainTip => {\n\n const shelley = getShelley(id)\n\n const calcTip = getCalculatedChainTip(id)\n\n chainTip.blockNo = data.blockNo\n chainTip.slotNo = data.slotNo\n\n chainTip.epochNo = data.epochNo\n chainTip.epochSlot = data.epochSlot\n chainTip.epochSlots = shelley.epochLength\n chainTip.epochPercent = parseFloat(((chainTip.epochSlot / chainTip.epochSlots) * 100).toFixed(2))\n chainTip.syncProgress = Math.round((chainTip.slotNo / calcTip) * 10000) / 100\n\n chainTip.onTip = (calcTip - chainTip.slotNo) < 300 // 5 minutes without a block\n\n return chainTip\n}\n\nexport const getDateIdFromSlot = (networkId: NetworkId, slotNo: number, userSelectedTimezone: string): DateId => {\n\n const timeStamp = getTimestampFromSlot(networkId, slotNo)\n\n return getDateIdFromTimestamp(timeStamp, userSelectedTimezone)\n}\n\nexport const getDateIdFromTimestamp = (timeStamp: number, userSelectedTimezone: string): DateId => {\n\n const cacheKey = `${timeStamp}_${userSelectedTimezone}`\n\n const cachedResult = dateIdCache.get(cacheKey)\n\n if (cachedResult) { return cachedResult }\n\n let formatter = formatterCache.get(userSelectedTimezone)\n\n if (!formatter) {\n\n formatter = Intl.DateTimeFormat('de-DE', {\n year: 'numeric',\n month: '2-digit',\n day: '2-digit',\n timeZone: userSelectedTimezone,\n })\n\n formatterCache.set(userSelectedTimezone, formatter)\n }\n\n const date = new Date(timeStamp)\n const dateArray = formatter.formatToParts(date)\n\n const result: DateId = {\n\n year: parseInt(dateArray[4]!.value),\n month: parseInt(dateArray[2]!.value),\n day: parseInt(dateArray[0]!.value),\n timezone: userSelectedTimezone\n }\n\n dateIdCache.set(cacheKey, result)\n\n return result\n}\n\nexport const getSlotFromDateId = (\n networkId: NetworkId,\n dateId: Pick<DateId, 'year' | 'month' | 'day' | 'timezone'>,\n calcEnd: boolean = false\n): number => {\n\n const year = dateId.year // e.g. 2023\n const month = dateId.month - 1 // date months start at 0\n\n let date\n\n if (dateId.day === 0 && dateId.month === 0) {\n\n if (calcEnd) {\n\n // up to 31st Dec 23:59:59, it's slot based, which is 1 slot = 1 second\n date = new Date((new Date(year + 1, 0, 1, 0, 0, 0)).getTime() - 1000)\n\n } else {\n\n // from 1st Jan 00:00:00\n date = new Date((new Date(year, 0, 1, 0, 0, 0)).getTime())\n }\n\n } else if (dateId.day === 0) {\n\n if (calcEnd) {\n\n // up to last day of month 23:59:59, it's slot based, which is 1 slot = 1 second\n date = new Date((new Date(year, month + 1, 1, 0, 0, 0)).getTime() - 1000)\n\n } else {\n\n // from 1st day of month 00:00:00\n date = new Date((new Date(year, month, 1, 0, 0, 0)).getTime())\n }\n\n } else {\n\n if (calcEnd) {\n\n // up to 23:59:59\n date = new Date((new Date(year, month, dateId.day, 0, 0, 0)).getTime() + (86400 - 1) * 1000)\n\n } else {\n\n // from 00:00:00\n date = new Date((new Date(year, month, dateId.day, 0, 0, 0)).getTime())\n }\n }\n\n date = changeTimezone(date, dateId.timezone)\n\n return getCalculatedSlotFromBlockTime(networkId, date.getTime())\n}\n\nexport default {\n\n getNetworkMagic,\n getEpochLength,\n getGenesis,\n getByron,\n getShelley,\n}\n"],"mappings":";;;;;AAsBA,MAAM,8BAA0B,IAAI,KAAqB;AAGzD,MAAM,iCAA0B,IAAI,KAAkC;AAEtE,MAAa,cAAoB,cAAwC,aAAa;AACtF,MAAa,YAAoB,cAAwC,aAAa,WAAW;AACjG,MAAa,cAAoB,cAAwC,aAAa,WAAW;AACjG,MAAa,mBAAoB,cAAwC,aAAa,WAAW,QAAQ;AACzG,MAAa,kBAAoB,cAAwC,aAAa,WAAW,QAAQ;AACzG,MAAa,qBAAoB,cAAwC,eAAe,UAAU,GAAG,aAAa,WAAW,QAAQ;AAErI,MAAM,iBAA2B,cAA8B;CAE7D,MAAM,QAAwB,SAAS,UAAU;CAEjD,MAAM,iBAAwB,KAAK,MAAM,KAAK,GAAG,IAAK;CACtD,MAAM,oBAAwB,8BAA8B;CAC5D,MAAM,mBAAwB,MAAM,eAAe,IAAI;CACvD,MAAM,aAAwB,oBAAoB;CAClD,MAAM,kBAAwB,MAAM,iBAAiB;AAGrD,QAAO;EACL;EACA;EACA;EACA;EACA;EACA,cAR4B,MAAM,YAAY,KAAK,MAAO,oBAAoB,mBAAmB,SAAS,gBAAgB,GAAI,IAAK;EASpI;;AAGH,MAAa,yBAAyB,cAAiC;CAErE,MAAM,QAAwB,SAAS,UAAU;CACjD,MAAM,UAAwB,WAAW,UAAU;CACnD,MAAM,SAAwB,cAAc,UAAU;AAEtD,KAAI,OAAO,iBAAiB,OAAO,aAEjC,QAAO,KAAK,OACT,OAAO,iBAAiB,MAAM,aAAa,IAAK,GACjD,SAAS,MAAM,iBAAiB,aAAa;AAGjD,QAAO,OAAO,aAAa,KAAK,OAC7B,OAAO,iBAAiB,OAAO,gBAAgB,QAAQ,WAAW;;AAGvE,MAAa,wBAAwB,WAAsB,WAA2B;CAEpF,MAAM,QAAwB,SAAS,UAAU;CACjD,MAAM,UAAwB,WAAW,UAAU;CACnD,MAAM,SAAwB,cAAc,UAAU;AAEtD,KAAI,SAAS,OAAO,WAElB,QAAQ,MAAM,YAAY,MAAQ,SAAS,SAAS,MAAM,iBAAiB,aAAa;AAG1F,SAAQ,OAAO,gBAAgB,SAAS,OAAO,cAAc,QAAQ,cAAc;;AAGrF,MAAa,oBAAoB,WAAsB,WAA2B;CAEhF,MAAM,QAAwB,SAAS,UAAU;CACjD,MAAM,UAAwB,WAAW,UAAU;CACnD,MAAM,SAAwB,cAAc,UAAU;CAEtD,IAAI,UAA0B;AAE9B,KAAI,SAAS,OAAO,WAElB,WAA6B,MAAM,YAAa,SAAS,SAAS,MAAM,iBAAiB,aAAa;KAItG,WAA6B,OAAO,gBAAgB,SAAS,OAAO,cAAc,QAAQ;AAG5F,KAAI,UAAU,OAAO,aAEnB,QAAO,KAAK,OACP,UAAU,MAAM,aAAa,MAC9B,SAAS,MAAM,iBAAiB,aAAa,GAC3C,OAAO,iBAAiB;AAGhC,QAAO,OAAO,oBAAoB,KAAK,OACpC,UAAU,OAAO,gBAAgB,QAAQ,aAAa,QAAQ,YAAY;;AAG/E,MAAa,kCAAkC,WAAsB,cAA2B;CAE9F,MAAM,cAAwB,KAAK,MAAO,IAAI,KAAK,UAAU,CAAE,SAAS,GAAG,IAAK;CAEhF,MAAM,QAAwB,SAAS,UAAU;CACjD,MAAM,UAAwB,WAAW,UAAU;CACnD,MAAM,SAAwB,cAAc,UAAU;AAEtD,KAAI,cAAc,OAAO,aAEvB,QAAO,KAAK,OACT,cAAc,MAAM,aAAa,IAAK,GACvC,SAAS,MAAM,iBAAiB,aAAa;AAGjD,QAAO,OAAO,aAAa,KAAK,OAC7B,cAAc,OAAO,gBAAgB,QAAQ,WAAW;;AAG7D,MAAa,0BAA0B,cAAiC;CAEtE,MAAM,UAAwB,WAAW,UAAU;CACnD,MAAM,SAAwB,cAAc,UAAU;CAEtD,MAAM,MAAwB,sBAAsB,UAAU,GAAG,OAAO,cACrE,mBAAmB,UAAU,GAAG,OAAO,qBAAqB,QAAQ;AAEvE,QAAO,KAAK,MAAM,IAAI;;AAGxB,MAAa,sBAAsB,OAA0B;CAE3D,MAAM,QAAwB,SAAS,GAAG;CAC1C,MAAM,UAAwB,WAAW,GAAG;CAE5C,MAAM,SAAwB,cAAc,GAAG;AAE/C,KAAI,OAAO,iBAAiB,OAAO,aAEjC,QAAO,KAAK,OACP,OAAO,iBAAiB,MAAM,aAAa,MAC5C,SAAS,MAAM,iBAAiB,aAAa,GAC3C,OAAO,iBAAiB;AAGhC,QAAO,OAAO,oBAAoB,KAAK,OACpC,OAAO,iBAAiB,OAAO,gBAAgB,QAAQ,aAAa,QAAQ,YAAY;;AAG7F,MAAa,sBAAsB,IAAe,YAA4B;CAE5E,MAAM,UAAwB,WAAW,GAAG;CAE5C,MAAM,SAAwB,cAAc,GAAG;AAE/C,KAAI,WAAW,OAAO,kBAEpB,QAAO,OAAO,mBAAmB;AAGnC,QAAQ,OAAO,oBAAoB,OAAO,oBAAoB,MAC1D,UAAU,OAAO,oBAAoB,KAAK,QAAQ;;AAGxD,MAAa,iBAAoB,IAAe,YAK3C;CAEH,MAAM,SAAwB,cAAc,GAAG;AAE/C,KAAI,WAAW,OAAO,mBAAmB;EAEvC,MAAM,UAAsB,WAAW,GAAG;EAE1C,MAAM,gBAAuB,UAAU,OAAO,qBAAqB,QAAQ;AAK3E,SAAO;GAAE,YAHmB,OAAO,aAAa,eAAe;GAG1C,YAFQ,OAAO,eAAe,eAAe,KAAK;GAEvC;QAE3B;EAEL,MAAM,QAAsB,SAAS,GAAG;EAExC,MAAM,aAAsB,UAAU,OAAO;AAG7C,SAAO;GAAE;GAAY,YAFQ,MAAM,YAAY,aAAa,SAAS,OAAO,gBAAgB,GAAG,OAAQ;GAEvE;;;AAIpC,MAAa,kBAAoB,IAAe,UAAqB,SAA+B;CAElG,MAAM,UAAwB,WAAW,GAAG;CAE5C,MAAM,UAAwB,sBAAsB,GAAG;AAEvD,UAAS,UAAqB,KAAK;AACnC,UAAS,SAAqB,KAAK;AAEnC,UAAS,UAAqB,KAAK;AACnC,UAAS,YAAqB,KAAK;AACnC,UAAS,aAAqB,QAAQ;AACtC,UAAS,eAAqB,YAAa,SAAS,YAAY,SAAS,aAAc,KAAK,QAAQ,EAAE,CAAC;AACvG,UAAS,eAAqB,KAAK,MAAO,SAAS,SAAS,UAAW,IAAM,GAAG;AAEhF,UAAS,QAAsB,UAAU,SAAS,SAAU;AAE5D,QAAO;;AAGT,MAAa,qBAAqB,WAAsB,QAAgB,yBAAyC;AAI/G,QAAO,uBAFuB,qBAAqB,WAAW,OAAO,EAE5B,qBAAqB;;AAGhE,MAAa,0BAA0B,WAAmB,yBAAyC;CAEjG,MAAM,WAAwB,GAAG,UAAU,GAAG;CAE9C,MAAM,eAAwB,YAAY,IAAI,SAAS;AAEvD,KAAI,aAA0B,QAAO;CAErC,IAAI,YAA0B,eAAe,IAAI,qBAAqB;AAEtE,KAAI,CAAC,WAAW;AAEd,cAA4B,KAAK,eAAe,SAAS;GACvD,MAAwB;GACxB,OAAwB;GACxB,KAAwB;GACxB,UAAwB;GACzB,CAAC;AAEF,iBAAe,IAAI,sBAAsB,UAAU;;CAGrD,MAAM,OAAwB,IAAI,KAAK,UAAU;CACjD,MAAM,YAAwB,UAAU,cAAc,KAAK;CAE3D,MAAM,SAAwB;EAE5B,MAA0B,SAAS,UAAU,GAAI,MAAM;EACvD,OAA0B,SAAS,UAAU,GAAI,MAAM;EACvD,KAA0B,SAAS,UAAU,GAAI,MAAM;EACvD,UAA0B;EAC3B;AAED,aAAY,IAAI,UAAU,OAAO;AAEjC,QAAO;;AAGT,MAAa,qBACX,WACA,QACA,UAAmB,UACR;CAEX,MAAM,OAAwB,OAAO;CACrC,MAAM,QAAwB,OAAO,QAAQ;CAE7C,IAAI;AAEJ,KAAI,OAAO,QAAQ,KAAK,OAAO,UAAU,EAEvC,KAAI,QAGF,wBAA0B,IAAI,KAAM,IAAI,KAAK,OAAO,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,CAAE,SAAS,GAAG,IAAK;KAKxF,QAA0B,IAAI,KAAM,IAAI,KAAK,MAAM,GAAG,GAAG,GAAG,GAAG,EAAE,CAAE,SAAS,CAAC;UAGtE,OAAO,QAAQ,EAExB,KAAI,QAGF,wBAA0B,IAAI,KAAM,IAAI,KAAK,MAAM,QAAQ,GAAG,GAAG,GAAG,GAAG,EAAE,CAAE,SAAS,GAAG,IAAK;KAK5F,QAA0B,IAAI,KAAM,IAAI,KAAK,MAAM,OAAO,GAAG,GAAG,GAAG,EAAE,CAAE,SAAS,CAAC;UAK/E,QAGF,QAA0B,IAAI,KAAM,IAAI,KAAK,MAAM,OAAO,OAAO,KAAK,GAAG,GAAG,EAAE,CAAE,SAAS,GAAI,QAAa,IAAK;KAK/G,QAA0B,IAAI,KAAM,IAAI,KAAK,MAAM,OAAO,OAAO,KAAK,GAAG,GAAG,EAAE,CAAE,SAAS,CAAC;AAI9F,QAA8B,eAAe,MAAM,OAAO,SAAS;AAEnE,QAAO,+BAA+B,WAAW,KAAK,SAAS,CAAC;;AAGlE,oBAAe;CAEb;CACA;CACA;CACA;CACA;CACD"}
package/dist/index.cjs CHANGED
@@ -1,6 +1,6 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
2
- const require_types_NetworkId = require('./types/NetworkId.cjs');
3
2
  const require_network_GenesisStore = require('./network/GenesisStore.cjs');
3
+ const require_types_NetworkId = require('./types/NetworkId.cjs');
4
4
  const require_chain = require('./chain.cjs');
5
5
  const require_types_IChainTip = require('./types/IChainTip.cjs');
6
6
 
package/dist/index.d.cts CHANGED
@@ -1,7 +1,7 @@
1
- import { NETWORK_ID, NetworkId, getNetworkCurrencyCode, getNetworkCurrencySymbol, getNetworkDecimals, getNetworkId, isCustomNetwork, isSupportedNetworkId, isTestnetNetwork, networkAddressPrefix, networkCurrencyCode, networkCurrencySymbol, networkGroups, networkIdList, networkIdx, networkShelleyTransitionEpoch, networkStakeAddressPrefix } from "./types/NetworkId.cjs";
2
1
  import { IBlockVersionData, IByron, IGenesisStore, IProtocolConsts, IShelley } from "./network/IGenesisStore.cjs";
3
- import { GenesisStore } from "./network/GenesisStore.cjs";
4
2
  import { DateId } from "./types/DateId.cjs";
3
+ import { NETWORK_ID, NetworkId, getNetworkCurrencyCode, getNetworkCurrencySymbol, getNetworkDecimals, getNetworkId, isCustomNetwork, isSupportedNetworkId, isTestnetNetwork, networkAddressPrefix, networkCurrencyCode, networkCurrencySymbol, networkGroups, networkIdList, networkIdx, networkShelleyTransitionEpoch, networkStakeAddressPrefix } from "./types/NetworkId.cjs";
4
+ import { GenesisStore } from "./network/GenesisStore.cjs";
5
5
  import { IChainTip, createIChainTip } from "./types/IChainTip.cjs";
6
6
  import { getByron, getCalculatedChainTip, getCalculatedEpoch, getCalculatedEpochSlot, getCalculatedSlotFromBlockTime, getDateIdFromSlot, getDateIdFromTimestamp, getEpochFromSlot, getEpochLength, getEpochStart, getGenesis, getLastSlotOfEpoch, getNetworkMagic, getNumEpochBlocks, getShelley, getSlotFromDateId, getTimestampFromSlot, updateChainTip } from "./chain.cjs";
7
7
  export { DateId, GenesisStore, IBlockVersionData, IByron, IChainTip, IGenesisStore, IProtocolConsts, IShelley, NETWORK_ID, NetworkId, createIChainTip, getByron, getCalculatedChainTip, getCalculatedEpoch, getCalculatedEpochSlot, getCalculatedSlotFromBlockTime, getDateIdFromSlot, getDateIdFromTimestamp, getEpochFromSlot, getEpochLength, getEpochStart, getGenesis, getLastSlotOfEpoch, getNetworkCurrencyCode, getNetworkCurrencySymbol, getNetworkDecimals, getNetworkId, getNetworkMagic, getNumEpochBlocks, getShelley, getSlotFromDateId, getTimestampFromSlot, isCustomNetwork, isSupportedNetworkId, isTestnetNetwork, networkAddressPrefix, networkCurrencyCode, networkCurrencySymbol, networkGroups, networkIdList, networkIdx, networkShelleyTransitionEpoch, networkStakeAddressPrefix, updateChainTip };
package/dist/index.d.mts CHANGED
@@ -1,7 +1,7 @@
1
- import { NETWORK_ID, NetworkId, getNetworkCurrencyCode, getNetworkCurrencySymbol, getNetworkDecimals, getNetworkId, isCustomNetwork, isSupportedNetworkId, isTestnetNetwork, networkAddressPrefix, networkCurrencyCode, networkCurrencySymbol, networkGroups, networkIdList, networkIdx, networkShelleyTransitionEpoch, networkStakeAddressPrefix } from "./types/NetworkId.mjs";
2
1
  import { IBlockVersionData, IByron, IGenesisStore, IProtocolConsts, IShelley } from "./network/IGenesisStore.mjs";
3
- import { GenesisStore } from "./network/GenesisStore.mjs";
4
2
  import { DateId } from "./types/DateId.mjs";
3
+ import { NETWORK_ID, NetworkId, getNetworkCurrencyCode, getNetworkCurrencySymbol, getNetworkDecimals, getNetworkId, isCustomNetwork, isSupportedNetworkId, isTestnetNetwork, networkAddressPrefix, networkCurrencyCode, networkCurrencySymbol, networkGroups, networkIdList, networkIdx, networkShelleyTransitionEpoch, networkStakeAddressPrefix } from "./types/NetworkId.mjs";
4
+ import { GenesisStore } from "./network/GenesisStore.mjs";
5
5
  import { IChainTip, createIChainTip } from "./types/IChainTip.mjs";
6
6
  import { getByron, getCalculatedChainTip, getCalculatedEpoch, getCalculatedEpochSlot, getCalculatedSlotFromBlockTime, getDateIdFromSlot, getDateIdFromTimestamp, getEpochFromSlot, getEpochLength, getEpochStart, getGenesis, getLastSlotOfEpoch, getNetworkMagic, getNumEpochBlocks, getShelley, getSlotFromDateId, getTimestampFromSlot, updateChainTip } from "./chain.mjs";
7
7
  export { DateId, GenesisStore, IBlockVersionData, IByron, IChainTip, IGenesisStore, IProtocolConsts, IShelley, NETWORK_ID, NetworkId, createIChainTip, getByron, getCalculatedChainTip, getCalculatedEpoch, getCalculatedEpochSlot, getCalculatedSlotFromBlockTime, getDateIdFromSlot, getDateIdFromTimestamp, getEpochFromSlot, getEpochLength, getEpochStart, getGenesis, getLastSlotOfEpoch, getNetworkCurrencyCode, getNetworkCurrencySymbol, getNetworkDecimals, getNetworkId, getNetworkMagic, getNumEpochBlocks, getShelley, getSlotFromDateId, getTimestampFromSlot, isCustomNetwork, isSupportedNetworkId, isTestnetNetwork, networkAddressPrefix, networkCurrencyCode, networkCurrencySymbol, networkGroups, networkIdList, networkIdx, networkShelleyTransitionEpoch, networkStakeAddressPrefix, updateChainTip };
package/dist/index.mjs CHANGED
@@ -1,5 +1,5 @@
1
- import { NETWORK_ID, getNetworkCurrencyCode, getNetworkCurrencySymbol, getNetworkDecimals, getNetworkId, isCustomNetwork, isSupportedNetworkId, isTestnetNetwork, networkAddressPrefix, networkCurrencyCode, networkCurrencySymbol, networkGroups, networkIdList, networkIdx, networkShelleyTransitionEpoch, networkStakeAddressPrefix } from "./types/NetworkId.mjs";
2
1
  import { GenesisStore } from "./network/GenesisStore.mjs";
2
+ import { NETWORK_ID, getNetworkCurrencyCode, getNetworkCurrencySymbol, getNetworkDecimals, getNetworkId, isCustomNetwork, isSupportedNetworkId, isTestnetNetwork, networkAddressPrefix, networkCurrencyCode, networkCurrencySymbol, networkGroups, networkIdList, networkIdx, networkShelleyTransitionEpoch, networkStakeAddressPrefix } from "./types/NetworkId.mjs";
3
3
  import { getByron, getCalculatedChainTip, getCalculatedEpoch, getCalculatedEpochSlot, getCalculatedSlotFromBlockTime, getDateIdFromSlot, getDateIdFromTimestamp, getEpochFromSlot, getEpochLength, getEpochStart, getGenesis, getLastSlotOfEpoch, getNetworkMagic, getNumEpochBlocks, getShelley, getSlotFromDateId, getTimestampFromSlot, updateChainTip } from "./chain.mjs";
4
4
  import { createIChainTip } from "./types/IChainTip.mjs";
5
5
 
@@ -1,43 +1,43 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
2
- const require_byron = require('../byron-Hv7K7fjg.cjs');
2
+ const require_shelley = require('../shelley-C52dVk7F.cjs');
3
3
 
4
4
  //#region src/network/GenesisStore.ts
5
5
  const GenesisStore = {
6
6
  mainnet: {
7
- shelley: require_byron.shelley_default$8,
8
- byron: require_byron.byron_default$8
7
+ shelley: require_shelley.shelley_default$3,
8
+ byron: require_shelley.byron_default$3
9
9
  },
10
10
  guild: {
11
- shelley: require_byron.shelley_default$7,
12
- byron: require_byron.byron_default$7
11
+ shelley: require_shelley.shelley_default$4,
12
+ byron: require_shelley.byron_default$4
13
13
  },
14
14
  sancho: {
15
- shelley: require_byron.shelley_default$6,
16
- byron: require_byron.byron_default$6
15
+ shelley: require_shelley.shelley_default,
16
+ byron: require_shelley.byron_default
17
17
  },
18
18
  preprod: {
19
- shelley: require_byron.shelley_default$5,
20
- byron: require_byron.byron_default$5
19
+ shelley: require_shelley.shelley_default$2,
20
+ byron: require_shelley.byron_default$2
21
21
  },
22
22
  preview: {
23
- shelley: require_byron.shelley_default$4,
24
- byron: require_byron.byron_default$4
23
+ shelley: require_shelley.shelley_default$1,
24
+ byron: require_shelley.byron_default$1
25
25
  },
26
26
  afvt: {
27
- shelley: require_byron.shelley_default$3,
28
- byron: require_byron.byron_default$3
27
+ shelley: require_shelley.shelley_default$5,
28
+ byron: require_shelley.byron_default$5
29
29
  },
30
30
  afvm: {
31
- shelley: require_byron.shelley_default$2,
32
- byron: require_byron.byron_default$2
31
+ shelley: require_shelley.shelley_default$6,
32
+ byron: require_shelley.byron_default$6
33
33
  },
34
34
  afpt: {
35
- shelley: require_byron.shelley_default$1,
36
- byron: require_byron.byron_default$1
35
+ shelley: require_shelley.shelley_default$7,
36
+ byron: require_shelley.byron_default$7
37
37
  },
38
38
  afpm: {
39
- shelley: require_byron.shelley_default,
40
- byron: require_byron.byron_default
39
+ shelley: require_shelley.shelley_default$8,
40
+ byron: require_shelley.byron_default$8
41
41
  }
42
42
  };
43
43
 
@@ -1 +1 @@
1
- {"version":3,"file":"GenesisStore.cjs","names":["mainnetShelley","mainnetByron","guildShelley","guildByron","sanchoShelley","sanchoByron","preprodShelley","preprodByron","previewShelley","previewByron","afvtShelley","afvtByron","afvmShelley","afvmByron","afptShelley","afptByron","afpmShelley","afpmByron"],"sources":["../../src/network/GenesisStore.ts"],"sourcesContent":["import { type NetworkId } from '../index'\n\nimport { IGenesisStore } from './IGenesisStore'\n\nimport mainnetShelley from './mainnet/shelley.json'\nimport guildShelley from './guild/shelley.json'\nimport sanchoShelley from './sancho/shelley.json'\nimport preprodShelley from './preprod/shelley.json'\nimport previewShelley from './preview/shelley.json'\nimport afvtShelley from './afvt/shelley.json'\nimport afvmShelley from './afvm/shelley.json'\nimport afptShelley from './afpt/shelley.json'\nimport afpmShelley from './afpm/shelley.json'\n\nimport mainnetByron from './mainnet/byron.json'\nimport guildByron from './guild/byron.json'\nimport sanchoByron from './sancho/byron.json'\nimport preprodByron from './preprod/byron.json'\nimport previewByron from './preview/byron.json'\nimport afvtByron from './afvt/byron.json'\nimport afvmByron from './afvm/byron.json'\nimport afptByron from './afpt/byron.json'\nimport afpmByron from './afpm/byron.json'\n\nexport const GenesisStore : Record<NetworkId, IGenesisStore> = {\n\n mainnet: {\n\n shelley: mainnetShelley,\n byron: mainnetByron\n },\n\n guild: {\n\n shelley: guildShelley,\n byron: guildByron\n },\n\n sancho: {\n\n shelley: sanchoShelley,\n byron: sanchoByron\n },\n\n preprod: {\n\n shelley: preprodShelley,\n byron: preprodByron\n },\n\n preview: {\n\n shelley: previewShelley,\n byron: previewByron\n },\n\n afvt: {\n\n shelley: afvtShelley,\n byron: afvtByron\n },\n\n afvm: {\n\n shelley: afvmShelley,\n byron: afvmByron\n },\n\n afpt: {\n\n shelley: afptShelley,\n byron: afptByron\n },\n\n afpm: {\n\n shelley: afpmShelley,\n byron: afpmByron\n },\n}\n"],"mappings":";;;;AAwBA,MAAa,eAAkD;CAE7D,SAA4B;EAE1B,SAA0BA;EAC1B,OAA0BC;EAC3B;CAED,OAA4B;EAE1B,SAA0BC;EAC1B,OAA0BC;EAC3B;CAED,QAA4B;EAE1B,SAA0BC;EAC1B,OAA0BC;EAC3B;CAED,SAA4B;EAE1B,SAA0BC;EAC1B,OAA0BC;EAC3B;CAED,SAA4B;EAE1B,SAA0BC;EAC1B,OAA0BC;EAC3B;CAED,MAA4B;EAE1B,SAA0BC;EAC1B,OAA0BC;EAC3B;CAED,MAA4B;EAE1B,SAA0BC;EAC1B,OAA0BC;EAC3B;CAED,MAA4B;EAE1B,SAA0BC;EAC1B,OAA0BC;EAC3B;CAED,MAA4B;EAE1B,SAA0BC;EAC1B,OAA0BC;EAC3B;CACF"}
1
+ {"version":3,"file":"GenesisStore.cjs","names":["mainnetShelley","mainnetByron","guildShelley","guildByron","sanchoShelley","sanchoByron","preprodShelley","preprodByron","previewShelley","previewByron","afvtShelley","afvtByron","afvmShelley","afvmByron","afptShelley","afptByron","afpmShelley","afpmByron"],"sources":["../../src/network/GenesisStore.ts"],"sourcesContent":["import { NetworkId } from '../index'\nimport afpmByron from './afpm/byron.json'\nimport afpmShelley from './afpm/shelley.json'\nimport afptByron from './afpt/byron.json'\nimport afptShelley from './afpt/shelley.json'\nimport afvmByron from './afvm/byron.json'\nimport afvmShelley from './afvm/shelley.json'\nimport afvtByron from './afvt/byron.json'\nimport afvtShelley from './afvt/shelley.json'\nimport guildByron from './guild/byron.json'\nimport guildShelley from './guild/shelley.json'\nimport { IGenesisStore } from './IGenesisStore'\nimport mainnetByron from './mainnet/byron.json'\nimport mainnetShelley from './mainnet/shelley.json'\nimport preprodByron from './preprod/byron.json'\nimport preprodShelley from './preprod/shelley.json'\nimport previewByron from './preview/byron.json'\nimport previewShelley from './preview/shelley.json'\nimport sanchoByron from './sancho/byron.json'\nimport sanchoShelley from './sancho/shelley.json'\n\nexport const GenesisStore : Record<NetworkId, IGenesisStore> = {\n\n mainnet: {\n\n shelley: mainnetShelley,\n byron: mainnetByron\n },\n\n guild: {\n\n shelley: guildShelley,\n byron: guildByron\n },\n\n sancho: {\n\n shelley: sanchoShelley,\n byron: sanchoByron\n },\n\n preprod: {\n\n shelley: preprodShelley,\n byron: preprodByron\n },\n\n preview: {\n\n shelley: previewShelley,\n byron: previewByron\n },\n\n afvt: {\n\n shelley: afvtShelley,\n byron: afvtByron\n },\n\n afvm: {\n\n shelley: afvmShelley,\n byron: afvmByron\n },\n\n afpt: {\n\n shelley: afptShelley,\n byron: afptByron\n },\n\n afpm: {\n\n shelley: afpmShelley,\n byron: afpmByron\n },\n}\n"],"mappings":";;;;AAqBA,MAAa,eAAkD;CAE7D,SAA4B;EAE1B,SAA0BA;EAC1B,OAA0BC;EAC3B;CAED,OAA4B;EAE1B,SAA0BC;EAC1B,OAA0BC;EAC3B;CAED,QAA4B;EAE1B,SAA0BC;EAC1B,OAA0BC;EAC3B;CAED,SAA4B;EAE1B,SAA0BC;EAC1B,OAA0BC;EAC3B;CAED,SAA4B;EAE1B,SAA0BC;EAC1B,OAA0BC;EAC3B;CAED,MAA4B;EAE1B,SAA0BC;EAC1B,OAA0BC;EAC3B;CAED,MAA4B;EAE1B,SAA0BC;EAC1B,OAA0BC;EAC3B;CAED,MAA4B;EAE1B,SAA0BC;EAC1B,OAA0BC;EAC3B;CAED,MAA4B;EAE1B,SAA0BC;EAC1B,OAA0BC;EAC3B;CACF"}
@@ -1,5 +1,5 @@
1
- import { NetworkId } from "../types/NetworkId.cjs";
2
1
  import { IGenesisStore } from "./IGenesisStore.cjs";
2
+ import { NetworkId } from "../types/NetworkId.cjs";
3
3
 
4
4
  //#region src/network/GenesisStore.d.ts
5
5
  declare const GenesisStore: Record<NetworkId, IGenesisStore>;
@@ -1 +1 @@
1
- {"version":3,"file":"GenesisStore.d.cts","names":[],"sources":["../../src/network/GenesisStore.ts"],"mappings":";;;;cAwBa,YAAA,EAAe,MAAA,CAAO,SAAA,EAAW,aAAA"}
1
+ {"version":3,"file":"GenesisStore.d.cts","names":[],"sources":["../../src/network/GenesisStore.ts"],"mappings":";;;;cAqBa,YAAA,EAAe,MAAA,CAAO,SAAA,EAAW,aAAA"}
@@ -1,5 +1,5 @@
1
- import { NetworkId } from "../types/NetworkId.mjs";
2
1
  import { IGenesisStore } from "./IGenesisStore.mjs";
2
+ import { NetworkId } from "../types/NetworkId.mjs";
3
3
 
4
4
  //#region src/network/GenesisStore.d.ts
5
5
  declare const GenesisStore: Record<NetworkId, IGenesisStore>;
@@ -1 +1 @@
1
- {"version":3,"file":"GenesisStore.d.mts","names":[],"sources":["../../src/network/GenesisStore.ts"],"mappings":";;;;cAwBa,YAAA,EAAe,MAAA,CAAO,SAAA,EAAW,aAAA"}
1
+ {"version":3,"file":"GenesisStore.d.mts","names":[],"sources":["../../src/network/GenesisStore.ts"],"mappings":";;;;cAqBa,YAAA,EAAe,MAAA,CAAO,SAAA,EAAW,aAAA"}
@@ -1,4 +1,4 @@
1
- import { _ as shelley_default$1, a as byron_default$4, c as byron_default$1, d as shelley_default$7, f as shelley_default$6, g as shelley_default$2, h as shelley_default$3, i as byron_default$5, l as byron_default, m as shelley_default$4, n as byron_default$7, o as byron_default$3, p as shelley_default$5, r as byron_default$6, s as byron_default$2, t as byron_default$8, u as shelley_default$8, v as shelley_default } from "../byron-BpRcvdPh.mjs";
1
+ import { _ as shelley_default$8, a as shelley_default$3, c as byron_default, d as shelley_default$5, f as byron_default$5, g as byron_default$7, h as shelley_default$7, i as byron_default$4, l as shelley_default$1, m as byron_default$6, n as byron_default$2, o as byron_default$3, p as shelley_default$6, r as shelley_default$4, s as shelley_default, t as shelley_default$2, u as byron_default$1, v as byron_default$8 } from "../shelley-DT0SWnc1.mjs";
2
2
 
3
3
  //#region src/network/GenesisStore.ts
4
4
  const GenesisStore = {
@@ -1 +1 @@
1
- {"version":3,"file":"GenesisStore.mjs","names":["mainnetShelley","mainnetByron","guildShelley","guildByron","sanchoShelley","sanchoByron","preprodShelley","preprodByron","previewShelley","previewByron","afvtShelley","afvtByron","afvmShelley","afvmByron","afptShelley","afptByron","afpmShelley","afpmByron"],"sources":["../../src/network/GenesisStore.ts"],"sourcesContent":["import { type NetworkId } from '../index'\n\nimport { IGenesisStore } from './IGenesisStore'\n\nimport mainnetShelley from './mainnet/shelley.json'\nimport guildShelley from './guild/shelley.json'\nimport sanchoShelley from './sancho/shelley.json'\nimport preprodShelley from './preprod/shelley.json'\nimport previewShelley from './preview/shelley.json'\nimport afvtShelley from './afvt/shelley.json'\nimport afvmShelley from './afvm/shelley.json'\nimport afptShelley from './afpt/shelley.json'\nimport afpmShelley from './afpm/shelley.json'\n\nimport mainnetByron from './mainnet/byron.json'\nimport guildByron from './guild/byron.json'\nimport sanchoByron from './sancho/byron.json'\nimport preprodByron from './preprod/byron.json'\nimport previewByron from './preview/byron.json'\nimport afvtByron from './afvt/byron.json'\nimport afvmByron from './afvm/byron.json'\nimport afptByron from './afpt/byron.json'\nimport afpmByron from './afpm/byron.json'\n\nexport const GenesisStore : Record<NetworkId, IGenesisStore> = {\n\n mainnet: {\n\n shelley: mainnetShelley,\n byron: mainnetByron\n },\n\n guild: {\n\n shelley: guildShelley,\n byron: guildByron\n },\n\n sancho: {\n\n shelley: sanchoShelley,\n byron: sanchoByron\n },\n\n preprod: {\n\n shelley: preprodShelley,\n byron: preprodByron\n },\n\n preview: {\n\n shelley: previewShelley,\n byron: previewByron\n },\n\n afvt: {\n\n shelley: afvtShelley,\n byron: afvtByron\n },\n\n afvm: {\n\n shelley: afvmShelley,\n byron: afvmByron\n },\n\n afpt: {\n\n shelley: afptShelley,\n byron: afptByron\n },\n\n afpm: {\n\n shelley: afpmShelley,\n byron: afpmByron\n },\n}\n"],"mappings":";;;AAwBA,MAAa,eAAkD;CAE7D,SAA4B;EAE1B,SAA0BA;EAC1B,OAA0BC;EAC3B;CAED,OAA4B;EAE1B,SAA0BC;EAC1B,OAA0BC;EAC3B;CAED,QAA4B;EAE1B,SAA0BC;EAC1B,OAA0BC;EAC3B;CAED,SAA4B;EAE1B,SAA0BC;EAC1B,OAA0BC;EAC3B;CAED,SAA4B;EAE1B,SAA0BC;EAC1B,OAA0BC;EAC3B;CAED,MAA4B;EAE1B,SAA0BC;EAC1B,OAA0BC;EAC3B;CAED,MAA4B;EAE1B,SAA0BC;EAC1B,OAA0BC;EAC3B;CAED,MAA4B;EAE1B,SAA0BC;EAC1B,OAA0BC;EAC3B;CAED,MAA4B;EAE1B,SAA0BC;EAC1B,OAA0BC;EAC3B;CACF"}
1
+ {"version":3,"file":"GenesisStore.mjs","names":["mainnetShelley","mainnetByron","guildShelley","guildByron","sanchoShelley","sanchoByron","preprodShelley","preprodByron","previewShelley","previewByron","afvtShelley","afvtByron","afvmShelley","afvmByron","afptShelley","afptByron","afpmShelley","afpmByron"],"sources":["../../src/network/GenesisStore.ts"],"sourcesContent":["import { NetworkId } from '../index'\nimport afpmByron from './afpm/byron.json'\nimport afpmShelley from './afpm/shelley.json'\nimport afptByron from './afpt/byron.json'\nimport afptShelley from './afpt/shelley.json'\nimport afvmByron from './afvm/byron.json'\nimport afvmShelley from './afvm/shelley.json'\nimport afvtByron from './afvt/byron.json'\nimport afvtShelley from './afvt/shelley.json'\nimport guildByron from './guild/byron.json'\nimport guildShelley from './guild/shelley.json'\nimport { IGenesisStore } from './IGenesisStore'\nimport mainnetByron from './mainnet/byron.json'\nimport mainnetShelley from './mainnet/shelley.json'\nimport preprodByron from './preprod/byron.json'\nimport preprodShelley from './preprod/shelley.json'\nimport previewByron from './preview/byron.json'\nimport previewShelley from './preview/shelley.json'\nimport sanchoByron from './sancho/byron.json'\nimport sanchoShelley from './sancho/shelley.json'\n\nexport const GenesisStore : Record<NetworkId, IGenesisStore> = {\n\n mainnet: {\n\n shelley: mainnetShelley,\n byron: mainnetByron\n },\n\n guild: {\n\n shelley: guildShelley,\n byron: guildByron\n },\n\n sancho: {\n\n shelley: sanchoShelley,\n byron: sanchoByron\n },\n\n preprod: {\n\n shelley: preprodShelley,\n byron: preprodByron\n },\n\n preview: {\n\n shelley: previewShelley,\n byron: previewByron\n },\n\n afvt: {\n\n shelley: afvtShelley,\n byron: afvtByron\n },\n\n afvm: {\n\n shelley: afvmShelley,\n byron: afvmByron\n },\n\n afpt: {\n\n shelley: afptShelley,\n byron: afptByron\n },\n\n afpm: {\n\n shelley: afpmShelley,\n byron: afpmByron\n },\n}\n"],"mappings":";;;AAqBA,MAAa,eAAkD;CAE7D,SAA4B;EAE1B,SAA0BA;EAC1B,OAA0BC;EAC3B;CAED,OAA4B;EAE1B,SAA0BC;EAC1B,OAA0BC;EAC3B;CAED,QAA4B;EAE1B,SAA0BC;EAC1B,OAA0BC;EAC3B;CAED,SAA4B;EAE1B,SAA0BC;EAC1B,OAA0BC;EAC3B;CAED,SAA4B;EAE1B,SAA0BC;EAC1B,OAA0BC;EAC3B;CAED,MAA4B;EAE1B,SAA0BC;EAC1B,OAA0BC;EAC3B;CAED,MAA4B;EAE1B,SAA0BC;EAC1B,OAA0BC;EAC3B;CAED,MAA4B;EAE1B,SAA0BC;EAC1B,OAA0BC;EAC3B;CAED,MAA4B;EAE1B,SAA0BC;EAC1B,OAA0BC;EAC3B;CACF"}