@@ -67,19 +67,47 @@ export const getSIWEConfig = ({
67
67
} ,
68
68
async signOut ( ) {
69
69
logger . debug ( 'Signing out...' ) ;
70
- await signOutQuery . refetch ( ) ;
71
- await nonceQuery . refetch ( ) ;
70
+ try {
71
+ await signOutQuery . refetch ( ) ;
72
+ queryClient . setQueryData ( [ 'valorem.trade.v1.Auth' , 'Nonce' ] , undefined ) ;
73
+ queryClient . setQueryData (
74
+ [ 'valorem.trade.v1.Auth' , 'Session' ] ,
75
+ undefined ,
76
+ ) ;
77
+ queryClient . setQueryData (
78
+ [ 'valorem.trade.v1.Auth' , 'Authenticate' ] ,
79
+ undefined ,
80
+ ) ;
81
+ queryClient . setQueryData ( [ 'valorem.trade.v1.Auth' , 'signed-out' ] , true ) ;
82
+ logger . info ( 'Signed out' ) ;
83
+ return true ;
84
+ } catch ( error ) {
85
+ logger . error ( 'Error signing out' ) ;
86
+ return false ;
87
+ }
88
+ } ,
89
+ async getSession ( ) {
90
+ logger . debug ( 'Getting session...' ) ;
91
+ await new Promise ( ( resolve ) => {
92
+ setTimeout ( resolve , 750 ) ;
93
+ } ) ;
94
+ if (
95
+ queryClient . getQueryData ( [ 'valorem.trade.v1.Auth' , 'signed-out' ] ) ===
96
+ true
97
+ ) {
98
+ logger . debug ( 'User is signed out' ) ;
99
+ queryClient . setQueryData (
100
+ [ 'valorem.trade.v1.Auth' , 'signed-out' ] ,
101
+ false ,
102
+ ) ;
103
+ return null ;
104
+ }
72
105
queryClient . setQueryData ( [ 'valorem.trade.v1.Auth' , 'Nonce' ] , undefined ) ;
73
106
queryClient . setQueryData ( [ 'valorem.trade.v1.Auth' , 'Session' ] , undefined ) ;
74
107
queryClient . setQueryData (
75
108
[ 'valorem.trade.v1.Auth' , 'Authenticate' ] ,
76
109
undefined ,
77
110
) ;
78
- logger . info ( 'Signed out' ) ;
79
- return true ;
80
- } ,
81
- async getSession ( ) {
82
- logger . debug ( 'Getting session...' ) ;
83
111
84
112
// check auth endpoint to ensure session is valid
85
113
const { data : authData } = await authenticateQuery . refetch ( { } ) ;
@@ -90,6 +118,7 @@ export const getSIWEConfig = ({
90
118
const authorizedAddress = fromH160ToAddress ( authData ) ;
91
119
if ( authorizedAddress . toLowerCase ( ) !== address ?. toLowerCase ( ) ) {
92
120
logger . error ( 'Authorized address does not match connected address' ) ;
121
+ return null ;
93
122
}
94
123
// get session data
95
124
const { data : sessionData } = await sessionQuery . refetch ( ) ;
@@ -98,8 +127,12 @@ export const getSIWEConfig = ({
98
127
return null ;
99
128
}
100
129
const sessionAddress = fromH160ToAddress ( sessionData . address ) ;
101
- if ( sessionAddress . toLowerCase ( ) === address ? .toLowerCase ( ) ) {
130
+ if ( sessionAddress . toLowerCase ( ) === address . toLowerCase ( ) ) {
102
131
logger . debug ( 'Session is valid' ) ;
132
+ queryClient . setQueryData (
133
+ [ 'valorem.trade.v1.Auth' , 'signed-out' ] ,
134
+ false ,
135
+ ) ;
103
136
return {
104
137
address : sessionAddress ,
105
138
chainId : Number ( fromH256 ( sessionData . chainId ) . toString ( ) ) ,
0 commit comments