@@ -194,14 +194,26 @@ export function checkEVMSignPayload({
194194 return actualPayload ;
195195}
196196
197- export function userByEmailQuery ( user , email , isEmailVerified = false ) {
197+ export async function userOrWalletByEmailQuery ( {
198+ user,
199+ evmWallet,
200+ likeWallet,
201+ } : {
202+ user ?: string ,
203+ evmWallet ?: string ,
204+ likeWallet ?: string ,
205+ } , email : string , isEmailVerified = false ) : Promise < boolean > {
198206 return dbRef . where ( 'email' , '==' , email ) . get ( ) . then ( ( snapshot ) => {
199207 snapshot . forEach ( ( doc ) => {
200208 const docUser = doc . id ;
201- if ( user !== docUser ) {
209+ const docData = doc . data ( ) ;
210+ if (
211+ ( user && user !== docUser )
212+ || ( evmWallet && evmWallet !== docData . evmWallet )
213+ || ( likeWallet && likeWallet !== docData . likeWallet )
214+ ) {
202215 let payload : any = null ;
203216 if ( isEmailVerified ) {
204- const { evmWallet, likeWallet } = doc . data ( ) ;
205217 payload = {
206218 evmWallet : maskString ( evmWallet ) ,
207219 likeWallet : maskString ( likeWallet , { start : 11 } ) ,
@@ -316,7 +328,9 @@ async function userInfoQuery({
316328 return { isOldUser, oldUserObj } ;
317329 } ) : Promise . resolve ( { isOldUser : false , oldUserObj : null } ) ;
318330
319- const emailQuery = email ? userByEmailQuery ( user , email , isEmailVerified ) : Promise . resolve ( ) ;
331+ const emailQuery = email
332+ ? userOrWalletByEmailQuery ( { user, evmWallet, likeWallet } , email , isEmailVerified )
333+ : Promise . resolve ( ) ;
320334
321335 const cosmosWalletQuery = cosmosWallet ? dbRef . where ( 'cosmosWallet' , '==' , cosmosWallet ) . get ( ) . then ( ( snapshot ) => {
322336 snapshot . forEach ( ( doc ) => {
0 commit comments