@lodestar/config 1.32.0-dev.42e678f502 → 1.32.0-dev.48f2ff71ae
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/lib/forkConfig/index.js +41 -10
- package/lib/forkConfig/index.js.map +1 -1
- package/lib/forkConfig/types.d.ts +20 -1
- package/lib/genesisConfig/index.d.ts +2 -1
- package/lib/genesisConfig/index.js +42 -26
- package/lib/genesisConfig/index.js.map +1 -1
- package/lib/genesisConfig/types.d.ts +5 -4
- package/package.json +5 -5
package/lib/forkConfig/index.js
CHANGED
|
@@ -65,22 +65,48 @@ export function createForkConfig(config) {
|
|
|
65
65
|
// Prevents allocating an array on every getForkInfo() call
|
|
66
66
|
const forksAscendingEpochOrder = Object.values(forks);
|
|
67
67
|
const forksDescendingEpochOrder = Object.values(forks).reverse();
|
|
68
|
+
const blobScheduleDescendingEpochOrder = [...config.BLOB_SCHEDULE].sort((a, b) => b.EPOCH - a.EPOCH);
|
|
69
|
+
const forkBoundariesAscendingEpochOrder = [
|
|
70
|
+
// Normal hard-forks (phase0, altair, etc.)
|
|
71
|
+
...forksAscendingEpochOrder.map((fork) => ({
|
|
72
|
+
fork: fork.name,
|
|
73
|
+
epoch: fork.epoch,
|
|
74
|
+
})),
|
|
75
|
+
// Blob Parameter Only (BPO) forks
|
|
76
|
+
// Note: Must be appended after normal hard-forks to have precedence if scheduled at the same epoch
|
|
77
|
+
...config.BLOB_SCHEDULE.map((entry) => ({
|
|
78
|
+
fork: forksDescendingEpochOrder.find((f) => entry.EPOCH >= f.epoch)?.name ?? phase0.name,
|
|
79
|
+
epoch: entry.EPOCH,
|
|
80
|
+
})),
|
|
81
|
+
]
|
|
82
|
+
// Remove unscheduled fork boundaries
|
|
83
|
+
.filter(({ epoch }) => epoch !== Infinity)
|
|
84
|
+
// Sort by epoch in ascending order
|
|
85
|
+
.sort((a, b) => a.epoch - b.epoch);
|
|
86
|
+
const forkBoundariesDescendingEpochOrder = [...forkBoundariesAscendingEpochOrder].reverse();
|
|
68
87
|
return {
|
|
69
88
|
forks,
|
|
70
89
|
forksAscendingEpochOrder,
|
|
71
90
|
forksDescendingEpochOrder,
|
|
91
|
+
forkBoundariesAscendingEpochOrder,
|
|
92
|
+
forkBoundariesDescendingEpochOrder,
|
|
72
93
|
// Fork convenience methods
|
|
73
94
|
getForkInfo(slot) {
|
|
74
95
|
const epoch = Math.floor(Math.max(slot, 0) / SLOTS_PER_EPOCH);
|
|
75
96
|
return this.getForkInfoAtEpoch(epoch);
|
|
76
97
|
},
|
|
77
98
|
getForkInfoAtEpoch(epoch) {
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
99
|
+
return forks[this.getForkBoundaryAtEpoch(epoch).fork];
|
|
100
|
+
},
|
|
101
|
+
getForkBoundaryAtEpoch(epoch) {
|
|
102
|
+
if (epoch < 0)
|
|
103
|
+
epoch = 0;
|
|
104
|
+
// NOTE: fork boundaries must be sorted by descending epoch, latest first
|
|
105
|
+
for (const boundary of forkBoundariesDescendingEpochOrder) {
|
|
106
|
+
if (epoch >= boundary.epoch)
|
|
107
|
+
return boundary;
|
|
82
108
|
}
|
|
83
|
-
|
|
109
|
+
throw Error("Unreachable as phase0 is scheduled at epoch 0");
|
|
84
110
|
},
|
|
85
111
|
getForkName(slot) {
|
|
86
112
|
return this.getForkInfo(slot).name;
|
|
@@ -126,14 +152,19 @@ export function createForkConfig(config) {
|
|
|
126
152
|
case ForkName.deneb:
|
|
127
153
|
return config.MAX_BLOBS_PER_BLOCK;
|
|
128
154
|
}
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
155
|
+
return this.getBlobParameters(epoch).maxBlobsPerBlock;
|
|
156
|
+
},
|
|
157
|
+
getBlobParameters(epoch) {
|
|
158
|
+
if (epoch < config.FULU_FORK_EPOCH) {
|
|
159
|
+
throw Error(`getBlobParameters is not available pre-fulu epoch=${epoch}`);
|
|
160
|
+
}
|
|
161
|
+
// Find the latest applicable value from blob schedule
|
|
162
|
+
for (const entry of blobScheduleDescendingEpochOrder) {
|
|
132
163
|
if (epoch >= entry.EPOCH) {
|
|
133
|
-
return entry.MAX_BLOBS_PER_BLOCK;
|
|
164
|
+
return { epoch: entry.EPOCH, maxBlobsPerBlock: entry.MAX_BLOBS_PER_BLOCK };
|
|
134
165
|
}
|
|
135
166
|
}
|
|
136
|
-
return config.MAX_BLOBS_PER_BLOCK_ELECTRA;
|
|
167
|
+
return { epoch: config.ELECTRA_FORK_EPOCH, maxBlobsPerBlock: config.MAX_BLOBS_PER_BLOCK_ELECTRA };
|
|
137
168
|
},
|
|
138
169
|
getMaxRequestBlobSidecars(fork) {
|
|
139
170
|
return isForkPostElectra(fork) ? config.MAX_REQUEST_BLOB_SIDECARS_ELECTRA : config.MAX_REQUEST_BLOB_SIDECARS;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/forkConfig/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,QAAQ,EAIR,OAAO,EACP,aAAa,EACb,eAAe,EACf,gBAAgB,EAChB,mBAAmB,EACnB,eAAe,EACf,iBAAiB,GAClB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAoC,WAAW,EAAC,MAAM,iBAAiB,CAAC;AAI/E,cAAc,YAAY,CAAC;AAE3B,MAAM,UAAU,gBAAgB,CAAC,MAAmB;IAClD,MAAM,MAAM,GAAa;QACvB,IAAI,EAAE,QAAQ,CAAC,MAAM;QACrB,GAAG,EAAE,OAAO,CAAC,MAAM;QACnB,KAAK,EAAE,aAAa;QACpB,OAAO,EAAE,MAAM,CAAC,oBAAoB;QACpC,qBAAqB;QACrB,WAAW,EAAE,MAAM,CAAC,oBAAoB;QACxC,YAAY,EAAE,QAAQ,CAAC,MAAM;KAC9B,CAAC;IACF,MAAM,MAAM,GAAa;QACvB,IAAI,EAAE,QAAQ,CAAC,MAAM;QACrB,GAAG,EAAE,OAAO,CAAC,MAAM;QACnB,KAAK,EAAE,MAAM,CAAC,iBAAiB;QAC/B,OAAO,EAAE,MAAM,CAAC,mBAAmB;QACnC,WAAW,EAAE,MAAM,CAAC,oBAAoB;QACxC,YAAY,EAAE,QAAQ,CAAC,MAAM;KAC9B,CAAC;IACF,MAAM,SAAS,GAAa;QAC1B,IAAI,EAAE,QAAQ,CAAC,SAAS;QACxB,GAAG,EAAE,OAAO,CAAC,SAAS;QACtB,KAAK,EAAE,MAAM,CAAC,oBAAoB;QAClC,OAAO,EAAE,MAAM,CAAC,sBAAsB;QACtC,WAAW,EAAE,MAAM,CAAC,mBAAmB;QACvC,YAAY,EAAE,QAAQ,CAAC,MAAM;KAC9B,CAAC;IACF,MAAM,OAAO,GAAa;QACxB,IAAI,EAAE,QAAQ,CAAC,OAAO;QACtB,GAAG,EAAE,OAAO,CAAC,OAAO;QACpB,KAAK,EAAE,MAAM,CAAC,kBAAkB;QAChC,OAAO,EAAE,MAAM,CAAC,oBAAoB;QACpC,WAAW,EAAE,MAAM,CAAC,sBAAsB;QAC1C,YAAY,EAAE,QAAQ,CAAC,SAAS;KACjC,CAAC;IACF,MAAM,KAAK,GAAa;QACtB,IAAI,EAAE,QAAQ,CAAC,KAAK;QACpB,GAAG,EAAE,OAAO,CAAC,KAAK;QAClB,KAAK,EAAE,MAAM,CAAC,gBAAgB;QAC9B,OAAO,EAAE,MAAM,CAAC,kBAAkB;QAClC,WAAW,EAAE,MAAM,CAAC,oBAAoB;QACxC,YAAY,EAAE,QAAQ,CAAC,OAAO;KAC/B,CAAC;IACF,MAAM,OAAO,GAAa;QACxB,IAAI,EAAE,QAAQ,CAAC,OAAO;QACtB,GAAG,EAAE,OAAO,CAAC,OAAO;QACpB,KAAK,EAAE,MAAM,CAAC,kBAAkB;QAChC,OAAO,EAAE,MAAM,CAAC,oBAAoB;QACpC,WAAW,EAAE,MAAM,CAAC,kBAAkB;QACtC,YAAY,EAAE,QAAQ,CAAC,KAAK;KAC7B,CAAC;IACF,MAAM,IAAI,GAAa;QACrB,IAAI,EAAE,QAAQ,CAAC,IAAI;QACnB,GAAG,EAAE,OAAO,CAAC,IAAI;QACjB,KAAK,EAAE,MAAM,CAAC,eAAe;QAC7B,OAAO,EAAE,MAAM,CAAC,iBAAiB;QACjC,WAAW,EAAE,MAAM,CAAC,oBAAoB;QACxC,YAAY,EAAE,QAAQ,CAAC,OAAO;KAC/B,CAAC;IAEF,wDAAwD;IACxD,mDAAmD;IACnD,MAAM,KAAK,GAAG,EAAC,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAC,CAAC;IAEzE,2DAA2D;IAC3D,MAAM,wBAAwB,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IACtD,MAAM,yBAAyB,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,OAAO,EAAE,CAAC;IAEjE,OAAO;QACL,KAAK;QACL,wBAAwB;QACxB,yBAAyB;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/forkConfig/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { ForkAll, ForkName, ForkPostAltair, ForkPostBellatrix, ForkPostDeneb, ForkSeq } from "@lodestar/params";
|
|
2
|
-
import { Epoch, SSZTypesFor, Slot, Version } from "@lodestar/types";
|
|
2
|
+
import { Epoch, SSZTypesFor, Slot, UintNum64, Version } from "@lodestar/types";
|
|
3
3
|
export type ForkInfo = {
|
|
4
4
|
name: ForkName;
|
|
5
5
|
seq: ForkSeq;
|
|
@@ -8,6 +8,19 @@ export type ForkInfo = {
|
|
|
8
8
|
prevVersion: Version;
|
|
9
9
|
prevForkName: ForkName;
|
|
10
10
|
};
|
|
11
|
+
/**
|
|
12
|
+
* Fork boundaries include both normal hard-forks (phase0, altair, etc.)
|
|
13
|
+
* and Blob Parameter Only (BPO) forks and are used to un-/subscribe to gossip topics
|
|
14
|
+
* and compute the fork digest primarily for domain separation on the p2p layer.
|
|
15
|
+
*/
|
|
16
|
+
export type ForkBoundary = {
|
|
17
|
+
fork: ForkName;
|
|
18
|
+
epoch: Epoch;
|
|
19
|
+
};
|
|
20
|
+
export type BlobParameters = {
|
|
21
|
+
epoch: Epoch;
|
|
22
|
+
maxBlobsPerBlock: UintNum64;
|
|
23
|
+
};
|
|
11
24
|
/**
|
|
12
25
|
* Fork schedule and helper methods
|
|
13
26
|
*/
|
|
@@ -18,10 +31,14 @@ export type ForkConfig = {
|
|
|
18
31
|
};
|
|
19
32
|
forksAscendingEpochOrder: ForkInfo[];
|
|
20
33
|
forksDescendingEpochOrder: ForkInfo[];
|
|
34
|
+
forkBoundariesAscendingEpochOrder: ForkBoundary[];
|
|
35
|
+
forkBoundariesDescendingEpochOrder: ForkBoundary[];
|
|
21
36
|
/** Get the hard-fork info for the active fork at `slot` */
|
|
22
37
|
getForkInfo(slot: Slot): ForkInfo;
|
|
23
38
|
/** Get the hard-fork info for the active fork at `epoch` */
|
|
24
39
|
getForkInfoAtEpoch(epoch: Epoch): ForkInfo;
|
|
40
|
+
/** Get the active fork boundary at a given `epoch` */
|
|
41
|
+
getForkBoundaryAtEpoch(epoch: Epoch): ForkBoundary;
|
|
25
42
|
/** Get the hard-fork name at a given slot */
|
|
26
43
|
getForkName(slot: Slot): ForkName;
|
|
27
44
|
/** Get the hard-fork sequence number at a given slot */
|
|
@@ -40,6 +57,8 @@ export type ForkConfig = {
|
|
|
40
57
|
getPostDenebForkTypes(slot: Slot): SSZTypesFor<ForkPostDeneb>;
|
|
41
58
|
/** Get max blobs per block at a given epoch */
|
|
42
59
|
getMaxBlobsPerBlock(epoch: Epoch): number;
|
|
60
|
+
/** Get blob parameters at a given epoch */
|
|
61
|
+
getBlobParameters(epoch: Epoch): BlobParameters;
|
|
43
62
|
/** Get max request blob sidecars by hard-fork */
|
|
44
63
|
getMaxRequestBlobSidecars(fork: ForkName): number;
|
|
45
64
|
};
|
|
@@ -1,6 +1,7 @@
|
|
|
1
|
-
import { Root } from "@lodestar/types";
|
|
1
|
+
import { Epoch, ForkDigest, Root } from "@lodestar/types";
|
|
2
2
|
import { ChainForkConfig } from "../beaconConfig.js";
|
|
3
3
|
import { CachedGenesis } from "./types.js";
|
|
4
4
|
export type { ForkDigestContext } from "./types.js";
|
|
5
5
|
export declare function createCachedGenesis(chainForkConfig: ChainForkConfig, genesisValidatorsRoot: Root): CachedGenesis;
|
|
6
|
+
export declare function computeForkDigest(config: ChainForkConfig, genesisValidatorsRoot: Root, epoch: Epoch): ForkDigest;
|
|
6
7
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1,18 +1,28 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { digest } from "@chainsafe/as-sha256";
|
|
2
|
+
import { DOMAIN_VOLUNTARY_EXIT, ForkName, ForkSeq, SLOTS_PER_EPOCH } from "@lodestar/params";
|
|
2
3
|
import { ssz } from "@lodestar/types";
|
|
3
|
-
import { strip0xPrefix, toHex } from "@lodestar/utils";
|
|
4
|
+
import { intToBytes, strip0xPrefix, toHex, xor } from "@lodestar/utils";
|
|
4
5
|
export function createCachedGenesis(chainForkConfig, genesisValidatorsRoot) {
|
|
5
6
|
const domainCache = new Map();
|
|
6
|
-
const
|
|
7
|
-
const
|
|
7
|
+
const forkDigestByEpoch = new Map();
|
|
8
|
+
const forkDigestHexByEpoch = new Map();
|
|
8
9
|
/** Map of ForkDigest in hex format without prefix: `0011aabb` */
|
|
9
|
-
const
|
|
10
|
-
|
|
11
|
-
|
|
10
|
+
const epochByForkDigest = new Map();
|
|
11
|
+
const { forkBoundariesAscendingEpochOrder } = chainForkConfig;
|
|
12
|
+
for (let i = 0; i < forkBoundariesAscendingEpochOrder.length; i++) {
|
|
13
|
+
const currentForkBoundary = forkBoundariesAscendingEpochOrder[i];
|
|
14
|
+
const nextForkBoundary = forkBoundariesAscendingEpochOrder[i + 1];
|
|
15
|
+
const currentEpoch = currentForkBoundary.epoch;
|
|
16
|
+
const nextEpoch = nextForkBoundary !== undefined ? nextForkBoundary.epoch : Infinity;
|
|
17
|
+
// Edge case: If multiple fork boundaries start at the same epoch, only consider the latest one
|
|
18
|
+
if (currentEpoch === nextEpoch) {
|
|
19
|
+
continue;
|
|
20
|
+
}
|
|
21
|
+
const forkDigest = computeForkDigest(chainForkConfig, genesisValidatorsRoot, currentEpoch);
|
|
12
22
|
const forkDigestHex = toHexStringNoPrefix(forkDigest);
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
23
|
+
epochByForkDigest.set(forkDigestHex, currentEpoch);
|
|
24
|
+
forkDigestByEpoch.set(currentEpoch, forkDigest);
|
|
25
|
+
forkDigestHexByEpoch.set(currentEpoch, forkDigestHex);
|
|
16
26
|
}
|
|
17
27
|
return {
|
|
18
28
|
genesisValidatorsRoot,
|
|
@@ -71,33 +81,33 @@ export function createCachedGenesis(chainForkConfig, genesisValidatorsRoot) {
|
|
|
71
81
|
: this.getDomainAtFork(ForkName.capella, DOMAIN_VOLUNTARY_EXIT);
|
|
72
82
|
return domain;
|
|
73
83
|
},
|
|
74
|
-
|
|
84
|
+
forkDigest2ForkBoundary(forkDigest) {
|
|
75
85
|
const forkDigestHex = toHexStringNoPrefix(forkDigest);
|
|
76
|
-
const
|
|
77
|
-
if (
|
|
86
|
+
const epoch = epochByForkDigest.get(forkDigestHex);
|
|
87
|
+
if (epoch == null) {
|
|
78
88
|
throw Error(`Unknown forkDigest ${forkDigestHex}`);
|
|
79
89
|
}
|
|
80
|
-
return
|
|
90
|
+
return chainForkConfig.getForkBoundaryAtEpoch(epoch);
|
|
81
91
|
},
|
|
82
|
-
|
|
92
|
+
forkDigest2ForkBoundaryOption(forkDigest) {
|
|
83
93
|
const forkDigestHex = toHexStringNoPrefix(forkDigest);
|
|
84
|
-
const
|
|
85
|
-
if (
|
|
94
|
+
const epoch = epochByForkDigest.get(forkDigestHex);
|
|
95
|
+
if (epoch == null) {
|
|
86
96
|
return null;
|
|
87
97
|
}
|
|
88
|
-
return
|
|
98
|
+
return chainForkConfig.getForkBoundaryAtEpoch(epoch);
|
|
89
99
|
},
|
|
90
|
-
|
|
91
|
-
const forkDigest =
|
|
100
|
+
forkBoundary2ForkDigest(boundary) {
|
|
101
|
+
const forkDigest = forkDigestByEpoch.get(boundary.epoch);
|
|
92
102
|
if (!forkDigest) {
|
|
93
|
-
throw Error(`No precomputed forkDigest for ${
|
|
103
|
+
throw Error(`No precomputed forkDigest for ${boundary.epoch}`);
|
|
94
104
|
}
|
|
95
105
|
return forkDigest;
|
|
96
106
|
},
|
|
97
|
-
|
|
98
|
-
const forkDigestHex =
|
|
107
|
+
forkBoundary2ForkDigestHex(boundary) {
|
|
108
|
+
const forkDigestHex = forkDigestHexByEpoch.get(boundary.epoch);
|
|
99
109
|
if (!forkDigestHex) {
|
|
100
|
-
throw Error(`No precomputed forkDigest for ${
|
|
110
|
+
throw Error(`No precomputed forkDigest for ${boundary.epoch}`);
|
|
101
111
|
}
|
|
102
112
|
return toHexStringNoPrefix(forkDigestHex);
|
|
103
113
|
},
|
|
@@ -120,7 +130,13 @@ function computeForkDataRoot(currentVersion, genesisValidatorsRoot) {
|
|
|
120
130
|
function toHexStringNoPrefix(hex) {
|
|
121
131
|
return strip0xPrefix(typeof hex === "string" ? hex : toHex(hex));
|
|
122
132
|
}
|
|
123
|
-
function computeForkDigest(
|
|
124
|
-
|
|
133
|
+
export function computeForkDigest(config, genesisValidatorsRoot, epoch) {
|
|
134
|
+
const currentFork = config.getForkInfoAtEpoch(epoch);
|
|
135
|
+
const baseDigest = computeForkDataRoot(currentFork.version, genesisValidatorsRoot);
|
|
136
|
+
if (currentFork.seq < ForkSeq.fulu) {
|
|
137
|
+
return baseDigest.slice(0, 4);
|
|
138
|
+
}
|
|
139
|
+
const blobParameters = config.getBlobParameters(epoch);
|
|
140
|
+
return xor(baseDigest, digest(Buffer.concat([intToBytes(blobParameters.epoch, 8, "le"), intToBytes(blobParameters.maxBlobsPerBlock, 8, "le")]))).slice(0, 4);
|
|
125
141
|
}
|
|
126
142
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/genesisConfig/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,qBAAqB,EAAE,QAAQ,EAAE,eAAe,EAAC,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/genesisConfig/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,11 +1,12 @@
|
|
|
1
1
|
import { ForkName } from "@lodestar/params";
|
|
2
2
|
import { DomainType, ForkDigest, Root, Slot } from "@lodestar/types";
|
|
3
|
+
import { ForkBoundary } from "../forkConfig/types.js";
|
|
3
4
|
export type ForkDigestHex = string;
|
|
4
5
|
export type ForkDigestContext = {
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
6
|
+
forkDigest2ForkBoundary(forkDigest: ForkDigest | ForkDigestHex): ForkBoundary;
|
|
7
|
+
forkDigest2ForkBoundaryOption(forkDigest: ForkDigest | ForkDigestHex): ForkBoundary | null;
|
|
8
|
+
forkBoundary2ForkDigest(boundary: ForkBoundary): ForkDigest;
|
|
9
|
+
forkBoundary2ForkDigestHex(boundary: ForkBoundary): ForkDigestHex;
|
|
9
10
|
};
|
|
10
11
|
export interface CachedGenesis extends ForkDigestContext {
|
|
11
12
|
/**
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@lodestar/config",
|
|
3
|
-
"version": "1.32.0-dev.
|
|
3
|
+
"version": "1.32.0-dev.48f2ff71ae",
|
|
4
4
|
"description": "Chain configuration required for lodestar",
|
|
5
5
|
"author": "ChainSafe Systems",
|
|
6
6
|
"license": "Apache-2.0",
|
|
@@ -65,9 +65,9 @@
|
|
|
65
65
|
],
|
|
66
66
|
"dependencies": {
|
|
67
67
|
"@chainsafe/ssz": "^1.2.1",
|
|
68
|
-
"@lodestar/params": "1.32.0-dev.
|
|
69
|
-
"@lodestar/types": "1.32.0-dev.
|
|
70
|
-
"@lodestar/utils": "1.32.0-dev.
|
|
68
|
+
"@lodestar/params": "1.32.0-dev.48f2ff71ae",
|
|
69
|
+
"@lodestar/types": "1.32.0-dev.48f2ff71ae",
|
|
70
|
+
"@lodestar/utils": "1.32.0-dev.48f2ff71ae"
|
|
71
71
|
},
|
|
72
|
-
"gitHead": "
|
|
72
|
+
"gitHead": "7eabe2a328103d339c130e16a9d9e98c155f2ea4"
|
|
73
73
|
}
|