@lodestar/state-transition 1.27.0-dev.e45e0ebd4b → 1.27.0-dev.fc6a4a7cb9
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/util/seed.d.ts +22 -1
- package/lib/util/seed.js +217 -4
- package/lib/util/seed.js.map +1 -1
- package/package.json +6 -6
package/lib/util/seed.d.ts
CHANGED
|
@@ -11,12 +11,19 @@ export declare function computeProposers(fork: ForkSeq, epochSeed: Uint8Array, s
|
|
|
11
11
|
}, effectiveBalanceIncrements: EffectiveBalanceIncrements): number[];
|
|
12
12
|
/**
|
|
13
13
|
* Return from ``indices`` a random index sampled by effective balance.
|
|
14
|
+
* This is just to make sure lodestar follows the spec, this is not for production.
|
|
14
15
|
*
|
|
15
16
|
* SLOW CODE - 🐢
|
|
16
17
|
*/
|
|
18
|
+
export declare function naiveComputeProposerIndex(fork: ForkSeq, effectiveBalanceIncrements: EffectiveBalanceIncrements, indices: ArrayLike<ValidatorIndex>, seed: Uint8Array): ValidatorIndex;
|
|
19
|
+
/**
|
|
20
|
+
* Optimized version of `naiveComputeProposerIndex`.
|
|
21
|
+
* It shows > 3x speedup according to the perf test.
|
|
22
|
+
*/
|
|
17
23
|
export declare function computeProposerIndex(fork: ForkSeq, effectiveBalanceIncrements: EffectiveBalanceIncrements, indices: ArrayLike<ValidatorIndex>, seed: Uint8Array): ValidatorIndex;
|
|
18
24
|
/**
|
|
19
|
-
*
|
|
25
|
+
* Naive version, this is not supposed to be used in production.
|
|
26
|
+
* See `computeProposerIndex` for the optimized version.
|
|
20
27
|
*
|
|
21
28
|
* Return the sync committee indices for a given state and epoch.
|
|
22
29
|
* Aligns `epoch` to `baseEpoch` so the result is the same with any `epoch` within a sync period.
|
|
@@ -25,6 +32,12 @@ export declare function computeProposerIndex(fork: ForkSeq, effectiveBalanceIncr
|
|
|
25
32
|
*
|
|
26
33
|
* SLOW CODE - 🐢
|
|
27
34
|
*/
|
|
35
|
+
export declare function naiveGetNextSyncCommitteeIndices(fork: ForkSeq, state: BeaconStateAllForks, activeValidatorIndices: ArrayLike<ValidatorIndex>, effectiveBalanceIncrements: EffectiveBalanceIncrements): ValidatorIndex[];
|
|
36
|
+
/**
|
|
37
|
+
* Optmized version of `naiveGetNextSyncCommitteeIndices`.
|
|
38
|
+
*
|
|
39
|
+
* In the worse case scenario, this could be >1000x speedup according to the perf test.
|
|
40
|
+
*/
|
|
28
41
|
export declare function getNextSyncCommitteeIndices(fork: ForkSeq, state: BeaconStateAllForks, activeValidatorIndices: ArrayLike<ValidatorIndex>, effectiveBalanceIncrements: EffectiveBalanceIncrements): ValidatorIndex[];
|
|
29
42
|
/**
|
|
30
43
|
* Return the shuffled validator index corresponding to ``seed`` (and ``index_count``).
|
|
@@ -33,8 +46,15 @@ export declare function getNextSyncCommitteeIndices(fork: ForkSeq, state: Beacon
|
|
|
33
46
|
* https://link.springer.com/content/pdf/10.1007%2F978-3-642-32009-5_1.pdf
|
|
34
47
|
*
|
|
35
48
|
* See the 'generalized domain' algorithm on page 3.
|
|
49
|
+
* This is the naive implementation just to make sure lodestar follows the spec, this is not for production.
|
|
50
|
+
* The optimized version is in `getComputeShuffledIndexFn`.
|
|
36
51
|
*/
|
|
37
52
|
export declare function computeShuffledIndex(index: number, indexCount: number, seed: Bytes32): number;
|
|
53
|
+
type ComputeShuffledIndexFn = (index: number) => number;
|
|
54
|
+
/**
|
|
55
|
+
* An optimized version of `computeShuffledIndex`, this is for production.
|
|
56
|
+
*/
|
|
57
|
+
export declare function getComputeShuffledIndexFn(indexCount: number, seed: Bytes32): ComputeShuffledIndexFn;
|
|
38
58
|
/**
|
|
39
59
|
* Return the randao mix at a recent [[epoch]].
|
|
40
60
|
*/
|
|
@@ -43,4 +63,5 @@ export declare function getRandaoMix(state: BeaconStateAllForks, epoch: Epoch):
|
|
|
43
63
|
* Return the seed at [[epoch]].
|
|
44
64
|
*/
|
|
45
65
|
export declare function getSeed(state: BeaconStateAllForks, epoch: Epoch, domainType: DomainType): Uint8Array;
|
|
66
|
+
export {};
|
|
46
67
|
//# sourceMappingURL=seed.d.ts.map
|
package/lib/util/seed.js
CHANGED
|
@@ -10,16 +10,19 @@ export function computeProposers(fork, epochSeed, shuffling, effectiveBalanceInc
|
|
|
10
10
|
const startSlot = computeStartSlotAtEpoch(shuffling.epoch);
|
|
11
11
|
const proposers = [];
|
|
12
12
|
for (let slot = startSlot; slot < startSlot + SLOTS_PER_EPOCH; slot++) {
|
|
13
|
-
proposers.push(computeProposerIndex(fork, effectiveBalanceIncrements, shuffling.activeIndices,
|
|
13
|
+
proposers.push(computeProposerIndex(fork, effectiveBalanceIncrements, shuffling.activeIndices,
|
|
14
|
+
// TODO: if we use hashTree, we can precompute the roots for the next n loops
|
|
15
|
+
digest(Buffer.concat([epochSeed, intToBytes(slot, 8)]))));
|
|
14
16
|
}
|
|
15
17
|
return proposers;
|
|
16
18
|
}
|
|
17
19
|
/**
|
|
18
20
|
* Return from ``indices`` a random index sampled by effective balance.
|
|
21
|
+
* This is just to make sure lodestar follows the spec, this is not for production.
|
|
19
22
|
*
|
|
20
23
|
* SLOW CODE - 🐢
|
|
21
24
|
*/
|
|
22
|
-
export function
|
|
25
|
+
export function naiveComputeProposerIndex(fork, effectiveBalanceIncrements, indices, seed) {
|
|
23
26
|
if (indices.length === 0) {
|
|
24
27
|
throw Error("Validator indices must not be empty");
|
|
25
28
|
}
|
|
@@ -55,7 +58,77 @@ export function computeProposerIndex(fork, effectiveBalanceIncrements, indices,
|
|
|
55
58
|
}
|
|
56
59
|
}
|
|
57
60
|
/**
|
|
58
|
-
*
|
|
61
|
+
* Optimized version of `naiveComputeProposerIndex`.
|
|
62
|
+
* It shows > 3x speedup according to the perf test.
|
|
63
|
+
*/
|
|
64
|
+
export function computeProposerIndex(fork, effectiveBalanceIncrements, indices, seed) {
|
|
65
|
+
if (indices.length === 0) {
|
|
66
|
+
throw Error("Validator indices must not be empty");
|
|
67
|
+
}
|
|
68
|
+
if (fork >= ForkSeq.electra) {
|
|
69
|
+
// electra, see inline comments for the optimization
|
|
70
|
+
const MAX_RANDOM_VALUE = 2 ** 16 - 1;
|
|
71
|
+
const MAX_EFFECTIVE_BALANCE_INCREMENT = MAX_EFFECTIVE_BALANCE_ELECTRA / EFFECTIVE_BALANCE_INCREMENT;
|
|
72
|
+
const shuffledIndexFn = getComputeShuffledIndexFn(indices.length, seed);
|
|
73
|
+
// this simple cache makes sure we don't have to recompute the shuffled index for the next round of activeValidatorCount
|
|
74
|
+
const shuffledResult = new Map();
|
|
75
|
+
let i = 0;
|
|
76
|
+
const cachedHashInput = Buffer.allocUnsafe(32 + 8);
|
|
77
|
+
cachedHashInput.set(seed, 0);
|
|
78
|
+
cachedHashInput.writeUint32LE(0, 32 + 4);
|
|
79
|
+
let cachedHash = null;
|
|
80
|
+
while (true) {
|
|
81
|
+
// an optimized version of the below naive code
|
|
82
|
+
// const candidateIndex = indices[computeShuffledIndex(i % indices.length, indices.length, seed)];
|
|
83
|
+
const index = i % indices.length;
|
|
84
|
+
let shuffledIndex = shuffledResult.get(index);
|
|
85
|
+
if (shuffledIndex == null) {
|
|
86
|
+
shuffledIndex = shuffledIndexFn(index);
|
|
87
|
+
shuffledResult.set(index, shuffledIndex);
|
|
88
|
+
}
|
|
89
|
+
const candidateIndex = indices[shuffledIndex];
|
|
90
|
+
// compute a new hash every 16 iterations
|
|
91
|
+
if (i % 16 === 0) {
|
|
92
|
+
cachedHashInput.writeUint32LE(Math.floor(i / 16), 32);
|
|
93
|
+
cachedHash = digest(cachedHashInput);
|
|
94
|
+
}
|
|
95
|
+
if (cachedHash == null) {
|
|
96
|
+
// there is always a cachedHash, handle this to make the compiler happy
|
|
97
|
+
throw new Error("cachedHash should not be null");
|
|
98
|
+
}
|
|
99
|
+
const randomBytes = cachedHash;
|
|
100
|
+
const offset = (i % 16) * 2;
|
|
101
|
+
// this is equivalent to bytesToInt(randomBytes.subarray(offset, offset + 2));
|
|
102
|
+
// but it does not get through BigInt
|
|
103
|
+
const lowByte = randomBytes[offset];
|
|
104
|
+
const highByte = randomBytes[offset + 1];
|
|
105
|
+
const randomValue = lowByte + highByte * 256;
|
|
106
|
+
const effectiveBalanceIncrement = effectiveBalanceIncrements[candidateIndex];
|
|
107
|
+
if (effectiveBalanceIncrement * MAX_RANDOM_VALUE >= MAX_EFFECTIVE_BALANCE_INCREMENT * randomValue) {
|
|
108
|
+
return candidateIndex;
|
|
109
|
+
}
|
|
110
|
+
i += 1;
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
else {
|
|
114
|
+
// preelectra, this function is the same to the naive version
|
|
115
|
+
const MAX_RANDOM_BYTE = 2 ** 8 - 1;
|
|
116
|
+
const MAX_EFFECTIVE_BALANCE_INCREMENT = MAX_EFFECTIVE_BALANCE / EFFECTIVE_BALANCE_INCREMENT;
|
|
117
|
+
let i = 0;
|
|
118
|
+
while (true) {
|
|
119
|
+
const candidateIndex = indices[computeShuffledIndex(i % indices.length, indices.length, seed)];
|
|
120
|
+
const randomByte = digest(Buffer.concat([seed, intToBytes(Math.floor(i / 32), 8, "le")]))[i % 32];
|
|
121
|
+
const effectiveBalanceIncrement = effectiveBalanceIncrements[candidateIndex];
|
|
122
|
+
if (effectiveBalanceIncrement * MAX_RANDOM_BYTE >= MAX_EFFECTIVE_BALANCE_INCREMENT * randomByte) {
|
|
123
|
+
return candidateIndex;
|
|
124
|
+
}
|
|
125
|
+
i += 1;
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
/**
|
|
130
|
+
* Naive version, this is not supposed to be used in production.
|
|
131
|
+
* See `computeProposerIndex` for the optimized version.
|
|
59
132
|
*
|
|
60
133
|
* Return the sync committee indices for a given state and epoch.
|
|
61
134
|
* Aligns `epoch` to `baseEpoch` so the result is the same with any `epoch` within a sync period.
|
|
@@ -64,7 +137,7 @@ export function computeProposerIndex(fork, effectiveBalanceIncrements, indices,
|
|
|
64
137
|
*
|
|
65
138
|
* SLOW CODE - 🐢
|
|
66
139
|
*/
|
|
67
|
-
export function
|
|
140
|
+
export function naiveGetNextSyncCommitteeIndices(fork, state, activeValidatorIndices, effectiveBalanceIncrements) {
|
|
68
141
|
const syncCommitteeIndices = [];
|
|
69
142
|
if (fork >= ForkSeq.electra) {
|
|
70
143
|
const MAX_RANDOM_VALUE = 2 ** 16 - 1;
|
|
@@ -106,6 +179,82 @@ export function getNextSyncCommitteeIndices(fork, state, activeValidatorIndices,
|
|
|
106
179
|
}
|
|
107
180
|
return syncCommitteeIndices;
|
|
108
181
|
}
|
|
182
|
+
/**
|
|
183
|
+
* Optmized version of `naiveGetNextSyncCommitteeIndices`.
|
|
184
|
+
*
|
|
185
|
+
* In the worse case scenario, this could be >1000x speedup according to the perf test.
|
|
186
|
+
*/
|
|
187
|
+
export function getNextSyncCommitteeIndices(fork, state, activeValidatorIndices, effectiveBalanceIncrements) {
|
|
188
|
+
const syncCommitteeIndices = [];
|
|
189
|
+
if (fork >= ForkSeq.electra) {
|
|
190
|
+
// electra, see inline comments for the optimization
|
|
191
|
+
const MAX_RANDOM_VALUE = 2 ** 16 - 1;
|
|
192
|
+
const MAX_EFFECTIVE_BALANCE_INCREMENT = MAX_EFFECTIVE_BALANCE_ELECTRA / EFFECTIVE_BALANCE_INCREMENT;
|
|
193
|
+
const epoch = computeEpochAtSlot(state.slot) + 1;
|
|
194
|
+
const activeValidatorCount = activeValidatorIndices.length;
|
|
195
|
+
const seed = getSeed(state, epoch, DOMAIN_SYNC_COMMITTEE);
|
|
196
|
+
const shuffledIndexFn = getComputeShuffledIndexFn(activeValidatorCount, seed);
|
|
197
|
+
let i = 0;
|
|
198
|
+
let cachedHash = null;
|
|
199
|
+
const cachedHashInput = Buffer.allocUnsafe(32 + 8);
|
|
200
|
+
cachedHashInput.set(seed, 0);
|
|
201
|
+
cachedHashInput.writeUInt32LE(0, 32 + 4);
|
|
202
|
+
// this simple cache makes sure we don't have to recompute the shuffled index for the next round of activeValidatorCount
|
|
203
|
+
const shuffledResult = new Map();
|
|
204
|
+
while (syncCommitteeIndices.length < SYNC_COMMITTEE_SIZE) {
|
|
205
|
+
// optimized version of the below naive code
|
|
206
|
+
// const shuffledIndex = shuffledIndexFn(i % activeValidatorCount);
|
|
207
|
+
const index = i % activeValidatorCount;
|
|
208
|
+
let shuffledIndex = shuffledResult.get(index);
|
|
209
|
+
if (shuffledIndex == null) {
|
|
210
|
+
shuffledIndex = shuffledIndexFn(index);
|
|
211
|
+
shuffledResult.set(index, shuffledIndex);
|
|
212
|
+
}
|
|
213
|
+
const candidateIndex = activeValidatorIndices[shuffledIndex];
|
|
214
|
+
// compute a new hash every 16 iterations
|
|
215
|
+
if (i % 16 === 0) {
|
|
216
|
+
cachedHashInput.writeUint32LE(Math.floor(i / 16), 32);
|
|
217
|
+
cachedHash = digest(cachedHashInput);
|
|
218
|
+
}
|
|
219
|
+
if (cachedHash == null) {
|
|
220
|
+
// there is always a cachedHash, handle this to make the compiler happy
|
|
221
|
+
throw new Error("cachedHash should not be null");
|
|
222
|
+
}
|
|
223
|
+
const randomBytes = cachedHash;
|
|
224
|
+
const offset = (i % 16) * 2;
|
|
225
|
+
// this is equivalent to bytesToInt(randomBytes.subarray(offset, offset + 2));
|
|
226
|
+
// but it does not get through BigInt
|
|
227
|
+
const lowByte = randomBytes[offset];
|
|
228
|
+
const highByte = randomBytes[offset + 1];
|
|
229
|
+
const randomValue = lowByte + highByte * 256;
|
|
230
|
+
const effectiveBalanceIncrement = effectiveBalanceIncrements[candidateIndex];
|
|
231
|
+
if (effectiveBalanceIncrement * MAX_RANDOM_VALUE >= MAX_EFFECTIVE_BALANCE_INCREMENT * randomValue) {
|
|
232
|
+
syncCommitteeIndices.push(candidateIndex);
|
|
233
|
+
}
|
|
234
|
+
i += 1;
|
|
235
|
+
}
|
|
236
|
+
}
|
|
237
|
+
else {
|
|
238
|
+
// pre-electra, keep the same naive version
|
|
239
|
+
const MAX_RANDOM_BYTE = 2 ** 8 - 1;
|
|
240
|
+
const MAX_EFFECTIVE_BALANCE_INCREMENT = MAX_EFFECTIVE_BALANCE / EFFECTIVE_BALANCE_INCREMENT;
|
|
241
|
+
const epoch = computeEpochAtSlot(state.slot) + 1;
|
|
242
|
+
const activeValidatorCount = activeValidatorIndices.length;
|
|
243
|
+
const seed = getSeed(state, epoch, DOMAIN_SYNC_COMMITTEE);
|
|
244
|
+
let i = 0;
|
|
245
|
+
while (syncCommitteeIndices.length < SYNC_COMMITTEE_SIZE) {
|
|
246
|
+
const shuffledIndex = computeShuffledIndex(i % activeValidatorCount, activeValidatorCount, seed);
|
|
247
|
+
const candidateIndex = activeValidatorIndices[shuffledIndex];
|
|
248
|
+
const randomByte = digest(Buffer.concat([seed, intToBytes(Math.floor(i / 32), 8, "le")]))[i % 32];
|
|
249
|
+
const effectiveBalanceIncrement = effectiveBalanceIncrements[candidateIndex];
|
|
250
|
+
if (effectiveBalanceIncrement * MAX_RANDOM_BYTE >= MAX_EFFECTIVE_BALANCE_INCREMENT * randomByte) {
|
|
251
|
+
syncCommitteeIndices.push(candidateIndex);
|
|
252
|
+
}
|
|
253
|
+
i += 1;
|
|
254
|
+
}
|
|
255
|
+
}
|
|
256
|
+
return syncCommitteeIndices;
|
|
257
|
+
}
|
|
109
258
|
/**
|
|
110
259
|
* Return the shuffled validator index corresponding to ``seed`` (and ``index_count``).
|
|
111
260
|
*
|
|
@@ -113,6 +262,8 @@ export function getNextSyncCommitteeIndices(fork, state, activeValidatorIndices,
|
|
|
113
262
|
* https://link.springer.com/content/pdf/10.1007%2F978-3-642-32009-5_1.pdf
|
|
114
263
|
*
|
|
115
264
|
* See the 'generalized domain' algorithm on page 3.
|
|
265
|
+
* This is the naive implementation just to make sure lodestar follows the spec, this is not for production.
|
|
266
|
+
* The optimized version is in `getComputeShuffledIndexFn`.
|
|
116
267
|
*/
|
|
117
268
|
export function computeShuffledIndex(index, indexCount, seed) {
|
|
118
269
|
let permuted = index;
|
|
@@ -130,6 +281,68 @@ export function computeShuffledIndex(index, indexCount, seed) {
|
|
|
130
281
|
}
|
|
131
282
|
return permuted;
|
|
132
283
|
}
|
|
284
|
+
/**
|
|
285
|
+
* An optimized version of `computeShuffledIndex`, this is for production.
|
|
286
|
+
*/
|
|
287
|
+
export function getComputeShuffledIndexFn(indexCount, seed) {
|
|
288
|
+
// there are possibly SHUFFLE_ROUND_COUNT (90 for mainnet) values for this cache
|
|
289
|
+
// this cache will always hit after the 1st call
|
|
290
|
+
const pivotByIndex = new Map();
|
|
291
|
+
// given 2M active validators, there are 2 M / 256 = 8k possible positionDiv
|
|
292
|
+
// it means there are at most 8k different sources for each round
|
|
293
|
+
const sourceByPositionDivByIndex = new Map();
|
|
294
|
+
// 32 bytes seed + 1 byte i
|
|
295
|
+
const pivotBuffer = Buffer.alloc(32 + 1);
|
|
296
|
+
pivotBuffer.set(seed, 0);
|
|
297
|
+
// 32 bytes seed + 1 byte i + 4 bytes positionDiv
|
|
298
|
+
const sourceBuffer = Buffer.alloc(32 + 1 + 4);
|
|
299
|
+
sourceBuffer.set(seed, 0);
|
|
300
|
+
return (index) => {
|
|
301
|
+
assert.lt(index, indexCount, "indexCount must be less than index");
|
|
302
|
+
assert.lte(indexCount, 2 ** 40, "indexCount too big");
|
|
303
|
+
let permuted = index;
|
|
304
|
+
const _seed = seed;
|
|
305
|
+
for (let i = 0; i < SHUFFLE_ROUND_COUNT; i++) {
|
|
306
|
+
// optimized version of the below naive code
|
|
307
|
+
// const pivot = Number(
|
|
308
|
+
// bytesToBigInt(digest(Buffer.concat([_seed, intToBytes(i, 1)])).slice(0, 8)) % BigInt(indexCount)
|
|
309
|
+
// );
|
|
310
|
+
let pivot = pivotByIndex.get(i);
|
|
311
|
+
if (pivot == null) {
|
|
312
|
+
// naive version always creates a new buffer, we can reuse the buffer
|
|
313
|
+
// pivot = Number(
|
|
314
|
+
// bytesToBigInt(digest(Buffer.concat([_seed, intToBytes(i, 1)])).slice(0, 8)) % BigInt(indexCount)
|
|
315
|
+
// );
|
|
316
|
+
pivotBuffer[32] = i % 256;
|
|
317
|
+
pivot = Number(bytesToBigInt(digest(pivotBuffer).subarray(0, 8)) % BigInt(indexCount));
|
|
318
|
+
pivotByIndex.set(i, pivot);
|
|
319
|
+
}
|
|
320
|
+
const flip = (pivot + indexCount - permuted) % indexCount;
|
|
321
|
+
const position = Math.max(permuted, flip);
|
|
322
|
+
// optimized version of the below naive code
|
|
323
|
+
// const source = digest(Buffer.concat([_seed, intToBytes(i, 1), intToBytes(Math.floor(position / 256), 4)]));
|
|
324
|
+
let sourceByPositionDiv = sourceByPositionDivByIndex.get(i);
|
|
325
|
+
if (sourceByPositionDiv == null) {
|
|
326
|
+
sourceByPositionDiv = new Map();
|
|
327
|
+
sourceByPositionDivByIndex.set(i, sourceByPositionDiv);
|
|
328
|
+
}
|
|
329
|
+
const positionDiv256 = Math.floor(position / 256);
|
|
330
|
+
let source = sourceByPositionDiv.get(positionDiv256);
|
|
331
|
+
if (source == null) {
|
|
332
|
+
// naive version always creates a new buffer, we can reuse the buffer
|
|
333
|
+
// don't want to go through intToBytes() to avoid BigInt
|
|
334
|
+
sourceBuffer[32] = i % 256;
|
|
335
|
+
sourceBuffer.writeUint32LE(positionDiv256, 33);
|
|
336
|
+
source = digest(sourceBuffer);
|
|
337
|
+
sourceByPositionDiv.set(positionDiv256, source);
|
|
338
|
+
}
|
|
339
|
+
const byte = source[Math.floor((position % 256) / 8)];
|
|
340
|
+
const bit = (byte >> (position % 8)) % 2;
|
|
341
|
+
permuted = bit ? flip : permuted;
|
|
342
|
+
}
|
|
343
|
+
return permuted;
|
|
344
|
+
};
|
|
345
|
+
}
|
|
133
346
|
/**
|
|
134
347
|
* Return the randao mix at a recent [[epoch]].
|
|
135
348
|
*/
|
package/lib/util/seed.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"seed.js","sourceRoot":"","sources":["../../src/util/seed.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"seed.js","sourceRoot":"","sources":["../../src/util/seed.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -11,7 +11,7 @@
|
|
|
11
11
|
"bugs": {
|
|
12
12
|
"url": "https://github.com/ChainSafe/lodestar/issues"
|
|
13
13
|
},
|
|
14
|
-
"version": "1.27.0-dev.
|
|
14
|
+
"version": "1.27.0-dev.fc6a4a7cb9",
|
|
15
15
|
"type": "module",
|
|
16
16
|
"exports": {
|
|
17
17
|
".": {
|
|
@@ -65,10 +65,10 @@
|
|
|
65
65
|
"@chainsafe/pubkey-index-map": "2.0.0",
|
|
66
66
|
"@chainsafe/ssz": "^1.0.2",
|
|
67
67
|
"@chainsafe/swap-or-not-shuffle": "^0.0.2",
|
|
68
|
-
"@lodestar/config": "1.27.0-dev.
|
|
69
|
-
"@lodestar/params": "1.27.0-dev.
|
|
70
|
-
"@lodestar/types": "1.27.0-dev.
|
|
71
|
-
"@lodestar/utils": "1.27.0-dev.
|
|
68
|
+
"@lodestar/config": "1.27.0-dev.fc6a4a7cb9",
|
|
69
|
+
"@lodestar/params": "1.27.0-dev.fc6a4a7cb9",
|
|
70
|
+
"@lodestar/types": "1.27.0-dev.fc6a4a7cb9",
|
|
71
|
+
"@lodestar/utils": "1.27.0-dev.fc6a4a7cb9",
|
|
72
72
|
"bigint-buffer": "^1.1.5"
|
|
73
73
|
},
|
|
74
74
|
"keywords": [
|
|
@@ -77,5 +77,5 @@
|
|
|
77
77
|
"beacon",
|
|
78
78
|
"blockchain"
|
|
79
79
|
],
|
|
80
|
-
"gitHead": "
|
|
80
|
+
"gitHead": "9662b406ac0ab94b4996b5387cbe937870bbaf46"
|
|
81
81
|
}
|