11import { type EthereumProviderConfig } from "@toruslabs/ethereum-controllers" ;
2- import { Auth , LOGIN_PROVIDER , LoginParams , SUPPORTED_KEY_CURVES , UX_MODE , UX_MODE_TYPE , WEB3AUTH_NETWORK } from "@web3auth/auth" ;
2+ import { Auth , LOGIN_PROVIDER , LoginParams , SUPPORTED_KEY_CURVES , UX_MODE , WEB3AUTH_NETWORK } from "@web3auth/auth" ;
33import { type default as WsEmbed } from "@web3auth/ws-embed" ;
44import deepmerge from "deepmerge" ;
55
@@ -27,7 +27,6 @@ import {
2727 Web3AuthError ,
2828} from "@/core/base" ;
2929
30- import { getAuthDefaultOptions } from "./config" ;
3130import type { AuthConnectorOptions , LoginConfig , LoginSettings , PrivateKeyProvider , WalletServicesSettings } from "./interface" ;
3231
3332export type AuthLoginParams = LoginParams & {
@@ -59,15 +58,7 @@ class AuthConnector extends BaseConnector<AuthLoginParams> {
5958 constructor ( params : AuthConnectorOptions ) {
6059 super ( params ) ;
6160
62- // set auth options
63- const defaultOptions = getAuthDefaultOptions ( ) ;
64- log . info ( "setting connector settings" , params . connectorSettings ) ;
65- this . authOptions = deepmerge . all ( [
66- defaultOptions . connectorSettings ,
67- this . authOptions || { } ,
68- params . connectorSettings || { } ,
69- ] ) as AuthConnectorOptions [ "connectorSettings" ] ;
70-
61+ this . authOptions = params . connectorSettings ;
7162 this . loginSettings = params . loginSettings || { loginProvider : "" } ;
7263 this . wsSettings = params . walletServicesSettings || { } ;
7364 }
@@ -98,7 +89,7 @@ class AuthConnector extends BaseConnector<AuthLoginParams> {
9889 const isRedirectResult = this . authOptions . uxMode === UX_MODE . REDIRECT ;
9990
10091 this . authOptions = { ...this . authOptions , replaceUrlOnRedirect : isRedirectResult , useCoreKitKey : this . coreOptions . useCoreKitKey } ;
101- const web3AuthNetwork = this . authOptions . network || this . coreOptions . web3AuthNetwork || WEB3AUTH_NETWORK . SAPPHIRE_MAINNET ;
92+ const web3AuthNetwork = this . coreOptions . web3AuthNetwork || WEB3AUTH_NETWORK . SAPPHIRE_MAINNET ;
10293 this . authInstance = new Auth ( {
10394 ...this . authOptions ,
10495 clientId : this . coreOptions . clientId ,
@@ -114,7 +105,7 @@ class AuthConnector extends BaseConnector<AuthLoginParams> {
114105 case CHAIN_NAMESPACES . SOLANA : {
115106 const { default : WsEmbed } = await import ( "@web3auth/ws-embed" ) ;
116107 this . wsEmbedInstance = new WsEmbed ( {
117- web3AuthClientId : this . coreOptions . clientId || "" ,
108+ web3AuthClientId : this . coreOptions . clientId ,
118109 web3AuthNetwork,
119110 modalZIndex : this . wsSettings . modalZIndex ,
120111 } ) ;
@@ -357,15 +348,10 @@ class AuthConnector extends BaseConnector<AuthLoginParams> {
357348 }
358349}
359350
360- export const authConnector = ( params ?: { uxMode ?: UX_MODE_TYPE } ) : ConnectorFn => {
351+ export const authConnector = ( params ?: AuthConnectorOptions ) : ConnectorFn => {
361352 return ( { projectConfig, coreOptions } : ConnectorParams ) => {
362- const connectorSettings : AuthConnectorOptions [ "connectorSettings" ] = {
363- network : coreOptions . web3AuthNetwork || WEB3AUTH_NETWORK . SAPPHIRE_MAINNET ,
364- clientId : coreOptions . clientId ,
365- uxMode : params ?. uxMode || UX_MODE . POPUP ,
366- } ;
367-
368- // sms otp config
353+ // Connector settings
354+ const connectorSettings : AuthConnectorOptions [ "connectorSettings" ] = { uxMode : UX_MODE . POPUP } ;
369355 const { sms_otp_enabled : smsOtpEnabled , whitelist } = projectConfig ;
370356 if ( smsOtpEnabled !== undefined ) {
371357 connectorSettings . loginConfig = {
@@ -377,17 +363,12 @@ export const authConnector = (params?: { uxMode?: UX_MODE_TYPE }): ConnectorFn =
377363 } as LoginConfig [ keyof LoginConfig ] ,
378364 } ;
379365 }
380-
381- // whitelist config
382- if ( whitelist ) {
383- connectorSettings . originData = whitelist . signed_urls ;
384- }
385-
386- // whitelabel config
387- const { whitelabel } = projectConfig ;
388- const uiConfig = deepmerge ( cloneDeep ( whitelabel || { } ) , coreOptions . uiConfig || { } ) ;
366+ if ( whitelist ) connectorSettings . originData = whitelist . signed_urls ;
367+ if ( coreOptions . uiConfig ?. uxMode ) connectorSettings . uxMode = coreOptions . uiConfig . uxMode ;
368+ const uiConfig = deepmerge ( cloneDeep ( projectConfig ?. whitelabel || { } ) , coreOptions . uiConfig || { } ) ;
389369 if ( ! uiConfig . mode ) uiConfig . mode = "light" ;
390370 connectorSettings . whiteLabel = uiConfig ;
371+ const finalConnectorSettings = deepmerge ( params ?. connectorSettings || { } , connectorSettings ) as AuthConnectorOptions [ "connectorSettings" ] ;
391372
392373 // WS settings
393374 const finalWsSettings : WalletServicesSettings = {
@@ -400,12 +381,12 @@ export const authConnector = (params?: { uxMode?: UX_MODE_TYPE }): ConnectorFn =
400381 enableLogging : coreOptions . enableLogging ,
401382 } ;
402383
403- const connectorOptions : AuthConnectorOptions = {
404- connectorSettings,
384+ return new AuthConnector ( {
385+ connectorSettings : finalConnectorSettings ,
405386 walletServicesSettings : finalWsSettings ,
387+ loginSettings : params ?. loginSettings ,
406388 coreOptions,
407- } ;
408- return new AuthConnector ( connectorOptions ) ;
389+ } ) ;
409390 } ;
410391} ;
411392
0 commit comments