@eternl/network-id 0.10.16 → 0.10.17

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,4 +1,4 @@
1
- Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: 'Module' } });
1
+ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
2
2
  const require_network_GenesisStore = require('./network/GenesisStore.cjs');
3
3
  const require_types_NetworkId = require('./types/NetworkId.cjs');
4
4
  let _eternl_tools = require("@eternl/tools");
@@ -151,16 +151,8 @@ const getSlotFromDateId = (networkId, dateId, calcEnd = false) => {
151
151
  date = (0, _eternl_tools.changeTimezone)(date, dateId.timezone);
152
152
  return getCalculatedSlotFromBlockTime(networkId, date.getTime());
153
153
  };
154
- var chain_default = {
155
- getNetworkMagic,
156
- getEpochLength,
157
- getGenesis,
158
- getByron,
159
- getShelley
160
- };
161
154
 
162
155
  //#endregion
163
- exports.default = chain_default;
164
156
  exports.getByron = getByron;
165
157
  exports.getCalculatedChainTip = getCalculatedChainTip;
166
158
  exports.getCalculatedEpoch = getCalculatedEpoch;
@@ -1 +1 @@
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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"}
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 { 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\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"],"mappings":";;;;;;AAmBA,MAAM,8BAA0B,IAAI,KAAqB;AAGzD,MAAM,iCAA0B,IAAI,KAAkC;AAEtE,MAAa,cAAoB,cAAwCA,0CAAa;AACtF,MAAa,YAAoB,cAAwCA,0CAAa,WAAW;AACjG,MAAa,cAAoB,cAAwCA,0CAAa,WAAW;AACjG,MAAa,mBAAoB,cAAwCA,0CAAa,WAAW,QAAQ;AACzG,MAAa,kBAAoB,cAAwCA,0CAAa,WAAW,QAAQ;AACzG,MAAa,qBAAoB,cAAwC,eAAe,UAAU,GAAGA,0CAAa,WAAW,QAAQ;AAErI,MAAM,iBAA2B,cAA8B;CAE7D,MAAM,QAAwB,SAAS,UAAU;CAEjD,MAAM,iBAAwB,KAAK,8BAAW,GAAG,IAAK;CACtD,MAAM,oBAAwBC,sDAA8B;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,0CAA6C,MAAM,OAAO,SAAS;AAEnE,QAAO,+BAA+B,WAAW,KAAK,SAAS,CAAC"}
package/dist/chain.d.cts CHANGED
@@ -25,13 +25,6 @@ declare const updateChainTip: (id: NetworkId, chainTip: IChainTip, data: IChainT
25
25
  declare const getDateIdFromSlot: (networkId: NetworkId, slotNo: number, userSelectedTimezone: string) => DateId;
26
26
  declare const getDateIdFromTimestamp: (timeStamp: number, userSelectedTimezone: string) => DateId;
27
27
  declare const getSlotFromDateId: (networkId: NetworkId, dateId: Pick<DateId, "year" | "month" | "day" | "timezone">, calcEnd?: boolean) => number;
28
- declare const _default: {
29
- getNetworkMagic: (networkId: NetworkId) => number;
30
- getEpochLength: (networkId: NetworkId) => number;
31
- getGenesis: (networkId: NetworkId) => IGenesisStore;
32
- getByron: (networkId: NetworkId) => IByron;
33
- getShelley: (networkId: NetworkId) => IShelley;
34
- };
35
28
  //#endregion
36
- export { _default as default, getByron, getCalculatedChainTip, getCalculatedEpoch, getCalculatedEpochSlot, getCalculatedSlotFromBlockTime, getDateIdFromSlot, getDateIdFromTimestamp, getEpochFromSlot, getEpochLength, getEpochStart, getGenesis, getLastSlotOfEpoch, getNetworkMagic, getNumEpochBlocks, getShelley, getSlotFromDateId, getTimestampFromSlot, updateChainTip };
29
+ export { getByron, getCalculatedChainTip, getCalculatedEpoch, getCalculatedEpochSlot, getCalculatedSlotFromBlockTime, getDateIdFromSlot, getDateIdFromTimestamp, getEpochFromSlot, getEpochLength, getEpochStart, getGenesis, getLastSlotOfEpoch, getNetworkMagic, getNumEpochBlocks, getShelley, getSlotFromDateId, getTimestampFromSlot, updateChainTip };
37
30
  //# sourceMappingURL=chain.d.cts.map
@@ -1 +1 @@
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"}
1
+ {"version":3,"file":"chain.d.cts","names":[],"sources":["../src/chain.ts"],"mappings":";;;;;;cAwBa,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"}
package/dist/chain.d.mts CHANGED
@@ -25,13 +25,6 @@ declare const updateChainTip: (id: NetworkId, chainTip: IChainTip, data: IChainT
25
25
  declare const getDateIdFromSlot: (networkId: NetworkId, slotNo: number, userSelectedTimezone: string) => DateId;
26
26
  declare const getDateIdFromTimestamp: (timeStamp: number, userSelectedTimezone: string) => DateId;
27
27
  declare const getSlotFromDateId: (networkId: NetworkId, dateId: Pick<DateId, "year" | "month" | "day" | "timezone">, calcEnd?: boolean) => number;
28
- declare const _default: {
29
- getNetworkMagic: (networkId: NetworkId) => number;
30
- getEpochLength: (networkId: NetworkId) => number;
31
- getGenesis: (networkId: NetworkId) => IGenesisStore;
32
- getByron: (networkId: NetworkId) => IByron;
33
- getShelley: (networkId: NetworkId) => IShelley;
34
- };
35
28
  //#endregion
36
- export { _default as default, getByron, getCalculatedChainTip, getCalculatedEpoch, getCalculatedEpochSlot, getCalculatedSlotFromBlockTime, getDateIdFromSlot, getDateIdFromTimestamp, getEpochFromSlot, getEpochLength, getEpochStart, getGenesis, getLastSlotOfEpoch, getNetworkMagic, getNumEpochBlocks, getShelley, getSlotFromDateId, getTimestampFromSlot, updateChainTip };
29
+ export { getByron, getCalculatedChainTip, getCalculatedEpoch, getCalculatedEpochSlot, getCalculatedSlotFromBlockTime, getDateIdFromSlot, getDateIdFromTimestamp, getEpochFromSlot, getEpochLength, getEpochStart, getGenesis, getLastSlotOfEpoch, getNetworkMagic, getNumEpochBlocks, getShelley, getSlotFromDateId, getTimestampFromSlot, updateChainTip };
37
30
  //# sourceMappingURL=chain.d.mts.map
@@ -1 +1 @@
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"}
1
+ {"version":3,"file":"chain.d.mts","names":[],"sources":["../src/chain.ts"],"mappings":";;;;;;cAwBa,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"}
package/dist/chain.mjs CHANGED
@@ -150,14 +150,7 @@ const getSlotFromDateId = (networkId, dateId, calcEnd = false) => {
150
150
  date = changeTimezone(date, dateId.timezone);
151
151
  return getCalculatedSlotFromBlockTime(networkId, date.getTime());
152
152
  };
153
- var chain_default = {
154
- getNetworkMagic,
155
- getEpochLength,
156
- getGenesis,
157
- getByron,
158
- getShelley
159
- };
160
153
 
161
154
  //#endregion
162
- export { chain_default as default, getByron, getCalculatedChainTip, getCalculatedEpoch, getCalculatedEpochSlot, getCalculatedSlotFromBlockTime, getDateIdFromSlot, getDateIdFromTimestamp, getEpochFromSlot, getEpochLength, getEpochStart, getGenesis, getLastSlotOfEpoch, getNetworkMagic, getNumEpochBlocks, getShelley, getSlotFromDateId, getTimestampFromSlot, updateChainTip };
155
+ export { getByron, getCalculatedChainTip, getCalculatedEpoch, getCalculatedEpochSlot, getCalculatedSlotFromBlockTime, getDateIdFromSlot, getDateIdFromTimestamp, getEpochFromSlot, getEpochLength, getEpochStart, getGenesis, getLastSlotOfEpoch, getNetworkMagic, getNumEpochBlocks, getShelley, getSlotFromDateId, getTimestampFromSlot, updateChainTip };
163
156
  //# sourceMappingURL=chain.mjs.map
@@ -1 +1 @@
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":"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"}
1
+ {"version":3,"file":"chain.mjs","names":[],"sources":["../src/chain.ts"],"sourcesContent":["import {\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\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"],"mappings":"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"}
package/dist/index.d.cts CHANGED
@@ -2,6 +2,7 @@ import { IBlockVersionData, IByron, IGenesisStore, IProtocolConsts, IShelley } f
2
2
  import { DateId } from "./types/DateId.cjs";
3
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
4
  import { GenesisStore } from "./network/GenesisStore.cjs";
5
+ import { IEpochParams, IProtocolVersion } from "./types/IEpochParams.cjs";
5
6
  import { IChainTip, createIChainTip } from "./types/IChainTip.cjs";
6
7
  import { getByron, getCalculatedChainTip, getCalculatedEpoch, getCalculatedEpochSlot, getCalculatedSlotFromBlockTime, getDateIdFromSlot, getDateIdFromTimestamp, getEpochFromSlot, getEpochLength, getEpochStart, getGenesis, getLastSlotOfEpoch, getNetworkMagic, getNumEpochBlocks, getShelley, getSlotFromDateId, getTimestampFromSlot, updateChainTip } from "./chain.cjs";
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 };
8
+ export { DateId, GenesisStore, IBlockVersionData, IByron, IChainTip, IEpochParams, IGenesisStore, IProtocolConsts, IProtocolVersion, 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
@@ -2,6 +2,7 @@ import { IBlockVersionData, IByron, IGenesisStore, IProtocolConsts, IShelley } f
2
2
  import { DateId } from "./types/DateId.mjs";
3
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
4
  import { GenesisStore } from "./network/GenesisStore.mjs";
5
+ import { IEpochParams, IProtocolVersion } from "./types/IEpochParams.mjs";
5
6
  import { IChainTip, createIChainTip } from "./types/IChainTip.mjs";
6
7
  import { getByron, getCalculatedChainTip, getCalculatedEpoch, getCalculatedEpochSlot, getCalculatedSlotFromBlockTime, getDateIdFromSlot, getDateIdFromTimestamp, getEpochFromSlot, getEpochLength, getEpochStart, getGenesis, getLastSlotOfEpoch, getNetworkMagic, getNumEpochBlocks, getShelley, getSlotFromDateId, getTimestampFromSlot, updateChainTip } from "./chain.mjs";
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 };
8
+ export { DateId, GenesisStore, IBlockVersionData, IByron, IChainTip, IEpochParams, IGenesisStore, IProtocolConsts, IProtocolVersion, 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 };
@@ -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 { 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
+ {"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,eAAiD;CAE5D,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 +1 @@
1
- {"version":3,"file":"GenesisStore.d.cts","names":[],"sources":["../../src/network/GenesisStore.ts"],"mappings":";;;;cAqBa,YAAA,EAAe,MAAA,CAAO,SAAA,EAAW,aAAA"}
1
+ {"version":3,"file":"GenesisStore.d.cts","names":[],"sources":["../../src/network/GenesisStore.ts"],"mappings":";;;;cAqBa,YAAA,EAAc,MAAA,CAAO,SAAA,EAAW,aAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"GenesisStore.d.mts","names":[],"sources":["../../src/network/GenesisStore.ts"],"mappings":";;;;cAqBa,YAAA,EAAe,MAAA,CAAO,SAAA,EAAW,aAAA"}
1
+ {"version":3,"file":"GenesisStore.d.mts","names":[],"sources":["../../src/network/GenesisStore.ts"],"mappings":";;;;cAqBa,YAAA,EAAc,MAAA,CAAO,SAAA,EAAW,aAAA"}
@@ -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 { 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
+ {"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,eAAiD;CAE5D,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"}
File without changes
@@ -0,0 +1,24 @@
1
+ import { NetworkId } from "@eternl/network-id";
2
+
3
+ //#region src/types/IEpochParams.d.ts
4
+ interface IProtocolVersion {
5
+ major: number;
6
+ minor: number;
7
+ }
8
+ interface IEpochParams {
9
+ networkId: NetworkId;
10
+ protocolVersion: IProtocolVersion;
11
+ utxoCostPerSize: number;
12
+ maxValueSize: number;
13
+ maxTxSize: number;
14
+ txFeePerByte: number;
15
+ txFeeFixed: number;
16
+ stakePoolDeposit: number;
17
+ stakeAddressDeposit: number;
18
+ isAtLeastBabbageEra?: boolean;
19
+ isAtLeastConwayEra?: boolean;
20
+ isAtLeastConwayEra2?: boolean;
21
+ }
22
+ //#endregion
23
+ export { IEpochParams, IProtocolVersion };
24
+ //# sourceMappingURL=IEpochParams.d.cts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"IEpochParams.d.cts","names":[],"sources":["../../src/types/IEpochParams.ts"],"mappings":";;;UAEiB,gBAAA;EAEf,KAAA;EACA,KAAA;AAAA;AAAA,UAGe,YAAA;EAEf,SAAA,EAA4B,SAAA;EAC5B,eAAA,EAA4B,gBAAA;EAE5B,eAAA;EACA,YAAA;EACA,SAAA;EACA,YAAA;EACA,UAAA;EACA,gBAAA;EACA,mBAAA;EAEA,mBAAA;EACA,kBAAA;EACA,mBAAA;AAAA"}
@@ -0,0 +1,24 @@
1
+ import { NetworkId } from "@eternl/network-id";
2
+
3
+ //#region src/types/IEpochParams.d.ts
4
+ interface IProtocolVersion {
5
+ major: number;
6
+ minor: number;
7
+ }
8
+ interface IEpochParams {
9
+ networkId: NetworkId;
10
+ protocolVersion: IProtocolVersion;
11
+ utxoCostPerSize: number;
12
+ maxValueSize: number;
13
+ maxTxSize: number;
14
+ txFeePerByte: number;
15
+ txFeeFixed: number;
16
+ stakePoolDeposit: number;
17
+ stakeAddressDeposit: number;
18
+ isAtLeastBabbageEra?: boolean;
19
+ isAtLeastConwayEra?: boolean;
20
+ isAtLeastConwayEra2?: boolean;
21
+ }
22
+ //#endregion
23
+ export { IEpochParams, IProtocolVersion };
24
+ //# sourceMappingURL=IEpochParams.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"IEpochParams.d.mts","names":[],"sources":["../../src/types/IEpochParams.ts"],"mappings":";;;UAEiB,gBAAA;EAEf,KAAA;EACA,KAAA;AAAA;AAAA,UAGe,YAAA;EAEf,SAAA,EAA4B,SAAA;EAC5B,eAAA,EAA4B,gBAAA;EAE5B,eAAA;EACA,YAAA;EACA,SAAA;EACA,YAAA;EACA,UAAA;EACA,gBAAA;EACA,mBAAA;EAEA,mBAAA;EACA,kBAAA;EACA,mBAAA;AAAA"}
@@ -0,0 +1 @@
1
+ export { };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@eternl/network-id",
3
- "version": "0.10.16",
3
+ "version": "0.10.17",
4
4
  "description": "Network identifiers and network-level metadata for Eternl packages",
5
5
  "license": "BUSL-1.1",
6
6
  "type": "module",
@@ -36,7 +36,7 @@
36
36
  "llms.txt"
37
37
  ],
38
38
  "dependencies": {
39
- "@eternl/tools": "0.10.16"
39
+ "@eternl/tools": "0.10.17"
40
40
  },
41
41
  "publishConfig": {
42
42
  "access": "public"