@@ -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