@eternl/network-id 0.31.0 → 0.31.1

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.
Files changed (65) hide show
  1. package/dist/{DateId-Bgaw8h3k.d.mts → DateId-DpLkO3y9.d.cts} +1 -1
  2. package/dist/DateId-DpLkO3y9.d.cts.map +1 -0
  3. package/dist/{DateId-DI1Q0_Pd.d.cts → DateId-DpLkO3y9.d.mts} +1 -1
  4. package/dist/DateId-DpLkO3y9.d.mts.map +1 -0
  5. package/dist/GenesisStore-CqCs2Yin.mjs +618 -0
  6. package/dist/{GenesisStore-DtQdwsV9.mjs.map → GenesisStore-CqCs2Yin.mjs.map} +1 -1
  7. package/dist/GenesisStore-DGnbeDqM.cjs +623 -0
  8. package/dist/{GenesisStore-bmIOboUV.cjs.map → GenesisStore-DGnbeDqM.cjs.map} +1 -1
  9. package/dist/{IEpochParams-CH8-YLax.d.mts → IEpochParams-BFNd585A.d.cts} +1 -2
  10. package/dist/IEpochParams-BFNd585A.d.cts.map +1 -0
  11. package/dist/{IEpochParams-CSxQMaRY.d.cts → IEpochParams-BFNd585A.d.mts} +1 -2
  12. package/dist/IEpochParams-BFNd585A.d.mts.map +1 -0
  13. package/dist/{IGenesisStore-BsB4xkSW.d.mts → IGenesisStore-DsIpICQ8.d.cts} +1 -1
  14. package/dist/IGenesisStore-DsIpICQ8.d.cts.map +1 -0
  15. package/dist/{IGenesisStore-HKK_EuKr.d.cts → IGenesisStore-DsIpICQ8.d.mts} +1 -1
  16. package/dist/IGenesisStore-DsIpICQ8.d.mts.map +1 -0
  17. package/dist/{NetworkId-B8rRQja1.d.cts → NetworkId-B9JhuswJ.d.cts} +10 -10
  18. package/dist/NetworkId-B9JhuswJ.d.cts.map +1 -0
  19. package/dist/{NetworkId-BG6nkpb_.d.mts → NetworkId-B9JhuswJ.d.mts} +10 -10
  20. package/dist/NetworkId-B9JhuswJ.d.mts.map +1 -0
  21. package/dist/{chain-CXEvehB2.d.cts → chain-DRRhGMxp.d.mts} +5 -6
  22. package/dist/chain-DRRhGMxp.d.mts.map +1 -0
  23. package/dist/{chain-q8sBB3TY.d.mts → chain-DbsXl5Uh.d.cts} +5 -6
  24. package/dist/chain-DbsXl5Uh.d.cts.map +1 -0
  25. package/dist/chain.cjs +10 -7
  26. package/dist/chain.cjs.map +1 -1
  27. package/dist/chain.d.cts +1 -1
  28. package/dist/chain.d.mts +1 -1
  29. package/dist/chain.mjs +10 -7
  30. package/dist/chain.mjs.map +1 -1
  31. package/dist/index.cjs +1 -1
  32. package/dist/index.d.cts +5 -5
  33. package/dist/index.d.mts +5 -5
  34. package/dist/index.mjs +1 -1
  35. package/dist/network/GenesisStore.cjs +1 -1
  36. package/dist/network/GenesisStore.d.cts +1 -1
  37. package/dist/network/GenesisStore.d.mts +1 -1
  38. package/dist/network/GenesisStore.mjs +1 -1
  39. package/dist/network/IGenesisStore.d.cts +1 -1
  40. package/dist/network/IGenesisStore.d.mts +1 -1
  41. package/dist/types/DateId.d.cts +1 -1
  42. package/dist/types/DateId.d.mts +1 -1
  43. package/dist/types/IChainTip.cjs.map +1 -1
  44. package/dist/types/IChainTip.d.cts +1 -1
  45. package/dist/types/IChainTip.d.mts +1 -1
  46. package/dist/types/IChainTip.mjs.map +1 -1
  47. package/dist/types/IEpochParams.d.cts +1 -1
  48. package/dist/types/IEpochParams.d.mts +1 -1
  49. package/dist/types/NetworkId.cjs.map +1 -1
  50. package/dist/types/NetworkId.d.cts +1 -1
  51. package/dist/types/NetworkId.d.mts +1 -1
  52. package/dist/types/NetworkId.mjs.map +1 -1
  53. package/package.json +2 -2
  54. package/dist/DateId-Bgaw8h3k.d.mts.map +0 -1
  55. package/dist/DateId-DI1Q0_Pd.d.cts.map +0 -1
  56. package/dist/GenesisStore-DtQdwsV9.mjs +0 -668
  57. package/dist/GenesisStore-bmIOboUV.cjs +0 -673
  58. package/dist/IEpochParams-CH8-YLax.d.mts.map +0 -1
  59. package/dist/IEpochParams-CSxQMaRY.d.cts.map +0 -1
  60. package/dist/IGenesisStore-BsB4xkSW.d.mts.map +0 -1
  61. package/dist/IGenesisStore-HKK_EuKr.d.cts.map +0 -1
  62. package/dist/NetworkId-B8rRQja1.d.cts.map +0 -1
  63. package/dist/NetworkId-BG6nkpb_.d.mts.map +0 -1
  64. package/dist/chain-CXEvehB2.d.cts.map +0 -1
  65. package/dist/chain-q8sBB3TY.d.mts.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"IGenesisStore-DsIpICQ8.d.mts","names":[],"sources":["../src/network/IGenesisStore.ts"],"mappings":";UAsBiB;EAEf;EACA;EACA;EACA;EACA;EACA;EAEA;EACA;EACA;EACA;EACA;;UAGe;EAEf;EACA;EACA;EACA;EACA;;UAGe;EAEf;EACA;;UAGe;EAEf;EACA,kBAA4B;EAC5B,gBAA4B;;UAGb;EAEf,SAA4B;EAC5B,OAA4B"}
@@ -1,14 +1,14 @@
1
1
  //#region src/types/NetworkId.d.ts
2
2
  declare const NETWORK_ID: {
3
- readonly MAINNET: "mainnet";
4
- readonly GUILD: "guild";
5
- readonly SANCHO: "sancho";
6
- readonly PREPROD: "preprod";
7
- readonly PREVIEW: "preview";
8
- readonly AFVT: "afvt";
9
- readonly AFVM: "afvm";
10
- readonly AFPT: "afpt";
11
- readonly AFPM: "afpm";
3
+ readonly MAINNET: 'mainnet';
4
+ readonly GUILD: 'guild';
5
+ readonly SANCHO: 'sancho';
6
+ readonly PREPROD: 'preprod';
7
+ readonly PREVIEW: 'preview';
8
+ readonly AFVT: 'afvt';
9
+ readonly AFVM: 'afvm';
10
+ readonly AFPT: 'afpt';
11
+ readonly AFPM: 'afpm';
12
12
  };
13
13
  type NetworkId = typeof NETWORK_ID[keyof typeof NETWORK_ID];
14
14
  declare const networkIdList: NetworkId[];
@@ -28,4 +28,4 @@ declare const getNetworkCurrencyCode: (id: NetworkId) => string;
28
28
  declare const getNetworkCurrencySymbol: (id: NetworkId) => string;
29
29
  //#endregion
30
30
  export { networkStakeAddressPrefix as _, getNetworkDecimals as a, isSupportedNetworkId as c, networkCurrencyCode as d, networkCurrencySymbol as f, networkShelleyTransitionEpoch as g, networkIdx as h, getNetworkCurrencySymbol as i, isTestnetNetwork as l, networkIdList as m, NetworkId as n, getNetworkId as o, networkGroups as p, getNetworkCurrencyCode as r, isCustomNetwork as s, NETWORK_ID as t, networkAddressPrefix as u };
31
- //# sourceMappingURL=NetworkId-B8rRQja1.d.cts.map
31
+ //# sourceMappingURL=NetworkId-B9JhuswJ.d.cts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"NetworkId-B9JhuswJ.d.cts","names":[],"sources":["../src/types/NetworkId.ts"],"mappings":";cAAa;WAEX;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;;KAGU,mBAA2B,wBAAwB;cAElD,eAAoB;cAYpB,YAAY,OAAO;cAanB,eAAe,eAAe;cAM9B,+BAA+B,OAAO;cAatC,sBAAsB,OAAO;cAa7B,2BAA2B,OAAO;cAalC,qBAAqB,OAAO;cAa5B,uBAAuB,OAAO;cAa9B,uBAAoB,uBAA6B,MAAM;cAEvD,eAAY;cAkBZ,qBAAkB,IAAc;cAShC,mBAAgB,WAAuB;cAkBvC,kBAAe,WAAwB;cAEvC,yBAAsB,IAAU;cAChC,2BAAwB,IAAQ"}
@@ -1,14 +1,14 @@
1
1
  //#region src/types/NetworkId.d.ts
2
2
  declare const NETWORK_ID: {
3
- readonly MAINNET: "mainnet";
4
- readonly GUILD: "guild";
5
- readonly SANCHO: "sancho";
6
- readonly PREPROD: "preprod";
7
- readonly PREVIEW: "preview";
8
- readonly AFVT: "afvt";
9
- readonly AFVM: "afvm";
10
- readonly AFPT: "afpt";
11
- readonly AFPM: "afpm";
3
+ readonly MAINNET: 'mainnet';
4
+ readonly GUILD: 'guild';
5
+ readonly SANCHO: 'sancho';
6
+ readonly PREPROD: 'preprod';
7
+ readonly PREVIEW: 'preview';
8
+ readonly AFVT: 'afvt';
9
+ readonly AFVM: 'afvm';
10
+ readonly AFPT: 'afpt';
11
+ readonly AFPM: 'afpm';
12
12
  };
13
13
  type NetworkId = typeof NETWORK_ID[keyof typeof NETWORK_ID];
14
14
  declare const networkIdList: NetworkId[];
@@ -28,4 +28,4 @@ declare const getNetworkCurrencyCode: (id: NetworkId) => string;
28
28
  declare const getNetworkCurrencySymbol: (id: NetworkId) => string;
29
29
  //#endregion
30
30
  export { networkStakeAddressPrefix as _, getNetworkDecimals as a, isSupportedNetworkId as c, networkCurrencyCode as d, networkCurrencySymbol as f, networkShelleyTransitionEpoch as g, networkIdx as h, getNetworkCurrencySymbol as i, isTestnetNetwork as l, networkIdList as m, NetworkId as n, getNetworkId as o, networkGroups as p, getNetworkCurrencyCode as r, isCustomNetwork as s, NETWORK_ID as t, networkAddressPrefix as u };
31
- //# sourceMappingURL=NetworkId-BG6nkpb_.d.mts.map
31
+ //# sourceMappingURL=NetworkId-B9JhuswJ.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"NetworkId-B9JhuswJ.d.mts","names":[],"sources":["../src/types/NetworkId.ts"],"mappings":";cAAa;WAEX;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;;KAGU,mBAA2B,wBAAwB;cAElD,eAAoB;cAYpB,YAAY,OAAO;cAanB,eAAe,eAAe;cAM9B,+BAA+B,OAAO;cAatC,sBAAsB,OAAO;cAa7B,2BAA2B,OAAO;cAalC,qBAAqB,OAAO;cAa5B,uBAAuB,OAAO;cAa9B,uBAAoB,uBAA6B,MAAM;cAEvD,eAAY;cAkBZ,qBAAkB,IAAc;cAShC,mBAAgB,WAAuB;cAkBvC,kBAAe,WAAwB;cAEvC,yBAAsB,IAAU;cAChC,2BAAwB,IAAQ"}
@@ -1,7 +1,6 @@
1
- import { a as IShelley, n as IByron, r as IGenesisStore } from "./IGenesisStore-HKK_EuKr.cjs";
2
- import { t as DateId } from "./DateId-DI1Q0_Pd.cjs";
3
- import { n as NetworkId } from "./NetworkId-B8rRQja1.cjs";
4
-
1
+ import { a as IShelley, n as IByron, r as IGenesisStore } from "./IGenesisStore-DsIpICQ8.mjs";
2
+ import { t as DateId } from "./DateId-DpLkO3y9.mjs";
3
+ import { n as NetworkId } from "./NetworkId-B9JhuswJ.mjs";
5
4
  //#region src/network/GenesisStore.d.ts
6
5
  declare const GenesisStore: Record<NetworkId, IGenesisStore>;
7
6
  //#endregion
@@ -42,7 +41,7 @@ declare const getEpochStart: (id: NetworkId, epochNo: number) => {
42
41
  declare const updateChainTip: (id: NetworkId, chainTip: IChainTip, data: IChainTip) => IChainTip;
43
42
  declare const getDateIdFromSlot: (networkId: NetworkId, slotNo: number, userSelectedTimezone: string) => DateId;
44
43
  declare const getDateIdFromTimestamp: (timeStamp: number, userSelectedTimezone: string) => DateId;
45
- declare const getSlotFromDateId: (networkId: NetworkId, dateId: Pick<DateId, "year" | "month" | "day" | "timezone">, calcEnd?: boolean) => number;
44
+ declare const getSlotFromDateId: (networkId: NetworkId, dateId: Pick<DateId, 'year' | 'month' | 'day' | 'timezone'>, calcEnd?: boolean) => number;
46
45
  //#endregion
47
46
  export { getTimestampFromSlot as _, getCalculatedSlotFromBlockTime as a, createIChainTip as b, getEpochFromSlot as c, getGenesis as d, getLastSlotOfEpoch as f, getSlotFromDateId as g, getShelley as h, getCalculatedEpochSlot as i, getEpochLength as l, getNumEpochBlocks as m, getCalculatedChainTip as n, getDateIdFromSlot as o, getNetworkMagic as p, getCalculatedEpoch as r, getDateIdFromTimestamp as s, getByron as t, getEpochStart as u, updateChainTip as v, GenesisStore as x, IChainTip as y };
48
- //# sourceMappingURL=chain-CXEvehB2.d.cts.map
47
+ //# sourceMappingURL=chain-DRRhGMxp.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chain-DRRhGMxp.d.mts","names":[],"sources":["../src/network/GenesisStore.ts","../src/types/IChainTip.ts","../src/chain.ts"],"mappings":";;;;cAqBa,cAAc,OAAO,WAAW;;;UCnB5B;EAEf,WAA4B;EAC5B,SAA4B;EAE5B;EACA;EAEA;EACA;EACA;EACA;EAEA;EACA;EACA;;cAGW,kBAAe,WAAe,qBAAmB;;;cCIjD,aAAU,WAAqB,cAAY;cAC3C,WAAQ,WAAuB,cAAY;cAC3C,aAAU,WAAqB,cAAY;cAC3C,kBAAe,WAAgB;cAC/B,iBAAc,WAAiB;cAC/B,oBAAiB,WAAc;cAuB/B,wBAAqB,WAAe;cAiBpC,uBAAoB,WAAe,WAAS;cAc5C,mBAAgB,WAAe,WAAS;cA6BxC,iCAA8B,WAAe,WAAS;cAmBtD,yBAAsB,WAAe;cAWrC,qBAAkB,IAAQ;cAmB1B,qBAAkB,IAAQ,WAAS;cAenC,gBAAa,IAAW,WAAS;EAE5C;EACA;;cA4BW,iBAAc,IAAU,WAAS,UAAY,WAAS,MAAQ,cAAY;cAoB1E,oBAAiB,WAAe,WAAS,gBAAgB,iCAAiC;cAO1F,yBAAsB,mBAAqB,iCAAiC;cAsC5E,oBAAiB,WACjB,WAAS,QACZ,KAAK,gDAA8C"}
@@ -1,7 +1,6 @@
1
- import { a as IShelley, n as IByron, r as IGenesisStore } from "./IGenesisStore-BsB4xkSW.mjs";
2
- import { t as DateId } from "./DateId-Bgaw8h3k.mjs";
3
- import { n as NetworkId } from "./NetworkId-BG6nkpb_.mjs";
4
-
1
+ import { a as IShelley, n as IByron, r as IGenesisStore } from "./IGenesisStore-DsIpICQ8.cjs";
2
+ import { t as DateId } from "./DateId-DpLkO3y9.cjs";
3
+ import { n as NetworkId } from "./NetworkId-B9JhuswJ.cjs";
5
4
  //#region src/network/GenesisStore.d.ts
6
5
  declare const GenesisStore: Record<NetworkId, IGenesisStore>;
7
6
  //#endregion
@@ -42,7 +41,7 @@ declare const getEpochStart: (id: NetworkId, epochNo: number) => {
42
41
  declare const updateChainTip: (id: NetworkId, chainTip: IChainTip, data: IChainTip) => IChainTip;
43
42
  declare const getDateIdFromSlot: (networkId: NetworkId, slotNo: number, userSelectedTimezone: string) => DateId;
44
43
  declare const getDateIdFromTimestamp: (timeStamp: number, userSelectedTimezone: string) => DateId;
45
- declare const getSlotFromDateId: (networkId: NetworkId, dateId: Pick<DateId, "year" | "month" | "day" | "timezone">, calcEnd?: boolean) => number;
44
+ declare const getSlotFromDateId: (networkId: NetworkId, dateId: Pick<DateId, 'year' | 'month' | 'day' | 'timezone'>, calcEnd?: boolean) => number;
46
45
  //#endregion
47
46
  export { getTimestampFromSlot as _, getCalculatedSlotFromBlockTime as a, createIChainTip as b, getEpochFromSlot as c, getGenesis as d, getLastSlotOfEpoch as f, getSlotFromDateId as g, getShelley as h, getCalculatedEpochSlot as i, getEpochLength as l, getNumEpochBlocks as m, getCalculatedChainTip as n, getDateIdFromSlot as o, getNetworkMagic as p, getCalculatedEpoch as r, getDateIdFromTimestamp as s, getByron as t, getEpochStart as u, updateChainTip as v, GenesisStore as x, IChainTip as y };
48
- //# sourceMappingURL=chain-q8sBB3TY.d.mts.map
47
+ //# sourceMappingURL=chain-DbsXl5Uh.d.cts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chain-DbsXl5Uh.d.cts","names":[],"sources":["../src/network/GenesisStore.ts","../src/types/IChainTip.ts","../src/chain.ts"],"mappings":";;;;cAqBa,cAAc,OAAO,WAAW;;;UCnB5B;EAEf,WAA4B;EAC5B,SAA4B;EAE5B;EACA;EAEA;EACA;EACA;EACA;EAEA;EACA;EACA;;cAGW,kBAAe,WAAe,qBAAmB;;;cCIjD,aAAU,WAAqB,cAAY;cAC3C,WAAQ,WAAuB,cAAY;cAC3C,aAAU,WAAqB,cAAY;cAC3C,kBAAe,WAAgB;cAC/B,iBAAc,WAAiB;cAC/B,oBAAiB,WAAc;cAuB/B,wBAAqB,WAAe;cAiBpC,uBAAoB,WAAe,WAAS;cAc5C,mBAAgB,WAAe,WAAS;cA6BxC,iCAA8B,WAAe,WAAS;cAmBtD,yBAAsB,WAAe;cAWrC,qBAAkB,IAAQ;cAmB1B,qBAAkB,IAAQ,WAAS;cAenC,gBAAa,IAAW,WAAS;EAE5C;EACA;;cA4BW,iBAAc,IAAU,WAAS,UAAY,WAAS,MAAQ,cAAY;cAoB1E,oBAAiB,WAAe,WAAS,gBAAgB,iCAAiC;cAO1F,yBAAsB,mBAAqB,iCAAiC;cAsC5E,oBAAiB,WACjB,WAAS,QACZ,KAAK,gDAA8C"}
package/dist/chain.cjs CHANGED
@@ -1,5 +1,5 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
- const require_GenesisStore = require("./GenesisStore-bmIOboUV.cjs");
2
+ const require_GenesisStore = require("./GenesisStore-DGnbeDqM.cjs");
3
3
  const require_types_NetworkId = require("./types/NetworkId.cjs");
4
4
  let _eternl_tools = require("@eternl/tools");
5
5
  //#region src/chain.ts
@@ -110,7 +110,8 @@ const updateChainTip = (id, chainTip, data) => {
110
110
  return chainTip;
111
111
  };
112
112
  const getDateIdFromSlot = (networkId, slotNo, userSelectedTimezone) => {
113
- return getDateIdFromTimestamp(getTimestampFromSlot(networkId, slotNo), userSelectedTimezone);
113
+ const timeStamp = getTimestampFromSlot(networkId, slotNo);
114
+ return getDateIdFromTimestamp(timeStamp, userSelectedTimezone);
114
115
  };
115
116
  const getDateIdFromTimestamp = (timeStamp, userSelectedTimezone) => {
116
117
  const cacheKey = `${timeStamp}_${userSelectedTimezone}`;
@@ -141,11 +142,13 @@ const getSlotFromDateId = (networkId, dateId, calcEnd = false) => {
141
142
  const year = dateId.year;
142
143
  const month = dateId.month - 1;
143
144
  let date;
144
- if (dateId.day === 0 && dateId.month === 0) if (calcEnd) date = /* @__PURE__ */ new Date(new Date(year + 1, 0, 1, 0, 0, 0).getTime() - 1e3);
145
- else date = new Date(new Date(year, 0, 1, 0, 0, 0).getTime());
146
- else if (dateId.day === 0) if (calcEnd) date = /* @__PURE__ */ new Date(new Date(year, month + 1, 1, 0, 0, 0).getTime() - 1e3);
147
- else date = new Date(new Date(year, month, 1, 0, 0, 0).getTime());
148
- else if (calcEnd) date = new Date(new Date(year, month, dateId.day, 0, 0, 0).getTime() + 86399 * 1e3);
145
+ if (dateId.day === 0 && dateId.month === 0) {
146
+ if (calcEnd) date = /* @__PURE__ */ new Date(new Date(year + 1, 0, 1, 0, 0, 0).getTime() - 1e3);
147
+ else date = new Date(new Date(year, 0, 1, 0, 0, 0).getTime());
148
+ } else if (dateId.day === 0) {
149
+ if (calcEnd) date = /* @__PURE__ */ new Date(new Date(year, month + 1, 1, 0, 0, 0).getTime() - 1e3);
150
+ else date = new Date(new Date(year, month, 1, 0, 0, 0).getTime());
151
+ } else if (calcEnd) date = new Date(new Date(year, month, dateId.day, 0, 0, 0).getTime() + 86399e3);
149
152
  else date = new Date(new Date(year, month, dateId.day, 0, 0, 0).getTime());
150
153
  date = (0, _eternl_tools.changeTimezone)(date, dateId.timezone);
151
154
  return getCalculatedSlotFromBlockTime(networkId, date.getTime());
@@ -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 { GenesisStore } from './network/GenesisStore'\nimport {\n type IByron,\n type IGenesisStore,\n type IShelley,\n} from './network/IGenesisStore'\nimport { type DateId } from './types/DateId'\nimport { type IChainTip } from './types/IChainTip'\nimport {\n type 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,qBAAAA,aAAa;AACtF,MAAa,YAAoB,cAAwCA,qBAAAA,aAAa,WAAW;AACjG,MAAa,cAAoB,cAAwCA,qBAAAA,aAAa,WAAW;AACjG,MAAa,mBAAoB,cAAwCA,qBAAAA,aAAa,WAAW,QAAQ;AACzG,MAAa,kBAAoB,cAAwCA,qBAAAA,aAAa,WAAW,QAAQ;AACzG,MAAa,qBAAoB,cAAwC,eAAe,UAAU,GAAGA,qBAAAA,aAAa,WAAW,QAAQ;AAErI,MAAM,iBAA2B,cAA8B;CAE7D,MAAM,QAAwB,SAAS,UAAU;CAEjD,MAAM,iBAAwB,KAAK,OAAA,GAAA,cAAA,MAAW,GAAG,IAAK;CACtD,MAAM,oBAAwBC,wBAAAA,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,SAAA,GAAA,cAAA,gBAA6C,MAAM,OAAO,SAAS;AAEnE,QAAO,+BAA+B,WAAW,KAAK,SAAS,CAAC"}
1
+ {"version":3,"file":"chain.cjs","names":["GenesisStore","now","networkShelleyTransitionEpoch","changeTimezone"],"sources":["../src/chain.ts"],"sourcesContent":["import {\n changeTimezone,\n now,\n} from '@eternl/tools'\n\nimport { GenesisStore } from './network/GenesisStore'\nimport {\n type IByron,\n type IGenesisStore,\n type IShelley,\n} from './network/IGenesisStore'\nimport { type DateId } from './types/DateId'\nimport { type IChainTip } from './types/IChainTip'\nimport {\n type 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/chain.d.cts CHANGED
@@ -1,2 +1,2 @@
1
- import { _ as getTimestampFromSlot, a as getCalculatedSlotFromBlockTime, c as getEpochFromSlot, d as getGenesis, f as getLastSlotOfEpoch, g as getSlotFromDateId, h as getShelley, i as getCalculatedEpochSlot, l as getEpochLength, m as getNumEpochBlocks, n as getCalculatedChainTip, o as getDateIdFromSlot, p as getNetworkMagic, r as getCalculatedEpoch, s as getDateIdFromTimestamp, t as getByron, u as getEpochStart, v as updateChainTip } from "./chain-CXEvehB2.cjs";
1
+ import { _ as getTimestampFromSlot, a as getCalculatedSlotFromBlockTime, c as getEpochFromSlot, d as getGenesis, f as getLastSlotOfEpoch, g as getSlotFromDateId, h as getShelley, i as getCalculatedEpochSlot, l as getEpochLength, m as getNumEpochBlocks, n as getCalculatedChainTip, o as getDateIdFromSlot, p as getNetworkMagic, r as getCalculatedEpoch, s as getDateIdFromTimestamp, t as getByron, u as getEpochStart, v as updateChainTip } from "./chain-DbsXl5Uh.cjs";
2
2
  export { getByron, getCalculatedChainTip, getCalculatedEpoch, getCalculatedEpochSlot, getCalculatedSlotFromBlockTime, getDateIdFromSlot, getDateIdFromTimestamp, getEpochFromSlot, getEpochLength, getEpochStart, getGenesis, getLastSlotOfEpoch, getNetworkMagic, getNumEpochBlocks, getShelley, getSlotFromDateId, getTimestampFromSlot, updateChainTip };
package/dist/chain.d.mts CHANGED
@@ -1,2 +1,2 @@
1
- import { _ as getTimestampFromSlot, a as getCalculatedSlotFromBlockTime, c as getEpochFromSlot, d as getGenesis, f as getLastSlotOfEpoch, g as getSlotFromDateId, h as getShelley, i as getCalculatedEpochSlot, l as getEpochLength, m as getNumEpochBlocks, n as getCalculatedChainTip, o as getDateIdFromSlot, p as getNetworkMagic, r as getCalculatedEpoch, s as getDateIdFromTimestamp, t as getByron, u as getEpochStart, v as updateChainTip } from "./chain-q8sBB3TY.mjs";
1
+ import { _ as getTimestampFromSlot, a as getCalculatedSlotFromBlockTime, c as getEpochFromSlot, d as getGenesis, f as getLastSlotOfEpoch, g as getSlotFromDateId, h as getShelley, i as getCalculatedEpochSlot, l as getEpochLength, m as getNumEpochBlocks, n as getCalculatedChainTip, o as getDateIdFromSlot, p as getNetworkMagic, r as getCalculatedEpoch, s as getDateIdFromTimestamp, t as getByron, u as getEpochStart, v as updateChainTip } from "./chain-DRRhGMxp.mjs";
2
2
  export { getByron, getCalculatedChainTip, getCalculatedEpoch, getCalculatedEpochSlot, getCalculatedSlotFromBlockTime, getDateIdFromSlot, getDateIdFromTimestamp, getEpochFromSlot, getEpochLength, getEpochStart, getGenesis, getLastSlotOfEpoch, getNetworkMagic, getNumEpochBlocks, getShelley, getSlotFromDateId, getTimestampFromSlot, updateChainTip };
package/dist/chain.mjs CHANGED
@@ -1,4 +1,4 @@
1
- import { t as GenesisStore } from "./GenesisStore-DtQdwsV9.mjs";
1
+ import { t as GenesisStore } from "./GenesisStore-CqCs2Yin.mjs";
2
2
  import { networkShelleyTransitionEpoch } from "./types/NetworkId.mjs";
3
3
  import { changeTimezone, now } from "@eternl/tools";
4
4
  //#region src/chain.ts
@@ -109,7 +109,8 @@ const updateChainTip = (id, chainTip, data) => {
109
109
  return chainTip;
110
110
  };
111
111
  const getDateIdFromSlot = (networkId, slotNo, userSelectedTimezone) => {
112
- return getDateIdFromTimestamp(getTimestampFromSlot(networkId, slotNo), userSelectedTimezone);
112
+ const timeStamp = getTimestampFromSlot(networkId, slotNo);
113
+ return getDateIdFromTimestamp(timeStamp, userSelectedTimezone);
113
114
  };
114
115
  const getDateIdFromTimestamp = (timeStamp, userSelectedTimezone) => {
115
116
  const cacheKey = `${timeStamp}_${userSelectedTimezone}`;
@@ -140,11 +141,13 @@ const getSlotFromDateId = (networkId, dateId, calcEnd = false) => {
140
141
  const year = dateId.year;
141
142
  const month = dateId.month - 1;
142
143
  let date;
143
- if (dateId.day === 0 && dateId.month === 0) if (calcEnd) date = /* @__PURE__ */ new Date(new Date(year + 1, 0, 1, 0, 0, 0).getTime() - 1e3);
144
- else date = new Date(new Date(year, 0, 1, 0, 0, 0).getTime());
145
- else if (dateId.day === 0) if (calcEnd) date = /* @__PURE__ */ new Date(new Date(year, month + 1, 1, 0, 0, 0).getTime() - 1e3);
146
- else date = new Date(new Date(year, month, 1, 0, 0, 0).getTime());
147
- else if (calcEnd) date = new Date(new Date(year, month, dateId.day, 0, 0, 0).getTime() + 86399 * 1e3);
144
+ if (dateId.day === 0 && dateId.month === 0) {
145
+ if (calcEnd) date = /* @__PURE__ */ new Date(new Date(year + 1, 0, 1, 0, 0, 0).getTime() - 1e3);
146
+ else date = new Date(new Date(year, 0, 1, 0, 0, 0).getTime());
147
+ } else if (dateId.day === 0) {
148
+ if (calcEnd) date = /* @__PURE__ */ new Date(new Date(year, month + 1, 1, 0, 0, 0).getTime() - 1e3);
149
+ else date = new Date(new Date(year, month, 1, 0, 0, 0).getTime());
150
+ } else if (calcEnd) date = new Date(new Date(year, month, dateId.day, 0, 0, 0).getTime() + 86399e3);
148
151
  else date = new Date(new Date(year, month, dateId.day, 0, 0, 0).getTime());
149
152
  date = changeTimezone(date, dateId.timezone);
150
153
  return getCalculatedSlotFromBlockTime(networkId, date.getTime());
@@ -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 { GenesisStore } from './network/GenesisStore'\nimport {\n type IByron,\n type IGenesisStore,\n type IShelley,\n} from './network/IGenesisStore'\nimport { type DateId } from './types/DateId'\nimport { type IChainTip } from './types/IChainTip'\nimport {\n type 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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"}
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 type IByron,\n type IGenesisStore,\n type IShelley,\n} from './network/IGenesisStore'\nimport { type DateId } from './types/DateId'\nimport { type IChainTip } from './types/IChainTip'\nimport {\n type 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.cjs CHANGED
@@ -1,5 +1,5 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
- const require_GenesisStore = require("./GenesisStore-bmIOboUV.cjs");
2
+ const require_GenesisStore = require("./GenesisStore-DGnbeDqM.cjs");
3
3
  const require_types_NetworkId = require("./types/NetworkId.cjs");
4
4
  const require_chain = require("./chain.cjs");
5
5
  require("./network/IGenesisStore.cjs");
package/dist/index.d.cts CHANGED
@@ -1,6 +1,6 @@
1
- import { a as IShelley, i as IProtocolConsts, n as IByron, r as IGenesisStore, t as IBlockVersionData } from "./IGenesisStore-HKK_EuKr.cjs";
2
- import { t as DateId } from "./DateId-DI1Q0_Pd.cjs";
3
- import { _ as networkStakeAddressPrefix, a as getNetworkDecimals, c as isSupportedNetworkId, d as networkCurrencyCode, f as networkCurrencySymbol, g as networkShelleyTransitionEpoch, h as networkIdx, i as getNetworkCurrencySymbol, l as isTestnetNetwork, m as networkIdList, n as NetworkId, o as getNetworkId, p as networkGroups, r as getNetworkCurrencyCode, s as isCustomNetwork, t as NETWORK_ID, u as networkAddressPrefix } from "./NetworkId-B8rRQja1.cjs";
4
- import { _ as getTimestampFromSlot, a as getCalculatedSlotFromBlockTime, b as createIChainTip, c as getEpochFromSlot, d as getGenesis, f as getLastSlotOfEpoch, g as getSlotFromDateId, h as getShelley, i as getCalculatedEpochSlot, l as getEpochLength, m as getNumEpochBlocks, n as getCalculatedChainTip, o as getDateIdFromSlot, p as getNetworkMagic, r as getCalculatedEpoch, s as getDateIdFromTimestamp, t as getByron, u as getEpochStart, v as updateChainTip, x as GenesisStore, y as IChainTip } from "./chain-CXEvehB2.cjs";
5
- import { n as IProtocolVersion, t as IEpochParams } from "./IEpochParams-CSxQMaRY.cjs";
1
+ import { a as IShelley, i as IProtocolConsts, n as IByron, r as IGenesisStore, t as IBlockVersionData } from "./IGenesisStore-DsIpICQ8.cjs";
2
+ import { t as DateId } from "./DateId-DpLkO3y9.cjs";
3
+ import { _ as networkStakeAddressPrefix, a as getNetworkDecimals, c as isSupportedNetworkId, d as networkCurrencyCode, f as networkCurrencySymbol, g as networkShelleyTransitionEpoch, h as networkIdx, i as getNetworkCurrencySymbol, l as isTestnetNetwork, m as networkIdList, n as NetworkId, o as getNetworkId, p as networkGroups, r as getNetworkCurrencyCode, s as isCustomNetwork, t as NETWORK_ID, u as networkAddressPrefix } from "./NetworkId-B9JhuswJ.cjs";
4
+ import { _ as getTimestampFromSlot, a as getCalculatedSlotFromBlockTime, b as createIChainTip, c as getEpochFromSlot, d as getGenesis, f as getLastSlotOfEpoch, g as getSlotFromDateId, h as getShelley, i as getCalculatedEpochSlot, l as getEpochLength, m as getNumEpochBlocks, n as getCalculatedChainTip, o as getDateIdFromSlot, p as getNetworkMagic, r as getCalculatedEpoch, s as getDateIdFromTimestamp, t as getByron, u as getEpochStart, v as updateChainTip, x as GenesisStore, y as IChainTip } from "./chain-DbsXl5Uh.cjs";
5
+ import { n as IProtocolVersion, t as IEpochParams } from "./IEpochParams-BFNd585A.cjs";
6
6
  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
@@ -1,6 +1,6 @@
1
- import { a as IShelley, i as IProtocolConsts, n as IByron, r as IGenesisStore, t as IBlockVersionData } from "./IGenesisStore-BsB4xkSW.mjs";
2
- import { t as DateId } from "./DateId-Bgaw8h3k.mjs";
3
- import { _ as networkStakeAddressPrefix, a as getNetworkDecimals, c as isSupportedNetworkId, d as networkCurrencyCode, f as networkCurrencySymbol, g as networkShelleyTransitionEpoch, h as networkIdx, i as getNetworkCurrencySymbol, l as isTestnetNetwork, m as networkIdList, n as NetworkId, o as getNetworkId, p as networkGroups, r as getNetworkCurrencyCode, s as isCustomNetwork, t as NETWORK_ID, u as networkAddressPrefix } from "./NetworkId-BG6nkpb_.mjs";
4
- import { _ as getTimestampFromSlot, a as getCalculatedSlotFromBlockTime, b as createIChainTip, c as getEpochFromSlot, d as getGenesis, f as getLastSlotOfEpoch, g as getSlotFromDateId, h as getShelley, i as getCalculatedEpochSlot, l as getEpochLength, m as getNumEpochBlocks, n as getCalculatedChainTip, o as getDateIdFromSlot, p as getNetworkMagic, r as getCalculatedEpoch, s as getDateIdFromTimestamp, t as getByron, u as getEpochStart, v as updateChainTip, x as GenesisStore, y as IChainTip } from "./chain-q8sBB3TY.mjs";
5
- import { n as IProtocolVersion, t as IEpochParams } from "./IEpochParams-CH8-YLax.mjs";
1
+ import { a as IShelley, i as IProtocolConsts, n as IByron, r as IGenesisStore, t as IBlockVersionData } from "./IGenesisStore-DsIpICQ8.mjs";
2
+ import { t as DateId } from "./DateId-DpLkO3y9.mjs";
3
+ import { _ as networkStakeAddressPrefix, a as getNetworkDecimals, c as isSupportedNetworkId, d as networkCurrencyCode, f as networkCurrencySymbol, g as networkShelleyTransitionEpoch, h as networkIdx, i as getNetworkCurrencySymbol, l as isTestnetNetwork, m as networkIdList, n as NetworkId, o as getNetworkId, p as networkGroups, r as getNetworkCurrencyCode, s as isCustomNetwork, t as NETWORK_ID, u as networkAddressPrefix } from "./NetworkId-B9JhuswJ.mjs";
4
+ import { _ as getTimestampFromSlot, a as getCalculatedSlotFromBlockTime, b as createIChainTip, c as getEpochFromSlot, d as getGenesis, f as getLastSlotOfEpoch, g as getSlotFromDateId, h as getShelley, i as getCalculatedEpochSlot, l as getEpochLength, m as getNumEpochBlocks, n as getCalculatedChainTip, o as getDateIdFromSlot, p as getNetworkMagic, r as getCalculatedEpoch, s as getDateIdFromTimestamp, t as getByron, u as getEpochStart, v as updateChainTip, x as GenesisStore, y as IChainTip } from "./chain-DRRhGMxp.mjs";
5
+ import { n as IProtocolVersion, t as IEpochParams } from "./IEpochParams-BFNd585A.mjs";
6
6
  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.mjs CHANGED
@@ -1,4 +1,4 @@
1
- import { t as GenesisStore } from "./GenesisStore-DtQdwsV9.mjs";
1
+ import { t as GenesisStore } from "./GenesisStore-CqCs2Yin.mjs";
2
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 "./network/IGenesisStore.mjs";
@@ -1,3 +1,3 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
- const require_GenesisStore = require("../GenesisStore-bmIOboUV.cjs");
2
+ const require_GenesisStore = require("../GenesisStore-DGnbeDqM.cjs");
3
3
  exports.GenesisStore = require_GenesisStore.GenesisStore;
@@ -1,2 +1,2 @@
1
- import { x as GenesisStore } from "../chain-CXEvehB2.cjs";
1
+ import { x as GenesisStore } from "../chain-DbsXl5Uh.cjs";
2
2
  export { GenesisStore };
@@ -1,2 +1,2 @@
1
- import { x as GenesisStore } from "../chain-q8sBB3TY.mjs";
1
+ import { x as GenesisStore } from "../chain-DRRhGMxp.mjs";
2
2
  export { GenesisStore };
@@ -1,2 +1,2 @@
1
- import { t as GenesisStore } from "../GenesisStore-DtQdwsV9.mjs";
1
+ import { t as GenesisStore } from "../GenesisStore-CqCs2Yin.mjs";
2
2
  export { GenesisStore };
@@ -1,2 +1,2 @@
1
- import { a as IShelley, i as IProtocolConsts, n as IByron, r as IGenesisStore, t as IBlockVersionData } from "../IGenesisStore-HKK_EuKr.cjs";
1
+ import { a as IShelley, i as IProtocolConsts, n as IByron, r as IGenesisStore, t as IBlockVersionData } from "../IGenesisStore-DsIpICQ8.cjs";
2
2
  export { IBlockVersionData, IByron, IGenesisStore, IProtocolConsts, IShelley };
@@ -1,2 +1,2 @@
1
- import { a as IShelley, i as IProtocolConsts, n as IByron, r as IGenesisStore, t as IBlockVersionData } from "../IGenesisStore-BsB4xkSW.mjs";
1
+ import { a as IShelley, i as IProtocolConsts, n as IByron, r as IGenesisStore, t as IBlockVersionData } from "../IGenesisStore-DsIpICQ8.mjs";
2
2
  export { IBlockVersionData, IByron, IGenesisStore, IProtocolConsts, IShelley };
@@ -1,2 +1,2 @@
1
- import { t as DateId } from "../DateId-DI1Q0_Pd.cjs";
1
+ import { t as DateId } from "../DateId-DpLkO3y9.cjs";
2
2
  export { DateId };
@@ -1,2 +1,2 @@
1
- import { t as DateId } from "../DateId-Bgaw8h3k.mjs";
1
+ import { t as DateId } from "../DateId-DpLkO3y9.mjs";
2
2
  export { DateId };
@@ -1 +1 @@
1
- {"version":3,"file":"IChainTip.cjs","names":[],"sources":["../../src/types/IChainTip.ts"],"sourcesContent":["import { type NetworkId } from '../index'\n\nexport interface IChainTip {\n\n networkId: NetworkId | null\n network: NetworkId | null\n\n blockNo: number\n slotNo: number\n\n epochNo: number\n epochSlot: number\n epochSlots: number\n epochPercent: number\n\n syncProgress: number\n onTip: boolean\n serverTime: number\n}\n\nexport const createIChainTip = (networkId: NetworkId | null): IChainTip => {\n\n return {\n\n networkId: networkId,\n network: networkId,\n\n blockNo: 0,\n slotNo: 0,\n\n epochNo: 0,\n epochSlot: 0,\n epochSlots: 0,\n epochPercent: 0.0,\n\n syncProgress: 0.0,\n onTip: false,\n serverTime: 0\n }\n}\n"],"mappings":";;AAoBA,MAAa,mBAAmB,cAA2C;AAEzE,QAAO;EAEqB;EAC1B,SAA0B;EAE1B,SAA0B;EAC1B,QAA0B;EAE1B,SAA0B;EAC1B,WAA0B;EAC1B,YAA0B;EAC1B,cAA0B;EAE1B,cAA0B;EAC1B,OAA0B;EAC1B,YAA0B;EAC3B"}
1
+ {"version":3,"file":"IChainTip.cjs","names":[],"sources":["../../src/types/IChainTip.ts"],"sourcesContent":["import { type NetworkId } from '../index'\n\nexport interface IChainTip {\n\n networkId: NetworkId | null\n network: NetworkId | null\n\n blockNo: number\n slotNo: number\n\n epochNo: number\n epochSlot: number\n epochSlots: number\n epochPercent: number\n\n syncProgress: number\n onTip: boolean\n serverTime: number\n}\n\nexport const createIChainTip = (networkId: NetworkId | null): IChainTip => {\n\n return {\n\n networkId: networkId,\n network: networkId,\n\n blockNo: 0,\n slotNo: 0,\n\n epochNo: 0,\n epochSlot: 0,\n epochSlots: 0,\n epochPercent: 0.0,\n\n syncProgress: 0.0,\n onTip: false,\n serverTime: 0\n }\n}\n"],"mappings":";;AAoBA,MAAa,mBAAmB,cAA2C;CAEzE,OAAO;EAEqB;EAC1B,SAA0B;EAE1B,SAA0B;EAC1B,QAA0B;EAE1B,SAA0B;EAC1B,WAA0B;EAC1B,YAA0B;EAC1B,cAA0B;EAE1B,cAA0B;EAC1B,OAA0B;EAC1B,YAA0B;CAC5B;AACF"}
@@ -1,2 +1,2 @@
1
- import { b as createIChainTip, y as IChainTip } from "../chain-CXEvehB2.cjs";
1
+ import { b as createIChainTip, y as IChainTip } from "../chain-DbsXl5Uh.cjs";
2
2
  export { IChainTip, createIChainTip };
@@ -1,2 +1,2 @@
1
- import { b as createIChainTip, y as IChainTip } from "../chain-q8sBB3TY.mjs";
1
+ import { b as createIChainTip, y as IChainTip } from "../chain-DRRhGMxp.mjs";
2
2
  export { IChainTip, createIChainTip };
@@ -1 +1 @@
1
- {"version":3,"file":"IChainTip.mjs","names":[],"sources":["../../src/types/IChainTip.ts"],"sourcesContent":["import { type NetworkId } from '../index'\n\nexport interface IChainTip {\n\n networkId: NetworkId | null\n network: NetworkId | null\n\n blockNo: number\n slotNo: number\n\n epochNo: number\n epochSlot: number\n epochSlots: number\n epochPercent: number\n\n syncProgress: number\n onTip: boolean\n serverTime: number\n}\n\nexport const createIChainTip = (networkId: NetworkId | null): IChainTip => {\n\n return {\n\n networkId: networkId,\n network: networkId,\n\n blockNo: 0,\n slotNo: 0,\n\n epochNo: 0,\n epochSlot: 0,\n epochSlots: 0,\n epochPercent: 0.0,\n\n syncProgress: 0.0,\n onTip: false,\n serverTime: 0\n }\n}\n"],"mappings":";AAoBA,MAAa,mBAAmB,cAA2C;AAEzE,QAAO;EAEqB;EAC1B,SAA0B;EAE1B,SAA0B;EAC1B,QAA0B;EAE1B,SAA0B;EAC1B,WAA0B;EAC1B,YAA0B;EAC1B,cAA0B;EAE1B,cAA0B;EAC1B,OAA0B;EAC1B,YAA0B;EAC3B"}
1
+ {"version":3,"file":"IChainTip.mjs","names":[],"sources":["../../src/types/IChainTip.ts"],"sourcesContent":["import { type NetworkId } from '../index'\n\nexport interface IChainTip {\n\n networkId: NetworkId | null\n network: NetworkId | null\n\n blockNo: number\n slotNo: number\n\n epochNo: number\n epochSlot: number\n epochSlots: number\n epochPercent: number\n\n syncProgress: number\n onTip: boolean\n serverTime: number\n}\n\nexport const createIChainTip = (networkId: NetworkId | null): IChainTip => {\n\n return {\n\n networkId: networkId,\n network: networkId,\n\n blockNo: 0,\n slotNo: 0,\n\n epochNo: 0,\n epochSlot: 0,\n epochSlots: 0,\n epochPercent: 0.0,\n\n syncProgress: 0.0,\n onTip: false,\n serverTime: 0\n }\n}\n"],"mappings":";AAoBA,MAAa,mBAAmB,cAA2C;CAEzE,OAAO;EAEqB;EAC1B,SAA0B;EAE1B,SAA0B;EAC1B,QAA0B;EAE1B,SAA0B;EAC1B,WAA0B;EAC1B,YAA0B;EAC1B,cAA0B;EAE1B,cAA0B;EAC1B,OAA0B;EAC1B,YAA0B;CAC5B;AACF"}
@@ -1,2 +1,2 @@
1
- import { n as IProtocolVersion, t as IEpochParams } from "../IEpochParams-CSxQMaRY.cjs";
1
+ import { n as IProtocolVersion, t as IEpochParams } from "../IEpochParams-BFNd585A.cjs";
2
2
  export { IEpochParams, IProtocolVersion };
@@ -1,2 +1,2 @@
1
- import { n as IProtocolVersion, t as IEpochParams } from "../IEpochParams-CH8-YLax.mjs";
1
+ import { n as IProtocolVersion, t as IEpochParams } from "../IEpochParams-BFNd585A.mjs";
2
2
  export { IEpochParams, IProtocolVersion };
@@ -1 +1 @@
1
- {"version":3,"file":"NetworkId.cjs","names":[],"sources":["../../src/types/NetworkId.ts"],"sourcesContent":["export const NETWORK_ID = {\n\n MAINNET: 'mainnet',\n GUILD: 'guild',\n SANCHO: 'sancho',\n PREPROD: 'preprod',\n PREVIEW: 'preview',\n AFVT: 'afvt',\n AFVM: 'afvm',\n AFPT: 'afpt',\n AFPM: 'afpm'\n} as const\n\nexport type NetworkId = typeof NETWORK_ID[keyof typeof NETWORK_ID]\n\nexport const networkIdList = <NetworkId[]>[\n NETWORK_ID.MAINNET,\n NETWORK_ID.PREPROD,\n NETWORK_ID.PREVIEW,\n NETWORK_ID.GUILD,\n NETWORK_ID.SANCHO,\n NETWORK_ID.AFVT,\n NETWORK_ID.AFVM,\n NETWORK_ID.AFPT,\n NETWORK_ID.AFPM\n]\n\nexport const networkIdx: Record<NetworkId, number> = {\n\n [NETWORK_ID.MAINNET]: 0,\n [NETWORK_ID.SANCHO]: 1,\n [NETWORK_ID.GUILD]: 2,\n [NETWORK_ID.PREPROD]: 4,\n [NETWORK_ID.PREVIEW]: 5,\n [NETWORK_ID.AFVT]: 6,\n [NETWORK_ID.AFVM]: 7,\n [NETWORK_ID.AFPT]: 8,\n [NETWORK_ID.AFPM]: 9,\n}\n\nexport const networkGroups: Record<string, NetworkId[]> = {\n\n Cardano: [ NETWORK_ID.MAINNET, NETWORK_ID.PREPROD, NETWORK_ID.PREVIEW, NETWORK_ID.GUILD, NETWORK_ID.SANCHO ],\n APEX: [ NETWORK_ID.AFVT, NETWORK_ID.AFVM, NETWORK_ID.AFPT, NETWORK_ID.AFPM ],\n}\n\nexport const networkShelleyTransitionEpoch: Record<NetworkId, number> = {\n\n [NETWORK_ID.MAINNET]: 208,\n [NETWORK_ID.SANCHO]: 0,\n [NETWORK_ID.GUILD]: 2,\n [NETWORK_ID.PREPROD]: 4,\n [NETWORK_ID.PREVIEW]: 0,\n [NETWORK_ID.AFVT]: 2,\n [NETWORK_ID.AFVM]: 2,\n [NETWORK_ID.AFPT]: 0,\n [NETWORK_ID.AFPM]: 2\n}\n\nexport const networkAddressPrefix: Record<NetworkId, string> = {\n\n [NETWORK_ID.MAINNET]: 'addr',\n [NETWORK_ID.SANCHO]: 'addr_test',\n [NETWORK_ID.GUILD]: 'addr_test',\n [NETWORK_ID.PREPROD]: 'addr_test',\n [NETWORK_ID.PREVIEW]: 'addr_test',\n [NETWORK_ID.AFVT]: 'addr',\n [NETWORK_ID.AFVM]: 'addr',\n [NETWORK_ID.AFPT]: 'addr_test',\n [NETWORK_ID.AFPM]: 'addr'\n}\n\nexport const networkStakeAddressPrefix: Record<NetworkId, string> = {\n\n [NETWORK_ID.MAINNET]: 'stake',\n [NETWORK_ID.SANCHO]: 'stake_test',\n [NETWORK_ID.GUILD]: 'stake_test',\n [NETWORK_ID.PREPROD]: 'stake_test',\n [NETWORK_ID.PREVIEW]: 'stake_test',\n [NETWORK_ID.AFVT]: 'stake',\n [NETWORK_ID.AFVM]: 'stake',\n [NETWORK_ID.AFPT]: 'stake_test',\n [NETWORK_ID.AFPM]: 'stake'\n}\n\nexport const networkCurrencyCode: Record<NetworkId, string> = {\n\n [NETWORK_ID.MAINNET]: 'ADA',\n [NETWORK_ID.SANCHO]: 'tADA',\n [NETWORK_ID.GUILD]: 'tADA',\n [NETWORK_ID.PREPROD]: 'tADA',\n [NETWORK_ID.PREVIEW]: 'tADA',\n [NETWORK_ID.AFVT]: 'tAP3X',\n [NETWORK_ID.AFVM]: 'AP3X',\n [NETWORK_ID.AFPT]: 'tAP3X',\n [NETWORK_ID.AFPM]: 'AP3X'\n}\n\nexport const networkCurrencySymbol: Record<NetworkId, string> = {\n\n [NETWORK_ID.MAINNET]: '₳',\n [NETWORK_ID.SANCHO]: 't₳',\n [NETWORK_ID.GUILD]: 't₳',\n [NETWORK_ID.PREPROD]: 't₳',\n [NETWORK_ID.PREVIEW]: 't₳',\n [NETWORK_ID.AFVT]: 'tÂ',\n [NETWORK_ID.AFVM]: 'Â',\n [NETWORK_ID.AFPT]: 'tÂ',\n [NETWORK_ID.AFPM]: 'Â'\n}\n\nexport const isSupportedNetworkId = (id?: string | null): id is NetworkId => networkIdList.includes(id as NetworkId)\n\nexport const getNetworkId = (id: string): number => {\n\n switch (id) {\n\n case NETWORK_ID.MAINNET: return 1\n case NETWORK_ID.SANCHO: return 0\n case NETWORK_ID.GUILD: return 0\n case NETWORK_ID.PREPROD: return 0\n case NETWORK_ID.PREVIEW: return 0\n case NETWORK_ID.AFVT: return 1\n case NETWORK_ID.AFVM: return 1\n case NETWORK_ID.AFPT: return 0\n case NETWORK_ID.AFPM: return 1\n }\n\n throw new Error('Error: INetwork.getNetworkId: unknown network: ' + id)\n}\n\nexport const getNetworkDecimals = (id: NetworkId): number => {\n\n switch (id) {\n\n case NETWORK_ID.SANCHO: return 6\n default: return 6\n }\n}\n\nexport const isTestnetNetwork = (networkId: NetworkId): boolean => {\n\n switch (networkId) {\n\n case NETWORK_ID.MAINNET: return false\n case NETWORK_ID.GUILD: return true\n case NETWORK_ID.SANCHO: return true\n case NETWORK_ID.PREPROD: return true\n case NETWORK_ID.PREVIEW: return true\n case NETWORK_ID.AFVT: return true\n case NETWORK_ID.AFVM: return false\n case NETWORK_ID.AFPT: return true\n case NETWORK_ID.AFPM: return false\n default: return false\n }\n}\n\n//@deprecated\nexport const isCustomNetwork = (networkId: NetworkId): boolean => !isTestnetNetwork(networkId) && networkId !== NETWORK_ID.MAINNET\n\nexport const getNetworkCurrencyCode = (id: NetworkId): string => networkCurrencyCode[id] || '-'\nexport const getNetworkCurrencySymbol = (id: NetworkId): string => networkCurrencySymbol[id] || '?'\n"],"mappings":"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"}
1
+ {"version":3,"file":"NetworkId.cjs","names":[],"sources":["../../src/types/NetworkId.ts"],"sourcesContent":["export const NETWORK_ID = {\n\n MAINNET: 'mainnet',\n GUILD: 'guild',\n SANCHO: 'sancho',\n PREPROD: 'preprod',\n PREVIEW: 'preview',\n AFVT: 'afvt',\n AFVM: 'afvm',\n AFPT: 'afpt',\n AFPM: 'afpm'\n} as const\n\nexport type NetworkId = typeof NETWORK_ID[keyof typeof NETWORK_ID]\n\nexport const networkIdList = <NetworkId[]>[\n NETWORK_ID.MAINNET,\n NETWORK_ID.PREPROD,\n NETWORK_ID.PREVIEW,\n NETWORK_ID.GUILD,\n NETWORK_ID.SANCHO,\n NETWORK_ID.AFVT,\n NETWORK_ID.AFVM,\n NETWORK_ID.AFPT,\n NETWORK_ID.AFPM\n]\n\nexport const networkIdx: Record<NetworkId, number> = {\n\n [NETWORK_ID.MAINNET]: 0,\n [NETWORK_ID.SANCHO]: 1,\n [NETWORK_ID.GUILD]: 2,\n [NETWORK_ID.PREPROD]: 4,\n [NETWORK_ID.PREVIEW]: 5,\n [NETWORK_ID.AFVT]: 6,\n [NETWORK_ID.AFVM]: 7,\n [NETWORK_ID.AFPT]: 8,\n [NETWORK_ID.AFPM]: 9,\n}\n\nexport const networkGroups: Record<string, NetworkId[]> = {\n\n Cardano: [ NETWORK_ID.MAINNET, NETWORK_ID.PREPROD, NETWORK_ID.PREVIEW, NETWORK_ID.GUILD, NETWORK_ID.SANCHO ],\n APEX: [ NETWORK_ID.AFVT, NETWORK_ID.AFVM, NETWORK_ID.AFPT, NETWORK_ID.AFPM ],\n}\n\nexport const networkShelleyTransitionEpoch: Record<NetworkId, number> = {\n\n [NETWORK_ID.MAINNET]: 208,\n [NETWORK_ID.SANCHO]: 0,\n [NETWORK_ID.GUILD]: 2,\n [NETWORK_ID.PREPROD]: 4,\n [NETWORK_ID.PREVIEW]: 0,\n [NETWORK_ID.AFVT]: 2,\n [NETWORK_ID.AFVM]: 2,\n [NETWORK_ID.AFPT]: 0,\n [NETWORK_ID.AFPM]: 2\n}\n\nexport const networkAddressPrefix: Record<NetworkId, string> = {\n\n [NETWORK_ID.MAINNET]: 'addr',\n [NETWORK_ID.SANCHO]: 'addr_test',\n [NETWORK_ID.GUILD]: 'addr_test',\n [NETWORK_ID.PREPROD]: 'addr_test',\n [NETWORK_ID.PREVIEW]: 'addr_test',\n [NETWORK_ID.AFVT]: 'addr',\n [NETWORK_ID.AFVM]: 'addr',\n [NETWORK_ID.AFPT]: 'addr_test',\n [NETWORK_ID.AFPM]: 'addr'\n}\n\nexport const networkStakeAddressPrefix: Record<NetworkId, string> = {\n\n [NETWORK_ID.MAINNET]: 'stake',\n [NETWORK_ID.SANCHO]: 'stake_test',\n [NETWORK_ID.GUILD]: 'stake_test',\n [NETWORK_ID.PREPROD]: 'stake_test',\n [NETWORK_ID.PREVIEW]: 'stake_test',\n [NETWORK_ID.AFVT]: 'stake',\n [NETWORK_ID.AFVM]: 'stake',\n [NETWORK_ID.AFPT]: 'stake_test',\n [NETWORK_ID.AFPM]: 'stake'\n}\n\nexport const networkCurrencyCode: Record<NetworkId, string> = {\n\n [NETWORK_ID.MAINNET]: 'ADA',\n [NETWORK_ID.SANCHO]: 'tADA',\n [NETWORK_ID.GUILD]: 'tADA',\n [NETWORK_ID.PREPROD]: 'tADA',\n [NETWORK_ID.PREVIEW]: 'tADA',\n [NETWORK_ID.AFVT]: 'tAP3X',\n [NETWORK_ID.AFVM]: 'AP3X',\n [NETWORK_ID.AFPT]: 'tAP3X',\n [NETWORK_ID.AFPM]: 'AP3X'\n}\n\nexport const networkCurrencySymbol: Record<NetworkId, string> = {\n\n [NETWORK_ID.MAINNET]: '₳',\n [NETWORK_ID.SANCHO]: 't₳',\n [NETWORK_ID.GUILD]: 't₳',\n [NETWORK_ID.PREPROD]: 't₳',\n [NETWORK_ID.PREVIEW]: 't₳',\n [NETWORK_ID.AFVT]: 'tÂ',\n [NETWORK_ID.AFVM]: 'Â',\n [NETWORK_ID.AFPT]: 'tÂ',\n [NETWORK_ID.AFPM]: 'Â'\n}\n\nexport const isSupportedNetworkId = (id?: string | null): id is NetworkId => networkIdList.includes(id as NetworkId)\n\nexport const getNetworkId = (id: string): number => {\n\n switch (id) {\n\n case NETWORK_ID.MAINNET: return 1\n case NETWORK_ID.SANCHO: return 0\n case NETWORK_ID.GUILD: return 0\n case NETWORK_ID.PREPROD: return 0\n case NETWORK_ID.PREVIEW: return 0\n case NETWORK_ID.AFVT: return 1\n case NETWORK_ID.AFVM: return 1\n case NETWORK_ID.AFPT: return 0\n case NETWORK_ID.AFPM: return 1\n }\n\n throw new Error('Error: INetwork.getNetworkId: unknown network: ' + id)\n}\n\nexport const getNetworkDecimals = (id: NetworkId): number => {\n\n switch (id) {\n\n case NETWORK_ID.SANCHO: return 6\n default: return 6\n }\n}\n\nexport const isTestnetNetwork = (networkId: NetworkId): boolean => {\n\n switch (networkId) {\n\n case NETWORK_ID.MAINNET: return false\n case NETWORK_ID.GUILD: return true\n case NETWORK_ID.SANCHO: return true\n case NETWORK_ID.PREPROD: return true\n case NETWORK_ID.PREVIEW: return true\n case NETWORK_ID.AFVT: return true\n case NETWORK_ID.AFVM: return false\n case NETWORK_ID.AFPT: return true\n case NETWORK_ID.AFPM: return false\n default: return false\n }\n}\n\n//@deprecated\nexport const isCustomNetwork = (networkId: NetworkId): boolean => !isTestnetNetwork(networkId) && networkId !== NETWORK_ID.MAINNET\n\nexport const getNetworkCurrencyCode = (id: NetworkId): string => networkCurrencyCode[id] || '-'\nexport const getNetworkCurrencySymbol = (id: NetworkId): string => networkCurrencySymbol[id] || '?'\n"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- import { _ as networkStakeAddressPrefix, a as getNetworkDecimals, c as isSupportedNetworkId, d as networkCurrencyCode, f as networkCurrencySymbol, g as networkShelleyTransitionEpoch, h as networkIdx, i as getNetworkCurrencySymbol, l as isTestnetNetwork, m as networkIdList, n as NetworkId, o as getNetworkId, p as networkGroups, r as getNetworkCurrencyCode, s as isCustomNetwork, t as NETWORK_ID, u as networkAddressPrefix } from "../NetworkId-B8rRQja1.cjs";
1
+ import { _ as networkStakeAddressPrefix, a as getNetworkDecimals, c as isSupportedNetworkId, d as networkCurrencyCode, f as networkCurrencySymbol, g as networkShelleyTransitionEpoch, h as networkIdx, i as getNetworkCurrencySymbol, l as isTestnetNetwork, m as networkIdList, n as NetworkId, o as getNetworkId, p as networkGroups, r as getNetworkCurrencyCode, s as isCustomNetwork, t as NETWORK_ID, u as networkAddressPrefix } from "../NetworkId-B9JhuswJ.cjs";
2
2
  export { NETWORK_ID, NetworkId, getNetworkCurrencyCode, getNetworkCurrencySymbol, getNetworkDecimals, getNetworkId, isCustomNetwork, isSupportedNetworkId, isTestnetNetwork, networkAddressPrefix, networkCurrencyCode, networkCurrencySymbol, networkGroups, networkIdList, networkIdx, networkShelleyTransitionEpoch, networkStakeAddressPrefix };
@@ -1,2 +1,2 @@
1
- import { _ as networkStakeAddressPrefix, a as getNetworkDecimals, c as isSupportedNetworkId, d as networkCurrencyCode, f as networkCurrencySymbol, g as networkShelleyTransitionEpoch, h as networkIdx, i as getNetworkCurrencySymbol, l as isTestnetNetwork, m as networkIdList, n as NetworkId, o as getNetworkId, p as networkGroups, r as getNetworkCurrencyCode, s as isCustomNetwork, t as NETWORK_ID, u as networkAddressPrefix } from "../NetworkId-BG6nkpb_.mjs";
1
+ import { _ as networkStakeAddressPrefix, a as getNetworkDecimals, c as isSupportedNetworkId, d as networkCurrencyCode, f as networkCurrencySymbol, g as networkShelleyTransitionEpoch, h as networkIdx, i as getNetworkCurrencySymbol, l as isTestnetNetwork, m as networkIdList, n as NetworkId, o as getNetworkId, p as networkGroups, r as getNetworkCurrencyCode, s as isCustomNetwork, t as NETWORK_ID, u as networkAddressPrefix } from "../NetworkId-B9JhuswJ.mjs";
2
2
  export { NETWORK_ID, NetworkId, getNetworkCurrencyCode, getNetworkCurrencySymbol, getNetworkDecimals, getNetworkId, isCustomNetwork, isSupportedNetworkId, isTestnetNetwork, networkAddressPrefix, networkCurrencyCode, networkCurrencySymbol, networkGroups, networkIdList, networkIdx, networkShelleyTransitionEpoch, networkStakeAddressPrefix };