File tree Expand file tree Collapse file tree 2 files changed +25
-8
lines changed
Expand file tree Collapse file tree 2 files changed +25
-8
lines changed Original file line number Diff line number Diff line change @@ -245,7 +245,7 @@ export class AppKit {
245245 /**
246246 * Returns the provider for a given namespace.
247247 * @param namespace - The namespace to get the provider for.
248- * @returns The provider for the given namespace.
248+ * @returns The provider for the given namespace, or null if not available or not yet initialized .
249249 */
250250 getProvider < T extends Provider > ( namespace ?: string ) : T | null {
251251 const activeNamespace = namespace ?? ConnectionsController . state . activeNamespace ;
@@ -256,7 +256,15 @@ export class AppKit {
256256 ) ;
257257 if ( ! connection || ! connection . adapter || ! connection . adapter . connector ) return null ;
258258
259- return connection . adapter . connector . getProvider ( ) as T ;
259+ try {
260+ return connection . adapter . connector . getProvider ( ) as T | null ;
261+ } catch ( error ) {
262+ // Provider not initialized yet during session restoration
263+ // This can happen on app restart when restoring a previous connection
264+ LogController . sendError ( error , 'AppKit.ts' , 'getProvider' ) ;
265+
266+ return null ;
267+ }
260268 }
261269
262270 getNetworks ( ) {
Original file line number Diff line number Diff line change 11/* eslint-disable valtio/state-snapshot-rule */
22import { useMemo } from 'react' ;
33import { useSnapshot } from 'valtio' ;
4- import { ConnectionsController } from '@reown/appkit-core-react-native' ;
4+ import { ConnectionsController , LogController } from '@reown/appkit-core-react-native' ;
55import type { Provider , ChainNamespace } from '@reown/appkit-common-react-native' ;
66
77/**
@@ -40,12 +40,21 @@ export function useProvider(): ProviderResult {
4040 const { connection } = useSnapshot ( ConnectionsController . state ) ;
4141
4242 const returnValue = useMemo ( ( ) => {
43- if ( ! connection ) return { provider : undefined , providerType : undefined } ;
43+ if ( ! connection || ! connection . adapter ) {
44+ return { provider : undefined , providerType : undefined } ;
45+ }
4446
45- return {
46- provider : connection . adapter . getProvider ( ) ,
47- providerType : connection . adapter . getSupportedNamespace ( )
48- } ;
47+ try {
48+ return {
49+ provider : connection . adapter . getProvider ( ) ,
50+ providerType : connection . adapter . getSupportedNamespace ( )
51+ } ;
52+ } catch ( error ) {
53+ LogController . sendError ( error , 'useProvider' , 'useProvider' ) ;
54+
55+ // Provider not initialized yet during session restoration
56+ return { provider : undefined , providerType : undefined } ;
57+ }
4958 } , [ connection ] ) ;
5059
5160 return returnValue ;
You can’t perform that action at this time.
0 commit comments