@@ -1826,6 +1826,7 @@ export class Clerk implements ClerkInterface {
1826
1826
unsafeMetadata,
1827
1827
strategy,
1828
1828
legalAccepted,
1829
+ secondFactorUrl,
1829
1830
} : ClerkAuthenticateWithWeb3Params ) : Promise < void > => {
1830
1831
if ( __BUILD_DISABLE_RHC__ ) {
1831
1832
clerkUnsupportedEnvironmentWarning ( 'Web3' ) ;
@@ -1835,6 +1836,9 @@ export class Clerk implements ClerkInterface {
1835
1836
if ( ! this . client || ! this . environment ) {
1836
1837
return ;
1837
1838
}
1839
+
1840
+ const { displayConfig } = this . environment ;
1841
+
1838
1842
const provider = strategy . replace ( 'web3_' , '' ) . replace ( '_signature' , '' ) as Web3Provider ;
1839
1843
const identifier = await getWeb3Identifier ( { provider } ) ;
1840
1844
const generateSignature =
@@ -1844,9 +1848,24 @@ export class Clerk implements ClerkInterface {
1844
1848
? generateSignatureWithCoinbaseWallet
1845
1849
: generateSignatureWithOKXWallet ;
1846
1850
1847
- const navigate = ( to : string ) =>
1851
+ const makeNavigate = ( to : string ) => ( ) =>
1848
1852
customNavigate && typeof customNavigate === 'function' ? customNavigate ( to ) : this . navigate ( to ) ;
1849
1853
1854
+ const navigateToFactorTwo = makeNavigate (
1855
+ secondFactorUrl || buildURL ( { base : displayConfig . signInUrl , hashPath : '/factor-two' } , { stringify : true } ) ,
1856
+ ) ;
1857
+
1858
+ const navigateToContinueSignUp = makeNavigate (
1859
+ signUpContinueUrl ||
1860
+ buildURL (
1861
+ {
1862
+ base : displayConfig . signUpUrl ,
1863
+ hashPath : '/continue' ,
1864
+ } ,
1865
+ { stringify : true } ,
1866
+ ) ,
1867
+ ) ;
1868
+
1850
1869
let signInOrSignUp : SignInResource | SignUpResource ;
1851
1870
try {
1852
1871
signInOrSignUp = await this . client . signIn . authenticateWithWeb3 ( {
@@ -1869,7 +1888,7 @@ export class Clerk implements ClerkInterface {
1869
1888
signInOrSignUp . status === 'missing_requirements' &&
1870
1889
signInOrSignUp . verifications . web3Wallet . status === 'verified'
1871
1890
) {
1872
- await navigate ( signUpContinueUrl ) ;
1891
+ await navigateToContinueSignUp ( ) ;
1873
1892
}
1874
1893
} else {
1875
1894
throw err ;
@@ -1878,7 +1897,7 @@ export class Clerk implements ClerkInterface {
1878
1897
1879
1898
switch ( signInOrSignUp . status ) {
1880
1899
case 'needs_second_factor' :
1881
- await navigate ( 'factor-two' ) ;
1900
+ await navigateToFactorTwo ( ) ;
1882
1901
break ;
1883
1902
case 'complete' :
1884
1903
if ( signInOrSignUp . createdSessionId ) {
0 commit comments