@@ -78,6 +78,15 @@ private void Awake()
7878 PrivyManager . Instance . AuthStateChanged += OnAuthStateChange ;
7979 }
8080
81+ private void OnDestroy ( )
82+ {
83+ // remove event handler to prevent memory leaks when this object is destroyed
84+ if ( PrivyManager . Instance != null )
85+ {
86+ PrivyManager . Instance . AuthStateChanged -= OnAuthStateChange ;
87+ }
88+ }
89+
8190 // ── Login method switching ───────────────────────────────────────────────
8291
8392 /// <summary>Called by UIManager before showing the send-code screen.</summary>
@@ -338,15 +347,41 @@ private void OnWalletButtonClick()
338347 private async void OnGetAccessTokenButtonClick ( )
339348 {
340349 IPrivyUser user = await PrivyManager . Instance . GetUser ( ) ;
341- string accessToken = await user ! . GetAccessToken ( ) ;
342- Debug . Log ( "Access token: " + accessToken ) ;
350+ if ( user == null )
351+ {
352+ Debug . LogWarning ( "No authenticated user available to fetch access token." ) ;
353+ return ;
354+ }
355+
356+ try
357+ {
358+ string accessToken = await user . GetAccessToken ( ) ;
359+ Debug . Log ( "Access token: " + accessToken ) ;
360+ }
361+ catch ( Exception ex )
362+ {
363+ Debug . LogError ( "Failed to get access token: " + ex . Message ) ;
364+ }
343365 }
344366
345367 private async void OnGetIdentityTokenButtonClick ( )
346368 {
347369 IPrivyUser user = await PrivyManager . Instance . GetUser ( ) ;
348- string identityToken = await user ! . GetIdentityToken ( ) ;
349- Debug . Log ( "Identity token: " + identityToken ) ;
370+ if ( user == null )
371+ {
372+ Debug . LogWarning ( "No authenticated user available to fetch identity token." ) ;
373+ return ;
374+ }
375+
376+ try
377+ {
378+ string identityToken = await user . GetIdentityToken ( ) ;
379+ Debug . Log ( "Identity token: " + identityToken ) ;
380+ }
381+ catch ( Exception ex )
382+ {
383+ Debug . LogError ( "Failed to get identity token: " + ex . Message ) ;
384+ }
350385 }
351386
352387 private void OnLogOutButtonClick ( )
0 commit comments