Skip to content

Commit dd7e13e

Browse files
Merge pull request #179 from Web3Auth/fix/optimizations
minor optimization and undefined session handle
2 parents f33b158 + db5c1fc commit dd7e13e

File tree

1 file changed

+11
-8
lines changed

1 file changed

+11
-8
lines changed

src/mpcCoreKit.ts

Lines changed: 11 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -387,20 +387,23 @@ export class Web3AuthMPCCoreKit implements ICoreKit {
387387
}
388388

389389
// get postbox key.
390-
let loginResponse: TorusKey;
390+
let loginPromise: Promise<TorusKey>;
391391
if (!params.subVerifier) {
392392
// single verifier login.
393-
loginResponse = await this.torusSp.customAuthInstance.getTorusKey(verifier, verifierId, { verifier_id: verifierId }, idToken, {
393+
loginPromise = this.torusSp.customAuthInstance.getTorusKey(verifier, verifierId, { verifier_id: verifierId }, idToken, {
394394
...params.extraVerifierParams,
395395
...params.additionalParams,
396396
});
397397
} else {
398398
// aggregate verifier login
399-
loginResponse = await this.torusSp.customAuthInstance.getAggregateTorusKey(verifier, verifierId, [
399+
loginPromise = this.torusSp.customAuthInstance.getAggregateTorusKey(verifier, verifierId, [
400400
{ verifier: params.subVerifier, idToken, extraVerifierParams: params.extraVerifierParams },
401401
]);
402402
}
403403

404+
// wait for prefetch completed before setup tkey
405+
const [loginResponse] = await Promise.all([loginPromise, ...prefetchTssPubs]);
406+
404407
const postBoxKey = this._getPostBoxKey(loginResponse);
405408

406409
this.torusSp.postboxKey = new BN(postBoxKey, "hex");
@@ -410,10 +413,6 @@ export class Web3AuthMPCCoreKit implements ICoreKit {
410413
userInfo: { ...parseToken(idToken), verifier, verifierId },
411414
signatures: this._getSignatures(loginResponse.sessionData.sessionTokenData),
412415
});
413-
414-
// wait for prefetch completed before setup tkey
415-
await Promise.all(prefetchTssPubs);
416-
417416
await this.setupTkey(importTssKey);
418417
} catch (err: unknown) {
419418
log.error("login error", err);
@@ -1190,7 +1189,11 @@ export class Web3AuthMPCCoreKit implements ICoreKit {
11901189
}
11911190

11921191
private _getSignatures(sessionData: TorusKey["sessionData"]["sessionTokenData"]): string[] {
1193-
return sessionData.map((session) => JSON.stringify({ data: session.token, sig: session.signature }));
1192+
// There is a check in torus.js which pushes undefined to session data in case
1193+
// that particular node call fails.
1194+
// and before returning we are not filtering out undefined vals in torus.js
1195+
// TODO: fix this in torus.js
1196+
return sessionData.filter((session) => !!session).map((session) => JSON.stringify({ data: session.token, sig: session.signature }));
11941197
}
11951198

11961199
private isNodejsOrRN(params: CoreKitMode): boolean {

0 commit comments

Comments
 (0)