Skip to content

Commit f5d6117

Browse files
committed
switched to promise factory for isSerial
1 parent fbdae29 commit f5d6117

File tree

1 file changed

+15
-7
lines changed

1 file changed

+15
-7
lines changed

packages/sessions/src/trackers/multiple.ts

Lines changed: 15 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -32,10 +32,10 @@ export function raceUntil<T>(promises: Promise<T>[], fallback: T, evalRes: (val:
3232
})
3333
}
3434

35-
export async function serialResolve<T>(promises: Promise<T>[], fallback: T, evalRes: (val: T) => boolean): Promise<T> {
35+
export async function serialResolve<T>(promises: Array<() => Promise<T>>, fallback: T, evalRes: (val: T) => boolean): Promise<T> {
3636
for (const p of promises) {
3737
try {
38-
const val = await p
38+
const val = await p()
3939
if (evalRes(val)) {
4040
return val
4141
}
@@ -63,10 +63,14 @@ export class MultipleTracker implements migrator.PresignedMigrationTracker, Conf
6363
let result1: { res: commons.config.Config | undefined; i: number } | undefined
6464

6565
if (this.isSerial) {
66-
result1 = await serialResolve(requests, undefined, val => {
67-
if (val?.res === undefined) return false
68-
return universal.genericCoderFor(val.res.version).config.isComplete(val.res)
69-
})
66+
result1 = await serialResolve(
67+
requests.map(p => () => p),
68+
undefined,
69+
val => {
70+
if (val?.res === undefined) return false
71+
return universal.genericCoderFor(val.res.version).config.isComplete(val.res)
72+
}
73+
)
7074
} else {
7175
// We try to find a complete configuration, we race so that we don't wait for all trackers to respond
7276
result1 = await raceUntil(requests, undefined, val => {
@@ -113,7 +117,11 @@ export class MultipleTracker implements migrator.PresignedMigrationTracker, Conf
113117
const requests = this.trackers.map(t => t.imageHashOfCounterfactualWallet(args))
114118

115119
if (this.isSerial) {
116-
imageHash = await serialResolve(requests, undefined, result => Boolean(result))
120+
imageHash = await serialResolve(
121+
requests.map(p => () => p),
122+
undefined,
123+
result => Boolean(result)
124+
)
117125
} else {
118126
imageHash = await raceUntil(requests, undefined, result => Boolean(result))
119127
}

0 commit comments

Comments
 (0)