Skip to content

Commit 6724128

Browse files
committed
Fix type
1 parent de9fd4a commit 6724128

File tree

4 files changed

+33
-5
lines changed

4 files changed

+33
-5
lines changed

packages/state-transition/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -63,7 +63,7 @@
6363
"@chainsafe/persistent-merkle-tree": "^1.0.1",
6464
"@chainsafe/persistent-ts": "^1.0.0",
6565
"@chainsafe/pubkey-index-map": "2.0.0",
66-
"@chainsafe/ssz": "^1.0.2",
66+
"@chainsafe/ssz": "^1.2.0",
6767
"@chainsafe/swap-or-not-shuffle": "^0.0.2",
6868
"@lodestar/config": "^1.27.1",
6969
"@lodestar/params": "^1.27.1",

packages/state-transition/src/util/generator.ts

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
import { CompositeViewDU, ListCompositeTreeViewDU } from "@chainsafe/ssz";
12
import {BeaconStateElectra} from "../types";
23

34
type LatestBeaconState = BeaconStateElectra;
@@ -8,8 +9,13 @@ type BeaconStateIterableKey = Extract<
89
>;
910
type BeaconStateIterableType = LatestBeaconState[BeaconStateIterableKey];
1011

11-
export function* pendingDepositIterator(state: BeaconStateElectra, startIndex?: number, chunkSize?: number) {
12-
yield* iterateBeaconStateIterableInChunks(state.pendingDeposits, startIndex, chunkSize);
12+
type ElementType = LatestBeaconState[BeaconStateIterableKey] extends ListCompositeTreeViewDU<infer T> ? T : never;
13+
type DepositType = LatestBeaconState[Extract<BeaconStateIterableKey, "pendingDeposits">] extends ListCompositeTreeViewDU<infer T> ? T : never;
14+
15+
export function* pendingDepositIterator(state: BeaconStateElectra, startIndex?: number, chunkSize?: number): Generator<CompositeViewDU<DepositType>> {
16+
for (const deposit of iterateBeaconStateIterableInChunks(state.pendingDeposits, startIndex, chunkSize)) {
17+
yield deposit as CompositeViewDU<DepositType>;
18+
}
1319
}
1420

1521
/**
@@ -18,7 +24,7 @@ export function* pendingDepositIterator(state: BeaconStateElectra, startIndex?:
1824
* @param chunkSize - Number of items to retrieve per iteration (default: 100)
1925
* @param startIndex - Starting index for iteration (default: 0)
2026
*/
21-
function* iterateBeaconStateIterableInChunks(iterable: BeaconStateIterableType, startIndex = 0, chunkSize = 100) {
27+
function* iterateBeaconStateIterableInChunks(iterable: BeaconStateIterableType, startIndex = 0, chunkSize = 100): Generator<CompositeViewDU<ElementType>> {
2228
const iterableLength = iterable.length;
2329
let chunkStartIndex = startIndex;
2430

packages/types/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -70,7 +70,7 @@
7070
},
7171
"types": "lib/index.d.ts",
7272
"dependencies": {
73-
"@chainsafe/ssz": "^1.0.2",
73+
"@chainsafe/ssz": "^1.2.0",
7474
"@lodestar/params": "^1.27.1",
7575
"ethereum-cryptography": "^2.0.0"
7676
},

yarn.lock

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -439,6 +439,11 @@
439439
resolved "https://registry.yarnpkg.com/@chainsafe/as-chacha20poly1305/-/as-chacha20poly1305-0.1.0.tgz#7da6f8796f9b42dac6e830a086d964f1f9189e09"
440440
integrity sha512-BpNcL8/lji/GM3+vZ/bgRWqJ1q5kwvTFmGPk7pxm/QQZDbaMI98waOHjEymTjq2JmdD/INdNBFOVSyJofXg7ew==
441441

442+
"@chainsafe/as-sha256@1.1.0":
443+
version "1.1.0"
444+
resolved "https://registry.yarnpkg.com/@chainsafe/as-sha256/-/as-sha256-1.1.0.tgz#949082ab96e0b266484f01f59a71930761afc6c4"
445+
integrity sha512-pLlxYtfYy2YW5GN+7d946UAjBOS9VOFulkfFN6Z+84ZhMP0Ey8XsCG21CZTczwq1C8J7/4z8LGzmrAtmQ37VCQ==
446+
442447
"@chainsafe/as-sha256@^0.4.1":
443448
version "0.4.1"
444449
resolved "https://registry.yarnpkg.com/@chainsafe/as-sha256/-/as-sha256-0.4.1.tgz#cfc0737e25f8c206767bdb6703e7943e5d44513e"
@@ -696,6 +701,15 @@
696701
dependencies:
697702
"@chainsafe/is-ip" "^2.0.1"
698703

704+
"@chainsafe/persistent-merkle-tree@1.1.0":
705+
version "1.1.0"
706+
resolved "https://registry.yarnpkg.com/@chainsafe/persistent-merkle-tree/-/persistent-merkle-tree-1.1.0.tgz#d10d9e926f2c5751d02a188b8fb6823821572aca"
707+
integrity sha512-UIcKEGkEGghTXbFTvKqIiN2iljg2f6c2Y8GxdQEyle5UI6YIB8d3ACYTkAhrHSB4YsNlG9pc/A0NGJw/3Hf9wQ==
708+
dependencies:
709+
"@chainsafe/as-sha256" "1.1.0"
710+
"@chainsafe/hashtree" "1.0.1"
711+
"@noble/hashes" "^1.3.0"
712+
699713
"@chainsafe/persistent-merkle-tree@^0.6.1":
700714
version "0.6.1"
701715
resolved "https://registry.yarnpkg.com/@chainsafe/persistent-merkle-tree/-/persistent-merkle-tree-0.6.1.tgz#37bde25cf6cbe1660ad84311aa73157dc86ec7f2"
@@ -775,6 +789,14 @@
775789
"@chainsafe/as-sha256" "^1.0.1"
776790
"@chainsafe/persistent-merkle-tree" "^1.0.2"
777791

792+
"@chainsafe/ssz@^1.2.0":
793+
version "1.2.0"
794+
resolved "https://registry.yarnpkg.com/@chainsafe/ssz/-/ssz-1.2.0.tgz#7201cc885460bfd4cf991791070100c3512aba1e"
795+
integrity sha512-fsFFBfT5JPCypyzENDg6srd6woNMj0+x6OLR5X1di+IK5mYlxBiAVsH/bYVj/u5DE3nanAgPZOc5KSszoDBRvw==
796+
dependencies:
797+
"@chainsafe/as-sha256" "1.1.0"
798+
"@chainsafe/persistent-merkle-tree" "1.1.0"
799+
778800
"@chainsafe/swap-or-not-shuffle-darwin-arm64@0.0.2":
779801
version "0.0.2"
780802
resolved "https://registry.yarnpkg.com/@chainsafe/swap-or-not-shuffle-darwin-arm64/-/swap-or-not-shuffle-darwin-arm64-0.0.2.tgz#9c4b02970619b9ec5274f357f3a03ff97e745957"

0 commit comments

Comments
 (0)