@eternl/network-id 0.10.22 → 0.10.24

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 (76) hide show
  1. package/dist/DateId-Bgaw8h3k.d.mts +10 -0
  2. package/dist/DateId-Bgaw8h3k.d.mts.map +1 -0
  3. package/dist/DateId-DI1Q0_Pd.d.cts +10 -0
  4. package/dist/DateId-DI1Q0_Pd.d.cts.map +1 -0
  5. package/dist/{shelley-DT0SWnc1.mjs → GenesisStore-DtQdwsV9.mjs} +74 -54
  6. package/dist/GenesisStore-DtQdwsV9.mjs.map +1 -0
  7. package/dist/{shelley-C52dVk7F.cjs → GenesisStore-bmIOboUV.cjs} +78 -161
  8. package/dist/GenesisStore-bmIOboUV.cjs.map +1 -0
  9. package/dist/IEpochParams-CH8-YLax.d.mts +24 -0
  10. package/dist/IEpochParams-CH8-YLax.d.mts.map +1 -0
  11. package/dist/IEpochParams-CSxQMaRY.d.cts +24 -0
  12. package/dist/IEpochParams-CSxQMaRY.d.cts.map +1 -0
  13. package/dist/IGenesisStore-BsB4xkSW.d.mts +37 -0
  14. package/dist/IGenesisStore-BsB4xkSW.d.mts.map +1 -0
  15. package/dist/IGenesisStore-HKK_EuKr.d.cts +37 -0
  16. package/dist/IGenesisStore-HKK_EuKr.d.cts.map +1 -0
  17. package/dist/NetworkId-B8rRQja1.d.cts +31 -0
  18. package/dist/NetworkId-B8rRQja1.d.cts.map +1 -0
  19. package/dist/NetworkId-BG6nkpb_.d.mts +31 -0
  20. package/dist/NetworkId-BG6nkpb_.d.mts.map +1 -0
  21. package/dist/chain-CXEvehB2.d.cts +48 -0
  22. package/dist/chain-CXEvehB2.d.cts.map +1 -0
  23. package/dist/chain-q8sBB3TY.d.mts +48 -0
  24. package/dist/chain-q8sBB3TY.d.mts.map +1 -0
  25. package/dist/chain.cjs +10 -11
  26. package/dist/chain.cjs.map +1 -1
  27. package/dist/chain.d.cts +2 -30
  28. package/dist/chain.d.mts +2 -30
  29. package/dist/chain.mjs +2 -3
  30. package/dist/chain.mjs.map +1 -1
  31. package/dist/index.cjs +10 -8
  32. package/dist/index.d.cts +5 -7
  33. package/dist/index.d.mts +5 -7
  34. package/dist/index.mjs +5 -3
  35. package/dist/network/GenesisStore.cjs +3 -46
  36. package/dist/network/GenesisStore.d.cts +2 -8
  37. package/dist/network/GenesisStore.d.mts +2 -8
  38. package/dist/network/GenesisStore.mjs +1 -44
  39. package/dist/network/IGenesisStore.d.cts +2 -37
  40. package/dist/network/IGenesisStore.d.mts +2 -37
  41. package/dist/network/IGenesisStore.mjs +1 -1
  42. package/dist/types/DateId.d.cts +2 -10
  43. package/dist/types/DateId.d.mts +2 -10
  44. package/dist/types/DateId.mjs +1 -1
  45. package/dist/types/IChainTip.cjs +2 -3
  46. package/dist/types/IChainTip.cjs.map +1 -1
  47. package/dist/types/IChainTip.d.cts +2 -20
  48. package/dist/types/IChainTip.d.mts +2 -20
  49. package/dist/types/IChainTip.mjs +1 -1
  50. package/dist/types/IEpochParams.d.cts +2 -24
  51. package/dist/types/IEpochParams.d.mts +2 -24
  52. package/dist/types/IEpochParams.mjs +1 -1
  53. package/dist/types/NetworkId.cjs +2 -3
  54. package/dist/types/NetworkId.cjs.map +1 -1
  55. package/dist/types/NetworkId.d.cts +2 -31
  56. package/dist/types/NetworkId.d.mts +2 -31
  57. package/dist/types/NetworkId.mjs +1 -1
  58. package/package.json +2 -2
  59. package/dist/chain.d.cts.map +0 -1
  60. package/dist/chain.d.mts.map +0 -1
  61. package/dist/network/GenesisStore.cjs.map +0 -1
  62. package/dist/network/GenesisStore.d.cts.map +0 -1
  63. package/dist/network/GenesisStore.d.mts.map +0 -1
  64. package/dist/network/GenesisStore.mjs.map +0 -1
  65. package/dist/network/IGenesisStore.d.cts.map +0 -1
  66. package/dist/network/IGenesisStore.d.mts.map +0 -1
  67. package/dist/shelley-C52dVk7F.cjs.map +0 -1
  68. package/dist/shelley-DT0SWnc1.mjs.map +0 -1
  69. package/dist/types/DateId.d.cts.map +0 -1
  70. package/dist/types/DateId.d.mts.map +0 -1
  71. package/dist/types/IChainTip.d.cts.map +0 -1
  72. package/dist/types/IChainTip.d.mts.map +0 -1
  73. package/dist/types/IEpochParams.d.cts.map +0 -1
  74. package/dist/types/IEpochParams.d.mts.map +0 -1
  75. package/dist/types/NetworkId.d.cts.map +0 -1
  76. package/dist/types/NetworkId.d.mts.map +0 -1
@@ -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 { IProtocolVersion as n, IEpochParams as t };
24
+ //# sourceMappingURL=IEpochParams-CSxQMaRY.d.cts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"IEpochParams-CSxQMaRY.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,37 @@
1
+ //#region src/network/IGenesisStore.d.ts
2
+ interface IShelley {
3
+ activeSlotsCoeff: number;
4
+ epochLength: number;
5
+ maxKESEvolutions: number;
6
+ maxLovelaceSupply: number;
7
+ networkId: string;
8
+ networkMagic: number;
9
+ securityParam: number;
10
+ slotLength: number;
11
+ slotsPerKESPeriod: number;
12
+ systemStart: string;
13
+ updateQuorum: number;
14
+ }
15
+ interface IBlockVersionData {
16
+ slotDuration: string;
17
+ maxBlockSize: string;
18
+ maxHeaderSize: string;
19
+ maxTxSize: string;
20
+ maxProposalSize: string;
21
+ }
22
+ interface IProtocolConsts {
23
+ k: number;
24
+ protocolMagic: number;
25
+ }
26
+ interface IByron {
27
+ startTime: number;
28
+ blockVersionData: IBlockVersionData;
29
+ protocolConsts: IProtocolConsts;
30
+ }
31
+ interface IGenesisStore {
32
+ shelley: IShelley;
33
+ byron: IByron;
34
+ }
35
+ //#endregion
36
+ export { IShelley as a, IProtocolConsts as i, IByron as n, IGenesisStore as r, IBlockVersionData as t };
37
+ //# sourceMappingURL=IGenesisStore-BsB4xkSW.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"IGenesisStore-BsB4xkSW.d.mts","names":[],"sources":["../src/network/IGenesisStore.ts"],"mappings":";UAsBiB,QAAA;EAEf,gBAAA;EACA,WAAA;EACA,gBAAA;EACA,iBAAA;EACA,SAAA;EACA,YAAA;EAEA,aAAA;EACA,UAAA;EACA,iBAAA;EACA,WAAA;EACA,YAAA;AAAA;AAAA,UAGe,iBAAA;EAEf,YAAA;EACA,YAAA;EACA,aAAA;EACA,SAAA;EACA,eAAA;AAAA;AAAA,UAGe,eAAA;EAEf,CAAA;EACA,aAAA;AAAA;AAAA,UAGe,MAAA;EAEf,SAAA;EACA,gBAAA,EAA4B,iBAAA;EAC5B,cAAA,EAA4B,eAAA;AAAA;AAAA,UAGb,aAAA;EAEf,OAAA,EAA4B,QAAA;EAC5B,KAAA,EAA4B,MAAA;AAAA"}
@@ -0,0 +1,37 @@
1
+ //#region src/network/IGenesisStore.d.ts
2
+ interface IShelley {
3
+ activeSlotsCoeff: number;
4
+ epochLength: number;
5
+ maxKESEvolutions: number;
6
+ maxLovelaceSupply: number;
7
+ networkId: string;
8
+ networkMagic: number;
9
+ securityParam: number;
10
+ slotLength: number;
11
+ slotsPerKESPeriod: number;
12
+ systemStart: string;
13
+ updateQuorum: number;
14
+ }
15
+ interface IBlockVersionData {
16
+ slotDuration: string;
17
+ maxBlockSize: string;
18
+ maxHeaderSize: string;
19
+ maxTxSize: string;
20
+ maxProposalSize: string;
21
+ }
22
+ interface IProtocolConsts {
23
+ k: number;
24
+ protocolMagic: number;
25
+ }
26
+ interface IByron {
27
+ startTime: number;
28
+ blockVersionData: IBlockVersionData;
29
+ protocolConsts: IProtocolConsts;
30
+ }
31
+ interface IGenesisStore {
32
+ shelley: IShelley;
33
+ byron: IByron;
34
+ }
35
+ //#endregion
36
+ export { IShelley as a, IProtocolConsts as i, IByron as n, IGenesisStore as r, IBlockVersionData as t };
37
+ //# sourceMappingURL=IGenesisStore-HKK_EuKr.d.cts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"IGenesisStore-HKK_EuKr.d.cts","names":[],"sources":["../src/network/IGenesisStore.ts"],"mappings":";UAsBiB,QAAA;EAEf,gBAAA;EACA,WAAA;EACA,gBAAA;EACA,iBAAA;EACA,SAAA;EACA,YAAA;EAEA,aAAA;EACA,UAAA;EACA,iBAAA;EACA,WAAA;EACA,YAAA;AAAA;AAAA,UAGe,iBAAA;EAEf,YAAA;EACA,YAAA;EACA,aAAA;EACA,SAAA;EACA,eAAA;AAAA;AAAA,UAGe,eAAA;EAEf,CAAA;EACA,aAAA;AAAA;AAAA,UAGe,MAAA;EAEf,SAAA;EACA,gBAAA,EAA4B,iBAAA;EAC5B,cAAA,EAA4B,eAAA;AAAA;AAAA,UAGb,aAAA;EAEf,OAAA,EAA4B,QAAA;EAC5B,KAAA,EAA4B,MAAA;AAAA"}
@@ -0,0 +1,31 @@
1
+ //#region src/types/NetworkId.d.ts
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";
12
+ };
13
+ type NetworkId = typeof NETWORK_ID[keyof typeof NETWORK_ID];
14
+ declare const networkIdList: NetworkId[];
15
+ declare const networkIdx: Record<NetworkId, number>;
16
+ declare const networkGroups: Record<string, NetworkId[]>;
17
+ declare const networkShelleyTransitionEpoch: Record<NetworkId, number>;
18
+ declare const networkAddressPrefix: Record<NetworkId, string>;
19
+ declare const networkStakeAddressPrefix: Record<NetworkId, string>;
20
+ declare const networkCurrencyCode: Record<NetworkId, string>;
21
+ declare const networkCurrencySymbol: Record<NetworkId, string>;
22
+ declare const isSupportedNetworkId: (id?: string | null) => id is NetworkId;
23
+ declare const getNetworkId: (id: string) => number;
24
+ declare const getNetworkDecimals: (id: NetworkId) => number;
25
+ declare const isTestnetNetwork: (networkId: NetworkId) => boolean;
26
+ declare const isCustomNetwork: (networkId: NetworkId) => boolean;
27
+ declare const getNetworkCurrencyCode: (id: NetworkId) => string;
28
+ declare const getNetworkCurrencySymbol: (id: NetworkId) => string;
29
+ //#endregion
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
@@ -0,0 +1 @@
1
+ {"version":3,"file":"NetworkId-B8rRQja1.d.cts","names":[],"sources":["../src/types/NetworkId.ts"],"mappings":";cAAa,UAAA;EAAA;;;;;;;;;;KAaD,SAAA,UAA2B,UAAA,cAAwB,UAAA;AAAA,cAElD,aAAA,EAAoB,SAAA;AAAA,cAYpB,UAAA,EAAY,MAAA,CAAO,SAAA;AAAA,cAanB,aAAA,EAAe,MAAA,SAAe,SAAA;AAAA,cAM9B,6BAAA,EAA+B,MAAA,CAAO,SAAA;AAAA,cAatC,oBAAA,EAAsB,MAAA,CAAO,SAAA;AAAA,cAa7B,yBAAA,EAA2B,MAAA,CAAO,SAAA;AAAA,cAalC,mBAAA,EAAqB,MAAA,CAAO,SAAA;AAAA,cAa5B,qBAAA,EAAuB,MAAA,CAAO,SAAA;AAAA,cAa9B,oBAAA,GAA4B,EAAA,qBAAqB,EAAA,IAAM,SAAA;AAAA,cAEvD,YAAA,GAA4B,EAAA;AAAA,cAkB5B,kBAAA,GAA4B,EAAA,EAAI,SAAA;AAAA,cAShC,gBAAA,GAA4B,SAAA,EAAW,SAAA;AAAA,cAkBvC,eAAA,GAA4B,SAAA,EAAW,SAAA;AAAA,cAEvC,sBAAA,GAA4B,EAAA,EAAI,SAAA;AAAA,cAChC,wBAAA,GAA4B,EAAA,EAAI,SAAA"}
@@ -0,0 +1,31 @@
1
+ //#region src/types/NetworkId.d.ts
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";
12
+ };
13
+ type NetworkId = typeof NETWORK_ID[keyof typeof NETWORK_ID];
14
+ declare const networkIdList: NetworkId[];
15
+ declare const networkIdx: Record<NetworkId, number>;
16
+ declare const networkGroups: Record<string, NetworkId[]>;
17
+ declare const networkShelleyTransitionEpoch: Record<NetworkId, number>;
18
+ declare const networkAddressPrefix: Record<NetworkId, string>;
19
+ declare const networkStakeAddressPrefix: Record<NetworkId, string>;
20
+ declare const networkCurrencyCode: Record<NetworkId, string>;
21
+ declare const networkCurrencySymbol: Record<NetworkId, string>;
22
+ declare const isSupportedNetworkId: (id?: string | null) => id is NetworkId;
23
+ declare const getNetworkId: (id: string) => number;
24
+ declare const getNetworkDecimals: (id: NetworkId) => number;
25
+ declare const isTestnetNetwork: (networkId: NetworkId) => boolean;
26
+ declare const isCustomNetwork: (networkId: NetworkId) => boolean;
27
+ declare const getNetworkCurrencyCode: (id: NetworkId) => string;
28
+ declare const getNetworkCurrencySymbol: (id: NetworkId) => string;
29
+ //#endregion
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
@@ -0,0 +1 @@
1
+ {"version":3,"file":"NetworkId-BG6nkpb_.d.mts","names":[],"sources":["../src/types/NetworkId.ts"],"mappings":";cAAa,UAAA;EAAA;;;;;;;;;;KAaD,SAAA,UAA2B,UAAA,cAAwB,UAAA;AAAA,cAElD,aAAA,EAAoB,SAAA;AAAA,cAYpB,UAAA,EAAY,MAAA,CAAO,SAAA;AAAA,cAanB,aAAA,EAAe,MAAA,SAAe,SAAA;AAAA,cAM9B,6BAAA,EAA+B,MAAA,CAAO,SAAA;AAAA,cAatC,oBAAA,EAAsB,MAAA,CAAO,SAAA;AAAA,cAa7B,yBAAA,EAA2B,MAAA,CAAO,SAAA;AAAA,cAalC,mBAAA,EAAqB,MAAA,CAAO,SAAA;AAAA,cAa5B,qBAAA,EAAuB,MAAA,CAAO,SAAA;AAAA,cAa9B,oBAAA,GAA4B,EAAA,qBAAqB,EAAA,IAAM,SAAA;AAAA,cAEvD,YAAA,GAA4B,EAAA;AAAA,cAkB5B,kBAAA,GAA4B,EAAA,EAAI,SAAA;AAAA,cAShC,gBAAA,GAA4B,SAAA,EAAW,SAAA;AAAA,cAkBvC,eAAA,GAA4B,SAAA,EAAW,SAAA;AAAA,cAEvC,sBAAA,GAA4B,EAAA,EAAI,SAAA;AAAA,cAChC,wBAAA,GAA4B,EAAA,EAAI,SAAA"}
@@ -0,0 +1,48 @@
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
+
5
+ //#region src/network/GenesisStore.d.ts
6
+ declare const GenesisStore: Record<NetworkId, IGenesisStore>;
7
+ //#endregion
8
+ //#region src/types/IChainTip.d.ts
9
+ interface IChainTip {
10
+ networkId: NetworkId | null;
11
+ network: NetworkId | null;
12
+ blockNo: number;
13
+ slotNo: number;
14
+ epochNo: number;
15
+ epochSlot: number;
16
+ epochSlots: number;
17
+ epochPercent: number;
18
+ syncProgress: number;
19
+ onTip: boolean;
20
+ serverTime: number;
21
+ }
22
+ declare const createIChainTip: (networkId: NetworkId | null) => IChainTip;
23
+ //#endregion
24
+ //#region src/chain.d.ts
25
+ declare const getGenesis: (networkId: NetworkId) => IGenesisStore;
26
+ declare const getByron: (networkId: NetworkId) => IByron;
27
+ declare const getShelley: (networkId: NetworkId) => IShelley;
28
+ declare const getNetworkMagic: (networkId: NetworkId) => number;
29
+ declare const getEpochLength: (networkId: NetworkId) => number;
30
+ declare const getNumEpochBlocks: (networkId: NetworkId) => number;
31
+ declare const getCalculatedChainTip: (networkId: NetworkId) => number;
32
+ declare const getTimestampFromSlot: (networkId: NetworkId, slotNo: number) => number;
33
+ declare const getEpochFromSlot: (networkId: NetworkId, slotNo: number) => number;
34
+ declare const getCalculatedSlotFromBlockTime: (networkId: NetworkId, timestamp: any) => number;
35
+ declare const getCalculatedEpochSlot: (networkId: NetworkId) => number;
36
+ declare const getCalculatedEpoch: (id: NetworkId) => number;
37
+ declare const getLastSlotOfEpoch: (id: NetworkId, epochNo: number) => number;
38
+ declare const getEpochStart: (id: NetworkId, epochNo: number) => {
39
+ slotNumber: number;
40
+ timestamp: number;
41
+ };
42
+ declare const updateChainTip: (id: NetworkId, chainTip: IChainTip, data: IChainTip) => IChainTip;
43
+ declare const getDateIdFromSlot: (networkId: NetworkId, slotNo: number, userSelectedTimezone: string) => DateId;
44
+ declare const getDateIdFromTimestamp: (timeStamp: number, userSelectedTimezone: string) => DateId;
45
+ declare const getSlotFromDateId: (networkId: NetworkId, dateId: Pick<DateId, "year" | "month" | "day" | "timezone">, calcEnd?: boolean) => number;
46
+ //#endregion
47
+ 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
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chain-CXEvehB2.d.cts","names":[],"sources":["../src/network/GenesisStore.ts","../src/types/IChainTip.ts","../src/chain.ts"],"mappings":";;;;;cAqBa,YAAA,EAAc,MAAA,CAAO,SAAA,EAAW,aAAA;;;UCnB5B,SAAA;EAEf,SAAA,EAA4B,SAAA;EAC5B,OAAA,EAA4B,SAAA;EAE5B,OAAA;EACA,MAAA;EAEA,OAAA;EACA,SAAA;EACA,UAAA;EACA,YAAA;EAEA,YAAA;EACA,KAAA;EACA,UAAA;AAAA;AAAA,cAGW,eAAA,GAAmB,SAAA,EAAW,SAAA,YAAmB,SAAA;;;cCIjD,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"}
@@ -0,0 +1,48 @@
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
+
5
+ //#region src/network/GenesisStore.d.ts
6
+ declare const GenesisStore: Record<NetworkId, IGenesisStore>;
7
+ //#endregion
8
+ //#region src/types/IChainTip.d.ts
9
+ interface IChainTip {
10
+ networkId: NetworkId | null;
11
+ network: NetworkId | null;
12
+ blockNo: number;
13
+ slotNo: number;
14
+ epochNo: number;
15
+ epochSlot: number;
16
+ epochSlots: number;
17
+ epochPercent: number;
18
+ syncProgress: number;
19
+ onTip: boolean;
20
+ serverTime: number;
21
+ }
22
+ declare const createIChainTip: (networkId: NetworkId | null) => IChainTip;
23
+ //#endregion
24
+ //#region src/chain.d.ts
25
+ declare const getGenesis: (networkId: NetworkId) => IGenesisStore;
26
+ declare const getByron: (networkId: NetworkId) => IByron;
27
+ declare const getShelley: (networkId: NetworkId) => IShelley;
28
+ declare const getNetworkMagic: (networkId: NetworkId) => number;
29
+ declare const getEpochLength: (networkId: NetworkId) => number;
30
+ declare const getNumEpochBlocks: (networkId: NetworkId) => number;
31
+ declare const getCalculatedChainTip: (networkId: NetworkId) => number;
32
+ declare const getTimestampFromSlot: (networkId: NetworkId, slotNo: number) => number;
33
+ declare const getEpochFromSlot: (networkId: NetworkId, slotNo: number) => number;
34
+ declare const getCalculatedSlotFromBlockTime: (networkId: NetworkId, timestamp: any) => number;
35
+ declare const getCalculatedEpochSlot: (networkId: NetworkId) => number;
36
+ declare const getCalculatedEpoch: (id: NetworkId) => number;
37
+ declare const getLastSlotOfEpoch: (id: NetworkId, epochNo: number) => number;
38
+ declare const getEpochStart: (id: NetworkId, epochNo: number) => {
39
+ slotNumber: number;
40
+ timestamp: number;
41
+ };
42
+ declare const updateChainTip: (id: NetworkId, chainTip: IChainTip, data: IChainTip) => IChainTip;
43
+ declare const getDateIdFromSlot: (networkId: NetworkId, slotNo: number, userSelectedTimezone: string) => DateId;
44
+ declare const getDateIdFromTimestamp: (timeStamp: number, userSelectedTimezone: string) => DateId;
45
+ declare const getSlotFromDateId: (networkId: NetworkId, dateId: Pick<DateId, "year" | "month" | "day" | "timezone">, calcEnd?: boolean) => number;
46
+ //#endregion
47
+ 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
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chain-q8sBB3TY.d.mts","names":[],"sources":["../src/network/GenesisStore.ts","../src/types/IChainTip.ts","../src/chain.ts"],"mappings":";;;;;cAqBa,YAAA,EAAc,MAAA,CAAO,SAAA,EAAW,aAAA;;;UCnB5B,SAAA;EAEf,SAAA,EAA4B,SAAA;EAC5B,OAAA,EAA4B,SAAA;EAE5B,OAAA;EACA,MAAA;EAEA,OAAA;EACA,SAAA;EACA,UAAA;EACA,YAAA;EAEA,YAAA;EACA,KAAA;EACA,UAAA;AAAA;AAAA,cAGW,eAAA,GAAmB,SAAA,EAAW,SAAA,YAAmB,SAAA;;;cCIjD,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.cjs CHANGED
@@ -1,17 +1,16 @@
1
- Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
2
- const require_network_GenesisStore = require('./network/GenesisStore.cjs');
3
- const require_types_NetworkId = require('./types/NetworkId.cjs');
1
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
+ const require_GenesisStore = require("./GenesisStore-bmIOboUV.cjs");
3
+ const require_types_NetworkId = require("./types/NetworkId.cjs");
4
4
  let _eternl_tools = require("@eternl/tools");
5
-
6
5
  //#region src/chain.ts
7
6
  const dateIdCache = /* @__PURE__ */ new Map();
8
7
  const formatterCache = /* @__PURE__ */ new Map();
9
- const getGenesis = (networkId) => require_network_GenesisStore.GenesisStore[networkId];
10
- const getByron = (networkId) => require_network_GenesisStore.GenesisStore[networkId].byron;
11
- const getShelley = (networkId) => require_network_GenesisStore.GenesisStore[networkId].shelley;
12
- const getNetworkMagic = (networkId) => require_network_GenesisStore.GenesisStore[networkId].shelley.networkMagic;
13
- const getEpochLength = (networkId) => require_network_GenesisStore.GenesisStore[networkId].shelley.epochLength;
14
- const getNumEpochBlocks = (networkId) => getEpochLength(networkId) * require_network_GenesisStore.GenesisStore[networkId].shelley.activeSlotsCoeff;
8
+ const getGenesis = (networkId) => require_GenesisStore.GenesisStore[networkId];
9
+ const getByron = (networkId) => require_GenesisStore.GenesisStore[networkId].byron;
10
+ const getShelley = (networkId) => require_GenesisStore.GenesisStore[networkId].shelley;
11
+ const getNetworkMagic = (networkId) => require_GenesisStore.GenesisStore[networkId].shelley.networkMagic;
12
+ const getEpochLength = (networkId) => require_GenesisStore.GenesisStore[networkId].shelley.epochLength;
13
+ const getNumEpochBlocks = (networkId) => getEpochLength(networkId) * require_GenesisStore.GenesisStore[networkId].shelley.activeSlotsCoeff;
15
14
  const getCommonData = (networkId) => {
16
15
  const byron = getByron(networkId);
17
16
  const currentTimeSec = Math.floor((0, _eternl_tools.now)() / 1e3);
@@ -151,7 +150,6 @@ const getSlotFromDateId = (networkId, dateId, calcEnd = false) => {
151
150
  date = (0, _eternl_tools.changeTimezone)(date, dateId.timezone);
152
151
  return getCalculatedSlotFromBlockTime(networkId, date.getTime());
153
152
  };
154
-
155
153
  //#endregion
156
154
  exports.getByron = getByron;
157
155
  exports.getCalculatedChainTip = getCalculatedChainTip;
@@ -171,4 +169,5 @@ exports.getShelley = getShelley;
171
169
  exports.getSlotFromDateId = getSlotFromDateId;
172
170
  exports.getTimestampFromSlot = getTimestampFromSlot;
173
171
  exports.updateChainTip = updateChainTip;
172
+
174
173
  //# sourceMappingURL=chain.cjs.map
@@ -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 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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"}
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":"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"}
package/dist/chain.d.cts CHANGED
@@ -1,30 +1,2 @@
1
- import { IByron, IGenesisStore, IShelley } from "./network/IGenesisStore.cjs";
2
- import { DateId } from "./types/DateId.cjs";
3
- import { NetworkId } from "./types/NetworkId.cjs";
4
- import { IChainTip } from "./types/IChainTip.cjs";
5
-
6
- //#region src/chain.d.ts
7
- declare const getGenesis: (networkId: NetworkId) => IGenesisStore;
8
- declare const getByron: (networkId: NetworkId) => IByron;
9
- declare const getShelley: (networkId: NetworkId) => IShelley;
10
- declare const getNetworkMagic: (networkId: NetworkId) => number;
11
- declare const getEpochLength: (networkId: NetworkId) => number;
12
- declare const getNumEpochBlocks: (networkId: NetworkId) => number;
13
- declare const getCalculatedChainTip: (networkId: NetworkId) => number;
14
- declare const getTimestampFromSlot: (networkId: NetworkId, slotNo: number) => number;
15
- declare const getEpochFromSlot: (networkId: NetworkId, slotNo: number) => number;
16
- declare const getCalculatedSlotFromBlockTime: (networkId: NetworkId, timestamp: any) => number;
17
- declare const getCalculatedEpochSlot: (networkId: NetworkId) => number;
18
- declare const getCalculatedEpoch: (id: NetworkId) => number;
19
- declare const getLastSlotOfEpoch: (id: NetworkId, epochNo: number) => number;
20
- declare const getEpochStart: (id: NetworkId, epochNo: number) => {
21
- slotNumber: number;
22
- timestamp: number;
23
- };
24
- declare const updateChainTip: (id: NetworkId, chainTip: IChainTip, data: IChainTip) => IChainTip;
25
- declare const getDateIdFromSlot: (networkId: NetworkId, slotNo: number, userSelectedTimezone: string) => DateId;
26
- declare const getDateIdFromTimestamp: (timeStamp: number, userSelectedTimezone: string) => DateId;
27
- declare const getSlotFromDateId: (networkId: NetworkId, dateId: Pick<DateId, "year" | "month" | "day" | "timezone">, calcEnd?: boolean) => number;
28
- //#endregion
29
- export { getByron, getCalculatedChainTip, getCalculatedEpoch, getCalculatedEpochSlot, getCalculatedSlotFromBlockTime, getDateIdFromSlot, getDateIdFromTimestamp, getEpochFromSlot, getEpochLength, getEpochStart, getGenesis, getLastSlotOfEpoch, getNetworkMagic, getNumEpochBlocks, getShelley, getSlotFromDateId, getTimestampFromSlot, updateChainTip };
30
- //# sourceMappingURL=chain.d.cts.map
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";
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,30 +1,2 @@
1
- import { IByron, IGenesisStore, IShelley } from "./network/IGenesisStore.mjs";
2
- import { DateId } from "./types/DateId.mjs";
3
- import { NetworkId } from "./types/NetworkId.mjs";
4
- import { IChainTip } from "./types/IChainTip.mjs";
5
-
6
- //#region src/chain.d.ts
7
- declare const getGenesis: (networkId: NetworkId) => IGenesisStore;
8
- declare const getByron: (networkId: NetworkId) => IByron;
9
- declare const getShelley: (networkId: NetworkId) => IShelley;
10
- declare const getNetworkMagic: (networkId: NetworkId) => number;
11
- declare const getEpochLength: (networkId: NetworkId) => number;
12
- declare const getNumEpochBlocks: (networkId: NetworkId) => number;
13
- declare const getCalculatedChainTip: (networkId: NetworkId) => number;
14
- declare const getTimestampFromSlot: (networkId: NetworkId, slotNo: number) => number;
15
- declare const getEpochFromSlot: (networkId: NetworkId, slotNo: number) => number;
16
- declare const getCalculatedSlotFromBlockTime: (networkId: NetworkId, timestamp: any) => number;
17
- declare const getCalculatedEpochSlot: (networkId: NetworkId) => number;
18
- declare const getCalculatedEpoch: (id: NetworkId) => number;
19
- declare const getLastSlotOfEpoch: (id: NetworkId, epochNo: number) => number;
20
- declare const getEpochStart: (id: NetworkId, epochNo: number) => {
21
- slotNumber: number;
22
- timestamp: number;
23
- };
24
- declare const updateChainTip: (id: NetworkId, chainTip: IChainTip, data: IChainTip) => IChainTip;
25
- declare const getDateIdFromSlot: (networkId: NetworkId, slotNo: number, userSelectedTimezone: string) => DateId;
26
- declare const getDateIdFromTimestamp: (timeStamp: number, userSelectedTimezone: string) => DateId;
27
- declare const getSlotFromDateId: (networkId: NetworkId, dateId: Pick<DateId, "year" | "month" | "day" | "timezone">, calcEnd?: boolean) => number;
28
- //#endregion
29
- export { getByron, getCalculatedChainTip, getCalculatedEpoch, getCalculatedEpochSlot, getCalculatedSlotFromBlockTime, getDateIdFromSlot, getDateIdFromTimestamp, getEpochFromSlot, getEpochLength, getEpochStart, getGenesis, getLastSlotOfEpoch, getNetworkMagic, getNumEpochBlocks, getShelley, getSlotFromDateId, getTimestampFromSlot, updateChainTip };
30
- //# sourceMappingURL=chain.d.mts.map
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";
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,7 +1,6 @@
1
- import { GenesisStore } from "./network/GenesisStore.mjs";
1
+ import { t as GenesisStore } from "./GenesisStore-DtQdwsV9.mjs";
2
2
  import { networkShelleyTransitionEpoch } from "./types/NetworkId.mjs";
3
3
  import { changeTimezone, now } from "@eternl/tools";
4
-
5
4
  //#region src/chain.ts
6
5
  const dateIdCache = /* @__PURE__ */ new Map();
7
6
  const formatterCache = /* @__PURE__ */ new Map();
@@ -150,7 +149,7 @@ const getSlotFromDateId = (networkId, dateId, calcEnd = false) => {
150
149
  date = changeTimezone(date, dateId.timezone);
151
150
  return getCalculatedSlotFromBlockTime(networkId, date.getTime());
152
151
  };
153
-
154
152
  //#endregion
155
153
  export { getByron, getCalculatedChainTip, getCalculatedEpoch, getCalculatedEpochSlot, getCalculatedSlotFromBlockTime, getDateIdFromSlot, getDateIdFromTimestamp, getEpochFromSlot, getEpochLength, getEpochStart, getGenesis, getLastSlotOfEpoch, getNetworkMagic, getNumEpochBlocks, getShelley, getSlotFromDateId, getTimestampFromSlot, updateChainTip };
154
+
156
155
  //# sourceMappingURL=chain.mjs.map
@@ -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 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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"}
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.cjs CHANGED
@@ -1,10 +1,12 @@
1
- Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
2
- const require_network_GenesisStore = require('./network/GenesisStore.cjs');
3
- const require_types_NetworkId = require('./types/NetworkId.cjs');
4
- const require_chain = require('./chain.cjs');
5
- const require_types_IChainTip = require('./types/IChainTip.cjs');
6
-
7
- exports.GenesisStore = require_network_GenesisStore.GenesisStore;
1
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
+ const require_GenesisStore = require("./GenesisStore-bmIOboUV.cjs");
3
+ const require_types_NetworkId = require("./types/NetworkId.cjs");
4
+ const require_chain = require("./chain.cjs");
5
+ require("./network/IGenesisStore.cjs");
6
+ const require_types_IChainTip = require("./types/IChainTip.cjs");
7
+ require("./types/IEpochParams.cjs");
8
+ require("./types/DateId.cjs");
9
+ exports.GenesisStore = require_GenesisStore.GenesisStore;
8
10
  exports.NETWORK_ID = require_types_NetworkId.NETWORK_ID;
9
11
  exports.createIChainTip = require_types_IChainTip.createIChainTip;
10
12
  exports.getByron = require_chain.getByron;
@@ -39,4 +41,4 @@ exports.networkIdList = require_types_NetworkId.networkIdList;
39
41
  exports.networkIdx = require_types_NetworkId.networkIdx;
40
42
  exports.networkShelleyTransitionEpoch = require_types_NetworkId.networkShelleyTransitionEpoch;
41
43
  exports.networkStakeAddressPrefix = require_types_NetworkId.networkStakeAddressPrefix;
42
- exports.updateChainTip = require_chain.updateChainTip;
44
+ exports.updateChainTip = require_chain.updateChainTip;