@@ -61,7 +61,7 @@ private void Awake()
6161
6262 #region Connection Flow
6363
64- public async Task < User > Connect ( EmbeddedWallet embeddedWallet , string email , AuthOptions authOptions )
64+ public virtual async Task < User > Connect ( EmbeddedWallet embeddedWallet , string email , AuthOptions authOptions )
6565 {
6666 var config = Resources . Load < ThirdwebConfig > ( "ThirdwebConfig" ) ;
6767 _customScheme = config != null ? config . customScheme : null ;
@@ -135,7 +135,7 @@ public async Task<User> Connect(EmbeddedWallet embeddedWallet, string email, Aut
135135 return _user ;
136136 }
137137
138- public void Cancel ( )
138+ public virtual void Cancel ( )
139139 {
140140 _exception = new UnityException ( "User cancelled" ) ;
141141 }
@@ -144,7 +144,7 @@ public void Cancel()
144144
145145 #region Email OTP Flow
146146
147- private async Task LoginWithOTP ( )
147+ public virtual async Task LoginWithOTP ( )
148148 {
149149 if ( _email == null )
150150 throw new UnityException ( "Email is required for OTP login" ) ;
@@ -154,7 +154,7 @@ private async Task LoginWithOTP()
154154 EmbeddedWalletCanvas . SetActive ( true ) ;
155155 }
156156
157- private async Task OnSendOTP ( )
157+ public virtual async Task OnSendOTP ( )
158158 {
159159 try
160160 {
@@ -169,7 +169,7 @@ private async Task OnSendOTP()
169169 }
170170 }
171171
172- private async void OnSubmitOTP ( )
172+ public virtual async void OnSubmitOTP ( )
173173 {
174174 OTPInput . interactable = false ;
175175 RecoveryInput . interactable = false ;
@@ -207,7 +207,7 @@ private async void OnSubmitOTP()
207207
208208 #region OAuth2 Flow
209209
210- private async Task LoginWithOauth ( string authProviderStr )
210+ public virtual async Task LoginWithOauth ( string authProviderStr )
211211 {
212212 if ( Application . isMobilePlatform && string . IsNullOrEmpty ( _customScheme ) )
213213 throw new UnityException ( "No custom scheme provided for mobile deeplinks, please set one in your ThirdwebConfig (found in ThirdwebManager)" ) ;
@@ -251,7 +251,7 @@ private async Task LoginWithOauth(string authProviderStr)
251251 }
252252 }
253253
254- private async void OnSubmitRecoveryOauth ( string authProviderStr , string authResult )
254+ public virtual async void OnSubmitRecoveryOauth ( string authProviderStr , string authResult )
255255 {
256256 try
257257 {
@@ -266,7 +266,7 @@ private async void OnSubmitRecoveryOauth(string authProviderStr, string authResu
266266 }
267267 }
268268
269- private async Task < string > GetLoginLink ( string authProvider )
269+ public virtual async Task < string > GetLoginLink ( string authProvider )
270270 {
271271 string loginUrl = await _embeddedWallet . FetchHeadlessOauthLoginLinkAsync ( authProvider ) ;
272272 string platform = "unity" ;
@@ -279,7 +279,7 @@ private async Task<string> GetLoginLink(string authProvider)
279279
280280 #region JWT Flow
281281
282- private async Task LoginWithJWT ( string jwtToken , string encryptionKey , string recoveryCode = null )
282+ public virtual async Task LoginWithJWT ( string jwtToken , string encryptionKey , string recoveryCode = null )
283283 {
284284 if ( string . IsNullOrEmpty ( jwtToken ) )
285285 throw new UnityException ( "JWT token is required for JWT login!" ) ;
@@ -295,7 +295,7 @@ private async Task LoginWithJWT(string jwtToken, string encryptionKey, string re
295295
296296 #region Auth Endpoint Flow
297297
298- private async Task LoginWithAuthEndpoint ( string payload , string encryptionKey , string recoveryCode = null )
298+ public virtual async Task LoginWithAuthEndpoint ( string payload , string encryptionKey , string recoveryCode = null )
299299 {
300300 if ( string . IsNullOrEmpty ( payload ) )
301301 throw new UnityException ( "Auth payload is required for Auth Endpoint login!" ) ;
@@ -311,15 +311,15 @@ private async Task LoginWithAuthEndpoint(string payload, string encryptionKey, s
311311
312312 #region Common
313313
314- private void DisplayRecoveryInput ( bool hideOtpInput )
314+ public virtual void DisplayRecoveryInput ( bool hideOtpInput )
315315 {
316316 if ( hideOtpInput )
317317 OTPInput . gameObject . SetActive ( false ) ;
318318 RecoveryInput . gameObject . SetActive ( true ) ;
319319 EmbeddedWalletCanvas . SetActive ( true ) ;
320320 }
321321
322- private void ShowRecoveryCodes ( EmbeddedWallet . VerifyResult res )
322+ public virtual void ShowRecoveryCodes ( EmbeddedWallet . VerifyResult res )
323323 {
324324 if ( res . MainRecoveryCode != null && res . WasEmailed . HasValue && res . WasEmailed . Value == false )
325325 {
0 commit comments