@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.
- package/dist/{DateId-Bgaw8h3k.d.mts → DateId-DpLkO3y9.d.cts} +1 -1
- package/dist/DateId-DpLkO3y9.d.cts.map +1 -0
- package/dist/{DateId-DI1Q0_Pd.d.cts → DateId-DpLkO3y9.d.mts} +1 -1
- package/dist/DateId-DpLkO3y9.d.mts.map +1 -0
- package/dist/GenesisStore-CqCs2Yin.mjs +618 -0
- package/dist/{GenesisStore-DtQdwsV9.mjs.map → GenesisStore-CqCs2Yin.mjs.map} +1 -1
- package/dist/GenesisStore-DGnbeDqM.cjs +623 -0
- package/dist/{GenesisStore-bmIOboUV.cjs.map → GenesisStore-DGnbeDqM.cjs.map} +1 -1
- package/dist/{IEpochParams-CH8-YLax.d.mts → IEpochParams-BFNd585A.d.cts} +1 -2
- package/dist/IEpochParams-BFNd585A.d.cts.map +1 -0
- package/dist/{IEpochParams-CSxQMaRY.d.cts → IEpochParams-BFNd585A.d.mts} +1 -2
- package/dist/IEpochParams-BFNd585A.d.mts.map +1 -0
- package/dist/{IGenesisStore-BsB4xkSW.d.mts → IGenesisStore-DsIpICQ8.d.cts} +1 -1
- package/dist/IGenesisStore-DsIpICQ8.d.cts.map +1 -0
- package/dist/{IGenesisStore-HKK_EuKr.d.cts → IGenesisStore-DsIpICQ8.d.mts} +1 -1
- package/dist/IGenesisStore-DsIpICQ8.d.mts.map +1 -0
- package/dist/{NetworkId-B8rRQja1.d.cts → NetworkId-B9JhuswJ.d.cts} +10 -10
- package/dist/NetworkId-B9JhuswJ.d.cts.map +1 -0
- package/dist/{NetworkId-BG6nkpb_.d.mts → NetworkId-B9JhuswJ.d.mts} +10 -10
- package/dist/NetworkId-B9JhuswJ.d.mts.map +1 -0
- package/dist/{chain-CXEvehB2.d.cts → chain-DRRhGMxp.d.mts} +5 -6
- package/dist/chain-DRRhGMxp.d.mts.map +1 -0
- package/dist/{chain-q8sBB3TY.d.mts → chain-DbsXl5Uh.d.cts} +5 -6
- package/dist/chain-DbsXl5Uh.d.cts.map +1 -0
- package/dist/chain.cjs +10 -7
- package/dist/chain.cjs.map +1 -1
- package/dist/chain.d.cts +1 -1
- package/dist/chain.d.mts +1 -1
- package/dist/chain.mjs +10 -7
- package/dist/chain.mjs.map +1 -1
- package/dist/index.cjs +1 -1
- package/dist/index.d.cts +5 -5
- package/dist/index.d.mts +5 -5
- package/dist/index.mjs +1 -1
- package/dist/network/GenesisStore.cjs +1 -1
- package/dist/network/GenesisStore.d.cts +1 -1
- package/dist/network/GenesisStore.d.mts +1 -1
- package/dist/network/GenesisStore.mjs +1 -1
- package/dist/network/IGenesisStore.d.cts +1 -1
- package/dist/network/IGenesisStore.d.mts +1 -1
- package/dist/types/DateId.d.cts +1 -1
- package/dist/types/DateId.d.mts +1 -1
- package/dist/types/IChainTip.cjs.map +1 -1
- package/dist/types/IChainTip.d.cts +1 -1
- package/dist/types/IChainTip.d.mts +1 -1
- package/dist/types/IChainTip.mjs.map +1 -1
- package/dist/types/IEpochParams.d.cts +1 -1
- package/dist/types/IEpochParams.d.mts +1 -1
- package/dist/types/NetworkId.cjs.map +1 -1
- package/dist/types/NetworkId.d.cts +1 -1
- package/dist/types/NetworkId.d.mts +1 -1
- package/dist/types/NetworkId.mjs.map +1 -1
- package/package.json +2 -2
- package/dist/DateId-Bgaw8h3k.d.mts.map +0 -1
- package/dist/DateId-DI1Q0_Pd.d.cts.map +0 -1
- package/dist/GenesisStore-DtQdwsV9.mjs +0 -668
- package/dist/GenesisStore-bmIOboUV.cjs +0 -673
- package/dist/IEpochParams-CH8-YLax.d.mts.map +0 -1
- package/dist/IEpochParams-CSxQMaRY.d.cts.map +0 -1
- package/dist/IGenesisStore-BsB4xkSW.d.mts.map +0 -1
- package/dist/IGenesisStore-HKK_EuKr.d.cts.map +0 -1
- package/dist/NetworkId-B8rRQja1.d.cts.map +0 -1
- package/dist/NetworkId-BG6nkpb_.d.mts.map +0 -1
- package/dist/chain-CXEvehB2.d.cts.map +0 -1
- 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:
|
|
4
|
-
readonly GUILD:
|
|
5
|
-
readonly SANCHO:
|
|
6
|
-
readonly PREPROD:
|
|
7
|
-
readonly PREVIEW:
|
|
8
|
-
readonly AFVT:
|
|
9
|
-
readonly AFVM:
|
|
10
|
-
readonly AFPT:
|
|
11
|
-
readonly 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-
|
|
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:
|
|
4
|
-
readonly GUILD:
|
|
5
|
-
readonly SANCHO:
|
|
6
|
-
readonly PREPROD:
|
|
7
|
-
readonly PREVIEW:
|
|
8
|
-
readonly AFVT:
|
|
9
|
-
readonly AFVM:
|
|
10
|
-
readonly AFPT:
|
|
11
|
-
readonly 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-
|
|
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-
|
|
2
|
-
import { t as DateId } from "./DateId-
|
|
3
|
-
import { n as NetworkId } from "./NetworkId-
|
|
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,
|
|
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-
|
|
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-
|
|
2
|
-
import { t as DateId } from "./DateId-
|
|
3
|
-
import { n as NetworkId } from "./NetworkId-
|
|
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,
|
|
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-
|
|
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-
|
|
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
|
-
|
|
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)
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
else
|
|
148
|
-
|
|
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());
|
package/dist/chain.cjs.map
CHANGED
|
@@ -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":"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"}
|
|
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-
|
|
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-
|
|
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-
|
|
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
|
-
|
|
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)
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
else
|
|
147
|
-
|
|
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());
|
package/dist/chain.mjs.map
CHANGED
|
@@ -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-
|
|
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-
|
|
2
|
-
import { t as DateId } from "./DateId-
|
|
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-
|
|
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-
|
|
5
|
-
import { n as IProtocolVersion, t as IEpochParams } from "./IEpochParams-
|
|
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-
|
|
2
|
-
import { t as DateId } from "./DateId-
|
|
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-
|
|
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-
|
|
5
|
-
import { n as IProtocolVersion, t as IEpochParams } from "./IEpochParams-
|
|
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-
|
|
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-
|
|
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-
|
|
1
|
+
import { x as GenesisStore } from "../chain-DbsXl5Uh.cjs";
|
|
2
2
|
export { GenesisStore };
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { x as GenesisStore } from "../chain-
|
|
1
|
+
import { x as GenesisStore } from "../chain-DRRhGMxp.mjs";
|
|
2
2
|
export { GenesisStore };
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { t as GenesisStore } from "../GenesisStore-
|
|
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-
|
|
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-
|
|
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 };
|
package/dist/types/DateId.d.cts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { t as DateId } from "../DateId-
|
|
1
|
+
import { t as DateId } from "../DateId-DpLkO3y9.cjs";
|
|
2
2
|
export { DateId };
|
package/dist/types/DateId.d.mts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { t as DateId } from "../DateId-
|
|
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;
|
|
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-
|
|
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-
|
|
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;
|
|
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-
|
|
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-
|
|
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":";;AAAA,MAAa,aAAmB;CAE9B,SAA4B;CAC5B,OAA4B;CAC5B,QAA4B;CAC5B,SAA4B;CAC5B,SAA4B;CAC5B,MAA4B;CAC5B,MAA4B;CAC5B,MAA4B;CAC5B,MAA4B;
|
|
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-
|
|
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-
|
|
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 };
|