diff --git a/backend/app.js b/backend/app.js index ebae5af..a3b2c24 100644 --- a/backend/app.js +++ b/backend/app.js @@ -11,6 +11,7 @@ const db = require('./db'); // Добавляем импорт db const aiAssistant = require('./services/ai-assistant'); // Добавляем импорт aiAssistant const fs = require('fs'); const path = require('path'); +const messagesRoutes = require('./routes/messages'); // Проверка и создание директорий для хранения данных контрактов const ensureDirectoriesExist = () => { @@ -77,7 +78,7 @@ app.use( 'http://127.0.0.1:5173', // Добавляем альтернативный origin ], credentials: true, - methods: ['GET', 'POST', 'PUT', 'DELETE', 'OPTIONS'], + methods: ['GET', 'POST', 'PUT', 'DELETE', 'PATCH', 'OPTIONS'], allowedHeaders: ['Content-Type', 'Authorization', 'Cookie'], }) ); @@ -163,6 +164,7 @@ app.use('/api/isic', isicRoutes); // Добавленное использова app.use('/api/geocoding', geocodingRoutes); // Добавленное использование роута app.use('/api/dle', dleRoutes); // Добавляем маршрут DLE app.use('/api/settings', settingsRoutes); // Добавляем маршрут настроек +app.use('/api/messages', messagesRoutes); const nonceStore = new Map(); // или любая другая реализация хранилища nonce diff --git a/backend/db.js b/backend/db.js index 5f306c1..5785645 100644 --- a/backend/db.js +++ b/backend/db.js @@ -97,10 +97,4 @@ async function saveGuestMessageToDatabase(message, language, guestId) { } // Экспортируем функции для работы с базой данных -module.exports = { - getPool, - getQuery, - reinitPoolFromDbSettings, - saveGuestMessageToDatabase, - setPoolChangeCallback, -}; +module.exports = { getQuery, pool, getPool, setPoolChangeCallback }; diff --git a/backend/db/migrations/026_add_preferred_language_to_users.sql b/backend/db/migrations/026_add_preferred_language_to_users.sql new file mode 100644 index 0000000..37c104b --- /dev/null +++ b/backend/db/migrations/026_add_preferred_language_to_users.sql @@ -0,0 +1,2 @@ +-- Добавление поля preferred_language для хранения языков пользователя (множественный выбор) +ALTER TABLE users ADD COLUMN preferred_language jsonb; \ No newline at end of file diff --git a/backend/logs/combined.log b/backend/logs/combined.log index 7d38af6..abdc70c 100644 --- a/backend/logs/combined.log +++ b/backend/logs/combined.log @@ -1,83 +1,664 @@ -{"level":"info","message":"Директория существует: /app/contracts-data","timestamp":"2025-05-28T11:14:31.805Z"} -{"level":"info","message":"Директория доступна для записи: /app/contracts-data","timestamp":"2025-05-28T11:14:31.808Z"} -{"level":"info","message":"Директория существует: /app/contracts-data/dles","timestamp":"2025-05-28T11:14:31.808Z"} -{"level":"info","message":"Директория доступна для записи: /app/contracts-data/dles","timestamp":"2025-05-28T11:14:31.810Z"} -{"level":"info","message":"Директория существует: /app/temp","timestamp":"2025-05-28T11:14:31.810Z"} -{"level":"info","message":"Директория доступна для записи: /app/temp","timestamp":"2025-05-28T11:14:31.811Z"} -{"level":"info","message":"Ethers version: 6.13.5","timestamp":"2025-05-28T11:14:32.459Z"} -{"level":"info","message":"[EmailBot] start() called","timestamp":"2025-05-28T11:14:32.469Z"} -{"host":"mail.hostland.ru","keepalive":{"forceNoop":true,"idleInterval":300000,"interval":10000},"level":"info","message":"[EmailBot] IMAP config:","password":"***","port":993,"timestamp":"2025-05-28T11:14:32.522Z","tls":true,"tlsOptions":{"rejectUnauthorized":false},"user":"info@hb3-accelerator.com"} -{"level":"info","message":"[EmailBot] IMAP connect attempt 1","timestamp":"2025-05-28T11:14:32.523Z"} -{"level":"info","message":"[EmailBot] IMAP connection ready","timestamp":"2025-05-28T11:14:37.608Z"} -{"level":"info","message":"[EmailBot] Email bot started and IMAP connection initiated","timestamp":"2025-05-28T11:14:37.612Z"} -{"level":"info","message":"No new messages found","timestamp":"2025-05-28T11:14:38.439Z"} -{"level":"info","message":"Директория существует: /app/contracts-data","timestamp":"2025-05-28T11:18:59.102Z"} -{"level":"info","message":"Директория доступна для записи: /app/contracts-data","timestamp":"2025-05-28T11:18:59.105Z"} -{"level":"info","message":"Директория существует: /app/contracts-data/dles","timestamp":"2025-05-28T11:18:59.106Z"} -{"level":"info","message":"Директория доступна для записи: /app/contracts-data/dles","timestamp":"2025-05-28T11:18:59.107Z"} -{"level":"info","message":"Директория существует: /app/temp","timestamp":"2025-05-28T11:18:59.108Z"} -{"level":"info","message":"Директория доступна для записи: /app/temp","timestamp":"2025-05-28T11:18:59.109Z"} -{"level":"info","message":"Ethers version: 6.13.5","timestamp":"2025-05-28T11:18:59.493Z"} -{"level":"info","message":"[EmailBot] start() called","timestamp":"2025-05-28T11:18:59.514Z"} -{"host":"mail.hostland.ru","keepalive":{"forceNoop":true,"idleInterval":300000,"interval":10000},"level":"info","message":"[EmailBot] IMAP config:","password":"***","port":993,"timestamp":"2025-05-28T11:18:59.627Z","tls":true,"tlsOptions":{"rejectUnauthorized":false},"user":"info@hb3-accelerator.com"} -{"level":"info","message":"[EmailBot] IMAP connect attempt 1","timestamp":"2025-05-28T11:18:59.628Z"} -{"level":"info","message":"[EmailBot] IMAP connection ready","timestamp":"2025-05-28T11:19:00.194Z"} -{"level":"info","message":"[EmailBot] Email bot started and IMAP connection initiated","timestamp":"2025-05-28T11:19:00.198Z"} -{"level":"info","message":"[IdentityService] No user found with identity email:avtarabanov@gmail.com","timestamp":"2025-05-28T11:19:01.087Z"} -{"level":"info","message":"[IdentityService] Saving identity for user 96: email:avtarabanov@gmail.com","timestamp":"2025-05-28T11:19:01.094Z"} -{"level":"info","message":"[IdentityService] Created new identity email:avtarabanov@gmail.com for user 96","timestamp":"2025-05-28T11:19:01.113Z"} -{"level":"info","message":"[getLinkedWallet] Called with userId: 96 (Type: number)","timestamp":"2025-05-28T11:19:01.113Z"} -{"level":"info","message":"[getLinkedWallet] DB query result for userId 96:","timestamp":"2025-05-28T11:19:01.115Z"} -{"level":"info","message":"[getLinkedWallet] Returning address: undefined for userId 96","timestamp":"2025-05-28T11:19:01.116Z"} -{"level":"info","message":"Email sent to avtarabanov@gmail.com","timestamp":"2025-05-28T11:19:42.428Z"} -{"level":"error","message":"[EmailBot] IMAP connection error: Timed out while authenticating with server","timestamp":"2025-05-28T11:19:59.653Z"} -{"level":"warn","message":"[EmailBot] IMAP reconnecting in 10 seconds (attempt 2)...","timestamp":"2025-05-28T11:19:59.654Z"} -{"level":"error","message":"IMAP connection error during check: Timed out while authenticating with server","timestamp":"2025-05-28T11:19:59.654Z"} -{"level":"error","message":"IMAP connection error during check: Timed out while authenticating with server","timestamp":"2025-05-28T11:19:59.654Z"} -{"level":"info","message":"[EmailBot] IMAP connect attempt 2","timestamp":"2025-05-28T11:20:09.668Z"} -{"level":"info","message":"[EmailBot] IMAP connection ready","timestamp":"2025-05-28T11:20:10.393Z"} -{"level":"info","message":"[EmailBot] Email bot started and IMAP connection initiated","timestamp":"2025-05-28T11:20:10.394Z"} -{"level":"info","message":"[IdentityService] Found user 96 with identity email:avtarabanov@gmail.com","timestamp":"2025-05-28T11:20:11.292Z"} -{"level":"info","message":"[getLinkedWallet] Called with userId: 96 (Type: number)","timestamp":"2025-05-28T11:20:11.293Z"} -{"level":"info","message":"[getLinkedWallet] DB query result for userId 96:","timestamp":"2025-05-28T11:20:11.295Z"} -{"level":"info","message":"[getLinkedWallet] Returning address: undefined for userId 96","timestamp":"2025-05-28T11:20:11.295Z"} -{"level":"info","message":"Email sent to avtarabanov@gmail.com","timestamp":"2025-05-28T11:20:17.273Z"} -{"level":"info","message":"[IdentityService] Found user 96 with identity email:avtarabanov@gmail.com","timestamp":"2025-05-28T11:20:50.149Z"} -{"level":"info","message":"[getLinkedWallet] Called with userId: 96 (Type: number)","timestamp":"2025-05-28T11:20:50.150Z"} -{"level":"info","message":"[getLinkedWallet] DB query result for userId 96:","timestamp":"2025-05-28T11:20:50.151Z"} -{"level":"info","message":"[getLinkedWallet] Returning address: undefined for userId 96","timestamp":"2025-05-28T11:20:50.152Z"} -{"level":"info","message":"Email sent to avtarabanov@gmail.com","timestamp":"2025-05-28T11:21:00.967Z"} -{"level":"info","message":"[IdentityService] Found user 96 with identity email:avtarabanov@gmail.com","timestamp":"2025-05-28T11:21:06.155Z"} -{"level":"info","message":"[getLinkedWallet] Called with userId: 96 (Type: number)","timestamp":"2025-05-28T11:21:06.155Z"} -{"level":"info","message":"[getLinkedWallet] DB query result for userId 96:","timestamp":"2025-05-28T11:21:06.157Z"} -{"level":"info","message":"[getLinkedWallet] Returning address: undefined for userId 96","timestamp":"2025-05-28T11:21:06.157Z"} -{"level":"info","message":"Email sent to avtarabanov@gmail.com","timestamp":"2025-05-28T11:21:11.991Z"} -{"level":"info","message":"[IdentityService] Found user 96 with identity email:avtarabanov@gmail.com","timestamp":"2025-05-28T11:21:45.098Z"} -{"level":"info","message":"[getLinkedWallet] Called with userId: 96 (Type: number)","timestamp":"2025-05-28T11:21:45.099Z"} -{"level":"info","message":"[getLinkedWallet] DB query result for userId 96:","timestamp":"2025-05-28T11:21:45.100Z"} -{"level":"info","message":"[getLinkedWallet] Returning address: undefined for userId 96","timestamp":"2025-05-28T11:21:45.101Z"} -{"level":"info","message":"Email sent to avtarabanov@gmail.com","timestamp":"2025-05-28T11:21:52.644Z"} -{"level":"info","message":"[IdentityService] Found user 96 with identity email:avtarabanov@gmail.com","timestamp":"2025-05-28T11:22:01.200Z"} -{"level":"info","message":"[getLinkedWallet] Called with userId: 96 (Type: number)","timestamp":"2025-05-28T11:22:01.200Z"} -{"level":"info","message":"[getLinkedWallet] DB query result for userId 96:","timestamp":"2025-05-28T11:22:01.202Z"} -{"level":"info","message":"[getLinkedWallet] Returning address: undefined for userId 96","timestamp":"2025-05-28T11:22:01.202Z"} -{"code":"EPROTOCOL","command":"CONN","level":"error","message":"Error sending email: Invalid greeting. response=421 4.7.0 smtp.hostland.ru Error: too many connections from 5.139.232.220: 421 4.7.0 smtp.hostland.ru Error: too many connections from 5.139.232.220","response":"421 4.7.0 smtp.hostland.ru Error: too many connections from 5.139.232.220","responseCode":421,"stack":"Error: Invalid greeting. response=421 4.7.0 smtp.hostland.ru Error: too many connections from 5.139.232.220: 421 4.7.0 smtp.hostland.ru Error: too many connections from 5.139.232.220\n at SMTPConnection._actionGreeting (/app/node_modules/nodemailer/lib/smtp-connection/index.js:1251:27)\n at SMTPConnection._processResponse (/app/node_modules/nodemailer/lib/smtp-connection/index.js:993:20)\n at SMTPConnection._onData (/app/node_modules/nodemailer/lib/smtp-connection/index.js:774:14)\n at SMTPConnection._onSocketData (/app/node_modules/nodemailer/lib/smtp-connection/index.js:195:44)\n at TLSSocket.emit (node:events:524:28)\n at addChunk (node:internal/streams/readable:561:12)\n at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)\n at Readable.push (node:internal/streams/readable:392:5)\n at TLSWrap.onStreamRead (node:internal/stream_base_commons:191:23)","timestamp":"2025-05-28T11:22:09.742Z"} -{"code":"EPROTOCOL","command":"CONN","level":"error","message":"Error processing incoming email: Invalid greeting. response=421 4.7.0 smtp.hostland.ru Error: too many connections from 5.139.232.220: 421 4.7.0 smtp.hostland.ru Error: too many connections from 5.139.232.220","response":"421 4.7.0 smtp.hostland.ru Error: too many connections from 5.139.232.220","responseCode":421,"stack":"Error: Invalid greeting. response=421 4.7.0 smtp.hostland.ru Error: too many connections from 5.139.232.220: 421 4.7.0 smtp.hostland.ru Error: too many connections from 5.139.232.220\n at SMTPConnection._actionGreeting (/app/node_modules/nodemailer/lib/smtp-connection/index.js:1251:27)\n at SMTPConnection._processResponse (/app/node_modules/nodemailer/lib/smtp-connection/index.js:993:20)\n at SMTPConnection._onData (/app/node_modules/nodemailer/lib/smtp-connection/index.js:774:14)\n at SMTPConnection._onSocketData (/app/node_modules/nodemailer/lib/smtp-connection/index.js:195:44)\n at TLSSocket.emit (node:events:524:28)\n at addChunk (node:internal/streams/readable:561:12)\n at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)\n at Readable.push (node:internal/streams/readable:392:5)\n at TLSWrap.onStreamRead (node:internal/stream_base_commons:191:23)","timestamp":"2025-05-28T11:22:09.743Z"} -{"level":"info","message":"[IdentityService] Found user 96 with identity email:avtarabanov@gmail.com","timestamp":"2025-05-28T11:22:40.095Z"} -{"level":"info","message":"[getLinkedWallet] Called with userId: 96 (Type: number)","timestamp":"2025-05-28T11:22:40.096Z"} -{"level":"info","message":"[getLinkedWallet] DB query result for userId 96:","timestamp":"2025-05-28T11:22:40.097Z"} -{"level":"info","message":"[getLinkedWallet] Returning address: undefined for userId 96","timestamp":"2025-05-28T11:22:40.097Z"} -{"code":"EPROTOCOL","command":"CONN","level":"error","message":"Error sending email: Invalid greeting. response=421 4.7.0 smtp.hostland.ru Error: too many connections from 5.139.232.220: 421 4.7.0 smtp.hostland.ru Error: too many connections from 5.139.232.220","response":"421 4.7.0 smtp.hostland.ru Error: too many connections from 5.139.232.220","responseCode":421,"stack":"Error: Invalid greeting. response=421 4.7.0 smtp.hostland.ru Error: too many connections from 5.139.232.220: 421 4.7.0 smtp.hostland.ru Error: too many connections from 5.139.232.220\n at SMTPConnection._actionGreeting (/app/node_modules/nodemailer/lib/smtp-connection/index.js:1251:27)\n at SMTPConnection._processResponse (/app/node_modules/nodemailer/lib/smtp-connection/index.js:993:20)\n at SMTPConnection._onData (/app/node_modules/nodemailer/lib/smtp-connection/index.js:774:14)\n at SMTPConnection._onSocketData (/app/node_modules/nodemailer/lib/smtp-connection/index.js:195:44)\n at TLSSocket.emit (node:events:524:28)\n at addChunk (node:internal/streams/readable:561:12)\n at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)\n at Readable.push (node:internal/streams/readable:392:5)\n at TLSWrap.onStreamRead (node:internal/stream_base_commons:191:23)","timestamp":"2025-05-28T11:22:51.094Z"} -{"code":"EPROTOCOL","command":"CONN","level":"error","message":"Error processing incoming email: Invalid greeting. response=421 4.7.0 smtp.hostland.ru Error: too many connections from 5.139.232.220: 421 4.7.0 smtp.hostland.ru Error: too many connections from 5.139.232.220","response":"421 4.7.0 smtp.hostland.ru Error: too many connections from 5.139.232.220","responseCode":421,"stack":"Error: Invalid greeting. response=421 4.7.0 smtp.hostland.ru Error: too many connections from 5.139.232.220: 421 4.7.0 smtp.hostland.ru Error: too many connections from 5.139.232.220\n at SMTPConnection._actionGreeting (/app/node_modules/nodemailer/lib/smtp-connection/index.js:1251:27)\n at SMTPConnection._processResponse (/app/node_modules/nodemailer/lib/smtp-connection/index.js:993:20)\n at SMTPConnection._onData (/app/node_modules/nodemailer/lib/smtp-connection/index.js:774:14)\n at SMTPConnection._onSocketData (/app/node_modules/nodemailer/lib/smtp-connection/index.js:195:44)\n at TLSSocket.emit (node:events:524:28)\n at addChunk (node:internal/streams/readable:561:12)\n at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)\n at Readable.push (node:internal/streams/readable:392:5)\n at TLSWrap.onStreamRead (node:internal/stream_base_commons:191:23)","timestamp":"2025-05-28T11:22:51.094Z"} -{"level":"info","message":"[IdentityService] Found user 96 with identity email:avtarabanov@gmail.com","timestamp":"2025-05-28T11:22:56.139Z"} -{"level":"info","message":"[getLinkedWallet] Called with userId: 96 (Type: number)","timestamp":"2025-05-28T11:22:56.140Z"} -{"level":"info","message":"[getLinkedWallet] DB query result for userId 96:","timestamp":"2025-05-28T11:22:56.141Z"} -{"level":"info","message":"[getLinkedWallet] Returning address: undefined for userId 96","timestamp":"2025-05-28T11:22:56.141Z"} -{"code":"EPROTOCOL","command":"CONN","level":"error","message":"Error sending email: Invalid greeting. response=421 4.7.0 smtp.hostland.ru Error: too many connections from 5.139.232.220: 421 4.7.0 smtp.hostland.ru Error: too many connections from 5.139.232.220","response":"421 4.7.0 smtp.hostland.ru Error: too many connections from 5.139.232.220","responseCode":421,"stack":"Error: Invalid greeting. response=421 4.7.0 smtp.hostland.ru Error: too many connections from 5.139.232.220: 421 4.7.0 smtp.hostland.ru Error: too many connections from 5.139.232.220\n at SMTPConnection._actionGreeting (/app/node_modules/nodemailer/lib/smtp-connection/index.js:1251:27)\n at SMTPConnection._processResponse (/app/node_modules/nodemailer/lib/smtp-connection/index.js:993:20)\n at SMTPConnection._onData (/app/node_modules/nodemailer/lib/smtp-connection/index.js:774:14)\n at SMTPConnection._onSocketData (/app/node_modules/nodemailer/lib/smtp-connection/index.js:195:44)\n at TLSSocket.emit (node:events:524:28)\n at addChunk (node:internal/streams/readable:561:12)\n at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)\n at Readable.push (node:internal/streams/readable:392:5)\n at TLSWrap.onStreamRead (node:internal/stream_base_commons:191:23)","timestamp":"2025-05-28T11:23:00.237Z"} -{"code":"EPROTOCOL","command":"CONN","level":"error","message":"Error processing incoming email: Invalid greeting. response=421 4.7.0 smtp.hostland.ru Error: too many connections from 5.139.232.220: 421 4.7.0 smtp.hostland.ru Error: too many connections from 5.139.232.220","response":"421 4.7.0 smtp.hostland.ru Error: too many connections from 5.139.232.220","responseCode":421,"stack":"Error: Invalid greeting. response=421 4.7.0 smtp.hostland.ru Error: too many connections from 5.139.232.220: 421 4.7.0 smtp.hostland.ru Error: too many connections from 5.139.232.220\n at SMTPConnection._actionGreeting (/app/node_modules/nodemailer/lib/smtp-connection/index.js:1251:27)\n at SMTPConnection._processResponse (/app/node_modules/nodemailer/lib/smtp-connection/index.js:993:20)\n at SMTPConnection._onData (/app/node_modules/nodemailer/lib/smtp-connection/index.js:774:14)\n at SMTPConnection._onSocketData (/app/node_modules/nodemailer/lib/smtp-connection/index.js:195:44)\n at TLSSocket.emit (node:events:524:28)\n at addChunk (node:internal/streams/readable:561:12)\n at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)\n at Readable.push (node:internal/streams/readable:392:5)\n at TLSWrap.onStreamRead (node:internal/stream_base_commons:191:23)","timestamp":"2025-05-28T11:23:00.237Z"} -{"level":"info","message":"GET /api/auth/check","timestamp":"2025-05-28T11:23:24.639Z"} -{"level":"info","message":"GET /api/auth/check","timestamp":"2025-05-28T11:23:24.661Z"} -{"level":"info","message":"GET /api/auth/check","timestamp":"2025-05-28T11:23:24.673Z"} -{"level":"info","message":"GET /api/auth/check","timestamp":"2025-05-28T11:23:24.682Z"} -{"level":"info","message":"GET /api/auth/check","timestamp":"2025-05-28T11:23:24.693Z"} -{"level":"info","message":"GET /api/auth/check","timestamp":"2025-05-28T11:23:24.704Z"} +{"level":"info","message":"No new messages found","timestamp":"2025-05-28T13:02:07.765Z"} +{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-05-28T13:02:13.313Z"} +{"level":"info","message":"[IdentityService] Found 3 identities for user 1","timestamp":"2025-05-28T13:02:13.318Z"} +{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-05-28T13:02:13.337Z"} +{"level":"info","message":"[IdentityService] Found 3 identities for user 1","timestamp":"2025-05-28T13:02:13.339Z"} +{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-05-28T13:02:13.350Z"} +{"level":"info","message":"[IdentityService] Found 3 identities for user 1","timestamp":"2025-05-28T13:02:13.356Z"} +{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-05-28T13:02:13.370Z"} +{"level":"info","message":"[IdentityService] Found 3 identities for user 1","timestamp":"2025-05-28T13:02:13.374Z"} +{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-05-28T13:02:13.388Z"} +{"level":"info","message":"[IdentityService] Found 3 identities for user 1","timestamp":"2025-05-28T13:02:13.391Z"} +{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-05-28T13:02:13.407Z"} +{"level":"info","message":"[IdentityService] Found 3 identities for user 1","timestamp":"2025-05-28T13:02:13.411Z"} +{"level":"info","message":"PATCH /api/users/13","timestamp":"2025-05-28T13:02:23.168Z"} +{"level":"info","message":"PATCH /api/users/13","timestamp":"2025-05-28T13:02:27.166Z"} +{"level":"info","message":"PATCH /api/users/13","timestamp":"2025-05-28T13:02:29.854Z"} +{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-05-28T13:02:43.540Z"} +{"level":"info","message":"[IdentityService] Found 3 identities for user 1","timestamp":"2025-05-28T13:02:43.545Z"} +{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-05-28T13:02:43.560Z"} +{"level":"info","message":"[IdentityService] Found 3 identities for user 1","timestamp":"2025-05-28T13:02:43.563Z"} +{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-05-28T13:02:43.573Z"} +{"level":"info","message":"[IdentityService] Found 3 identities for user 1","timestamp":"2025-05-28T13:02:43.576Z"} +{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-05-28T13:02:43.591Z"} +{"level":"info","message":"[IdentityService] Found 3 identities for user 1","timestamp":"2025-05-28T13:02:43.597Z"} +{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-05-28T13:02:43.614Z"} +{"level":"info","message":"[IdentityService] Found 3 identities for user 1","timestamp":"2025-05-28T13:02:43.617Z"} +{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-05-28T13:02:43.636Z"} +{"level":"info","message":"[IdentityService] Found 3 identities for user 1","timestamp":"2025-05-28T13:02:43.639Z"} +{"level":"info","message":"No new messages found","timestamp":"2025-05-28T13:02:53.678Z"} +{"level":"error","message":"[EmailBot] IMAP connection error: Timed out while authenticating with server","timestamp":"2025-05-28T13:03:06.859Z"} +{"level":"warn","message":"[EmailBot] IMAP reconnecting in 10 seconds (attempt 3)...","timestamp":"2025-05-28T13:03:06.860Z"} +{"level":"error","message":"IMAP connection error during check: Timed out while authenticating with server","timestamp":"2025-05-28T13:03:06.860Z"} +{"level":"error","message":"IMAP connection error during check: Timed out while authenticating with server","timestamp":"2025-05-28T13:03:06.860Z"} +{"level":"error","message":"IMAP connection error during check: Timed out while authenticating with server","timestamp":"2025-05-28T13:03:06.860Z"} +{"level":"error","message":"IMAP connection error during check: Timed out while authenticating with server","timestamp":"2025-05-28T13:03:06.861Z"} +{"level":"error","message":"IMAP connection error during check: Timed out while authenticating with server","timestamp":"2025-05-28T13:03:06.861Z"} +{"level":"error","message":"IMAP connection error during check: Timed out while authenticating with server","timestamp":"2025-05-28T13:03:06.861Z"} +{"level":"error","message":"IMAP connection error during check: Timed out while authenticating with server","timestamp":"2025-05-28T13:03:06.861Z"} +{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-05-28T13:03:13.521Z"} +{"level":"info","message":"[IdentityService] Found 3 identities for user 1","timestamp":"2025-05-28T13:03:13.531Z"} +{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-05-28T13:03:13.557Z"} +{"level":"info","message":"[IdentityService] Found 3 identities for user 1","timestamp":"2025-05-28T13:03:13.560Z"} +{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-05-28T13:03:13.593Z"} +{"level":"info","message":"[IdentityService] Found 3 identities for user 1","timestamp":"2025-05-28T13:03:13.598Z"} +{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-05-28T13:03:13.634Z"} +{"level":"info","message":"[IdentityService] Found 3 identities for user 1","timestamp":"2025-05-28T13:03:13.642Z"} +{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-05-28T13:03:13.660Z"} +{"level":"info","message":"[IdentityService] Found 3 identities for user 1","timestamp":"2025-05-28T13:03:13.665Z"} +{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-05-28T13:03:13.683Z"} +{"level":"info","message":"[IdentityService] Found 3 identities for user 1","timestamp":"2025-05-28T13:03:13.685Z"} +{"level":"info","message":"[EmailBot] IMAP connect attempt 3","timestamp":"2025-05-28T13:03:16.868Z"} +{"level":"info","message":"[EmailBot] IMAP connection ready","timestamp":"2025-05-28T13:03:17.471Z"} +{"level":"info","message":"[EmailBot] Email bot started and IMAP connection initiated","timestamp":"2025-05-28T13:03:17.473Z"} +{"level":"info","message":"No new messages found","timestamp":"2025-05-28T13:03:23.798Z"} +{"level":"info","message":"No new messages found","timestamp":"2025-05-28T13:03:48.341Z"} +{"level":"info","message":"No new messages found","timestamp":"2025-05-28T13:03:57.375Z"} +{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-05-28T13:04:04.340Z"} +{"level":"info","message":"[IdentityService] Found 3 identities for user 1","timestamp":"2025-05-28T13:04:04.362Z"} +{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-05-28T13:04:04.379Z"} +{"level":"info","message":"[IdentityService] Found 3 identities for user 1","timestamp":"2025-05-28T13:04:04.383Z"} +{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-05-28T13:04:04.402Z"} +{"level":"info","message":"[IdentityService] Found 3 identities for user 1","timestamp":"2025-05-28T13:04:04.409Z"} +{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-05-28T13:04:04.435Z"} +{"level":"info","message":"[IdentityService] Found 3 identities for user 1","timestamp":"2025-05-28T13:04:04.438Z"} +{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-05-28T13:04:04.457Z"} +{"level":"info","message":"[IdentityService] Found 3 identities for user 1","timestamp":"2025-05-28T13:04:04.460Z"} +{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-05-28T13:04:04.482Z"} +{"level":"info","message":"[IdentityService] Found 3 identities for user 1","timestamp":"2025-05-28T13:04:04.485Z"} +{"level":"info","message":"PATCH /api/users/13","timestamp":"2025-05-28T13:04:06.073Z"} +{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-05-28T13:04:13.965Z"} +{"level":"info","message":"[IdentityService] Found 3 identities for user 1","timestamp":"2025-05-28T13:04:13.967Z"} +{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-05-28T13:04:13.987Z"} +{"level":"info","message":"[IdentityService] Found 3 identities for user 1","timestamp":"2025-05-28T13:04:13.990Z"} +{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-05-28T13:04:14.010Z"} +{"level":"info","message":"[IdentityService] Found 3 identities for user 1","timestamp":"2025-05-28T13:04:14.014Z"} +{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-05-28T13:04:14.028Z"} +{"level":"info","message":"[IdentityService] Found 3 identities for user 1","timestamp":"2025-05-28T13:04:14.032Z"} +{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-05-28T13:04:14.053Z"} +{"level":"info","message":"[IdentityService] Found 3 identities for user 1","timestamp":"2025-05-28T13:04:14.063Z"} +{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-05-28T13:04:14.079Z"} +{"level":"info","message":"[IdentityService] Found 3 identities for user 1","timestamp":"2025-05-28T13:04:14.083Z"} +{"level":"error","message":"[EmailBot] IMAP connection error: Timed out while authenticating with server","timestamp":"2025-05-28T13:04:17.747Z"} +{"level":"error","message":"IMAP connection error during check: Timed out while authenticating with server","timestamp":"2025-05-28T13:04:17.747Z"} +{"level":"error","message":"IMAP connection error during check: Timed out while authenticating with server","timestamp":"2025-05-28T13:04:17.748Z"} +{"level":"error","message":"IMAP connection error during check: Timed out while authenticating with server","timestamp":"2025-05-28T13:04:17.748Z"} +{"level":"error","message":"IMAP connection error during check: Timed out while authenticating with server","timestamp":"2025-05-28T13:04:17.748Z"} +{"level":"error","message":"IMAP connection error during check: Timed out while authenticating with server","timestamp":"2025-05-28T13:04:43.277Z"} +{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-05-28T13:04:44.204Z"} +{"level":"info","message":"[IdentityService] Found 3 identities for user 1","timestamp":"2025-05-28T13:04:44.208Z"} +{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-05-28T13:04:44.228Z"} +{"level":"info","message":"[IdentityService] Found 3 identities for user 1","timestamp":"2025-05-28T13:04:44.231Z"} +{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-05-28T13:04:44.247Z"} +{"level":"info","message":"[IdentityService] Found 3 identities for user 1","timestamp":"2025-05-28T13:04:44.253Z"} +{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-05-28T13:04:44.267Z"} +{"level":"info","message":"[IdentityService] Found 3 identities for user 1","timestamp":"2025-05-28T13:04:44.269Z"} +{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-05-28T13:04:44.284Z"} +{"level":"info","message":"[IdentityService] Found 3 identities for user 1","timestamp":"2025-05-28T13:04:44.288Z"} +{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-05-28T13:04:44.312Z"} +{"level":"info","message":"[IdentityService] Found 3 identities for user 1","timestamp":"2025-05-28T13:04:44.317Z"} +{"level":"info","message":"No new messages found","timestamp":"2025-05-28T13:04:56.674Z"} +{"level":"info","message":"No new messages found","timestamp":"2025-05-28T13:04:56.745Z"} +{"level":"info","message":"No new messages found","timestamp":"2025-05-28T13:04:56.784Z"} +{"level":"error","message":"IMAP connection error during check: Timed out while authenticating with server","timestamp":"2025-05-28T13:05:12.662Z"} +{"level":"error","message":"IMAP connection error during check: Timed out while authenticating with server","timestamp":"2025-05-28T13:05:12.663Z"} +{"level":"info","message":"No new messages found","timestamp":"2025-05-28T13:05:38.648Z"} +{"level":"info","message":"No new messages found","timestamp":"2025-05-28T13:05:38.697Z"} +{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-05-28T13:05:45.752Z"} +{"level":"info","message":"[IdentityService] Found 3 identities for user 1","timestamp":"2025-05-28T13:05:45.761Z"} +{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-05-28T13:05:45.775Z"} +{"level":"info","message":"[IdentityService] Found 3 identities for user 1","timestamp":"2025-05-28T13:05:45.777Z"} +{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-05-28T13:05:45.798Z"} +{"level":"info","message":"[IdentityService] Found 3 identities for user 1","timestamp":"2025-05-28T13:05:45.809Z"} +{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-05-28T13:05:45.847Z"} +{"level":"info","message":"[IdentityService] Found 3 identities for user 1","timestamp":"2025-05-28T13:05:45.850Z"} +{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-05-28T13:05:45.872Z"} +{"level":"info","message":"[IdentityService] Found 3 identities for user 1","timestamp":"2025-05-28T13:05:45.874Z"} +{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-05-28T13:05:45.892Z"} +{"level":"info","message":"[IdentityService] Found 3 identities for user 1","timestamp":"2025-05-28T13:05:45.894Z"} +{"level":"info","message":"No new messages found","timestamp":"2025-05-28T13:05:51.635Z"} +{"level":"error","message":"IMAP connection error during check: Timed out while authenticating with server","timestamp":"2025-05-28T13:06:07.601Z"} +{"level":"error","message":"IMAP connection error during check: Timed out while authenticating with server","timestamp":"2025-05-28T13:06:07.608Z"} +{"level":"error","message":"IMAP connection error during check: Timed out while authenticating with server","timestamp":"2025-05-28T13:06:07.609Z"} +{"level":"info","message":"No new messages found","timestamp":"2025-05-28T13:06:32.967Z"} +{"level":"info","message":"No new messages found","timestamp":"2025-05-28T13:06:33.045Z"} +{"level":"info","message":"No new messages found","timestamp":"2025-05-28T13:06:44.699Z"} +{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-05-28T13:06:44.714Z"} +{"level":"info","message":"[IdentityService] Found 3 identities for user 1","timestamp":"2025-05-28T13:06:44.717Z"} +{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-05-28T13:06:44.744Z"} +{"level":"info","message":"[IdentityService] Found 3 identities for user 1","timestamp":"2025-05-28T13:06:44.748Z"} +{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-05-28T13:06:44.761Z"} +{"level":"info","message":"[IdentityService] Found 3 identities for user 1","timestamp":"2025-05-28T13:06:44.764Z"} +{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-05-28T13:06:44.791Z"} +{"level":"info","message":"[IdentityService] Found 3 identities for user 1","timestamp":"2025-05-28T13:06:44.793Z"} +{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-05-28T13:06:44.807Z"} +{"level":"info","message":"[IdentityService] Found 3 identities for user 1","timestamp":"2025-05-28T13:06:44.810Z"} +{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-05-28T13:06:44.821Z"} +{"level":"info","message":"[IdentityService] Found 3 identities for user 1","timestamp":"2025-05-28T13:06:44.823Z"} +{"level":"info","message":"No new messages found","timestamp":"2025-05-28T13:06:58.150Z"} +{"level":"info","message":"No new messages found","timestamp":"2025-05-28T13:07:23.712Z"} +{"level":"error","message":"IMAP connection error during check: Timed out while authenticating with server","timestamp":"2025-05-28T13:07:41.568Z"} +{"level":"error","message":"IMAP connection error during check: Timed out while authenticating with server","timestamp":"2025-05-28T13:07:41.568Z"} +{"level":"error","message":"IMAP connection error during check: Timed out while authenticating with server","timestamp":"2025-05-28T13:07:41.569Z"} +{"level":"error","message":"IMAP connection error during check: Timed out while authenticating with server","timestamp":"2025-05-28T13:07:41.569Z"} +{"level":"error","message":"IMAP connection error during check: Timed out while authenticating with server","timestamp":"2025-05-28T13:07:41.569Z"} +{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-05-28T13:07:46.782Z"} +{"level":"info","message":"[IdentityService] Found 3 identities for user 1","timestamp":"2025-05-28T13:07:46.789Z"} +{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-05-28T13:07:46.822Z"} +{"level":"info","message":"[IdentityService] Found 3 identities for user 1","timestamp":"2025-05-28T13:07:46.830Z"} +{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-05-28T13:07:46.845Z"} +{"level":"info","message":"[IdentityService] Found 3 identities for user 1","timestamp":"2025-05-28T13:07:46.848Z"} +{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-05-28T13:07:46.861Z"} +{"level":"info","message":"[IdentityService] Found 3 identities for user 1","timestamp":"2025-05-28T13:07:46.863Z"} +{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-05-28T13:07:46.881Z"} +{"level":"info","message":"[IdentityService] Found 3 identities for user 1","timestamp":"2025-05-28T13:07:46.884Z"} +{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-05-28T13:07:46.894Z"} +{"level":"info","message":"[IdentityService] Found 3 identities for user 1","timestamp":"2025-05-28T13:07:46.899Z"} +{"level":"info","message":"No new messages found","timestamp":"2025-05-28T13:07:53.443Z"} +{"level":"info","message":"No new messages found","timestamp":"2025-05-28T13:07:53.491Z"} +{"level":"info","message":"No new messages found","timestamp":"2025-05-28T13:08:22.751Z"} +{"level":"info","message":"No new messages found","timestamp":"2025-05-28T13:08:36.453Z"} +{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-05-28T13:08:47.821Z"} +{"level":"info","message":"[IdentityService] Found 3 identities for user 1","timestamp":"2025-05-28T13:08:47.827Z"} +{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-05-28T13:08:47.852Z"} +{"level":"info","message":"[IdentityService] Found 3 identities for user 1","timestamp":"2025-05-28T13:08:47.869Z"} +{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-05-28T13:08:47.887Z"} +{"level":"info","message":"[IdentityService] Found 3 identities for user 1","timestamp":"2025-05-28T13:08:47.891Z"} +{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-05-28T13:08:47.909Z"} +{"level":"info","message":"[IdentityService] Found 3 identities for user 1","timestamp":"2025-05-28T13:08:47.912Z"} +{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-05-28T13:08:47.933Z"} +{"level":"info","message":"[IdentityService] Found 3 identities for user 1","timestamp":"2025-05-28T13:08:47.935Z"} +{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-05-28T13:08:47.953Z"} +{"level":"info","message":"[IdentityService] Found 3 identities for user 1","timestamp":"2025-05-28T13:08:47.957Z"} +{"level":"info","message":"No new messages found","timestamp":"2025-05-28T13:08:52.415Z"} +{"level":"info","message":"Директория существует: /app/contracts-data","timestamp":"2025-05-28T13:09:08.491Z"} +{"level":"info","message":"Директория доступна для записи: /app/contracts-data","timestamp":"2025-05-28T13:09:08.557Z"} +{"level":"info","message":"Директория существует: /app/contracts-data/dles","timestamp":"2025-05-28T13:09:08.558Z"} +{"level":"info","message":"Директория доступна для записи: /app/contracts-data/dles","timestamp":"2025-05-28T13:09:08.564Z"} +{"level":"info","message":"Директория существует: /app/temp","timestamp":"2025-05-28T13:09:08.565Z"} +{"level":"info","message":"Директория доступна для записи: /app/temp","timestamp":"2025-05-28T13:09:08.567Z"} +{"level":"info","message":"Ethers version: 6.13.5","timestamp":"2025-05-28T13:09:13.816Z"} +{"level":"info","message":"[EmailBot] start() called","timestamp":"2025-05-28T13:09:13.842Z"} +{"host":"mail.hostland.ru","keepalive":{"forceNoop":true,"idleInterval":300000,"interval":10000},"level":"info","message":"[EmailBot] IMAP config:","password":"***","port":993,"timestamp":"2025-05-28T13:09:13.955Z","tls":true,"tlsOptions":{"rejectUnauthorized":false},"user":"info@hb3-accelerator.com"} +{"level":"info","message":"[EmailBot] IMAP connect attempt 1","timestamp":"2025-05-28T13:09:13.958Z"} +{"level":"info","message":"[EmailBot] IMAP connection ready","timestamp":"2025-05-28T13:09:19.185Z"} +{"level":"info","message":"[EmailBot] Email bot started and IMAP connection initiated","timestamp":"2025-05-28T13:09:19.190Z"} +{"level":"info","message":"No new messages found","timestamp":"2025-05-28T13:09:24.232Z"} +{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-05-28T13:09:49.791Z"} +{"level":"info","message":"[IdentityService] Found 3 identities for user 1","timestamp":"2025-05-28T13:09:49.800Z"} +{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-05-28T13:09:50.292Z"} +{"level":"info","message":"[IdentityService] Found 3 identities for user 1","timestamp":"2025-05-28T13:09:50.296Z"} +{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-05-28T13:09:50.373Z"} +{"level":"info","message":"[IdentityService] Found 3 identities for user 1","timestamp":"2025-05-28T13:09:50.376Z"} +{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-05-28T13:09:50.402Z"} +{"level":"info","message":"[IdentityService] Found 3 identities for user 1","timestamp":"2025-05-28T13:09:50.417Z"} +{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-05-28T13:09:50.440Z"} +{"level":"info","message":"[IdentityService] Found 3 identities for user 1","timestamp":"2025-05-28T13:09:50.442Z"} +{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-05-28T13:09:50.458Z"} +{"level":"info","message":"[IdentityService] Found 3 identities for user 1","timestamp":"2025-05-28T13:09:50.460Z"} +{"level":"info","message":"No new messages found","timestamp":"2025-05-28T13:10:15.881Z"} +{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-05-28T13:10:54.211Z"} +{"level":"info","message":"[IdentityService] Found 3 identities for user 1","timestamp":"2025-05-28T13:10:54.216Z"} +{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-05-28T13:10:54.234Z"} +{"level":"info","message":"[IdentityService] Found 3 identities for user 1","timestamp":"2025-05-28T13:10:54.237Z"} +{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-05-28T13:10:54.251Z"} +{"level":"info","message":"[IdentityService] Found 3 identities for user 1","timestamp":"2025-05-28T13:10:54.254Z"} +{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-05-28T13:10:54.269Z"} +{"level":"info","message":"[IdentityService] Found 3 identities for user 1","timestamp":"2025-05-28T13:10:54.273Z"} +{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-05-28T13:10:54.286Z"} +{"level":"info","message":"[IdentityService] Found 3 identities for user 1","timestamp":"2025-05-28T13:10:54.289Z"} +{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-05-28T13:10:54.310Z"} +{"level":"info","message":"[IdentityService] Found 3 identities for user 1","timestamp":"2025-05-28T13:10:54.314Z"} +{"level":"info","message":"No new messages found","timestamp":"2025-05-28T13:11:09.745Z"} +{"level":"info","message":"Executing UP migration from 026_add_preferred_language_to_users.sql...","timestamp":"2025-05-28T13:11:42.195Z"} +{"level":"info","message":"Migration 026_add_preferred_language_to_users.sql executed successfully","timestamp":"2025-05-28T13:11:42.217Z"} +{"level":"info","message":"Function link_guest_messages.sql executed successfully","timestamp":"2025-05-28T13:11:42.971Z"} +{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-05-28T13:11:49.604Z"} +{"level":"info","message":"[IdentityService] Found 3 identities for user 1","timestamp":"2025-05-28T13:11:49.608Z"} +{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-05-28T13:11:49.619Z"} +{"level":"info","message":"[IdentityService] Found 3 identities for user 1","timestamp":"2025-05-28T13:11:49.621Z"} +{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-05-28T13:11:51.449Z"} +{"level":"info","message":"[IdentityService] Found 3 identities for user 1","timestamp":"2025-05-28T13:11:51.470Z"} +{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-05-28T13:11:51.495Z"} +{"level":"info","message":"[IdentityService] Found 3 identities for user 1","timestamp":"2025-05-28T13:11:51.497Z"} +{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-05-28T13:11:51.508Z"} +{"level":"info","message":"[IdentityService] Found 3 identities for user 1","timestamp":"2025-05-28T13:11:51.510Z"} +{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-05-28T13:11:51.520Z"} +{"level":"info","message":"[IdentityService] Found 3 identities for user 1","timestamp":"2025-05-28T13:11:51.522Z"} +{"level":"info","message":"Директория существует: /app/contracts-data","timestamp":"2025-05-28T13:12:00.418Z"} +{"level":"info","message":"Директория доступна для записи: /app/contracts-data","timestamp":"2025-05-28T13:12:00.423Z"} +{"level":"info","message":"Директория существует: /app/contracts-data/dles","timestamp":"2025-05-28T13:12:00.424Z"} +{"level":"info","message":"Директория доступна для записи: /app/contracts-data/dles","timestamp":"2025-05-28T13:12:00.426Z"} +{"level":"info","message":"Директория существует: /app/temp","timestamp":"2025-05-28T13:12:00.427Z"} +{"level":"info","message":"Директория доступна для записи: /app/temp","timestamp":"2025-05-28T13:12:00.429Z"} +{"level":"info","message":"Ethers version: 6.13.5","timestamp":"2025-05-28T13:12:07.330Z"} +{"level":"info","message":"[EmailBot] start() called","timestamp":"2025-05-28T13:12:07.358Z"} +{"host":"mail.hostland.ru","keepalive":{"forceNoop":true,"idleInterval":300000,"interval":10000},"level":"info","message":"[EmailBot] IMAP config:","password":"***","port":993,"timestamp":"2025-05-28T13:12:07.447Z","tls":true,"tlsOptions":{"rejectUnauthorized":false},"user":"info@hb3-accelerator.com"} +{"level":"info","message":"[EmailBot] IMAP connect attempt 1","timestamp":"2025-05-28T13:12:07.452Z"} +{"level":"error","message":"[EmailBot] IMAP connection error: Timed out while authenticating with server","timestamp":"2025-05-28T13:12:13.523Z"} +{"level":"warn","message":"[EmailBot] IMAP reconnecting in 10 seconds (attempt 2)...","timestamp":"2025-05-28T13:12:13.524Z"} +{"level":"info","message":"GET /api/auth/check","timestamp":"2025-05-28T13:12:13.901Z"} +{"level":"info","message":"[IdentityService] Found 3 identities for user 1","timestamp":"2025-05-28T13:12:13.908Z"} +{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-05-28T13:12:18.961Z"} +{"level":"info","message":"[IdentityService] Found 3 identities for user 1","timestamp":"2025-05-28T13:12:18.969Z"} +{"level":"info","message":"GET /api/auth/check","timestamp":"2025-05-28T13:12:19.012Z"} +{"level":"info","message":"[IdentityService] Found 3 identities for user 1","timestamp":"2025-05-28T13:12:19.014Z"} +{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-05-28T13:12:19.052Z"} +{"level":"info","message":"[IdentityService] Found 3 identities for user 1","timestamp":"2025-05-28T13:12:19.056Z"} +{"level":"info","message":"GET /api/tokens/balances?address=0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-05-28T13:12:19.088Z"} +{"level":"info","message":"Fetching token balances for address: 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-05-28T13:12:19.090Z"} +{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-05-28T13:12:19.115Z"} +{"level":"info","message":"[IdentityService] Found 3 identities for user 1","timestamp":"2025-05-28T13:12:19.126Z"} +{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-05-28T13:12:19.256Z"} +{"level":"info","message":"[IdentityService] Found 3 identities for user 1","timestamp":"2025-05-28T13:12:19.259Z"} +{"level":"info","message":"GET /api/auth/check","timestamp":"2025-05-28T13:12:19.626Z"} +{"level":"info","message":"[IdentityService] Found 3 identities for user 1","timestamp":"2025-05-28T13:12:19.629Z"} +{"level":"info","message":"GET /api/auth/check","timestamp":"2025-05-28T13:12:19.653Z"} +{"level":"info","message":"[IdentityService] Found 3 identities for user 1","timestamp":"2025-05-28T13:12:19.669Z"} +{"level":"info","message":"GET /api/dle","timestamp":"2025-05-28T13:12:19.692Z"} +{"level":"info","message":"GET /api/auth/check","timestamp":"2025-05-28T13:12:19.733Z"} +{"level":"info","message":"[IdentityService] Found 3 identities for user 1","timestamp":"2025-05-28T13:12:19.744Z"} +{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-05-28T13:12:19.827Z"} +{"level":"info","message":"GET /api/auth/check","timestamp":"2025-05-28T13:12:19.834Z"} +{"level":"info","message":"[IdentityService] Found 3 identities for user 1","timestamp":"2025-05-28T13:12:19.837Z"} +{"level":"info","message":"[IdentityService] Found 3 identities for user 1","timestamp":"2025-05-28T13:12:19.841Z"} +{"level":"info","message":"GET /api/auth/check","timestamp":"2025-05-28T13:12:19.889Z"} +{"level":"info","message":"[IdentityService] Found 3 identities for user 1","timestamp":"2025-05-28T13:12:19.895Z"} +{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-05-28T13:12:20.794Z"} +{"level":"info","message":"[IdentityService] Found 3 identities for user 1","timestamp":"2025-05-28T13:12:20.803Z"} +{"level":"info","message":"GET /api/auth/check","timestamp":"2025-05-28T13:12:20.810Z"} +{"level":"info","message":"[IdentityService] Found 3 identities for user 1","timestamp":"2025-05-28T13:12:20.813Z"} +{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-05-28T13:12:20.831Z"} +{"level":"info","message":"[IdentityService] Found 3 identities for user 1","timestamp":"2025-05-28T13:12:20.835Z"} +{"level":"info","message":"GET /api/auth/check","timestamp":"2025-05-28T13:12:20.839Z"} +{"level":"info","message":"[IdentityService] Found 3 identities for user 1","timestamp":"2025-05-28T13:12:20.842Z"} +{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-05-28T13:12:20.873Z"} +{"level":"info","message":"[IdentityService] Found 3 identities for user 1","timestamp":"2025-05-28T13:12:20.878Z"} +{"level":"info","message":"GET /api/auth/check","timestamp":"2025-05-28T13:12:20.888Z"} +{"level":"info","message":"[IdentityService] Found 3 identities for user 1","timestamp":"2025-05-28T13:12:20.890Z"} +{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-05-28T13:12:20.905Z"} +{"level":"info","message":"[IdentityService] Found 3 identities for user 1","timestamp":"2025-05-28T13:12:20.909Z"} +{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-05-28T13:12:20.924Z"} +{"level":"info","message":"GET /api/auth/check","timestamp":"2025-05-28T13:12:20.929Z"} +{"level":"info","message":"[IdentityService] Found 3 identities for user 1","timestamp":"2025-05-28T13:12:20.932Z"} +{"level":"info","message":"[IdentityService] Found 3 identities for user 1","timestamp":"2025-05-28T13:12:20.935Z"} +{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-05-28T13:12:20.947Z"} +{"level":"info","message":"[IdentityService] Found 3 identities for user 1","timestamp":"2025-05-28T13:12:20.955Z"} +{"level":"info","message":"GET /api/auth/check","timestamp":"2025-05-28T13:12:20.963Z"} +{"level":"info","message":"[IdentityService] Found 3 identities for user 1","timestamp":"2025-05-28T13:12:20.974Z"} +{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-05-28T13:12:20.993Z"} +{"level":"info","message":"[IdentityService] Found 3 identities for user 1","timestamp":"2025-05-28T13:12:20.996Z"} +{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-05-28T13:12:21.016Z"} +{"level":"info","message":"[IdentityService] Found 3 identities for user 1","timestamp":"2025-05-28T13:12:21.021Z"} +{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-05-28T13:12:21.040Z"} +{"level":"info","message":"[IdentityService] Found 3 identities for user 1","timestamp":"2025-05-28T13:12:21.042Z"} +{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-05-28T13:12:21.061Z"} +{"level":"info","message":"[IdentityService] Found 3 identities for user 1","timestamp":"2025-05-28T13:12:21.068Z"} +{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-05-28T13:12:21.085Z"} +{"level":"info","message":"[IdentityService] Found 3 identities for user 1","timestamp":"2025-05-28T13:12:21.087Z"} +{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-05-28T13:12:21.103Z"} +{"level":"info","message":"[IdentityService] Found 3 identities for user 1","timestamp":"2025-05-28T13:12:21.107Z"} +{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-05-28T13:12:21.127Z"} +{"level":"info","message":"[IdentityService] Found 3 identities for user 1","timestamp":"2025-05-28T13:12:21.129Z"} +{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-05-28T13:12:21.145Z"} +{"level":"info","message":"[IdentityService] Found 3 identities for user 1","timestamp":"2025-05-28T13:12:21.148Z"} +{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-05-28T13:12:21.174Z"} +{"level":"info","message":"[IdentityService] Found 3 identities for user 1","timestamp":"2025-05-28T13:12:21.178Z"} +{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-05-28T13:12:21.196Z"} +{"level":"info","message":"[IdentityService] Found 3 identities for user 1","timestamp":"2025-05-28T13:12:21.198Z"} +{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-05-28T13:12:21.214Z"} +{"level":"info","message":"[IdentityService] Found 3 identities for user 1","timestamp":"2025-05-28T13:12:21.217Z"} +{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-05-28T13:12:21.236Z"} +{"level":"info","message":"[IdentityService] Found 3 identities for user 1","timestamp":"2025-05-28T13:12:21.240Z"} +{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-05-28T13:12:21.257Z"} +{"level":"info","message":"[IdentityService] Found 3 identities for user 1","timestamp":"2025-05-28T13:12:21.261Z"} +{"level":"info","message":"[EmailBot] IMAP connect attempt 2","timestamp":"2025-05-28T13:12:21.082Z"} +{"level":"info","message":"[EmailBot] IMAP connection ready","timestamp":"2025-05-28T13:12:22.374Z"} +{"level":"info","message":"[EmailBot] Email bot started and IMAP connection initiated","timestamp":"2025-05-28T13:12:22.378Z"} +{"level":"info","message":"No new messages found","timestamp":"2025-05-28T13:12:23.844Z"} +{"level":"info","message":"GET /api/users","timestamp":"2025-05-28T13:12:27.308Z"} +{"level":"info","message":"GET /api/messages?userId=90","timestamp":"2025-05-28T13:12:33.034Z"} +{"level":"info","message":"PATCH /api/users/90","timestamp":"2025-05-28T13:12:41.021Z"} +{"level":"info","message":"PATCH /api/users/90","timestamp":"2025-05-28T13:12:43.063Z"} +{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-05-28T13:12:46.888Z"} +{"level":"info","message":"[IdentityService] Found 3 identities for user 1","timestamp":"2025-05-28T13:12:46.891Z"} +{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-05-28T13:12:49.531Z"} +{"level":"info","message":"[IdentityService] Found 3 identities for user 1","timestamp":"2025-05-28T13:12:49.534Z"} +{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-05-28T13:12:49.546Z"} +{"level":"info","message":"[IdentityService] Found 3 identities for user 1","timestamp":"2025-05-28T13:12:49.550Z"} +{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-05-28T13:12:49.571Z"} +{"level":"info","message":"[IdentityService] Found 3 identities for user 1","timestamp":"2025-05-28T13:12:49.580Z"} +{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-05-28T13:12:49.601Z"} +{"level":"info","message":"[IdentityService] Found 3 identities for user 1","timestamp":"2025-05-28T13:12:49.604Z"} +{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-05-28T13:12:49.642Z"} +{"level":"info","message":"[IdentityService] Found 3 identities for user 1","timestamp":"2025-05-28T13:12:49.644Z"} +{"level":"info","message":"PATCH /api/users/90","timestamp":"2025-05-28T13:13:18.947Z"} +{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-05-28T13:13:21.855Z"} +{"level":"info","message":"[IdentityService] Found 3 identities for user 1","timestamp":"2025-05-28T13:13:21.859Z"} +{"level":"info","message":"GET /api/messages?userId=96","timestamp":"2025-05-28T13:13:23.756Z"} +{"level":"info","message":"No new messages found","timestamp":"2025-05-28T13:13:24.400Z"} +{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-05-28T13:13:29.681Z"} +{"level":"info","message":"[IdentityService] Found 3 identities for user 1","timestamp":"2025-05-28T13:13:29.700Z"} +{"level":"info","message":"GET /api/messages?userId=96","timestamp":"2025-05-28T13:13:29.723Z"} +{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-05-28T13:13:29.747Z"} +{"level":"info","message":"[IdentityService] Found 3 identities for user 1","timestamp":"2025-05-28T13:13:29.753Z"} +{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-05-28T13:13:29.773Z"} +{"level":"info","message":"[IdentityService] Found 3 identities for user 1","timestamp":"2025-05-28T13:13:29.779Z"} +{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-05-28T13:13:29.800Z"} +{"level":"info","message":"[IdentityService] Found 3 identities for user 1","timestamp":"2025-05-28T13:13:29.803Z"} +{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-05-28T13:13:29.814Z"} +{"level":"info","message":"[IdentityService] Found 3 identities for user 1","timestamp":"2025-05-28T13:13:29.819Z"} +{"level":"info","message":"PATCH /api/users/96","timestamp":"2025-05-28T13:13:33.171Z"} +{"level":"info","message":"PATCH /api/users/96","timestamp":"2025-05-28T13:13:33.550Z"} +{"level":"info","message":"PATCH /api/users/96","timestamp":"2025-05-28T13:13:34.571Z"} +{"level":"info","message":"PATCH /api/users/96","timestamp":"2025-05-28T13:13:36.772Z"} +{"level":"info","message":"PATCH /api/users/96","timestamp":"2025-05-28T13:13:39.354Z"} +{"level":"info","message":"GET /api/auth/check","timestamp":"2025-05-28T13:13:48.297Z"} +{"level":"info","message":"[IdentityService] Found 3 identities for user 1","timestamp":"2025-05-28T13:13:48.299Z"} +{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-05-28T13:13:48.491Z"} +{"level":"info","message":"[IdentityService] Found 3 identities for user 1","timestamp":"2025-05-28T13:13:48.494Z"} +{"level":"info","message":"GET /api/auth/check","timestamp":"2025-05-28T13:13:48.517Z"} +{"level":"info","message":"[IdentityService] Found 3 identities for user 1","timestamp":"2025-05-28T13:13:48.519Z"} +{"level":"info","message":"GET /api/tokens/balances?address=0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-05-28T13:13:48.554Z"} +{"level":"info","message":"Fetching token balances for address: 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-05-28T13:13:48.555Z"} +{"level":"info","message":"GET /api/auth/check","timestamp":"2025-05-28T13:13:48.559Z"} +{"level":"info","message":"[IdentityService] Found 3 identities for user 1","timestamp":"2025-05-28T13:13:48.562Z"} +{"level":"info","message":"GET /api/auth/check","timestamp":"2025-05-28T13:13:49.641Z"} +{"level":"info","message":"[IdentityService] Found 3 identities for user 1","timestamp":"2025-05-28T13:13:52.382Z"} +{"level":"info","message":"GET /api/users","timestamp":"2025-05-28T13:13:52.400Z"} +{"level":"info","message":"GET /api/dle","timestamp":"2025-05-28T13:13:52.402Z"} +{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-05-28T13:13:52.418Z"} +{"level":"info","message":"[IdentityService] Found 3 identities for user 1","timestamp":"2025-05-28T13:13:52.423Z"} +{"level":"info","message":"GET /api/auth/check","timestamp":"2025-05-28T13:13:52.443Z"} +{"level":"info","message":"[IdentityService] Found 3 identities for user 1","timestamp":"2025-05-28T13:13:52.448Z"} +{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-05-28T13:13:54.680Z"} +{"level":"info","message":"[IdentityService] Found 3 identities for user 1","timestamp":"2025-05-28T13:13:54.683Z"} +{"level":"info","message":"GET /api/auth/check","timestamp":"2025-05-28T13:13:54.687Z"} +{"level":"info","message":"[IdentityService] Found 3 identities for user 1","timestamp":"2025-05-28T13:13:54.692Z"} +{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-05-28T13:13:54.709Z"} +{"level":"info","message":"[IdentityService] Found 3 identities for user 1","timestamp":"2025-05-28T13:13:54.719Z"} +{"level":"info","message":"GET /api/auth/check","timestamp":"2025-05-28T13:13:54.728Z"} +{"level":"info","message":"[IdentityService] Found 3 identities for user 1","timestamp":"2025-05-28T13:13:54.732Z"} +{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-05-28T13:13:54.748Z"} +{"level":"info","message":"[IdentityService] Found 3 identities for user 1","timestamp":"2025-05-28T13:13:54.763Z"} +{"level":"info","message":"GET /api/auth/check","timestamp":"2025-05-28T13:13:54.782Z"} +{"level":"info","message":"[IdentityService] Found 3 identities for user 1","timestamp":"2025-05-28T13:13:54.787Z"} +{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-05-28T13:13:54.802Z"} +{"level":"info","message":"[IdentityService] Found 3 identities for user 1","timestamp":"2025-05-28T13:13:54.813Z"} +{"level":"info","message":"GET /api/auth/check","timestamp":"2025-05-28T13:13:54.833Z"} +{"level":"info","message":"[IdentityService] Found 3 identities for user 1","timestamp":"2025-05-28T13:13:54.840Z"} +{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-05-28T13:13:54.864Z"} +{"level":"info","message":"[IdentityService] Found 3 identities for user 1","timestamp":"2025-05-28T13:13:54.867Z"} +{"level":"info","message":"GET /api/auth/check","timestamp":"2025-05-28T13:13:54.898Z"} +{"level":"info","message":"[IdentityService] Found 3 identities for user 1","timestamp":"2025-05-28T13:13:54.906Z"} +{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-05-28T13:13:54.908Z"} +{"level":"info","message":"[IdentityService] Found 3 identities for user 1","timestamp":"2025-05-28T13:13:54.911Z"} +{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-05-28T13:13:54.936Z"} +{"level":"info","message":"[IdentityService] Found 3 identities for user 1","timestamp":"2025-05-28T13:13:54.938Z"} +{"level":"info","message":"GET /api/auth/check","timestamp":"2025-05-28T13:13:54.941Z"} +{"level":"info","message":"[IdentityService] Found 3 identities for user 1","timestamp":"2025-05-28T13:13:54.947Z"} +{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-05-28T13:13:54.956Z"} +{"level":"info","message":"[IdentityService] Found 3 identities for user 1","timestamp":"2025-05-28T13:13:54.959Z"} +{"level":"info","message":"GET /api/auth/check","timestamp":"2025-05-28T13:13:54.978Z"} +{"level":"info","message":"[IdentityService] Found 3 identities for user 1","timestamp":"2025-05-28T13:13:54.982Z"} +{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-05-28T13:13:54.987Z"} +{"level":"info","message":"[IdentityService] Found 3 identities for user 1","timestamp":"2025-05-28T13:13:54.994Z"} +{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-05-28T13:13:55.014Z"} +{"level":"info","message":"[IdentityService] Found 3 identities for user 1","timestamp":"2025-05-28T13:13:55.018Z"} +{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-05-28T13:13:55.051Z"} +{"level":"info","message":"[IdentityService] Found 3 identities for user 1","timestamp":"2025-05-28T13:13:55.053Z"} +{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-05-28T13:13:55.070Z"} +{"level":"info","message":"[IdentityService] Found 3 identities for user 1","timestamp":"2025-05-28T13:13:55.073Z"} +{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-05-28T13:13:55.092Z"} +{"level":"info","message":"[IdentityService] Found 3 identities for user 1","timestamp":"2025-05-28T13:13:55.094Z"} +{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-05-28T13:13:55.111Z"} +{"level":"info","message":"[IdentityService] Found 3 identities for user 1","timestamp":"2025-05-28T13:13:55.114Z"} +{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-05-28T13:13:55.131Z"} +{"level":"info","message":"[IdentityService] Found 3 identities for user 1","timestamp":"2025-05-28T13:13:55.134Z"} +{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-05-28T13:13:55.151Z"} +{"level":"info","message":"[IdentityService] Found 3 identities for user 1","timestamp":"2025-05-28T13:13:55.154Z"} +{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-05-28T13:13:55.168Z"} +{"level":"info","message":"[IdentityService] Found 3 identities for user 1","timestamp":"2025-05-28T13:13:55.171Z"} +{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-05-28T13:13:55.198Z"} +{"level":"info","message":"[IdentityService] Found 3 identities for user 1","timestamp":"2025-05-28T13:13:55.202Z"} +{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-05-28T13:13:55.225Z"} +{"level":"info","message":"[IdentityService] Found 3 identities for user 1","timestamp":"2025-05-28T13:13:55.228Z"} +{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-05-28T13:13:55.245Z"} +{"level":"info","message":"[IdentityService] Found 3 identities for user 1","timestamp":"2025-05-28T13:13:55.250Z"} +{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-05-28T13:13:55.271Z"} +{"level":"info","message":"[IdentityService] Found 3 identities for user 1","timestamp":"2025-05-28T13:13:55.273Z"} +{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-05-28T13:13:55.287Z"} +{"level":"info","message":"[IdentityService] Found 3 identities for user 1","timestamp":"2025-05-28T13:13:55.289Z"} +{"level":"info","message":"POST /api/auth/logout","timestamp":"2025-05-28T13:14:06.836Z"} +{"address":null,"authType":null,"authenticated":false,"cookie":{"expires":"2025-06-27T11:09:43.800Z","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-05-28T13:14:06.837Z","userId":null} +{"level":"info","message":"Session saved successfully","timestamp":"2025-05-28T13:14:06.842Z"} +{"level":"info","message":"GET /api/auth/check","timestamp":"2025-05-28T13:14:06.856Z"} +{"cookie":{"expires":"2025-06-27T13:14:06.854Z","httpOnly":true,"originalMaxAge":2592000000,"path":"/","sameSite":"lax","secure":false},"guestId":"3fe8a3e22225b0e8b06d7b4b3098ecf9","level":"info","message":"[SessionService] Saving session data:","timestamp":"2025-05-28T13:14:06.857Z"} +{"level":"info","message":"Session saved successfully","timestamp":"2025-05-28T13:14:06.861Z"} +{"level":"error","message":"[EmailBot] IMAP connection error: Timed out while authenticating with server","timestamp":"2025-05-28T13:14:17.520Z"} +{"level":"warn","message":"[EmailBot] IMAP reconnecting in 10 seconds (attempt 3)...","timestamp":"2025-05-28T13:14:17.521Z"} +{"level":"error","message":"IMAP connection error during check: Timed out while authenticating with server","timestamp":"2025-05-28T13:14:17.521Z"} +{"level":"error","message":"IMAP connection error during check: Timed out while authenticating with server","timestamp":"2025-05-28T13:14:17.522Z"} +{"level":"error","message":"IMAP connection error during check: Timed out while authenticating with server","timestamp":"2025-05-28T13:14:17.522Z"} +{"level":"info","message":"[EmailBot] IMAP connect attempt 3","timestamp":"2025-05-28T13:14:27.529Z"} +{"level":"info","message":"[EmailBot] IMAP connection ready","timestamp":"2025-05-28T13:14:28.651Z"} +{"level":"info","message":"[EmailBot] Email bot started and IMAP connection initiated","timestamp":"2025-05-28T13:14:28.655Z"} +{"level":"info","message":"No new messages found","timestamp":"2025-05-28T13:14:29.491Z"} +{"level":"info","message":"No new messages found","timestamp":"2025-05-28T13:15:08.086Z"} +{"level":"info","message":"No new messages found","timestamp":"2025-05-28T13:15:28.736Z"} +{"level":"info","message":"No new messages found","timestamp":"2025-05-28T13:16:07.430Z"} +{"level":"info","message":"No new messages found","timestamp":"2025-05-28T13:16:19.287Z"} +{"level":"info","message":"No new messages found","timestamp":"2025-05-28T13:17:03.083Z"} +{"level":"info","message":"No new messages found","timestamp":"2025-05-28T13:17:13.102Z"} +{"level":"info","message":"No new messages found","timestamp":"2025-05-28T13:17:58.822Z"} +{"level":"info","message":"No new messages found","timestamp":"2025-05-28T13:18:14.356Z"} +{"level":"info","message":"GET /","timestamp":"2025-05-28T13:18:22.790Z"} +{"level":"error","message":"Error: undefined","timestamp":"2025-05-28T13:18:22.803Z"} +{"level":"info","message":"No new messages found","timestamp":"2025-05-28T13:18:47.896Z"} +{"level":"info","message":"GET /api/auth/check","timestamp":"2025-05-28T13:18:48.634Z"} +{"level":"info","message":"GET /api/auth/check","timestamp":"2025-05-28T13:18:48.648Z"} +{"level":"info","message":"GET /api/auth/check","timestamp":"2025-05-28T13:18:48.658Z"} +{"level":"info","message":"GET /api/auth/check","timestamp":"2025-05-28T13:18:48.670Z"} +{"level":"info","message":"GET /api/auth/check","timestamp":"2025-05-28T13:18:48.720Z"} +{"level":"info","message":"GET /api/auth/nonce?address=0xF45aa4917b3775bA37f48Aeb3dc1a943561e9e0B","timestamp":"2025-05-28T13:18:52.434Z"} +{"level":"info","message":"Nonce 0ca114de0a1d32e9e42068d34968e368 сохранен для адреса 0xF45aa4917b3775bA37f48Aeb3dc1a943561e9e0B","timestamp":"2025-05-28T13:18:52.441Z"} +{"level":"info","message":"POST /api/auth/verify","timestamp":"2025-05-28T13:18:55.064Z"} +{"level":"info","message":"[verify] Verifying signature for address: 0xF45aa4917b3775bA37f48Aeb3dc1a943561e9e0B","timestamp":"2025-05-28T13:18:55.065Z"} +{"level":"info","message":"Checking admin role for address: 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-05-28T13:18:55.132Z"} +{"address":"0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","balance":"454852.0","contract":"0x351f59de4fedbdf7601f5592b93db3b9330c1c1d","hasTokens":true,"level":"info","message":"Token balance on polygon:","minBalance":"10.000000000000000000","timestamp":"2025-05-28T13:18:55.711Z"} +{"level":"info","message":"Found admin tokens on polygon","timestamp":"2025-05-28T13:18:55.712Z"} +{"address":"0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","balance":"1500000.0","contract":"0xd95a45fc46a7300e6022885afec3d618d7d3f27c","hasTokens":true,"level":"info","message":"Token balance on ethereum:","minBalance":"10.000000000000000000","timestamp":"2025-05-28T13:18:56.141Z"} +{"level":"info","message":"Found admin tokens on ethereum","timestamp":"2025-05-28T13:18:56.141Z"} +{"address":"0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","balance":"499999.9","contract":"0xdCe769b847a0a697239777D0B1C7dd33b6012ba0","hasTokens":true,"level":"info","message":"Token balance on arbitrum:","minBalance":"100.000000000000000000","timestamp":"2025-05-28T13:18:56.266Z"} +{"level":"info","message":"Found admin tokens on arbitrum","timestamp":"2025-05-28T13:18:56.266Z"} +{"address":"0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","balance":"500000.0","contract":"0x4b294265720b09ca39bfba18c7e368413c0f68eb","hasTokens":true,"level":"info","message":"Token balance on bsc:","minBalance":"10.000000000000000000","timestamp":"2025-05-28T13:18:56.268Z"} +{"level":"info","message":"Found admin tokens on bsc","timestamp":"2025-05-28T13:18:56.268Z"} +{"address":"0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","balance":"110.0","contract":"0xef49261169B454f191678D2aFC5E91Ad2e85dfD8","hasTokens":true,"level":"info","message":"Token balance on sepolia:","minBalance":"50.000000000000000000","timestamp":"2025-05-28T13:18:56.276Z"} +{"level":"info","message":"Found admin tokens on sepolia","timestamp":"2025-05-28T13:18:56.276Z"} +{"balances":{"arbitrum":"499999.9","bsc":"500000.0","ethereum":"1500000.0","polygon":"454852.0","sepolia":"110.0"},"level":"info","message":"Admin role summary for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b:","networks":["polygon","ethereum","arbitrum","bsc","sepolia"],"timestamp":"2025-05-28T13:18:56.277Z"} +{"level":"info","message":"Admin role granted for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-05-28T13:18:56.278Z"} +{"level":"info","message":"[verify] Found or created user 1 for wallet 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-05-28T13:18:56.278Z"} +{"level":"info","message":"[IdentityService] Converting guest identity for user 1 to guest_user_mapping: 3fe8a3e22225b0e8b06d7b4b3098ecf9","timestamp":"2025-05-28T13:18:56.279Z"} +{"level":"info","message":"Checking admin tokens for address: 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-05-28T13:18:56.292Z"} +{"level":"info","message":"Checking admin role for address: 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-05-28T13:18:56.292Z"} +{"address":"0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","balance":"500000.0","contract":"0x4b294265720b09ca39bfba18c7e368413c0f68eb","hasTokens":true,"level":"info","message":"Token balance on bsc:","minBalance":"10.000000000000000000","timestamp":"2025-05-28T13:18:56.570Z"} +{"level":"info","message":"Found admin tokens on bsc","timestamp":"2025-05-28T13:18:56.570Z"} +{"address":"0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","balance":"110.0","contract":"0xef49261169B454f191678D2aFC5E91Ad2e85dfD8","hasTokens":true,"level":"info","message":"Token balance on sepolia:","minBalance":"50.000000000000000000","timestamp":"2025-05-28T13:18:56.730Z"} +{"level":"info","message":"Found admin tokens on sepolia","timestamp":"2025-05-28T13:18:56.731Z"} +{"address":"0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","balance":"1500000.0","contract":"0xd95a45fc46a7300e6022885afec3d618d7d3f27c","hasTokens":true,"level":"info","message":"Token balance on ethereum:","minBalance":"10.000000000000000000","timestamp":"2025-05-28T13:18:56.742Z"} +{"level":"info","message":"Found admin tokens on ethereum","timestamp":"2025-05-28T13:18:56.742Z"} +{"address":"0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","balance":"454852.0","contract":"0x351f59de4fedbdf7601f5592b93db3b9330c1c1d","hasTokens":true,"level":"info","message":"Token balance on polygon:","minBalance":"10.000000000000000000","timestamp":"2025-05-28T13:18:56.910Z"} +{"level":"info","message":"Found admin tokens on polygon","timestamp":"2025-05-28T13:18:56.910Z"} +{"address":"0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","balance":"499999.9","contract":"0xdCe769b847a0a697239777D0B1C7dd33b6012ba0","hasTokens":true,"level":"info","message":"Token balance on arbitrum:","minBalance":"100.000000000000000000","timestamp":"2025-05-28T13:18:56.928Z"} +{"level":"info","message":"Found admin tokens on arbitrum","timestamp":"2025-05-28T13:18:56.928Z"} +{"balances":{"arbitrum":"499999.9","bsc":"500000.0","ethereum":"1500000.0","polygon":"454852.0","sepolia":"110.0"},"level":"info","message":"Admin role summary for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b:","networks":["bsc","sepolia","ethereum","polygon","arbitrum"],"timestamp":"2025-05-28T13:18:56.928Z"} +{"level":"info","message":"Admin role granted for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-05-28T13:18:56.929Z"} +{"level":"info","message":"Updated user 1 role to admin based on token holdings","timestamp":"2025-05-28T13:18:56.934Z"} +{"address":"0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","authType":"wallet","authenticated":true,"cookie":{"expires":"2025-06-27T13:14:06.854Z","httpOnly":true,"originalMaxAge":2592000000,"path":"/","sameSite":"lax","secure":false},"guestId":"3fe8a3e22225b0e8b06d7b4b3098ecf9","isAdmin":true,"level":"info","message":"[SessionService] Saving session data:","timestamp":"2025-05-28T13:18:56.937Z","userId":1} +{"level":"info","message":"Session saved successfully","timestamp":"2025-05-28T13:18:56.941Z"} +{"level":"info","message":"[linkGuestMessages] Starting for user 1 with guestId=3fe8a3e22225b0e8b06d7b4b3098ecf9, previousGuestId=undefined","timestamp":"2025-05-28T13:18:56.943Z"} +{"level":"info","message":"[processGuestMessagesWrapper] Processing messages: userId=1, guestId=3fe8a3e22225b0e8b06d7b4b3098ecf9","timestamp":"2025-05-28T13:18:56.949Z"} +{"level":"info","message":"Processing guest messages for user 1 with guest ID 3fe8a3e22225b0e8b06d7b4b3098ecf9","timestamp":"2025-05-28T13:18:56.951Z"} +{"level":"info","message":"No guest messages found for guest ID 3fe8a3e22225b0e8b06d7b4b3098ecf9","timestamp":"2025-05-28T13:18:56.961Z"} +{"level":"info","message":"Marked guest mapping as processed (no messages found) for guest ID 3fe8a3e22225b0e8b06d7b4b3098ecf9","timestamp":"2025-05-28T13:18:56.965Z"} +{"level":"info","message":"[processGuestMessagesWrapper] Processing messages: userId=1, guestId=22ffc8b90cb9797d120322ebfc24fb5f","timestamp":"2025-05-28T13:18:56.969Z"} +{"level":"info","message":"Processing guest messages for user 1 with guest ID 22ffc8b90cb9797d120322ebfc24fb5f","timestamp":"2025-05-28T13:18:56.969Z"} +{"level":"info","message":"Guest messages for guest ID 22ffc8b90cb9797d120322ebfc24fb5f were already processed.","timestamp":"2025-05-28T13:18:56.972Z"} +{"level":"info","message":"[processGuestMessagesWrapper] Processing messages: userId=1, guestId=d66e4157dfd0dd76e64369ee84bf4009","timestamp":"2025-05-28T13:18:56.977Z"} +{"level":"info","message":"Processing guest messages for user 1 with guest ID d66e4157dfd0dd76e64369ee84bf4009","timestamp":"2025-05-28T13:18:56.977Z"} +{"level":"info","message":"Guest messages for guest ID d66e4157dfd0dd76e64369ee84bf4009 were already processed.","timestamp":"2025-05-28T13:18:56.979Z"} +{"level":"info","message":"[processGuestMessagesWrapper] Processing messages: userId=1, guestId=dfb1bffd21993323e084091b0534ff4f","timestamp":"2025-05-28T13:18:56.985Z"} +{"level":"info","message":"Processing guest messages for user 1 with guest ID dfb1bffd21993323e084091b0534ff4f","timestamp":"2025-05-28T13:18:56.985Z"} +{"level":"info","message":"Guest messages for guest ID dfb1bffd21993323e084091b0534ff4f were already processed.","timestamp":"2025-05-28T13:18:56.987Z"} +{"level":"info","message":"[processGuestMessagesWrapper] Processing messages: userId=1, guestId=8f23022510a7d82d4724b6e69619a706","timestamp":"2025-05-28T13:18:56.994Z"} +{"level":"info","message":"Processing guest messages for user 1 with guest ID 8f23022510a7d82d4724b6e69619a706","timestamp":"2025-05-28T13:18:56.994Z"} +{"level":"info","message":"Guest messages for guest ID 8f23022510a7d82d4724b6e69619a706 were already processed.","timestamp":"2025-05-28T13:18:56.995Z"} +{"level":"info","message":"[processGuestMessagesWrapper] Processing messages: userId=1, guestId=b2185db5534f63a29075ae66404db5c1","timestamp":"2025-05-28T13:18:56.999Z"} +{"level":"info","message":"Processing guest messages for user 1 with guest ID b2185db5534f63a29075ae66404db5c1","timestamp":"2025-05-28T13:18:56.999Z"} +{"level":"info","message":"Guest messages for guest ID b2185db5534f63a29075ae66404db5c1 were already processed.","timestamp":"2025-05-28T13:18:57.001Z"} +{"level":"info","message":"[processGuestMessagesWrapper] Processing messages: userId=1, guestId=ec9893a230932ecc5abcd333d350876e","timestamp":"2025-05-28T13:18:57.004Z"} +{"level":"info","message":"Processing guest messages for user 1 with guest ID ec9893a230932ecc5abcd333d350876e","timestamp":"2025-05-28T13:18:57.005Z"} +{"level":"info","message":"Guest messages for guest ID ec9893a230932ecc5abcd333d350876e were already processed.","timestamp":"2025-05-28T13:18:57.006Z"} +{"level":"info","message":"[processGuestMessagesWrapper] Processing messages: userId=1, guestId=dff2dcf575964f9437437d5fd1ff9c0a","timestamp":"2025-05-28T13:18:57.009Z"} +{"level":"info","message":"Processing guest messages for user 1 with guest ID dff2dcf575964f9437437d5fd1ff9c0a","timestamp":"2025-05-28T13:18:57.010Z"} +{"level":"info","message":"Guest messages for guest ID dff2dcf575964f9437437d5fd1ff9c0a were already processed.","timestamp":"2025-05-28T13:18:57.011Z"} +{"level":"info","message":"[processGuestMessagesWrapper] Processing messages: userId=1, guestId=bf01418860b15404bd4a8576f2c71a92","timestamp":"2025-05-28T13:18:57.015Z"} +{"level":"info","message":"Processing guest messages for user 1 with guest ID bf01418860b15404bd4a8576f2c71a92","timestamp":"2025-05-28T13:18:57.015Z"} +{"level":"info","message":"Guest messages for guest ID bf01418860b15404bd4a8576f2c71a92 were already processed.","timestamp":"2025-05-28T13:18:57.017Z"} +{"level":"info","message":"[processGuestMessagesWrapper] Processing messages: userId=1, guestId=f2b6e1c8c2f5ed8ef53d5d1b6bf6e56e","timestamp":"2025-05-28T13:18:57.020Z"} +{"level":"info","message":"Processing guest messages for user 1 with guest ID f2b6e1c8c2f5ed8ef53d5d1b6bf6e56e","timestamp":"2025-05-28T13:18:57.021Z"} +{"level":"info","message":"Guest messages for guest ID f2b6e1c8c2f5ed8ef53d5d1b6bf6e56e were already processed.","timestamp":"2025-05-28T13:18:57.023Z"} +{"level":"info","message":"[processGuestMessagesWrapper] Processing messages: userId=1, guestId=59fc98c0423c96b7a7ba11af5b873ba4","timestamp":"2025-05-28T13:18:57.027Z"} +{"level":"info","message":"Processing guest messages for user 1 with guest ID 59fc98c0423c96b7a7ba11af5b873ba4","timestamp":"2025-05-28T13:18:57.029Z"} +{"level":"info","message":"Guest messages for guest ID 59fc98c0423c96b7a7ba11af5b873ba4 were already processed.","timestamp":"2025-05-28T13:18:57.032Z"} +{"level":"info","message":"[processGuestMessagesWrapper] Processing messages: userId=1, guestId=8a9ae1e5c07ba11c666e5974141e8f54","timestamp":"2025-05-28T13:18:57.035Z"} +{"level":"info","message":"Processing guest messages for user 1 with guest ID 8a9ae1e5c07ba11c666e5974141e8f54","timestamp":"2025-05-28T13:18:57.036Z"} +{"level":"info","message":"Guest messages for guest ID 8a9ae1e5c07ba11c666e5974141e8f54 were already processed.","timestamp":"2025-05-28T13:18:57.037Z"} +{"level":"info","message":"[processGuestMessagesWrapper] Processing messages: userId=1, guestId=d1db5bb388f00ecd1cf268492853c489","timestamp":"2025-05-28T13:18:57.040Z"} +{"level":"info","message":"Processing guest messages for user 1 with guest ID d1db5bb388f00ecd1cf268492853c489","timestamp":"2025-05-28T13:18:57.040Z"} +{"level":"info","message":"Guest messages for guest ID d1db5bb388f00ecd1cf268492853c489 were already processed.","timestamp":"2025-05-28T13:18:57.042Z"} +{"level":"info","message":"[processGuestMessagesWrapper] Processing messages: userId=1, guestId=172cc69ec74cac73b96cfacdc2ebc94c","timestamp":"2025-05-28T13:18:57.044Z"} +{"level":"info","message":"Processing guest messages for user 1 with guest ID 172cc69ec74cac73b96cfacdc2ebc94c","timestamp":"2025-05-28T13:18:57.045Z"} +{"level":"info","message":"Guest messages for guest ID 172cc69ec74cac73b96cfacdc2ebc94c were already processed.","timestamp":"2025-05-28T13:18:57.046Z"} +{"level":"info","message":"[processGuestMessagesWrapper] Processing messages: userId=1, guestId=d2149d70299a2e847d19e783804bf71d","timestamp":"2025-05-28T13:18:57.049Z"} +{"level":"info","message":"Processing guest messages for user 1 with guest ID d2149d70299a2e847d19e783804bf71d","timestamp":"2025-05-28T13:18:57.050Z"} +{"level":"info","message":"Guest messages for guest ID d2149d70299a2e847d19e783804bf71d were already processed.","timestamp":"2025-05-28T13:18:57.051Z"} +{"address":"0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","authType":"wallet","authenticated":true,"cookie":{"expires":"2025-06-27T13:14:06.854Z","httpOnly":true,"originalMaxAge":2592000000,"path":"/","sameSite":"lax","secure":false},"guestId":"3fe8a3e22225b0e8b06d7b4b3098ecf9","isAdmin":true,"level":"info","message":"[SessionService] Saving session data:","processedGuestIds":["3fe8a3e22225b0e8b06d7b4b3098ecf9","22ffc8b90cb9797d120322ebfc24fb5f","d66e4157dfd0dd76e64369ee84bf4009","dfb1bffd21993323e084091b0534ff4f","8f23022510a7d82d4724b6e69619a706","b2185db5534f63a29075ae66404db5c1","ec9893a230932ecc5abcd333d350876e","dff2dcf575964f9437437d5fd1ff9c0a","bf01418860b15404bd4a8576f2c71a92","f2b6e1c8c2f5ed8ef53d5d1b6bf6e56e","59fc98c0423c96b7a7ba11af5b873ba4","8a9ae1e5c07ba11c666e5974141e8f54","d1db5bb388f00ecd1cf268492853c489","172cc69ec74cac73b96cfacdc2ebc94c","d2149d70299a2e847d19e783804bf71d"],"timestamp":"2025-05-28T13:18:57.054Z","userId":1} +{"level":"info","message":"Session saved successfully","timestamp":"2025-05-28T13:18:57.058Z"} +{"level":"info","message":"GET /api/auth/check","timestamp":"2025-05-28T13:18:57.276Z"} +{"level":"info","message":"[IdentityService] Found 3 identities for user 1","timestamp":"2025-05-28T13:18:57.278Z"} +{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-05-28T13:18:57.294Z"} +{"level":"info","message":"[IdentityService] Found 3 identities for user 1","timestamp":"2025-05-28T13:18:57.297Z"} +{"level":"info","message":"GET /api/auth/check","timestamp":"2025-05-28T13:18:57.311Z"} +{"level":"info","message":"[IdentityService] Found 3 identities for user 1","timestamp":"2025-05-28T13:18:57.313Z"} +{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-05-28T13:18:57.324Z"} +{"level":"info","message":"[IdentityService] Found 3 identities for user 1","timestamp":"2025-05-28T13:18:57.326Z"} +{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-05-28T13:18:57.338Z"} +{"level":"info","message":"[IdentityService] Found 3 identities for user 1","timestamp":"2025-05-28T13:18:57.339Z"} +{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-05-28T13:18:57.352Z"} +{"level":"info","message":"[IdentityService] Found 3 identities for user 1","timestamp":"2025-05-28T13:18:57.354Z"} +{"level":"info","message":"GET /api/auth/check","timestamp":"2025-05-28T13:18:57.370Z"} +{"level":"info","message":"[IdentityService] Found 3 identities for user 1","timestamp":"2025-05-28T13:18:57.371Z"} +{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-05-28T13:18:57.389Z"} +{"level":"info","message":"[IdentityService] Found 3 identities for user 1","timestamp":"2025-05-28T13:18:57.391Z"} +{"level":"info","message":"GET /api/auth/check","timestamp":"2025-05-28T13:18:57.417Z"} +{"level":"info","message":"[IdentityService] Found 3 identities for user 1","timestamp":"2025-05-28T13:18:57.420Z"} +{"level":"info","message":"GET /api/tokens/balances?address=0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-05-28T13:18:57.442Z"} +{"level":"info","message":"Fetching token balances for address: 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-05-28T13:18:57.443Z"} +{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-05-28T13:18:57.454Z"} +{"level":"info","message":"[IdentityService] Found 3 identities for user 1","timestamp":"2025-05-28T13:18:57.458Z"} +{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-05-28T13:18:57.476Z"} +{"level":"info","message":"[IdentityService] Found 3 identities for user 1","timestamp":"2025-05-28T13:18:57.477Z"} +{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-05-28T13:18:57.491Z"} +{"level":"info","message":"[IdentityService] Found 3 identities for user 1","timestamp":"2025-05-28T13:18:57.494Z"} +{"level":"info","message":"GET /api/tokens/balances?address=0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-05-28T13:18:58.785Z"} +{"level":"info","message":"Fetching token balances for address: 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-05-28T13:18:58.786Z"} +{"action":"call","code":"CALL_EXCEPTION","data":null,"info":{"error":{"code":19,"message":"Unable to perform request"},"payload":{"id":2,"jsonrpc":"2.0","method":"eth_call","params":[{"data":"0x70a08231000000000000000000000000f45aa4917b3775ba37f48aeb3dc1a943561e9e0b","to":"0x351f59de4fedbdf7601f5592b93db3b9330c1c1d"},"latest"]}},"invocation":null,"level":"error","message":"[getUserTokenBalances] Ошибка получения баланса для HB3A (0x351f59de4fedbdf7601f5592b93db3b9330c1c1d) в сети polygon: missing revert data (action=\"call\", data=null, reason=null, transaction={ \"data\": \"0x70a08231000000000000000000000000f45aa4917b3775ba37f48aeb3dc1a943561e9e0b\", \"to\": \"0x351F59dE4FEdBDf7601F5592B93db3B9330c1C1d\" }, invocation=null, revert=null, code=CALL_EXCEPTION, version=6.13.5)","reason":null,"revert":null,"shortMessage":"missing revert data","stack":"Error: missing revert data (action=\"call\", data=null, reason=null, transaction={ \"data\": \"0x70a08231000000000000000000000000f45aa4917b3775ba37f48aeb3dc1a943561e9e0b\", \"to\": \"0x351F59dE4FEdBDf7601F5592B93db3B9330c1C1d\" }, invocation=null, revert=null, code=CALL_EXCEPTION, version=6.13.5)\n at makeError (/app/node_modules/ethers/lib.commonjs/utils/errors.js:129:21)\n at getBuiltinCallException (/app/node_modules/ethers/lib.commonjs/abi/abi-coder.js:105:37)\n at AbiCoder.getBuiltinCallException (/app/node_modules/ethers/lib.commonjs/abi/abi-coder.js:206:16)\n at JsonRpcProvider.getRpcError (/app/node_modules/ethers/lib.commonjs/providers/provider-jsonrpc.js:676:43)\n at /app/node_modules/ethers/lib.commonjs/providers/provider-jsonrpc.js:302:45\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)","timestamp":"2025-05-28T13:19:00.049Z","transaction":{"data":"0x70a08231000000000000000000000000f45aa4917b3775ba37f48aeb3dc1a943561e9e0b","to":"0x351F59dE4FEdBDf7601F5592B93db3B9330c1C1d"}} +{"level":"info","message":"GET /api/dle","timestamp":"2025-05-28T13:19:00.417Z"} +{"level":"info","message":"GET /api/users","timestamp":"2025-05-28T13:19:02.102Z"} +{"level":"info","message":"No new messages found","timestamp":"2025-05-28T13:19:04.148Z"} +{"level":"info","message":"GET /api/messages?userId=90","timestamp":"2025-05-28T13:19:11.148Z"} +{"level":"info","message":"GET /api/messages?userId=46","timestamp":"2025-05-28T13:19:22.150Z"} +{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-05-28T13:19:27.570Z"} +{"level":"info","message":"[IdentityService] Found 3 identities for user 1","timestamp":"2025-05-28T13:19:27.572Z"} +{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-05-28T13:19:27.705Z"} +{"level":"info","message":"[IdentityService] Found 3 identities for user 1","timestamp":"2025-05-28T13:19:27.707Z"} +{"level":"info","message":"DELETE /api/users/46","timestamp":"2025-05-28T13:19:30.248Z"} +{"level":"info","message":"GET /api/users","timestamp":"2025-05-28T13:19:30.277Z"} +{"level":"info","message":"GET /api/messages?userId=75","timestamp":"2025-05-28T13:19:33.467Z"} +{"level":"info","message":"DELETE /api/users/75","timestamp":"2025-05-28T13:19:38.198Z"} +{"level":"info","message":"GET /api/users","timestamp":"2025-05-28T13:19:38.215Z"} +{"level":"info","message":"GET /api/messages?userId=58","timestamp":"2025-05-28T13:19:41.268Z"} +{"level":"info","message":"DELETE /api/users/58","timestamp":"2025-05-28T13:19:46.451Z"} +{"level":"info","message":"GET /api/users","timestamp":"2025-05-28T13:19:46.470Z"} +{"level":"info","message":"No new messages found","timestamp":"2025-05-28T13:19:47.252Z"} +{"level":"info","message":"GET /api/messages?userId=47","timestamp":"2025-05-28T13:19:50.970Z"} +{"level":"info","message":"DELETE /api/users/47","timestamp":"2025-05-28T13:19:55.863Z"} +{"level":"info","message":"GET /api/users","timestamp":"2025-05-28T13:19:55.882Z"} +{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-05-28T13:19:57.804Z"} +{"level":"info","message":"[IdentityService] Found 3 identities for user 1","timestamp":"2025-05-28T13:19:57.805Z"} +{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-05-28T13:19:57.946Z"} +{"level":"info","message":"[IdentityService] Found 3 identities for user 1","timestamp":"2025-05-28T13:19:57.948Z"} +{"level":"info","message":"GET /api/messages?userId=57","timestamp":"2025-05-28T13:19:59.198Z"} +{"level":"info","message":"No new messages found","timestamp":"2025-05-28T13:19:59.208Z"} +{"level":"info","message":"DELETE /api/users/57","timestamp":"2025-05-28T13:20:03.449Z"} +{"level":"info","message":"GET /api/users","timestamp":"2025-05-28T13:20:03.467Z"} +{"level":"info","message":"GET /api/messages?userId=56","timestamp":"2025-05-28T13:20:07.240Z"} +{"level":"info","message":"DELETE /api/users/56","timestamp":"2025-05-28T13:20:09.526Z"} +{"level":"info","message":"GET /api/users","timestamp":"2025-05-28T13:20:09.545Z"} +{"level":"info","message":"GET /api/messages?userId=55","timestamp":"2025-05-28T13:20:14.152Z"} +{"level":"info","message":"DELETE /api/users/55","timestamp":"2025-05-28T13:20:18.249Z"} +{"level":"info","message":"GET /api/users","timestamp":"2025-05-28T13:20:18.267Z"} +{"level":"info","message":"GET /api/messages?userId=54","timestamp":"2025-05-28T13:20:21.980Z"} +{"level":"info","message":"DELETE /api/users/54","timestamp":"2025-05-28T13:20:26.596Z"} +{"level":"info","message":"GET /api/users","timestamp":"2025-05-28T13:20:26.615Z"} +{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-05-28T13:20:28.030Z"} +{"level":"info","message":"[IdentityService] Found 3 identities for user 1","timestamp":"2025-05-28T13:20:28.032Z"} +{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-05-28T13:20:28.177Z"} +{"level":"info","message":"[IdentityService] Found 3 identities for user 1","timestamp":"2025-05-28T13:20:28.178Z"} +{"level":"info","message":"GET /api/messages?userId=53","timestamp":"2025-05-28T13:20:29.804Z"} +{"level":"info","message":"DELETE /api/users/53","timestamp":"2025-05-28T13:20:33.840Z"} +{"level":"info","message":"GET /api/users","timestamp":"2025-05-28T13:20:33.861Z"} +{"level":"info","message":"GET /api/messages?userId=52","timestamp":"2025-05-28T13:20:36.940Z"} +{"level":"info","message":"DELETE /api/users/52","timestamp":"2025-05-28T13:20:41.795Z"} +{"level":"info","message":"GET /api/users","timestamp":"2025-05-28T13:20:41.810Z"} +{"level":"info","message":"No new messages found","timestamp":"2025-05-28T13:20:42.232Z"} +{"level":"info","message":"GET /api/messages?userId=51","timestamp":"2025-05-28T13:20:46.479Z"} +{"level":"info","message":"DELETE /api/users/51","timestamp":"2025-05-28T13:20:50.305Z"} +{"level":"info","message":"GET /api/users","timestamp":"2025-05-28T13:20:50.324Z"} +{"level":"info","message":"GET /api/messages?userId=50","timestamp":"2025-05-28T13:20:53.902Z"} +{"level":"info","message":"DELETE /api/users/50","timestamp":"2025-05-28T13:20:57.699Z"} +{"level":"info","message":"GET /api/users","timestamp":"2025-05-28T13:20:57.719Z"} +{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-05-28T13:20:58.258Z"} +{"level":"info","message":"[IdentityService] Found 3 identities for user 1","timestamp":"2025-05-28T13:20:58.259Z"} +{"level":"info","message":"No new messages found","timestamp":"2025-05-28T13:20:58.389Z"} +{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-05-28T13:20:58.401Z"} +{"level":"info","message":"[IdentityService] Found 3 identities for user 1","timestamp":"2025-05-28T13:20:58.403Z"} +{"level":"info","message":"GET /api/messages?userId=49","timestamp":"2025-05-28T13:21:03.118Z"} +{"level":"info","message":"DELETE /api/users/49","timestamp":"2025-05-28T13:21:04.581Z"} +{"level":"info","message":"GET /api/users","timestamp":"2025-05-28T13:21:04.600Z"} +{"level":"info","message":"GET /api/messages?userId=48","timestamp":"2025-05-28T13:21:08.081Z"} +{"level":"info","message":"DELETE /api/users/48","timestamp":"2025-05-28T13:21:11.771Z"} +{"level":"info","message":"GET /api/users","timestamp":"2025-05-28T13:21:11.789Z"} +{"level":"info","message":"GET /api/messages?userId=88","timestamp":"2025-05-28T13:21:21.666Z"} +{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-05-28T13:21:28.491Z"} +{"level":"info","message":"[IdentityService] Found 3 identities for user 1","timestamp":"2025-05-28T13:21:28.493Z"} +{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-05-28T13:21:28.634Z"} +{"level":"info","message":"[IdentityService] Found 3 identities for user 1","timestamp":"2025-05-28T13:21:28.636Z"} +{"level":"info","message":"No new messages found","timestamp":"2025-05-28T13:21:32.657Z"} +{"level":"info","message":"No new messages found","timestamp":"2025-05-28T13:21:53.446Z"} +{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-05-28T13:21:58.743Z"} +{"level":"info","message":"[IdentityService] Found 3 identities for user 1","timestamp":"2025-05-28T13:21:58.746Z"} +{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-05-28T13:21:58.873Z"} +{"level":"info","message":"[IdentityService] Found 3 identities for user 1","timestamp":"2025-05-28T13:21:58.875Z"} +{"level":"info","message":"GET /api/users","timestamp":"2025-05-28T13:22:12.041Z"} +{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-05-28T13:22:26.447Z"} +{"level":"info","message":"[IdentityService] Found 3 identities for user 1","timestamp":"2025-05-28T13:22:26.450Z"} +{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-05-28T13:22:26.570Z"} +{"level":"info","message":"[IdentityService] Found 3 identities for user 1","timestamp":"2025-05-28T13:22:26.572Z"} +{"level":"info","message":"No new messages found","timestamp":"2025-05-28T13:22:28.172Z"} +{"level":"info","message":"No new messages found","timestamp":"2025-05-28T13:22:48.242Z"} +{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-05-28T13:22:56.975Z"} +{"level":"info","message":"[IdentityService] Found 3 identities for user 1","timestamp":"2025-05-28T13:22:56.978Z"} +{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-05-28T13:22:56.990Z"} +{"level":"info","message":"[IdentityService] Found 3 identities for user 1","timestamp":"2025-05-28T13:22:56.992Z"} diff --git a/backend/logs/error.log b/backend/logs/error.log index 6356810..887c7b6 100644 --- a/backend/logs/error.log +++ b/backend/logs/error.log @@ -1,9 +1,31 @@ -{"level":"error","message":"[EmailBot] IMAP connection error: Timed out while authenticating with server","timestamp":"2025-05-28T11:19:59.653Z"} -{"level":"error","message":"IMAP connection error during check: Timed out while authenticating with server","timestamp":"2025-05-28T11:19:59.654Z"} -{"level":"error","message":"IMAP connection error during check: Timed out while authenticating with server","timestamp":"2025-05-28T11:19:59.654Z"} -{"code":"EPROTOCOL","command":"CONN","level":"error","message":"Error sending email: Invalid greeting. response=421 4.7.0 smtp.hostland.ru Error: too many connections from 5.139.232.220: 421 4.7.0 smtp.hostland.ru Error: too many connections from 5.139.232.220","response":"421 4.7.0 smtp.hostland.ru Error: too many connections from 5.139.232.220","responseCode":421,"stack":"Error: Invalid greeting. response=421 4.7.0 smtp.hostland.ru Error: too many connections from 5.139.232.220: 421 4.7.0 smtp.hostland.ru Error: too many connections from 5.139.232.220\n at SMTPConnection._actionGreeting (/app/node_modules/nodemailer/lib/smtp-connection/index.js:1251:27)\n at SMTPConnection._processResponse (/app/node_modules/nodemailer/lib/smtp-connection/index.js:993:20)\n at SMTPConnection._onData (/app/node_modules/nodemailer/lib/smtp-connection/index.js:774:14)\n at SMTPConnection._onSocketData (/app/node_modules/nodemailer/lib/smtp-connection/index.js:195:44)\n at TLSSocket.emit (node:events:524:28)\n at addChunk (node:internal/streams/readable:561:12)\n at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)\n at Readable.push (node:internal/streams/readable:392:5)\n at TLSWrap.onStreamRead (node:internal/stream_base_commons:191:23)","timestamp":"2025-05-28T11:22:09.742Z"} -{"code":"EPROTOCOL","command":"CONN","level":"error","message":"Error processing incoming email: Invalid greeting. response=421 4.7.0 smtp.hostland.ru Error: too many connections from 5.139.232.220: 421 4.7.0 smtp.hostland.ru Error: too many connections from 5.139.232.220","response":"421 4.7.0 smtp.hostland.ru Error: too many connections from 5.139.232.220","responseCode":421,"stack":"Error: Invalid greeting. response=421 4.7.0 smtp.hostland.ru Error: too many connections from 5.139.232.220: 421 4.7.0 smtp.hostland.ru Error: too many connections from 5.139.232.220\n at SMTPConnection._actionGreeting (/app/node_modules/nodemailer/lib/smtp-connection/index.js:1251:27)\n at SMTPConnection._processResponse (/app/node_modules/nodemailer/lib/smtp-connection/index.js:993:20)\n at SMTPConnection._onData (/app/node_modules/nodemailer/lib/smtp-connection/index.js:774:14)\n at SMTPConnection._onSocketData (/app/node_modules/nodemailer/lib/smtp-connection/index.js:195:44)\n at TLSSocket.emit (node:events:524:28)\n at addChunk (node:internal/streams/readable:561:12)\n at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)\n at Readable.push (node:internal/streams/readable:392:5)\n at TLSWrap.onStreamRead (node:internal/stream_base_commons:191:23)","timestamp":"2025-05-28T11:22:09.743Z"} -{"code":"EPROTOCOL","command":"CONN","level":"error","message":"Error sending email: Invalid greeting. response=421 4.7.0 smtp.hostland.ru Error: too many connections from 5.139.232.220: 421 4.7.0 smtp.hostland.ru Error: too many connections from 5.139.232.220","response":"421 4.7.0 smtp.hostland.ru Error: too many connections from 5.139.232.220","responseCode":421,"stack":"Error: Invalid greeting. response=421 4.7.0 smtp.hostland.ru Error: too many connections from 5.139.232.220: 421 4.7.0 smtp.hostland.ru Error: too many connections from 5.139.232.220\n at SMTPConnection._actionGreeting (/app/node_modules/nodemailer/lib/smtp-connection/index.js:1251:27)\n at SMTPConnection._processResponse (/app/node_modules/nodemailer/lib/smtp-connection/index.js:993:20)\n at SMTPConnection._onData (/app/node_modules/nodemailer/lib/smtp-connection/index.js:774:14)\n at SMTPConnection._onSocketData (/app/node_modules/nodemailer/lib/smtp-connection/index.js:195:44)\n at TLSSocket.emit (node:events:524:28)\n at addChunk (node:internal/streams/readable:561:12)\n at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)\n at Readable.push (node:internal/streams/readable:392:5)\n at TLSWrap.onStreamRead (node:internal/stream_base_commons:191:23)","timestamp":"2025-05-28T11:22:51.094Z"} -{"code":"EPROTOCOL","command":"CONN","level":"error","message":"Error processing incoming email: Invalid greeting. response=421 4.7.0 smtp.hostland.ru Error: too many connections from 5.139.232.220: 421 4.7.0 smtp.hostland.ru Error: too many connections from 5.139.232.220","response":"421 4.7.0 smtp.hostland.ru Error: too many connections from 5.139.232.220","responseCode":421,"stack":"Error: Invalid greeting. response=421 4.7.0 smtp.hostland.ru Error: too many connections from 5.139.232.220: 421 4.7.0 smtp.hostland.ru Error: too many connections from 5.139.232.220\n at SMTPConnection._actionGreeting (/app/node_modules/nodemailer/lib/smtp-connection/index.js:1251:27)\n at SMTPConnection._processResponse (/app/node_modules/nodemailer/lib/smtp-connection/index.js:993:20)\n at SMTPConnection._onData (/app/node_modules/nodemailer/lib/smtp-connection/index.js:774:14)\n at SMTPConnection._onSocketData (/app/node_modules/nodemailer/lib/smtp-connection/index.js:195:44)\n at TLSSocket.emit (node:events:524:28)\n at addChunk (node:internal/streams/readable:561:12)\n at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)\n at Readable.push (node:internal/streams/readable:392:5)\n at TLSWrap.onStreamRead (node:internal/stream_base_commons:191:23)","timestamp":"2025-05-28T11:22:51.094Z"} -{"code":"EPROTOCOL","command":"CONN","level":"error","message":"Error sending email: Invalid greeting. response=421 4.7.0 smtp.hostland.ru Error: too many connections from 5.139.232.220: 421 4.7.0 smtp.hostland.ru Error: too many connections from 5.139.232.220","response":"421 4.7.0 smtp.hostland.ru Error: too many connections from 5.139.232.220","responseCode":421,"stack":"Error: Invalid greeting. response=421 4.7.0 smtp.hostland.ru Error: too many connections from 5.139.232.220: 421 4.7.0 smtp.hostland.ru Error: too many connections from 5.139.232.220\n at SMTPConnection._actionGreeting (/app/node_modules/nodemailer/lib/smtp-connection/index.js:1251:27)\n at SMTPConnection._processResponse (/app/node_modules/nodemailer/lib/smtp-connection/index.js:993:20)\n at SMTPConnection._onData (/app/node_modules/nodemailer/lib/smtp-connection/index.js:774:14)\n at SMTPConnection._onSocketData (/app/node_modules/nodemailer/lib/smtp-connection/index.js:195:44)\n at TLSSocket.emit (node:events:524:28)\n at addChunk (node:internal/streams/readable:561:12)\n at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)\n at Readable.push (node:internal/streams/readable:392:5)\n at TLSWrap.onStreamRead (node:internal/stream_base_commons:191:23)","timestamp":"2025-05-28T11:23:00.237Z"} -{"code":"EPROTOCOL","command":"CONN","level":"error","message":"Error processing incoming email: Invalid greeting. response=421 4.7.0 smtp.hostland.ru Error: too many connections from 5.139.232.220: 421 4.7.0 smtp.hostland.ru Error: too many connections from 5.139.232.220","response":"421 4.7.0 smtp.hostland.ru Error: too many connections from 5.139.232.220","responseCode":421,"stack":"Error: Invalid greeting. response=421 4.7.0 smtp.hostland.ru Error: too many connections from 5.139.232.220: 421 4.7.0 smtp.hostland.ru Error: too many connections from 5.139.232.220\n at SMTPConnection._actionGreeting (/app/node_modules/nodemailer/lib/smtp-connection/index.js:1251:27)\n at SMTPConnection._processResponse (/app/node_modules/nodemailer/lib/smtp-connection/index.js:993:20)\n at SMTPConnection._onData (/app/node_modules/nodemailer/lib/smtp-connection/index.js:774:14)\n at SMTPConnection._onSocketData (/app/node_modules/nodemailer/lib/smtp-connection/index.js:195:44)\n at TLSSocket.emit (node:events:524:28)\n at addChunk (node:internal/streams/readable:561:12)\n at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)\n at Readable.push (node:internal/streams/readable:392:5)\n at TLSWrap.onStreamRead (node:internal/stream_base_commons:191:23)","timestamp":"2025-05-28T11:23:00.237Z"} +{"level":"error","message":"[EmailBot] IMAP connection error: Timed out while authenticating with server","timestamp":"2025-05-28T13:03:06.859Z"} +{"level":"error","message":"IMAP connection error during check: Timed out while authenticating with server","timestamp":"2025-05-28T13:03:06.860Z"} +{"level":"error","message":"IMAP connection error during check: Timed out while authenticating with server","timestamp":"2025-05-28T13:03:06.860Z"} +{"level":"error","message":"IMAP connection error during check: Timed out while authenticating with server","timestamp":"2025-05-28T13:03:06.860Z"} +{"level":"error","message":"IMAP connection error during check: Timed out while authenticating with server","timestamp":"2025-05-28T13:03:06.861Z"} +{"level":"error","message":"IMAP connection error during check: Timed out while authenticating with server","timestamp":"2025-05-28T13:03:06.861Z"} +{"level":"error","message":"IMAP connection error during check: Timed out while authenticating with server","timestamp":"2025-05-28T13:03:06.861Z"} +{"level":"error","message":"IMAP connection error during check: Timed out while authenticating with server","timestamp":"2025-05-28T13:03:06.861Z"} +{"level":"error","message":"[EmailBot] IMAP connection error: Timed out while authenticating with server","timestamp":"2025-05-28T13:04:17.747Z"} +{"level":"error","message":"IMAP connection error during check: Timed out while authenticating with server","timestamp":"2025-05-28T13:04:17.747Z"} +{"level":"error","message":"IMAP connection error during check: Timed out while authenticating with server","timestamp":"2025-05-28T13:04:17.748Z"} +{"level":"error","message":"IMAP connection error during check: Timed out while authenticating with server","timestamp":"2025-05-28T13:04:17.748Z"} +{"level":"error","message":"IMAP connection error during check: Timed out while authenticating with server","timestamp":"2025-05-28T13:04:17.748Z"} +{"level":"error","message":"IMAP connection error during check: Timed out while authenticating with server","timestamp":"2025-05-28T13:04:43.277Z"} +{"level":"error","message":"IMAP connection error during check: Timed out while authenticating with server","timestamp":"2025-05-28T13:05:12.662Z"} +{"level":"error","message":"IMAP connection error during check: Timed out while authenticating with server","timestamp":"2025-05-28T13:05:12.663Z"} +{"level":"error","message":"IMAP connection error during check: Timed out while authenticating with server","timestamp":"2025-05-28T13:06:07.601Z"} +{"level":"error","message":"IMAP connection error during check: Timed out while authenticating with server","timestamp":"2025-05-28T13:06:07.608Z"} +{"level":"error","message":"IMAP connection error during check: Timed out while authenticating with server","timestamp":"2025-05-28T13:06:07.609Z"} +{"level":"error","message":"IMAP connection error during check: Timed out while authenticating with server","timestamp":"2025-05-28T13:07:41.568Z"} +{"level":"error","message":"IMAP connection error during check: Timed out while authenticating with server","timestamp":"2025-05-28T13:07:41.568Z"} +{"level":"error","message":"IMAP connection error during check: Timed out while authenticating with server","timestamp":"2025-05-28T13:07:41.569Z"} +{"level":"error","message":"IMAP connection error during check: Timed out while authenticating with server","timestamp":"2025-05-28T13:07:41.569Z"} +{"level":"error","message":"IMAP connection error during check: Timed out while authenticating with server","timestamp":"2025-05-28T13:07:41.569Z"} +{"level":"error","message":"[EmailBot] IMAP connection error: Timed out while authenticating with server","timestamp":"2025-05-28T13:12:13.523Z"} +{"level":"error","message":"[EmailBot] IMAP connection error: Timed out while authenticating with server","timestamp":"2025-05-28T13:14:17.520Z"} +{"level":"error","message":"IMAP connection error during check: Timed out while authenticating with server","timestamp":"2025-05-28T13:14:17.521Z"} +{"level":"error","message":"IMAP connection error during check: Timed out while authenticating with server","timestamp":"2025-05-28T13:14:17.522Z"} +{"level":"error","message":"IMAP connection error during check: Timed out while authenticating with server","timestamp":"2025-05-28T13:14:17.522Z"} +{"level":"error","message":"Error: undefined","timestamp":"2025-05-28T13:18:22.803Z"} +{"action":"call","code":"CALL_EXCEPTION","data":null,"info":{"error":{"code":19,"message":"Unable to perform request"},"payload":{"id":2,"jsonrpc":"2.0","method":"eth_call","params":[{"data":"0x70a08231000000000000000000000000f45aa4917b3775ba37f48aeb3dc1a943561e9e0b","to":"0x351f59de4fedbdf7601f5592b93db3b9330c1c1d"},"latest"]}},"invocation":null,"level":"error","message":"[getUserTokenBalances] Ошибка получения баланса для HB3A (0x351f59de4fedbdf7601f5592b93db3b9330c1c1d) в сети polygon: missing revert data (action=\"call\", data=null, reason=null, transaction={ \"data\": \"0x70a08231000000000000000000000000f45aa4917b3775ba37f48aeb3dc1a943561e9e0b\", \"to\": \"0x351F59dE4FEdBDf7601F5592B93db3B9330c1C1d\" }, invocation=null, revert=null, code=CALL_EXCEPTION, version=6.13.5)","reason":null,"revert":null,"shortMessage":"missing revert data","stack":"Error: missing revert data (action=\"call\", data=null, reason=null, transaction={ \"data\": \"0x70a08231000000000000000000000000f45aa4917b3775ba37f48aeb3dc1a943561e9e0b\", \"to\": \"0x351F59dE4FEdBDf7601F5592B93db3B9330c1C1d\" }, invocation=null, revert=null, code=CALL_EXCEPTION, version=6.13.5)\n at makeError (/app/node_modules/ethers/lib.commonjs/utils/errors.js:129:21)\n at getBuiltinCallException (/app/node_modules/ethers/lib.commonjs/abi/abi-coder.js:105:37)\n at AbiCoder.getBuiltinCallException (/app/node_modules/ethers/lib.commonjs/abi/abi-coder.js:206:16)\n at JsonRpcProvider.getRpcError (/app/node_modules/ethers/lib.commonjs/providers/provider-jsonrpc.js:676:43)\n at /app/node_modules/ethers/lib.commonjs/providers/provider-jsonrpc.js:302:45\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)","timestamp":"2025-05-28T13:19:00.049Z","transaction":{"data":"0x70a08231000000000000000000000000f45aa4917b3775ba37f48aeb3dc1a943561e9e0b","to":"0x351F59dE4FEdBDf7601F5592B93db3B9330c1C1d"}} diff --git a/backend/routes/messages.js b/backend/routes/messages.js new file mode 100644 index 0000000..ccc6c5b --- /dev/null +++ b/backend/routes/messages.js @@ -0,0 +1,23 @@ +const express = require('express'); +const router = express.Router(); +const db = require('../db'); + +// GET /api/messages?userId=123 +router.get('/', async (req, res) => { + const userId = req.query.userId; + if (!userId) return res.status(400).json({ error: 'userId required' }); + try { + const result = await db.getQuery()( + `SELECT id, user_id, sender_type, content, channel, role, direction, created_at, attachment_filename, attachment_mimetype, attachment_size, attachment_data, metadata + FROM messages + WHERE user_id = $1 + ORDER BY created_at ASC`, + [userId] + ); + res.json(result.rows); + } catch (e) { + res.status(500).json({ error: 'DB error', details: e.message }); + } +}); + +module.exports = router; \ No newline at end of file diff --git a/backend/routes/users.js b/backend/routes/users.js index 2139a04..3f1afd3 100644 --- a/backend/routes/users.js +++ b/backend/routes/users.js @@ -138,4 +138,54 @@ router.get('/', async (req, res) => { }); */ +// PATCH /api/users/:id — обновить имя и язык +router.patch('/:id', async (req, res) => { + const userId = req.params.id; + const { name, language } = req.body; + if (!name && !language) return res.status(400).json({ error: 'Nothing to update' }); + try { + const fields = []; + const values = []; + let idx = 1; + if (name !== undefined) { + // Разделяем имя на first_name и last_name (по пробелу) + const [firstName, ...lastNameArr] = name.split(' '); + fields.push(`first_name = $${idx++}`); + values.push(firstName); + fields.push(`last_name = $${idx++}`); + values.push(lastNameArr.join(' ') || null); + } + if (language !== undefined) { + fields.push(`preferred_language = $${idx++}`); + values.push(Array.isArray(language) ? JSON.stringify(language) : language); + } + values.push(userId); + const sql = `UPDATE users SET ${fields.join(', ')} WHERE id = $${idx} RETURNING *`; + const result = await db.getQuery()(sql, values); + res.json(result.rows[0]); + } catch (e) { + res.status(500).json({ error: 'DB error', details: e.message }); + } +}); + +// DELETE /api/users/:id — удалить контакт и все связанные данные +router.delete('/:id', async (req, res) => { + const userId = req.params.id; + const client = await db.getPool().connect(); + try { + await client.query('BEGIN'); + await client.query('DELETE FROM user_identities WHERE user_id = $1', [userId]); + await client.query('DELETE FROM messages WHERE user_id = $1', [userId]); + // Добавьте другие связанные таблицы, если нужно + await client.query('DELETE FROM users WHERE id = $1', [userId]); + await client.query('COMMIT'); + res.json({ success: true }); + } catch (e) { + await client.query('ROLLBACK'); + res.status(500).json({ error: 'DB error', details: e.message }); + } finally { + client.release(); + } +}); + module.exports = router; diff --git a/frontend/src/components/ContactDetails.vue b/frontend/src/components/ContactDetails.vue new file mode 100644 index 0000000..cbffd3d --- /dev/null +++ b/frontend/src/components/ContactDetails.vue @@ -0,0 +1,320 @@ + + + + + \ No newline at end of file diff --git a/frontend/src/components/ContactTable.vue b/frontend/src/components/ContactTable.vue index 7134d57..b9bf29c 100644 --- a/frontend/src/components/ContactTable.vue +++ b/frontend/src/components/ContactTable.vue @@ -12,6 +12,7 @@ Telegram Кошелек Дата создания + Действие @@ -21,6 +22,9 @@ {{ contact.telegram || '-' }} {{ contact.wallet || '-' }} {{ formatDate(contact.created_at) }} + + + @@ -28,14 +32,18 @@ \ No newline at end of file diff --git a/frontend/src/services/contactsService.js b/frontend/src/services/contactsService.js index e9628c8..06cd67a 100644 --- a/frontend/src/services/contactsService.js +++ b/frontend/src/services/contactsService.js @@ -7,5 +7,13 @@ export default { return res.data.contacts; } return []; + }, + async updateContact(id, data) { + const res = await api.patch(`/api/users/${id}`, data); + return res.data; + }, + async deleteContact(id) { + const res = await api.delete(`/api/users/${id}`); + return res.data; } }; \ No newline at end of file diff --git a/frontend/src/services/messagesService.js b/frontend/src/services/messagesService.js new file mode 100644 index 0000000..5117e88 --- /dev/null +++ b/frontend/src/services/messagesService.js @@ -0,0 +1,9 @@ +import axios from 'axios'; + +export default { + async getMessagesByUserId(userId) { + if (!userId) return []; + const { data } = await axios.get(`/api/messages?userId=${userId}`); + return data; + } +}; \ No newline at end of file diff --git a/frontend/src/views/CrmView.vue b/frontend/src/views/CrmView.vue index f235ea6..1e77589 100644 --- a/frontend/src/views/CrmView.vue +++ b/frontend/src/views/CrmView.vue @@ -20,7 +20,8 @@ Подробнее - + + @@ -36,6 +37,7 @@ import dleService from '../services/dleService'; import ContactTable from '../components/ContactTable.vue'; import contactsService from '../services/contactsService.js'; import DleManagement from '../components/DleManagement.vue'; +import ContactDetails from '../components/ContactDetails.vue'; // Определяем props const props = defineProps({ @@ -58,6 +60,8 @@ const showDleManagement = ref(false); const showContacts = ref(false); const contacts = ref([]); const isLoadingContacts = ref(false); +const selectedContact = ref(null); +const showContactDetails = ref(false); // Функция для перехода на домашнюю страницу и открытия боковой панели const goToHomeAndShowSidebar = () => { @@ -135,6 +139,16 @@ async function loadContacts() { watch(showContacts, (val) => { if (val) loadContacts(); }); + +function openContactDetails(contact) { + selectedContact.value = contact; + showContactDetails.value = true; +} + +function onContactDeleted() { + showContactDetails.value = false; + loadContacts(); +}