From c694c43d821da9c71d7f23cdb7c702f5e065ad5b Mon Sep 17 00:00:00 2001 From: Alex Date: Wed, 30 Apr 2025 14:31:48 +0300 Subject: [PATCH] =?UTF-8?q?=D0=B2=D0=B0=D1=88=D0=B5=20=D1=81=D0=BE=D0=BE?= =?UTF-8?q?=D0=B1=D1=89=D0=B5=D0=BD=D0=B8=D0=B5=20=D0=BA=D0=BE=D0=BC=D0=BC?= =?UTF-8?q?=D0=B8=D1=82=D0=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- backend/logs/combined.log | 2291 ----------------- backend/logs/error.log | 7 - .../src/components/NotificationDisplay.vue | 113 + frontend/src/components/Sidebar.vue | 2 +- frontend/src/composables/useAuthFlow.js | 223 ++ frontend/src/composables/useChat.js | 383 +++ frontend/src/composables/useNotifications.js | 50 + frontend/src/composables/useTokenBalances.js | 99 + frontend/src/utils/helpers.js | 45 + frontend/src/utils/storage.js | 53 + frontend/src/views/HomeView.vue | 1428 +--------- 11 files changed, 1089 insertions(+), 3605 deletions(-) create mode 100644 frontend/src/components/NotificationDisplay.vue create mode 100644 frontend/src/composables/useAuthFlow.js create mode 100644 frontend/src/composables/useChat.js create mode 100644 frontend/src/composables/useNotifications.js create mode 100644 frontend/src/composables/useTokenBalances.js create mode 100644 frontend/src/utils/helpers.js create mode 100644 frontend/src/utils/storage.js diff --git a/backend/logs/combined.log b/backend/logs/combined.log index 3a11abb..e69de29 100644 --- a/backend/logs/combined.log +++ b/backend/logs/combined.log @@ -1,2291 +0,0 @@ -{"level":"info","message":"GET /api/auth/check","timestamp":"2025-04-28T07:32:09.835Z"} -{"cookie":{"expires":"2025-05-28T07:32:09.792Z","httpOnly":true,"originalMaxAge":2592000000,"path":"/","sameSite":"lax","secure":false},"guestId":"e9bcd9ebce01d5e1a1c7fafb4bf2c032","level":"info","message":"[SessionService] Saving session data:","timestamp":"2025-04-28T07:32:09.840Z"} -{"level":"info","message":"GET /api/auth/check","timestamp":"2025-04-28T07:32:09.843Z"} -{"cookie":{"expires":"2025-05-28T07:32:09.789Z","httpOnly":true,"originalMaxAge":2592000000,"path":"/","sameSite":"lax","secure":false},"guestId":"93409df821a0cfeea8d732b3299fab43","level":"info","message":"[SessionService] Saving session data:","timestamp":"2025-04-28T07:32:09.845Z"} -{"level":"info","message":"Session saved successfully","timestamp":"2025-04-28T07:32:09.851Z"} -{"level":"info","message":"Session saved successfully","timestamp":"2025-04-28T07:32:09.859Z"} -{"level":"info","message":"GET /api/auth/check","timestamp":"2025-04-28T07:32:18.425Z"} -{"level":"info","message":"GET /api/auth/check","timestamp":"2025-04-28T07:32:18.454Z"} -{"level":"info","message":"POST /api/chat/guest-message","timestamp":"2025-04-28T07:32:21.700Z"} -{"level":"info","message":"Received /guest-message request","timestamp":"2025-04-28T07:32:21.715Z"} -{"filesCount":0,"guestId":"1745825541972-nwmi3pcpe","level":"info","message":"Saving guest message: b","timestamp":"2025-04-28T07:32:21.717Z"} -{"level":"info","message":"Guest message saved with ID:","timestamp":"2025-04-28T07:32:21.732Z"} -{"level":"info","message":"Session saved after guest message","timestamp":"2025-04-28T07:32:21.737Z"} -{"level":"info","message":"POST /api/chat/guest-message","timestamp":"2025-04-28T07:32:34.187Z"} -{"level":"info","message":"GET /api/auth/check","timestamp":"2025-04-28T07:34:48.491Z"} -{"level":"info","message":"GET /api/auth/check","timestamp":"2025-04-28T07:34:48.508Z"} -{"level":"info","message":"GET /api/auth/check","timestamp":"2025-04-28T07:34:48.518Z"} -{"level":"info","message":"GET /api/auth/check","timestamp":"2025-04-28T07:36:52.321Z"} -{"level":"info","message":"GET /api/auth/check","timestamp":"2025-04-28T07:36:52.331Z"} -{"level":"info","message":"POST /api/chat/guest-message","timestamp":"2025-04-28T07:37:42.197Z"} -{"level":"info","message":"Received /guest-message request","timestamp":"2025-04-28T07:37:42.208Z"} -{"filesCount":1,"guestId":"1745825541972-nwmi3pcpe","level":"info","message":"Saving guest message: ьтб","timestamp":"2025-04-28T07:37:42.270Z"} -{"level":"info","message":"Guest message saved with ID:","timestamp":"2025-04-28T07:37:42.359Z"} -{"level":"info","message":"Session saved after guest message","timestamp":"2025-04-28T07:37:42.435Z"} -{"level":"info","message":"POST /api/chat/guest-message","timestamp":"2025-04-28T07:37:57.226Z"} -{"level":"info","message":"Received /guest-message request","timestamp":"2025-04-28T07:37:57.228Z"} -{"filesCount":1,"guestId":"1745825541972-nwmi3pcpe","level":"info","message":"Saving guest message: (no text)","timestamp":"2025-04-28T07:37:57.300Z"} -{"body":{"guestId":"1745825541972-nwmi3pcpe","language":"ru","message":""},"level":"error","message":"Error in /guest-message: null value in column \"content\" of relation \"guest_messages\" violates not-null constraint","stack":"error: null value in column \"content\" of relation \"guest_messages\" violates not-null constraint\n at /app/node_modules/pg-pool/index.js:45:11\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n at async /app/routes/chat.js:211:20","timestamp":"2025-04-28T07:37:57.316Z"} -{"level":"info","message":"GET /api/auth/nonce?address=0xF45aa4917b3775bA37f48Aeb3dc1a943561e9e0B","timestamp":"2025-04-28T07:40:17.150Z"} -{"level":"info","message":"Nonce d4b87d8a8d1ea2016b1e27e6192bb8f6 сохранен для адреса 0xF45aa4917b3775bA37f48Aeb3dc1a943561e9e0B","timestamp":"2025-04-28T07:40:17.159Z"} -{"level":"info","message":"POST /api/auth/verify","timestamp":"2025-04-28T07:40:22.611Z"} -{"level":"info","message":"[verify] Verifying signature for address: 0xF45aa4917b3775bA37f48Aeb3dc1a943561e9e0B","timestamp":"2025-04-28T07:40:22.613Z"} -{"level":"info","message":"Checking admin role for address: 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-28T07:40:22.713Z"} -{"address":"0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","balance":"500000.0","contract":"0x4B294265720B09ca39BFBA18c7E368413c0f68eB","hasTokens":true,"level":"info","message":"Token balance on bsc:","timestamp":"2025-04-28T07:40:23.856Z"} -{"level":"info","message":"Found admin tokens on bsc","timestamp":"2025-04-28T07:40:23.857Z"} -{"address":"0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","balance":"499999.9","contract":"0xdce769b847a0a697239777d0b1c7dd33b6012ba0","hasTokens":true,"level":"info","message":"Token balance on arbitrum:","timestamp":"2025-04-28T07:40:24.062Z"} -{"level":"info","message":"Found admin tokens on arbitrum","timestamp":"2025-04-28T07:40:24.063Z"} -{"address":"0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","balance":"1500000.0","contract":"0xd95a45fc46a7300e6022885afec3d618d7d3f27c","hasTokens":true,"level":"info","message":"Token balance on eth:","timestamp":"2025-04-28T07:40:24.064Z"} -{"level":"info","message":"Found admin tokens on eth","timestamp":"2025-04-28T07:40:24.064Z"} -{"address":"0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","balance":"454852.0","contract":"0x351f59de4fedbdf7601f5592b93db3b9330c1c1d","hasTokens":true,"level":"info","message":"Token balance on polygon:","timestamp":"2025-04-28T07:40:24.600Z"} -{"level":"info","message":"Found admin tokens on polygon","timestamp":"2025-04-28T07:40:24.600Z"} -{"balances":{"arbitrum":"499999.9","bsc":"500000.0","eth":"1500000.0","polygon":"454852.0"},"level":"info","message":"Admin role summary for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b:","networks":["bsc","arbitrum","eth","polygon"],"timestamp":"2025-04-28T07:40:24.600Z"} -{"level":"info","message":"Admin role granted for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-28T07:40:24.600Z"} -{"level":"info","message":"[verify] Found or created user 1 for wallet 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-28T07:40:24.600Z"} -{"level":"info","message":"[IdentityService] Converting guest identity for user 1 to guest_user_mapping: 1745825541972-nwmi3pcpe","timestamp":"2025-04-28T07:40:24.601Z"} -{"level":"info","message":"Checking admin tokens for address: 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-28T07:40:24.611Z"} -{"level":"info","message":"Checking admin role for address: 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-28T07:40:24.611Z"} -{"address":"0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","balance":"500000.0","contract":"0x4B294265720B09ca39BFBA18c7E368413c0f68eB","hasTokens":true,"level":"info","message":"Token balance on bsc:","timestamp":"2025-04-28T07:40:24.929Z"} -{"level":"info","message":"Found admin tokens on bsc","timestamp":"2025-04-28T07:40:24.930Z"} -{"address":"0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","balance":"1500000.0","contract":"0xd95a45fc46a7300e6022885afec3d618d7d3f27c","hasTokens":true,"level":"info","message":"Token balance on eth:","timestamp":"2025-04-28T07:40:25.118Z"} -{"level":"info","message":"Found admin tokens on eth","timestamp":"2025-04-28T07:40:25.119Z"} -{"address":"0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","balance":"454852.0","contract":"0x351f59de4fedbdf7601f5592b93db3b9330c1c1d","hasTokens":true,"level":"info","message":"Token balance on polygon:","timestamp":"2025-04-28T07:40:25.120Z"} -{"level":"info","message":"Found admin tokens on polygon","timestamp":"2025-04-28T07:40:25.121Z"} -{"address":"0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","balance":"499999.9","contract":"0xdce769b847a0a697239777d0b1c7dd33b6012ba0","hasTokens":true,"level":"info","message":"Token balance on arbitrum:","timestamp":"2025-04-28T07:40:25.265Z"} -{"level":"info","message":"Found admin tokens on arbitrum","timestamp":"2025-04-28T07:40:25.265Z"} -{"balances":{"arbitrum":"499999.9","bsc":"500000.0","eth":"1500000.0","polygon":"454852.0"},"level":"info","message":"Admin role summary for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b:","networks":["bsc","eth","polygon","arbitrum"],"timestamp":"2025-04-28T07:40:25.265Z"} -{"level":"info","message":"Admin role granted for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-28T07:40:25.265Z"} -{"level":"info","message":"Updated user 1 role to admin based on token holdings","timestamp":"2025-04-28T07:40:25.271Z"} -{"address":"0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","authType":"wallet","authenticated":true,"cookie":{"expires":"2025-05-28T07:32:09.789Z","httpOnly":true,"originalMaxAge":2592000000,"path":"/","sameSite":"lax","secure":false},"guestId":"1745825541972-nwmi3pcpe","isAdmin":true,"level":"info","message":"[SessionService] Saving session data:","timestamp":"2025-04-28T07:40:25.274Z","userId":1} -{"level":"info","message":"Session saved successfully","timestamp":"2025-04-28T07:40:25.276Z"} -{"level":"info","message":"[linkGuestMessages] Starting for user 1 with guestId=1745825541972-nwmi3pcpe, previousGuestId=undefined","timestamp":"2025-04-28T07:40:25.277Z"} -{"level":"info","message":"[processGuestMessagesWrapper] Processing messages: userId=1, guestId=1745825541972-nwmi3pcpe","timestamp":"2025-04-28T07:40:25.280Z"} -{"level":"info","message":"Processing guest messages for user 1 with guest ID 1745825541972-nwmi3pcpe","timestamp":"2025-04-28T07:40:25.282Z"} -{"level":"info","message":"Found 2 guest messages for guest ID 1745825541972-nwmi3pcpe","timestamp":"2025-04-28T07:40:25.285Z"} -{"level":"info","message":"Created new conversation 7 for guest messages","timestamp":"2025-04-28T07:40:25.291Z"} -{"level":"info","message":"Processing guest message ID 1: b","timestamp":"2025-04-28T07:40:25.291Z"} -{"level":"info","message":"Saved user message with ID 13","timestamp":"2025-04-28T07:40:25.306Z"} -{"level":"info","message":"Getting AI response for:","timestamp":"2025-04-28T07:40:25.306Z"} -{"level":"info","message":"AI response received","timestamp":"2025-04-28T07:40:49.261Z"} -{"level":"info","message":"Saved AI response with ID 14","timestamp":"2025-04-28T07:40:49.392Z"} -{"level":"info","message":"Processing guest message ID 2: ьтб","timestamp":"2025-04-28T07:40:49.393Z"} -{"level":"info","message":"Saved user message with ID 15","timestamp":"2025-04-28T07:40:49.396Z"} -{"level":"info","message":"Getting AI response for:","timestamp":"2025-04-28T07:40:49.396Z"} -{"level":"info","message":"AI response received","timestamp":"2025-04-28T07:40:58.133Z"} -{"level":"info","message":"Saved AI response with ID 16","timestamp":"2025-04-28T07:40:58.137Z"} -{"level":"info","message":"Deleted 2 processed guest messages for guest ID 1745825541972-nwmi3pcpe","timestamp":"2025-04-28T07:40:58.141Z"} -{"level":"info","message":"Marked guest mapping as processed for guest ID 1745825541972-nwmi3pcpe","timestamp":"2025-04-28T07:40:58.145Z"} -{"level":"info","message":"[processGuestMessagesWrapper] Processing messages: userId=1, guestId=537a3e77cd3bfc1d510624f9b9e28a74","timestamp":"2025-04-28T07:40:58.147Z"} -{"level":"info","message":"Processing guest messages for user 1 with guest ID 537a3e77cd3bfc1d510624f9b9e28a74","timestamp":"2025-04-28T07:40:58.148Z"} -{"level":"info","message":"Guest messages for guest ID 537a3e77cd3bfc1d510624f9b9e28a74 were already processed.","timestamp":"2025-04-28T07:40:58.149Z"} -{"level":"info","message":"[processGuestMessagesWrapper] Processing messages: userId=1, guestId=40f55fa54e2afc0586f0d21a91177b4c","timestamp":"2025-04-28T07:40:58.151Z"} -{"level":"info","message":"Processing guest messages for user 1 with guest ID 40f55fa54e2afc0586f0d21a91177b4c","timestamp":"2025-04-28T07:40:58.151Z"} -{"level":"info","message":"Guest messages for guest ID 40f55fa54e2afc0586f0d21a91177b4c were already processed.","timestamp":"2025-04-28T07:40:58.152Z"} -{"level":"info","message":"[processGuestMessagesWrapper] Processing messages: userId=1, guestId=0d2941cbfb7f6f0edd08800f87ef34ec","timestamp":"2025-04-28T07:40:58.154Z"} -{"level":"info","message":"Processing guest messages for user 1 with guest ID 0d2941cbfb7f6f0edd08800f87ef34ec","timestamp":"2025-04-28T07:40:58.154Z"} -{"level":"info","message":"Guest messages for guest ID 0d2941cbfb7f6f0edd08800f87ef34ec were already processed.","timestamp":"2025-04-28T07:40:58.155Z"} -{"level":"info","message":"[processGuestMessagesWrapper] Processing messages: userId=1, guestId=cd835088c3ef7c53928f0440d66834a3","timestamp":"2025-04-28T07:40:58.157Z"} -{"level":"info","message":"Processing guest messages for user 1 with guest ID cd835088c3ef7c53928f0440d66834a3","timestamp":"2025-04-28T07:40:58.157Z"} -{"level":"info","message":"Guest messages for guest ID cd835088c3ef7c53928f0440d66834a3 were already processed.","timestamp":"2025-04-28T07:40:58.158Z"} -{"level":"info","message":"[processGuestMessagesWrapper] Processing messages: userId=1, guestId=96168b8c8e026a644d818b1e45d304e0","timestamp":"2025-04-28T07:40:58.160Z"} -{"level":"info","message":"Processing guest messages for user 1 with guest ID 96168b8c8e026a644d818b1e45d304e0","timestamp":"2025-04-28T07:40:58.160Z"} -{"level":"info","message":"Guest messages for guest ID 96168b8c8e026a644d818b1e45d304e0 were already processed.","timestamp":"2025-04-28T07:40:58.161Z"} -{"level":"info","message":"[processGuestMessagesWrapper] Processing messages: userId=1, guestId=d2e47fd9e6fdbce7758bf586904023ea","timestamp":"2025-04-28T07:40:58.163Z"} -{"level":"info","message":"Processing guest messages for user 1 with guest ID d2e47fd9e6fdbce7758bf586904023ea","timestamp":"2025-04-28T07:40:58.163Z"} -{"level":"info","message":"Guest messages for guest ID d2e47fd9e6fdbce7758bf586904023ea were already processed.","timestamp":"2025-04-28T07:40:58.164Z"} -{"level":"info","message":"[processGuestMessagesWrapper] Processing messages: userId=1, guestId=c8aa02a9398569e9ac05bb300f93340f","timestamp":"2025-04-28T07:40:58.166Z"} -{"level":"info","message":"Processing guest messages for user 1 with guest ID c8aa02a9398569e9ac05bb300f93340f","timestamp":"2025-04-28T07:40:58.167Z"} -{"level":"info","message":"Guest messages for guest ID c8aa02a9398569e9ac05bb300f93340f were already processed.","timestamp":"2025-04-28T07:40:58.176Z"} -{"address":"0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","authType":"wallet","authenticated":true,"cookie":{"expires":"2025-05-28T07:32:09.789Z","httpOnly":true,"originalMaxAge":2592000000,"path":"/","sameSite":"lax","secure":false},"guestId":"1745825541972-nwmi3pcpe","isAdmin":true,"level":"info","message":"[SessionService] Saving session data:","processedGuestIds":["1745825541972-nwmi3pcpe","537a3e77cd3bfc1d510624f9b9e28a74","40f55fa54e2afc0586f0d21a91177b4c","0d2941cbfb7f6f0edd08800f87ef34ec","cd835088c3ef7c53928f0440d66834a3","96168b8c8e026a644d818b1e45d304e0","d2e47fd9e6fdbce7758bf586904023ea","c8aa02a9398569e9ac05bb300f93340f"],"timestamp":"2025-04-28T07:40:58.178Z","userId":1} -{"level":"info","message":"Session saved successfully","timestamp":"2025-04-28T07:40:58.181Z"} -{"level":"info","message":"GET /api/auth/check","timestamp":"2025-04-28T07:40:58.196Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T07:40:58.199Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T07:40:58.214Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T07:40:58.220Z"} -{"level":"info","message":"GET /api/auth/check","timestamp":"2025-04-28T07:40:58.233Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T07:40:58.234Z"} -{"level":"info","message":"GET /api/tokens/balances?address=0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-28T07:40:58.243Z"} -{"level":"info","message":"Fetching token balances for address: 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-28T07:40:58.244Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T07:40:58.249Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T07:40:58.252Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T07:40:58.272Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T07:40:58.274Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T07:40:58.287Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T07:40:58.289Z"} -{"level":"info","message":"GET /api/auth/check","timestamp":"2025-04-28T07:40:59.273Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T07:40:59.275Z"} -{"balance":"1500000.0","contract":"0xd95a45fc46a7300e6022885afec3d618d7d3f27c","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on eth:","timestamp":"2025-04-28T07:40:59.290Z"} -{"level":"info","message":"GET /api/chat/history?count_only=true","timestamp":"2025-04-28T07:40:59.291Z"} -{"level":"info","message":"Processing guest messages for user 1 with guest ID 1745825541972-nwmi3pcpe","timestamp":"2025-04-28T07:40:59.292Z"} -{"level":"info","message":"Guest messages for guest ID 1745825541972-nwmi3pcpe were already processed.","timestamp":"2025-04-28T07:40:59.294Z"} -{"level":"info","message":"GET /api/chat/history?offset=0&limit=30","timestamp":"2025-04-28T07:40:59.313Z"} -{"balance":"500000.0","contract":"0x4B294265720B09ca39BFBA18c7E368413c0f68eB","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on bsc:","timestamp":"2025-04-28T07:41:00.338Z"} -{"balance":"499999.9","contract":"0xdce769b847a0a697239777d0b1c7dd33b6012ba0","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on arbitrum:","timestamp":"2025-04-28T07:41:01.387Z"} -{"balance":"454852.0","contract":"0x351f59de4fedbdf7601f5592b93db3b9330c1c1d","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on polygon:","timestamp":"2025-04-28T07:41:02.621Z"} -{"arbitrum":"499999.9","bsc":"500000.0","eth":"1500000.0","level":"info","message":"Token balances fetched for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b:","polygon":"454852.0","timestamp":"2025-04-28T07:41:02.621Z"} -{"level":"info","message":"GET /api/tokens/balances?address=0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-28T07:41:02.632Z"} -{"level":"info","message":"Fetching token balances for address: 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-28T07:41:02.633Z"} -{"balance":"1500000.0","contract":"0xd95a45fc46a7300e6022885afec3d618d7d3f27c","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on eth:","timestamp":"2025-04-28T07:41:03.127Z"} -{"balance":"500000.0","contract":"0x4B294265720B09ca39BFBA18c7E368413c0f68eB","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on bsc:","timestamp":"2025-04-28T07:41:03.478Z"} -{"balance":"499999.9","contract":"0xdce769b847a0a697239777d0b1c7dd33b6012ba0","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on arbitrum:","timestamp":"2025-04-28T07:41:04.199Z"} -{"balance":"454852.0","contract":"0x351f59de4fedbdf7601f5592b93db3b9330c1c1d","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on polygon:","timestamp":"2025-04-28T07:41:04.654Z"} -{"arbitrum":"499999.9","bsc":"500000.0","eth":"1500000.0","level":"info","message":"Token balances fetched for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b:","polygon":"454852.0","timestamp":"2025-04-28T07:41:04.654Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T07:41:28.385Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T07:41:28.387Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T07:41:58.428Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T07:41:58.430Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T07:42:29.274Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T07:42:29.276Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T07:42:59.361Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T07:42:59.366Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T07:43:29.404Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T07:43:29.407Z"} -{"level":"info","message":"POST /api/auth/logout","timestamp":"2025-04-28T07:43:37.461Z"} -{"address":null,"authType":null,"authenticated":false,"cookie":{"expires":"2025-05-28T07:32:09.789Z","httpOnly":true,"originalMaxAge":2592000000,"path":"/","sameSite":"lax","secure":false},"email":null,"guestId":null,"isAdmin":false,"level":"info","message":"[SessionService] Saving session data:","pendingEmail":null,"previousGuestId":null,"processedGuestIds":[],"telegramId":null,"timestamp":"2025-04-28T07:43:37.466Z","userId":null} -{"level":"info","message":"Session saved successfully","timestamp":"2025-04-28T07:43:37.469Z"} -{"level":"info","message":"GET /api/auth/check","timestamp":"2025-04-28T07:43:37.482Z"} -{"cookie":{"expires":"2025-05-28T07:43:37.482Z","httpOnly":true,"originalMaxAge":2592000000,"path":"/","sameSite":"lax","secure":false},"guestId":"57bd7aad3bea6d74ba4cd97e7a55fd22","level":"info","message":"[SessionService] Saving session data:","timestamp":"2025-04-28T07:43:37.483Z"} -{"level":"info","message":"Session saved successfully","timestamp":"2025-04-28T07:43:37.487Z"} -{"level":"info","message":"POST /api/chat/guest-message","timestamp":"2025-04-28T07:43:49.286Z"} -{"level":"info","message":"Received /guest-message request","timestamp":"2025-04-28T07:43:49.289Z"} -{"filesCount":1,"guestId":"1745826229509-a9cc49arg","level":"info","message":"Saving guest message: (no text)","timestamp":"2025-04-28T07:43:49.313Z"} -{"body":{"guestId":"1745826229509-a9cc49arg","language":"ru","message":""},"level":"error","message":"Error in /guest-message: null value in column \"content\" of relation \"guest_messages\" violates not-null constraint","stack":"error: null value in column \"content\" of relation \"guest_messages\" violates not-null constraint\n at /app/node_modules/pg-pool/index.js:45:11\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n at async /app/routes/chat.js:211:20","timestamp":"2025-04-28T07:43:49.319Z"} -{"level":"info","message":"GET /api/auth/check","timestamp":"2025-04-28T07:52:49.551Z"} -{"level":"info","message":"GET /api/auth/check","timestamp":"2025-04-28T07:52:49.565Z"} -{"level":"info","message":"GET /api/auth/check","timestamp":"2025-04-28T07:52:49.576Z"} -{"level":"info","message":"POST /api/chat/guest-message","timestamp":"2025-04-28T07:52:57.467Z"} -{"level":"info","message":"Received /guest-message request","timestamp":"2025-04-28T07:52:57.475Z"} -{"filesCount":1,"guestId":"1745826229509-a9cc49arg","level":"info","message":"Saving guest message: (no text)","timestamp":"2025-04-28T07:52:57.517Z"} -{"level":"info","message":"Guest message saved with ID:","timestamp":"2025-04-28T07:52:57.522Z"} -{"level":"info","message":"Session saved after guest message","timestamp":"2025-04-28T07:52:57.525Z"} -{"level":"info","message":"GET /api/auth/check","timestamp":"2025-04-28T07:54:14.933Z"} -{"level":"info","message":"GET /api/auth/check","timestamp":"2025-04-28T07:54:14.954Z"} -{"level":"info","message":"GET /api/auth/check","timestamp":"2025-04-28T07:54:14.969Z"} -{"level":"info","message":"POST /api/chat/guest-message","timestamp":"2025-04-28T07:54:41.343Z"} -{"level":"info","message":"Received /guest-message request","timestamp":"2025-04-28T07:54:41.355Z"} -{"filesCount":1,"guestId":"1745826229509-a9cc49arg","level":"info","message":"Saving guest message: (no text)","timestamp":"2025-04-28T07:54:41.401Z"} -{"level":"info","message":"Guest message saved with ID:","timestamp":"2025-04-28T07:54:41.413Z"} -{"level":"info","message":"Session saved after guest message","timestamp":"2025-04-28T07:54:41.417Z"} -{"level":"info","message":"GET /api/auth/nonce?address=0xF45aa4917b3775bA37f48Aeb3dc1a943561e9e0B","timestamp":"2025-04-28T07:54:43.896Z"} -{"level":"info","message":"Nonce 5d15f5c1c5e6c3a6b361ac1f2b09aceb сохранен для адреса 0xF45aa4917b3775bA37f48Aeb3dc1a943561e9e0B","timestamp":"2025-04-28T07:54:43.904Z"} -{"level":"info","message":"POST /api/auth/verify","timestamp":"2025-04-28T07:54:47.513Z"} -{"level":"info","message":"[verify] Verifying signature for address: 0xF45aa4917b3775bA37f48Aeb3dc1a943561e9e0B","timestamp":"2025-04-28T07:54:47.515Z"} -{"level":"info","message":"Checking admin role for address: 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-28T07:54:47.610Z"} -{"address":"0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","balance":"500000.0","contract":"0x4B294265720B09ca39BFBA18c7E368413c0f68eB","hasTokens":true,"level":"info","message":"Token balance on bsc:","timestamp":"2025-04-28T07:54:48.849Z"} -{"level":"info","message":"Found admin tokens on bsc","timestamp":"2025-04-28T07:54:48.849Z"} -{"address":"0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","balance":"1500000.0","contract":"0xd95a45fc46a7300e6022885afec3d618d7d3f27c","hasTokens":true,"level":"info","message":"Token balance on eth:","timestamp":"2025-04-28T07:54:49.135Z"} -{"level":"info","message":"Found admin tokens on eth","timestamp":"2025-04-28T07:54:49.135Z"} -{"address":"0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","balance":"499999.9","contract":"0xdce769b847a0a697239777d0b1c7dd33b6012ba0","hasTokens":true,"level":"info","message":"Token balance on arbitrum:","timestamp":"2025-04-28T07:54:49.161Z"} -{"level":"info","message":"Found admin tokens on arbitrum","timestamp":"2025-04-28T07:54:49.162Z"} -{"address":"0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","balance":"454852.0","contract":"0x351f59de4fedbdf7601f5592b93db3b9330c1c1d","hasTokens":true,"level":"info","message":"Token balance on polygon:","timestamp":"2025-04-28T07:54:49.536Z"} -{"level":"info","message":"Found admin tokens on polygon","timestamp":"2025-04-28T07:54:49.536Z"} -{"balances":{"arbitrum":"499999.9","bsc":"500000.0","eth":"1500000.0","polygon":"454852.0"},"level":"info","message":"Admin role summary for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b:","networks":["bsc","eth","arbitrum","polygon"],"timestamp":"2025-04-28T07:54:49.537Z"} -{"level":"info","message":"Admin role granted for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-28T07:54:49.537Z"} -{"level":"info","message":"[verify] Found or created user 1 for wallet 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-28T07:54:49.537Z"} -{"level":"info","message":"[IdentityService] Converting guest identity for user 1 to guest_user_mapping: 1745826229509-a9cc49arg","timestamp":"2025-04-28T07:54:49.538Z"} -{"level":"info","message":"Checking admin tokens for address: 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-28T07:54:49.548Z"} -{"level":"info","message":"Checking admin role for address: 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-28T07:54:49.548Z"} -{"address":"0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","balance":"500000.0","contract":"0x4B294265720B09ca39BFBA18c7E368413c0f68eB","hasTokens":true,"level":"info","message":"Token balance on bsc:","timestamp":"2025-04-28T07:54:50.025Z"} -{"level":"info","message":"Found admin tokens on bsc","timestamp":"2025-04-28T07:54:50.026Z"} -{"address":"0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","balance":"1500000.0","contract":"0xd95a45fc46a7300e6022885afec3d618d7d3f27c","hasTokens":true,"level":"info","message":"Token balance on eth:","timestamp":"2025-04-28T07:54:50.166Z"} -{"level":"info","message":"Found admin tokens on eth","timestamp":"2025-04-28T07:54:50.167Z"} -{"address":"0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","balance":"454852.0","contract":"0x351f59de4fedbdf7601f5592b93db3b9330c1c1d","hasTokens":true,"level":"info","message":"Token balance on polygon:","timestamp":"2025-04-28T07:54:50.168Z"} -{"level":"info","message":"Found admin tokens on polygon","timestamp":"2025-04-28T07:54:50.168Z"} -{"address":"0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","balance":"499999.9","contract":"0xdce769b847a0a697239777d0b1c7dd33b6012ba0","hasTokens":true,"level":"info","message":"Token balance on arbitrum:","timestamp":"2025-04-28T07:54:50.401Z"} -{"level":"info","message":"Found admin tokens on arbitrum","timestamp":"2025-04-28T07:54:50.401Z"} -{"balances":{"arbitrum":"499999.9","bsc":"500000.0","eth":"1500000.0","polygon":"454852.0"},"level":"info","message":"Admin role summary for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b:","networks":["bsc","eth","polygon","arbitrum"],"timestamp":"2025-04-28T07:54:50.401Z"} -{"level":"info","message":"Admin role granted for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-28T07:54:50.401Z"} -{"level":"info","message":"Updated user 1 role to admin based on token holdings","timestamp":"2025-04-28T07:54:50.406Z"} -{"address":"0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","authType":"wallet","authenticated":true,"cookie":{"expires":"2025-05-28T07:43:49.320Z","httpOnly":true,"originalMaxAge":2592000000,"path":"/","sameSite":"lax","secure":false},"guestId":"1745826229509-a9cc49arg","isAdmin":true,"level":"info","message":"[SessionService] Saving session data:","timestamp":"2025-04-28T07:54:50.408Z","userId":1} -{"level":"info","message":"Session saved successfully","timestamp":"2025-04-28T07:54:50.413Z"} -{"level":"info","message":"[linkGuestMessages] Starting for user 1 with guestId=1745826229509-a9cc49arg, previousGuestId=undefined","timestamp":"2025-04-28T07:54:50.414Z"} -{"level":"info","message":"[processGuestMessagesWrapper] Processing messages: userId=1, guestId=1745826229509-a9cc49arg","timestamp":"2025-04-28T07:54:50.418Z"} -{"level":"info","message":"Processing guest messages for user 1 with guest ID 1745826229509-a9cc49arg","timestamp":"2025-04-28T07:54:50.419Z"} -{"level":"info","message":"Found 2 guest messages for guest ID 1745826229509-a9cc49arg","timestamp":"2025-04-28T07:54:50.423Z"} -{"level":"info","message":"Created new conversation 8 for guest messages","timestamp":"2025-04-28T07:54:50.429Z"} -{"level":"info","message":"Processing guest message ID 5: [Файл: image (33).png]","timestamp":"2025-04-28T07:54:50.430Z"} -{"level":"info","message":"Saved user message with ID 17","timestamp":"2025-04-28T07:54:50.442Z"} -{"level":"info","message":"Getting AI response for:","timestamp":"2025-04-28T07:54:50.443Z"} -{"level":"info","message":"AI response received","timestamp":"2025-04-28T07:55:18.654Z"} -{"level":"info","message":"Saved AI response with ID 18","timestamp":"2025-04-28T07:55:18.710Z"} -{"level":"info","message":"Processing guest message ID 6: [Файл: image (33).png]","timestamp":"2025-04-28T07:55:18.711Z"} -{"level":"info","message":"Saved user message with ID 19","timestamp":"2025-04-28T07:55:18.713Z"} -{"level":"info","message":"Getting AI response for:","timestamp":"2025-04-28T07:55:18.714Z"} -{"level":"info","message":"AI response received","timestamp":"2025-04-28T07:55:29.850Z"} -{"level":"info","message":"Saved AI response with ID 20","timestamp":"2025-04-28T07:55:29.869Z"} -{"level":"info","message":"Deleted 2 processed guest messages for guest ID 1745826229509-a9cc49arg","timestamp":"2025-04-28T07:55:29.874Z"} -{"level":"info","message":"Marked guest mapping as processed for guest ID 1745826229509-a9cc49arg","timestamp":"2025-04-28T07:55:29.878Z"} -{"level":"info","message":"[processGuestMessagesWrapper] Processing messages: userId=1, guestId=1745825541972-nwmi3pcpe","timestamp":"2025-04-28T07:55:29.880Z"} -{"level":"info","message":"Processing guest messages for user 1 with guest ID 1745825541972-nwmi3pcpe","timestamp":"2025-04-28T07:55:29.881Z"} -{"level":"info","message":"Guest messages for guest ID 1745825541972-nwmi3pcpe were already processed.","timestamp":"2025-04-28T07:55:29.882Z"} -{"level":"info","message":"[processGuestMessagesWrapper] Processing messages: userId=1, guestId=537a3e77cd3bfc1d510624f9b9e28a74","timestamp":"2025-04-28T07:55:29.885Z"} -{"level":"info","message":"Processing guest messages for user 1 with guest ID 537a3e77cd3bfc1d510624f9b9e28a74","timestamp":"2025-04-28T07:55:29.885Z"} -{"level":"info","message":"Guest messages for guest ID 537a3e77cd3bfc1d510624f9b9e28a74 were already processed.","timestamp":"2025-04-28T07:55:29.887Z"} -{"level":"info","message":"[processGuestMessagesWrapper] Processing messages: userId=1, guestId=40f55fa54e2afc0586f0d21a91177b4c","timestamp":"2025-04-28T07:55:29.889Z"} -{"level":"info","message":"Processing guest messages for user 1 with guest ID 40f55fa54e2afc0586f0d21a91177b4c","timestamp":"2025-04-28T07:55:29.890Z"} -{"level":"info","message":"Guest messages for guest ID 40f55fa54e2afc0586f0d21a91177b4c were already processed.","timestamp":"2025-04-28T07:55:29.892Z"} -{"level":"info","message":"[processGuestMessagesWrapper] Processing messages: userId=1, guestId=0d2941cbfb7f6f0edd08800f87ef34ec","timestamp":"2025-04-28T07:55:29.895Z"} -{"level":"info","message":"Processing guest messages for user 1 with guest ID 0d2941cbfb7f6f0edd08800f87ef34ec","timestamp":"2025-04-28T07:55:29.895Z"} -{"level":"info","message":"Guest messages for guest ID 0d2941cbfb7f6f0edd08800f87ef34ec were already processed.","timestamp":"2025-04-28T07:55:29.897Z"} -{"level":"info","message":"[processGuestMessagesWrapper] Processing messages: userId=1, guestId=cd835088c3ef7c53928f0440d66834a3","timestamp":"2025-04-28T07:55:29.899Z"} -{"level":"info","message":"Processing guest messages for user 1 with guest ID cd835088c3ef7c53928f0440d66834a3","timestamp":"2025-04-28T07:55:29.900Z"} -{"level":"info","message":"Guest messages for guest ID cd835088c3ef7c53928f0440d66834a3 were already processed.","timestamp":"2025-04-28T07:55:29.902Z"} -{"level":"info","message":"[processGuestMessagesWrapper] Processing messages: userId=1, guestId=96168b8c8e026a644d818b1e45d304e0","timestamp":"2025-04-28T07:55:29.904Z"} -{"level":"info","message":"Processing guest messages for user 1 with guest ID 96168b8c8e026a644d818b1e45d304e0","timestamp":"2025-04-28T07:55:29.905Z"} -{"level":"info","message":"Guest messages for guest ID 96168b8c8e026a644d818b1e45d304e0 were already processed.","timestamp":"2025-04-28T07:55:29.906Z"} -{"level":"info","message":"[processGuestMessagesWrapper] Processing messages: userId=1, guestId=d2e47fd9e6fdbce7758bf586904023ea","timestamp":"2025-04-28T07:55:29.909Z"} -{"level":"info","message":"Processing guest messages for user 1 with guest ID d2e47fd9e6fdbce7758bf586904023ea","timestamp":"2025-04-28T07:55:29.909Z"} -{"level":"info","message":"Guest messages for guest ID d2e47fd9e6fdbce7758bf586904023ea were already processed.","timestamp":"2025-04-28T07:55:29.911Z"} -{"level":"info","message":"[processGuestMessagesWrapper] Processing messages: userId=1, guestId=c8aa02a9398569e9ac05bb300f93340f","timestamp":"2025-04-28T07:55:29.913Z"} -{"level":"info","message":"Processing guest messages for user 1 with guest ID c8aa02a9398569e9ac05bb300f93340f","timestamp":"2025-04-28T07:55:29.914Z"} -{"level":"info","message":"Guest messages for guest ID c8aa02a9398569e9ac05bb300f93340f were already processed.","timestamp":"2025-04-28T07:55:29.915Z"} -{"address":"0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","authType":"wallet","authenticated":true,"cookie":{"expires":"2025-05-28T07:43:49.320Z","httpOnly":true,"originalMaxAge":2592000000,"path":"/","sameSite":"lax","secure":false},"guestId":"1745826229509-a9cc49arg","isAdmin":true,"level":"info","message":"[SessionService] Saving session data:","processedGuestIds":["1745826229509-a9cc49arg","1745825541972-nwmi3pcpe","537a3e77cd3bfc1d510624f9b9e28a74","40f55fa54e2afc0586f0d21a91177b4c","0d2941cbfb7f6f0edd08800f87ef34ec","cd835088c3ef7c53928f0440d66834a3","96168b8c8e026a644d818b1e45d304e0","d2e47fd9e6fdbce7758bf586904023ea","c8aa02a9398569e9ac05bb300f93340f"],"timestamp":"2025-04-28T07:55:29.918Z","userId":1} -{"level":"info","message":"Session saved successfully","timestamp":"2025-04-28T07:55:29.922Z"} -{"level":"info","message":"GET /api/auth/check","timestamp":"2025-04-28T07:55:29.942Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T07:55:29.946Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T07:55:29.965Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T07:55:29.971Z"} -{"level":"info","message":"GET /api/tokens/balances?address=0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-28T07:55:29.981Z"} -{"level":"info","message":"Fetching token balances for address: 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-28T07:55:29.983Z"} -{"level":"info","message":"GET /api/auth/check","timestamp":"2025-04-28T07:55:29.990Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T07:55:29.992Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T07:55:30.014Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T07:55:30.020Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T07:55:30.036Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T07:55:30.039Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T07:55:30.053Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T07:55:30.055Z"} -{"level":"info","message":"GET /api/auth/check","timestamp":"2025-04-28T07:55:31.120Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T07:55:31.122Z"} -{"level":"info","message":"GET /api/chat/history?count_only=true","timestamp":"2025-04-28T07:55:31.141Z"} -{"level":"info","message":"Processing guest messages for user 1 with guest ID 1745826229509-a9cc49arg","timestamp":"2025-04-28T07:55:31.143Z"} -{"level":"info","message":"Guest messages for guest ID 1745826229509-a9cc49arg were already processed.","timestamp":"2025-04-28T07:55:31.146Z"} -{"level":"info","message":"GET /api/chat/history?offset=0&limit=30","timestamp":"2025-04-28T07:55:31.190Z"} -{"balance":"1500000.0","contract":"0xd95a45fc46a7300e6022885afec3d618d7d3f27c","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on eth:","timestamp":"2025-04-28T07:55:31.257Z"} -{"balance":"500000.0","contract":"0x4B294265720B09ca39BFBA18c7E368413c0f68eB","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on bsc:","timestamp":"2025-04-28T07:55:32.213Z"} -{"balance":"499999.9","contract":"0xdce769b847a0a697239777d0b1c7dd33b6012ba0","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on arbitrum:","timestamp":"2025-04-28T07:55:33.277Z"} -{"balance":"454852.0","contract":"0x351f59de4fedbdf7601f5592b93db3b9330c1c1d","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on polygon:","timestamp":"2025-04-28T07:55:34.729Z"} -{"arbitrum":"499999.9","bsc":"500000.0","eth":"1500000.0","level":"info","message":"Token balances fetched for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b:","polygon":"454852.0","timestamp":"2025-04-28T07:55:34.729Z"} -{"level":"info","message":"GET /api/tokens/balances?address=0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-28T07:55:34.739Z"} -{"level":"info","message":"Fetching token balances for address: 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-28T07:55:34.740Z"} -{"balance":"1500000.0","contract":"0xd95a45fc46a7300e6022885afec3d618d7d3f27c","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on eth:","timestamp":"2025-04-28T07:55:33.813Z"} -{"balance":"500000.0","contract":"0x4B294265720B09ca39BFBA18c7E368413c0f68eB","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on bsc:","timestamp":"2025-04-28T07:55:34.296Z"} -{"balance":"499999.9","contract":"0xdce769b847a0a697239777d0b1c7dd33b6012ba0","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on arbitrum:","timestamp":"2025-04-28T07:55:34.927Z"} -{"balance":"454852.0","contract":"0x351f59de4fedbdf7601f5592b93db3b9330c1c1d","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on polygon:","timestamp":"2025-04-28T07:55:35.405Z"} -{"arbitrum":"499999.9","bsc":"500000.0","eth":"1500000.0","level":"info","message":"Token balances fetched for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b:","polygon":"454852.0","timestamp":"2025-04-28T07:55:35.405Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T07:56:00.693Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T07:56:00.697Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T07:56:30.780Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T07:56:30.783Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T07:57:00.259Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T07:57:00.262Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T07:57:29.455Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T07:57:29.459Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T07:58:26.420Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T07:58:26.425Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T07:59:26.540Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T07:59:26.545Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T08:00:26.734Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T08:00:26.738Z"} -{"level":"info","message":"GET /api/tokens/balances?address=0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-28T08:00:29.857Z"} -{"level":"info","message":"Fetching token balances for address: 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-28T08:00:29.858Z"} -{"balance":"1500000.0","contract":"0xd95a45fc46a7300e6022885afec3d618d7d3f27c","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on eth:","timestamp":"2025-04-28T08:00:31.568Z"} -{"balance":"500000.0","contract":"0x4B294265720B09ca39BFBA18c7E368413c0f68eB","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on bsc:","timestamp":"2025-04-28T08:00:33.054Z"} -{"balance":"499999.9","contract":"0xdce769b847a0a697239777d0b1c7dd33b6012ba0","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on arbitrum:","timestamp":"2025-04-28T08:00:34.652Z"} -{"balance":"454852.0","contract":"0x351f59de4fedbdf7601f5592b93db3b9330c1c1d","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on polygon:","timestamp":"2025-04-28T08:00:36.118Z"} -{"arbitrum":"499999.9","bsc":"500000.0","eth":"1500000.0","level":"info","message":"Token balances fetched for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b:","polygon":"454852.0","timestamp":"2025-04-28T08:00:36.119Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T08:01:26.826Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T08:01:26.831Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T08:01:42.963Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T08:01:42.966Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T08:02:00.017Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T08:02:00.019Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T08:02:29.448Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T08:02:29.451Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T08:03:27.096Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T08:03:27.100Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T08:04:27.322Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T08:04:27.326Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T08:04:48.815Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T08:04:48.820Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T08:05:00.522Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T08:05:00.525Z"} -{"level":"info","message":"GET /api/tokens/balances?address=0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-28T08:05:30.632Z"} -{"level":"info","message":"Fetching token balances for address: 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-28T08:05:30.633Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T08:05:30.636Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T08:05:30.641Z"} -{"balance":"1500000.0","contract":"0xd95a45fc46a7300e6022885afec3d618d7d3f27c","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on eth:","timestamp":"2025-04-28T08:05:31.860Z"} -{"balance":"500000.0","contract":"0x4B294265720B09ca39BFBA18c7E368413c0f68eB","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on bsc:","timestamp":"2025-04-28T08:05:32.965Z"} -{"balance":"499999.9","contract":"0xdce769b847a0a697239777d0b1c7dd33b6012ba0","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on arbitrum:","timestamp":"2025-04-28T08:05:34.262Z"} -{"balance":"454852.0","contract":"0x351f59de4fedbdf7601f5592b93db3b9330c1c1d","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on polygon:","timestamp":"2025-04-28T08:05:34.752Z"} -{"arbitrum":"499999.9","bsc":"500000.0","eth":"1500000.0","level":"info","message":"Token balances fetched for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b:","polygon":"454852.0","timestamp":"2025-04-28T08:05:34.752Z"} -{"level":"info","message":"Migration 000_session_table.sql executed successfully","timestamp":"2025-04-28T08:05:58.097Z"} -{"level":"info","message":"Migration 001_initial_schema.sql executed successfully","timestamp":"2025-04-28T08:05:58.118Z"} -{"level":"info","message":"Migration 002_access_roles.sql executed successfully","timestamp":"2025-04-28T08:05:58.170Z"} -{"level":"info","message":"Migration 003_user_identities.sql executed successfully","timestamp":"2025-04-28T08:05:58.194Z"} -{"level":"info","message":"Migration 004_conversations.sql executed successfully","timestamp":"2025-04-28T08:05:58.209Z"} -{"level":"info","message":"Migration 005_messages.sql executed successfully","timestamp":"2025-04-28T08:05:58.237Z"} -{"level":"info","message":"Migration 006_guest_messages.sql executed successfully","timestamp":"2025-04-28T08:05:58.264Z"} -{"level":"info","message":"Migration 007_user_preferences.sql executed successfully","timestamp":"2025-04-28T08:05:58.287Z"} -{"level":"info","message":"Migration 008_update_messages_structure.sql executed successfully","timestamp":"2025-04-28T08:05:58.295Z"} -{"level":"info","message":"Migration 009_nonces_table.sql executed successfully","timestamp":"2025-04-28T08:05:58.312Z"} -{"level":"info","message":"Migration 010_cleanup_roles.sql executed successfully","timestamp":"2025-04-28T08:05:58.330Z"} -{"level":"info","message":"Migration 011_cleanup_guest_relations.sql executed successfully","timestamp":"2025-04-28T08:05:58.343Z"} -{"level":"info","message":"Migration 012_verification_codes.sql executed successfully","timestamp":"2025-04-28T08:05:58.360Z"} -{"level":"info","message":"Migration 013_update_verification_codes.sql executed successfully","timestamp":"2025-04-28T08:05:58.365Z"} -{"level":"info","message":"Migration 014_identity_system_refactor.sql executed successfully","timestamp":"2025-04-28T08:05:58.395Z"} -{"level":"info","message":"Migration 015_users_table_refactor.sql executed successfully","timestamp":"2025-04-28T08:05:58.403Z"} -{"level":"info","message":"Migration 016_fix_duplicate_identities.sql executed successfully","timestamp":"2025-04-28T08:05:58.422Z"} -{"level":"info","message":"Migration 017_add_attachments_column.sql executed successfully","timestamp":"2025-04-28T08:05:58.427Z"} -{"level":"info","message":"Migration fix_duplicates_manual.sql executed successfully","timestamp":"2025-04-28T08:05:58.436Z"} -{"level":"info","message":"Function link_guest_messages.sql executed successfully","timestamp":"2025-04-28T08:05:58.441Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T08:06:27.645Z"} -{"level":"info","message":"GET /api/auth/check","timestamp":"2025-04-28T08:06:28.237Z"} -{"cookie":{"expires":"2025-05-28T08:06:27.646Z","httpOnly":true,"originalMaxAge":2592000000,"path":"/","sameSite":"lax","secure":false},"guestId":"67d53b3fc293c8b12d38b621f6341a28","level":"info","message":"[SessionService] Saving session data:","timestamp":"2025-04-28T08:06:28.238Z"} -{"level":"info","message":"Session saved successfully","timestamp":"2025-04-28T08:06:28.241Z"} -{"level":"info","message":"GET /api/auth/check","timestamp":"2025-04-28T08:06:28.261Z"} -{"level":"info","message":"POST /api/chat/guest-message","timestamp":"2025-04-28T08:08:48.188Z"} -{"level":"info","message":"Received /guest-message request","timestamp":"2025-04-28T08:08:48.200Z"} -{"filesCount":1,"guestId":"1745827727896-sqo5zp8c5","level":"info","message":"Saving guest message: (no text)","timestamp":"2025-04-28T08:08:48.289Z"} -{"body":{"guestId":"1745827727896-sqo5zp8c5","language":"ru","message":""},"level":"error","message":"Error in /guest-message: invalid input syntax for type json","stack":"error: invalid input syntax for type json\n at /app/node_modules/pg-pool/index.js:45:11\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n at async /app/routes/chat.js:227:20","timestamp":"2025-04-28T08:08:48.293Z"} -{"level":"info","message":"GET /api/auth/check","timestamp":"2025-04-28T08:10:37.285Z"} -{"level":"info","message":"GET /api/auth/check","timestamp":"2025-04-28T08:10:37.316Z"} -{"level":"info","message":"GET /api/auth/check","timestamp":"2025-04-28T08:10:37.340Z"} -{"level":"info","message":"POST /api/chat/guest-message","timestamp":"2025-04-28T08:10:47.815Z"} -{"level":"info","message":"Received /guest-message request","timestamp":"2025-04-28T08:10:47.828Z"} -{"filesCount":1,"guestId":"1745827727896-sqo5zp8c5","level":"info","message":"Saving guest message: (no text)","timestamp":"2025-04-28T08:10:47.924Z"} -{"level":"info","message":"Guest message saved with ID:","timestamp":"2025-04-28T08:10:47.947Z"} -{"level":"info","message":"Session saved after guest message","timestamp":"2025-04-28T08:10:47.951Z"} -{"level":"info","message":"GET /api/auth/nonce?address=0xF45aa4917b3775bA37f48Aeb3dc1a943561e9e0B","timestamp":"2025-04-28T08:11:22.875Z"} -{"level":"info","message":"Nonce 3fd09be3ab8541fd47c0ccab561c3a6f сохранен для адреса 0xF45aa4917b3775bA37f48Aeb3dc1a943561e9e0B","timestamp":"2025-04-28T08:11:22.883Z"} -{"level":"info","message":"POST /api/auth/verify","timestamp":"2025-04-28T08:11:25.071Z"} -{"level":"info","message":"[verify] Verifying signature for address: 0xF45aa4917b3775bA37f48Aeb3dc1a943561e9e0B","timestamp":"2025-04-28T08:11:25.073Z"} -{"level":"info","message":"Checking admin role for address: 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-28T08:11:25.198Z"} -{"address":"0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","balance":"500000.0","contract":"0x4B294265720B09ca39BFBA18c7E368413c0f68eB","hasTokens":true,"level":"info","message":"Token balance on bsc:","timestamp":"2025-04-28T08:11:26.420Z"} -{"level":"info","message":"Found admin tokens on bsc","timestamp":"2025-04-28T08:11:26.421Z"} -{"address":"0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","balance":"1500000.0","contract":"0xd95a45fc46a7300e6022885afec3d618d7d3f27c","hasTokens":true,"level":"info","message":"Token balance on eth:","timestamp":"2025-04-28T08:11:26.565Z"} -{"level":"info","message":"Found admin tokens on eth","timestamp":"2025-04-28T08:11:26.565Z"} -{"address":"0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","balance":"499999.9","contract":"0xdce769b847a0a697239777d0b1c7dd33b6012ba0","hasTokens":true,"level":"info","message":"Token balance on arbitrum:","timestamp":"2025-04-28T08:11:26.631Z"} -{"level":"info","message":"Found admin tokens on arbitrum","timestamp":"2025-04-28T08:11:26.631Z"} -{"address":"0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","balance":"454852.0","contract":"0x351f59de4fedbdf7601f5592b93db3b9330c1c1d","hasTokens":true,"level":"info","message":"Token balance on polygon:","timestamp":"2025-04-28T08:11:26.843Z"} -{"level":"info","message":"Found admin tokens on polygon","timestamp":"2025-04-28T08:11:26.844Z"} -{"balances":{"arbitrum":"499999.9","bsc":"500000.0","eth":"1500000.0","polygon":"454852.0"},"level":"info","message":"Admin role summary for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b:","networks":["bsc","eth","arbitrum","polygon"],"timestamp":"2025-04-28T08:11:26.844Z"} -{"level":"info","message":"Admin role granted for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-28T08:11:26.844Z"} -{"level":"info","message":"New user 1 role check result: admin","timestamp":"2025-04-28T08:11:26.845Z"} -{"level":"info","message":"New user 1 with wallet 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b automatically granted admin role","timestamp":"2025-04-28T08:11:26.848Z"} -{"level":"info","message":"[verify] Found or created user 1 for wallet 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-28T08:11:26.848Z"} -{"level":"info","message":"[IdentityService] Converting guest identity for user 1 to guest_user_mapping: 1745827727896-sqo5zp8c5","timestamp":"2025-04-28T08:11:26.849Z"} -{"level":"info","message":"Checking admin tokens for address: 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-28T08:11:26.853Z"} -{"level":"info","message":"Checking admin role for address: 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-28T08:11:26.854Z"} -{"address":"0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","balance":"500000.0","contract":"0x4B294265720B09ca39BFBA18c7E368413c0f68eB","hasTokens":true,"level":"info","message":"Token balance on bsc:","timestamp":"2025-04-28T08:11:27.218Z"} -{"level":"info","message":"Found admin tokens on bsc","timestamp":"2025-04-28T08:11:27.218Z"} -{"address":"0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","balance":"1500000.0","contract":"0xd95a45fc46a7300e6022885afec3d618d7d3f27c","hasTokens":true,"level":"info","message":"Token balance on eth:","timestamp":"2025-04-28T08:11:27.368Z"} -{"level":"info","message":"Found admin tokens on eth","timestamp":"2025-04-28T08:11:27.369Z"} -{"address":"0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","balance":"454852.0","contract":"0x351f59de4fedbdf7601f5592b93db3b9330c1c1d","hasTokens":true,"level":"info","message":"Token balance on polygon:","timestamp":"2025-04-28T08:11:27.383Z"} -{"level":"info","message":"Found admin tokens on polygon","timestamp":"2025-04-28T08:11:27.383Z"} -{"address":"0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","balance":"499999.9","contract":"0xdce769b847a0a697239777d0b1c7dd33b6012ba0","hasTokens":true,"level":"info","message":"Token balance on arbitrum:","timestamp":"2025-04-28T08:11:27.576Z"} -{"level":"info","message":"Found admin tokens on arbitrum","timestamp":"2025-04-28T08:11:27.576Z"} -{"balances":{"arbitrum":"499999.9","bsc":"500000.0","eth":"1500000.0","polygon":"454852.0"},"level":"info","message":"Admin role summary for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b:","networks":["bsc","eth","polygon","arbitrum"],"timestamp":"2025-04-28T08:11:27.576Z"} -{"level":"info","message":"Admin role granted for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-28T08:11:27.576Z"} -{"level":"info","message":"Updated user 1 role to admin based on token holdings","timestamp":"2025-04-28T08:11:27.580Z"} -{"address":"0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","authType":"wallet","authenticated":true,"cookie":{"expires":"2025-05-28T08:08:48.297Z","httpOnly":true,"originalMaxAge":2592000000,"path":"/","sameSite":"lax","secure":false},"guestId":"1745827727896-sqo5zp8c5","isAdmin":true,"level":"info","message":"[SessionService] Saving session data:","timestamp":"2025-04-28T08:11:27.583Z","userId":1} -{"level":"info","message":"Session saved successfully","timestamp":"2025-04-28T08:11:27.586Z"} -{"level":"info","message":"[linkGuestMessages] Starting for user 1 with guestId=1745827727896-sqo5zp8c5, previousGuestId=undefined","timestamp":"2025-04-28T08:11:27.587Z"} -{"level":"info","message":"[processGuestMessagesWrapper] Processing messages: userId=1, guestId=1745827727896-sqo5zp8c5","timestamp":"2025-04-28T08:11:27.591Z"} -{"level":"info","message":"Processing guest messages for user 1 with guest ID 1745827727896-sqo5zp8c5","timestamp":"2025-04-28T08:11:27.591Z"} -{"level":"info","message":"Found 1 guest messages for guest ID 1745827727896-sqo5zp8c5","timestamp":"2025-04-28T08:11:27.595Z"} -{"level":"info","message":"Created new conversation 1 for guest messages","timestamp":"2025-04-28T08:11:27.598Z"} -{"level":"info","message":"Processing guest message ID 1: [Файл: image (35).png]","timestamp":"2025-04-28T08:11:27.599Z"} -{"level":"info","message":"Saved user message with ID 1","timestamp":"2025-04-28T08:11:27.603Z"} -{"level":"info","message":"Getting AI response for:","timestamp":"2025-04-28T08:11:27.604Z"} -{"level":"info","message":"AI response received","timestamp":"2025-04-28T08:12:13.714Z"} -{"level":"info","message":"Saved AI response with ID 2","timestamp":"2025-04-28T08:12:13.772Z"} -{"level":"info","message":"Deleted 1 processed guest messages for guest ID 1745827727896-sqo5zp8c5","timestamp":"2025-04-28T08:12:13.775Z"} -{"level":"info","message":"Marked guest mapping as processed for guest ID 1745827727896-sqo5zp8c5","timestamp":"2025-04-28T08:12:13.779Z"} -{"address":"0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","authType":"wallet","authenticated":true,"cookie":{"expires":"2025-05-28T08:08:48.297Z","httpOnly":true,"originalMaxAge":2592000000,"path":"/","sameSite":"lax","secure":false},"guestId":"1745827727896-sqo5zp8c5","isAdmin":true,"level":"info","message":"[SessionService] Saving session data:","processedGuestIds":["1745827727896-sqo5zp8c5"],"timestamp":"2025-04-28T08:12:13.781Z","userId":1} -{"level":"info","message":"Session saved successfully","timestamp":"2025-04-28T08:12:13.785Z"} -{"level":"info","message":"GET /api/auth/check","timestamp":"2025-04-28T08:12:13.797Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T08:12:13.800Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T08:12:13.820Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T08:12:13.828Z"} -{"level":"info","message":"GET /api/auth/check","timestamp":"2025-04-28T08:12:13.848Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T08:12:13.850Z"} -{"level":"info","message":"GET /api/tokens/balances?address=0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-28T08:12:13.858Z"} -{"level":"info","message":"Fetching token balances for address: 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-28T08:12:13.863Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T08:12:13.870Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T08:12:13.885Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T08:12:13.901Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T08:12:13.903Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T08:12:13.919Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T08:12:13.922Z"} -{"balance":"1500000.0","contract":"0xd95a45fc46a7300e6022885afec3d618d7d3f27c","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on eth:","timestamp":"2025-04-28T08:12:14.129Z"} -{"level":"info","message":"GET /api/auth/check","timestamp":"2025-04-28T08:12:13.389Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T08:12:13.390Z"} -{"level":"info","message":"GET /api/chat/history?count_only=true","timestamp":"2025-04-28T08:12:13.403Z"} -{"level":"info","message":"Processing guest messages for user 1 with guest ID 1745827727896-sqo5zp8c5","timestamp":"2025-04-28T08:12:13.404Z"} -{"level":"info","message":"Guest messages for guest ID 1745827727896-sqo5zp8c5 were already processed.","timestamp":"2025-04-28T08:12:13.407Z"} -{"level":"info","message":"GET /api/chat/history?offset=0&limit=30","timestamp":"2025-04-28T08:12:13.428Z"} -{"balance":"500000.0","contract":"0x4B294265720B09ca39BFBA18c7E368413c0f68eB","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on bsc:","timestamp":"2025-04-28T08:12:14.164Z"} -{"balance":"499999.9","contract":"0xdce769b847a0a697239777d0b1c7dd33b6012ba0","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on arbitrum:","timestamp":"2025-04-28T08:12:15.250Z"} -{"balance":"454852.0","contract":"0x351f59de4fedbdf7601f5592b93db3b9330c1c1d","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on polygon:","timestamp":"2025-04-28T08:12:16.320Z"} -{"arbitrum":"499999.9","bsc":"500000.0","eth":"1500000.0","level":"info","message":"Token balances fetched for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b:","polygon":"454852.0","timestamp":"2025-04-28T08:12:16.320Z"} -{"level":"info","message":"GET /api/tokens/balances?address=0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-28T08:12:16.330Z"} -{"level":"info","message":"Fetching token balances for address: 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-28T08:12:16.332Z"} -{"balance":"1500000.0","contract":"0xd95a45fc46a7300e6022885afec3d618d7d3f27c","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on eth:","timestamp":"2025-04-28T08:12:16.785Z"} -{"balance":"500000.0","contract":"0x4B294265720B09ca39BFBA18c7E368413c0f68eB","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on bsc:","timestamp":"2025-04-28T08:12:17.081Z"} -{"balance":"499999.9","contract":"0xdce769b847a0a697239777d0b1c7dd33b6012ba0","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on arbitrum:","timestamp":"2025-04-28T08:12:17.741Z"} -{"balance":"454852.0","contract":"0x351f59de4fedbdf7601f5592b93db3b9330c1c1d","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on polygon:","timestamp":"2025-04-28T08:12:18.222Z"} -{"arbitrum":"499999.9","bsc":"500000.0","eth":"1500000.0","level":"info","message":"Token balances fetched for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b:","polygon":"454852.0","timestamp":"2025-04-28T08:12:18.222Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T08:12:43.455Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T08:12:43.458Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T08:13:13.539Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T08:13:13.541Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T08:13:43.605Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T08:13:43.607Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T08:14:13.697Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T08:14:13.700Z"} -{"level":"info","message":"GET /api/auth/check","timestamp":"2025-04-28T08:14:34.704Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T08:14:34.707Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T08:14:34.726Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T08:14:34.728Z"} -{"level":"info","message":"GET /api/auth/check","timestamp":"2025-04-28T08:14:34.743Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T08:14:34.745Z"} -{"level":"info","message":"GET /api/tokens/balances?address=0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-28T08:14:34.753Z"} -{"level":"info","message":"Fetching token balances for address: 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-28T08:14:34.754Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T08:14:34.759Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T08:14:34.763Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T08:14:34.782Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T08:14:34.786Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T08:14:34.802Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T08:14:34.805Z"} -{"balance":"1500000.0","contract":"0xd95a45fc46a7300e6022885afec3d618d7d3f27c","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on eth:","timestamp":"2025-04-28T08:14:35.967Z"} -{"level":"info","message":"GET /api/auth/check","timestamp":"2025-04-28T08:14:36.811Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T08:14:36.813Z"} -{"level":"info","message":"GET /api/chat/history?count_only=true","timestamp":"2025-04-28T08:14:36.825Z"} -{"level":"info","message":"GET /api/chat/history?offset=0&limit=30","timestamp":"2025-04-28T08:14:36.844Z"} -{"balance":"500000.0","contract":"0x4B294265720B09ca39BFBA18c7E368413c0f68eB","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on bsc:","timestamp":"2025-04-28T08:14:36.941Z"} -{"balance":"499999.9","contract":"0xdce769b847a0a697239777d0b1c7dd33b6012ba0","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on arbitrum:","timestamp":"2025-04-28T08:14:37.082Z"} -{"balance":"454852.0","contract":"0x351f59de4fedbdf7601f5592b93db3b9330c1c1d","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on polygon:","timestamp":"2025-04-28T08:14:41.037Z"} -{"arbitrum":"499999.9","bsc":"500000.0","eth":"1500000.0","level":"info","message":"Token balances fetched for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b:","polygon":"454852.0","timestamp":"2025-04-28T08:14:41.037Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T08:15:05.268Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T08:15:05.272Z"} -{"level":"info","message":"POST /api/auth/logout","timestamp":"2025-04-28T08:15:26.032Z"} -{"address":null,"authType":null,"authenticated":false,"cookie":{"expires":"2025-05-28T08:08:48.297Z","httpOnly":true,"originalMaxAge":2592000000,"path":"/","sameSite":"lax","secure":false},"email":null,"guestId":null,"isAdmin":false,"level":"info","message":"[SessionService] Saving session data:","pendingEmail":null,"previousGuestId":null,"processedGuestIds":[],"telegramId":null,"timestamp":"2025-04-28T08:15:26.033Z","userId":null} -{"level":"info","message":"Session saved successfully","timestamp":"2025-04-28T08:15:26.037Z"} -{"level":"info","message":"POST /api/chat/guest-message","timestamp":"2025-04-28T08:15:41.478Z"} -{"level":"info","message":"Received /guest-message request","timestamp":"2025-04-28T08:15:41.482Z"} -{"filesCount":1,"guestId":"1745828141906-vdcva3rrv","level":"info","message":"Saving guest message: (no text)","timestamp":"2025-04-28T08:15:41.600Z"} -{"level":"info","message":"Guest message saved with ID:","timestamp":"2025-04-28T08:15:41.604Z"} -{"level":"info","message":"Session saved after guest message","timestamp":"2025-04-28T08:15:41.607Z"} -{"level":"info","message":"GET /api/auth/check","timestamp":"2025-04-28T08:17:01.619Z"} -{"level":"info","message":"GET /api/auth/check","timestamp":"2025-04-28T08:17:01.633Z"} -{"level":"info","message":"GET /api/auth/check","timestamp":"2025-04-28T08:17:01.646Z"} -{"level":"info","message":"GET /api/auth/check","timestamp":"2025-04-28T08:17:06.768Z"} -{"level":"info","message":"GET /api/auth/check","timestamp":"2025-04-28T08:17:06.780Z"} -{"level":"info","message":"GET /api/auth/check","timestamp":"2025-04-28T08:17:06.799Z"} -{"level":"info","message":"GET /api/auth/check","timestamp":"2025-04-28T08:31:12.381Z"} -{"cookie":{"expires":"2025-05-28T08:31:12.348Z","httpOnly":true,"originalMaxAge":2592000000,"path":"/","sameSite":"lax","secure":false},"guestId":"b596727d8d5d6e387c52355b61159e2b","level":"info","message":"[SessionService] Saving session data:","timestamp":"2025-04-28T08:31:12.382Z"} -{"level":"info","message":"Session saved successfully","timestamp":"2025-04-28T08:31:12.389Z"} -{"level":"info","message":"GET /api/auth/check","timestamp":"2025-04-28T08:31:12.395Z"} -{"cookie":{"expires":"2025-05-28T08:31:12.393Z","httpOnly":true,"originalMaxAge":2592000000,"path":"/","sameSite":"lax","secure":false},"guestId":"6722285f55c5c8e62ef8b9cab0f10b0e","level":"info","message":"[SessionService] Saving session data:","timestamp":"2025-04-28T08:31:12.395Z"} -{"level":"info","message":"Session saved successfully","timestamp":"2025-04-28T08:31:12.399Z"} -{"level":"info","message":"GET /api/auth/check","timestamp":"2025-04-28T08:31:12.405Z"} -{"cookie":{"expires":"2025-05-28T08:31:12.403Z","httpOnly":true,"originalMaxAge":2592000000,"path":"/","sameSite":"lax","secure":false},"guestId":"9440ec64279671cf78fbef323781fcbe","level":"info","message":"[SessionService] Saving session data:","timestamp":"2025-04-28T08:31:12.406Z"} -{"level":"info","message":"Session saved successfully","timestamp":"2025-04-28T08:31:12.408Z"} -{"level":"info","message":"POST /api/chat/guest-message","timestamp":"2025-04-28T08:31:21.773Z"} -{"level":"info","message":"Received /guest-message request","timestamp":"2025-04-28T08:31:21.776Z"} -{"filesCount":1,"guestId":"1745829082204-8bmpj5o58","level":"info","message":"Saving guest message: (no text)","timestamp":"2025-04-28T08:31:21.880Z"} -{"level":"info","message":"Guest message saved with ID:","timestamp":"2025-04-28T08:31:21.903Z"} -{"level":"info","message":"Session saved after guest message","timestamp":"2025-04-28T08:31:21.907Z"} -{"level":"info","message":"GET /api/auth/check","timestamp":"2025-04-28T08:34:38.064Z"} -{"level":"info","message":"GET /api/auth/check","timestamp":"2025-04-28T08:34:38.077Z"} -{"level":"info","message":"GET /api/auth/check","timestamp":"2025-04-28T08:34:38.096Z"} -{"level":"info","message":"GET /api/auth/check","timestamp":"2025-04-28T08:35:58.410Z"} -{"level":"info","message":"GET /api/auth/check","timestamp":"2025-04-28T08:35:58.423Z"} -{"level":"info","message":"GET /api/auth/check","timestamp":"2025-04-28T08:35:58.433Z"} -{"level":"info","message":"POST /api/chat/guest-message","timestamp":"2025-04-28T08:38:26.708Z"} -{"level":"info","message":"Received /guest-message request","timestamp":"2025-04-28T08:38:26.710Z"} -{"filesCount":0,"guestId":"1745829082204-8bmpj5o58","level":"info","message":"Saving guest message: блдтюбт","timestamp":"2025-04-28T08:38:26.710Z"} -{"level":"info","message":"Guest message saved with ID:","timestamp":"2025-04-28T08:38:26.715Z"} -{"level":"info","message":"Session saved after guest message","timestamp":"2025-04-28T08:38:26.718Z"} -{"level":"info","message":"POST /api/chat/guest-message","timestamp":"2025-04-28T08:38:37.559Z"} -{"level":"info","message":"Received /guest-message request","timestamp":"2025-04-28T08:38:37.563Z"} -{"filesCount":1,"guestId":"1745829082204-8bmpj5o58","level":"info","message":"Saving guest message: (no text)","timestamp":"2025-04-28T08:38:37.652Z"} -{"level":"info","message":"Guest message saved with ID:","timestamp":"2025-04-28T08:38:37.676Z"} -{"level":"info","message":"Session saved after guest message","timestamp":"2025-04-28T08:38:37.679Z"} -{"level":"info","message":"GET /api/auth/nonce?address=0xF45aa4917b3775bA37f48Aeb3dc1a943561e9e0B","timestamp":"2025-04-28T08:38:44.788Z"} -{"level":"info","message":"Nonce a514a24a58b4b3f666d30dd4c395be06 сохранен для адреса 0xF45aa4917b3775bA37f48Aeb3dc1a943561e9e0B","timestamp":"2025-04-28T08:38:44.792Z"} -{"level":"info","message":"POST /api/auth/verify","timestamp":"2025-04-28T08:38:46.882Z"} -{"level":"info","message":"[verify] Verifying signature for address: 0xF45aa4917b3775bA37f48Aeb3dc1a943561e9e0B","timestamp":"2025-04-28T08:38:46.883Z"} -{"level":"info","message":"Checking admin role for address: 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-28T08:38:46.903Z"} -{"address":"0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","balance":"500000.0","contract":"0x4B294265720B09ca39BFBA18c7E368413c0f68eB","hasTokens":true,"level":"info","message":"Token balance on bsc:","timestamp":"2025-04-28T08:38:48.091Z"} -{"level":"info","message":"Found admin tokens on bsc","timestamp":"2025-04-28T08:38:48.092Z"} -{"address":"0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","balance":"1500000.0","contract":"0xd95a45fc46a7300e6022885afec3d618d7d3f27c","hasTokens":true,"level":"info","message":"Token balance on eth:","timestamp":"2025-04-28T08:38:48.128Z"} -{"level":"info","message":"Found admin tokens on eth","timestamp":"2025-04-28T08:38:48.128Z"} -{"address":"0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","balance":"499999.9","contract":"0xdce769b847a0a697239777d0b1c7dd33b6012ba0","hasTokens":true,"level":"info","message":"Token balance on arbitrum:","timestamp":"2025-04-28T08:38:48.372Z"} -{"level":"info","message":"Found admin tokens on arbitrum","timestamp":"2025-04-28T08:38:48.372Z"} -{"address":"0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","balance":"454852.0","contract":"0x351f59de4fedbdf7601f5592b93db3b9330c1c1d","hasTokens":true,"level":"info","message":"Token balance on polygon:","timestamp":"2025-04-28T08:38:48.557Z"} -{"level":"info","message":"Found admin tokens on polygon","timestamp":"2025-04-28T08:38:48.558Z"} -{"balances":{"arbitrum":"499999.9","bsc":"500000.0","eth":"1500000.0","polygon":"454852.0"},"level":"info","message":"Admin role summary for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b:","networks":["bsc","eth","arbitrum","polygon"],"timestamp":"2025-04-28T08:38:48.558Z"} -{"level":"info","message":"Admin role granted for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-28T08:38:48.558Z"} -{"level":"info","message":"[verify] Found or created user 1 for wallet 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-28T08:38:48.558Z"} -{"level":"info","message":"[IdentityService] Converting guest identity for user 1 to guest_user_mapping: 1745829082204-8bmpj5o58","timestamp":"2025-04-28T08:38:48.559Z"} -{"level":"info","message":"Checking admin tokens for address: 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-28T08:38:48.564Z"} -{"level":"info","message":"Checking admin role for address: 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-28T08:38:48.564Z"} -{"address":"0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","balance":"500000.0","contract":"0x4B294265720B09ca39BFBA18c7E368413c0f68eB","hasTokens":true,"level":"info","message":"Token balance on bsc:","timestamp":"2025-04-28T08:38:48.874Z"} -{"level":"info","message":"Found admin tokens on bsc","timestamp":"2025-04-28T08:38:48.874Z"} -{"address":"0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","balance":"1500000.0","contract":"0xd95a45fc46a7300e6022885afec3d618d7d3f27c","hasTokens":true,"level":"info","message":"Token balance on eth:","timestamp":"2025-04-28T08:38:49.037Z"} -{"level":"info","message":"Found admin tokens on eth","timestamp":"2025-04-28T08:38:49.037Z"} -{"address":"0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","balance":"454852.0","contract":"0x351f59de4fedbdf7601f5592b93db3b9330c1c1d","hasTokens":true,"level":"info","message":"Token balance on polygon:","timestamp":"2025-04-28T08:38:49.039Z"} -{"level":"info","message":"Found admin tokens on polygon","timestamp":"2025-04-28T08:38:49.040Z"} -{"address":"0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","balance":"499999.9","contract":"0xdce769b847a0a697239777d0b1c7dd33b6012ba0","hasTokens":true,"level":"info","message":"Token balance on arbitrum:","timestamp":"2025-04-28T08:38:48.646Z"} -{"level":"info","message":"Found admin tokens on arbitrum","timestamp":"2025-04-28T08:38:48.646Z"} -{"balances":{"arbitrum":"499999.9","bsc":"500000.0","eth":"1500000.0","polygon":"454852.0"},"level":"info","message":"Admin role summary for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b:","networks":["bsc","eth","polygon","arbitrum"],"timestamp":"2025-04-28T08:38:48.646Z"} -{"level":"info","message":"Admin role granted for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-28T08:38:48.646Z"} -{"level":"info","message":"Updated user 1 role to admin based on token holdings","timestamp":"2025-04-28T08:38:48.650Z"} -{"address":"0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","authType":"wallet","authenticated":true,"cookie":{"expires":"2025-05-28T08:31:12.403Z","httpOnly":true,"originalMaxAge":2592000000,"path":"/","sameSite":"lax","secure":false},"guestId":"1745829082204-8bmpj5o58","isAdmin":true,"level":"info","message":"[SessionService] Saving session data:","timestamp":"2025-04-28T08:38:48.653Z","userId":1} -{"level":"info","message":"Session saved successfully","timestamp":"2025-04-28T08:38:48.655Z"} -{"level":"info","message":"[linkGuestMessages] Starting for user 1 with guestId=1745829082204-8bmpj5o58, previousGuestId=undefined","timestamp":"2025-04-28T08:38:48.656Z"} -{"level":"info","message":"[processGuestMessagesWrapper] Processing messages: userId=1, guestId=1745829082204-8bmpj5o58","timestamp":"2025-04-28T08:38:48.660Z"} -{"level":"info","message":"Processing guest messages for user 1 with guest ID 1745829082204-8bmpj5o58","timestamp":"2025-04-28T08:38:48.660Z"} -{"level":"info","message":"Found 3 guest messages for guest ID 1745829082204-8bmpj5o58","timestamp":"2025-04-28T08:38:48.664Z"} -{"level":"info","message":"Created new conversation 2 for guest messages","timestamp":"2025-04-28T08:38:48.668Z"} -{"level":"info","message":"Processing guest message ID 3: [Файл: image (35).png]","timestamp":"2025-04-28T08:38:48.668Z"} -{"level":"info","message":"Saved user message with ID 3","timestamp":"2025-04-28T08:38:48.682Z"} -{"level":"info","message":"Getting AI response for:","timestamp":"2025-04-28T08:38:48.682Z"} -{"level":"info","message":"AI response received","timestamp":"2025-04-28T08:39:14.332Z"} -{"level":"info","message":"Saved AI response with ID 4","timestamp":"2025-04-28T08:39:14.365Z"} -{"level":"info","message":"Processing guest message ID 4: блдтюбт","timestamp":"2025-04-28T08:39:14.366Z"} -{"level":"info","message":"Saved user message with ID 5","timestamp":"2025-04-28T08:39:14.369Z"} -{"level":"info","message":"Getting AI response for:","timestamp":"2025-04-28T08:39:14.369Z"} -{"level":"info","message":"AI response received","timestamp":"2025-04-28T08:39:19.682Z"} -{"level":"info","message":"Saved AI response with ID 6","timestamp":"2025-04-28T08:39:19.685Z"} -{"level":"info","message":"Processing guest message ID 5: [Файл: image (32).png]","timestamp":"2025-04-28T08:39:19.685Z"} -{"level":"info","message":"Saved user message with ID 7","timestamp":"2025-04-28T08:39:19.688Z"} -{"level":"info","message":"Getting AI response for:","timestamp":"2025-04-28T08:39:19.688Z"} -{"level":"info","message":"AI response received","timestamp":"2025-04-28T08:39:29.881Z"} -{"level":"info","message":"Saved AI response with ID 8","timestamp":"2025-04-28T08:39:29.916Z"} -{"level":"info","message":"Deleted 3 processed guest messages for guest ID 1745829082204-8bmpj5o58","timestamp":"2025-04-28T08:39:29.922Z"} -{"level":"info","message":"Marked guest mapping as processed for guest ID 1745829082204-8bmpj5o58","timestamp":"2025-04-28T08:39:29.928Z"} -{"level":"info","message":"[processGuestMessagesWrapper] Processing messages: userId=1, guestId=1745827727896-sqo5zp8c5","timestamp":"2025-04-28T08:39:29.931Z"} -{"level":"info","message":"Processing guest messages for user 1 with guest ID 1745827727896-sqo5zp8c5","timestamp":"2025-04-28T08:39:29.932Z"} -{"level":"info","message":"Guest messages for guest ID 1745827727896-sqo5zp8c5 were already processed.","timestamp":"2025-04-28T08:39:29.934Z"} -{"address":"0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","authType":"wallet","authenticated":true,"cookie":{"expires":"2025-05-28T08:31:12.403Z","httpOnly":true,"originalMaxAge":2592000000,"path":"/","sameSite":"lax","secure":false},"guestId":"1745829082204-8bmpj5o58","isAdmin":true,"level":"info","message":"[SessionService] Saving session data:","processedGuestIds":["1745829082204-8bmpj5o58","1745827727896-sqo5zp8c5"],"timestamp":"2025-04-28T08:39:29.939Z","userId":1} -{"level":"info","message":"Session saved successfully","timestamp":"2025-04-28T08:39:29.944Z"} -{"level":"info","message":"GET /api/auth/check","timestamp":"2025-04-28T08:39:29.960Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T08:39:29.964Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T08:39:29.999Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T08:39:30.001Z"} -{"level":"info","message":"GET /api/auth/check","timestamp":"2025-04-28T08:39:30.024Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T08:39:30.026Z"} -{"level":"info","message":"GET /api/tokens/balances?address=0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-28T08:39:30.048Z"} -{"level":"info","message":"Fetching token balances for address: 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-28T08:39:30.049Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T08:39:30.085Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T08:39:30.090Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T08:39:30.104Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T08:39:30.110Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T08:39:30.149Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T08:39:30.151Z"} -{"level":"info","message":"GET /api/auth/check","timestamp":"2025-04-28T08:39:31.089Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T08:39:31.092Z"} -{"level":"info","message":"GET /api/chat/history?count_only=true","timestamp":"2025-04-28T08:39:31.106Z"} -{"level":"info","message":"Processing guest messages for user 1 with guest ID 1745829082204-8bmpj5o58","timestamp":"2025-04-28T08:39:31.106Z"} -{"balance":"1500000.0","contract":"0xd95a45fc46a7300e6022885afec3d618d7d3f27c","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on eth:","timestamp":"2025-04-28T08:39:31.108Z"} -{"level":"info","message":"Guest messages for guest ID 1745829082204-8bmpj5o58 were already processed.","timestamp":"2025-04-28T08:39:31.109Z"} -{"level":"info","message":"GET /api/chat/history?offset=0&limit=30","timestamp":"2025-04-28T08:39:31.133Z"} -{"balance":"500000.0","contract":"0x4B294265720B09ca39BFBA18c7E368413c0f68eB","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on bsc:","timestamp":"2025-04-28T08:39:31.898Z"} -{"balance":"499999.9","contract":"0xdce769b847a0a697239777d0b1c7dd33b6012ba0","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on arbitrum:","timestamp":"2025-04-28T08:39:32.955Z"} -{"balance":"454852.0","contract":"0x351f59de4fedbdf7601f5592b93db3b9330c1c1d","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on polygon:","timestamp":"2025-04-28T08:39:34.268Z"} -{"arbitrum":"499999.9","bsc":"500000.0","eth":"1500000.0","level":"info","message":"Token balances fetched for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b:","polygon":"454852.0","timestamp":"2025-04-28T08:39:34.268Z"} -{"level":"info","message":"GET /api/tokens/balances?address=0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-28T08:39:34.276Z"} -{"level":"info","message":"Fetching token balances for address: 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-28T08:39:34.276Z"} -{"balance":"1500000.0","contract":"0xd95a45fc46a7300e6022885afec3d618d7d3f27c","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on eth:","timestamp":"2025-04-28T08:39:34.789Z"} -{"balance":"500000.0","contract":"0x4B294265720B09ca39BFBA18c7E368413c0f68eB","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on bsc:","timestamp":"2025-04-28T08:39:35.131Z"} -{"balance":"499999.9","contract":"0xdce769b847a0a697239777d0b1c7dd33b6012ba0","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on arbitrum:","timestamp":"2025-04-28T08:39:35.819Z"} -{"balance":"454852.0","contract":"0x351f59de4fedbdf7601f5592b93db3b9330c1c1d","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on polygon:","timestamp":"2025-04-28T08:39:36.303Z"} -{"arbitrum":"499999.9","bsc":"500000.0","eth":"1500000.0","level":"info","message":"Token balances fetched for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b:","polygon":"454852.0","timestamp":"2025-04-28T08:39:36.303Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T08:40:00.234Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T08:40:00.237Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T08:40:31.271Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T08:40:31.273Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T08:41:01.422Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T08:41:01.425Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T08:41:31.472Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T08:41:31.475Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T08:42:01.603Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T08:42:01.606Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T08:42:31.387Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T08:42:31.391Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T08:43:01.792Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T08:43:01.795Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T08:43:31.847Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T08:43:31.850Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T08:44:00.342Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T08:44:00.345Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T08:44:30.305Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T08:44:30.308Z"} -{"level":"info","message":"GET /api/tokens/balances?address=0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-28T08:44:30.311Z"} -{"level":"info","message":"Fetching token balances for address: 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-28T08:44:30.311Z"} -{"balance":"1500000.0","contract":"0xd95a45fc46a7300e6022885afec3d618d7d3f27c","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on eth:","timestamp":"2025-04-28T08:44:31.427Z"} -{"balance":"500000.0","contract":"0x4B294265720B09ca39BFBA18c7E368413c0f68eB","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on bsc:","timestamp":"2025-04-28T08:44:32.497Z"} -{"balance":"499999.9","contract":"0xdce769b847a0a697239777d0b1c7dd33b6012ba0","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on arbitrum:","timestamp":"2025-04-28T08:44:33.647Z"} -{"balance":"454852.0","contract":"0x351f59de4fedbdf7601f5592b93db3b9330c1c1d","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on polygon:","timestamp":"2025-04-28T08:44:35.013Z"} -{"arbitrum":"499999.9","bsc":"500000.0","eth":"1500000.0","level":"info","message":"Token balances fetched for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b:","polygon":"454852.0","timestamp":"2025-04-28T08:44:35.013Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T08:44:59.550Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T08:44:59.552Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T08:45:29.640Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T08:45:29.643Z"} -{"level":"info","message":"POST /api/chat/message","timestamp":"2025-04-28T08:45:41.356Z"} -{"level":"info","message":"Received /message request","timestamp":"2025-04-28T08:45:41.359Z"} -{"filesCount":0,"language":"ru","level":"info","message":"Processing authenticated message: бббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббб","timestamp":"2025-04-28T08:45:41.359Z","userId":1} -{"level":"info","message":"Created new conversation:","timestamp":"2025-04-28T08:45:41.366Z"} -{"level":"info","message":"Saving user message for conversation","timestamp":"2025-04-28T08:45:41.366Z"} -{"level":"info","message":"User message saved with ID:","timestamp":"2025-04-28T08:45:41.372Z"} -{"level":"info","message":"Getting AI response for conversation","timestamp":"2025-04-28T08:45:41.372Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T08:46:00.682Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T08:46:00.687Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T08:46:30.733Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T08:46:30.738Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T08:47:00.841Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T08:47:00.847Z"} -{"level":"info","message":"AI response received","timestamp":"2025-04-28T08:47:07.155Z"} -{"level":"info","message":"AI message saved with ID:","timestamp":"2025-04-28T08:47:07.173Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T08:47:30.888Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T08:47:30.891Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T08:48:00.968Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T08:48:00.971Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T08:48:31.090Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T08:48:31.093Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T08:49:27.036Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T08:49:27.039Z"} -{"level":"info","message":"GET /api/tokens/balances?address=0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-28T08:49:31.262Z"} -{"level":"info","message":"Fetching token balances for address: 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-28T08:49:31.262Z"} -{"balance":"1500000.0","contract":"0xd95a45fc46a7300e6022885afec3d618d7d3f27c","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on eth:","timestamp":"2025-04-28T08:49:32.598Z"} -{"balance":"500000.0","contract":"0x4B294265720B09ca39BFBA18c7E368413c0f68eB","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on bsc:","timestamp":"2025-04-28T08:49:33.701Z"} -{"balance":"499999.9","contract":"0xdce769b847a0a697239777d0b1c7dd33b6012ba0","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on arbitrum:","timestamp":"2025-04-28T08:49:34.823Z"} -{"balance":"454852.0","contract":"0x351f59de4fedbdf7601f5592b93db3b9330c1c1d","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on polygon:","timestamp":"2025-04-28T08:49:36.336Z"} -{"arbitrum":"499999.9","bsc":"500000.0","eth":"1500000.0","level":"info","message":"Token balances fetched for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b:","polygon":"454852.0","timestamp":"2025-04-28T08:49:36.336Z"} -{"level":"info","message":"GET /api/auth/check","timestamp":"2025-04-28T08:49:38.917Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T08:49:38.919Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T08:49:38.936Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T08:49:38.939Z"} -{"level":"info","message":"GET /api/auth/check","timestamp":"2025-04-28T08:49:38.954Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T08:49:38.957Z"} -{"level":"info","message":"GET /api/tokens/balances?address=0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-28T08:49:38.959Z"} -{"level":"info","message":"Fetching token balances for address: 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-28T08:49:38.960Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T08:49:38.978Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T08:49:38.981Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T08:49:38.997Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T08:49:38.999Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T08:49:39.011Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T08:49:39.013Z"} -{"balance":"1500000.0","contract":"0xd95a45fc46a7300e6022885afec3d618d7d3f27c","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on eth:","timestamp":"2025-04-28T08:49:39.822Z"} -{"balance":"500000.0","contract":"0x4B294265720B09ca39BFBA18c7E368413c0f68eB","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on bsc:","timestamp":"2025-04-28T08:49:40.617Z"} -{"level":"info","message":"GET /api/auth/check","timestamp":"2025-04-28T08:49:40.798Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T08:49:40.800Z"} -{"level":"info","message":"GET /api/chat/history?count_only=true","timestamp":"2025-04-28T08:49:40.813Z"} -{"level":"info","message":"GET /api/chat/history?offset=0&limit=30","timestamp":"2025-04-28T08:49:40.834Z"} -{"balance":"499999.9","contract":"0xdce769b847a0a697239777d0b1c7dd33b6012ba0","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on arbitrum:","timestamp":"2025-04-28T08:49:41.680Z"} -{"balance":"454852.0","contract":"0x351f59de4fedbdf7601f5592b93db3b9330c1c1d","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on polygon:","timestamp":"2025-04-28T08:49:42.765Z"} -{"arbitrum":"499999.9","bsc":"500000.0","eth":"1500000.0","level":"info","message":"Token balances fetched for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b:","polygon":"454852.0","timestamp":"2025-04-28T08:49:42.765Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T08:50:09.822Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T08:50:09.824Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T08:50:39.951Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T08:50:39.954Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T08:51:08.389Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T08:51:08.392Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T08:51:38.465Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T08:51:38.468Z"} -{"level":"info","message":"GET /api/auth/check","timestamp":"2025-04-28T08:51:53.509Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T08:51:53.512Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T08:51:53.529Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T08:51:53.532Z"} -{"level":"info","message":"GET /api/tokens/balances?address=0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-28T08:51:53.564Z"} -{"level":"info","message":"Fetching token balances for address: 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-28T08:51:53.564Z"} -{"level":"info","message":"GET /api/auth/check","timestamp":"2025-04-28T08:51:53.584Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T08:51:53.588Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T08:51:53.633Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T08:51:53.635Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T08:51:53.662Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T08:51:53.664Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T08:51:53.682Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T08:51:53.685Z"} -{"balance":"1500000.0","contract":"0xd95a45fc46a7300e6022885afec3d618d7d3f27c","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on eth:","timestamp":"2025-04-28T08:51:54.714Z"} -{"level":"info","message":"GET /api/auth/check","timestamp":"2025-04-28T08:51:55.358Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T08:51:55.360Z"} -{"level":"info","message":"GET /api/chat/history?count_only=true","timestamp":"2025-04-28T08:51:55.373Z"} -{"level":"info","message":"GET /api/chat/history?offset=0&limit=30","timestamp":"2025-04-28T08:51:55.396Z"} -{"balance":"500000.0","contract":"0x4B294265720B09ca39BFBA18c7E368413c0f68eB","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on bsc:","timestamp":"2025-04-28T08:51:55.594Z"} -{"balance":"499999.9","contract":"0xdce769b847a0a697239777d0b1c7dd33b6012ba0","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on arbitrum:","timestamp":"2025-04-28T08:51:56.764Z"} -{"balance":"454852.0","contract":"0x351f59de4fedbdf7601f5592b93db3b9330c1c1d","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on polygon:","timestamp":"2025-04-28T08:51:58.076Z"} -{"arbitrum":"499999.9","bsc":"500000.0","eth":"1500000.0","level":"info","message":"Token balances fetched for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b:","polygon":"454852.0","timestamp":"2025-04-28T08:51:58.077Z"} -{"level":"info","message":"POST /api/auth/logout","timestamp":"2025-04-28T08:52:01.673Z"} -{"address":null,"authType":null,"authenticated":false,"cookie":{"expires":"2025-05-28T08:31:12.403Z","httpOnly":true,"originalMaxAge":2592000000,"path":"/","sameSite":"lax","secure":false},"email":null,"guestId":null,"isAdmin":false,"level":"info","message":"[SessionService] Saving session data:","pendingEmail":null,"previousGuestId":null,"processedGuestIds":[],"telegramId":null,"timestamp":"2025-04-28T08:52:01.674Z","userId":null} -{"level":"info","message":"Session saved successfully","timestamp":"2025-04-28T08:52:01.677Z"} -{"level":"info","message":"GET /api/auth/check","timestamp":"2025-04-28T08:52:01.701Z"} -{"cookie":{"expires":"2025-05-28T08:52:01.699Z","httpOnly":true,"originalMaxAge":2592000000,"path":"/","sameSite":"lax","secure":false},"guestId":"8c86e5dc82d0cd5303d9c9eeb1b2a0e9","level":"info","message":"[SessionService] Saving session data:","timestamp":"2025-04-28T08:52:01.702Z"} -{"level":"info","message":"Session saved successfully","timestamp":"2025-04-28T08:52:01.705Z"} -{"level":"info","message":"GET /api/auth/check","timestamp":"2025-04-28T09:57:55.322Z"} -{"cookie":{"expires":"2025-05-28T09:57:55.294Z","httpOnly":true,"originalMaxAge":2592000000,"path":"/","sameSite":"lax","secure":false},"guestId":"9f4dc0b48816da578d846ad1f5145f04","level":"info","message":"[SessionService] Saving session data:","timestamp":"2025-04-28T09:57:55.324Z"} -{"level":"info","message":"Session saved successfully","timestamp":"2025-04-28T09:57:55.332Z"} -{"level":"info","message":"GET /api/auth/check","timestamp":"2025-04-28T10:21:39.809Z"} -{"level":"info","message":"GET /api/auth/check","timestamp":"2025-04-28T10:21:39.826Z"} -{"level":"info","message":"GET /api/auth/check","timestamp":"2025-04-28T14:18:32.165Z"} -{"level":"info","message":"GET /api/auth/check","timestamp":"2025-04-28T14:18:32.187Z"} -{"level":"info","message":"Migration 000_session_table.sql executed successfully","timestamp":"2025-04-28T14:19:22.150Z"} -{"level":"info","message":"Migration 001_initial_schema.sql executed successfully","timestamp":"2025-04-28T14:19:22.182Z"} -{"level":"info","message":"Migration 002_access_roles.sql executed successfully","timestamp":"2025-04-28T14:19:22.237Z"} -{"level":"info","message":"Migration 003_user_identities.sql executed successfully","timestamp":"2025-04-28T14:19:22.272Z"} -{"level":"info","message":"Migration 004_conversations.sql executed successfully","timestamp":"2025-04-28T14:19:22.295Z"} -{"level":"info","message":"Migration 005_messages.sql executed successfully","timestamp":"2025-04-28T14:19:22.339Z"} -{"level":"info","message":"Migration 006_guest_messages.sql executed successfully","timestamp":"2025-04-28T14:19:22.383Z"} -{"level":"info","message":"Migration 007_user_preferences.sql executed successfully","timestamp":"2025-04-28T14:19:22.423Z"} -{"level":"info","message":"Migration 008_update_messages_structure.sql executed successfully","timestamp":"2025-04-28T14:19:22.436Z"} -{"level":"info","message":"Migration 009_nonces_table.sql executed successfully","timestamp":"2025-04-28T14:19:22.464Z"} -{"level":"info","message":"Migration 010_cleanup_roles.sql executed successfully","timestamp":"2025-04-28T14:19:22.494Z"} -{"level":"info","message":"Migration 011_cleanup_guest_relations.sql executed successfully","timestamp":"2025-04-28T14:19:22.512Z"} -{"level":"info","message":"Migration 012_verification_codes.sql executed successfully","timestamp":"2025-04-28T14:19:22.545Z"} -{"level":"info","message":"Migration 013_update_verification_codes.sql executed successfully","timestamp":"2025-04-28T14:19:22.554Z"} -{"level":"info","message":"Migration 014_identity_system_refactor.sql executed successfully","timestamp":"2025-04-28T14:19:22.595Z"} -{"level":"info","message":"Migration 015_users_table_refactor.sql executed successfully","timestamp":"2025-04-28T14:19:22.607Z"} -{"level":"info","message":"Migration 016_fix_duplicate_identities.sql executed successfully","timestamp":"2025-04-28T14:19:22.632Z"} -{"level":"info","message":"Migration 017_add_file_storage_columns.sql executed successfully","timestamp":"2025-04-28T14:19:22.649Z"} -{"level":"info","message":"Migration fix_duplicates_manual.sql executed successfully","timestamp":"2025-04-28T14:19:22.664Z"} -{"level":"info","message":"Function link_guest_messages.sql executed successfully","timestamp":"2025-04-28T14:19:22.672Z"} -{"level":"info","message":"POST /api/chat/guest-message","timestamp":"2025-04-28T14:28:29.003Z"} -{"level":"info","message":"Received /guest-message request","timestamp":"2025-04-28T14:28:29.020Z"} -{"file":"image (33).png","guestId":"1745850508983-zb9xi0g4t","level":"info","message":"Saving guest message:","mimetype":"image/png","size":81461,"timestamp":"2025-04-28T14:28:29.089Z"} -{"code":"42703","file":"parse_target.c","length":146,"level":"error","line":"1066","message":"Error saving guest message: column \"attachment_filename\" of relation \"guest_messages\" does not exist","name":"error","position":"82","routine":"checkInsertTargets","severity":"ERROR","stack":"error: column \"attachment_filename\" of relation \"guest_messages\" does not exist\n at /app/node_modules/pg-pool/index.js:45:11\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n at async /app/routes/chat.js:224:20","timestamp":"2025-04-28T14:28:29.099Z"} -{"level":"info","message":"Migration 000_session_table.sql executed successfully","timestamp":"2025-04-28T14:39:57.603Z"} -{"level":"info","message":"Migration 001_initial_schema.sql executed successfully","timestamp":"2025-04-28T14:39:57.637Z"} -{"level":"info","message":"Migration 002_access_roles.sql executed successfully","timestamp":"2025-04-28T14:39:57.679Z"} -{"level":"info","message":"Migration 003_user_identities.sql executed successfully","timestamp":"2025-04-28T14:39:57.715Z"} -{"level":"info","message":"Migration 004_conversations.sql executed successfully","timestamp":"2025-04-28T14:39:57.739Z"} -{"level":"info","message":"Migration 005_messages.sql executed successfully","timestamp":"2025-04-28T14:39:57.787Z"} -{"level":"info","message":"Migration 006_guest_messages.sql executed successfully","timestamp":"2025-04-28T14:39:57.832Z"} -{"level":"info","message":"Migration 007_user_preferences.sql executed successfully","timestamp":"2025-04-28T14:39:57.870Z"} -{"level":"info","message":"Migration 008_update_messages_structure.sql executed successfully","timestamp":"2025-04-28T14:39:57.880Z"} -{"level":"info","message":"Migration 009_nonces_table.sql executed successfully","timestamp":"2025-04-28T14:39:57.906Z"} -{"level":"info","message":"Migration 010_cleanup_roles.sql executed successfully","timestamp":"2025-04-28T14:39:57.933Z"} -{"level":"info","message":"Migration 011_cleanup_guest_relations.sql executed successfully","timestamp":"2025-04-28T14:39:57.949Z"} -{"level":"info","message":"Migration 012_verification_codes.sql executed successfully","timestamp":"2025-04-28T14:39:57.979Z"} -{"level":"info","message":"Migration 013_update_verification_codes.sql executed successfully","timestamp":"2025-04-28T14:39:57.987Z"} -{"level":"info","message":"Migration 014_identity_system_refactor.sql executed successfully","timestamp":"2025-04-28T14:39:58.030Z"} -{"level":"info","message":"Migration 015_users_table_refactor.sql executed successfully","timestamp":"2025-04-28T14:39:58.042Z"} -{"level":"info","message":"Migration 016_fix_duplicate_identities.sql executed successfully","timestamp":"2025-04-28T14:39:58.067Z"} -{"level":"info","message":"Migration 017_add_file_storage_columns.sql executed successfully","timestamp":"2025-04-28T14:39:58.083Z"} -{"level":"info","message":"Migration fix_duplicates_manual.sql executed successfully","timestamp":"2025-04-28T14:39:58.098Z"} -{"level":"info","message":"Function link_guest_messages.sql executed successfully","timestamp":"2025-04-28T14:39:58.104Z"} -{"level":"info","message":"Executing UP migration from 000_session_table.sql...","timestamp":"2025-04-28T14:51:16.725Z"} -{"level":"info","message":"Migration 000_session_table.sql executed successfully","timestamp":"2025-04-28T14:51:16.755Z"} -{"level":"info","message":"Executing UP migration from 001_initial_schema.sql...","timestamp":"2025-04-28T14:51:16.757Z"} -{"level":"info","message":"Migration 001_initial_schema.sql executed successfully","timestamp":"2025-04-28T14:51:16.784Z"} -{"level":"info","message":"Executing UP migration from 002_access_roles.sql...","timestamp":"2025-04-28T14:51:16.786Z"} -{"level":"info","message":"Migration 002_access_roles.sql executed successfully","timestamp":"2025-04-28T14:51:16.843Z"} -{"level":"info","message":"Executing UP migration from 003_user_identities.sql...","timestamp":"2025-04-28T14:51:16.845Z"} -{"level":"info","message":"Migration 003_user_identities.sql executed successfully","timestamp":"2025-04-28T14:51:16.889Z"} -{"level":"info","message":"Executing UP migration from 004_conversations.sql...","timestamp":"2025-04-28T14:51:16.893Z"} -{"level":"info","message":"Migration 004_conversations.sql executed successfully","timestamp":"2025-04-28T14:51:16.927Z"} -{"level":"info","message":"Executing UP migration from 005_messages.sql...","timestamp":"2025-04-28T14:51:16.930Z"} -{"level":"info","message":"Migration 005_messages.sql executed successfully","timestamp":"2025-04-28T14:51:16.996Z"} -{"level":"info","message":"Executing UP migration from 006_guest_messages.sql...","timestamp":"2025-04-28T14:51:16.998Z"} -{"level":"info","message":"Migration 006_guest_messages.sql executed successfully","timestamp":"2025-04-28T14:51:17.037Z"} -{"level":"info","message":"Executing UP migration from 007_user_preferences.sql...","timestamp":"2025-04-28T14:51:17.039Z"} -{"level":"info","message":"Migration 007_user_preferences.sql executed successfully","timestamp":"2025-04-28T14:51:17.077Z"} -{"level":"info","message":"Executing UP migration from 008_update_messages_structure.sql...","timestamp":"2025-04-28T14:51:17.079Z"} -{"level":"info","message":"Migration 008_update_messages_structure.sql executed successfully","timestamp":"2025-04-28T14:51:17.087Z"} -{"level":"info","message":"Executing UP migration from 009_nonces_table.sql...","timestamp":"2025-04-28T14:51:17.089Z"} -{"level":"info","message":"Migration 009_nonces_table.sql executed successfully","timestamp":"2025-04-28T14:51:17.117Z"} -{"level":"info","message":"Executing UP migration from 010_cleanup_roles.sql...","timestamp":"2025-04-28T14:51:17.119Z"} -{"level":"info","message":"Migration 010_cleanup_roles.sql executed successfully","timestamp":"2025-04-28T14:51:17.141Z"} -{"level":"info","message":"Executing UP migration from 011_cleanup_guest_relations.sql...","timestamp":"2025-04-28T14:51:17.143Z"} -{"level":"info","message":"Migration 011_cleanup_guest_relations.sql executed successfully","timestamp":"2025-04-28T14:51:17.160Z"} -{"level":"info","message":"Executing UP migration from 012_verification_codes.sql...","timestamp":"2025-04-28T14:51:17.161Z"} -{"level":"info","message":"Migration 012_verification_codes.sql executed successfully","timestamp":"2025-04-28T14:51:17.187Z"} -{"level":"info","message":"Executing UP migration from 013_update_verification_codes.sql...","timestamp":"2025-04-28T14:51:17.189Z"} -{"level":"info","message":"Migration 013_update_verification_codes.sql executed successfully","timestamp":"2025-04-28T14:51:17.195Z"} -{"level":"info","message":"Executing UP migration from 014_identity_system_refactor.sql...","timestamp":"2025-04-28T14:51:17.196Z"} -{"level":"info","message":"Migration 014_identity_system_refactor.sql executed successfully","timestamp":"2025-04-28T14:51:17.238Z"} -{"level":"info","message":"Executing UP migration from 015_users_table_refactor.sql...","timestamp":"2025-04-28T14:51:17.240Z"} -{"level":"info","message":"Migration 015_users_table_refactor.sql executed successfully","timestamp":"2025-04-28T14:51:17.251Z"} -{"level":"info","message":"Executing UP migration from 016_fix_duplicate_identities.sql...","timestamp":"2025-04-28T14:51:17.253Z"} -{"level":"info","message":"Migration 016_fix_duplicate_identities.sql executed successfully","timestamp":"2025-04-28T14:51:17.277Z"} -{"level":"info","message":"Executing UP migration from 017_add_file_storage_columns.sql...","timestamp":"2025-04-28T14:51:17.278Z"} -{"level":"info","message":"Migration 017_add_file_storage_columns.sql executed successfully","timestamp":"2025-04-28T14:51:17.286Z"} -{"level":"info","message":"Executing UP migration from fix_duplicates_manual.sql...","timestamp":"2025-04-28T14:51:17.288Z"} -{"level":"info","message":"Migration fix_duplicates_manual.sql executed successfully","timestamp":"2025-04-28T14:51:17.303Z"} -{"level":"info","message":"Function link_guest_messages.sql executed successfully","timestamp":"2025-04-28T14:51:17.310Z"} -{"level":"info","message":"GET /api/auth/check","timestamp":"2025-04-28T14:52:49.607Z"} -{"cookie":{"expires":"2025-05-28T14:52:49.598Z","httpOnly":true,"originalMaxAge":2592000000,"path":"/","sameSite":"lax","secure":false},"guestId":"89ed82fc2d333510bae56f8f2d4c9f32","level":"info","message":"[SessionService] Saving session data:","timestamp":"2025-04-28T14:52:49.632Z"} -{"level":"info","message":"Session saved successfully","timestamp":"2025-04-28T14:52:49.641Z"} -{"level":"info","message":"GET /api/auth/check","timestamp":"2025-04-28T14:52:49.662Z"} -{"cookie":{"expires":"2025-05-28T14:52:49.659Z","httpOnly":true,"originalMaxAge":2592000000,"path":"/","sameSite":"lax","secure":false},"guestId":"a6ad4501ae3e2ca50877ae1f09c830f3","level":"info","message":"[SessionService] Saving session data:","timestamp":"2025-04-28T14:52:49.664Z"} -{"level":"info","message":"Session saved successfully","timestamp":"2025-04-28T14:52:49.669Z"} -{"level":"info","message":"GET /api/auth/check","timestamp":"2025-04-28T14:52:49.682Z"} -{"cookie":{"expires":"2025-05-28T14:52:49.679Z","httpOnly":true,"originalMaxAge":2592000000,"path":"/","sameSite":"lax","secure":false},"guestId":"751c8c8e1a1232800d24c6c6e3903f55","level":"info","message":"[SessionService] Saving session data:","timestamp":"2025-04-28T14:52:49.683Z"} -{"level":"info","message":"Session saved successfully","timestamp":"2025-04-28T14:52:49.687Z"} -{"level":"info","message":"POST /api/chat/guest-message","timestamp":"2025-04-28T14:52:57.975Z"} -{"level":"info","message":"Received /guest-message request","timestamp":"2025-04-28T14:52:57.987Z"} -{"file":null,"guestId":"1745850508983-zb9xi0g4t","level":"info","message":"Saving guest message: шр","mimetype":null,"size":null,"timestamp":"2025-04-28T14:52:57.989Z"} -{"level":"info","message":"Guest message saved with ID:","timestamp":"2025-04-28T14:52:58.016Z"} -{"level":"info","message":"Session saved after guest message","timestamp":"2025-04-28T14:52:58.020Z"} -{"level":"info","message":"POST /api/chat/guest-message","timestamp":"2025-04-28T14:53:06.940Z"} -{"level":"info","message":"Received /guest-message request","timestamp":"2025-04-28T14:53:06.969Z"} -{"file":"image (15).png","guestId":"1745850508983-zb9xi0g4t","level":"info","message":"Saving guest message:","mimetype":"image/png","size":18375,"timestamp":"2025-04-28T14:53:07.020Z"} -{"code":"23502","column":"content","detail":"Failing row contains (2, 1745850508983-zb9xi0g4t, null, ru, f, 2025-04-28 14:53:07.021316+00, image (15).png, image/png, 18375, \\x89504e470d0a1a0a0000000d4948445200000213000000ee08060000008330...).","file":"execMain.c","length":383,"level":"error","line":"2006","message":"Error saving guest message: null value in column \"content\" of relation \"guest_messages\" violates not-null constraint","name":"error","routine":"ExecConstraints","schema":"public","severity":"ERROR","stack":"error: null value in column \"content\" of relation \"guest_messages\" violates not-null constraint\n at /app/node_modules/pg-pool/index.js:45:11\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n at async /app/routes/chat.js:224:20","table":"guest_messages","timestamp":"2025-04-28T14:53:07.027Z"} -{"level":"info","message":"GET /api/auth/check","timestamp":"2025-04-28T14:55:32.915Z"} -{"level":"info","message":"GET /api/auth/check","timestamp":"2025-04-28T14:55:32.949Z"} -{"level":"info","message":"GET /api/auth/check","timestamp":"2025-04-28T14:55:32.969Z"} -{"level":"info","message":"POST /api/chat/guest-message","timestamp":"2025-04-28T14:55:42.335Z"} -{"level":"info","message":"Received /guest-message request","timestamp":"2025-04-28T14:55:42.380Z"} -{"file":"image (34).png","guestId":"1745850508983-zb9xi0g4t","level":"info","message":"Saving guest message:","mimetype":"image/png","size":107094,"timestamp":"2025-04-28T14:55:42.453Z"} -{"level":"info","message":"Guest message saved with ID:","timestamp":"2025-04-28T14:55:42.470Z"} -{"level":"info","message":"Session saved after guest message","timestamp":"2025-04-28T14:55:42.481Z"} -{"level":"info","message":"GET /api/auth/nonce?address=0xF45aa4917b3775bA37f48Aeb3dc1a943561e9e0B","timestamp":"2025-04-28T14:55:55.842Z"} -{"level":"info","message":"Nonce d797ac1e8e243c4169e985ef123f809f сохранен для адреса 0xF45aa4917b3775bA37f48Aeb3dc1a943561e9e0B","timestamp":"2025-04-28T14:55:55.872Z"} -{"level":"info","message":"POST /api/auth/verify","timestamp":"2025-04-28T14:56:00.298Z"} -{"level":"info","message":"[verify] Verifying signature for address: 0xF45aa4917b3775bA37f48Aeb3dc1a943561e9e0B","timestamp":"2025-04-28T14:56:00.300Z"} -{"level":"info","message":"Checking admin role for address: 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-28T14:56:00.482Z"} -{"address":"0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","balance":"500000.0","contract":"0x4B294265720B09ca39BFBA18c7E368413c0f68eB","hasTokens":true,"level":"info","message":"Token balance on bsc:","timestamp":"2025-04-28T14:56:01.909Z"} -{"level":"info","message":"Found admin tokens on bsc","timestamp":"2025-04-28T14:56:01.910Z"} -{"address":"0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","balance":"1500000.0","contract":"0xd95a45fc46a7300e6022885afec3d618d7d3f27c","hasTokens":true,"level":"info","message":"Token balance on eth:","timestamp":"2025-04-28T14:56:02.046Z"} -{"level":"info","message":"Found admin tokens on eth","timestamp":"2025-04-28T14:56:02.047Z"} -{"address":"0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","balance":"499999.9","contract":"0xdce769b847a0a697239777d0b1c7dd33b6012ba0","hasTokens":true,"level":"info","message":"Token balance on arbitrum:","timestamp":"2025-04-28T14:56:02.093Z"} -{"level":"info","message":"Found admin tokens on arbitrum","timestamp":"2025-04-28T14:56:02.094Z"} -{"address":"0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","balance":"454852.0","contract":"0x351f59de4fedbdf7601f5592b93db3b9330c1c1d","hasTokens":true,"level":"info","message":"Token balance on polygon:","timestamp":"2025-04-28T14:56:02.180Z"} -{"level":"info","message":"Found admin tokens on polygon","timestamp":"2025-04-28T14:56:02.181Z"} -{"balances":{"arbitrum":"499999.9","bsc":"500000.0","eth":"1500000.0","polygon":"454852.0"},"level":"info","message":"Admin role summary for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b:","networks":["bsc","eth","arbitrum","polygon"],"timestamp":"2025-04-28T14:56:02.182Z"} -{"level":"info","message":"Admin role granted for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-28T14:56:02.183Z"} -{"level":"info","message":"New user 1 role check result: admin","timestamp":"2025-04-28T14:56:02.183Z"} -{"level":"info","message":"New user 1 with wallet 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b automatically granted admin role","timestamp":"2025-04-28T14:56:02.207Z"} -{"level":"info","message":"[verify] Found or created user 1 for wallet 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-28T14:56:02.208Z"} -{"level":"info","message":"[IdentityService] Converting guest identity for user 1 to guest_user_mapping: 1745850508983-zb9xi0g4t","timestamp":"2025-04-28T14:56:02.211Z"} -{"level":"info","message":"Checking admin tokens for address: 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-28T14:56:02.216Z"} -{"level":"info","message":"Checking admin role for address: 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-28T14:56:02.216Z"} -{"address":"0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","balance":"500000.0","contract":"0x4B294265720B09ca39BFBA18c7E368413c0f68eB","hasTokens":true,"level":"info","message":"Token balance on bsc:","timestamp":"2025-04-28T14:56:02.556Z"} -{"level":"info","message":"Found admin tokens on bsc","timestamp":"2025-04-28T14:56:02.557Z"} -{"address":"0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","balance":"1500000.0","contract":"0xd95a45fc46a7300e6022885afec3d618d7d3f27c","hasTokens":true,"level":"info","message":"Token balance on eth:","timestamp":"2025-04-28T14:56:02.687Z"} -{"level":"info","message":"Found admin tokens on eth","timestamp":"2025-04-28T14:56:02.687Z"} -{"address":"0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","balance":"454852.0","contract":"0x351f59de4fedbdf7601f5592b93db3b9330c1c1d","hasTokens":true,"level":"info","message":"Token balance on polygon:","timestamp":"2025-04-28T14:56:02.694Z"} -{"level":"info","message":"Found admin tokens on polygon","timestamp":"2025-04-28T14:56:02.694Z"} -{"address":"0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","balance":"499999.9","contract":"0xdce769b847a0a697239777d0b1c7dd33b6012ba0","hasTokens":true,"level":"info","message":"Token balance on arbitrum:","timestamp":"2025-04-28T14:56:02.868Z"} -{"level":"info","message":"Found admin tokens on arbitrum","timestamp":"2025-04-28T14:56:02.868Z"} -{"balances":{"arbitrum":"499999.9","bsc":"500000.0","eth":"1500000.0","polygon":"454852.0"},"level":"info","message":"Admin role summary for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b:","networks":["bsc","eth","polygon","arbitrum"],"timestamp":"2025-04-28T14:56:02.868Z"} -{"level":"info","message":"Admin role granted for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-28T14:56:02.868Z"} -{"level":"info","message":"Updated user 1 role to admin based on token holdings","timestamp":"2025-04-28T14:56:02.875Z"} -{"address":"0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","authType":"wallet","authenticated":true,"cookie":{"expires":"2025-05-28T14:52:49.679Z","httpOnly":true,"originalMaxAge":2592000000,"path":"/","sameSite":"lax","secure":false},"guestId":"1745850508983-zb9xi0g4t","isAdmin":true,"level":"info","message":"[SessionService] Saving session data:","timestamp":"2025-04-28T14:56:02.879Z","userId":1} -{"level":"info","message":"Session saved successfully","timestamp":"2025-04-28T14:56:02.884Z"} -{"level":"info","message":"[linkGuestMessages] Starting for user 1 with guestId=1745850508983-zb9xi0g4t, previousGuestId=undefined","timestamp":"2025-04-28T14:56:02.885Z"} -{"level":"info","message":"[processGuestMessagesWrapper] Processing messages: userId=1, guestId=1745850508983-zb9xi0g4t","timestamp":"2025-04-28T14:56:02.891Z"} -{"level":"info","message":"Processing guest messages for user 1 with guest ID 1745850508983-zb9xi0g4t","timestamp":"2025-04-28T14:56:02.893Z"} -{"level":"info","message":"Found 2 guest messages for guest ID 1745850508983-zb9xi0g4t","timestamp":"2025-04-28T14:56:02.908Z"} -{"level":"info","message":"Created new conversation 1 for guest messages","timestamp":"2025-04-28T14:56:02.914Z"} -{"level":"info","message":"Processing guest message ID 1: шр","timestamp":"2025-04-28T14:56:02.914Z"} -{"level":"info","message":"Saved user message with ID 1","timestamp":"2025-04-28T14:56:02.922Z"} -{"level":"info","message":"Getting AI response for:","timestamp":"2025-04-28T14:56:02.923Z"} -{"level":"info","message":"GET /api/auth/check","timestamp":"2025-04-28T14:57:23.313Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T14:57:23.331Z"} -{"level":"info","message":"GET /api/auth/check","timestamp":"2025-04-28T14:57:23.368Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T14:57:23.372Z"} -{"level":"info","message":"GET /api/auth/check","timestamp":"2025-04-28T14:57:23.400Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T14:57:23.415Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T14:57:23.446Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T14:57:23.453Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T14:57:23.468Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T14:57:23.475Z"} -{"level":"info","message":"GET /api/tokens/balances?address=0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-28T14:57:23.499Z"} -{"level":"info","message":"Fetching token balances for address: 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-28T14:57:23.504Z"} -{"level":"info","message":"GET /api/auth/check","timestamp":"2025-04-28T14:57:23.531Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T14:57:23.537Z"} -{"level":"info","message":"GET /api/auth/check","timestamp":"2025-04-28T14:57:23.563Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T14:57:23.569Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T14:57:23.572Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T14:57:23.577Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T14:57:23.599Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T14:57:23.604Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T14:57:23.622Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T14:57:23.627Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T14:57:23.642Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T14:57:23.645Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T14:57:23.661Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T14:57:23.666Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T14:57:23.682Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T14:57:23.686Z"} -{"level":"info","message":"GET /api/auth/check","timestamp":"2025-04-28T14:57:24.496Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T14:57:24.499Z"} -{"level":"info","message":"GET /api/chat/history?count_only=true","timestamp":"2025-04-28T14:57:24.520Z"} -{"level":"info","message":"GET /api/chat/history?offset=0&limit=30","timestamp":"2025-04-28T14:57:24.540Z"} -{"level":"error","message":"Error fetching message history for user 1: syntax error at or near \"$\"","stack":"error: syntax error at or near \"$\"\n at /app/node_modules/pg-pool/index.js:45:11\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n at async /app/routes/chat.js:484:20","timestamp":"2025-04-28T14:57:24.546Z"} -{"balance":"1500000.0","contract":"0xd95a45fc46a7300e6022885afec3d618d7d3f27c","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on eth:","timestamp":"2025-04-28T14:57:24.875Z"} -{"balance":"500000.0","contract":"0x4B294265720B09ca39BFBA18c7E368413c0f68eB","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on bsc:","timestamp":"2025-04-28T14:57:26.402Z"} -{"balance":"499999.9","contract":"0xdce769b847a0a697239777d0b1c7dd33b6012ba0","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on arbitrum:","timestamp":"2025-04-28T14:57:27.892Z"} -{"balance":"454852.0","contract":"0x351f59de4fedbdf7601f5592b93db3b9330c1c1d","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on polygon:","timestamp":"2025-04-28T14:57:29.467Z"} -{"arbitrum":"499999.9","bsc":"500000.0","eth":"1500000.0","level":"info","message":"Token balances fetched for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b:","polygon":"454852.0","timestamp":"2025-04-28T14:57:29.467Z"} -{"level":"info","message":"GET /api/tokens/balances?address=0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-28T14:57:29.488Z"} -{"level":"info","message":"Fetching token balances for address: 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-28T14:57:29.491Z"} -{"balance":"1500000.0","contract":"0xd95a45fc46a7300e6022885afec3d618d7d3f27c","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on eth:","timestamp":"2025-04-28T14:57:30.044Z"} -{"balance":"500000.0","contract":"0x4B294265720B09ca39BFBA18c7E368413c0f68eB","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on bsc:","timestamp":"2025-04-28T14:57:30.469Z"} -{"balance":"499999.9","contract":"0xdce769b847a0a697239777d0b1c7dd33b6012ba0","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on arbitrum:","timestamp":"2025-04-28T14:57:31.363Z"} -{"level":"info","message":"POST /api/auth/logout","timestamp":"2025-04-28T14:57:31.853Z"} -{"address":null,"authType":null,"authenticated":false,"cookie":{"expires":"2025-05-28T14:52:49.679Z","httpOnly":true,"originalMaxAge":2592000000,"path":"/","sameSite":"lax","secure":false},"email":null,"guestId":null,"isAdmin":false,"level":"info","message":"[SessionService] Saving session data:","pendingEmail":null,"previousGuestId":null,"processedGuestIds":[],"telegramId":null,"timestamp":"2025-04-28T14:57:31.855Z","userId":null} -{"level":"info","message":"Session saved successfully","timestamp":"2025-04-28T14:57:31.863Z"} -{"balance":"454852.0","contract":"0x351f59de4fedbdf7601f5592b93db3b9330c1c1d","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on polygon:","timestamp":"2025-04-28T14:57:31.924Z"} -{"arbitrum":"499999.9","bsc":"500000.0","eth":"1500000.0","level":"info","message":"Token balances fetched for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b:","polygon":"454852.0","timestamp":"2025-04-28T14:57:31.925Z"} -{"level":"info","message":"POST /api/chat/guest-message","timestamp":"2025-04-28T14:57:42.995Z"} -{"level":"info","message":"Received /guest-message request","timestamp":"2025-04-28T14:57:43.008Z"} -{"file":"image (35).png","guestId":"1745852262561-8ruitvvmj","level":"info","message":"Saving guest message:","mimetype":"image/png","size":183000,"timestamp":"2025-04-28T14:57:43.221Z"} -{"level":"info","message":"Guest message saved with ID:","timestamp":"2025-04-28T14:57:44.350Z"} -{"level":"info","message":"Session saved after guest message","timestamp":"2025-04-28T14:57:44.377Z"} -{"level":"info","message":"GET /api/auth/nonce?address=0xF45aa4917b3775bA37f48Aeb3dc1a943561e9e0B","timestamp":"2025-04-28T14:57:46.331Z"} -{"level":"info","message":"Nonce f6956f9ea5b318c9fd175fdface4b790 сохранен для адреса 0xF45aa4917b3775bA37f48Aeb3dc1a943561e9e0B","timestamp":"2025-04-28T14:57:46.364Z"} -{"level":"info","message":"POST /api/auth/verify","timestamp":"2025-04-28T14:57:47.356Z"} -{"level":"info","message":"[verify] Verifying signature for address: 0xF45aa4917b3775bA37f48Aeb3dc1a943561e9e0B","timestamp":"2025-04-28T14:57:47.357Z"} -{"level":"info","message":"Checking admin role for address: 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-28T14:57:47.476Z"} -{"address":"0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","balance":"500000.0","contract":"0x4B294265720B09ca39BFBA18c7E368413c0f68eB","hasTokens":true,"level":"info","message":"Token balance on bsc:","timestamp":"2025-04-28T14:57:48.712Z"} -{"level":"info","message":"Found admin tokens on bsc","timestamp":"2025-04-28T14:57:48.712Z"} -{"address":"0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","balance":"454852.0","contract":"0x351f59de4fedbdf7601f5592b93db3b9330c1c1d","hasTokens":true,"level":"info","message":"Token balance on polygon:","timestamp":"2025-04-28T14:57:48.807Z"} -{"level":"info","message":"Found admin tokens on polygon","timestamp":"2025-04-28T14:57:48.808Z"} -{"address":"0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","balance":"499999.9","contract":"0xdce769b847a0a697239777d0b1c7dd33b6012ba0","hasTokens":true,"level":"info","message":"Token balance on arbitrum:","timestamp":"2025-04-28T14:57:48.846Z"} -{"level":"info","message":"Found admin tokens on arbitrum","timestamp":"2025-04-28T14:57:48.846Z"} -{"address":"0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","balance":"1500000.0","contract":"0xd95a45fc46a7300e6022885afec3d618d7d3f27c","hasTokens":true,"level":"info","message":"Token balance on eth:","timestamp":"2025-04-28T14:57:48.849Z"} -{"level":"info","message":"Found admin tokens on eth","timestamp":"2025-04-28T14:57:48.849Z"} -{"balances":{"arbitrum":"499999.9","bsc":"500000.0","eth":"1500000.0","polygon":"454852.0"},"level":"info","message":"Admin role summary for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b:","networks":["bsc","polygon","arbitrum","eth"],"timestamp":"2025-04-28T14:57:48.850Z"} -{"level":"info","message":"Admin role granted for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-28T14:57:48.850Z"} -{"level":"info","message":"[verify] Found or created user 1 for wallet 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-28T14:57:48.851Z"} -{"level":"info","message":"[IdentityService] Converting guest identity for user 1 to guest_user_mapping: 1745852262561-8ruitvvmj","timestamp":"2025-04-28T14:57:48.852Z"} -{"level":"info","message":"Checking admin tokens for address: 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-28T14:57:48.859Z"} -{"level":"info","message":"Checking admin role for address: 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-28T14:57:48.859Z"} -{"address":"0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","balance":"500000.0","contract":"0x4B294265720B09ca39BFBA18c7E368413c0f68eB","hasTokens":true,"level":"info","message":"Token balance on bsc:","timestamp":"2025-04-28T14:57:49.206Z"} -{"level":"info","message":"Found admin tokens on bsc","timestamp":"2025-04-28T14:57:49.207Z"} -{"address":"0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","balance":"1500000.0","contract":"0xd95a45fc46a7300e6022885afec3d618d7d3f27c","hasTokens":true,"level":"info","message":"Token balance on eth:","timestamp":"2025-04-28T14:57:49.341Z"} -{"level":"info","message":"Found admin tokens on eth","timestamp":"2025-04-28T14:57:49.342Z"} -{"address":"0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","balance":"454852.0","contract":"0x351f59de4fedbdf7601f5592b93db3b9330c1c1d","hasTokens":true,"level":"info","message":"Token balance on polygon:","timestamp":"2025-04-28T14:57:49.367Z"} -{"level":"info","message":"Found admin tokens on polygon","timestamp":"2025-04-28T14:57:49.368Z"} -{"address":"0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","balance":"499999.9","contract":"0xdce769b847a0a697239777d0b1c7dd33b6012ba0","hasTokens":true,"level":"info","message":"Token balance on arbitrum:","timestamp":"2025-04-28T14:57:49.550Z"} -{"level":"info","message":"Found admin tokens on arbitrum","timestamp":"2025-04-28T14:57:49.551Z"} -{"balances":{"arbitrum":"499999.9","bsc":"500000.0","eth":"1500000.0","polygon":"454852.0"},"level":"info","message":"Admin role summary for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b:","networks":["bsc","eth","polygon","arbitrum"],"timestamp":"2025-04-28T14:57:49.551Z"} -{"level":"info","message":"Admin role granted for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-28T14:57:49.551Z"} -{"level":"info","message":"Updated user 1 role to admin based on token holdings","timestamp":"2025-04-28T14:57:49.558Z"} -{"address":"0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","authType":"wallet","authenticated":true,"cookie":{"expires":"2025-05-28T14:57:42.989Z","httpOnly":true,"originalMaxAge":2592000000,"path":"/","sameSite":"lax","secure":false},"guestId":"1745852262561-8ruitvvmj","isAdmin":true,"level":"info","message":"[SessionService] Saving session data:","timestamp":"2025-04-28T14:57:49.562Z","userId":1} -{"level":"info","message":"Session saved successfully","timestamp":"2025-04-28T14:57:49.566Z"} -{"level":"info","message":"[linkGuestMessages] Starting for user 1 with guestId=1745852262561-8ruitvvmj, previousGuestId=undefined","timestamp":"2025-04-28T14:57:49.567Z"} -{"level":"info","message":"[processGuestMessagesWrapper] Processing messages: userId=1, guestId=1745852262561-8ruitvvmj","timestamp":"2025-04-28T14:57:49.573Z"} -{"level":"info","message":"Processing guest messages for user 1 with guest ID 1745852262561-8ruitvvmj","timestamp":"2025-04-28T14:57:49.575Z"} -{"level":"info","message":"Found 1 guest messages for guest ID 1745852262561-8ruitvvmj","timestamp":"2025-04-28T14:57:49.586Z"} -{"level":"info","message":"Created new conversation 2 for guest messages","timestamp":"2025-04-28T14:57:49.591Z"} -{"level":"info","message":"Processing guest message ID 4: image (35).png","timestamp":"2025-04-28T14:57:49.592Z"} -{"level":"info","message":"Saved user message with ID 2","timestamp":"2025-04-28T14:57:49.644Z"} -{"level":"info","message":"Skipping AI response for guest message ID 4 (is_ai: false, hasContent: false)","timestamp":"2025-04-28T14:57:49.645Z"} -{"level":"info","message":"Deleted 1 processed guest messages for guest ID 1745852262561-8ruitvvmj","timestamp":"2025-04-28T14:57:49.649Z"} -{"level":"info","message":"Marked guest mapping as processed for guest ID 1745852262561-8ruitvvmj","timestamp":"2025-04-28T14:57:49.653Z"} -{"level":"info","message":"[processGuestMessagesWrapper] Processing messages: userId=1, guestId=1745850508983-zb9xi0g4t","timestamp":"2025-04-28T14:57:49.657Z"} -{"level":"info","message":"Processing guest messages for user 1 with guest ID 1745850508983-zb9xi0g4t","timestamp":"2025-04-28T14:57:49.658Z"} -{"level":"info","message":"Found 2 guest messages for guest ID 1745850508983-zb9xi0g4t","timestamp":"2025-04-28T14:57:49.672Z"} -{"level":"info","message":"Created new conversation 3 for guest messages","timestamp":"2025-04-28T14:57:49.677Z"} -{"level":"info","message":"Processing guest message ID 1: шр","timestamp":"2025-04-28T14:57:49.677Z"} -{"level":"info","message":"Saved user message with ID 3","timestamp":"2025-04-28T14:57:49.683Z"} -{"level":"info","message":"Getting AI response for:","timestamp":"2025-04-28T14:57:49.684Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T14:57:53.877Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T14:57:53.882Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T14:58:24.113Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T14:58:24.123Z"} -{"level":"info","message":"AI response received","timestamp":"2025-04-28T14:58:33.547Z"} -{"level":"info","message":"Saved AI response with ID 4","timestamp":"2025-04-28T14:58:33.554Z"} -{"level":"info","message":"Processing guest message ID 3: image (34).png","timestamp":"2025-04-28T14:58:33.555Z"} -{"level":"info","message":"Saved user message with ID 5","timestamp":"2025-04-28T14:58:33.565Z"} -{"level":"info","message":"Skipping AI response for guest message ID 3 (is_ai: false, hasContent: false)","timestamp":"2025-04-28T14:58:33.565Z"} -{"level":"info","message":"Deleted 2 processed guest messages for guest ID 1745850508983-zb9xi0g4t","timestamp":"2025-04-28T14:58:33.568Z"} -{"level":"info","message":"Marked guest mapping as processed for guest ID 1745850508983-zb9xi0g4t","timestamp":"2025-04-28T14:58:33.571Z"} -{"address":"0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","authType":"wallet","authenticated":true,"cookie":{"expires":"2025-05-28T14:57:42.989Z","httpOnly":true,"originalMaxAge":2592000000,"path":"/","sameSite":"lax","secure":false},"guestId":"1745852262561-8ruitvvmj","isAdmin":true,"level":"info","message":"[SessionService] Saving session data:","processedGuestIds":["1745852262561-8ruitvvmj","1745850508983-zb9xi0g4t"],"timestamp":"2025-04-28T14:58:33.574Z","userId":1} -{"level":"info","message":"Session saved successfully","timestamp":"2025-04-28T14:58:33.577Z"} -{"level":"info","message":"GET /api/auth/check","timestamp":"2025-04-28T14:58:33.591Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T14:58:33.593Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T14:58:33.616Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T14:58:33.621Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T14:58:33.639Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T14:58:33.642Z"} -{"level":"info","message":"GET /api/tokens/balances?address=0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-28T14:58:33.646Z"} -{"level":"info","message":"Fetching token balances for address: 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-28T14:58:33.647Z"} -{"balance":"1500000.0","contract":"0xd95a45fc46a7300e6022885afec3d618d7d3f27c","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on eth:","timestamp":"2025-04-28T14:58:34.886Z"} -{"level":"info","message":"GET /api/auth/check","timestamp":"2025-04-28T14:58:35.429Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T14:58:35.433Z"} -{"level":"info","message":"GET /api/chat/history?count_only=true","timestamp":"2025-04-28T14:58:35.457Z"} -{"level":"info","message":"GET /api/chat/history?offset=0&limit=30","timestamp":"2025-04-28T14:58:35.481Z"} -{"level":"error","message":"Error fetching message history for user 1: syntax error at or near \"$\"","stack":"error: syntax error at or near \"$\"\n at /app/node_modules/pg-pool/index.js:45:11\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n at async /app/routes/chat.js:484:20","timestamp":"2025-04-28T14:58:35.485Z"} -{"balance":"500000.0","contract":"0x4B294265720B09ca39BFBA18c7E368413c0f68eB","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on bsc:","timestamp":"2025-04-28T14:58:36.344Z"} -{"balance":"499999.9","contract":"0xdce769b847a0a697239777d0b1c7dd33b6012ba0","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on arbitrum:","timestamp":"2025-04-28T14:58:37.800Z"} -{"balance":"454852.0","contract":"0x351f59de4fedbdf7601f5592b93db3b9330c1c1d","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on polygon:","timestamp":"2025-04-28T14:58:39.586Z"} -{"arbitrum":"499999.9","bsc":"500000.0","eth":"1500000.0","level":"info","message":"Token balances fetched for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b:","polygon":"454852.0","timestamp":"2025-04-28T14:58:39.587Z"} -{"level":"info","message":"GET /api/tokens/balances?address=0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-28T14:58:39.601Z"} -{"level":"info","message":"Fetching token balances for address: 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-28T14:58:39.602Z"} -{"balance":"1500000.0","contract":"0xd95a45fc46a7300e6022885afec3d618d7d3f27c","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on eth:","timestamp":"2025-04-28T14:58:40.220Z"} -{"balance":"500000.0","contract":"0x4B294265720B09ca39BFBA18c7E368413c0f68eB","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on bsc:","timestamp":"2025-04-28T14:58:40.658Z"} -{"balance":"499999.9","contract":"0xdce769b847a0a697239777d0b1c7dd33b6012ba0","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on arbitrum:","timestamp":"2025-04-28T14:58:41.521Z"} -{"balance":"454852.0","contract":"0x351f59de4fedbdf7601f5592b93db3b9330c1c1d","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on polygon:","timestamp":"2025-04-28T14:58:42.085Z"} -{"arbitrum":"499999.9","bsc":"500000.0","eth":"1500000.0","level":"info","message":"Token balances fetched for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b:","polygon":"454852.0","timestamp":"2025-04-28T14:58:42.085Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T14:58:54.342Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T14:58:54.346Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T14:58:54.381Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T14:58:54.384Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T14:59:24.973Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T14:59:24.978Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T14:59:24.993Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T14:59:24.996Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T14:59:55.183Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T14:59:55.188Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T14:59:55.202Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T14:59:55.205Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T15:00:24.998Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T15:00:25.008Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T15:00:25.037Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T15:00:25.043Z"} -{"level":"info","message":"POST /api/auth/logout","timestamp":"2025-04-28T15:00:27.747Z"} -{"address":null,"authType":null,"authenticated":false,"cookie":{"expires":"2025-05-28T14:57:42.989Z","httpOnly":true,"originalMaxAge":2592000000,"path":"/","sameSite":"lax","secure":false},"email":null,"guestId":null,"isAdmin":false,"level":"info","message":"[SessionService] Saving session data:","pendingEmail":null,"previousGuestId":null,"processedGuestIds":[],"telegramId":null,"timestamp":"2025-04-28T15:00:27.749Z","userId":null} -{"level":"info","message":"Session saved successfully","timestamp":"2025-04-28T15:00:27.754Z"} -{"level":"info","message":"POST /api/chat/guest-message","timestamp":"2025-04-28T15:00:42.015Z"} -{"level":"info","message":"Received /guest-message request","timestamp":"2025-04-28T15:00:42.027Z"} -{"file":"image (3).png","guestId":"1745852442788-p2tv0lcbo","level":"info","message":"Saving guest message:","mimetype":"image/png","size":29740,"timestamp":"2025-04-28T15:00:42.066Z"} -{"level":"info","message":"Guest message saved with ID:","timestamp":"2025-04-28T15:00:42.096Z"} -{"level":"info","message":"Session saved after guest message","timestamp":"2025-04-28T15:00:42.101Z"} -{"level":"info","message":"GET /api/auth/nonce?address=0xF45aa4917b3775bA37f48Aeb3dc1a943561e9e0B","timestamp":"2025-04-28T15:00:44.198Z"} -{"level":"info","message":"Nonce adf09072890b006ebd93227861050e9f сохранен для адреса 0xF45aa4917b3775bA37f48Aeb3dc1a943561e9e0B","timestamp":"2025-04-28T15:00:44.226Z"} -{"level":"info","message":"POST /api/auth/verify","timestamp":"2025-04-28T15:00:46.946Z"} -{"level":"info","message":"[verify] Verifying signature for address: 0xF45aa4917b3775bA37f48Aeb3dc1a943561e9e0B","timestamp":"2025-04-28T15:00:46.948Z"} -{"level":"info","message":"Checking admin role for address: 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-28T15:00:47.060Z"} -{"address":"0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","balance":"499999.9","contract":"0xdce769b847a0a697239777d0b1c7dd33b6012ba0","hasTokens":true,"level":"info","message":"Token balance on arbitrum:","timestamp":"2025-04-28T15:00:48.313Z"} -{"level":"info","message":"Found admin tokens on arbitrum","timestamp":"2025-04-28T15:00:48.314Z"} -{"address":"0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","balance":"1500000.0","contract":"0xd95a45fc46a7300e6022885afec3d618d7d3f27c","hasTokens":true,"level":"info","message":"Token balance on eth:","timestamp":"2025-04-28T15:00:48.377Z"} -{"level":"info","message":"Found admin tokens on eth","timestamp":"2025-04-28T15:00:48.378Z"} -{"address":"0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","balance":"500000.0","contract":"0x4B294265720B09ca39BFBA18c7E368413c0f68eB","hasTokens":true,"level":"info","message":"Token balance on bsc:","timestamp":"2025-04-28T15:00:48.381Z"} -{"level":"info","message":"Found admin tokens on bsc","timestamp":"2025-04-28T15:00:48.382Z"} -{"address":"0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","balance":"454852.0","contract":"0x351f59de4fedbdf7601f5592b93db3b9330c1c1d","hasTokens":true,"level":"info","message":"Token balance on polygon:","timestamp":"2025-04-28T15:00:48.673Z"} -{"level":"info","message":"Found admin tokens on polygon","timestamp":"2025-04-28T15:00:48.673Z"} -{"balances":{"arbitrum":"499999.9","bsc":"500000.0","eth":"1500000.0","polygon":"454852.0"},"level":"info","message":"Admin role summary for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b:","networks":["arbitrum","eth","bsc","polygon"],"timestamp":"2025-04-28T15:00:48.674Z"} -{"level":"info","message":"Admin role granted for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-28T15:00:48.674Z"} -{"level":"info","message":"[verify] Found or created user 1 for wallet 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-28T15:00:48.675Z"} -{"level":"info","message":"[IdentityService] Converting guest identity for user 1 to guest_user_mapping: 1745852442788-p2tv0lcbo","timestamp":"2025-04-28T15:00:48.676Z"} -{"level":"info","message":"Checking admin tokens for address: 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-28T15:00:48.776Z"} -{"level":"info","message":"Checking admin role for address: 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-28T15:00:48.777Z"} -{"address":"0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","balance":"500000.0","contract":"0x4B294265720B09ca39BFBA18c7E368413c0f68eB","hasTokens":true,"level":"info","message":"Token balance on bsc:","timestamp":"2025-04-28T15:00:49.147Z"} -{"level":"info","message":"Found admin tokens on bsc","timestamp":"2025-04-28T15:00:49.147Z"} -{"address":"0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","balance":"1500000.0","contract":"0xd95a45fc46a7300e6022885afec3d618d7d3f27c","hasTokens":true,"level":"info","message":"Token balance on eth:","timestamp":"2025-04-28T15:00:49.262Z"} -{"level":"info","message":"Found admin tokens on eth","timestamp":"2025-04-28T15:00:49.263Z"} -{"address":"0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","balance":"454852.0","contract":"0x351f59de4fedbdf7601f5592b93db3b9330c1c1d","hasTokens":true,"level":"info","message":"Token balance on polygon:","timestamp":"2025-04-28T15:00:49.320Z"} -{"level":"info","message":"Found admin tokens on polygon","timestamp":"2025-04-28T15:00:49.320Z"} -{"address":"0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","balance":"499999.9","contract":"0xdce769b847a0a697239777d0b1c7dd33b6012ba0","hasTokens":true,"level":"info","message":"Token balance on arbitrum:","timestamp":"2025-04-28T15:00:49.589Z"} -{"level":"info","message":"Found admin tokens on arbitrum","timestamp":"2025-04-28T15:00:49.589Z"} -{"balances":{"arbitrum":"499999.9","bsc":"500000.0","eth":"1500000.0","polygon":"454852.0"},"level":"info","message":"Admin role summary for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b:","networks":["bsc","eth","polygon","arbitrum"],"timestamp":"2025-04-28T15:00:49.590Z"} -{"level":"info","message":"Admin role granted for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-28T15:00:49.590Z"} -{"level":"info","message":"Updated user 1 role to admin based on token holdings","timestamp":"2025-04-28T15:00:49.597Z"} -{"address":"0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","authType":"wallet","authenticated":true,"cookie":{"expires":"2025-05-28T15:00:42.010Z","httpOnly":true,"originalMaxAge":2592000000,"path":"/","sameSite":"lax","secure":false},"guestId":"1745852442788-p2tv0lcbo","isAdmin":true,"level":"info","message":"[SessionService] Saving session data:","timestamp":"2025-04-28T15:00:49.601Z","userId":1} -{"level":"info","message":"Session saved successfully","timestamp":"2025-04-28T15:00:49.608Z"} -{"level":"info","message":"[linkGuestMessages] Starting for user 1 with guestId=1745852442788-p2tv0lcbo, previousGuestId=undefined","timestamp":"2025-04-28T15:00:49.609Z"} -{"level":"info","message":"[processGuestMessagesWrapper] Processing messages: userId=1, guestId=1745852442788-p2tv0lcbo","timestamp":"2025-04-28T15:00:49.615Z"} -{"level":"info","message":"Processing guest messages for user 1 with guest ID 1745852442788-p2tv0lcbo","timestamp":"2025-04-28T15:00:49.616Z"} -{"level":"info","message":"Found 1 guest messages for guest ID 1745852442788-p2tv0lcbo","timestamp":"2025-04-28T15:00:49.625Z"} -{"level":"info","message":"Created new conversation 4 for guest messages","timestamp":"2025-04-28T15:00:49.639Z"} -{"level":"info","message":"Processing guest message ID 5: image (3).png","timestamp":"2025-04-28T15:00:49.640Z"} -{"level":"info","message":"Saved user message with ID 6","timestamp":"2025-04-28T15:00:49.653Z"} -{"level":"info","message":"Skipping AI response for guest message ID 5 (is_ai: false, hasContent: false)","timestamp":"2025-04-28T15:00:49.654Z"} -{"level":"info","message":"Deleted 1 processed guest messages for guest ID 1745852442788-p2tv0lcbo","timestamp":"2025-04-28T15:00:49.660Z"} -{"level":"info","message":"Marked guest mapping as processed for guest ID 1745852442788-p2tv0lcbo","timestamp":"2025-04-28T15:00:49.665Z"} -{"level":"info","message":"[processGuestMessagesWrapper] Processing messages: userId=1, guestId=1745850508983-zb9xi0g4t","timestamp":"2025-04-28T15:00:49.671Z"} -{"level":"info","message":"Processing guest messages for user 1 with guest ID 1745850508983-zb9xi0g4t","timestamp":"2025-04-28T15:00:49.671Z"} -{"level":"info","message":"Guest messages for guest ID 1745850508983-zb9xi0g4t were already processed.","timestamp":"2025-04-28T15:00:49.674Z"} -{"level":"info","message":"[processGuestMessagesWrapper] Processing messages: userId=1, guestId=1745852262561-8ruitvvmj","timestamp":"2025-04-28T15:00:49.678Z"} -{"level":"info","message":"Processing guest messages for user 1 with guest ID 1745852262561-8ruitvvmj","timestamp":"2025-04-28T15:00:49.679Z"} -{"level":"info","message":"Guest messages for guest ID 1745852262561-8ruitvvmj were already processed.","timestamp":"2025-04-28T15:00:49.682Z"} -{"address":"0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","authType":"wallet","authenticated":true,"cookie":{"expires":"2025-05-28T15:00:42.010Z","httpOnly":true,"originalMaxAge":2592000000,"path":"/","sameSite":"lax","secure":false},"guestId":"1745852442788-p2tv0lcbo","isAdmin":true,"level":"info","message":"[SessionService] Saving session data:","processedGuestIds":["1745852442788-p2tv0lcbo","1745850508983-zb9xi0g4t","1745852262561-8ruitvvmj"],"timestamp":"2025-04-28T15:00:49.686Z","userId":1} -{"level":"info","message":"Session saved successfully","timestamp":"2025-04-28T15:00:49.690Z"} -{"level":"info","message":"GET /api/auth/check","timestamp":"2025-04-28T15:00:49.709Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T15:00:49.713Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T15:00:49.743Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T15:00:49.752Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T15:00:49.776Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T15:00:49.779Z"} -{"level":"info","message":"GET /api/tokens/balances?address=0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-28T15:00:49.790Z"} -{"level":"info","message":"Fetching token balances for address: 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-28T15:00:49.793Z"} -{"balance":"1500000.0","contract":"0xd95a45fc46a7300e6022885afec3d618d7d3f27c","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on eth:","timestamp":"2025-04-28T15:00:50.282Z"} -{"balance":"500000.0","contract":"0x4B294265720B09ca39BFBA18c7E368413c0f68eB","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on bsc:","timestamp":"2025-04-28T15:00:50.671Z"} -{"level":"info","message":"GET /api/auth/check","timestamp":"2025-04-28T15:00:50.848Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T15:00:50.851Z"} -{"level":"info","message":"GET /api/chat/history?count_only=true","timestamp":"2025-04-28T15:00:50.870Z"} -{"level":"info","message":"GET /api/chat/history?offset=0&limit=30","timestamp":"2025-04-28T15:00:50.886Z"} -{"count":6,"level":"info","limit":30,"message":"Returning message history for user 1","offset":0,"timestamp":"2025-04-28T15:00:50.897Z","total":6} -{"balance":"499999.9","contract":"0xdce769b847a0a697239777d0b1c7dd33b6012ba0","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on arbitrum:","timestamp":"2025-04-28T15:00:51.392Z"} -{"balance":"454852.0","contract":"0x351f59de4fedbdf7601f5592b93db3b9330c1c1d","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on polygon:","timestamp":"2025-04-28T15:00:51.876Z"} -{"arbitrum":"499999.9","bsc":"500000.0","eth":"1500000.0","level":"info","message":"Token balances fetched for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b:","polygon":"454852.0","timestamp":"2025-04-28T15:00:51.876Z"} -{"level":"info","message":"GET /api/tokens/balances?address=0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-28T15:00:51.892Z"} -{"level":"info","message":"Fetching token balances for address: 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-28T15:00:51.893Z"} -{"balance":"1500000.0","contract":"0xd95a45fc46a7300e6022885afec3d618d7d3f27c","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on eth:","timestamp":"2025-04-28T15:00:52.427Z"} -{"balance":"500000.0","contract":"0x4B294265720B09ca39BFBA18c7E368413c0f68eB","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on bsc:","timestamp":"2025-04-28T15:00:52.856Z"} -{"balance":"499999.9","contract":"0xdce769b847a0a697239777d0b1c7dd33b6012ba0","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on arbitrum:","timestamp":"2025-04-28T15:00:53.758Z"} -{"balance":"454852.0","contract":"0x351f59de4fedbdf7601f5592b93db3b9330c1c1d","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on polygon:","timestamp":"2025-04-28T15:00:54.320Z"} -{"arbitrum":"499999.9","bsc":"500000.0","eth":"1500000.0","level":"info","message":"Token balances fetched for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b:","polygon":"454852.0","timestamp":"2025-04-28T15:00:54.320Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T15:00:55.243Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T15:00:55.245Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T15:00:55.270Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T15:00:55.273Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T15:01:25.388Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T15:01:25.393Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T15:01:25.410Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T15:01:25.413Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T15:01:56.015Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T15:01:56.020Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T15:01:56.048Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T15:01:56.051Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T15:02:23.789Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T15:02:23.794Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T15:02:23.815Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T15:02:23.820Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T15:03:25.219Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T15:03:25.223Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T15:03:25.238Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T15:03:25.241Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T15:04:26.852Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T15:04:26.856Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T15:04:26.877Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T15:04:26.882Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T15:05:27.350Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T15:05:27.357Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T15:05:27.395Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T15:05:27.399Z"} -{"level":"info","message":"GET /api/tokens/balances?address=0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-28T15:05:49.908Z"} -{"level":"info","message":"Fetching token balances for address: 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-28T15:05:49.909Z"} -{"balance":"1500000.0","contract":"0xd95a45fc46a7300e6022885afec3d618d7d3f27c","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on eth:","timestamp":"2025-04-28T15:05:51.671Z"} -{"balance":"500000.0","contract":"0x4B294265720B09ca39BFBA18c7E368413c0f68eB","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on bsc:","timestamp":"2025-04-28T15:05:53.470Z"} -{"balance":"499999.9","contract":"0xdce769b847a0a697239777d0b1c7dd33b6012ba0","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on arbitrum:","timestamp":"2025-04-28T15:05:55.273Z"} -{"balance":"454852.0","contract":"0x351f59de4fedbdf7601f5592b93db3b9330c1c1d","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on polygon:","timestamp":"2025-04-28T15:05:57.412Z"} -{"arbitrum":"499999.9","bsc":"500000.0","eth":"1500000.0","level":"info","message":"Token balances fetched for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b:","polygon":"454852.0","timestamp":"2025-04-28T15:05:57.412Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T15:06:27.718Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T15:06:27.726Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T15:06:27.767Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T15:06:27.772Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T15:07:27.317Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T15:07:27.324Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T15:07:27.364Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T15:07:27.368Z"} -{"level":"info","message":"POST /api/chat/message","timestamp":"2025-04-28T15:07:38.701Z"} -{"level":"info","message":"Received /message request","timestamp":"2025-04-28T15:07:38.707Z"} -{"conversationId":5,"level":"info","message":"Created new conversation","timestamp":"2025-04-28T15:07:38.723Z","userId":1} -{"conversationId":5,"level":"info","message":"User message saved","messageId":7,"timestamp":"2025-04-28T15:07:38.734Z"} -{"level":"info","message":"Getting AI response for:","timestamp":"2025-04-28T15:07:38.735Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T15:07:56.808Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T15:07:56.817Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T15:07:56.837Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T15:07:56.842Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T15:08:25.304Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T15:08:23.668Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T15:08:23.693Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T15:08:23.699Z"} -{"conversationId":5,"level":"info","message":"AI response received","timestamp":"2025-04-28T15:08:25.059Z"} -{"conversationId":5,"level":"info","message":"AI response saved","messageId":8,"timestamp":"2025-04-28T15:08:25.087Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T15:08:53.390Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T15:08:53.399Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T15:08:53.439Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T15:08:53.444Z"} -{"level":"info","message":"GET /api/auth/check","timestamp":"2025-04-28T15:09:24.053Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T15:09:24.067Z"} -{"level":"info","message":"GET /api/auth/check","timestamp":"2025-04-28T15:09:24.117Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T15:09:24.121Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T15:09:24.145Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T15:09:24.155Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T15:09:24.176Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T15:09:24.180Z"} -{"level":"info","message":"GET /api/tokens/balances?address=0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-28T15:09:24.215Z"} -{"level":"info","message":"Fetching token balances for address: 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-28T15:09:24.216Z"} -{"level":"info","message":"GET /api/auth/check","timestamp":"2025-04-28T15:09:24.228Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T15:09:24.242Z"} -{"level":"info","message":"GET /api/auth/check","timestamp":"2025-04-28T15:09:24.265Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T15:09:24.268Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T15:09:24.341Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T15:09:24.346Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T15:09:24.366Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T15:09:24.370Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T15:09:24.390Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T15:09:24.393Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T15:09:24.407Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T15:09:24.409Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T15:09:24.422Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T15:09:24.425Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T15:09:24.436Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T15:09:24.440Z"} -{"level":"info","message":"GET /api/auth/check","timestamp":"2025-04-28T15:09:25.237Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T15:09:25.241Z"} -{"level":"info","message":"GET /api/chat/history?count_only=true","timestamp":"2025-04-28T15:09:25.267Z"} -{"level":"info","message":"GET /api/chat/history?offset=0&limit=30","timestamp":"2025-04-28T15:09:25.294Z"} -{"count":8,"level":"info","limit":30,"message":"Returning message history for user 1","offset":0,"timestamp":"2025-04-28T15:09:25.322Z","total":8} -{"balance":"1500000.0","contract":"0xd95a45fc46a7300e6022885afec3d618d7d3f27c","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on eth:","timestamp":"2025-04-28T15:09:26.118Z"} -{"balance":"500000.0","contract":"0x4B294265720B09ca39BFBA18c7E368413c0f68eB","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on bsc:","timestamp":"2025-04-28T15:09:27.253Z"} -{"balance":"499999.9","contract":"0xdce769b847a0a697239777d0b1c7dd33b6012ba0","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on arbitrum:","timestamp":"2025-04-28T15:09:29.595Z"} -{"balance":"454852.0","contract":"0x351f59de4fedbdf7601f5592b93db3b9330c1c1d","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on polygon:","timestamp":"2025-04-28T15:09:31.390Z"} -{"arbitrum":"499999.9","bsc":"500000.0","eth":"1500000.0","level":"info","message":"Token balances fetched for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b:","polygon":"454852.0","timestamp":"2025-04-28T15:09:31.390Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T15:09:55.301Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T15:09:55.310Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T15:09:55.331Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T15:09:55.337Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T15:10:27.137Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T15:10:27.144Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T15:10:27.180Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T15:10:27.185Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T15:10:55.296Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T15:10:55.304Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T15:10:55.340Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T15:10:55.344Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T15:11:25.877Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T15:11:25.885Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T15:11:25.905Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T15:11:25.909Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T15:11:56.701Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T15:11:56.709Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T15:11:56.739Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T15:11:56.743Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T15:12:23.864Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T15:12:23.870Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T15:12:23.903Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T15:12:23.909Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T15:12:56.582Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T15:12:56.590Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T15:12:56.630Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T15:12:56.635Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T15:13:25.786Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T15:13:25.807Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T15:13:25.858Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T15:13:25.862Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T15:13:56.065Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T15:13:56.077Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T15:13:56.102Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T15:13:56.106Z"} -{"level":"info","message":"GET /api/tokens/balances?address=0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-28T15:14:26.605Z"} -{"level":"info","message":"Fetching token balances for address: 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-28T15:14:26.606Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T15:14:26.614Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T15:14:26.627Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T15:14:26.650Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T15:14:26.653Z"} -{"balance":"1500000.0","contract":"0xd95a45fc46a7300e6022885afec3d618d7d3f27c","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on eth:","timestamp":"2025-04-28T15:14:28.119Z"} -{"balance":"500000.0","contract":"0x4B294265720B09ca39BFBA18c7E368413c0f68eB","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on bsc:","timestamp":"2025-04-28T15:14:27.542Z"} -{"balance":"499999.9","contract":"0xdce769b847a0a697239777d0b1c7dd33b6012ba0","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on arbitrum:","timestamp":"2025-04-28T15:14:28.834Z"} -{"balance":"454852.0","contract":"0x351f59de4fedbdf7601f5592b93db3b9330c1c1d","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on polygon:","timestamp":"2025-04-28T15:14:30.231Z"} -{"arbitrum":"499999.9","bsc":"500000.0","eth":"1500000.0","level":"info","message":"Token balances fetched for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b:","polygon":"454852.0","timestamp":"2025-04-28T15:14:30.231Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T15:14:54.670Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T15:14:54.675Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T15:14:54.689Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T15:14:54.692Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T15:15:24.164Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T15:15:24.172Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T15:15:24.199Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T15:15:24.208Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T15:15:54.316Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T15:15:54.324Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T15:15:54.362Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T15:15:54.366Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T15:16:25.127Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T15:16:25.135Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T15:16:25.158Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T15:16:25.163Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T15:16:55.307Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T15:16:55.314Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T15:16:55.354Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T15:16:55.358Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T15:17:25.474Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T15:17:25.482Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T15:17:25.505Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T15:17:25.510Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T15:18:27.006Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T15:18:27.012Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T15:18:27.033Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T15:18:27.042Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T15:18:55.388Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T15:18:55.396Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T15:18:55.421Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T15:18:55.427Z"} -{"level":"info","message":"GET /api/auth/check","timestamp":"2025-04-28T15:19:26.019Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T15:19:26.025Z"} -{"level":"info","message":"GET /api/auth/check","timestamp":"2025-04-28T15:19:26.078Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T15:19:26.086Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T15:19:26.113Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T15:19:26.120Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T15:19:26.145Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T15:19:26.151Z"} -{"level":"info","message":"GET /api/auth/check","timestamp":"2025-04-28T15:19:26.178Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T15:19:26.183Z"} -{"level":"info","message":"GET /api/auth/check","timestamp":"2025-04-28T15:19:26.209Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T15:19:26.214Z"} -{"level":"info","message":"GET /api/tokens/balances?address=0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-28T15:19:26.216Z"} -{"level":"info","message":"Fetching token balances for address: 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-28T15:19:26.218Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T15:19:26.270Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T15:19:26.280Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T15:19:26.328Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T15:19:26.333Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T15:19:26.351Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T15:19:26.355Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T15:19:26.376Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T15:19:26.379Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T15:19:26.400Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T15:19:26.406Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T15:19:26.434Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T15:19:26.438Z"} -{"level":"info","message":"GET /api/auth/check","timestamp":"2025-04-28T15:19:27.210Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T15:19:27.214Z"} -{"level":"info","message":"GET /api/chat/history?count_only=true","timestamp":"2025-04-28T15:19:27.273Z"} -{"level":"info","message":"GET /api/chat/history?offset=0&limit=30","timestamp":"2025-04-28T15:19:27.298Z"} -{"count":8,"level":"info","limit":30,"message":"Returning message history for user 1","offset":0,"timestamp":"2025-04-28T15:19:27.322Z","total":8} -{"balance":"1500000.0","contract":"0xd95a45fc46a7300e6022885afec3d618d7d3f27c","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on eth:","timestamp":"2025-04-28T15:19:27.563Z"} -{"balance":"500000.0","contract":"0x4B294265720B09ca39BFBA18c7E368413c0f68eB","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on bsc:","timestamp":"2025-04-28T15:19:28.777Z"} -{"balance":"499999.9","contract":"0xdce769b847a0a697239777d0b1c7dd33b6012ba0","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on arbitrum:","timestamp":"2025-04-28T15:19:30.213Z"} -{"balance":"454852.0","contract":"0x351f59de4fedbdf7601f5592b93db3b9330c1c1d","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on polygon:","timestamp":"2025-04-28T15:19:31.979Z"} -{"arbitrum":"499999.9","bsc":"500000.0","eth":"1500000.0","level":"info","message":"Token balances fetched for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b:","polygon":"454852.0","timestamp":"2025-04-28T15:19:31.979Z"} -{"level":"info","message":"POST /api/chat/message","timestamp":"2025-04-28T15:19:41.945Z"} -{"level":"info","message":"Received /message request","timestamp":"2025-04-28T15:19:41.957Z"} -{"conversationId":6,"level":"info","message":"Created new conversation","timestamp":"2025-04-28T15:19:42.198Z","userId":1} -{"conversationId":6,"level":"info","message":"User message saved","messageId":9,"timestamp":"2025-04-28T15:19:42.218Z"} -{"level":"info","message":"POST /api/chat/message","timestamp":"2025-04-28T15:19:52.990Z"} -{"level":"info","message":"Received /message request","timestamp":"2025-04-28T15:19:53.018Z"} -{"conversationId":7,"level":"info","message":"Created new conversation","timestamp":"2025-04-28T15:19:54.038Z","userId":1} -{"conversationId":7,"level":"info","message":"User message saved","messageId":10,"timestamp":"2025-04-28T15:19:54.199Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T15:19:56.482Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T15:19:56.488Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T15:19:56.547Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T15:19:56.551Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T15:20:27.729Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T15:20:27.737Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T15:20:27.760Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T15:20:27.766Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T15:20:56.971Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T15:20:56.980Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T15:20:57.003Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T15:20:57.007Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T15:21:25.868Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T15:21:25.876Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T15:21:25.898Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T15:21:25.901Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T15:21:55.975Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T15:21:55.982Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T15:21:55.999Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T15:21:56.007Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T15:22:26.253Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T15:22:26.260Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T15:22:26.301Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T15:22:26.309Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T15:22:55.318Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T15:22:55.323Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T15:22:55.356Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T15:22:55.359Z"} -{"level":"info","message":"POST /api/chat/message","timestamp":"2025-04-28T15:23:01.058Z"} -{"level":"info","message":"Received /message request","timestamp":"2025-04-28T15:23:01.075Z"} -{"conversationId":8,"level":"info","message":"Created new conversation","timestamp":"2025-04-28T15:23:01.230Z","userId":1} -{"conversationId":8,"level":"info","message":"User message saved","messageId":11,"timestamp":"2025-04-28T15:23:01.249Z"} -{"level":"info","message":"POST /api/chat/message","timestamp":"2025-04-28T15:23:11.656Z"} -{"level":"info","message":"Received /message request","timestamp":"2025-04-28T15:23:11.664Z"} -{"conversationId":9,"level":"info","message":"Created new conversation","timestamp":"2025-04-28T15:23:11.837Z","userId":1} -{"conversationId":9,"level":"info","message":"User message saved","messageId":12,"timestamp":"2025-04-28T15:23:11.868Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T15:23:25.514Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T15:23:25.522Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T15:23:25.548Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T15:23:25.552Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T15:23:56.707Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T15:23:56.736Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T15:23:56.757Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T15:23:56.764Z"} -{"level":"info","message":"GET /api/tokens/balances?address=0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-28T15:24:25.827Z"} -{"level":"info","message":"Fetching token balances for address: 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-28T15:24:25.828Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T15:24:26.890Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T15:24:26.901Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T15:24:27.044Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T15:24:27.048Z"} -{"balance":"1500000.0","contract":"0xd95a45fc46a7300e6022885afec3d618d7d3f27c","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on eth:","timestamp":"2025-04-28T15:24:27.388Z"} -{"balance":"500000.0","contract":"0x4B294265720B09ca39BFBA18c7E368413c0f68eB","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on bsc:","timestamp":"2025-04-28T15:24:29.176Z"} -{"balance":"499999.9","contract":"0xdce769b847a0a697239777d0b1c7dd33b6012ba0","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on arbitrum:","timestamp":"2025-04-28T15:24:30.801Z"} -{"balance":"454852.0","contract":"0x351f59de4fedbdf7601f5592b93db3b9330c1c1d","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on polygon:","timestamp":"2025-04-28T15:24:32.558Z"} -{"arbitrum":"499999.9","bsc":"500000.0","eth":"1500000.0","level":"info","message":"Token balances fetched for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b:","polygon":"454852.0","timestamp":"2025-04-28T15:24:32.558Z"} -{"level":"info","message":"GET /api/auth/check","timestamp":"2025-04-28T16:43:06.760Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T16:43:06.779Z"} -{"level":"info","message":"GET /api/auth/check","timestamp":"2025-04-28T16:43:06.797Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T16:43:06.802Z"} -{"level":"info","message":"GET /api/tokens/balances?address=0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-28T16:43:06.824Z"} -{"level":"info","message":"Fetching token balances for address: 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-28T16:43:06.826Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T16:43:06.837Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T16:43:06.841Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T16:43:06.851Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T16:43:06.854Z"} -{"level":"info","message":"GET /api/auth/check","timestamp":"2025-04-28T16:43:06.862Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T16:43:06.864Z"} -{"level":"info","message":"GET /api/auth/check","timestamp":"2025-04-28T16:43:06.909Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T16:43:06.910Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T16:43:06.921Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T16:43:06.922Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T16:43:06.932Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T16:43:06.935Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T16:43:06.950Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T16:43:06.952Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T16:43:06.964Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T16:43:06.966Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T16:43:06.978Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T16:43:06.979Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T16:43:06.990Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T16:43:06.993Z"} -{"level":"info","message":"GET /api/auth/check","timestamp":"2025-04-28T16:43:07.821Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T16:43:07.822Z"} -{"level":"info","message":"GET /api/chat/history?count_only=true","timestamp":"2025-04-28T16:43:07.834Z"} -{"level":"info","message":"GET /api/chat/history?offset=0&limit=30","timestamp":"2025-04-28T16:43:07.854Z"} -{"count":12,"level":"info","limit":30,"message":"Returning message history for user 1","offset":0,"timestamp":"2025-04-28T16:43:07.898Z","total":12} -{"balance":"1500000.0","contract":"0xd95a45fc46a7300e6022885afec3d618d7d3f27c","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on eth:","timestamp":"2025-04-28T16:43:09.276Z"} -{"balance":"500000.0","contract":"0x4B294265720B09ca39BFBA18c7E368413c0f68eB","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on bsc:","timestamp":"2025-04-28T16:43:10.496Z"} -{"balance":"499999.9","contract":"0xdce769b847a0a697239777d0b1c7dd33b6012ba0","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on arbitrum:","timestamp":"2025-04-28T16:43:11.776Z"} -{"balance":"454852.0","contract":"0x351f59de4fedbdf7601f5592b93db3b9330c1c1d","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on polygon:","timestamp":"2025-04-28T16:43:13.633Z"} -{"arbitrum":"499999.9","bsc":"500000.0","eth":"1500000.0","level":"info","message":"Token balances fetched for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b:","polygon":"454852.0","timestamp":"2025-04-28T16:43:13.634Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T16:43:36.945Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T16:43:36.949Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T16:43:36.960Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T16:43:36.962Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T16:44:07.353Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T16:44:07.356Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T16:44:07.386Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T16:44:07.388Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T16:44:37.316Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T16:44:37.319Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T16:44:37.329Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T16:44:37.330Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T16:45:07.332Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T16:45:07.335Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T16:45:07.345Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T16:45:07.347Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T16:45:37.327Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T16:45:37.330Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T16:45:37.340Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T16:45:37.342Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T16:46:38.294Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T16:46:38.298Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T16:46:38.309Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T16:46:38.311Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T16:47:07.343Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T16:47:07.346Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T16:47:07.375Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T16:47:07.377Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T16:47:37.305Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T16:47:37.309Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T16:47:37.330Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T16:47:37.332Z"} -{"level":"info","message":"GET /api/tokens/balances?address=0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-28T16:48:07.303Z"} -{"level":"info","message":"Fetching token balances for address: 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-28T16:48:07.304Z"} -{"balance":"1500000.0","contract":"0xd95a45fc46a7300e6022885afec3d618d7d3f27c","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on eth:","timestamp":"2025-04-28T16:48:08.514Z"} -{"balance":"500000.0","contract":"0x4B294265720B09ca39BFBA18c7E368413c0f68eB","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on bsc:","timestamp":"2025-04-28T16:48:11.178Z"} -{"balance":"499999.9","contract":"0xdce769b847a0a697239777d0b1c7dd33b6012ba0","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on arbitrum:","timestamp":"2025-04-28T16:48:13.211Z"} -{"balance":"454852.0","contract":"0x351f59de4fedbdf7601f5592b93db3b9330c1c1d","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on polygon:","timestamp":"2025-04-28T16:48:15.069Z"} -{"arbitrum":"499999.9","bsc":"500000.0","eth":"1500000.0","level":"info","message":"Token balances fetched for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b:","polygon":"454852.0","timestamp":"2025-04-28T16:48:15.069Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T16:48:38.300Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T16:48:38.303Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T16:48:38.317Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T16:48:38.318Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T16:49:39.306Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T16:49:39.308Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T16:49:39.316Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T16:49:39.317Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T16:50:40.296Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T16:50:40.300Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T16:50:40.330Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T16:50:40.331Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T16:51:41.281Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T16:51:41.285Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T16:51:41.312Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T16:51:41.313Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T16:52:42.300Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T16:52:42.302Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T16:52:42.311Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T16:52:42.313Z"} -{"level":"info","message":"GET /api/tokens/balances?address=0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-28T16:53:07.339Z"} -{"level":"info","message":"Fetching token balances for address: 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-28T16:53:07.339Z"} -{"balance":"1500000.0","contract":"0xd95a45fc46a7300e6022885afec3d618d7d3f27c","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on eth:","timestamp":"2025-04-28T16:53:08.651Z"} -{"balance":"500000.0","contract":"0x4B294265720B09ca39BFBA18c7E368413c0f68eB","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on bsc:","timestamp":"2025-04-28T16:53:09.815Z"} -{"balance":"499999.9","contract":"0xdce769b847a0a697239777d0b1c7dd33b6012ba0","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on arbitrum:","timestamp":"2025-04-28T16:53:11.250Z"} -{"balance":"454852.0","contract":"0x351f59de4fedbdf7601f5592b93db3b9330c1c1d","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on polygon:","timestamp":"2025-04-28T16:53:12.580Z"} -{"arbitrum":"499999.9","bsc":"500000.0","eth":"1500000.0","level":"info","message":"Token balances fetched for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b:","polygon":"454852.0","timestamp":"2025-04-28T16:53:12.580Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T16:53:43.338Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T16:53:43.342Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T16:53:43.350Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T16:53:43.352Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T16:54:44.324Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T16:54:44.328Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T16:54:44.338Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T16:54:44.339Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T16:55:45.266Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T16:55:45.271Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T16:55:45.281Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T16:55:45.282Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T16:56:46.288Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T16:56:46.292Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T16:56:46.303Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T16:56:46.304Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T16:57:47.240Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T16:57:47.244Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T16:57:47.255Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T16:57:47.256Z"} -{"level":"info","message":"GET /api/tokens/balances?address=0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-28T16:58:07.321Z"} -{"level":"info","message":"Fetching token balances for address: 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-28T16:58:07.322Z"} -{"balance":"1500000.0","contract":"0xd95a45fc46a7300e6022885afec3d618d7d3f27c","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on eth:","timestamp":"2025-04-28T16:58:08.618Z"} -{"balance":"500000.0","contract":"0x4B294265720B09ca39BFBA18c7E368413c0f68eB","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on bsc:","timestamp":"2025-04-28T16:58:09.780Z"} -{"balance":"499999.9","contract":"0xdce769b847a0a697239777d0b1c7dd33b6012ba0","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on arbitrum:","timestamp":"2025-04-28T16:58:10.886Z"} -{"balance":"454852.0","contract":"0x351f59de4fedbdf7601f5592b93db3b9330c1c1d","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on polygon:","timestamp":"2025-04-28T16:58:12.402Z"} -{"arbitrum":"499999.9","bsc":"500000.0","eth":"1500000.0","level":"info","message":"Token balances fetched for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b:","polygon":"454852.0","timestamp":"2025-04-28T16:58:12.402Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T16:58:48.270Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T16:58:48.272Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T16:58:48.300Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T16:58:48.301Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T16:59:49.250Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T16:59:49.254Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T16:59:49.283Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T16:59:49.284Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T17:00:50.227Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T17:00:50.231Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T17:00:50.259Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T17:00:50.261Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T17:01:51.287Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T17:01:51.290Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T17:01:51.299Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T17:01:51.301Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T17:02:52.255Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T17:02:52.258Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T17:02:52.286Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T17:02:52.288Z"} -{"level":"info","message":"GET /api/tokens/balances?address=0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-28T17:03:07.284Z"} -{"level":"info","message":"Fetching token balances for address: 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-28T17:03:07.285Z"} -{"balance":"1500000.0","contract":"0xd95a45fc46a7300e6022885afec3d618d7d3f27c","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on eth:","timestamp":"2025-04-28T17:03:08.441Z"} -{"balance":"500000.0","contract":"0x4B294265720B09ca39BFBA18c7E368413c0f68eB","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on bsc:","timestamp":"2025-04-28T17:03:09.917Z"} -{"balance":"499999.9","contract":"0xdce769b847a0a697239777d0b1c7dd33b6012ba0","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on arbitrum:","timestamp":"2025-04-28T17:03:11.381Z"} -{"balance":"454852.0","contract":"0x351f59de4fedbdf7601f5592b93db3b9330c1c1d","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on polygon:","timestamp":"2025-04-28T17:03:14.006Z"} -{"arbitrum":"499999.9","bsc":"500000.0","eth":"1500000.0","level":"info","message":"Token balances fetched for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b:","polygon":"454852.0","timestamp":"2025-04-28T17:03:14.007Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T17:03:52.232Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T17:03:52.235Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T17:03:52.264Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T17:03:52.266Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T17:04:52.234Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T17:04:52.237Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T17:04:52.266Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T17:04:52.267Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T17:05:52.254Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T17:05:52.258Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T17:05:52.288Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T17:05:52.289Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T17:06:52.262Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T17:06:52.267Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T17:06:52.277Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T17:06:52.279Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T17:07:52.203Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T17:07:52.206Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T17:07:52.235Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T17:07:52.237Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T17:08:52.227Z"} -{"level":"info","message":"GET /api/tokens/balances?address=0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-28T17:08:52.228Z"} -{"level":"info","message":"Fetching token balances for address: 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-28T17:08:52.229Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T17:08:52.230Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T17:08:52.259Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T17:08:52.261Z"} -{"balance":"1500000.0","contract":"0xd95a45fc46a7300e6022885afec3d618d7d3f27c","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on eth:","timestamp":"2025-04-28T17:08:53.583Z"} -{"balance":"500000.0","contract":"0x4B294265720B09ca39BFBA18c7E368413c0f68eB","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on bsc:","timestamp":"2025-04-28T17:08:54.697Z"} -{"balance":"499999.9","contract":"0xdce769b847a0a697239777d0b1c7dd33b6012ba0","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on arbitrum:","timestamp":"2025-04-28T17:08:56.779Z"} -{"balance":"454852.0","contract":"0x351f59de4fedbdf7601f5592b93db3b9330c1c1d","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on polygon:","timestamp":"2025-04-28T17:08:58.114Z"} -{"arbitrum":"499999.9","bsc":"500000.0","eth":"1500000.0","level":"info","message":"Token balances fetched for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b:","polygon":"454852.0","timestamp":"2025-04-28T17:08:58.115Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T17:09:52.244Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T17:09:52.247Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T17:09:52.275Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T17:09:52.277Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T17:10:52.191Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T17:10:52.194Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T17:10:52.204Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T17:10:52.206Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T17:11:52.181Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T17:11:52.184Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T17:11:52.215Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T17:11:52.217Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T17:12:52.260Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T17:12:52.263Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T17:12:52.291Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T17:12:52.293Z"} -{"level":"info","message":"GET /api/tokens/balances?address=0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-28T17:13:52.289Z"} -{"level":"info","message":"Fetching token balances for address: 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-28T17:13:52.290Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T17:13:52.291Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T17:13:52.294Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T17:13:52.323Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T17:13:52.325Z"} -{"balance":"1500000.0","contract":"0xd95a45fc46a7300e6022885afec3d618d7d3f27c","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on eth:","timestamp":"2025-04-28T17:13:53.579Z"} -{"balance":"500000.0","contract":"0x4B294265720B09ca39BFBA18c7E368413c0f68eB","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on bsc:","timestamp":"2025-04-28T17:13:54.670Z"} -{"balance":"499999.9","contract":"0xdce769b847a0a697239777d0b1c7dd33b6012ba0","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on arbitrum:","timestamp":"2025-04-28T17:13:55.799Z"} -{"balance":"454852.0","contract":"0x351f59de4fedbdf7601f5592b93db3b9330c1c1d","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on polygon:","timestamp":"2025-04-28T17:13:57.344Z"} -{"arbitrum":"499999.9","bsc":"500000.0","eth":"1500000.0","level":"info","message":"Token balances fetched for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b:","polygon":"454852.0","timestamp":"2025-04-28T17:13:57.345Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T17:14:52.268Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T17:14:52.271Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T17:14:52.283Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T17:14:52.284Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T17:15:52.191Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T17:15:52.194Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T17:15:52.223Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T17:15:52.225Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T17:16:52.274Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T17:16:52.276Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T17:16:52.283Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T17:16:52.285Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T17:17:52.232Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T17:17:52.235Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T17:17:52.244Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T17:17:52.245Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T17:18:52.230Z"} -{"level":"info","message":"GET /api/tokens/balances?address=0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-28T17:18:52.232Z"} -{"level":"info","message":"Fetching token balances for address: 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-28T17:18:52.232Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T17:18:52.233Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T17:18:52.261Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T17:18:52.263Z"} -{"balance":"1500000.0","contract":"0xd95a45fc46a7300e6022885afec3d618d7d3f27c","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on eth:","timestamp":"2025-04-28T17:18:53.718Z"} -{"balance":"500000.0","contract":"0x4B294265720B09ca39BFBA18c7E368413c0f68eB","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on bsc:","timestamp":"2025-04-28T17:18:55.041Z"} -{"balance":"499999.9","contract":"0xdce769b847a0a697239777d0b1c7dd33b6012ba0","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on arbitrum:","timestamp":"2025-04-28T17:18:56.493Z"} -{"balance":"454852.0","contract":"0x351f59de4fedbdf7601f5592b93db3b9330c1c1d","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on polygon:","timestamp":"2025-04-28T17:18:58.309Z"} -{"arbitrum":"499999.9","bsc":"500000.0","eth":"1500000.0","level":"info","message":"Token balances fetched for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b:","polygon":"454852.0","timestamp":"2025-04-28T17:18:58.309Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T17:19:52.268Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T17:19:52.272Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T17:19:52.286Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T17:19:52.288Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T17:20:52.262Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T17:20:52.265Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T17:20:52.278Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T17:20:52.279Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T17:21:52.239Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T17:21:52.241Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T17:21:52.253Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T17:21:52.254Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T17:22:52.290Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T17:22:52.293Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T17:22:52.303Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T17:22:52.305Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T17:23:52.257Z"} -{"level":"info","message":"GET /api/tokens/balances?address=0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-28T17:23:52.259Z"} -{"level":"info","message":"Fetching token balances for address: 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-28T17:23:52.260Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T17:23:52.260Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T17:23:52.271Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T17:23:52.275Z"} -{"balance":"1500000.0","contract":"0xd95a45fc46a7300e6022885afec3d618d7d3f27c","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on eth:","timestamp":"2025-04-28T17:23:53.877Z"} -{"balance":"500000.0","contract":"0x4B294265720B09ca39BFBA18c7E368413c0f68eB","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on bsc:","timestamp":"2025-04-28T17:23:55.506Z"} -{"balance":"499999.9","contract":"0xdce769b847a0a697239777d0b1c7dd33b6012ba0","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on arbitrum:","timestamp":"2025-04-28T17:23:57.236Z"} -{"balance":"454852.0","contract":"0x351f59de4fedbdf7601f5592b93db3b9330c1c1d","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on polygon:","timestamp":"2025-04-28T17:23:58.863Z"} -{"arbitrum":"499999.9","bsc":"500000.0","eth":"1500000.0","level":"info","message":"Token balances fetched for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b:","polygon":"454852.0","timestamp":"2025-04-28T17:23:58.864Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T17:24:52.267Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T17:24:52.271Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T17:24:52.284Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T17:24:52.287Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T17:25:52.253Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T17:25:52.256Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T17:25:52.267Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T17:25:52.268Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T17:26:52.270Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T17:26:52.273Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T17:26:52.301Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T17:26:52.303Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T17:27:52.147Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T17:27:52.152Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T17:27:52.172Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T17:27:52.175Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T17:28:52.264Z"} -{"level":"info","message":"GET /api/tokens/balances?address=0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-28T17:28:52.265Z"} -{"level":"info","message":"Fetching token balances for address: 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-28T17:28:52.266Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T17:28:52.267Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T17:28:52.272Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T17:28:52.274Z"} -{"balance":"1500000.0","contract":"0xd95a45fc46a7300e6022885afec3d618d7d3f27c","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on eth:","timestamp":"2025-04-28T17:28:53.491Z"} -{"balance":"500000.0","contract":"0x4B294265720B09ca39BFBA18c7E368413c0f68eB","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on bsc:","timestamp":"2025-04-28T17:28:54.388Z"} -{"balance":"499999.9","contract":"0xdce769b847a0a697239777d0b1c7dd33b6012ba0","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on arbitrum:","timestamp":"2025-04-28T17:28:55.393Z"} -{"balance":"454852.0","contract":"0x351f59de4fedbdf7601f5592b93db3b9330c1c1d","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on polygon:","timestamp":"2025-04-28T17:28:56.458Z"} -{"arbitrum":"499999.9","bsc":"500000.0","eth":"1500000.0","level":"info","message":"Token balances fetched for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b:","polygon":"454852.0","timestamp":"2025-04-28T17:28:56.458Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T17:29:52.225Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T17:29:52.227Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T17:29:52.233Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T17:29:52.235Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T17:30:52.265Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T17:30:52.267Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T17:30:52.275Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T17:30:52.277Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T17:31:52.232Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T17:31:52.235Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T17:31:52.242Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T17:31:52.243Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T17:32:52.163Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T17:32:52.165Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T17:32:52.172Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T17:32:52.173Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T17:33:52.288Z"} -{"level":"info","message":"GET /api/tokens/balances?address=0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-28T17:33:52.289Z"} -{"level":"info","message":"Fetching token balances for address: 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-28T17:33:52.289Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T17:33:52.290Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T17:33:52.298Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T17:33:52.299Z"} -{"balance":"1500000.0","contract":"0xd95a45fc46a7300e6022885afec3d618d7d3f27c","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on eth:","timestamp":"2025-04-28T17:33:53.547Z"} -{"balance":"500000.0","contract":"0x4B294265720B09ca39BFBA18c7E368413c0f68eB","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on bsc:","timestamp":"2025-04-28T17:33:54.509Z"} -{"balance":"499999.9","contract":"0xdce769b847a0a697239777d0b1c7dd33b6012ba0","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on arbitrum:","timestamp":"2025-04-28T17:33:55.701Z"} -{"balance":"454852.0","contract":"0x351f59de4fedbdf7601f5592b93db3b9330c1c1d","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on polygon:","timestamp":"2025-04-28T17:33:57.226Z"} -{"arbitrum":"499999.9","bsc":"500000.0","eth":"1500000.0","level":"info","message":"Token balances fetched for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b:","polygon":"454852.0","timestamp":"2025-04-28T17:33:57.226Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T17:34:52.259Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T17:34:52.262Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T17:34:52.270Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T17:34:52.271Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T17:35:52.272Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T17:35:52.274Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T17:35:52.281Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T17:35:52.282Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T17:36:52.244Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T17:36:52.247Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T17:36:52.254Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T17:36:52.255Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T17:37:52.247Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T17:37:52.250Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T17:37:52.258Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T17:37:52.259Z"} -{"level":"info","message":"GET /api/tokens/balances?address=0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-28T17:38:52.278Z"} -{"level":"info","message":"Fetching token balances for address: 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-28T17:38:52.279Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T17:38:52.279Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T17:38:52.281Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T17:38:52.288Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T17:38:52.291Z"} -{"balance":"1500000.0","contract":"0xd95a45fc46a7300e6022885afec3d618d7d3f27c","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on eth:","timestamp":"2025-04-28T17:38:53.659Z"} -{"balance":"500000.0","contract":"0x4B294265720B09ca39BFBA18c7E368413c0f68eB","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on bsc:","timestamp":"2025-04-28T17:38:54.780Z"} -{"balance":"499999.9","contract":"0xdce769b847a0a697239777d0b1c7dd33b6012ba0","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on arbitrum:","timestamp":"2025-04-28T17:38:55.899Z"} -{"balance":"454852.0","contract":"0x351f59de4fedbdf7601f5592b93db3b9330c1c1d","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on polygon:","timestamp":"2025-04-28T17:38:57.020Z"} -{"arbitrum":"499999.9","bsc":"500000.0","eth":"1500000.0","level":"info","message":"Token balances fetched for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b:","polygon":"454852.0","timestamp":"2025-04-28T17:38:57.020Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T17:39:52.252Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T17:39:52.254Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T17:39:52.262Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T17:39:52.263Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T17:40:52.259Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T17:40:52.261Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T17:40:52.269Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T17:40:52.270Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T17:41:52.270Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T17:41:52.273Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T17:41:52.280Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T17:41:52.281Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T17:42:52.287Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T17:42:52.290Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T17:42:52.298Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T17:42:52.299Z"} -{"level":"info","message":"GET /api/tokens/balances?address=0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-28T17:43:52.300Z"} -{"level":"info","message":"Fetching token balances for address: 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-28T17:43:52.300Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T17:43:52.302Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T17:43:52.304Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T17:43:52.314Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T17:43:52.315Z"} -{"balance":"1500000.0","contract":"0xd95a45fc46a7300e6022885afec3d618d7d3f27c","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on eth:","timestamp":"2025-04-28T17:43:53.602Z"} -{"balance":"500000.0","contract":"0x4B294265720B09ca39BFBA18c7E368413c0f68eB","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on bsc:","timestamp":"2025-04-28T17:43:54.624Z"} -{"balance":"499999.9","contract":"0xdce769b847a0a697239777d0b1c7dd33b6012ba0","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on arbitrum:","timestamp":"2025-04-28T17:43:55.708Z"} -{"balance":"454852.0","contract":"0x351f59de4fedbdf7601f5592b93db3b9330c1c1d","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on polygon:","timestamp":"2025-04-28T17:43:56.831Z"} -{"arbitrum":"499999.9","bsc":"500000.0","eth":"1500000.0","level":"info","message":"Token balances fetched for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b:","polygon":"454852.0","timestamp":"2025-04-28T17:43:56.832Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T17:44:52.283Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T17:44:52.285Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T17:44:52.293Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T17:44:52.294Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T17:45:52.249Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T17:45:52.251Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T17:45:52.259Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T17:45:52.261Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T17:46:52.217Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T17:46:52.219Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T17:46:52.227Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T17:46:52.228Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T17:47:52.252Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T17:47:52.254Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T17:47:52.262Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T17:47:52.264Z"} -{"level":"info","message":"GET /api/tokens/balances?address=0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-28T17:48:52.256Z"} -{"level":"info","message":"Fetching token balances for address: 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-28T17:48:52.256Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T17:48:52.257Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T17:48:52.259Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T17:48:52.267Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T17:48:52.269Z"} -{"balance":"1500000.0","contract":"0xd95a45fc46a7300e6022885afec3d618d7d3f27c","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on eth:","timestamp":"2025-04-28T17:48:54.862Z"} -{"balance":"500000.0","contract":"0x4B294265720B09ca39BFBA18c7E368413c0f68eB","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on bsc:","timestamp":"2025-04-28T17:48:56.192Z"} -{"balance":"499999.9","contract":"0xdce769b847a0a697239777d0b1c7dd33b6012ba0","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on arbitrum:","timestamp":"2025-04-28T17:48:57.464Z"} -{"balance":"454852.0","contract":"0x351f59de4fedbdf7601f5592b93db3b9330c1c1d","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on polygon:","timestamp":"2025-04-28T17:48:59.326Z"} -{"arbitrum":"499999.9","bsc":"500000.0","eth":"1500000.0","level":"info","message":"Token balances fetched for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b:","polygon":"454852.0","timestamp":"2025-04-28T17:48:59.326Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T17:49:52.178Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T17:49:52.180Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T17:49:52.188Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T17:49:52.189Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T17:50:52.187Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T17:50:52.189Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T17:50:52.197Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T17:50:52.198Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T17:51:52.277Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T17:51:52.279Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T17:51:52.286Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T17:51:52.287Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T17:52:52.274Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T17:52:52.276Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T17:52:52.284Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T17:52:52.285Z"} -{"level":"info","message":"GET /api/tokens/balances?address=0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-28T17:53:52.261Z"} -{"level":"info","message":"Fetching token balances for address: 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-28T17:53:52.261Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T17:53:52.263Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T17:53:52.265Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T17:53:52.272Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T17:53:52.275Z"} -{"balance":"1500000.0","contract":"0xd95a45fc46a7300e6022885afec3d618d7d3f27c","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on eth:","timestamp":"2025-04-28T17:53:53.602Z"} -{"balance":"500000.0","contract":"0x4B294265720B09ca39BFBA18c7E368413c0f68eB","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on bsc:","timestamp":"2025-04-28T17:53:54.474Z"} -{"balance":"499999.9","contract":"0xdce769b847a0a697239777d0b1c7dd33b6012ba0","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on arbitrum:","timestamp":"2025-04-28T17:53:55.447Z"} -{"balance":"454852.0","contract":"0x351f59de4fedbdf7601f5592b93db3b9330c1c1d","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on polygon:","timestamp":"2025-04-28T17:53:56.838Z"} -{"arbitrum":"499999.9","bsc":"500000.0","eth":"1500000.0","level":"info","message":"Token balances fetched for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b:","polygon":"454852.0","timestamp":"2025-04-28T17:53:56.839Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T17:54:52.273Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T17:54:52.275Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T17:54:52.282Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T17:54:52.284Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T17:55:52.258Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T17:55:52.260Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T17:55:52.267Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T17:55:52.268Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T17:56:52.265Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T17:56:52.267Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T17:56:52.275Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T17:56:52.276Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T17:57:52.263Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T17:57:52.265Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T17:57:52.273Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T17:57:52.274Z"} -{"level":"info","message":"GET /api/tokens/balances?address=0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-28T17:58:52.283Z"} -{"level":"info","message":"Fetching token balances for address: 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-28T17:58:52.284Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T17:58:52.286Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T17:58:52.288Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T17:58:52.298Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T17:58:52.299Z"} -{"balance":"1500000.0","contract":"0xd95a45fc46a7300e6022885afec3d618d7d3f27c","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on eth:","timestamp":"2025-04-28T17:58:53.371Z"} -{"balance":"500000.0","contract":"0x4B294265720B09ca39BFBA18c7E368413c0f68eB","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on bsc:","timestamp":"2025-04-28T17:58:54.395Z"} -{"balance":"499999.9","contract":"0xdce769b847a0a697239777d0b1c7dd33b6012ba0","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on arbitrum:","timestamp":"2025-04-28T17:58:55.422Z"} -{"balance":"454852.0","contract":"0x351f59de4fedbdf7601f5592b93db3b9330c1c1d","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on polygon:","timestamp":"2025-04-28T17:58:56.782Z"} -{"arbitrum":"499999.9","bsc":"500000.0","eth":"1500000.0","level":"info","message":"Token balances fetched for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b:","polygon":"454852.0","timestamp":"2025-04-28T17:58:56.782Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T17:59:52.273Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T17:59:52.276Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T17:59:52.284Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T17:59:52.285Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T18:00:52.260Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T18:00:52.263Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T18:00:52.271Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T18:00:52.272Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T18:01:52.255Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T18:01:52.257Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T18:01:52.266Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T18:01:52.267Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T18:02:52.252Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T18:02:52.254Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T18:02:52.261Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T18:02:52.262Z"} -{"level":"info","message":"GET /api/tokens/balances?address=0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-28T18:03:52.252Z"} -{"level":"info","message":"Fetching token balances for address: 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-28T18:03:52.253Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T18:03:52.254Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T18:03:52.256Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T18:03:52.263Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T18:03:52.266Z"} -{"balance":"1500000.0","contract":"0xd95a45fc46a7300e6022885afec3d618d7d3f27c","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on eth:","timestamp":"2025-04-28T18:03:54.379Z"} -{"balance":"500000.0","contract":"0x4B294265720B09ca39BFBA18c7E368413c0f68eB","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on bsc:","timestamp":"2025-04-28T18:03:55.909Z"} -{"balance":"499999.9","contract":"0xdce769b847a0a697239777d0b1c7dd33b6012ba0","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on arbitrum:","timestamp":"2025-04-28T18:03:57.249Z"} -{"balance":"454852.0","contract":"0x351f59de4fedbdf7601f5592b93db3b9330c1c1d","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on polygon:","timestamp":"2025-04-28T18:03:58.581Z"} -{"arbitrum":"499999.9","bsc":"500000.0","eth":"1500000.0","level":"info","message":"Token balances fetched for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b:","polygon":"454852.0","timestamp":"2025-04-28T18:03:58.582Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T18:04:52.253Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T18:04:52.255Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T18:04:52.263Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T18:04:52.264Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T18:05:52.241Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T18:05:52.243Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T18:05:52.251Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T18:05:52.252Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T18:06:52.251Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T18:06:52.253Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T18:06:52.261Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T18:06:52.263Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T18:07:52.339Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T18:07:52.341Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T18:07:52.350Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T18:07:52.351Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T18:08:52.264Z"} -{"level":"info","message":"GET /api/tokens/balances?address=0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-28T18:08:52.265Z"} -{"level":"info","message":"Fetching token balances for address: 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-28T18:08:52.266Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T18:08:52.267Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T18:08:52.275Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T18:08:52.278Z"} -{"balance":"1500000.0","contract":"0xd95a45fc46a7300e6022885afec3d618d7d3f27c","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on eth:","timestamp":"2025-04-28T18:08:53.534Z"} -{"balance":"500000.0","contract":"0x4B294265720B09ca39BFBA18c7E368413c0f68eB","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on bsc:","timestamp":"2025-04-28T18:08:54.637Z"} -{"balance":"499999.9","contract":"0xdce769b847a0a697239777d0b1c7dd33b6012ba0","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on arbitrum:","timestamp":"2025-04-28T18:08:55.726Z"} -{"balance":"454852.0","contract":"0x351f59de4fedbdf7601f5592b93db3b9330c1c1d","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on polygon:","timestamp":"2025-04-28T18:08:57.068Z"} -{"arbitrum":"499999.9","bsc":"500000.0","eth":"1500000.0","level":"info","message":"Token balances fetched for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b:","polygon":"454852.0","timestamp":"2025-04-28T18:08:57.068Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T18:09:52.291Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T18:09:52.294Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T18:09:52.300Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T18:09:52.301Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T18:10:52.259Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T18:10:52.263Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T18:10:52.270Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T18:10:52.271Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T18:11:52.275Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T18:11:52.278Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T18:11:52.286Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T18:11:52.287Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T18:12:52.248Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T18:12:52.250Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T18:12:52.258Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T18:12:52.260Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T18:13:52.259Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T18:13:52.261Z"} -{"level":"info","message":"GET /api/tokens/balances?address=0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-28T18:13:52.262Z"} -{"level":"info","message":"Fetching token balances for address: 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-28T18:13:52.263Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T18:13:52.269Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T18:13:52.270Z"} -{"balance":"1500000.0","contract":"0xd95a45fc46a7300e6022885afec3d618d7d3f27c","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on eth:","timestamp":"2025-04-28T18:13:53.579Z"} -{"balance":"500000.0","contract":"0x4B294265720B09ca39BFBA18c7E368413c0f68eB","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on bsc:","timestamp":"2025-04-28T18:13:54.654Z"} -{"balance":"499999.9","contract":"0xdce769b847a0a697239777d0b1c7dd33b6012ba0","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on arbitrum:","timestamp":"2025-04-28T18:13:55.821Z"} -{"balance":"454852.0","contract":"0x351f59de4fedbdf7601f5592b93db3b9330c1c1d","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on polygon:","timestamp":"2025-04-28T18:13:57.212Z"} -{"arbitrum":"499999.9","bsc":"500000.0","eth":"1500000.0","level":"info","message":"Token balances fetched for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b:","polygon":"454852.0","timestamp":"2025-04-28T18:13:57.212Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T18:14:52.274Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T18:14:52.276Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T18:14:52.285Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T18:14:52.286Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T18:15:52.240Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T18:15:52.242Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T18:15:52.250Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T18:15:52.251Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T18:16:52.272Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T18:16:52.274Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T18:16:52.283Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T18:16:52.284Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T18:17:52.258Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T18:17:52.261Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T18:17:52.269Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T18:17:52.270Z"} -{"level":"info","message":"GET /api/tokens/balances?address=0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-28T18:18:52.249Z"} -{"level":"info","message":"Fetching token balances for address: 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-28T18:18:52.250Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T18:18:52.251Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T18:18:52.253Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T18:18:52.260Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T18:18:52.262Z"} -{"balance":"1500000.0","contract":"0xd95a45fc46a7300e6022885afec3d618d7d3f27c","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on eth:","timestamp":"2025-04-28T18:18:54.636Z"} -{"balance":"500000.0","contract":"0x4B294265720B09ca39BFBA18c7E368413c0f68eB","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on bsc:","timestamp":"2025-04-28T18:18:56.050Z"} -{"balance":"499999.9","contract":"0xdce769b847a0a697239777d0b1c7dd33b6012ba0","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on arbitrum:","timestamp":"2025-04-28T18:18:57.118Z"} -{"balance":"454852.0","contract":"0x351f59de4fedbdf7601f5592b93db3b9330c1c1d","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on polygon:","timestamp":"2025-04-28T18:18:59.534Z"} -{"arbitrum":"499999.9","bsc":"500000.0","eth":"1500000.0","level":"info","message":"Token balances fetched for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b:","polygon":"454852.0","timestamp":"2025-04-28T18:18:59.535Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T18:19:52.256Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T18:19:52.258Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T18:19:52.266Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T18:19:52.267Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T18:20:52.268Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T18:20:52.271Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T18:20:52.278Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T18:20:52.279Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T18:21:52.247Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T18:21:52.249Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T18:21:52.257Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T18:21:52.258Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T18:22:52.216Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T18:22:52.219Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T18:22:52.227Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T18:22:52.228Z"} -{"level":"info","message":"GET /api/tokens/balances?address=0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-28T18:23:52.265Z"} -{"level":"info","message":"Fetching token balances for address: 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-28T18:23:52.265Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T18:23:52.267Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T18:23:52.269Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T18:23:52.279Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T18:23:52.280Z"} -{"balance":"1500000.0","contract":"0xd95a45fc46a7300e6022885afec3d618d7d3f27c","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on eth:","timestamp":"2025-04-28T18:23:53.275Z"} -{"balance":"500000.0","contract":"0x4B294265720B09ca39BFBA18c7E368413c0f68eB","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on bsc:","timestamp":"2025-04-28T18:23:54.304Z"} -{"balance":"499999.9","contract":"0xdce769b847a0a697239777d0b1c7dd33b6012ba0","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on arbitrum:","timestamp":"2025-04-28T18:23:55.421Z"} -{"balance":"454852.0","contract":"0x351f59de4fedbdf7601f5592b93db3b9330c1c1d","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on polygon:","timestamp":"2025-04-28T18:23:56.438Z"} -{"arbitrum":"499999.9","bsc":"500000.0","eth":"1500000.0","level":"info","message":"Token balances fetched for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b:","polygon":"454852.0","timestamp":"2025-04-28T18:23:56.439Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T18:24:52.272Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T18:24:52.274Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T18:24:52.280Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T18:24:52.281Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T18:25:52.257Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T18:25:52.260Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T18:25:52.268Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T18:25:52.269Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T18:26:52.256Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T18:26:52.258Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T18:26:52.267Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T18:26:52.268Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T18:27:52.272Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T18:27:52.274Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T18:27:52.281Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T18:27:52.282Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T18:28:52.254Z"} -{"level":"info","message":"GET /api/tokens/balances?address=0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-28T18:28:52.255Z"} -{"level":"info","message":"Fetching token balances for address: 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-28T18:28:52.255Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T18:28:52.256Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T18:28:52.263Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T18:28:52.265Z"} -{"balance":"1500000.0","contract":"0xd95a45fc46a7300e6022885afec3d618d7d3f27c","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on eth:","timestamp":"2025-04-28T18:28:53.168Z"} -{"balance":"500000.0","contract":"0x4B294265720B09ca39BFBA18c7E368413c0f68eB","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on bsc:","timestamp":"2025-04-28T18:28:54.263Z"} -{"balance":"499999.9","contract":"0xdce769b847a0a697239777d0b1c7dd33b6012ba0","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on arbitrum:","timestamp":"2025-04-28T18:28:55.402Z"} -{"balance":"454852.0","contract":"0x351f59de4fedbdf7601f5592b93db3b9330c1c1d","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on polygon:","timestamp":"2025-04-28T18:28:56.865Z"} -{"arbitrum":"499999.9","bsc":"500000.0","eth":"1500000.0","level":"info","message":"Token balances fetched for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b:","polygon":"454852.0","timestamp":"2025-04-28T18:28:56.865Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T18:29:52.251Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T18:29:52.252Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T18:29:52.259Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T18:29:52.260Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T18:30:52.278Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T18:30:52.281Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T18:30:52.289Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T18:30:52.290Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T18:31:52.256Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T18:31:52.259Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T18:31:52.267Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T18:31:52.268Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T18:32:52.258Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T18:32:52.260Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T18:32:52.266Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T18:32:52.268Z"} -{"level":"info","message":"GET /api/tokens/balances?address=0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-28T18:33:52.263Z"} -{"level":"info","message":"Fetching token balances for address: 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-28T18:33:52.263Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T18:33:52.264Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T18:33:52.265Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T18:33:52.272Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T18:33:52.274Z"} -{"balance":"1500000.0","contract":"0xd95a45fc46a7300e6022885afec3d618d7d3f27c","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on eth:","timestamp":"2025-04-28T18:33:53.553Z"} -{"balance":"500000.0","contract":"0x4B294265720B09ca39BFBA18c7E368413c0f68eB","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on bsc:","timestamp":"2025-04-28T18:33:54.758Z"} -{"balance":"499999.9","contract":"0xdce769b847a0a697239777d0b1c7dd33b6012ba0","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on arbitrum:","timestamp":"2025-04-28T18:33:55.899Z"} -{"balance":"454852.0","contract":"0x351f59de4fedbdf7601f5592b93db3b9330c1c1d","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on polygon:","timestamp":"2025-04-28T18:33:57.326Z"} -{"arbitrum":"499999.9","bsc":"500000.0","eth":"1500000.0","level":"info","message":"Token balances fetched for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b:","polygon":"454852.0","timestamp":"2025-04-28T18:33:57.326Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T18:34:52.236Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T18:34:52.239Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T18:34:52.245Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T18:34:52.246Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T18:35:52.237Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T18:35:52.239Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T18:35:52.246Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T18:35:52.247Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T18:36:52.246Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T18:36:52.248Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T18:36:52.255Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T18:36:52.256Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T18:37:52.262Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T18:37:52.264Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T18:37:52.272Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T18:37:52.273Z"} -{"level":"info","message":"GET /api/tokens/balances?address=0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-28T18:38:52.245Z"} -{"level":"info","message":"Fetching token balances for address: 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-28T18:38:52.245Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T18:38:52.246Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T18:38:52.248Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T18:38:52.257Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T18:38:52.259Z"} -{"balance":"1500000.0","contract":"0xd95a45fc46a7300e6022885afec3d618d7d3f27c","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on eth:","timestamp":"2025-04-28T18:38:53.351Z"} -{"balance":"500000.0","contract":"0x4B294265720B09ca39BFBA18c7E368413c0f68eB","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on bsc:","timestamp":"2025-04-28T18:38:54.537Z"} -{"balance":"499999.9","contract":"0xdce769b847a0a697239777d0b1c7dd33b6012ba0","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on arbitrum:","timestamp":"2025-04-28T18:38:55.694Z"} -{"balance":"454852.0","contract":"0x351f59de4fedbdf7601f5592b93db3b9330c1c1d","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on polygon:","timestamp":"2025-04-28T18:38:56.816Z"} -{"arbitrum":"499999.9","bsc":"500000.0","eth":"1500000.0","level":"info","message":"Token balances fetched for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b:","polygon":"454852.0","timestamp":"2025-04-28T18:38:56.816Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T18:39:52.254Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T18:39:52.256Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T18:39:52.264Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T18:39:52.265Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T18:40:52.267Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T18:40:52.270Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T18:40:52.278Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T18:40:52.279Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T18:41:52.243Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T18:41:52.246Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T18:41:52.254Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T18:41:52.255Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T18:42:52.258Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T18:42:52.261Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T18:42:52.269Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T18:42:52.270Z"} -{"level":"info","message":"GET /api/tokens/balances?address=0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-28T18:43:52.271Z"} -{"level":"info","message":"Fetching token balances for address: 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-28T18:43:52.272Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T18:43:52.272Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T18:43:52.274Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T18:43:52.282Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T18:43:52.285Z"} -{"balance":"1500000.0","contract":"0xd95a45fc46a7300e6022885afec3d618d7d3f27c","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on eth:","timestamp":"2025-04-28T18:43:53.598Z"} -{"balance":"500000.0","contract":"0x4B294265720B09ca39BFBA18c7E368413c0f68eB","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on bsc:","timestamp":"2025-04-28T18:43:54.797Z"} -{"balance":"499999.9","contract":"0xdce769b847a0a697239777d0b1c7dd33b6012ba0","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on arbitrum:","timestamp":"2025-04-28T18:43:55.875Z"} -{"balance":"454852.0","contract":"0x351f59de4fedbdf7601f5592b93db3b9330c1c1d","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on polygon:","timestamp":"2025-04-28T18:43:57.320Z"} -{"arbitrum":"499999.9","bsc":"500000.0","eth":"1500000.0","level":"info","message":"Token balances fetched for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b:","polygon":"454852.0","timestamp":"2025-04-28T18:43:57.320Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T18:44:52.282Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T18:44:52.284Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T18:44:52.292Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T18:44:52.293Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T18:45:52.251Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T18:45:52.253Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T18:45:52.262Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T18:45:52.262Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T18:46:52.264Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T18:46:52.266Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T18:46:52.274Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T18:46:52.275Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T18:47:52.256Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T18:47:52.258Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T18:47:52.265Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T18:47:52.266Z"} -{"level":"info","message":"GET /api/tokens/balances?address=0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-28T18:48:52.277Z"} -{"level":"info","message":"Fetching token balances for address: 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-28T18:48:52.277Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T18:48:52.278Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T18:48:52.280Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T18:48:52.290Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T18:48:52.291Z"} -{"balance":"1500000.0","contract":"0xd95a45fc46a7300e6022885afec3d618d7d3f27c","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on eth:","timestamp":"2025-04-28T18:48:53.737Z"} -{"balance":"500000.0","contract":"0x4B294265720B09ca39BFBA18c7E368413c0f68eB","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on bsc:","timestamp":"2025-04-28T18:48:54.845Z"} -{"balance":"499999.9","contract":"0xdce769b847a0a697239777d0b1c7dd33b6012ba0","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on arbitrum:","timestamp":"2025-04-28T18:48:56.018Z"} -{"balance":"454852.0","contract":"0x351f59de4fedbdf7601f5592b93db3b9330c1c1d","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on polygon:","timestamp":"2025-04-28T18:48:57.435Z"} -{"arbitrum":"499999.9","bsc":"500000.0","eth":"1500000.0","level":"info","message":"Token balances fetched for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b:","polygon":"454852.0","timestamp":"2025-04-28T18:48:57.436Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T18:49:52.265Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T18:49:52.267Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T18:49:52.275Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T18:49:52.276Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T18:50:52.264Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T18:50:52.266Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T18:50:52.274Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T18:50:52.275Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T18:51:52.246Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T18:51:52.248Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T18:51:52.256Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T18:51:52.257Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T18:52:52.250Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T18:52:52.253Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T18:52:52.263Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T18:52:52.264Z"} -{"level":"info","message":"GET /api/tokens/balances?address=0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-28T18:53:52.255Z"} -{"level":"info","message":"Fetching token balances for address: 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-28T18:53:52.255Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T18:53:52.257Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T18:53:52.259Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T18:53:52.268Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T18:53:52.269Z"} -{"balance":"1500000.0","contract":"0xd95a45fc46a7300e6022885afec3d618d7d3f27c","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on eth:","timestamp":"2025-04-28T18:53:53.650Z"} -{"balance":"500000.0","contract":"0x4B294265720B09ca39BFBA18c7E368413c0f68eB","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on bsc:","timestamp":"2025-04-28T18:53:54.794Z"} -{"balance":"499999.9","contract":"0xdce769b847a0a697239777d0b1c7dd33b6012ba0","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on arbitrum:","timestamp":"2025-04-28T18:53:55.970Z"} -{"balance":"454852.0","contract":"0x351f59de4fedbdf7601f5592b93db3b9330c1c1d","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on polygon:","timestamp":"2025-04-28T18:53:57.599Z"} -{"arbitrum":"499999.9","bsc":"500000.0","eth":"1500000.0","level":"info","message":"Token balances fetched for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b:","polygon":"454852.0","timestamp":"2025-04-28T18:53:57.600Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T18:54:52.252Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T18:54:52.255Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T18:54:52.262Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T18:54:52.264Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T18:55:52.255Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T18:55:52.257Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T18:55:52.265Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T18:55:52.266Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T18:56:52.265Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T18:56:52.267Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T18:56:52.274Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T18:56:52.275Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T18:57:52.253Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T18:57:52.255Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T18:57:52.262Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T18:57:52.264Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T18:58:52.263Z"} -{"level":"info","message":"GET /api/tokens/balances?address=0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-28T18:58:52.264Z"} -{"level":"info","message":"Fetching token balances for address: 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-28T18:58:52.264Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T18:58:52.265Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T18:58:52.273Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T18:58:52.274Z"} -{"balance":"1500000.0","contract":"0xd95a45fc46a7300e6022885afec3d618d7d3f27c","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on eth:","timestamp":"2025-04-28T18:58:53.636Z"} -{"balance":"500000.0","contract":"0x4B294265720B09ca39BFBA18c7E368413c0f68eB","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on bsc:","timestamp":"2025-04-28T18:58:54.589Z"} -{"balance":"499999.9","contract":"0xdce769b847a0a697239777d0b1c7dd33b6012ba0","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on arbitrum:","timestamp":"2025-04-28T18:58:55.836Z"} -{"balance":"454852.0","contract":"0x351f59de4fedbdf7601f5592b93db3b9330c1c1d","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on polygon:","timestamp":"2025-04-28T18:58:56.873Z"} -{"arbitrum":"499999.9","bsc":"500000.0","eth":"1500000.0","level":"info","message":"Token balances fetched for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b:","polygon":"454852.0","timestamp":"2025-04-28T18:58:56.873Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T18:59:52.261Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T18:59:52.263Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T18:59:52.270Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T18:59:52.271Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T19:00:52.251Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T19:00:52.253Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T19:00:52.261Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T19:00:52.262Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T19:01:52.253Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T19:01:52.255Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T19:01:52.263Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T19:01:52.264Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T19:02:52.332Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T19:02:52.356Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T19:02:52.424Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T19:02:52.433Z"} -{"level":"info","message":"GET /api/tokens/balances?address=0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-28T19:03:06.618Z"} -{"level":"info","message":"Fetching token balances for address: 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-28T19:03:06.619Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T19:03:06.839Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T19:03:06.842Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T19:03:06.871Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T19:03:06.872Z"} -{"balance":"1500000.0","contract":"0xd95a45fc46a7300e6022885afec3d618d7d3f27c","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on eth:","timestamp":"2025-04-28T19:03:07.671Z"} -{"balance":"500000.0","contract":"0x4B294265720B09ca39BFBA18c7E368413c0f68eB","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on bsc:","timestamp":"2025-04-28T19:03:08.676Z"} -{"balance":"499999.9","contract":"0xdce769b847a0a697239777d0b1c7dd33b6012ba0","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on arbitrum:","timestamp":"2025-04-28T19:03:10.496Z"} -{"balance":"454852.0","contract":"0x351f59de4fedbdf7601f5592b93db3b9330c1c1d","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on polygon:","timestamp":"2025-04-28T19:03:11.657Z"} -{"arbitrum":"499999.9","bsc":"500000.0","eth":"1500000.0","level":"info","message":"Token balances fetched for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b:","polygon":"454852.0","timestamp":"2025-04-28T19:03:11.658Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T19:03:36.884Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T19:03:36.887Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T19:03:36.916Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T19:03:36.917Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T19:04:06.935Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T19:04:06.940Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T19:04:06.949Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T19:04:06.952Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T19:04:37.259Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T19:04:37.263Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T19:04:37.291Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T19:04:37.292Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T19:05:06.940Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T19:05:06.945Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T19:05:06.954Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T19:05:06.955Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T19:05:36.896Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T19:05:36.899Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T19:05:36.909Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T19:05:36.911Z"} -{"level":"info","message":"POST /api/chat/message","timestamp":"2025-04-28T19:05:53.499Z"} -{"level":"info","message":"Received /message request","timestamp":"2025-04-28T19:05:53.512Z"} -{"conversationId":41,"level":"info","message":"Created new conversation","timestamp":"2025-04-28T19:05:53.750Z","userId":1} -{"conversationId":41,"level":"info","message":"User message saved","messageId":44,"timestamp":"2025-04-28T19:05:53.792Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T19:06:06.897Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T19:06:06.900Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T19:06:06.928Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T19:06:06.929Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T19:06:36.914Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T19:06:36.918Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T19:06:36.930Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T19:06:36.931Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T19:07:07.267Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T19:07:07.271Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T19:07:07.281Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T19:07:07.283Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T19:07:37.246Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T19:07:37.249Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T19:07:37.277Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T19:07:37.278Z"} -{"level":"info","message":"GET /api/tokens/balances?address=0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-28T19:08:38.306Z"} -{"level":"info","message":"Fetching token balances for address: 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-28T19:08:38.307Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T19:08:38.307Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T19:08:38.313Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T19:08:38.328Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T19:08:38.330Z"} -{"balance":"1500000.0","contract":"0xd95a45fc46a7300e6022885afec3d618d7d3f27c","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on eth:","timestamp":"2025-04-28T19:08:39.440Z"} -{"balance":"500000.0","contract":"0x4B294265720B09ca39BFBA18c7E368413c0f68eB","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on bsc:","timestamp":"2025-04-28T19:08:40.288Z"} -{"balance":"499999.9","contract":"0xdce769b847a0a697239777d0b1c7dd33b6012ba0","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on arbitrum:","timestamp":"2025-04-28T19:08:41.512Z"} -{"balance":"454852.0","contract":"0x351f59de4fedbdf7601f5592b93db3b9330c1c1d","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on polygon:","timestamp":"2025-04-28T19:08:42.928Z"} -{"arbitrum":"499999.9","bsc":"500000.0","eth":"1500000.0","level":"info","message":"Token balances fetched for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b:","polygon":"454852.0","timestamp":"2025-04-28T19:08:42.928Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T19:09:06.912Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T19:09:06.916Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T19:09:06.927Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T19:09:06.928Z"} -{"level":"info","message":"POST /api/chat/message","timestamp":"2025-04-28T19:09:13.547Z"} -{"level":"info","message":"Received /message request","timestamp":"2025-04-28T19:09:13.550Z"} -{"conversationId":42,"level":"info","message":"Created new conversation","timestamp":"2025-04-28T19:09:13.721Z","userId":1} -{"conversationId":42,"level":"info","message":"User message saved","messageId":45,"timestamp":"2025-04-28T19:09:13.746Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T19:09:36.903Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T19:09:36.907Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T19:09:36.936Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T19:09:36.938Z"} -{"level":"info","message":"POST /api/chat/message","timestamp":"2025-04-28T19:09:45.753Z"} -{"level":"info","message":"Received /message request","timestamp":"2025-04-28T19:09:45.756Z"} -{"conversationId":43,"level":"info","message":"Created new conversation","timestamp":"2025-04-28T19:09:45.764Z","userId":1} -{"conversationId":43,"level":"info","message":"User message saved","messageId":46,"timestamp":"2025-04-28T19:09:45.770Z"} -{"level":"info","message":"Getting AI response for:","timestamp":"2025-04-28T19:09:45.770Z"} -{"conversationId":43,"level":"info","message":"AI response received","timestamp":"2025-04-28T19:10:04.100Z"} -{"conversationId":43,"level":"info","message":"AI response saved","messageId":47,"timestamp":"2025-04-28T19:10:04.138Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T19:10:06.884Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T19:10:06.887Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T19:10:06.914Z"} -{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T19:10:06.916Z"} -{"level":"info","message":"POST /api/auth/logout","timestamp":"2025-04-28T19:10:18.686Z"} -{"address":null,"authType":null,"authenticated":false,"cookie":{"expires":"2025-05-28T15:00:42.010Z","httpOnly":true,"originalMaxAge":2592000000,"path":"/","sameSite":"lax","secure":false},"email":null,"guestId":null,"isAdmin":false,"level":"info","message":"[SessionService] Saving session data:","pendingEmail":null,"previousGuestId":null,"processedGuestIds":[],"telegramId":null,"timestamp":"2025-04-28T19:10:18.687Z","userId":null} -{"level":"info","message":"Session saved successfully","timestamp":"2025-04-28T19:10:18.692Z"} -{"level":"info","message":"GET /api/auth/check","timestamp":"2025-04-28T19:10:18.716Z"} -{"cookie":{"expires":"2025-05-28T19:10:18.714Z","httpOnly":true,"originalMaxAge":2592000000,"path":"/","sameSite":"lax","secure":false},"guestId":"f506e0e2a360684582cb4f96c8dce535","level":"info","message":"[SessionService] Saving session data:","timestamp":"2025-04-28T19:10:18.718Z"} -{"level":"info","message":"Session saved successfully","timestamp":"2025-04-28T19:10:18.721Z"} -{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T19:10:36.964Z"} -{"level":"info","message":"GET /api/auth/check","timestamp":"2025-04-28T19:10:37.560Z"} -{"level":"info","message":"GET /api/auth/check","timestamp":"2025-04-28T19:10:37.583Z"} diff --git a/backend/logs/error.log b/backend/logs/error.log index 2a7084e..e69de29 100644 --- a/backend/logs/error.log +++ b/backend/logs/error.log @@ -1,7 +0,0 @@ -{"body":{"guestId":"1745825541972-nwmi3pcpe","language":"ru","message":""},"level":"error","message":"Error in /guest-message: null value in column \"content\" of relation \"guest_messages\" violates not-null constraint","stack":"error: null value in column \"content\" of relation \"guest_messages\" violates not-null constraint\n at /app/node_modules/pg-pool/index.js:45:11\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n at async /app/routes/chat.js:211:20","timestamp":"2025-04-28T07:37:57.316Z"} -{"body":{"guestId":"1745826229509-a9cc49arg","language":"ru","message":""},"level":"error","message":"Error in /guest-message: null value in column \"content\" of relation \"guest_messages\" violates not-null constraint","stack":"error: null value in column \"content\" of relation \"guest_messages\" violates not-null constraint\n at /app/node_modules/pg-pool/index.js:45:11\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n at async /app/routes/chat.js:211:20","timestamp":"2025-04-28T07:43:49.319Z"} -{"body":{"guestId":"1745827727896-sqo5zp8c5","language":"ru","message":""},"level":"error","message":"Error in /guest-message: invalid input syntax for type json","stack":"error: invalid input syntax for type json\n at /app/node_modules/pg-pool/index.js:45:11\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n at async /app/routes/chat.js:227:20","timestamp":"2025-04-28T08:08:48.293Z"} -{"code":"42703","file":"parse_target.c","length":146,"level":"error","line":"1066","message":"Error saving guest message: column \"attachment_filename\" of relation \"guest_messages\" does not exist","name":"error","position":"82","routine":"checkInsertTargets","severity":"ERROR","stack":"error: column \"attachment_filename\" of relation \"guest_messages\" does not exist\n at /app/node_modules/pg-pool/index.js:45:11\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n at async /app/routes/chat.js:224:20","timestamp":"2025-04-28T14:28:29.099Z"} -{"code":"23502","column":"content","detail":"Failing row contains (2, 1745850508983-zb9xi0g4t, null, ru, f, 2025-04-28 14:53:07.021316+00, image (15).png, image/png, 18375, \\x89504e470d0a1a0a0000000d4948445200000213000000ee08060000008330...).","file":"execMain.c","length":383,"level":"error","line":"2006","message":"Error saving guest message: null value in column \"content\" of relation \"guest_messages\" violates not-null constraint","name":"error","routine":"ExecConstraints","schema":"public","severity":"ERROR","stack":"error: null value in column \"content\" of relation \"guest_messages\" violates not-null constraint\n at /app/node_modules/pg-pool/index.js:45:11\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n at async /app/routes/chat.js:224:20","table":"guest_messages","timestamp":"2025-04-28T14:53:07.027Z"} -{"level":"error","message":"Error fetching message history for user 1: syntax error at or near \"$\"","stack":"error: syntax error at or near \"$\"\n at /app/node_modules/pg-pool/index.js:45:11\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n at async /app/routes/chat.js:484:20","timestamp":"2025-04-28T14:57:24.546Z"} -{"level":"error","message":"Error fetching message history for user 1: syntax error at or near \"$\"","stack":"error: syntax error at or near \"$\"\n at /app/node_modules/pg-pool/index.js:45:11\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n at async /app/routes/chat.js:484:20","timestamp":"2025-04-28T14:58:35.485Z"} diff --git a/frontend/src/components/NotificationDisplay.vue b/frontend/src/components/NotificationDisplay.vue new file mode 100644 index 0000000..b52ca68 --- /dev/null +++ b/frontend/src/components/NotificationDisplay.vue @@ -0,0 +1,113 @@ + + + + + \ No newline at end of file diff --git a/frontend/src/components/Sidebar.vue b/frontend/src/components/Sidebar.vue index bb0273b..7840d25 100644 --- a/frontend/src/components/Sidebar.vue +++ b/frontend/src/components/Sidebar.vue @@ -45,7 +45,7 @@ -
+

Баланс токенов:

ETH: diff --git a/frontend/src/composables/useAuthFlow.js b/frontend/src/composables/useAuthFlow.js new file mode 100644 index 0000000..c6781cc --- /dev/null +++ b/frontend/src/composables/useAuthFlow.js @@ -0,0 +1,223 @@ +import { ref, onUnmounted } from 'vue'; +import api from '../api/axios'; +import { useAuth } from './useAuth'; +import { useNotifications } from './useNotifications'; + +export function useAuthFlow(options = {}) { + const { onAuthSuccess } = options; // Callback после успешной аутентификации/привязки + + const auth = useAuth(); + const { showSuccessMessage, showErrorMessage } = useNotifications(); + + // Состояния Telegram + const telegramAuth = ref({ + showVerification: false, + verificationCode: '', + botLink: '', + checkInterval: null, + error: '', + isLoading: false, // Добавим isLoading + }); + + // Состояния Email + const emailAuth = ref({ + showForm: false, + showVerification: false, + email: '', + verificationEmail: '', // Храним email, на который отправили код + verificationCode: '', + formatError: false, + isLoading: false, // Для отправки запроса на init + isVerifying: false, // Для проверки кода + error: '', + }); + + // --- Telegram --- + + const clearTelegramInterval = () => { + if (telegramAuth.value.checkInterval) { + clearInterval(telegramAuth.value.checkInterval); + telegramAuth.value.checkInterval = null; + console.log('[useAuthFlow] Интервал проверки Telegram авторизации очищен'); + } + }; + + const handleTelegramAuth = async () => { + if (telegramAuth.value.isLoading) return; + telegramAuth.value.isLoading = true; + telegramAuth.value.error = ''; + try { + const response = await api.post('/api/auth/telegram/init'); + if (response.data.success) { + telegramAuth.value.verificationCode = response.data.verificationCode; + telegramAuth.value.botLink = response.data.botLink; + telegramAuth.value.showVerification = true; + + // Начинаем проверку статуса + clearTelegramInterval(); // На всякий случай + telegramAuth.value.checkInterval = setInterval(async () => { + try { + console.log('[useAuthFlow] Проверка статуса Telegram...'); + // Используем checkAuth из useAuth для обновления состояния + const checkResponse = await auth.checkAuth(); + const telegramId = auth.telegramId.value; + + if (auth.isAuthenticated.value && telegramId) { + console.log('[useAuthFlow] Telegram успешно связан/подтвержден.'); + clearTelegramInterval(); + telegramAuth.value.showVerification = false; + telegramAuth.value.verificationCode = ''; + telegramAuth.value.error = ''; + + showSuccessMessage('Telegram успешно подключен!'); + if (onAuthSuccess) onAuthSuccess('telegram'); // Вызываем callback + // Нет необходимости продолжать интервал + return; + } + } catch (intervalError) { + console.error('[useAuthFlow] Ошибка при проверке статуса Telegram в интервале:', intervalError); + // Решаем, останавливать ли интервал при ошибке + // telegramAuth.value.error = 'Ошибка проверки статуса Telegram.'; + // clearTelegramInterval(); + } + }, 3000); // Проверяем каждые 3 секунды + + } else { + telegramAuth.value.error = response.data.error || 'Ошибка инициализации Telegram'; + showErrorMessage(telegramAuth.value.error); + } + } catch (error) { + console.error('[useAuthFlow] Ошибка инициализации Telegram аутентификации:', error); + const message = error?.response?.data?.error || 'Ошибка при инициализации аутентификации через Telegram'; + telegramAuth.value.error = message; + showErrorMessage(message); + } finally { + telegramAuth.value.isLoading = false; + } + }; + + const cancelTelegramAuth = () => { + clearTelegramInterval(); + telegramAuth.value.showVerification = false; + telegramAuth.value.verificationCode = ''; + telegramAuth.value.error = ''; + telegramAuth.value.isLoading = false; + console.log('[useAuthFlow] Аутентификация Telegram отменена'); + }; + + // --- Email --- + + const showEmailForm = () => { + emailAuth.value.showForm = true; + emailAuth.value.showVerification = false; + emailAuth.value.email = ''; + emailAuth.value.formatError = false; + emailAuth.value.error = ''; + emailAuth.value.isLoading = false; + emailAuth.value.isVerifying = false; + }; + + const sendEmailVerification = async () => { + emailAuth.value.formatError = false; + emailAuth.value.error = ''; + + if (!emailAuth.value.email || !emailAuth.value.email.match(/^[^\s@]+@[^\s@]+\.[^\s@]+$/)) { + emailAuth.value.formatError = true; + return; + } + + if (emailAuth.value.isLoading) return; + emailAuth.value.isLoading = true; + + try { + const response = await api.post('/api/auth/email/init', { email: emailAuth.value.email }); + if (response.data.success) { + emailAuth.value.verificationEmail = emailAuth.value.email; // Сохраняем email + emailAuth.value.showForm = false; + emailAuth.value.showVerification = true; + emailAuth.value.verificationCode = ''; // Очищаем поле кода + console.log('[useAuthFlow] Код верификации Email отправлен на:', emailAuth.value.verificationEmail); + } else { + emailAuth.value.error = response.data.error || 'Ошибка инициализации аутентификации по email'; + showErrorMessage(emailAuth.value.error); + } + } catch (error) { + console.error('[useAuthFlow] Ошибка при запросе инициализации Email:', error); + const message = error?.response?.data?.error || 'Ошибка при запросе кода подтверждения'; + emailAuth.value.error = message; + showErrorMessage(message); + } finally { + emailAuth.value.isLoading = false; + } + }; + + const verifyEmailCode = async () => { + emailAuth.value.error = ''; + if (!emailAuth.value.verificationCode) { + emailAuth.value.error = 'Пожалуйста, введите код верификации'; + return; + } + if (emailAuth.value.isVerifying) return; + emailAuth.value.isVerifying = true; + + try { + const response = await api.post('/api/auth/email/verify-code', { + email: emailAuth.value.verificationEmail, + code: emailAuth.value.verificationCode, + }); + + if (response.data.success) { + console.log('[useAuthFlow] Email успешно подтвержден:', emailAuth.value.verificationEmail); + emailAuth.value.showForm = false; + emailAuth.value.showVerification = false; + emailAuth.value.error = ''; + + // Обновляем состояние аутентификации через useAuth + await auth.checkAuth(); + showSuccessMessage(`Email ${emailAuth.value.verificationEmail} успешно подтвержден!`); + + if (onAuthSuccess) onAuthSuccess('email'); // Вызываем callback + + } else { + emailAuth.value.error = response.data.message || 'Неверный код верификации'; + // Не используем showErrorMessage здесь, т.к. ошибка отображается локально в форме + } + } catch (error) { + console.error('[useAuthFlow] Ошибка проверки кода Email:', error); + const message = error?.response?.data?.error || 'Ошибка при проверке кода'; + emailAuth.value.error = message; + // Не используем showErrorMessage здесь + } finally { + emailAuth.value.isVerifying = false; + } + }; + + const cancelEmailAuth = () => { + emailAuth.value.showForm = false; + emailAuth.value.showVerification = false; + emailAuth.value.email = ''; + emailAuth.value.verificationCode = ''; + emailAuth.value.error = ''; + emailAuth.value.formatError = false; + emailAuth.value.isLoading = false; + emailAuth.value.isVerifying = false; + console.log('[useAuthFlow] Аутентификация Email отменена'); + }; + + // Очистка интервала при размонтировании + onUnmounted(() => { + clearTelegramInterval(); + }); + + return { + telegramAuth, + handleTelegramAuth, + cancelTelegramAuth, + + emailAuth, + showEmailForm, + sendEmailVerification, + verifyEmailCode, + cancelEmailAuth, + }; +} \ No newline at end of file diff --git a/frontend/src/composables/useChat.js b/frontend/src/composables/useChat.js new file mode 100644 index 0000000..56b0460 --- /dev/null +++ b/frontend/src/composables/useChat.js @@ -0,0 +1,383 @@ +import { ref, computed, watch, onMounted } from 'vue'; +import api from '../api/axios'; +import { getFromStorage, setToStorage, removeFromStorage } from '../utils/storage'; +import { generateUniqueId } from '../utils/helpers'; + +export function useChat(auth) { + const messages = ref([]); + const newMessage = ref(''); + const attachments = ref([]); // Теперь это массив File объектов + const userLanguage = ref('ru'); + const isLoading = ref(false); // Общая загрузка (например, при отправке) + const hasUserSentMessage = ref(getFromStorage('hasUserSentMessage') === true); + + const messageLoading = ref({ + isLoadingHistory: false, // Загрузка истории + hasMoreMessages: false, + offset: 0, + limit: 30, + isHistoryLoadingInProgress: false, // Флаг для предотвращения параллельных запросов истории + isLinkingGuest: false, // Флаг для процесса связывания гостевых сообщений (пока не используется активно) + }); + + const guestId = ref(getFromStorage('guestId', '')); + + const shouldLoadHistory = computed(() => { + return auth.isAuthenticated.value || !!guestId.value; + }); + + // --- Загрузка истории --- + const loadMessages = async (options = {}) => { + const { silent = false, initial = false, authType = null } = options; + + if (messageLoading.value.isHistoryLoadingInProgress) { + console.warn('[useChat] Загрузка истории уже идет, пропуск.'); + return; + } + messageLoading.value.isHistoryLoadingInProgress = true; + + // Если initial=true, сбрасываем offset и hasMoreMessages + if (initial) { + console.log('[useChat] Начальная загрузка истории...'); + messageLoading.value.offset = 0; + messageLoading.value.hasMoreMessages = false; + messages.value = []; // Очищаем текущие сообщения перед начальной загрузкой + } + + // Не загружаем больше, если уже грузим или больше нет + if (!initial && (!messageLoading.value.hasMoreMessages || messageLoading.value.isLoadingHistory)) { + messageLoading.value.isHistoryLoadingInProgress = false; + return; + } + + messageLoading.value.isLoadingHistory = true; + if (!silent && initial) isLoading.value = true; // Показываем общий лоадер только при начальной загрузке + + console.log( + `[useChat] Загрузка истории сообщений (initial: ${initial}, authType: ${authType}, offset: ${messageLoading.value.offset})...` + ); + + try { + // --- Логика ожидания привязки гостя (упрощенная) --- + // TODO: Рассмотреть более надежный механизм, если это необходимо + if (authType) { + console.log(`[useChat] Ожидание после ${authType} аутентификации...`); + await new Promise((resolve) => setTimeout(resolve, 1500)); // Увеличена задержка + console.log('[useChat] Ожидание завершено, продолжаем загрузку истории.'); + } + // --- Конец логики ожидания --- + + // Определяем, нужно ли запрашивать count + let totalMessages = -1; + if (initial || messageLoading.value.offset === 0) { + try { + const countResponse = await api.get('/api/chat/history', { params: { count_only: true } }); + if (!countResponse.data.success) throw new Error('Не удалось получить количество сообщений'); + totalMessages = countResponse.data.total || countResponse.data.count || 0; + console.log(`[useChat] Всего сообщений в истории: ${totalMessages}`); + } catch(countError) { + console.error('[useChat] Ошибка получения количества сообщений:', countError); + // Не прерываем выполнение, попробуем загрузить без total + } + } + + let effectiveOffset = messageLoading.value.offset; + // Если это первая загрузка и мы знаем total, рассчитаем смещение для последних сообщений + if (initial && totalMessages > 0 && totalMessages > messageLoading.value.limit) { + effectiveOffset = Math.max(0, totalMessages - messageLoading.value.limit); + console.log(`[useChat] Рассчитано начальное смещение: ${effectiveOffset}`); + } + + const response = await api.get('/api/chat/history', { + params: { + offset: effectiveOffset, + limit: messageLoading.value.limit, + }, + }); + + if (response.data.success) { + const loadedMessages = response.data.messages || []; + console.log(`[useChat] Загружено ${loadedMessages.length} сообщений.`); + + if (loadedMessages.length > 0) { + // Добавляем к существующим (в начало для истории, в конец для начальной загрузки) + if (initial) { + messages.value = loadedMessages; + } else { + messages.value = [...loadedMessages, ...messages.value]; + } + + // Обновляем смещение для следующей загрузки + // Если загружали последние, offset = total - limit + loaded + if (initial && totalMessages > 0 && effectiveOffset > 0) { + messageLoading.value.offset = effectiveOffset + loadedMessages.length; + } else { + messageLoading.value.offset += loadedMessages.length; + } + console.log(`[useChat] Новое смещение: ${messageLoading.value.offset}`); + + // Проверяем, есть ли еще сообщения для загрузки + // Используем totalMessages, если он был успешно получен + if (totalMessages >= 0) { + messageLoading.value.hasMoreMessages = messageLoading.value.offset < totalMessages; + } else { + // Если total не известен, считаем, что есть еще, если загрузили полный лимит + messageLoading.value.hasMoreMessages = loadedMessages.length === messageLoading.value.limit; + } + console.log(`[useChat] Есть еще сообщения: ${messageLoading.value.hasMoreMessages}`); + } else { + // Если сообщений не пришло, значит, больше нет + messageLoading.value.hasMoreMessages = false; + } + + // Очищаем гостевые данные после успешной аутентификации и загрузки + if (authType) { + removeFromStorage('guestMessages'); + removeFromStorage('guestId'); + guestId.value = ''; + } + + // Считаем, что пользователь отправлял сообщение, если история не пуста + if (messages.value.length > 0) { + hasUserSentMessage.value = true; + setToStorage('hasUserSentMessage', true); + } + + } else { + console.error('[useChat] API вернул ошибку при загрузке истории:', response.data.error); + messageLoading.value.hasMoreMessages = false; // Считаем, что больше нет при ошибке + } + } catch (error) { + console.error('[useChat] Ошибка загрузки истории сообщений:', error); + messageLoading.value.hasMoreMessages = false; // Считаем, что больше нет при ошибке + } finally { + messageLoading.value.isLoadingHistory = false; + messageLoading.value.isHistoryLoadingInProgress = false; + if (initial) isLoading.value = false; + } + }; + + // --- Отправка сообщения --- + const handleSendMessage = async (payload) => { + // --- НАЧАЛО ДОБАВЛЕННЫХ ЛОГОВ --- + console.log('[useChat] handleSendMessage called. Payload:', payload); + console.log('[useChat] Current auth state:', { + isAuthenticated: auth.isAuthenticated.value, + userId: auth.userId.value, + authType: auth.authType.value, + }); + // --- КОНЕЦ ДОБАВЛЕННЫХ ЛОГОВ --- + + const { message: text, attachments: files } = payload; // files - массив File объектов + const userMessageContent = text.trim(); + + // Проверка на пустое сообщение (если нет ни текста, ни файлов) + if (!userMessageContent && (!files || files.length === 0)) { + console.warn('[useChat] Попытка отправить пустое сообщение.'); + return; + } + + isLoading.value = true; + const tempId = generateUniqueId(); + const isGuestMessage = !auth.isAuthenticated.value; + + // Создаем локальное сообщение для отображения + const userMessage = { + id: tempId, + content: userMessageContent || `[${files.length} вложений]`, // Отображение для UI + sender_type: 'user', + role: 'user', + isLocal: true, + isGuest: isGuestMessage, + timestamp: new Date().toISOString(), + // Генерируем инфо для отображения в Message.vue (без File объектов) + attachments: files ? files.map(f => ({ + originalname: f.name, + size: f.size, + mimetype: f.type, + // url: URL.createObjectURL(f) // Можно создать временный URL для превью, если Message.vue его использует + })) : [], + hasError: false + }; + messages.value.push(userMessage); + + // Очистка ввода происходит в ChatInterface + // newMessage.value = ''; + // attachments.value = []; + + try { + const formData = new FormData(); + formData.append('message', userMessageContent); + formData.append('language', userLanguage.value); + + if (files && files.length > 0) { + files.forEach((file) => { + formData.append('attachments', file, file.name); + }); + } + + let apiUrl = '/api/chat/message'; + if (isGuestMessage) { + if (!guestId.value) { + guestId.value = generateUniqueId(); + setToStorage('guestId', guestId.value); + } + formData.append('guestId', guestId.value); + apiUrl = '/api/chat/guest-message'; + } + + const response = await api.post(apiUrl, formData, { + headers: { + // Content-Type устанавливается браузером для FormData + } + }); + + const userMsgIndex = messages.value.findIndex((m) => m.id === tempId); + + if (response.data.success) { + console.log('[useChat] Сообщение успешно отправлено:', response.data); + // Обновляем локальное сообщение данными с сервера + if (userMsgIndex !== -1) { + const serverUserMessage = response.data.userMessage || { id: response.data.messageId }; + messages.value[userMsgIndex].id = serverUserMessage.id || tempId; // Используем серверный ID + messages.value[userMsgIndex].isLocal = false; + messages.value[userMsgIndex].timestamp = serverUserMessage.created_at || new Date().toISOString(); + // Опционально: обновить content/attachments с сервера, если они отличаются + } + + // Добавляем ответ ИИ, если есть + if (response.data.aiMessage) { + messages.value.push({ + ...response.data.aiMessage, + sender_type: 'assistant', // Убедимся, что тип правильный + role: 'assistant', + }); + } + + // Сохраняем гостевое сообщение (если нужно) + // В текущей реализации HomeView гостевые сообщения из localstorage загружаются только при старте + // Если нужна синхронизация после отправки, логику нужно добавить/изменить + /* + if (isGuestMessage) { + try { + const storedMessages = getFromStorage('guestMessages', []); + // Добавляем сообщение пользователя (с серверным ID) + storedMessages.push({ + id: messages.value[userMsgIndex].id, + content: userMessageContent, + sender_type: 'user', + role: 'user', + isGuest: true, + timestamp: messages.value[userMsgIndex].timestamp, + attachmentsInfo: messages.value[userMsgIndex].attachments // Сохраняем инфо о файлах + }); + setToStorage('guestMessages', storedMessages); + } catch (storageError) { + console.error('[useChat] Ошибка сохранения гостевого сообщения в localStorage:', storageError); + } + } + */ + + hasUserSentMessage.value = true; + setToStorage('hasUserSentMessage', true); + + } else { + throw new Error(response.data.error || 'Ошибка отправки сообщения от API'); + } + + } catch (error) { + console.error('[useChat] Ошибка отправки сообщения:', error); + const userMsgIndex = messages.value.findIndex((m) => m.id === tempId); + if (userMsgIndex !== -1) { + messages.value[userMsgIndex].hasError = true; + messages.value[userMsgIndex].isLocal = false; // Убираем статус "отправка" + } + // Добавляем системное сообщение об ошибке + messages.value.push({ + id: `error-${Date.now()}`, + content: 'Произошла ошибка при отправке сообщения. Пожалуйста, попробуйте еще раз.', + sender_type: 'system', + role: 'system', + timestamp: new Date().toISOString(), + }); + } finally { + isLoading.value = false; + } + }; + + // --- Управление гостевыми сообщениями --- + const loadGuestMessagesFromStorage = () => { + if (!auth.isAuthenticated.value && guestId.value) { + try { + const storedMessages = getFromStorage('guestMessages'); + if (storedMessages && Array.isArray(storedMessages) && storedMessages.length > 0) { + console.log(`[useChat] Найдено ${storedMessages.length} сохраненных гостевых сообщений`); + // Добавляем только если текущий список пуст (чтобы не дублировать при HMR) + if(messages.value.length === 0) { + messages.value = storedMessages.map(m => ({ ...m, isGuest: true })); // Помечаем как гостевые + hasUserSentMessage.value = true; + } + } + } catch (e) { + console.error('[useChat] Ошибка загрузки гостевых сообщений из localStorage:', e); + removeFromStorage('guestMessages'); // Очистить при ошибке парсинга + } + } + }; + + // --- Watchers --- + // Сортировка сообщений при изменении + watch(messages, (newMessages) => { + // Сортируем только если массив изменился + if (newMessages.length > 1) { + messages.value.sort((a, b) => { + const dateA = new Date(a.timestamp || a.created_at || 0); + const dateB = new Date(b.timestamp || b.created_at || 0); + return dateA - dateB; + }); + } + }, { deep: false }); // deep: false т.к. нас интересует только добавление/удаление элементов + + // Сброс чата при выходе пользователя + watch(() => auth.isAuthenticated.value, (isAuth, wasAuth) => { + if (!isAuth && wasAuth) { // Если пользователь разлогинился + console.log('[useChat] Пользователь вышел, сброс состояния чата.'); + messages.value = []; + messageLoading.value.offset = 0; + messageLoading.value.hasMoreMessages = false; + hasUserSentMessage.value = false; + newMessage.value = ''; + attachments.value = []; + // Гостевые данные очищаются при успешной аутентификации в loadMessages + // или если пользователь сам очистит localStorage + } + }); + + // --- Инициализация --- + onMounted(() => { + if (!auth.isAuthenticated.value && guestId.value) { + loadGuestMessagesFromStorage(); + } else if (auth.isAuthenticated.value) { + loadMessages({ initial: true }); + } + // Добавляем слушатель для возможности принудительной перезагрузки + // window.addEventListener('load-chat-history', () => loadMessages({ initial: true })); + }); + + // onUnmounted(() => { + // window.removeEventListener('load-chat-history', () => loadMessages({ initial: true })); + // }); + + return { + messages, + newMessage, // v-model + attachments, // v-model + isLoading, + messageLoading, // Содержит isLoadingHistory и hasMoreMessages + userLanguage, + hasUserSentMessage, + loadMessages, + handleSendMessage, + loadGuestMessagesFromStorage, // Экспортируем на всякий случай + }; +} \ No newline at end of file diff --git a/frontend/src/composables/useNotifications.js b/frontend/src/composables/useNotifications.js new file mode 100644 index 0000000..80c14ae --- /dev/null +++ b/frontend/src/composables/useNotifications.js @@ -0,0 +1,50 @@ +import { ref } from 'vue'; + +export function useNotifications() { + const notifications = ref({ + successMessage: '', + showSuccess: false, + errorMessage: '', + showError: false, + // Можно добавить info/warning по аналогии + }); + + let successTimeout = null; + let errorTimeout = null; + + const showSuccessMessage = (message, duration = 3000) => { + clearTimeout(successTimeout); + notifications.value.successMessage = message; + notifications.value.showSuccess = true; + successTimeout = setTimeout(() => { + notifications.value.showSuccess = false; + }, duration); + }; + + const showErrorMessage = (message, duration = 3000) => { + clearTimeout(errorTimeout); + notifications.value.errorMessage = message; + notifications.value.showError = true; + errorTimeout = setTimeout(() => { + notifications.value.showError = false; + }, duration); + }; + + const hideSuccessMessage = () => { + clearTimeout(successTimeout); + notifications.value.showSuccess = false; + }; + + const hideErrorMessage = () => { + clearTimeout(errorTimeout); + notifications.value.showError = false; + }; + + return { + notifications, + showSuccessMessage, + showErrorMessage, + hideSuccessMessage, + hideErrorMessage + }; +} \ No newline at end of file diff --git a/frontend/src/composables/useTokenBalances.js b/frontend/src/composables/useTokenBalances.js new file mode 100644 index 0000000..aa04470 --- /dev/null +++ b/frontend/src/composables/useTokenBalances.js @@ -0,0 +1,99 @@ +import { ref, watch, onUnmounted } from 'vue'; +import { fetchTokenBalances } from '../services/tokens'; +import { useAuth } from './useAuth'; // Предполагаем, что useAuth предоставляет identities + +export function useTokenBalances() { + const auth = useAuth(); // Получаем доступ к состоянию аутентификации + const tokenBalances = ref({ + eth: '0', + bsc: '0', + arbitrum: '0', + polygon: '0', + }); + let balanceUpdateInterval = null; + + const getIdentityValue = (type) => { + if (!auth.identities?.value) return null; + const identity = auth.identities.value.find((identity) => identity.provider === type); + return identity ? identity.provider_id : null; + }; + + const updateBalances = async () => { + if (auth.isAuthenticated.value) { + const walletAddress = auth.address?.value || getIdentityValue('wallet'); + if (walletAddress) { + try { + console.log('[useTokenBalances] Запрос балансов для адреса:', walletAddress); + const balances = await fetchTokenBalances(walletAddress); + console.log('[useTokenBalances] Полученные балансы:', balances); + tokenBalances.value = { + eth: balances.eth || '0', + bsc: balances.bsc || '0', + arbitrum: balances.arbitrum || '0', + polygon: balances.polygon || '0', + }; + console.log('[useTokenBalances] Обновленные балансы:', tokenBalances.value); + } catch (error) { + console.error('[useTokenBalances] Ошибка при обновлении балансов:', error); + // Возможно, стоит сбросить балансы при ошибке + tokenBalances.value = { eth: '0', bsc: '0', arbitrum: '0', polygon: '0' }; + } + } else { + console.log('[useTokenBalances] Не найден адрес кошелька для запроса балансов.'); + tokenBalances.value = { eth: '0', bsc: '0', arbitrum: '0', polygon: '0' }; + } + } else { + console.log('[useTokenBalances] Пользователь не аутентифицирован, сброс балансов.'); + tokenBalances.value = { eth: '0', bsc: '0', arbitrum: '0', polygon: '0' }; + } + }; + + const startBalanceUpdates = (intervalMs = 300000) => { + stopBalanceUpdates(); // Остановить предыдущий интервал, если он был + console.log('[useTokenBalances] Запуск обновления балансов...'); + updateBalances(); // Обновить сразу + balanceUpdateInterval = setInterval(updateBalances, intervalMs); + }; + + const stopBalanceUpdates = () => { + if (balanceUpdateInterval) { + console.log('[useTokenBalances] Остановка обновления балансов.'); + clearInterval(balanceUpdateInterval); + balanceUpdateInterval = null; + } + }; + + // Следим за аутентификацией и наличием кошелька + watch( + () => [auth.isAuthenticated.value, auth.address?.value, getIdentityValue('wallet')], + ([isAuth, directAddress, identityAddress]) => { + const hasWallet = directAddress || identityAddress; + if (isAuth && hasWallet) { + // Если пользователь аутентифицирован, имеет кошелек, и интервал не запущен + if (!balanceUpdateInterval) { + startBalanceUpdates(); + } + // Если адрес изменился, принудительно обновить + // updateBalances(); // Убрал, т.к. startBalanceUpdates уже вызывает updateBalances() + } else if (!isAuth || !hasWallet) { + // Если пользователь вышел, отвязал кошелек, или не аутентифицирован + stopBalanceUpdates(); + // Сбрасываем балансы + tokenBalances.value = { eth: '0', bsc: '0', arbitrum: '0', polygon: '0' }; + } + }, + { immediate: true } // Запустить проверку сразу при инициализации + ); + + // Остановка интервала при размонтировании + onUnmounted(() => { + stopBalanceUpdates(); + }); + + return { + tokenBalances, + updateBalances, + startBalanceUpdates, // Можно не экспортировать, если управление полностью автоматическое + stopBalanceUpdates, // Можно не экспортировать + }; +} \ No newline at end of file diff --git a/frontend/src/utils/helpers.js b/frontend/src/utils/helpers.js new file mode 100644 index 0000000..146b38f --- /dev/null +++ b/frontend/src/utils/helpers.js @@ -0,0 +1,45 @@ +/** + * Генерирует уникальный ID + * @returns {string} - Уникальный ID + */ +export const generateUniqueId = () => { + return `${Date.now()}-${Math.random().toString(36).substr(2, 9)}`; +}; + +/** + * Сокращает адрес кошелька + * @param {string} address - Адрес кошелька + * @returns {string} - Сокращенный адрес + */ +export const truncateAddress = (address) => { + if (!address) return ''; + // Добавим проверку на длину, чтобы не было ошибок + if (address.length <= 10) return address; + return `${address.substring(0, 6)}...${address.substring(address.length - 4)}`; +}; + +/** + * Форматирует время в человекочитаемый вид + * @param {string | number | Date} timestamp - Метка времени + * @returns {string} - Форматированное время + */ +export const formatTime = (timestamp) => { + if (!timestamp) return ''; + try { + const date = new Date(timestamp); + if (isNaN(date.getTime())) { + console.warn('Invalid timestamp for formatTime:', timestamp); + return ''; + } + return date.toLocaleString([], { + year: 'numeric', + month: 'short', + day: 'numeric', + hour: '2-digit', + minute: '2-digit', + }); + } catch (error) { + console.error('Error formatting time:', error, timestamp); + return ''; + } +}; \ No newline at end of file diff --git a/frontend/src/utils/storage.js b/frontend/src/utils/storage.js new file mode 100644 index 0000000..c9c284b --- /dev/null +++ b/frontend/src/utils/storage.js @@ -0,0 +1,53 @@ +export const isLocalStorageAvailable = () => { + try { + const test = '__storage_test__'; + window.localStorage.setItem(test, test); + window.localStorage.removeItem(test); + return true; + } catch (e) { + console.error('localStorage is not available:', e); + return false; + } +}; + +export const getFromStorage = (key, defaultValue = null) => { + if (!isLocalStorageAvailable()) return defaultValue; + try { + const item = window.localStorage.getItem(key); + // Пытаемся распарсить JSON, если не получается - возвращаем как есть или defaultValue + try { + return item ? JSON.parse(item) : defaultValue; + } catch (e) { + return item || defaultValue; + } + } catch (e) { + console.error(`Error getting ${key} from localStorage:`, e); + return defaultValue; + } +}; + +export const setToStorage = (key, value) => { + if (!isLocalStorageAvailable()) return false; + try { + // Сериализуем объекты и массивы в JSON + const valueToStore = typeof value === 'object' || Array.isArray(value) + ? JSON.stringify(value) + : value; + window.localStorage.setItem(key, valueToStore); + return true; + } catch (e) { + console.error(`Error setting ${key} in localStorage:`, e); + return false; + } +}; + +export const removeFromStorage = (key) => { + if (!isLocalStorageAvailable()) return false; + try { + window.localStorage.removeItem(key); + return true; + } catch (e) { + console.error(`Error removing ${key} from localStorage:`, e); + return false; + } +}; \ No newline at end of file diff --git a/frontend/src/views/HomeView.vue b/frontend/src/views/HomeView.vue index af4e74a..daf7e79 100644 --- a/frontend/src/views/HomeView.vue +++ b/frontend/src/views/HomeView.vue @@ -23,7 +23,7 @@ + + +