diff --git a/backend/db/migrations/017_add_file_storage_columns.sql b/backend/db/migrations/017_add_file_storage_columns.sql
new file mode 100644
index 0000000..3291b63
--- /dev/null
+++ b/backend/db/migrations/017_add_file_storage_columns.sql
@@ -0,0 +1,50 @@
+-- Миграция для добавления колонок хранения файлов и удаления старой колонки attachments
+
+-- UP Migration
+BEGIN;
+
+-- Добавляем колонки для хранения файла и его метаданных в таблицу messages
+ALTER TABLE messages
+ADD COLUMN attachment_filename TEXT NULL,
+ADD COLUMN attachment_mimetype TEXT NULL,
+ADD COLUMN attachment_size BIGINT NULL,
+ADD COLUMN attachment_data BYTEA NULL;
+
+-- Добавляем колонки для хранения файла и его метаданных в таблицу guest_messages
+ALTER TABLE guest_messages
+ADD COLUMN attachment_filename TEXT NULL,
+ADD COLUMN attachment_mimetype TEXT NULL,
+ADD COLUMN attachment_size BIGINT NULL,
+ADD COLUMN attachment_data BYTEA NULL;
+
+-- Удаляем старую колонку attachments из таблицы messages, если она существует
+ALTER TABLE messages DROP COLUMN IF EXISTS attachments;
+
+-- Удаляем старую колонку attachments из таблицы guest_messages, если она существует
+ALTER TABLE guest_messages DROP COLUMN IF EXISTS attachments;
+
+COMMIT;
+
+-- DOWN Migration
+-- Откат изменений: удаляем новые колонки и пытаемся вернуть старую колонку (тип TEXT или JSONB? Используем TEXT как предположение)
+BEGIN;
+
+ALTER TABLE messages
+DROP COLUMN IF EXISTS attachment_filename,
+DROP COLUMN IF EXISTS attachment_mimetype,
+DROP COLUMN IF EXISTS attachment_size,
+DROP COLUMN IF EXISTS attachment_data;
+-- Пытаемся вернуть старую колонку (данные будут потеряны при откате)
+-- Возможно, потребуется указать правильный тип (TEXT или JSONB), который был раньше
+ALTER TABLE messages ADD COLUMN attachments TEXT NULL;
+
+ALTER TABLE guest_messages
+DROP COLUMN IF EXISTS attachment_filename,
+DROP COLUMN IF EXISTS attachment_mimetype,
+DROP COLUMN IF EXISTS attachment_size,
+DROP COLUMN IF EXISTS attachment_data;
+-- Пытаемся вернуть старую колонку (данные будут потеряны при откате)
+-- Возможно, потребуется указать правильный тип (TEXT или JSONB), который был раньше
+ALTER TABLE guest_messages ADD COLUMN attachments TEXT NULL;
+
+COMMIT;
\ No newline at end of file
diff --git a/backend/logs/combined.log b/backend/logs/combined.log
index 6fce439..3a11abb 100644
--- a/backend/logs/combined.log
+++ b/backend/logs/combined.log
@@ -1,2462 +1,2291 @@
-{"level":"info","message":"Migration 000_session_table.sql executed successfully","timestamp":"2025-04-22T14:16:17.814Z"}
-{"level":"info","message":"Migration 001_initial_schema.sql executed successfully","timestamp":"2025-04-22T14:16:17.835Z"}
-{"level":"info","message":"Migration 002_access_roles.sql executed successfully","timestamp":"2025-04-22T14:16:17.881Z"}
-{"level":"info","message":"Migration 003_user_identities.sql executed successfully","timestamp":"2025-04-22T14:16:17.905Z"}
-{"level":"info","message":"Migration 004_conversations.sql executed successfully","timestamp":"2025-04-22T14:16:17.923Z"}
-{"level":"info","message":"Migration 005_messages.sql executed successfully","timestamp":"2025-04-22T14:16:17.954Z"}
-{"level":"info","message":"Migration 006_guest_messages.sql executed successfully","timestamp":"2025-04-22T14:16:17.983Z"}
-{"level":"info","message":"Migration 007_user_preferences.sql executed successfully","timestamp":"2025-04-22T14:16:18.008Z"}
-{"level":"info","message":"Migration 008_update_messages_structure.sql executed successfully","timestamp":"2025-04-22T14:16:18.019Z"}
-{"level":"info","message":"Migration 009_nonces_table.sql executed successfully","timestamp":"2025-04-22T14:16:18.036Z"}
-{"level":"info","message":"Migration 010_cleanup_roles.sql executed successfully","timestamp":"2025-04-22T14:16:18.056Z"}
-{"level":"info","message":"Migration 011_cleanup_guest_relations.sql executed successfully","timestamp":"2025-04-22T14:16:18.070Z"}
-{"level":"info","message":"Migration 012_verification_codes.sql executed successfully","timestamp":"2025-04-22T14:16:18.090Z"}
-{"level":"info","message":"Migration 013_update_verification_codes.sql executed successfully","timestamp":"2025-04-22T14:16:18.095Z"}
-{"level":"info","message":"Migration 014_identity_system_refactor.sql executed successfully","timestamp":"2025-04-22T14:16:18.126Z"}
-{"level":"info","message":"Migration 015_users_table_refactor.sql executed successfully","timestamp":"2025-04-22T14:16:18.137Z"}
-{"level":"info","message":"Migration 016_fix_duplicate_identities.sql executed successfully","timestamp":"2025-04-22T14:16:18.156Z"}
-{"level":"info","message":"Migration fix_duplicates_manual.sql executed successfully","timestamp":"2025-04-22T14:16:18.167Z"}
-{"level":"info","message":"Function link_guest_messages.sql executed successfully","timestamp":"2025-04-22T14:16:18.172Z"}
-{"level":"info","message":"GET /api/auth/check","timestamp":"2025-04-22T14:17:35.867Z"}
-{"cookie":{"expires":"2025-05-22T14:17:35.862Z","httpOnly":true,"originalMaxAge":2592000000,"path":"/","sameSite":"lax","secure":false},"guestId":"cce5937d3bc690769209f303b0eccb1d","level":"info","message":"[SessionService] Saving session data:","timestamp":"2025-04-22T14:17:35.873Z"}
-{"level":"info","message":"Session saved successfully","timestamp":"2025-04-22T14:17:35.879Z"}
-{"level":"info","message":"GET /api/auth/check","timestamp":"2025-04-22T14:17:35.897Z"}
-{"cookie":{"expires":"2025-05-22T14:17:35.893Z","httpOnly":true,"originalMaxAge":2592000000,"path":"/","sameSite":"lax","secure":false},"guestId":"e79959d36d4a4f628f2dc9494d348efc","level":"info","message":"[SessionService] Saving session data:","timestamp":"2025-04-22T14:17:35.898Z"}
-{"level":"info","message":"Session saved successfully","timestamp":"2025-04-22T14:17:35.903Z"}
-{"level":"info","message":"POST /api/chat/guest-message","timestamp":"2025-04-22T14:17:39.346Z"}
-{"level":"info","message":"GET /api/auth/nonce?address=0xF45aa4917b3775bA37f48Aeb3dc1a943561e9e0B","timestamp":"2025-04-22T14:17:41.947Z"}
-{"level":"info","message":"Nonce af6e907ad2459f0781a7e9798d69c0fd сохранен для адреса 0xF45aa4917b3775bA37f48Aeb3dc1a943561e9e0B","timestamp":"2025-04-22T14:17:41.953Z"}
-{"level":"info","message":"POST /api/auth/verify","timestamp":"2025-04-22T14:17:45.941Z"}
-{"level":"info","message":"[verify] Verifying signature for address: 0xF45aa4917b3775bA37f48Aeb3dc1a943561e9e0B","timestamp":"2025-04-22T14:17:45.942Z"}
-{"level":"info","message":"Checking admin role for address: 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-22T14:17:46.056Z"}
-{"address":"0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","balance":"1500000.0","contract":"0xd95a45fc46a7300e6022885afec3d618d7d3f27c","hasTokens":true,"level":"info","message":"Token balance on eth:","timestamp":"2025-04-22T14:17:48.151Z"}
-{"level":"info","message":"Found admin tokens on eth","timestamp":"2025-04-22T14:17:48.152Z"}
-{"address":"0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","balance":"500000.0","contract":"0x4B294265720B09ca39BFBA18c7E368413c0f68eB","hasTokens":true,"level":"info","message":"Token balance on bsc:","timestamp":"2025-04-22T14:17:48.758Z"}
-{"level":"info","message":"Found admin tokens on bsc","timestamp":"2025-04-22T14:17:48.759Z"}
-{"address":"0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","balance":"499999.9","contract":"0xdce769b847a0a697239777d0b1c7dd33b6012ba0","hasTokens":true,"level":"info","message":"Token balance on arbitrum:","timestamp":"2025-04-22T14:17:48.761Z"}
-{"level":"info","message":"Found admin tokens on arbitrum","timestamp":"2025-04-22T14:17:48.762Z"}
-{"address":"0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","balance":"454852.0","contract":"0x351f59de4fedbdf7601f5592b93db3b9330c1c1d","hasTokens":true,"level":"info","message":"Token balance on polygon:","timestamp":"2025-04-22T14:17:49.018Z"}
-{"level":"info","message":"Found admin tokens on polygon","timestamp":"2025-04-22T14:17:49.018Z"}
-{"balances":{"arbitrum":"499999.9","bsc":"500000.0","eth":"1500000.0","polygon":"454852.0"},"level":"info","message":"Admin role summary for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b:","networks":["eth","bsc","arbitrum","polygon"],"timestamp":"2025-04-22T14:17:49.019Z"}
-{"level":"info","message":"Admin role granted for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-22T14:17:49.020Z"}
-{"level":"info","message":"New user 1 role check result: admin","timestamp":"2025-04-22T14:17:49.020Z"}
-{"level":"info","message":"New user 1 with wallet 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b automatically granted admin role","timestamp":"2025-04-22T14:17:49.024Z"}
-{"level":"info","message":"[verify] Found or created user 1 for wallet 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-22T14:17:49.024Z"}
-{"level":"info","message":"[IdentityService] Converting guest identity for user 1 to guest_user_mapping: 1745331457617-6k00nzgjl","timestamp":"2025-04-22T14:17:49.025Z"}
-{"level":"info","message":"Checking admin tokens for address: 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-22T14:17:49.028Z"}
-{"level":"info","message":"Checking admin role for address: 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-22T14:17:49.029Z"}
-{"address":"0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","balance":"454852.0","contract":"0x351f59de4fedbdf7601f5592b93db3b9330c1c1d","hasTokens":true,"level":"info","message":"Token balance on polygon:","timestamp":"2025-04-22T14:17:49.617Z"}
-{"level":"info","message":"Found admin tokens on polygon","timestamp":"2025-04-22T14:17:49.618Z"}
-{"address":"0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","balance":"1500000.0","contract":"0xd95a45fc46a7300e6022885afec3d618d7d3f27c","hasTokens":true,"level":"info","message":"Token balance on eth:","timestamp":"2025-04-22T14:17:49.619Z"}
-{"level":"info","message":"Found admin tokens on eth","timestamp":"2025-04-22T14:17:49.620Z"}
-{"address":"0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","balance":"499999.9","contract":"0xdce769b847a0a697239777d0b1c7dd33b6012ba0","hasTokens":true,"level":"info","message":"Token balance on arbitrum:","timestamp":"2025-04-22T14:17:49.647Z"}
-{"level":"info","message":"Found admin tokens on arbitrum","timestamp":"2025-04-22T14:17:49.647Z"}
-{"address":"0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","balance":"500000.0","contract":"0x4B294265720B09ca39BFBA18c7E368413c0f68eB","hasTokens":true,"level":"info","message":"Token balance on bsc:","timestamp":"2025-04-22T14:17:49.866Z"}
-{"level":"info","message":"Found admin tokens on bsc","timestamp":"2025-04-22T14:17:49.866Z"}
-{"balances":{"arbitrum":"499999.9","bsc":"500000.0","eth":"1500000.0","polygon":"454852.0"},"level":"info","message":"Admin role summary for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b:","networks":["polygon","eth","arbitrum","bsc"],"timestamp":"2025-04-22T14:17:49.866Z"}
-{"level":"info","message":"Admin role granted for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-22T14:17:49.867Z"}
-{"level":"info","message":"Updated user 1 role to admin based on token holdings","timestamp":"2025-04-22T14:17:49.870Z"}
-{"address":"0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","authType":"wallet","authenticated":true,"cookie":{"expires":"2025-05-22T14:17:35.893Z","httpOnly":true,"originalMaxAge":2592000000,"path":"/","sameSite":"lax","secure":false},"guestId":"1745331457617-6k00nzgjl","isAdmin":true,"level":"info","message":"[SessionService] Saving session data:","timestamp":"2025-04-22T14:17:49.879Z","userId":1}
-{"level":"info","message":"Session saved successfully","timestamp":"2025-04-22T14:17:49.881Z"}
-{"level":"info","message":"[linkGuestMessages] Starting for user 1 with guestId=1745331457617-6k00nzgjl, previousGuestId=undefined","timestamp":"2025-04-22T14:17:49.881Z"}
-{"level":"info","message":"[processGuestMessagesWrapper] Processing messages: userId=1, guestId=1745331457617-6k00nzgjl","timestamp":"2025-04-22T14:17:49.885Z"}
-{"address":"0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","authType":"wallet","authenticated":true,"cookie":{"expires":"2025-05-22T14:17:35.893Z","httpOnly":true,"originalMaxAge":2592000000,"path":"/","sameSite":"lax","secure":false},"guestId":"1745331457617-6k00nzgjl","isAdmin":true,"level":"info","message":"[SessionService] Saving session data:","processedGuestIds":["1745331457617-6k00nzgjl"],"timestamp":"2025-04-22T14:18:42.821Z","userId":1}
-{"level":"info","message":"Session saved successfully","timestamp":"2025-04-22T14:18:42.826Z"}
-{"level":"info","message":"GET /api/auth/check","timestamp":"2025-04-22T14:18:42.841Z"}
-{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-22T14:18:42.845Z"}
-{"level":"info","message":"GET /api/tokens/balances?address=0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-22T14:18:43.142Z"}
-{"level":"info","message":"Fetching token balances for address: 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-22T14:18:43.145Z"}
-{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-22T14:18:43.173Z"}
-{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-22T14:18:43.177Z"}
-{"level":"info","message":"GET /api/auth/check","timestamp":"2025-04-22T14:18:43.196Z"}
-{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-22T14:18:43.198Z"}
-{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-22T14:18:43.213Z"}
-{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-22T14:18:43.216Z"}
-{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-22T14:18:43.230Z"}
-{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-22T14:18:43.233Z"}
-{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-22T14:18:43.247Z"}
-{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-22T14:18:43.249Z"}
-{"level":"info","message":"GET /api/auth/check","timestamp":"2025-04-22T14:18:43.779Z"}
-{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-22T14:18:43.781Z"}
-{"level":"info","message":"GET /api/chat/history?count_only=true","timestamp":"2025-04-22T14:18:43.792Z"}
-{"level":"info","message":"GET /api/chat/history?offset=0&limit=30","timestamp":"2025-04-22T14:18:43.814Z"}
-{"balance":"1500000.0","contract":"0xd95a45fc46a7300e6022885afec3d618d7d3f27c","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on eth:","timestamp":"2025-04-22T14:18:44.161Z"}
-{"balance":"500000.0","contract":"0x4B294265720B09ca39BFBA18c7E368413c0f68eB","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on bsc:","timestamp":"2025-04-22T14:18:44.994Z"}
-{"balance":"499999.9","contract":"0xdce769b847a0a697239777d0b1c7dd33b6012ba0","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on arbitrum:","timestamp":"2025-04-22T14:18:45.906Z"}
-{"balance":"454852.0","contract":"0x351f59de4fedbdf7601f5592b93db3b9330c1c1d","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on polygon:","timestamp":"2025-04-22T14:18:47.228Z"}
-{"arbitrum":"499999.9","bsc":"500000.0","eth":"1500000.0","level":"info","message":"Token balances fetched for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b:","polygon":"454852.0","timestamp":"2025-04-22T14:18:47.229Z"}
-{"level":"info","message":"GET /api/tokens/balances?address=0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-22T14:18:47.236Z"}
-{"level":"info","message":"Fetching token balances for address: 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-22T14:18:47.237Z"}
-{"balance":"1500000.0","contract":"0xd95a45fc46a7300e6022885afec3d618d7d3f27c","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on eth:","timestamp":"2025-04-22T14:18:47.658Z"}
-{"balance":"500000.0","contract":"0x4B294265720B09ca39BFBA18c7E368413c0f68eB","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on bsc:","timestamp":"2025-04-22T14:18:47.983Z"}
-{"balance":"499999.9","contract":"0xdce769b847a0a697239777d0b1c7dd33b6012ba0","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on arbitrum:","timestamp":"2025-04-22T14:18:48.592Z"}
-{"balance":"454852.0","contract":"0x351f59de4fedbdf7601f5592b93db3b9330c1c1d","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on polygon:","timestamp":"2025-04-22T14:18:48.985Z"}
-{"arbitrum":"499999.9","bsc":"500000.0","eth":"1500000.0","level":"info","message":"Token balances fetched for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b:","polygon":"454852.0","timestamp":"2025-04-22T14:18:48.985Z"}
-{"level":"info","message":"POST /api/auth/telegram/init","timestamp":"2025-04-22T14:18:54.732Z"}
-{"level":"info","message":"[initTelegramAuth] Linked guestId bb91327c498aaebc3b17ac0ba4f94306 to authenticated user 1","timestamp":"2025-04-22T14:18:54.736Z"}
-{"level":"info","message":"Generated verification code: 7PO9XS","timestamp":"2025-04-22T14:18:54.737Z"}
-{"level":"info","message":"Creating verification code for telegram:bb91327c498aaebc3b17ac0ba4f94306, userId: 1","timestamp":"2025-04-22T14:18:54.737Z"}
-{"level":"info","message":"Verification code created successfully for telegram:bb91327c498aaebc3b17ac0ba4f94306","timestamp":"2025-04-22T14:18:54.742Z"}
-{"level":"info","message":"[initTelegramAuth] Created verification code for guestId: bb91327c498aaebc3b17ac0ba4f94306, userId: 1","timestamp":"2025-04-22T14:18:54.742Z"}
-{"address":"0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","authType":"wallet","authenticated":true,"cookie":{"expires":"2025-05-22T14:17:35.893Z","httpOnly":true,"originalMaxAge":2592000000,"path":"/","sameSite":"lax","secure":false},"guestId":null,"isAdmin":true,"level":"info","message":"[telegram/init] Session object before save:","processedGuestIds":["1745331457617-6k00nzgjl"],"timestamp":"2025-04-22T14:18:54.743Z","userId":1}
-{"address":"0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","authType":"wallet","authenticated":true,"cookie":{"expires":"2025-05-22T14:17:35.893Z","httpOnly":true,"originalMaxAge":2592000000,"path":"/","sameSite":"lax","secure":false},"guestId":null,"isAdmin":true,"level":"info","message":"[SessionService] Saving session data:","processedGuestIds":["1745331457617-6k00nzgjl"],"timestamp":"2025-04-22T14:18:54.743Z","userId":1}
-{"level":"info","message":"Session saved successfully","timestamp":"2025-04-22T14:18:54.745Z"}
-{"level":"info","message":"GET /api/auth/check","timestamp":"2025-04-22T14:18:56.835Z"}
-{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-22T14:18:56.836Z"}
-{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-22T14:18:56.853Z"}
-{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-22T14:18:56.856Z"}
-{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-22T14:18:56.869Z"}
-{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-22T14:18:56.873Z"}
-{"level":"info","message":"GET /api/auth/check","timestamp":"2025-04-22T14:18:58.665Z"}
-{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-22T14:18:58.667Z"}
-{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-22T14:18:58.680Z"}
-{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-22T14:18:58.681Z"}
-{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-22T14:18:58.695Z"}
-{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-22T14:18:58.697Z"}
-{"level":"info","message":"GET /api/auth/check","timestamp":"2025-04-22T14:19:00.493Z"}
-{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-22T14:19:00.495Z"}
-{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-22T14:19:00.510Z"}
-{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-22T14:19:00.513Z"}
-{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-22T14:19:00.530Z"}
-{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-22T14:19:00.532Z"}
-{"level":"info","message":"Starting Telegram auth process for code:","timestamp":"2025-04-22T14:19:01.141Z"}
-{"level":"info","message":"Linked Telegram account 1136899732 to pre-authenticated user 1","timestamp":"2025-04-22T14:19:01.146Z"}
-{"level":"info","message":"[TelegramBot] Checking linked wallet for determined userId: 1 (Type: number)","timestamp":"2025-04-22T14:19:01.146Z"}
-{"level":"info","message":"[getLinkedWallet] Called with userId: 1 (Type: number)","timestamp":"2025-04-22T14:19:01.147Z"}
-{"0":{"address":"0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b"},"level":"info","message":"[getLinkedWallet] DB query result for userId 1:","timestamp":"2025-04-22T14:19:01.149Z"}
-{"level":"info","message":"[getLinkedWallet] Returning address: 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b for userId 1","timestamp":"2025-04-22T14:19:01.149Z"}
-{"level":"info","message":"[TelegramBot] Found linked wallet 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b for user 1. Checking role...","timestamp":"2025-04-22T14:19:01.149Z"}
-{"level":"info","message":"Checking admin role for address: 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-22T14:19:01.150Z"}
-{"address":"0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","balance":"1500000.0","contract":"0xd95a45fc46a7300e6022885afec3d618d7d3f27c","hasTokens":true,"level":"info","message":"Token balance on eth:","timestamp":"2025-04-22T14:19:02.050Z"}
-{"level":"info","message":"Found admin tokens on eth","timestamp":"2025-04-22T14:19:02.051Z"}
-{"address":"0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","balance":"500000.0","contract":"0x4B294265720B09ca39BFBA18c7E368413c0f68eB","hasTokens":true,"level":"info","message":"Token balance on bsc:","timestamp":"2025-04-22T14:19:02.059Z"}
-{"level":"info","message":"Found admin tokens on bsc","timestamp":"2025-04-22T14:19:02.059Z"}
-{"address":"0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","balance":"454852.0","contract":"0x351f59de4fedbdf7601f5592b93db3b9330c1c1d","hasTokens":true,"level":"info","message":"Token balance on polygon:","timestamp":"2025-04-22T14:19:02.110Z"}
-{"level":"info","message":"Found admin tokens on polygon","timestamp":"2025-04-22T14:19:02.111Z"}
-{"address":"0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","balance":"499999.9","contract":"0xdce769b847a0a697239777d0b1c7dd33b6012ba0","hasTokens":true,"level":"info","message":"Token balance on arbitrum:","timestamp":"2025-04-22T14:19:02.211Z"}
-{"level":"info","message":"Found admin tokens on arbitrum","timestamp":"2025-04-22T14:19:02.211Z"}
-{"balances":{"arbitrum":"499999.9","bsc":"500000.0","eth":"1500000.0","polygon":"454852.0"},"level":"info","message":"Admin role summary for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b:","networks":["eth","bsc","polygon","arbitrum"],"timestamp":"2025-04-22T14:19:02.211Z"}
-{"level":"info","message":"Admin role granted for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-22T14:19:02.212Z"}
-{"level":"info","message":"[TelegramBot] Role for user 1 determined as: admin","timestamp":"2025-04-22T14:19:02.212Z"}
-{"level":"info","message":"[telegramBot] Attempting to update session for userId: 1","timestamp":"2025-04-22T14:19:02.214Z"}
-{"level":"info","message":"[telegramBot] Found active session ID br6bOJQbyLkOkr5npW-Ok4Y4ARy7D3VL for user 1","timestamp":"2025-04-22T14:19:02.219Z"}
-{"level":"info","message":"[telegramBot] Session br6bOJQbyLkOkr5npW-Ok4Y4ARy7D3VL updated successfully with Telegram data for user 1","timestamp":"2025-04-22T14:19:02.225Z"}
-{"level":"info","message":"GET /api/auth/check","timestamp":"2025-04-22T14:19:02.330Z"}
-{"level":"info","message":"[IdentityService] Found 2 identities for user 1","timestamp":"2025-04-22T14:19:02.332Z"}
-{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-22T14:19:02.343Z"}
-{"level":"info","message":"[IdentityService] Found 2 identities for user 1","timestamp":"2025-04-22T14:19:02.345Z"}
-{"level":"info","message":"GET /api/auth/check","timestamp":"2025-04-22T14:19:02.358Z"}
-{"level":"info","message":"[IdentityService] Found 2 identities for user 1","timestamp":"2025-04-22T14:19:02.359Z"}
-{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-22T14:19:02.373Z"}
-{"level":"info","message":"[IdentityService] Found 2 identities for user 1","timestamp":"2025-04-22T14:19:02.375Z"}
-{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-22T14:19:02.398Z"}
-{"level":"info","message":"[IdentityService] Found 2 identities for user 1","timestamp":"2025-04-22T14:19:02.401Z"}
-{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-22T14:19:02.416Z"}
-{"level":"info","message":"[IdentityService] Found 2 identities for user 1","timestamp":"2025-04-22T14:19:02.418Z"}
-{"level":"info","message":"GET /api/auth/check","timestamp":"2025-04-22T14:19:03.804Z"}
-{"level":"info","message":"[IdentityService] Found 2 identities for user 1","timestamp":"2025-04-22T14:19:03.807Z"}
-{"level":"info","message":"GET /api/chat/history?count_only=true","timestamp":"2025-04-22T14:19:03.874Z"}
-{"level":"info","message":"GET /api/chat/history?offset=2&limit=30","timestamp":"2025-04-22T14:19:03.919Z"}
-{"level":"info","message":"GET /api/tokens/balances?address=0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-22T14:19:03.951Z"}
-{"level":"info","message":"Fetching token balances for address: 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-22T14:19:03.952Z"}
-{"level":"info","message":"GET /api/auth/check","timestamp":"2025-04-22T14:19:03.974Z"}
-{"level":"info","message":"[IdentityService] Found 2 identities for user 1","timestamp":"2025-04-22T14:19:03.976Z"}
-{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-22T14:19:03.989Z"}
-{"level":"info","message":"[IdentityService] Found 2 identities for user 1","timestamp":"2025-04-22T14:19:03.992Z"}
-{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-22T14:19:04.006Z"}
-{"level":"info","message":"[IdentityService] Found 2 identities for user 1","timestamp":"2025-04-22T14:19:04.008Z"}
-{"balance":"1500000.0","contract":"0xd95a45fc46a7300e6022885afec3d618d7d3f27c","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on eth:","timestamp":"2025-04-22T14:19:07.044Z"}
-{"balance":"500000.0","contract":"0x4B294265720B09ca39BFBA18c7E368413c0f68eB","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on bsc:","timestamp":"2025-04-22T14:19:07.377Z"}
-{"level":"info","message":"GET /api/auth/check","timestamp":"2025-04-22T14:19:07.654Z"}
-{"level":"info","message":"[IdentityService] Found 2 identities for user 1","timestamp":"2025-04-22T14:19:07.656Z"}
-{"level":"info","message":"GET /api/chat/history?count_only=true","timestamp":"2025-04-22T14:19:07.669Z"}
-{"level":"info","message":"GET /api/chat/history?offset=2&limit=30","timestamp":"2025-04-22T14:19:07.680Z"}
-{"balance":"499999.9","contract":"0xdce769b847a0a697239777d0b1c7dd33b6012ba0","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on arbitrum:","timestamp":"2025-04-22T14:19:07.970Z"}
-{"balance":"454852.0","contract":"0x351f59de4fedbdf7601f5592b93db3b9330c1c1d","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on polygon:","timestamp":"2025-04-22T14:19:08.394Z"}
-{"arbitrum":"499999.9","bsc":"500000.0","eth":"1500000.0","level":"info","message":"Token balances fetched for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b:","polygon":"454852.0","timestamp":"2025-04-22T14:19:08.395Z"}
-{"level":"info","message":"GET /api/tokens/balances?address=0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-22T14:19:08.403Z"}
-{"level":"info","message":"Fetching token balances for address: 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-22T14:19:08.404Z"}
-{"level":"info","message":"GET /api/auth/check","timestamp":"2025-04-22T14:19:08.504Z"}
-{"level":"info","message":"[IdentityService] Found 2 identities for user 1","timestamp":"2025-04-22T14:19:08.506Z"}
-{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-22T14:19:08.519Z"}
-{"level":"info","message":"[IdentityService] Found 2 identities for user 1","timestamp":"2025-04-22T14:19:08.521Z"}
-{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-22T14:19:08.531Z"}
-{"level":"info","message":"[IdentityService] Found 2 identities for user 1","timestamp":"2025-04-22T14:19:08.533Z"}
-{"balance":"1500000.0","contract":"0xd95a45fc46a7300e6022885afec3d618d7d3f27c","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on eth:","timestamp":"2025-04-22T14:19:09.220Z"}
-{"level":"info","message":"GET /api/auth/check","timestamp":"2025-04-22T14:19:09.462Z"}
-{"level":"info","message":"[IdentityService] Found 2 identities for user 1","timestamp":"2025-04-22T14:19:09.464Z"}
-{"level":"info","message":"GET /api/chat/history?count_only=true","timestamp":"2025-04-22T14:19:09.479Z"}
-{"balance":"500000.0","contract":"0x4B294265720B09ca39BFBA18c7E368413c0f68eB","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on bsc:","timestamp":"2025-04-22T14:19:09.484Z"}
-{"level":"info","message":"GET /api/chat/history?offset=2&limit=30","timestamp":"2025-04-22T14:19:09.493Z"}
-{"balance":"499999.9","contract":"0xdce769b847a0a697239777d0b1c7dd33b6012ba0","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on arbitrum:","timestamp":"2025-04-22T14:19:10.078Z"}
-{"level":"info","message":"GET /api/auth/check","timestamp":"2025-04-22T14:19:10.336Z"}
-{"level":"info","message":"[IdentityService] Found 2 identities for user 1","timestamp":"2025-04-22T14:19:10.339Z"}
-{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-22T14:19:10.355Z"}
-{"level":"info","message":"[IdentityService] Found 2 identities for user 1","timestamp":"2025-04-22T14:19:10.357Z"}
-{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-22T14:19:10.371Z"}
-{"level":"info","message":"[IdentityService] Found 2 identities for user 1","timestamp":"2025-04-22T14:19:10.374Z"}
-{"balance":"454852.0","contract":"0x351f59de4fedbdf7601f5592b93db3b9330c1c1d","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on polygon:","timestamp":"2025-04-22T14:19:10.616Z"}
-{"arbitrum":"499999.9","bsc":"500000.0","eth":"1500000.0","level":"info","message":"Token balances fetched for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b:","polygon":"454852.0","timestamp":"2025-04-22T14:19:10.617Z"}
-{"level":"info","message":"GET /api/tokens/balances?address=0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-22T14:19:10.626Z"}
-{"level":"info","message":"Fetching token balances for address: 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-22T14:19:10.627Z"}
-{"balance":"1500000.0","contract":"0xd95a45fc46a7300e6022885afec3d618d7d3f27c","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on eth:","timestamp":"2025-04-22T14:19:11.474Z"}
-{"level":"info","message":"GET /api/auth/check","timestamp":"2025-04-22T14:19:11.490Z"}
-{"level":"info","message":"[IdentityService] Found 2 identities for user 1","timestamp":"2025-04-22T14:19:11.492Z"}
-{"level":"info","message":"GET /api/chat/history?count_only=true","timestamp":"2025-04-22T14:19:11.505Z"}
-{"level":"info","message":"GET /api/chat/history?offset=2&limit=30","timestamp":"2025-04-22T14:19:11.519Z"}
-{"balance":"500000.0","contract":"0x4B294265720B09ca39BFBA18c7E368413c0f68eB","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on bsc:","timestamp":"2025-04-22T14:19:11.770Z"}
-{"balance":"499999.9","contract":"0xdce769b847a0a697239777d0b1c7dd33b6012ba0","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on arbitrum:","timestamp":"2025-04-22T14:19:12.350Z"}
-{"level":"info","message":"GET /api/auth/check","timestamp":"2025-04-22T14:19:12.413Z"}
-{"level":"info","message":"[IdentityService] Found 2 identities for user 1","timestamp":"2025-04-22T14:19:12.414Z"}
-{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-22T14:19:12.424Z"}
-{"level":"info","message":"[IdentityService] Found 2 identities for user 1","timestamp":"2025-04-22T14:19:12.426Z"}
-{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-22T14:19:12.438Z"}
-{"level":"info","message":"[IdentityService] Found 2 identities for user 1","timestamp":"2025-04-22T14:19:12.440Z"}
-{"balance":"454852.0","contract":"0x351f59de4fedbdf7601f5592b93db3b9330c1c1d","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on polygon:","timestamp":"2025-04-22T14:19:12.771Z"}
-{"arbitrum":"499999.9","bsc":"500000.0","eth":"1500000.0","level":"info","message":"Token balances fetched for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b:","polygon":"454852.0","timestamp":"2025-04-22T14:19:12.771Z"}
-{"level":"info","message":"GET /api/tokens/balances?address=0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-22T14:19:12.781Z"}
-{"level":"info","message":"Fetching token balances for address: 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-22T14:19:12.782Z"}
-{"balance":"1500000.0","contract":"0xd95a45fc46a7300e6022885afec3d618d7d3f27c","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on eth:","timestamp":"2025-04-22T14:19:13.179Z"}
-{"balance":"500000.0","contract":"0x4B294265720B09ca39BFBA18c7E368413c0f68eB","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on bsc:","timestamp":"2025-04-22T14:19:13.455Z"}
-{"balance":"499999.9","contract":"0xdce769b847a0a697239777d0b1c7dd33b6012ba0","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on arbitrum:","timestamp":"2025-04-22T14:19:14.053Z"}
-{"level":"info","message":"GET /api/auth/check","timestamp":"2025-04-22T14:19:14.252Z"}
-{"level":"info","message":"[IdentityService] Found 2 identities for user 1","timestamp":"2025-04-22T14:19:14.255Z"}
-{"level":"info","message":"GET /api/auth/check","timestamp":"2025-04-22T14:19:14.266Z"}
-{"level":"info","message":"[IdentityService] Found 2 identities for user 1","timestamp":"2025-04-22T14:19:14.268Z"}
-{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-22T14:19:14.285Z"}
-{"level":"info","message":"[IdentityService] Found 2 identities for user 1","timestamp":"2025-04-22T14:19:14.291Z"}
-{"level":"info","message":"GET /api/chat/history?count_only=true","timestamp":"2025-04-22T14:19:14.305Z"}
-{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-22T14:19:14.308Z"}
-{"level":"info","message":"[IdentityService] Found 2 identities for user 1","timestamp":"2025-04-22T14:19:14.314Z"}
-{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-22T14:19:14.332Z"}
-{"level":"info","message":"[IdentityService] Found 2 identities for user 1","timestamp":"2025-04-22T14:19:14.335Z"}
-{"level":"info","message":"GET /api/chat/history?offset=2&limit=30","timestamp":"2025-04-22T14:19:14.344Z"}
-{"balance":"454852.0","contract":"0x351f59de4fedbdf7601f5592b93db3b9330c1c1d","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on polygon:","timestamp":"2025-04-22T14:19:14.596Z"}
-{"arbitrum":"499999.9","bsc":"500000.0","eth":"1500000.0","level":"info","message":"Token balances fetched for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b:","polygon":"454852.0","timestamp":"2025-04-22T14:19:14.596Z"}
-{"level":"info","message":"GET /api/tokens/balances?address=0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-22T14:19:14.604Z"}
-{"level":"info","message":"Fetching token balances for address: 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-22T14:19:14.605Z"}
-{"balance":"1500000.0","contract":"0xd95a45fc46a7300e6022885afec3d618d7d3f27c","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on eth:","timestamp":"2025-04-22T14:19:15.024Z"}
-{"balance":"500000.0","contract":"0x4B294265720B09ca39BFBA18c7E368413c0f68eB","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on bsc:","timestamp":"2025-04-22T14:19:15.297Z"}
-{"balance":"499999.9","contract":"0xdce769b847a0a697239777d0b1c7dd33b6012ba0","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on arbitrum:","timestamp":"2025-04-22T14:19:15.874Z"}
-{"level":"info","message":"GET /api/auth/check","timestamp":"2025-04-22T14:19:16.074Z"}
-{"level":"info","message":"[IdentityService] Found 2 identities for user 1","timestamp":"2025-04-22T14:19:16.076Z"}
-{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-22T14:19:16.092Z"}
-{"level":"info","message":"[IdentityService] Found 2 identities for user 1","timestamp":"2025-04-22T14:19:16.094Z"}
-{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-22T14:19:16.107Z"}
-{"level":"info","message":"[IdentityService] Found 2 identities for user 1","timestamp":"2025-04-22T14:19:16.109Z"}
-{"balance":"454852.0","contract":"0x351f59de4fedbdf7601f5592b93db3b9330c1c1d","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on polygon:","timestamp":"2025-04-22T14:19:16.289Z"}
-{"arbitrum":"499999.9","bsc":"500000.0","eth":"1500000.0","level":"info","message":"Token balances fetched for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b:","polygon":"454852.0","timestamp":"2025-04-22T14:19:16.289Z"}
-{"level":"info","message":"GET /api/tokens/balances?address=0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-22T14:19:16.297Z"}
-{"level":"info","message":"Fetching token balances for address: 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-22T14:19:16.298Z"}
-{"balance":"1500000.0","contract":"0xd95a45fc46a7300e6022885afec3d618d7d3f27c","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on eth:","timestamp":"2025-04-22T14:19:16.684Z"}
-{"balance":"500000.0","contract":"0x4B294265720B09ca39BFBA18c7E368413c0f68eB","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on bsc:","timestamp":"2025-04-22T14:19:16.970Z"}
-{"balance":"499999.9","contract":"0xdce769b847a0a697239777d0b1c7dd33b6012ba0","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on arbitrum:","timestamp":"2025-04-22T14:19:17.569Z"}
-{"level":"info","message":"GET /api/auth/check","timestamp":"2025-04-22T14:19:17.922Z"}
-{"level":"info","message":"[IdentityService] Found 2 identities for user 1","timestamp":"2025-04-22T14:19:17.925Z"}
-{"level":"info","message":"GET /api/auth/check","timestamp":"2025-04-22T14:19:17.939Z"}
-{"level":"info","message":"[IdentityService] Found 2 identities for user 1","timestamp":"2025-04-22T14:19:17.942Z"}
-{"level":"info","message":"GET /api/chat/history?count_only=true","timestamp":"2025-04-22T14:19:17.947Z"}
-{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-22T14:19:17.966Z"}
-{"level":"info","message":"[IdentityService] Found 2 identities for user 1","timestamp":"2025-04-22T14:19:17.970Z"}
-{"level":"info","message":"GET /api/chat/history?offset=2&limit=30","timestamp":"2025-04-22T14:19:17.974Z"}
-{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-22T14:19:17.995Z"}
-{"level":"info","message":"[IdentityService] Found 2 identities for user 1","timestamp":"2025-04-22T14:19:18.000Z"}
-{"balance":"454852.0","contract":"0x351f59de4fedbdf7601f5592b93db3b9330c1c1d","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on polygon:","timestamp":"2025-04-22T14:19:18.006Z"}
-{"arbitrum":"499999.9","bsc":"500000.0","eth":"1500000.0","level":"info","message":"Token balances fetched for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b:","polygon":"454852.0","timestamp":"2025-04-22T14:19:18.007Z"}
-{"level":"info","message":"GET /api/tokens/balances?address=0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-22T14:19:18.023Z"}
-{"level":"info","message":"Fetching token balances for address: 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-22T14:19:18.024Z"}
-{"balance":"1500000.0","contract":"0xd95a45fc46a7300e6022885afec3d618d7d3f27c","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on eth:","timestamp":"2025-04-22T14:19:18.443Z"}
-{"balance":"500000.0","contract":"0x4B294265720B09ca39BFBA18c7E368413c0f68eB","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on bsc:","timestamp":"2025-04-22T14:19:18.718Z"}
-{"balance":"499999.9","contract":"0xdce769b847a0a697239777d0b1c7dd33b6012ba0","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on arbitrum:","timestamp":"2025-04-22T14:19:19.322Z"}
-{"balance":"454852.0","contract":"0x351f59de4fedbdf7601f5592b93db3b9330c1c1d","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on polygon:","timestamp":"2025-04-22T14:19:19.728Z"}
-{"arbitrum":"499999.9","bsc":"500000.0","eth":"1500000.0","level":"info","message":"Token balances fetched for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b:","polygon":"454852.0","timestamp":"2025-04-22T14:19:19.729Z"}
-{"level":"info","message":"GET /api/auth/check","timestamp":"2025-04-22T14:19:19.741Z"}
-{"level":"info","message":"GET /api/tokens/balances?address=0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-22T14:19:19.742Z"}
-{"level":"info","message":"Fetching token balances for address: 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-22T14:19:19.743Z"}
-{"level":"info","message":"[IdentityService] Found 2 identities for user 1","timestamp":"2025-04-22T14:19:19.744Z"}
-{"level":"info","message":"GET /api/auth/check","timestamp":"2025-04-22T14:19:19.755Z"}
-{"level":"info","message":"[IdentityService] Found 2 identities for user 1","timestamp":"2025-04-22T14:19:19.759Z"}
-{"level":"info","message":"GET /api/chat/history?count_only=true","timestamp":"2025-04-22T14:19:19.764Z"}
-{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-22T14:19:19.776Z"}
-{"level":"info","message":"[IdentityService] Found 2 identities for user 1","timestamp":"2025-04-22T14:19:19.778Z"}
-{"level":"info","message":"GET /api/chat/history?offset=2&limit=30","timestamp":"2025-04-22T14:19:19.788Z"}
-{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-22T14:19:19.800Z"}
-{"level":"info","message":"[IdentityService] Found 2 identities for user 1","timestamp":"2025-04-22T14:19:19.805Z"}
-{"balance":"1500000.0","contract":"0xd95a45fc46a7300e6022885afec3d618d7d3f27c","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on eth:","timestamp":"2025-04-22T14:19:20.157Z"}
-{"balance":"500000.0","contract":"0x4B294265720B09ca39BFBA18c7E368413c0f68eB","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on bsc:","timestamp":"2025-04-22T14:19:20.502Z"}
-{"level":"info","message":"GET /api/auth/check","timestamp":"2025-04-22T14:19:20.742Z"}
-{"level":"info","message":"[IdentityService] Found 2 identities for user 1","timestamp":"2025-04-22T14:19:20.744Z"}
-{"level":"info","message":"GET /api/chat/history?count_only=true","timestamp":"2025-04-22T14:19:20.754Z"}
-{"level":"info","message":"GET /api/chat/history?offset=2&limit=30","timestamp":"2025-04-22T14:19:20.766Z"}
-{"balance":"499999.9","contract":"0xdce769b847a0a697239777d0b1c7dd33b6012ba0","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on arbitrum:","timestamp":"2025-04-22T14:19:21.126Z"}
-{"level":"info","message":"GET /api/auth/check","timestamp":"2025-04-22T14:19:21.343Z"}
-{"level":"info","message":"[IdentityService] Found 2 identities for user 1","timestamp":"2025-04-22T14:19:21.345Z"}
-{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-22T14:19:21.355Z"}
-{"level":"info","message":"[IdentityService] Found 2 identities for user 1","timestamp":"2025-04-22T14:19:21.357Z"}
-{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-22T14:19:21.367Z"}
-{"level":"info","message":"[IdentityService] Found 2 identities for user 1","timestamp":"2025-04-22T14:19:21.369Z"}
-{"balance":"454852.0","contract":"0x351f59de4fedbdf7601f5592b93db3b9330c1c1d","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on polygon:","timestamp":"2025-04-22T14:19:21.593Z"}
-{"arbitrum":"499999.9","bsc":"500000.0","eth":"1500000.0","level":"info","message":"Token balances fetched for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b:","polygon":"454852.0","timestamp":"2025-04-22T14:19:21.594Z"}
-{"level":"info","message":"GET /api/tokens/balances?address=0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-22T14:19:21.602Z"}
-{"level":"info","message":"Fetching token balances for address: 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-22T14:19:21.603Z"}
-{"level":"info","message":"GET /api/auth/check","timestamp":"2025-04-22T14:19:22.305Z"}
-{"level":"info","message":"[IdentityService] Found 2 identities for user 1","timestamp":"2025-04-22T14:19:22.307Z"}
-{"level":"info","message":"GET /api/chat/history?count_only=true","timestamp":"2025-04-22T14:19:22.316Z"}
-{"level":"info","message":"GET /api/chat/history?offset=2&limit=30","timestamp":"2025-04-22T14:19:22.328Z"}
-{"balance":"1500000.0","contract":"0xd95a45fc46a7300e6022885afec3d618d7d3f27c","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on eth:","timestamp":"2025-04-22T14:19:23.160Z"}
-{"level":"info","message":"GET /api/auth/check","timestamp":"2025-04-22T14:19:23.176Z"}
-{"level":"info","message":"[IdentityService] Found 2 identities for user 1","timestamp":"2025-04-22T14:19:23.178Z"}
-{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-22T14:19:23.201Z"}
-{"level":"info","message":"[IdentityService] Found 2 identities for user 1","timestamp":"2025-04-22T14:19:23.203Z"}
-{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-22T14:19:23.224Z"}
-{"level":"info","message":"[IdentityService] Found 2 identities for user 1","timestamp":"2025-04-22T14:19:23.225Z"}
-{"balance":"500000.0","contract":"0x4B294265720B09ca39BFBA18c7E368413c0f68eB","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on bsc:","timestamp":"2025-04-22T14:19:23.432Z"}
-{"balance":"499999.9","contract":"0xdce769b847a0a697239777d0b1c7dd33b6012ba0","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on arbitrum:","timestamp":"2025-04-22T14:19:23.996Z"}
-{"level":"info","message":"GET /api/auth/check","timestamp":"2025-04-22T14:19:24.162Z"}
-{"level":"info","message":"[IdentityService] Found 2 identities for user 1","timestamp":"2025-04-22T14:19:24.163Z"}
-{"level":"info","message":"GET /api/chat/history?count_only=true","timestamp":"2025-04-22T14:19:24.173Z"}
-{"level":"info","message":"GET /api/chat/history?offset=2&limit=30","timestamp":"2025-04-22T14:19:24.183Z"}
-{"balance":"454852.0","contract":"0x351f59de4fedbdf7601f5592b93db3b9330c1c1d","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on polygon:","timestamp":"2025-04-22T14:19:24.422Z"}
-{"arbitrum":"499999.9","bsc":"500000.0","eth":"1500000.0","level":"info","message":"Token balances fetched for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b:","polygon":"454852.0","timestamp":"2025-04-22T14:19:24.422Z"}
-{"level":"info","message":"GET /api/tokens/balances?address=0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-22T14:19:24.430Z"}
-{"level":"info","message":"Fetching token balances for address: 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-22T14:19:24.431Z"}
-{"balance":"1500000.0","contract":"0xd95a45fc46a7300e6022885afec3d618d7d3f27c","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on eth:","timestamp":"2025-04-22T14:19:24.842Z"}
-{"level":"info","message":"GET /api/auth/check","timestamp":"2025-04-22T14:19:25.009Z"}
-{"level":"info","message":"[IdentityService] Found 2 identities for user 1","timestamp":"2025-04-22T14:19:25.010Z"}
-{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-22T14:19:25.021Z"}
-{"level":"info","message":"[IdentityService] Found 2 identities for user 1","timestamp":"2025-04-22T14:19:25.023Z"}
-{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-22T14:19:25.032Z"}
-{"level":"info","message":"[IdentityService] Found 2 identities for user 1","timestamp":"2025-04-22T14:19:25.033Z"}
-{"balance":"500000.0","contract":"0x4B294265720B09ca39BFBA18c7E368413c0f68eB","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on bsc:","timestamp":"2025-04-22T14:19:25.111Z"}
-{"level":"info","message":"GET /api/auth/check","timestamp":"2025-04-22T14:19:25.961Z"}
-{"level":"info","message":"[IdentityService] Found 2 identities for user 1","timestamp":"2025-04-22T14:19:25.963Z"}
-{"level":"info","message":"GET /api/chat/history?count_only=true","timestamp":"2025-04-22T14:19:25.975Z"}
-{"level":"info","message":"GET /api/chat/history?offset=2&limit=30","timestamp":"2025-04-22T14:19:25.987Z"}
-{"balance":"499999.9","contract":"0xdce769b847a0a697239777d0b1c7dd33b6012ba0","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on arbitrum:","timestamp":"2025-04-22T14:19:26.045Z"}
-{"balance":"454852.0","contract":"0x351f59de4fedbdf7601f5592b93db3b9330c1c1d","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on polygon:","timestamp":"2025-04-22T14:19:26.586Z"}
-{"arbitrum":"499999.9","bsc":"500000.0","eth":"1500000.0","level":"info","message":"Token balances fetched for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b:","polygon":"454852.0","timestamp":"2025-04-22T14:19:26.587Z"}
-{"level":"info","message":"GET /api/tokens/balances?address=0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-22T14:19:26.594Z"}
-{"level":"info","message":"Fetching token balances for address: 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-22T14:19:26.595Z"}
-{"balance":"1500000.0","contract":"0xd95a45fc46a7300e6022885afec3d618d7d3f27c","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on eth:","timestamp":"2025-04-22T14:19:26.995Z"}
-{"level":"info","message":"GET /api/auth/check","timestamp":"2025-04-22T14:19:27.078Z"}
-{"level":"info","message":"[IdentityService] Found 2 identities for user 1","timestamp":"2025-04-22T14:19:27.080Z"}
-{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-22T14:19:27.092Z"}
-{"level":"info","message":"[IdentityService] Found 2 identities for user 1","timestamp":"2025-04-22T14:19:27.094Z"}
-{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-22T14:19:27.111Z"}
-{"level":"info","message":"[IdentityService] Found 2 identities for user 1","timestamp":"2025-04-22T14:19:27.114Z"}
-{"balance":"500000.0","contract":"0x4B294265720B09ca39BFBA18c7E368413c0f68eB","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on bsc:","timestamp":"2025-04-22T14:19:27.353Z"}
-{"balance":"499999.9","contract":"0xdce769b847a0a697239777d0b1c7dd33b6012ba0","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on arbitrum:","timestamp":"2025-04-22T14:19:27.990Z"}
-{"balance":"454852.0","contract":"0x351f59de4fedbdf7601f5592b93db3b9330c1c1d","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on polygon:","timestamp":"2025-04-22T14:19:28.412Z"}
-{"arbitrum":"499999.9","bsc":"500000.0","eth":"1500000.0","level":"info","message":"Token balances fetched for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b:","polygon":"454852.0","timestamp":"2025-04-22T14:19:28.412Z"}
-{"level":"info","message":"GET /api/tokens/balances?address=0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-22T14:19:28.420Z"}
-{"level":"info","message":"Fetching token balances for address: 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-22T14:19:28.421Z"}
-{"balance":"1500000.0","contract":"0xd95a45fc46a7300e6022885afec3d618d7d3f27c","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on eth:","timestamp":"2025-04-22T14:19:28.821Z"}
-{"level":"info","message":"GET /api/auth/check","timestamp":"2025-04-22T14:19:28.906Z"}
-{"level":"info","message":"[IdentityService] Found 2 identities for user 1","timestamp":"2025-04-22T14:19:28.908Z"}
-{"level":"info","message":"GET /api/auth/check","timestamp":"2025-04-22T14:19:28.920Z"}
-{"level":"info","message":"[IdentityService] Found 2 identities for user 1","timestamp":"2025-04-22T14:19:28.922Z"}
-{"level":"info","message":"GET /api/chat/history?count_only=true","timestamp":"2025-04-22T14:19:28.929Z"}
-{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-22T14:19:28.941Z"}
-{"level":"info","message":"[IdentityService] Found 2 identities for user 1","timestamp":"2025-04-22T14:19:28.943Z"}
-{"level":"info","message":"GET /api/chat/history?offset=2&limit=30","timestamp":"2025-04-22T14:19:28.951Z"}
-{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-22T14:19:28.961Z"}
-{"level":"info","message":"[IdentityService] Found 2 identities for user 1","timestamp":"2025-04-22T14:19:28.964Z"}
-{"balance":"500000.0","contract":"0x4B294265720B09ca39BFBA18c7E368413c0f68eB","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on bsc:","timestamp":"2025-04-22T14:19:29.262Z"}
-{"balance":"499999.9","contract":"0xdce769b847a0a697239777d0b1c7dd33b6012ba0","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on arbitrum:","timestamp":"2025-04-22T14:19:29.888Z"}
-{"level":"info","message":"GET /api/auth/check","timestamp":"2025-04-22T14:19:30.179Z"}
-{"level":"info","message":"[IdentityService] Found 2 identities for user 1","timestamp":"2025-04-22T14:19:30.181Z"}
-{"level":"info","message":"GET /api/chat/history?count_only=true","timestamp":"2025-04-22T14:19:30.195Z"}
-{"level":"info","message":"GET /api/chat/history?offset=2&limit=30","timestamp":"2025-04-22T14:19:30.211Z"}
-{"balance":"454852.0","contract":"0x351f59de4fedbdf7601f5592b93db3b9330c1c1d","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on polygon:","timestamp":"2025-04-22T14:19:30.322Z"}
-{"arbitrum":"499999.9","bsc":"500000.0","eth":"1500000.0","level":"info","message":"Token balances fetched for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b:","polygon":"454852.0","timestamp":"2025-04-22T14:19:30.322Z"}
-{"level":"info","message":"GET /api/tokens/balances?address=0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-22T14:19:30.331Z"}
-{"level":"info","message":"Fetching token balances for address: 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-22T14:19:30.332Z"}
-{"level":"info","message":"GET /api/auth/check","timestamp":"2025-04-22T14:19:30.749Z"}
-{"level":"info","message":"[IdentityService] Found 2 identities for user 1","timestamp":"2025-04-22T14:19:30.751Z"}
-{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-22T14:19:30.768Z"}
-{"level":"info","message":"[IdentityService] Found 2 identities for user 1","timestamp":"2025-04-22T14:19:30.770Z"}
-{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-22T14:19:30.787Z"}
-{"level":"info","message":"[IdentityService] Found 2 identities for user 1","timestamp":"2025-04-22T14:19:30.789Z"}
-{"balance":"1500000.0","contract":"0xd95a45fc46a7300e6022885afec3d618d7d3f27c","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on eth:","timestamp":"2025-04-22T14:19:30.809Z"}
-{"balance":"500000.0","contract":"0x4B294265720B09ca39BFBA18c7E368413c0f68eB","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on bsc:","timestamp":"2025-04-22T14:19:31.097Z"}
-{"balance":"499999.9","contract":"0xdce769b847a0a697239777d0b1c7dd33b6012ba0","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on arbitrum:","timestamp":"2025-04-22T14:19:31.798Z"}
-{"balance":"454852.0","contract":"0x351f59de4fedbdf7601f5592b93db3b9330c1c1d","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on polygon:","timestamp":"2025-04-22T14:19:32.261Z"}
-{"arbitrum":"499999.9","bsc":"500000.0","eth":"1500000.0","level":"info","message":"Token balances fetched for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b:","polygon":"454852.0","timestamp":"2025-04-22T14:19:32.262Z"}
-{"level":"info","message":"GET /api/tokens/balances?address=0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-22T14:19:32.294Z"}
-{"level":"info","message":"Fetching token balances for address: 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-22T14:19:32.295Z"}
-{"level":"info","message":"GET /api/auth/check","timestamp":"2025-04-22T14:19:32.572Z"}
-{"level":"info","message":"[IdentityService] Found 2 identities for user 1","timestamp":"2025-04-22T14:19:32.574Z"}
-{"level":"info","message":"GET /api/auth/check","timestamp":"2025-04-22T14:19:32.583Z"}
-{"level":"info","message":"GET /api/chat/history?count_only=true","timestamp":"2025-04-22T14:19:32.587Z"}
-{"level":"info","message":"[IdentityService] Found 2 identities for user 1","timestamp":"2025-04-22T14:19:32.590Z"}
-{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-22T14:19:32.605Z"}
-{"level":"info","message":"[IdentityService] Found 2 identities for user 1","timestamp":"2025-04-22T14:19:32.607Z"}
-{"level":"info","message":"GET /api/chat/history?offset=2&limit=30","timestamp":"2025-04-22T14:19:32.609Z"}
-{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-22T14:19:32.619Z"}
-{"level":"info","message":"[IdentityService] Found 2 identities for user 1","timestamp":"2025-04-22T14:19:32.622Z"}
-{"balance":"1500000.0","contract":"0xd95a45fc46a7300e6022885afec3d618d7d3f27c","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on eth:","timestamp":"2025-04-22T14:19:32.677Z"}
-{"balance":"500000.0","contract":"0x4B294265720B09ca39BFBA18c7E368413c0f68eB","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on bsc:","timestamp":"2025-04-22T14:19:33.318Z"}
-{"balance":"499999.9","contract":"0xdce769b847a0a697239777d0b1c7dd33b6012ba0","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on arbitrum:","timestamp":"2025-04-22T14:19:34.046Z"}
-{"level":"info","message":"GET /api/auth/check","timestamp":"2025-04-22T14:19:34.412Z"}
-{"level":"info","message":"[IdentityService] Found 2 identities for user 1","timestamp":"2025-04-22T14:19:34.414Z"}
-{"level":"info","message":"GET /api/auth/check","timestamp":"2025-04-22T14:19:34.425Z"}
-{"level":"info","message":"[IdentityService] Found 2 identities for user 1","timestamp":"2025-04-22T14:19:34.428Z"}
-{"level":"info","message":"GET /api/chat/history?count_only=true","timestamp":"2025-04-22T14:19:34.430Z"}
-{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-22T14:19:34.442Z"}
-{"level":"info","message":"[IdentityService] Found 2 identities for user 1","timestamp":"2025-04-22T14:19:34.444Z"}
-{"level":"info","message":"GET /api/chat/history?offset=2&limit=30","timestamp":"2025-04-22T14:19:34.447Z"}
-{"balance":"454852.0","contract":"0x351f59de4fedbdf7601f5592b93db3b9330c1c1d","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on polygon:","timestamp":"2025-04-22T14:19:34.451Z"}
-{"arbitrum":"499999.9","bsc":"500000.0","eth":"1500000.0","level":"info","message":"Token balances fetched for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b:","polygon":"454852.0","timestamp":"2025-04-22T14:19:34.451Z"}
-{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-22T14:19:34.462Z"}
-{"level":"info","message":"[IdentityService] Found 2 identities for user 1","timestamp":"2025-04-22T14:19:34.465Z"}
-{"level":"info","message":"GET /api/tokens/balances?address=0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-22T14:19:34.483Z"}
-{"level":"info","message":"Fetching token balances for address: 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-22T14:19:34.484Z"}
-{"balance":"1500000.0","contract":"0xd95a45fc46a7300e6022885afec3d618d7d3f27c","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on eth:","timestamp":"2025-04-22T14:19:34.862Z"}
-{"balance":"500000.0","contract":"0x4B294265720B09ca39BFBA18c7E368413c0f68eB","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on bsc:","timestamp":"2025-04-22T14:19:35.164Z"}
-{"balance":"499999.9","contract":"0xdce769b847a0a697239777d0b1c7dd33b6012ba0","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on arbitrum:","timestamp":"2025-04-22T14:19:35.796Z"}
-{"balance":"454852.0","contract":"0x351f59de4fedbdf7601f5592b93db3b9330c1c1d","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on polygon:","timestamp":"2025-04-22T14:19:36.203Z"}
-{"arbitrum":"499999.9","bsc":"500000.0","eth":"1500000.0","level":"info","message":"Token balances fetched for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b:","polygon":"454852.0","timestamp":"2025-04-22T14:19:36.203Z"}
-{"level":"info","message":"GET /api/tokens/balances?address=0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-22T14:19:36.213Z"}
-{"level":"info","message":"Fetching token balances for address: 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-22T14:19:36.214Z"}
-{"level":"info","message":"GET /api/auth/check","timestamp":"2025-04-22T14:19:36.245Z"}
-{"level":"info","message":"[IdentityService] Found 2 identities for user 1","timestamp":"2025-04-22T14:19:36.248Z"}
-{"level":"info","message":"GET /api/auth/check","timestamp":"2025-04-22T14:19:36.259Z"}
-{"level":"info","message":"[IdentityService] Found 2 identities for user 1","timestamp":"2025-04-22T14:19:36.261Z"}
-{"level":"info","message":"GET /api/chat/history?count_only=true","timestamp":"2025-04-22T14:19:36.263Z"}
-{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-22T14:19:36.281Z"}
-{"level":"info","message":"[IdentityService] Found 2 identities for user 1","timestamp":"2025-04-22T14:19:36.284Z"}
-{"level":"info","message":"GET /api/chat/history?offset=2&limit=30","timestamp":"2025-04-22T14:19:36.287Z"}
-{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-22T14:19:36.301Z"}
-{"level":"info","message":"[IdentityService] Found 2 identities for user 1","timestamp":"2025-04-22T14:19:36.305Z"}
-{"balance":"1500000.0","contract":"0xd95a45fc46a7300e6022885afec3d618d7d3f27c","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on eth:","timestamp":"2025-04-22T14:19:36.629Z"}
-{"balance":"500000.0","contract":"0x4B294265720B09ca39BFBA18c7E368413c0f68eB","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on bsc:","timestamp":"2025-04-22T14:19:39.577Z"}
-{"balance":"499999.9","contract":"0xdce769b847a0a697239777d0b1c7dd33b6012ba0","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on arbitrum:","timestamp":"2025-04-22T14:19:40.169Z"}
-{"balance":"454852.0","contract":"0x351f59de4fedbdf7601f5592b93db3b9330c1c1d","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on polygon:","timestamp":"2025-04-22T14:19:40.570Z"}
-{"arbitrum":"499999.9","bsc":"500000.0","eth":"1500000.0","level":"info","message":"Token balances fetched for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b:","polygon":"454852.0","timestamp":"2025-04-22T14:19:40.570Z"}
-{"level":"info","message":"GET /api/tokens/balances?address=0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-22T14:19:40.580Z"}
-{"level":"info","message":"Fetching token balances for address: 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-22T14:19:40.582Z"}
-{"level":"info","message":"GET /api/auth/check","timestamp":"2025-04-22T14:19:40.798Z"}
-{"level":"info","message":"[IdentityService] Found 2 identities for user 1","timestamp":"2025-04-22T14:19:40.799Z"}
-{"level":"info","message":"GET /api/auth/check","timestamp":"2025-04-22T14:19:40.808Z"}
-{"level":"info","message":"[IdentityService] Found 2 identities for user 1","timestamp":"2025-04-22T14:19:40.810Z"}
-{"level":"info","message":"GET /api/chat/history?count_only=true","timestamp":"2025-04-22T14:19:40.812Z"}
-{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-22T14:19:40.830Z"}
-{"level":"info","message":"[IdentityService] Found 2 identities for user 1","timestamp":"2025-04-22T14:19:40.834Z"}
-{"level":"info","message":"GET /api/chat/history?offset=2&limit=30","timestamp":"2025-04-22T14:19:40.836Z"}
-{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-22T14:19:40.850Z"}
-{"level":"info","message":"[IdentityService] Found 2 identities for user 1","timestamp":"2025-04-22T14:19:40.853Z"}
-{"balance":"1500000.0","contract":"0xd95a45fc46a7300e6022885afec3d618d7d3f27c","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on eth:","timestamp":"2025-04-22T14:19:40.989Z"}
-{"balance":"500000.0","contract":"0x4B294265720B09ca39BFBA18c7E368413c0f68eB","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on bsc:","timestamp":"2025-04-22T14:19:41.279Z"}
-{"balance":"499999.9","contract":"0xdce769b847a0a697239777d0b1c7dd33b6012ba0","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on arbitrum:","timestamp":"2025-04-22T14:19:41.858Z"}
-{"balance":"454852.0","contract":"0x351f59de4fedbdf7601f5592b93db3b9330c1c1d","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on polygon:","timestamp":"2025-04-22T14:19:42.276Z"}
-{"arbitrum":"499999.9","bsc":"500000.0","eth":"1500000.0","level":"info","message":"Token balances fetched for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b:","polygon":"454852.0","timestamp":"2025-04-22T14:19:42.276Z"}
-{"level":"info","message":"GET /api/tokens/balances?address=0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-22T14:19:42.285Z"}
-{"level":"info","message":"Fetching token balances for address: 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-22T14:19:42.286Z"}
-{"level":"info","message":"GET /api/auth/check","timestamp":"2025-04-22T14:19:42.625Z"}
-{"level":"info","message":"[IdentityService] Found 2 identities for user 1","timestamp":"2025-04-22T14:19:42.627Z"}
-{"level":"info","message":"GET /api/auth/check","timestamp":"2025-04-22T14:19:42.636Z"}
-{"level":"info","message":"[IdentityService] Found 2 identities for user 1","timestamp":"2025-04-22T14:19:42.638Z"}
-{"level":"info","message":"GET /api/chat/history?count_only=true","timestamp":"2025-04-22T14:19:42.639Z"}
-{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-22T14:19:42.655Z"}
-{"level":"info","message":"[IdentityService] Found 2 identities for user 1","timestamp":"2025-04-22T14:19:42.657Z"}
-{"level":"info","message":"GET /api/chat/history?offset=2&limit=30","timestamp":"2025-04-22T14:19:42.663Z"}
-{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-22T14:19:42.671Z"}
-{"level":"info","message":"[IdentityService] Found 2 identities for user 1","timestamp":"2025-04-22T14:19:42.674Z"}
-{"balance":"1500000.0","contract":"0xd95a45fc46a7300e6022885afec3d618d7d3f27c","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on eth:","timestamp":"2025-04-22T14:19:42.702Z"}
-{"balance":"500000.0","contract":"0x4B294265720B09ca39BFBA18c7E368413c0f68eB","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on bsc:","timestamp":"2025-04-22T14:19:42.972Z"}
-{"balance":"499999.9","contract":"0xdce769b847a0a697239777d0b1c7dd33b6012ba0","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on arbitrum:","timestamp":"2025-04-22T14:19:43.654Z"}
-{"balance":"454852.0","contract":"0x351f59de4fedbdf7601f5592b93db3b9330c1c1d","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on polygon:","timestamp":"2025-04-22T14:19:44.054Z"}
-{"arbitrum":"499999.9","bsc":"500000.0","eth":"1500000.0","level":"info","message":"Token balances fetched for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b:","polygon":"454852.0","timestamp":"2025-04-22T14:19:44.054Z"}
-{"level":"info","message":"GET /api/tokens/balances?address=0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-22T14:19:44.062Z"}
-{"level":"info","message":"Fetching token balances for address: 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-22T14:19:44.062Z"}
-{"level":"info","message":"GET /api/auth/check","timestamp":"2025-04-22T14:19:44.466Z"}
-{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-22T14:19:44.468Z"}
-{"level":"info","message":"[IdentityService] Found 2 identities for user 1","timestamp":"2025-04-22T14:19:44.470Z"}
-{"level":"info","message":"[IdentityService] Found 2 identities for user 1","timestamp":"2025-04-22T14:19:44.471Z"}
-{"balance":"1500000.0","contract":"0xd95a45fc46a7300e6022885afec3d618d7d3f27c","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on eth:","timestamp":"2025-04-22T14:19:44.478Z"}
-{"level":"info","message":"GET /api/auth/check","timestamp":"2025-04-22T14:19:44.489Z"}
-{"level":"info","message":"[IdentityService] Found 2 identities for user 1","timestamp":"2025-04-22T14:19:44.493Z"}
-{"level":"info","message":"GET /api/chat/history?count_only=true","timestamp":"2025-04-22T14:19:44.503Z"}
-{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-22T14:19:44.513Z"}
-{"level":"info","message":"[IdentityService] Found 2 identities for user 1","timestamp":"2025-04-22T14:19:44.517Z"}
-{"level":"info","message":"GET /api/chat/history?offset=2&limit=30","timestamp":"2025-04-22T14:19:44.521Z"}
-{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-22T14:19:44.531Z"}
-{"level":"info","message":"[IdentityService] Found 2 identities for user 1","timestamp":"2025-04-22T14:19:44.534Z"}
-{"balance":"500000.0","contract":"0x4B294265720B09ca39BFBA18c7E368413c0f68eB","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on bsc:","timestamp":"2025-04-22T14:19:45.244Z"}
-{"balance":"499999.9","contract":"0xdce769b847a0a697239777d0b1c7dd33b6012ba0","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on arbitrum:","timestamp":"2025-04-22T14:19:45.894Z"}
-{"level":"info","message":"GET /api/auth/check","timestamp":"2025-04-22T14:19:46.289Z"}
-{"level":"info","message":"[IdentityService] Found 2 identities for user 1","timestamp":"2025-04-22T14:19:46.291Z"}
-{"balance":"454852.0","contract":"0x351f59de4fedbdf7601f5592b93db3b9330c1c1d","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on polygon:","timestamp":"2025-04-22T14:19:46.298Z"}
-{"arbitrum":"499999.9","bsc":"500000.0","eth":"1500000.0","level":"info","message":"Token balances fetched for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b:","polygon":"454852.0","timestamp":"2025-04-22T14:19:46.298Z"}
-{"level":"info","message":"GET /api/auth/check","timestamp":"2025-04-22T14:19:46.306Z"}
-{"level":"info","message":"[IdentityService] Found 2 identities for user 1","timestamp":"2025-04-22T14:19:46.309Z"}
-{"level":"info","message":"GET /api/chat/history?count_only=true","timestamp":"2025-04-22T14:19:46.310Z"}
-{"level":"info","message":"GET /api/tokens/balances?address=0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-22T14:19:46.315Z"}
-{"level":"info","message":"Fetching token balances for address: 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-22T14:19:46.316Z"}
-{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-22T14:19:46.324Z"}
-{"level":"info","message":"[IdentityService] Found 2 identities for user 1","timestamp":"2025-04-22T14:19:46.326Z"}
-{"level":"info","message":"GET /api/chat/history?offset=2&limit=30","timestamp":"2025-04-22T14:19:46.333Z"}
-{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-22T14:19:46.343Z"}
-{"level":"info","message":"[IdentityService] Found 2 identities for user 1","timestamp":"2025-04-22T14:19:46.345Z"}
-{"balance":"1500000.0","contract":"0xd95a45fc46a7300e6022885afec3d618d7d3f27c","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on eth:","timestamp":"2025-04-22T14:19:46.715Z"}
-{"balance":"500000.0","contract":"0x4B294265720B09ca39BFBA18c7E368413c0f68eB","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on bsc:","timestamp":"2025-04-22T14:19:47.061Z"}
-{"balance":"499999.9","contract":"0xdce769b847a0a697239777d0b1c7dd33b6012ba0","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on arbitrum:","timestamp":"2025-04-22T14:19:47.699Z"}
-{"level":"info","message":"GET /api/auth/check","timestamp":"2025-04-22T14:19:48.124Z"}
-{"level":"info","message":"[IdentityService] Found 2 identities for user 1","timestamp":"2025-04-22T14:19:48.125Z"}
-{"level":"info","message":"GET /api/auth/check","timestamp":"2025-04-22T14:19:48.134Z"}
-{"level":"info","message":"[IdentityService] Found 2 identities for user 1","timestamp":"2025-04-22T14:19:48.136Z"}
-{"level":"info","message":"GET /api/chat/history?count_only=true","timestamp":"2025-04-22T14:19:48.138Z"}
-{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-22T14:19:48.150Z"}
-{"level":"info","message":"[IdentityService] Found 2 identities for user 1","timestamp":"2025-04-22T14:19:48.153Z"}
-{"level":"info","message":"GET /api/chat/history?offset=2&limit=30","timestamp":"2025-04-22T14:19:48.157Z"}
-{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-22T14:19:48.166Z"}
-{"level":"info","message":"[IdentityService] Found 2 identities for user 1","timestamp":"2025-04-22T14:19:48.170Z"}
-{"balance":"454852.0","contract":"0x351f59de4fedbdf7601f5592b93db3b9330c1c1d","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on polygon:","timestamp":"2025-04-22T14:19:48.452Z"}
-{"arbitrum":"499999.9","bsc":"500000.0","eth":"1500000.0","level":"info","message":"Token balances fetched for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b:","polygon":"454852.0","timestamp":"2025-04-22T14:19:48.453Z"}
-{"level":"info","message":"GET /api/tokens/balances?address=0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-22T14:19:48.461Z"}
-{"level":"info","message":"Fetching token balances for address: 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-22T14:19:48.462Z"}
-{"balance":"1500000.0","contract":"0xd95a45fc46a7300e6022885afec3d618d7d3f27c","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on eth:","timestamp":"2025-04-22T14:19:48.999Z"}
-{"balance":"500000.0","contract":"0x4B294265720B09ca39BFBA18c7E368413c0f68eB","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on bsc:","timestamp":"2025-04-22T14:19:49.639Z"}
-{"level":"info","message":"GET /api/auth/check","timestamp":"2025-04-22T14:19:49.957Z"}
-{"level":"info","message":"[IdentityService] Found 2 identities for user 1","timestamp":"2025-04-22T14:19:49.959Z"}
-{"level":"info","message":"GET /api/auth/check","timestamp":"2025-04-22T14:19:49.967Z"}
-{"level":"info","message":"[IdentityService] Found 2 identities for user 1","timestamp":"2025-04-22T14:19:49.969Z"}
-{"level":"info","message":"GET /api/chat/history?count_only=true","timestamp":"2025-04-22T14:19:49.972Z"}
-{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-22T14:19:49.986Z"}
-{"level":"info","message":"GET /api/chat/history?offset=2&limit=30","timestamp":"2025-04-22T14:19:49.989Z"}
-{"level":"info","message":"[IdentityService] Found 2 identities for user 1","timestamp":"2025-04-22T14:19:49.993Z"}
-{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-22T14:19:50.004Z"}
-{"level":"info","message":"[IdentityService] Found 2 identities for user 1","timestamp":"2025-04-22T14:19:50.007Z"}
-{"balance":"499999.9","contract":"0xdce769b847a0a697239777d0b1c7dd33b6012ba0","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on arbitrum:","timestamp":"2025-04-22T14:19:50.241Z"}
-{"balance":"454852.0","contract":"0x351f59de4fedbdf7601f5592b93db3b9330c1c1d","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on polygon:","timestamp":"2025-04-22T14:19:50.664Z"}
-{"arbitrum":"499999.9","bsc":"500000.0","eth":"1500000.0","level":"info","message":"Token balances fetched for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b:","polygon":"454852.0","timestamp":"2025-04-22T14:19:50.664Z"}
-{"level":"info","message":"GET /api/tokens/balances?address=0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-22T14:19:50.672Z"}
-{"level":"info","message":"Fetching token balances for address: 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-22T14:19:50.673Z"}
-{"balance":"1500000.0","contract":"0xd95a45fc46a7300e6022885afec3d618d7d3f27c","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on eth:","timestamp":"2025-04-22T14:19:51.088Z"}
-{"balance":"500000.0","contract":"0x4B294265720B09ca39BFBA18c7E368413c0f68eB","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on bsc:","timestamp":"2025-04-22T14:19:51.364Z"}
-{"level":"info","message":"GET /api/auth/check","timestamp":"2025-04-22T14:19:51.793Z"}
-{"level":"info","message":"[IdentityService] Found 2 identities for user 1","timestamp":"2025-04-22T14:19:51.795Z"}
-{"level":"info","message":"GET /api/auth/check","timestamp":"2025-04-22T14:19:51.805Z"}
-{"level":"info","message":"[IdentityService] Found 2 identities for user 1","timestamp":"2025-04-22T14:19:51.808Z"}
-{"level":"info","message":"GET /api/chat/history?count_only=true","timestamp":"2025-04-22T14:19:51.809Z"}
-{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-22T14:19:51.822Z"}
-{"level":"info","message":"[IdentityService] Found 2 identities for user 1","timestamp":"2025-04-22T14:19:51.824Z"}
-{"level":"info","message":"GET /api/chat/history?offset=2&limit=30","timestamp":"2025-04-22T14:19:51.826Z"}
-{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-22T14:19:51.836Z"}
-{"level":"info","message":"[IdentityService] Found 2 identities for user 1","timestamp":"2025-04-22T14:19:51.838Z"}
-{"balance":"499999.9","contract":"0xdce769b847a0a697239777d0b1c7dd33b6012ba0","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on arbitrum:","timestamp":"2025-04-22T14:19:52.001Z"}
-{"balance":"454852.0","contract":"0x351f59de4fedbdf7601f5592b93db3b9330c1c1d","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on polygon:","timestamp":"2025-04-22T14:19:52.747Z"}
-{"arbitrum":"499999.9","bsc":"500000.0","eth":"1500000.0","level":"info","message":"Token balances fetched for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b:","polygon":"454852.0","timestamp":"2025-04-22T14:19:52.747Z"}
-{"level":"info","message":"GET /api/tokens/balances?address=0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-22T14:19:52.755Z"}
-{"level":"info","message":"Fetching token balances for address: 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-22T14:19:52.756Z"}
-{"balance":"1500000.0","contract":"0xd95a45fc46a7300e6022885afec3d618d7d3f27c","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on eth:","timestamp":"2025-04-22T14:19:53.216Z"}
-{"balance":"500000.0","contract":"0x4B294265720B09ca39BFBA18c7E368413c0f68eB","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on bsc:","timestamp":"2025-04-22T14:19:53.518Z"}
-{"level":"info","message":"GET /api/auth/check","timestamp":"2025-04-22T14:19:53.631Z"}
-{"level":"info","message":"[IdentityService] Found 2 identities for user 1","timestamp":"2025-04-22T14:19:53.633Z"}
-{"level":"info","message":"GET /api/auth/check","timestamp":"2025-04-22T14:19:53.653Z"}
-{"level":"info","message":"GET /api/chat/history?count_only=true","timestamp":"2025-04-22T14:19:53.655Z"}
-{"level":"info","message":"[IdentityService] Found 2 identities for user 1","timestamp":"2025-04-22T14:19:53.656Z"}
-{"level":"info","message":"GET /api/chat/history?offset=2&limit=30","timestamp":"2025-04-22T14:19:53.688Z"}
-{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-22T14:19:53.690Z"}
-{"level":"info","message":"[IdentityService] Found 2 identities for user 1","timestamp":"2025-04-22T14:19:53.692Z"}
-{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-22T14:19:53.706Z"}
-{"level":"info","message":"[IdentityService] Found 2 identities for user 1","timestamp":"2025-04-22T14:19:53.708Z"}
-{"balance":"499999.9","contract":"0xdce769b847a0a697239777d0b1c7dd33b6012ba0","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on arbitrum:","timestamp":"2025-04-22T14:19:54.082Z"}
-{"balance":"454852.0","contract":"0x351f59de4fedbdf7601f5592b93db3b9330c1c1d","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on polygon:","timestamp":"2025-04-22T14:19:54.522Z"}
-{"arbitrum":"499999.9","bsc":"500000.0","eth":"1500000.0","level":"info","message":"Token balances fetched for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b:","polygon":"454852.0","timestamp":"2025-04-22T14:19:54.523Z"}
-{"level":"info","message":"GET /api/tokens/balances?address=0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-22T14:19:54.531Z"}
-{"level":"info","message":"Fetching token balances for address: 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-22T14:19:54.532Z"}
-{"balance":"1500000.0","contract":"0xd95a45fc46a7300e6022885afec3d618d7d3f27c","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on eth:","timestamp":"2025-04-22T14:19:55.014Z"}
-{"balance":"500000.0","contract":"0x4B294265720B09ca39BFBA18c7E368413c0f68eB","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on bsc:","timestamp":"2025-04-22T14:19:55.390Z"}
-{"level":"info","message":"GET /api/auth/check","timestamp":"2025-04-22T14:19:55.464Z"}
-{"level":"info","message":"[IdentityService] Found 2 identities for user 1","timestamp":"2025-04-22T14:19:55.465Z"}
-{"level":"info","message":"GET /api/auth/check","timestamp":"2025-04-22T14:19:55.475Z"}
-{"level":"info","message":"[IdentityService] Found 2 identities for user 1","timestamp":"2025-04-22T14:19:55.477Z"}
-{"level":"info","message":"GET /api/chat/history?count_only=true","timestamp":"2025-04-22T14:19:55.478Z"}
-{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-22T14:19:55.490Z"}
-{"level":"info","message":"[IdentityService] Found 2 identities for user 1","timestamp":"2025-04-22T14:19:55.495Z"}
-{"level":"info","message":"GET /api/chat/history?offset=2&limit=30","timestamp":"2025-04-22T14:19:55.498Z"}
-{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-22T14:19:55.509Z"}
-{"level":"info","message":"[IdentityService] Found 2 identities for user 1","timestamp":"2025-04-22T14:19:55.513Z"}
-{"level":"info","message":"GET /api/tokens/balances?address=0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-22T14:19:55.521Z"}
-{"level":"info","message":"Fetching token balances for address: 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-22T14:19:55.522Z"}
-{"balance":"1500000.0","contract":"0xd95a45fc46a7300e6022885afec3d618d7d3f27c","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on eth:","timestamp":"2025-04-22T14:19:56.010Z"}
-{"balance":"499999.9","contract":"0xdce769b847a0a697239777d0b1c7dd33b6012ba0","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on arbitrum:","timestamp":"2025-04-22T14:19:56.121Z"}
-{"balance":"454852.0","contract":"0x351f59de4fedbdf7601f5592b93db3b9330c1c1d","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on polygon:","timestamp":"2025-04-22T14:19:56.630Z"}
-{"arbitrum":"499999.9","bsc":"500000.0","eth":"1500000.0","level":"info","message":"Token balances fetched for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b:","polygon":"454852.0","timestamp":"2025-04-22T14:19:56.631Z"}
-{"level":"info","message":"GET /api/tokens/balances?address=0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-22T14:19:56.639Z"}
-{"level":"info","message":"Fetching token balances for address: 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-22T14:19:56.640Z"}
-{"balance":"500000.0","contract":"0x4B294265720B09ca39BFBA18c7E368413c0f68eB","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on bsc:","timestamp":"2025-04-22T14:19:56.678Z"}
-{"balance":"1500000.0","contract":"0xd95a45fc46a7300e6022885afec3d618d7d3f27c","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on eth:","timestamp":"2025-04-22T14:19:57.056Z"}
-{"balance":"499999.9","contract":"0xdce769b847a0a697239777d0b1c7dd33b6012ba0","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on arbitrum:","timestamp":"2025-04-22T14:19:57.250Z"}
-{"level":"info","message":"GET /api/auth/check","timestamp":"2025-04-22T14:19:57.299Z"}
-{"level":"info","message":"[IdentityService] Found 2 identities for user 1","timestamp":"2025-04-22T14:19:57.300Z"}
-{"level":"info","message":"GET /api/auth/check","timestamp":"2025-04-22T14:19:57.312Z"}
-{"level":"info","message":"[IdentityService] Found 2 identities for user 1","timestamp":"2025-04-22T14:19:57.314Z"}
-{"level":"info","message":"GET /api/chat/history?count_only=true","timestamp":"2025-04-22T14:19:57.320Z"}
-{"balance":"500000.0","contract":"0x4B294265720B09ca39BFBA18c7E368413c0f68eB","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on bsc:","timestamp":"2025-04-22T14:19:57.332Z"}
-{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-22T14:19:57.338Z"}
-{"level":"info","message":"[IdentityService] Found 2 identities for user 1","timestamp":"2025-04-22T14:19:57.346Z"}
-{"level":"info","message":"GET /api/chat/history?offset=2&limit=30","timestamp":"2025-04-22T14:19:57.352Z"}
-{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-22T14:19:57.360Z"}
-{"level":"info","message":"[IdentityService] Found 2 identities for user 1","timestamp":"2025-04-22T14:19:57.365Z"}
-{"balance":"454852.0","contract":"0x351f59de4fedbdf7601f5592b93db3b9330c1c1d","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on polygon:","timestamp":"2025-04-22T14:19:57.860Z"}
-{"arbitrum":"499999.9","bsc":"500000.0","eth":"1500000.0","level":"info","message":"Token balances fetched for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b:","polygon":"454852.0","timestamp":"2025-04-22T14:19:57.860Z"}
-{"balance":"499999.9","contract":"0xdce769b847a0a697239777d0b1c7dd33b6012ba0","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on arbitrum:","timestamp":"2025-04-22T14:19:57.901Z"}
-{"balance":"454852.0","contract":"0x351f59de4fedbdf7601f5592b93db3b9330c1c1d","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on polygon:","timestamp":"2025-04-22T14:19:58.306Z"}
-{"arbitrum":"499999.9","bsc":"500000.0","eth":"1500000.0","level":"info","message":"Token balances fetched for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b:","polygon":"454852.0","timestamp":"2025-04-22T14:19:58.306Z"}
-{"level":"info","message":"GET /api/tokens/balances?address=0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-22T14:19:58.314Z"}
-{"level":"info","message":"Fetching token balances for address: 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-22T14:19:58.314Z"}
-{"balance":"1500000.0","contract":"0xd95a45fc46a7300e6022885afec3d618d7d3f27c","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on eth:","timestamp":"2025-04-22T14:19:58.706Z"}
-{"balance":"500000.0","contract":"0x4B294265720B09ca39BFBA18c7E368413c0f68eB","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on bsc:","timestamp":"2025-04-22T14:19:58.973Z"}
-{"level":"info","message":"GET /api/auth/check","timestamp":"2025-04-22T14:19:59.129Z"}
-{"level":"info","message":"[IdentityService] Found 2 identities for user 1","timestamp":"2025-04-22T14:19:59.131Z"}
-{"level":"info","message":"GET /api/auth/check","timestamp":"2025-04-22T14:19:59.146Z"}
-{"level":"info","message":"[IdentityService] Found 2 identities for user 1","timestamp":"2025-04-22T14:19:59.148Z"}
-{"level":"info","message":"GET /api/chat/history?count_only=true","timestamp":"2025-04-22T14:19:59.151Z"}
-{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-22T14:19:59.171Z"}
-{"level":"info","message":"GET /api/chat/history?offset=2&limit=30","timestamp":"2025-04-22T14:19:59.173Z"}
-{"level":"info","message":"[IdentityService] Found 2 identities for user 1","timestamp":"2025-04-22T14:19:59.176Z"}
-{"level":"info","message":"GET /api/tokens/balances?address=0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-22T14:19:59.191Z"}
-{"level":"info","message":"Fetching token balances for address: 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-22T14:19:59.192Z"}
-{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-22T14:19:59.204Z"}
-{"level":"info","message":"[IdentityService] Found 2 identities for user 1","timestamp":"2025-04-22T14:19:59.206Z"}
-{"balance":"499999.9","contract":"0xdce769b847a0a697239777d0b1c7dd33b6012ba0","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on arbitrum:","timestamp":"2025-04-22T14:19:59.665Z"}
-{"balance":"1500000.0","contract":"0xd95a45fc46a7300e6022885afec3d618d7d3f27c","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on eth:","timestamp":"2025-04-22T14:19:59.666Z"}
-{"balance":"500000.0","contract":"0x4B294265720B09ca39BFBA18c7E368413c0f68eB","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on bsc:","timestamp":"2025-04-22T14:20:00.139Z"}
-{"balance":"454852.0","contract":"0x351f59de4fedbdf7601f5592b93db3b9330c1c1d","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on polygon:","timestamp":"2025-04-22T14:20:00.140Z"}
-{"arbitrum":"499999.9","bsc":"500000.0","eth":"1500000.0","level":"info","message":"Token balances fetched for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b:","polygon":"454852.0","timestamp":"2025-04-22T14:20:00.140Z"}
-{"level":"info","message":"GET /api/tokens/balances?address=0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-22T14:20:00.150Z"}
-{"level":"info","message":"Fetching token balances for address: 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-22T14:20:00.151Z"}
-{"balance":"1500000.0","contract":"0xd95a45fc46a7300e6022885afec3d618d7d3f27c","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on eth:","timestamp":"2025-04-22T14:20:00.586Z"}
-{"balance":"499999.9","contract":"0xdce769b847a0a697239777d0b1c7dd33b6012ba0","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on arbitrum:","timestamp":"2025-04-22T14:20:00.737Z"}
-{"balance":"500000.0","contract":"0x4B294265720B09ca39BFBA18c7E368413c0f68eB","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on bsc:","timestamp":"2025-04-22T14:20:00.850Z"}
-{"level":"info","message":"GET /api/auth/check","timestamp":"2025-04-22T14:20:00.961Z"}
-{"level":"info","message":"[IdentityService] Found 2 identities for user 1","timestamp":"2025-04-22T14:20:00.962Z"}
-{"level":"info","message":"GET /api/auth/check","timestamp":"2025-04-22T14:20:00.971Z"}
-{"level":"info","message":"[IdentityService] Found 2 identities for user 1","timestamp":"2025-04-22T14:20:00.974Z"}
-{"level":"info","message":"GET /api/chat/history?count_only=true","timestamp":"2025-04-22T14:20:00.975Z"}
-{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-22T14:20:00.988Z"}
-{"level":"info","message":"[IdentityService] Found 2 identities for user 1","timestamp":"2025-04-22T14:20:00.992Z"}
-{"level":"info","message":"GET /api/chat/history?offset=2&limit=30","timestamp":"2025-04-22T14:20:00.995Z"}
-{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-22T14:20:01.006Z"}
-{"level":"info","message":"[IdentityService] Found 2 identities for user 1","timestamp":"2025-04-22T14:20:01.008Z"}
-{"level":"info","message":"GET /api/tokens/balances?address=0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-22T14:20:01.030Z"}
-{"level":"info","message":"Fetching token balances for address: 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-22T14:20:01.030Z"}
-{"balance":"454852.0","contract":"0x351f59de4fedbdf7601f5592b93db3b9330c1c1d","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on polygon:","timestamp":"2025-04-22T14:20:01.597Z"}
-{"arbitrum":"499999.9","bsc":"500000.0","eth":"1500000.0","level":"info","message":"Token balances fetched for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b:","polygon":"454852.0","timestamp":"2025-04-22T14:20:01.598Z"}
-{"balance":"1500000.0","contract":"0xd95a45fc46a7300e6022885afec3d618d7d3f27c","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on eth:","timestamp":"2025-04-22T14:20:02.164Z"}
-{"balance":"499999.9","contract":"0xdce769b847a0a697239777d0b1c7dd33b6012ba0","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on arbitrum:","timestamp":"2025-04-22T14:20:02.167Z"}
-{"level":"info","message":"GET /api/tokens/balances?address=0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-22T14:20:02.398Z"}
-{"level":"info","message":"Fetching token balances for address: 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-22T14:20:02.398Z"}
-{"balance":"500000.0","contract":"0x4B294265720B09ca39BFBA18c7E368413c0f68eB","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on bsc:","timestamp":"2025-04-22T14:20:02.429Z"}
-{"balance":"454852.0","contract":"0x351f59de4fedbdf7601f5592b93db3b9330c1c1d","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on polygon:","timestamp":"2025-04-22T14:20:02.559Z"}
-{"arbitrum":"499999.9","bsc":"500000.0","eth":"1500000.0","level":"info","message":"Token balances fetched for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b:","polygon":"454852.0","timestamp":"2025-04-22T14:20:02.559Z"}
-{"level":"info","message":"GET /api/tokens/balances?address=0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-22T14:20:02.568Z"}
-{"level":"info","message":"Fetching token balances for address: 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-22T14:20:02.569Z"}
-{"balance":"1500000.0","contract":"0xd95a45fc46a7300e6022885afec3d618d7d3f27c","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on eth:","timestamp":"2025-04-22T14:20:02.793Z"}
-{"balance":"1500000.0","contract":"0xd95a45fc46a7300e6022885afec3d618d7d3f27c","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on eth:","timestamp":"2025-04-22T14:20:02.793Z"}
-{"level":"info","message":"GET /api/auth/check","timestamp":"2025-04-22T14:20:02.796Z"}
-{"level":"info","message":"[IdentityService] Found 2 identities for user 1","timestamp":"2025-04-22T14:20:02.797Z"}
-{"level":"info","message":"GET /api/auth/check","timestamp":"2025-04-22T14:20:02.809Z"}
-{"level":"info","message":"[IdentityService] Found 2 identities for user 1","timestamp":"2025-04-22T14:20:02.811Z"}
-{"level":"info","message":"GET /api/chat/history?count_only=true","timestamp":"2025-04-22T14:20:02.815Z"}
-{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-22T14:20:02.827Z"}
-{"level":"info","message":"[IdentityService] Found 2 identities for user 1","timestamp":"2025-04-22T14:20:02.829Z"}
-{"level":"info","message":"GET /api/chat/history?offset=2&limit=30","timestamp":"2025-04-22T14:20:02.834Z"}
-{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-22T14:20:02.844Z"}
-{"level":"info","message":"[IdentityService] Found 2 identities for user 1","timestamp":"2025-04-22T14:20:02.846Z"}
-{"balance":"500000.0","contract":"0x4B294265720B09ca39BFBA18c7E368413c0f68eB","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on bsc:","timestamp":"2025-04-22T14:20:03.040Z"}
-{"balance":"500000.0","contract":"0x4B294265720B09ca39BFBA18c7E368413c0f68eB","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on bsc:","timestamp":"2025-04-22T14:20:03.040Z"}
-{"balance":"499999.9","contract":"0xdce769b847a0a697239777d0b1c7dd33b6012ba0","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on arbitrum:","timestamp":"2025-04-22T14:20:03.064Z"}
-{"balance":"499999.9","contract":"0xdce769b847a0a697239777d0b1c7dd33b6012ba0","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on arbitrum:","timestamp":"2025-04-22T14:20:03.354Z"}
-{"balance":"499999.9","contract":"0xdce769b847a0a697239777d0b1c7dd33b6012ba0","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on arbitrum:","timestamp":"2025-04-22T14:20:03.354Z"}
-{"balance":"454852.0","contract":"0x351f59de4fedbdf7601f5592b93db3b9330c1c1d","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on polygon:","timestamp":"2025-04-22T14:20:03.461Z"}
-{"arbitrum":"499999.9","bsc":"500000.0","eth":"1500000.0","level":"info","message":"Token balances fetched for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b:","polygon":"454852.0","timestamp":"2025-04-22T14:20:03.462Z"}
-{"balance":"454852.0","contract":"0x351f59de4fedbdf7601f5592b93db3b9330c1c1d","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on polygon:","timestamp":"2025-04-22T14:20:03.687Z"}
-{"arbitrum":"499999.9","bsc":"500000.0","eth":"1500000.0","level":"info","message":"Token balances fetched for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b:","polygon":"454852.0","timestamp":"2025-04-22T14:20:03.688Z"}
-{"balance":"454852.0","contract":"0x351f59de4fedbdf7601f5592b93db3b9330c1c1d","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on polygon:","timestamp":"2025-04-22T14:20:03.688Z"}
-{"arbitrum":"499999.9","bsc":"500000.0","eth":"1500000.0","level":"info","message":"Token balances fetched for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b:","polygon":"454852.0","timestamp":"2025-04-22T14:20:03.688Z"}
-{"level":"info","message":"GET /api/tokens/balances?address=0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-22T14:20:03.700Z"}
-{"level":"info","message":"Fetching token balances for address: 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-22T14:20:03.700Z"}
-{"balance":"1500000.0","contract":"0xd95a45fc46a7300e6022885afec3d618d7d3f27c","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on eth:","timestamp":"2025-04-22T14:20:04.110Z"}
-{"balance":"500000.0","contract":"0x4B294265720B09ca39BFBA18c7E368413c0f68eB","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on bsc:","timestamp":"2025-04-22T14:20:04.377Z"}
-{"level":"info","message":"GET /api/auth/check","timestamp":"2025-04-22T14:20:04.620Z"}
-{"level":"info","message":"[IdentityService] Found 2 identities for user 1","timestamp":"2025-04-22T14:20:04.622Z"}
-{"level":"info","message":"GET /api/auth/check","timestamp":"2025-04-22T14:20:04.632Z"}
-{"level":"info","message":"[IdentityService] Found 2 identities for user 1","timestamp":"2025-04-22T14:20:04.634Z"}
-{"level":"info","message":"GET /api/chat/history?count_only=true","timestamp":"2025-04-22T14:20:04.636Z"}
-{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-22T14:20:04.648Z"}
-{"level":"info","message":"[IdentityService] Found 2 identities for user 1","timestamp":"2025-04-22T14:20:04.652Z"}
-{"level":"info","message":"GET /api/chat/history?offset=2&limit=30","timestamp":"2025-04-22T14:20:04.657Z"}
-{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-22T14:20:04.664Z"}
-{"level":"info","message":"[IdentityService] Found 2 identities for user 1","timestamp":"2025-04-22T14:20:04.669Z"}
-{"balance":"499999.9","contract":"0xdce769b847a0a697239777d0b1c7dd33b6012ba0","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on arbitrum:","timestamp":"2025-04-22T14:20:04.971Z"}
-{"balance":"454852.0","contract":"0x351f59de4fedbdf7601f5592b93db3b9330c1c1d","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on polygon:","timestamp":"2025-04-22T14:20:05.390Z"}
-{"arbitrum":"499999.9","bsc":"500000.0","eth":"1500000.0","level":"info","message":"Token balances fetched for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b:","polygon":"454852.0","timestamp":"2025-04-22T14:20:05.390Z"}
-{"level":"info","message":"GET /api/tokens/balances?address=0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-22T14:20:05.397Z"}
-{"level":"info","message":"Fetching token balances for address: 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-22T14:20:05.398Z"}
-{"balance":"1500000.0","contract":"0xd95a45fc46a7300e6022885afec3d618d7d3f27c","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on eth:","timestamp":"2025-04-22T14:20:05.881Z"}
-{"balance":"500000.0","contract":"0x4B294265720B09ca39BFBA18c7E368413c0f68eB","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on bsc:","timestamp":"2025-04-22T14:20:06.187Z"}
-{"level":"info","message":"GET /api/auth/check","timestamp":"2025-04-22T14:20:06.466Z"}
-{"level":"info","message":"[IdentityService] Found 2 identities for user 1","timestamp":"2025-04-22T14:20:06.468Z"}
-{"level":"info","message":"GET /api/auth/check","timestamp":"2025-04-22T14:20:06.486Z"}
-{"level":"info","message":"[IdentityService] Found 2 identities for user 1","timestamp":"2025-04-22T14:20:06.488Z"}
-{"level":"info","message":"GET /api/chat/history?count_only=true","timestamp":"2025-04-22T14:20:06.492Z"}
-{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-22T14:20:06.507Z"}
-{"level":"info","message":"GET /api/chat/history?offset=2&limit=30","timestamp":"2025-04-22T14:20:06.509Z"}
-{"level":"info","message":"[IdentityService] Found 2 identities for user 1","timestamp":"2025-04-22T14:20:06.510Z"}
-{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-22T14:20:06.526Z"}
-{"level":"info","message":"[IdentityService] Found 2 identities for user 1","timestamp":"2025-04-22T14:20:06.532Z"}
-{"level":"info","message":"GET /api/tokens/balances?address=0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-22T14:20:06.798Z"}
-{"level":"info","message":"Fetching token balances for address: 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-22T14:20:06.799Z"}
-{"balance":"499999.9","contract":"0xdce769b847a0a697239777d0b1c7dd33b6012ba0","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on arbitrum:","timestamp":"2025-04-22T14:20:06.862Z"}
-{"balance":"1500000.0","contract":"0xd95a45fc46a7300e6022885afec3d618d7d3f27c","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on eth:","timestamp":"2025-04-22T14:20:07.252Z"}
-{"balance":"454852.0","contract":"0x351f59de4fedbdf7601f5592b93db3b9330c1c1d","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on polygon:","timestamp":"2025-04-22T14:20:07.305Z"}
-{"arbitrum":"499999.9","bsc":"500000.0","eth":"1500000.0","level":"info","message":"Token balances fetched for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b:","polygon":"454852.0","timestamp":"2025-04-22T14:20:07.305Z"}
-{"level":"info","message":"GET /api/tokens/balances?address=0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-22T14:20:07.314Z"}
-{"level":"info","message":"Fetching token balances for address: 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-22T14:20:07.315Z"}
-{"balance":"500000.0","contract":"0x4B294265720B09ca39BFBA18c7E368413c0f68eB","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on bsc:","timestamp":"2025-04-22T14:20:07.533Z"}
-{"balance":"1500000.0","contract":"0xd95a45fc46a7300e6022885afec3d618d7d3f27c","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on eth:","timestamp":"2025-04-22T14:20:07.729Z"}
-{"balance":"500000.0","contract":"0x4B294265720B09ca39BFBA18c7E368413c0f68eB","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on bsc:","timestamp":"2025-04-22T14:20:08.004Z"}
-{"balance":"499999.9","contract":"0xdce769b847a0a697239777d0b1c7dd33b6012ba0","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on arbitrum:","timestamp":"2025-04-22T14:20:08.100Z"}
-{"level":"info","message":"GET /api/auth/check","timestamp":"2025-04-22T14:20:08.295Z"}
-{"level":"info","message":"[IdentityService] Found 2 identities for user 1","timestamp":"2025-04-22T14:20:08.296Z"}
-{"level":"info","message":"GET /api/auth/check","timestamp":"2025-04-22T14:20:08.307Z"}
-{"level":"info","message":"[IdentityService] Found 2 identities for user 1","timestamp":"2025-04-22T14:20:08.311Z"}
-{"level":"info","message":"GET /api/chat/history?count_only=true","timestamp":"2025-04-22T14:20:08.313Z"}
-{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-22T14:20:08.328Z"}
-{"level":"info","message":"[IdentityService] Found 2 identities for user 1","timestamp":"2025-04-22T14:20:08.331Z"}
-{"level":"info","message":"GET /api/chat/history?offset=2&limit=30","timestamp":"2025-04-22T14:20:08.338Z"}
-{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-22T14:20:08.349Z"}
-{"level":"info","message":"[IdentityService] Found 2 identities for user 1","timestamp":"2025-04-22T14:20:08.351Z"}
-{"balance":"499999.9","contract":"0xdce769b847a0a697239777d0b1c7dd33b6012ba0","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on arbitrum:","timestamp":"2025-04-22T14:20:08.439Z"}
-{"balance":"454852.0","contract":"0x351f59de4fedbdf7601f5592b93db3b9330c1c1d","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on polygon:","timestamp":"2025-04-22T14:20:08.606Z"}
-{"arbitrum":"499999.9","bsc":"500000.0","eth":"1500000.0","level":"info","message":"Token balances fetched for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b:","polygon":"454852.0","timestamp":"2025-04-22T14:20:08.606Z"}
-{"balance":"454852.0","contract":"0x351f59de4fedbdf7601f5592b93db3b9330c1c1d","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on polygon:","timestamp":"2025-04-22T14:20:08.843Z"}
-{"arbitrum":"499999.9","bsc":"500000.0","eth":"1500000.0","level":"info","message":"Token balances fetched for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b:","polygon":"454852.0","timestamp":"2025-04-22T14:20:08.843Z"}
-{"level":"info","message":"GET /api/tokens/balances?address=0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-22T14:20:08.851Z"}
-{"level":"info","message":"Fetching token balances for address: 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-22T14:20:08.852Z"}
-{"balance":"1500000.0","contract":"0xd95a45fc46a7300e6022885afec3d618d7d3f27c","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on eth:","timestamp":"2025-04-22T14:20:09.429Z"}
-{"balance":"500000.0","contract":"0x4B294265720B09ca39BFBA18c7E368413c0f68eB","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on bsc:","timestamp":"2025-04-22T14:20:12.403Z"}
-{"level":"info","message":"GET /api/auth/check","timestamp":"2025-04-22T14:20:12.846Z"}
-{"level":"info","message":"[IdentityService] Found 2 identities for user 1","timestamp":"2025-04-22T14:20:12.847Z"}
-{"level":"info","message":"GET /api/auth/check","timestamp":"2025-04-22T14:20:12.858Z"}
-{"level":"info","message":"[IdentityService] Found 2 identities for user 1","timestamp":"2025-04-22T14:20:12.860Z"}
-{"level":"info","message":"GET /api/chat/history?count_only=true","timestamp":"2025-04-22T14:20:12.861Z"}
-{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-22T14:20:12.873Z"}
-{"level":"info","message":"[IdentityService] Found 2 identities for user 1","timestamp":"2025-04-22T14:20:12.878Z"}
-{"level":"info","message":"GET /api/chat/history?offset=2&limit=30","timestamp":"2025-04-22T14:20:12.881Z"}
-{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-22T14:20:12.891Z"}
-{"level":"info","message":"[IdentityService] Found 2 identities for user 1","timestamp":"2025-04-22T14:20:12.894Z"}
-{"level":"info","message":"GET /api/tokens/balances?address=0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-22T14:20:12.897Z"}
-{"level":"info","message":"Fetching token balances for address: 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-22T14:20:12.901Z"}
-{"balance":"499999.9","contract":"0xdce769b847a0a697239777d0b1c7dd33b6012ba0","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on arbitrum:","timestamp":"2025-04-22T14:20:13.006Z"}
-{"balance":"1500000.0","contract":"0xd95a45fc46a7300e6022885afec3d618d7d3f27c","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on eth:","timestamp":"2025-04-22T14:20:13.390Z"}
-{"balance":"454852.0","contract":"0x351f59de4fedbdf7601f5592b93db3b9330c1c1d","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on polygon:","timestamp":"2025-04-22T14:20:13.444Z"}
-{"arbitrum":"499999.9","bsc":"500000.0","eth":"1500000.0","level":"info","message":"Token balances fetched for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b:","polygon":"454852.0","timestamp":"2025-04-22T14:20:13.444Z"}
-{"level":"info","message":"GET /api/tokens/balances?address=0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-22T14:20:13.453Z"}
-{"level":"info","message":"Fetching token balances for address: 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-22T14:20:13.454Z"}
-{"balance":"500000.0","contract":"0x4B294265720B09ca39BFBA18c7E368413c0f68eB","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on bsc:","timestamp":"2025-04-22T14:20:13.668Z"}
-{"balance":"1500000.0","contract":"0xd95a45fc46a7300e6022885afec3d618d7d3f27c","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on eth:","timestamp":"2025-04-22T14:20:13.870Z"}
-{"balance":"500000.0","contract":"0x4B294265720B09ca39BFBA18c7E368413c0f68eB","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on bsc:","timestamp":"2025-04-22T14:20:14.182Z"}
-{"balance":"499999.9","contract":"0xdce769b847a0a697239777d0b1c7dd33b6012ba0","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on arbitrum:","timestamp":"2025-04-22T14:20:14.320Z"}
-{"level":"info","message":"GET /api/auth/check","timestamp":"2025-04-22T14:20:14.680Z"}
-{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-22T14:20:14.682Z"}
-{"level":"info","message":"[IdentityService] Found 2 identities for user 1","timestamp":"2025-04-22T14:20:14.685Z"}
-{"level":"info","message":"[IdentityService] Found 2 identities for user 1","timestamp":"2025-04-22T14:20:14.686Z"}
-{"balance":"499999.9","contract":"0xdce769b847a0a697239777d0b1c7dd33b6012ba0","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on arbitrum:","timestamp":"2025-04-22T14:20:14.696Z"}
-{"level":"info","message":"GET /api/auth/check","timestamp":"2025-04-22T14:20:14.704Z"}
-{"level":"info","message":"GET /api/chat/history?count_only=true","timestamp":"2025-04-22T14:20:14.706Z"}
-{"level":"info","message":"[IdentityService] Found 2 identities for user 1","timestamp":"2025-04-22T14:20:14.712Z"}
-{"level":"info","message":"GET /api/chat/history?offset=2&limit=30","timestamp":"2025-04-22T14:20:14.728Z"}
-{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-22T14:20:14.729Z"}
-{"level":"info","message":"[IdentityService] Found 2 identities for user 1","timestamp":"2025-04-22T14:20:14.731Z"}
-{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-22T14:20:14.744Z"}
-{"level":"info","message":"[IdentityService] Found 2 identities for user 1","timestamp":"2025-04-22T14:20:14.749Z"}
-{"balance":"454852.0","contract":"0x351f59de4fedbdf7601f5592b93db3b9330c1c1d","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on polygon:","timestamp":"2025-04-22T14:20:14.761Z"}
-{"arbitrum":"499999.9","bsc":"500000.0","eth":"1500000.0","level":"info","message":"Token balances fetched for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b:","polygon":"454852.0","timestamp":"2025-04-22T14:20:14.761Z"}
-{"balance":"454852.0","contract":"0x351f59de4fedbdf7601f5592b93db3b9330c1c1d","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on polygon:","timestamp":"2025-04-22T14:20:14.966Z"}
-{"arbitrum":"499999.9","bsc":"500000.0","eth":"1500000.0","level":"info","message":"Token balances fetched for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b:","polygon":"454852.0","timestamp":"2025-04-22T14:20:14.966Z"}
-{"level":"info","message":"GET /api/tokens/balances?address=0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-22T14:20:14.976Z"}
-{"level":"info","message":"Fetching token balances for address: 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-22T14:20:14.977Z"}
-{"balance":"1500000.0","contract":"0xd95a45fc46a7300e6022885afec3d618d7d3f27c","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on eth:","timestamp":"2025-04-22T14:20:15.387Z"}
-{"balance":"500000.0","contract":"0x4B294265720B09ca39BFBA18c7E368413c0f68eB","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on bsc:","timestamp":"2025-04-22T14:20:15.658Z"}
-{"balance":"499999.9","contract":"0xdce769b847a0a697239777d0b1c7dd33b6012ba0","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on arbitrum:","timestamp":"2025-04-22T14:20:16.337Z"}
-{"level":"info","message":"GET /api/auth/check","timestamp":"2025-04-22T14:20:16.508Z"}
-{"level":"info","message":"[IdentityService] Found 2 identities for user 1","timestamp":"2025-04-22T14:20:16.509Z"}
-{"level":"info","message":"GET /api/auth/check","timestamp":"2025-04-22T14:20:16.518Z"}
-{"level":"info","message":"GET /api/chat/history?count_only=true","timestamp":"2025-04-22T14:20:16.523Z"}
-{"level":"info","message":"[IdentityService] Found 2 identities for user 1","timestamp":"2025-04-22T14:20:16.525Z"}
-{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-22T14:20:16.540Z"}
-{"level":"info","message":"GET /api/chat/history?offset=2&limit=30","timestamp":"2025-04-22T14:20:16.542Z"}
-{"level":"info","message":"[IdentityService] Found 2 identities for user 1","timestamp":"2025-04-22T14:20:16.543Z"}
-{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-22T14:20:16.556Z"}
-{"level":"info","message":"[IdentityService] Found 2 identities for user 1","timestamp":"2025-04-22T14:20:16.558Z"}
-{"level":"info","message":"GET /api/tokens/balances?address=0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-22T14:20:16.568Z"}
-{"level":"info","message":"Fetching token balances for address: 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-22T14:20:16.569Z"}
-{"balance":"454852.0","contract":"0x351f59de4fedbdf7601f5592b93db3b9330c1c1d","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on polygon:","timestamp":"2025-04-22T14:20:16.865Z"}
-{"arbitrum":"499999.9","bsc":"500000.0","eth":"1500000.0","level":"info","message":"Token balances fetched for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b:","polygon":"454852.0","timestamp":"2025-04-22T14:20:16.865Z"}
-{"level":"info","message":"GET /api/tokens/balances?address=0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-22T14:20:16.872Z"}
-{"level":"info","message":"Fetching token balances for address: 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-22T14:20:16.873Z"}
-{"balance":"1500000.0","contract":"0xd95a45fc46a7300e6022885afec3d618d7d3f27c","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on eth:","timestamp":"2025-04-22T14:20:17.052Z"}
-{"balance":"1500000.0","contract":"0xd95a45fc46a7300e6022885afec3d618d7d3f27c","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on eth:","timestamp":"2025-04-22T14:20:17.281Z"}
-{"balance":"500000.0","contract":"0x4B294265720B09ca39BFBA18c7E368413c0f68eB","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on bsc:","timestamp":"2025-04-22T14:20:17.552Z"}
-{"balance":"500000.0","contract":"0x4B294265720B09ca39BFBA18c7E368413c0f68eB","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on bsc:","timestamp":"2025-04-22T14:20:17.713Z"}
-{"balance":"499999.9","contract":"0xdce769b847a0a697239777d0b1c7dd33b6012ba0","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on arbitrum:","timestamp":"2025-04-22T14:20:18.146Z"}
-{"balance":"499999.9","contract":"0xdce769b847a0a697239777d0b1c7dd33b6012ba0","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on arbitrum:","timestamp":"2025-04-22T14:20:18.146Z"}
-{"level":"info","message":"GET /api/auth/check","timestamp":"2025-04-22T14:20:18.351Z"}
-{"level":"info","message":"[IdentityService] Found 2 identities for user 1","timestamp":"2025-04-22T14:20:18.352Z"}
-{"level":"info","message":"GET /api/auth/check","timestamp":"2025-04-22T14:20:18.365Z"}
-{"level":"info","message":"[IdentityService] Found 2 identities for user 1","timestamp":"2025-04-22T14:20:18.369Z"}
-{"level":"info","message":"GET /api/chat/history?count_only=true","timestamp":"2025-04-22T14:20:18.370Z"}
-{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-22T14:20:18.386Z"}
-{"level":"info","message":"[IdentityService] Found 2 identities for user 1","timestamp":"2025-04-22T14:20:18.389Z"}
-{"level":"info","message":"GET /api/chat/history?offset=2&limit=30","timestamp":"2025-04-22T14:20:18.391Z"}
-{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-22T14:20:18.405Z"}
-{"level":"info","message":"[IdentityService] Found 2 identities for user 1","timestamp":"2025-04-22T14:20:18.407Z"}
-{"balance":"454852.0","contract":"0x351f59de4fedbdf7601f5592b93db3b9330c1c1d","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on polygon:","timestamp":"2025-04-22T14:20:18.558Z"}
-{"arbitrum":"499999.9","bsc":"500000.0","eth":"1500000.0","level":"info","message":"Token balances fetched for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b:","polygon":"454852.0","timestamp":"2025-04-22T14:20:18.558Z"}
-{"balance":"454852.0","contract":"0x351f59de4fedbdf7601f5592b93db3b9330c1c1d","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on polygon:","timestamp":"2025-04-22T14:20:18.558Z"}
-{"arbitrum":"499999.9","bsc":"500000.0","eth":"1500000.0","level":"info","message":"Token balances fetched for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b:","polygon":"454852.0","timestamp":"2025-04-22T14:20:18.558Z"}
-{"level":"info","message":"GET /api/tokens/balances?address=0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-22T14:20:18.568Z"}
-{"level":"info","message":"Fetching token balances for address: 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-22T14:20:18.569Z"}
-{"balance":"1500000.0","contract":"0xd95a45fc46a7300e6022885afec3d618d7d3f27c","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on eth:","timestamp":"2025-04-22T14:20:18.976Z"}
-{"balance":"500000.0","contract":"0x4B294265720B09ca39BFBA18c7E368413c0f68eB","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on bsc:","timestamp":"2025-04-22T14:20:19.247Z"}
-{"level":"info","message":"GET /api/tokens/balances?address=0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-22T14:20:19.372Z"}
-{"level":"info","message":"Fetching token balances for address: 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-22T14:20:19.372Z"}
-{"balance":"1500000.0","contract":"0xd95a45fc46a7300e6022885afec3d618d7d3f27c","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on eth:","timestamp":"2025-04-22T14:20:19.792Z"}
-{"balance":"499999.9","contract":"0xdce769b847a0a697239777d0b1c7dd33b6012ba0","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on arbitrum:","timestamp":"2025-04-22T14:20:19.827Z"}
-{"balance":"500000.0","contract":"0x4B294265720B09ca39BFBA18c7E368413c0f68eB","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on bsc:","timestamp":"2025-04-22T14:20:20.067Z"}
-{"level":"info","message":"GET /api/auth/check","timestamp":"2025-04-22T14:20:20.177Z"}
-{"level":"info","message":"[IdentityService] Found 2 identities for user 1","timestamp":"2025-04-22T14:20:20.179Z"}
-{"level":"info","message":"GET /api/auth/check","timestamp":"2025-04-22T14:20:20.188Z"}
-{"level":"info","message":"[IdentityService] Found 2 identities for user 1","timestamp":"2025-04-22T14:20:20.191Z"}
-{"level":"info","message":"GET /api/chat/history?count_only=true","timestamp":"2025-04-22T14:20:20.192Z"}
-{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-22T14:20:20.206Z"}
-{"level":"info","message":"[IdentityService] Found 2 identities for user 1","timestamp":"2025-04-22T14:20:20.210Z"}
-{"level":"info","message":"GET /api/chat/history?offset=2&limit=30","timestamp":"2025-04-22T14:20:20.212Z"}
-{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-22T14:20:20.227Z"}
-{"level":"info","message":"[IdentityService] Found 2 identities for user 1","timestamp":"2025-04-22T14:20:20.228Z"}
-{"balance":"454852.0","contract":"0x351f59de4fedbdf7601f5592b93db3b9330c1c1d","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on polygon:","timestamp":"2025-04-22T14:20:20.250Z"}
-{"arbitrum":"499999.9","bsc":"500000.0","eth":"1500000.0","level":"info","message":"Token balances fetched for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b:","polygon":"454852.0","timestamp":"2025-04-22T14:20:20.250Z"}
-{"level":"info","message":"GET /api/tokens/balances?address=0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-22T14:20:20.258Z"}
-{"level":"info","message":"Fetching token balances for address: 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-22T14:20:20.259Z"}
-{"level":"info","message":"GET /api/tokens/balances?address=0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-22T14:20:20.260Z"}
-{"level":"info","message":"Fetching token balances for address: 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-22T14:20:20.261Z"}
-{"balance":"499999.9","contract":"0xdce769b847a0a697239777d0b1c7dd33b6012ba0","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on arbitrum:","timestamp":"2025-04-22T14:20:20.649Z"}
-{"balance":"1500000.0","contract":"0xd95a45fc46a7300e6022885afec3d618d7d3f27c","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on eth:","timestamp":"2025-04-22T14:20:20.712Z"}
-{"balance":"1500000.0","contract":"0xd95a45fc46a7300e6022885afec3d618d7d3f27c","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on eth:","timestamp":"2025-04-22T14:20:20.713Z"}
-{"balance":"500000.0","contract":"0x4B294265720B09ca39BFBA18c7E368413c0f68eB","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on bsc:","timestamp":"2025-04-22T14:20:21.030Z"}
-{"balance":"500000.0","contract":"0x4B294265720B09ca39BFBA18c7E368413c0f68eB","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on bsc:","timestamp":"2025-04-22T14:20:21.031Z"}
-{"balance":"454852.0","contract":"0x351f59de4fedbdf7601f5592b93db3b9330c1c1d","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on polygon:","timestamp":"2025-04-22T14:20:21.073Z"}
-{"arbitrum":"499999.9","bsc":"500000.0","eth":"1500000.0","level":"info","message":"Token balances fetched for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b:","polygon":"454852.0","timestamp":"2025-04-22T14:20:21.074Z"}
-{"balance":"499999.9","contract":"0xdce769b847a0a697239777d0b1c7dd33b6012ba0","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on arbitrum:","timestamp":"2025-04-22T14:20:21.669Z"}
-{"balance":"499999.9","contract":"0xdce769b847a0a697239777d0b1c7dd33b6012ba0","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on arbitrum:","timestamp":"2025-04-22T14:20:21.670Z"}
-{"level":"info","message":"GET /api/auth/check","timestamp":"2025-04-22T14:20:22.008Z"}
-{"level":"info","message":"[IdentityService] Found 2 identities for user 1","timestamp":"2025-04-22T14:20:22.009Z"}
-{"level":"info","message":"GET /api/auth/check","timestamp":"2025-04-22T14:20:22.019Z"}
-{"level":"info","message":"[IdentityService] Found 2 identities for user 1","timestamp":"2025-04-22T14:20:22.023Z"}
-{"level":"info","message":"GET /api/chat/history?count_only=true","timestamp":"2025-04-22T14:20:22.024Z"}
-{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-22T14:20:22.038Z"}
-{"level":"info","message":"GET /api/chat/history?offset=2&limit=30","timestamp":"2025-04-22T14:20:22.041Z"}
-{"level":"info","message":"[IdentityService] Found 2 identities for user 1","timestamp":"2025-04-22T14:20:22.042Z"}
-{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-22T14:20:22.055Z"}
-{"level":"info","message":"[IdentityService] Found 2 identities for user 1","timestamp":"2025-04-22T14:20:22.059Z"}
-{"balance":"454852.0","contract":"0x351f59de4fedbdf7601f5592b93db3b9330c1c1d","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on polygon:","timestamp":"2025-04-22T14:20:22.341Z"}
-{"arbitrum":"499999.9","bsc":"500000.0","eth":"1500000.0","level":"info","message":"Token balances fetched for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b:","polygon":"454852.0","timestamp":"2025-04-22T14:20:22.341Z"}
-{"balance":"454852.0","contract":"0x351f59de4fedbdf7601f5592b93db3b9330c1c1d","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on polygon:","timestamp":"2025-04-22T14:20:22.341Z"}
-{"arbitrum":"499999.9","bsc":"500000.0","eth":"1500000.0","level":"info","message":"Token balances fetched for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b:","polygon":"454852.0","timestamp":"2025-04-22T14:20:22.342Z"}
-{"level":"info","message":"GET /api/tokens/balances?address=0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-22T14:20:22.351Z"}
-{"level":"info","message":"Fetching token balances for address: 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-22T14:20:22.352Z"}
-{"balance":"1500000.0","contract":"0xd95a45fc46a7300e6022885afec3d618d7d3f27c","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on eth:","timestamp":"2025-04-22T14:20:22.782Z"}
-{"balance":"500000.0","contract":"0x4B294265720B09ca39BFBA18c7E368413c0f68eB","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on bsc:","timestamp":"2025-04-22T14:20:23.110Z"}
-{"balance":"499999.9","contract":"0xdce769b847a0a697239777d0b1c7dd33b6012ba0","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on arbitrum:","timestamp":"2025-04-22T14:20:23.684Z"}
-{"level":"info","message":"GET /api/auth/check","timestamp":"2025-04-22T14:20:23.847Z"}
-{"level":"info","message":"[IdentityService] Found 2 identities for user 1","timestamp":"2025-04-22T14:20:23.849Z"}
-{"level":"info","message":"GET /api/auth/check","timestamp":"2025-04-22T14:20:23.858Z"}
-{"level":"info","message":"[IdentityService] Found 2 identities for user 1","timestamp":"2025-04-22T14:20:23.860Z"}
-{"level":"info","message":"GET /api/chat/history?count_only=true","timestamp":"2025-04-22T14:20:23.862Z"}
-{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-22T14:20:23.878Z"}
-{"level":"info","message":"GET /api/chat/history?offset=2&limit=30","timestamp":"2025-04-22T14:20:23.880Z"}
-{"level":"info","message":"[IdentityService] Found 2 identities for user 1","timestamp":"2025-04-22T14:20:23.881Z"}
-{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-22T14:20:23.895Z"}
-{"level":"info","message":"[IdentityService] Found 2 identities for user 1","timestamp":"2025-04-22T14:20:23.897Z"}
-{"level":"info","message":"GET /api/tokens/balances?address=0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-22T14:20:23.910Z"}
-{"level":"info","message":"Fetching token balances for address: 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-22T14:20:23.911Z"}
-{"balance":"454852.0","contract":"0x351f59de4fedbdf7601f5592b93db3b9330c1c1d","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on polygon:","timestamp":"2025-04-22T14:20:24.096Z"}
-{"arbitrum":"499999.9","bsc":"500000.0","eth":"1500000.0","level":"info","message":"Token balances fetched for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b:","polygon":"454852.0","timestamp":"2025-04-22T14:20:24.096Z"}
-{"level":"info","message":"GET /api/tokens/balances?address=0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-22T14:20:24.104Z"}
-{"level":"info","message":"Fetching token balances for address: 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-22T14:20:24.105Z"}
-{"balance":"1500000.0","contract":"0xd95a45fc46a7300e6022885afec3d618d7d3f27c","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on eth:","timestamp":"2025-04-22T14:20:24.309Z"}
-{"balance":"1500000.0","contract":"0xd95a45fc46a7300e6022885afec3d618d7d3f27c","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on eth:","timestamp":"2025-04-22T14:20:24.309Z"}
-{"balance":"500000.0","contract":"0x4B294265720B09ca39BFBA18c7E368413c0f68eB","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on bsc:","timestamp":"2025-04-22T14:20:24.595Z"}
-{"balance":"500000.0","contract":"0x4B294265720B09ca39BFBA18c7E368413c0f68eB","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on bsc:","timestamp":"2025-04-22T14:20:24.595Z"}
-{"level":"info","message":"GET /api/tokens/balances?address=0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-22T14:20:24.755Z"}
-{"level":"info","message":"Fetching token balances for address: 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-22T14:20:24.756Z"}
-{"level":"info","message":"GET /api/auth/check","timestamp":"2025-04-22T14:20:24.840Z"}
-{"level":"info","message":"[IdentityService] Found 2 identities for user 1","timestamp":"2025-04-22T14:20:24.842Z"}
-{"level":"info","message":"GET /api/chat/history?count_only=true","timestamp":"2025-04-22T14:20:24.853Z"}
-{"level":"info","message":"GET /api/chat/history?offset=2&limit=30","timestamp":"2025-04-22T14:20:24.866Z"}
-{"balance":"1500000.0","contract":"0xd95a45fc46a7300e6022885afec3d618d7d3f27c","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on eth:","timestamp":"2025-04-22T14:20:25.151Z"}
-{"balance":"499999.9","contract":"0xdce769b847a0a697239777d0b1c7dd33b6012ba0","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on arbitrum:","timestamp":"2025-04-22T14:20:25.169Z"}
-{"balance":"499999.9","contract":"0xdce769b847a0a697239777d0b1c7dd33b6012ba0","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on arbitrum:","timestamp":"2025-04-22T14:20:25.170Z"}
-{"balance":"500000.0","contract":"0x4B294265720B09ca39BFBA18c7E368413c0f68eB","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on bsc:","timestamp":"2025-04-22T14:20:25.419Z"}
-{"level":"info","message":"GET /api/auth/check","timestamp":"2025-04-22T14:20:25.438Z"}
-{"level":"info","message":"[IdentityService] Found 2 identities for user 1","timestamp":"2025-04-22T14:20:25.439Z"}
-{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-22T14:20:25.450Z"}
-{"level":"info","message":"[IdentityService] Found 2 identities for user 1","timestamp":"2025-04-22T14:20:25.451Z"}
-{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-22T14:20:25.460Z"}
-{"level":"info","message":"[IdentityService] Found 2 identities for user 1","timestamp":"2025-04-22T14:20:25.462Z"}
-{"balance":"454852.0","contract":"0x351f59de4fedbdf7601f5592b93db3b9330c1c1d","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on polygon:","timestamp":"2025-04-22T14:20:25.604Z"}
-{"arbitrum":"499999.9","bsc":"500000.0","eth":"1500000.0","level":"info","message":"Token balances fetched for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b:","polygon":"454852.0","timestamp":"2025-04-22T14:20:25.604Z"}
-{"balance":"454852.0","contract":"0x351f59de4fedbdf7601f5592b93db3b9330c1c1d","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on polygon:","timestamp":"2025-04-22T14:20:25.604Z"}
-{"arbitrum":"499999.9","bsc":"500000.0","eth":"1500000.0","level":"info","message":"Token balances fetched for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b:","polygon":"454852.0","timestamp":"2025-04-22T14:20:25.605Z"}
-{"level":"info","message":"GET /api/tokens/balances?address=0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-22T14:20:25.615Z"}
-{"level":"info","message":"Fetching token balances for address: 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-22T14:20:25.616Z"}
-{"balance":"499999.9","contract":"0xdce769b847a0a697239777d0b1c7dd33b6012ba0","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on arbitrum:","timestamp":"2025-04-22T14:20:26.015Z"}
-{"balance":"1500000.0","contract":"0xd95a45fc46a7300e6022885afec3d618d7d3f27c","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on eth:","timestamp":"2025-04-22T14:20:26.054Z"}
-{"balance":"500000.0","contract":"0x4B294265720B09ca39BFBA18c7E368413c0f68eB","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on bsc:","timestamp":"2025-04-22T14:20:26.366Z"}
-{"balance":"454852.0","contract":"0x351f59de4fedbdf7601f5592b93db3b9330c1c1d","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on polygon:","timestamp":"2025-04-22T14:20:26.419Z"}
-{"arbitrum":"499999.9","bsc":"500000.0","eth":"1500000.0","level":"info","message":"Token balances fetched for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b:","polygon":"454852.0","timestamp":"2025-04-22T14:20:26.419Z"}
-{"level":"info","message":"GET /api/tokens/balances?address=0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-22T14:20:26.456Z"}
-{"level":"info","message":"Fetching token balances for address: 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-22T14:20:26.457Z"}
-{"level":"info","message":"GET /api/auth/check","timestamp":"2025-04-22T14:20:26.598Z"}
-{"level":"info","message":"[IdentityService] Found 2 identities for user 1","timestamp":"2025-04-22T14:20:26.600Z"}
-{"level":"info","message":"GET /api/chat/history?count_only=true","timestamp":"2025-04-22T14:20:26.611Z"}
-{"level":"info","message":"GET /api/chat/history?offset=2&limit=30","timestamp":"2025-04-22T14:20:26.624Z"}
-{"balance":"1500000.0","contract":"0xd95a45fc46a7300e6022885afec3d618d7d3f27c","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on eth:","timestamp":"2025-04-22T14:20:26.829Z"}
-{"balance":"499999.9","contract":"0xdce769b847a0a697239777d0b1c7dd33b6012ba0","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on arbitrum:","timestamp":"2025-04-22T14:20:26.912Z"}
-{"balance":"500000.0","contract":"0x4B294265720B09ca39BFBA18c7E368413c0f68eB","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on bsc:","timestamp":"2025-04-22T14:20:27.109Z"}
-{"balance":"454852.0","contract":"0x351f59de4fedbdf7601f5592b93db3b9330c1c1d","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on polygon:","timestamp":"2025-04-22T14:20:27.322Z"}
-{"arbitrum":"499999.9","bsc":"500000.0","eth":"1500000.0","level":"info","message":"Token balances fetched for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b:","polygon":"454852.0","timestamp":"2025-04-22T14:20:27.323Z"}
-{"level":"info","message":"GET /api/tokens/balances?address=0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-22T14:20:27.330Z"}
-{"level":"info","message":"Fetching token balances for address: 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-22T14:20:27.331Z"}
-{"level":"info","message":"GET /api/auth/check","timestamp":"2025-04-22T14:20:27.509Z"}
-{"level":"info","message":"[IdentityService] Found 2 identities for user 1","timestamp":"2025-04-22T14:20:27.511Z"}
-{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-22T14:20:27.529Z"}
-{"level":"info","message":"[IdentityService] Found 2 identities for user 1","timestamp":"2025-04-22T14:20:27.531Z"}
-{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-22T14:20:27.546Z"}
-{"level":"info","message":"[IdentityService] Found 2 identities for user 1","timestamp":"2025-04-22T14:20:27.548Z"}
-{"balance":"499999.9","contract":"0xdce769b847a0a697239777d0b1c7dd33b6012ba0","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on arbitrum:","timestamp":"2025-04-22T14:20:27.714Z"}
-{"balance":"1500000.0","contract":"0xd95a45fc46a7300e6022885afec3d618d7d3f27c","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on eth:","timestamp":"2025-04-22T14:20:27.753Z"}
-{"balance":"500000.0","contract":"0x4B294265720B09ca39BFBA18c7E368413c0f68eB","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on bsc:","timestamp":"2025-04-22T14:20:28.075Z"}
-{"balance":"454852.0","contract":"0x351f59de4fedbdf7601f5592b93db3b9330c1c1d","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on polygon:","timestamp":"2025-04-22T14:20:28.138Z"}
-{"arbitrum":"499999.9","bsc":"500000.0","eth":"1500000.0","level":"info","message":"Token balances fetched for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b:","polygon":"454852.0","timestamp":"2025-04-22T14:20:28.139Z"}
-{"level":"info","message":"GET /api/tokens/balances?address=0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-22T14:20:28.367Z"}
-{"level":"info","message":"Fetching token balances for address: 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-22T14:20:28.368Z"}
-{"balance":"499999.9","contract":"0xdce769b847a0a697239777d0b1c7dd33b6012ba0","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on arbitrum:","timestamp":"2025-04-22T14:20:28.641Z"}
-{"balance":"1500000.0","contract":"0xd95a45fc46a7300e6022885afec3d618d7d3f27c","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on eth:","timestamp":"2025-04-22T14:20:28.763Z"}
-{"balance":"500000.0","contract":"0x4B294265720B09ca39BFBA18c7E368413c0f68eB","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on bsc:","timestamp":"2025-04-22T14:20:29.040Z"}
-{"balance":"454852.0","contract":"0x351f59de4fedbdf7601f5592b93db3b9330c1c1d","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on polygon:","timestamp":"2025-04-22T14:20:29.082Z"}
-{"arbitrum":"499999.9","bsc":"500000.0","eth":"1500000.0","level":"info","message":"Token balances fetched for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b:","polygon":"454852.0","timestamp":"2025-04-22T14:20:29.083Z"}
-{"level":"info","message":"GET /api/tokens/balances?address=0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-22T14:20:29.091Z"}
-{"level":"info","message":"Fetching token balances for address: 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-22T14:20:29.092Z"}
-{"level":"info","message":"GET /api/auth/check","timestamp":"2025-04-22T14:20:29.346Z"}
-{"level":"info","message":"[IdentityService] Found 2 identities for user 1","timestamp":"2025-04-22T14:20:29.348Z"}
-{"level":"info","message":"GET /api/auth/check","timestamp":"2025-04-22T14:20:29.359Z"}
-{"level":"info","message":"[IdentityService] Found 2 identities for user 1","timestamp":"2025-04-22T14:20:29.360Z"}
-{"level":"info","message":"GET /api/chat/history?count_only=true","timestamp":"2025-04-22T14:20:29.361Z"}
-{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-22T14:20:29.376Z"}
-{"level":"info","message":"[IdentityService] Found 2 identities for user 1","timestamp":"2025-04-22T14:20:29.377Z"}
-{"level":"info","message":"GET /api/chat/history?offset=2&limit=30","timestamp":"2025-04-22T14:20:29.379Z"}
-{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-22T14:20:29.390Z"}
-{"level":"info","message":"[IdentityService] Found 2 identities for user 1","timestamp":"2025-04-22T14:20:29.392Z"}
-{"balance":"1500000.0","contract":"0xd95a45fc46a7300e6022885afec3d618d7d3f27c","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on eth:","timestamp":"2025-04-22T14:20:29.491Z"}
-{"balance":"499999.9","contract":"0xdce769b847a0a697239777d0b1c7dd33b6012ba0","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on arbitrum:","timestamp":"2025-04-22T14:20:29.595Z"}
-{"balance":"500000.0","contract":"0x4B294265720B09ca39BFBA18c7E368413c0f68eB","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on bsc:","timestamp":"2025-04-22T14:20:29.757Z"}
-{"level":"info","message":"GET /api/tokens/balances?address=0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-22T14:20:29.907Z"}
-{"level":"info","message":"Fetching token balances for address: 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-22T14:20:29.908Z"}
-{"balance":"454852.0","contract":"0x351f59de4fedbdf7601f5592b93db3b9330c1c1d","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on polygon:","timestamp":"2025-04-22T14:20:30.002Z"}
-{"arbitrum":"499999.9","bsc":"500000.0","eth":"1500000.0","level":"info","message":"Token balances fetched for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b:","polygon":"454852.0","timestamp":"2025-04-22T14:20:30.002Z"}
-{"balance":"1500000.0","contract":"0xd95a45fc46a7300e6022885afec3d618d7d3f27c","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on eth:","timestamp":"2025-04-22T14:20:30.286Z"}
-{"balance":"499999.9","contract":"0xdce769b847a0a697239777d0b1c7dd33b6012ba0","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on arbitrum:","timestamp":"2025-04-22T14:20:30.333Z"}
-{"balance":"500000.0","contract":"0x4B294265720B09ca39BFBA18c7E368413c0f68eB","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on bsc:","timestamp":"2025-04-22T14:20:30.557Z"}
-{"balance":"454852.0","contract":"0x351f59de4fedbdf7601f5592b93db3b9330c1c1d","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on polygon:","timestamp":"2025-04-22T14:20:30.747Z"}
-{"arbitrum":"499999.9","bsc":"500000.0","eth":"1500000.0","level":"info","message":"Token balances fetched for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b:","polygon":"454852.0","timestamp":"2025-04-22T14:20:30.747Z"}
-{"level":"info","message":"GET /api/tokens/balances?address=0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-22T14:20:30.755Z"}
-{"level":"info","message":"Fetching token balances for address: 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-22T14:20:30.756Z"}
-{"balance":"499999.9","contract":"0xdce769b847a0a697239777d0b1c7dd33b6012ba0","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on arbitrum:","timestamp":"2025-04-22T14:20:31.154Z"}
-{"balance":"1500000.0","contract":"0xd95a45fc46a7300e6022885afec3d618d7d3f27c","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on eth:","timestamp":"2025-04-22T14:20:31.157Z"}
-{"level":"info","message":"GET /api/auth/check","timestamp":"2025-04-22T14:20:31.171Z"}
-{"level":"info","message":"[IdentityService] Found 2 identities for user 1","timestamp":"2025-04-22T14:20:31.173Z"}
-{"level":"info","message":"GET /api/auth/check","timestamp":"2025-04-22T14:20:31.185Z"}
-{"level":"info","message":"[IdentityService] Found 2 identities for user 1","timestamp":"2025-04-22T14:20:31.188Z"}
-{"level":"info","message":"GET /api/chat/history?count_only=true","timestamp":"2025-04-22T14:20:31.190Z"}
-{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-22T14:20:31.212Z"}
-{"level":"info","message":"GET /api/chat/history?offset=2&limit=30","timestamp":"2025-04-22T14:20:31.214Z"}
-{"level":"info","message":"[IdentityService] Found 2 identities for user 1","timestamp":"2025-04-22T14:20:31.215Z"}
-{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-22T14:20:31.230Z"}
-{"level":"info","message":"[IdentityService] Found 2 identities for user 1","timestamp":"2025-04-22T14:20:31.232Z"}
-{"balance":"500000.0","contract":"0x4B294265720B09ca39BFBA18c7E368413c0f68eB","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on bsc:","timestamp":"2025-04-22T14:20:31.456Z"}
-{"balance":"454852.0","contract":"0x351f59de4fedbdf7601f5592b93db3b9330c1c1d","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on polygon:","timestamp":"2025-04-22T14:20:31.595Z"}
-{"arbitrum":"499999.9","bsc":"500000.0","eth":"1500000.0","level":"info","message":"Token balances fetched for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b:","polygon":"454852.0","timestamp":"2025-04-22T14:20:31.596Z"}
-{"balance":"499999.9","contract":"0xdce769b847a0a697239777d0b1c7dd33b6012ba0","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on arbitrum:","timestamp":"2025-04-22T14:20:32.035Z"}
-{"balance":"454852.0","contract":"0x351f59de4fedbdf7601f5592b93db3b9330c1c1d","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on polygon:","timestamp":"2025-04-22T14:20:32.450Z"}
-{"arbitrum":"499999.9","bsc":"500000.0","eth":"1500000.0","level":"info","message":"Token balances fetched for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b:","polygon":"454852.0","timestamp":"2025-04-22T14:20:32.450Z"}
-{"level":"info","message":"GET /api/tokens/balances?address=0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-22T14:20:32.460Z"}
-{"level":"info","message":"Fetching token balances for address: 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-22T14:20:32.461Z"}
-{"balance":"1500000.0","contract":"0xd95a45fc46a7300e6022885afec3d618d7d3f27c","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on eth:","timestamp":"2025-04-22T14:20:32.870Z"}
-{"level":"info","message":"GET /api/auth/check","timestamp":"2025-04-22T14:20:33.015Z"}
-{"level":"info","message":"[IdentityService] Found 2 identities for user 1","timestamp":"2025-04-22T14:20:33.017Z"}
-{"level":"info","message":"GET /api/auth/check","timestamp":"2025-04-22T14:20:33.027Z"}
-{"level":"info","message":"[IdentityService] Found 2 identities for user 1","timestamp":"2025-04-22T14:20:33.029Z"}
-{"level":"info","message":"GET /api/chat/history?count_only=true","timestamp":"2025-04-22T14:20:33.031Z"}
-{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-22T14:20:33.045Z"}
-{"level":"info","message":"[IdentityService] Found 2 identities for user 1","timestamp":"2025-04-22T14:20:33.048Z"}
-{"level":"info","message":"GET /api/chat/history?offset=2&limit=30","timestamp":"2025-04-22T14:20:33.054Z"}
-{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-22T14:20:33.066Z"}
-{"level":"info","message":"[IdentityService] Found 2 identities for user 1","timestamp":"2025-04-22T14:20:33.068Z"}
-{"level":"info","message":"GET /api/tokens/balances?address=0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-22T14:20:33.113Z"}
-{"level":"info","message":"Fetching token balances for address: 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-22T14:20:33.114Z"}
-{"balance":"500000.0","contract":"0x4B294265720B09ca39BFBA18c7E368413c0f68eB","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on bsc:","timestamp":"2025-04-22T14:20:33.154Z"}
-{"level":"info","message":"GET /api/tokens/balances?address=0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-22T14:20:33.324Z"}
-{"level":"info","message":"Fetching token balances for address: 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-22T14:20:33.325Z"}
-{"balance":"1500000.0","contract":"0xd95a45fc46a7300e6022885afec3d618d7d3f27c","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on eth:","timestamp":"2025-04-22T14:20:33.506Z"}
-{"balance":"1500000.0","contract":"0xd95a45fc46a7300e6022885afec3d618d7d3f27c","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on eth:","timestamp":"2025-04-22T14:20:33.699Z"}
-{"balance":"499999.9","contract":"0xdce769b847a0a697239777d0b1c7dd33b6012ba0","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on arbitrum:","timestamp":"2025-04-22T14:20:33.740Z"}
-{"balance":"500000.0","contract":"0x4B294265720B09ca39BFBA18c7E368413c0f68eB","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on bsc:","timestamp":"2025-04-22T14:20:33.774Z"}
-{"balance":"500000.0","contract":"0x4B294265720B09ca39BFBA18c7E368413c0f68eB","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on bsc:","timestamp":"2025-04-22T14:20:33.925Z"}
-{"balance":"454852.0","contract":"0x351f59de4fedbdf7601f5592b93db3b9330c1c1d","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on polygon:","timestamp":"2025-04-22T14:20:34.139Z"}
-{"arbitrum":"499999.9","bsc":"500000.0","eth":"1500000.0","level":"info","message":"Token balances fetched for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b:","polygon":"454852.0","timestamp":"2025-04-22T14:20:34.139Z"}
-{"level":"info","message":"GET /api/tokens/balances?address=0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-22T14:20:34.147Z"}
-{"level":"info","message":"Fetching token balances for address: 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-22T14:20:34.147Z"}
-{"balance":"499999.9","contract":"0xdce769b847a0a697239777d0b1c7dd33b6012ba0","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on arbitrum:","timestamp":"2025-04-22T14:20:34.352Z"}
-{"balance":"499999.9","contract":"0xdce769b847a0a697239777d0b1c7dd33b6012ba0","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on arbitrum:","timestamp":"2025-04-22T14:20:34.353Z"}
-{"balance":"1500000.0","contract":"0xd95a45fc46a7300e6022885afec3d618d7d3f27c","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on eth:","timestamp":"2025-04-22T14:20:34.548Z"}
-{"balance":"454852.0","contract":"0x351f59de4fedbdf7601f5592b93db3b9330c1c1d","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on polygon:","timestamp":"2025-04-22T14:20:34.793Z"}
-{"arbitrum":"499999.9","bsc":"500000.0","eth":"1500000.0","level":"info","message":"Token balances fetched for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b:","polygon":"454852.0","timestamp":"2025-04-22T14:20:34.794Z"}
-{"balance":"454852.0","contract":"0x351f59de4fedbdf7601f5592b93db3b9330c1c1d","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on polygon:","timestamp":"2025-04-22T14:20:34.794Z"}
-{"arbitrum":"499999.9","bsc":"500000.0","eth":"1500000.0","level":"info","message":"Token balances fetched for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b:","polygon":"454852.0","timestamp":"2025-04-22T14:20:34.794Z"}
-{"balance":"500000.0","contract":"0x4B294265720B09ca39BFBA18c7E368413c0f68eB","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on bsc:","timestamp":"2025-04-22T14:20:34.825Z"}
-{"level":"info","message":"GET /api/auth/check","timestamp":"2025-04-22T14:20:34.847Z"}
-{"level":"info","message":"[IdentityService] Found 2 identities for user 1","timestamp":"2025-04-22T14:20:34.849Z"}
-{"level":"info","message":"GET /api/auth/check","timestamp":"2025-04-22T14:20:34.860Z"}
-{"level":"info","message":"[IdentityService] Found 2 identities for user 1","timestamp":"2025-04-22T14:20:34.862Z"}
-{"level":"info","message":"GET /api/chat/history?count_only=true","timestamp":"2025-04-22T14:20:34.864Z"}
-{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-22T14:20:34.879Z"}
-{"level":"info","message":"[IdentityService] Found 2 identities for user 1","timestamp":"2025-04-22T14:20:34.881Z"}
-{"level":"info","message":"GET /api/chat/history?offset=2&limit=30","timestamp":"2025-04-22T14:20:34.883Z"}
-{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-22T14:20:34.898Z"}
-{"level":"info","message":"[IdentityService] Found 2 identities for user 1","timestamp":"2025-04-22T14:20:34.899Z"}
-{"balance":"499999.9","contract":"0xdce769b847a0a697239777d0b1c7dd33b6012ba0","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on arbitrum:","timestamp":"2025-04-22T14:20:35.416Z"}
-{"balance":"454852.0","contract":"0x351f59de4fedbdf7601f5592b93db3b9330c1c1d","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on polygon:","timestamp":"2025-04-22T14:20:35.866Z"}
-{"arbitrum":"499999.9","bsc":"500000.0","eth":"1500000.0","level":"info","message":"Token balances fetched for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b:","polygon":"454852.0","timestamp":"2025-04-22T14:20:35.867Z"}
-{"level":"info","message":"GET /api/tokens/balances?address=0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-22T14:20:35.880Z"}
-{"level":"info","message":"Fetching token balances for address: 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-22T14:20:35.881Z"}
-{"balance":"1500000.0","contract":"0xd95a45fc46a7300e6022885afec3d618d7d3f27c","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on eth:","timestamp":"2025-04-22T14:20:36.273Z"}
-{"balance":"500000.0","contract":"0x4B294265720B09ca39BFBA18c7E368413c0f68eB","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on bsc:","timestamp":"2025-04-22T14:20:36.543Z"}
-{"level":"info","message":"GET /api/auth/check","timestamp":"2025-04-22T14:20:36.684Z"}
-{"level":"info","message":"[IdentityService] Found 2 identities for user 1","timestamp":"2025-04-22T14:20:36.686Z"}
-{"level":"info","message":"GET /api/auth/check","timestamp":"2025-04-22T14:20:36.698Z"}
-{"level":"info","message":"[IdentityService] Found 2 identities for user 1","timestamp":"2025-04-22T14:20:36.700Z"}
-{"level":"info","message":"GET /api/chat/history?count_only=true","timestamp":"2025-04-22T14:20:36.706Z"}
-{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-22T14:20:36.719Z"}
-{"level":"info","message":"[IdentityService] Found 2 identities for user 1","timestamp":"2025-04-22T14:20:36.723Z"}
-{"level":"info","message":"GET /api/chat/history?offset=2&limit=30","timestamp":"2025-04-22T14:20:36.727Z"}
-{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-22T14:20:36.738Z"}
-{"level":"info","message":"[IdentityService] Found 2 identities for user 1","timestamp":"2025-04-22T14:20:36.740Z"}
-{"level":"info","message":"GET /api/tokens/balances?address=0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-22T14:20:36.906Z"}
-{"level":"info","message":"Fetching token balances for address: 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-22T14:20:36.907Z"}
-{"level":"info","message":"GET /api/tokens/balances?address=0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-22T14:20:36.908Z"}
-{"level":"info","message":"Fetching token balances for address: 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-22T14:20:36.909Z"}
-{"balance":"499999.9","contract":"0xdce769b847a0a697239777d0b1c7dd33b6012ba0","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on arbitrum:","timestamp":"2025-04-22T14:20:37.198Z"}
-{"balance":"1500000.0","contract":"0xd95a45fc46a7300e6022885afec3d618d7d3f27c","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on eth:","timestamp":"2025-04-22T14:20:37.332Z"}
-{"balance":"1500000.0","contract":"0xd95a45fc46a7300e6022885afec3d618d7d3f27c","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on eth:","timestamp":"2025-04-22T14:20:37.332Z"}
-{"balance":"500000.0","contract":"0x4B294265720B09ca39BFBA18c7E368413c0f68eB","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on bsc:","timestamp":"2025-04-22T14:20:37.623Z"}
-{"balance":"500000.0","contract":"0x4B294265720B09ca39BFBA18c7E368413c0f68eB","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on bsc:","timestamp":"2025-04-22T14:20:37.623Z"}
-{"balance":"454852.0","contract":"0x351f59de4fedbdf7601f5592b93db3b9330c1c1d","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on polygon:","timestamp":"2025-04-22T14:20:37.638Z"}
-{"arbitrum":"499999.9","bsc":"500000.0","eth":"1500000.0","level":"info","message":"Token balances fetched for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b:","polygon":"454852.0","timestamp":"2025-04-22T14:20:37.638Z"}
-{"level":"info","message":"GET /api/tokens/balances?address=0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-22T14:20:37.646Z"}
-{"level":"info","message":"Fetching token balances for address: 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-22T14:20:37.646Z"}
-{"balance":"1500000.0","contract":"0xd95a45fc46a7300e6022885afec3d618d7d3f27c","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on eth:","timestamp":"2025-04-22T14:20:38.022Z"}
-{"balance":"499999.9","contract":"0xdce769b847a0a697239777d0b1c7dd33b6012ba0","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on arbitrum:","timestamp":"2025-04-22T14:20:38.207Z"}
-{"balance":"499999.9","contract":"0xdce769b847a0a697239777d0b1c7dd33b6012ba0","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on arbitrum:","timestamp":"2025-04-22T14:20:38.207Z"}
-{"balance":"500000.0","contract":"0x4B294265720B09ca39BFBA18c7E368413c0f68eB","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on bsc:","timestamp":"2025-04-22T14:20:38.307Z"}
-{"level":"info","message":"GET /api/auth/check","timestamp":"2025-04-22T14:20:38.512Z"}
-{"level":"info","message":"[IdentityService] Found 2 identities for user 1","timestamp":"2025-04-22T14:20:38.513Z"}
-{"level":"info","message":"GET /api/auth/check","timestamp":"2025-04-22T14:20:38.522Z"}
-{"level":"info","message":"[IdentityService] Found 2 identities for user 1","timestamp":"2025-04-22T14:20:38.523Z"}
-{"level":"info","message":"GET /api/chat/history?count_only=true","timestamp":"2025-04-22T14:20:38.529Z"}
-{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-22T14:20:38.537Z"}
-{"level":"info","message":"[IdentityService] Found 2 identities for user 1","timestamp":"2025-04-22T14:20:38.539Z"}
-{"level":"info","message":"GET /api/chat/history?offset=2&limit=30","timestamp":"2025-04-22T14:20:38.545Z"}
-{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-22T14:20:38.553Z"}
-{"level":"info","message":"[IdentityService] Found 2 identities for user 1","timestamp":"2025-04-22T14:20:38.556Z"}
-{"balance":"454852.0","contract":"0x351f59de4fedbdf7601f5592b93db3b9330c1c1d","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on polygon:","timestamp":"2025-04-22T14:20:38.626Z"}
-{"arbitrum":"499999.9","bsc":"500000.0","eth":"1500000.0","level":"info","message":"Token balances fetched for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b:","polygon":"454852.0","timestamp":"2025-04-22T14:20:38.627Z"}
-{"balance":"454852.0","contract":"0x351f59de4fedbdf7601f5592b93db3b9330c1c1d","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on polygon:","timestamp":"2025-04-22T14:20:38.627Z"}
-{"arbitrum":"499999.9","bsc":"500000.0","eth":"1500000.0","level":"info","message":"Token balances fetched for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b:","polygon":"454852.0","timestamp":"2025-04-22T14:20:38.627Z"}
-{"balance":"499999.9","contract":"0xdce769b847a0a697239777d0b1c7dd33b6012ba0","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on arbitrum:","timestamp":"2025-04-22T14:20:38.873Z"}
-{"balance":"454852.0","contract":"0x351f59de4fedbdf7601f5592b93db3b9330c1c1d","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on polygon:","timestamp":"2025-04-22T14:20:39.270Z"}
-{"arbitrum":"499999.9","bsc":"500000.0","eth":"1500000.0","level":"info","message":"Token balances fetched for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b:","polygon":"454852.0","timestamp":"2025-04-22T14:20:39.271Z"}
-{"level":"info","message":"GET /api/tokens/balances?address=0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-22T14:20:39.279Z"}
-{"level":"info","message":"Fetching token balances for address: 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-22T14:20:39.279Z"}
-{"balance":"1500000.0","contract":"0xd95a45fc46a7300e6022885afec3d618d7d3f27c","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on eth:","timestamp":"2025-04-22T14:20:39.708Z"}
-{"balance":"500000.0","contract":"0x4B294265720B09ca39BFBA18c7E368413c0f68eB","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on bsc:","timestamp":"2025-04-22T14:20:39.969Z"}
-{"level":"info","message":"GET /api/auth/check","timestamp":"2025-04-22T14:20:40.350Z"}
-{"level":"info","message":"[IdentityService] Found 2 identities for user 1","timestamp":"2025-04-22T14:20:40.351Z"}
-{"level":"info","message":"GET /api/auth/check","timestamp":"2025-04-22T14:20:40.361Z"}
-{"level":"info","message":"[IdentityService] Found 2 identities for user 1","timestamp":"2025-04-22T14:20:40.363Z"}
-{"level":"info","message":"GET /api/chat/history?count_only=true","timestamp":"2025-04-22T14:20:40.364Z"}
-{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-22T14:20:40.378Z"}
-{"level":"info","message":"[IdentityService] Found 2 identities for user 1","timestamp":"2025-04-22T14:20:40.379Z"}
-{"level":"info","message":"GET /api/chat/history?offset=2&limit=30","timestamp":"2025-04-22T14:20:40.381Z"}
-{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-22T14:20:40.392Z"}
-{"level":"info","message":"[IdentityService] Found 2 identities for user 1","timestamp":"2025-04-22T14:20:40.393Z"}
-{"balance":"499999.9","contract":"0xdce769b847a0a697239777d0b1c7dd33b6012ba0","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on arbitrum:","timestamp":"2025-04-22T14:20:40.535Z"}
-{"level":"info","message":"GET /api/tokens/balances?address=0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-22T14:20:40.686Z"}
-{"level":"info","message":"Fetching token balances for address: 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-22T14:20:40.687Z"}
-{"level":"info","message":"GET /api/tokens/balances?address=0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-22T14:20:40.688Z"}
-{"level":"info","message":"Fetching token balances for address: 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-22T14:20:40.689Z"}
-{"balance":"454852.0","contract":"0x351f59de4fedbdf7601f5592b93db3b9330c1c1d","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on polygon:","timestamp":"2025-04-22T14:20:40.938Z"}
-{"arbitrum":"499999.9","bsc":"500000.0","eth":"1500000.0","level":"info","message":"Token balances fetched for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b:","polygon":"454852.0","timestamp":"2025-04-22T14:20:40.938Z"}
-{"level":"info","message":"GET /api/tokens/balances?address=0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-22T14:20:40.944Z"}
-{"level":"info","message":"Fetching token balances for address: 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-22T14:20:40.945Z"}
-{"balance":"1500000.0","contract":"0xd95a45fc46a7300e6022885afec3d618d7d3f27c","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on eth:","timestamp":"2025-04-22T14:20:41.092Z"}
-{"balance":"1500000.0","contract":"0xd95a45fc46a7300e6022885afec3d618d7d3f27c","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on eth:","timestamp":"2025-04-22T14:20:41.092Z"}
-{"balance":"1500000.0","contract":"0xd95a45fc46a7300e6022885afec3d618d7d3f27c","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on eth:","timestamp":"2025-04-22T14:20:41.287Z"}
-{"balance":"500000.0","contract":"0x4B294265720B09ca39BFBA18c7E368413c0f68eB","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on bsc:","timestamp":"2025-04-22T14:20:41.380Z"}
-{"balance":"500000.0","contract":"0x4B294265720B09ca39BFBA18c7E368413c0f68eB","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on bsc:","timestamp":"2025-04-22T14:20:41.380Z"}
-{"balance":"500000.0","contract":"0x4B294265720B09ca39BFBA18c7E368413c0f68eB","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on bsc:","timestamp":"2025-04-22T14:20:41.517Z"}
-{"balance":"499999.9","contract":"0xdce769b847a0a697239777d0b1c7dd33b6012ba0","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on arbitrum:","timestamp":"2025-04-22T14:20:41.998Z"}
-{"balance":"499999.9","contract":"0xdce769b847a0a697239777d0b1c7dd33b6012ba0","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on arbitrum:","timestamp":"2025-04-22T14:20:41.998Z"}
-{"balance":"499999.9","contract":"0xdce769b847a0a697239777d0b1c7dd33b6012ba0","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on arbitrum:","timestamp":"2025-04-22T14:20:41.998Z"}
-{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-22T14:20:42.226Z"}
-{"level":"info","message":"GET /api/auth/check","timestamp":"2025-04-22T14:20:42.228Z"}
-{"level":"info","message":"[IdentityService] Found 2 identities for user 1","timestamp":"2025-04-22T14:20:42.229Z"}
-{"level":"info","message":"[IdentityService] Found 2 identities for user 1","timestamp":"2025-04-22T14:20:44.929Z"}
-{"level":"info","message":"GET /api/auth/check","timestamp":"2025-04-22T14:20:44.939Z"}
-{"level":"info","message":"[IdentityService] Found 2 identities for user 1","timestamp":"2025-04-22T14:20:44.941Z"}
-{"level":"info","message":"GET /api/chat/history?count_only=true","timestamp":"2025-04-22T14:20:44.946Z"}
-{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-22T14:20:44.957Z"}
-{"level":"info","message":"[IdentityService] Found 2 identities for user 1","timestamp":"2025-04-22T14:20:44.960Z"}
-{"level":"info","message":"GET /api/chat/history?offset=2&limit=30","timestamp":"2025-04-22T14:20:44.966Z"}
-{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-22T14:20:44.974Z"}
-{"level":"info","message":"[IdentityService] Found 2 identities for user 1","timestamp":"2025-04-22T14:20:44.976Z"}
-{"balance":"454852.0","contract":"0x351f59de4fedbdf7601f5592b93db3b9330c1c1d","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on polygon:","timestamp":"2025-04-22T14:20:45.203Z"}
-{"arbitrum":"499999.9","bsc":"500000.0","eth":"1500000.0","level":"info","message":"Token balances fetched for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b:","polygon":"454852.0","timestamp":"2025-04-22T14:20:45.203Z"}
-{"balance":"454852.0","contract":"0x351f59de4fedbdf7601f5592b93db3b9330c1c1d","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on polygon:","timestamp":"2025-04-22T14:20:45.204Z"}
-{"arbitrum":"499999.9","bsc":"500000.0","eth":"1500000.0","level":"info","message":"Token balances fetched for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b:","polygon":"454852.0","timestamp":"2025-04-22T14:20:45.204Z"}
-{"balance":"454852.0","contract":"0x351f59de4fedbdf7601f5592b93db3b9330c1c1d","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on polygon:","timestamp":"2025-04-22T14:20:45.205Z"}
-{"arbitrum":"499999.9","bsc":"500000.0","eth":"1500000.0","level":"info","message":"Token balances fetched for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b:","polygon":"454852.0","timestamp":"2025-04-22T14:20:45.205Z"}
-{"level":"info","message":"GET /api/tokens/balances?address=0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-22T14:20:45.233Z"}
-{"level":"info","message":"Fetching token balances for address: 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-22T14:20:45.233Z"}
-{"balance":"1500000.0","contract":"0xd95a45fc46a7300e6022885afec3d618d7d3f27c","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on eth:","timestamp":"2025-04-22T14:20:45.667Z"}
-{"balance":"500000.0","contract":"0x4B294265720B09ca39BFBA18c7E368413c0f68eB","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on bsc:","timestamp":"2025-04-22T14:20:45.948Z"}
-{"balance":"499999.9","contract":"0xdce769b847a0a697239777d0b1c7dd33b6012ba0","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on arbitrum:","timestamp":"2025-04-22T14:20:46.551Z"}
-{"level":"info","message":"GET /api/tokens/balances?address=0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-22T14:20:46.697Z"}
-{"level":"info","message":"Fetching token balances for address: 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-22T14:20:46.698Z"}
-{"level":"info","message":"GET /api/auth/check","timestamp":"2025-04-22T14:20:46.758Z"}
-{"level":"info","message":"[IdentityService] Found 2 identities for user 1","timestamp":"2025-04-22T14:20:46.761Z"}
-{"level":"info","message":"GET /api/auth/check","timestamp":"2025-04-22T14:20:46.773Z"}
-{"level":"info","message":"[IdentityService] Found 2 identities for user 1","timestamp":"2025-04-22T14:20:46.775Z"}
-{"level":"info","message":"GET /api/chat/history?count_only=true","timestamp":"2025-04-22T14:20:46.776Z"}
-{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-22T14:20:46.788Z"}
-{"level":"info","message":"[IdentityService] Found 2 identities for user 1","timestamp":"2025-04-22T14:20:46.790Z"}
-{"level":"info","message":"GET /api/chat/history?offset=2&limit=30","timestamp":"2025-04-22T14:20:46.794Z"}
-{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-22T14:20:46.804Z"}
-{"level":"info","message":"[IdentityService] Found 2 identities for user 1","timestamp":"2025-04-22T14:20:46.806Z"}
-{"balance":"454852.0","contract":"0x351f59de4fedbdf7601f5592b93db3b9330c1c1d","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on polygon:","timestamp":"2025-04-22T14:20:47.115Z"}
-{"arbitrum":"499999.9","bsc":"500000.0","eth":"1500000.0","level":"info","message":"Token balances fetched for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b:","polygon":"454852.0","timestamp":"2025-04-22T14:20:47.116Z"}
-{"level":"info","message":"GET /api/tokens/balances?address=0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-22T14:20:47.125Z"}
-{"level":"info","message":"Fetching token balances for address: 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-22T14:20:47.125Z"}
-{"balance":"1500000.0","contract":"0xd95a45fc46a7300e6022885afec3d618d7d3f27c","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on eth:","timestamp":"2025-04-22T14:20:47.198Z"}
-{"balance":"1500000.0","contract":"0xd95a45fc46a7300e6022885afec3d618d7d3f27c","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on eth:","timestamp":"2025-04-22T14:20:47.423Z"}
-{"balance":"500000.0","contract":"0x4B294265720B09ca39BFBA18c7E368413c0f68eB","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on bsc:","timestamp":"2025-04-22T14:20:47.488Z"}
-{"balance":"500000.0","contract":"0x4B294265720B09ca39BFBA18c7E368413c0f68eB","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on bsc:","timestamp":"2025-04-22T14:20:47.627Z"}
-{"balance":"499999.9","contract":"0xdce769b847a0a697239777d0b1c7dd33b6012ba0","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on arbitrum:","timestamp":"2025-04-22T14:20:48.076Z"}
-{"balance":"499999.9","contract":"0xdce769b847a0a697239777d0b1c7dd33b6012ba0","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on arbitrum:","timestamp":"2025-04-22T14:20:48.077Z"}
-{"level":"info","message":"GET /api/tokens/balances?address=0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-22T14:20:48.417Z"}
-{"level":"info","message":"Fetching token balances for address: 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-22T14:20:48.417Z"}
-{"balance":"454852.0","contract":"0x351f59de4fedbdf7601f5592b93db3b9330c1c1d","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on polygon:","timestamp":"2025-04-22T14:20:48.471Z"}
-{"arbitrum":"499999.9","bsc":"500000.0","eth":"1500000.0","level":"info","message":"Token balances fetched for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b:","polygon":"454852.0","timestamp":"2025-04-22T14:20:48.471Z"}
-{"balance":"454852.0","contract":"0x351f59de4fedbdf7601f5592b93db3b9330c1c1d","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on polygon:","timestamp":"2025-04-22T14:20:48.471Z"}
-{"arbitrum":"499999.9","bsc":"500000.0","eth":"1500000.0","level":"info","message":"Token balances fetched for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b:","polygon":"454852.0","timestamp":"2025-04-22T14:20:48.471Z"}
-{"level":"info","message":"GET /api/tokens/balances?address=0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-22T14:20:48.482Z"}
-{"level":"info","message":"Fetching token balances for address: 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-22T14:20:48.483Z"}
-{"level":"info","message":"GET /api/auth/check","timestamp":"2025-04-22T14:20:48.593Z"}
-{"level":"info","message":"[IdentityService] Found 2 identities for user 1","timestamp":"2025-04-22T14:20:48.595Z"}
-{"level":"info","message":"GET /api/auth/check","timestamp":"2025-04-22T14:20:48.608Z"}
-{"level":"info","message":"[IdentityService] Found 2 identities for user 1","timestamp":"2025-04-22T14:20:48.610Z"}
-{"level":"info","message":"GET /api/chat/history?count_only=true","timestamp":"2025-04-22T14:20:48.612Z"}
-{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-22T14:20:48.637Z"}
-{"level":"info","message":"GET /api/chat/history?offset=2&limit=30","timestamp":"2025-04-22T14:20:48.639Z"}
-{"level":"info","message":"[IdentityService] Found 2 identities for user 1","timestamp":"2025-04-22T14:20:48.644Z"}
-{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-22T14:20:48.657Z"}
-{"level":"info","message":"[IdentityService] Found 2 identities for user 1","timestamp":"2025-04-22T14:20:48.659Z"}
-{"balance":"1500000.0","contract":"0xd95a45fc46a7300e6022885afec3d618d7d3f27c","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on eth:","timestamp":"2025-04-22T14:20:48.827Z"}
-{"balance":"1500000.0","contract":"0xd95a45fc46a7300e6022885afec3d618d7d3f27c","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on eth:","timestamp":"2025-04-22T14:20:48.827Z"}
-{"balance":"500000.0","contract":"0x4B294265720B09ca39BFBA18c7E368413c0f68eB","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on bsc:","timestamp":"2025-04-22T14:20:49.129Z"}
-{"balance":"500000.0","contract":"0x4B294265720B09ca39BFBA18c7E368413c0f68eB","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on bsc:","timestamp":"2025-04-22T14:20:49.129Z"}
-{"balance":"499999.9","contract":"0xdce769b847a0a697239777d0b1c7dd33b6012ba0","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on arbitrum:","timestamp":"2025-04-22T14:20:49.994Z"}
-{"balance":"499999.9","contract":"0xdce769b847a0a697239777d0b1c7dd33b6012ba0","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on arbitrum:","timestamp":"2025-04-22T14:20:49.994Z"}
-{"balance":"454852.0","contract":"0x351f59de4fedbdf7601f5592b93db3b9330c1c1d","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on polygon:","timestamp":"2025-04-22T14:20:50.400Z"}
-{"arbitrum":"499999.9","bsc":"500000.0","eth":"1500000.0","level":"info","message":"Token balances fetched for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b:","polygon":"454852.0","timestamp":"2025-04-22T14:20:50.400Z"}
-{"balance":"454852.0","contract":"0x351f59de4fedbdf7601f5592b93db3b9330c1c1d","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on polygon:","timestamp":"2025-04-22T14:20:50.400Z"}
-{"arbitrum":"499999.9","bsc":"500000.0","eth":"1500000.0","level":"info","message":"Token balances fetched for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b:","polygon":"454852.0","timestamp":"2025-04-22T14:20:50.401Z"}
-{"level":"info","message":"GET /api/tokens/balances?address=0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-22T14:20:50.410Z"}
-{"level":"info","message":"Fetching token balances for address: 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-22T14:20:50.410Z"}
-{"level":"info","message":"GET /api/auth/check","timestamp":"2025-04-22T14:20:50.415Z"}
-{"level":"info","message":"[IdentityService] Found 2 identities for user 1","timestamp":"2025-04-22T14:20:50.416Z"}
-{"level":"info","message":"GET /api/auth/check","timestamp":"2025-04-22T14:20:50.426Z"}
-{"level":"info","message":"[IdentityService] Found 2 identities for user 1","timestamp":"2025-04-22T14:20:50.428Z"}
-{"level":"info","message":"GET /api/chat/history?count_only=true","timestamp":"2025-04-22T14:20:50.429Z"}
-{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-22T14:20:50.445Z"}
-{"level":"info","message":"GET /api/chat/history?offset=2&limit=30","timestamp":"2025-04-22T14:20:50.447Z"}
-{"level":"info","message":"[IdentityService] Found 2 identities for user 1","timestamp":"2025-04-22T14:20:50.448Z"}
-{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-22T14:20:50.460Z"}
-{"level":"info","message":"[IdentityService] Found 2 identities for user 1","timestamp":"2025-04-22T14:20:50.462Z"}
-{"balance":"1500000.0","contract":"0xd95a45fc46a7300e6022885afec3d618d7d3f27c","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on eth:","timestamp":"2025-04-22T14:20:50.954Z"}
-{"balance":"500000.0","contract":"0x4B294265720B09ca39BFBA18c7E368413c0f68eB","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on bsc:","timestamp":"2025-04-22T14:20:51.245Z"}
-{"level":"info","message":"GET /api/tokens/balances?address=0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-22T14:20:51.837Z"}
-{"level":"info","message":"Fetching token balances for address: 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-22T14:20:51.838Z"}
-{"balance":"499999.9","contract":"0xdce769b847a0a697239777d0b1c7dd33b6012ba0","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on arbitrum:","timestamp":"2025-04-22T14:20:51.848Z"}
-{"level":"info","message":"GET /api/auth/check","timestamp":"2025-04-22T14:20:52.250Z"}
-{"level":"info","message":"[IdentityService] Found 2 identities for user 1","timestamp":"2025-04-22T14:20:52.252Z"}
-{"balance":"1500000.0","contract":"0xd95a45fc46a7300e6022885afec3d618d7d3f27c","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on eth:","timestamp":"2025-04-22T14:20:52.255Z"}
-{"level":"info","message":"GET /api/auth/check","timestamp":"2025-04-22T14:20:52.264Z"}
-{"level":"info","message":"[IdentityService] Found 2 identities for user 1","timestamp":"2025-04-22T14:20:52.266Z"}
-{"level":"info","message":"GET /api/chat/history?count_only=true","timestamp":"2025-04-22T14:20:52.270Z"}
-{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-22T14:20:52.281Z"}
-{"level":"info","message":"[IdentityService] Found 2 identities for user 1","timestamp":"2025-04-22T14:20:52.283Z"}
-{"balance":"454852.0","contract":"0x351f59de4fedbdf7601f5592b93db3b9330c1c1d","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on polygon:","timestamp":"2025-04-22T14:20:52.290Z"}
-{"arbitrum":"499999.9","bsc":"500000.0","eth":"1500000.0","level":"info","message":"Token balances fetched for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b:","polygon":"454852.0","timestamp":"2025-04-22T14:20:52.290Z"}
-{"level":"info","message":"GET /api/chat/history?offset=2&limit=30","timestamp":"2025-04-22T14:20:52.295Z"}
-{"level":"info","message":"GET /api/tokens/balances?address=0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-22T14:20:52.303Z"}
-{"level":"info","message":"Fetching token balances for address: 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-22T14:20:52.304Z"}
-{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-22T14:20:52.310Z"}
-{"level":"info","message":"[IdentityService] Found 2 identities for user 1","timestamp":"2025-04-22T14:20:52.313Z"}
-{"balance":"500000.0","contract":"0x4B294265720B09ca39BFBA18c7E368413c0f68eB","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on bsc:","timestamp":"2025-04-22T14:20:52.533Z"}
-{"balance":"1500000.0","contract":"0xd95a45fc46a7300e6022885afec3d618d7d3f27c","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on eth:","timestamp":"2025-04-22T14:20:52.838Z"}
-{"balance":"500000.0","contract":"0x4B294265720B09ca39BFBA18c7E368413c0f68eB","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on bsc:","timestamp":"2025-04-22T14:20:53.127Z"}
-{"balance":"499999.9","contract":"0xdce769b847a0a697239777d0b1c7dd33b6012ba0","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on arbitrum:","timestamp":"2025-04-22T14:20:53.214Z"}
-{"balance":"499999.9","contract":"0xdce769b847a0a697239777d0b1c7dd33b6012ba0","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on arbitrum:","timestamp":"2025-04-22T14:20:53.502Z"}
-{"level":"info","message":"GET /api/tokens/balances?address=0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-22T14:20:53.543Z"}
-{"level":"info","message":"Fetching token balances for address: 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-22T14:20:53.544Z"}
-{"balance":"454852.0","contract":"0x351f59de4fedbdf7601f5592b93db3b9330c1c1d","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on polygon:","timestamp":"2025-04-22T14:20:53.625Z"}
-{"arbitrum":"499999.9","bsc":"500000.0","eth":"1500000.0","level":"info","message":"Token balances fetched for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b:","polygon":"454852.0","timestamp":"2025-04-22T14:20:53.625Z"}
-{"balance":"454852.0","contract":"0x351f59de4fedbdf7601f5592b93db3b9330c1c1d","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on polygon:","timestamp":"2025-04-22T14:20:53.824Z"}
-{"arbitrum":"499999.9","bsc":"500000.0","eth":"1500000.0","level":"info","message":"Token balances fetched for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b:","polygon":"454852.0","timestamp":"2025-04-22T14:20:53.824Z"}
-{"level":"info","message":"GET /api/tokens/balances?address=0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-22T14:20:53.831Z"}
-{"level":"info","message":"Fetching token balances for address: 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-22T14:20:53.831Z"}
-{"balance":"1500000.0","contract":"0xd95a45fc46a7300e6022885afec3d618d7d3f27c","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on eth:","timestamp":"2025-04-22T14:20:53.942Z"}
-{"level":"info","message":"GET /api/auth/check","timestamp":"2025-04-22T14:20:54.085Z"}
-{"level":"info","message":"[IdentityService] Found 2 identities for user 1","timestamp":"2025-04-22T14:20:54.087Z"}
-{"level":"info","message":"GET /api/auth/check","timestamp":"2025-04-22T14:20:54.103Z"}
-{"level":"info","message":"[IdentityService] Found 2 identities for user 1","timestamp":"2025-04-22T14:20:54.105Z"}
-{"level":"info","message":"GET /api/chat/history?count_only=true","timestamp":"2025-04-22T14:20:54.119Z"}
-{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-22T14:20:54.127Z"}
-{"level":"info","message":"[IdentityService] Found 2 identities for user 1","timestamp":"2025-04-22T14:20:54.130Z"}
-{"level":"info","message":"GET /api/chat/history?offset=2&limit=30","timestamp":"2025-04-22T14:20:54.143Z"}
-{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-22T14:20:54.149Z"}
-{"level":"info","message":"[IdentityService] Found 2 identities for user 1","timestamp":"2025-04-22T14:20:54.154Z"}
-{"balance":"500000.0","contract":"0x4B294265720B09ca39BFBA18c7E368413c0f68eB","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on bsc:","timestamp":"2025-04-22T14:20:54.229Z"}
-{"balance":"1500000.0","contract":"0xd95a45fc46a7300e6022885afec3d618d7d3f27c","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on eth:","timestamp":"2025-04-22T14:20:54.246Z"}
-{"balance":"500000.0","contract":"0x4B294265720B09ca39BFBA18c7E368413c0f68eB","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on bsc:","timestamp":"2025-04-22T14:20:54.525Z"}
-{"balance":"499999.9","contract":"0xdce769b847a0a697239777d0b1c7dd33b6012ba0","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on arbitrum:","timestamp":"2025-04-22T14:20:54.819Z"}
-{"balance":"499999.9","contract":"0xdce769b847a0a697239777d0b1c7dd33b6012ba0","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on arbitrum:","timestamp":"2025-04-22T14:20:55.115Z"}
-{"balance":"454852.0","contract":"0x351f59de4fedbdf7601f5592b93db3b9330c1c1d","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on polygon:","timestamp":"2025-04-22T14:20:55.227Z"}
-{"arbitrum":"499999.9","bsc":"500000.0","eth":"1500000.0","level":"info","message":"Token balances fetched for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b:","polygon":"454852.0","timestamp":"2025-04-22T14:20:55.227Z"}
-{"level":"info","message":"GET /api/tokens/balances?address=0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-22T14:20:55.232Z"}
-{"level":"info","message":"Fetching token balances for address: 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-22T14:20:55.233Z"}
-{"balance":"454852.0","contract":"0x351f59de4fedbdf7601f5592b93db3b9330c1c1d","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on polygon:","timestamp":"2025-04-22T14:20:55.429Z"}
-{"arbitrum":"499999.9","bsc":"500000.0","eth":"1500000.0","level":"info","message":"Token balances fetched for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b:","polygon":"454852.0","timestamp":"2025-04-22T14:20:55.429Z"}
-{"level":"info","message":"GET /api/tokens/balances?address=0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-22T14:20:55.435Z"}
-{"level":"info","message":"Fetching token balances for address: 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-22T14:20:55.436Z"}
-{"balance":"1500000.0","contract":"0xd95a45fc46a7300e6022885afec3d618d7d3f27c","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on eth:","timestamp":"2025-04-22T14:20:55.618Z"}
-{"balance":"1500000.0","contract":"0xd95a45fc46a7300e6022885afec3d618d7d3f27c","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on eth:","timestamp":"2025-04-22T14:20:55.841Z"}
-{"balance":"500000.0","contract":"0x4B294265720B09ca39BFBA18c7E368413c0f68eB","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on bsc:","timestamp":"2025-04-22T14:20:55.910Z"}
-{"level":"info","message":"GET /api/auth/check","timestamp":"2025-04-22T14:20:55.923Z"}
-{"level":"info","message":"[IdentityService] Found 2 identities for user 1","timestamp":"2025-04-22T14:20:55.924Z"}
-{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-22T14:20:55.936Z"}
-{"level":"info","message":"[IdentityService] Found 2 identities for user 1","timestamp":"2025-04-22T14:20:55.940Z"}
-{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-22T14:20:55.950Z"}
-{"level":"info","message":"[IdentityService] Found 2 identities for user 1","timestamp":"2025-04-22T14:20:55.951Z"}
-{"balance":"500000.0","contract":"0x4B294265720B09ca39BFBA18c7E368413c0f68eB","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on bsc:","timestamp":"2025-04-22T14:20:56.087Z"}
-{"balance":"499999.9","contract":"0xdce769b847a0a697239777d0b1c7dd33b6012ba0","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on arbitrum:","timestamp":"2025-04-22T14:20:56.514Z"}
-{"balance":"499999.9","contract":"0xdce769b847a0a697239777d0b1c7dd33b6012ba0","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on arbitrum:","timestamp":"2025-04-22T14:20:56.514Z"}
-{"balance":"454852.0","contract":"0x351f59de4fedbdf7601f5592b93db3b9330c1c1d","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on polygon:","timestamp":"2025-04-22T14:20:56.947Z"}
-{"arbitrum":"499999.9","bsc":"500000.0","eth":"1500000.0","level":"info","message":"Token balances fetched for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b:","polygon":"454852.0","timestamp":"2025-04-22T14:20:56.948Z"}
-{"balance":"454852.0","contract":"0x351f59de4fedbdf7601f5592b93db3b9330c1c1d","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on polygon:","timestamp":"2025-04-22T14:20:56.948Z"}
-{"arbitrum":"499999.9","bsc":"500000.0","eth":"1500000.0","level":"info","message":"Token balances fetched for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b:","polygon":"454852.0","timestamp":"2025-04-22T14:20:56.948Z"}
-{"level":"info","message":"GET /api/tokens/balances?address=0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-22T14:20:56.957Z"}
-{"level":"info","message":"Fetching token balances for address: 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-22T14:20:56.957Z"}
-{"balance":"1500000.0","contract":"0xd95a45fc46a7300e6022885afec3d618d7d3f27c","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on eth:","timestamp":"2025-04-22T14:20:57.349Z"}
-{"balance":"500000.0","contract":"0x4B294265720B09ca39BFBA18c7E368413c0f68eB","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on bsc:","timestamp":"2025-04-22T14:20:57.634Z"}
-{"level":"info","message":"GET /api/auth/check","timestamp":"2025-04-22T14:20:57.754Z"}
-{"level":"info","message":"[IdentityService] Found 2 identities for user 1","timestamp":"2025-04-22T14:20:57.756Z"}
-{"level":"info","message":"GET /api/auth/check","timestamp":"2025-04-22T14:20:57.767Z"}
-{"level":"info","message":"[IdentityService] Found 2 identities for user 1","timestamp":"2025-04-22T14:20:57.769Z"}
-{"level":"info","message":"GET /api/chat/history?count_only=true","timestamp":"2025-04-22T14:20:57.780Z"}
-{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-22T14:20:57.791Z"}
-{"level":"info","message":"[IdentityService] Found 2 identities for user 1","timestamp":"2025-04-22T14:20:57.793Z"}
-{"level":"info","message":"GET /api/chat/history?offset=2&limit=30","timestamp":"2025-04-22T14:20:57.804Z"}
-{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-22T14:20:57.811Z"}
-{"level":"info","message":"[IdentityService] Found 2 identities for user 1","timestamp":"2025-04-22T14:20:57.813Z"}
-{"level":"info","message":"GET /api/tokens/balances?address=0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-22T14:20:57.823Z"}
-{"level":"info","message":"Fetching token balances for address: 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-22T14:20:57.824Z"}
-{"balance":"499999.9","contract":"0xdce769b847a0a697239777d0b1c7dd33b6012ba0","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on arbitrum:","timestamp":"2025-04-22T14:20:58.335Z"}
-{"balance":"1500000.0","contract":"0xd95a45fc46a7300e6022885afec3d618d7d3f27c","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on eth:","timestamp":"2025-04-22T14:20:58.349Z"}
-{"balance":"500000.0","contract":"0x4B294265720B09ca39BFBA18c7E368413c0f68eB","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on bsc:","timestamp":"2025-04-22T14:20:58.652Z"}
-{"level":"info","message":"GET /api/tokens/balances?address=0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-22T14:20:58.728Z"}
-{"level":"info","message":"Fetching token balances for address: 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-22T14:20:58.729Z"}
-{"balance":"454852.0","contract":"0x351f59de4fedbdf7601f5592b93db3b9330c1c1d","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on polygon:","timestamp":"2025-04-22T14:20:58.757Z"}
-{"arbitrum":"499999.9","bsc":"500000.0","eth":"1500000.0","level":"info","message":"Token balances fetched for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b:","polygon":"454852.0","timestamp":"2025-04-22T14:20:58.757Z"}
-{"level":"info","message":"GET /api/tokens/balances?address=0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-22T14:20:58.765Z"}
-{"level":"info","message":"Fetching token balances for address: 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-22T14:20:58.765Z"}
-{"balance":"1500000.0","contract":"0xd95a45fc46a7300e6022885afec3d618d7d3f27c","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on eth:","timestamp":"2025-04-22T14:20:59.118Z"}
-{"balance":"1500000.0","contract":"0xd95a45fc46a7300e6022885afec3d618d7d3f27c","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on eth:","timestamp":"2025-04-22T14:20:59.118Z"}
-{"balance":"499999.9","contract":"0xdce769b847a0a697239777d0b1c7dd33b6012ba0","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on arbitrum:","timestamp":"2025-04-22T14:20:59.249Z"}
-{"balance":"500000.0","contract":"0x4B294265720B09ca39BFBA18c7E368413c0f68eB","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on bsc:","timestamp":"2025-04-22T14:20:59.395Z"}
-{"balance":"500000.0","contract":"0x4B294265720B09ca39BFBA18c7E368413c0f68eB","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on bsc:","timestamp":"2025-04-22T14:20:59.396Z"}
-{"level":"info","message":"GET /api/auth/check","timestamp":"2025-04-22T14:20:59.580Z"}
-{"level":"info","message":"[IdentityService] Found 2 identities for user 1","timestamp":"2025-04-22T14:20:59.582Z"}
-{"level":"info","message":"GET /api/auth/check","timestamp":"2025-04-22T14:20:59.590Z"}
-{"level":"info","message":"[IdentityService] Found 2 identities for user 1","timestamp":"2025-04-22T14:20:59.592Z"}
-{"level":"info","message":"GET /api/chat/history?count_only=true","timestamp":"2025-04-22T14:20:59.599Z"}
-{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-22T14:20:59.607Z"}
-{"level":"info","message":"[IdentityService] Found 2 identities for user 1","timestamp":"2025-04-22T14:20:59.609Z"}
-{"level":"info","message":"GET /api/chat/history?offset=2&limit=30","timestamp":"2025-04-22T14:20:59.617Z"}
-{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-22T14:20:59.623Z"}
-{"level":"info","message":"[IdentityService] Found 2 identities for user 1","timestamp":"2025-04-22T14:20:59.625Z"}
-{"balance":"454852.0","contract":"0x351f59de4fedbdf7601f5592b93db3b9330c1c1d","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on polygon:","timestamp":"2025-04-22T14:20:59.657Z"}
-{"arbitrum":"499999.9","bsc":"500000.0","eth":"1500000.0","level":"info","message":"Token balances fetched for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b:","polygon":"454852.0","timestamp":"2025-04-22T14:20:59.657Z"}
-{"balance":"499999.9","contract":"0xdce769b847a0a697239777d0b1c7dd33b6012ba0","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on arbitrum:","timestamp":"2025-04-22T14:20:59.999Z"}
-{"balance":"499999.9","contract":"0xdce769b847a0a697239777d0b1c7dd33b6012ba0","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on arbitrum:","timestamp":"2025-04-22T14:21:00.000Z"}
-{"level":"info","message":"GET /api/tokens/balances?address=0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-22T14:21:00.371Z"}
-{"level":"info","message":"Fetching token balances for address: 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-22T14:21:00.372Z"}
-{"balance":"454852.0","contract":"0x351f59de4fedbdf7601f5592b93db3b9330c1c1d","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on polygon:","timestamp":"2025-04-22T14:21:00.412Z"}
-{"arbitrum":"499999.9","bsc":"500000.0","eth":"1500000.0","level":"info","message":"Token balances fetched for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b:","polygon":"454852.0","timestamp":"2025-04-22T14:21:00.412Z"}
-{"balance":"454852.0","contract":"0x351f59de4fedbdf7601f5592b93db3b9330c1c1d","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on polygon:","timestamp":"2025-04-22T14:21:00.412Z"}
-{"arbitrum":"499999.9","bsc":"500000.0","eth":"1500000.0","level":"info","message":"Token balances fetched for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b:","polygon":"454852.0","timestamp":"2025-04-22T14:21:00.412Z"}
-{"level":"info","message":"GET /api/tokens/balances?address=0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-22T14:21:00.422Z"}
-{"level":"info","message":"Fetching token balances for address: 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-22T14:21:00.422Z"}
-{"balance":"1500000.0","contract":"0xd95a45fc46a7300e6022885afec3d618d7d3f27c","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on eth:","timestamp":"2025-04-22T14:21:00.759Z"}
-{"balance":"1500000.0","contract":"0xd95a45fc46a7300e6022885afec3d618d7d3f27c","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on eth:","timestamp":"2025-04-22T14:21:00.760Z"}
-{"balance":"500000.0","contract":"0x4B294265720B09ca39BFBA18c7E368413c0f68eB","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on bsc:","timestamp":"2025-04-22T14:21:01.025Z"}
-{"balance":"500000.0","contract":"0x4B294265720B09ca39BFBA18c7E368413c0f68eB","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on bsc:","timestamp":"2025-04-22T14:21:01.025Z"}
-{"level":"info","message":"GET /api/auth/check","timestamp":"2025-04-22T14:21:01.424Z"}
-{"level":"info","message":"[IdentityService] Found 2 identities for user 1","timestamp":"2025-04-22T14:21:01.426Z"}
-{"level":"info","message":"GET /api/auth/check","timestamp":"2025-04-22T14:21:01.435Z"}
-{"level":"info","message":"GET /api/chat/history?count_only=true","timestamp":"2025-04-22T14:21:01.439Z"}
-{"level":"info","message":"[IdentityService] Found 2 identities for user 1","timestamp":"2025-04-22T14:21:01.441Z"}
-{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-22T14:21:01.462Z"}
-{"level":"info","message":"GET /api/chat/history?offset=2&limit=30","timestamp":"2025-04-22T14:21:01.464Z"}
-{"level":"info","message":"[IdentityService] Found 2 identities for user 1","timestamp":"2025-04-22T14:21:01.466Z"}
-{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-22T14:21:01.477Z"}
-{"level":"info","message":"[IdentityService] Found 2 identities for user 1","timestamp":"2025-04-22T14:21:01.480Z"}
-{"balance":"499999.9","contract":"0xdce769b847a0a697239777d0b1c7dd33b6012ba0","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on arbitrum:","timestamp":"2025-04-22T14:21:01.621Z"}
-{"balance":"499999.9","contract":"0xdce769b847a0a697239777d0b1c7dd33b6012ba0","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on arbitrum:","timestamp":"2025-04-22T14:21:01.621Z"}
-{"level":"info","message":"GET /api/tokens/balances?address=0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-22T14:21:02.024Z"}
-{"level":"info","message":"Fetching token balances for address: 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-22T14:21:02.025Z"}
-{"balance":"454852.0","contract":"0x351f59de4fedbdf7601f5592b93db3b9330c1c1d","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on polygon:","timestamp":"2025-04-22T14:21:02.028Z"}
-{"arbitrum":"499999.9","bsc":"500000.0","eth":"1500000.0","level":"info","message":"Token balances fetched for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b:","polygon":"454852.0","timestamp":"2025-04-22T14:21:02.029Z"}
-{"balance":"454852.0","contract":"0x351f59de4fedbdf7601f5592b93db3b9330c1c1d","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on polygon:","timestamp":"2025-04-22T14:21:02.029Z"}
-{"arbitrum":"499999.9","bsc":"500000.0","eth":"1500000.0","level":"info","message":"Token balances fetched for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b:","polygon":"454852.0","timestamp":"2025-04-22T14:21:02.029Z"}
-{"level":"info","message":"GET /api/tokens/balances?address=0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-22T14:21:02.039Z"}
-{"level":"info","message":"Fetching token balances for address: 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-22T14:21:02.039Z"}
-{"balance":"1500000.0","contract":"0xd95a45fc46a7300e6022885afec3d618d7d3f27c","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on eth:","timestamp":"2025-04-22T14:21:02.422Z"}
-{"balance":"1500000.0","contract":"0xd95a45fc46a7300e6022885afec3d618d7d3f27c","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on eth:","timestamp":"2025-04-22T14:21:02.423Z"}
-{"balance":"500000.0","contract":"0x4B294265720B09ca39BFBA18c7E368413c0f68eB","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on bsc:","timestamp":"2025-04-22T14:21:02.769Z"}
-{"balance":"500000.0","contract":"0x4B294265720B09ca39BFBA18c7E368413c0f68eB","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on bsc:","timestamp":"2025-04-22T14:21:02.769Z"}
-{"level":"info","message":"GET /api/auth/check","timestamp":"2025-04-22T14:21:03.248Z"}
-{"level":"info","message":"[IdentityService] Found 2 identities for user 1","timestamp":"2025-04-22T14:21:03.249Z"}
-{"level":"info","message":"GET /api/auth/check","timestamp":"2025-04-22T14:21:03.258Z"}
-{"level":"info","message":"[IdentityService] Found 2 identities for user 1","timestamp":"2025-04-22T14:21:03.259Z"}
-{"level":"info","message":"GET /api/chat/history?count_only=true","timestamp":"2025-04-22T14:21:03.260Z"}
-{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-22T14:21:03.273Z"}
-{"level":"info","message":"[IdentityService] Found 2 identities for user 1","timestamp":"2025-04-22T14:21:03.275Z"}
-{"level":"info","message":"GET /api/chat/history?offset=2&limit=30","timestamp":"2025-04-22T14:21:03.278Z"}
-{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-22T14:21:03.289Z"}
-{"level":"info","message":"[IdentityService] Found 2 identities for user 1","timestamp":"2025-04-22T14:21:03.290Z"}
-{"level":"info","message":"GET /api/tokens/balances?address=0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-22T14:21:03.574Z"}
-{"level":"info","message":"Fetching token balances for address: 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-22T14:21:03.575Z"}
-{"balance":"499999.9","contract":"0xdce769b847a0a697239777d0b1c7dd33b6012ba0","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on arbitrum:","timestamp":"2025-04-22T14:21:03.706Z"}
-{"balance":"499999.9","contract":"0xdce769b847a0a697239777d0b1c7dd33b6012ba0","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on arbitrum:","timestamp":"2025-04-22T14:21:03.706Z"}
-{"balance":"1500000.0","contract":"0xd95a45fc46a7300e6022885afec3d618d7d3f27c","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on eth:","timestamp":"2025-04-22T14:21:03.959Z"}
-{"balance":"454852.0","contract":"0x351f59de4fedbdf7601f5592b93db3b9330c1c1d","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on polygon:","timestamp":"2025-04-22T14:21:04.123Z"}
-{"arbitrum":"499999.9","bsc":"500000.0","eth":"1500000.0","level":"info","message":"Token balances fetched for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b:","polygon":"454852.0","timestamp":"2025-04-22T14:21:04.123Z"}
-{"balance":"454852.0","contract":"0x351f59de4fedbdf7601f5592b93db3b9330c1c1d","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on polygon:","timestamp":"2025-04-22T14:21:04.124Z"}
-{"arbitrum":"499999.9","bsc":"500000.0","eth":"1500000.0","level":"info","message":"Token balances fetched for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b:","polygon":"454852.0","timestamp":"2025-04-22T14:21:04.124Z"}
-{"level":"info","message":"GET /api/tokens/balances?address=0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-22T14:21:04.132Z"}
-{"level":"info","message":"Fetching token balances for address: 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-22T14:21:04.133Z"}
-{"balance":"500000.0","contract":"0x4B294265720B09ca39BFBA18c7E368413c0f68eB","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on bsc:","timestamp":"2025-04-22T14:21:04.245Z"}
-{"balance":"1500000.0","contract":"0xd95a45fc46a7300e6022885afec3d618d7d3f27c","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on eth:","timestamp":"2025-04-22T14:21:04.528Z"}
-{"balance":"500000.0","contract":"0x4B294265720B09ca39BFBA18c7E368413c0f68eB","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on bsc:","timestamp":"2025-04-22T14:21:04.822Z"}
-{"balance":"499999.9","contract":"0xdce769b847a0a697239777d0b1c7dd33b6012ba0","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on arbitrum:","timestamp":"2025-04-22T14:21:04.824Z"}
-{"level":"info","message":"GET /api/auth/check","timestamp":"2025-04-22T14:21:05.088Z"}
-{"level":"info","message":"[IdentityService] Found 2 identities for user 1","timestamp":"2025-04-22T14:21:05.090Z"}
-{"level":"info","message":"GET /api/auth/check","timestamp":"2025-04-22T14:21:05.099Z"}
-{"level":"info","message":"[IdentityService] Found 2 identities for user 1","timestamp":"2025-04-22T14:21:05.100Z"}
-{"level":"info","message":"GET /api/chat/history?count_only=true","timestamp":"2025-04-22T14:21:05.102Z"}
-{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-22T14:21:05.113Z"}
-{"level":"info","message":"[IdentityService] Found 2 identities for user 1","timestamp":"2025-04-22T14:21:05.115Z"}
-{"level":"info","message":"GET /api/chat/history?offset=2&limit=30","timestamp":"2025-04-22T14:21:05.117Z"}
-{"balance":"499999.9","contract":"0xdce769b847a0a697239777d0b1c7dd33b6012ba0","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on arbitrum:","timestamp":"2025-04-22T14:21:05.121Z"}
-{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-22T14:21:05.129Z"}
-{"level":"info","message":"[IdentityService] Found 2 identities for user 1","timestamp":"2025-04-22T14:21:05.130Z"}
-{"balance":"454852.0","contract":"0x351f59de4fedbdf7601f5592b93db3b9330c1c1d","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on polygon:","timestamp":"2025-04-22T14:21:05.261Z"}
-{"arbitrum":"499999.9","bsc":"500000.0","eth":"1500000.0","level":"info","message":"Token balances fetched for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b:","polygon":"454852.0","timestamp":"2025-04-22T14:21:05.261Z"}
-{"balance":"454852.0","contract":"0x351f59de4fedbdf7601f5592b93db3b9330c1c1d","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on polygon:","timestamp":"2025-04-22T14:21:05.467Z"}
-{"arbitrum":"499999.9","bsc":"500000.0","eth":"1500000.0","level":"info","message":"Token balances fetched for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b:","polygon":"454852.0","timestamp":"2025-04-22T14:21:05.467Z"}
-{"level":"info","message":"GET /api/tokens/balances?address=0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-22T14:21:05.471Z"}
-{"level":"info","message":"Fetching token balances for address: 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-22T14:21:05.471Z"}
-{"level":"info","message":"GET /api/tokens/balances?address=0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-22T14:21:05.475Z"}
-{"level":"info","message":"Fetching token balances for address: 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-22T14:21:05.475Z"}
-{"balance":"1500000.0","contract":"0xd95a45fc46a7300e6022885afec3d618d7d3f27c","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on eth:","timestamp":"2025-04-22T14:21:05.895Z"}
-{"balance":"1500000.0","contract":"0xd95a45fc46a7300e6022885afec3d618d7d3f27c","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on eth:","timestamp":"2025-04-22T14:21:05.895Z"}
-{"balance":"500000.0","contract":"0x4B294265720B09ca39BFBA18c7E368413c0f68eB","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on bsc:","timestamp":"2025-04-22T14:21:06.178Z"}
-{"balance":"500000.0","contract":"0x4B294265720B09ca39BFBA18c7E368413c0f68eB","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on bsc:","timestamp":"2025-04-22T14:21:06.179Z"}
-{"balance":"499999.9","contract":"0xdce769b847a0a697239777d0b1c7dd33b6012ba0","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on arbitrum:","timestamp":"2025-04-22T14:21:06.803Z"}
-{"balance":"499999.9","contract":"0xdce769b847a0a697239777d0b1c7dd33b6012ba0","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on arbitrum:","timestamp":"2025-04-22T14:21:06.803Z"}
-{"level":"info","message":"GET /api/auth/check","timestamp":"2025-04-22T14:21:06.928Z"}
-{"level":"info","message":"[IdentityService] Found 2 identities for user 1","timestamp":"2025-04-22T14:21:06.930Z"}
-{"level":"info","message":"GET /api/auth/check","timestamp":"2025-04-22T14:21:06.941Z"}
-{"level":"info","message":"[IdentityService] Found 2 identities for user 1","timestamp":"2025-04-22T14:21:06.947Z"}
-{"level":"info","message":"GET /api/chat/history?count_only=true","timestamp":"2025-04-22T14:21:06.949Z"}
-{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-22T14:21:06.964Z"}
-{"level":"info","message":"GET /api/chat/history?offset=2&limit=30","timestamp":"2025-04-22T14:21:06.966Z"}
-{"level":"info","message":"[IdentityService] Found 2 identities for user 1","timestamp":"2025-04-22T14:21:06.967Z"}
-{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-22T14:21:06.979Z"}
-{"level":"info","message":"[IdentityService] Found 2 identities for user 1","timestamp":"2025-04-22T14:21:06.981Z"}
-{"level":"info","message":"GET /api/tokens/balances?address=0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-22T14:21:06.995Z"}
-{"level":"info","message":"Fetching token balances for address: 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-22T14:21:06.996Z"}
-{"balance":"454852.0","contract":"0x351f59de4fedbdf7601f5592b93db3b9330c1c1d","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on polygon:","timestamp":"2025-04-22T14:21:07.231Z"}
-{"arbitrum":"499999.9","bsc":"500000.0","eth":"1500000.0","level":"info","message":"Token balances fetched for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b:","polygon":"454852.0","timestamp":"2025-04-22T14:21:07.231Z"}
-{"balance":"454852.0","contract":"0x351f59de4fedbdf7601f5592b93db3b9330c1c1d","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on polygon:","timestamp":"2025-04-22T14:21:07.231Z"}
-{"arbitrum":"499999.9","bsc":"500000.0","eth":"1500000.0","level":"info","message":"Token balances fetched for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b:","polygon":"454852.0","timestamp":"2025-04-22T14:21:07.231Z"}
-{"level":"info","message":"GET /api/tokens/balances?address=0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-22T14:21:07.241Z"}
-{"level":"info","message":"Fetching token balances for address: 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-22T14:21:07.241Z"}
-{"balance":"1500000.0","contract":"0xd95a45fc46a7300e6022885afec3d618d7d3f27c","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on eth:","timestamp":"2025-04-22T14:21:07.496Z"}
-{"balance":"1500000.0","contract":"0xd95a45fc46a7300e6022885afec3d618d7d3f27c","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on eth:","timestamp":"2025-04-22T14:21:07.702Z"}
-{"balance":"500000.0","contract":"0x4B294265720B09ca39BFBA18c7E368413c0f68eB","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on bsc:","timestamp":"2025-04-22T14:21:07.756Z"}
-{"balance":"500000.0","contract":"0x4B294265720B09ca39BFBA18c7E368413c0f68eB","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on bsc:","timestamp":"2025-04-22T14:21:07.899Z"}
-{"balance":"499999.9","contract":"0xdce769b847a0a697239777d0b1c7dd33b6012ba0","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on arbitrum:","timestamp":"2025-04-22T14:21:08.422Z"}
-{"balance":"499999.9","contract":"0xdce769b847a0a697239777d0b1c7dd33b6012ba0","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on arbitrum:","timestamp":"2025-04-22T14:21:08.422Z"}
-{"level":"info","message":"GET /api/auth/check","timestamp":"2025-04-22T14:21:08.750Z"}
-{"level":"info","message":"[IdentityService] Found 2 identities for user 1","timestamp":"2025-04-22T14:21:08.751Z"}
-{"level":"info","message":"GET /api/auth/check","timestamp":"2025-04-22T14:21:08.759Z"}
-{"level":"info","message":"[IdentityService] Found 2 identities for user 1","timestamp":"2025-04-22T14:21:08.760Z"}
-{"level":"info","message":"GET /api/chat/history?count_only=true","timestamp":"2025-04-22T14:21:08.762Z"}
-{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-22T14:21:08.774Z"}
-{"level":"info","message":"[IdentityService] Found 2 identities for user 1","timestamp":"2025-04-22T14:21:08.776Z"}
-{"level":"info","message":"GET /api/chat/history?offset=2&limit=30","timestamp":"2025-04-22T14:21:08.780Z"}
-{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-22T14:21:08.790Z"}
-{"level":"info","message":"[IdentityService] Found 2 identities for user 1","timestamp":"2025-04-22T14:21:08.792Z"}
-{"balance":"454852.0","contract":"0x351f59de4fedbdf7601f5592b93db3b9330c1c1d","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on polygon:","timestamp":"2025-04-22T14:21:08.875Z"}
-{"arbitrum":"499999.9","bsc":"500000.0","eth":"1500000.0","level":"info","message":"Token balances fetched for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b:","polygon":"454852.0","timestamp":"2025-04-22T14:21:08.876Z"}
-{"balance":"454852.0","contract":"0x351f59de4fedbdf7601f5592b93db3b9330c1c1d","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on polygon:","timestamp":"2025-04-22T14:21:08.876Z"}
-{"arbitrum":"499999.9","bsc":"500000.0","eth":"1500000.0","level":"info","message":"Token balances fetched for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b:","polygon":"454852.0","timestamp":"2025-04-22T14:21:08.876Z"}
-{"level":"info","message":"GET /api/tokens/balances?address=0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-22T14:21:08.883Z"}
-{"level":"info","message":"Fetching token balances for address: 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-22T14:21:08.884Z"}
-{"balance":"1500000.0","contract":"0xd95a45fc46a7300e6022885afec3d618d7d3f27c","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on eth:","timestamp":"2025-04-22T14:21:09.286Z"}
-{"balance":"500000.0","contract":"0x4B294265720B09ca39BFBA18c7E368413c0f68eB","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on bsc:","timestamp":"2025-04-22T14:21:09.576Z"}
-{"balance":"499999.9","contract":"0xdce769b847a0a697239777d0b1c7dd33b6012ba0","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on arbitrum:","timestamp":"2025-04-22T14:21:10.162Z"}
-{"level":"info","message":"GET /api/auth/check","timestamp":"2025-04-22T14:21:10.586Z"}
-{"level":"info","message":"[IdentityService] Found 2 identities for user 1","timestamp":"2025-04-22T14:21:10.587Z"}
-{"level":"info","message":"GET /api/auth/check","timestamp":"2025-04-22T14:21:10.594Z"}
-{"level":"info","message":"[IdentityService] Found 2 identities for user 1","timestamp":"2025-04-22T14:21:10.596Z"}
-{"level":"info","message":"GET /api/chat/history?count_only=true","timestamp":"2025-04-22T14:21:10.600Z"}
-{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-22T14:21:10.609Z"}
-{"balance":"454852.0","contract":"0x351f59de4fedbdf7601f5592b93db3b9330c1c1d","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on polygon:","timestamp":"2025-04-22T14:21:10.612Z"}
-{"arbitrum":"499999.9","bsc":"500000.0","eth":"1500000.0","level":"info","message":"Token balances fetched for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b:","polygon":"454852.0","timestamp":"2025-04-22T14:21:10.613Z"}
-{"level":"info","message":"[IdentityService] Found 2 identities for user 1","timestamp":"2025-04-22T14:21:10.615Z"}
-{"level":"info","message":"GET /api/chat/history?offset=2&limit=30","timestamp":"2025-04-22T14:21:10.619Z"}
-{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-22T14:21:10.630Z"}
-{"level":"info","message":"[IdentityService] Found 2 identities for user 1","timestamp":"2025-04-22T14:21:10.633Z"}
-{"level":"info","message":"GET /api/tokens/balances?address=0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-22T14:21:10.649Z"}
-{"level":"info","message":"Fetching token balances for address: 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-22T14:21:10.649Z"}
-{"balance":"1500000.0","contract":"0xd95a45fc46a7300e6022885afec3d618d7d3f27c","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on eth:","timestamp":"2025-04-22T14:21:11.039Z"}
-{"balance":"500000.0","contract":"0x4B294265720B09ca39BFBA18c7E368413c0f68eB","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on bsc:","timestamp":"2025-04-22T14:21:11.320Z"}
-{"balance":"499999.9","contract":"0xdce769b847a0a697239777d0b1c7dd33b6012ba0","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on arbitrum:","timestamp":"2025-04-22T14:21:11.893Z"}
-{"level":"info","message":"GET /api/tokens/balances?address=0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-22T14:21:12.170Z"}
-{"level":"info","message":"Fetching token balances for address: 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-22T14:21:12.171Z"}
-{"balance":"454852.0","contract":"0x351f59de4fedbdf7601f5592b93db3b9330c1c1d","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on polygon:","timestamp":"2025-04-22T14:21:12.306Z"}
-{"arbitrum":"499999.9","bsc":"500000.0","eth":"1500000.0","level":"info","message":"Token balances fetched for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b:","polygon":"454852.0","timestamp":"2025-04-22T14:21:12.306Z"}
-{"level":"info","message":"GET /api/tokens/balances?address=0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-22T14:21:12.314Z"}
-{"level":"info","message":"Fetching token balances for address: 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-22T14:21:12.314Z"}
-{"level":"info","message":"GET /api/auth/check","timestamp":"2025-04-22T14:21:12.425Z"}
-{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-22T14:21:12.426Z"}
-{"level":"info","message":"[IdentityService] Found 2 identities for user 1","timestamp":"2025-04-22T14:21:12.431Z"}
-{"level":"info","message":"[IdentityService] Found 2 identities for user 1","timestamp":"2025-04-22T14:21:12.433Z"}
-{"level":"info","message":"GET /api/auth/check","timestamp":"2025-04-22T14:21:12.443Z"}
-{"level":"info","message":"[IdentityService] Found 2 identities for user 1","timestamp":"2025-04-22T14:21:12.445Z"}
-{"level":"info","message":"GET /api/chat/history?count_only=true","timestamp":"2025-04-22T14:21:12.450Z"}
-{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-22T14:21:12.459Z"}
-{"level":"info","message":"[IdentityService] Found 2 identities for user 1","timestamp":"2025-04-22T14:21:12.461Z"}
-{"level":"info","message":"GET /api/chat/history?offset=2&limit=30","timestamp":"2025-04-22T14:21:12.466Z"}
-{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-22T14:21:12.472Z"}
-{"level":"info","message":"[IdentityService] Found 2 identities for user 1","timestamp":"2025-04-22T14:21:12.476Z"}
-{"level":"info","message":"GET /api/tokens/balances?address=0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-22T14:21:12.509Z"}
-{"level":"info","message":"Fetching token balances for address: 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-22T14:21:12.510Z"}
-{"balance":"1500000.0","contract":"0xd95a45fc46a7300e6022885afec3d618d7d3f27c","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on eth:","timestamp":"2025-04-22T14:21:12.670Z"}
-{"balance":"1500000.0","contract":"0xd95a45fc46a7300e6022885afec3d618d7d3f27c","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on eth:","timestamp":"2025-04-22T14:21:12.670Z"}
-{"balance":"1500000.0","contract":"0xd95a45fc46a7300e6022885afec3d618d7d3f27c","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on eth:","timestamp":"2025-04-22T14:21:12.986Z"}
-{"balance":"500000.0","contract":"0x4B294265720B09ca39BFBA18c7E368413c0f68eB","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on bsc:","timestamp":"2025-04-22T14:21:13.109Z"}
-{"balance":"500000.0","contract":"0x4B294265720B09ca39BFBA18c7E368413c0f68eB","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on bsc:","timestamp":"2025-04-22T14:21:13.109Z"}
-{"balance":"500000.0","contract":"0x4B294265720B09ca39BFBA18c7E368413c0f68eB","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on bsc:","timestamp":"2025-04-22T14:21:13.237Z"}
-{"balance":"499999.9","contract":"0xdce769b847a0a697239777d0b1c7dd33b6012ba0","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on arbitrum:","timestamp":"2025-04-22T14:21:13.694Z"}
-{"balance":"499999.9","contract":"0xdce769b847a0a697239777d0b1c7dd33b6012ba0","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on arbitrum:","timestamp":"2025-04-22T14:21:13.694Z"}
-{"balance":"499999.9","contract":"0xdce769b847a0a697239777d0b1c7dd33b6012ba0","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on arbitrum:","timestamp":"2025-04-22T14:21:13.695Z"}
-{"level":"info","message":"GET /api/tokens/balances?address=0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-22T14:21:13.782Z"}
-{"level":"info","message":"Fetching token balances for address: 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-22T14:21:13.783Z"}
-{"balance":"454852.0","contract":"0x351f59de4fedbdf7601f5592b93db3b9330c1c1d","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on polygon:","timestamp":"2025-04-22T14:21:14.114Z"}
-{"arbitrum":"499999.9","bsc":"500000.0","eth":"1500000.0","level":"info","message":"Token balances fetched for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b:","polygon":"454852.0","timestamp":"2025-04-22T14:21:14.114Z"}
-{"balance":"454852.0","contract":"0x351f59de4fedbdf7601f5592b93db3b9330c1c1d","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on polygon:","timestamp":"2025-04-22T14:21:14.114Z"}
-{"arbitrum":"499999.9","bsc":"500000.0","eth":"1500000.0","level":"info","message":"Token balances fetched for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b:","polygon":"454852.0","timestamp":"2025-04-22T14:21:14.114Z"}
-{"balance":"454852.0","contract":"0x351f59de4fedbdf7601f5592b93db3b9330c1c1d","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on polygon:","timestamp":"2025-04-22T14:21:14.114Z"}
-{"arbitrum":"499999.9","bsc":"500000.0","eth":"1500000.0","level":"info","message":"Token balances fetched for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b:","polygon":"454852.0","timestamp":"2025-04-22T14:21:14.115Z"}
-{"level":"info","message":"GET /api/tokens/balances?address=0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-22T14:21:14.124Z"}
-{"level":"info","message":"Fetching token balances for address: 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-22T14:21:14.125Z"}
-{"balance":"1500000.0","contract":"0xd95a45fc46a7300e6022885afec3d618d7d3f27c","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on eth:","timestamp":"2025-04-22T14:21:14.168Z"}
-{"level":"info","message":"GET /api/auth/check","timestamp":"2025-04-22T14:21:14.255Z"}
-{"level":"info","message":"[IdentityService] Found 2 identities for user 1","timestamp":"2025-04-22T14:21:14.256Z"}
-{"level":"info","message":"GET /api/auth/check","timestamp":"2025-04-22T14:21:14.265Z"}
-{"level":"info","message":"[IdentityService] Found 2 identities for user 1","timestamp":"2025-04-22T14:21:14.267Z"}
-{"level":"info","message":"GET /api/chat/history?count_only=true","timestamp":"2025-04-22T14:21:14.269Z"}
-{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-22T14:21:14.281Z"}
-{"level":"info","message":"GET /api/chat/history?offset=2&limit=30","timestamp":"2025-04-22T14:21:14.283Z"}
-{"level":"info","message":"[IdentityService] Found 2 identities for user 1","timestamp":"2025-04-22T14:21:14.284Z"}
-{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-22T14:21:14.295Z"}
-{"level":"info","message":"[IdentityService] Found 2 identities for user 1","timestamp":"2025-04-22T14:21:14.297Z"}
-{"balance":"1500000.0","contract":"0xd95a45fc46a7300e6022885afec3d618d7d3f27c","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on eth:","timestamp":"2025-04-22T14:21:14.358Z"}
-{"balance":"500000.0","contract":"0x4B294265720B09ca39BFBA18c7E368413c0f68eB","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on bsc:","timestamp":"2025-04-22T14:21:14.453Z"}
-{"balance":"500000.0","contract":"0x4B294265720B09ca39BFBA18c7E368413c0f68eB","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on bsc:","timestamp":"2025-04-22T14:21:14.594Z"}
-{"balance":"499999.9","contract":"0xdce769b847a0a697239777d0b1c7dd33b6012ba0","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on arbitrum:","timestamp":"2025-04-22T14:21:17.748Z"}
-{"balance":"499999.9","contract":"0xdce769b847a0a697239777d0b1c7dd33b6012ba0","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on arbitrum:","timestamp":"2025-04-22T14:21:17.748Z"}
-{"balance":"454852.0","contract":"0x351f59de4fedbdf7601f5592b93db3b9330c1c1d","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on polygon:","timestamp":"2025-04-22T14:21:18.180Z"}
-{"arbitrum":"499999.9","bsc":"500000.0","eth":"1500000.0","level":"info","message":"Token balances fetched for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b:","polygon":"454852.0","timestamp":"2025-04-22T14:21:18.180Z"}
-{"balance":"454852.0","contract":"0x351f59de4fedbdf7601f5592b93db3b9330c1c1d","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on polygon:","timestamp":"2025-04-22T14:21:18.180Z"}
-{"arbitrum":"499999.9","bsc":"500000.0","eth":"1500000.0","level":"info","message":"Token balances fetched for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b:","polygon":"454852.0","timestamp":"2025-04-22T14:21:18.180Z"}
-{"level":"info","message":"GET /api/tokens/balances?address=0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-22T14:21:18.191Z"}
-{"level":"info","message":"Fetching token balances for address: 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-22T14:21:18.191Z"}
-{"balance":"1500000.0","contract":"0xd95a45fc46a7300e6022885afec3d618d7d3f27c","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on eth:","timestamp":"2025-04-22T14:21:18.647Z"}
-{"level":"info","message":"GET /api/auth/check","timestamp":"2025-04-22T14:21:18.819Z"}
-{"level":"info","message":"[IdentityService] Found 2 identities for user 1","timestamp":"2025-04-22T14:21:18.821Z"}
-{"level":"info","message":"GET /api/auth/check","timestamp":"2025-04-22T14:21:18.833Z"}
-{"level":"info","message":"[IdentityService] Found 2 identities for user 1","timestamp":"2025-04-22T14:21:18.836Z"}
-{"level":"info","message":"GET /api/chat/history?count_only=true","timestamp":"2025-04-22T14:21:18.843Z"}
-{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-22T14:21:18.858Z"}
-{"level":"info","message":"[IdentityService] Found 2 identities for user 1","timestamp":"2025-04-22T14:21:18.860Z"}
-{"level":"info","message":"GET /api/chat/history?offset=2&limit=30","timestamp":"2025-04-22T14:21:18.868Z"}
-{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-22T14:21:18.879Z"}
-{"level":"info","message":"[IdentityService] Found 2 identities for user 1","timestamp":"2025-04-22T14:21:18.882Z"}
-{"balance":"500000.0","contract":"0x4B294265720B09ca39BFBA18c7E368413c0f68eB","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on bsc:","timestamp":"2025-04-22T14:21:18.920Z"}
-{"balance":"499999.9","contract":"0xdce769b847a0a697239777d0b1c7dd33b6012ba0","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on arbitrum:","timestamp":"2025-04-22T14:21:19.499Z"}
-{"balance":"454852.0","contract":"0x351f59de4fedbdf7601f5592b93db3b9330c1c1d","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on polygon:","timestamp":"2025-04-22T14:21:19.909Z"}
-{"arbitrum":"499999.9","bsc":"500000.0","eth":"1500000.0","level":"info","message":"Token balances fetched for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b:","polygon":"454852.0","timestamp":"2025-04-22T14:21:19.909Z"}
-{"level":"info","message":"GET /api/tokens/balances?address=0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-22T14:21:19.917Z"}
-{"level":"info","message":"Fetching token balances for address: 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-22T14:21:19.917Z"}
-{"balance":"1500000.0","contract":"0xd95a45fc46a7300e6022885afec3d618d7d3f27c","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on eth:","timestamp":"2025-04-22T14:21:20.306Z"}
-{"balance":"500000.0","contract":"0x4B294265720B09ca39BFBA18c7E368413c0f68eB","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on bsc:","timestamp":"2025-04-22T14:21:20.577Z"}
-{"level":"info","message":"GET /api/auth/check","timestamp":"2025-04-22T14:21:20.640Z"}
-{"level":"info","message":"[IdentityService] Found 2 identities for user 1","timestamp":"2025-04-22T14:21:20.641Z"}
-{"level":"info","message":"GET /api/auth/check","timestamp":"2025-04-22T14:21:20.651Z"}
-{"level":"info","message":"[IdentityService] Found 2 identities for user 1","timestamp":"2025-04-22T14:21:20.652Z"}
-{"level":"info","message":"GET /api/chat/history?count_only=true","timestamp":"2025-04-22T14:21:20.653Z"}
-{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-22T14:21:20.666Z"}
-{"level":"info","message":"GET /api/chat/history?offset=2&limit=30","timestamp":"2025-04-22T14:21:20.667Z"}
-{"level":"info","message":"[IdentityService] Found 2 identities for user 1","timestamp":"2025-04-22T14:21:20.669Z"}
-{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-22T14:21:20.682Z"}
-{"level":"info","message":"[IdentityService] Found 2 identities for user 1","timestamp":"2025-04-22T14:21:20.684Z"}
-{"level":"info","message":"GET /api/tokens/balances?address=0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-22T14:21:20.737Z"}
-{"level":"info","message":"Fetching token balances for address: 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-22T14:21:20.738Z"}
-{"balance":"1500000.0","contract":"0xd95a45fc46a7300e6022885afec3d618d7d3f27c","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on eth:","timestamp":"2025-04-22T14:21:21.118Z"}
-{"balance":"499999.9","contract":"0xdce769b847a0a697239777d0b1c7dd33b6012ba0","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on arbitrum:","timestamp":"2025-04-22T14:21:21.194Z"}
-{"balance":"500000.0","contract":"0x4B294265720B09ca39BFBA18c7E368413c0f68eB","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on bsc:","timestamp":"2025-04-22T14:21:21.473Z"}
-{"level":"info","message":"GET /api/tokens/balances?address=0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-22T14:21:21.492Z"}
-{"level":"info","message":"Fetching token balances for address: 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-22T14:21:21.492Z"}
-{"balance":"454852.0","contract":"0x351f59de4fedbdf7601f5592b93db3b9330c1c1d","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on polygon:","timestamp":"2025-04-22T14:21:21.717Z"}
-{"arbitrum":"499999.9","bsc":"500000.0","eth":"1500000.0","level":"info","message":"Token balances fetched for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b:","polygon":"454852.0","timestamp":"2025-04-22T14:21:21.717Z"}
-{"level":"info","message":"GET /api/tokens/balances?address=0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-22T14:21:21.725Z"}
-{"level":"info","message":"Fetching token balances for address: 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-22T14:21:21.726Z"}
-{"balance":"1500000.0","contract":"0xd95a45fc46a7300e6022885afec3d618d7d3f27c","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on eth:","timestamp":"2025-04-22T14:21:21.896Z"}
-{"balance":"499999.9","contract":"0xdce769b847a0a697239777d0b1c7dd33b6012ba0","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on arbitrum:","timestamp":"2025-04-22T14:21:22.079Z"}
-{"balance":"1500000.0","contract":"0xd95a45fc46a7300e6022885afec3d618d7d3f27c","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on eth:","timestamp":"2025-04-22T14:21:22.101Z"}
-{"balance":"500000.0","contract":"0x4B294265720B09ca39BFBA18c7E368413c0f68eB","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on bsc:","timestamp":"2025-04-22T14:21:22.178Z"}
-{"balance":"500000.0","contract":"0x4B294265720B09ca39BFBA18c7E368413c0f68eB","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on bsc:","timestamp":"2025-04-22T14:21:22.324Z"}
-{"level":"info","message":"GET /api/auth/check","timestamp":"2025-04-22T14:21:22.477Z"}
-{"level":"info","message":"[IdentityService] Found 2 identities for user 1","timestamp":"2025-04-22T14:21:22.478Z"}
-{"level":"info","message":"GET /api/auth/check","timestamp":"2025-04-22T14:21:22.486Z"}
-{"level":"info","message":"[IdentityService] Found 2 identities for user 1","timestamp":"2025-04-22T14:21:22.488Z"}
-{"level":"info","message":"GET /api/chat/history?count_only=true","timestamp":"2025-04-22T14:21:22.494Z"}
-{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-22T14:21:22.501Z"}
-{"level":"info","message":"[IdentityService] Found 2 identities for user 1","timestamp":"2025-04-22T14:21:22.503Z"}
-{"level":"info","message":"GET /api/chat/history?offset=2&limit=30","timestamp":"2025-04-22T14:21:22.510Z"}
-{"balance":"454852.0","contract":"0x351f59de4fedbdf7601f5592b93db3b9330c1c1d","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on polygon:","timestamp":"2025-04-22T14:21:22.515Z"}
-{"arbitrum":"499999.9","bsc":"500000.0","eth":"1500000.0","level":"info","message":"Token balances fetched for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b:","polygon":"454852.0","timestamp":"2025-04-22T14:21:22.515Z"}
-{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-22T14:21:22.522Z"}
-{"level":"info","message":"[IdentityService] Found 2 identities for user 1","timestamp":"2025-04-22T14:21:22.527Z"}
-{"balance":"499999.9","contract":"0xdce769b847a0a697239777d0b1c7dd33b6012ba0","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on arbitrum:","timestamp":"2025-04-22T14:21:22.809Z"}
-{"balance":"499999.9","contract":"0xdce769b847a0a697239777d0b1c7dd33b6012ba0","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on arbitrum:","timestamp":"2025-04-22T14:21:22.809Z"}
-{"level":"info","message":"GET /api/tokens/balances?address=0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-22T14:21:23.117Z"}
-{"level":"info","message":"Fetching token balances for address: 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-22T14:21:23.117Z"}
-{"balance":"454852.0","contract":"0x351f59de4fedbdf7601f5592b93db3b9330c1c1d","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on polygon:","timestamp":"2025-04-22T14:21:23.252Z"}
-{"arbitrum":"499999.9","bsc":"500000.0","eth":"1500000.0","level":"info","message":"Token balances fetched for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b:","polygon":"454852.0","timestamp":"2025-04-22T14:21:23.252Z"}
-{"balance":"454852.0","contract":"0x351f59de4fedbdf7601f5592b93db3b9330c1c1d","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on polygon:","timestamp":"2025-04-22T14:21:23.252Z"}
-{"arbitrum":"499999.9","bsc":"500000.0","eth":"1500000.0","level":"info","message":"Token balances fetched for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b:","polygon":"454852.0","timestamp":"2025-04-22T14:21:23.253Z"}
-{"level":"info","message":"GET /api/tokens/balances?address=0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-22T14:21:23.263Z"}
-{"level":"info","message":"Fetching token balances for address: 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-22T14:21:23.263Z"}
-{"balance":"1500000.0","contract":"0xd95a45fc46a7300e6022885afec3d618d7d3f27c","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on eth:","timestamp":"2025-04-22T14:21:23.518Z"}
-{"balance":"1500000.0","contract":"0xd95a45fc46a7300e6022885afec3d618d7d3f27c","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on eth:","timestamp":"2025-04-22T14:21:23.519Z"}
-{"balance":"500000.0","contract":"0x4B294265720B09ca39BFBA18c7E368413c0f68eB","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on bsc:","timestamp":"2025-04-22T14:21:23.817Z"}
-{"balance":"500000.0","contract":"0x4B294265720B09ca39BFBA18c7E368413c0f68eB","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on bsc:","timestamp":"2025-04-22T14:21:23.818Z"}
-{"level":"info","message":"GET /api/auth/check","timestamp":"2025-04-22T14:21:24.315Z"}
-{"level":"info","message":"[IdentityService] Found 2 identities for user 1","timestamp":"2025-04-22T14:21:24.317Z"}
-{"level":"info","message":"GET /api/auth/check","timestamp":"2025-04-22T14:21:24.328Z"}
-{"level":"info","message":"[IdentityService] Found 2 identities for user 1","timestamp":"2025-04-22T14:21:24.329Z"}
-{"level":"info","message":"GET /api/chat/history?count_only=true","timestamp":"2025-04-22T14:21:24.331Z"}
-{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-22T14:21:24.343Z"}
-{"level":"info","message":"[IdentityService] Found 2 identities for user 1","timestamp":"2025-04-22T14:21:24.346Z"}
-{"level":"info","message":"GET /api/chat/history?offset=2&limit=30","timestamp":"2025-04-22T14:21:24.349Z"}
-{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-22T14:21:24.361Z"}
-{"level":"info","message":"[IdentityService] Found 2 identities for user 1","timestamp":"2025-04-22T14:21:24.363Z"}
-{"balance":"499999.9","contract":"0xdce769b847a0a697239777d0b1c7dd33b6012ba0","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on arbitrum:","timestamp":"2025-04-22T14:21:24.399Z"}
-{"balance":"499999.9","contract":"0xdce769b847a0a697239777d0b1c7dd33b6012ba0","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on arbitrum:","timestamp":"2025-04-22T14:21:24.400Z"}
-{"balance":"454852.0","contract":"0x351f59de4fedbdf7601f5592b93db3b9330c1c1d","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on polygon:","timestamp":"2025-04-22T14:21:24.876Z"}
-{"arbitrum":"499999.9","bsc":"500000.0","eth":"1500000.0","level":"info","message":"Token balances fetched for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b:","polygon":"454852.0","timestamp":"2025-04-22T14:21:24.876Z"}
-{"balance":"454852.0","contract":"0x351f59de4fedbdf7601f5592b93db3b9330c1c1d","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on polygon:","timestamp":"2025-04-22T14:21:24.876Z"}
-{"arbitrum":"499999.9","bsc":"500000.0","eth":"1500000.0","level":"info","message":"Token balances fetched for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b:","polygon":"454852.0","timestamp":"2025-04-22T14:21:24.876Z"}
-{"level":"info","message":"GET /api/tokens/balances?address=0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-22T14:21:24.884Z"}
-{"level":"info","message":"Fetching token balances for address: 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-22T14:21:24.884Z"}
-{"balance":"1500000.0","contract":"0xd95a45fc46a7300e6022885afec3d618d7d3f27c","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on eth:","timestamp":"2025-04-22T14:21:25.300Z"}
-{"balance":"500000.0","contract":"0x4B294265720B09ca39BFBA18c7E368413c0f68eB","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on bsc:","timestamp":"2025-04-22T14:21:25.601Z"}
-{"level":"info","message":"GET /api/auth/check","timestamp":"2025-04-22T14:21:26.148Z"}
-{"level":"info","message":"[IdentityService] Found 2 identities for user 1","timestamp":"2025-04-22T14:21:26.149Z"}
-{"level":"info","message":"GET /api/chat/history?count_only=true","timestamp":"2025-04-22T14:21:26.159Z"}
-{"level":"info","message":"GET /api/chat/history?offset=2&limit=30","timestamp":"2025-04-22T14:21:26.169Z"}
-{"balance":"499999.9","contract":"0xdce769b847a0a697239777d0b1c7dd33b6012ba0","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on arbitrum:","timestamp":"2025-04-22T14:21:26.202Z"}
-{"level":"info","message":"GET /api/tokens/balances?address=0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-22T14:21:26.205Z"}
-{"level":"info","message":"Fetching token balances for address: 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-22T14:21:26.205Z"}
-{"level":"info","message":"GET /api/tokens/balances?address=0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-22T14:21:26.546Z"}
-{"level":"info","message":"Fetching token balances for address: 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-22T14:21:26.547Z"}
-{"balance":"454852.0","contract":"0x351f59de4fedbdf7601f5592b93db3b9330c1c1d","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on polygon:","timestamp":"2025-04-22T14:21:26.646Z"}
-{"arbitrum":"499999.9","bsc":"500000.0","eth":"1500000.0","level":"info","message":"Token balances fetched for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b:","polygon":"454852.0","timestamp":"2025-04-22T14:21:26.646Z"}
-{"balance":"1500000.0","contract":"0xd95a45fc46a7300e6022885afec3d618d7d3f27c","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on eth:","timestamp":"2025-04-22T14:21:26.650Z"}
-{"level":"info","message":"GET /api/tokens/balances?address=0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-22T14:21:26.654Z"}
-{"level":"info","message":"Fetching token balances for address: 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-22T14:21:26.655Z"}
-{"balance":"1500000.0","contract":"0xd95a45fc46a7300e6022885afec3d618d7d3f27c","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on eth:","timestamp":"2025-04-22T14:21:26.855Z"}
-{"balance":"500000.0","contract":"0x4B294265720B09ca39BFBA18c7E368413c0f68eB","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on bsc:","timestamp":"2025-04-22T14:21:26.911Z"}
-{"balance":"1500000.0","contract":"0xd95a45fc46a7300e6022885afec3d618d7d3f27c","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on eth:","timestamp":"2025-04-22T14:21:27.054Z"}
-{"balance":"500000.0","contract":"0x4B294265720B09ca39BFBA18c7E368413c0f68eB","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on bsc:","timestamp":"2025-04-22T14:21:27.055Z"}
-{"balance":"500000.0","contract":"0x4B294265720B09ca39BFBA18c7E368413c0f68eB","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on bsc:","timestamp":"2025-04-22T14:21:27.223Z"}
-{"balance":"499999.9","contract":"0xdce769b847a0a697239777d0b1c7dd33b6012ba0","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on arbitrum:","timestamp":"2025-04-22T14:21:27.505Z"}
-{"balance":"499999.9","contract":"0xdce769b847a0a697239777d0b1c7dd33b6012ba0","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on arbitrum:","timestamp":"2025-04-22T14:21:27.506Z"}
-{"balance":"499999.9","contract":"0xdce769b847a0a697239777d0b1c7dd33b6012ba0","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on arbitrum:","timestamp":"2025-04-22T14:21:27.806Z"}
-{"balance":"454852.0","contract":"0x351f59de4fedbdf7601f5592b93db3b9330c1c1d","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on polygon:","timestamp":"2025-04-22T14:21:27.957Z"}
-{"arbitrum":"499999.9","bsc":"500000.0","eth":"1500000.0","level":"info","message":"Token balances fetched for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b:","polygon":"454852.0","timestamp":"2025-04-22T14:21:27.957Z"}
-{"balance":"454852.0","contract":"0x351f59de4fedbdf7601f5592b93db3b9330c1c1d","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on polygon:","timestamp":"2025-04-22T14:21:27.958Z"}
-{"arbitrum":"499999.9","bsc":"500000.0","eth":"1500000.0","level":"info","message":"Token balances fetched for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b:","polygon":"454852.0","timestamp":"2025-04-22T14:21:27.958Z"}
-{"balance":"454852.0","contract":"0x351f59de4fedbdf7601f5592b93db3b9330c1c1d","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on polygon:","timestamp":"2025-04-22T14:21:28.170Z"}
-{"arbitrum":"499999.9","bsc":"500000.0","eth":"1500000.0","level":"info","message":"Token balances fetched for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b:","polygon":"454852.0","timestamp":"2025-04-22T14:21:28.170Z"}
-{"level":"info","message":"GET /api/tokens/balances?address=0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-22T14:21:28.179Z"}
-{"level":"info","message":"Fetching token balances for address: 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-22T14:21:28.179Z"}
-{"balance":"1500000.0","contract":"0xd95a45fc46a7300e6022885afec3d618d7d3f27c","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on eth:","timestamp":"2025-04-22T14:21:28.738Z"}
-{"balance":"500000.0","contract":"0x4B294265720B09ca39BFBA18c7E368413c0f68eB","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on bsc:","timestamp":"2025-04-22T14:21:29.014Z"}
-{"balance":"499999.9","contract":"0xdce769b847a0a697239777d0b1c7dd33b6012ba0","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on arbitrum:","timestamp":"2025-04-22T14:21:29.588Z"}
-{"level":"info","message":"GET /api/tokens/balances?address=0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-22T14:21:29.957Z"}
-{"level":"info","message":"Fetching token balances for address: 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-22T14:21:29.958Z"}
-{"level":"info","message":"GET /api/tokens/balances?address=0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-22T14:21:29.959Z"}
-{"level":"info","message":"Fetching token balances for address: 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-22T14:21:29.959Z"}
-{"balance":"454852.0","contract":"0x351f59de4fedbdf7601f5592b93db3b9330c1c1d","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on polygon:","timestamp":"2025-04-22T14:21:30.048Z"}
-{"arbitrum":"499999.9","bsc":"500000.0","eth":"1500000.0","level":"info","message":"Token balances fetched for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b:","polygon":"454852.0","timestamp":"2025-04-22T14:21:30.048Z"}
-{"level":"info","message":"GET /api/tokens/balances?address=0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-22T14:21:30.056Z"}
-{"level":"info","message":"Fetching token balances for address: 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-22T14:21:30.057Z"}
-{"balance":"1500000.0","contract":"0xd95a45fc46a7300e6022885afec3d618d7d3f27c","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on eth:","timestamp":"2025-04-22T14:21:30.357Z"}
-{"balance":"1500000.0","contract":"0xd95a45fc46a7300e6022885afec3d618d7d3f27c","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on eth:","timestamp":"2025-04-22T14:21:30.357Z"}
-{"balance":"1500000.0","contract":"0xd95a45fc46a7300e6022885afec3d618d7d3f27c","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on eth:","timestamp":"2025-04-22T14:21:30.357Z"}
-{"balance":"500000.0","contract":"0x4B294265720B09ca39BFBA18c7E368413c0f68eB","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on bsc:","timestamp":"2025-04-22T14:21:30.642Z"}
-{"balance":"500000.0","contract":"0x4B294265720B09ca39BFBA18c7E368413c0f68eB","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on bsc:","timestamp":"2025-04-22T14:21:30.642Z"}
-{"balance":"500000.0","contract":"0x4B294265720B09ca39BFBA18c7E368413c0f68eB","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on bsc:","timestamp":"2025-04-22T14:21:30.642Z"}
-{"balance":"499999.9","contract":"0xdce769b847a0a697239777d0b1c7dd33b6012ba0","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on arbitrum:","timestamp":"2025-04-22T14:21:31.201Z"}
-{"balance":"499999.9","contract":"0xdce769b847a0a697239777d0b1c7dd33b6012ba0","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on arbitrum:","timestamp":"2025-04-22T14:21:31.202Z"}
-{"balance":"499999.9","contract":"0xdce769b847a0a697239777d0b1c7dd33b6012ba0","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on arbitrum:","timestamp":"2025-04-22T14:21:31.202Z"}
-{"balance":"454852.0","contract":"0x351f59de4fedbdf7601f5592b93db3b9330c1c1d","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on polygon:","timestamp":"2025-04-22T14:21:31.632Z"}
-{"arbitrum":"499999.9","bsc":"500000.0","eth":"1500000.0","level":"info","message":"Token balances fetched for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b:","polygon":"454852.0","timestamp":"2025-04-22T14:21:31.632Z"}
-{"balance":"454852.0","contract":"0x351f59de4fedbdf7601f5592b93db3b9330c1c1d","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on polygon:","timestamp":"2025-04-22T14:21:31.632Z"}
-{"arbitrum":"499999.9","bsc":"500000.0","eth":"1500000.0","level":"info","message":"Token balances fetched for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b:","polygon":"454852.0","timestamp":"2025-04-22T14:21:31.632Z"}
-{"balance":"454852.0","contract":"0x351f59de4fedbdf7601f5592b93db3b9330c1c1d","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on polygon:","timestamp":"2025-04-22T14:21:31.633Z"}
-{"arbitrum":"499999.9","bsc":"500000.0","eth":"1500000.0","level":"info","message":"Token balances fetched for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b:","polygon":"454852.0","timestamp":"2025-04-22T14:21:31.633Z"}
-{"level":"info","message":"GET /api/tokens/balances?address=0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-22T14:21:31.642Z"}
-{"level":"info","message":"Fetching token balances for address: 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-22T14:21:31.642Z"}
-{"balance":"1500000.0","contract":"0xd95a45fc46a7300e6022885afec3d618d7d3f27c","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on eth:","timestamp":"2025-04-22T14:21:32.123Z"}
-{"balance":"500000.0","contract":"0x4B294265720B09ca39BFBA18c7E368413c0f68eB","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on bsc:","timestamp":"2025-04-22T14:21:32.410Z"}
-{"balance":"499999.9","contract":"0xdce769b847a0a697239777d0b1c7dd33b6012ba0","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on arbitrum:","timestamp":"2025-04-22T14:21:33.004Z"}
-{"balance":"454852.0","contract":"0x351f59de4fedbdf7601f5592b93db3b9330c1c1d","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on polygon:","timestamp":"2025-04-22T14:21:33.425Z"}
-{"arbitrum":"499999.9","bsc":"500000.0","eth":"1500000.0","level":"info","message":"Token balances fetched for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b:","polygon":"454852.0","timestamp":"2025-04-22T14:21:33.425Z"}
-{"level":"info","message":"GET /api/tokens/balances?address=0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-22T14:21:33.434Z"}
-{"level":"info","message":"Fetching token balances for address: 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-22T14:21:33.434Z"}
-{"balance":"1500000.0","contract":"0xd95a45fc46a7300e6022885afec3d618d7d3f27c","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on eth:","timestamp":"2025-04-22T14:21:33.868Z"}
-{"balance":"500000.0","contract":"0x4B294265720B09ca39BFBA18c7E368413c0f68eB","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on bsc:","timestamp":"2025-04-22T14:21:34.171Z"}
-{"balance":"499999.9","contract":"0xdce769b847a0a697239777d0b1c7dd33b6012ba0","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on arbitrum:","timestamp":"2025-04-22T14:21:34.760Z"}
-{"balance":"454852.0","contract":"0x351f59de4fedbdf7601f5592b93db3b9330c1c1d","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on polygon:","timestamp":"2025-04-22T14:21:35.180Z"}
-{"arbitrum":"499999.9","bsc":"500000.0","eth":"1500000.0","level":"info","message":"Token balances fetched for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b:","polygon":"454852.0","timestamp":"2025-04-22T14:21:35.180Z"}
-{"level":"info","message":"GET /api/tokens/balances?address=0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-22T14:21:35.187Z"}
-{"level":"info","message":"Fetching token balances for address: 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-22T14:21:35.188Z"}
-{"level":"info","message":"GET /api/tokens/balances?address=0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-22T14:21:35.190Z"}
-{"level":"info","message":"Fetching token balances for address: 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-22T14:21:35.190Z"}
-{"level":"info","message":"GET /api/tokens/balances?address=0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-22T14:21:35.358Z"}
-{"level":"info","message":"Fetching token balances for address: 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-22T14:21:35.358Z"}
-{"balance":"1500000.0","contract":"0xd95a45fc46a7300e6022885afec3d618d7d3f27c","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on eth:","timestamp":"2025-04-22T14:21:35.663Z"}
-{"balance":"1500000.0","contract":"0xd95a45fc46a7300e6022885afec3d618d7d3f27c","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on eth:","timestamp":"2025-04-22T14:21:35.663Z"}
-{"balance":"1500000.0","contract":"0xd95a45fc46a7300e6022885afec3d618d7d3f27c","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on eth:","timestamp":"2025-04-22T14:21:35.664Z"}
-{"balance":"500000.0","contract":"0x4B294265720B09ca39BFBA18c7E368413c0f68eB","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on bsc:","timestamp":"2025-04-22T14:21:35.937Z"}
-{"balance":"500000.0","contract":"0x4B294265720B09ca39BFBA18c7E368413c0f68eB","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on bsc:","timestamp":"2025-04-22T14:21:35.937Z"}
-{"balance":"500000.0","contract":"0x4B294265720B09ca39BFBA18c7E368413c0f68eB","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on bsc:","timestamp":"2025-04-22T14:21:35.937Z"}
-{"balance":"499999.9","contract":"0xdce769b847a0a697239777d0b1c7dd33b6012ba0","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on arbitrum:","timestamp":"2025-04-22T14:21:36.500Z"}
-{"balance":"499999.9","contract":"0xdce769b847a0a697239777d0b1c7dd33b6012ba0","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on arbitrum:","timestamp":"2025-04-22T14:21:36.500Z"}
-{"balance":"499999.9","contract":"0xdce769b847a0a697239777d0b1c7dd33b6012ba0","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on arbitrum:","timestamp":"2025-04-22T14:21:36.501Z"}
-{"balance":"454852.0","contract":"0x351f59de4fedbdf7601f5592b93db3b9330c1c1d","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on polygon:","timestamp":"2025-04-22T14:21:36.933Z"}
-{"arbitrum":"499999.9","bsc":"500000.0","eth":"1500000.0","level":"info","message":"Token balances fetched for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b:","polygon":"454852.0","timestamp":"2025-04-22T14:21:36.934Z"}
-{"balance":"454852.0","contract":"0x351f59de4fedbdf7601f5592b93db3b9330c1c1d","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on polygon:","timestamp":"2025-04-22T14:21:36.934Z"}
-{"arbitrum":"499999.9","bsc":"500000.0","eth":"1500000.0","level":"info","message":"Token balances fetched for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b:","polygon":"454852.0","timestamp":"2025-04-22T14:21:36.934Z"}
-{"balance":"454852.0","contract":"0x351f59de4fedbdf7601f5592b93db3b9330c1c1d","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on polygon:","timestamp":"2025-04-22T14:21:36.934Z"}
-{"arbitrum":"499999.9","bsc":"500000.0","eth":"1500000.0","level":"info","message":"Token balances fetched for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b:","polygon":"454852.0","timestamp":"2025-04-22T14:21:36.934Z"}
-{"level":"info","message":"GET /api/tokens/balances?address=0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-22T14:21:36.943Z"}
-{"level":"info","message":"Fetching token balances for address: 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-22T14:21:36.944Z"}
-{"balance":"1500000.0","contract":"0xd95a45fc46a7300e6022885afec3d618d7d3f27c","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on eth:","timestamp":"2025-04-22T14:21:37.379Z"}
-{"balance":"500000.0","contract":"0x4B294265720B09ca39BFBA18c7E368413c0f68eB","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on bsc:","timestamp":"2025-04-22T14:21:37.648Z"}
-{"balance":"499999.9","contract":"0xdce769b847a0a697239777d0b1c7dd33b6012ba0","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on arbitrum:","timestamp":"2025-04-22T14:21:38.244Z"}
-{"level":"info","message":"GET /api/tokens/balances?address=0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-22T14:21:38.266Z"}
-{"level":"info","message":"Fetching token balances for address: 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-22T14:21:38.267Z"}
-{"balance":"1500000.0","contract":"0xd95a45fc46a7300e6022885afec3d618d7d3f27c","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on eth:","timestamp":"2025-04-22T14:21:38.677Z"}
-{"balance":"454852.0","contract":"0x351f59de4fedbdf7601f5592b93db3b9330c1c1d","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on polygon:","timestamp":"2025-04-22T14:21:38.684Z"}
-{"arbitrum":"499999.9","bsc":"500000.0","eth":"1500000.0","level":"info","message":"Token balances fetched for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b:","polygon":"454852.0","timestamp":"2025-04-22T14:21:38.685Z"}
-{"level":"info","message":"GET /api/tokens/balances?address=0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-22T14:21:38.692Z"}
-{"level":"info","message":"Fetching token balances for address: 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-22T14:21:38.693Z"}
-{"balance":"500000.0","contract":"0x4B294265720B09ca39BFBA18c7E368413c0f68eB","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on bsc:","timestamp":"2025-04-22T14:21:38.962Z"}
-{"balance":"1500000.0","contract":"0xd95a45fc46a7300e6022885afec3d618d7d3f27c","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on eth:","timestamp":"2025-04-22T14:21:39.084Z"}
-{"balance":"500000.0","contract":"0x4B294265720B09ca39BFBA18c7E368413c0f68eB","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on bsc:","timestamp":"2025-04-22T14:21:39.351Z"}
-{"balance":"499999.9","contract":"0xdce769b847a0a697239777d0b1c7dd33b6012ba0","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on arbitrum:","timestamp":"2025-04-22T14:21:39.546Z"}
-{"balance":"499999.9","contract":"0xdce769b847a0a697239777d0b1c7dd33b6012ba0","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on arbitrum:","timestamp":"2025-04-22T14:21:39.850Z"}
-{"balance":"454852.0","contract":"0x351f59de4fedbdf7601f5592b93db3b9330c1c1d","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on polygon:","timestamp":"2025-04-22T14:21:39.961Z"}
-{"arbitrum":"499999.9","bsc":"500000.0","eth":"1500000.0","level":"info","message":"Token balances fetched for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b:","polygon":"454852.0","timestamp":"2025-04-22T14:21:39.961Z"}
-{"level":"info","message":"GET /api/tokens/balances?address=0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-22T14:21:40.064Z"}
-{"level":"info","message":"Fetching token balances for address: 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-22T14:21:40.064Z"}
-{"balance":"454852.0","contract":"0x351f59de4fedbdf7601f5592b93db3b9330c1c1d","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on polygon:","timestamp":"2025-04-22T14:21:40.186Z"}
-{"arbitrum":"499999.9","bsc":"500000.0","eth":"1500000.0","level":"info","message":"Token balances fetched for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b:","polygon":"454852.0","timestamp":"2025-04-22T14:21:40.187Z"}
-{"level":"info","message":"GET /api/tokens/balances?address=0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-22T14:21:40.196Z"}
-{"level":"info","message":"Fetching token balances for address: 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-22T14:21:40.197Z"}
-{"balance":"1500000.0","contract":"0xd95a45fc46a7300e6022885afec3d618d7d3f27c","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on eth:","timestamp":"2025-04-22T14:21:40.515Z"}
-{"balance":"1500000.0","contract":"0xd95a45fc46a7300e6022885afec3d618d7d3f27c","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on eth:","timestamp":"2025-04-22T14:21:40.515Z"}
-{"balance":"500000.0","contract":"0x4B294265720B09ca39BFBA18c7E368413c0f68eB","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on bsc:","timestamp":"2025-04-22T14:21:40.839Z"}
-{"balance":"500000.0","contract":"0x4B294265720B09ca39BFBA18c7E368413c0f68eB","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on bsc:","timestamp":"2025-04-22T14:21:40.839Z"}
-{"balance":"499999.9","contract":"0xdce769b847a0a697239777d0b1c7dd33b6012ba0","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on arbitrum:","timestamp":"2025-04-22T14:21:41.435Z"}
-{"balance":"499999.9","contract":"0xdce769b847a0a697239777d0b1c7dd33b6012ba0","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on arbitrum:","timestamp":"2025-04-22T14:21:41.435Z"}
-{"level":"info","message":"GET /api/tokens/balances?address=0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-22T14:21:41.608Z"}
-{"level":"info","message":"Fetching token balances for address: 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-22T14:21:41.609Z"}
-{"balance":"454852.0","contract":"0x351f59de4fedbdf7601f5592b93db3b9330c1c1d","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on polygon:","timestamp":"2025-04-22T14:21:41.875Z"}
-{"arbitrum":"499999.9","bsc":"500000.0","eth":"1500000.0","level":"info","message":"Token balances fetched for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b:","polygon":"454852.0","timestamp":"2025-04-22T14:21:41.876Z"}
-{"balance":"454852.0","contract":"0x351f59de4fedbdf7601f5592b93db3b9330c1c1d","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on polygon:","timestamp":"2025-04-22T14:21:41.876Z"}
-{"arbitrum":"499999.9","bsc":"500000.0","eth":"1500000.0","level":"info","message":"Token balances fetched for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b:","polygon":"454852.0","timestamp":"2025-04-22T14:21:41.876Z"}
-{"level":"info","message":"GET /api/tokens/balances?address=0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-22T14:21:41.885Z"}
-{"level":"info","message":"Fetching token balances for address: 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-22T14:21:41.886Z"}
-{"balance":"1500000.0","contract":"0xd95a45fc46a7300e6022885afec3d618d7d3f27c","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on eth:","timestamp":"2025-04-22T14:21:42.014Z"}
-{"balance":"1500000.0","contract":"0xd95a45fc46a7300e6022885afec3d618d7d3f27c","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on eth:","timestamp":"2025-04-22T14:21:42.221Z"}
-{"balance":"500000.0","contract":"0x4B294265720B09ca39BFBA18c7E368413c0f68eB","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on bsc:","timestamp":"2025-04-22T14:21:42.286Z"}
-{"balance":"500000.0","contract":"0x4B294265720B09ca39BFBA18c7E368413c0f68eB","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on bsc:","timestamp":"2025-04-22T14:21:42.442Z"}
-{"balance":"499999.9","contract":"0xdce769b847a0a697239777d0b1c7dd33b6012ba0","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on arbitrum:","timestamp":"2025-04-22T14:21:42.896Z"}
-{"balance":"499999.9","contract":"0xdce769b847a0a697239777d0b1c7dd33b6012ba0","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on arbitrum:","timestamp":"2025-04-22T14:21:42.896Z"}
-{"level":"info","message":"GET /api/tokens/balances?address=0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-22T14:21:43.232Z"}
-{"level":"info","message":"Fetching token balances for address: 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-22T14:21:43.232Z"}
-{"balance":"454852.0","contract":"0x351f59de4fedbdf7601f5592b93db3b9330c1c1d","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on polygon:","timestamp":"2025-04-22T14:21:43.304Z"}
-{"arbitrum":"499999.9","bsc":"500000.0","eth":"1500000.0","level":"info","message":"Token balances fetched for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b:","polygon":"454852.0","timestamp":"2025-04-22T14:21:43.304Z"}
-{"balance":"454852.0","contract":"0x351f59de4fedbdf7601f5592b93db3b9330c1c1d","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on polygon:","timestamp":"2025-04-22T14:21:43.305Z"}
-{"arbitrum":"499999.9","bsc":"500000.0","eth":"1500000.0","level":"info","message":"Token balances fetched for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b:","polygon":"454852.0","timestamp":"2025-04-22T14:21:43.305Z"}
-{"level":"info","message":"GET /api/tokens/balances?address=0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-22T14:21:43.314Z"}
-{"level":"info","message":"Fetching token balances for address: 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-22T14:21:43.314Z"}
-{"balance":"1500000.0","contract":"0xd95a45fc46a7300e6022885afec3d618d7d3f27c","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on eth:","timestamp":"2025-04-22T14:21:43.635Z"}
-{"balance":"1500000.0","contract":"0xd95a45fc46a7300e6022885afec3d618d7d3f27c","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on eth:","timestamp":"2025-04-22T14:21:43.635Z"}
-{"balance":"500000.0","contract":"0x4B294265720B09ca39BFBA18c7E368413c0f68eB","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on bsc:","timestamp":"2025-04-22T14:21:43.912Z"}
-{"balance":"500000.0","contract":"0x4B294265720B09ca39BFBA18c7E368413c0f68eB","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on bsc:","timestamp":"2025-04-22T14:21:43.912Z"}
-{"balance":"499999.9","contract":"0xdce769b847a0a697239777d0b1c7dd33b6012ba0","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on arbitrum:","timestamp":"2025-04-22T14:21:44.514Z"}
-{"balance":"499999.9","contract":"0xdce769b847a0a697239777d0b1c7dd33b6012ba0","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on arbitrum:","timestamp":"2025-04-22T14:21:44.515Z"}
-{"balance":"454852.0","contract":"0x351f59de4fedbdf7601f5592b93db3b9330c1c1d","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on polygon:","timestamp":"2025-04-22T14:21:44.950Z"}
-{"arbitrum":"499999.9","bsc":"500000.0","eth":"1500000.0","level":"info","message":"Token balances fetched for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b:","polygon":"454852.0","timestamp":"2025-04-22T14:21:44.950Z"}
-{"balance":"454852.0","contract":"0x351f59de4fedbdf7601f5592b93db3b9330c1c1d","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on polygon:","timestamp":"2025-04-22T14:21:44.950Z"}
-{"arbitrum":"499999.9","bsc":"500000.0","eth":"1500000.0","level":"info","message":"Token balances fetched for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b:","polygon":"454852.0","timestamp":"2025-04-22T14:21:44.950Z"}
-{"level":"info","message":"GET /api/tokens/balances?address=0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-22T14:21:44.959Z"}
-{"level":"info","message":"Fetching token balances for address: 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-22T14:21:44.959Z"}
-{"balance":"1500000.0","contract":"0xd95a45fc46a7300e6022885afec3d618d7d3f27c","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on eth:","timestamp":"2025-04-22T14:21:45.398Z"}
-{"balance":"500000.0","contract":"0x4B294265720B09ca39BFBA18c7E368413c0f68eB","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on bsc:","timestamp":"2025-04-22T14:21:45.691Z"}
-{"balance":"499999.9","contract":"0xdce769b847a0a697239777d0b1c7dd33b6012ba0","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on arbitrum:","timestamp":"2025-04-22T14:21:46.263Z"}
-{"level":"info","message":"GET /api/tokens/balances?address=0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-22T14:21:46.520Z"}
-{"level":"info","message":"Fetching token balances for address: 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-22T14:21:46.520Z"}
-{"balance":"454852.0","contract":"0x351f59de4fedbdf7601f5592b93db3b9330c1c1d","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on polygon:","timestamp":"2025-04-22T14:21:46.673Z"}
-{"arbitrum":"499999.9","bsc":"500000.0","eth":"1500000.0","level":"info","message":"Token balances fetched for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b:","polygon":"454852.0","timestamp":"2025-04-22T14:21:46.673Z"}
-{"level":"info","message":"GET /api/tokens/balances?address=0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-22T14:21:46.681Z"}
-{"level":"info","message":"Fetching token balances for address: 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-22T14:21:46.681Z"}
-{"balance":"1500000.0","contract":"0xd95a45fc46a7300e6022885afec3d618d7d3f27c","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on eth:","timestamp":"2025-04-22T14:21:46.925Z"}
-{"balance":"1500000.0","contract":"0xd95a45fc46a7300e6022885afec3d618d7d3f27c","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on eth:","timestamp":"2025-04-22T14:21:46.926Z"}
-{"balance":"500000.0","contract":"0x4B294265720B09ca39BFBA18c7E368413c0f68eB","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on bsc:","timestamp":"2025-04-22T14:21:47.230Z"}
-{"balance":"500000.0","contract":"0x4B294265720B09ca39BFBA18c7E368413c0f68eB","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on bsc:","timestamp":"2025-04-22T14:21:47.230Z"}
-{"balance":"499999.9","contract":"0xdce769b847a0a697239777d0b1c7dd33b6012ba0","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on arbitrum:","timestamp":"2025-04-22T14:21:50.526Z"}
-{"balance":"499999.9","contract":"0xdce769b847a0a697239777d0b1c7dd33b6012ba0","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on arbitrum:","timestamp":"2025-04-22T14:21:50.526Z"}
-{"balance":"454852.0","contract":"0x351f59de4fedbdf7601f5592b93db3b9330c1c1d","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on polygon:","timestamp":"2025-04-22T14:21:50.939Z"}
-{"arbitrum":"499999.9","bsc":"500000.0","eth":"1500000.0","level":"info","message":"Token balances fetched for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b:","polygon":"454852.0","timestamp":"2025-04-22T14:21:50.939Z"}
-{"balance":"454852.0","contract":"0x351f59de4fedbdf7601f5592b93db3b9330c1c1d","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on polygon:","timestamp":"2025-04-22T14:21:50.939Z"}
-{"arbitrum":"499999.9","bsc":"500000.0","eth":"1500000.0","level":"info","message":"Token balances fetched for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b:","polygon":"454852.0","timestamp":"2025-04-22T14:21:50.940Z"}
-{"level":"info","message":"GET /api/tokens/balances?address=0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-22T14:21:50.951Z"}
-{"level":"info","message":"Fetching token balances for address: 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-22T14:21:50.952Z"}
-{"balance":"1500000.0","contract":"0xd95a45fc46a7300e6022885afec3d618d7d3f27c","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on eth:","timestamp":"2025-04-22T14:21:51.360Z"}
-{"balance":"500000.0","contract":"0x4B294265720B09ca39BFBA18c7E368413c0f68eB","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on bsc:","timestamp":"2025-04-22T14:21:51.666Z"}
-{"balance":"499999.9","contract":"0xdce769b847a0a697239777d0b1c7dd33b6012ba0","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on arbitrum:","timestamp":"2025-04-22T14:21:52.297Z"}
-{"balance":"454852.0","contract":"0x351f59de4fedbdf7601f5592b93db3b9330c1c1d","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on polygon:","timestamp":"2025-04-22T14:21:52.719Z"}
-{"arbitrum":"499999.9","bsc":"500000.0","eth":"1500000.0","level":"info","message":"Token balances fetched for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b:","polygon":"454852.0","timestamp":"2025-04-22T14:21:52.720Z"}
-{"level":"info","message":"GET /api/tokens/balances?address=0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-22T14:21:52.727Z"}
-{"level":"info","message":"Fetching token balances for address: 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-22T14:21:52.727Z"}
-{"balance":"1500000.0","contract":"0xd95a45fc46a7300e6022885afec3d618d7d3f27c","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on eth:","timestamp":"2025-04-22T14:21:53.147Z"}
-{"balance":"500000.0","contract":"0x4B294265720B09ca39BFBA18c7E368413c0f68eB","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on bsc:","timestamp":"2025-04-22T14:21:53.426Z"}
-{"balance":"499999.9","contract":"0xdce769b847a0a697239777d0b1c7dd33b6012ba0","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on arbitrum:","timestamp":"2025-04-22T14:21:54.017Z"}
-{"balance":"454852.0","contract":"0x351f59de4fedbdf7601f5592b93db3b9330c1c1d","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on polygon:","timestamp":"2025-04-22T14:21:54.435Z"}
-{"arbitrum":"499999.9","bsc":"500000.0","eth":"1500000.0","level":"info","message":"Token balances fetched for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b:","polygon":"454852.0","timestamp":"2025-04-22T14:21:54.435Z"}
-{"level":"info","message":"GET /api/tokens/balances?address=0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-22T14:21:54.444Z"}
-{"level":"info","message":"Fetching token balances for address: 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-22T14:21:54.444Z"}
-{"level":"info","message":"GET /api/auth/check","timestamp":"2025-04-22T14:21:54.528Z"}
-{"level":"info","message":"[IdentityService] Found 2 identities for user 1","timestamp":"2025-04-22T14:21:54.530Z"}
-{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-22T14:21:54.540Z"}
-{"level":"info","message":"[IdentityService] Found 2 identities for user 1","timestamp":"2025-04-22T14:21:54.542Z"}
-{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-22T14:21:54.559Z"}
-{"level":"info","message":"[IdentityService] Found 2 identities for user 1","timestamp":"2025-04-22T14:21:54.562Z"}
-{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-22T14:21:54.576Z"}
-{"level":"info","message":"[IdentityService] Found 2 identities for user 1","timestamp":"2025-04-22T14:21:54.577Z"}
-{"balance":"1500000.0","contract":"0xd95a45fc46a7300e6022885afec3d618d7d3f27c","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on eth:","timestamp":"2025-04-22T14:21:54.854Z"}
-{"balance":"500000.0","contract":"0x4B294265720B09ca39BFBA18c7E368413c0f68eB","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on bsc:","timestamp":"2025-04-22T14:21:55.155Z"}
-{"balance":"499999.9","contract":"0xdce769b847a0a697239777d0b1c7dd33b6012ba0","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on arbitrum:","timestamp":"2025-04-22T14:21:55.773Z"}
-{"balance":"454852.0","contract":"0x351f59de4fedbdf7601f5592b93db3b9330c1c1d","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on polygon:","timestamp":"2025-04-22T14:21:56.199Z"}
-{"arbitrum":"499999.9","bsc":"500000.0","eth":"1500000.0","level":"info","message":"Token balances fetched for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b:","polygon":"454852.0","timestamp":"2025-04-22T14:21:56.199Z"}
-{"level":"info","message":"GET /api/tokens/balances?address=0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-22T14:21:56.207Z"}
-{"level":"info","message":"Fetching token balances for address: 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-22T14:21:56.207Z"}
-{"level":"info","message":"GET /api/auth/check","timestamp":"2025-04-22T14:21:56.364Z"}
-{"level":"info","message":"[IdentityService] Found 2 identities for user 1","timestamp":"2025-04-22T14:21:56.365Z"}
-{"level":"info","message":"GET /api/chat/history?count_only=true","timestamp":"2025-04-22T14:21:56.376Z"}
-{"level":"info","message":"GET /api/chat/history?offset=2&limit=30","timestamp":"2025-04-22T14:21:56.388Z"}
-{"balance":"1500000.0","contract":"0xd95a45fc46a7300e6022885afec3d618d7d3f27c","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on eth:","timestamp":"2025-04-22T14:21:56.640Z"}
-{"balance":"500000.0","contract":"0x4B294265720B09ca39BFBA18c7E368413c0f68eB","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on bsc:","timestamp":"2025-04-22T14:21:56.918Z"}
-{"balance":"499999.9","contract":"0xdce769b847a0a697239777d0b1c7dd33b6012ba0","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on arbitrum:","timestamp":"2025-04-22T14:21:57.541Z"}
-{"balance":"454852.0","contract":"0x351f59de4fedbdf7601f5592b93db3b9330c1c1d","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on polygon:","timestamp":"2025-04-22T14:21:57.949Z"}
-{"arbitrum":"499999.9","bsc":"500000.0","eth":"1500000.0","level":"info","message":"Token balances fetched for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b:","polygon":"454852.0","timestamp":"2025-04-22T14:21:57.949Z"}
-{"level":"info","message":"GET /api/tokens/balances?address=0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-22T14:21:57.956Z"}
-{"level":"info","message":"Fetching token balances for address: 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-22T14:21:57.956Z"}
-{"balance":"1500000.0","contract":"0xd95a45fc46a7300e6022885afec3d618d7d3f27c","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on eth:","timestamp":"2025-04-22T14:21:58.374Z"}
-{"balance":"500000.0","contract":"0x4B294265720B09ca39BFBA18c7E368413c0f68eB","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on bsc:","timestamp":"2025-04-22T14:21:58.658Z"}
-{"balance":"499999.9","contract":"0xdce769b847a0a697239777d0b1c7dd33b6012ba0","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on arbitrum:","timestamp":"2025-04-22T14:21:59.257Z"}
-{"balance":"454852.0","contract":"0x351f59de4fedbdf7601f5592b93db3b9330c1c1d","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on polygon:","timestamp":"2025-04-22T14:21:59.697Z"}
-{"arbitrum":"499999.9","bsc":"500000.0","eth":"1500000.0","level":"info","message":"Token balances fetched for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b:","polygon":"454852.0","timestamp":"2025-04-22T14:21:59.697Z"}
-{"level":"info","message":"GET /api/tokens/balances?address=0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-22T14:21:59.706Z"}
-{"level":"info","message":"Fetching token balances for address: 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-22T14:21:59.706Z"}
-{"balance":"1500000.0","contract":"0xd95a45fc46a7300e6022885afec3d618d7d3f27c","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on eth:","timestamp":"2025-04-22T14:22:00.113Z"}
-{"balance":"500000.0","contract":"0x4B294265720B09ca39BFBA18c7E368413c0f68eB","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on bsc:","timestamp":"2025-04-22T14:22:00.401Z"}
-{"balance":"499999.9","contract":"0xdce769b847a0a697239777d0b1c7dd33b6012ba0","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on arbitrum:","timestamp":"2025-04-22T14:22:00.981Z"}
-{"balance":"454852.0","contract":"0x351f59de4fedbdf7601f5592b93db3b9330c1c1d","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on polygon:","timestamp":"2025-04-22T14:22:01.413Z"}
-{"arbitrum":"499999.9","bsc":"500000.0","eth":"1500000.0","level":"info","message":"Token balances fetched for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b:","polygon":"454852.0","timestamp":"2025-04-22T14:22:01.413Z"}
-{"level":"info","message":"GET /api/tokens/balances?address=0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-22T14:22:01.422Z"}
-{"level":"info","message":"Fetching token balances for address: 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-22T14:22:01.423Z"}
-{"balance":"1500000.0","contract":"0xd95a45fc46a7300e6022885afec3d618d7d3f27c","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on eth:","timestamp":"2025-04-22T14:22:01.822Z"}
-{"balance":"500000.0","contract":"0x4B294265720B09ca39BFBA18c7E368413c0f68eB","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on bsc:","timestamp":"2025-04-22T14:22:02.117Z"}
-{"balance":"499999.9","contract":"0xdce769b847a0a697239777d0b1c7dd33b6012ba0","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on arbitrum:","timestamp":"2025-04-22T14:22:02.703Z"}
-{"balance":"454852.0","contract":"0x351f59de4fedbdf7601f5592b93db3b9330c1c1d","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on polygon:","timestamp":"2025-04-22T14:22:03.206Z"}
-{"arbitrum":"499999.9","bsc":"500000.0","eth":"1500000.0","level":"info","message":"Token balances fetched for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b:","polygon":"454852.0","timestamp":"2025-04-22T14:22:03.207Z"}
-{"level":"info","message":"GET /api/tokens/balances?address=0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-22T14:22:03.215Z"}
-{"level":"info","message":"Fetching token balances for address: 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-22T14:22:03.215Z"}
-{"balance":"1500000.0","contract":"0xd95a45fc46a7300e6022885afec3d618d7d3f27c","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on eth:","timestamp":"2025-04-22T14:22:03.602Z"}
-{"balance":"500000.0","contract":"0x4B294265720B09ca39BFBA18c7E368413c0f68eB","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on bsc:","timestamp":"2025-04-22T14:22:03.950Z"}
-{"balance":"499999.9","contract":"0xdce769b847a0a697239777d0b1c7dd33b6012ba0","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on arbitrum:","timestamp":"2025-04-22T14:22:04.573Z"}
-{"balance":"454852.0","contract":"0x351f59de4fedbdf7601f5592b93db3b9330c1c1d","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on polygon:","timestamp":"2025-04-22T14:22:04.979Z"}
-{"arbitrum":"499999.9","bsc":"500000.0","eth":"1500000.0","level":"info","message":"Token balances fetched for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b:","polygon":"454852.0","timestamp":"2025-04-22T14:22:04.979Z"}
-{"level":"info","message":"GET /api/tokens/balances?address=0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-22T14:22:04.987Z"}
-{"level":"info","message":"Fetching token balances for address: 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-22T14:22:04.987Z"}
-{"balance":"1500000.0","contract":"0xd95a45fc46a7300e6022885afec3d618d7d3f27c","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on eth:","timestamp":"2025-04-22T14:22:05.398Z"}
-{"balance":"500000.0","contract":"0x4B294265720B09ca39BFBA18c7E368413c0f68eB","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on bsc:","timestamp":"2025-04-22T14:22:05.709Z"}
-{"balance":"499999.9","contract":"0xdce769b847a0a697239777d0b1c7dd33b6012ba0","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on arbitrum:","timestamp":"2025-04-22T14:22:06.298Z"}
-{"balance":"454852.0","contract":"0x351f59de4fedbdf7601f5592b93db3b9330c1c1d","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on polygon:","timestamp":"2025-04-22T14:22:06.718Z"}
-{"arbitrum":"499999.9","bsc":"500000.0","eth":"1500000.0","level":"info","message":"Token balances fetched for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b:","polygon":"454852.0","timestamp":"2025-04-22T14:22:06.718Z"}
-{"level":"info","message":"GET /api/tokens/balances?address=0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-22T14:22:06.727Z"}
-{"level":"info","message":"Fetching token balances for address: 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-22T14:22:06.727Z"}
-{"balance":"1500000.0","contract":"0xd95a45fc46a7300e6022885afec3d618d7d3f27c","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on eth:","timestamp":"2025-04-22T14:22:07.139Z"}
-{"balance":"500000.0","contract":"0x4B294265720B09ca39BFBA18c7E368413c0f68eB","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on bsc:","timestamp":"2025-04-22T14:22:07.470Z"}
-{"balance":"499999.9","contract":"0xdce769b847a0a697239777d0b1c7dd33b6012ba0","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on arbitrum:","timestamp":"2025-04-22T14:22:08.034Z"}
-{"balance":"454852.0","contract":"0x351f59de4fedbdf7601f5592b93db3b9330c1c1d","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on polygon:","timestamp":"2025-04-22T14:22:08.444Z"}
-{"arbitrum":"499999.9","bsc":"500000.0","eth":"1500000.0","level":"info","message":"Token balances fetched for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b:","polygon":"454852.0","timestamp":"2025-04-22T14:22:08.444Z"}
-{"level":"info","message":"GET /api/auth/check","timestamp":"2025-04-22T14:22:52.298Z"}
-{"level":"info","message":"[IdentityService] Found 2 identities for user 1","timestamp":"2025-04-22T14:22:52.302Z"}
-{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-22T14:22:52.309Z"}
-{"level":"info","message":"[IdentityService] Found 2 identities for user 1","timestamp":"2025-04-22T14:22:52.312Z"}
-{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-22T14:22:52.322Z"}
-{"level":"info","message":"[IdentityService] Found 2 identities for user 1","timestamp":"2025-04-22T14:22:52.324Z"}
-{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-22T14:22:52.336Z"}
-{"level":"info","message":"[IdentityService] Found 2 identities for user 1","timestamp":"2025-04-22T14:22:52.337Z"}
-{"level":"info","message":"GET /api/auth/check","timestamp":"2025-04-22T14:22:56.834Z"}
-{"level":"info","message":"[IdentityService] Found 2 identities for user 1","timestamp":"2025-04-22T14:22:56.835Z"}
-{"level":"info","message":"GET /api/chat/history?count_only=true","timestamp":"2025-04-22T14:22:56.846Z"}
-{"level":"info","message":"GET /api/chat/history?offset=2&limit=30","timestamp":"2025-04-22T14:22:56.859Z"}
-{"level":"info","message":"GET /api/tokens/balances?address=0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-22T14:22:56.869Z"}
-{"level":"info","message":"Fetching token balances for address: 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-22T14:22:56.870Z"}
-{"balance":"1500000.0","contract":"0xd95a45fc46a7300e6022885afec3d618d7d3f27c","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on eth:","timestamp":"2025-04-22T14:22:57.971Z"}
-{"balance":"500000.0","contract":"0x4B294265720B09ca39BFBA18c7E368413c0f68eB","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on bsc:","timestamp":"2025-04-22T14:22:58.806Z"}
-{"balance":"499999.9","contract":"0xdce769b847a0a697239777d0b1c7dd33b6012ba0","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on arbitrum:","timestamp":"2025-04-22T14:22:59.775Z"}
-{"balance":"454852.0","contract":"0x351f59de4fedbdf7601f5592b93db3b9330c1c1d","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on polygon:","timestamp":"2025-04-22T14:23:00.734Z"}
-{"arbitrum":"499999.9","bsc":"500000.0","eth":"1500000.0","level":"info","message":"Token balances fetched for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b:","polygon":"454852.0","timestamp":"2025-04-22T14:23:00.734Z"}
-{"level":"info","message":"GET /api/tokens/balances?address=0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-22T14:23:00.743Z"}
-{"level":"info","message":"Fetching token balances for address: 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-22T14:23:00.743Z"}
-{"balance":"1500000.0","contract":"0xd95a45fc46a7300e6022885afec3d618d7d3f27c","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on eth:","timestamp":"2025-04-22T14:23:01.139Z"}
-{"balance":"500000.0","contract":"0x4B294265720B09ca39BFBA18c7E368413c0f68eB","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on bsc:","timestamp":"2025-04-22T14:23:01.381Z"}
-{"balance":"499999.9","contract":"0xdce769b847a0a697239777d0b1c7dd33b6012ba0","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on arbitrum:","timestamp":"2025-04-22T14:23:01.960Z"}
-{"balance":"454852.0","contract":"0x351f59de4fedbdf7601f5592b93db3b9330c1c1d","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on polygon:","timestamp":"2025-04-22T14:23:02.371Z"}
-{"arbitrum":"499999.9","bsc":"500000.0","eth":"1500000.0","level":"info","message":"Token balances fetched for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b:","polygon":"454852.0","timestamp":"2025-04-22T14:23:02.372Z"}
-{"level":"info","message":"GET /api/tokens/balances?address=0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-22T14:23:43.577Z"}
-{"level":"info","message":"Fetching token balances for address: 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-22T14:23:43.578Z"}
-{"balance":"1500000.0","contract":"0xd95a45fc46a7300e6022885afec3d618d7d3f27c","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on eth:","timestamp":"2025-04-22T14:23:44.512Z"}
-{"balance":"500000.0","contract":"0x4B294265720B09ca39BFBA18c7E368413c0f68eB","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on bsc:","timestamp":"2025-04-22T14:23:45.311Z"}
-{"balance":"499999.9","contract":"0xdce769b847a0a697239777d0b1c7dd33b6012ba0","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on arbitrum:","timestamp":"2025-04-22T14:23:46.280Z"}
-{"balance":"454852.0","contract":"0x351f59de4fedbdf7601f5592b93db3b9330c1c1d","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on polygon:","timestamp":"2025-04-22T14:23:47.174Z"}
-{"arbitrum":"499999.9","bsc":"500000.0","eth":"1500000.0","level":"info","message":"Token balances fetched for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b:","polygon":"454852.0","timestamp":"2025-04-22T14:23:47.174Z"}
-{"level":"info","message":"GET /api/auth/check","timestamp":"2025-04-22T14:23:52.730Z"}
-{"level":"info","message":"[IdentityService] Found 2 identities for user 1","timestamp":"2025-04-22T14:23:52.734Z"}
-{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-22T14:23:52.757Z"}
-{"level":"info","message":"[IdentityService] Found 2 identities for user 1","timestamp":"2025-04-22T14:23:52.761Z"}
-{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-22T14:23:52.772Z"}
-{"level":"info","message":"[IdentityService] Found 2 identities for user 1","timestamp":"2025-04-22T14:23:52.774Z"}
-{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-22T14:23:52.789Z"}
-{"level":"info","message":"[IdentityService] Found 2 identities for user 1","timestamp":"2025-04-22T14:23:52.791Z"}
-{"level":"info","message":"GET /api/auth/check","timestamp":"2025-04-22T14:23:54.563Z"}
-{"level":"info","message":"[IdentityService] Found 2 identities for user 1","timestamp":"2025-04-22T14:23:54.564Z"}
-{"level":"info","message":"GET /api/chat/history?count_only=true","timestamp":"2025-04-22T14:23:54.575Z"}
-{"level":"info","message":"GET /api/chat/history?offset=2&limit=30","timestamp":"2025-04-22T14:23:54.589Z"}
-{"level":"info","message":"GET /api/tokens/balances?address=0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-22T14:23:54.601Z"}
-{"level":"info","message":"Fetching token balances for address: 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-22T14:23:54.602Z"}
-{"balance":"1500000.0","contract":"0xd95a45fc46a7300e6022885afec3d618d7d3f27c","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on eth:","timestamp":"2025-04-22T14:23:55.565Z"}
-{"balance":"500000.0","contract":"0x4B294265720B09ca39BFBA18c7E368413c0f68eB","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on bsc:","timestamp":"2025-04-22T14:23:56.329Z"}
-{"balance":"499999.9","contract":"0xdce769b847a0a697239777d0b1c7dd33b6012ba0","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on arbitrum:","timestamp":"2025-04-22T14:23:57.264Z"}
-{"balance":"454852.0","contract":"0x351f59de4fedbdf7601f5592b93db3b9330c1c1d","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on polygon:","timestamp":"2025-04-22T14:23:58.349Z"}
-{"arbitrum":"499999.9","bsc":"500000.0","eth":"1500000.0","level":"info","message":"Token balances fetched for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b:","polygon":"454852.0","timestamp":"2025-04-22T14:23:58.349Z"}
-{"level":"info","message":"GET /api/tokens/balances?address=0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-22T14:23:58.360Z"}
-{"level":"info","message":"Fetching token balances for address: 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-22T14:23:58.361Z"}
-{"balance":"1500000.0","contract":"0xd95a45fc46a7300e6022885afec3d618d7d3f27c","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on eth:","timestamp":"2025-04-22T14:24:01.521Z"}
-{"balance":"500000.0","contract":"0x4B294265720B09ca39BFBA18c7E368413c0f68eB","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on bsc:","timestamp":"2025-04-22T14:24:01.788Z"}
-{"balance":"499999.9","contract":"0xdce769b847a0a697239777d0b1c7dd33b6012ba0","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on arbitrum:","timestamp":"2025-04-22T14:24:02.371Z"}
-{"balance":"454852.0","contract":"0x351f59de4fedbdf7601f5592b93db3b9330c1c1d","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on polygon:","timestamp":"2025-04-22T14:24:02.786Z"}
-{"arbitrum":"499999.9","bsc":"500000.0","eth":"1500000.0","level":"info","message":"Token balances fetched for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b:","polygon":"454852.0","timestamp":"2025-04-22T14:24:02.786Z"}
-{"level":"info","message":"GET /api/tokens/balances?address=0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-22T14:24:08.281Z"}
-{"level":"info","message":"Fetching token balances for address: 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-22T14:24:08.282Z"}
-{"balance":"1500000.0","contract":"0xd95a45fc46a7300e6022885afec3d618d7d3f27c","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on eth:","timestamp":"2025-04-22T14:24:09.144Z"}
-{"balance":"500000.0","contract":"0x4B294265720B09ca39BFBA18c7E368413c0f68eB","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on bsc:","timestamp":"2025-04-22T14:24:10.040Z"}
-{"balance":"499999.9","contract":"0xdce769b847a0a697239777d0b1c7dd33b6012ba0","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on arbitrum:","timestamp":"2025-04-22T14:24:11.047Z"}
-{"balance":"454852.0","contract":"0x351f59de4fedbdf7601f5592b93db3b9330c1c1d","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on polygon:","timestamp":"2025-04-22T14:24:12.013Z"}
-{"arbitrum":"499999.9","bsc":"500000.0","eth":"1500000.0","level":"info","message":"Token balances fetched for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b:","polygon":"454852.0","timestamp":"2025-04-22T14:24:12.013Z"}
-{"level":"info","message":"GET /api/tokens/balances?address=0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-22T14:24:12.022Z"}
-{"level":"info","message":"Fetching token balances for address: 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-22T14:24:12.023Z"}
-{"balance":"1500000.0","contract":"0xd95a45fc46a7300e6022885afec3d618d7d3f27c","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on eth:","timestamp":"2025-04-22T14:24:12.402Z"}
-{"balance":"500000.0","contract":"0x4B294265720B09ca39BFBA18c7E368413c0f68eB","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on bsc:","timestamp":"2025-04-22T14:24:12.662Z"}
-{"balance":"499999.9","contract":"0xdce769b847a0a697239777d0b1c7dd33b6012ba0","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on arbitrum:","timestamp":"2025-04-22T14:24:13.325Z"}
-{"balance":"454852.0","contract":"0x351f59de4fedbdf7601f5592b93db3b9330c1c1d","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on polygon:","timestamp":"2025-04-22T14:24:13.759Z"}
-{"arbitrum":"499999.9","bsc":"500000.0","eth":"1500000.0","level":"info","message":"Token balances fetched for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b:","polygon":"454852.0","timestamp":"2025-04-22T14:24:13.759Z"}
-{"level":"info","message":"GET /api/tokens/balances?address=0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-22T14:24:14.701Z"}
-{"level":"info","message":"Fetching token balances for address: 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-22T14:24:14.702Z"}
-{"balance":"1500000.0","contract":"0xd95a45fc46a7300e6022885afec3d618d7d3f27c","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on eth:","timestamp":"2025-04-22T14:24:15.082Z"}
-{"balance":"500000.0","contract":"0x4B294265720B09ca39BFBA18c7E368413c0f68eB","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on bsc:","timestamp":"2025-04-22T14:24:15.348Z"}
-{"balance":"499999.9","contract":"0xdce769b847a0a697239777d0b1c7dd33b6012ba0","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on arbitrum:","timestamp":"2025-04-22T14:24:15.926Z"}
-{"balance":"454852.0","contract":"0x351f59de4fedbdf7601f5592b93db3b9330c1c1d","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on polygon:","timestamp":"2025-04-22T14:24:16.342Z"}
-{"arbitrum":"499999.9","bsc":"500000.0","eth":"1500000.0","level":"info","message":"Token balances fetched for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b:","polygon":"454852.0","timestamp":"2025-04-22T14:24:16.342Z"}
-{"level":"info","message":"GET /api/tokens/balances?address=0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-22T14:24:18.681Z"}
-{"level":"info","message":"Fetching token balances for address: 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-22T14:24:18.681Z"}
-{"balance":"1500000.0","contract":"0xd95a45fc46a7300e6022885afec3d618d7d3f27c","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on eth:","timestamp":"2025-04-22T14:24:19.075Z"}
-{"balance":"500000.0","contract":"0x4B294265720B09ca39BFBA18c7E368413c0f68eB","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on bsc:","timestamp":"2025-04-22T14:24:19.351Z"}
-{"balance":"499999.9","contract":"0xdce769b847a0a697239777d0b1c7dd33b6012ba0","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on arbitrum:","timestamp":"2025-04-22T14:24:19.921Z"}
-{"balance":"454852.0","contract":"0x351f59de4fedbdf7601f5592b93db3b9330c1c1d","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on polygon:","timestamp":"2025-04-22T14:24:20.334Z"}
-{"arbitrum":"499999.9","bsc":"500000.0","eth":"1500000.0","level":"info","message":"Token balances fetched for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b:","polygon":"454852.0","timestamp":"2025-04-22T14:24:20.334Z"}
-{"level":"info","message":"GET /api/tokens/balances?address=0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-22T14:24:20.344Z"}
-{"level":"info","message":"Fetching token balances for address: 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-22T14:24:20.346Z"}
-{"balance":"1500000.0","contract":"0xd95a45fc46a7300e6022885afec3d618d7d3f27c","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on eth:","timestamp":"2025-04-22T14:24:20.744Z"}
-{"balance":"500000.0","contract":"0x4B294265720B09ca39BFBA18c7E368413c0f68eB","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on bsc:","timestamp":"2025-04-22T14:24:21.038Z"}
-{"balance":"499999.9","contract":"0xdce769b847a0a697239777d0b1c7dd33b6012ba0","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on arbitrum:","timestamp":"2025-04-22T14:24:21.615Z"}
-{"balance":"454852.0","contract":"0x351f59de4fedbdf7601f5592b93db3b9330c1c1d","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on polygon:","timestamp":"2025-04-22T14:24:22.026Z"}
-{"arbitrum":"499999.9","bsc":"500000.0","eth":"1500000.0","level":"info","message":"Token balances fetched for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b:","polygon":"454852.0","timestamp":"2025-04-22T14:24:22.026Z"}
-{"level":"info","message":"GET /api/tokens/balances?address=0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-22T14:24:22.037Z"}
-{"level":"info","message":"Fetching token balances for address: 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-22T14:24:22.038Z"}
-{"balance":"1500000.0","contract":"0xd95a45fc46a7300e6022885afec3d618d7d3f27c","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on eth:","timestamp":"2025-04-22T14:24:22.438Z"}
-{"balance":"500000.0","contract":"0x4B294265720B09ca39BFBA18c7E368413c0f68eB","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on bsc:","timestamp":"2025-04-22T14:24:22.734Z"}
-{"balance":"499999.9","contract":"0xdce769b847a0a697239777d0b1c7dd33b6012ba0","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on arbitrum:","timestamp":"2025-04-22T14:24:23.330Z"}
-{"balance":"454852.0","contract":"0x351f59de4fedbdf7601f5592b93db3b9330c1c1d","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on polygon:","timestamp":"2025-04-22T14:24:23.759Z"}
-{"arbitrum":"499999.9","bsc":"500000.0","eth":"1500000.0","level":"info","message":"Token balances fetched for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b:","polygon":"454852.0","timestamp":"2025-04-22T14:24:23.760Z"}
-{"level":"info","message":"GET /api/tokens/balances?address=0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-22T14:24:26.620Z"}
-{"level":"info","message":"Fetching token balances for address: 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-22T14:24:26.622Z"}
-{"balance":"1500000.0","contract":"0xd95a45fc46a7300e6022885afec3d618d7d3f27c","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on eth:","timestamp":"2025-04-22T14:24:27.042Z"}
-{"balance":"500000.0","contract":"0x4B294265720B09ca39BFBA18c7E368413c0f68eB","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on bsc:","timestamp":"2025-04-22T14:24:27.321Z"}
-{"balance":"499999.9","contract":"0xdce769b847a0a697239777d0b1c7dd33b6012ba0","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on arbitrum:","timestamp":"2025-04-22T14:24:27.901Z"}
-{"balance":"454852.0","contract":"0x351f59de4fedbdf7601f5592b93db3b9330c1c1d","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on polygon:","timestamp":"2025-04-22T14:24:28.323Z"}
-{"arbitrum":"499999.9","bsc":"500000.0","eth":"1500000.0","level":"info","message":"Token balances fetched for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b:","polygon":"454852.0","timestamp":"2025-04-22T14:24:28.324Z"}
-{"level":"info","message":"GET /api/tokens/balances?address=0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-22T14:24:34.848Z"}
-{"level":"info","message":"Fetching token balances for address: 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-22T14:24:34.848Z"}
-{"balance":"1500000.0","contract":"0xd95a45fc46a7300e6022885afec3d618d7d3f27c","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on eth:","timestamp":"2025-04-22T14:24:35.735Z"}
-{"balance":"500000.0","contract":"0x4B294265720B09ca39BFBA18c7E368413c0f68eB","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on bsc:","timestamp":"2025-04-22T14:24:36.690Z"}
-{"balance":"499999.9","contract":"0xdce769b847a0a697239777d0b1c7dd33b6012ba0","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on arbitrum:","timestamp":"2025-04-22T14:24:37.602Z"}
-{"balance":"454852.0","contract":"0x351f59de4fedbdf7601f5592b93db3b9330c1c1d","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on polygon:","timestamp":"2025-04-22T14:24:38.542Z"}
-{"arbitrum":"499999.9","bsc":"500000.0","eth":"1500000.0","level":"info","message":"Token balances fetched for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b:","polygon":"454852.0","timestamp":"2025-04-22T14:24:38.542Z"}
-{"level":"info","message":"GET /api/tokens/balances?address=0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-22T14:24:38.550Z"}
-{"level":"info","message":"Fetching token balances for address: 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-22T14:24:38.550Z"}
-{"balance":"1500000.0","contract":"0xd95a45fc46a7300e6022885afec3d618d7d3f27c","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on eth:","timestamp":"2025-04-22T14:24:38.972Z"}
-{"balance":"500000.0","contract":"0x4B294265720B09ca39BFBA18c7E368413c0f68eB","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on bsc:","timestamp":"2025-04-22T14:24:39.246Z"}
-{"balance":"499999.9","contract":"0xdce769b847a0a697239777d0b1c7dd33b6012ba0","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on arbitrum:","timestamp":"2025-04-22T14:24:39.860Z"}
-{"balance":"454852.0","contract":"0x351f59de4fedbdf7601f5592b93db3b9330c1c1d","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on polygon:","timestamp":"2025-04-22T14:24:40.331Z"}
-{"arbitrum":"499999.9","bsc":"500000.0","eth":"1500000.0","level":"info","message":"Token balances fetched for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b:","polygon":"454852.0","timestamp":"2025-04-22T14:24:40.331Z"}
-{"level":"info","message":"GET /api/tokens/balances?address=0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-22T14:24:40.339Z"}
-{"level":"info","message":"Fetching token balances for address: 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-22T14:24:40.340Z"}
-{"balance":"1500000.0","contract":"0xd95a45fc46a7300e6022885afec3d618d7d3f27c","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on eth:","timestamp":"2025-04-22T14:24:40.760Z"}
-{"balance":"500000.0","contract":"0x4B294265720B09ca39BFBA18c7E368413c0f68eB","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on bsc:","timestamp":"2025-04-22T14:24:41.034Z"}
-{"balance":"499999.9","contract":"0xdce769b847a0a697239777d0b1c7dd33b6012ba0","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on arbitrum:","timestamp":"2025-04-22T14:24:41.660Z"}
-{"balance":"454852.0","contract":"0x351f59de4fedbdf7601f5592b93db3b9330c1c1d","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on polygon:","timestamp":"2025-04-22T14:24:42.121Z"}
-{"arbitrum":"499999.9","bsc":"500000.0","eth":"1500000.0","level":"info","message":"Token balances fetched for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b:","polygon":"454852.0","timestamp":"2025-04-22T14:24:42.121Z"}
-{"level":"info","message":"GET /api/tokens/balances?address=0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-22T14:24:42.172Z"}
-{"level":"info","message":"Fetching token balances for address: 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-22T14:24:42.173Z"}
-{"balance":"1500000.0","contract":"0xd95a45fc46a7300e6022885afec3d618d7d3f27c","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on eth:","timestamp":"2025-04-22T14:24:42.583Z"}
-{"balance":"500000.0","contract":"0x4B294265720B09ca39BFBA18c7E368413c0f68eB","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on bsc:","timestamp":"2025-04-22T14:24:42.875Z"}
-{"balance":"499999.9","contract":"0xdce769b847a0a697239777d0b1c7dd33b6012ba0","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on arbitrum:","timestamp":"2025-04-22T14:24:43.471Z"}
-{"balance":"454852.0","contract":"0x351f59de4fedbdf7601f5592b93db3b9330c1c1d","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on polygon:","timestamp":"2025-04-22T14:24:43.900Z"}
-{"arbitrum":"499999.9","bsc":"500000.0","eth":"1500000.0","level":"info","message":"Token balances fetched for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b:","polygon":"454852.0","timestamp":"2025-04-22T14:24:43.900Z"}
-{"level":"info","message":"GET /api/tokens/balances?address=0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-22T14:24:44.008Z"}
-{"level":"info","message":"Fetching token balances for address: 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-22T14:24:44.008Z"}
-{"balance":"1500000.0","contract":"0xd95a45fc46a7300e6022885afec3d618d7d3f27c","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on eth:","timestamp":"2025-04-22T14:24:44.434Z"}
-{"balance":"500000.0","contract":"0x4B294265720B09ca39BFBA18c7E368413c0f68eB","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on bsc:","timestamp":"2025-04-22T14:24:44.725Z"}
-{"balance":"499999.9","contract":"0xdce769b847a0a697239777d0b1c7dd33b6012ba0","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on arbitrum:","timestamp":"2025-04-22T14:24:45.362Z"}
-{"balance":"454852.0","contract":"0x351f59de4fedbdf7601f5592b93db3b9330c1c1d","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on polygon:","timestamp":"2025-04-22T14:24:45.804Z"}
-{"arbitrum":"499999.9","bsc":"500000.0","eth":"1500000.0","level":"info","message":"Token balances fetched for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b:","polygon":"454852.0","timestamp":"2025-04-22T14:24:45.804Z"}
-{"level":"info","message":"GET /api/tokens/balances?address=0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-22T14:24:48.586Z"}
-{"level":"info","message":"Fetching token balances for address: 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-22T14:24:48.587Z"}
-{"balance":"1500000.0","contract":"0xd95a45fc46a7300e6022885afec3d618d7d3f27c","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on eth:","timestamp":"2025-04-22T14:24:49.014Z"}
-{"balance":"500000.0","contract":"0x4B294265720B09ca39BFBA18c7E368413c0f68eB","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on bsc:","timestamp":"2025-04-22T14:24:49.292Z"}
-{"balance":"499999.9","contract":"0xdce769b847a0a697239777d0b1c7dd33b6012ba0","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on arbitrum:","timestamp":"2025-04-22T14:24:49.909Z"}
-{"balance":"454852.0","contract":"0x351f59de4fedbdf7601f5592b93db3b9330c1c1d","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on polygon:","timestamp":"2025-04-22T14:24:50.324Z"}
-{"arbitrum":"499999.9","bsc":"500000.0","eth":"1500000.0","level":"info","message":"Token balances fetched for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b:","polygon":"454852.0","timestamp":"2025-04-22T14:24:50.325Z"}
-{"level":"info","message":"GET /api/tokens/balances?address=0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-22T14:24:50.423Z"}
-{"level":"info","message":"Fetching token balances for address: 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-22T14:24:50.423Z"}
-{"balance":"1500000.0","contract":"0xd95a45fc46a7300e6022885afec3d618d7d3f27c","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on eth:","timestamp":"2025-04-22T14:24:50.844Z"}
-{"balance":"500000.0","contract":"0x4B294265720B09ca39BFBA18c7E368413c0f68eB","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on bsc:","timestamp":"2025-04-22T14:24:51.134Z"}
-{"balance":"499999.9","contract":"0xdce769b847a0a697239777d0b1c7dd33b6012ba0","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on arbitrum:","timestamp":"2025-04-22T14:24:51.706Z"}
-{"balance":"454852.0","contract":"0x351f59de4fedbdf7601f5592b93db3b9330c1c1d","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on polygon:","timestamp":"2025-04-22T14:24:52.126Z"}
-{"arbitrum":"499999.9","bsc":"500000.0","eth":"1500000.0","level":"info","message":"Token balances fetched for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b:","polygon":"454852.0","timestamp":"2025-04-22T14:24:52.126Z"}
-{"level":"info","message":"GET /api/auth/check","timestamp":"2025-04-22T14:24:53.182Z"}
-{"level":"info","message":"[IdentityService] Found 2 identities for user 1","timestamp":"2025-04-22T14:24:53.189Z"}
-{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-22T14:24:53.214Z"}
-{"level":"info","message":"[IdentityService] Found 2 identities for user 1","timestamp":"2025-04-22T14:24:53.219Z"}
-{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-22T14:24:53.229Z"}
-{"level":"info","message":"[IdentityService] Found 2 identities for user 1","timestamp":"2025-04-22T14:24:53.231Z"}
-{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-22T14:24:53.246Z"}
-{"level":"info","message":"[IdentityService] Found 2 identities for user 1","timestamp":"2025-04-22T14:24:53.248Z"}
-{"level":"info","message":"GET /api/tokens/balances?address=0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-22T14:24:54.088Z"}
-{"level":"info","message":"Fetching token balances for address: 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-22T14:24:54.089Z"}
-{"balance":"1500000.0","contract":"0xd95a45fc46a7300e6022885afec3d618d7d3f27c","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on eth:","timestamp":"2025-04-22T14:24:54.489Z"}
-{"balance":"500000.0","contract":"0x4B294265720B09ca39BFBA18c7E368413c0f68eB","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on bsc:","timestamp":"2025-04-22T14:24:54.764Z"}
-{"level":"info","message":"GET /api/auth/check","timestamp":"2025-04-22T14:24:55.001Z"}
-{"level":"info","message":"[IdentityService] Found 2 identities for user 1","timestamp":"2025-04-22T14:24:55.002Z"}
-{"level":"info","message":"GET /api/chat/history?count_only=true","timestamp":"2025-04-22T14:24:55.015Z"}
-{"level":"info","message":"GET /api/chat/history?offset=2&limit=30","timestamp":"2025-04-22T14:24:55.031Z"}
-{"balance":"499999.9","contract":"0xdce769b847a0a697239777d0b1c7dd33b6012ba0","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on arbitrum:","timestamp":"2025-04-22T14:24:55.412Z"}
-{"balance":"454852.0","contract":"0x351f59de4fedbdf7601f5592b93db3b9330c1c1d","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on polygon:","timestamp":"2025-04-22T14:24:55.825Z"}
-{"arbitrum":"499999.9","bsc":"500000.0","eth":"1500000.0","level":"info","message":"Token balances fetched for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b:","polygon":"454852.0","timestamp":"2025-04-22T14:24:55.826Z"}
-{"level":"info","message":"GET /api/tokens/balances?address=0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-22T14:24:55.833Z"}
-{"level":"info","message":"Fetching token balances for address: 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-22T14:24:55.834Z"}
-{"balance":"1500000.0","contract":"0xd95a45fc46a7300e6022885afec3d618d7d3f27c","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on eth:","timestamp":"2025-04-22T14:24:56.224Z"}
-{"balance":"500000.0","contract":"0x4B294265720B09ca39BFBA18c7E368413c0f68eB","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on bsc:","timestamp":"2025-04-22T14:24:56.509Z"}
-{"balance":"499999.9","contract":"0xdce769b847a0a697239777d0b1c7dd33b6012ba0","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on arbitrum:","timestamp":"2025-04-22T14:24:57.155Z"}
-{"balance":"454852.0","contract":"0x351f59de4fedbdf7601f5592b93db3b9330c1c1d","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on polygon:","timestamp":"2025-04-22T14:24:57.576Z"}
-{"arbitrum":"499999.9","bsc":"500000.0","eth":"1500000.0","level":"info","message":"Token balances fetched for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b:","polygon":"454852.0","timestamp":"2025-04-22T14:24:57.576Z"}
-{"level":"info","message":"GET /api/tokens/balances?address=0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-22T14:24:57.586Z"}
-{"level":"info","message":"Fetching token balances for address: 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-22T14:24:57.586Z"}
-{"level":"info","message":"GET /api/auth/check","timestamp":"2025-04-22T14:24:58.011Z"}
-{"balance":"1500000.0","contract":"0xd95a45fc46a7300e6022885afec3d618d7d3f27c","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on eth:","timestamp":"2025-04-22T14:24:58.013Z"}
-{"level":"info","message":"[IdentityService] Found 2 identities for user 1","timestamp":"2025-04-22T14:24:58.014Z"}
-{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-22T14:24:58.031Z"}
-{"level":"info","message":"[IdentityService] Found 2 identities for user 1","timestamp":"2025-04-22T14:24:58.033Z"}
-{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-22T14:24:58.048Z"}
-{"level":"info","message":"[IdentityService] Found 2 identities for user 1","timestamp":"2025-04-22T14:24:58.050Z"}
-{"balance":"500000.0","contract":"0x4B294265720B09ca39BFBA18c7E368413c0f68eB","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on bsc:","timestamp":"2025-04-22T14:24:58.285Z"}
-{"level":"info","message":"GET /api/auth/check","timestamp":"2025-04-22T14:24:58.436Z"}
-{"level":"info","message":"[IdentityService] Found 2 identities for user 1","timestamp":"2025-04-22T14:24:58.437Z"}
-{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-22T14:24:58.447Z"}
-{"level":"info","message":"[IdentityService] Found 2 identities for user 1","timestamp":"2025-04-22T14:24:58.449Z"}
-{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-22T14:24:58.461Z"}
-{"level":"info","message":"[IdentityService] Found 2 identities for user 1","timestamp":"2025-04-22T14:24:58.462Z"}
-{"balance":"499999.9","contract":"0xdce769b847a0a697239777d0b1c7dd33b6012ba0","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on arbitrum:","timestamp":"2025-04-22T14:24:58.935Z"}
-{"level":"info","message":"GET /api/auth/check","timestamp":"2025-04-22T14:24:58.979Z"}
-{"level":"info","message":"[IdentityService] Found 2 identities for user 1","timestamp":"2025-04-22T14:24:58.980Z"}
-{"level":"info","message":"GET /api/chat/history?count_only=true","timestamp":"2025-04-22T14:24:58.989Z"}
-{"level":"info","message":"GET /api/chat/history?offset=2&limit=30","timestamp":"2025-04-22T14:24:58.999Z"}
-{"balance":"454852.0","contract":"0x351f59de4fedbdf7601f5592b93db3b9330c1c1d","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on polygon:","timestamp":"2025-04-22T14:24:59.362Z"}
-{"arbitrum":"499999.9","bsc":"500000.0","eth":"1500000.0","level":"info","message":"Token balances fetched for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b:","polygon":"454852.0","timestamp":"2025-04-22T14:24:59.362Z"}
-{"level":"info","message":"GET /api/tokens/balances?address=0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-22T14:24:59.369Z"}
-{"level":"info","message":"Fetching token balances for address: 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-22T14:24:59.370Z"}
-{"balance":"1500000.0","contract":"0xd95a45fc46a7300e6022885afec3d618d7d3f27c","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on eth:","timestamp":"2025-04-22T14:24:59.774Z"}
-{"balance":"500000.0","contract":"0x4B294265720B09ca39BFBA18c7E368413c0f68eB","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on bsc:","timestamp":"2025-04-22T14:25:00.036Z"}
-{"level":"info","message":"GET /api/auth/check","timestamp":"2025-04-22T14:25:00.267Z"}
-{"level":"info","message":"[IdentityService] Found 2 identities for user 1","timestamp":"2025-04-22T14:25:00.269Z"}
-{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-22T14:25:00.277Z"}
-{"level":"info","message":"[IdentityService] Found 2 identities for user 1","timestamp":"2025-04-22T14:25:00.278Z"}
-{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-22T14:25:00.286Z"}
-{"level":"info","message":"[IdentityService] Found 2 identities for user 1","timestamp":"2025-04-22T14:25:00.288Z"}
-{"balance":"499999.9","contract":"0xdce769b847a0a697239777d0b1c7dd33b6012ba0","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on arbitrum:","timestamp":"2025-04-22T14:25:00.616Z"}
-{"balance":"454852.0","contract":"0x351f59de4fedbdf7601f5592b93db3b9330c1c1d","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on polygon:","timestamp":"2025-04-22T14:25:01.055Z"}
-{"arbitrum":"499999.9","bsc":"500000.0","eth":"1500000.0","level":"info","message":"Token balances fetched for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b:","polygon":"454852.0","timestamp":"2025-04-22T14:25:01.056Z"}
-{"level":"info","message":"GET /api/tokens/balances?address=0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-22T14:25:01.061Z"}
-{"level":"info","message":"Fetching token balances for address: 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-22T14:25:01.062Z"}
-{"level":"info","message":"GET /api/auth/check","timestamp":"2025-04-22T14:25:01.223Z"}
-{"level":"info","message":"[IdentityService] Found 2 identities for user 1","timestamp":"2025-04-22T14:25:01.224Z"}
-{"level":"info","message":"GET /api/chat/history?count_only=true","timestamp":"2025-04-22T14:25:01.234Z"}
-{"level":"info","message":"GET /api/chat/history?offset=2&limit=30","timestamp":"2025-04-22T14:25:01.244Z"}
-{"balance":"1500000.0","contract":"0xd95a45fc46a7300e6022885afec3d618d7d3f27c","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on eth:","timestamp":"2025-04-22T14:25:01.494Z"}
-{"balance":"500000.0","contract":"0x4B294265720B09ca39BFBA18c7E368413c0f68eB","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on bsc:","timestamp":"2025-04-22T14:25:01.773Z"}
-{"level":"info","message":"GET /api/auth/check","timestamp":"2025-04-22T14:25:02.099Z"}
-{"level":"info","message":"[IdentityService] Found 2 identities for user 1","timestamp":"2025-04-22T14:25:02.101Z"}
-{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-22T14:25:02.111Z"}
-{"level":"info","message":"[IdentityService] Found 2 identities for user 1","timestamp":"2025-04-22T14:25:02.113Z"}
-{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-22T14:25:02.121Z"}
-{"level":"info","message":"[IdentityService] Found 2 identities for user 1","timestamp":"2025-04-22T14:25:02.123Z"}
-{"balance":"499999.9","contract":"0xdce769b847a0a697239777d0b1c7dd33b6012ba0","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on arbitrum:","timestamp":"2025-04-22T14:25:02.543Z"}
-{"balance":"454852.0","contract":"0x351f59de4fedbdf7601f5592b93db3b9330c1c1d","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on polygon:","timestamp":"2025-04-22T14:25:02.985Z"}
-{"arbitrum":"499999.9","bsc":"500000.0","eth":"1500000.0","level":"info","message":"Token balances fetched for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b:","polygon":"454852.0","timestamp":"2025-04-22T14:25:02.985Z"}
-{"level":"info","message":"GET /api/tokens/balances?address=0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-22T14:25:02.992Z"}
-{"level":"info","message":"Fetching token balances for address: 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-22T14:25:02.992Z"}
-{"level":"info","message":"GET /api/auth/check","timestamp":"2025-04-22T14:25:03.050Z"}
-{"level":"info","message":"[IdentityService] Found 2 identities for user 1","timestamp":"2025-04-22T14:25:03.051Z"}
-{"level":"info","message":"GET /api/chat/history?count_only=true","timestamp":"2025-04-22T14:25:03.060Z"}
-{"level":"info","message":"GET /api/chat/history?offset=2&limit=30","timestamp":"2025-04-22T14:25:03.070Z"}
-{"balance":"1500000.0","contract":"0xd95a45fc46a7300e6022885afec3d618d7d3f27c","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on eth:","timestamp":"2025-04-22T14:25:03.409Z"}
-{"balance":"500000.0","contract":"0x4B294265720B09ca39BFBA18c7E368413c0f68eB","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on bsc:","timestamp":"2025-04-22T14:25:03.702Z"}
-{"level":"info","message":"GET /api/auth/check","timestamp":"2025-04-22T14:25:03.980Z"}
-{"level":"info","message":"[IdentityService] Found 2 identities for user 1","timestamp":"2025-04-22T14:25:03.981Z"}
-{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-22T14:25:03.994Z"}
-{"level":"info","message":"[IdentityService] Found 2 identities for user 1","timestamp":"2025-04-22T14:25:03.995Z"}
-{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-22T14:25:04.007Z"}
-{"level":"info","message":"[IdentityService] Found 2 identities for user 1","timestamp":"2025-04-22T14:25:04.008Z"}
-{"balance":"499999.9","contract":"0xdce769b847a0a697239777d0b1c7dd33b6012ba0","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on arbitrum:","timestamp":"2025-04-22T14:25:07.042Z"}
-{"balance":"454852.0","contract":"0x351f59de4fedbdf7601f5592b93db3b9330c1c1d","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on polygon:","timestamp":"2025-04-22T14:25:07.484Z"}
-{"arbitrum":"499999.9","bsc":"500000.0","eth":"1500000.0","level":"info","message":"Token balances fetched for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b:","polygon":"454852.0","timestamp":"2025-04-22T14:25:07.485Z"}
-{"level":"info","message":"GET /api/tokens/balances?address=0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-22T14:25:07.492Z"}
-{"level":"info","message":"Fetching token balances for address: 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-22T14:25:07.493Z"}
-{"level":"info","message":"GET /api/auth/check","timestamp":"2025-04-22T14:25:07.634Z"}
-{"level":"info","message":"[IdentityService] Found 2 identities for user 1","timestamp":"2025-04-22T14:25:07.635Z"}
-{"level":"info","message":"GET /api/chat/history?count_only=true","timestamp":"2025-04-22T14:25:07.647Z"}
-{"level":"info","message":"GET /api/chat/history?offset=2&limit=30","timestamp":"2025-04-22T14:25:07.667Z"}
-{"balance":"1500000.0","contract":"0xd95a45fc46a7300e6022885afec3d618d7d3f27c","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on eth:","timestamp":"2025-04-22T14:25:07.887Z"}
-{"level":"info","message":"GET /api/auth/check","timestamp":"2025-04-22T14:25:08.121Z"}
-{"level":"info","message":"[IdentityService] Found 2 identities for user 1","timestamp":"2025-04-22T14:25:08.123Z"}
-{"level":"info","message":"GET /api/auth/check","timestamp":"2025-04-22T14:25:08.137Z"}
-{"level":"info","message":"[IdentityService] Found 2 identities for user 1","timestamp":"2025-04-22T14:25:08.138Z"}
-{"balance":"500000.0","contract":"0x4B294265720B09ca39BFBA18c7E368413c0f68eB","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on bsc:","timestamp":"2025-04-22T14:25:08.154Z"}
-{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-22T14:25:08.155Z"}
-{"level":"info","message":"[IdentityService] Found 2 identities for user 1","timestamp":"2025-04-22T14:25:08.157Z"}
-{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-22T14:25:08.176Z"}
-{"level":"info","message":"[IdentityService] Found 2 identities for user 1","timestamp":"2025-04-22T14:25:08.178Z"}
-{"level":"info","message":"GET /api/auth/check","timestamp":"2025-04-22T14:25:08.202Z"}
-{"level":"info","message":"[IdentityService] Found 2 identities for user 1","timestamp":"2025-04-22T14:25:08.205Z"}
-{"level":"info","message":"GET /api/auth/check","timestamp":"2025-04-22T14:25:08.216Z"}
-{"level":"info","message":"[IdentityService] Found 2 identities for user 1","timestamp":"2025-04-22T14:25:08.219Z"}
-{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-22T14:25:08.222Z"}
-{"level":"info","message":"[IdentityService] Found 2 identities for user 1","timestamp":"2025-04-22T14:25:08.226Z"}
-{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-22T14:25:08.234Z"}
-{"level":"info","message":"[IdentityService] Found 2 identities for user 1","timestamp":"2025-04-22T14:25:08.236Z"}
-{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-22T14:25:08.245Z"}
-{"level":"info","message":"[IdentityService] Found 2 identities for user 1","timestamp":"2025-04-22T14:25:08.247Z"}
-{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-22T14:25:08.256Z"}
-{"level":"info","message":"[IdentityService] Found 2 identities for user 1","timestamp":"2025-04-22T14:25:08.258Z"}
-{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-22T14:25:08.267Z"}
-{"level":"info","message":"[IdentityService] Found 2 identities for user 1","timestamp":"2025-04-22T14:25:08.268Z"}
-{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-22T14:25:08.278Z"}
-{"level":"info","message":"[IdentityService] Found 2 identities for user 1","timestamp":"2025-04-22T14:25:08.279Z"}
-{"balance":"499999.9","contract":"0xdce769b847a0a697239777d0b1c7dd33b6012ba0","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on arbitrum:","timestamp":"2025-04-22T14:25:08.767Z"}
-{"level":"info","message":"GET /api/auth/check","timestamp":"2025-04-22T14:25:09.096Z"}
-{"level":"info","message":"[IdentityService] Found 2 identities for user 1","timestamp":"2025-04-22T14:25:09.098Z"}
-{"level":"info","message":"GET /api/chat/history?count_only=true","timestamp":"2025-04-22T14:25:09.107Z"}
-{"level":"info","message":"GET /api/chat/history?offset=0&limit=30","timestamp":"2025-04-22T14:25:09.120Z"}
-{"balance":"454852.0","contract":"0x351f59de4fedbdf7601f5592b93db3b9330c1c1d","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on polygon:","timestamp":"2025-04-22T14:25:09.198Z"}
-{"arbitrum":"499999.9","bsc":"500000.0","eth":"1500000.0","level":"info","message":"Token balances fetched for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b:","polygon":"454852.0","timestamp":"2025-04-22T14:25:09.199Z"}
-{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-22T14:25:36.259Z"}
-{"level":"info","message":"[IdentityService] Found 2 identities for user 1","timestamp":"2025-04-22T14:25:36.263Z"}
-{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-22T14:25:36.270Z"}
-{"level":"info","message":"[IdentityService] Found 2 identities for user 1","timestamp":"2025-04-22T14:25:36.273Z"}
-{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-22T14:26:06.404Z"}
-{"level":"info","message":"[IdentityService] Found 2 identities for user 1","timestamp":"2025-04-22T14:26:06.406Z"}
-{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-22T14:26:06.412Z"}
-{"level":"info","message":"[IdentityService] Found 2 identities for user 1","timestamp":"2025-04-22T14:26:06.414Z"}
-{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-22T14:26:36.703Z"}
-{"level":"info","message":"[IdentityService] Found 2 identities for user 1","timestamp":"2025-04-22T14:26:36.706Z"}
-{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-22T14:26:36.715Z"}
-{"level":"info","message":"[IdentityService] Found 2 identities for user 1","timestamp":"2025-04-22T14:26:36.717Z"}
-{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-22T14:27:06.913Z"}
-{"level":"info","message":"[IdentityService] Found 2 identities for user 1","timestamp":"2025-04-22T14:27:06.916Z"}
-{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-22T14:27:06.923Z"}
-{"level":"info","message":"[IdentityService] Found 2 identities for user 1","timestamp":"2025-04-22T14:27:06.925Z"}
-{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-22T14:27:37.151Z"}
-{"level":"info","message":"[IdentityService] Found 2 identities for user 1","timestamp":"2025-04-22T14:27:37.153Z"}
-{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-22T14:27:37.161Z"}
-{"level":"info","message":"[IdentityService] Found 2 identities for user 1","timestamp":"2025-04-22T14:27:37.163Z"}
-{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-22T14:28:38.509Z"}
-{"level":"info","message":"[IdentityService] Found 2 identities for user 1","timestamp":"2025-04-22T14:28:38.512Z"}
-{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-22T14:28:38.519Z"}
-{"level":"info","message":"[IdentityService] Found 2 identities for user 1","timestamp":"2025-04-22T14:28:38.520Z"}
-{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-22T14:29:39.904Z"}
-{"level":"info","message":"[IdentityService] Found 2 identities for user 1","timestamp":"2025-04-22T14:29:39.908Z"}
-{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-22T14:29:39.915Z"}
-{"level":"info","message":"[IdentityService] Found 2 identities for user 1","timestamp":"2025-04-22T14:29:39.916Z"}
-{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-22T14:30:30.650Z"}
-{"level":"info","message":"[IdentityService] Found 2 identities for user 1","timestamp":"2025-04-22T14:30:30.653Z"}
-{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-22T14:30:30.665Z"}
-{"level":"info","message":"[IdentityService] Found 2 identities for user 1","timestamp":"2025-04-22T14:30:30.667Z"}
-{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-22T14:30:38.500Z"}
-{"level":"info","message":"[IdentityService] Found 2 identities for user 1","timestamp":"2025-04-22T14:30:38.502Z"}
-{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-22T14:30:38.510Z"}
-{"level":"info","message":"[IdentityService] Found 2 identities for user 1","timestamp":"2025-04-22T14:30:38.513Z"}
-{"level":"info","message":"POST /api/auth/logout","timestamp":"2025-04-22T14:30:44.822Z"}
-{"address":null,"authType":null,"authenticated":false,"cookie":{"expires":"2025-05-22T14:17:35.893Z","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":[],"role":"admin","telegramFirstName":"Alex","telegramId":null,"telegramUsername":"Alex_tg9","timestamp":"2025-04-22T14:30:44.823Z","userId":null}
-{"level":"info","message":"Session saved successfully","timestamp":"2025-04-22T14:30:44.827Z"}
-{"level":"info","message":"GET /api/auth/check","timestamp":"2025-04-22T14:30:54.012Z"}
-{"cookie":{"expires":"2025-05-22T14:30:54.010Z","httpOnly":true,"originalMaxAge":2592000000,"path":"/","sameSite":"lax","secure":false},"guestId":"7e578873c53baeee78e578445f627c2c","level":"info","message":"[SessionService] Saving session data:","timestamp":"2025-04-22T14:30:54.013Z"}
-{"level":"info","message":"Session saved successfully","timestamp":"2025-04-22T14:30:54.016Z"}
-{"level":"info","message":"GET /api/auth/check","timestamp":"2025-04-22T14:30:54.024Z"}
-{"cookie":{"expires":"2025-05-22T14:30:54.022Z","httpOnly":true,"originalMaxAge":2592000000,"path":"/","sameSite":"lax","secure":false},"guestId":"e6bc3987579bf5e15a3b206f48a6f5cb","level":"info","message":"[SessionService] Saving session data:","timestamp":"2025-04-22T14:30:54.024Z"}
-{"level":"info","message":"Session saved successfully","timestamp":"2025-04-22T14:30:54.028Z"}
-{"level":"info","message":"GET /api/auth/check","timestamp":"2025-04-22T14:30:54.038Z"}
-{"cookie":{"expires":"2025-05-22T14:30:54.034Z","httpOnly":true,"originalMaxAge":2592000000,"path":"/","sameSite":"lax","secure":false},"guestId":"a70a913d3b783fdddd99cbf64c821802","level":"info","message":"[SessionService] Saving session data:","timestamp":"2025-04-22T14:30:54.041Z"}
-{"level":"info","message":"Session saved successfully","timestamp":"2025-04-22T14:30:54.045Z"}
-{"level":"info","message":"GET /api/auth/check","timestamp":"2025-04-22T14:31:31.359Z"}
-{"level":"info","message":"GET /api/auth/check","timestamp":"2025-04-22T14:31:31.372Z"}
-{"level":"info","message":"GET /api/auth/check","timestamp":"2025-04-22T14:31:31.382Z"}
-{"level":"info","message":"GET /api/auth/check","timestamp":"2025-04-22T14:33:23.025Z"}
-{"level":"info","message":"Migration 000_session_table.sql executed successfully","timestamp":"2025-04-22T14:37:32.363Z"}
-{"level":"info","message":"Migration 001_initial_schema.sql executed successfully","timestamp":"2025-04-22T14:37:32.380Z"}
-{"level":"info","message":"Migration 002_access_roles.sql executed successfully","timestamp":"2025-04-22T14:37:32.414Z"}
-{"level":"info","message":"Migration 003_user_identities.sql executed successfully","timestamp":"2025-04-22T14:37:32.436Z"}
-{"level":"info","message":"Migration 004_conversations.sql executed successfully","timestamp":"2025-04-22T14:37:32.450Z"}
-{"level":"info","message":"Migration 005_messages.sql executed successfully","timestamp":"2025-04-22T14:37:32.473Z"}
-{"level":"info","message":"Migration 006_guest_messages.sql executed successfully","timestamp":"2025-04-22T14:37:32.498Z"}
-{"level":"info","message":"Migration 007_user_preferences.sql executed successfully","timestamp":"2025-04-22T14:37:32.519Z"}
-{"level":"info","message":"Migration 008_update_messages_structure.sql executed successfully","timestamp":"2025-04-22T14:37:32.530Z"}
-{"level":"info","message":"Migration 009_nonces_table.sql executed successfully","timestamp":"2025-04-22T14:37:32.546Z"}
-{"level":"info","message":"Migration 010_cleanup_roles.sql executed successfully","timestamp":"2025-04-22T14:37:32.565Z"}
-{"level":"info","message":"Migration 011_cleanup_guest_relations.sql executed successfully","timestamp":"2025-04-22T14:37:32.577Z"}
-{"level":"info","message":"Migration 012_verification_codes.sql executed successfully","timestamp":"2025-04-22T14:37:32.596Z"}
-{"level":"info","message":"Migration 013_update_verification_codes.sql executed successfully","timestamp":"2025-04-22T14:37:32.604Z"}
-{"level":"info","message":"Migration 014_identity_system_refactor.sql executed successfully","timestamp":"2025-04-22T14:37:32.631Z"}
-{"level":"info","message":"Migration 015_users_table_refactor.sql executed successfully","timestamp":"2025-04-22T14:37:32.641Z"}
-{"level":"info","message":"Migration 016_fix_duplicate_identities.sql executed successfully","timestamp":"2025-04-22T14:37:32.659Z"}
-{"level":"info","message":"Migration fix_duplicates_manual.sql executed successfully","timestamp":"2025-04-22T14:37:32.669Z"}
-{"level":"info","message":"Function link_guest_messages.sql executed successfully","timestamp":"2025-04-22T14:37:32.673Z"}
-{"level":"info","message":"GET /api/auth/check","timestamp":"2025-04-22T14:38:47.966Z"}
-{"cookie":{"expires":"2025-05-22T14:38:47.961Z","httpOnly":true,"originalMaxAge":2592000000,"path":"/","sameSite":"lax","secure":false},"guestId":"c54ed0295d1b74dad70cf98b3eb3b4b4","level":"info","message":"[SessionService] Saving session data:","timestamp":"2025-04-22T14:38:47.970Z"}
-{"level":"info","message":"Session saved successfully","timestamp":"2025-04-22T14:38:47.975Z"}
-{"level":"info","message":"GET /api/auth/check","timestamp":"2025-04-22T14:38:47.987Z"}
-{"cookie":{"expires":"2025-05-22T14:38:47.985Z","httpOnly":true,"originalMaxAge":2592000000,"path":"/","sameSite":"lax","secure":false},"guestId":"8aef6cc434b4d52fa30e91c796fa778d","level":"info","message":"[SessionService] Saving session data:","timestamp":"2025-04-22T14:38:47.988Z"}
-{"level":"info","message":"Session saved successfully","timestamp":"2025-04-22T14:38:47.990Z"}
-{"level":"info","message":"GET /api/auth/nonce?address=0xF45aa4917b3775bA37f48Aeb3dc1a943561e9e0B","timestamp":"2025-04-22T14:38:49.599Z"}
-{"level":"info","message":"Nonce 84302490d7b09d650921e76c96c52eb0 сохранен для адреса 0xF45aa4917b3775bA37f48Aeb3dc1a943561e9e0B","timestamp":"2025-04-22T14:38:49.611Z"}
-{"level":"info","message":"POST /api/auth/verify","timestamp":"2025-04-22T14:38:51.714Z"}
-{"level":"info","message":"[verify] Verifying signature for address: 0xF45aa4917b3775bA37f48Aeb3dc1a943561e9e0B","timestamp":"2025-04-22T14:38:51.716Z"}
-{"level":"info","message":"Checking admin role for address: 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-22T14:38:51.835Z"}
-{"address":"0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","balance":"500000.0","contract":"0x4B294265720B09ca39BFBA18c7E368413c0f68eB","hasTokens":true,"level":"info","message":"Token balance on bsc:","timestamp":"2025-04-22T14:38:53.476Z"}
-{"level":"info","message":"Found admin tokens on bsc","timestamp":"2025-04-22T14:38:53.476Z"}
-{"address":"0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","balance":"1500000.0","contract":"0xd95a45fc46a7300e6022885afec3d618d7d3f27c","hasTokens":true,"level":"info","message":"Token balance on eth:","timestamp":"2025-04-22T14:38:53.526Z"}
-{"level":"info","message":"Found admin tokens on eth","timestamp":"2025-04-22T14:38:53.527Z"}
-{"address":"0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","balance":"499999.9","contract":"0xdce769b847a0a697239777d0b1c7dd33b6012ba0","hasTokens":true,"level":"info","message":"Token balance on arbitrum:","timestamp":"2025-04-22T14:38:53.598Z"}
-{"level":"info","message":"Found admin tokens on arbitrum","timestamp":"2025-04-22T14:38:53.598Z"}
-{"address":"0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","balance":"454852.0","contract":"0x351f59de4fedbdf7601f5592b93db3b9330c1c1d","hasTokens":true,"level":"info","message":"Token balance on polygon:","timestamp":"2025-04-22T14:38:53.822Z"}
-{"level":"info","message":"Found admin tokens on polygon","timestamp":"2025-04-22T14:38:53.822Z"}
-{"balances":{"arbitrum":"499999.9","bsc":"500000.0","eth":"1500000.0","polygon":"454852.0"},"level":"info","message":"Admin role summary for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b:","networks":["bsc","eth","arbitrum","polygon"],"timestamp":"2025-04-22T14:38:53.823Z"}
-{"level":"info","message":"Admin role granted for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-22T14:38:53.824Z"}
-{"level":"info","message":"New user 1 role check result: admin","timestamp":"2025-04-22T14:38:53.824Z"}
-{"level":"info","message":"New user 1 with wallet 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b automatically granted admin role","timestamp":"2025-04-22T14:38:53.828Z"}
-{"level":"info","message":"[verify] Found or created user 1 for wallet 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-22T14:38:53.828Z"}
-{"level":"info","message":"[IdentityService] Converting guest identity for user 1 to guest_user_mapping: 8aef6cc434b4d52fa30e91c796fa778d","timestamp":"2025-04-22T14:38:53.829Z"}
-{"level":"info","message":"Checking admin tokens for address: 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-22T14:38:53.832Z"}
-{"level":"info","message":"Checking admin role for address: 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-22T14:38:53.832Z"}
-{"address":"0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","balance":"500000.0","contract":"0x4B294265720B09ca39BFBA18c7E368413c0f68eB","hasTokens":true,"level":"info","message":"Token balance on bsc:","timestamp":"2025-04-22T14:38:54.226Z"}
-{"level":"info","message":"Found admin tokens on bsc","timestamp":"2025-04-22T14:38:54.226Z"}
-{"address":"0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","balance":"1500000.0","contract":"0xd95a45fc46a7300e6022885afec3d618d7d3f27c","hasTokens":true,"level":"info","message":"Token balance on eth:","timestamp":"2025-04-22T14:38:54.309Z"}
-{"level":"info","message":"Found admin tokens on eth","timestamp":"2025-04-22T14:38:54.309Z"}
-{"address":"0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","balance":"454852.0","contract":"0x351f59de4fedbdf7601f5592b93db3b9330c1c1d","hasTokens":true,"level":"info","message":"Token balance on polygon:","timestamp":"2025-04-22T14:38:54.332Z"}
-{"level":"info","message":"Found admin tokens on polygon","timestamp":"2025-04-22T14:38:54.332Z"}
-{"address":"0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","balance":"499999.9","contract":"0xdce769b847a0a697239777d0b1c7dd33b6012ba0","hasTokens":true,"level":"info","message":"Token balance on arbitrum:","timestamp":"2025-04-22T14:38:54.532Z"}
-{"level":"info","message":"Found admin tokens on arbitrum","timestamp":"2025-04-22T14:38:54.533Z"}
-{"balances":{"arbitrum":"499999.9","bsc":"500000.0","eth":"1500000.0","polygon":"454852.0"},"level":"info","message":"Admin role summary for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b:","networks":["bsc","eth","polygon","arbitrum"],"timestamp":"2025-04-22T14:38:54.533Z"}
-{"level":"info","message":"Admin role granted for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-22T14:38:54.533Z"}
-{"level":"info","message":"Updated user 1 role to admin based on token holdings","timestamp":"2025-04-22T14:38:54.537Z"}
-{"address":"0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","authType":"wallet","authenticated":true,"cookie":{"expires":"2025-05-22T14:38:47.985Z","httpOnly":true,"originalMaxAge":2592000000,"path":"/","sameSite":"lax","secure":false},"guestId":"8aef6cc434b4d52fa30e91c796fa778d","isAdmin":true,"level":"info","message":"[SessionService] Saving session data:","timestamp":"2025-04-22T14:38:54.539Z","userId":1}
-{"level":"info","message":"Session saved successfully","timestamp":"2025-04-22T14:38:54.541Z"}
-{"level":"info","message":"[linkGuestMessages] Starting for user 1 with guestId=8aef6cc434b4d52fa30e91c796fa778d, previousGuestId=undefined","timestamp":"2025-04-22T14:38:54.541Z"}
-{"level":"info","message":"[processGuestMessagesWrapper] Processing messages: userId=1, guestId=8aef6cc434b4d52fa30e91c796fa778d","timestamp":"2025-04-22T14:38:54.544Z"}
-{"address":"0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","authType":"wallet","authenticated":true,"cookie":{"expires":"2025-05-22T14:38:47.985Z","httpOnly":true,"originalMaxAge":2592000000,"path":"/","sameSite":"lax","secure":false},"guestId":"8aef6cc434b4d52fa30e91c796fa778d","isAdmin":true,"level":"info","message":"[SessionService] Saving session data:","processedGuestIds":["8aef6cc434b4d52fa30e91c796fa778d"],"timestamp":"2025-04-22T14:38:54.551Z","userId":1}
-{"level":"info","message":"Session saved successfully","timestamp":"2025-04-22T14:38:54.554Z"}
-{"level":"info","message":"GET /api/auth/check","timestamp":"2025-04-22T14:38:54.562Z"}
-{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-22T14:38:54.564Z"}
-{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-22T14:38:54.580Z"}
-{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-22T14:38:54.584Z"}
-{"level":"info","message":"GET /api/auth/check","timestamp":"2025-04-22T14:38:54.598Z"}
-{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-22T14:38:54.599Z"}
-{"level":"info","message":"GET /api/tokens/balances?address=0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-22T14:38:54.603Z"}
-{"level":"info","message":"Fetching token balances for address: 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-22T14:38:54.605Z"}
-{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-22T14:38:54.614Z"}
-{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-22T14:38:54.616Z"}
-{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-22T14:38:54.626Z"}
-{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-22T14:38:54.628Z"}
-{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-22T14:38:54.637Z"}
-{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-22T14:38:54.639Z"}
-{"balance":"1500000.0","contract":"0xd95a45fc46a7300e6022885afec3d618d7d3f27c","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on eth:","timestamp":"2025-04-22T14:38:54.987Z"}
-{"balance":"500000.0","contract":"0x4B294265720B09ca39BFBA18c7E368413c0f68eB","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on bsc:","timestamp":"2025-04-22T14:38:55.359Z"}
-{"level":"info","message":"GET /api/auth/check","timestamp":"2025-04-22T14:38:55.511Z"}
-{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-22T14:38:55.513Z"}
-{"level":"info","message":"GET /api/chat/history?count_only=true","timestamp":"2025-04-22T14:38:55.527Z"}
-{"level":"info","message":"GET /api/chat/history?offset=0&limit=30","timestamp":"2025-04-22T14:38:55.549Z"}
-{"level":"info","message":"POST /api/auth/telegram/init","timestamp":"2025-04-22T14:38:55.819Z"}
-{"level":"info","message":"[initTelegramAuth] Linked guestId 9fdd1f3af376e15da828951a1f8e7cc2 to authenticated user 1","timestamp":"2025-04-22T14:38:55.824Z"}
-{"level":"info","message":"Generated verification code: QIW6XV","timestamp":"2025-04-22T14:38:55.824Z"}
-{"level":"info","message":"Creating verification code for telegram:9fdd1f3af376e15da828951a1f8e7cc2, userId: 1","timestamp":"2025-04-22T14:38:55.824Z"}
-{"level":"info","message":"Verification code created successfully for telegram:9fdd1f3af376e15da828951a1f8e7cc2","timestamp":"2025-04-22T14:38:55.827Z"}
-{"level":"info","message":"[initTelegramAuth] Created verification code for guestId: 9fdd1f3af376e15da828951a1f8e7cc2, userId: 1","timestamp":"2025-04-22T14:38:55.828Z"}
-{"address":"0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","authType":"wallet","authenticated":true,"cookie":{"expires":"2025-05-22T14:38:47.985Z","httpOnly":true,"originalMaxAge":2592000000,"path":"/","sameSite":"lax","secure":false},"guestId":null,"isAdmin":true,"level":"info","message":"[telegram/init] Session object before save:","processedGuestIds":["8aef6cc434b4d52fa30e91c796fa778d"],"timestamp":"2025-04-22T14:38:55.828Z","userId":1}
-{"address":"0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","authType":"wallet","authenticated":true,"cookie":{"expires":"2025-05-22T14:38:47.985Z","httpOnly":true,"originalMaxAge":2592000000,"path":"/","sameSite":"lax","secure":false},"guestId":null,"isAdmin":true,"level":"info","message":"[SessionService] Saving session data:","processedGuestIds":["8aef6cc434b4d52fa30e91c796fa778d"],"timestamp":"2025-04-22T14:38:55.828Z","userId":1}
-{"level":"info","message":"Session saved successfully","timestamp":"2025-04-22T14:38:55.831Z"}
-{"balance":"499999.9","contract":"0xdce769b847a0a697239777d0b1c7dd33b6012ba0","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on arbitrum:","timestamp":"2025-04-22T14:38:55.944Z"}
-{"balance":"454852.0","contract":"0x351f59de4fedbdf7601f5592b93db3b9330c1c1d","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on polygon:","timestamp":"2025-04-22T14:38:56.451Z"}
-{"arbitrum":"499999.9","bsc":"500000.0","eth":"1500000.0","level":"info","message":"Token balances fetched for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b:","polygon":"454852.0","timestamp":"2025-04-22T14:38:56.452Z"}
-{"level":"info","message":"GET /api/tokens/balances?address=0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-22T14:38:56.460Z"}
-{"level":"info","message":"Fetching token balances for address: 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-22T14:38:56.461Z"}
-{"balance":"1500000.0","contract":"0xd95a45fc46a7300e6022885afec3d618d7d3f27c","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on eth:","timestamp":"2025-04-22T14:39:00.846Z"}
-{"balance":"500000.0","contract":"0x4B294265720B09ca39BFBA18c7E368413c0f68eB","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on bsc:","timestamp":"2025-04-22T14:39:01.150Z"}
-{"level":"info","message":"GET /api/auth/check","timestamp":"2025-04-22T14:39:01.822Z"}
-{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-22T14:39:01.825Z"}
-{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-22T14:39:01.841Z"}
-{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-22T14:39:01.843Z"}
-{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-22T14:39:01.855Z"}
-{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-22T14:39:01.858Z"}
-{"balance":"499999.9","contract":"0xdce769b847a0a697239777d0b1c7dd33b6012ba0","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on arbitrum:","timestamp":"2025-04-22T14:39:01.899Z"}
-{"balance":"454852.0","contract":"0x351f59de4fedbdf7601f5592b93db3b9330c1c1d","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on polygon:","timestamp":"2025-04-22T14:39:02.386Z"}
-{"arbitrum":"499999.9","bsc":"500000.0","eth":"1500000.0","level":"info","message":"Token balances fetched for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b:","polygon":"454852.0","timestamp":"2025-04-22T14:39:02.386Z"}
-{"level":"info","message":"GET /api/auth/check","timestamp":"2025-04-22T14:39:04.056Z"}
-{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-22T14:39:04.058Z"}
-{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-22T14:39:04.073Z"}
-{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-22T14:39:04.075Z"}
-{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-22T14:39:04.087Z"}
-{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-22T14:39:04.090Z"}
-{"level":"info","message":"GET /api/auth/check","timestamp":"2025-04-22T14:39:06.210Z"}
-{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-22T14:39:06.212Z"}
-{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-22T14:39:06.223Z"}
-{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-22T14:39:06.225Z"}
-{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-22T14:39:06.238Z"}
-{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-22T14:39:06.240Z"}
-{"level":"info","message":"Starting Telegram auth process for code:","timestamp":"2025-04-22T14:39:07.203Z"}
-{"level":"info","message":"Linked Telegram account 1136899732 to pre-authenticated user 1","timestamp":"2025-04-22T14:39:07.208Z"}
-{"level":"info","message":"[TelegramBot] Checking linked wallet for determined userId: 1 (Type: number)","timestamp":"2025-04-22T14:39:07.208Z"}
-{"level":"info","message":"[getLinkedWallet] Called with userId: 1 (Type: number)","timestamp":"2025-04-22T14:39:07.209Z"}
-{"0":{"address":"0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b"},"level":"info","message":"[getLinkedWallet] DB query result for userId 1:","timestamp":"2025-04-22T14:39:07.210Z"}
-{"level":"info","message":"[getLinkedWallet] Returning address: 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b for userId 1","timestamp":"2025-04-22T14:39:07.211Z"}
-{"level":"info","message":"[TelegramBot] Found linked wallet 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b for user 1. Checking role...","timestamp":"2025-04-22T14:39:07.211Z"}
-{"level":"info","message":"Checking admin role for address: 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-22T14:39:07.211Z"}
-{"address":"0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","balance":"454852.0","contract":"0x351f59de4fedbdf7601f5592b93db3b9330c1c1d","hasTokens":true,"level":"info","message":"Token balance on polygon:","timestamp":"2025-04-22T14:39:07.691Z"}
-{"level":"info","message":"Found admin tokens on polygon","timestamp":"2025-04-22T14:39:07.691Z"}
-{"address":"0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","balance":"500000.0","contract":"0x4B294265720B09ca39BFBA18c7E368413c0f68eB","hasTokens":true,"level":"info","message":"Token balance on bsc:","timestamp":"2025-04-22T14:39:08.160Z"}
-{"level":"info","message":"Found admin tokens on bsc","timestamp":"2025-04-22T14:39:08.160Z"}
-{"address":"0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","balance":"499999.9","contract":"0xdce769b847a0a697239777d0b1c7dd33b6012ba0","hasTokens":true,"level":"info","message":"Token balance on arbitrum:","timestamp":"2025-04-22T14:39:08.240Z"}
-{"level":"info","message":"Found admin tokens on arbitrum","timestamp":"2025-04-22T14:39:08.240Z"}
-{"address":"0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","balance":"1500000.0","contract":"0xd95a45fc46a7300e6022885afec3d618d7d3f27c","hasTokens":true,"level":"info","message":"Token balance on eth:","timestamp":"2025-04-22T14:39:08.292Z"}
-{"level":"info","message":"Found admin tokens on eth","timestamp":"2025-04-22T14:39:08.293Z"}
-{"balances":{"arbitrum":"499999.9","bsc":"500000.0","eth":"1500000.0","polygon":"454852.0"},"level":"info","message":"Admin role summary for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b:","networks":["polygon","bsc","arbitrum","eth"],"timestamp":"2025-04-22T14:39:08.294Z"}
-{"level":"info","message":"Admin role granted for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-22T14:39:08.294Z"}
-{"level":"info","message":"[TelegramBot] Role for user 1 determined as: admin","timestamp":"2025-04-22T14:39:08.295Z"}
-{"level":"info","message":"[telegramBot] Attempting to update session for userId: 1","timestamp":"2025-04-22T14:39:08.296Z"}
-{"level":"info","message":"[telegramBot] Found active session ID fyQKiilEKLK-xF-vOQEeQGC5mUVDpyL9 for user 1","timestamp":"2025-04-22T14:39:08.299Z"}
-{"level":"info","message":"[telegramBot] Session fyQKiilEKLK-xF-vOQEeQGC5mUVDpyL9 updated successfully with Telegram data for user 1","timestamp":"2025-04-22T14:39:08.303Z"}
-{"level":"info","message":"GET /api/auth/check","timestamp":"2025-04-22T14:39:08.373Z"}
-{"level":"info","message":"[IdentityService] Found 2 identities for user 1","timestamp":"2025-04-22T14:39:08.375Z"}
-{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-22T14:39:08.386Z"}
-{"level":"info","message":"[IdentityService] Found 2 identities for user 1","timestamp":"2025-04-22T14:39:08.388Z"}
-{"level":"info","message":"GET /api/auth/check","timestamp":"2025-04-22T14:39:08.399Z"}
-{"level":"info","message":"[IdentityService] Found 2 identities for user 1","timestamp":"2025-04-22T14:39:08.401Z"}
-{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-22T14:39:08.415Z"}
-{"level":"info","message":"[IdentityService] Found 2 identities for user 1","timestamp":"2025-04-22T14:39:08.418Z"}
-{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-22T14:39:08.432Z"}
-{"level":"info","message":"[IdentityService] Found 2 identities for user 1","timestamp":"2025-04-22T14:39:08.434Z"}
-{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-22T14:39:08.447Z"}
-{"level":"info","message":"[IdentityService] Found 2 identities for user 1","timestamp":"2025-04-22T14:39:08.449Z"}
-{"level":"info","message":"GET /api/tokens/balances?address=0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-22T14:39:08.466Z"}
-{"level":"info","message":"Fetching token balances for address: 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-22T14:39:08.466Z"}
-{"balance":"1500000.0","contract":"0xd95a45fc46a7300e6022885afec3d618d7d3f27c","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on eth:","timestamp":"2025-04-22T14:39:08.933Z"}
-{"balance":"500000.0","contract":"0x4B294265720B09ca39BFBA18c7E368413c0f68eB","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on bsc:","timestamp":"2025-04-22T14:39:09.214Z"}
-{"balance":"499999.9","contract":"0xdce769b847a0a697239777d0b1c7dd33b6012ba0","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on arbitrum:","timestamp":"2025-04-22T14:39:09.880Z"}
-{"balance":"454852.0","contract":"0x351f59de4fedbdf7601f5592b93db3b9330c1c1d","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on polygon:","timestamp":"2025-04-22T14:39:10.364Z"}
-{"arbitrum":"499999.9","bsc":"500000.0","eth":"1500000.0","level":"info","message":"Token balances fetched for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b:","polygon":"454852.0","timestamp":"2025-04-22T14:39:10.365Z"}
-{"level":"info","message":"GET /api/tokens/balances?address=0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-22T14:39:10.390Z"}
-{"level":"info","message":"Fetching token balances for address: 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-22T14:39:10.392Z"}
-{"balance":"1500000.0","contract":"0xd95a45fc46a7300e6022885afec3d618d7d3f27c","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on eth:","timestamp":"2025-04-22T14:39:10.856Z"}
-{"balance":"500000.0","contract":"0x4B294265720B09ca39BFBA18c7E368413c0f68eB","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on bsc:","timestamp":"2025-04-22T14:39:11.180Z"}
-{"balance":"499999.9","contract":"0xdce769b847a0a697239777d0b1c7dd33b6012ba0","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on arbitrum:","timestamp":"2025-04-22T14:39:11.870Z"}
-{"balance":"454852.0","contract":"0x351f59de4fedbdf7601f5592b93db3b9330c1c1d","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on polygon:","timestamp":"2025-04-22T14:39:12.331Z"}
-{"arbitrum":"499999.9","bsc":"500000.0","eth":"1500000.0","level":"info","message":"Token balances fetched for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b:","polygon":"454852.0","timestamp":"2025-04-22T14:39:12.332Z"}
-{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-22T14:39:28.906Z"}
-{"level":"info","message":"[IdentityService] Found 2 identities for user 1","timestamp":"2025-04-22T14:39:28.910Z"}
-{"level":"info","message":"POST /api/auth/email/init","timestamp":"2025-04-22T14:39:32.021Z"}
-{"level":"info","message":"[initEmailAuth] Using existing authenticated user 1 for email 0x5.anonymous@gmail.com","timestamp":"2025-04-22T14:39:32.025Z"}
-{"level":"info","message":"Generated verification code: 0IRZSU","timestamp":"2025-04-22T14:39:32.026Z"}
-{"level":"info","message":"Creating verification code for email:0x5.anonymous@gmail.com, userId: 1","timestamp":"2025-04-22T14:39:32.026Z"}
-{"level":"info","message":"Verification code created successfully for email:0x5.anonymous@gmail.com","timestamp":"2025-04-22T14:39:32.030Z"}
-{"level":"info","message":"Verification code sent to 0x5.anonymous@gmail.com","timestamp":"2025-04-22T14:39:33.157Z"}
-{"level":"info","message":"Generated verification code for Email auth for 0x5.anonymous@gmail.com and sent to user's email","timestamp":"2025-04-22T14:39:33.158Z"}
-{"address":"0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","authType":"telegram","authenticated":true,"cookie":{"expires":"2025-05-22T14:38:47.985Z","httpOnly":true,"originalMaxAge":2592000000,"path":"/","sameSite":"lax","secure":false},"guestId":null,"isAdmin":true,"level":"info","message":"[SessionService] Saving session data:","pendingEmail":"0x5.anonymous@gmail.com","processedGuestIds":["8aef6cc434b4d52fa30e91c796fa778d"],"role":"admin","telegramFirstName":"Alex","telegramId":"1136899732","telegramUsername":"Alex_tg9","timestamp":"2025-04-22T14:39:33.158Z","userId":1}
-{"level":"info","message":"Session saved successfully","timestamp":"2025-04-22T14:39:33.160Z"}
-{"level":"info","message":"POST /api/auth/email/verify-code","timestamp":"2025-04-22T14:39:48.311Z"}
-{"level":"info","message":"Verifying code for email:0x5.anonymous@gmail.com","timestamp":"2025-04-22T14:39:48.312Z"}
-{"level":"info","message":"Normalized code: 0IRZSU","timestamp":"2025-04-22T14:39:48.313Z"}
-{"level":"info","message":"Found codes for email:0x5.anonymous@gmail.com: [\"0IRZSU\"]","timestamp":"2025-04-22T14:39:48.315Z"}
-{"level":"info","message":"Code verified successfully for email:0x5.anonymous@gmail.com","timestamp":"2025-04-22T14:39:48.319Z"}
-{"level":"info","message":"[handleEmailVerification] Using authenticated user 1","timestamp":"2025-04-22T14:39:48.319Z"}
-{"level":"info","message":"[IdentityService] Saving identity for user 1: email:0x5.anonymous@gmail.com","timestamp":"2025-04-22T14:39:48.319Z"}
-{"level":"info","message":"[IdentityService] Created new identity email:0x5.anonymous@gmail.com for user 1","timestamp":"2025-04-22T14:39:48.326Z"}
-{"level":"info","message":"[handleEmailVerification] Ensured email identity 0x5.anonymous@gmail.com for user 1","timestamp":"2025-04-22T14:39:48.326Z"}
-{"level":"info","message":"[getLinkedWallet] Called with userId: 1 (Type: number)","timestamp":"2025-04-22T14:39:48.326Z"}
-{"0":{"address":"0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b"},"level":"info","message":"[getLinkedWallet] DB query result for userId 1:","timestamp":"2025-04-22T14:39:48.328Z"}
-{"level":"info","message":"[getLinkedWallet] Returning address: 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b for userId 1","timestamp":"2025-04-22T14:39:48.328Z"}
-{"level":"info","message":"[handleEmailVerification] No linked wallet found. Role remains 'user'.","timestamp":"2025-04-22T14:39:48.328Z"}
-{"code":"42703","file":"parse_relation.c","hint":"Perhaps you meant to reference the column \"user_identities.created_at\".","length":183,"level":"error","line":"3729","message":"[IdentityService] Error finding wallet identity for user 1: column \"updated_at\" does not exist","name":"error","position":"43","routine":"errorMissingColumn","severity":"ERROR","stack":"error: column \"updated_at\" does not exist\n at /app/node_modules/pg-pool/index.js:45:11\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n at async IdentityService.findIdentity (/app/services/identity-service.js:258:22)\n at async /app/routes/auth.js:368:32","timestamp":"2025-04-22T14:39:48.332Z"}
-{"level":"info","message":"[email/verify-code] No linked wallet found for user 1. Using role from authResult: admin","timestamp":"2025-04-22T14:39:48.332Z"}
-{"address":"0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","authType":"email","authenticated":true,"cookie":{"expires":"2025-05-22T14:38:47.985Z","httpOnly":true,"originalMaxAge":2592000000,"path":"/","sameSite":"lax","secure":false},"email":"0x5.anonymous@gmail.com","guestId":null,"isAdmin":true,"level":"info","message":"[SessionService] Saving session data:","processedGuestIds":["8aef6cc434b4d52fa30e91c796fa778d"],"role":"admin","telegramFirstName":"Alex","telegramId":"1136899732","telegramUsername":"Alex_tg9","timestamp":"2025-04-22T14:39:48.333Z","userId":1}
-{"level":"info","message":"Session saved successfully","timestamp":"2025-04-22T14:39:48.346Z"}
-{"level":"info","message":"[linkGuestMessages] Starting for user 1 with guestId=null, previousGuestId=undefined","timestamp":"2025-04-22T14:39:48.347Z"}
-{"level":"info","message":"[processGuestMessagesWrapper] Processing messages: userId=1, guestId=9fdd1f3af376e15da828951a1f8e7cc2","timestamp":"2025-04-22T14:39:48.349Z"}
-{"address":"0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","authType":"email","authenticated":true,"cookie":{"expires":"2025-05-22T14:38:47.985Z","httpOnly":true,"originalMaxAge":2592000000,"path":"/","sameSite":"lax","secure":false},"email":"0x5.anonymous@gmail.com","guestId":null,"isAdmin":true,"level":"info","message":"[SessionService] Saving session data:","processedGuestIds":["8aef6cc434b4d52fa30e91c796fa778d","9fdd1f3af376e15da828951a1f8e7cc2"],"role":"admin","telegramFirstName":"Alex","telegramId":"1136899732","telegramUsername":"Alex_tg9","timestamp":"2025-04-22T14:39:48.356Z","userId":1}
-{"level":"info","message":"Session saved successfully","timestamp":"2025-04-22T14:39:48.359Z"}
-{"level":"info","message":"GET /api/auth/check","timestamp":"2025-04-22T14:39:48.368Z"}
-{"level":"info","message":"[IdentityService] Found 3 identities for user 1","timestamp":"2025-04-22T14:39:48.371Z"}
-{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-22T14:39:48.381Z"}
-{"level":"info","message":"[IdentityService] Found 3 identities for user 1","timestamp":"2025-04-22T14:39:48.384Z"}
-{"level":"info","message":"GET /api/auth/check","timestamp":"2025-04-22T14:39:48.397Z"}
-{"level":"info","message":"[IdentityService] Found 3 identities for user 1","timestamp":"2025-04-22T14:39:48.399Z"}
-{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-22T14:39:48.410Z"}
-{"level":"info","message":"[IdentityService] Found 3 identities for user 1","timestamp":"2025-04-22T14:39:48.412Z"}
-{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-22T14:39:48.422Z"}
-{"level":"info","message":"[IdentityService] Found 3 identities for user 1","timestamp":"2025-04-22T14:39:48.424Z"}
-{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-22T14:39:48.433Z"}
-{"level":"info","message":"[IdentityService] Found 3 identities for user 1","timestamp":"2025-04-22T14:39:48.435Z"}
-{"level":"info","message":"GET /api/auth/check","timestamp":"2025-04-22T14:39:49.450Z"}
-{"level":"info","message":"[IdentityService] Found 3 identities for user 1","timestamp":"2025-04-22T14:39:49.451Z"}
-{"level":"info","message":"GET /api/chat/history?count_only=true","timestamp":"2025-04-22T14:39:49.462Z"}
-{"level":"info","message":"GET /api/chat/history?offset=0&limit=30","timestamp":"2025-04-22T14:39:49.477Z"}
-{"level":"info","message":"GET /api/tokens/balances?address=0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-22T14:39:49.492Z"}
-{"level":"info","message":"Fetching token balances for address: 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-22T14:39:49.493Z"}
-{"balance":"1500000.0","contract":"0xd95a45fc46a7300e6022885afec3d618d7d3f27c","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on eth:","timestamp":"2025-04-22T14:39:50.380Z"}
-{"balance":"500000.0","contract":"0x4B294265720B09ca39BFBA18c7E368413c0f68eB","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on bsc:","timestamp":"2025-04-22T14:39:51.177Z"}
-{"balance":"499999.9","contract":"0xdce769b847a0a697239777d0b1c7dd33b6012ba0","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on arbitrum:","timestamp":"2025-04-22T14:39:52.131Z"}
-{"balance":"454852.0","contract":"0x351f59de4fedbdf7601f5592b93db3b9330c1c1d","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on polygon:","timestamp":"2025-04-22T14:39:53.213Z"}
-{"arbitrum":"499999.9","bsc":"500000.0","eth":"1500000.0","level":"info","message":"Token balances fetched for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b:","polygon":"454852.0","timestamp":"2025-04-22T14:39:53.213Z"}
-{"level":"info","message":"GET /api/tokens/balances?address=0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-22T14:39:53.225Z"}
-{"level":"info","message":"Fetching token balances for address: 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-22T14:39:53.226Z"}
-{"balance":"1500000.0","contract":"0xd95a45fc46a7300e6022885afec3d618d7d3f27c","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on eth:","timestamp":"2025-04-22T14:39:53.651Z"}
-{"balance":"500000.0","contract":"0x4B294265720B09ca39BFBA18c7E368413c0f68eB","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on bsc:","timestamp":"2025-04-22T14:39:53.926Z"}
-{"balance":"499999.9","contract":"0xdce769b847a0a697239777d0b1c7dd33b6012ba0","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on arbitrum:","timestamp":"2025-04-22T14:39:54.476Z"}
-{"balance":"454852.0","contract":"0x351f59de4fedbdf7601f5592b93db3b9330c1c1d","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on polygon:","timestamp":"2025-04-22T14:39:54.864Z"}
-{"arbitrum":"499999.9","bsc":"500000.0","eth":"1500000.0","level":"info","message":"Token balances fetched for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b:","polygon":"454852.0","timestamp":"2025-04-22T14:39:54.864Z"}
-{"level":"info","message":"POST /api/chat/message","timestamp":"2025-04-22T14:39:57.793Z"}
-{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-22T14:39:57.928Z"}
-{"level":"info","message":"[IdentityService] Found 3 identities for user 1","timestamp":"2025-04-22T14:39:57.931Z"}
-{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-22T14:40:28.489Z"}
-{"level":"info","message":"[IdentityService] Found 3 identities for user 1","timestamp":"2025-04-22T14:40:28.493Z"}
-{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-22T14:40:55.368Z"}
-{"level":"info","message":"[IdentityService] Found 3 identities for user 1","timestamp":"2025-04-22T14:40:55.372Z"}
+{"level":"info","message":"GET /api/auth/check","timestamp":"2025-04-28T07:32:09.835Z"}
+{"cookie":{"expires":"2025-05-28T07:32:09.792Z","httpOnly":true,"originalMaxAge":2592000000,"path":"/","sameSite":"lax","secure":false},"guestId":"e9bcd9ebce01d5e1a1c7fafb4bf2c032","level":"info","message":"[SessionService] Saving session data:","timestamp":"2025-04-28T07:32:09.840Z"}
+{"level":"info","message":"GET /api/auth/check","timestamp":"2025-04-28T07:32:09.843Z"}
+{"cookie":{"expires":"2025-05-28T07:32:09.789Z","httpOnly":true,"originalMaxAge":2592000000,"path":"/","sameSite":"lax","secure":false},"guestId":"93409df821a0cfeea8d732b3299fab43","level":"info","message":"[SessionService] Saving session data:","timestamp":"2025-04-28T07:32:09.845Z"}
+{"level":"info","message":"Session saved successfully","timestamp":"2025-04-28T07:32:09.851Z"}
+{"level":"info","message":"Session saved successfully","timestamp":"2025-04-28T07:32:09.859Z"}
+{"level":"info","message":"GET /api/auth/check","timestamp":"2025-04-28T07:32:18.425Z"}
+{"level":"info","message":"GET /api/auth/check","timestamp":"2025-04-28T07:32:18.454Z"}
+{"level":"info","message":"POST /api/chat/guest-message","timestamp":"2025-04-28T07:32:21.700Z"}
+{"level":"info","message":"Received /guest-message request","timestamp":"2025-04-28T07:32:21.715Z"}
+{"filesCount":0,"guestId":"1745825541972-nwmi3pcpe","level":"info","message":"Saving guest message: b","timestamp":"2025-04-28T07:32:21.717Z"}
+{"level":"info","message":"Guest message saved with ID:","timestamp":"2025-04-28T07:32:21.732Z"}
+{"level":"info","message":"Session saved after guest message","timestamp":"2025-04-28T07:32:21.737Z"}
+{"level":"info","message":"POST /api/chat/guest-message","timestamp":"2025-04-28T07:32:34.187Z"}
+{"level":"info","message":"GET /api/auth/check","timestamp":"2025-04-28T07:34:48.491Z"}
+{"level":"info","message":"GET /api/auth/check","timestamp":"2025-04-28T07:34:48.508Z"}
+{"level":"info","message":"GET /api/auth/check","timestamp":"2025-04-28T07:34:48.518Z"}
+{"level":"info","message":"GET /api/auth/check","timestamp":"2025-04-28T07:36:52.321Z"}
+{"level":"info","message":"GET /api/auth/check","timestamp":"2025-04-28T07:36:52.331Z"}
+{"level":"info","message":"POST /api/chat/guest-message","timestamp":"2025-04-28T07:37:42.197Z"}
+{"level":"info","message":"Received /guest-message request","timestamp":"2025-04-28T07:37:42.208Z"}
+{"filesCount":1,"guestId":"1745825541972-nwmi3pcpe","level":"info","message":"Saving guest message: ьтб","timestamp":"2025-04-28T07:37:42.270Z"}
+{"level":"info","message":"Guest message saved with ID:","timestamp":"2025-04-28T07:37:42.359Z"}
+{"level":"info","message":"Session saved after guest message","timestamp":"2025-04-28T07:37:42.435Z"}
+{"level":"info","message":"POST /api/chat/guest-message","timestamp":"2025-04-28T07:37:57.226Z"}
+{"level":"info","message":"Received /guest-message request","timestamp":"2025-04-28T07:37:57.228Z"}
+{"filesCount":1,"guestId":"1745825541972-nwmi3pcpe","level":"info","message":"Saving guest message: (no text)","timestamp":"2025-04-28T07:37:57.300Z"}
+{"body":{"guestId":"1745825541972-nwmi3pcpe","language":"ru","message":""},"level":"error","message":"Error in /guest-message: null value in column \"content\" of relation \"guest_messages\" violates not-null constraint","stack":"error: null value in column \"content\" of relation \"guest_messages\" violates not-null constraint\n at /app/node_modules/pg-pool/index.js:45:11\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n at async /app/routes/chat.js:211:20","timestamp":"2025-04-28T07:37:57.316Z"}
+{"level":"info","message":"GET /api/auth/nonce?address=0xF45aa4917b3775bA37f48Aeb3dc1a943561e9e0B","timestamp":"2025-04-28T07:40:17.150Z"}
+{"level":"info","message":"Nonce d4b87d8a8d1ea2016b1e27e6192bb8f6 сохранен для адреса 0xF45aa4917b3775bA37f48Aeb3dc1a943561e9e0B","timestamp":"2025-04-28T07:40:17.159Z"}
+{"level":"info","message":"POST /api/auth/verify","timestamp":"2025-04-28T07:40:22.611Z"}
+{"level":"info","message":"[verify] Verifying signature for address: 0xF45aa4917b3775bA37f48Aeb3dc1a943561e9e0B","timestamp":"2025-04-28T07:40:22.613Z"}
+{"level":"info","message":"Checking admin role for address: 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-28T07:40:22.713Z"}
+{"address":"0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","balance":"500000.0","contract":"0x4B294265720B09ca39BFBA18c7E368413c0f68eB","hasTokens":true,"level":"info","message":"Token balance on bsc:","timestamp":"2025-04-28T07:40:23.856Z"}
+{"level":"info","message":"Found admin tokens on bsc","timestamp":"2025-04-28T07:40:23.857Z"}
+{"address":"0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","balance":"499999.9","contract":"0xdce769b847a0a697239777d0b1c7dd33b6012ba0","hasTokens":true,"level":"info","message":"Token balance on arbitrum:","timestamp":"2025-04-28T07:40:24.062Z"}
+{"level":"info","message":"Found admin tokens on arbitrum","timestamp":"2025-04-28T07:40:24.063Z"}
+{"address":"0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","balance":"1500000.0","contract":"0xd95a45fc46a7300e6022885afec3d618d7d3f27c","hasTokens":true,"level":"info","message":"Token balance on eth:","timestamp":"2025-04-28T07:40:24.064Z"}
+{"level":"info","message":"Found admin tokens on eth","timestamp":"2025-04-28T07:40:24.064Z"}
+{"address":"0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","balance":"454852.0","contract":"0x351f59de4fedbdf7601f5592b93db3b9330c1c1d","hasTokens":true,"level":"info","message":"Token balance on polygon:","timestamp":"2025-04-28T07:40:24.600Z"}
+{"level":"info","message":"Found admin tokens on polygon","timestamp":"2025-04-28T07:40:24.600Z"}
+{"balances":{"arbitrum":"499999.9","bsc":"500000.0","eth":"1500000.0","polygon":"454852.0"},"level":"info","message":"Admin role summary for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b:","networks":["bsc","arbitrum","eth","polygon"],"timestamp":"2025-04-28T07:40:24.600Z"}
+{"level":"info","message":"Admin role granted for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-28T07:40:24.600Z"}
+{"level":"info","message":"[verify] Found or created user 1 for wallet 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-28T07:40:24.600Z"}
+{"level":"info","message":"[IdentityService] Converting guest identity for user 1 to guest_user_mapping: 1745825541972-nwmi3pcpe","timestamp":"2025-04-28T07:40:24.601Z"}
+{"level":"info","message":"Checking admin tokens for address: 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-28T07:40:24.611Z"}
+{"level":"info","message":"Checking admin role for address: 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-28T07:40:24.611Z"}
+{"address":"0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","balance":"500000.0","contract":"0x4B294265720B09ca39BFBA18c7E368413c0f68eB","hasTokens":true,"level":"info","message":"Token balance on bsc:","timestamp":"2025-04-28T07:40:24.929Z"}
+{"level":"info","message":"Found admin tokens on bsc","timestamp":"2025-04-28T07:40:24.930Z"}
+{"address":"0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","balance":"1500000.0","contract":"0xd95a45fc46a7300e6022885afec3d618d7d3f27c","hasTokens":true,"level":"info","message":"Token balance on eth:","timestamp":"2025-04-28T07:40:25.118Z"}
+{"level":"info","message":"Found admin tokens on eth","timestamp":"2025-04-28T07:40:25.119Z"}
+{"address":"0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","balance":"454852.0","contract":"0x351f59de4fedbdf7601f5592b93db3b9330c1c1d","hasTokens":true,"level":"info","message":"Token balance on polygon:","timestamp":"2025-04-28T07:40:25.120Z"}
+{"level":"info","message":"Found admin tokens on polygon","timestamp":"2025-04-28T07:40:25.121Z"}
+{"address":"0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","balance":"499999.9","contract":"0xdce769b847a0a697239777d0b1c7dd33b6012ba0","hasTokens":true,"level":"info","message":"Token balance on arbitrum:","timestamp":"2025-04-28T07:40:25.265Z"}
+{"level":"info","message":"Found admin tokens on arbitrum","timestamp":"2025-04-28T07:40:25.265Z"}
+{"balances":{"arbitrum":"499999.9","bsc":"500000.0","eth":"1500000.0","polygon":"454852.0"},"level":"info","message":"Admin role summary for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b:","networks":["bsc","eth","polygon","arbitrum"],"timestamp":"2025-04-28T07:40:25.265Z"}
+{"level":"info","message":"Admin role granted for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-28T07:40:25.265Z"}
+{"level":"info","message":"Updated user 1 role to admin based on token holdings","timestamp":"2025-04-28T07:40:25.271Z"}
+{"address":"0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","authType":"wallet","authenticated":true,"cookie":{"expires":"2025-05-28T07:32:09.789Z","httpOnly":true,"originalMaxAge":2592000000,"path":"/","sameSite":"lax","secure":false},"guestId":"1745825541972-nwmi3pcpe","isAdmin":true,"level":"info","message":"[SessionService] Saving session data:","timestamp":"2025-04-28T07:40:25.274Z","userId":1}
+{"level":"info","message":"Session saved successfully","timestamp":"2025-04-28T07:40:25.276Z"}
+{"level":"info","message":"[linkGuestMessages] Starting for user 1 with guestId=1745825541972-nwmi3pcpe, previousGuestId=undefined","timestamp":"2025-04-28T07:40:25.277Z"}
+{"level":"info","message":"[processGuestMessagesWrapper] Processing messages: userId=1, guestId=1745825541972-nwmi3pcpe","timestamp":"2025-04-28T07:40:25.280Z"}
+{"level":"info","message":"Processing guest messages for user 1 with guest ID 1745825541972-nwmi3pcpe","timestamp":"2025-04-28T07:40:25.282Z"}
+{"level":"info","message":"Found 2 guest messages for guest ID 1745825541972-nwmi3pcpe","timestamp":"2025-04-28T07:40:25.285Z"}
+{"level":"info","message":"Created new conversation 7 for guest messages","timestamp":"2025-04-28T07:40:25.291Z"}
+{"level":"info","message":"Processing guest message ID 1: b","timestamp":"2025-04-28T07:40:25.291Z"}
+{"level":"info","message":"Saved user message with ID 13","timestamp":"2025-04-28T07:40:25.306Z"}
+{"level":"info","message":"Getting AI response for:","timestamp":"2025-04-28T07:40:25.306Z"}
+{"level":"info","message":"AI response received","timestamp":"2025-04-28T07:40:49.261Z"}
+{"level":"info","message":"Saved AI response with ID 14","timestamp":"2025-04-28T07:40:49.392Z"}
+{"level":"info","message":"Processing guest message ID 2: ьтб","timestamp":"2025-04-28T07:40:49.393Z"}
+{"level":"info","message":"Saved user message with ID 15","timestamp":"2025-04-28T07:40:49.396Z"}
+{"level":"info","message":"Getting AI response for:","timestamp":"2025-04-28T07:40:49.396Z"}
+{"level":"info","message":"AI response received","timestamp":"2025-04-28T07:40:58.133Z"}
+{"level":"info","message":"Saved AI response with ID 16","timestamp":"2025-04-28T07:40:58.137Z"}
+{"level":"info","message":"Deleted 2 processed guest messages for guest ID 1745825541972-nwmi3pcpe","timestamp":"2025-04-28T07:40:58.141Z"}
+{"level":"info","message":"Marked guest mapping as processed for guest ID 1745825541972-nwmi3pcpe","timestamp":"2025-04-28T07:40:58.145Z"}
+{"level":"info","message":"[processGuestMessagesWrapper] Processing messages: userId=1, guestId=537a3e77cd3bfc1d510624f9b9e28a74","timestamp":"2025-04-28T07:40:58.147Z"}
+{"level":"info","message":"Processing guest messages for user 1 with guest ID 537a3e77cd3bfc1d510624f9b9e28a74","timestamp":"2025-04-28T07:40:58.148Z"}
+{"level":"info","message":"Guest messages for guest ID 537a3e77cd3bfc1d510624f9b9e28a74 were already processed.","timestamp":"2025-04-28T07:40:58.149Z"}
+{"level":"info","message":"[processGuestMessagesWrapper] Processing messages: userId=1, guestId=40f55fa54e2afc0586f0d21a91177b4c","timestamp":"2025-04-28T07:40:58.151Z"}
+{"level":"info","message":"Processing guest messages for user 1 with guest ID 40f55fa54e2afc0586f0d21a91177b4c","timestamp":"2025-04-28T07:40:58.151Z"}
+{"level":"info","message":"Guest messages for guest ID 40f55fa54e2afc0586f0d21a91177b4c were already processed.","timestamp":"2025-04-28T07:40:58.152Z"}
+{"level":"info","message":"[processGuestMessagesWrapper] Processing messages: userId=1, guestId=0d2941cbfb7f6f0edd08800f87ef34ec","timestamp":"2025-04-28T07:40:58.154Z"}
+{"level":"info","message":"Processing guest messages for user 1 with guest ID 0d2941cbfb7f6f0edd08800f87ef34ec","timestamp":"2025-04-28T07:40:58.154Z"}
+{"level":"info","message":"Guest messages for guest ID 0d2941cbfb7f6f0edd08800f87ef34ec were already processed.","timestamp":"2025-04-28T07:40:58.155Z"}
+{"level":"info","message":"[processGuestMessagesWrapper] Processing messages: userId=1, guestId=cd835088c3ef7c53928f0440d66834a3","timestamp":"2025-04-28T07:40:58.157Z"}
+{"level":"info","message":"Processing guest messages for user 1 with guest ID cd835088c3ef7c53928f0440d66834a3","timestamp":"2025-04-28T07:40:58.157Z"}
+{"level":"info","message":"Guest messages for guest ID cd835088c3ef7c53928f0440d66834a3 were already processed.","timestamp":"2025-04-28T07:40:58.158Z"}
+{"level":"info","message":"[processGuestMessagesWrapper] Processing messages: userId=1, guestId=96168b8c8e026a644d818b1e45d304e0","timestamp":"2025-04-28T07:40:58.160Z"}
+{"level":"info","message":"Processing guest messages for user 1 with guest ID 96168b8c8e026a644d818b1e45d304e0","timestamp":"2025-04-28T07:40:58.160Z"}
+{"level":"info","message":"Guest messages for guest ID 96168b8c8e026a644d818b1e45d304e0 were already processed.","timestamp":"2025-04-28T07:40:58.161Z"}
+{"level":"info","message":"[processGuestMessagesWrapper] Processing messages: userId=1, guestId=d2e47fd9e6fdbce7758bf586904023ea","timestamp":"2025-04-28T07:40:58.163Z"}
+{"level":"info","message":"Processing guest messages for user 1 with guest ID d2e47fd9e6fdbce7758bf586904023ea","timestamp":"2025-04-28T07:40:58.163Z"}
+{"level":"info","message":"Guest messages for guest ID d2e47fd9e6fdbce7758bf586904023ea were already processed.","timestamp":"2025-04-28T07:40:58.164Z"}
+{"level":"info","message":"[processGuestMessagesWrapper] Processing messages: userId=1, guestId=c8aa02a9398569e9ac05bb300f93340f","timestamp":"2025-04-28T07:40:58.166Z"}
+{"level":"info","message":"Processing guest messages for user 1 with guest ID c8aa02a9398569e9ac05bb300f93340f","timestamp":"2025-04-28T07:40:58.167Z"}
+{"level":"info","message":"Guest messages for guest ID c8aa02a9398569e9ac05bb300f93340f were already processed.","timestamp":"2025-04-28T07:40:58.176Z"}
+{"address":"0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","authType":"wallet","authenticated":true,"cookie":{"expires":"2025-05-28T07:32:09.789Z","httpOnly":true,"originalMaxAge":2592000000,"path":"/","sameSite":"lax","secure":false},"guestId":"1745825541972-nwmi3pcpe","isAdmin":true,"level":"info","message":"[SessionService] Saving session data:","processedGuestIds":["1745825541972-nwmi3pcpe","537a3e77cd3bfc1d510624f9b9e28a74","40f55fa54e2afc0586f0d21a91177b4c","0d2941cbfb7f6f0edd08800f87ef34ec","cd835088c3ef7c53928f0440d66834a3","96168b8c8e026a644d818b1e45d304e0","d2e47fd9e6fdbce7758bf586904023ea","c8aa02a9398569e9ac05bb300f93340f"],"timestamp":"2025-04-28T07:40:58.178Z","userId":1}
+{"level":"info","message":"Session saved successfully","timestamp":"2025-04-28T07:40:58.181Z"}
+{"level":"info","message":"GET /api/auth/check","timestamp":"2025-04-28T07:40:58.196Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T07:40:58.199Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T07:40:58.214Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T07:40:58.220Z"}
+{"level":"info","message":"GET /api/auth/check","timestamp":"2025-04-28T07:40:58.233Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T07:40:58.234Z"}
+{"level":"info","message":"GET /api/tokens/balances?address=0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-28T07:40:58.243Z"}
+{"level":"info","message":"Fetching token balances for address: 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-28T07:40:58.244Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T07:40:58.249Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T07:40:58.252Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T07:40:58.272Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T07:40:58.274Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T07:40:58.287Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T07:40:58.289Z"}
+{"level":"info","message":"GET /api/auth/check","timestamp":"2025-04-28T07:40:59.273Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T07:40:59.275Z"}
+{"balance":"1500000.0","contract":"0xd95a45fc46a7300e6022885afec3d618d7d3f27c","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on eth:","timestamp":"2025-04-28T07:40:59.290Z"}
+{"level":"info","message":"GET /api/chat/history?count_only=true","timestamp":"2025-04-28T07:40:59.291Z"}
+{"level":"info","message":"Processing guest messages for user 1 with guest ID 1745825541972-nwmi3pcpe","timestamp":"2025-04-28T07:40:59.292Z"}
+{"level":"info","message":"Guest messages for guest ID 1745825541972-nwmi3pcpe were already processed.","timestamp":"2025-04-28T07:40:59.294Z"}
+{"level":"info","message":"GET /api/chat/history?offset=0&limit=30","timestamp":"2025-04-28T07:40:59.313Z"}
+{"balance":"500000.0","contract":"0x4B294265720B09ca39BFBA18c7E368413c0f68eB","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on bsc:","timestamp":"2025-04-28T07:41:00.338Z"}
+{"balance":"499999.9","contract":"0xdce769b847a0a697239777d0b1c7dd33b6012ba0","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on arbitrum:","timestamp":"2025-04-28T07:41:01.387Z"}
+{"balance":"454852.0","contract":"0x351f59de4fedbdf7601f5592b93db3b9330c1c1d","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on polygon:","timestamp":"2025-04-28T07:41:02.621Z"}
+{"arbitrum":"499999.9","bsc":"500000.0","eth":"1500000.0","level":"info","message":"Token balances fetched for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b:","polygon":"454852.0","timestamp":"2025-04-28T07:41:02.621Z"}
+{"level":"info","message":"GET /api/tokens/balances?address=0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-28T07:41:02.632Z"}
+{"level":"info","message":"Fetching token balances for address: 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-28T07:41:02.633Z"}
+{"balance":"1500000.0","contract":"0xd95a45fc46a7300e6022885afec3d618d7d3f27c","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on eth:","timestamp":"2025-04-28T07:41:03.127Z"}
+{"balance":"500000.0","contract":"0x4B294265720B09ca39BFBA18c7E368413c0f68eB","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on bsc:","timestamp":"2025-04-28T07:41:03.478Z"}
+{"balance":"499999.9","contract":"0xdce769b847a0a697239777d0b1c7dd33b6012ba0","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on arbitrum:","timestamp":"2025-04-28T07:41:04.199Z"}
+{"balance":"454852.0","contract":"0x351f59de4fedbdf7601f5592b93db3b9330c1c1d","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on polygon:","timestamp":"2025-04-28T07:41:04.654Z"}
+{"arbitrum":"499999.9","bsc":"500000.0","eth":"1500000.0","level":"info","message":"Token balances fetched for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b:","polygon":"454852.0","timestamp":"2025-04-28T07:41:04.654Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T07:41:28.385Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T07:41:28.387Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T07:41:58.428Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T07:41:58.430Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T07:42:29.274Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T07:42:29.276Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T07:42:59.361Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T07:42:59.366Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T07:43:29.404Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T07:43:29.407Z"}
+{"level":"info","message":"POST /api/auth/logout","timestamp":"2025-04-28T07:43:37.461Z"}
+{"address":null,"authType":null,"authenticated":false,"cookie":{"expires":"2025-05-28T07:32:09.789Z","httpOnly":true,"originalMaxAge":2592000000,"path":"/","sameSite":"lax","secure":false},"email":null,"guestId":null,"isAdmin":false,"level":"info","message":"[SessionService] Saving session data:","pendingEmail":null,"previousGuestId":null,"processedGuestIds":[],"telegramId":null,"timestamp":"2025-04-28T07:43:37.466Z","userId":null}
+{"level":"info","message":"Session saved successfully","timestamp":"2025-04-28T07:43:37.469Z"}
+{"level":"info","message":"GET /api/auth/check","timestamp":"2025-04-28T07:43:37.482Z"}
+{"cookie":{"expires":"2025-05-28T07:43:37.482Z","httpOnly":true,"originalMaxAge":2592000000,"path":"/","sameSite":"lax","secure":false},"guestId":"57bd7aad3bea6d74ba4cd97e7a55fd22","level":"info","message":"[SessionService] Saving session data:","timestamp":"2025-04-28T07:43:37.483Z"}
+{"level":"info","message":"Session saved successfully","timestamp":"2025-04-28T07:43:37.487Z"}
+{"level":"info","message":"POST /api/chat/guest-message","timestamp":"2025-04-28T07:43:49.286Z"}
+{"level":"info","message":"Received /guest-message request","timestamp":"2025-04-28T07:43:49.289Z"}
+{"filesCount":1,"guestId":"1745826229509-a9cc49arg","level":"info","message":"Saving guest message: (no text)","timestamp":"2025-04-28T07:43:49.313Z"}
+{"body":{"guestId":"1745826229509-a9cc49arg","language":"ru","message":""},"level":"error","message":"Error in /guest-message: null value in column \"content\" of relation \"guest_messages\" violates not-null constraint","stack":"error: null value in column \"content\" of relation \"guest_messages\" violates not-null constraint\n at /app/node_modules/pg-pool/index.js:45:11\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n at async /app/routes/chat.js:211:20","timestamp":"2025-04-28T07:43:49.319Z"}
+{"level":"info","message":"GET /api/auth/check","timestamp":"2025-04-28T07:52:49.551Z"}
+{"level":"info","message":"GET /api/auth/check","timestamp":"2025-04-28T07:52:49.565Z"}
+{"level":"info","message":"GET /api/auth/check","timestamp":"2025-04-28T07:52:49.576Z"}
+{"level":"info","message":"POST /api/chat/guest-message","timestamp":"2025-04-28T07:52:57.467Z"}
+{"level":"info","message":"Received /guest-message request","timestamp":"2025-04-28T07:52:57.475Z"}
+{"filesCount":1,"guestId":"1745826229509-a9cc49arg","level":"info","message":"Saving guest message: (no text)","timestamp":"2025-04-28T07:52:57.517Z"}
+{"level":"info","message":"Guest message saved with ID:","timestamp":"2025-04-28T07:52:57.522Z"}
+{"level":"info","message":"Session saved after guest message","timestamp":"2025-04-28T07:52:57.525Z"}
+{"level":"info","message":"GET /api/auth/check","timestamp":"2025-04-28T07:54:14.933Z"}
+{"level":"info","message":"GET /api/auth/check","timestamp":"2025-04-28T07:54:14.954Z"}
+{"level":"info","message":"GET /api/auth/check","timestamp":"2025-04-28T07:54:14.969Z"}
+{"level":"info","message":"POST /api/chat/guest-message","timestamp":"2025-04-28T07:54:41.343Z"}
+{"level":"info","message":"Received /guest-message request","timestamp":"2025-04-28T07:54:41.355Z"}
+{"filesCount":1,"guestId":"1745826229509-a9cc49arg","level":"info","message":"Saving guest message: (no text)","timestamp":"2025-04-28T07:54:41.401Z"}
+{"level":"info","message":"Guest message saved with ID:","timestamp":"2025-04-28T07:54:41.413Z"}
+{"level":"info","message":"Session saved after guest message","timestamp":"2025-04-28T07:54:41.417Z"}
+{"level":"info","message":"GET /api/auth/nonce?address=0xF45aa4917b3775bA37f48Aeb3dc1a943561e9e0B","timestamp":"2025-04-28T07:54:43.896Z"}
+{"level":"info","message":"Nonce 5d15f5c1c5e6c3a6b361ac1f2b09aceb сохранен для адреса 0xF45aa4917b3775bA37f48Aeb3dc1a943561e9e0B","timestamp":"2025-04-28T07:54:43.904Z"}
+{"level":"info","message":"POST /api/auth/verify","timestamp":"2025-04-28T07:54:47.513Z"}
+{"level":"info","message":"[verify] Verifying signature for address: 0xF45aa4917b3775bA37f48Aeb3dc1a943561e9e0B","timestamp":"2025-04-28T07:54:47.515Z"}
+{"level":"info","message":"Checking admin role for address: 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-28T07:54:47.610Z"}
+{"address":"0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","balance":"500000.0","contract":"0x4B294265720B09ca39BFBA18c7E368413c0f68eB","hasTokens":true,"level":"info","message":"Token balance on bsc:","timestamp":"2025-04-28T07:54:48.849Z"}
+{"level":"info","message":"Found admin tokens on bsc","timestamp":"2025-04-28T07:54:48.849Z"}
+{"address":"0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","balance":"1500000.0","contract":"0xd95a45fc46a7300e6022885afec3d618d7d3f27c","hasTokens":true,"level":"info","message":"Token balance on eth:","timestamp":"2025-04-28T07:54:49.135Z"}
+{"level":"info","message":"Found admin tokens on eth","timestamp":"2025-04-28T07:54:49.135Z"}
+{"address":"0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","balance":"499999.9","contract":"0xdce769b847a0a697239777d0b1c7dd33b6012ba0","hasTokens":true,"level":"info","message":"Token balance on arbitrum:","timestamp":"2025-04-28T07:54:49.161Z"}
+{"level":"info","message":"Found admin tokens on arbitrum","timestamp":"2025-04-28T07:54:49.162Z"}
+{"address":"0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","balance":"454852.0","contract":"0x351f59de4fedbdf7601f5592b93db3b9330c1c1d","hasTokens":true,"level":"info","message":"Token balance on polygon:","timestamp":"2025-04-28T07:54:49.536Z"}
+{"level":"info","message":"Found admin tokens on polygon","timestamp":"2025-04-28T07:54:49.536Z"}
+{"balances":{"arbitrum":"499999.9","bsc":"500000.0","eth":"1500000.0","polygon":"454852.0"},"level":"info","message":"Admin role summary for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b:","networks":["bsc","eth","arbitrum","polygon"],"timestamp":"2025-04-28T07:54:49.537Z"}
+{"level":"info","message":"Admin role granted for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-28T07:54:49.537Z"}
+{"level":"info","message":"[verify] Found or created user 1 for wallet 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-28T07:54:49.537Z"}
+{"level":"info","message":"[IdentityService] Converting guest identity for user 1 to guest_user_mapping: 1745826229509-a9cc49arg","timestamp":"2025-04-28T07:54:49.538Z"}
+{"level":"info","message":"Checking admin tokens for address: 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-28T07:54:49.548Z"}
+{"level":"info","message":"Checking admin role for address: 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-28T07:54:49.548Z"}
+{"address":"0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","balance":"500000.0","contract":"0x4B294265720B09ca39BFBA18c7E368413c0f68eB","hasTokens":true,"level":"info","message":"Token balance on bsc:","timestamp":"2025-04-28T07:54:50.025Z"}
+{"level":"info","message":"Found admin tokens on bsc","timestamp":"2025-04-28T07:54:50.026Z"}
+{"address":"0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","balance":"1500000.0","contract":"0xd95a45fc46a7300e6022885afec3d618d7d3f27c","hasTokens":true,"level":"info","message":"Token balance on eth:","timestamp":"2025-04-28T07:54:50.166Z"}
+{"level":"info","message":"Found admin tokens on eth","timestamp":"2025-04-28T07:54:50.167Z"}
+{"address":"0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","balance":"454852.0","contract":"0x351f59de4fedbdf7601f5592b93db3b9330c1c1d","hasTokens":true,"level":"info","message":"Token balance on polygon:","timestamp":"2025-04-28T07:54:50.168Z"}
+{"level":"info","message":"Found admin tokens on polygon","timestamp":"2025-04-28T07:54:50.168Z"}
+{"address":"0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","balance":"499999.9","contract":"0xdce769b847a0a697239777d0b1c7dd33b6012ba0","hasTokens":true,"level":"info","message":"Token balance on arbitrum:","timestamp":"2025-04-28T07:54:50.401Z"}
+{"level":"info","message":"Found admin tokens on arbitrum","timestamp":"2025-04-28T07:54:50.401Z"}
+{"balances":{"arbitrum":"499999.9","bsc":"500000.0","eth":"1500000.0","polygon":"454852.0"},"level":"info","message":"Admin role summary for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b:","networks":["bsc","eth","polygon","arbitrum"],"timestamp":"2025-04-28T07:54:50.401Z"}
+{"level":"info","message":"Admin role granted for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-28T07:54:50.401Z"}
+{"level":"info","message":"Updated user 1 role to admin based on token holdings","timestamp":"2025-04-28T07:54:50.406Z"}
+{"address":"0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","authType":"wallet","authenticated":true,"cookie":{"expires":"2025-05-28T07:43:49.320Z","httpOnly":true,"originalMaxAge":2592000000,"path":"/","sameSite":"lax","secure":false},"guestId":"1745826229509-a9cc49arg","isAdmin":true,"level":"info","message":"[SessionService] Saving session data:","timestamp":"2025-04-28T07:54:50.408Z","userId":1}
+{"level":"info","message":"Session saved successfully","timestamp":"2025-04-28T07:54:50.413Z"}
+{"level":"info","message":"[linkGuestMessages] Starting for user 1 with guestId=1745826229509-a9cc49arg, previousGuestId=undefined","timestamp":"2025-04-28T07:54:50.414Z"}
+{"level":"info","message":"[processGuestMessagesWrapper] Processing messages: userId=1, guestId=1745826229509-a9cc49arg","timestamp":"2025-04-28T07:54:50.418Z"}
+{"level":"info","message":"Processing guest messages for user 1 with guest ID 1745826229509-a9cc49arg","timestamp":"2025-04-28T07:54:50.419Z"}
+{"level":"info","message":"Found 2 guest messages for guest ID 1745826229509-a9cc49arg","timestamp":"2025-04-28T07:54:50.423Z"}
+{"level":"info","message":"Created new conversation 8 for guest messages","timestamp":"2025-04-28T07:54:50.429Z"}
+{"level":"info","message":"Processing guest message ID 5: [Файл: image (33).png]","timestamp":"2025-04-28T07:54:50.430Z"}
+{"level":"info","message":"Saved user message with ID 17","timestamp":"2025-04-28T07:54:50.442Z"}
+{"level":"info","message":"Getting AI response for:","timestamp":"2025-04-28T07:54:50.443Z"}
+{"level":"info","message":"AI response received","timestamp":"2025-04-28T07:55:18.654Z"}
+{"level":"info","message":"Saved AI response with ID 18","timestamp":"2025-04-28T07:55:18.710Z"}
+{"level":"info","message":"Processing guest message ID 6: [Файл: image (33).png]","timestamp":"2025-04-28T07:55:18.711Z"}
+{"level":"info","message":"Saved user message with ID 19","timestamp":"2025-04-28T07:55:18.713Z"}
+{"level":"info","message":"Getting AI response for:","timestamp":"2025-04-28T07:55:18.714Z"}
+{"level":"info","message":"AI response received","timestamp":"2025-04-28T07:55:29.850Z"}
+{"level":"info","message":"Saved AI response with ID 20","timestamp":"2025-04-28T07:55:29.869Z"}
+{"level":"info","message":"Deleted 2 processed guest messages for guest ID 1745826229509-a9cc49arg","timestamp":"2025-04-28T07:55:29.874Z"}
+{"level":"info","message":"Marked guest mapping as processed for guest ID 1745826229509-a9cc49arg","timestamp":"2025-04-28T07:55:29.878Z"}
+{"level":"info","message":"[processGuestMessagesWrapper] Processing messages: userId=1, guestId=1745825541972-nwmi3pcpe","timestamp":"2025-04-28T07:55:29.880Z"}
+{"level":"info","message":"Processing guest messages for user 1 with guest ID 1745825541972-nwmi3pcpe","timestamp":"2025-04-28T07:55:29.881Z"}
+{"level":"info","message":"Guest messages for guest ID 1745825541972-nwmi3pcpe were already processed.","timestamp":"2025-04-28T07:55:29.882Z"}
+{"level":"info","message":"[processGuestMessagesWrapper] Processing messages: userId=1, guestId=537a3e77cd3bfc1d510624f9b9e28a74","timestamp":"2025-04-28T07:55:29.885Z"}
+{"level":"info","message":"Processing guest messages for user 1 with guest ID 537a3e77cd3bfc1d510624f9b9e28a74","timestamp":"2025-04-28T07:55:29.885Z"}
+{"level":"info","message":"Guest messages for guest ID 537a3e77cd3bfc1d510624f9b9e28a74 were already processed.","timestamp":"2025-04-28T07:55:29.887Z"}
+{"level":"info","message":"[processGuestMessagesWrapper] Processing messages: userId=1, guestId=40f55fa54e2afc0586f0d21a91177b4c","timestamp":"2025-04-28T07:55:29.889Z"}
+{"level":"info","message":"Processing guest messages for user 1 with guest ID 40f55fa54e2afc0586f0d21a91177b4c","timestamp":"2025-04-28T07:55:29.890Z"}
+{"level":"info","message":"Guest messages for guest ID 40f55fa54e2afc0586f0d21a91177b4c were already processed.","timestamp":"2025-04-28T07:55:29.892Z"}
+{"level":"info","message":"[processGuestMessagesWrapper] Processing messages: userId=1, guestId=0d2941cbfb7f6f0edd08800f87ef34ec","timestamp":"2025-04-28T07:55:29.895Z"}
+{"level":"info","message":"Processing guest messages for user 1 with guest ID 0d2941cbfb7f6f0edd08800f87ef34ec","timestamp":"2025-04-28T07:55:29.895Z"}
+{"level":"info","message":"Guest messages for guest ID 0d2941cbfb7f6f0edd08800f87ef34ec were already processed.","timestamp":"2025-04-28T07:55:29.897Z"}
+{"level":"info","message":"[processGuestMessagesWrapper] Processing messages: userId=1, guestId=cd835088c3ef7c53928f0440d66834a3","timestamp":"2025-04-28T07:55:29.899Z"}
+{"level":"info","message":"Processing guest messages for user 1 with guest ID cd835088c3ef7c53928f0440d66834a3","timestamp":"2025-04-28T07:55:29.900Z"}
+{"level":"info","message":"Guest messages for guest ID cd835088c3ef7c53928f0440d66834a3 were already processed.","timestamp":"2025-04-28T07:55:29.902Z"}
+{"level":"info","message":"[processGuestMessagesWrapper] Processing messages: userId=1, guestId=96168b8c8e026a644d818b1e45d304e0","timestamp":"2025-04-28T07:55:29.904Z"}
+{"level":"info","message":"Processing guest messages for user 1 with guest ID 96168b8c8e026a644d818b1e45d304e0","timestamp":"2025-04-28T07:55:29.905Z"}
+{"level":"info","message":"Guest messages for guest ID 96168b8c8e026a644d818b1e45d304e0 were already processed.","timestamp":"2025-04-28T07:55:29.906Z"}
+{"level":"info","message":"[processGuestMessagesWrapper] Processing messages: userId=1, guestId=d2e47fd9e6fdbce7758bf586904023ea","timestamp":"2025-04-28T07:55:29.909Z"}
+{"level":"info","message":"Processing guest messages for user 1 with guest ID d2e47fd9e6fdbce7758bf586904023ea","timestamp":"2025-04-28T07:55:29.909Z"}
+{"level":"info","message":"Guest messages for guest ID d2e47fd9e6fdbce7758bf586904023ea were already processed.","timestamp":"2025-04-28T07:55:29.911Z"}
+{"level":"info","message":"[processGuestMessagesWrapper] Processing messages: userId=1, guestId=c8aa02a9398569e9ac05bb300f93340f","timestamp":"2025-04-28T07:55:29.913Z"}
+{"level":"info","message":"Processing guest messages for user 1 with guest ID c8aa02a9398569e9ac05bb300f93340f","timestamp":"2025-04-28T07:55:29.914Z"}
+{"level":"info","message":"Guest messages for guest ID c8aa02a9398569e9ac05bb300f93340f were already processed.","timestamp":"2025-04-28T07:55:29.915Z"}
+{"address":"0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","authType":"wallet","authenticated":true,"cookie":{"expires":"2025-05-28T07:43:49.320Z","httpOnly":true,"originalMaxAge":2592000000,"path":"/","sameSite":"lax","secure":false},"guestId":"1745826229509-a9cc49arg","isAdmin":true,"level":"info","message":"[SessionService] Saving session data:","processedGuestIds":["1745826229509-a9cc49arg","1745825541972-nwmi3pcpe","537a3e77cd3bfc1d510624f9b9e28a74","40f55fa54e2afc0586f0d21a91177b4c","0d2941cbfb7f6f0edd08800f87ef34ec","cd835088c3ef7c53928f0440d66834a3","96168b8c8e026a644d818b1e45d304e0","d2e47fd9e6fdbce7758bf586904023ea","c8aa02a9398569e9ac05bb300f93340f"],"timestamp":"2025-04-28T07:55:29.918Z","userId":1}
+{"level":"info","message":"Session saved successfully","timestamp":"2025-04-28T07:55:29.922Z"}
+{"level":"info","message":"GET /api/auth/check","timestamp":"2025-04-28T07:55:29.942Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T07:55:29.946Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T07:55:29.965Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T07:55:29.971Z"}
+{"level":"info","message":"GET /api/tokens/balances?address=0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-28T07:55:29.981Z"}
+{"level":"info","message":"Fetching token balances for address: 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-28T07:55:29.983Z"}
+{"level":"info","message":"GET /api/auth/check","timestamp":"2025-04-28T07:55:29.990Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T07:55:29.992Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T07:55:30.014Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T07:55:30.020Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T07:55:30.036Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T07:55:30.039Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T07:55:30.053Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T07:55:30.055Z"}
+{"level":"info","message":"GET /api/auth/check","timestamp":"2025-04-28T07:55:31.120Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T07:55:31.122Z"}
+{"level":"info","message":"GET /api/chat/history?count_only=true","timestamp":"2025-04-28T07:55:31.141Z"}
+{"level":"info","message":"Processing guest messages for user 1 with guest ID 1745826229509-a9cc49arg","timestamp":"2025-04-28T07:55:31.143Z"}
+{"level":"info","message":"Guest messages for guest ID 1745826229509-a9cc49arg were already processed.","timestamp":"2025-04-28T07:55:31.146Z"}
+{"level":"info","message":"GET /api/chat/history?offset=0&limit=30","timestamp":"2025-04-28T07:55:31.190Z"}
+{"balance":"1500000.0","contract":"0xd95a45fc46a7300e6022885afec3d618d7d3f27c","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on eth:","timestamp":"2025-04-28T07:55:31.257Z"}
+{"balance":"500000.0","contract":"0x4B294265720B09ca39BFBA18c7E368413c0f68eB","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on bsc:","timestamp":"2025-04-28T07:55:32.213Z"}
+{"balance":"499999.9","contract":"0xdce769b847a0a697239777d0b1c7dd33b6012ba0","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on arbitrum:","timestamp":"2025-04-28T07:55:33.277Z"}
+{"balance":"454852.0","contract":"0x351f59de4fedbdf7601f5592b93db3b9330c1c1d","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on polygon:","timestamp":"2025-04-28T07:55:34.729Z"}
+{"arbitrum":"499999.9","bsc":"500000.0","eth":"1500000.0","level":"info","message":"Token balances fetched for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b:","polygon":"454852.0","timestamp":"2025-04-28T07:55:34.729Z"}
+{"level":"info","message":"GET /api/tokens/balances?address=0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-28T07:55:34.739Z"}
+{"level":"info","message":"Fetching token balances for address: 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-28T07:55:34.740Z"}
+{"balance":"1500000.0","contract":"0xd95a45fc46a7300e6022885afec3d618d7d3f27c","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on eth:","timestamp":"2025-04-28T07:55:33.813Z"}
+{"balance":"500000.0","contract":"0x4B294265720B09ca39BFBA18c7E368413c0f68eB","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on bsc:","timestamp":"2025-04-28T07:55:34.296Z"}
+{"balance":"499999.9","contract":"0xdce769b847a0a697239777d0b1c7dd33b6012ba0","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on arbitrum:","timestamp":"2025-04-28T07:55:34.927Z"}
+{"balance":"454852.0","contract":"0x351f59de4fedbdf7601f5592b93db3b9330c1c1d","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on polygon:","timestamp":"2025-04-28T07:55:35.405Z"}
+{"arbitrum":"499999.9","bsc":"500000.0","eth":"1500000.0","level":"info","message":"Token balances fetched for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b:","polygon":"454852.0","timestamp":"2025-04-28T07:55:35.405Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T07:56:00.693Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T07:56:00.697Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T07:56:30.780Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T07:56:30.783Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T07:57:00.259Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T07:57:00.262Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T07:57:29.455Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T07:57:29.459Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T07:58:26.420Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T07:58:26.425Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T07:59:26.540Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T07:59:26.545Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T08:00:26.734Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T08:00:26.738Z"}
+{"level":"info","message":"GET /api/tokens/balances?address=0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-28T08:00:29.857Z"}
+{"level":"info","message":"Fetching token balances for address: 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-28T08:00:29.858Z"}
+{"balance":"1500000.0","contract":"0xd95a45fc46a7300e6022885afec3d618d7d3f27c","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on eth:","timestamp":"2025-04-28T08:00:31.568Z"}
+{"balance":"500000.0","contract":"0x4B294265720B09ca39BFBA18c7E368413c0f68eB","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on bsc:","timestamp":"2025-04-28T08:00:33.054Z"}
+{"balance":"499999.9","contract":"0xdce769b847a0a697239777d0b1c7dd33b6012ba0","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on arbitrum:","timestamp":"2025-04-28T08:00:34.652Z"}
+{"balance":"454852.0","contract":"0x351f59de4fedbdf7601f5592b93db3b9330c1c1d","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on polygon:","timestamp":"2025-04-28T08:00:36.118Z"}
+{"arbitrum":"499999.9","bsc":"500000.0","eth":"1500000.0","level":"info","message":"Token balances fetched for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b:","polygon":"454852.0","timestamp":"2025-04-28T08:00:36.119Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T08:01:26.826Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T08:01:26.831Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T08:01:42.963Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T08:01:42.966Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T08:02:00.017Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T08:02:00.019Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T08:02:29.448Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T08:02:29.451Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T08:03:27.096Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T08:03:27.100Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T08:04:27.322Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T08:04:27.326Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T08:04:48.815Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T08:04:48.820Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T08:05:00.522Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T08:05:00.525Z"}
+{"level":"info","message":"GET /api/tokens/balances?address=0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-28T08:05:30.632Z"}
+{"level":"info","message":"Fetching token balances for address: 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-28T08:05:30.633Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T08:05:30.636Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T08:05:30.641Z"}
+{"balance":"1500000.0","contract":"0xd95a45fc46a7300e6022885afec3d618d7d3f27c","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on eth:","timestamp":"2025-04-28T08:05:31.860Z"}
+{"balance":"500000.0","contract":"0x4B294265720B09ca39BFBA18c7E368413c0f68eB","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on bsc:","timestamp":"2025-04-28T08:05:32.965Z"}
+{"balance":"499999.9","contract":"0xdce769b847a0a697239777d0b1c7dd33b6012ba0","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on arbitrum:","timestamp":"2025-04-28T08:05:34.262Z"}
+{"balance":"454852.0","contract":"0x351f59de4fedbdf7601f5592b93db3b9330c1c1d","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on polygon:","timestamp":"2025-04-28T08:05:34.752Z"}
+{"arbitrum":"499999.9","bsc":"500000.0","eth":"1500000.0","level":"info","message":"Token balances fetched for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b:","polygon":"454852.0","timestamp":"2025-04-28T08:05:34.752Z"}
+{"level":"info","message":"Migration 000_session_table.sql executed successfully","timestamp":"2025-04-28T08:05:58.097Z"}
+{"level":"info","message":"Migration 001_initial_schema.sql executed successfully","timestamp":"2025-04-28T08:05:58.118Z"}
+{"level":"info","message":"Migration 002_access_roles.sql executed successfully","timestamp":"2025-04-28T08:05:58.170Z"}
+{"level":"info","message":"Migration 003_user_identities.sql executed successfully","timestamp":"2025-04-28T08:05:58.194Z"}
+{"level":"info","message":"Migration 004_conversations.sql executed successfully","timestamp":"2025-04-28T08:05:58.209Z"}
+{"level":"info","message":"Migration 005_messages.sql executed successfully","timestamp":"2025-04-28T08:05:58.237Z"}
+{"level":"info","message":"Migration 006_guest_messages.sql executed successfully","timestamp":"2025-04-28T08:05:58.264Z"}
+{"level":"info","message":"Migration 007_user_preferences.sql executed successfully","timestamp":"2025-04-28T08:05:58.287Z"}
+{"level":"info","message":"Migration 008_update_messages_structure.sql executed successfully","timestamp":"2025-04-28T08:05:58.295Z"}
+{"level":"info","message":"Migration 009_nonces_table.sql executed successfully","timestamp":"2025-04-28T08:05:58.312Z"}
+{"level":"info","message":"Migration 010_cleanup_roles.sql executed successfully","timestamp":"2025-04-28T08:05:58.330Z"}
+{"level":"info","message":"Migration 011_cleanup_guest_relations.sql executed successfully","timestamp":"2025-04-28T08:05:58.343Z"}
+{"level":"info","message":"Migration 012_verification_codes.sql executed successfully","timestamp":"2025-04-28T08:05:58.360Z"}
+{"level":"info","message":"Migration 013_update_verification_codes.sql executed successfully","timestamp":"2025-04-28T08:05:58.365Z"}
+{"level":"info","message":"Migration 014_identity_system_refactor.sql executed successfully","timestamp":"2025-04-28T08:05:58.395Z"}
+{"level":"info","message":"Migration 015_users_table_refactor.sql executed successfully","timestamp":"2025-04-28T08:05:58.403Z"}
+{"level":"info","message":"Migration 016_fix_duplicate_identities.sql executed successfully","timestamp":"2025-04-28T08:05:58.422Z"}
+{"level":"info","message":"Migration 017_add_attachments_column.sql executed successfully","timestamp":"2025-04-28T08:05:58.427Z"}
+{"level":"info","message":"Migration fix_duplicates_manual.sql executed successfully","timestamp":"2025-04-28T08:05:58.436Z"}
+{"level":"info","message":"Function link_guest_messages.sql executed successfully","timestamp":"2025-04-28T08:05:58.441Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T08:06:27.645Z"}
+{"level":"info","message":"GET /api/auth/check","timestamp":"2025-04-28T08:06:28.237Z"}
+{"cookie":{"expires":"2025-05-28T08:06:27.646Z","httpOnly":true,"originalMaxAge":2592000000,"path":"/","sameSite":"lax","secure":false},"guestId":"67d53b3fc293c8b12d38b621f6341a28","level":"info","message":"[SessionService] Saving session data:","timestamp":"2025-04-28T08:06:28.238Z"}
+{"level":"info","message":"Session saved successfully","timestamp":"2025-04-28T08:06:28.241Z"}
+{"level":"info","message":"GET /api/auth/check","timestamp":"2025-04-28T08:06:28.261Z"}
+{"level":"info","message":"POST /api/chat/guest-message","timestamp":"2025-04-28T08:08:48.188Z"}
+{"level":"info","message":"Received /guest-message request","timestamp":"2025-04-28T08:08:48.200Z"}
+{"filesCount":1,"guestId":"1745827727896-sqo5zp8c5","level":"info","message":"Saving guest message: (no text)","timestamp":"2025-04-28T08:08:48.289Z"}
+{"body":{"guestId":"1745827727896-sqo5zp8c5","language":"ru","message":""},"level":"error","message":"Error in /guest-message: invalid input syntax for type json","stack":"error: invalid input syntax for type json\n at /app/node_modules/pg-pool/index.js:45:11\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n at async /app/routes/chat.js:227:20","timestamp":"2025-04-28T08:08:48.293Z"}
+{"level":"info","message":"GET /api/auth/check","timestamp":"2025-04-28T08:10:37.285Z"}
+{"level":"info","message":"GET /api/auth/check","timestamp":"2025-04-28T08:10:37.316Z"}
+{"level":"info","message":"GET /api/auth/check","timestamp":"2025-04-28T08:10:37.340Z"}
+{"level":"info","message":"POST /api/chat/guest-message","timestamp":"2025-04-28T08:10:47.815Z"}
+{"level":"info","message":"Received /guest-message request","timestamp":"2025-04-28T08:10:47.828Z"}
+{"filesCount":1,"guestId":"1745827727896-sqo5zp8c5","level":"info","message":"Saving guest message: (no text)","timestamp":"2025-04-28T08:10:47.924Z"}
+{"level":"info","message":"Guest message saved with ID:","timestamp":"2025-04-28T08:10:47.947Z"}
+{"level":"info","message":"Session saved after guest message","timestamp":"2025-04-28T08:10:47.951Z"}
+{"level":"info","message":"GET /api/auth/nonce?address=0xF45aa4917b3775bA37f48Aeb3dc1a943561e9e0B","timestamp":"2025-04-28T08:11:22.875Z"}
+{"level":"info","message":"Nonce 3fd09be3ab8541fd47c0ccab561c3a6f сохранен для адреса 0xF45aa4917b3775bA37f48Aeb3dc1a943561e9e0B","timestamp":"2025-04-28T08:11:22.883Z"}
+{"level":"info","message":"POST /api/auth/verify","timestamp":"2025-04-28T08:11:25.071Z"}
+{"level":"info","message":"[verify] Verifying signature for address: 0xF45aa4917b3775bA37f48Aeb3dc1a943561e9e0B","timestamp":"2025-04-28T08:11:25.073Z"}
+{"level":"info","message":"Checking admin role for address: 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-28T08:11:25.198Z"}
+{"address":"0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","balance":"500000.0","contract":"0x4B294265720B09ca39BFBA18c7E368413c0f68eB","hasTokens":true,"level":"info","message":"Token balance on bsc:","timestamp":"2025-04-28T08:11:26.420Z"}
+{"level":"info","message":"Found admin tokens on bsc","timestamp":"2025-04-28T08:11:26.421Z"}
+{"address":"0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","balance":"1500000.0","contract":"0xd95a45fc46a7300e6022885afec3d618d7d3f27c","hasTokens":true,"level":"info","message":"Token balance on eth:","timestamp":"2025-04-28T08:11:26.565Z"}
+{"level":"info","message":"Found admin tokens on eth","timestamp":"2025-04-28T08:11:26.565Z"}
+{"address":"0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","balance":"499999.9","contract":"0xdce769b847a0a697239777d0b1c7dd33b6012ba0","hasTokens":true,"level":"info","message":"Token balance on arbitrum:","timestamp":"2025-04-28T08:11:26.631Z"}
+{"level":"info","message":"Found admin tokens on arbitrum","timestamp":"2025-04-28T08:11:26.631Z"}
+{"address":"0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","balance":"454852.0","contract":"0x351f59de4fedbdf7601f5592b93db3b9330c1c1d","hasTokens":true,"level":"info","message":"Token balance on polygon:","timestamp":"2025-04-28T08:11:26.843Z"}
+{"level":"info","message":"Found admin tokens on polygon","timestamp":"2025-04-28T08:11:26.844Z"}
+{"balances":{"arbitrum":"499999.9","bsc":"500000.0","eth":"1500000.0","polygon":"454852.0"},"level":"info","message":"Admin role summary for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b:","networks":["bsc","eth","arbitrum","polygon"],"timestamp":"2025-04-28T08:11:26.844Z"}
+{"level":"info","message":"Admin role granted for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-28T08:11:26.844Z"}
+{"level":"info","message":"New user 1 role check result: admin","timestamp":"2025-04-28T08:11:26.845Z"}
+{"level":"info","message":"New user 1 with wallet 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b automatically granted admin role","timestamp":"2025-04-28T08:11:26.848Z"}
+{"level":"info","message":"[verify] Found or created user 1 for wallet 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-28T08:11:26.848Z"}
+{"level":"info","message":"[IdentityService] Converting guest identity for user 1 to guest_user_mapping: 1745827727896-sqo5zp8c5","timestamp":"2025-04-28T08:11:26.849Z"}
+{"level":"info","message":"Checking admin tokens for address: 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-28T08:11:26.853Z"}
+{"level":"info","message":"Checking admin role for address: 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-28T08:11:26.854Z"}
+{"address":"0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","balance":"500000.0","contract":"0x4B294265720B09ca39BFBA18c7E368413c0f68eB","hasTokens":true,"level":"info","message":"Token balance on bsc:","timestamp":"2025-04-28T08:11:27.218Z"}
+{"level":"info","message":"Found admin tokens on bsc","timestamp":"2025-04-28T08:11:27.218Z"}
+{"address":"0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","balance":"1500000.0","contract":"0xd95a45fc46a7300e6022885afec3d618d7d3f27c","hasTokens":true,"level":"info","message":"Token balance on eth:","timestamp":"2025-04-28T08:11:27.368Z"}
+{"level":"info","message":"Found admin tokens on eth","timestamp":"2025-04-28T08:11:27.369Z"}
+{"address":"0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","balance":"454852.0","contract":"0x351f59de4fedbdf7601f5592b93db3b9330c1c1d","hasTokens":true,"level":"info","message":"Token balance on polygon:","timestamp":"2025-04-28T08:11:27.383Z"}
+{"level":"info","message":"Found admin tokens on polygon","timestamp":"2025-04-28T08:11:27.383Z"}
+{"address":"0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","balance":"499999.9","contract":"0xdce769b847a0a697239777d0b1c7dd33b6012ba0","hasTokens":true,"level":"info","message":"Token balance on arbitrum:","timestamp":"2025-04-28T08:11:27.576Z"}
+{"level":"info","message":"Found admin tokens on arbitrum","timestamp":"2025-04-28T08:11:27.576Z"}
+{"balances":{"arbitrum":"499999.9","bsc":"500000.0","eth":"1500000.0","polygon":"454852.0"},"level":"info","message":"Admin role summary for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b:","networks":["bsc","eth","polygon","arbitrum"],"timestamp":"2025-04-28T08:11:27.576Z"}
+{"level":"info","message":"Admin role granted for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-28T08:11:27.576Z"}
+{"level":"info","message":"Updated user 1 role to admin based on token holdings","timestamp":"2025-04-28T08:11:27.580Z"}
+{"address":"0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","authType":"wallet","authenticated":true,"cookie":{"expires":"2025-05-28T08:08:48.297Z","httpOnly":true,"originalMaxAge":2592000000,"path":"/","sameSite":"lax","secure":false},"guestId":"1745827727896-sqo5zp8c5","isAdmin":true,"level":"info","message":"[SessionService] Saving session data:","timestamp":"2025-04-28T08:11:27.583Z","userId":1}
+{"level":"info","message":"Session saved successfully","timestamp":"2025-04-28T08:11:27.586Z"}
+{"level":"info","message":"[linkGuestMessages] Starting for user 1 with guestId=1745827727896-sqo5zp8c5, previousGuestId=undefined","timestamp":"2025-04-28T08:11:27.587Z"}
+{"level":"info","message":"[processGuestMessagesWrapper] Processing messages: userId=1, guestId=1745827727896-sqo5zp8c5","timestamp":"2025-04-28T08:11:27.591Z"}
+{"level":"info","message":"Processing guest messages for user 1 with guest ID 1745827727896-sqo5zp8c5","timestamp":"2025-04-28T08:11:27.591Z"}
+{"level":"info","message":"Found 1 guest messages for guest ID 1745827727896-sqo5zp8c5","timestamp":"2025-04-28T08:11:27.595Z"}
+{"level":"info","message":"Created new conversation 1 for guest messages","timestamp":"2025-04-28T08:11:27.598Z"}
+{"level":"info","message":"Processing guest message ID 1: [Файл: image (35).png]","timestamp":"2025-04-28T08:11:27.599Z"}
+{"level":"info","message":"Saved user message with ID 1","timestamp":"2025-04-28T08:11:27.603Z"}
+{"level":"info","message":"Getting AI response for:","timestamp":"2025-04-28T08:11:27.604Z"}
+{"level":"info","message":"AI response received","timestamp":"2025-04-28T08:12:13.714Z"}
+{"level":"info","message":"Saved AI response with ID 2","timestamp":"2025-04-28T08:12:13.772Z"}
+{"level":"info","message":"Deleted 1 processed guest messages for guest ID 1745827727896-sqo5zp8c5","timestamp":"2025-04-28T08:12:13.775Z"}
+{"level":"info","message":"Marked guest mapping as processed for guest ID 1745827727896-sqo5zp8c5","timestamp":"2025-04-28T08:12:13.779Z"}
+{"address":"0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","authType":"wallet","authenticated":true,"cookie":{"expires":"2025-05-28T08:08:48.297Z","httpOnly":true,"originalMaxAge":2592000000,"path":"/","sameSite":"lax","secure":false},"guestId":"1745827727896-sqo5zp8c5","isAdmin":true,"level":"info","message":"[SessionService] Saving session data:","processedGuestIds":["1745827727896-sqo5zp8c5"],"timestamp":"2025-04-28T08:12:13.781Z","userId":1}
+{"level":"info","message":"Session saved successfully","timestamp":"2025-04-28T08:12:13.785Z"}
+{"level":"info","message":"GET /api/auth/check","timestamp":"2025-04-28T08:12:13.797Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T08:12:13.800Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T08:12:13.820Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T08:12:13.828Z"}
+{"level":"info","message":"GET /api/auth/check","timestamp":"2025-04-28T08:12:13.848Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T08:12:13.850Z"}
+{"level":"info","message":"GET /api/tokens/balances?address=0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-28T08:12:13.858Z"}
+{"level":"info","message":"Fetching token balances for address: 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-28T08:12:13.863Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T08:12:13.870Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T08:12:13.885Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T08:12:13.901Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T08:12:13.903Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T08:12:13.919Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T08:12:13.922Z"}
+{"balance":"1500000.0","contract":"0xd95a45fc46a7300e6022885afec3d618d7d3f27c","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on eth:","timestamp":"2025-04-28T08:12:14.129Z"}
+{"level":"info","message":"GET /api/auth/check","timestamp":"2025-04-28T08:12:13.389Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T08:12:13.390Z"}
+{"level":"info","message":"GET /api/chat/history?count_only=true","timestamp":"2025-04-28T08:12:13.403Z"}
+{"level":"info","message":"Processing guest messages for user 1 with guest ID 1745827727896-sqo5zp8c5","timestamp":"2025-04-28T08:12:13.404Z"}
+{"level":"info","message":"Guest messages for guest ID 1745827727896-sqo5zp8c5 were already processed.","timestamp":"2025-04-28T08:12:13.407Z"}
+{"level":"info","message":"GET /api/chat/history?offset=0&limit=30","timestamp":"2025-04-28T08:12:13.428Z"}
+{"balance":"500000.0","contract":"0x4B294265720B09ca39BFBA18c7E368413c0f68eB","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on bsc:","timestamp":"2025-04-28T08:12:14.164Z"}
+{"balance":"499999.9","contract":"0xdce769b847a0a697239777d0b1c7dd33b6012ba0","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on arbitrum:","timestamp":"2025-04-28T08:12:15.250Z"}
+{"balance":"454852.0","contract":"0x351f59de4fedbdf7601f5592b93db3b9330c1c1d","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on polygon:","timestamp":"2025-04-28T08:12:16.320Z"}
+{"arbitrum":"499999.9","bsc":"500000.0","eth":"1500000.0","level":"info","message":"Token balances fetched for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b:","polygon":"454852.0","timestamp":"2025-04-28T08:12:16.320Z"}
+{"level":"info","message":"GET /api/tokens/balances?address=0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-28T08:12:16.330Z"}
+{"level":"info","message":"Fetching token balances for address: 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-28T08:12:16.332Z"}
+{"balance":"1500000.0","contract":"0xd95a45fc46a7300e6022885afec3d618d7d3f27c","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on eth:","timestamp":"2025-04-28T08:12:16.785Z"}
+{"balance":"500000.0","contract":"0x4B294265720B09ca39BFBA18c7E368413c0f68eB","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on bsc:","timestamp":"2025-04-28T08:12:17.081Z"}
+{"balance":"499999.9","contract":"0xdce769b847a0a697239777d0b1c7dd33b6012ba0","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on arbitrum:","timestamp":"2025-04-28T08:12:17.741Z"}
+{"balance":"454852.0","contract":"0x351f59de4fedbdf7601f5592b93db3b9330c1c1d","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on polygon:","timestamp":"2025-04-28T08:12:18.222Z"}
+{"arbitrum":"499999.9","bsc":"500000.0","eth":"1500000.0","level":"info","message":"Token balances fetched for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b:","polygon":"454852.0","timestamp":"2025-04-28T08:12:18.222Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T08:12:43.455Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T08:12:43.458Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T08:13:13.539Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T08:13:13.541Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T08:13:43.605Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T08:13:43.607Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T08:14:13.697Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T08:14:13.700Z"}
+{"level":"info","message":"GET /api/auth/check","timestamp":"2025-04-28T08:14:34.704Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T08:14:34.707Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T08:14:34.726Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T08:14:34.728Z"}
+{"level":"info","message":"GET /api/auth/check","timestamp":"2025-04-28T08:14:34.743Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T08:14:34.745Z"}
+{"level":"info","message":"GET /api/tokens/balances?address=0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-28T08:14:34.753Z"}
+{"level":"info","message":"Fetching token balances for address: 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-28T08:14:34.754Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T08:14:34.759Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T08:14:34.763Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T08:14:34.782Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T08:14:34.786Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T08:14:34.802Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T08:14:34.805Z"}
+{"balance":"1500000.0","contract":"0xd95a45fc46a7300e6022885afec3d618d7d3f27c","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on eth:","timestamp":"2025-04-28T08:14:35.967Z"}
+{"level":"info","message":"GET /api/auth/check","timestamp":"2025-04-28T08:14:36.811Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T08:14:36.813Z"}
+{"level":"info","message":"GET /api/chat/history?count_only=true","timestamp":"2025-04-28T08:14:36.825Z"}
+{"level":"info","message":"GET /api/chat/history?offset=0&limit=30","timestamp":"2025-04-28T08:14:36.844Z"}
+{"balance":"500000.0","contract":"0x4B294265720B09ca39BFBA18c7E368413c0f68eB","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on bsc:","timestamp":"2025-04-28T08:14:36.941Z"}
+{"balance":"499999.9","contract":"0xdce769b847a0a697239777d0b1c7dd33b6012ba0","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on arbitrum:","timestamp":"2025-04-28T08:14:37.082Z"}
+{"balance":"454852.0","contract":"0x351f59de4fedbdf7601f5592b93db3b9330c1c1d","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on polygon:","timestamp":"2025-04-28T08:14:41.037Z"}
+{"arbitrum":"499999.9","bsc":"500000.0","eth":"1500000.0","level":"info","message":"Token balances fetched for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b:","polygon":"454852.0","timestamp":"2025-04-28T08:14:41.037Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T08:15:05.268Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T08:15:05.272Z"}
+{"level":"info","message":"POST /api/auth/logout","timestamp":"2025-04-28T08:15:26.032Z"}
+{"address":null,"authType":null,"authenticated":false,"cookie":{"expires":"2025-05-28T08:08:48.297Z","httpOnly":true,"originalMaxAge":2592000000,"path":"/","sameSite":"lax","secure":false},"email":null,"guestId":null,"isAdmin":false,"level":"info","message":"[SessionService] Saving session data:","pendingEmail":null,"previousGuestId":null,"processedGuestIds":[],"telegramId":null,"timestamp":"2025-04-28T08:15:26.033Z","userId":null}
+{"level":"info","message":"Session saved successfully","timestamp":"2025-04-28T08:15:26.037Z"}
+{"level":"info","message":"POST /api/chat/guest-message","timestamp":"2025-04-28T08:15:41.478Z"}
+{"level":"info","message":"Received /guest-message request","timestamp":"2025-04-28T08:15:41.482Z"}
+{"filesCount":1,"guestId":"1745828141906-vdcva3rrv","level":"info","message":"Saving guest message: (no text)","timestamp":"2025-04-28T08:15:41.600Z"}
+{"level":"info","message":"Guest message saved with ID:","timestamp":"2025-04-28T08:15:41.604Z"}
+{"level":"info","message":"Session saved after guest message","timestamp":"2025-04-28T08:15:41.607Z"}
+{"level":"info","message":"GET /api/auth/check","timestamp":"2025-04-28T08:17:01.619Z"}
+{"level":"info","message":"GET /api/auth/check","timestamp":"2025-04-28T08:17:01.633Z"}
+{"level":"info","message":"GET /api/auth/check","timestamp":"2025-04-28T08:17:01.646Z"}
+{"level":"info","message":"GET /api/auth/check","timestamp":"2025-04-28T08:17:06.768Z"}
+{"level":"info","message":"GET /api/auth/check","timestamp":"2025-04-28T08:17:06.780Z"}
+{"level":"info","message":"GET /api/auth/check","timestamp":"2025-04-28T08:17:06.799Z"}
+{"level":"info","message":"GET /api/auth/check","timestamp":"2025-04-28T08:31:12.381Z"}
+{"cookie":{"expires":"2025-05-28T08:31:12.348Z","httpOnly":true,"originalMaxAge":2592000000,"path":"/","sameSite":"lax","secure":false},"guestId":"b596727d8d5d6e387c52355b61159e2b","level":"info","message":"[SessionService] Saving session data:","timestamp":"2025-04-28T08:31:12.382Z"}
+{"level":"info","message":"Session saved successfully","timestamp":"2025-04-28T08:31:12.389Z"}
+{"level":"info","message":"GET /api/auth/check","timestamp":"2025-04-28T08:31:12.395Z"}
+{"cookie":{"expires":"2025-05-28T08:31:12.393Z","httpOnly":true,"originalMaxAge":2592000000,"path":"/","sameSite":"lax","secure":false},"guestId":"6722285f55c5c8e62ef8b9cab0f10b0e","level":"info","message":"[SessionService] Saving session data:","timestamp":"2025-04-28T08:31:12.395Z"}
+{"level":"info","message":"Session saved successfully","timestamp":"2025-04-28T08:31:12.399Z"}
+{"level":"info","message":"GET /api/auth/check","timestamp":"2025-04-28T08:31:12.405Z"}
+{"cookie":{"expires":"2025-05-28T08:31:12.403Z","httpOnly":true,"originalMaxAge":2592000000,"path":"/","sameSite":"lax","secure":false},"guestId":"9440ec64279671cf78fbef323781fcbe","level":"info","message":"[SessionService] Saving session data:","timestamp":"2025-04-28T08:31:12.406Z"}
+{"level":"info","message":"Session saved successfully","timestamp":"2025-04-28T08:31:12.408Z"}
+{"level":"info","message":"POST /api/chat/guest-message","timestamp":"2025-04-28T08:31:21.773Z"}
+{"level":"info","message":"Received /guest-message request","timestamp":"2025-04-28T08:31:21.776Z"}
+{"filesCount":1,"guestId":"1745829082204-8bmpj5o58","level":"info","message":"Saving guest message: (no text)","timestamp":"2025-04-28T08:31:21.880Z"}
+{"level":"info","message":"Guest message saved with ID:","timestamp":"2025-04-28T08:31:21.903Z"}
+{"level":"info","message":"Session saved after guest message","timestamp":"2025-04-28T08:31:21.907Z"}
+{"level":"info","message":"GET /api/auth/check","timestamp":"2025-04-28T08:34:38.064Z"}
+{"level":"info","message":"GET /api/auth/check","timestamp":"2025-04-28T08:34:38.077Z"}
+{"level":"info","message":"GET /api/auth/check","timestamp":"2025-04-28T08:34:38.096Z"}
+{"level":"info","message":"GET /api/auth/check","timestamp":"2025-04-28T08:35:58.410Z"}
+{"level":"info","message":"GET /api/auth/check","timestamp":"2025-04-28T08:35:58.423Z"}
+{"level":"info","message":"GET /api/auth/check","timestamp":"2025-04-28T08:35:58.433Z"}
+{"level":"info","message":"POST /api/chat/guest-message","timestamp":"2025-04-28T08:38:26.708Z"}
+{"level":"info","message":"Received /guest-message request","timestamp":"2025-04-28T08:38:26.710Z"}
+{"filesCount":0,"guestId":"1745829082204-8bmpj5o58","level":"info","message":"Saving guest message: блдтюбт","timestamp":"2025-04-28T08:38:26.710Z"}
+{"level":"info","message":"Guest message saved with ID:","timestamp":"2025-04-28T08:38:26.715Z"}
+{"level":"info","message":"Session saved after guest message","timestamp":"2025-04-28T08:38:26.718Z"}
+{"level":"info","message":"POST /api/chat/guest-message","timestamp":"2025-04-28T08:38:37.559Z"}
+{"level":"info","message":"Received /guest-message request","timestamp":"2025-04-28T08:38:37.563Z"}
+{"filesCount":1,"guestId":"1745829082204-8bmpj5o58","level":"info","message":"Saving guest message: (no text)","timestamp":"2025-04-28T08:38:37.652Z"}
+{"level":"info","message":"Guest message saved with ID:","timestamp":"2025-04-28T08:38:37.676Z"}
+{"level":"info","message":"Session saved after guest message","timestamp":"2025-04-28T08:38:37.679Z"}
+{"level":"info","message":"GET /api/auth/nonce?address=0xF45aa4917b3775bA37f48Aeb3dc1a943561e9e0B","timestamp":"2025-04-28T08:38:44.788Z"}
+{"level":"info","message":"Nonce a514a24a58b4b3f666d30dd4c395be06 сохранен для адреса 0xF45aa4917b3775bA37f48Aeb3dc1a943561e9e0B","timestamp":"2025-04-28T08:38:44.792Z"}
+{"level":"info","message":"POST /api/auth/verify","timestamp":"2025-04-28T08:38:46.882Z"}
+{"level":"info","message":"[verify] Verifying signature for address: 0xF45aa4917b3775bA37f48Aeb3dc1a943561e9e0B","timestamp":"2025-04-28T08:38:46.883Z"}
+{"level":"info","message":"Checking admin role for address: 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-28T08:38:46.903Z"}
+{"address":"0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","balance":"500000.0","contract":"0x4B294265720B09ca39BFBA18c7E368413c0f68eB","hasTokens":true,"level":"info","message":"Token balance on bsc:","timestamp":"2025-04-28T08:38:48.091Z"}
+{"level":"info","message":"Found admin tokens on bsc","timestamp":"2025-04-28T08:38:48.092Z"}
+{"address":"0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","balance":"1500000.0","contract":"0xd95a45fc46a7300e6022885afec3d618d7d3f27c","hasTokens":true,"level":"info","message":"Token balance on eth:","timestamp":"2025-04-28T08:38:48.128Z"}
+{"level":"info","message":"Found admin tokens on eth","timestamp":"2025-04-28T08:38:48.128Z"}
+{"address":"0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","balance":"499999.9","contract":"0xdce769b847a0a697239777d0b1c7dd33b6012ba0","hasTokens":true,"level":"info","message":"Token balance on arbitrum:","timestamp":"2025-04-28T08:38:48.372Z"}
+{"level":"info","message":"Found admin tokens on arbitrum","timestamp":"2025-04-28T08:38:48.372Z"}
+{"address":"0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","balance":"454852.0","contract":"0x351f59de4fedbdf7601f5592b93db3b9330c1c1d","hasTokens":true,"level":"info","message":"Token balance on polygon:","timestamp":"2025-04-28T08:38:48.557Z"}
+{"level":"info","message":"Found admin tokens on polygon","timestamp":"2025-04-28T08:38:48.558Z"}
+{"balances":{"arbitrum":"499999.9","bsc":"500000.0","eth":"1500000.0","polygon":"454852.0"},"level":"info","message":"Admin role summary for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b:","networks":["bsc","eth","arbitrum","polygon"],"timestamp":"2025-04-28T08:38:48.558Z"}
+{"level":"info","message":"Admin role granted for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-28T08:38:48.558Z"}
+{"level":"info","message":"[verify] Found or created user 1 for wallet 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-28T08:38:48.558Z"}
+{"level":"info","message":"[IdentityService] Converting guest identity for user 1 to guest_user_mapping: 1745829082204-8bmpj5o58","timestamp":"2025-04-28T08:38:48.559Z"}
+{"level":"info","message":"Checking admin tokens for address: 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-28T08:38:48.564Z"}
+{"level":"info","message":"Checking admin role for address: 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-28T08:38:48.564Z"}
+{"address":"0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","balance":"500000.0","contract":"0x4B294265720B09ca39BFBA18c7E368413c0f68eB","hasTokens":true,"level":"info","message":"Token balance on bsc:","timestamp":"2025-04-28T08:38:48.874Z"}
+{"level":"info","message":"Found admin tokens on bsc","timestamp":"2025-04-28T08:38:48.874Z"}
+{"address":"0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","balance":"1500000.0","contract":"0xd95a45fc46a7300e6022885afec3d618d7d3f27c","hasTokens":true,"level":"info","message":"Token balance on eth:","timestamp":"2025-04-28T08:38:49.037Z"}
+{"level":"info","message":"Found admin tokens on eth","timestamp":"2025-04-28T08:38:49.037Z"}
+{"address":"0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","balance":"454852.0","contract":"0x351f59de4fedbdf7601f5592b93db3b9330c1c1d","hasTokens":true,"level":"info","message":"Token balance on polygon:","timestamp":"2025-04-28T08:38:49.039Z"}
+{"level":"info","message":"Found admin tokens on polygon","timestamp":"2025-04-28T08:38:49.040Z"}
+{"address":"0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","balance":"499999.9","contract":"0xdce769b847a0a697239777d0b1c7dd33b6012ba0","hasTokens":true,"level":"info","message":"Token balance on arbitrum:","timestamp":"2025-04-28T08:38:48.646Z"}
+{"level":"info","message":"Found admin tokens on arbitrum","timestamp":"2025-04-28T08:38:48.646Z"}
+{"balances":{"arbitrum":"499999.9","bsc":"500000.0","eth":"1500000.0","polygon":"454852.0"},"level":"info","message":"Admin role summary for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b:","networks":["bsc","eth","polygon","arbitrum"],"timestamp":"2025-04-28T08:38:48.646Z"}
+{"level":"info","message":"Admin role granted for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-28T08:38:48.646Z"}
+{"level":"info","message":"Updated user 1 role to admin based on token holdings","timestamp":"2025-04-28T08:38:48.650Z"}
+{"address":"0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","authType":"wallet","authenticated":true,"cookie":{"expires":"2025-05-28T08:31:12.403Z","httpOnly":true,"originalMaxAge":2592000000,"path":"/","sameSite":"lax","secure":false},"guestId":"1745829082204-8bmpj5o58","isAdmin":true,"level":"info","message":"[SessionService] Saving session data:","timestamp":"2025-04-28T08:38:48.653Z","userId":1}
+{"level":"info","message":"Session saved successfully","timestamp":"2025-04-28T08:38:48.655Z"}
+{"level":"info","message":"[linkGuestMessages] Starting for user 1 with guestId=1745829082204-8bmpj5o58, previousGuestId=undefined","timestamp":"2025-04-28T08:38:48.656Z"}
+{"level":"info","message":"[processGuestMessagesWrapper] Processing messages: userId=1, guestId=1745829082204-8bmpj5o58","timestamp":"2025-04-28T08:38:48.660Z"}
+{"level":"info","message":"Processing guest messages for user 1 with guest ID 1745829082204-8bmpj5o58","timestamp":"2025-04-28T08:38:48.660Z"}
+{"level":"info","message":"Found 3 guest messages for guest ID 1745829082204-8bmpj5o58","timestamp":"2025-04-28T08:38:48.664Z"}
+{"level":"info","message":"Created new conversation 2 for guest messages","timestamp":"2025-04-28T08:38:48.668Z"}
+{"level":"info","message":"Processing guest message ID 3: [Файл: image (35).png]","timestamp":"2025-04-28T08:38:48.668Z"}
+{"level":"info","message":"Saved user message with ID 3","timestamp":"2025-04-28T08:38:48.682Z"}
+{"level":"info","message":"Getting AI response for:","timestamp":"2025-04-28T08:38:48.682Z"}
+{"level":"info","message":"AI response received","timestamp":"2025-04-28T08:39:14.332Z"}
+{"level":"info","message":"Saved AI response with ID 4","timestamp":"2025-04-28T08:39:14.365Z"}
+{"level":"info","message":"Processing guest message ID 4: блдтюбт","timestamp":"2025-04-28T08:39:14.366Z"}
+{"level":"info","message":"Saved user message with ID 5","timestamp":"2025-04-28T08:39:14.369Z"}
+{"level":"info","message":"Getting AI response for:","timestamp":"2025-04-28T08:39:14.369Z"}
+{"level":"info","message":"AI response received","timestamp":"2025-04-28T08:39:19.682Z"}
+{"level":"info","message":"Saved AI response with ID 6","timestamp":"2025-04-28T08:39:19.685Z"}
+{"level":"info","message":"Processing guest message ID 5: [Файл: image (32).png]","timestamp":"2025-04-28T08:39:19.685Z"}
+{"level":"info","message":"Saved user message with ID 7","timestamp":"2025-04-28T08:39:19.688Z"}
+{"level":"info","message":"Getting AI response for:","timestamp":"2025-04-28T08:39:19.688Z"}
+{"level":"info","message":"AI response received","timestamp":"2025-04-28T08:39:29.881Z"}
+{"level":"info","message":"Saved AI response with ID 8","timestamp":"2025-04-28T08:39:29.916Z"}
+{"level":"info","message":"Deleted 3 processed guest messages for guest ID 1745829082204-8bmpj5o58","timestamp":"2025-04-28T08:39:29.922Z"}
+{"level":"info","message":"Marked guest mapping as processed for guest ID 1745829082204-8bmpj5o58","timestamp":"2025-04-28T08:39:29.928Z"}
+{"level":"info","message":"[processGuestMessagesWrapper] Processing messages: userId=1, guestId=1745827727896-sqo5zp8c5","timestamp":"2025-04-28T08:39:29.931Z"}
+{"level":"info","message":"Processing guest messages for user 1 with guest ID 1745827727896-sqo5zp8c5","timestamp":"2025-04-28T08:39:29.932Z"}
+{"level":"info","message":"Guest messages for guest ID 1745827727896-sqo5zp8c5 were already processed.","timestamp":"2025-04-28T08:39:29.934Z"}
+{"address":"0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","authType":"wallet","authenticated":true,"cookie":{"expires":"2025-05-28T08:31:12.403Z","httpOnly":true,"originalMaxAge":2592000000,"path":"/","sameSite":"lax","secure":false},"guestId":"1745829082204-8bmpj5o58","isAdmin":true,"level":"info","message":"[SessionService] Saving session data:","processedGuestIds":["1745829082204-8bmpj5o58","1745827727896-sqo5zp8c5"],"timestamp":"2025-04-28T08:39:29.939Z","userId":1}
+{"level":"info","message":"Session saved successfully","timestamp":"2025-04-28T08:39:29.944Z"}
+{"level":"info","message":"GET /api/auth/check","timestamp":"2025-04-28T08:39:29.960Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T08:39:29.964Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T08:39:29.999Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T08:39:30.001Z"}
+{"level":"info","message":"GET /api/auth/check","timestamp":"2025-04-28T08:39:30.024Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T08:39:30.026Z"}
+{"level":"info","message":"GET /api/tokens/balances?address=0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-28T08:39:30.048Z"}
+{"level":"info","message":"Fetching token balances for address: 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-28T08:39:30.049Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T08:39:30.085Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T08:39:30.090Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T08:39:30.104Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T08:39:30.110Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T08:39:30.149Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T08:39:30.151Z"}
+{"level":"info","message":"GET /api/auth/check","timestamp":"2025-04-28T08:39:31.089Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T08:39:31.092Z"}
+{"level":"info","message":"GET /api/chat/history?count_only=true","timestamp":"2025-04-28T08:39:31.106Z"}
+{"level":"info","message":"Processing guest messages for user 1 with guest ID 1745829082204-8bmpj5o58","timestamp":"2025-04-28T08:39:31.106Z"}
+{"balance":"1500000.0","contract":"0xd95a45fc46a7300e6022885afec3d618d7d3f27c","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on eth:","timestamp":"2025-04-28T08:39:31.108Z"}
+{"level":"info","message":"Guest messages for guest ID 1745829082204-8bmpj5o58 were already processed.","timestamp":"2025-04-28T08:39:31.109Z"}
+{"level":"info","message":"GET /api/chat/history?offset=0&limit=30","timestamp":"2025-04-28T08:39:31.133Z"}
+{"balance":"500000.0","contract":"0x4B294265720B09ca39BFBA18c7E368413c0f68eB","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on bsc:","timestamp":"2025-04-28T08:39:31.898Z"}
+{"balance":"499999.9","contract":"0xdce769b847a0a697239777d0b1c7dd33b6012ba0","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on arbitrum:","timestamp":"2025-04-28T08:39:32.955Z"}
+{"balance":"454852.0","contract":"0x351f59de4fedbdf7601f5592b93db3b9330c1c1d","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on polygon:","timestamp":"2025-04-28T08:39:34.268Z"}
+{"arbitrum":"499999.9","bsc":"500000.0","eth":"1500000.0","level":"info","message":"Token balances fetched for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b:","polygon":"454852.0","timestamp":"2025-04-28T08:39:34.268Z"}
+{"level":"info","message":"GET /api/tokens/balances?address=0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-28T08:39:34.276Z"}
+{"level":"info","message":"Fetching token balances for address: 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-28T08:39:34.276Z"}
+{"balance":"1500000.0","contract":"0xd95a45fc46a7300e6022885afec3d618d7d3f27c","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on eth:","timestamp":"2025-04-28T08:39:34.789Z"}
+{"balance":"500000.0","contract":"0x4B294265720B09ca39BFBA18c7E368413c0f68eB","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on bsc:","timestamp":"2025-04-28T08:39:35.131Z"}
+{"balance":"499999.9","contract":"0xdce769b847a0a697239777d0b1c7dd33b6012ba0","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on arbitrum:","timestamp":"2025-04-28T08:39:35.819Z"}
+{"balance":"454852.0","contract":"0x351f59de4fedbdf7601f5592b93db3b9330c1c1d","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on polygon:","timestamp":"2025-04-28T08:39:36.303Z"}
+{"arbitrum":"499999.9","bsc":"500000.0","eth":"1500000.0","level":"info","message":"Token balances fetched for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b:","polygon":"454852.0","timestamp":"2025-04-28T08:39:36.303Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T08:40:00.234Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T08:40:00.237Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T08:40:31.271Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T08:40:31.273Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T08:41:01.422Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T08:41:01.425Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T08:41:31.472Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T08:41:31.475Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T08:42:01.603Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T08:42:01.606Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T08:42:31.387Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T08:42:31.391Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T08:43:01.792Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T08:43:01.795Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T08:43:31.847Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T08:43:31.850Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T08:44:00.342Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T08:44:00.345Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T08:44:30.305Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T08:44:30.308Z"}
+{"level":"info","message":"GET /api/tokens/balances?address=0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-28T08:44:30.311Z"}
+{"level":"info","message":"Fetching token balances for address: 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-28T08:44:30.311Z"}
+{"balance":"1500000.0","contract":"0xd95a45fc46a7300e6022885afec3d618d7d3f27c","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on eth:","timestamp":"2025-04-28T08:44:31.427Z"}
+{"balance":"500000.0","contract":"0x4B294265720B09ca39BFBA18c7E368413c0f68eB","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on bsc:","timestamp":"2025-04-28T08:44:32.497Z"}
+{"balance":"499999.9","contract":"0xdce769b847a0a697239777d0b1c7dd33b6012ba0","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on arbitrum:","timestamp":"2025-04-28T08:44:33.647Z"}
+{"balance":"454852.0","contract":"0x351f59de4fedbdf7601f5592b93db3b9330c1c1d","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on polygon:","timestamp":"2025-04-28T08:44:35.013Z"}
+{"arbitrum":"499999.9","bsc":"500000.0","eth":"1500000.0","level":"info","message":"Token balances fetched for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b:","polygon":"454852.0","timestamp":"2025-04-28T08:44:35.013Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T08:44:59.550Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T08:44:59.552Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T08:45:29.640Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T08:45:29.643Z"}
+{"level":"info","message":"POST /api/chat/message","timestamp":"2025-04-28T08:45:41.356Z"}
+{"level":"info","message":"Received /message request","timestamp":"2025-04-28T08:45:41.359Z"}
+{"filesCount":0,"language":"ru","level":"info","message":"Processing authenticated message: бббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббббб","timestamp":"2025-04-28T08:45:41.359Z","userId":1}
+{"level":"info","message":"Created new conversation:","timestamp":"2025-04-28T08:45:41.366Z"}
+{"level":"info","message":"Saving user message for conversation","timestamp":"2025-04-28T08:45:41.366Z"}
+{"level":"info","message":"User message saved with ID:","timestamp":"2025-04-28T08:45:41.372Z"}
+{"level":"info","message":"Getting AI response for conversation","timestamp":"2025-04-28T08:45:41.372Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T08:46:00.682Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T08:46:00.687Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T08:46:30.733Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T08:46:30.738Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T08:47:00.841Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T08:47:00.847Z"}
+{"level":"info","message":"AI response received","timestamp":"2025-04-28T08:47:07.155Z"}
+{"level":"info","message":"AI message saved with ID:","timestamp":"2025-04-28T08:47:07.173Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T08:47:30.888Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T08:47:30.891Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T08:48:00.968Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T08:48:00.971Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T08:48:31.090Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T08:48:31.093Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T08:49:27.036Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T08:49:27.039Z"}
+{"level":"info","message":"GET /api/tokens/balances?address=0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-28T08:49:31.262Z"}
+{"level":"info","message":"Fetching token balances for address: 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-28T08:49:31.262Z"}
+{"balance":"1500000.0","contract":"0xd95a45fc46a7300e6022885afec3d618d7d3f27c","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on eth:","timestamp":"2025-04-28T08:49:32.598Z"}
+{"balance":"500000.0","contract":"0x4B294265720B09ca39BFBA18c7E368413c0f68eB","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on bsc:","timestamp":"2025-04-28T08:49:33.701Z"}
+{"balance":"499999.9","contract":"0xdce769b847a0a697239777d0b1c7dd33b6012ba0","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on arbitrum:","timestamp":"2025-04-28T08:49:34.823Z"}
+{"balance":"454852.0","contract":"0x351f59de4fedbdf7601f5592b93db3b9330c1c1d","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on polygon:","timestamp":"2025-04-28T08:49:36.336Z"}
+{"arbitrum":"499999.9","bsc":"500000.0","eth":"1500000.0","level":"info","message":"Token balances fetched for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b:","polygon":"454852.0","timestamp":"2025-04-28T08:49:36.336Z"}
+{"level":"info","message":"GET /api/auth/check","timestamp":"2025-04-28T08:49:38.917Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T08:49:38.919Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T08:49:38.936Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T08:49:38.939Z"}
+{"level":"info","message":"GET /api/auth/check","timestamp":"2025-04-28T08:49:38.954Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T08:49:38.957Z"}
+{"level":"info","message":"GET /api/tokens/balances?address=0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-28T08:49:38.959Z"}
+{"level":"info","message":"Fetching token balances for address: 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-28T08:49:38.960Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T08:49:38.978Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T08:49:38.981Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T08:49:38.997Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T08:49:38.999Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T08:49:39.011Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T08:49:39.013Z"}
+{"balance":"1500000.0","contract":"0xd95a45fc46a7300e6022885afec3d618d7d3f27c","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on eth:","timestamp":"2025-04-28T08:49:39.822Z"}
+{"balance":"500000.0","contract":"0x4B294265720B09ca39BFBA18c7E368413c0f68eB","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on bsc:","timestamp":"2025-04-28T08:49:40.617Z"}
+{"level":"info","message":"GET /api/auth/check","timestamp":"2025-04-28T08:49:40.798Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T08:49:40.800Z"}
+{"level":"info","message":"GET /api/chat/history?count_only=true","timestamp":"2025-04-28T08:49:40.813Z"}
+{"level":"info","message":"GET /api/chat/history?offset=0&limit=30","timestamp":"2025-04-28T08:49:40.834Z"}
+{"balance":"499999.9","contract":"0xdce769b847a0a697239777d0b1c7dd33b6012ba0","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on arbitrum:","timestamp":"2025-04-28T08:49:41.680Z"}
+{"balance":"454852.0","contract":"0x351f59de4fedbdf7601f5592b93db3b9330c1c1d","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on polygon:","timestamp":"2025-04-28T08:49:42.765Z"}
+{"arbitrum":"499999.9","bsc":"500000.0","eth":"1500000.0","level":"info","message":"Token balances fetched for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b:","polygon":"454852.0","timestamp":"2025-04-28T08:49:42.765Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T08:50:09.822Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T08:50:09.824Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T08:50:39.951Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T08:50:39.954Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T08:51:08.389Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T08:51:08.392Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T08:51:38.465Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T08:51:38.468Z"}
+{"level":"info","message":"GET /api/auth/check","timestamp":"2025-04-28T08:51:53.509Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T08:51:53.512Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T08:51:53.529Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T08:51:53.532Z"}
+{"level":"info","message":"GET /api/tokens/balances?address=0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-28T08:51:53.564Z"}
+{"level":"info","message":"Fetching token balances for address: 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-28T08:51:53.564Z"}
+{"level":"info","message":"GET /api/auth/check","timestamp":"2025-04-28T08:51:53.584Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T08:51:53.588Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T08:51:53.633Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T08:51:53.635Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T08:51:53.662Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T08:51:53.664Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T08:51:53.682Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T08:51:53.685Z"}
+{"balance":"1500000.0","contract":"0xd95a45fc46a7300e6022885afec3d618d7d3f27c","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on eth:","timestamp":"2025-04-28T08:51:54.714Z"}
+{"level":"info","message":"GET /api/auth/check","timestamp":"2025-04-28T08:51:55.358Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T08:51:55.360Z"}
+{"level":"info","message":"GET /api/chat/history?count_only=true","timestamp":"2025-04-28T08:51:55.373Z"}
+{"level":"info","message":"GET /api/chat/history?offset=0&limit=30","timestamp":"2025-04-28T08:51:55.396Z"}
+{"balance":"500000.0","contract":"0x4B294265720B09ca39BFBA18c7E368413c0f68eB","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on bsc:","timestamp":"2025-04-28T08:51:55.594Z"}
+{"balance":"499999.9","contract":"0xdce769b847a0a697239777d0b1c7dd33b6012ba0","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on arbitrum:","timestamp":"2025-04-28T08:51:56.764Z"}
+{"balance":"454852.0","contract":"0x351f59de4fedbdf7601f5592b93db3b9330c1c1d","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on polygon:","timestamp":"2025-04-28T08:51:58.076Z"}
+{"arbitrum":"499999.9","bsc":"500000.0","eth":"1500000.0","level":"info","message":"Token balances fetched for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b:","polygon":"454852.0","timestamp":"2025-04-28T08:51:58.077Z"}
+{"level":"info","message":"POST /api/auth/logout","timestamp":"2025-04-28T08:52:01.673Z"}
+{"address":null,"authType":null,"authenticated":false,"cookie":{"expires":"2025-05-28T08:31:12.403Z","httpOnly":true,"originalMaxAge":2592000000,"path":"/","sameSite":"lax","secure":false},"email":null,"guestId":null,"isAdmin":false,"level":"info","message":"[SessionService] Saving session data:","pendingEmail":null,"previousGuestId":null,"processedGuestIds":[],"telegramId":null,"timestamp":"2025-04-28T08:52:01.674Z","userId":null}
+{"level":"info","message":"Session saved successfully","timestamp":"2025-04-28T08:52:01.677Z"}
+{"level":"info","message":"GET /api/auth/check","timestamp":"2025-04-28T08:52:01.701Z"}
+{"cookie":{"expires":"2025-05-28T08:52:01.699Z","httpOnly":true,"originalMaxAge":2592000000,"path":"/","sameSite":"lax","secure":false},"guestId":"8c86e5dc82d0cd5303d9c9eeb1b2a0e9","level":"info","message":"[SessionService] Saving session data:","timestamp":"2025-04-28T08:52:01.702Z"}
+{"level":"info","message":"Session saved successfully","timestamp":"2025-04-28T08:52:01.705Z"}
+{"level":"info","message":"GET /api/auth/check","timestamp":"2025-04-28T09:57:55.322Z"}
+{"cookie":{"expires":"2025-05-28T09:57:55.294Z","httpOnly":true,"originalMaxAge":2592000000,"path":"/","sameSite":"lax","secure":false},"guestId":"9f4dc0b48816da578d846ad1f5145f04","level":"info","message":"[SessionService] Saving session data:","timestamp":"2025-04-28T09:57:55.324Z"}
+{"level":"info","message":"Session saved successfully","timestamp":"2025-04-28T09:57:55.332Z"}
+{"level":"info","message":"GET /api/auth/check","timestamp":"2025-04-28T10:21:39.809Z"}
+{"level":"info","message":"GET /api/auth/check","timestamp":"2025-04-28T10:21:39.826Z"}
+{"level":"info","message":"GET /api/auth/check","timestamp":"2025-04-28T14:18:32.165Z"}
+{"level":"info","message":"GET /api/auth/check","timestamp":"2025-04-28T14:18:32.187Z"}
+{"level":"info","message":"Migration 000_session_table.sql executed successfully","timestamp":"2025-04-28T14:19:22.150Z"}
+{"level":"info","message":"Migration 001_initial_schema.sql executed successfully","timestamp":"2025-04-28T14:19:22.182Z"}
+{"level":"info","message":"Migration 002_access_roles.sql executed successfully","timestamp":"2025-04-28T14:19:22.237Z"}
+{"level":"info","message":"Migration 003_user_identities.sql executed successfully","timestamp":"2025-04-28T14:19:22.272Z"}
+{"level":"info","message":"Migration 004_conversations.sql executed successfully","timestamp":"2025-04-28T14:19:22.295Z"}
+{"level":"info","message":"Migration 005_messages.sql executed successfully","timestamp":"2025-04-28T14:19:22.339Z"}
+{"level":"info","message":"Migration 006_guest_messages.sql executed successfully","timestamp":"2025-04-28T14:19:22.383Z"}
+{"level":"info","message":"Migration 007_user_preferences.sql executed successfully","timestamp":"2025-04-28T14:19:22.423Z"}
+{"level":"info","message":"Migration 008_update_messages_structure.sql executed successfully","timestamp":"2025-04-28T14:19:22.436Z"}
+{"level":"info","message":"Migration 009_nonces_table.sql executed successfully","timestamp":"2025-04-28T14:19:22.464Z"}
+{"level":"info","message":"Migration 010_cleanup_roles.sql executed successfully","timestamp":"2025-04-28T14:19:22.494Z"}
+{"level":"info","message":"Migration 011_cleanup_guest_relations.sql executed successfully","timestamp":"2025-04-28T14:19:22.512Z"}
+{"level":"info","message":"Migration 012_verification_codes.sql executed successfully","timestamp":"2025-04-28T14:19:22.545Z"}
+{"level":"info","message":"Migration 013_update_verification_codes.sql executed successfully","timestamp":"2025-04-28T14:19:22.554Z"}
+{"level":"info","message":"Migration 014_identity_system_refactor.sql executed successfully","timestamp":"2025-04-28T14:19:22.595Z"}
+{"level":"info","message":"Migration 015_users_table_refactor.sql executed successfully","timestamp":"2025-04-28T14:19:22.607Z"}
+{"level":"info","message":"Migration 016_fix_duplicate_identities.sql executed successfully","timestamp":"2025-04-28T14:19:22.632Z"}
+{"level":"info","message":"Migration 017_add_file_storage_columns.sql executed successfully","timestamp":"2025-04-28T14:19:22.649Z"}
+{"level":"info","message":"Migration fix_duplicates_manual.sql executed successfully","timestamp":"2025-04-28T14:19:22.664Z"}
+{"level":"info","message":"Function link_guest_messages.sql executed successfully","timestamp":"2025-04-28T14:19:22.672Z"}
+{"level":"info","message":"POST /api/chat/guest-message","timestamp":"2025-04-28T14:28:29.003Z"}
+{"level":"info","message":"Received /guest-message request","timestamp":"2025-04-28T14:28:29.020Z"}
+{"file":"image (33).png","guestId":"1745850508983-zb9xi0g4t","level":"info","message":"Saving guest message:","mimetype":"image/png","size":81461,"timestamp":"2025-04-28T14:28:29.089Z"}
+{"code":"42703","file":"parse_target.c","length":146,"level":"error","line":"1066","message":"Error saving guest message: column \"attachment_filename\" of relation \"guest_messages\" does not exist","name":"error","position":"82","routine":"checkInsertTargets","severity":"ERROR","stack":"error: column \"attachment_filename\" of relation \"guest_messages\" does not exist\n at /app/node_modules/pg-pool/index.js:45:11\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n at async /app/routes/chat.js:224:20","timestamp":"2025-04-28T14:28:29.099Z"}
+{"level":"info","message":"Migration 000_session_table.sql executed successfully","timestamp":"2025-04-28T14:39:57.603Z"}
+{"level":"info","message":"Migration 001_initial_schema.sql executed successfully","timestamp":"2025-04-28T14:39:57.637Z"}
+{"level":"info","message":"Migration 002_access_roles.sql executed successfully","timestamp":"2025-04-28T14:39:57.679Z"}
+{"level":"info","message":"Migration 003_user_identities.sql executed successfully","timestamp":"2025-04-28T14:39:57.715Z"}
+{"level":"info","message":"Migration 004_conversations.sql executed successfully","timestamp":"2025-04-28T14:39:57.739Z"}
+{"level":"info","message":"Migration 005_messages.sql executed successfully","timestamp":"2025-04-28T14:39:57.787Z"}
+{"level":"info","message":"Migration 006_guest_messages.sql executed successfully","timestamp":"2025-04-28T14:39:57.832Z"}
+{"level":"info","message":"Migration 007_user_preferences.sql executed successfully","timestamp":"2025-04-28T14:39:57.870Z"}
+{"level":"info","message":"Migration 008_update_messages_structure.sql executed successfully","timestamp":"2025-04-28T14:39:57.880Z"}
+{"level":"info","message":"Migration 009_nonces_table.sql executed successfully","timestamp":"2025-04-28T14:39:57.906Z"}
+{"level":"info","message":"Migration 010_cleanup_roles.sql executed successfully","timestamp":"2025-04-28T14:39:57.933Z"}
+{"level":"info","message":"Migration 011_cleanup_guest_relations.sql executed successfully","timestamp":"2025-04-28T14:39:57.949Z"}
+{"level":"info","message":"Migration 012_verification_codes.sql executed successfully","timestamp":"2025-04-28T14:39:57.979Z"}
+{"level":"info","message":"Migration 013_update_verification_codes.sql executed successfully","timestamp":"2025-04-28T14:39:57.987Z"}
+{"level":"info","message":"Migration 014_identity_system_refactor.sql executed successfully","timestamp":"2025-04-28T14:39:58.030Z"}
+{"level":"info","message":"Migration 015_users_table_refactor.sql executed successfully","timestamp":"2025-04-28T14:39:58.042Z"}
+{"level":"info","message":"Migration 016_fix_duplicate_identities.sql executed successfully","timestamp":"2025-04-28T14:39:58.067Z"}
+{"level":"info","message":"Migration 017_add_file_storage_columns.sql executed successfully","timestamp":"2025-04-28T14:39:58.083Z"}
+{"level":"info","message":"Migration fix_duplicates_manual.sql executed successfully","timestamp":"2025-04-28T14:39:58.098Z"}
+{"level":"info","message":"Function link_guest_messages.sql executed successfully","timestamp":"2025-04-28T14:39:58.104Z"}
+{"level":"info","message":"Executing UP migration from 000_session_table.sql...","timestamp":"2025-04-28T14:51:16.725Z"}
+{"level":"info","message":"Migration 000_session_table.sql executed successfully","timestamp":"2025-04-28T14:51:16.755Z"}
+{"level":"info","message":"Executing UP migration from 001_initial_schema.sql...","timestamp":"2025-04-28T14:51:16.757Z"}
+{"level":"info","message":"Migration 001_initial_schema.sql executed successfully","timestamp":"2025-04-28T14:51:16.784Z"}
+{"level":"info","message":"Executing UP migration from 002_access_roles.sql...","timestamp":"2025-04-28T14:51:16.786Z"}
+{"level":"info","message":"Migration 002_access_roles.sql executed successfully","timestamp":"2025-04-28T14:51:16.843Z"}
+{"level":"info","message":"Executing UP migration from 003_user_identities.sql...","timestamp":"2025-04-28T14:51:16.845Z"}
+{"level":"info","message":"Migration 003_user_identities.sql executed successfully","timestamp":"2025-04-28T14:51:16.889Z"}
+{"level":"info","message":"Executing UP migration from 004_conversations.sql...","timestamp":"2025-04-28T14:51:16.893Z"}
+{"level":"info","message":"Migration 004_conversations.sql executed successfully","timestamp":"2025-04-28T14:51:16.927Z"}
+{"level":"info","message":"Executing UP migration from 005_messages.sql...","timestamp":"2025-04-28T14:51:16.930Z"}
+{"level":"info","message":"Migration 005_messages.sql executed successfully","timestamp":"2025-04-28T14:51:16.996Z"}
+{"level":"info","message":"Executing UP migration from 006_guest_messages.sql...","timestamp":"2025-04-28T14:51:16.998Z"}
+{"level":"info","message":"Migration 006_guest_messages.sql executed successfully","timestamp":"2025-04-28T14:51:17.037Z"}
+{"level":"info","message":"Executing UP migration from 007_user_preferences.sql...","timestamp":"2025-04-28T14:51:17.039Z"}
+{"level":"info","message":"Migration 007_user_preferences.sql executed successfully","timestamp":"2025-04-28T14:51:17.077Z"}
+{"level":"info","message":"Executing UP migration from 008_update_messages_structure.sql...","timestamp":"2025-04-28T14:51:17.079Z"}
+{"level":"info","message":"Migration 008_update_messages_structure.sql executed successfully","timestamp":"2025-04-28T14:51:17.087Z"}
+{"level":"info","message":"Executing UP migration from 009_nonces_table.sql...","timestamp":"2025-04-28T14:51:17.089Z"}
+{"level":"info","message":"Migration 009_nonces_table.sql executed successfully","timestamp":"2025-04-28T14:51:17.117Z"}
+{"level":"info","message":"Executing UP migration from 010_cleanup_roles.sql...","timestamp":"2025-04-28T14:51:17.119Z"}
+{"level":"info","message":"Migration 010_cleanup_roles.sql executed successfully","timestamp":"2025-04-28T14:51:17.141Z"}
+{"level":"info","message":"Executing UP migration from 011_cleanup_guest_relations.sql...","timestamp":"2025-04-28T14:51:17.143Z"}
+{"level":"info","message":"Migration 011_cleanup_guest_relations.sql executed successfully","timestamp":"2025-04-28T14:51:17.160Z"}
+{"level":"info","message":"Executing UP migration from 012_verification_codes.sql...","timestamp":"2025-04-28T14:51:17.161Z"}
+{"level":"info","message":"Migration 012_verification_codes.sql executed successfully","timestamp":"2025-04-28T14:51:17.187Z"}
+{"level":"info","message":"Executing UP migration from 013_update_verification_codes.sql...","timestamp":"2025-04-28T14:51:17.189Z"}
+{"level":"info","message":"Migration 013_update_verification_codes.sql executed successfully","timestamp":"2025-04-28T14:51:17.195Z"}
+{"level":"info","message":"Executing UP migration from 014_identity_system_refactor.sql...","timestamp":"2025-04-28T14:51:17.196Z"}
+{"level":"info","message":"Migration 014_identity_system_refactor.sql executed successfully","timestamp":"2025-04-28T14:51:17.238Z"}
+{"level":"info","message":"Executing UP migration from 015_users_table_refactor.sql...","timestamp":"2025-04-28T14:51:17.240Z"}
+{"level":"info","message":"Migration 015_users_table_refactor.sql executed successfully","timestamp":"2025-04-28T14:51:17.251Z"}
+{"level":"info","message":"Executing UP migration from 016_fix_duplicate_identities.sql...","timestamp":"2025-04-28T14:51:17.253Z"}
+{"level":"info","message":"Migration 016_fix_duplicate_identities.sql executed successfully","timestamp":"2025-04-28T14:51:17.277Z"}
+{"level":"info","message":"Executing UP migration from 017_add_file_storage_columns.sql...","timestamp":"2025-04-28T14:51:17.278Z"}
+{"level":"info","message":"Migration 017_add_file_storage_columns.sql executed successfully","timestamp":"2025-04-28T14:51:17.286Z"}
+{"level":"info","message":"Executing UP migration from fix_duplicates_manual.sql...","timestamp":"2025-04-28T14:51:17.288Z"}
+{"level":"info","message":"Migration fix_duplicates_manual.sql executed successfully","timestamp":"2025-04-28T14:51:17.303Z"}
+{"level":"info","message":"Function link_guest_messages.sql executed successfully","timestamp":"2025-04-28T14:51:17.310Z"}
+{"level":"info","message":"GET /api/auth/check","timestamp":"2025-04-28T14:52:49.607Z"}
+{"cookie":{"expires":"2025-05-28T14:52:49.598Z","httpOnly":true,"originalMaxAge":2592000000,"path":"/","sameSite":"lax","secure":false},"guestId":"89ed82fc2d333510bae56f8f2d4c9f32","level":"info","message":"[SessionService] Saving session data:","timestamp":"2025-04-28T14:52:49.632Z"}
+{"level":"info","message":"Session saved successfully","timestamp":"2025-04-28T14:52:49.641Z"}
+{"level":"info","message":"GET /api/auth/check","timestamp":"2025-04-28T14:52:49.662Z"}
+{"cookie":{"expires":"2025-05-28T14:52:49.659Z","httpOnly":true,"originalMaxAge":2592000000,"path":"/","sameSite":"lax","secure":false},"guestId":"a6ad4501ae3e2ca50877ae1f09c830f3","level":"info","message":"[SessionService] Saving session data:","timestamp":"2025-04-28T14:52:49.664Z"}
+{"level":"info","message":"Session saved successfully","timestamp":"2025-04-28T14:52:49.669Z"}
+{"level":"info","message":"GET /api/auth/check","timestamp":"2025-04-28T14:52:49.682Z"}
+{"cookie":{"expires":"2025-05-28T14:52:49.679Z","httpOnly":true,"originalMaxAge":2592000000,"path":"/","sameSite":"lax","secure":false},"guestId":"751c8c8e1a1232800d24c6c6e3903f55","level":"info","message":"[SessionService] Saving session data:","timestamp":"2025-04-28T14:52:49.683Z"}
+{"level":"info","message":"Session saved successfully","timestamp":"2025-04-28T14:52:49.687Z"}
+{"level":"info","message":"POST /api/chat/guest-message","timestamp":"2025-04-28T14:52:57.975Z"}
+{"level":"info","message":"Received /guest-message request","timestamp":"2025-04-28T14:52:57.987Z"}
+{"file":null,"guestId":"1745850508983-zb9xi0g4t","level":"info","message":"Saving guest message: шр","mimetype":null,"size":null,"timestamp":"2025-04-28T14:52:57.989Z"}
+{"level":"info","message":"Guest message saved with ID:","timestamp":"2025-04-28T14:52:58.016Z"}
+{"level":"info","message":"Session saved after guest message","timestamp":"2025-04-28T14:52:58.020Z"}
+{"level":"info","message":"POST /api/chat/guest-message","timestamp":"2025-04-28T14:53:06.940Z"}
+{"level":"info","message":"Received /guest-message request","timestamp":"2025-04-28T14:53:06.969Z"}
+{"file":"image (15).png","guestId":"1745850508983-zb9xi0g4t","level":"info","message":"Saving guest message:","mimetype":"image/png","size":18375,"timestamp":"2025-04-28T14:53:07.020Z"}
+{"code":"23502","column":"content","detail":"Failing row contains (2, 1745850508983-zb9xi0g4t, null, ru, f, 2025-04-28 14:53:07.021316+00, image (15).png, image/png, 18375, \\x89504e470d0a1a0a0000000d4948445200000213000000ee08060000008330...).","file":"execMain.c","length":383,"level":"error","line":"2006","message":"Error saving guest message: null value in column \"content\" of relation \"guest_messages\" violates not-null constraint","name":"error","routine":"ExecConstraints","schema":"public","severity":"ERROR","stack":"error: null value in column \"content\" of relation \"guest_messages\" violates not-null constraint\n at /app/node_modules/pg-pool/index.js:45:11\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n at async /app/routes/chat.js:224:20","table":"guest_messages","timestamp":"2025-04-28T14:53:07.027Z"}
+{"level":"info","message":"GET /api/auth/check","timestamp":"2025-04-28T14:55:32.915Z"}
+{"level":"info","message":"GET /api/auth/check","timestamp":"2025-04-28T14:55:32.949Z"}
+{"level":"info","message":"GET /api/auth/check","timestamp":"2025-04-28T14:55:32.969Z"}
+{"level":"info","message":"POST /api/chat/guest-message","timestamp":"2025-04-28T14:55:42.335Z"}
+{"level":"info","message":"Received /guest-message request","timestamp":"2025-04-28T14:55:42.380Z"}
+{"file":"image (34).png","guestId":"1745850508983-zb9xi0g4t","level":"info","message":"Saving guest message:","mimetype":"image/png","size":107094,"timestamp":"2025-04-28T14:55:42.453Z"}
+{"level":"info","message":"Guest message saved with ID:","timestamp":"2025-04-28T14:55:42.470Z"}
+{"level":"info","message":"Session saved after guest message","timestamp":"2025-04-28T14:55:42.481Z"}
+{"level":"info","message":"GET /api/auth/nonce?address=0xF45aa4917b3775bA37f48Aeb3dc1a943561e9e0B","timestamp":"2025-04-28T14:55:55.842Z"}
+{"level":"info","message":"Nonce d797ac1e8e243c4169e985ef123f809f сохранен для адреса 0xF45aa4917b3775bA37f48Aeb3dc1a943561e9e0B","timestamp":"2025-04-28T14:55:55.872Z"}
+{"level":"info","message":"POST /api/auth/verify","timestamp":"2025-04-28T14:56:00.298Z"}
+{"level":"info","message":"[verify] Verifying signature for address: 0xF45aa4917b3775bA37f48Aeb3dc1a943561e9e0B","timestamp":"2025-04-28T14:56:00.300Z"}
+{"level":"info","message":"Checking admin role for address: 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-28T14:56:00.482Z"}
+{"address":"0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","balance":"500000.0","contract":"0x4B294265720B09ca39BFBA18c7E368413c0f68eB","hasTokens":true,"level":"info","message":"Token balance on bsc:","timestamp":"2025-04-28T14:56:01.909Z"}
+{"level":"info","message":"Found admin tokens on bsc","timestamp":"2025-04-28T14:56:01.910Z"}
+{"address":"0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","balance":"1500000.0","contract":"0xd95a45fc46a7300e6022885afec3d618d7d3f27c","hasTokens":true,"level":"info","message":"Token balance on eth:","timestamp":"2025-04-28T14:56:02.046Z"}
+{"level":"info","message":"Found admin tokens on eth","timestamp":"2025-04-28T14:56:02.047Z"}
+{"address":"0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","balance":"499999.9","contract":"0xdce769b847a0a697239777d0b1c7dd33b6012ba0","hasTokens":true,"level":"info","message":"Token balance on arbitrum:","timestamp":"2025-04-28T14:56:02.093Z"}
+{"level":"info","message":"Found admin tokens on arbitrum","timestamp":"2025-04-28T14:56:02.094Z"}
+{"address":"0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","balance":"454852.0","contract":"0x351f59de4fedbdf7601f5592b93db3b9330c1c1d","hasTokens":true,"level":"info","message":"Token balance on polygon:","timestamp":"2025-04-28T14:56:02.180Z"}
+{"level":"info","message":"Found admin tokens on polygon","timestamp":"2025-04-28T14:56:02.181Z"}
+{"balances":{"arbitrum":"499999.9","bsc":"500000.0","eth":"1500000.0","polygon":"454852.0"},"level":"info","message":"Admin role summary for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b:","networks":["bsc","eth","arbitrum","polygon"],"timestamp":"2025-04-28T14:56:02.182Z"}
+{"level":"info","message":"Admin role granted for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-28T14:56:02.183Z"}
+{"level":"info","message":"New user 1 role check result: admin","timestamp":"2025-04-28T14:56:02.183Z"}
+{"level":"info","message":"New user 1 with wallet 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b automatically granted admin role","timestamp":"2025-04-28T14:56:02.207Z"}
+{"level":"info","message":"[verify] Found or created user 1 for wallet 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-28T14:56:02.208Z"}
+{"level":"info","message":"[IdentityService] Converting guest identity for user 1 to guest_user_mapping: 1745850508983-zb9xi0g4t","timestamp":"2025-04-28T14:56:02.211Z"}
+{"level":"info","message":"Checking admin tokens for address: 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-28T14:56:02.216Z"}
+{"level":"info","message":"Checking admin role for address: 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-28T14:56:02.216Z"}
+{"address":"0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","balance":"500000.0","contract":"0x4B294265720B09ca39BFBA18c7E368413c0f68eB","hasTokens":true,"level":"info","message":"Token balance on bsc:","timestamp":"2025-04-28T14:56:02.556Z"}
+{"level":"info","message":"Found admin tokens on bsc","timestamp":"2025-04-28T14:56:02.557Z"}
+{"address":"0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","balance":"1500000.0","contract":"0xd95a45fc46a7300e6022885afec3d618d7d3f27c","hasTokens":true,"level":"info","message":"Token balance on eth:","timestamp":"2025-04-28T14:56:02.687Z"}
+{"level":"info","message":"Found admin tokens on eth","timestamp":"2025-04-28T14:56:02.687Z"}
+{"address":"0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","balance":"454852.0","contract":"0x351f59de4fedbdf7601f5592b93db3b9330c1c1d","hasTokens":true,"level":"info","message":"Token balance on polygon:","timestamp":"2025-04-28T14:56:02.694Z"}
+{"level":"info","message":"Found admin tokens on polygon","timestamp":"2025-04-28T14:56:02.694Z"}
+{"address":"0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","balance":"499999.9","contract":"0xdce769b847a0a697239777d0b1c7dd33b6012ba0","hasTokens":true,"level":"info","message":"Token balance on arbitrum:","timestamp":"2025-04-28T14:56:02.868Z"}
+{"level":"info","message":"Found admin tokens on arbitrum","timestamp":"2025-04-28T14:56:02.868Z"}
+{"balances":{"arbitrum":"499999.9","bsc":"500000.0","eth":"1500000.0","polygon":"454852.0"},"level":"info","message":"Admin role summary for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b:","networks":["bsc","eth","polygon","arbitrum"],"timestamp":"2025-04-28T14:56:02.868Z"}
+{"level":"info","message":"Admin role granted for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-28T14:56:02.868Z"}
+{"level":"info","message":"Updated user 1 role to admin based on token holdings","timestamp":"2025-04-28T14:56:02.875Z"}
+{"address":"0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","authType":"wallet","authenticated":true,"cookie":{"expires":"2025-05-28T14:52:49.679Z","httpOnly":true,"originalMaxAge":2592000000,"path":"/","sameSite":"lax","secure":false},"guestId":"1745850508983-zb9xi0g4t","isAdmin":true,"level":"info","message":"[SessionService] Saving session data:","timestamp":"2025-04-28T14:56:02.879Z","userId":1}
+{"level":"info","message":"Session saved successfully","timestamp":"2025-04-28T14:56:02.884Z"}
+{"level":"info","message":"[linkGuestMessages] Starting for user 1 with guestId=1745850508983-zb9xi0g4t, previousGuestId=undefined","timestamp":"2025-04-28T14:56:02.885Z"}
+{"level":"info","message":"[processGuestMessagesWrapper] Processing messages: userId=1, guestId=1745850508983-zb9xi0g4t","timestamp":"2025-04-28T14:56:02.891Z"}
+{"level":"info","message":"Processing guest messages for user 1 with guest ID 1745850508983-zb9xi0g4t","timestamp":"2025-04-28T14:56:02.893Z"}
+{"level":"info","message":"Found 2 guest messages for guest ID 1745850508983-zb9xi0g4t","timestamp":"2025-04-28T14:56:02.908Z"}
+{"level":"info","message":"Created new conversation 1 for guest messages","timestamp":"2025-04-28T14:56:02.914Z"}
+{"level":"info","message":"Processing guest message ID 1: шр","timestamp":"2025-04-28T14:56:02.914Z"}
+{"level":"info","message":"Saved user message with ID 1","timestamp":"2025-04-28T14:56:02.922Z"}
+{"level":"info","message":"Getting AI response for:","timestamp":"2025-04-28T14:56:02.923Z"}
+{"level":"info","message":"GET /api/auth/check","timestamp":"2025-04-28T14:57:23.313Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T14:57:23.331Z"}
+{"level":"info","message":"GET /api/auth/check","timestamp":"2025-04-28T14:57:23.368Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T14:57:23.372Z"}
+{"level":"info","message":"GET /api/auth/check","timestamp":"2025-04-28T14:57:23.400Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T14:57:23.415Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T14:57:23.446Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T14:57:23.453Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T14:57:23.468Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T14:57:23.475Z"}
+{"level":"info","message":"GET /api/tokens/balances?address=0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-28T14:57:23.499Z"}
+{"level":"info","message":"Fetching token balances for address: 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-28T14:57:23.504Z"}
+{"level":"info","message":"GET /api/auth/check","timestamp":"2025-04-28T14:57:23.531Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T14:57:23.537Z"}
+{"level":"info","message":"GET /api/auth/check","timestamp":"2025-04-28T14:57:23.563Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T14:57:23.569Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T14:57:23.572Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T14:57:23.577Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T14:57:23.599Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T14:57:23.604Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T14:57:23.622Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T14:57:23.627Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T14:57:23.642Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T14:57:23.645Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T14:57:23.661Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T14:57:23.666Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T14:57:23.682Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T14:57:23.686Z"}
+{"level":"info","message":"GET /api/auth/check","timestamp":"2025-04-28T14:57:24.496Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T14:57:24.499Z"}
+{"level":"info","message":"GET /api/chat/history?count_only=true","timestamp":"2025-04-28T14:57:24.520Z"}
+{"level":"info","message":"GET /api/chat/history?offset=0&limit=30","timestamp":"2025-04-28T14:57:24.540Z"}
+{"level":"error","message":"Error fetching message history for user 1: syntax error at or near \"$\"","stack":"error: syntax error at or near \"$\"\n at /app/node_modules/pg-pool/index.js:45:11\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n at async /app/routes/chat.js:484:20","timestamp":"2025-04-28T14:57:24.546Z"}
+{"balance":"1500000.0","contract":"0xd95a45fc46a7300e6022885afec3d618d7d3f27c","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on eth:","timestamp":"2025-04-28T14:57:24.875Z"}
+{"balance":"500000.0","contract":"0x4B294265720B09ca39BFBA18c7E368413c0f68eB","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on bsc:","timestamp":"2025-04-28T14:57:26.402Z"}
+{"balance":"499999.9","contract":"0xdce769b847a0a697239777d0b1c7dd33b6012ba0","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on arbitrum:","timestamp":"2025-04-28T14:57:27.892Z"}
+{"balance":"454852.0","contract":"0x351f59de4fedbdf7601f5592b93db3b9330c1c1d","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on polygon:","timestamp":"2025-04-28T14:57:29.467Z"}
+{"arbitrum":"499999.9","bsc":"500000.0","eth":"1500000.0","level":"info","message":"Token balances fetched for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b:","polygon":"454852.0","timestamp":"2025-04-28T14:57:29.467Z"}
+{"level":"info","message":"GET /api/tokens/balances?address=0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-28T14:57:29.488Z"}
+{"level":"info","message":"Fetching token balances for address: 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-28T14:57:29.491Z"}
+{"balance":"1500000.0","contract":"0xd95a45fc46a7300e6022885afec3d618d7d3f27c","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on eth:","timestamp":"2025-04-28T14:57:30.044Z"}
+{"balance":"500000.0","contract":"0x4B294265720B09ca39BFBA18c7E368413c0f68eB","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on bsc:","timestamp":"2025-04-28T14:57:30.469Z"}
+{"balance":"499999.9","contract":"0xdce769b847a0a697239777d0b1c7dd33b6012ba0","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on arbitrum:","timestamp":"2025-04-28T14:57:31.363Z"}
+{"level":"info","message":"POST /api/auth/logout","timestamp":"2025-04-28T14:57:31.853Z"}
+{"address":null,"authType":null,"authenticated":false,"cookie":{"expires":"2025-05-28T14:52:49.679Z","httpOnly":true,"originalMaxAge":2592000000,"path":"/","sameSite":"lax","secure":false},"email":null,"guestId":null,"isAdmin":false,"level":"info","message":"[SessionService] Saving session data:","pendingEmail":null,"previousGuestId":null,"processedGuestIds":[],"telegramId":null,"timestamp":"2025-04-28T14:57:31.855Z","userId":null}
+{"level":"info","message":"Session saved successfully","timestamp":"2025-04-28T14:57:31.863Z"}
+{"balance":"454852.0","contract":"0x351f59de4fedbdf7601f5592b93db3b9330c1c1d","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on polygon:","timestamp":"2025-04-28T14:57:31.924Z"}
+{"arbitrum":"499999.9","bsc":"500000.0","eth":"1500000.0","level":"info","message":"Token balances fetched for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b:","polygon":"454852.0","timestamp":"2025-04-28T14:57:31.925Z"}
+{"level":"info","message":"POST /api/chat/guest-message","timestamp":"2025-04-28T14:57:42.995Z"}
+{"level":"info","message":"Received /guest-message request","timestamp":"2025-04-28T14:57:43.008Z"}
+{"file":"image (35).png","guestId":"1745852262561-8ruitvvmj","level":"info","message":"Saving guest message:","mimetype":"image/png","size":183000,"timestamp":"2025-04-28T14:57:43.221Z"}
+{"level":"info","message":"Guest message saved with ID:","timestamp":"2025-04-28T14:57:44.350Z"}
+{"level":"info","message":"Session saved after guest message","timestamp":"2025-04-28T14:57:44.377Z"}
+{"level":"info","message":"GET /api/auth/nonce?address=0xF45aa4917b3775bA37f48Aeb3dc1a943561e9e0B","timestamp":"2025-04-28T14:57:46.331Z"}
+{"level":"info","message":"Nonce f6956f9ea5b318c9fd175fdface4b790 сохранен для адреса 0xF45aa4917b3775bA37f48Aeb3dc1a943561e9e0B","timestamp":"2025-04-28T14:57:46.364Z"}
+{"level":"info","message":"POST /api/auth/verify","timestamp":"2025-04-28T14:57:47.356Z"}
+{"level":"info","message":"[verify] Verifying signature for address: 0xF45aa4917b3775bA37f48Aeb3dc1a943561e9e0B","timestamp":"2025-04-28T14:57:47.357Z"}
+{"level":"info","message":"Checking admin role for address: 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-28T14:57:47.476Z"}
+{"address":"0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","balance":"500000.0","contract":"0x4B294265720B09ca39BFBA18c7E368413c0f68eB","hasTokens":true,"level":"info","message":"Token balance on bsc:","timestamp":"2025-04-28T14:57:48.712Z"}
+{"level":"info","message":"Found admin tokens on bsc","timestamp":"2025-04-28T14:57:48.712Z"}
+{"address":"0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","balance":"454852.0","contract":"0x351f59de4fedbdf7601f5592b93db3b9330c1c1d","hasTokens":true,"level":"info","message":"Token balance on polygon:","timestamp":"2025-04-28T14:57:48.807Z"}
+{"level":"info","message":"Found admin tokens on polygon","timestamp":"2025-04-28T14:57:48.808Z"}
+{"address":"0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","balance":"499999.9","contract":"0xdce769b847a0a697239777d0b1c7dd33b6012ba0","hasTokens":true,"level":"info","message":"Token balance on arbitrum:","timestamp":"2025-04-28T14:57:48.846Z"}
+{"level":"info","message":"Found admin tokens on arbitrum","timestamp":"2025-04-28T14:57:48.846Z"}
+{"address":"0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","balance":"1500000.0","contract":"0xd95a45fc46a7300e6022885afec3d618d7d3f27c","hasTokens":true,"level":"info","message":"Token balance on eth:","timestamp":"2025-04-28T14:57:48.849Z"}
+{"level":"info","message":"Found admin tokens on eth","timestamp":"2025-04-28T14:57:48.849Z"}
+{"balances":{"arbitrum":"499999.9","bsc":"500000.0","eth":"1500000.0","polygon":"454852.0"},"level":"info","message":"Admin role summary for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b:","networks":["bsc","polygon","arbitrum","eth"],"timestamp":"2025-04-28T14:57:48.850Z"}
+{"level":"info","message":"Admin role granted for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-28T14:57:48.850Z"}
+{"level":"info","message":"[verify] Found or created user 1 for wallet 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-28T14:57:48.851Z"}
+{"level":"info","message":"[IdentityService] Converting guest identity for user 1 to guest_user_mapping: 1745852262561-8ruitvvmj","timestamp":"2025-04-28T14:57:48.852Z"}
+{"level":"info","message":"Checking admin tokens for address: 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-28T14:57:48.859Z"}
+{"level":"info","message":"Checking admin role for address: 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-28T14:57:48.859Z"}
+{"address":"0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","balance":"500000.0","contract":"0x4B294265720B09ca39BFBA18c7E368413c0f68eB","hasTokens":true,"level":"info","message":"Token balance on bsc:","timestamp":"2025-04-28T14:57:49.206Z"}
+{"level":"info","message":"Found admin tokens on bsc","timestamp":"2025-04-28T14:57:49.207Z"}
+{"address":"0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","balance":"1500000.0","contract":"0xd95a45fc46a7300e6022885afec3d618d7d3f27c","hasTokens":true,"level":"info","message":"Token balance on eth:","timestamp":"2025-04-28T14:57:49.341Z"}
+{"level":"info","message":"Found admin tokens on eth","timestamp":"2025-04-28T14:57:49.342Z"}
+{"address":"0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","balance":"454852.0","contract":"0x351f59de4fedbdf7601f5592b93db3b9330c1c1d","hasTokens":true,"level":"info","message":"Token balance on polygon:","timestamp":"2025-04-28T14:57:49.367Z"}
+{"level":"info","message":"Found admin tokens on polygon","timestamp":"2025-04-28T14:57:49.368Z"}
+{"address":"0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","balance":"499999.9","contract":"0xdce769b847a0a697239777d0b1c7dd33b6012ba0","hasTokens":true,"level":"info","message":"Token balance on arbitrum:","timestamp":"2025-04-28T14:57:49.550Z"}
+{"level":"info","message":"Found admin tokens on arbitrum","timestamp":"2025-04-28T14:57:49.551Z"}
+{"balances":{"arbitrum":"499999.9","bsc":"500000.0","eth":"1500000.0","polygon":"454852.0"},"level":"info","message":"Admin role summary for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b:","networks":["bsc","eth","polygon","arbitrum"],"timestamp":"2025-04-28T14:57:49.551Z"}
+{"level":"info","message":"Admin role granted for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-28T14:57:49.551Z"}
+{"level":"info","message":"Updated user 1 role to admin based on token holdings","timestamp":"2025-04-28T14:57:49.558Z"}
+{"address":"0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","authType":"wallet","authenticated":true,"cookie":{"expires":"2025-05-28T14:57:42.989Z","httpOnly":true,"originalMaxAge":2592000000,"path":"/","sameSite":"lax","secure":false},"guestId":"1745852262561-8ruitvvmj","isAdmin":true,"level":"info","message":"[SessionService] Saving session data:","timestamp":"2025-04-28T14:57:49.562Z","userId":1}
+{"level":"info","message":"Session saved successfully","timestamp":"2025-04-28T14:57:49.566Z"}
+{"level":"info","message":"[linkGuestMessages] Starting for user 1 with guestId=1745852262561-8ruitvvmj, previousGuestId=undefined","timestamp":"2025-04-28T14:57:49.567Z"}
+{"level":"info","message":"[processGuestMessagesWrapper] Processing messages: userId=1, guestId=1745852262561-8ruitvvmj","timestamp":"2025-04-28T14:57:49.573Z"}
+{"level":"info","message":"Processing guest messages for user 1 with guest ID 1745852262561-8ruitvvmj","timestamp":"2025-04-28T14:57:49.575Z"}
+{"level":"info","message":"Found 1 guest messages for guest ID 1745852262561-8ruitvvmj","timestamp":"2025-04-28T14:57:49.586Z"}
+{"level":"info","message":"Created new conversation 2 for guest messages","timestamp":"2025-04-28T14:57:49.591Z"}
+{"level":"info","message":"Processing guest message ID 4: image (35).png","timestamp":"2025-04-28T14:57:49.592Z"}
+{"level":"info","message":"Saved user message with ID 2","timestamp":"2025-04-28T14:57:49.644Z"}
+{"level":"info","message":"Skipping AI response for guest message ID 4 (is_ai: false, hasContent: false)","timestamp":"2025-04-28T14:57:49.645Z"}
+{"level":"info","message":"Deleted 1 processed guest messages for guest ID 1745852262561-8ruitvvmj","timestamp":"2025-04-28T14:57:49.649Z"}
+{"level":"info","message":"Marked guest mapping as processed for guest ID 1745852262561-8ruitvvmj","timestamp":"2025-04-28T14:57:49.653Z"}
+{"level":"info","message":"[processGuestMessagesWrapper] Processing messages: userId=1, guestId=1745850508983-zb9xi0g4t","timestamp":"2025-04-28T14:57:49.657Z"}
+{"level":"info","message":"Processing guest messages for user 1 with guest ID 1745850508983-zb9xi0g4t","timestamp":"2025-04-28T14:57:49.658Z"}
+{"level":"info","message":"Found 2 guest messages for guest ID 1745850508983-zb9xi0g4t","timestamp":"2025-04-28T14:57:49.672Z"}
+{"level":"info","message":"Created new conversation 3 for guest messages","timestamp":"2025-04-28T14:57:49.677Z"}
+{"level":"info","message":"Processing guest message ID 1: шр","timestamp":"2025-04-28T14:57:49.677Z"}
+{"level":"info","message":"Saved user message with ID 3","timestamp":"2025-04-28T14:57:49.683Z"}
+{"level":"info","message":"Getting AI response for:","timestamp":"2025-04-28T14:57:49.684Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T14:57:53.877Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T14:57:53.882Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T14:58:24.113Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T14:58:24.123Z"}
+{"level":"info","message":"AI response received","timestamp":"2025-04-28T14:58:33.547Z"}
+{"level":"info","message":"Saved AI response with ID 4","timestamp":"2025-04-28T14:58:33.554Z"}
+{"level":"info","message":"Processing guest message ID 3: image (34).png","timestamp":"2025-04-28T14:58:33.555Z"}
+{"level":"info","message":"Saved user message with ID 5","timestamp":"2025-04-28T14:58:33.565Z"}
+{"level":"info","message":"Skipping AI response for guest message ID 3 (is_ai: false, hasContent: false)","timestamp":"2025-04-28T14:58:33.565Z"}
+{"level":"info","message":"Deleted 2 processed guest messages for guest ID 1745850508983-zb9xi0g4t","timestamp":"2025-04-28T14:58:33.568Z"}
+{"level":"info","message":"Marked guest mapping as processed for guest ID 1745850508983-zb9xi0g4t","timestamp":"2025-04-28T14:58:33.571Z"}
+{"address":"0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","authType":"wallet","authenticated":true,"cookie":{"expires":"2025-05-28T14:57:42.989Z","httpOnly":true,"originalMaxAge":2592000000,"path":"/","sameSite":"lax","secure":false},"guestId":"1745852262561-8ruitvvmj","isAdmin":true,"level":"info","message":"[SessionService] Saving session data:","processedGuestIds":["1745852262561-8ruitvvmj","1745850508983-zb9xi0g4t"],"timestamp":"2025-04-28T14:58:33.574Z","userId":1}
+{"level":"info","message":"Session saved successfully","timestamp":"2025-04-28T14:58:33.577Z"}
+{"level":"info","message":"GET /api/auth/check","timestamp":"2025-04-28T14:58:33.591Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T14:58:33.593Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T14:58:33.616Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T14:58:33.621Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T14:58:33.639Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T14:58:33.642Z"}
+{"level":"info","message":"GET /api/tokens/balances?address=0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-28T14:58:33.646Z"}
+{"level":"info","message":"Fetching token balances for address: 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-28T14:58:33.647Z"}
+{"balance":"1500000.0","contract":"0xd95a45fc46a7300e6022885afec3d618d7d3f27c","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on eth:","timestamp":"2025-04-28T14:58:34.886Z"}
+{"level":"info","message":"GET /api/auth/check","timestamp":"2025-04-28T14:58:35.429Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T14:58:35.433Z"}
+{"level":"info","message":"GET /api/chat/history?count_only=true","timestamp":"2025-04-28T14:58:35.457Z"}
+{"level":"info","message":"GET /api/chat/history?offset=0&limit=30","timestamp":"2025-04-28T14:58:35.481Z"}
+{"level":"error","message":"Error fetching message history for user 1: syntax error at or near \"$\"","stack":"error: syntax error at or near \"$\"\n at /app/node_modules/pg-pool/index.js:45:11\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n at async /app/routes/chat.js:484:20","timestamp":"2025-04-28T14:58:35.485Z"}
+{"balance":"500000.0","contract":"0x4B294265720B09ca39BFBA18c7E368413c0f68eB","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on bsc:","timestamp":"2025-04-28T14:58:36.344Z"}
+{"balance":"499999.9","contract":"0xdce769b847a0a697239777d0b1c7dd33b6012ba0","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on arbitrum:","timestamp":"2025-04-28T14:58:37.800Z"}
+{"balance":"454852.0","contract":"0x351f59de4fedbdf7601f5592b93db3b9330c1c1d","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on polygon:","timestamp":"2025-04-28T14:58:39.586Z"}
+{"arbitrum":"499999.9","bsc":"500000.0","eth":"1500000.0","level":"info","message":"Token balances fetched for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b:","polygon":"454852.0","timestamp":"2025-04-28T14:58:39.587Z"}
+{"level":"info","message":"GET /api/tokens/balances?address=0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-28T14:58:39.601Z"}
+{"level":"info","message":"Fetching token balances for address: 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-28T14:58:39.602Z"}
+{"balance":"1500000.0","contract":"0xd95a45fc46a7300e6022885afec3d618d7d3f27c","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on eth:","timestamp":"2025-04-28T14:58:40.220Z"}
+{"balance":"500000.0","contract":"0x4B294265720B09ca39BFBA18c7E368413c0f68eB","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on bsc:","timestamp":"2025-04-28T14:58:40.658Z"}
+{"balance":"499999.9","contract":"0xdce769b847a0a697239777d0b1c7dd33b6012ba0","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on arbitrum:","timestamp":"2025-04-28T14:58:41.521Z"}
+{"balance":"454852.0","contract":"0x351f59de4fedbdf7601f5592b93db3b9330c1c1d","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on polygon:","timestamp":"2025-04-28T14:58:42.085Z"}
+{"arbitrum":"499999.9","bsc":"500000.0","eth":"1500000.0","level":"info","message":"Token balances fetched for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b:","polygon":"454852.0","timestamp":"2025-04-28T14:58:42.085Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T14:58:54.342Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T14:58:54.346Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T14:58:54.381Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T14:58:54.384Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T14:59:24.973Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T14:59:24.978Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T14:59:24.993Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T14:59:24.996Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T14:59:55.183Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T14:59:55.188Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T14:59:55.202Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T14:59:55.205Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T15:00:24.998Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T15:00:25.008Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T15:00:25.037Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T15:00:25.043Z"}
+{"level":"info","message":"POST /api/auth/logout","timestamp":"2025-04-28T15:00:27.747Z"}
+{"address":null,"authType":null,"authenticated":false,"cookie":{"expires":"2025-05-28T14:57:42.989Z","httpOnly":true,"originalMaxAge":2592000000,"path":"/","sameSite":"lax","secure":false},"email":null,"guestId":null,"isAdmin":false,"level":"info","message":"[SessionService] Saving session data:","pendingEmail":null,"previousGuestId":null,"processedGuestIds":[],"telegramId":null,"timestamp":"2025-04-28T15:00:27.749Z","userId":null}
+{"level":"info","message":"Session saved successfully","timestamp":"2025-04-28T15:00:27.754Z"}
+{"level":"info","message":"POST /api/chat/guest-message","timestamp":"2025-04-28T15:00:42.015Z"}
+{"level":"info","message":"Received /guest-message request","timestamp":"2025-04-28T15:00:42.027Z"}
+{"file":"image (3).png","guestId":"1745852442788-p2tv0lcbo","level":"info","message":"Saving guest message:","mimetype":"image/png","size":29740,"timestamp":"2025-04-28T15:00:42.066Z"}
+{"level":"info","message":"Guest message saved with ID:","timestamp":"2025-04-28T15:00:42.096Z"}
+{"level":"info","message":"Session saved after guest message","timestamp":"2025-04-28T15:00:42.101Z"}
+{"level":"info","message":"GET /api/auth/nonce?address=0xF45aa4917b3775bA37f48Aeb3dc1a943561e9e0B","timestamp":"2025-04-28T15:00:44.198Z"}
+{"level":"info","message":"Nonce adf09072890b006ebd93227861050e9f сохранен для адреса 0xF45aa4917b3775bA37f48Aeb3dc1a943561e9e0B","timestamp":"2025-04-28T15:00:44.226Z"}
+{"level":"info","message":"POST /api/auth/verify","timestamp":"2025-04-28T15:00:46.946Z"}
+{"level":"info","message":"[verify] Verifying signature for address: 0xF45aa4917b3775bA37f48Aeb3dc1a943561e9e0B","timestamp":"2025-04-28T15:00:46.948Z"}
+{"level":"info","message":"Checking admin role for address: 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-28T15:00:47.060Z"}
+{"address":"0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","balance":"499999.9","contract":"0xdce769b847a0a697239777d0b1c7dd33b6012ba0","hasTokens":true,"level":"info","message":"Token balance on arbitrum:","timestamp":"2025-04-28T15:00:48.313Z"}
+{"level":"info","message":"Found admin tokens on arbitrum","timestamp":"2025-04-28T15:00:48.314Z"}
+{"address":"0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","balance":"1500000.0","contract":"0xd95a45fc46a7300e6022885afec3d618d7d3f27c","hasTokens":true,"level":"info","message":"Token balance on eth:","timestamp":"2025-04-28T15:00:48.377Z"}
+{"level":"info","message":"Found admin tokens on eth","timestamp":"2025-04-28T15:00:48.378Z"}
+{"address":"0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","balance":"500000.0","contract":"0x4B294265720B09ca39BFBA18c7E368413c0f68eB","hasTokens":true,"level":"info","message":"Token balance on bsc:","timestamp":"2025-04-28T15:00:48.381Z"}
+{"level":"info","message":"Found admin tokens on bsc","timestamp":"2025-04-28T15:00:48.382Z"}
+{"address":"0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","balance":"454852.0","contract":"0x351f59de4fedbdf7601f5592b93db3b9330c1c1d","hasTokens":true,"level":"info","message":"Token balance on polygon:","timestamp":"2025-04-28T15:00:48.673Z"}
+{"level":"info","message":"Found admin tokens on polygon","timestamp":"2025-04-28T15:00:48.673Z"}
+{"balances":{"arbitrum":"499999.9","bsc":"500000.0","eth":"1500000.0","polygon":"454852.0"},"level":"info","message":"Admin role summary for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b:","networks":["arbitrum","eth","bsc","polygon"],"timestamp":"2025-04-28T15:00:48.674Z"}
+{"level":"info","message":"Admin role granted for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-28T15:00:48.674Z"}
+{"level":"info","message":"[verify] Found or created user 1 for wallet 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-28T15:00:48.675Z"}
+{"level":"info","message":"[IdentityService] Converting guest identity for user 1 to guest_user_mapping: 1745852442788-p2tv0lcbo","timestamp":"2025-04-28T15:00:48.676Z"}
+{"level":"info","message":"Checking admin tokens for address: 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-28T15:00:48.776Z"}
+{"level":"info","message":"Checking admin role for address: 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-28T15:00:48.777Z"}
+{"address":"0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","balance":"500000.0","contract":"0x4B294265720B09ca39BFBA18c7E368413c0f68eB","hasTokens":true,"level":"info","message":"Token balance on bsc:","timestamp":"2025-04-28T15:00:49.147Z"}
+{"level":"info","message":"Found admin tokens on bsc","timestamp":"2025-04-28T15:00:49.147Z"}
+{"address":"0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","balance":"1500000.0","contract":"0xd95a45fc46a7300e6022885afec3d618d7d3f27c","hasTokens":true,"level":"info","message":"Token balance on eth:","timestamp":"2025-04-28T15:00:49.262Z"}
+{"level":"info","message":"Found admin tokens on eth","timestamp":"2025-04-28T15:00:49.263Z"}
+{"address":"0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","balance":"454852.0","contract":"0x351f59de4fedbdf7601f5592b93db3b9330c1c1d","hasTokens":true,"level":"info","message":"Token balance on polygon:","timestamp":"2025-04-28T15:00:49.320Z"}
+{"level":"info","message":"Found admin tokens on polygon","timestamp":"2025-04-28T15:00:49.320Z"}
+{"address":"0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","balance":"499999.9","contract":"0xdce769b847a0a697239777d0b1c7dd33b6012ba0","hasTokens":true,"level":"info","message":"Token balance on arbitrum:","timestamp":"2025-04-28T15:00:49.589Z"}
+{"level":"info","message":"Found admin tokens on arbitrum","timestamp":"2025-04-28T15:00:49.589Z"}
+{"balances":{"arbitrum":"499999.9","bsc":"500000.0","eth":"1500000.0","polygon":"454852.0"},"level":"info","message":"Admin role summary for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b:","networks":["bsc","eth","polygon","arbitrum"],"timestamp":"2025-04-28T15:00:49.590Z"}
+{"level":"info","message":"Admin role granted for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-28T15:00:49.590Z"}
+{"level":"info","message":"Updated user 1 role to admin based on token holdings","timestamp":"2025-04-28T15:00:49.597Z"}
+{"address":"0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","authType":"wallet","authenticated":true,"cookie":{"expires":"2025-05-28T15:00:42.010Z","httpOnly":true,"originalMaxAge":2592000000,"path":"/","sameSite":"lax","secure":false},"guestId":"1745852442788-p2tv0lcbo","isAdmin":true,"level":"info","message":"[SessionService] Saving session data:","timestamp":"2025-04-28T15:00:49.601Z","userId":1}
+{"level":"info","message":"Session saved successfully","timestamp":"2025-04-28T15:00:49.608Z"}
+{"level":"info","message":"[linkGuestMessages] Starting for user 1 with guestId=1745852442788-p2tv0lcbo, previousGuestId=undefined","timestamp":"2025-04-28T15:00:49.609Z"}
+{"level":"info","message":"[processGuestMessagesWrapper] Processing messages: userId=1, guestId=1745852442788-p2tv0lcbo","timestamp":"2025-04-28T15:00:49.615Z"}
+{"level":"info","message":"Processing guest messages for user 1 with guest ID 1745852442788-p2tv0lcbo","timestamp":"2025-04-28T15:00:49.616Z"}
+{"level":"info","message":"Found 1 guest messages for guest ID 1745852442788-p2tv0lcbo","timestamp":"2025-04-28T15:00:49.625Z"}
+{"level":"info","message":"Created new conversation 4 for guest messages","timestamp":"2025-04-28T15:00:49.639Z"}
+{"level":"info","message":"Processing guest message ID 5: image (3).png","timestamp":"2025-04-28T15:00:49.640Z"}
+{"level":"info","message":"Saved user message with ID 6","timestamp":"2025-04-28T15:00:49.653Z"}
+{"level":"info","message":"Skipping AI response for guest message ID 5 (is_ai: false, hasContent: false)","timestamp":"2025-04-28T15:00:49.654Z"}
+{"level":"info","message":"Deleted 1 processed guest messages for guest ID 1745852442788-p2tv0lcbo","timestamp":"2025-04-28T15:00:49.660Z"}
+{"level":"info","message":"Marked guest mapping as processed for guest ID 1745852442788-p2tv0lcbo","timestamp":"2025-04-28T15:00:49.665Z"}
+{"level":"info","message":"[processGuestMessagesWrapper] Processing messages: userId=1, guestId=1745850508983-zb9xi0g4t","timestamp":"2025-04-28T15:00:49.671Z"}
+{"level":"info","message":"Processing guest messages for user 1 with guest ID 1745850508983-zb9xi0g4t","timestamp":"2025-04-28T15:00:49.671Z"}
+{"level":"info","message":"Guest messages for guest ID 1745850508983-zb9xi0g4t were already processed.","timestamp":"2025-04-28T15:00:49.674Z"}
+{"level":"info","message":"[processGuestMessagesWrapper] Processing messages: userId=1, guestId=1745852262561-8ruitvvmj","timestamp":"2025-04-28T15:00:49.678Z"}
+{"level":"info","message":"Processing guest messages for user 1 with guest ID 1745852262561-8ruitvvmj","timestamp":"2025-04-28T15:00:49.679Z"}
+{"level":"info","message":"Guest messages for guest ID 1745852262561-8ruitvvmj were already processed.","timestamp":"2025-04-28T15:00:49.682Z"}
+{"address":"0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","authType":"wallet","authenticated":true,"cookie":{"expires":"2025-05-28T15:00:42.010Z","httpOnly":true,"originalMaxAge":2592000000,"path":"/","sameSite":"lax","secure":false},"guestId":"1745852442788-p2tv0lcbo","isAdmin":true,"level":"info","message":"[SessionService] Saving session data:","processedGuestIds":["1745852442788-p2tv0lcbo","1745850508983-zb9xi0g4t","1745852262561-8ruitvvmj"],"timestamp":"2025-04-28T15:00:49.686Z","userId":1}
+{"level":"info","message":"Session saved successfully","timestamp":"2025-04-28T15:00:49.690Z"}
+{"level":"info","message":"GET /api/auth/check","timestamp":"2025-04-28T15:00:49.709Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T15:00:49.713Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T15:00:49.743Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T15:00:49.752Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T15:00:49.776Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T15:00:49.779Z"}
+{"level":"info","message":"GET /api/tokens/balances?address=0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-28T15:00:49.790Z"}
+{"level":"info","message":"Fetching token balances for address: 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-28T15:00:49.793Z"}
+{"balance":"1500000.0","contract":"0xd95a45fc46a7300e6022885afec3d618d7d3f27c","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on eth:","timestamp":"2025-04-28T15:00:50.282Z"}
+{"balance":"500000.0","contract":"0x4B294265720B09ca39BFBA18c7E368413c0f68eB","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on bsc:","timestamp":"2025-04-28T15:00:50.671Z"}
+{"level":"info","message":"GET /api/auth/check","timestamp":"2025-04-28T15:00:50.848Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T15:00:50.851Z"}
+{"level":"info","message":"GET /api/chat/history?count_only=true","timestamp":"2025-04-28T15:00:50.870Z"}
+{"level":"info","message":"GET /api/chat/history?offset=0&limit=30","timestamp":"2025-04-28T15:00:50.886Z"}
+{"count":6,"level":"info","limit":30,"message":"Returning message history for user 1","offset":0,"timestamp":"2025-04-28T15:00:50.897Z","total":6}
+{"balance":"499999.9","contract":"0xdce769b847a0a697239777d0b1c7dd33b6012ba0","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on arbitrum:","timestamp":"2025-04-28T15:00:51.392Z"}
+{"balance":"454852.0","contract":"0x351f59de4fedbdf7601f5592b93db3b9330c1c1d","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on polygon:","timestamp":"2025-04-28T15:00:51.876Z"}
+{"arbitrum":"499999.9","bsc":"500000.0","eth":"1500000.0","level":"info","message":"Token balances fetched for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b:","polygon":"454852.0","timestamp":"2025-04-28T15:00:51.876Z"}
+{"level":"info","message":"GET /api/tokens/balances?address=0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-28T15:00:51.892Z"}
+{"level":"info","message":"Fetching token balances for address: 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-28T15:00:51.893Z"}
+{"balance":"1500000.0","contract":"0xd95a45fc46a7300e6022885afec3d618d7d3f27c","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on eth:","timestamp":"2025-04-28T15:00:52.427Z"}
+{"balance":"500000.0","contract":"0x4B294265720B09ca39BFBA18c7E368413c0f68eB","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on bsc:","timestamp":"2025-04-28T15:00:52.856Z"}
+{"balance":"499999.9","contract":"0xdce769b847a0a697239777d0b1c7dd33b6012ba0","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on arbitrum:","timestamp":"2025-04-28T15:00:53.758Z"}
+{"balance":"454852.0","contract":"0x351f59de4fedbdf7601f5592b93db3b9330c1c1d","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on polygon:","timestamp":"2025-04-28T15:00:54.320Z"}
+{"arbitrum":"499999.9","bsc":"500000.0","eth":"1500000.0","level":"info","message":"Token balances fetched for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b:","polygon":"454852.0","timestamp":"2025-04-28T15:00:54.320Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T15:00:55.243Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T15:00:55.245Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T15:00:55.270Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T15:00:55.273Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T15:01:25.388Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T15:01:25.393Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T15:01:25.410Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T15:01:25.413Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T15:01:56.015Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T15:01:56.020Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T15:01:56.048Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T15:01:56.051Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T15:02:23.789Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T15:02:23.794Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T15:02:23.815Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T15:02:23.820Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T15:03:25.219Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T15:03:25.223Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T15:03:25.238Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T15:03:25.241Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T15:04:26.852Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T15:04:26.856Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T15:04:26.877Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T15:04:26.882Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T15:05:27.350Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T15:05:27.357Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T15:05:27.395Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T15:05:27.399Z"}
+{"level":"info","message":"GET /api/tokens/balances?address=0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-28T15:05:49.908Z"}
+{"level":"info","message":"Fetching token balances for address: 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-28T15:05:49.909Z"}
+{"balance":"1500000.0","contract":"0xd95a45fc46a7300e6022885afec3d618d7d3f27c","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on eth:","timestamp":"2025-04-28T15:05:51.671Z"}
+{"balance":"500000.0","contract":"0x4B294265720B09ca39BFBA18c7E368413c0f68eB","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on bsc:","timestamp":"2025-04-28T15:05:53.470Z"}
+{"balance":"499999.9","contract":"0xdce769b847a0a697239777d0b1c7dd33b6012ba0","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on arbitrum:","timestamp":"2025-04-28T15:05:55.273Z"}
+{"balance":"454852.0","contract":"0x351f59de4fedbdf7601f5592b93db3b9330c1c1d","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on polygon:","timestamp":"2025-04-28T15:05:57.412Z"}
+{"arbitrum":"499999.9","bsc":"500000.0","eth":"1500000.0","level":"info","message":"Token balances fetched for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b:","polygon":"454852.0","timestamp":"2025-04-28T15:05:57.412Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T15:06:27.718Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T15:06:27.726Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T15:06:27.767Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T15:06:27.772Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T15:07:27.317Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T15:07:27.324Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T15:07:27.364Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T15:07:27.368Z"}
+{"level":"info","message":"POST /api/chat/message","timestamp":"2025-04-28T15:07:38.701Z"}
+{"level":"info","message":"Received /message request","timestamp":"2025-04-28T15:07:38.707Z"}
+{"conversationId":5,"level":"info","message":"Created new conversation","timestamp":"2025-04-28T15:07:38.723Z","userId":1}
+{"conversationId":5,"level":"info","message":"User message saved","messageId":7,"timestamp":"2025-04-28T15:07:38.734Z"}
+{"level":"info","message":"Getting AI response for:","timestamp":"2025-04-28T15:07:38.735Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T15:07:56.808Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T15:07:56.817Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T15:07:56.837Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T15:07:56.842Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T15:08:25.304Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T15:08:23.668Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T15:08:23.693Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T15:08:23.699Z"}
+{"conversationId":5,"level":"info","message":"AI response received","timestamp":"2025-04-28T15:08:25.059Z"}
+{"conversationId":5,"level":"info","message":"AI response saved","messageId":8,"timestamp":"2025-04-28T15:08:25.087Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T15:08:53.390Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T15:08:53.399Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T15:08:53.439Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T15:08:53.444Z"}
+{"level":"info","message":"GET /api/auth/check","timestamp":"2025-04-28T15:09:24.053Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T15:09:24.067Z"}
+{"level":"info","message":"GET /api/auth/check","timestamp":"2025-04-28T15:09:24.117Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T15:09:24.121Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T15:09:24.145Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T15:09:24.155Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T15:09:24.176Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T15:09:24.180Z"}
+{"level":"info","message":"GET /api/tokens/balances?address=0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-28T15:09:24.215Z"}
+{"level":"info","message":"Fetching token balances for address: 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-28T15:09:24.216Z"}
+{"level":"info","message":"GET /api/auth/check","timestamp":"2025-04-28T15:09:24.228Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T15:09:24.242Z"}
+{"level":"info","message":"GET /api/auth/check","timestamp":"2025-04-28T15:09:24.265Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T15:09:24.268Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T15:09:24.341Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T15:09:24.346Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T15:09:24.366Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T15:09:24.370Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T15:09:24.390Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T15:09:24.393Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T15:09:24.407Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T15:09:24.409Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T15:09:24.422Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T15:09:24.425Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T15:09:24.436Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T15:09:24.440Z"}
+{"level":"info","message":"GET /api/auth/check","timestamp":"2025-04-28T15:09:25.237Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T15:09:25.241Z"}
+{"level":"info","message":"GET /api/chat/history?count_only=true","timestamp":"2025-04-28T15:09:25.267Z"}
+{"level":"info","message":"GET /api/chat/history?offset=0&limit=30","timestamp":"2025-04-28T15:09:25.294Z"}
+{"count":8,"level":"info","limit":30,"message":"Returning message history for user 1","offset":0,"timestamp":"2025-04-28T15:09:25.322Z","total":8}
+{"balance":"1500000.0","contract":"0xd95a45fc46a7300e6022885afec3d618d7d3f27c","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on eth:","timestamp":"2025-04-28T15:09:26.118Z"}
+{"balance":"500000.0","contract":"0x4B294265720B09ca39BFBA18c7E368413c0f68eB","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on bsc:","timestamp":"2025-04-28T15:09:27.253Z"}
+{"balance":"499999.9","contract":"0xdce769b847a0a697239777d0b1c7dd33b6012ba0","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on arbitrum:","timestamp":"2025-04-28T15:09:29.595Z"}
+{"balance":"454852.0","contract":"0x351f59de4fedbdf7601f5592b93db3b9330c1c1d","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on polygon:","timestamp":"2025-04-28T15:09:31.390Z"}
+{"arbitrum":"499999.9","bsc":"500000.0","eth":"1500000.0","level":"info","message":"Token balances fetched for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b:","polygon":"454852.0","timestamp":"2025-04-28T15:09:31.390Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T15:09:55.301Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T15:09:55.310Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T15:09:55.331Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T15:09:55.337Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T15:10:27.137Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T15:10:27.144Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T15:10:27.180Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T15:10:27.185Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T15:10:55.296Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T15:10:55.304Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T15:10:55.340Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T15:10:55.344Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T15:11:25.877Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T15:11:25.885Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T15:11:25.905Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T15:11:25.909Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T15:11:56.701Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T15:11:56.709Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T15:11:56.739Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T15:11:56.743Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T15:12:23.864Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T15:12:23.870Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T15:12:23.903Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T15:12:23.909Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T15:12:56.582Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T15:12:56.590Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T15:12:56.630Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T15:12:56.635Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T15:13:25.786Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T15:13:25.807Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T15:13:25.858Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T15:13:25.862Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T15:13:56.065Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T15:13:56.077Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T15:13:56.102Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T15:13:56.106Z"}
+{"level":"info","message":"GET /api/tokens/balances?address=0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-28T15:14:26.605Z"}
+{"level":"info","message":"Fetching token balances for address: 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-28T15:14:26.606Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T15:14:26.614Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T15:14:26.627Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T15:14:26.650Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T15:14:26.653Z"}
+{"balance":"1500000.0","contract":"0xd95a45fc46a7300e6022885afec3d618d7d3f27c","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on eth:","timestamp":"2025-04-28T15:14:28.119Z"}
+{"balance":"500000.0","contract":"0x4B294265720B09ca39BFBA18c7E368413c0f68eB","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on bsc:","timestamp":"2025-04-28T15:14:27.542Z"}
+{"balance":"499999.9","contract":"0xdce769b847a0a697239777d0b1c7dd33b6012ba0","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on arbitrum:","timestamp":"2025-04-28T15:14:28.834Z"}
+{"balance":"454852.0","contract":"0x351f59de4fedbdf7601f5592b93db3b9330c1c1d","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on polygon:","timestamp":"2025-04-28T15:14:30.231Z"}
+{"arbitrum":"499999.9","bsc":"500000.0","eth":"1500000.0","level":"info","message":"Token balances fetched for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b:","polygon":"454852.0","timestamp":"2025-04-28T15:14:30.231Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T15:14:54.670Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T15:14:54.675Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T15:14:54.689Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T15:14:54.692Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T15:15:24.164Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T15:15:24.172Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T15:15:24.199Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T15:15:24.208Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T15:15:54.316Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T15:15:54.324Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T15:15:54.362Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T15:15:54.366Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T15:16:25.127Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T15:16:25.135Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T15:16:25.158Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T15:16:25.163Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T15:16:55.307Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T15:16:55.314Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T15:16:55.354Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T15:16:55.358Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T15:17:25.474Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T15:17:25.482Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T15:17:25.505Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T15:17:25.510Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T15:18:27.006Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T15:18:27.012Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T15:18:27.033Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T15:18:27.042Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T15:18:55.388Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T15:18:55.396Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T15:18:55.421Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T15:18:55.427Z"}
+{"level":"info","message":"GET /api/auth/check","timestamp":"2025-04-28T15:19:26.019Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T15:19:26.025Z"}
+{"level":"info","message":"GET /api/auth/check","timestamp":"2025-04-28T15:19:26.078Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T15:19:26.086Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T15:19:26.113Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T15:19:26.120Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T15:19:26.145Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T15:19:26.151Z"}
+{"level":"info","message":"GET /api/auth/check","timestamp":"2025-04-28T15:19:26.178Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T15:19:26.183Z"}
+{"level":"info","message":"GET /api/auth/check","timestamp":"2025-04-28T15:19:26.209Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T15:19:26.214Z"}
+{"level":"info","message":"GET /api/tokens/balances?address=0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-28T15:19:26.216Z"}
+{"level":"info","message":"Fetching token balances for address: 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-28T15:19:26.218Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T15:19:26.270Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T15:19:26.280Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T15:19:26.328Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T15:19:26.333Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T15:19:26.351Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T15:19:26.355Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T15:19:26.376Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T15:19:26.379Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T15:19:26.400Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T15:19:26.406Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T15:19:26.434Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T15:19:26.438Z"}
+{"level":"info","message":"GET /api/auth/check","timestamp":"2025-04-28T15:19:27.210Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T15:19:27.214Z"}
+{"level":"info","message":"GET /api/chat/history?count_only=true","timestamp":"2025-04-28T15:19:27.273Z"}
+{"level":"info","message":"GET /api/chat/history?offset=0&limit=30","timestamp":"2025-04-28T15:19:27.298Z"}
+{"count":8,"level":"info","limit":30,"message":"Returning message history for user 1","offset":0,"timestamp":"2025-04-28T15:19:27.322Z","total":8}
+{"balance":"1500000.0","contract":"0xd95a45fc46a7300e6022885afec3d618d7d3f27c","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on eth:","timestamp":"2025-04-28T15:19:27.563Z"}
+{"balance":"500000.0","contract":"0x4B294265720B09ca39BFBA18c7E368413c0f68eB","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on bsc:","timestamp":"2025-04-28T15:19:28.777Z"}
+{"balance":"499999.9","contract":"0xdce769b847a0a697239777d0b1c7dd33b6012ba0","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on arbitrum:","timestamp":"2025-04-28T15:19:30.213Z"}
+{"balance":"454852.0","contract":"0x351f59de4fedbdf7601f5592b93db3b9330c1c1d","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on polygon:","timestamp":"2025-04-28T15:19:31.979Z"}
+{"arbitrum":"499999.9","bsc":"500000.0","eth":"1500000.0","level":"info","message":"Token balances fetched for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b:","polygon":"454852.0","timestamp":"2025-04-28T15:19:31.979Z"}
+{"level":"info","message":"POST /api/chat/message","timestamp":"2025-04-28T15:19:41.945Z"}
+{"level":"info","message":"Received /message request","timestamp":"2025-04-28T15:19:41.957Z"}
+{"conversationId":6,"level":"info","message":"Created new conversation","timestamp":"2025-04-28T15:19:42.198Z","userId":1}
+{"conversationId":6,"level":"info","message":"User message saved","messageId":9,"timestamp":"2025-04-28T15:19:42.218Z"}
+{"level":"info","message":"POST /api/chat/message","timestamp":"2025-04-28T15:19:52.990Z"}
+{"level":"info","message":"Received /message request","timestamp":"2025-04-28T15:19:53.018Z"}
+{"conversationId":7,"level":"info","message":"Created new conversation","timestamp":"2025-04-28T15:19:54.038Z","userId":1}
+{"conversationId":7,"level":"info","message":"User message saved","messageId":10,"timestamp":"2025-04-28T15:19:54.199Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T15:19:56.482Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T15:19:56.488Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T15:19:56.547Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T15:19:56.551Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T15:20:27.729Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T15:20:27.737Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T15:20:27.760Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T15:20:27.766Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T15:20:56.971Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T15:20:56.980Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T15:20:57.003Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T15:20:57.007Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T15:21:25.868Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T15:21:25.876Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T15:21:25.898Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T15:21:25.901Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T15:21:55.975Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T15:21:55.982Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T15:21:55.999Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T15:21:56.007Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T15:22:26.253Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T15:22:26.260Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T15:22:26.301Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T15:22:26.309Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T15:22:55.318Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T15:22:55.323Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T15:22:55.356Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T15:22:55.359Z"}
+{"level":"info","message":"POST /api/chat/message","timestamp":"2025-04-28T15:23:01.058Z"}
+{"level":"info","message":"Received /message request","timestamp":"2025-04-28T15:23:01.075Z"}
+{"conversationId":8,"level":"info","message":"Created new conversation","timestamp":"2025-04-28T15:23:01.230Z","userId":1}
+{"conversationId":8,"level":"info","message":"User message saved","messageId":11,"timestamp":"2025-04-28T15:23:01.249Z"}
+{"level":"info","message":"POST /api/chat/message","timestamp":"2025-04-28T15:23:11.656Z"}
+{"level":"info","message":"Received /message request","timestamp":"2025-04-28T15:23:11.664Z"}
+{"conversationId":9,"level":"info","message":"Created new conversation","timestamp":"2025-04-28T15:23:11.837Z","userId":1}
+{"conversationId":9,"level":"info","message":"User message saved","messageId":12,"timestamp":"2025-04-28T15:23:11.868Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T15:23:25.514Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T15:23:25.522Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T15:23:25.548Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T15:23:25.552Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T15:23:56.707Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T15:23:56.736Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T15:23:56.757Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T15:23:56.764Z"}
+{"level":"info","message":"GET /api/tokens/balances?address=0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-28T15:24:25.827Z"}
+{"level":"info","message":"Fetching token balances for address: 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-28T15:24:25.828Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T15:24:26.890Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T15:24:26.901Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T15:24:27.044Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T15:24:27.048Z"}
+{"balance":"1500000.0","contract":"0xd95a45fc46a7300e6022885afec3d618d7d3f27c","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on eth:","timestamp":"2025-04-28T15:24:27.388Z"}
+{"balance":"500000.0","contract":"0x4B294265720B09ca39BFBA18c7E368413c0f68eB","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on bsc:","timestamp":"2025-04-28T15:24:29.176Z"}
+{"balance":"499999.9","contract":"0xdce769b847a0a697239777d0b1c7dd33b6012ba0","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on arbitrum:","timestamp":"2025-04-28T15:24:30.801Z"}
+{"balance":"454852.0","contract":"0x351f59de4fedbdf7601f5592b93db3b9330c1c1d","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on polygon:","timestamp":"2025-04-28T15:24:32.558Z"}
+{"arbitrum":"499999.9","bsc":"500000.0","eth":"1500000.0","level":"info","message":"Token balances fetched for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b:","polygon":"454852.0","timestamp":"2025-04-28T15:24:32.558Z"}
+{"level":"info","message":"GET /api/auth/check","timestamp":"2025-04-28T16:43:06.760Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T16:43:06.779Z"}
+{"level":"info","message":"GET /api/auth/check","timestamp":"2025-04-28T16:43:06.797Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T16:43:06.802Z"}
+{"level":"info","message":"GET /api/tokens/balances?address=0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-28T16:43:06.824Z"}
+{"level":"info","message":"Fetching token balances for address: 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-28T16:43:06.826Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T16:43:06.837Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T16:43:06.841Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T16:43:06.851Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T16:43:06.854Z"}
+{"level":"info","message":"GET /api/auth/check","timestamp":"2025-04-28T16:43:06.862Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T16:43:06.864Z"}
+{"level":"info","message":"GET /api/auth/check","timestamp":"2025-04-28T16:43:06.909Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T16:43:06.910Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T16:43:06.921Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T16:43:06.922Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T16:43:06.932Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T16:43:06.935Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T16:43:06.950Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T16:43:06.952Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T16:43:06.964Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T16:43:06.966Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T16:43:06.978Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T16:43:06.979Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T16:43:06.990Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T16:43:06.993Z"}
+{"level":"info","message":"GET /api/auth/check","timestamp":"2025-04-28T16:43:07.821Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T16:43:07.822Z"}
+{"level":"info","message":"GET /api/chat/history?count_only=true","timestamp":"2025-04-28T16:43:07.834Z"}
+{"level":"info","message":"GET /api/chat/history?offset=0&limit=30","timestamp":"2025-04-28T16:43:07.854Z"}
+{"count":12,"level":"info","limit":30,"message":"Returning message history for user 1","offset":0,"timestamp":"2025-04-28T16:43:07.898Z","total":12}
+{"balance":"1500000.0","contract":"0xd95a45fc46a7300e6022885afec3d618d7d3f27c","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on eth:","timestamp":"2025-04-28T16:43:09.276Z"}
+{"balance":"500000.0","contract":"0x4B294265720B09ca39BFBA18c7E368413c0f68eB","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on bsc:","timestamp":"2025-04-28T16:43:10.496Z"}
+{"balance":"499999.9","contract":"0xdce769b847a0a697239777d0b1c7dd33b6012ba0","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on arbitrum:","timestamp":"2025-04-28T16:43:11.776Z"}
+{"balance":"454852.0","contract":"0x351f59de4fedbdf7601f5592b93db3b9330c1c1d","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on polygon:","timestamp":"2025-04-28T16:43:13.633Z"}
+{"arbitrum":"499999.9","bsc":"500000.0","eth":"1500000.0","level":"info","message":"Token balances fetched for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b:","polygon":"454852.0","timestamp":"2025-04-28T16:43:13.634Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T16:43:36.945Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T16:43:36.949Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T16:43:36.960Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T16:43:36.962Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T16:44:07.353Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T16:44:07.356Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T16:44:07.386Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T16:44:07.388Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T16:44:37.316Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T16:44:37.319Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T16:44:37.329Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T16:44:37.330Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T16:45:07.332Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T16:45:07.335Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T16:45:07.345Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T16:45:07.347Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T16:45:37.327Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T16:45:37.330Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T16:45:37.340Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T16:45:37.342Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T16:46:38.294Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T16:46:38.298Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T16:46:38.309Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T16:46:38.311Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T16:47:07.343Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T16:47:07.346Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T16:47:07.375Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T16:47:07.377Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T16:47:37.305Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T16:47:37.309Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T16:47:37.330Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T16:47:37.332Z"}
+{"level":"info","message":"GET /api/tokens/balances?address=0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-28T16:48:07.303Z"}
+{"level":"info","message":"Fetching token balances for address: 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-28T16:48:07.304Z"}
+{"balance":"1500000.0","contract":"0xd95a45fc46a7300e6022885afec3d618d7d3f27c","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on eth:","timestamp":"2025-04-28T16:48:08.514Z"}
+{"balance":"500000.0","contract":"0x4B294265720B09ca39BFBA18c7E368413c0f68eB","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on bsc:","timestamp":"2025-04-28T16:48:11.178Z"}
+{"balance":"499999.9","contract":"0xdce769b847a0a697239777d0b1c7dd33b6012ba0","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on arbitrum:","timestamp":"2025-04-28T16:48:13.211Z"}
+{"balance":"454852.0","contract":"0x351f59de4fedbdf7601f5592b93db3b9330c1c1d","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on polygon:","timestamp":"2025-04-28T16:48:15.069Z"}
+{"arbitrum":"499999.9","bsc":"500000.0","eth":"1500000.0","level":"info","message":"Token balances fetched for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b:","polygon":"454852.0","timestamp":"2025-04-28T16:48:15.069Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T16:48:38.300Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T16:48:38.303Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T16:48:38.317Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T16:48:38.318Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T16:49:39.306Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T16:49:39.308Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T16:49:39.316Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T16:49:39.317Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T16:50:40.296Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T16:50:40.300Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T16:50:40.330Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T16:50:40.331Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T16:51:41.281Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T16:51:41.285Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T16:51:41.312Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T16:51:41.313Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T16:52:42.300Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T16:52:42.302Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T16:52:42.311Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T16:52:42.313Z"}
+{"level":"info","message":"GET /api/tokens/balances?address=0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-28T16:53:07.339Z"}
+{"level":"info","message":"Fetching token balances for address: 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-28T16:53:07.339Z"}
+{"balance":"1500000.0","contract":"0xd95a45fc46a7300e6022885afec3d618d7d3f27c","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on eth:","timestamp":"2025-04-28T16:53:08.651Z"}
+{"balance":"500000.0","contract":"0x4B294265720B09ca39BFBA18c7E368413c0f68eB","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on bsc:","timestamp":"2025-04-28T16:53:09.815Z"}
+{"balance":"499999.9","contract":"0xdce769b847a0a697239777d0b1c7dd33b6012ba0","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on arbitrum:","timestamp":"2025-04-28T16:53:11.250Z"}
+{"balance":"454852.0","contract":"0x351f59de4fedbdf7601f5592b93db3b9330c1c1d","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on polygon:","timestamp":"2025-04-28T16:53:12.580Z"}
+{"arbitrum":"499999.9","bsc":"500000.0","eth":"1500000.0","level":"info","message":"Token balances fetched for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b:","polygon":"454852.0","timestamp":"2025-04-28T16:53:12.580Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T16:53:43.338Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T16:53:43.342Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T16:53:43.350Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T16:53:43.352Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T16:54:44.324Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T16:54:44.328Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T16:54:44.338Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T16:54:44.339Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T16:55:45.266Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T16:55:45.271Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T16:55:45.281Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T16:55:45.282Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T16:56:46.288Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T16:56:46.292Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T16:56:46.303Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T16:56:46.304Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T16:57:47.240Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T16:57:47.244Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T16:57:47.255Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T16:57:47.256Z"}
+{"level":"info","message":"GET /api/tokens/balances?address=0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-28T16:58:07.321Z"}
+{"level":"info","message":"Fetching token balances for address: 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-28T16:58:07.322Z"}
+{"balance":"1500000.0","contract":"0xd95a45fc46a7300e6022885afec3d618d7d3f27c","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on eth:","timestamp":"2025-04-28T16:58:08.618Z"}
+{"balance":"500000.0","contract":"0x4B294265720B09ca39BFBA18c7E368413c0f68eB","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on bsc:","timestamp":"2025-04-28T16:58:09.780Z"}
+{"balance":"499999.9","contract":"0xdce769b847a0a697239777d0b1c7dd33b6012ba0","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on arbitrum:","timestamp":"2025-04-28T16:58:10.886Z"}
+{"balance":"454852.0","contract":"0x351f59de4fedbdf7601f5592b93db3b9330c1c1d","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on polygon:","timestamp":"2025-04-28T16:58:12.402Z"}
+{"arbitrum":"499999.9","bsc":"500000.0","eth":"1500000.0","level":"info","message":"Token balances fetched for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b:","polygon":"454852.0","timestamp":"2025-04-28T16:58:12.402Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T16:58:48.270Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T16:58:48.272Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T16:58:48.300Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T16:58:48.301Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T16:59:49.250Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T16:59:49.254Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T16:59:49.283Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T16:59:49.284Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T17:00:50.227Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T17:00:50.231Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T17:00:50.259Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T17:00:50.261Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T17:01:51.287Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T17:01:51.290Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T17:01:51.299Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T17:01:51.301Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T17:02:52.255Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T17:02:52.258Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T17:02:52.286Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T17:02:52.288Z"}
+{"level":"info","message":"GET /api/tokens/balances?address=0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-28T17:03:07.284Z"}
+{"level":"info","message":"Fetching token balances for address: 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-28T17:03:07.285Z"}
+{"balance":"1500000.0","contract":"0xd95a45fc46a7300e6022885afec3d618d7d3f27c","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on eth:","timestamp":"2025-04-28T17:03:08.441Z"}
+{"balance":"500000.0","contract":"0x4B294265720B09ca39BFBA18c7E368413c0f68eB","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on bsc:","timestamp":"2025-04-28T17:03:09.917Z"}
+{"balance":"499999.9","contract":"0xdce769b847a0a697239777d0b1c7dd33b6012ba0","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on arbitrum:","timestamp":"2025-04-28T17:03:11.381Z"}
+{"balance":"454852.0","contract":"0x351f59de4fedbdf7601f5592b93db3b9330c1c1d","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on polygon:","timestamp":"2025-04-28T17:03:14.006Z"}
+{"arbitrum":"499999.9","bsc":"500000.0","eth":"1500000.0","level":"info","message":"Token balances fetched for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b:","polygon":"454852.0","timestamp":"2025-04-28T17:03:14.007Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T17:03:52.232Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T17:03:52.235Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T17:03:52.264Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T17:03:52.266Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T17:04:52.234Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T17:04:52.237Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T17:04:52.266Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T17:04:52.267Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T17:05:52.254Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T17:05:52.258Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T17:05:52.288Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T17:05:52.289Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T17:06:52.262Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T17:06:52.267Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T17:06:52.277Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T17:06:52.279Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T17:07:52.203Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T17:07:52.206Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T17:07:52.235Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T17:07:52.237Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T17:08:52.227Z"}
+{"level":"info","message":"GET /api/tokens/balances?address=0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-28T17:08:52.228Z"}
+{"level":"info","message":"Fetching token balances for address: 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-28T17:08:52.229Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T17:08:52.230Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T17:08:52.259Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T17:08:52.261Z"}
+{"balance":"1500000.0","contract":"0xd95a45fc46a7300e6022885afec3d618d7d3f27c","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on eth:","timestamp":"2025-04-28T17:08:53.583Z"}
+{"balance":"500000.0","contract":"0x4B294265720B09ca39BFBA18c7E368413c0f68eB","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on bsc:","timestamp":"2025-04-28T17:08:54.697Z"}
+{"balance":"499999.9","contract":"0xdce769b847a0a697239777d0b1c7dd33b6012ba0","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on arbitrum:","timestamp":"2025-04-28T17:08:56.779Z"}
+{"balance":"454852.0","contract":"0x351f59de4fedbdf7601f5592b93db3b9330c1c1d","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on polygon:","timestamp":"2025-04-28T17:08:58.114Z"}
+{"arbitrum":"499999.9","bsc":"500000.0","eth":"1500000.0","level":"info","message":"Token balances fetched for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b:","polygon":"454852.0","timestamp":"2025-04-28T17:08:58.115Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T17:09:52.244Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T17:09:52.247Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T17:09:52.275Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T17:09:52.277Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T17:10:52.191Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T17:10:52.194Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T17:10:52.204Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T17:10:52.206Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T17:11:52.181Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T17:11:52.184Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T17:11:52.215Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T17:11:52.217Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T17:12:52.260Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T17:12:52.263Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T17:12:52.291Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T17:12:52.293Z"}
+{"level":"info","message":"GET /api/tokens/balances?address=0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-28T17:13:52.289Z"}
+{"level":"info","message":"Fetching token balances for address: 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-28T17:13:52.290Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T17:13:52.291Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T17:13:52.294Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T17:13:52.323Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T17:13:52.325Z"}
+{"balance":"1500000.0","contract":"0xd95a45fc46a7300e6022885afec3d618d7d3f27c","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on eth:","timestamp":"2025-04-28T17:13:53.579Z"}
+{"balance":"500000.0","contract":"0x4B294265720B09ca39BFBA18c7E368413c0f68eB","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on bsc:","timestamp":"2025-04-28T17:13:54.670Z"}
+{"balance":"499999.9","contract":"0xdce769b847a0a697239777d0b1c7dd33b6012ba0","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on arbitrum:","timestamp":"2025-04-28T17:13:55.799Z"}
+{"balance":"454852.0","contract":"0x351f59de4fedbdf7601f5592b93db3b9330c1c1d","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on polygon:","timestamp":"2025-04-28T17:13:57.344Z"}
+{"arbitrum":"499999.9","bsc":"500000.0","eth":"1500000.0","level":"info","message":"Token balances fetched for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b:","polygon":"454852.0","timestamp":"2025-04-28T17:13:57.345Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T17:14:52.268Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T17:14:52.271Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T17:14:52.283Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T17:14:52.284Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T17:15:52.191Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T17:15:52.194Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T17:15:52.223Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T17:15:52.225Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T17:16:52.274Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T17:16:52.276Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T17:16:52.283Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T17:16:52.285Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T17:17:52.232Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T17:17:52.235Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T17:17:52.244Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T17:17:52.245Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T17:18:52.230Z"}
+{"level":"info","message":"GET /api/tokens/balances?address=0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-28T17:18:52.232Z"}
+{"level":"info","message":"Fetching token balances for address: 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-28T17:18:52.232Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T17:18:52.233Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T17:18:52.261Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T17:18:52.263Z"}
+{"balance":"1500000.0","contract":"0xd95a45fc46a7300e6022885afec3d618d7d3f27c","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on eth:","timestamp":"2025-04-28T17:18:53.718Z"}
+{"balance":"500000.0","contract":"0x4B294265720B09ca39BFBA18c7E368413c0f68eB","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on bsc:","timestamp":"2025-04-28T17:18:55.041Z"}
+{"balance":"499999.9","contract":"0xdce769b847a0a697239777d0b1c7dd33b6012ba0","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on arbitrum:","timestamp":"2025-04-28T17:18:56.493Z"}
+{"balance":"454852.0","contract":"0x351f59de4fedbdf7601f5592b93db3b9330c1c1d","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on polygon:","timestamp":"2025-04-28T17:18:58.309Z"}
+{"arbitrum":"499999.9","bsc":"500000.0","eth":"1500000.0","level":"info","message":"Token balances fetched for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b:","polygon":"454852.0","timestamp":"2025-04-28T17:18:58.309Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T17:19:52.268Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T17:19:52.272Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T17:19:52.286Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T17:19:52.288Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T17:20:52.262Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T17:20:52.265Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T17:20:52.278Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T17:20:52.279Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T17:21:52.239Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T17:21:52.241Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T17:21:52.253Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T17:21:52.254Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T17:22:52.290Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T17:22:52.293Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T17:22:52.303Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T17:22:52.305Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T17:23:52.257Z"}
+{"level":"info","message":"GET /api/tokens/balances?address=0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-28T17:23:52.259Z"}
+{"level":"info","message":"Fetching token balances for address: 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-28T17:23:52.260Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T17:23:52.260Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T17:23:52.271Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T17:23:52.275Z"}
+{"balance":"1500000.0","contract":"0xd95a45fc46a7300e6022885afec3d618d7d3f27c","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on eth:","timestamp":"2025-04-28T17:23:53.877Z"}
+{"balance":"500000.0","contract":"0x4B294265720B09ca39BFBA18c7E368413c0f68eB","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on bsc:","timestamp":"2025-04-28T17:23:55.506Z"}
+{"balance":"499999.9","contract":"0xdce769b847a0a697239777d0b1c7dd33b6012ba0","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on arbitrum:","timestamp":"2025-04-28T17:23:57.236Z"}
+{"balance":"454852.0","contract":"0x351f59de4fedbdf7601f5592b93db3b9330c1c1d","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on polygon:","timestamp":"2025-04-28T17:23:58.863Z"}
+{"arbitrum":"499999.9","bsc":"500000.0","eth":"1500000.0","level":"info","message":"Token balances fetched for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b:","polygon":"454852.0","timestamp":"2025-04-28T17:23:58.864Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T17:24:52.267Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T17:24:52.271Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T17:24:52.284Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T17:24:52.287Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T17:25:52.253Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T17:25:52.256Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T17:25:52.267Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T17:25:52.268Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T17:26:52.270Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T17:26:52.273Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T17:26:52.301Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T17:26:52.303Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T17:27:52.147Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T17:27:52.152Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T17:27:52.172Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T17:27:52.175Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T17:28:52.264Z"}
+{"level":"info","message":"GET /api/tokens/balances?address=0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-28T17:28:52.265Z"}
+{"level":"info","message":"Fetching token balances for address: 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-28T17:28:52.266Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T17:28:52.267Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T17:28:52.272Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T17:28:52.274Z"}
+{"balance":"1500000.0","contract":"0xd95a45fc46a7300e6022885afec3d618d7d3f27c","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on eth:","timestamp":"2025-04-28T17:28:53.491Z"}
+{"balance":"500000.0","contract":"0x4B294265720B09ca39BFBA18c7E368413c0f68eB","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on bsc:","timestamp":"2025-04-28T17:28:54.388Z"}
+{"balance":"499999.9","contract":"0xdce769b847a0a697239777d0b1c7dd33b6012ba0","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on arbitrum:","timestamp":"2025-04-28T17:28:55.393Z"}
+{"balance":"454852.0","contract":"0x351f59de4fedbdf7601f5592b93db3b9330c1c1d","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on polygon:","timestamp":"2025-04-28T17:28:56.458Z"}
+{"arbitrum":"499999.9","bsc":"500000.0","eth":"1500000.0","level":"info","message":"Token balances fetched for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b:","polygon":"454852.0","timestamp":"2025-04-28T17:28:56.458Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T17:29:52.225Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T17:29:52.227Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T17:29:52.233Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T17:29:52.235Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T17:30:52.265Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T17:30:52.267Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T17:30:52.275Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T17:30:52.277Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T17:31:52.232Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T17:31:52.235Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T17:31:52.242Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T17:31:52.243Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T17:32:52.163Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T17:32:52.165Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T17:32:52.172Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T17:32:52.173Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T17:33:52.288Z"}
+{"level":"info","message":"GET /api/tokens/balances?address=0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-28T17:33:52.289Z"}
+{"level":"info","message":"Fetching token balances for address: 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-28T17:33:52.289Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T17:33:52.290Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T17:33:52.298Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T17:33:52.299Z"}
+{"balance":"1500000.0","contract":"0xd95a45fc46a7300e6022885afec3d618d7d3f27c","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on eth:","timestamp":"2025-04-28T17:33:53.547Z"}
+{"balance":"500000.0","contract":"0x4B294265720B09ca39BFBA18c7E368413c0f68eB","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on bsc:","timestamp":"2025-04-28T17:33:54.509Z"}
+{"balance":"499999.9","contract":"0xdce769b847a0a697239777d0b1c7dd33b6012ba0","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on arbitrum:","timestamp":"2025-04-28T17:33:55.701Z"}
+{"balance":"454852.0","contract":"0x351f59de4fedbdf7601f5592b93db3b9330c1c1d","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on polygon:","timestamp":"2025-04-28T17:33:57.226Z"}
+{"arbitrum":"499999.9","bsc":"500000.0","eth":"1500000.0","level":"info","message":"Token balances fetched for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b:","polygon":"454852.0","timestamp":"2025-04-28T17:33:57.226Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T17:34:52.259Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T17:34:52.262Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T17:34:52.270Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T17:34:52.271Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T17:35:52.272Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T17:35:52.274Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T17:35:52.281Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T17:35:52.282Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T17:36:52.244Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T17:36:52.247Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T17:36:52.254Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T17:36:52.255Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T17:37:52.247Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T17:37:52.250Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T17:37:52.258Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T17:37:52.259Z"}
+{"level":"info","message":"GET /api/tokens/balances?address=0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-28T17:38:52.278Z"}
+{"level":"info","message":"Fetching token balances for address: 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-28T17:38:52.279Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T17:38:52.279Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T17:38:52.281Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T17:38:52.288Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T17:38:52.291Z"}
+{"balance":"1500000.0","contract":"0xd95a45fc46a7300e6022885afec3d618d7d3f27c","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on eth:","timestamp":"2025-04-28T17:38:53.659Z"}
+{"balance":"500000.0","contract":"0x4B294265720B09ca39BFBA18c7E368413c0f68eB","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on bsc:","timestamp":"2025-04-28T17:38:54.780Z"}
+{"balance":"499999.9","contract":"0xdce769b847a0a697239777d0b1c7dd33b6012ba0","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on arbitrum:","timestamp":"2025-04-28T17:38:55.899Z"}
+{"balance":"454852.0","contract":"0x351f59de4fedbdf7601f5592b93db3b9330c1c1d","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on polygon:","timestamp":"2025-04-28T17:38:57.020Z"}
+{"arbitrum":"499999.9","bsc":"500000.0","eth":"1500000.0","level":"info","message":"Token balances fetched for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b:","polygon":"454852.0","timestamp":"2025-04-28T17:38:57.020Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T17:39:52.252Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T17:39:52.254Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T17:39:52.262Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T17:39:52.263Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T17:40:52.259Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T17:40:52.261Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T17:40:52.269Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T17:40:52.270Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T17:41:52.270Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T17:41:52.273Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T17:41:52.280Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T17:41:52.281Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T17:42:52.287Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T17:42:52.290Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T17:42:52.298Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T17:42:52.299Z"}
+{"level":"info","message":"GET /api/tokens/balances?address=0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-28T17:43:52.300Z"}
+{"level":"info","message":"Fetching token balances for address: 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-28T17:43:52.300Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T17:43:52.302Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T17:43:52.304Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T17:43:52.314Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T17:43:52.315Z"}
+{"balance":"1500000.0","contract":"0xd95a45fc46a7300e6022885afec3d618d7d3f27c","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on eth:","timestamp":"2025-04-28T17:43:53.602Z"}
+{"balance":"500000.0","contract":"0x4B294265720B09ca39BFBA18c7E368413c0f68eB","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on bsc:","timestamp":"2025-04-28T17:43:54.624Z"}
+{"balance":"499999.9","contract":"0xdce769b847a0a697239777d0b1c7dd33b6012ba0","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on arbitrum:","timestamp":"2025-04-28T17:43:55.708Z"}
+{"balance":"454852.0","contract":"0x351f59de4fedbdf7601f5592b93db3b9330c1c1d","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on polygon:","timestamp":"2025-04-28T17:43:56.831Z"}
+{"arbitrum":"499999.9","bsc":"500000.0","eth":"1500000.0","level":"info","message":"Token balances fetched for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b:","polygon":"454852.0","timestamp":"2025-04-28T17:43:56.832Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T17:44:52.283Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T17:44:52.285Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T17:44:52.293Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T17:44:52.294Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T17:45:52.249Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T17:45:52.251Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T17:45:52.259Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T17:45:52.261Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T17:46:52.217Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T17:46:52.219Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T17:46:52.227Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T17:46:52.228Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T17:47:52.252Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T17:47:52.254Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T17:47:52.262Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T17:47:52.264Z"}
+{"level":"info","message":"GET /api/tokens/balances?address=0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-28T17:48:52.256Z"}
+{"level":"info","message":"Fetching token balances for address: 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-28T17:48:52.256Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T17:48:52.257Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T17:48:52.259Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T17:48:52.267Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T17:48:52.269Z"}
+{"balance":"1500000.0","contract":"0xd95a45fc46a7300e6022885afec3d618d7d3f27c","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on eth:","timestamp":"2025-04-28T17:48:54.862Z"}
+{"balance":"500000.0","contract":"0x4B294265720B09ca39BFBA18c7E368413c0f68eB","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on bsc:","timestamp":"2025-04-28T17:48:56.192Z"}
+{"balance":"499999.9","contract":"0xdce769b847a0a697239777d0b1c7dd33b6012ba0","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on arbitrum:","timestamp":"2025-04-28T17:48:57.464Z"}
+{"balance":"454852.0","contract":"0x351f59de4fedbdf7601f5592b93db3b9330c1c1d","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on polygon:","timestamp":"2025-04-28T17:48:59.326Z"}
+{"arbitrum":"499999.9","bsc":"500000.0","eth":"1500000.0","level":"info","message":"Token balances fetched for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b:","polygon":"454852.0","timestamp":"2025-04-28T17:48:59.326Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T17:49:52.178Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T17:49:52.180Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T17:49:52.188Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T17:49:52.189Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T17:50:52.187Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T17:50:52.189Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T17:50:52.197Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T17:50:52.198Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T17:51:52.277Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T17:51:52.279Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T17:51:52.286Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T17:51:52.287Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T17:52:52.274Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T17:52:52.276Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T17:52:52.284Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T17:52:52.285Z"}
+{"level":"info","message":"GET /api/tokens/balances?address=0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-28T17:53:52.261Z"}
+{"level":"info","message":"Fetching token balances for address: 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-28T17:53:52.261Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T17:53:52.263Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T17:53:52.265Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T17:53:52.272Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T17:53:52.275Z"}
+{"balance":"1500000.0","contract":"0xd95a45fc46a7300e6022885afec3d618d7d3f27c","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on eth:","timestamp":"2025-04-28T17:53:53.602Z"}
+{"balance":"500000.0","contract":"0x4B294265720B09ca39BFBA18c7E368413c0f68eB","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on bsc:","timestamp":"2025-04-28T17:53:54.474Z"}
+{"balance":"499999.9","contract":"0xdce769b847a0a697239777d0b1c7dd33b6012ba0","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on arbitrum:","timestamp":"2025-04-28T17:53:55.447Z"}
+{"balance":"454852.0","contract":"0x351f59de4fedbdf7601f5592b93db3b9330c1c1d","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on polygon:","timestamp":"2025-04-28T17:53:56.838Z"}
+{"arbitrum":"499999.9","bsc":"500000.0","eth":"1500000.0","level":"info","message":"Token balances fetched for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b:","polygon":"454852.0","timestamp":"2025-04-28T17:53:56.839Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T17:54:52.273Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T17:54:52.275Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T17:54:52.282Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T17:54:52.284Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T17:55:52.258Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T17:55:52.260Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T17:55:52.267Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T17:55:52.268Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T17:56:52.265Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T17:56:52.267Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T17:56:52.275Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T17:56:52.276Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T17:57:52.263Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T17:57:52.265Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T17:57:52.273Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T17:57:52.274Z"}
+{"level":"info","message":"GET /api/tokens/balances?address=0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-28T17:58:52.283Z"}
+{"level":"info","message":"Fetching token balances for address: 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-28T17:58:52.284Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T17:58:52.286Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T17:58:52.288Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T17:58:52.298Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T17:58:52.299Z"}
+{"balance":"1500000.0","contract":"0xd95a45fc46a7300e6022885afec3d618d7d3f27c","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on eth:","timestamp":"2025-04-28T17:58:53.371Z"}
+{"balance":"500000.0","contract":"0x4B294265720B09ca39BFBA18c7E368413c0f68eB","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on bsc:","timestamp":"2025-04-28T17:58:54.395Z"}
+{"balance":"499999.9","contract":"0xdce769b847a0a697239777d0b1c7dd33b6012ba0","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on arbitrum:","timestamp":"2025-04-28T17:58:55.422Z"}
+{"balance":"454852.0","contract":"0x351f59de4fedbdf7601f5592b93db3b9330c1c1d","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on polygon:","timestamp":"2025-04-28T17:58:56.782Z"}
+{"arbitrum":"499999.9","bsc":"500000.0","eth":"1500000.0","level":"info","message":"Token balances fetched for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b:","polygon":"454852.0","timestamp":"2025-04-28T17:58:56.782Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T17:59:52.273Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T17:59:52.276Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T17:59:52.284Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T17:59:52.285Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T18:00:52.260Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T18:00:52.263Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T18:00:52.271Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T18:00:52.272Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T18:01:52.255Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T18:01:52.257Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T18:01:52.266Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T18:01:52.267Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T18:02:52.252Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T18:02:52.254Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T18:02:52.261Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T18:02:52.262Z"}
+{"level":"info","message":"GET /api/tokens/balances?address=0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-28T18:03:52.252Z"}
+{"level":"info","message":"Fetching token balances for address: 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-28T18:03:52.253Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T18:03:52.254Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T18:03:52.256Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T18:03:52.263Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T18:03:52.266Z"}
+{"balance":"1500000.0","contract":"0xd95a45fc46a7300e6022885afec3d618d7d3f27c","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on eth:","timestamp":"2025-04-28T18:03:54.379Z"}
+{"balance":"500000.0","contract":"0x4B294265720B09ca39BFBA18c7E368413c0f68eB","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on bsc:","timestamp":"2025-04-28T18:03:55.909Z"}
+{"balance":"499999.9","contract":"0xdce769b847a0a697239777d0b1c7dd33b6012ba0","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on arbitrum:","timestamp":"2025-04-28T18:03:57.249Z"}
+{"balance":"454852.0","contract":"0x351f59de4fedbdf7601f5592b93db3b9330c1c1d","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on polygon:","timestamp":"2025-04-28T18:03:58.581Z"}
+{"arbitrum":"499999.9","bsc":"500000.0","eth":"1500000.0","level":"info","message":"Token balances fetched for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b:","polygon":"454852.0","timestamp":"2025-04-28T18:03:58.582Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T18:04:52.253Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T18:04:52.255Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T18:04:52.263Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T18:04:52.264Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T18:05:52.241Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T18:05:52.243Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T18:05:52.251Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T18:05:52.252Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T18:06:52.251Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T18:06:52.253Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T18:06:52.261Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T18:06:52.263Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T18:07:52.339Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T18:07:52.341Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T18:07:52.350Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T18:07:52.351Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T18:08:52.264Z"}
+{"level":"info","message":"GET /api/tokens/balances?address=0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-28T18:08:52.265Z"}
+{"level":"info","message":"Fetching token balances for address: 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-28T18:08:52.266Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T18:08:52.267Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T18:08:52.275Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T18:08:52.278Z"}
+{"balance":"1500000.0","contract":"0xd95a45fc46a7300e6022885afec3d618d7d3f27c","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on eth:","timestamp":"2025-04-28T18:08:53.534Z"}
+{"balance":"500000.0","contract":"0x4B294265720B09ca39BFBA18c7E368413c0f68eB","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on bsc:","timestamp":"2025-04-28T18:08:54.637Z"}
+{"balance":"499999.9","contract":"0xdce769b847a0a697239777d0b1c7dd33b6012ba0","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on arbitrum:","timestamp":"2025-04-28T18:08:55.726Z"}
+{"balance":"454852.0","contract":"0x351f59de4fedbdf7601f5592b93db3b9330c1c1d","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on polygon:","timestamp":"2025-04-28T18:08:57.068Z"}
+{"arbitrum":"499999.9","bsc":"500000.0","eth":"1500000.0","level":"info","message":"Token balances fetched for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b:","polygon":"454852.0","timestamp":"2025-04-28T18:08:57.068Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T18:09:52.291Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T18:09:52.294Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T18:09:52.300Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T18:09:52.301Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T18:10:52.259Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T18:10:52.263Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T18:10:52.270Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T18:10:52.271Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T18:11:52.275Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T18:11:52.278Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T18:11:52.286Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T18:11:52.287Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T18:12:52.248Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T18:12:52.250Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T18:12:52.258Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T18:12:52.260Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T18:13:52.259Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T18:13:52.261Z"}
+{"level":"info","message":"GET /api/tokens/balances?address=0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-28T18:13:52.262Z"}
+{"level":"info","message":"Fetching token balances for address: 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-28T18:13:52.263Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T18:13:52.269Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T18:13:52.270Z"}
+{"balance":"1500000.0","contract":"0xd95a45fc46a7300e6022885afec3d618d7d3f27c","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on eth:","timestamp":"2025-04-28T18:13:53.579Z"}
+{"balance":"500000.0","contract":"0x4B294265720B09ca39BFBA18c7E368413c0f68eB","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on bsc:","timestamp":"2025-04-28T18:13:54.654Z"}
+{"balance":"499999.9","contract":"0xdce769b847a0a697239777d0b1c7dd33b6012ba0","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on arbitrum:","timestamp":"2025-04-28T18:13:55.821Z"}
+{"balance":"454852.0","contract":"0x351f59de4fedbdf7601f5592b93db3b9330c1c1d","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on polygon:","timestamp":"2025-04-28T18:13:57.212Z"}
+{"arbitrum":"499999.9","bsc":"500000.0","eth":"1500000.0","level":"info","message":"Token balances fetched for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b:","polygon":"454852.0","timestamp":"2025-04-28T18:13:57.212Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T18:14:52.274Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T18:14:52.276Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T18:14:52.285Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T18:14:52.286Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T18:15:52.240Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T18:15:52.242Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T18:15:52.250Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T18:15:52.251Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T18:16:52.272Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T18:16:52.274Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T18:16:52.283Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T18:16:52.284Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T18:17:52.258Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T18:17:52.261Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T18:17:52.269Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T18:17:52.270Z"}
+{"level":"info","message":"GET /api/tokens/balances?address=0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-28T18:18:52.249Z"}
+{"level":"info","message":"Fetching token balances for address: 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-28T18:18:52.250Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T18:18:52.251Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T18:18:52.253Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T18:18:52.260Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T18:18:52.262Z"}
+{"balance":"1500000.0","contract":"0xd95a45fc46a7300e6022885afec3d618d7d3f27c","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on eth:","timestamp":"2025-04-28T18:18:54.636Z"}
+{"balance":"500000.0","contract":"0x4B294265720B09ca39BFBA18c7E368413c0f68eB","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on bsc:","timestamp":"2025-04-28T18:18:56.050Z"}
+{"balance":"499999.9","contract":"0xdce769b847a0a697239777d0b1c7dd33b6012ba0","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on arbitrum:","timestamp":"2025-04-28T18:18:57.118Z"}
+{"balance":"454852.0","contract":"0x351f59de4fedbdf7601f5592b93db3b9330c1c1d","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on polygon:","timestamp":"2025-04-28T18:18:59.534Z"}
+{"arbitrum":"499999.9","bsc":"500000.0","eth":"1500000.0","level":"info","message":"Token balances fetched for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b:","polygon":"454852.0","timestamp":"2025-04-28T18:18:59.535Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T18:19:52.256Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T18:19:52.258Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T18:19:52.266Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T18:19:52.267Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T18:20:52.268Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T18:20:52.271Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T18:20:52.278Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T18:20:52.279Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T18:21:52.247Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T18:21:52.249Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T18:21:52.257Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T18:21:52.258Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T18:22:52.216Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T18:22:52.219Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T18:22:52.227Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T18:22:52.228Z"}
+{"level":"info","message":"GET /api/tokens/balances?address=0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-28T18:23:52.265Z"}
+{"level":"info","message":"Fetching token balances for address: 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-28T18:23:52.265Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T18:23:52.267Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T18:23:52.269Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T18:23:52.279Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T18:23:52.280Z"}
+{"balance":"1500000.0","contract":"0xd95a45fc46a7300e6022885afec3d618d7d3f27c","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on eth:","timestamp":"2025-04-28T18:23:53.275Z"}
+{"balance":"500000.0","contract":"0x4B294265720B09ca39BFBA18c7E368413c0f68eB","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on bsc:","timestamp":"2025-04-28T18:23:54.304Z"}
+{"balance":"499999.9","contract":"0xdce769b847a0a697239777d0b1c7dd33b6012ba0","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on arbitrum:","timestamp":"2025-04-28T18:23:55.421Z"}
+{"balance":"454852.0","contract":"0x351f59de4fedbdf7601f5592b93db3b9330c1c1d","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on polygon:","timestamp":"2025-04-28T18:23:56.438Z"}
+{"arbitrum":"499999.9","bsc":"500000.0","eth":"1500000.0","level":"info","message":"Token balances fetched for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b:","polygon":"454852.0","timestamp":"2025-04-28T18:23:56.439Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T18:24:52.272Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T18:24:52.274Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T18:24:52.280Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T18:24:52.281Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T18:25:52.257Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T18:25:52.260Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T18:25:52.268Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T18:25:52.269Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T18:26:52.256Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T18:26:52.258Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T18:26:52.267Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T18:26:52.268Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T18:27:52.272Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T18:27:52.274Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T18:27:52.281Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T18:27:52.282Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T18:28:52.254Z"}
+{"level":"info","message":"GET /api/tokens/balances?address=0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-28T18:28:52.255Z"}
+{"level":"info","message":"Fetching token balances for address: 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-28T18:28:52.255Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T18:28:52.256Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T18:28:52.263Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T18:28:52.265Z"}
+{"balance":"1500000.0","contract":"0xd95a45fc46a7300e6022885afec3d618d7d3f27c","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on eth:","timestamp":"2025-04-28T18:28:53.168Z"}
+{"balance":"500000.0","contract":"0x4B294265720B09ca39BFBA18c7E368413c0f68eB","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on bsc:","timestamp":"2025-04-28T18:28:54.263Z"}
+{"balance":"499999.9","contract":"0xdce769b847a0a697239777d0b1c7dd33b6012ba0","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on arbitrum:","timestamp":"2025-04-28T18:28:55.402Z"}
+{"balance":"454852.0","contract":"0x351f59de4fedbdf7601f5592b93db3b9330c1c1d","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on polygon:","timestamp":"2025-04-28T18:28:56.865Z"}
+{"arbitrum":"499999.9","bsc":"500000.0","eth":"1500000.0","level":"info","message":"Token balances fetched for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b:","polygon":"454852.0","timestamp":"2025-04-28T18:28:56.865Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T18:29:52.251Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T18:29:52.252Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T18:29:52.259Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T18:29:52.260Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T18:30:52.278Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T18:30:52.281Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T18:30:52.289Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T18:30:52.290Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T18:31:52.256Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T18:31:52.259Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T18:31:52.267Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T18:31:52.268Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T18:32:52.258Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T18:32:52.260Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T18:32:52.266Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T18:32:52.268Z"}
+{"level":"info","message":"GET /api/tokens/balances?address=0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-28T18:33:52.263Z"}
+{"level":"info","message":"Fetching token balances for address: 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-28T18:33:52.263Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T18:33:52.264Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T18:33:52.265Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T18:33:52.272Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T18:33:52.274Z"}
+{"balance":"1500000.0","contract":"0xd95a45fc46a7300e6022885afec3d618d7d3f27c","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on eth:","timestamp":"2025-04-28T18:33:53.553Z"}
+{"balance":"500000.0","contract":"0x4B294265720B09ca39BFBA18c7E368413c0f68eB","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on bsc:","timestamp":"2025-04-28T18:33:54.758Z"}
+{"balance":"499999.9","contract":"0xdce769b847a0a697239777d0b1c7dd33b6012ba0","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on arbitrum:","timestamp":"2025-04-28T18:33:55.899Z"}
+{"balance":"454852.0","contract":"0x351f59de4fedbdf7601f5592b93db3b9330c1c1d","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on polygon:","timestamp":"2025-04-28T18:33:57.326Z"}
+{"arbitrum":"499999.9","bsc":"500000.0","eth":"1500000.0","level":"info","message":"Token balances fetched for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b:","polygon":"454852.0","timestamp":"2025-04-28T18:33:57.326Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T18:34:52.236Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T18:34:52.239Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T18:34:52.245Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T18:34:52.246Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T18:35:52.237Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T18:35:52.239Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T18:35:52.246Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T18:35:52.247Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T18:36:52.246Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T18:36:52.248Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T18:36:52.255Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T18:36:52.256Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T18:37:52.262Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T18:37:52.264Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T18:37:52.272Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T18:37:52.273Z"}
+{"level":"info","message":"GET /api/tokens/balances?address=0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-28T18:38:52.245Z"}
+{"level":"info","message":"Fetching token balances for address: 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-28T18:38:52.245Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T18:38:52.246Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T18:38:52.248Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T18:38:52.257Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T18:38:52.259Z"}
+{"balance":"1500000.0","contract":"0xd95a45fc46a7300e6022885afec3d618d7d3f27c","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on eth:","timestamp":"2025-04-28T18:38:53.351Z"}
+{"balance":"500000.0","contract":"0x4B294265720B09ca39BFBA18c7E368413c0f68eB","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on bsc:","timestamp":"2025-04-28T18:38:54.537Z"}
+{"balance":"499999.9","contract":"0xdce769b847a0a697239777d0b1c7dd33b6012ba0","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on arbitrum:","timestamp":"2025-04-28T18:38:55.694Z"}
+{"balance":"454852.0","contract":"0x351f59de4fedbdf7601f5592b93db3b9330c1c1d","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on polygon:","timestamp":"2025-04-28T18:38:56.816Z"}
+{"arbitrum":"499999.9","bsc":"500000.0","eth":"1500000.0","level":"info","message":"Token balances fetched for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b:","polygon":"454852.0","timestamp":"2025-04-28T18:38:56.816Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T18:39:52.254Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T18:39:52.256Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T18:39:52.264Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T18:39:52.265Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T18:40:52.267Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T18:40:52.270Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T18:40:52.278Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T18:40:52.279Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T18:41:52.243Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T18:41:52.246Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T18:41:52.254Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T18:41:52.255Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T18:42:52.258Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T18:42:52.261Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T18:42:52.269Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T18:42:52.270Z"}
+{"level":"info","message":"GET /api/tokens/balances?address=0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-28T18:43:52.271Z"}
+{"level":"info","message":"Fetching token balances for address: 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-28T18:43:52.272Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T18:43:52.272Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T18:43:52.274Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T18:43:52.282Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T18:43:52.285Z"}
+{"balance":"1500000.0","contract":"0xd95a45fc46a7300e6022885afec3d618d7d3f27c","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on eth:","timestamp":"2025-04-28T18:43:53.598Z"}
+{"balance":"500000.0","contract":"0x4B294265720B09ca39BFBA18c7E368413c0f68eB","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on bsc:","timestamp":"2025-04-28T18:43:54.797Z"}
+{"balance":"499999.9","contract":"0xdce769b847a0a697239777d0b1c7dd33b6012ba0","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on arbitrum:","timestamp":"2025-04-28T18:43:55.875Z"}
+{"balance":"454852.0","contract":"0x351f59de4fedbdf7601f5592b93db3b9330c1c1d","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on polygon:","timestamp":"2025-04-28T18:43:57.320Z"}
+{"arbitrum":"499999.9","bsc":"500000.0","eth":"1500000.0","level":"info","message":"Token balances fetched for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b:","polygon":"454852.0","timestamp":"2025-04-28T18:43:57.320Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T18:44:52.282Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T18:44:52.284Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T18:44:52.292Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T18:44:52.293Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T18:45:52.251Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T18:45:52.253Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T18:45:52.262Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T18:45:52.262Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T18:46:52.264Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T18:46:52.266Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T18:46:52.274Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T18:46:52.275Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T18:47:52.256Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T18:47:52.258Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T18:47:52.265Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T18:47:52.266Z"}
+{"level":"info","message":"GET /api/tokens/balances?address=0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-28T18:48:52.277Z"}
+{"level":"info","message":"Fetching token balances for address: 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-28T18:48:52.277Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T18:48:52.278Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T18:48:52.280Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T18:48:52.290Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T18:48:52.291Z"}
+{"balance":"1500000.0","contract":"0xd95a45fc46a7300e6022885afec3d618d7d3f27c","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on eth:","timestamp":"2025-04-28T18:48:53.737Z"}
+{"balance":"500000.0","contract":"0x4B294265720B09ca39BFBA18c7E368413c0f68eB","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on bsc:","timestamp":"2025-04-28T18:48:54.845Z"}
+{"balance":"499999.9","contract":"0xdce769b847a0a697239777d0b1c7dd33b6012ba0","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on arbitrum:","timestamp":"2025-04-28T18:48:56.018Z"}
+{"balance":"454852.0","contract":"0x351f59de4fedbdf7601f5592b93db3b9330c1c1d","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on polygon:","timestamp":"2025-04-28T18:48:57.435Z"}
+{"arbitrum":"499999.9","bsc":"500000.0","eth":"1500000.0","level":"info","message":"Token balances fetched for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b:","polygon":"454852.0","timestamp":"2025-04-28T18:48:57.436Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T18:49:52.265Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T18:49:52.267Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T18:49:52.275Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T18:49:52.276Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T18:50:52.264Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T18:50:52.266Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T18:50:52.274Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T18:50:52.275Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T18:51:52.246Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T18:51:52.248Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T18:51:52.256Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T18:51:52.257Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T18:52:52.250Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T18:52:52.253Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T18:52:52.263Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T18:52:52.264Z"}
+{"level":"info","message":"GET /api/tokens/balances?address=0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-28T18:53:52.255Z"}
+{"level":"info","message":"Fetching token balances for address: 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-28T18:53:52.255Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T18:53:52.257Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T18:53:52.259Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T18:53:52.268Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T18:53:52.269Z"}
+{"balance":"1500000.0","contract":"0xd95a45fc46a7300e6022885afec3d618d7d3f27c","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on eth:","timestamp":"2025-04-28T18:53:53.650Z"}
+{"balance":"500000.0","contract":"0x4B294265720B09ca39BFBA18c7E368413c0f68eB","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on bsc:","timestamp":"2025-04-28T18:53:54.794Z"}
+{"balance":"499999.9","contract":"0xdce769b847a0a697239777d0b1c7dd33b6012ba0","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on arbitrum:","timestamp":"2025-04-28T18:53:55.970Z"}
+{"balance":"454852.0","contract":"0x351f59de4fedbdf7601f5592b93db3b9330c1c1d","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on polygon:","timestamp":"2025-04-28T18:53:57.599Z"}
+{"arbitrum":"499999.9","bsc":"500000.0","eth":"1500000.0","level":"info","message":"Token balances fetched for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b:","polygon":"454852.0","timestamp":"2025-04-28T18:53:57.600Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T18:54:52.252Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T18:54:52.255Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T18:54:52.262Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T18:54:52.264Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T18:55:52.255Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T18:55:52.257Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T18:55:52.265Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T18:55:52.266Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T18:56:52.265Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T18:56:52.267Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T18:56:52.274Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T18:56:52.275Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T18:57:52.253Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T18:57:52.255Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T18:57:52.262Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T18:57:52.264Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T18:58:52.263Z"}
+{"level":"info","message":"GET /api/tokens/balances?address=0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-28T18:58:52.264Z"}
+{"level":"info","message":"Fetching token balances for address: 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-28T18:58:52.264Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T18:58:52.265Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T18:58:52.273Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T18:58:52.274Z"}
+{"balance":"1500000.0","contract":"0xd95a45fc46a7300e6022885afec3d618d7d3f27c","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on eth:","timestamp":"2025-04-28T18:58:53.636Z"}
+{"balance":"500000.0","contract":"0x4B294265720B09ca39BFBA18c7E368413c0f68eB","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on bsc:","timestamp":"2025-04-28T18:58:54.589Z"}
+{"balance":"499999.9","contract":"0xdce769b847a0a697239777d0b1c7dd33b6012ba0","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on arbitrum:","timestamp":"2025-04-28T18:58:55.836Z"}
+{"balance":"454852.0","contract":"0x351f59de4fedbdf7601f5592b93db3b9330c1c1d","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on polygon:","timestamp":"2025-04-28T18:58:56.873Z"}
+{"arbitrum":"499999.9","bsc":"500000.0","eth":"1500000.0","level":"info","message":"Token balances fetched for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b:","polygon":"454852.0","timestamp":"2025-04-28T18:58:56.873Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T18:59:52.261Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T18:59:52.263Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T18:59:52.270Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T18:59:52.271Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T19:00:52.251Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T19:00:52.253Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T19:00:52.261Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T19:00:52.262Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T19:01:52.253Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T19:01:52.255Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T19:01:52.263Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T19:01:52.264Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T19:02:52.332Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T19:02:52.356Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T19:02:52.424Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T19:02:52.433Z"}
+{"level":"info","message":"GET /api/tokens/balances?address=0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-28T19:03:06.618Z"}
+{"level":"info","message":"Fetching token balances for address: 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-28T19:03:06.619Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T19:03:06.839Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T19:03:06.842Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T19:03:06.871Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T19:03:06.872Z"}
+{"balance":"1500000.0","contract":"0xd95a45fc46a7300e6022885afec3d618d7d3f27c","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on eth:","timestamp":"2025-04-28T19:03:07.671Z"}
+{"balance":"500000.0","contract":"0x4B294265720B09ca39BFBA18c7E368413c0f68eB","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on bsc:","timestamp":"2025-04-28T19:03:08.676Z"}
+{"balance":"499999.9","contract":"0xdce769b847a0a697239777d0b1c7dd33b6012ba0","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on arbitrum:","timestamp":"2025-04-28T19:03:10.496Z"}
+{"balance":"454852.0","contract":"0x351f59de4fedbdf7601f5592b93db3b9330c1c1d","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on polygon:","timestamp":"2025-04-28T19:03:11.657Z"}
+{"arbitrum":"499999.9","bsc":"500000.0","eth":"1500000.0","level":"info","message":"Token balances fetched for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b:","polygon":"454852.0","timestamp":"2025-04-28T19:03:11.658Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T19:03:36.884Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T19:03:36.887Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T19:03:36.916Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T19:03:36.917Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T19:04:06.935Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T19:04:06.940Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T19:04:06.949Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T19:04:06.952Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T19:04:37.259Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T19:04:37.263Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T19:04:37.291Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T19:04:37.292Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T19:05:06.940Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T19:05:06.945Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T19:05:06.954Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T19:05:06.955Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T19:05:36.896Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T19:05:36.899Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T19:05:36.909Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T19:05:36.911Z"}
+{"level":"info","message":"POST /api/chat/message","timestamp":"2025-04-28T19:05:53.499Z"}
+{"level":"info","message":"Received /message request","timestamp":"2025-04-28T19:05:53.512Z"}
+{"conversationId":41,"level":"info","message":"Created new conversation","timestamp":"2025-04-28T19:05:53.750Z","userId":1}
+{"conversationId":41,"level":"info","message":"User message saved","messageId":44,"timestamp":"2025-04-28T19:05:53.792Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T19:06:06.897Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T19:06:06.900Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T19:06:06.928Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T19:06:06.929Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T19:06:36.914Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T19:06:36.918Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T19:06:36.930Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T19:06:36.931Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T19:07:07.267Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T19:07:07.271Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T19:07:07.281Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T19:07:07.283Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T19:07:37.246Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T19:07:37.249Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T19:07:37.277Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T19:07:37.278Z"}
+{"level":"info","message":"GET /api/tokens/balances?address=0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-28T19:08:38.306Z"}
+{"level":"info","message":"Fetching token balances for address: 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b","timestamp":"2025-04-28T19:08:38.307Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T19:08:38.307Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T19:08:38.313Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T19:08:38.328Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T19:08:38.330Z"}
+{"balance":"1500000.0","contract":"0xd95a45fc46a7300e6022885afec3d618d7d3f27c","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on eth:","timestamp":"2025-04-28T19:08:39.440Z"}
+{"balance":"500000.0","contract":"0x4B294265720B09ca39BFBA18c7E368413c0f68eB","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on bsc:","timestamp":"2025-04-28T19:08:40.288Z"}
+{"balance":"499999.9","contract":"0xdce769b847a0a697239777d0b1c7dd33b6012ba0","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on arbitrum:","timestamp":"2025-04-28T19:08:41.512Z"}
+{"balance":"454852.0","contract":"0x351f59de4fedbdf7601f5592b93db3b9330c1c1d","level":"info","message":"Token balance for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b on polygon:","timestamp":"2025-04-28T19:08:42.928Z"}
+{"arbitrum":"499999.9","bsc":"500000.0","eth":"1500000.0","level":"info","message":"Token balances fetched for 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b:","polygon":"454852.0","timestamp":"2025-04-28T19:08:42.928Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T19:09:06.912Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T19:09:06.916Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T19:09:06.927Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T19:09:06.928Z"}
+{"level":"info","message":"POST /api/chat/message","timestamp":"2025-04-28T19:09:13.547Z"}
+{"level":"info","message":"Received /message request","timestamp":"2025-04-28T19:09:13.550Z"}
+{"conversationId":42,"level":"info","message":"Created new conversation","timestamp":"2025-04-28T19:09:13.721Z","userId":1}
+{"conversationId":42,"level":"info","message":"User message saved","messageId":45,"timestamp":"2025-04-28T19:09:13.746Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T19:09:36.903Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T19:09:36.907Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T19:09:36.936Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T19:09:36.938Z"}
+{"level":"info","message":"POST /api/chat/message","timestamp":"2025-04-28T19:09:45.753Z"}
+{"level":"info","message":"Received /message request","timestamp":"2025-04-28T19:09:45.756Z"}
+{"conversationId":43,"level":"info","message":"Created new conversation","timestamp":"2025-04-28T19:09:45.764Z","userId":1}
+{"conversationId":43,"level":"info","message":"User message saved","messageId":46,"timestamp":"2025-04-28T19:09:45.770Z"}
+{"level":"info","message":"Getting AI response for:","timestamp":"2025-04-28T19:09:45.770Z"}
+{"conversationId":43,"level":"info","message":"AI response received","timestamp":"2025-04-28T19:10:04.100Z"}
+{"conversationId":43,"level":"info","message":"AI response saved","messageId":47,"timestamp":"2025-04-28T19:10:04.138Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T19:10:06.884Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T19:10:06.887Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T19:10:06.914Z"}
+{"level":"info","message":"[IdentityService] Found 1 identities for user 1","timestamp":"2025-04-28T19:10:06.916Z"}
+{"level":"info","message":"POST /api/auth/logout","timestamp":"2025-04-28T19:10:18.686Z"}
+{"address":null,"authType":null,"authenticated":false,"cookie":{"expires":"2025-05-28T15:00:42.010Z","httpOnly":true,"originalMaxAge":2592000000,"path":"/","sameSite":"lax","secure":false},"email":null,"guestId":null,"isAdmin":false,"level":"info","message":"[SessionService] Saving session data:","pendingEmail":null,"previousGuestId":null,"processedGuestIds":[],"telegramId":null,"timestamp":"2025-04-28T19:10:18.687Z","userId":null}
+{"level":"info","message":"Session saved successfully","timestamp":"2025-04-28T19:10:18.692Z"}
+{"level":"info","message":"GET /api/auth/check","timestamp":"2025-04-28T19:10:18.716Z"}
+{"cookie":{"expires":"2025-05-28T19:10:18.714Z","httpOnly":true,"originalMaxAge":2592000000,"path":"/","sameSite":"lax","secure":false},"guestId":"f506e0e2a360684582cb4f96c8dce535","level":"info","message":"[SessionService] Saving session data:","timestamp":"2025-04-28T19:10:18.718Z"}
+{"level":"info","message":"Session saved successfully","timestamp":"2025-04-28T19:10:18.721Z"}
+{"level":"info","message":"GET /api/auth/identities","timestamp":"2025-04-28T19:10:36.964Z"}
+{"level":"info","message":"GET /api/auth/check","timestamp":"2025-04-28T19:10:37.560Z"}
+{"level":"info","message":"GET /api/auth/check","timestamp":"2025-04-28T19:10:37.583Z"}
diff --git a/backend/logs/error.log b/backend/logs/error.log
index e11ab80..2a7084e 100644
--- a/backend/logs/error.log
+++ b/backend/logs/error.log
@@ -1 +1,7 @@
-{"code":"42703","file":"parse_relation.c","hint":"Perhaps you meant to reference the column \"user_identities.created_at\".","length":183,"level":"error","line":"3729","message":"[IdentityService] Error finding wallet identity for user 1: column \"updated_at\" does not exist","name":"error","position":"43","routine":"errorMissingColumn","severity":"ERROR","stack":"error: column \"updated_at\" does not exist\n at /app/node_modules/pg-pool/index.js:45:11\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n at async IdentityService.findIdentity (/app/services/identity-service.js:258:22)\n at async /app/routes/auth.js:368:32","timestamp":"2025-04-22T14:39:48.332Z"}
+{"body":{"guestId":"1745825541972-nwmi3pcpe","language":"ru","message":""},"level":"error","message":"Error in /guest-message: null value in column \"content\" of relation \"guest_messages\" violates not-null constraint","stack":"error: null value in column \"content\" of relation \"guest_messages\" violates not-null constraint\n at /app/node_modules/pg-pool/index.js:45:11\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n at async /app/routes/chat.js:211:20","timestamp":"2025-04-28T07:37:57.316Z"}
+{"body":{"guestId":"1745826229509-a9cc49arg","language":"ru","message":""},"level":"error","message":"Error in /guest-message: null value in column \"content\" of relation \"guest_messages\" violates not-null constraint","stack":"error: null value in column \"content\" of relation \"guest_messages\" violates not-null constraint\n at /app/node_modules/pg-pool/index.js:45:11\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n at async /app/routes/chat.js:211:20","timestamp":"2025-04-28T07:43:49.319Z"}
+{"body":{"guestId":"1745827727896-sqo5zp8c5","language":"ru","message":""},"level":"error","message":"Error in /guest-message: invalid input syntax for type json","stack":"error: invalid input syntax for type json\n at /app/node_modules/pg-pool/index.js:45:11\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n at async /app/routes/chat.js:227:20","timestamp":"2025-04-28T08:08:48.293Z"}
+{"code":"42703","file":"parse_target.c","length":146,"level":"error","line":"1066","message":"Error saving guest message: column \"attachment_filename\" of relation \"guest_messages\" does not exist","name":"error","position":"82","routine":"checkInsertTargets","severity":"ERROR","stack":"error: column \"attachment_filename\" of relation \"guest_messages\" does not exist\n at /app/node_modules/pg-pool/index.js:45:11\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n at async /app/routes/chat.js:224:20","timestamp":"2025-04-28T14:28:29.099Z"}
+{"code":"23502","column":"content","detail":"Failing row contains (2, 1745850508983-zb9xi0g4t, null, ru, f, 2025-04-28 14:53:07.021316+00, image (15).png, image/png, 18375, \\x89504e470d0a1a0a0000000d4948445200000213000000ee08060000008330...).","file":"execMain.c","length":383,"level":"error","line":"2006","message":"Error saving guest message: null value in column \"content\" of relation \"guest_messages\" violates not-null constraint","name":"error","routine":"ExecConstraints","schema":"public","severity":"ERROR","stack":"error: null value in column \"content\" of relation \"guest_messages\" violates not-null constraint\n at /app/node_modules/pg-pool/index.js:45:11\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n at async /app/routes/chat.js:224:20","table":"guest_messages","timestamp":"2025-04-28T14:53:07.027Z"}
+{"level":"error","message":"Error fetching message history for user 1: syntax error at or near \"$\"","stack":"error: syntax error at or near \"$\"\n at /app/node_modules/pg-pool/index.js:45:11\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n at async /app/routes/chat.js:484:20","timestamp":"2025-04-28T14:57:24.546Z"}
+{"level":"error","message":"Error fetching message history for user 1: syntax error at or near \"$\"","stack":"error: syntax error at or near \"$\"\n at /app/node_modules/pg-pool/index.js:45:11\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n at async /app/routes/chat.js:484:20","timestamp":"2025-04-28T14:58:35.485Z"}
diff --git a/backend/package.json b/backend/package.json
index 542bd5b..2ccfd1e 100644
--- a/backend/package.json
+++ b/backend/package.json
@@ -43,6 +43,7 @@
"imap": "^0.8.19",
"langchain": "^0.3.19",
"mailparser": "^3.7.2",
+ "multer": "^1.4.5-lts.2",
"node-cron": "^3.0.3",
"node-telegram-bot-api": "^0.66.0",
"nodemailer": "^6.10.0",
@@ -87,5 +88,6 @@
"cookie": "^1.0.2",
"semver": "^7.7.1",
"**/utf7/semver": "^7.7.1"
- }
+ },
+ "packageManager": "yarn@1.22.22+sha512.a6b2f7906b721bba3d67d4aff083df04dad64c399707841b7acf00f6b133b7ac24255f2652fa22ae3534329dc6180534e98d17432037ff6fd140556e2bb3137e"
}
diff --git a/backend/routes/chat.js b/backend/routes/chat.js
index 049adad..cdb7258 100644
--- a/backend/routes/chat.js
+++ b/backend/routes/chat.js
@@ -1,14 +1,20 @@
const express = require('express');
const router = express.Router();
+const multer = require('multer');
const aiAssistant = require('../services/ai-assistant');
const db = require('../db');
const logger = require('../utils/logger');
const { requireAuth } = require('../middleware/auth');
+const crypto = require('crypto');
+
+// Настройка multer для обработки файлов в памяти
+const storage = multer.memoryStorage();
+const upload = multer({ storage: storage });
// Функция для обработки гостевых сообщений после аутентификации
async function processGuestMessages(userId, guestId) {
try {
- console.log(`Processing guest messages for user ${userId} with guest ID ${guestId}`);
+ logger.info(`Processing guest messages for user ${userId} with guest ID ${guestId}`);
// Проверяем, обрабатывались ли уже эти сообщения
const mappingCheck = await db.query(
@@ -18,7 +24,7 @@ async function processGuestMessages(userId, guestId) {
// Если сообщения уже обработаны, пропускаем
if (mappingCheck.rows.length > 0 && mappingCheck.rows[0].processed) {
- console.log(`Guest messages for guest ID ${guestId} were already processed.`);
+ logger.info(`Guest messages for guest ID ${guestId} were already processed.`);
return { success: true, message: 'Guest messages already processed' };
}
@@ -28,35 +34,38 @@ async function processGuestMessages(userId, guestId) {
'INSERT INTO guest_user_mapping (user_id, guest_id) VALUES ($1, $2) ON CONFLICT (guest_id) DO UPDATE SET user_id = $1',
[userId, guestId]
);
- console.log(`Created mapping for guest ID ${guestId} to user ${userId}`);
+ logger.info(`Created mapping for guest ID ${guestId} to user ${userId}`);
}
- // Получаем все гостевые сообщения
+ // Получаем все гостевые сообщения со всеми новыми полями
const guestMessagesResult = await db.query(
- 'SELECT * FROM guest_messages WHERE guest_id = $1 ORDER BY created_at ASC',
+ `SELECT
+ id, guest_id, content, language, is_ai, created_at,
+ attachment_filename, attachment_mimetype, attachment_size, attachment_data
+ FROM guest_messages WHERE guest_id = $1 ORDER BY created_at ASC`,
[guestId]
);
if (guestMessagesResult.rows.length === 0) {
- console.log('No guest messages found');
-
- // Помечаем как обработанные, даже если сообщений нет
- await db.query('UPDATE guest_user_mapping SET processed = true WHERE guest_id = $1', [
- guestId,
- ]);
-
+ logger.info(`No guest messages found for guest ID ${guestId}`);
+ const checkResult = await db.query('SELECT 1 FROM guest_user_mapping WHERE guest_id = $1', [guestId]);
+ if (checkResult.rows.length > 0) {
+ await db.query('UPDATE guest_user_mapping SET processed = true WHERE guest_id = $1', [guestId]);
+ logger.info(`Marked guest mapping as processed (no messages found) for guest ID ${guestId}`);
+ } else {
+ logger.warn(`Attempted to mark non-existent guest mapping as processed for guest ID ${guestId}`);
+ }
return { success: true, message: 'No guest messages found' };
}
const guestMessages = guestMessagesResult.rows;
- console.log(`Found ${guestMessages.length} guest messages`);
+ logger.info(`Found ${guestMessages.length} guest messages for guest ID ${guestId}`);
// Создаем новый диалог для этих сообщений
const firstMessage = guestMessages[0];
- const title =
- firstMessage.content.length > 30
- ? `${firstMessage.content.substring(0, 30)}...`
- : firstMessage.content;
+ const title = firstMessage.content
+ ? (firstMessage.content.length > 30 ? `${firstMessage.content.substring(0, 30)}...` : firstMessage.content)
+ : (firstMessage.attachment_filename ? `Файл: ${firstMessage.attachment_filename}` : 'Новый диалог');
const newConversationResult = await db.query(
'INSERT INTO conversations (user_id, title) VALUES ($1, $2) RETURNING *',
@@ -64,74 +73,79 @@ async function processGuestMessages(userId, guestId) {
);
const conversation = newConversationResult.rows[0];
- console.log('Created new conversation for guest messages:', conversation);
+ logger.info(`Created new conversation ${conversation.id} for guest messages`);
// Отслеживаем успешные сохранения сообщений
const savedMessageIds = [];
// Обрабатываем каждое гостевое сообщение
for (const guestMessage of guestMessages) {
- console.log(`Processing guest message ID ${guestMessage.id}: ${guestMessage.content}`);
+ logger.info(`Processing guest message ID ${guestMessage.id}: ${guestMessage.content || guestMessage.attachment_filename || '(empty)'}`);
try {
- // Сохраняем сообщение пользователя
+ // Сохраняем сообщение пользователя в таблицу messages, включая данные файла
const userMessageResult = await db.query(
- `INSERT INTO messages
- (conversation_id, content, sender_type, role, channel, created_at, user_id)
- VALUES
- ($1, $2, $3, $4, $5, $6, $7)
+ `INSERT INTO messages
+ (conversation_id, content, sender_type, role, channel, created_at, user_id,
+ attachment_filename, attachment_mimetype, attachment_size, attachment_data)
+ VALUES
+ ($1, $2, 'user', 'user', 'web', $3, $4,
+ $5, $6, $7, $8)
RETURNING *`,
[
conversation.id,
- guestMessage.content,
- 'user',
- 'user',
- 'web',
+ guestMessage.content, // Текст (может быть NULL)
guestMessage.created_at,
- userId, // Добавляем userId в сообщение для прямой связи
+ userId,
+ guestMessage.attachment_filename, // Метаданные и данные файла
+ guestMessage.attachment_mimetype,
+ guestMessage.attachment_size,
+ guestMessage.attachment_data // BYTEA
]
);
- console.log(`Saved user message with ID ${userMessageResult.rows[0].id}`);
+ const savedUserMessage = userMessageResult.rows[0];
+ logger.info(`Saved user message with ID ${savedUserMessage.id}`);
savedMessageIds.push(guestMessage.id);
- // Получаем ответ от ИИ только для сообщений пользователя (не AI)
- if (!guestMessage.is_ai) {
- console.log('Getting AI response for:', guestMessage.content);
+ // Получаем ответ от ИИ только для текстовых сообщений
+ if (!guestMessage.is_ai && guestMessage.content) {
+ logger.info('Getting AI response for:', guestMessage.content);
const language = guestMessage.language || 'auto';
- const aiResponse = await aiAssistant.getResponse(guestMessage.content, language);
- console.log('AI response received:', aiResponse);
+ // Предполагаем, что aiAssistant.getResponse принимает только текст
+ const aiResponseContent = await aiAssistant.getResponse(guestMessage.content, language);
+ logger.info('AI response received' + (aiResponseContent ? '' : ' (empty)'), 'for conversation', conversation.id);
- // Сохраняем ответ от ИИ
- const aiMessageResult = await db.query(
- `INSERT INTO messages
- (conversation_id, content, sender_type, role, channel, created_at, user_id)
- VALUES
- ($1, $2, $3, $4, $5, $6, $7)
- RETURNING *`,
- [
- conversation.id,
- aiResponse,
- 'assistant',
- 'assistant',
- 'web',
- new Date(),
- userId, // Добавляем userId в сообщение для прямой связи
- ]
- );
-
- console.log(`Saved AI response with ID ${aiMessageResult.rows[0].id}`);
+ if (aiResponseContent) {
+ // Сохраняем ответ от ИИ (у него нет вложений)
+ const aiMessageResult = await db.query(
+ `INSERT INTO messages
+ (conversation_id, content, sender_type, role, channel, created_at, user_id)
+ VALUES
+ ($1, $2, 'assistant', 'assistant', 'web', $3, $4)
+ RETURNING *`,
+ [
+ conversation.id,
+ aiResponseContent,
+ new Date(),
+ userId
+ ]
+ );
+ logger.info(`Saved AI response with ID ${aiMessageResult.rows[0].id}`);
+ }
+ } else {
+ logger.info(`Skipping AI response for guest message ID ${guestMessage.id} (is_ai: ${guestMessage.is_ai}, hasContent: ${!!guestMessage.content})`);
}
} catch (error) {
- console.error(`Error processing guest message ${guestMessage.id}:`, error);
+ logger.error(`Error processing guest message ${guestMessage.id}: ${error.message}`, { stack: error.stack });
// Продолжаем с другими сообщениями в случае ошибки
}
}
// Удаляем только успешно обработанные гостевые сообщения
if (savedMessageIds.length > 0) {
- await db.query('DELETE FROM guest_messages WHERE id = ANY($1)', [savedMessageIds]);
- console.log(
+ await db.query('DELETE FROM guest_messages WHERE id = ANY($1::int[])', [savedMessageIds]);
+ logger.info(
`Deleted ${savedMessageIds.length} processed guest messages for guest ID ${guestId}`
);
@@ -139,8 +153,12 @@ async function processGuestMessages(userId, guestId) {
await db.query('UPDATE guest_user_mapping SET processed = true WHERE guest_id = $1', [
guestId,
]);
+ logger.info(`Marked guest mapping as processed for guest ID ${guestId}`);
} else {
- console.log('No guest messages were successfully processed, skipping deletion');
+ logger.warn(`No guest messages were successfully processed, skipping deletion for guest ID ${guestId}`);
+ // Если не было успешных, все равно пометим как обработанные, чтобы не пытаться снова
+ await db.query('UPDATE guest_user_mapping SET processed = true WHERE guest_id = $1', [guestId]);
+ logger.info(`Marked guest mapping as processed (no successful messages) for guest ID ${guestId}`);
}
return {
@@ -149,130 +167,244 @@ async function processGuestMessages(userId, guestId) {
conversationId: conversation.id,
};
} catch (error) {
- console.error('Error processing guest messages:', error);
- throw error;
+ logger.error(`Error in processGuestMessages for guest ID ${guestId}: ${error.message}`, { stack: error.stack });
+ // Не пробрасываем ошибку дальше, чтобы не прерывать основной поток, но логируем ее
+ return { success: false, error: 'Internal error during guest message processing' };
}
}
// Обработчик для гостевых сообщений
-router.post('/guest-message', async (req, res) => {
- try {
- const { content, language, guestId: requestGuestId } = req.body;
+router.post('/guest-message', upload.array('attachments'), async (req, res) => {
+ // Логируем полученные данные
+ logger.info('Received /guest-message request');
+ logger.debug('Request Body:', req.body);
+ logger.debug('Request Files:', req.files); // Файлы будут здесь
- if (!content) {
- return res.status(400).json({ success: false, error: 'Content is required' });
+ try {
+ // Извлекаем данные из req.body (текстовые поля)
+ const { message, language, guestId: requestGuestId } = req.body;
+ const files = req.files; // Файлы извлекаем из req.files
+ const file = files && files.length > 0 ? files[0] : null; // Берем только первый файл
+
+ // Валидация: должно быть либо сообщение, либо файл
+ if (!message && !file) {
+ logger.warn('Guest message attempt without content or file.', { guestId: requestGuestId });
+ return res.status(400).json({ success: false, error: 'Требуется текст сообщения или файл.' });
+ }
+ // Запрещаем и текст, и файл одновременно (согласно новым требованиям)
+ if (message && file) {
+ logger.warn('Guest message attempt with both text and file.', { guestId: requestGuestId });
+ return res.status(400).json({ success: false, error: 'Нельзя отправить текст и файл одновременно.' });
}
// Используем гостевой ID из запроса или из сессии, или генерируем новый
const guestId = requestGuestId || req.session.guestId || crypto.randomBytes(16).toString('hex');
- // Сохраняем ID гостя в сессии
- req.session.guestId = guestId;
- await req.session.save();
+ // Сохраняем/обновляем ID гостя в сессии
+ if (req.session.guestId !== guestId) {
+ req.session.guestId = guestId;
+ }
- console.log('Saving guest message:', { guestId, content });
+ // Подготавливаем данные для вставки
+ const messageContent = message || ''; // Текст или ПУСТАЯ СТРОКА, если есть файл
+ const attachmentFilename = file ? file.originalname : null;
+ const attachmentMimetype = file ? file.mimetype : null;
+ const attachmentSize = file ? file.size : null;
+ const attachmentData = file ? file.buffer : null; // Сам буфер файла
- // Сохраняем сообщение пользователя
+ logger.info('Saving guest message:', {
+ guestId,
+ message: messageContent,
+ file: attachmentFilename,
+ mimetype: attachmentMimetype,
+ size: attachmentSize
+ });
+
+ // Сохраняем сообщение пользователя с текстом или файлом
const result = await db.query(
- 'INSERT INTO guest_messages (guest_id, content, language, is_ai) VALUES ($1, $2, $3, false) RETURNING id',
- [guestId, content, language || 'auto']
+ `INSERT INTO guest_messages
+ (guest_id, content, language, is_ai,
+ attachment_filename, attachment_mimetype, attachment_size, attachment_data)
+ VALUES ($1, $2, $3, false, $4, $5, $6, $7) RETURNING id`,
+ [
+ guestId,
+ messageContent, // Текст сообщения или NULL
+ language || 'auto',
+ attachmentFilename,
+ attachmentMimetype,
+ attachmentSize,
+ attachmentData // BYTEA данные файла или NULL
+ ]
);
- console.log('Guest message saved:', result.rows[0]);
+ const savedMessageId = result.rows[0].id;
+ logger.info('Guest message saved with ID:', savedMessageId);
+
+ // Сохраняем сессию после успешной операции с БД
+ try {
+ await new Promise((resolve, reject) => {
+ req.session.save((err) => {
+ if (err) return reject(err);
+ resolve();
+ });
+ });
+ logger.info('Session saved after guest message');
+ } catch (sessionError) {
+ logger.error('Error saving session after guest message:', sessionError);
+ // Не прерываем ответ пользователю из-за ошибки сессии
+ }
res.json({
success: true,
- messageId: result.rows[0].id,
+ messageId: savedMessageId, // Возвращаем ID сохраненного сообщения
+ guestId: guestId // Возвращаем использованный guestId
});
} catch (error) {
- console.error('Error saving guest message:', error);
- res.status(500).json({ success: false, error: 'Internal server error' });
+ logger.error('Error saving guest message:', error);
+ res.status(500).json({ success: false, error: 'Ошибка сохранения гостевого сообщения' });
}
});
-// Маршрут для обычных сообщений (для аутентифицированных пользователей)
-router.post('/message', requireAuth, async (req, res) => {
- const { message, conversationId, language = 'auto' } = req.body;
+// Обработчик для сообщений аутентифицированных пользователей
+router.post('/message', requireAuth, upload.array('attachments'), async (req, res) => {
+ logger.info('Received /message request');
+ logger.debug('Request Body:', req.body);
+ logger.debug('Request Files:', req.files);
- if (!message) {
- return res.status(400).json({ error: 'Message is required' });
+ const userId = req.session.userId;
+ const { message, language, conversationId: convIdFromRequest } = req.body;
+ const files = req.files;
+ const file = files && files.length > 0 ? files[0] : null;
+
+ // Валидация: должно быть либо сообщение, либо файл
+ if (!message && !file) {
+ logger.warn('Authenticated message attempt without content or file.', { userId });
+ return res.status(400).json({ success: false, error: 'Требуется текст сообщения или файл.' });
+ }
+ // Запрещаем и текст, и файл одновременно
+ if (message && file) {
+ logger.warn('Authenticated message attempt with both text and file.', { userId });
+ return res.status(400).json({ success: false, error: 'Нельзя отправить текст и файл одновременно.' });
}
+ let conversationId = convIdFromRequest;
+ let conversation = null;
+
try {
- console.log('Processing message:', {
- message,
- conversationId,
- language,
- userId: req.session.userId,
- });
- const userId = req.session.userId;
-
- let conversation;
-
- // Если указан ID диалога, проверяем его существование и принадлежность пользователю
+ // Найти или создать диалог
if (conversationId) {
- const conversationResult = await db.query(
+ const convResult = await db.query(
'SELECT * FROM conversations WHERE id = $1 AND user_id = $2',
[conversationId, userId]
);
-
- if (conversationResult.rows.length === 0) {
- return res.status(404).json({ error: 'Conversation not found or access denied' });
+ if (convResult.rows.length === 0) {
+ logger.warn('Conversation not found or access denied', { conversationId, userId });
+ return res.status(404).json({ success: false, error: 'Диалог не найден или доступ запрещен' });
}
-
- conversation = conversationResult.rows[0];
- console.log('Using existing conversation:', conversation);
+ conversation = convResult.rows[0];
} else {
- // Создаем новый диалог
- const title = message.length > 30 ? `${message.substring(0, 30)}...` : message;
+ // Создаем новый диалог, если ID не предоставлен
+ const title = message
+ ? (message.length > 50 ? `${message.substring(0, 50)}...` : message)
+ : (file ? `Файл: ${file.originalname}` : 'Новый диалог');
- const newConversationResult = await db.query(
+ const newConvResult = await db.query(
'INSERT INTO conversations (user_id, title) VALUES ($1, $2) RETURNING *',
[userId, title]
);
-
- conversation = newConversationResult.rows[0];
- console.log('Created new conversation:', conversation);
+ conversation = newConvResult.rows[0];
+ conversationId = conversation.id;
+ logger.info('Created new conversation', { conversationId, userId });
}
+ // Подготавливаем данные для вставки сообщения пользователя
+ const messageContent = message || ''; // Текст или ПУСТАЯ СТРОКА, если есть файл
+ const attachmentFilename = file ? file.originalname : null;
+ const attachmentMimetype = file ? file.mimetype : null;
+ const attachmentSize = file ? file.size : null;
+ const attachmentData = file ? file.buffer : null;
+
// Сохраняем сообщение пользователя
- console.log('Saving user message');
const userMessageResult = await db.query(
- `INSERT INTO messages
- (conversation_id, content, sender_type, role, tokens_used, channel, created_at)
- VALUES
- ($1, $2, $3, $4, $5, $6, $7)
+ `INSERT INTO messages
+ (conversation_id, user_id, content, sender_type, role, channel,
+ attachment_filename, attachment_mimetype, attachment_size, attachment_data)
+ VALUES ($1, $2, $3, 'user', 'user', 'web', $4, $5, $6, $7)
RETURNING *`,
- [conversation.id, message, 'user', 'user', 0, 'web', new Date()]
+ [
+ conversationId,
+ userId,
+ messageContent,
+ attachmentFilename,
+ attachmentMimetype,
+ attachmentSize,
+ attachmentData
+ ]
);
+ const userMessage = userMessageResult.rows[0];
+ logger.info('User message saved', { messageId: userMessage.id, conversationId });
- // Получаем ответ от ИИ
- console.log('Getting AI response');
- const aiResponse = await aiAssistant.getResponse(message, language);
- console.log('AI response received:', aiResponse);
+ // Получаем ответ от ИИ, только если это было текстовое сообщение
+ let aiMessage = null;
+ if (messageContent) { // Только для текстовых сообщений
+ try {
+ const detectedLanguage = language === 'auto' ? aiAssistant.detectLanguage(messageContent) : language;
+ logger.info('Getting AI response for:', messageContent);
+ const aiResponseContent = await aiAssistant.getResponse(messageContent, detectedLanguage);
+ logger.info('AI response received' + (aiResponseContent ? '' : ' (empty)'), { conversationId });
- // Сохраняем ответ от ИИ
- console.log('Saving AI response');
- const aiMessageResult = await db.query(
- `INSERT INTO messages
- (conversation_id, content, sender_type, role, tokens_used, channel, created_at)
- VALUES
- ($1, $2, $3, $4, $5, $6, $7)
- RETURNING *`,
- [conversation.id, aiResponse, 'assistant', 'assistant', 0, 'web', new Date()]
- );
+ if (aiResponseContent) {
+ const aiMessageResult = await db.query(
+ `INSERT INTO messages
+ (conversation_id, user_id, content, sender_type, role, channel)
+ VALUES ($1, $2, $3, 'assistant', 'assistant', 'web')
+ RETURNING *`,
+ [conversationId, userId, aiResponseContent]
+ );
+ aiMessage = aiMessageResult.rows[0];
+ logger.info('AI response saved', { messageId: aiMessage.id, conversationId });
+ }
+ } catch (aiError) {
+ logger.error('Error getting or saving AI response:', aiError);
+ // Не прерываем основной ответ, но логируем ошибку
+ }
+ }
- const response = {
- success: true,
- userMessage: userMessageResult.rows[0],
- aiMessage: aiMessageResult.rows[0],
- conversation,
+ // Форматируем ответ для фронтенда
+ const formatMessageForFrontend = (msg) => {
+ if (!msg) return null;
+ const formatted = {
+ id: msg.id,
+ conversation_id: msg.conversation_id,
+ user_id: msg.user_id,
+ content: msg.content,
+ sender_type: msg.sender_type,
+ role: msg.role,
+ channel: msg.channel,
+ created_at: msg.created_at,
+ attachments: null // Инициализируем как null
+ };
+ // Добавляем информацию о файле, если она есть
+ if (msg.attachment_filename) {
+ formatted.attachments = [{
+ originalname: msg.attachment_filename,
+ mimetype: msg.attachment_mimetype,
+ size: msg.attachment_size,
+ // НЕ передаем attachment_data обратно в ответе на POST
+ }];
+ }
+ return formatted;
};
- res.json(response);
+ res.json({
+ success: true,
+ conversationId: conversationId,
+ userMessage: formatMessageForFrontend(userMessage),
+ aiMessage: formatMessageForFrontend(aiMessage),
+ });
} catch (error) {
- console.error('Error processing message:', error);
- res.status(500).json({ error: 'Error processing message' });
+ logger.error('Error processing authenticated message:', error);
+ res.status(500).json({ success: false, error: 'Ошибка обработки сообщения' });
}
});
@@ -292,79 +424,120 @@ router.get('/models', async (req, res) => {
});
// Получение истории сообщений
-router.get('/history', async (req, res) => {
+router.get('/history', requireAuth, async (req, res) => {
+ const userId = req.session.userId;
+ // Параметры пагинации
+ const limit = parseInt(req.query.limit, 10) || 30;
+ const offset = parseInt(req.query.offset, 10) || 0;
+ // Флаг для запроса только количества
+ const countOnly = req.query.count_only === 'true';
+ // Опциональный ID диалога
+ const conversationId = req.query.conversation_id;
+
try {
- console.log('Session in history route:', {
- id: req.sessionID,
- userId: req.session.userId,
- address: req.session.address,
- authenticated: req.session.authenticated,
- guestId: req.session.guestId,
+ // Если нужен только подсчет
+ if (countOnly) {
+ let countQuery = 'SELECT COUNT(*) FROM messages WHERE user_id = $1';
+ let countParams = [userId];
+ if (conversationId) {
+ countQuery += ' AND conversation_id = $2';
+ countParams.push(conversationId);
+ }
+ const countResult = await db.query(countQuery, countParams);
+ const totalCount = parseInt(countResult.rows[0].count, 10);
+ return res.json({ success: true, count: totalCount });
+ }
+
+ // Формируем основной запрос
+ let query = `
+ SELECT
+ id,
+ conversation_id,
+ user_id,
+ content,
+ sender_type,
+ role,
+ channel,
+ created_at,
+ attachment_filename,
+ attachment_mimetype,
+ attachment_size,
+ attachment_data -- Выбираем и данные файла
+ FROM messages
+ WHERE user_id = $1
+ `;
+ const params = [userId];
+
+ // Добавляем фильтр по диалогу, если нужно
+ if (conversationId) {
+ query += ' AND conversation_id = $2';
+ params.push(conversationId);
+ }
+
+ // Добавляем сортировку и пагинацию
+ query += ' ORDER BY created_at ASC LIMIT $' + (params.length + 1) + ' OFFSET $' + (params.length + 2);
+ params.push(limit);
+ params.push(offset);
+
+ logger.debug('Executing history query:', { query, params });
+
+ const result = await db.query(query, params);
+
+ // Обрабатываем результаты для фронтенда
+ const messages = result.rows.map(msg => {
+ const formatted = {
+ id: msg.id,
+ conversation_id: msg.conversation_id,
+ user_id: msg.user_id,
+ content: msg.content,
+ sender_type: msg.sender_type,
+ role: msg.role,
+ channel: msg.channel,
+ created_at: msg.created_at,
+ attachments: null // Инициализируем
+ };
+
+ // Если есть данные файла, добавляем их в attachments
+ if (msg.attachment_data) {
+ formatted.attachments = [{
+ originalname: msg.attachment_filename,
+ mimetype: msg.attachment_mimetype,
+ size: msg.attachment_size,
+ // Кодируем Buffer в Base64 для передачи на фронтенд
+ data_base64: msg.attachment_data.toString('base64')
+ }];
+ }
+ // Не забываем удалить поле attachment_data из итогового объекта,
+ // так как оно уже обработано и не нужно в сыром виде на фронте
+ // (хотя map и так создает новый объект, это для ясности)
+ delete formatted.attachment_data;
+
+ return formatted;
});
- const limit = parseInt(req.query.limit) || 50;
- const offset = parseInt(req.query.offset) || 0;
-
- // Если пользователь аутентифицирован и у него есть гостевые сообщения,
- // автоматически связываем их перед получением истории
- if (req.session.authenticated && req.session.userId && req.session.guestId) {
- try {
- console.log('Automatically linking guest messages before fetching history');
- await processGuestMessages(req.session.userId, req.session.guestId);
-
- // Очищаем guestId из сессии после связывания
- req.session.guestId = null;
- await req.session.save();
-
- console.log('Guest messages automatically linked');
- } catch (linkError) {
- console.error('Error auto-linking guest messages:', linkError);
- // Продолжаем выполнение, даже если связывание не удалось
- }
+ // Получаем общее количество сообщений для пагинации (если не запрашивали только количество)
+ let totalCountQuery = 'SELECT COUNT(*) FROM messages WHERE user_id = $1';
+ let totalCountParams = [userId];
+ if (conversationId) {
+ totalCountQuery += ' AND conversation_id = $2';
+ totalCountParams.push(conversationId);
}
+ const totalCountResult = await db.query(totalCountQuery, totalCountParams);
+ const totalMessages = parseInt(totalCountResult.rows[0].count, 10);
- let messages = [];
- let total = 0;
+ logger.info(`Returning message history for user ${userId}`, { count: messages.length, offset, limit, total: totalMessages });
- // Если пользователь аутентифицирован, получаем его сообщения
- if (req.session.authenticated && req.session.userId) {
- const countResult = await db.query(
- `SELECT COUNT(*) as total FROM messages m
- JOIN conversations c ON m.conversation_id = c.id
- WHERE c.user_id = $1`,
- [req.session.userId]
- );
- total = parseInt(countResult.rows[0].total) || 0;
-
- const result = await db.query(
- `SELECT
- m.id,
- m.content,
- m.sender_type,
- m.role,
- m.created_at,
- c.user_id,
- c.id as conversation_id
- FROM messages m
- JOIN conversations c ON m.conversation_id = c.id
- WHERE c.user_id = $1
- ORDER BY m.created_at ASC
- LIMIT $2 OFFSET $3`,
- [req.session.userId, limit, offset]
- );
-
- messages = result.rows;
- console.log(`Found ${messages.length} messages for authenticated user`);
- }
-
- return res.json({
+ res.json({
success: true,
messages: messages,
- total: total,
+ offset: offset,
+ limit: limit,
+ total: totalMessages
});
+
} catch (error) {
- logger.error('Error getting chat history:', error);
- return res.status(500).json({ error: 'Internal server error' });
+ logger.error(`Error fetching message history for user ${userId}: ${error.message}`, { stack: error.stack });
+ res.status(500).json({ success: false, error: 'Ошибка получения истории сообщений' });
}
});
diff --git a/backend/scripts/run-migrations.js b/backend/scripts/run-migrations.js
index 7ae2dd2..f1eb10f 100644
--- a/backend/scripts/run-migrations.js
+++ b/backend/scripts/run-migrations.js
@@ -38,16 +38,48 @@ async function runMigrations() {
for (const file of migrationFiles) {
if (!executedMigrations.has(file)) {
const filePath = path.join(migrationsDir, file);
- const sql = await fs.readFile(filePath, 'utf-8');
+ const fileContent = await fs.readFile(filePath, 'utf-8');
+ // Ищем начало UP секции (или начало файла)
+ const upMarker = '-- UP Migration';
+ const downMarker = '-- DOWN Migration';
+ let upSqlStartIndex = fileContent.indexOf(upMarker);
+ if (upSqlStartIndex !== -1) {
+ // Ищем перевод строки после маркера
+ let newlineIndex = fileContent.indexOf('\n', upSqlStartIndex);
+ if (newlineIndex === -1) { // Если маркер в последней строке
+ newlineIndex = fileContent.length;
+ }
+ upSqlStartIndex = newlineIndex + 1; // Начинаем со следующей строки
+ } else {
+ upSqlStartIndex = 0; // Если маркера нет, берем все с начала
+ }
+
+ // Ищем конец UP секции (начало DOWN секции)
+ let upSqlEndIndex = fileContent.indexOf(downMarker);
+ if (upSqlEndIndex === -1) {
+ upSqlEndIndex = fileContent.length; // Если маркера DOWN нет, берем все до конца
+ }
+
+ // Извлекаем только UP SQL
+ const sqlToExecute = fileContent.substring(upSqlStartIndex, upSqlEndIndex).trim();
+
+ if (!sqlToExecute) {
+ logger.warn(`Migration file ${file} has no executable UP SQL content. Skipping.`);
+ continue; // Пропускаем пустые миграции
+ }
+
+ logger.info(`Executing UP migration from ${file}...`);
await pool.query('BEGIN');
try {
- await pool.query(sql);
+ // Выполняем только извлеченный UP SQL
+ await pool.query(sqlToExecute);
await pool.query('INSERT INTO migrations (name) VALUES ($1)', [file]);
await pool.query('COMMIT');
logger.info(`Migration ${file} executed successfully`);
} catch (error) {
await pool.query('ROLLBACK');
+ logger.error(`Error executing migration ${file}:`, error); // Логируем ошибку перед пробросом
throw error;
}
}
diff --git a/backend/yarn.lock b/backend/yarn.lock
index a1115c5..61f1110 100644
--- a/backend/yarn.lock
+++ b/backend/yarn.lock
@@ -2,14 +2,9 @@
# yarn lockfile v1
-"@adraffy/ens-normalize@1.10.0":
- version "1.10.0"
- resolved "https://registry.yarnpkg.com/@adraffy/ens-normalize/-/ens-normalize-1.10.0.tgz#d2a39395c587e092d77cbbc80acf956a54f38bf7"
- integrity sha512-nA9XHtlAkYfJxY7bce8DcN7eKxWWCWkU+1GR9d+U6MbNpfwQp8TI7vqOsBsMcHoT4mBu2kypKoSKnghEzOOq5Q==
-
"@adraffy/ens-normalize@1.10.1":
version "1.10.1"
- resolved "https://registry.npmjs.org/@adraffy/ens-normalize/-/ens-normalize-1.10.1.tgz"
+ resolved "https://registry.yarnpkg.com/@adraffy/ens-normalize/-/ens-normalize-1.10.1.tgz#63430d04bd8c5e74f8d7d049338f1cd9d4f02069"
integrity sha512-96Z2IP3mYmF1Xg2cDm8f1gWGf/HUVedQ3FMifV4kG/PQ4yEP51xDtRAEfhVNt5f/uzpNkZHwWQuUcu6D6K+Ekw==
"@adraffy/ens-normalize@^1.10.1":
@@ -24,7 +19,7 @@
"@colors/colors@1.6.0", "@colors/colors@^1.6.0":
version "1.6.0"
- resolved "https://registry.npmjs.org/@colors/colors/-/colors-1.6.0.tgz"
+ resolved "https://registry.yarnpkg.com/@colors/colors/-/colors-1.6.0.tgz#ec6cd237440700bc23ca23087f513c75508958b0"
integrity sha512-Ir+AOibqzrIsL6ajt3Rz3LskB7OiMVHqltZmspbW/TJuTVuyOMirVqAkjfY6JISiLHgyNqicAC8AyHHGzNd/dA==
"@cspotcode/source-map-support@^0.8.0":
@@ -36,7 +31,7 @@
"@cypress/request-promise@^5.0.0":
version "5.0.0"
- resolved "https://registry.npmjs.org/@cypress/request-promise/-/request-promise-5.0.0.tgz"
+ resolved "https://registry.yarnpkg.com/@cypress/request-promise/-/request-promise-5.0.0.tgz#86899e097dba5123c546f1cadb9bff70e2654ebe"
integrity sha512-eKdYVpa9cBEw2kTBlHeu1PP16Blwtum6QHg/u9s/MoHkZfuo1pRGka1VlUHXF5kdew82BvOJVVGk0x8X0nbp+w==
dependencies:
bluebird "^3.5.0"
@@ -45,9 +40,9 @@
tough-cookie "^4.1.3"
"@cypress/request@^3.0.1":
- version "3.0.7"
- resolved "https://registry.npmjs.org/@cypress/request/-/request-3.0.7.tgz"
- integrity sha512-LzxlLEMbBOPYB85uXrDqvD4MgcenjRBLIns3zyhx7vTPj/0u2eQhzXvPiGcaJrV38Q9dbkExWp6cOHPJ+EtFYg==
+ version "3.0.8"
+ resolved "https://registry.yarnpkg.com/@cypress/request/-/request-3.0.8.tgz#992f1f42ba03ebb14fa5d97290abe9d015ed0815"
+ integrity sha512-h0NFgh1mJmm1nr4jCwkGHwKneVYKghUyWe6TMNrk0B9zsjAJxpg8C4/+BAcmLgCPa1vj1V8rNUaILl+zYRUWBQ==
dependencies:
aws-sign2 "~0.7.0"
aws4 "^1.8.0"
@@ -62,7 +57,7 @@
json-stringify-safe "~5.0.1"
mime-types "~2.1.19"
performance-now "^2.1.0"
- qs "6.13.1"
+ qs "6.14.0"
safe-buffer "^5.1.2"
tough-cookie "^5.0.0"
tunnel-agent "^0.6.0"
@@ -70,7 +65,7 @@
"@dabh/diagnostics@^2.0.2":
version "2.0.3"
- resolved "https://registry.npmjs.org/@dabh/diagnostics/-/diagnostics-2.0.3.tgz"
+ resolved "https://registry.yarnpkg.com/@dabh/diagnostics/-/diagnostics-2.0.3.tgz#7f7e97ee9a725dffc7808d93668cc984e1dc477a"
integrity sha512-hrlQOIi7hAfzsMqlGSFyVucrx38O+j6wiGOf//H2ecvIEqYN4ADBSS2iLMh5UFyDunCNniUIPk/q3riFv45xRA==
dependencies:
colorspace "1.1.x"
@@ -78,37 +73,42 @@
kuler "^2.0.0"
"@eslint-community/eslint-utils@^4.2.0":
- version "4.4.1"
- resolved "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.1.tgz"
- integrity sha512-s3O3waFUrMV8P/XaF/+ZTp1X9XBZW1a4B97ZnjQF2KYWaFD2A8KyFBsrsfSjEmjn3RGWAIuvlneuZm3CUK3jbA==
+ version "4.6.1"
+ resolved "https://registry.yarnpkg.com/@eslint-community/eslint-utils/-/eslint-utils-4.6.1.tgz#e4c58fdcf0696e7a5f19c30201ed43123ab15abc"
+ integrity sha512-KTsJMmobmbrFLe3LDh0PC2FXpcSYJt/MLjlkh/9LEnmKYLSYmT/0EW9JWANjeoemiuZrmogti0tW5Ch+qNUYDw==
dependencies:
eslint-visitor-keys "^3.4.3"
"@eslint-community/regexpp@^4.12.1":
version "4.12.1"
- resolved "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.12.1.tgz"
+ resolved "https://registry.yarnpkg.com/@eslint-community/regexpp/-/regexpp-4.12.1.tgz#cfc6cffe39df390a3841cde2abccf92eaa7ae0e0"
integrity sha512-CCZCDJuduB9OUkFkY2IgppNZMi2lBQgD2qzwXkEia16cge2pijY/aXi96CJMquDMn3nJdlPV1A5KrJEXwfLNzQ==
-"@eslint/config-array@^0.19.2":
- version "0.19.2"
- resolved "https://registry.npmjs.org/@eslint/config-array/-/config-array-0.19.2.tgz"
- integrity sha512-GNKqxfHG2ySmJOBSHg7LxeUx4xpuCoFjacmlCoYWEbaPXLwvfIjixRI12xCQZeULksQb23uiA8F40w5TojpV7w==
+"@eslint/config-array@^0.20.0":
+ version "0.20.0"
+ resolved "https://registry.yarnpkg.com/@eslint/config-array/-/config-array-0.20.0.tgz#7a1232e82376712d3340012a2f561a2764d1988f"
+ integrity sha512-fxlS1kkIjx8+vy2SjuCB94q3htSNrufYTXubwiBFeaQHbH6Ipi43gFJq2zCMt6PHhImH3Xmr0NksKDvchWlpQQ==
dependencies:
"@eslint/object-schema" "^2.1.6"
debug "^4.3.1"
minimatch "^3.1.2"
-"@eslint/core@^0.12.0":
- version "0.12.0"
- resolved "https://registry.npmjs.org/@eslint/core/-/core-0.12.0.tgz"
- integrity sha512-cmrR6pytBuSMTaBweKoGMwu3EiHiEC+DoyupPmlZ0HxBJBtIxwe+j/E4XPIKNx+Q74c8lXKPwYawBf5glsTkHg==
+"@eslint/config-helpers@^0.2.1":
+ version "0.2.1"
+ resolved "https://registry.yarnpkg.com/@eslint/config-helpers/-/config-helpers-0.2.1.tgz#26042c028d1beee5ce2235a7929b91c52651646d"
+ integrity sha512-RI17tsD2frtDu/3dmI7QRrD4bedNKPM08ziRYaC5AhkGrzIAJelm9kJU1TznK+apx6V+cqRz8tfpEeG3oIyjxw==
+
+"@eslint/core@^0.13.0":
+ version "0.13.0"
+ resolved "https://registry.yarnpkg.com/@eslint/core/-/core-0.13.0.tgz#bf02f209846d3bf996f9e8009db62df2739b458c"
+ integrity sha512-yfkgDw1KR66rkT5A8ci4irzDysN7FRpq3ttJolR88OqQikAWqwA8j5VZyas+vjyBNFIJ7MfybJ9plMILI2UrCw==
dependencies:
"@types/json-schema" "^7.0.15"
-"@eslint/eslintrc@^3.3.0":
- version "3.3.0"
- resolved "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-3.3.0.tgz"
- integrity sha512-yaVPAiNAalnCZedKLdR21GOGILMLKPyqSLWaAjQFvYA2i/ciDi8ArYVr69Anohb6cH2Ukhqti4aFnYyPm8wdwQ==
+"@eslint/eslintrc@^3.3.1":
+ version "3.3.1"
+ resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-3.3.1.tgz#e55f7f1dd400600dd066dbba349c4c0bac916964"
+ integrity sha512-gtF186CXhIl1p4pJNGZw8Yc6RlshoePRvE0X91oPGb3vZ8pM3qOS9W9NGPat9LziaBV7XrJWGylNQXkGcnM3IQ==
dependencies:
ajv "^6.12.4"
debug "^4.3.2"
@@ -120,22 +120,22 @@
minimatch "^3.1.2"
strip-json-comments "^3.1.1"
-"@eslint/js@9.21.0":
- version "9.21.0"
- resolved "https://registry.npmjs.org/@eslint/js/-/js-9.21.0.tgz"
- integrity sha512-BqStZ3HX8Yz6LvsF5ByXYrtigrV5AXADWLAGc7PH/1SxOb7/FIYYMszZZWiUou/GB9P2lXWk2SV4d+Z8h0nknw==
+"@eslint/js@9.25.1":
+ version "9.25.1"
+ resolved "https://registry.yarnpkg.com/@eslint/js/-/js-9.25.1.tgz#25f5c930c2b68b5ebe7ac857f754cbd61ef6d117"
+ integrity sha512-dEIwmjntEx8u3Uvv+kr3PDeeArL8Hw07H9kyYxCjnM9pBjfEhk6uLXSchxxzgiwtRhhzVzqmUSDFBOi1TuZ7qg==
"@eslint/object-schema@^2.1.6":
version "2.1.6"
- resolved "https://registry.npmjs.org/@eslint/object-schema/-/object-schema-2.1.6.tgz"
+ resolved "https://registry.yarnpkg.com/@eslint/object-schema/-/object-schema-2.1.6.tgz#58369ab5b5b3ca117880c0f6c0b0f32f6950f24f"
integrity sha512-RBMg5FRL0I0gs51M/guSAj5/e14VQ4tpZnQNWwuDT66P14I43ItmPfIZRhO9fUVIPOAQXU47atlywZ/czoqFPA==
-"@eslint/plugin-kit@^0.2.7":
- version "0.2.7"
- resolved "https://registry.npmjs.org/@eslint/plugin-kit/-/plugin-kit-0.2.7.tgz"
- integrity sha512-JubJ5B2pJ4k4yGxaNLdbjrnk9d/iDz6/q8wOilpIowd6PJPgaxCuHBnBszq7Ce2TyMrywm5r4PnKm6V3iiZF+g==
+"@eslint/plugin-kit@^0.2.8":
+ version "0.2.8"
+ resolved "https://registry.yarnpkg.com/@eslint/plugin-kit/-/plugin-kit-0.2.8.tgz#47488d8f8171b5d4613e833313f3ce708e3525f8"
+ integrity sha512-ZAoA40rNMPwSm+AeHpCq8STiNAwzWLJuP8Xv4CHIc9wv/PSuExjMrmjfYNj682vW0OOiZ1HKxzvjQr9XZIisQA==
dependencies:
- "@eslint/core" "^0.12.0"
+ "@eslint/core" "^0.13.0"
levn "^0.4.1"
"@ethereumjs/rlp@^4.0.1":
@@ -143,6 +143,11 @@
resolved "https://registry.yarnpkg.com/@ethereumjs/rlp/-/rlp-4.0.1.tgz#626fabfd9081baab3d0a3074b0c7ecaf674aaa41"
integrity sha512-tqsQiBQDQdmPWE1xkkBq4rlSW5QZpLOUJ5RJh2/9fug+q9tnUhuZoVLk7s0scUIKTOzEtR72DFBXI4WiZcMpvw==
+"@ethereumjs/rlp@^5.0.2":
+ version "5.0.2"
+ resolved "https://registry.yarnpkg.com/@ethereumjs/rlp/-/rlp-5.0.2.tgz#c89bd82f2f3bec248ab2d517ae25f5bbc4aac842"
+ integrity sha512-DziebCdg4JpGlEqEdGgXmjqcFoJi+JGulUXwEjsZGAscAQ7MyD/7LE/GVCP29vEQxKc7AAwjT3A2ywHp2xfoCA==
+
"@ethereumjs/util@^8.1.0":
version "8.1.0"
resolved "https://registry.yarnpkg.com/@ethereumjs/util/-/util-8.1.0.tgz#299df97fb6b034e0577ce9f94c7d9d1004409ed4"
@@ -152,6 +157,14 @@
ethereum-cryptography "^2.0.0"
micro-ftch "^0.3.1"
+"@ethereumjs/util@^9.1.0":
+ version "9.1.0"
+ resolved "https://registry.yarnpkg.com/@ethereumjs/util/-/util-9.1.0.tgz#75e3898a3116d21c135fa9e29886565609129bce"
+ integrity sha512-XBEKsYqLGXLah9PNJbgdkigthkG7TAGvlD/sH12beMXEyHDyigfcbdvHhmLyDWgDyOJn4QwiQUaF7yeuhnjdog==
+ dependencies:
+ "@ethereumjs/rlp" "^5.0.2"
+ ethereum-cryptography "^2.2.1"
+
"@ethersproject/abi@^5.0.9", "@ethersproject/abi@^5.1.2", "@ethersproject/abi@^5.7.0":
version "5.8.0"
resolved "https://registry.yarnpkg.com/@ethersproject/abi/-/abi-5.8.0.tgz#e79bb51940ac35fe6f3262d7fe2cdb25ad5f07d9"
@@ -356,12 +369,12 @@
"@humanfs/core@^0.19.1":
version "0.19.1"
- resolved "https://registry.npmjs.org/@humanfs/core/-/core-0.19.1.tgz"
+ resolved "https://registry.yarnpkg.com/@humanfs/core/-/core-0.19.1.tgz#17c55ca7d426733fe3c561906b8173c336b40a77"
integrity sha512-5DyQ4+1JEUzejeK1JGICcideyfUbGixgS9jNgex5nqkW+cY7WZhxBigmieN5Qnw9ZosSNVC9KQKyb+GUaGyKUA==
"@humanfs/node@^0.16.6":
version "0.16.6"
- resolved "https://registry.npmjs.org/@humanfs/node/-/node-0.16.6.tgz"
+ resolved "https://registry.yarnpkg.com/@humanfs/node/-/node-0.16.6.tgz#ee2a10eaabd1131987bf0488fd9b820174cd765e"
integrity sha512-YuI2ZHQL78Q5HbhDiBA1X4LmYdXCKCMQIfw0pw7piHJwyREFebJUvrQN4cMssyES6x+vfUbx1CIpaQUKYdQZOw==
dependencies:
"@humanfs/core" "^0.19.1"
@@ -369,17 +382,17 @@
"@humanwhocodes/module-importer@^1.0.1":
version "1.0.1"
- resolved "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz"
+ resolved "https://registry.yarnpkg.com/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz#af5b2691a22b44be847b0ca81641c5fb6ad0172c"
integrity sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==
"@humanwhocodes/retry@^0.3.0":
version "0.3.1"
- resolved "https://registry.npmjs.org/@humanwhocodes/retry/-/retry-0.3.1.tgz"
+ resolved "https://registry.yarnpkg.com/@humanwhocodes/retry/-/retry-0.3.1.tgz#c72a5c76a9fbaf3488e231b13dc52c0da7bab42a"
integrity sha512-JBxkERygn7Bv/GbN5Rv8Ul6LVknS+5Bp6RgDC/O8gEBU/yeH5Ui5C/OlWrTb6qct7LjjfT6Re2NxB0ln0yYybA==
"@humanwhocodes/retry@^0.4.2":
version "0.4.2"
- resolved "https://registry.npmjs.org/@humanwhocodes/retry/-/retry-0.4.2.tgz"
+ resolved "https://registry.yarnpkg.com/@humanwhocodes/retry/-/retry-0.4.2.tgz#1860473de7dfa1546767448f333db80cb0ff2161"
integrity sha512-xeO57FpIu4p1Ri3Jq/EXq4ClRm86dVF2z/+kvFnyqVYRavTZmaFaUBbWCOuuTh0o/g7DSsk6kc2vrS4Vl5oPOQ==
"@isaacs/cliui@^8.0.2":
@@ -413,24 +426,24 @@
"@jridgewell/sourcemap-codec" "^1.4.10"
"@langchain/community@^0.3.34":
- version "0.3.34"
- resolved "https://registry.npmjs.org/@langchain/community/-/community-0.3.34.tgz"
- integrity sha512-s0KVulgVIPd90s3m6XZtWrCRGQPWsY93uY62seFMmNhzcyF+I65kKnN04Nbiouthrn/YJ9HB4hW8MJAFuX6RRg==
+ version "0.3.41"
+ resolved "https://registry.yarnpkg.com/@langchain/community/-/community-0.3.41.tgz#8a7cc5dd206b804718e9543ff9541edeef6b6de4"
+ integrity sha512-i/DQ4bkKW+0W+zFy8ZrH7gRiag3KZuZU15pFXYom7wdZ8zcHJZZh2wi43hiBEWt8asx8Osyx4EhYO5SNp9ewkg==
dependencies:
- "@langchain/openai" ">=0.2.0 <0.5.0"
+ "@langchain/openai" ">=0.2.0 <0.6.0"
binary-extensions "^2.2.0"
expr-eval "^2.0.2"
flat "^5.0.2"
js-yaml "^4.1.0"
langchain ">=0.2.3 <0.3.0 || >=0.3.4 <0.4.0"
- langsmith ">=0.2.8 <0.4.0"
+ langsmith "^0.3.16"
uuid "^10.0.0"
zod "^3.22.3"
zod-to-json-schema "^3.22.5"
"@langchain/core@0.3.0":
version "0.3.0"
- resolved "https://registry.npmjs.org/@langchain/core/-/core-0.3.0.tgz"
+ resolved "https://registry.yarnpkg.com/@langchain/core/-/core-0.3.0.tgz#52bcf9d0bc480d2b2a456ee4aa8aed1cce6f6aba"
integrity sha512-uYuozr9cHpm+Aat6RdheGWAiJ2GEmb/N33FCbHlN/+vKTwRmaju2F5pZi2CioK9kQwrQZVNydCbgaZm1c6ry6w==
dependencies:
ansi-styles "^5.0.0"
@@ -447,7 +460,7 @@
"@langchain/ollama@^0.2.0":
version "0.2.0"
- resolved "https://registry.npmjs.org/@langchain/ollama/-/ollama-0.2.0.tgz"
+ resolved "https://registry.yarnpkg.com/@langchain/ollama/-/ollama-0.2.0.tgz#43b3c90e9bd82256e26b70edf37304694aeaf5d1"
integrity sha512-jLlYFqt+nbhaJKLakk7lRTWHZJ7wHeJLM6yuv4jToQ8zPzpL//372+MjggDoW0mnw8ofysg1T2C6mEJspKJtiA==
dependencies:
ollama "^0.5.12"
@@ -455,37 +468,26 @@
zod "^3.24.1"
zod-to-json-schema "^3.24.1"
-"@langchain/openai@>=0.1.0 <0.5.0", "@langchain/openai@>=0.2.0 <0.5.0":
- version "0.4.4"
- resolved "https://registry.npmjs.org/@langchain/openai/-/openai-0.4.4.tgz"
- integrity sha512-UZybJeMd8+UX7Kn47kuFYfqKdBCeBUWNqDtmAr6ZUIMMnlsNIb6MkrEEhGgAEjGCpdT4CU8U/DyyddTz+JayOQ==
+"@langchain/openai@>=0.1.0 <0.6.0", "@langchain/openai@>=0.2.0 <0.6.0":
+ version "0.5.7"
+ resolved "https://registry.yarnpkg.com/@langchain/openai/-/openai-0.5.7.tgz#a502319774eef33c6645d8ccc24da261796cb4fa"
+ integrity sha512-2azobl6XqPJIwe1MC4G33/77sOuvWtsbv2Wa8K6qsEEmIsznOXBXrOcKrp+1PTxRKy3UkIV2JV9mQas+ewPU0Q==
dependencies:
js-tiktoken "^1.0.12"
- openai "^4.77.0"
+ openai "^4.93.0"
zod "^3.22.4"
zod-to-json-schema "^3.22.3"
"@langchain/textsplitters@>=0.0.0 <0.2.0":
version "0.1.0"
- resolved "https://registry.npmjs.org/@langchain/textsplitters/-/textsplitters-0.1.0.tgz"
+ resolved "https://registry.yarnpkg.com/@langchain/textsplitters/-/textsplitters-0.1.0.tgz#f37620992192df09ecda3dfbd545b36a6bcbae46"
integrity sha512-djI4uw9rlkAb5iMhtLED+xJebDdAG935AdP4eRTB02R7OB/act55Bj9wsskhZsvuyQRpO4O1wQOp85s6T6GWmw==
dependencies:
js-tiktoken "^1.0.12"
-"@metamask/eth-sig-util@^4.0.0":
- version "4.0.1"
- resolved "https://registry.yarnpkg.com/@metamask/eth-sig-util/-/eth-sig-util-4.0.1.tgz#3ad61f6ea9ad73ba5b19db780d40d9aae5157088"
- integrity sha512-tghyZKLHZjcdlDqCA3gNZmLeR0XvOE9U1qoQO9ohyAZT6Pya+H9vkBPcsyXytmYLNgVoin7CKCmweo/R43V+tQ==
- dependencies:
- ethereumjs-abi "^0.6.8"
- ethereumjs-util "^6.2.1"
- ethjs-util "^0.1.6"
- tweetnacl "^1.0.3"
- tweetnacl-util "^0.15.1"
-
-"@noble/curves@1.2.0", "@noble/curves@~1.2.0":
+"@noble/curves@1.2.0":
version "1.2.0"
- resolved "https://registry.npmjs.org/@noble/curves/-/curves-1.2.0.tgz"
+ resolved "https://registry.yarnpkg.com/@noble/curves/-/curves-1.2.0.tgz#92d7e12e4e49b23105a2555c6984d41733d65c35"
integrity sha512-oYclrNgRaM9SsBUBVbb8M6DTV7ZHRTKugureoYEncY5c65HOmRzvSiTE3y5CYaPYJA/GVkrhXEoF0M3Ya9PMnw==
dependencies:
"@noble/hashes" "1.3.2"
@@ -497,12 +499,19 @@
dependencies:
"@noble/hashes" "1.4.0"
-"@noble/curves@1.8.1", "@noble/curves@^1.6.0", "@noble/curves@~1.8.1":
- version "1.8.1"
- resolved "https://registry.yarnpkg.com/@noble/curves/-/curves-1.8.1.tgz#19bc3970e205c99e4bdb1c64a4785706bce497ff"
- integrity sha512-warwspo+UYUPep0Q+vtdVB4Ugn8GGQj8iyB3gnRWsztmUHTI3S1nhdiWNsPUGL0vud7JlRRk1XEu7Lq1KGTnMQ==
+"@noble/curves@1.8.2", "@noble/curves@~1.8.1":
+ version "1.8.2"
+ resolved "https://registry.yarnpkg.com/@noble/curves/-/curves-1.8.2.tgz#8f24c037795e22b90ae29e222a856294c1d9ffc7"
+ integrity sha512-vnI7V6lFNe0tLAuJMu+2sX+FcL14TaCWy1qiczg1VwRmPrpQCdq5ESXQMqUc2tluRNf6irBXrWbl1mGN8uaU/g==
dependencies:
- "@noble/hashes" "1.7.1"
+ "@noble/hashes" "1.7.2"
+
+"@noble/curves@^1.6.0", "@noble/curves@~1.9.0":
+ version "1.9.0"
+ resolved "https://registry.yarnpkg.com/@noble/curves/-/curves-1.9.0.tgz#13e0ca8be4a0ce66c113693a94514e5599f40cfc"
+ integrity sha512-7YDlXiNMdO1YZeH6t/kvopHHbIZzlxrCV9WLqCY6QhcXOoXiNCMDqJIglZ9Yjx5+w7Dz30TITFrlTjnRg7sKEg==
+ dependencies:
+ "@noble/hashes" "1.8.0"
"@noble/hashes@1.2.0", "@noble/hashes@~1.2.0":
version "1.2.0"
@@ -511,7 +520,7 @@
"@noble/hashes@1.3.2":
version "1.3.2"
- resolved "https://registry.npmjs.org/@noble/hashes/-/hashes-1.3.2.tgz"
+ resolved "https://registry.yarnpkg.com/@noble/hashes/-/hashes-1.3.2.tgz#6f26dbc8fbc7205873ce3cee2f690eba0d421b39"
integrity sha512-MVC8EAQp7MvEcm30KWENFjgR+Mkmf+D189XJTkFIlwohU5hcBbn1ZkKq7KVTi2Hme3PMGF390DaL52beVrIihQ==
"@noble/hashes@1.4.0", "@noble/hashes@~1.4.0":
@@ -519,21 +528,26 @@
resolved "https://registry.yarnpkg.com/@noble/hashes/-/hashes-1.4.0.tgz#45814aa329f30e4fe0ba49426f49dfccdd066426"
integrity sha512-V1JJ1WTRUqHHrOSh597hURcMqVKVGL/ea3kv0gSnEdsEZ0/+VyPghM1lMNGc00z7CIQorSvbKpuJkxvuHbvdbg==
-"@noble/hashes@1.7.1", "@noble/hashes@^1.1.2", "@noble/hashes@^1.4.0", "@noble/hashes@^1.5.0", "@noble/hashes@~1.7.1":
- version "1.7.1"
- resolved "https://registry.npmjs.org/@noble/hashes/-/hashes-1.7.1.tgz"
- integrity sha512-B8XBPsn4vT/KJAGqDzbwztd+6Yte3P4V7iafm24bxgDe/mlRuK6xmWPuCNrKt2vDafZ8MfJLlchDG/vYafQEjQ==
+"@noble/hashes@1.7.2", "@noble/hashes@~1.7.1":
+ version "1.7.2"
+ resolved "https://registry.yarnpkg.com/@noble/hashes/-/hashes-1.7.2.tgz#d53c65a21658fb02f3303e7ee3ba89d6754c64b4"
+ integrity sha512-biZ0NUSxyjLLqo6KxEJ1b+C2NAx0wtDoFvCaXHGgUkeHzf3Xc1xKumFKREuT7f7DARNZ/slvYUwFG6B0f2b6hQ==
-"@noble/hashes@~1.3.0", "@noble/hashes@~1.3.2":
- version "1.3.3"
- resolved "https://registry.yarnpkg.com/@noble/hashes/-/hashes-1.3.3.tgz#39908da56a4adc270147bb07968bf3b16cfe1699"
- integrity sha512-V7/fPHgl+jsVPXqqeOzT8egNj2iBIVt+ECeMMG8TdcnTikP3oaBtUVqpT/gYCR68aEBJSF+XbYUxStjbFMqIIA==
+"@noble/hashes@1.8.0", "@noble/hashes@^1.1.2", "@noble/hashes@^1.4.0", "@noble/hashes@^1.5.0", "@noble/hashes@~1.8.0":
+ version "1.8.0"
+ resolved "https://registry.yarnpkg.com/@noble/hashes/-/hashes-1.8.0.tgz#cee43d801fcef9644b11b8194857695acd5f815a"
+ integrity sha512-jCs9ldd7NwzpgXDIf6P3+NrHh9/sD6CQdxHyjQI+h/6rDNo88ypBxxz45UDuZHz9r3tNz7N/VInSVoVdtXEI4A==
-"@noble/secp256k1@1.7.1", "@noble/secp256k1@~1.7.0":
+"@noble/secp256k1@1.7.1":
version "1.7.1"
resolved "https://registry.yarnpkg.com/@noble/secp256k1/-/secp256k1-1.7.1.tgz#b251c70f824ce3ca7f8dc3df08d58f005cc0507c"
integrity sha512-hOUk6AyBFmqVrv7k5WAw/LpszxVbj9gGN4JRkIX52fdFAj1UA61KXmZDvqVEm+pOyec3+fIeZB02LYa/pWOArw==
+"@noble/secp256k1@~1.7.0":
+ version "1.7.2"
+ resolved "https://registry.yarnpkg.com/@noble/secp256k1/-/secp256k1-1.7.2.tgz#c2c3343e2dce80e15a914d7442147507f8a98e7f"
+ integrity sha512-/qzwYl5eFLH8OWIecQWM31qld2g1NfjgylK+TNhqtaUKP37Nm+Y+z30Fjhw0Ct8p9yCQEm2N3W/AckdIb3SMcQ==
+
"@nodelib/fs.scandir@2.1.5":
version "2.1.5"
resolved "https://registry.yarnpkg.com/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz#7619c2eb21b25483f6d167548b4cfd5a7488c3d5"
@@ -555,83 +569,53 @@
"@nodelib/fs.scandir" "2.1.5"
fastq "^1.6.0"
-"@nomicfoundation/edr-darwin-arm64@0.8.0":
- version "0.8.0"
- resolved "https://registry.yarnpkg.com/@nomicfoundation/edr-darwin-arm64/-/edr-darwin-arm64-0.8.0.tgz#70a23214a2dd2941fcb55e47bb4653514d2dae06"
- integrity sha512-sKTmOu/P5YYhxT0ThN2Pe3hmCE/5Ag6K/eYoiavjLWbR7HEb5ZwPu2rC3DpuUk1H+UKJqt7o4/xIgJxqw9wu6A==
+"@nomicfoundation/edr-darwin-arm64@0.10.0":
+ version "0.10.0"
+ resolved "https://registry.yarnpkg.com/@nomicfoundation/edr-darwin-arm64/-/edr-darwin-arm64-0.10.0.tgz#3a6952bdf3e2825937cb1aad737b6851e4c6df30"
+ integrity sha512-n0N+CVM4LKN9QeGZ5irr94Q4vwSs4u7W6jfuhNLmx1cpUxwE9RpeW+ym93JXDv62iVsbekeI5VsUEBHy0hymtA==
-"@nomicfoundation/edr-darwin-x64@0.8.0":
- version "0.8.0"
- resolved "https://registry.yarnpkg.com/@nomicfoundation/edr-darwin-x64/-/edr-darwin-x64-0.8.0.tgz#89c11ae510b3ac5c0e5268cd3a6b04194552112f"
- integrity sha512-8ymEtWw1xf1Id1cc42XIeE+9wyo3Dpn9OD/X8GiaMz9R70Ebmj2g+FrbETu8o6UM+aL28sBZQCiCzjlft2yWAg==
+"@nomicfoundation/edr-darwin-x64@0.10.0":
+ version "0.10.0"
+ resolved "https://registry.yarnpkg.com/@nomicfoundation/edr-darwin-x64/-/edr-darwin-x64-0.10.0.tgz#e8e8a1b5e0e6df27d47dee38fbea7d1b77e92ee5"
+ integrity sha512-nmImWM/3qWopYzOmicMzK/MF3rFKpm2Biuc8GpQYTLjdXhmItpP9JwEPyjbAWv/1HI09C2pRzgNzKfTxoIgJ6w==
-"@nomicfoundation/edr-linux-arm64-gnu@0.8.0":
- version "0.8.0"
- resolved "https://registry.yarnpkg.com/@nomicfoundation/edr-linux-arm64-gnu/-/edr-linux-arm64-gnu-0.8.0.tgz#02c1b4f426576af4e464320e340855139a00fe9b"
- integrity sha512-h/wWzS2EyQuycz+x/SjMRbyA+QMCCVmotRsgM1WycPARvVZWIVfwRRsKoXKdCftsb3S8NTprqBdJlOmsFyETFA==
+"@nomicfoundation/edr-linux-arm64-gnu@0.10.0":
+ version "0.10.0"
+ resolved "https://registry.yarnpkg.com/@nomicfoundation/edr-linux-arm64-gnu/-/edr-linux-arm64-gnu-0.10.0.tgz#0442b934d801abf1e94de517203f6c7cb24022a6"
+ integrity sha512-B/N1IyrCU7J6H4QckkQ1cSWAq1jSrJcXpO8GzRaQD1bgOOvg8wrUOrCD+Mfw7MLa6+X9vdZoXtPZOaaOQ9LmhA==
-"@nomicfoundation/edr-linux-arm64-musl@0.8.0":
- version "0.8.0"
- resolved "https://registry.yarnpkg.com/@nomicfoundation/edr-linux-arm64-musl/-/edr-linux-arm64-musl-0.8.0.tgz#9b432dca973068f16a33abb70260e904494638dd"
- integrity sha512-gnWxDgdkka0O9GpPX/gZT3REeKYV28Guyg13+Vj/bbLpmK1HmGh6Kx+fMhWv+Ht/wEmGDBGMCW1wdyT/CftJaQ==
+"@nomicfoundation/edr-linux-arm64-musl@0.10.0":
+ version "0.10.0"
+ resolved "https://registry.yarnpkg.com/@nomicfoundation/edr-linux-arm64-musl/-/edr-linux-arm64-musl-0.10.0.tgz#ece7f90113347b3c41ca9d0b27962cbc42e54a3d"
+ integrity sha512-NA9DFLB0LzcKy9mTCUzgnRDbmmSfW0CdO22ySwOy+MKt4Cr9eJi+XR5ZH933Rxpi6BWNkSPeS2ECETE25sJT3w==
-"@nomicfoundation/edr-linux-x64-gnu@0.8.0":
- version "0.8.0"
- resolved "https://registry.yarnpkg.com/@nomicfoundation/edr-linux-x64-gnu/-/edr-linux-x64-gnu-0.8.0.tgz#72954e5fd875df17c43d4ef3fcc381e3312e1347"
- integrity sha512-DTMiAkgAx+nyxcxKyxFZk1HPakXXUCgrmei7r5G7kngiggiGp/AUuBBWFHi8xvl2y04GYhro5Wp+KprnLVoAPA==
+"@nomicfoundation/edr-linux-x64-gnu@0.10.0":
+ version "0.10.0"
+ resolved "https://registry.yarnpkg.com/@nomicfoundation/edr-linux-x64-gnu/-/edr-linux-x64-gnu-0.10.0.tgz#aa2b6587f2dc5da280c696aaf3c8021edce36e4f"
+ integrity sha512-bDrbRTA9qZ9wSw5mqa8VpLFbf6ue2Z4qmRd08404eKm8RyBEFxjdHflFzCx46gz/Td0e+GLXy6KTVDj5D29r8w==
-"@nomicfoundation/edr-linux-x64-musl@0.8.0":
- version "0.8.0"
- resolved "https://registry.yarnpkg.com/@nomicfoundation/edr-linux-x64-musl/-/edr-linux-x64-musl-0.8.0.tgz#0d59390c512106010d6f4d94b7fffd99fb7fd8ae"
- integrity sha512-iTITWe0Zj8cNqS0xTblmxPbHVWwEtMiDC+Yxwr64d7QBn/1W0ilFQ16J8gB6RVVFU3GpfNyoeg3tUoMpSnrm6Q==
+"@nomicfoundation/edr-linux-x64-musl@0.10.0":
+ version "0.10.0"
+ resolved "https://registry.yarnpkg.com/@nomicfoundation/edr-linux-x64-musl/-/edr-linux-x64-musl-0.10.0.tgz#fcb755e1f1926d713f3883856b5840e970ce9096"
+ integrity sha512-wx7yOlC/hx4N1xuIeh5cAebpzCTx8ZH8/z0IyYMf2t4v52KHERz4IyzBz5OLfd+0IqTRg8ZU5EnFBacIoPeP/g==
-"@nomicfoundation/edr-win32-x64-msvc@0.8.0":
- version "0.8.0"
- resolved "https://registry.yarnpkg.com/@nomicfoundation/edr-win32-x64-msvc/-/edr-win32-x64-msvc-0.8.0.tgz#d14225c513372fda54684de1229cc793ffe48c12"
- integrity sha512-mNRDyd/C3j7RMcwapifzv2K57sfA5xOw8g2U84ZDvgSrXVXLC99ZPxn9kmolb+dz8VMm9FONTZz9ESS6v8DTnA==
+"@nomicfoundation/edr-win32-x64-msvc@0.10.0":
+ version "0.10.0"
+ resolved "https://registry.yarnpkg.com/@nomicfoundation/edr-win32-x64-msvc/-/edr-win32-x64-msvc-0.10.0.tgz#eb411d5a855a82cc9859a8889069c887ca5dde4b"
+ integrity sha512-DpBdVMimb+BUEs0E+nLGQ5JFHdGHyxQQNA+nh9V1eKtgarsV21S6br/d1vlQBMLQqkIzwmc6n+/O9Zjk2KfB3g==
-"@nomicfoundation/edr@^0.8.0":
- version "0.8.0"
- resolved "https://registry.yarnpkg.com/@nomicfoundation/edr/-/edr-0.8.0.tgz#63441bb24c1804b6d27b075d0d29f3a02d94fc4f"
- integrity sha512-dwWRrghSVBQDpt0wP+6RXD8BMz2i/9TI34TcmZqeEAZuCLei3U9KZRgGTKVAM1rMRvrpf5ROfPqrWNetKVUTag==
+"@nomicfoundation/edr@^0.10.0":
+ version "0.10.0"
+ resolved "https://registry.yarnpkg.com/@nomicfoundation/edr/-/edr-0.10.0.tgz#c0d3476b348ae396458369d1589913154d774192"
+ integrity sha512-ed9qHSNssgh+0hYUx4ilDoMxxgf/sNT8SjnzgmA5A/LSXHaq2ax68bkdQ8otLYTlxHCO9BS5Nhb8bfajV4FZeA==
dependencies:
- "@nomicfoundation/edr-darwin-arm64" "0.8.0"
- "@nomicfoundation/edr-darwin-x64" "0.8.0"
- "@nomicfoundation/edr-linux-arm64-gnu" "0.8.0"
- "@nomicfoundation/edr-linux-arm64-musl" "0.8.0"
- "@nomicfoundation/edr-linux-x64-gnu" "0.8.0"
- "@nomicfoundation/edr-linux-x64-musl" "0.8.0"
- "@nomicfoundation/edr-win32-x64-msvc" "0.8.0"
-
-"@nomicfoundation/ethereumjs-common@4.0.4":
- version "4.0.4"
- resolved "https://registry.yarnpkg.com/@nomicfoundation/ethereumjs-common/-/ethereumjs-common-4.0.4.tgz#9901f513af2d4802da87c66d6f255b510bef5acb"
- integrity sha512-9Rgb658lcWsjiicr5GzNCjI1llow/7r0k50dLL95OJ+6iZJcVbi15r3Y0xh2cIO+zgX0WIHcbzIu6FeQf9KPrg==
- dependencies:
- "@nomicfoundation/ethereumjs-util" "9.0.4"
-
-"@nomicfoundation/ethereumjs-rlp@5.0.4":
- version "5.0.4"
- resolved "https://registry.yarnpkg.com/@nomicfoundation/ethereumjs-rlp/-/ethereumjs-rlp-5.0.4.tgz#66c95256fc3c909f6fb18f6a586475fc9762fa30"
- integrity sha512-8H1S3s8F6QueOc/X92SdrA4RDenpiAEqMg5vJH99kcQaCy/a3Q6fgseo75mgWlbanGJXSlAPtnCeG9jvfTYXlw==
-
-"@nomicfoundation/ethereumjs-tx@5.0.4":
- version "5.0.4"
- resolved "https://registry.yarnpkg.com/@nomicfoundation/ethereumjs-tx/-/ethereumjs-tx-5.0.4.tgz#b0ceb58c98cc34367d40a30d255d6315b2f456da"
- integrity sha512-Xjv8wAKJGMrP1f0n2PeyfFCCojHd7iS3s/Ab7qzF1S64kxZ8Z22LCMynArYsVqiFx6rzYy548HNVEyI+AYN/kw==
- dependencies:
- "@nomicfoundation/ethereumjs-common" "4.0.4"
- "@nomicfoundation/ethereumjs-rlp" "5.0.4"
- "@nomicfoundation/ethereumjs-util" "9.0.4"
- ethereum-cryptography "0.1.3"
-
-"@nomicfoundation/ethereumjs-util@9.0.4":
- version "9.0.4"
- resolved "https://registry.yarnpkg.com/@nomicfoundation/ethereumjs-util/-/ethereumjs-util-9.0.4.tgz#84c5274e82018b154244c877b76bc049a4ed7b38"
- integrity sha512-sLOzjnSrlx9Bb9EFNtHzK/FJFsfg2re6bsGqinFinH1gCqVfz9YYlXiMWwDM4C/L4ywuHFCYwfKTVr/QHQcU0Q==
- dependencies:
- "@nomicfoundation/ethereumjs-rlp" "5.0.4"
- ethereum-cryptography "0.1.3"
+ "@nomicfoundation/edr-darwin-arm64" "0.10.0"
+ "@nomicfoundation/edr-darwin-x64" "0.10.0"
+ "@nomicfoundation/edr-linux-arm64-gnu" "0.10.0"
+ "@nomicfoundation/edr-linux-arm64-musl" "0.10.0"
+ "@nomicfoundation/edr-linux-x64-gnu" "0.10.0"
+ "@nomicfoundation/edr-linux-x64-musl" "0.10.0"
+ "@nomicfoundation/edr-win32-x64-msvc" "0.10.0"
"@nomicfoundation/hardhat-chai-matchers@^2.0.0":
version "2.0.8"
@@ -652,17 +636,17 @@
lodash.isequal "^4.5.0"
"@nomicfoundation/hardhat-ignition-ethers@^0.15.0":
- version "0.15.10"
- resolved "https://registry.yarnpkg.com/@nomicfoundation/hardhat-ignition-ethers/-/hardhat-ignition-ethers-0.15.10.tgz#a053c3ef90bc2dd8739de7b12a1badf5915e5151"
- integrity sha512-P90glRiBbR4mnMKP/LePovfUJjYT2YWJjx7118i7yxssUwcaW9wFohb4bFh+236N1tqM4q7aGx9cBvHNgve3zA==
+ version "0.15.11"
+ resolved "https://registry.yarnpkg.com/@nomicfoundation/hardhat-ignition-ethers/-/hardhat-ignition-ethers-0.15.11.tgz#ae1c6be346ef3d2ccb38804786728355b1a2eb90"
+ integrity sha512-srXzvf7qCDHLrnvQWtpVA9gWpcbp4BcnsOqJt6ISet9OlUnxk4GgRMbdFq4YpM48bHQTX397jS9yk1AtJCjt/g==
"@nomicfoundation/hardhat-ignition@^0.15.10":
- version "0.15.10"
- resolved "https://registry.yarnpkg.com/@nomicfoundation/hardhat-ignition/-/hardhat-ignition-0.15.10.tgz#605912ff4a50019685ffba105487c585e28fdde9"
- integrity sha512-UScXyLLG5rEm+ANchQYCDOsskdXl6ux3oCPgC24PKE/QMJEib5crGZIo8spAyzdK6vOnRW6i4FG+1qvoO0AGWA==
+ version "0.15.11"
+ resolved "https://registry.yarnpkg.com/@nomicfoundation/hardhat-ignition/-/hardhat-ignition-0.15.11.tgz#124a4c5f70eca0f2f161ccfd82cef29793111f48"
+ integrity sha512-OXebmK9FCMwwbb4mIeHBbVFFicAGgyGKJT2zrONrpixrROxrVs6KEi1gzsiN25qtQhCQePt8BTjjYrgy86Dfxg==
dependencies:
- "@nomicfoundation/ignition-core" "^0.15.10"
- "@nomicfoundation/ignition-ui" "^0.15.10"
+ "@nomicfoundation/ignition-core" "^0.15.11"
+ "@nomicfoundation/ignition-ui" "^0.15.11"
chalk "^4.0.0"
debug "^4.3.2"
fs-extra "^10.0.0"
@@ -696,10 +680,10 @@
table "^6.8.0"
undici "^5.14.0"
-"@nomicfoundation/ignition-core@^0.15.10":
- version "0.15.10"
- resolved "https://registry.yarnpkg.com/@nomicfoundation/ignition-core/-/ignition-core-0.15.10.tgz#284a986f72a43e93f03773dcbeee3a6dc3e13988"
- integrity sha512-AWvCviNlBkPT8EKcg34N+yUdQTYFiC/HdpfFZdw8oMFuAs9SMZE0zQA9gJQSCay41GbuyXt2Kietp5/1/nlBIA==
+"@nomicfoundation/ignition-core@^0.15.10", "@nomicfoundation/ignition-core@^0.15.11":
+ version "0.15.11"
+ resolved "https://registry.yarnpkg.com/@nomicfoundation/ignition-core/-/ignition-core-0.15.11.tgz#315fd4dcde00ae6e44932222b92932bb15fe113a"
+ integrity sha512-PeYKRlrQ0koT72yRnlyyG66cXMFiv5X/cIB8hBFPl3ekeg5tPXcHAgs/VZhOsgwEox4ejphTtItLESb1IDBw0w==
dependencies:
"@ethersproject/address" "5.6.1"
"@nomicfoundation/solidity-analyzer" "^0.1.1"
@@ -711,10 +695,10 @@
lodash "4.17.21"
ndjson "2.0.0"
-"@nomicfoundation/ignition-ui@^0.15.10":
- version "0.15.10"
- resolved "https://registry.yarnpkg.com/@nomicfoundation/ignition-ui/-/ignition-ui-0.15.10.tgz#83b1b29ac95f58c40a8ca6c4c3ae78b9fcd31456"
- integrity sha512-82XQPF+1fvxTimDUPgDVwpTjHjfjFgFs84rERbBiMLQbz6sPtgTlV8HHrlbMx8tT/JKCI/SCU4gxV8xA4CPfcg==
+"@nomicfoundation/ignition-ui@^0.15.11":
+ version "0.15.11"
+ resolved "https://registry.yarnpkg.com/@nomicfoundation/ignition-ui/-/ignition-ui-0.15.11.tgz#94969984dd6ca1671a21f2338af4735cf319c1b3"
+ integrity sha512-VPOVl5xqCKhYCyPOQlposx+stjCwqXQ+BCs5lnw/f2YUfgII+G5Ye0JfHiJOfCJGmqyS03WertBslcj9zQg50A==
"@nomicfoundation/solidity-analyzer-darwin-arm64@0.1.2":
version "0.1.2"
@@ -765,24 +749,24 @@
"@nomicfoundation/solidity-analyzer-win32-x64-msvc" "0.1.2"
"@openzeppelin/contracts@^5.2.0":
- version "5.2.0"
- resolved "https://registry.yarnpkg.com/@openzeppelin/contracts/-/contracts-5.2.0.tgz#bd020694218202b811b0ea3eec07277814c658da"
- integrity sha512-bxjNie5z89W1Ea0NZLZluFh8PrFNn9DH8DQlujEok2yjsOlraUPKID5p1Wk3qdNbf6XkQ1Os2RvfiHrrXLHWKA==
+ version "5.3.0"
+ resolved "https://registry.yarnpkg.com/@openzeppelin/contracts/-/contracts-5.3.0.tgz#0a90ce16f5c855e3c8239691f1722cd4999ae741"
+ integrity sha512-zj/KGoW7zxWUE8qOI++rUM18v+VeLTTzKs/DJFkSzHpQFPD/jKKF0TrMxBfGLl3kpdELCNccvB3zmofSzm4nlA==
"@pkgjs/parseargs@^0.11.0":
version "0.11.0"
resolved "https://registry.yarnpkg.com/@pkgjs/parseargs/-/parseargs-0.11.0.tgz#a77ea742fab25775145434eb1d2328cf5013ac33"
integrity sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==
-"@scure/base@~1.1.0", "@scure/base@~1.1.2", "@scure/base@~1.1.6":
+"@scure/base@~1.1.0", "@scure/base@~1.1.6":
version "1.1.9"
resolved "https://registry.yarnpkg.com/@scure/base/-/base-1.1.9.tgz#e5e142fbbfe251091f9c5f1dd4c834ac04c3dbd1"
integrity sha512-8YKhl8GHiNI/pU2VMaofa2Tor7PJRAjwQLBBuilkJ9L5+13yVbC7JO/wS7piioAvPSwR3JKM1IJ/u4xQzbcXKg==
-"@scure/base@~1.2.2", "@scure/base@~1.2.4":
- version "1.2.4"
- resolved "https://registry.yarnpkg.com/@scure/base/-/base-1.2.4.tgz#002eb571a35d69bdb4c214d0995dff76a8dcd2a9"
- integrity sha512-5Yy9czTO47mqz+/J8GM6GIId4umdCk1wc1q8rKERQulIoc8VP9pzDcghv10Tl2E7R96ZUx/PhND3ESYUQX8NuQ==
+"@scure/base@~1.2.2", "@scure/base@~1.2.4", "@scure/base@~1.2.5":
+ version "1.2.5"
+ resolved "https://registry.yarnpkg.com/@scure/base/-/base-1.2.5.tgz#f9d1b232425b367d0dcb81c96611dcc651d58671"
+ integrity sha512-9rE6EOVeIQzt5TSu4v+K523F8u6DhBsoZWPGKlnCshhlDhy0kJzUX4V+tr2dWmzF1GdekvThABoEQBGBQI7xZw==
"@scure/bip32@1.1.5":
version "1.1.5"
@@ -793,15 +777,6 @@
"@noble/secp256k1" "~1.7.0"
"@scure/base" "~1.1.0"
-"@scure/bip32@1.3.2":
- version "1.3.2"
- resolved "https://registry.yarnpkg.com/@scure/bip32/-/bip32-1.3.2.tgz#90e78c027d5e30f0b22c1f8d50ff12f3fb7559f8"
- integrity sha512-N1ZhksgwD3OBlwTv3R6KFEcPojl/W4ElJOeCZdi+vuI5QmTFwLq3OFf2zd2ROpKvxFdgZ6hUpb0dx9bVNEwYCA==
- dependencies:
- "@noble/curves" "~1.2.0"
- "@noble/hashes" "~1.3.2"
- "@scure/base" "~1.1.2"
-
"@scure/bip32@1.4.0":
version "1.4.0"
resolved "https://registry.yarnpkg.com/@scure/bip32/-/bip32-1.4.0.tgz#4e1f1e196abedcef395b33b9674a042524e20d67"
@@ -811,7 +786,7 @@
"@noble/hashes" "~1.4.0"
"@scure/base" "~1.1.6"
-"@scure/bip32@1.6.2", "@scure/bip32@^1.5.0":
+"@scure/bip32@1.6.2":
version "1.6.2"
resolved "https://registry.yarnpkg.com/@scure/bip32/-/bip32-1.6.2.tgz#093caa94961619927659ed0e711a6e4bf35bffd0"
integrity sha512-t96EPDMbtGgtb7onKKqxRLfE5g05k7uHnHRM2xdE6BP/ZmxaLtPek4J4KfVn/90IQNrU1IOAqMgiDtUdtbe3nw==
@@ -820,6 +795,15 @@
"@noble/hashes" "~1.7.1"
"@scure/base" "~1.2.2"
+"@scure/bip32@^1.5.0":
+ version "1.7.0"
+ resolved "https://registry.yarnpkg.com/@scure/bip32/-/bip32-1.7.0.tgz#b8683bab172369f988f1589640e53c4606984219"
+ integrity sha512-E4FFX/N3f4B80AKWp5dP6ow+flD1LQZo/w8UnLGYZO674jS6YnYeepycOOksv+vLPSpgN35wgKgy+ybfTb2SMw==
+ dependencies:
+ "@noble/curves" "~1.9.0"
+ "@noble/hashes" "~1.8.0"
+ "@scure/base" "~1.2.5"
+
"@scure/bip39@1.1.1":
version "1.1.1"
resolved "https://registry.yarnpkg.com/@scure/bip39/-/bip39-1.1.1.tgz#b54557b2e86214319405db819c4b6a370cf340c5"
@@ -828,14 +812,6 @@
"@noble/hashes" "~1.2.0"
"@scure/base" "~1.1.0"
-"@scure/bip39@1.2.1":
- version "1.2.1"
- resolved "https://registry.yarnpkg.com/@scure/bip39/-/bip39-1.2.1.tgz#5cee8978656b272a917b7871c981e0541ad6ac2a"
- integrity sha512-Z3/Fsz1yr904dduJD0NpiyRHhRYHdcnyh73FZWiV+/qhWi83wNJ3NWolYqCEN+ZWsUz2TWwajJggcRE9r1zUYg==
- dependencies:
- "@noble/hashes" "~1.3.0"
- "@scure/base" "~1.1.0"
-
"@scure/bip39@1.3.0":
version "1.3.0"
resolved "https://registry.yarnpkg.com/@scure/bip39/-/bip39-1.3.0.tgz#0f258c16823ddd00739461ac31398b4e7d6a18c3"
@@ -844,7 +820,7 @@
"@noble/hashes" "~1.4.0"
"@scure/base" "~1.1.6"
-"@scure/bip39@1.5.4", "@scure/bip39@^1.4.0":
+"@scure/bip39@1.5.4":
version "1.5.4"
resolved "https://registry.yarnpkg.com/@scure/bip39/-/bip39-1.5.4.tgz#07fd920423aa671be4540d59bdd344cc1461db51"
integrity sha512-TFM4ni0vKvCfBpohoh+/lY05i9gRbSwXWngAsF4CABQxoaOHijxuaZ2R6cStDQ5CHtHO9aGJTr4ksVJASRRyMA==
@@ -852,9 +828,17 @@
"@noble/hashes" "~1.7.1"
"@scure/base" "~1.2.4"
+"@scure/bip39@^1.4.0":
+ version "1.6.0"
+ resolved "https://registry.yarnpkg.com/@scure/bip39/-/bip39-1.6.0.tgz#475970ace440d7be87a6086cbee77cb8f1a684f9"
+ integrity sha512-+lF0BbLiJNwVlev4eKelw1WWLaiKXw7sSl8T6FvBlWkdX+94aGJ4o8XjUdlyhTCjd8c+B3KT3JfS8P0bLRNU6A==
+ dependencies:
+ "@noble/hashes" "~1.8.0"
+ "@scure/base" "~1.2.5"
+
"@selderee/plugin-htmlparser2@^0.11.0":
version "0.11.0"
- resolved "https://registry.npmjs.org/@selderee/plugin-htmlparser2/-/plugin-htmlparser2-0.11.0.tgz"
+ resolved "https://registry.yarnpkg.com/@selderee/plugin-htmlparser2/-/plugin-htmlparser2-0.11.0.tgz#d5b5e29a7ba6d3958a1972c7be16f4b2c188c517"
integrity sha512-P33hHGdldxGabLFjPPpaTxVolMrzrcegejx+0GxjrIb9Zv48D8yAIA/QTDR2dFl7Uz7urX8aX6+5bCZslr+gWQ==
dependencies:
domhandler "^5.0.3"
@@ -935,7 +919,7 @@
"@spruceid/siwe-parser@^2.1.2":
version "2.1.2"
- resolved "https://registry.npmjs.org/@spruceid/siwe-parser/-/siwe-parser-2.1.2.tgz"
+ resolved "https://registry.yarnpkg.com/@spruceid/siwe-parser/-/siwe-parser-2.1.2.tgz#3e13e7d3ac0bfdaf109a07342590eb21daee2fc3"
integrity sha512-d/r3S1LwJyMaRAKQ0awmo9whfXeE88Qt00vRj91q5uv5ATtWIQEGJ67Yr5eSZw5zp1/fZCXZYuEckt8lSkereQ==
dependencies:
"@noble/hashes" "^1.1.2"
@@ -945,19 +929,19 @@
"@stablelib/binary@^1.0.1":
version "1.0.1"
- resolved "https://registry.npmjs.org/@stablelib/binary/-/binary-1.0.1.tgz"
+ resolved "https://registry.yarnpkg.com/@stablelib/binary/-/binary-1.0.1.tgz#c5900b94368baf00f811da5bdb1610963dfddf7f"
integrity sha512-ClJWvmL6UBM/wjkvv/7m5VP3GMr9t0osr4yVgLZsLCOz4hGN9gIAFEqnJ0TsSMAN+n840nf2cHZnA5/KFqHC7Q==
dependencies:
"@stablelib/int" "^1.0.1"
"@stablelib/int@^1.0.1":
version "1.0.1"
- resolved "https://registry.npmjs.org/@stablelib/int/-/int-1.0.1.tgz"
+ resolved "https://registry.yarnpkg.com/@stablelib/int/-/int-1.0.1.tgz#75928cc25d59d73d75ae361f02128588c15fd008"
integrity sha512-byr69X/sDtDiIjIV6m4roLVWnNNlRGzsvxw+agj8CIEazqWGOQp2dTYgQhtyVXV9wpO6WyXRQUzLV/JRNumT2w==
"@stablelib/random@^1.0.1":
version "1.0.2"
- resolved "https://registry.npmjs.org/@stablelib/random/-/random-1.0.2.tgz"
+ resolved "https://registry.yarnpkg.com/@stablelib/random/-/random-1.0.2.tgz#2dece393636489bf7e19c51229dd7900eddf742c"
integrity sha512-rIsE83Xpb7clHPVRlBj8qNe5L8ISQOzjghYQm/dZ7VaM2KHYwMW5adjQjrzTZCchFnNCNhkwtnOBa9HTMJCI8w==
dependencies:
"@stablelib/binary" "^1.0.1"
@@ -965,7 +949,7 @@
"@stablelib/wipe@^1.0.1":
version "1.0.1"
- resolved "https://registry.npmjs.org/@stablelib/wipe/-/wipe-1.0.1.tgz"
+ resolved "https://registry.yarnpkg.com/@stablelib/wipe/-/wipe-1.0.1.tgz#d21401f1d59ade56a62e139462a97f104ed19a36"
integrity sha512-WfqfX/eXGiAd3RJe4VU2snh/ZPwtSjLG4ynQ/vYzvghTh7dHFcI1wl+nrkWG6lGhukOxOsUHfv8dUXr58D0ayg==
"@telegraf/types@^7.1.0":
@@ -1008,13 +992,6 @@
dependencies:
fs-extra "^9.1.0"
-"@types/bn.js@^4.11.3":
- version "4.11.6"
- resolved "https://registry.yarnpkg.com/@types/bn.js/-/bn.js-4.11.6.tgz#c306c70d9358aaea33cd4eda092a742b9505967c"
- integrity sha512-pqr857jrp2kPuO9uRjZ3PwnJTjoQy+fcdxvBTvHm6dkmEL9q+hDD/2j/0ELOBPtPnS8LjCX0gI9nbl8lVkadpg==
- dependencies:
- "@types/node" "*"
-
"@types/bn.js@^5.1.0":
version "5.1.6"
resolved "https://registry.yarnpkg.com/@types/bn.js/-/bn.js-5.1.6.tgz#9ba818eec0c85e4d3c679518428afdf611d03203"
@@ -1030,9 +1007,9 @@
"@types/chai" "*"
"@types/chai@*":
- version "5.2.0"
- resolved "https://registry.yarnpkg.com/@types/chai/-/chai-5.2.0.tgz#fe62a18d33001800d3590792ceb6126142f814a4"
- integrity sha512-FWnQYdrG9FAC8KgPVhDFfrPL1FBsL3NtIt2WsxKvwu/61K6HiuDF3xAb7c7w/k9ML2QOUHcwTgU7dKLFPK6sBg==
+ version "5.2.1"
+ resolved "https://registry.yarnpkg.com/@types/chai/-/chai-5.2.1.tgz#85687a58b27eac736ec0e87e5cb98f21e57a0bb1"
+ integrity sha512-iu1JLYmGmITRzUgNiLMZD3WCoFzpYtueuyAgHTXqgwSRAMIlFTnZqG6/xenkpUGRJEzSfklUTI4GNSzks/dc0w==
dependencies:
"@types/deep-eql" "*"
@@ -1047,9 +1024,9 @@
integrity sha512-c9h9dVVMigMPc4bwTvC5dxqtqJZwQPePsWjPlpSOnojbor6pGqdk541lfA7AqFQr5pB1BRdq0juY9db81BwyFw==
"@types/estree@^1.0.6":
- version "1.0.6"
- resolved "https://registry.npmjs.org/@types/estree/-/estree-1.0.6.tgz"
- integrity sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw==
+ version "1.0.7"
+ resolved "https://registry.yarnpkg.com/@types/estree/-/estree-1.0.7.tgz#4158d3105276773d5b7695cd4834b1722e4f37a8"
+ integrity sha512-w28IoSUCJpidD/TGviZwwMJckNESJZXFu7NBZ5YJ4mEUnNraUn9Pm8HSZm/jDF1pDWYKspWE7oVphigUPRakIQ==
"@types/glob@^7.1.1":
version "7.2.0"
@@ -1061,7 +1038,7 @@
"@types/json-schema@^7.0.15":
version "7.0.15"
- resolved "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz"
+ resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.15.tgz#596a1747233694d50f6ad8a7869fcb6f56cf5841"
integrity sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==
"@types/lru-cache@^5.1.0":
@@ -1069,10 +1046,10 @@
resolved "https://registry.yarnpkg.com/@types/lru-cache/-/lru-cache-5.1.1.tgz#c48c2e27b65d2a153b19bfc1a317e30872e01eef"
integrity sha512-ssE3Vlrys7sdIzs5LOxCzTVMsU7i9oa/IaW92wF32JFb3CVczqOkru2xspuKczHEbG3nvmPY7IFqVmGGHdNbYw==
-"@types/luxon@~3.4.0":
- version "3.4.2"
- resolved "https://registry.npmjs.org/@types/luxon/-/luxon-3.4.2.tgz"
- integrity sha512-TifLZlFudklWlMBfhubvgqTXRzLDI5pCbGa4P8a3wPyUQSW+1xQ5eDsreP9DWHX3tjq1ke96uYG/nwundroWcA==
+"@types/luxon@~3.6.0":
+ version "3.6.2"
+ resolved "https://registry.yarnpkg.com/@types/luxon/-/luxon-3.6.2.tgz#be6536931801f437eafcb9c0f6d6781f72308041"
+ integrity sha512-R/BdP7OxEMc44l2Ex5lSXHoIXTB2JLNa3y2QISIbr58U/YcsffyQrYW//hZSdrfxrjRZj3GcUoxMPGdO8gSYuw==
"@types/minimatch@*":
version "5.1.2"
@@ -1086,30 +1063,30 @@
"@types/node-fetch@^2.6.4":
version "2.6.12"
- resolved "https://registry.npmjs.org/@types/node-fetch/-/node-fetch-2.6.12.tgz"
+ resolved "https://registry.yarnpkg.com/@types/node-fetch/-/node-fetch-2.6.12.tgz#8ab5c3ef8330f13100a7479e2cd56d3386830a03"
integrity sha512-8nneRWKCg3rMtF69nLQJnOYUcbafYeFSjqkw3jCRLsqkWFlHaoQrr5mXmofFGOx3DKn7UfmBMyov8ySvLRVldA==
dependencies:
"@types/node" "*"
form-data "^4.0.0"
"@types/node@*":
- version "22.13.8"
- resolved "https://registry.npmjs.org/@types/node/-/node-22.13.8.tgz"
- integrity sha512-G3EfaZS+iOGYWLLRCEAXdWK9my08oHNZ+FHluRiggIYJPOXzhOiDgpVCUHaUvyIC5/fj7C/p637jdzC666AOKQ==
+ version "22.15.2"
+ resolved "https://registry.yarnpkg.com/@types/node/-/node-22.15.2.tgz#1db55aa64618ee93a58c8912f74beefe44aca905"
+ integrity sha512-uKXqKN9beGoMdBfcaTY1ecwz6ctxuJAcUlwE55938g0ZJ8lRxwAZqRz2AJ4pzpt5dHdTPMB863UZ0ESiFUcP7A==
dependencies:
- undici-types "~6.20.0"
+ undici-types "~6.21.0"
"@types/node@22.7.5":
version "22.7.5"
- resolved "https://registry.npmjs.org/@types/node/-/node-22.7.5.tgz"
+ resolved "https://registry.yarnpkg.com/@types/node/-/node-22.7.5.tgz#cfde981727a7ab3611a481510b473ae54442b92b"
integrity sha512-jML7s2NAzMWc//QSJ1a3prpk78cOPchGvXJsC3C6R6PSMoooztvRVQEz89gmBTBY1SPMaqo5teB4uNHPdetShQ==
dependencies:
undici-types "~6.19.2"
"@types/node@^18.11.18":
- version "18.19.78"
- resolved "https://registry.npmjs.org/@types/node/-/node-18.19.78.tgz"
- integrity sha512-m1ilZCTwKLkk9rruBJXFeYN0Bc5SbjirwYX/Td3MqPfioYbgun3IvK/m8dQxMCnrPGZPg1kvXjp3SIekCN/ynw==
+ version "18.19.87"
+ resolved "https://registry.yarnpkg.com/@types/node/-/node-18.19.87.tgz#690f000cc51e3c7f48bc00f7e86fac6eb550b709"
+ integrity sha512-OIAAu6ypnVZHmsHCeJ+7CCSub38QNBS9uceMQeg7K5Ur0Jr+wG9wEOEvvMbhp09pxD5czIUy/jND7s7Tb6Nw7A==
dependencies:
undici-types "~5.26.4"
@@ -1127,7 +1104,7 @@
"@types/retry@0.12.0":
version "0.12.0"
- resolved "https://registry.npmjs.org/@types/retry/-/retry-0.12.0.tgz"
+ resolved "https://registry.yarnpkg.com/@types/retry/-/retry-0.12.0.tgz#2b35eccfcee7d38cd72ad99232fbd58bffb3c84d"
integrity sha512-wWKOClTTiizcZhXnPY4wikVAwmdYHp8q6DmC+EJUzAMsycb7HB32Kh9RN4+0gExjmPmZSAQjgURXIGATPegAvA==
"@types/secp256k1@^4.0.1":
@@ -1139,12 +1116,12 @@
"@types/triple-beam@^1.3.2":
version "1.3.5"
- resolved "https://registry.npmjs.org/@types/triple-beam/-/triple-beam-1.3.5.tgz"
+ resolved "https://registry.yarnpkg.com/@types/triple-beam/-/triple-beam-1.3.5.tgz#74fef9ffbaa198eb8b588be029f38b00299caa2c"
integrity sha512-6WaYesThRMCl19iryMYP7/x2OVgCtbIVflDGFpWnb9irXI3UjYE4AzmYuiUKY1AJstGijoY+MgUszMgRxIYTYw==
"@types/uuid@^10.0.0":
version "10.0.0"
- resolved "https://registry.npmjs.org/@types/uuid/-/uuid-10.0.0.tgz"
+ resolved "https://registry.yarnpkg.com/@types/uuid/-/uuid-10.0.0.tgz#e9c07fe50da0f53dc24970cca94d619ff03f6f6d"
integrity sha512-7gqG38EyHgyP1S+7+xomFtL+ZNHcKv6DwNaCZmJmo1vgMugyF3TCnXVg4t1uk89mLNwnLtnY3TpOpCOyp1/xHQ==
abbrev@1:
@@ -1157,11 +1134,6 @@ abbrev@1.0.x:
resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-1.0.9.tgz#91b4792588a7738c25f35dd6f63752a2f8776135"
integrity sha512-LEyx4aLEC3x6T0UguF6YILf+ntvmOaWsVfENmIW0E9H09vKlLDGelMjjSm0jkDHALj8A8quZ/HapKNigzwge+Q==
-abitype@1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/abitype/-/abitype-1.0.0.tgz#237176dace81d90d018bebf3a45cb42f2a2d9e97"
- integrity sha512-NMeMah//6bJ56H5XRj8QCV4AwuW6hB6zqz2LnhhLdcWVQOsXki6/Pn3APeqxCma62nXIcmZWdu1DlHWS74umVQ==
-
abitype@1.0.8, abitype@^1.0.6:
version "1.0.8"
resolved "https://registry.yarnpkg.com/abitype/-/abitype-1.0.8.tgz#3554f28b2e9d6e9f35eb59878193eabd1b9f46ba"
@@ -1169,14 +1141,14 @@ abitype@1.0.8, abitype@^1.0.6:
abort-controller@^3.0.0:
version "3.0.0"
- resolved "https://registry.npmjs.org/abort-controller/-/abort-controller-3.0.0.tgz"
+ resolved "https://registry.yarnpkg.com/abort-controller/-/abort-controller-3.0.0.tgz#eaf54d53b62bae4138e809ca225c8439a6efb392"
integrity sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==
dependencies:
event-target-shim "^5.0.0"
accepts@~1.3.8:
version "1.3.8"
- resolved "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz"
+ resolved "https://registry.yarnpkg.com/accepts/-/accepts-1.3.8.tgz#0bf0be125b67014adcb0b0921e62db7bffe16b2e"
integrity sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==
dependencies:
mime-types "~2.1.34"
@@ -1184,7 +1156,7 @@ accepts@~1.3.8:
acorn-jsx@^5.3.2:
version "5.3.2"
- resolved "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz"
+ resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.3.2.tgz#7ed5bb55908b3b2f1bc55c6af1653bada7f07937"
integrity sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==
acorn-walk@^8.1.1:
@@ -1194,16 +1166,11 @@ acorn-walk@^8.1.1:
dependencies:
acorn "^8.11.0"
-acorn@^8.11.0, acorn@^8.4.1:
+acorn@^8.11.0, acorn@^8.14.0, acorn@^8.4.1:
version "8.14.1"
resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.14.1.tgz#721d5dc10f7d5b5609a891773d47731796935dfb"
integrity sha512-OvQ/2pUDKmgfCg++xsTX1wGxfTaszcHVcTctW4UJB4hibJx2HXxxO5UmVgyjMa+ZDsiaf5wWLXYpRWMmBI0QHg==
-acorn@^8.14.0:
- version "8.14.0"
- resolved "https://registry.npmjs.org/acorn/-/acorn-8.14.0.tgz"
- integrity sha512-cl669nCJTZBsL97OF4kUQm5g5hC2uihk0NxY3WENAC0TYdILVkAyHymAntgxGkl7K+t0cXIrH5siy5S4XkFycA==
-
adm-zip@^0.4.16:
version "0.4.16"
resolved "https://registry.yarnpkg.com/adm-zip/-/adm-zip-0.4.16.tgz#cf4c508fdffab02c269cbc7f471a875f05570365"
@@ -1211,7 +1178,7 @@ adm-zip@^0.4.16:
aes-js@4.0.0-beta.5:
version "4.0.0-beta.5"
- resolved "https://registry.npmjs.org/aes-js/-/aes-js-4.0.0-beta.5.tgz"
+ resolved "https://registry.yarnpkg.com/aes-js/-/aes-js-4.0.0-beta.5.tgz#8d2452c52adedebc3a3e28465d858c11ca315873"
integrity sha512-G965FqalsNyrPqgEGON7nIx1e/OVENSgiEIzyC63haUMuvNnwIgIjMs52hlTCKhkBny7A2ORNlfY9Zu+jmGk1Q==
agent-base@6:
@@ -1223,7 +1190,7 @@ agent-base@6:
agentkeepalive@^4.2.1:
version "4.6.0"
- resolved "https://registry.npmjs.org/agentkeepalive/-/agentkeepalive-4.6.0.tgz"
+ resolved "https://registry.yarnpkg.com/agentkeepalive/-/agentkeepalive-4.6.0.tgz#35f73e94b3f40bf65f105219c623ad19c136ea6a"
integrity sha512-kja8j7PjmncONqaTsB8fQ+wE2mSU2DJ9D4XKoJ5PFWIdRMa6SLSN1ff4mOr4jCbfRSsxR4keIiySJU0N9T5hIQ==
dependencies:
humanize-ms "^1.2.1"
@@ -1238,7 +1205,7 @@ aggregate-error@^3.0.0:
ajv@^6.12.4:
version "6.12.6"
- resolved "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz"
+ resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.6.tgz#baf5a62e802b07d977034586f8c3baf5adf26df4"
integrity sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==
dependencies:
fast-deep-equal "^3.1.1"
@@ -1299,14 +1266,14 @@ ansi-styles@^3.2.1:
ansi-styles@^4.0.0, ansi-styles@^4.1.0:
version "4.3.0"
- resolved "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz"
+ resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.3.0.tgz#edd803628ae71c04c85ae7a0906edad34b648937"
integrity sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==
dependencies:
color-convert "^2.0.1"
ansi-styles@^5.0.0:
version "5.2.0"
- resolved "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz"
+ resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-5.2.0.tgz#07449690ad45777d1924ac2abb2fc8895dba836b"
integrity sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==
ansi-styles@^6.1.0:
@@ -1316,7 +1283,7 @@ ansi-styles@^6.1.0:
anymatch@~3.1.2:
version "3.1.3"
- resolved "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz"
+ resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.3.tgz#790c58b19ba1720a84205b57c618d5ad8524973e"
integrity sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==
dependencies:
normalize-path "^3.0.0"
@@ -1324,9 +1291,14 @@ anymatch@~3.1.2:
apg-js@^4.3.0:
version "4.4.0"
- resolved "https://registry.npmjs.org/apg-js/-/apg-js-4.4.0.tgz"
+ resolved "https://registry.yarnpkg.com/apg-js/-/apg-js-4.4.0.tgz#09dcecab0731fbde233b9f2352fdd2d07e56b2cf"
integrity sha512-fefmXFknJmtgtNEXfPwZKYkMFX4Fyeyz+fNF6JWp87biGOPslJbCBVU158zvKRZfHBKnJDy8CMM40oLFGkXT8Q==
+append-field@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/append-field/-/append-field-1.0.0.tgz#1e3440e915f0b1203d23748e78edd7b9b5b43e56"
+ integrity sha512-klpgFSWLW1ZEs8svjfb7g4qWY0YS5imI82dTg+QahUvJ8YqAY0P10Uk8tTyh9ZGuYEZEMaeJYCF5BFuX552hsw==
+
arg@^4.1.0:
version "4.1.3"
resolved "https://registry.yarnpkg.com/arg/-/arg-4.1.3.tgz#269fc7ad5b8e42cb63c896d5666017261c144089"
@@ -1341,7 +1313,7 @@ argparse@^1.0.7:
argparse@^2.0.1:
version "2.0.1"
- resolved "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz"
+ resolved "https://registry.yarnpkg.com/argparse/-/argparse-2.0.1.tgz#246f50f3ca78a3240f6c997e8a9bd1eac49e4b38"
integrity sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==
array-back@^3.0.1, array-back@^3.1.0:
@@ -1356,7 +1328,7 @@ array-back@^4.0.1, array-back@^4.0.2:
array-buffer-byte-length@^1.0.1, array-buffer-byte-length@^1.0.2:
version "1.0.2"
- resolved "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.2.tgz"
+ resolved "https://registry.yarnpkg.com/array-buffer-byte-length/-/array-buffer-byte-length-1.0.2.tgz#384d12a37295aec3769ab022ad323a18a51ccf8b"
integrity sha512-LHE+8BuR7RYGDKvnrmcuSq3tDcKv9OFEXQt/HpbZhY7V6h0zlUXutnAD82GiFx9rdieCMjkvtcsPqBwgUl1Iiw==
dependencies:
call-bound "^1.0.3"
@@ -1364,7 +1336,7 @@ array-buffer-byte-length@^1.0.1, array-buffer-byte-length@^1.0.2:
array-flatten@1.1.1:
version "1.1.1"
- resolved "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz"
+ resolved "https://registry.yarnpkg.com/array-flatten/-/array-flatten-1.1.1.tgz#9a5f699051b1e7073328f2a008968b64ea2955d2"
integrity sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==
array-union@^2.1.0:
@@ -1374,7 +1346,7 @@ array-union@^2.1.0:
array.prototype.findindex@^2.0.2:
version "2.2.4"
- resolved "https://registry.npmjs.org/array.prototype.findindex/-/array.prototype.findindex-2.2.4.tgz"
+ resolved "https://registry.yarnpkg.com/array.prototype.findindex/-/array.prototype.findindex-2.2.4.tgz#63aff05df18effa990c367bfad06b71f7bd113f9"
integrity sha512-LLm4mhxa9v8j0A/RPnpQAP4svXToJFh+Hp1pNYl5ZD5qpB4zdx/D4YjpVcETkhFbUKWO3iGMVLvrOnnmkAJT6A==
dependencies:
call-bind "^1.0.8"
@@ -1386,7 +1358,7 @@ array.prototype.findindex@^2.0.2:
arraybuffer.prototype.slice@^1.0.4:
version "1.0.4"
- resolved "https://registry.npmjs.org/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.4.tgz"
+ resolved "https://registry.yarnpkg.com/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.4.tgz#9d760d84dbdd06d0cbf92c8849615a1a7ab3183c"
integrity sha512-BNoCY6SXXPQ7gF2opIP4GBE+Xw7U+pHMYKuzjgCN3GwiaIR09UUeKfheyIry77QtrCBlC0KK0q5/TER/tYh3PQ==
dependencies:
array-buffer-byte-length "^1.0.1"
@@ -1399,7 +1371,7 @@ arraybuffer.prototype.slice@^1.0.4:
asn1.js@^5.4.1:
version "5.4.1"
- resolved "https://registry.npmjs.org/asn1.js/-/asn1.js-5.4.1.tgz"
+ resolved "https://registry.yarnpkg.com/asn1.js/-/asn1.js-5.4.1.tgz#11a980b84ebb91781ce35b0fdc2ee294e3783f07"
integrity sha512-+I//4cYPccV8LdmBLiX8CYvf9Sp3vQsrqu2QNXRcrbiWvcx/UdlFiqUJJzxRQxgsZmvhXhn4cSKeSmoFjVdupA==
dependencies:
bn.js "^4.0.0"
@@ -1409,14 +1381,14 @@ asn1.js@^5.4.1:
asn1@~0.2.3:
version "0.2.6"
- resolved "https://registry.npmjs.org/asn1/-/asn1-0.2.6.tgz"
+ resolved "https://registry.yarnpkg.com/asn1/-/asn1-0.2.6.tgz#0d3a7bb6e64e02a90c0303b31f292868ea09a08d"
integrity sha512-ix/FxPn0MDjeyJ7i/yoHGFt/EX6LyNbxSEhPPXODPL+KB0VPk86UYfL0lMdy+KCnv+fmvIzySwaK5COwqVbWTQ==
dependencies:
safer-buffer "~2.1.0"
assert-plus@1.0.0, assert-plus@^1.0.0:
version "1.0.0"
- resolved "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz"
+ resolved "https://registry.yarnpkg.com/assert-plus/-/assert-plus-1.0.0.tgz#f12e0f3c5d77b0b1cdd9146942e4e96c1e4dd525"
integrity sha512-NfJ4UzBCcQGLDlQq7nHxH+tv3kyZ0hHQqF5BO6J7tNJeP5do1llPr8dZ8zHonfhAu0PHAdMkSo+8o0wxg9lZWw==
assertion-error@^1.1.0:
@@ -1431,7 +1403,7 @@ astral-regex@^2.0.0:
async-function@^1.0.0:
version "1.0.0"
- resolved "https://registry.npmjs.org/async-function/-/async-function-1.0.0.tgz"
+ resolved "https://registry.yarnpkg.com/async-function/-/async-function-1.0.0.tgz#509c9fca60eaf85034c6829838188e4e4c8ffb2b"
integrity sha512-hsU18Ae8CDTR6Kgu9DYf0EbCr/a5iGL0rytQDobUcdpYOKokk8LEjVphnXkDkgpi0wYVsqrXuP0bZxJaTqdgoA==
async@1.x:
@@ -1441,12 +1413,12 @@ async@1.x:
async@^3.2.3:
version "3.2.6"
- resolved "https://registry.npmjs.org/async/-/async-3.2.6.tgz"
+ resolved "https://registry.yarnpkg.com/async/-/async-3.2.6.tgz#1b0728e14929d51b85b449b7f06e27c1145e38ce"
integrity sha512-htCUDlxyyCLMgaM3xXg0C0LW2xqfuQ6p05pCEIsXuyQ+a1koYKTuBMzRNwmybfLgvJDMd0r1LTn4+E0Ti6C2AA==
asynckit@^0.4.0:
version "0.4.0"
- resolved "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz"
+ resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79"
integrity sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==
at-least-node@^1.0.0:
@@ -1456,25 +1428,25 @@ at-least-node@^1.0.0:
available-typed-arrays@^1.0.7:
version "1.0.7"
- resolved "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.7.tgz"
+ resolved "https://registry.yarnpkg.com/available-typed-arrays/-/available-typed-arrays-1.0.7.tgz#a5cc375d6a03c2efc87a553f3e0b1522def14846"
integrity sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==
dependencies:
possible-typed-array-names "^1.0.0"
aws-sign2@~0.7.0:
version "0.7.0"
- resolved "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz"
+ resolved "https://registry.yarnpkg.com/aws-sign2/-/aws-sign2-0.7.0.tgz#b46e890934a9591f2d2f6f86d7e6a9f1b3fe76a8"
integrity sha512-08kcGqnYf/YmjoRhfxyu+CLxBjUtHLXLXX/vUfx9l2LYzG3c1m61nrpyFUZI6zeS+Li/wWMMidD9KgrqtGq3mA==
aws4@^1.8.0:
version "1.13.2"
- resolved "https://registry.npmjs.org/aws4/-/aws4-1.13.2.tgz"
+ resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.13.2.tgz#0aa167216965ac9474ccfa83892cfb6b3e1e52ef"
integrity sha512-lHe62zvbTB5eEABUVi/AwVh0ZKY9rMMDhmm+eeyuuUQbQ3+J+fONVQOZyj+DdrvD4BY33uYniyRJ4UJIaSKAfw==
axios@^1.6.7, axios@^1.8.4:
- version "1.8.4"
- resolved "https://registry.yarnpkg.com/axios/-/axios-1.8.4.tgz#78990bb4bc63d2cae072952d374835950a82f447"
- integrity sha512-eBSYY4Y68NNlHbHBMdeDmKNtDgXWhQsJcGqzO3iLUM0GraQFSS9cVgPX5I9b3lbdFKyYoAEGAZF1DwhTaljNAw==
+ version "1.9.0"
+ resolved "https://registry.yarnpkg.com/axios/-/axios-1.9.0.tgz#25534e3b72b54540077d33046f77e3b8d7081901"
+ integrity sha512-re4CqKTJaURpzbLHtIi6XpDv20/CnpXOtjRY5/CU32L8gU8ek9UIivcfvSWvmKEngmVbrUtPpdDwWDWL7DNHvg==
dependencies:
follow-redirects "^1.15.6"
form-data "^4.0.0"
@@ -1482,48 +1454,48 @@ axios@^1.6.7, axios@^1.8.4:
bagpipe@^0.3.5:
version "0.3.5"
- resolved "https://registry.npmjs.org/bagpipe/-/bagpipe-0.3.5.tgz"
+ resolved "https://registry.yarnpkg.com/bagpipe/-/bagpipe-0.3.5.tgz#e341d164fcb24cdf04ea7e05b765ec10c8aea6a1"
integrity sha512-42sAlmPDKes1nLm/aly+0VdaopSU9br+jkRELedhQxI5uXHgtk47I83Mpmf4zoNTRMASdLFtUkimlu/Z9zQ8+g==
balanced-match@^1.0.0:
version "1.0.2"
- resolved "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz"
+ resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee"
integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==
base-x@^3.0.2:
- version "3.0.10"
- resolved "https://registry.yarnpkg.com/base-x/-/base-x-3.0.10.tgz#62de58653f8762b5d6f8d9fe30fa75f7b2585a75"
- integrity sha512-7d0s06rR9rYaIWHkpfLIFICM/tkSVdoPC9qYAQRpxn9DdKNWNsKC0uk++akckyLq16Tx2WIinnZ6WRriAt6njQ==
+ version "3.0.11"
+ resolved "https://registry.yarnpkg.com/base-x/-/base-x-3.0.11.tgz#40d80e2a1aeacba29792ccc6c5354806421287ff"
+ integrity sha512-xz7wQ8xDhdyP7tQxwdteLYeFfS68tSMNCZ/Y37WJ4bhGfKPpqEIlmIyueQHqOyoPhE6xNUqjzRr8ra0eF9VRvA==
dependencies:
safe-buffer "^5.0.1"
base64-js@^1.5.1:
version "1.5.1"
- resolved "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz"
+ resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.5.1.tgz#1b1b440160a5bf7ad40b650f095963481903930a"
integrity sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==
bcrypt-pbkdf@^1.0.0:
version "1.0.2"
- resolved "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz"
+ resolved "https://registry.yarnpkg.com/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz#a4301d389b6a43f9b67ff3ca11a3f6637e360e9e"
integrity sha512-qeFIXtP4MSoi6NLqO12WfqARWWuCKi2Rn/9hJLEmtB5yTNr9DqFWkJRCf2qShWzPeAMRnOgCrq0sg/KLv5ES9w==
dependencies:
tweetnacl "^0.14.3"
binary-extensions@^2.0.0, binary-extensions@^2.2.0:
version "2.3.0"
- resolved "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.3.0.tgz"
+ resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-2.3.0.tgz#f6e14a97858d327252200242d4ccfe522c445522"
integrity sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==
bindings@^1.5.0:
version "1.5.0"
- resolved "https://registry.npmjs.org/bindings/-/bindings-1.5.0.tgz"
+ resolved "https://registry.yarnpkg.com/bindings/-/bindings-1.5.0.tgz#10353c9e945334bc0511a6d90b38fbc7c9c504df"
integrity sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==
dependencies:
file-uri-to-path "1.0.0"
bl@^1.2.3:
version "1.2.3"
- resolved "https://registry.npmjs.org/bl/-/bl-1.2.3.tgz"
+ resolved "https://registry.yarnpkg.com/bl/-/bl-1.2.3.tgz#1e8dd80142eac80d7158c9dccc047fb620e035e7"
integrity sha512-pvcNpa0UU69UT341rO6AYy4FVAIkUHuZXRIWbq+zHnsVcRzDDjIAhGuuYoi0d//cwIwtt4pkpKycWEfjdV+vww==
dependencies:
readable-stream "^2.3.5"
@@ -1536,7 +1508,7 @@ blakejs@^1.1.0:
bluebird@^3.5.0:
version "3.7.2"
- resolved "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz"
+ resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.7.2.tgz#9f229c15be272454ffa973ace0dbee79a1b0c36f"
integrity sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==
bn.js@4.11.6:
@@ -1544,19 +1516,19 @@ bn.js@4.11.6:
resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.11.6.tgz#53344adb14617a13f6e8dd2ce28905d1c0ba3215"
integrity sha512-XWwnNNFCuuSQ0m3r3C4LE3EiORltHd9M05pq6FOlVeiophzRbMo50Sbz1ehl8K3Z+jw9+vmgnXefY1hz8X+2wA==
-bn.js@^4.0.0, bn.js@^4.11.0, bn.js@^4.11.8, bn.js@^4.11.9:
- version "4.12.1"
- resolved "https://registry.npmjs.org/bn.js/-/bn.js-4.12.1.tgz"
- integrity sha512-k8TVBiPkPJT9uHLdOKfFpqcfprwBFOAAXXozRubr7R7PfIuKvQlzcI4M0pALeqXN09vdaMbUdUj+pass+uULAg==
+bn.js@^4.0.0, bn.js@^4.11.9:
+ version "4.12.2"
+ resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.12.2.tgz#3d8fed6796c24e177737f7cc5172ee04ef39ec99"
+ integrity sha512-n4DSx829VRTRByMRGdjQ9iqsN0Bh4OolPsFnaZBLcbi8iXcB+kJ9s7EnRt4wILZNV3kPLHkRVfOc/HvhC3ovDw==
bn.js@^5.1.2, bn.js@^5.2.0, bn.js@^5.2.1:
- version "5.2.1"
- resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-5.2.1.tgz#0bc527a6a0d18d0aa8d5b0538ce4a77dccfa7b70"
- integrity sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==
+ version "5.2.2"
+ resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-5.2.2.tgz#82c09f9ebbb17107cd72cb7fd39bd1f9d0aaa566"
+ integrity sha512-v2YAxEmKaBLahNwE1mjp4WON6huMNeuDvagFZW+ASCuA/ku0bXR9hSMw0XpiqMoA3+rmnyck/tPRSFQkoC9Cuw==
body-parser@1.20.3:
version "1.20.3"
- resolved "https://registry.npmjs.org/body-parser/-/body-parser-1.20.3.tgz"
+ resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.20.3.tgz#1953431221c6fb5cd63c4b36d53fab0928e548c6"
integrity sha512-7rAxByjUMqQ3/bHJy7D6OGXvx/MMc4IqBn/X0fcM1QUcAItpZrBEYhWGem+tzXH90c+G01ypMcYJBO9Y30203g==
dependencies:
bytes "3.1.2"
@@ -1588,7 +1560,7 @@ boxen@^5.1.2:
brace-expansion@^1.1.7:
version "1.1.11"
- resolved "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz"
+ resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd"
integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==
dependencies:
balanced-match "^1.0.0"
@@ -1603,7 +1575,7 @@ brace-expansion@^2.0.1:
braces@^3.0.3, braces@~3.0.2:
version "3.0.3"
- resolved "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz"
+ resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.3.tgz#490332f40919452272d55a8480adc0c441358789"
integrity sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==
dependencies:
fill-range "^7.1.1"
@@ -1679,14 +1651,21 @@ buffer-xor@^1.0.3:
resolved "https://registry.yarnpkg.com/buffer-xor/-/buffer-xor-1.0.3.tgz#26e61ed1422fb70dd42e6e36729ed51d855fe8d9"
integrity sha512-571s0T7nZWK6vB67HI5dyUF7wXiNcfaPPPTl6zYCNApANjIvYJTg7hlud/+cJpdAhS7dVzqMLmfhfHR3rAcOjQ==
+busboy@^1.0.0:
+ version "1.6.0"
+ resolved "https://registry.yarnpkg.com/busboy/-/busboy-1.6.0.tgz#966ea36a9502e43cdb9146962523b92f531f6893"
+ integrity sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA==
+ dependencies:
+ streamsearch "^1.1.0"
+
bytes@3.1.2:
version "3.1.2"
- resolved "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz"
+ resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.1.2.tgz#8b0beeb98605adf1b128fa4386403c009e0221a5"
integrity sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==
call-bind-apply-helpers@^1.0.0, call-bind-apply-helpers@^1.0.1, call-bind-apply-helpers@^1.0.2:
version "1.0.2"
- resolved "https://registry.npmjs.org/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz"
+ resolved "https://registry.yarnpkg.com/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz#4b5428c222be985d79c3d82657479dbe0b59b2d6"
integrity sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==
dependencies:
es-errors "^1.3.0"
@@ -1694,7 +1673,7 @@ call-bind-apply-helpers@^1.0.0, call-bind-apply-helpers@^1.0.1, call-bind-apply-
call-bind@^1.0.7, call-bind@^1.0.8:
version "1.0.8"
- resolved "https://registry.npmjs.org/call-bind/-/call-bind-1.0.8.tgz"
+ resolved "https://registry.yarnpkg.com/call-bind/-/call-bind-1.0.8.tgz#0736a9660f537e3388826f440d5ec45f744eaa4c"
integrity sha512-oKlSFMcMwpUg2ednkhQ454wfWiU/ul3CkJe/PEHcTKuiX6RpbehUiFMXu13HalGZxfUwCQzZG747YXBn1im9ww==
dependencies:
call-bind-apply-helpers "^1.0.0"
@@ -1702,27 +1681,27 @@ call-bind@^1.0.7, call-bind@^1.0.8:
get-intrinsic "^1.2.4"
set-function-length "^1.2.2"
-call-bound@^1.0.2, call-bound@^1.0.3:
- version "1.0.3"
- resolved "https://registry.npmjs.org/call-bound/-/call-bound-1.0.3.tgz"
- integrity sha512-YTd+6wGlNlPxSuri7Y6X8tY2dmm12UMH66RpKMhiX6rsk5wXXnYgbUcOt8kiS31/AjfoTOvCsE+w8nZQLQnzHA==
+call-bound@^1.0.2, call-bound@^1.0.3, call-bound@^1.0.4:
+ version "1.0.4"
+ resolved "https://registry.yarnpkg.com/call-bound/-/call-bound-1.0.4.tgz#238de935d2a2a692928c538c7ccfa91067fd062a"
+ integrity sha512-+ys997U96po4Kx/ABpBCqhA9EuxJaQWDQg7295H4hBphv3IZg0boBKuwYpt4YXp6MZ5AmZQnU/tyMTlRpaSejg==
dependencies:
- call-bind-apply-helpers "^1.0.1"
- get-intrinsic "^1.2.6"
+ call-bind-apply-helpers "^1.0.2"
+ get-intrinsic "^1.3.0"
callsites@^3.0.0:
version "3.1.0"
- resolved "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz"
+ resolved "https://registry.yarnpkg.com/callsites/-/callsites-3.1.0.tgz#b3630abd8943432f54b3f0519238e33cd7df2f73"
integrity sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==
camelcase@6, camelcase@^6.0.0, camelcase@^6.2.0:
version "6.3.0"
- resolved "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz"
+ resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-6.3.0.tgz#5685b95eb209ac9c0c177467778c9c84df58ba9a"
integrity sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==
caseless@~0.12.0:
version "0.12.0"
- resolved "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz"
+ resolved "https://registry.yarnpkg.com/caseless/-/caseless-0.12.0.tgz#1b681c21ff84033c826543090689420d187151dc"
integrity sha512-4tYFyifaFfGacoiObjJegolkwSU4xQNGbVgUiNYVUxbQ2x2lUsFvY4hVgVzGiIe6WLOPqycWXA40l+PWsxthUw==
cbor@^8.1.0:
@@ -1761,7 +1740,7 @@ chai@^4.2.0:
chalk@4.1.2, chalk@^4.0.0, chalk@^4.1.0, chalk@^4.1.2:
version "4.1.2"
- resolved "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz"
+ resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.2.tgz#aac4e2b7734a740867aeb16bf02aad556a1e7a01"
integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==
dependencies:
ansi-styles "^4.1.0"
@@ -1778,7 +1757,7 @@ chalk@^2.4.2:
"charenc@>= 0.0.1":
version "0.0.2"
- resolved "https://registry.npmjs.org/charenc/-/charenc-0.0.2.tgz"
+ resolved "https://registry.yarnpkg.com/charenc/-/charenc-0.0.2.tgz#c0a1d2f3a7092e03774bfa83f14c0fc5790a8667"
integrity sha512-yrLQ/yVUFXkzg7EDQsPieE/53+0RlaWTs+wBrvW36cyilJ2SaDWfl4Yj7MtLTXleV9uEKefbAGUPv2/iWSooRA==
check-error@^1.0.2, check-error@^1.0.3:
@@ -1790,7 +1769,7 @@ check-error@^1.0.2, check-error@^1.0.3:
chokidar@^3.5.2, chokidar@^3.5.3:
version "3.6.0"
- resolved "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz"
+ resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.6.0.tgz#197c6cc669ef2a8dc5e7b4d97ee4e092c3eb0d5b"
integrity sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==
dependencies:
anymatch "~3.1.2"
@@ -1853,31 +1832,31 @@ cliui@^7.0.2:
color-convert@^1.9.0, color-convert@^1.9.3:
version "1.9.3"
- resolved "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz"
+ resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8"
integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==
dependencies:
color-name "1.1.3"
color-convert@^2.0.1:
version "2.0.1"
- resolved "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz"
+ resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-2.0.1.tgz#72d3a68d598c9bdb3af2ad1e84f21d896abd4de3"
integrity sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==
dependencies:
color-name "~1.1.4"
color-name@1.1.3:
version "1.1.3"
- resolved "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz"
+ resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25"
integrity sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==
color-name@^1.0.0, color-name@~1.1.4:
version "1.1.4"
- resolved "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz"
+ resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2"
integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==
color-string@^1.6.0:
version "1.9.1"
- resolved "https://registry.npmjs.org/color-string/-/color-string-1.9.1.tgz"
+ resolved "https://registry.yarnpkg.com/color-string/-/color-string-1.9.1.tgz#4467f9146f036f855b764dfb5bf8582bf342c7a4"
integrity sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg==
dependencies:
color-name "^1.0.0"
@@ -1885,7 +1864,7 @@ color-string@^1.6.0:
color@^3.1.3:
version "3.2.1"
- resolved "https://registry.npmjs.org/color/-/color-3.2.1.tgz"
+ resolved "https://registry.yarnpkg.com/color/-/color-3.2.1.tgz#3544dc198caf4490c3ecc9a790b54fe9ff45e164"
integrity sha512-aBl7dZI9ENN6fUGC7mWpMTPNHmWUSNan9tuWN6ahh5ZLNk9baLJOnSMlrQkHcrfFgz2/RigjUVAjdx36VcemKA==
dependencies:
color-convert "^1.9.3"
@@ -1893,7 +1872,7 @@ color@^3.1.3:
colorspace@1.1.x:
version "1.1.4"
- resolved "https://registry.npmjs.org/colorspace/-/colorspace-1.1.4.tgz"
+ resolved "https://registry.yarnpkg.com/colorspace/-/colorspace-1.1.4.tgz#8d442d1186152f60453bf8070cd66eb364e59243"
integrity sha512-BgvKJiuVu1igBUF2kEjRCZXol6wiiGbY5ipL/oVPwm0BL9sIpMIzM8IK7vwuxIIzOXMV3Ey5w+vxhm0rR/TN8w==
dependencies:
color "^3.1.3"
@@ -1901,7 +1880,7 @@ colorspace@1.1.x:
combined-stream@^1.0.8, combined-stream@~1.0.6:
version "1.0.8"
- resolved "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz"
+ resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.8.tgz#c3d45a8b34fd730631a110a8a2520682b31d5a7f"
integrity sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==
dependencies:
delayed-stream "~1.0.0"
@@ -1933,7 +1912,7 @@ command-line-usage@^6.1.0:
commander@^10.0.1:
version "10.0.1"
- resolved "https://registry.npmjs.org/commander/-/commander-10.0.1.tgz"
+ resolved "https://registry.yarnpkg.com/commander/-/commander-10.0.1.tgz#881ee46b4f77d1c1dccc5823433aa39b022cbe06"
integrity sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug==
commander@^8.1.0:
@@ -1943,43 +1922,53 @@ commander@^8.1.0:
concat-map@0.0.1:
version "0.0.1"
- resolved "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz"
+ resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b"
integrity sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==
+concat-stream@^1.5.2:
+ version "1.6.2"
+ resolved "https://registry.yarnpkg.com/concat-stream/-/concat-stream-1.6.2.tgz#904bdf194cd3122fc675c77fc4ac3d4ff0fd1a34"
+ integrity sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==
+ dependencies:
+ buffer-from "^1.0.0"
+ inherits "^2.0.3"
+ readable-stream "^2.2.2"
+ typedarray "^0.0.6"
+
connect-pg-simple@^10.0.0:
version "10.0.0"
- resolved "https://registry.npmjs.org/connect-pg-simple/-/connect-pg-simple-10.0.0.tgz"
+ resolved "https://registry.yarnpkg.com/connect-pg-simple/-/connect-pg-simple-10.0.0.tgz#972b08d9fc6a1861c523a6c9166240a24b4bc3ca"
integrity sha512-pBGVazlqiMrackzCr0eKhn4LO5trJXsOX0nQoey9wCOayh80MYtThCbq8eoLsjpiWgiok/h+1/uti9/2/Una8A==
dependencies:
pg "^8.12.0"
console-table-printer@^2.12.1:
version "2.12.1"
- resolved "https://registry.npmjs.org/console-table-printer/-/console-table-printer-2.12.1.tgz"
+ resolved "https://registry.yarnpkg.com/console-table-printer/-/console-table-printer-2.12.1.tgz#4a9646537a246a6d8de57075d4fae1e08abae267"
integrity sha512-wKGOQRRvdnd89pCeH96e2Fn4wkbenSP6LMHfjfyNLMbGuHEFbMqQNuxXqd0oXG9caIOQ1FTvc5Uijp9/4jujnQ==
dependencies:
simple-wcswidth "^1.0.1"
content-disposition@0.5.4:
version "0.5.4"
- resolved "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz"
+ resolved "https://registry.yarnpkg.com/content-disposition/-/content-disposition-0.5.4.tgz#8b82b4efac82512a02bb0b1dcec9d2c5e8eb5bfe"
integrity sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==
dependencies:
safe-buffer "5.2.1"
content-type@~1.0.4, content-type@~1.0.5:
version "1.0.5"
- resolved "https://registry.npmjs.org/content-type/-/content-type-1.0.5.tgz"
+ resolved "https://registry.yarnpkg.com/content-type/-/content-type-1.0.5.tgz#8b773162656d1d1086784c8f23a54ce6d73d7918"
integrity sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==
cookie-signature@1.0.6:
version "1.0.6"
- resolved "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz"
+ resolved "https://registry.yarnpkg.com/cookie-signature/-/cookie-signature-1.0.6.tgz#e303a882b342cc3ee8ca513a79999734dab3ae2c"
integrity sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==
cookie-signature@1.0.7:
version "1.0.7"
- resolved "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.7.tgz"
+ resolved "https://registry.yarnpkg.com/cookie-signature/-/cookie-signature-1.0.7.tgz#ab5dd7ab757c54e60f37ef6550f481c426d10454"
integrity sha512-NXdYc3dLr47pBkpUCHtKSwIOQXLVn8dZEuywboCOJY/osA0wFSLlSawr3KN8qXJEyX66FcONTH8EIlVuK0yyFA==
cookie@0.4.0, cookie@0.7.1, cookie@0.7.2, cookie@^0.4.1, cookie@^1.0.2:
@@ -1989,17 +1978,17 @@ cookie@0.4.0, cookie@0.7.1, cookie@0.7.2, cookie@^0.4.1, cookie@^1.0.2:
core-util-is@1.0.2:
version "1.0.2"
- resolved "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz"
+ resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7"
integrity sha512-3lqz5YjWTYnW6dlDa5TLaTCcShfar1e40rmcJVwCBJC6mWlFuj0eCHIElmG1g5kyuJ/GD+8Wn4FFCcz4gJPfaQ==
core-util-is@~1.0.0:
version "1.0.3"
- resolved "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz"
+ resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.3.tgz#a6042d3634c2b27e9328f837b965fac83808db85"
integrity sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==
cors@^2.8.5:
version "2.8.5"
- resolved "https://registry.npmjs.org/cors/-/cors-2.8.5.tgz"
+ resolved "https://registry.yarnpkg.com/cors/-/cors-2.8.5.tgz#eac11da51592dd86b9f06f6e7ac293b3df875d29"
integrity sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==
dependencies:
object-assign "^4"
@@ -2034,16 +2023,16 @@ create-require@^1.1.0:
integrity sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==
cron@^4.1.0:
- version "4.1.0"
- resolved "https://registry.npmjs.org/cron/-/cron-4.1.0.tgz"
- integrity sha512-wmcuXr2qP0UZStYgwruG6jC2AYSO9n5VMm2t93hmcEXEjWY3S2bsXe3sfGUrTs/uQ1AvRCrZ0Pp9Q032L/V9tw==
+ version "4.3.0"
+ resolved "https://registry.yarnpkg.com/cron/-/cron-4.3.0.tgz#c5a62872f74f72294cf1cadef34c72ad8d8f50b5"
+ integrity sha512-ciiYNLfSlF9MrDqnbMdRWFiA6oizSF7kA1osPP9lRzNu0Uu+AWog1UKy7SkckiDY2irrNjeO6qLyKnXC8oxmrw==
dependencies:
- "@types/luxon" "~3.4.0"
- luxon "~3.5.0"
+ "@types/luxon" "~3.6.0"
+ luxon "~3.6.0"
cross-spawn@^7.0.6:
version "7.0.6"
- resolved "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz"
+ resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.6.tgz#8a58fe78f00dcd70c370451759dfbfaf03e8ee9f"
integrity sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==
dependencies:
path-key "^3.1.0"
@@ -2052,12 +2041,12 @@ cross-spawn@^7.0.6:
"crypt@>= 0.0.1":
version "0.0.2"
- resolved "https://registry.npmjs.org/crypt/-/crypt-0.0.2.tgz"
+ resolved "https://registry.yarnpkg.com/crypt/-/crypt-0.0.2.tgz#88d7ff7ec0dfb86f713dc87bbb42d044d3e6c41b"
integrity sha512-mCxBlsHFYh9C+HVpiEacem8FEBnMXgU9gy4zmNC+SXAZNB/1idgp/aulFJ4FgCi7GPEVbfyng092GqL2k2rmow==
csrf@3.1.0:
version "3.1.0"
- resolved "https://registry.npmjs.org/csrf/-/csrf-3.1.0.tgz"
+ resolved "https://registry.yarnpkg.com/csrf/-/csrf-3.1.0.tgz#ec75e9656d004d674b8ef5ba47b41fbfd6cb9c30"
integrity sha512-uTqEnCvWRk042asU6JtapDTcJeeailFy4ydOQS28bj1hcLnYRiqi8SsD2jS412AY1I/4qdOwWZun774iqywf9w==
dependencies:
rndm "1.2.0"
@@ -2076,14 +2065,14 @@ csurf@^1.11.0:
dashdash@^1.12.0:
version "1.14.1"
- resolved "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz"
+ resolved "https://registry.yarnpkg.com/dashdash/-/dashdash-1.14.1.tgz#853cfa0f7cbe2fed5de20326b8dd581035f6e2f0"
integrity sha512-jRFi8UDGo6j+odZiEpjazZaWqEal3w/basFjQHQEwVtZJGDpxbH1MeYluwCS8Xq5wmLJooDlMgvVarmWfGM44g==
dependencies:
assert-plus "^1.0.0"
data-view-buffer@^1.0.2:
version "1.0.2"
- resolved "https://registry.npmjs.org/data-view-buffer/-/data-view-buffer-1.0.2.tgz"
+ resolved "https://registry.yarnpkg.com/data-view-buffer/-/data-view-buffer-1.0.2.tgz#211a03ba95ecaf7798a8c7198d79536211f88570"
integrity sha512-EmKO5V3OLXh1rtK2wgXRansaK1/mtVdTUEiEI0W8RkvgT05kfxaH29PliLnpLP73yYO6142Q72QNa8Wx/A5CqQ==
dependencies:
call-bound "^1.0.3"
@@ -2092,7 +2081,7 @@ data-view-buffer@^1.0.2:
data-view-byte-length@^1.0.2:
version "1.0.2"
- resolved "https://registry.npmjs.org/data-view-byte-length/-/data-view-byte-length-1.0.2.tgz"
+ resolved "https://registry.yarnpkg.com/data-view-byte-length/-/data-view-byte-length-1.0.2.tgz#9e80f7ca52453ce3e93d25a35318767ea7704735"
integrity sha512-tuhGbE6CfTM9+5ANGf+oQb72Ky/0+s3xKUpHvShfiz2RxMFgFPjsXuRLBVMtvMs15awe45SRb83D6wH4ew6wlQ==
dependencies:
call-bound "^1.0.3"
@@ -2101,7 +2090,7 @@ data-view-byte-length@^1.0.2:
data-view-byte-offset@^1.0.1:
version "1.0.1"
- resolved "https://registry.npmjs.org/data-view-byte-offset/-/data-view-byte-offset-1.0.1.tgz"
+ resolved "https://registry.yarnpkg.com/data-view-byte-offset/-/data-view-byte-offset-1.0.1.tgz#068307f9b71ab76dbbe10291389e020856606191"
integrity sha512-BS8PfmtDGnrgYdOonGZQdLZslWIeCGFP9tpan0hi1Co2Zr2NKADsvGYA8XxuG/4UWgJ6Cjtv+YJnB6MM69QGlQ==
dependencies:
call-bound "^1.0.2"
@@ -2115,28 +2104,28 @@ death@^1.1.0:
debug@2.6.9:
version "2.6.9"
- resolved "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz"
+ resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f"
integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==
dependencies:
ms "2.0.0"
debug@4, debug@^4, debug@^4.1.1, debug@^4.3.1, debug@^4.3.2, debug@^4.3.4, debug@^4.3.5:
version "4.4.0"
- resolved "https://registry.npmjs.org/debug/-/debug-4.4.0.tgz"
+ resolved "https://registry.yarnpkg.com/debug/-/debug-4.4.0.tgz#2b3f2aea2ffeb776477460267377dc8710faba8a"
integrity sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA==
dependencies:
ms "^2.1.3"
debug@^3.2.7:
version "3.2.7"
- resolved "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz"
+ resolved "https://registry.yarnpkg.com/debug/-/debug-3.2.7.tgz#72580b7e9145fb39b6676f9c5e5fb100b934179a"
integrity sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==
dependencies:
ms "^2.1.1"
decamelize@1.2.0:
version "1.2.0"
- resolved "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz"
+ resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290"
integrity sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==
decamelize@^4.0.0:
@@ -2158,17 +2147,17 @@ deep-extend@~0.6.0:
deep-is@^0.1.3, deep-is@~0.1.3:
version "0.1.4"
- resolved "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz"
+ resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.4.tgz#a6f2dce612fadd2ef1f519b73551f17e85199831"
integrity sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==
deepmerge@^4.3.1:
version "4.3.1"
- resolved "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.1.tgz"
+ resolved "https://registry.yarnpkg.com/deepmerge/-/deepmerge-4.3.1.tgz#44b5f2147cd3b00d4b56137685966f26fd25dd4a"
integrity sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==
define-data-property@^1.0.1, define-data-property@^1.1.4:
version "1.1.4"
- resolved "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz"
+ resolved "https://registry.yarnpkg.com/define-data-property/-/define-data-property-1.1.4.tgz#894dc141bb7d3060ae4366f6a0107e68fbe48c5e"
integrity sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==
dependencies:
es-define-property "^1.0.0"
@@ -2177,7 +2166,7 @@ define-data-property@^1.0.1, define-data-property@^1.1.4:
define-properties@^1.2.1:
version "1.2.1"
- resolved "https://registry.npmjs.org/define-properties/-/define-properties-1.2.1.tgz"
+ resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.2.1.tgz#10781cc616eb951a80a034bafcaa7377f6af2b6c"
integrity sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==
dependencies:
define-data-property "^1.0.1"
@@ -2186,22 +2175,22 @@ define-properties@^1.2.1:
delayed-stream@~1.0.0:
version "1.0.0"
- resolved "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz"
+ resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619"
integrity sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==
depd@2.0.0, depd@~2.0.0:
version "2.0.0"
- resolved "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz"
+ resolved "https://registry.yarnpkg.com/depd/-/depd-2.0.0.tgz#b696163cc757560d09cf22cc8fad1571b79e76df"
integrity sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==
depd@~1.1.2:
version "1.1.2"
- resolved "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz"
+ resolved "https://registry.yarnpkg.com/depd/-/depd-1.1.2.tgz#9bcd52e14c097763e749b274c4346ed2e560b5a9"
integrity sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==
destroy@1.2.0:
version "1.2.0"
- resolved "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz"
+ resolved "https://registry.yarnpkg.com/destroy/-/destroy-1.2.0.tgz#4803735509ad8be552934c67df614f94e66fa015"
integrity sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==
diff@^4.0.1:
@@ -2230,7 +2219,7 @@ dir-glob@^3.0.1:
dom-serializer@^2.0.0:
version "2.0.0"
- resolved "https://registry.npmjs.org/dom-serializer/-/dom-serializer-2.0.0.tgz"
+ resolved "https://registry.yarnpkg.com/dom-serializer/-/dom-serializer-2.0.0.tgz#e41b802e1eedf9f6cae183ce5e622d789d7d8e53"
integrity sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==
dependencies:
domelementtype "^2.3.0"
@@ -2239,19 +2228,19 @@ dom-serializer@^2.0.0:
domelementtype@^2.3.0:
version "2.3.0"
- resolved "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz"
+ resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-2.3.0.tgz#5c45e8e869952626331d7aab326d01daf65d589d"
integrity sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==
domhandler@^5.0.2, domhandler@^5.0.3:
version "5.0.3"
- resolved "https://registry.npmjs.org/domhandler/-/domhandler-5.0.3.tgz"
+ resolved "https://registry.yarnpkg.com/domhandler/-/domhandler-5.0.3.tgz#cc385f7f751f1d1fc650c21374804254538c7d31"
integrity sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==
dependencies:
domelementtype "^2.3.0"
domutils@^3.0.1:
version "3.2.2"
- resolved "https://registry.npmjs.org/domutils/-/domutils-3.2.2.tgz"
+ resolved "https://registry.yarnpkg.com/domutils/-/domutils-3.2.2.tgz#edbfe2b668b0c1d97c24baf0f1062b132221bc78"
integrity sha512-6kZKyUajlDuqlHKVX1w7gyslj9MPIXzIFiz/rGu35uC1wMi+kMhQwGhl4lt9unC9Vb9INnY9Z3/ZA3+FhASLaw==
dependencies:
dom-serializer "^2.0.0"
@@ -2259,13 +2248,13 @@ domutils@^3.0.1:
domhandler "^5.0.3"
dotenv@^16.0.3:
- version "16.4.7"
- resolved "https://registry.npmjs.org/dotenv/-/dotenv-16.4.7.tgz"
- integrity sha512-47qPchRCykZC03FhkYAhrvwU4xDBFIj1QPqaarj6mdM/hgUzfPHcpkHJOn3mJAufFeeAxAzeGsr5X0M4k6fLZQ==
+ version "16.5.0"
+ resolved "https://registry.yarnpkg.com/dotenv/-/dotenv-16.5.0.tgz#092b49f25f808f020050051d1ff258e404c78692"
+ integrity sha512-m/C+AwOAr9/W1UOIZUo232ejMNnJAJtYQjUbHoNTBNTJSvqzzDh7vnrei3o3r3m9blf6ZoDkvcw0VmozNRFJxg==
dunder-proto@^1.0.0, dunder-proto@^1.0.1:
version "1.0.1"
- resolved "https://registry.npmjs.org/dunder-proto/-/dunder-proto-1.0.1.tgz"
+ resolved "https://registry.yarnpkg.com/dunder-proto/-/dunder-proto-1.0.1.tgz#d7ae667e1dc83482f8b70fd0f6eefc50da30f58a"
integrity sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==
dependencies:
call-bind-apply-helpers "^1.0.1"
@@ -2279,7 +2268,7 @@ eastasianwidth@^0.2.0:
ecc-jsbn@~0.1.1:
version "0.1.2"
- resolved "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz"
+ resolved "https://registry.yarnpkg.com/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz#3a83a904e54353287874c564b7549386849a98c9"
integrity sha512-eh9O+hwRHNbG4BLTjEl3nw044CkGm5X6LoaCf7LPp7UU8Qrt47JYNi6nPX8xjW97TKGKm1ouctg0QSpZe9qrnw==
dependencies:
jsbn "~0.1.0"
@@ -2287,10 +2276,10 @@ ecc-jsbn@~0.1.1:
ee-first@1.1.1:
version "1.1.1"
- resolved "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz"
+ resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d"
integrity sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==
-elliptic@6.6.1, elliptic@^6.5.2, elliptic@^6.5.7:
+elliptic@6.6.1, elliptic@^6.5.7:
version "6.6.1"
resolved "https://registry.yarnpkg.com/elliptic/-/elliptic-6.6.1.tgz#3b8ffb02670bf69e382c7f65bf524c97c5405c06"
integrity sha512-RaddvvMatK2LJHqFJ+YA4WysVN5Ita9E35botqIYspQ4TkRAlCicdzKOjlyv/1Za5RyTNn7di//eEV0uTAfe3g==
@@ -2315,27 +2304,27 @@ emoji-regex@^9.2.2:
enabled@2.0.x:
version "2.0.0"
- resolved "https://registry.npmjs.org/enabled/-/enabled-2.0.0.tgz"
+ resolved "https://registry.yarnpkg.com/enabled/-/enabled-2.0.0.tgz#f9dd92ec2d6f4bbc0d5d1e64e21d61cd4665e7c2"
integrity sha512-AKrN98kuwOzMIdAizXGI86UFBoo26CL21UM763y1h/GMSJ4/OHU9k2YlsmBpyScFo/wbLzWQJBMCW4+IO3/+OQ==
encodeurl@~1.0.2:
version "1.0.2"
- resolved "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz"
+ resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-1.0.2.tgz#ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59"
integrity sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==
encodeurl@~2.0.0:
version "2.0.0"
- resolved "https://registry.npmjs.org/encodeurl/-/encodeurl-2.0.0.tgz"
+ resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-2.0.0.tgz#7b8ea898077d7e409d3ac45474ea38eaf0857a58"
integrity sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==
encoding-japanese@2.2.0:
version "2.2.0"
- resolved "https://registry.npmjs.org/encoding-japanese/-/encoding-japanese-2.2.0.tgz"
+ resolved "https://registry.yarnpkg.com/encoding-japanese/-/encoding-japanese-2.2.0.tgz#0ef2d2351250547f432a2dd155453555c16deb59"
integrity sha512-EuJWwlHPZ1LbADuKTClvHtwbaFn4rOD+dRAbWysqEOXRc2Uui0hJInNJrsdH0c+OhJA4nrCBdSkW4DD5YxAo6A==
end-of-stream@^1.1.0:
version "1.4.4"
- resolved "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz"
+ resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.4.tgz#5ae64a5f45057baf3626ec14da0ca5e4b2431eb0"
integrity sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==
dependencies:
once "^1.4.0"
@@ -2350,7 +2339,7 @@ enquirer@^2.3.0:
entities@^4.2.0, entities@^4.4.0:
version "4.5.0"
- resolved "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz"
+ resolved "https://registry.yarnpkg.com/entities/-/entities-4.5.0.tgz#5d268ea5e7113ec74c4d033b79ea5a35a488fb48"
integrity sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==
env-paths@^2.2.0:
@@ -2360,7 +2349,7 @@ env-paths@^2.2.0:
es-abstract@^1.23.5, es-abstract@^1.23.6, es-abstract@^1.23.9:
version "1.23.9"
- resolved "https://registry.npmjs.org/es-abstract/-/es-abstract-1.23.9.tgz"
+ resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.23.9.tgz#5b45994b7de78dada5c1bebf1379646b32b9d606"
integrity sha512-py07lI0wjxAC/DcfK1S6G7iANonniZwTISvdPzk9hzeH0IZIshbuuFxLIU96OyF89Yb9hiqWn8M/bY83KY5vzA==
dependencies:
array-buffer-byte-length "^1.0.2"
@@ -2417,24 +2406,24 @@ es-abstract@^1.23.5, es-abstract@^1.23.6, es-abstract@^1.23.9:
es-define-property@^1.0.0, es-define-property@^1.0.1:
version "1.0.1"
- resolved "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.1.tgz"
+ resolved "https://registry.yarnpkg.com/es-define-property/-/es-define-property-1.0.1.tgz#983eb2f9a6724e9303f61addf011c72e09e0b0fa"
integrity sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==
es-errors@^1.3.0:
version "1.3.0"
- resolved "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz"
+ resolved "https://registry.yarnpkg.com/es-errors/-/es-errors-1.3.0.tgz#05f75a25dab98e4fb1dcd5e1472c0546d5057c8f"
integrity sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==
es-object-atoms@^1.0.0, es-object-atoms@^1.1.1:
version "1.1.1"
- resolved "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.1.1.tgz"
+ resolved "https://registry.yarnpkg.com/es-object-atoms/-/es-object-atoms-1.1.1.tgz#1c4f2c4837327597ce69d2ca190a7fdd172338c1"
integrity sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==
dependencies:
es-errors "^1.3.0"
es-set-tostringtag@^2.1.0:
version "2.1.0"
- resolved "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.1.0.tgz"
+ resolved "https://registry.yarnpkg.com/es-set-tostringtag/-/es-set-tostringtag-2.1.0.tgz#f31dbbe0c183b00a6d26eb6325c810c0fd18bd4d"
integrity sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA==
dependencies:
es-errors "^1.3.0"
@@ -2444,14 +2433,14 @@ es-set-tostringtag@^2.1.0:
es-shim-unscopables@^1.0.2:
version "1.1.0"
- resolved "https://registry.npmjs.org/es-shim-unscopables/-/es-shim-unscopables-1.1.0.tgz"
+ resolved "https://registry.yarnpkg.com/es-shim-unscopables/-/es-shim-unscopables-1.1.0.tgz#438df35520dac5d105f3943d927549ea3b00f4b5"
integrity sha512-d9T8ucsEhh8Bi1woXCf+TIKDIROLG5WCkxg8geBCbvk22kzwC5G2OnXVMO6FUsvQlgUUXQ2itephWDLqDzbeCw==
dependencies:
hasown "^2.0.2"
es-to-primitive@^1.3.0:
version "1.3.0"
- resolved "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.3.0.tgz"
+ resolved "https://registry.yarnpkg.com/es-to-primitive/-/es-to-primitive-1.3.0.tgz#96c89c82cc49fd8794a24835ba3e1ff87f214e18"
integrity sha512-w+5mJ3GuFL+NjVtJlvydShqE1eN3h3PbI7/5LAsYJP/2qtuMXjfL2LpHSRqo4b4eSF5K/DH1JXKUAHSB2UW50g==
dependencies:
is-callable "^1.2.7"
@@ -2465,7 +2454,7 @@ escalade@^3.1.1:
escape-html@~1.0.3:
version "1.0.3"
- resolved "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz"
+ resolved "https://registry.yarnpkg.com/escape-html/-/escape-html-1.0.3.tgz#0258eae4d3d0c0974de1c169188ef0051d1d1988"
integrity sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==
escape-string-regexp@^1.0.5:
@@ -2475,7 +2464,7 @@ escape-string-regexp@^1.0.5:
escape-string-regexp@^4.0.0:
version "4.0.0"
- resolved "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz"
+ resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz#14ba83a5d373e3d311e5afca29cf5bfad965bf34"
integrity sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==
escodegen@1.8.x:
@@ -2491,40 +2480,41 @@ escodegen@1.8.x:
source-map "~0.2.0"
eslint-config-prettier@^10.0.2:
- version "10.0.2"
- resolved "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-10.0.2.tgz"
- integrity sha512-1105/17ZIMjmCOJOPNfVdbXafLCLj3hPmkmB7dLgt7XsQ/zkxSuDerE/xgO3RxoHysR1N1whmquY0lSn2O0VLg==
+ version "10.1.2"
+ resolved "https://registry.yarnpkg.com/eslint-config-prettier/-/eslint-config-prettier-10.1.2.tgz#31a4b393c40c4180202c27e829af43323bf85276"
+ integrity sha512-Epgp/EofAUeEpIdZkW60MHKvPyru1ruQJxPL+WIycnaPApuseK0Zpkrh/FwL9oIpQvIhJwV7ptOy0DWUjTlCiA==
-eslint-scope@^8.2.0:
- version "8.2.0"
- resolved "https://registry.npmjs.org/eslint-scope/-/eslint-scope-8.2.0.tgz"
- integrity sha512-PHlWUfG6lvPc3yvP5A4PNyBL1W8fkDUccmI21JUu/+GKZBoH/W5u6usENXUrWFRsyoW5ACUjFGgAFQp5gUlb/A==
+eslint-scope@^8.3.0:
+ version "8.3.0"
+ resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-8.3.0.tgz#10cd3a918ffdd722f5f3f7b5b83db9b23c87340d"
+ integrity sha512-pUNxi75F8MJ/GdeKtVLSbYg4ZI34J6C0C7sbL4YOp2exGwen7ZsuBqKzUhXd0qMQ362yET3z+uPwKeg/0C2XCQ==
dependencies:
esrecurse "^4.3.0"
estraverse "^5.2.0"
eslint-visitor-keys@^3.4.3:
version "3.4.3"
- resolved "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz"
+ resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz#0cd72fe8550e3c2eae156a96a4dddcd1c8ac5800"
integrity sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==
eslint-visitor-keys@^4.2.0:
version "4.2.0"
- resolved "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.2.0.tgz"
+ resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-4.2.0.tgz#687bacb2af884fcdda8a6e7d65c606f46a14cd45"
integrity sha512-UyLnSehNt62FFhSwjZlHmeokpRK59rcz29j+F1/aDgbkbRTk7wIc9XzdoasMUbRNKDM0qQt/+BJ4BrpFeABemw==
eslint@^9.21.0:
- version "9.21.0"
- resolved "https://registry.npmjs.org/eslint/-/eslint-9.21.0.tgz"
- integrity sha512-KjeihdFqTPhOMXTt7StsDxriV4n66ueuF/jfPNC3j/lduHwr/ijDwJMsF+wyMJethgiKi5wniIE243vi07d3pg==
+ version "9.25.1"
+ resolved "https://registry.yarnpkg.com/eslint/-/eslint-9.25.1.tgz#8a7cf8dd0e6acb858f86029720adb1785ee57580"
+ integrity sha512-E6Mtz9oGQWDCpV12319d59n4tx9zOTXSTmc8BLVxBx+G/0RdM5MvEEJLU9c0+aleoePYYgVTOsRblx433qmhWQ==
dependencies:
"@eslint-community/eslint-utils" "^4.2.0"
"@eslint-community/regexpp" "^4.12.1"
- "@eslint/config-array" "^0.19.2"
- "@eslint/core" "^0.12.0"
- "@eslint/eslintrc" "^3.3.0"
- "@eslint/js" "9.21.0"
- "@eslint/plugin-kit" "^0.2.7"
+ "@eslint/config-array" "^0.20.0"
+ "@eslint/config-helpers" "^0.2.1"
+ "@eslint/core" "^0.13.0"
+ "@eslint/eslintrc" "^3.3.1"
+ "@eslint/js" "9.25.1"
+ "@eslint/plugin-kit" "^0.2.8"
"@humanfs/node" "^0.16.6"
"@humanwhocodes/module-importer" "^1.0.1"
"@humanwhocodes/retry" "^0.4.2"
@@ -2535,7 +2525,7 @@ eslint@^9.21.0:
cross-spawn "^7.0.6"
debug "^4.3.2"
escape-string-regexp "^4.0.0"
- eslint-scope "^8.2.0"
+ eslint-scope "^8.3.0"
eslint-visitor-keys "^4.2.0"
espree "^10.3.0"
esquery "^1.5.0"
@@ -2555,7 +2545,7 @@ eslint@^9.21.0:
espree@^10.0.1, espree@^10.3.0:
version "10.3.0"
- resolved "https://registry.npmjs.org/espree/-/espree-10.3.0.tgz"
+ resolved "https://registry.yarnpkg.com/espree/-/espree-10.3.0.tgz#29267cf5b0cb98735b65e64ba07e0ed49d1eed8a"
integrity sha512-0QYC8b24HWY8zjRnDTL6RiHfDbAWn63qb4LMj1Z4b076A4une81+z03Kg7l7mn/48PUTqoLptSXez8oknU8Clg==
dependencies:
acorn "^8.14.0"
@@ -2574,14 +2564,14 @@ esprima@^4.0.0:
esquery@^1.5.0:
version "1.6.0"
- resolved "https://registry.npmjs.org/esquery/-/esquery-1.6.0.tgz"
+ resolved "https://registry.yarnpkg.com/esquery/-/esquery-1.6.0.tgz#91419234f804d852a82dceec3e16cdc22cf9dae7"
integrity sha512-ca9pw9fomFcKPvFLXhBKUK90ZvGibiGOvRJNbjljY7s7uq/5YO4BOzcYtJqExdx99rF6aAcnRxHmcUHcz6sQsg==
dependencies:
estraverse "^5.1.0"
esrecurse@^4.3.0:
version "4.3.0"
- resolved "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz"
+ resolved "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.3.0.tgz#7ad7964d679abb28bee72cec63758b1c5d2c9921"
integrity sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==
dependencies:
estraverse "^5.2.0"
@@ -2593,17 +2583,17 @@ estraverse@^1.9.1:
estraverse@^5.1.0, estraverse@^5.2.0:
version "5.3.0"
- resolved "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz"
+ resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-5.3.0.tgz#2eea5290702f26ab8fe5370370ff86c965d21123"
integrity sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==
esutils@^2.0.2:
version "2.0.3"
- resolved "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz"
+ resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.3.tgz#74d2eb4de0b8da1293711910d50775b9b710ef64"
integrity sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==
etag@~1.8.1:
version "1.8.1"
- resolved "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz"
+ resolved "https://registry.yarnpkg.com/etag/-/etag-1.8.1.tgz#41ae2eeb65efa62268aebfea83ac7d79299b0887"
integrity sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==
ethereum-bloom-filters@^1.0.6:
@@ -2613,7 +2603,7 @@ ethereum-bloom-filters@^1.0.6:
dependencies:
"@noble/hashes" "^1.4.0"
-ethereum-cryptography@0.1.3, ethereum-cryptography@^0.1.3:
+ethereum-cryptography@^0.1.3:
version "0.1.3"
resolved "https://registry.yarnpkg.com/ethereum-cryptography/-/ethereum-cryptography-0.1.3.tgz#8d6143cfc3d74bf79bbd8edecdf29e4ae20dd191"
integrity sha512-w8/4x1SGGzc+tO97TASLja6SLd3fRIK2tLVcV2Gx4IB21hE19atll5Cq9o3d0ZmAYC/8aw0ipieTSiekAea4SQ==
@@ -2644,7 +2634,7 @@ ethereum-cryptography@^1.0.3:
"@scure/bip32" "1.1.5"
"@scure/bip39" "1.1.1"
-ethereum-cryptography@^2.0.0, ethereum-cryptography@^2.1.2, ethereum-cryptography@^2.1.3:
+ethereum-cryptography@^2.0.0, ethereum-cryptography@^2.1.2, ethereum-cryptography@^2.1.3, ethereum-cryptography@^2.2.1:
version "2.2.1"
resolved "https://registry.yarnpkg.com/ethereum-cryptography/-/ethereum-cryptography-2.2.1.tgz#58f2810f8e020aecb97de8c8c76147600b0b8ccf"
integrity sha512-r/W8lkHSiTLxUxW8Rf3u4HGB0xQweG2RyETjywylKZSzLWoWAijRz8WCuOtJ6wah+avllXBqZuk29HCCvhEIRg==
@@ -2654,27 +2644,6 @@ ethereum-cryptography@^2.0.0, ethereum-cryptography@^2.1.2, ethereum-cryptograph
"@scure/bip32" "1.4.0"
"@scure/bip39" "1.3.0"
-ethereumjs-abi@^0.6.8:
- version "0.6.8"
- resolved "https://registry.yarnpkg.com/ethereumjs-abi/-/ethereumjs-abi-0.6.8.tgz#71bc152db099f70e62f108b7cdfca1b362c6fcae"
- integrity sha512-Tx0r/iXI6r+lRsdvkFDlut0N08jWMnKRZ6Gkq+Nmw75lZe4e6o3EkSnkaBP5NF6+m5PTGAr9JP43N3LyeoglsA==
- dependencies:
- bn.js "^4.11.8"
- ethereumjs-util "^6.0.0"
-
-ethereumjs-util@^6.0.0, ethereumjs-util@^6.2.1:
- version "6.2.1"
- resolved "https://registry.yarnpkg.com/ethereumjs-util/-/ethereumjs-util-6.2.1.tgz#fcb4e4dd5ceacb9d2305426ab1a5cd93e3163b69"
- integrity sha512-W2Ktez4L01Vexijrm5EB6w7dg4n/TgpoYU4avuT5T3Vmnw/eCRtiBrJfQYS/DCSvDIOLn2k57GcHdeBcgVxAqw==
- dependencies:
- "@types/bn.js" "^4.11.3"
- bn.js "^4.11.0"
- create-hash "^1.1.2"
- elliptic "^6.5.2"
- ethereum-cryptography "^0.1.3"
- ethjs-util "0.1.6"
- rlp "^2.2.3"
-
ethereumjs-util@^7.1.4:
version "7.1.5"
resolved "https://registry.yarnpkg.com/ethereumjs-util/-/ethereumjs-util-7.1.5.tgz#9ecf04861e4fbbeed7465ece5f23317ad1129181"
@@ -2687,9 +2656,9 @@ ethereumjs-util@^7.1.4:
rlp "^2.2.4"
ethers@^6.13.5, ethers@^6.7.0:
- version "6.13.5"
- resolved "https://registry.npmjs.org/ethers/-/ethers-6.13.5.tgz"
- integrity sha512-+knKNieu5EKRThQJWwqaJ10a6HE9sSehGeqWN65//wE7j47ZpFhKAnHB/JJFibwwg61I/koxaPsXbXpD/skNOQ==
+ version "6.13.7"
+ resolved "https://registry.yarnpkg.com/ethers/-/ethers-6.13.7.tgz#7457fcb32413b441a3ee6e9f4cd63bf782de6226"
+ integrity sha512-qbaJ0uIrjh+huP1Lad2f2QtzW5dcqSVjIzVH6yWB4dKoMuj2WqYz5aMeeQTCNpAKgTJBM5J9vcc2cYJ23UAimQ==
dependencies:
"@adraffy/ens-normalize" "1.10.1"
"@noble/curves" "1.2.0"
@@ -2707,17 +2676,9 @@ ethjs-unit@0.1.6:
bn.js "4.11.6"
number-to-bn "1.7.0"
-ethjs-util@0.1.6, ethjs-util@^0.1.6:
- version "0.1.6"
- resolved "https://registry.yarnpkg.com/ethjs-util/-/ethjs-util-0.1.6.tgz#f308b62f185f9fe6237132fb2a9818866a5cd536"
- integrity sha512-CUnVOQq7gSpDHZVVrQW8ExxUETWrnrvXYvYz55wOU8Uj4VCgw56XC2B/fVqQN+f7gmrnRHSLVnFAwsCuNwji8w==
- dependencies:
- is-hex-prefixed "1.0.0"
- strip-hex-prefix "1.0.0"
-
event-target-shim@^5.0.0:
version "5.0.1"
- resolved "https://registry.npmjs.org/event-target-shim/-/event-target-shim-5.0.1.tgz"
+ resolved "https://registry.yarnpkg.com/event-target-shim/-/event-target-shim-5.0.1.tgz#5d4d3ebdf9583d63a5333ce2deb7480ab2b05789"
integrity sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==
eventemitter3@5.0.1:
@@ -2727,12 +2688,12 @@ eventemitter3@5.0.1:
eventemitter3@^3.0.0:
version "3.1.2"
- resolved "https://registry.npmjs.org/eventemitter3/-/eventemitter3-3.1.2.tgz"
+ resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-3.1.2.tgz#2d3d48f9c346698fce83a85d7d664e98535df6e7"
integrity sha512-tvtQIeLVHjDkJYnzf2dgVMxfuSGJeM/7UCG17TT4EumTfNtF+0nebF/4zWOIkCreAbtNqhGEboB6BWrwqNaw4Q==
eventemitter3@^4.0.4:
version "4.0.7"
- resolved "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz"
+ resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-4.0.7.tgz#2de9b68f6528d5644ef5c59526a1b4a07306169f"
integrity sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==
evp_bytestokey@^1.0.3:
@@ -2745,17 +2706,17 @@ evp_bytestokey@^1.0.3:
expr-eval@^2.0.2:
version "2.0.2"
- resolved "https://registry.npmjs.org/expr-eval/-/expr-eval-2.0.2.tgz"
+ resolved "https://registry.yarnpkg.com/expr-eval/-/expr-eval-2.0.2.tgz#fa6f044a7b0c93fde830954eb9c5b0f7fbc7e201"
integrity sha512-4EMSHGOPSwAfBiibw3ndnP0AvjDWLsMvGOvWEZ2F96IGk0bIVdjQisOHxReSkE13mHcfbuCiXw+G4y0zv6N8Eg==
express-rate-limit@^7.5.0:
version "7.5.0"
- resolved "https://registry.npmjs.org/express-rate-limit/-/express-rate-limit-7.5.0.tgz"
+ resolved "https://registry.yarnpkg.com/express-rate-limit/-/express-rate-limit-7.5.0.tgz#6a67990a724b4fbbc69119419feef50c51e8b28f"
integrity sha512-eB5zbQh5h+VenMPM3fh+nw1YExi5nMr6HUCR62ELSP11huvxm/Uir1H1QEyTkk5QX6A58pX6NmaTMceKZ0Eodg==
express-session@^1.17.3:
version "1.18.1"
- resolved "https://registry.npmjs.org/express-session/-/express-session-1.18.1.tgz"
+ resolved "https://registry.yarnpkg.com/express-session/-/express-session-1.18.1.tgz#88d0bbd41878882840f24ec6227493fcb167e8d5"
integrity sha512-a5mtTqEaZvBCL9A9aqkrtfz+3SMDhOVUnjafjo+s7A9Txkq+SVX2DLvSp1Zrv4uCXa3lMSK3viWnh9Gg07PBUA==
dependencies:
cookie "0.7.2"
@@ -2769,7 +2730,7 @@ express-session@^1.17.3:
express@^4.21.2:
version "4.21.2"
- resolved "https://registry.npmjs.org/express/-/express-4.21.2.tgz"
+ resolved "https://registry.yarnpkg.com/express/-/express-4.21.2.tgz#cf250e48362174ead6cea4a566abef0162c1ec32"
integrity sha512-28HqgMZAmih1Czt9ny7qr6ek2qddF4FclbMzwhCREB6OFfH+rXAnuNCwo1/wFvrtbgsQDb4kSbX9de9lFbrXnA==
dependencies:
accepts "~1.3.8"
@@ -2806,22 +2767,22 @@ express@^4.21.2:
extend@~3.0.2:
version "3.0.2"
- resolved "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz"
+ resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.2.tgz#f8b1136b4071fbd8eb140aff858b1019ec2915fa"
integrity sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==
extsprintf@1.3.0:
version "1.3.0"
- resolved "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz"
+ resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.3.0.tgz#96918440e3041a7a414f8c52e3c574eb3c3e1e05"
integrity sha512-11Ndz7Nv+mvAC1j0ktTa7fAb0vLyGGX+rMHNBYQviQDGU0Hw7lhctJANqbPhu9nV9/izT/IntTgZ7Im/9LJs9g==
extsprintf@^1.2.0:
version "1.4.1"
- resolved "https://registry.npmjs.org/extsprintf/-/extsprintf-1.4.1.tgz"
+ resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.4.1.tgz#8d172c064867f235c0c84a596806d279bf4bcc07"
integrity sha512-Wrk35e8ydCKDj/ArClo1VrPVmN8zph5V4AtHwIuHhvMXsKf73UT3BOD+azBIW+3wOJ4FhEH7zyaJCFvChjYvMA==
fast-deep-equal@^3.1.1, fast-deep-equal@^3.1.3:
version "3.1.3"
- resolved "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz"
+ resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525"
integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==
fast-glob@^3.0.3:
@@ -2837,12 +2798,12 @@ fast-glob@^3.0.3:
fast-json-stable-stringify@^2.0.0:
version "2.1.0"
- resolved "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz"
+ resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz#874bf69c6f404c2b5d99c481341399fd55892633"
integrity sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==
fast-levenshtein@^2.0.6, fast-levenshtein@~2.0.6:
version "2.0.6"
- resolved "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz"
+ resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917"
integrity sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==
fast-uri@^3.0.1:
@@ -2857,43 +2818,43 @@ fastq@^1.6.0:
dependencies:
reusify "^1.0.4"
-fdir@^6.4.3:
- version "6.4.3"
- resolved "https://registry.yarnpkg.com/fdir/-/fdir-6.4.3.tgz#011cdacf837eca9b811c89dbb902df714273db72"
- integrity sha512-PMXmW2y1hDDfTSRc9gaXIuCCRpuoz3Kaz8cUelp3smouvfT632ozg2vrT6lJsHKKOF59YLbOGfAWGUcKEfRMQw==
+fdir@^6.4.4:
+ version "6.4.4"
+ resolved "https://registry.yarnpkg.com/fdir/-/fdir-6.4.4.tgz#1cfcf86f875a883e19a8fab53622cfe992e8d2f9"
+ integrity sha512-1NZP+GK4GfuAv3PqKvxQRDMjdSRZjnkq7KfhlNrCNNlZ0ygQFpebfrnfnq/W7fpUnAv9aGWmY1zKx7FYL3gwhg==
fecha@^4.2.0:
version "4.2.3"
- resolved "https://registry.npmjs.org/fecha/-/fecha-4.2.3.tgz"
+ resolved "https://registry.yarnpkg.com/fecha/-/fecha-4.2.3.tgz#4d9ccdbc61e8629b259fdca67e65891448d569fd"
integrity sha512-OP2IUU6HeYKJi3i0z4A19kHMQoLVs4Hc+DPqqxI2h/DPZHTm/vjsfC6P0b4jCMy14XizLBqvndQ+UilD7707Jw==
file-entry-cache@^8.0.0:
version "8.0.0"
- resolved "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-8.0.0.tgz"
+ resolved "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-8.0.0.tgz#7787bddcf1131bffb92636c69457bbc0edd6d81f"
integrity sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ==
dependencies:
flat-cache "^4.0.0"
file-type@^3.9.0:
version "3.9.0"
- resolved "https://registry.npmjs.org/file-type/-/file-type-3.9.0.tgz"
+ resolved "https://registry.yarnpkg.com/file-type/-/file-type-3.9.0.tgz#257a078384d1db8087bc449d107d52a52672b9e9"
integrity sha512-RLoqTXE8/vPmMuTI88DAzhMYC99I8BWv7zYP4A1puo5HIjEJ5EX48ighy4ZyKMG9EDXxBgW6e++cn7d1xuFghA==
file-uri-to-path@1.0.0:
version "1.0.0"
- resolved "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz"
+ resolved "https://registry.yarnpkg.com/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz#553a7b8446ff6f684359c445f1e37a05dacc33dd"
integrity sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==
fill-range@^7.1.1:
version "7.1.1"
- resolved "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz"
+ resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.1.1.tgz#44265d3cac07e3ea7dc247516380643754a05292"
integrity sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==
dependencies:
to-regex-range "^5.0.1"
finalhandler@1.3.1:
version "1.3.1"
- resolved "https://registry.npmjs.org/finalhandler/-/finalhandler-1.3.1.tgz"
+ resolved "https://registry.yarnpkg.com/finalhandler/-/finalhandler-1.3.1.tgz#0c575f1d1d324ddd1da35ad7ece3df7d19088019"
integrity sha512-6BN9trH7bp3qvnrRyzsBz+g3lZxTNZTbVO2EV1CS0WIcDbawYVdYvGflME/9QP0h0pYlCDBCTjYa9nZzMDpyxQ==
dependencies:
debug "2.6.9"
@@ -2913,7 +2874,7 @@ find-replace@^3.0.0:
find-up@^5.0.0:
version "5.0.0"
- resolved "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz"
+ resolved "https://registry.yarnpkg.com/find-up/-/find-up-5.0.0.tgz#4c92819ecb7083561e4f4a240a86be5198f536fc"
integrity sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==
dependencies:
locate-path "^6.0.0"
@@ -2921,7 +2882,7 @@ find-up@^5.0.0:
flat-cache@^4.0.0:
version "4.0.1"
- resolved "https://registry.npmjs.org/flat-cache/-/flat-cache-4.0.1.tgz"
+ resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-4.0.1.tgz#0ece39fcb14ee012f4b0410bd33dd9c1f011127c"
integrity sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw==
dependencies:
flatted "^3.2.9"
@@ -2929,27 +2890,27 @@ flat-cache@^4.0.0:
flat@^5.0.2:
version "5.0.2"
- resolved "https://registry.npmjs.org/flat/-/flat-5.0.2.tgz"
+ resolved "https://registry.yarnpkg.com/flat/-/flat-5.0.2.tgz#8ca6fe332069ffa9d324c327198c598259ceb241"
integrity sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==
flatted@^3.2.9:
version "3.3.3"
- resolved "https://registry.npmjs.org/flatted/-/flatted-3.3.3.tgz"
+ resolved "https://registry.yarnpkg.com/flatted/-/flatted-3.3.3.tgz#67c8fad95454a7c7abebf74bb78ee74a44023358"
integrity sha512-GX+ysw4PBCz0PzosHDepZGANEuFCMLrnRTiEy9McGjmkCQYwRq4A/X786G/fjM/+OjsWSU1ZrY5qyARZmO/uwg==
fn.name@1.x.x:
version "1.1.0"
- resolved "https://registry.npmjs.org/fn.name/-/fn.name-1.1.0.tgz"
+ resolved "https://registry.yarnpkg.com/fn.name/-/fn.name-1.1.0.tgz#26cad8017967aea8731bc42961d04a3d5988accc"
integrity sha512-GRnmB5gPyJpAhTQdSZTSp9uaPSvl09KoYcMQtsB9rQoOmzs9dH6ffeccH+Z+cv6P68Hu5bC6JjRh4Ah/mHSNRw==
follow-redirects@^1.12.1, follow-redirects@^1.15.6:
version "1.15.9"
- resolved "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.9.tgz"
+ resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.15.9.tgz#a604fa10e443bf98ca94228d9eebcc2e8a2c8ee1"
integrity sha512-gew4GsXizNgdoRyqmyfMHyAmXsZDk6mHkSxZFCzW9gwlbtOW44CDtYavM+y+72qD/Vq2l550kMF52DT8fOLJqQ==
-for-each@^0.3.3:
+for-each@^0.3.3, for-each@^0.3.5:
version "0.3.5"
- resolved "https://registry.npmjs.org/for-each/-/for-each-0.3.5.tgz"
+ resolved "https://registry.yarnpkg.com/for-each/-/for-each-0.3.5.tgz#d650688027826920feeb0af747ee7b9421a41d47"
integrity sha512-dKx12eRCVIzqCxFGplyFKJMPvLEWgmNtUrpTiJIR5u97zEhRG8ySrtboPHZXx7daLxQVrl643cTzbab2tkQjxg==
dependencies:
is-callable "^1.2.7"
@@ -2964,17 +2925,17 @@ foreground-child@^3.1.0:
forever-agent@~0.6.1:
version "0.6.1"
- resolved "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz"
+ resolved "https://registry.yarnpkg.com/forever-agent/-/forever-agent-0.6.1.tgz#fbc71f0c41adeb37f96c577ad1ed42d8fdacca91"
integrity sha512-j0KLYPhm6zeac4lz3oJ3o65qvgQCcPubiyotZrXqEaG4hNagNYO8qdlUrX5vwqv9ohqeT/Z3j6+yW067yWWdUw==
form-data-encoder@1.7.2:
version "1.7.2"
- resolved "https://registry.npmjs.org/form-data-encoder/-/form-data-encoder-1.7.2.tgz"
+ resolved "https://registry.yarnpkg.com/form-data-encoder/-/form-data-encoder-1.7.2.tgz#1f1ae3dccf58ed4690b86d87e4f57c654fbab040"
integrity sha512-qfqtYan3rxrnCk1VYaA4H+Ms9xdpPqvLZa6xmMgFvhO32x7/3J/ExcTd6qpxM0vH2GdMI+poehyBZvqfMTto8A==
form-data@^4.0.0, form-data@~4.0.0:
version "4.0.2"
- resolved "https://registry.npmjs.org/form-data/-/form-data-4.0.2.tgz"
+ resolved "https://registry.yarnpkg.com/form-data/-/form-data-4.0.2.tgz#35cabbdd30c3ce73deb2c42d3c8d3ed9ca51794c"
integrity sha512-hGfm/slu0ZabnNt4oaRZ6uREyfCj6P4fT/n6A1rGV+Z0VdGXjfOhVUpkn6qVQONHGIFwmveGXyDs75+nr6FM8w==
dependencies:
asynckit "^0.4.0"
@@ -2984,7 +2945,7 @@ form-data@^4.0.0, form-data@~4.0.0:
formdata-node@^4.3.2:
version "4.4.1"
- resolved "https://registry.npmjs.org/formdata-node/-/formdata-node-4.4.1.tgz"
+ resolved "https://registry.yarnpkg.com/formdata-node/-/formdata-node-4.4.1.tgz#23f6a5cb9cb55315912cbec4ff7b0f59bbd191e2"
integrity sha512-0iirZp3uVDjVGt9p49aTaqjk84TrglENEDuqfdlZQ1roC9CWlPk6Avf8EEnZNcAqPonwkG35x4n3ww/1THYAeQ==
dependencies:
node-domexception "1.0.0"
@@ -2992,7 +2953,7 @@ formdata-node@^4.3.2:
forwarded@0.2.0:
version "0.2.0"
- resolved "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz"
+ resolved "https://registry.yarnpkg.com/forwarded/-/forwarded-0.2.0.tgz#2269936428aad4c15c7ebe9779a84bf0b2a81811"
integrity sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==
fp-ts@1.19.3:
@@ -3007,7 +2968,7 @@ fp-ts@^1.0.0:
fresh@0.5.2:
version "0.5.2"
- resolved "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz"
+ resolved "https://registry.yarnpkg.com/fresh/-/fresh-0.5.2.tgz#3d8cadd90d976569fa835ab1f8e4b23a105605a7"
integrity sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==
fs-extra@^10.0.0:
@@ -3030,7 +2991,7 @@ fs-extra@^7.0.0, fs-extra@^7.0.1:
fs-extra@^8.0.1, fs-extra@^8.1.0:
version "8.1.0"
- resolved "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz"
+ resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-8.1.0.tgz#49d43c45a88cd9677668cb7be1b46efdb8d2e1c0"
integrity sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==
dependencies:
graceful-fs "^4.2.0"
@@ -3059,12 +3020,12 @@ fsevents@~2.3.2:
function-bind@^1.1.2:
version "1.1.2"
- resolved "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz"
+ resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.2.tgz#2c02d864d97f3ea6c8830c464cbd11ab6eab7a1c"
integrity sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==
function.prototype.name@^1.1.6, function.prototype.name@^1.1.8:
version "1.1.8"
- resolved "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.8.tgz"
+ resolved "https://registry.yarnpkg.com/function.prototype.name/-/function.prototype.name-1.1.8.tgz#e68e1df7b259a5c949eeef95cdbde53edffabb78"
integrity sha512-e5iwyodOHhbMr/yNrc7fDYG4qlbIvI5gajyzPnb5TCwyhjApznQh1BMFou9b30SevY43gCJKXycoCBjMbsuW0Q==
dependencies:
call-bind "^1.0.8"
@@ -3076,7 +3037,7 @@ function.prototype.name@^1.1.6, function.prototype.name@^1.1.8:
functions-have-names@^1.2.3:
version "1.2.3"
- resolved "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz"
+ resolved "https://registry.yarnpkg.com/functions-have-names/-/functions-have-names-1.2.3.tgz#0404fe4ee2ba2f607f0e0ec3c80bae994133b834"
integrity sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==
get-caller-file@^2.0.5:
@@ -3089,9 +3050,9 @@ get-func-name@^2.0.1, get-func-name@^2.0.2:
resolved "https://registry.yarnpkg.com/get-func-name/-/get-func-name-2.0.2.tgz#0d7cf20cd13fda808669ffa88f4ffc7a3943fc41"
integrity sha512-8vXOvuE167CtIc3OyItco7N/dpRtBbYOsPsXCz7X/PMnlGjYjSGuZJgM1Y7mmew7BKf9BqvLX2tnOVy1BBUsxQ==
-get-intrinsic@^1.2.4, get-intrinsic@^1.2.5, get-intrinsic@^1.2.6, get-intrinsic@^1.2.7:
+get-intrinsic@^1.2.4, get-intrinsic@^1.2.5, get-intrinsic@^1.2.6, get-intrinsic@^1.2.7, get-intrinsic@^1.3.0:
version "1.3.0"
- resolved "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.3.0.tgz"
+ resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.3.0.tgz#743f0e3b6964a93a5491ed1bffaae054d7f98d01"
integrity sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==
dependencies:
call-bind-apply-helpers "^1.0.2"
@@ -3107,7 +3068,7 @@ get-intrinsic@^1.2.4, get-intrinsic@^1.2.5, get-intrinsic@^1.2.6, get-intrinsic@
get-proto@^1.0.0, get-proto@^1.0.1:
version "1.0.1"
- resolved "https://registry.npmjs.org/get-proto/-/get-proto-1.0.1.tgz"
+ resolved "https://registry.yarnpkg.com/get-proto/-/get-proto-1.0.1.tgz#150b3f2743869ef3e851ec0c49d15b1d14d00ee1"
integrity sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==
dependencies:
dunder-proto "^1.0.1"
@@ -3115,7 +3076,7 @@ get-proto@^1.0.0, get-proto@^1.0.1:
get-symbol-description@^1.1.0:
version "1.1.0"
- resolved "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.1.0.tgz"
+ resolved "https://registry.yarnpkg.com/get-symbol-description/-/get-symbol-description-1.1.0.tgz#7bdd54e0befe8ffc9f3b4e203220d9f1e881b6ee"
integrity sha512-w9UMqWwJxHNOvoNzSJ2oPF5wvYcvP7jUvYzhp67yEhTi17ZDBBC1z9pTdGuzjD+EFIqLSYRweZjqfiPzQ06Ebg==
dependencies:
call-bound "^1.0.3"
@@ -3124,7 +3085,7 @@ get-symbol-description@^1.1.0:
getpass@^0.1.1:
version "0.1.7"
- resolved "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz"
+ resolved "https://registry.yarnpkg.com/getpass/-/getpass-0.1.7.tgz#5eff8e3e684d569ae4cb2b1282604e8ba62149fa"
integrity sha512-0fzj9JxOLfJ+XGLhR8ze3unN0KZCgZwiSSDz168VERjK8Wl8kVSdcu2kspd4s4wtAa1y/qrVRiAA0WclVsu0ng==
dependencies:
assert-plus "^1.0.0"
@@ -3139,14 +3100,14 @@ ghost-testrpc@^0.0.2:
glob-parent@^5.1.2, glob-parent@~5.1.2:
version "5.1.2"
- resolved "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz"
+ resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.2.tgz#869832c58034fe68a4093c17dc15e8340d8401c4"
integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==
dependencies:
is-glob "^4.0.1"
glob-parent@^6.0.2:
version "6.0.2"
- resolved "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz"
+ resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-6.0.2.tgz#6d237d99083950c79290f24c7642a3de9a28f9e3"
integrity sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==
dependencies:
is-glob "^4.0.3"
@@ -3227,17 +3188,17 @@ global-prefix@^3.0.0:
globals@^14.0.0:
version "14.0.0"
- resolved "https://registry.npmjs.org/globals/-/globals-14.0.0.tgz"
+ resolved "https://registry.yarnpkg.com/globals/-/globals-14.0.0.tgz#898d7413c29babcf6bafe56fcadded858ada724e"
integrity sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ==
globals@^16.0.0:
version "16.0.0"
- resolved "https://registry.npmjs.org/globals/-/globals-16.0.0.tgz"
+ resolved "https://registry.yarnpkg.com/globals/-/globals-16.0.0.tgz#3d7684652c5c4fbd086ec82f9448214da49382d8"
integrity sha512-iInW14XItCXET01CQFqudPOWP2jYMl7T+QRQT+UNcR/iQncN/F0UNpgd76iFkBPgNQb4+X3LV9tLJYzwh+Gl3A==
globalthis@^1.0.4:
version "1.0.4"
- resolved "https://registry.npmjs.org/globalthis/-/globalthis-1.0.4.tgz"
+ resolved "https://registry.yarnpkg.com/globalthis/-/globalthis-1.0.4.tgz#7430ed3a975d97bfb59bcce41f5cabbafa651236"
integrity sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ==
dependencies:
define-properties "^1.2.1"
@@ -3259,12 +3220,12 @@ globby@^10.0.1:
gopd@^1.0.1, gopd@^1.2.0:
version "1.2.0"
- resolved "https://registry.npmjs.org/gopd/-/gopd-1.2.0.tgz"
+ resolved "https://registry.yarnpkg.com/gopd/-/gopd-1.2.0.tgz#89f56b8217bdbc8802bd299df6d7f1081d7e51a1"
integrity sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==
graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.2.0:
version "4.2.11"
- resolved "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz"
+ resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.11.tgz#4183e4e8bf08bb6e05bbb2f7d2e0c8f712ca40e3"
integrity sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==
handlebars@^4.0.1:
@@ -3280,9 +3241,9 @@ handlebars@^4.0.1:
uglify-js "^3.1.4"
hardhat-gas-reporter@^2.2.2:
- version "2.2.2"
- resolved "https://registry.yarnpkg.com/hardhat-gas-reporter/-/hardhat-gas-reporter-2.2.2.tgz#b1530b1938b994d67dffda207314504b7946af09"
- integrity sha512-xlg3d00wrgUvP2S5tw3Zf6nO7OyS5crK3P6/ZP69i24pz4grM+6oFHGW/eJPSGqiDWBYX+gKp9XoqP4rwRXrdQ==
+ version "2.2.3"
+ resolved "https://registry.yarnpkg.com/hardhat-gas-reporter/-/hardhat-gas-reporter-2.2.3.tgz#d9a97b146ce0d071c909892f1ee85c6529ba3a81"
+ integrity sha512-/52fDR0WOgPTjImmx4j179SAgxPv/499TD0o0qnMhaRr24i2cqlcmCW92FJi0QAKu7HcnxdBGZWQP/5aPjQqUw==
dependencies:
"@ethersproject/abi" "^5.7.0"
"@ethersproject/bytes" "^5.7.0"
@@ -3298,19 +3259,16 @@ hardhat-gas-reporter@^2.2.2:
lodash "^4.17.21"
markdown-table "2.0.0"
sha1 "^1.1.1"
- viem "2.7.14"
+ viem "^2.27.0"
hardhat@^2.22.19:
- version "2.22.19"
- resolved "https://registry.yarnpkg.com/hardhat/-/hardhat-2.22.19.tgz#92eb6f59e75b0dded841fecf16260a5e3f6eb4eb"
- integrity sha512-jptJR5o6MCgNbhd7eKa3mrteR+Ggq1exmE5RUL5ydQEVKcZm0sss5laa86yZ0ixIavIvF4zzS7TdGDuyopj0sQ==
+ version "2.23.0"
+ resolved "https://registry.yarnpkg.com/hardhat/-/hardhat-2.23.0.tgz#c3b404410ea52c41f3200cc011f5b4cebd7d80bd"
+ integrity sha512-xnORx1LgX46TxylOFme96JmSAIjXuHUVpOlUnaCt8MKMGsgy0NGsfPo5rJI/ncCBPLFLURGfZUQ2Uc6ZYN4kYg==
dependencies:
+ "@ethereumjs/util" "^9.1.0"
"@ethersproject/abi" "^5.1.2"
- "@metamask/eth-sig-util" "^4.0.0"
- "@nomicfoundation/edr" "^0.8.0"
- "@nomicfoundation/ethereumjs-common" "4.0.4"
- "@nomicfoundation/ethereumjs-tx" "5.0.4"
- "@nomicfoundation/ethereumjs-util" "9.0.4"
+ "@nomicfoundation/edr" "^0.10.0"
"@nomicfoundation/solidity-analyzer" "^0.1.0"
"@sentry/node" "^5.18.1"
"@types/bn.js" "^5.1.0"
@@ -3325,7 +3283,6 @@ hardhat@^2.22.19:
enquirer "^2.3.0"
env-paths "^2.2.0"
ethereum-cryptography "^1.0.3"
- ethereumjs-abi "^0.6.8"
find-up "^5.0.0"
fp-ts "1.19.3"
fs-extra "^7.0.1"
@@ -3334,6 +3291,7 @@ hardhat@^2.22.19:
json-stream-stringify "^3.1.4"
keccak "^3.0.2"
lodash "^4.17.11"
+ micro-eth-signer "^0.14.0"
mnemonist "^0.38.0"
mocha "^10.0.0"
p-map "^4.0.0"
@@ -3352,7 +3310,7 @@ hardhat@^2.22.19:
has-bigints@^1.0.2:
version "1.1.0"
- resolved "https://registry.npmjs.org/has-bigints/-/has-bigints-1.1.0.tgz"
+ resolved "https://registry.yarnpkg.com/has-bigints/-/has-bigints-1.1.0.tgz#28607e965ac967e03cd2a2c70a2636a1edad49fe"
integrity sha512-R3pbpkcIqv2Pm3dUwgjclDRVmWpTJW2DcMzcIhEXEx1oh/CEMObMm3KLmRJOdvhM7o4uQBnwr8pzRK2sJWIqfg==
has-flag@^1.0.0:
@@ -3362,36 +3320,36 @@ has-flag@^1.0.0:
has-flag@^3.0.0:
version "3.0.0"
- resolved "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz"
+ resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd"
integrity sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==
has-flag@^4.0.0:
version "4.0.0"
- resolved "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz"
+ resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b"
integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==
has-property-descriptors@^1.0.0, has-property-descriptors@^1.0.2:
version "1.0.2"
- resolved "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz"
+ resolved "https://registry.yarnpkg.com/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz#963ed7d071dc7bf5f084c5bfbe0d1b6222586854"
integrity sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==
dependencies:
es-define-property "^1.0.0"
has-proto@^1.2.0:
version "1.2.0"
- resolved "https://registry.npmjs.org/has-proto/-/has-proto-1.2.0.tgz"
+ resolved "https://registry.yarnpkg.com/has-proto/-/has-proto-1.2.0.tgz#5de5a6eabd95fdffd9818b43055e8065e39fe9d5"
integrity sha512-KIL7eQPfHQRC8+XluaIw7BHUwwqL19bQn4hzNgdr+1wXoU0KKj6rufu47lhY7KbJR2C6T6+PfyN0Ea7wkSS+qQ==
dependencies:
dunder-proto "^1.0.0"
has-symbols@^1.0.3, has-symbols@^1.1.0:
version "1.1.0"
- resolved "https://registry.npmjs.org/has-symbols/-/has-symbols-1.1.0.tgz"
+ resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.1.0.tgz#fc9c6a783a084951d0b971fe1018de813707a338"
integrity sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==
has-tostringtag@^1.0.2:
version "1.0.2"
- resolved "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.2.tgz"
+ resolved "https://registry.yarnpkg.com/has-tostringtag/-/has-tostringtag-1.0.2.tgz#2cdc42d40bef2e5b4eeab7c01a73c54ce7ab5abc"
integrity sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==
dependencies:
has-symbols "^1.0.3"
@@ -3415,14 +3373,14 @@ hash.js@1.1.7, hash.js@^1.0.0, hash.js@^1.0.3, hash.js@^1.1.7:
hasown@^2.0.2:
version "2.0.2"
- resolved "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz"
+ resolved "https://registry.yarnpkg.com/hasown/-/hasown-2.0.2.tgz#003eaf91be7adc372e84ec59dc37252cedb80003"
integrity sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==
dependencies:
function-bind "^1.1.2"
he@1.2.0, he@^1.2.0:
version "1.2.0"
- resolved "https://registry.npmjs.org/he/-/he-1.2.0.tgz"
+ resolved "https://registry.yarnpkg.com/he/-/he-1.2.0.tgz#84ae65fa7eafb165fddb61566ae14baf05664f0f"
integrity sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==
"heap@>= 0.2.0":
@@ -3431,9 +3389,9 @@ he@1.2.0, he@^1.2.0:
integrity sha512-2bsegYkkHO+h/9MGbn6KWcE45cHZgPANo5LXF7EvWdT0yT2EguSVO1nDgU5c8+ZOPwp2vMNa7YFsJhVcDR9Sdg==
helmet@^8.0.0:
- version "8.0.0"
- resolved "https://registry.npmjs.org/helmet/-/helmet-8.0.0.tgz"
- integrity sha512-VyusHLEIIO5mjQPUI1wpOAEu+wl6Q0998jzTxqUYGE45xCIcAxy3MsbEK/yyJUJ3ADeMoB6MornPH6GMWAf+Pw==
+ version "8.1.0"
+ resolved "https://registry.yarnpkg.com/helmet/-/helmet-8.1.0.tgz#f96d23fedc89e9476ecb5198181009c804b8b38c"
+ integrity sha512-jOiHyAZsmnr8LqoPGmCjYAaiuWwjAPLgY8ZX2XrmHawt99/u1y6RgrZMTeoPfpUbV96HOalYgz1qzkRbw54Pmg==
hmac-drbg@^1.0.1:
version "1.0.1"
@@ -3446,7 +3404,7 @@ hmac-drbg@^1.0.1:
hnswlib-node@^3.0.0:
version "3.0.0"
- resolved "https://registry.npmjs.org/hnswlib-node/-/hnswlib-node-3.0.0.tgz"
+ resolved "https://registry.yarnpkg.com/hnswlib-node/-/hnswlib-node-3.0.0.tgz#0ec5cedf082691a5e2bec7a8faa24f742077cc50"
integrity sha512-fypn21qvVORassppC8/qNfZ5KAOspZpm/IbUkAtlqvbtDNnF5VVk5RWF7O5V6qwr7z+T3s1ePej6wQt5wRQ4Cg==
dependencies:
bindings "^1.5.0"
@@ -3454,7 +3412,7 @@ hnswlib-node@^3.0.0:
html-to-text@9.0.5:
version "9.0.5"
- resolved "https://registry.npmjs.org/html-to-text/-/html-to-text-9.0.5.tgz"
+ resolved "https://registry.yarnpkg.com/html-to-text/-/html-to-text-9.0.5.tgz#6149a0f618ae7a0db8085dca9bbf96d32bb8368d"
integrity sha512-qY60FjREgVZL03vJU6IfMV4GDjGBIoOyvuFdpBDIX9yTlDw0TjxVBQp+P8NvpdIXNJvfWBTNul7fsAQJq2FNpg==
dependencies:
"@selderee/plugin-htmlparser2" "^0.11.0"
@@ -3465,7 +3423,7 @@ html-to-text@9.0.5:
htmlparser2@^8.0.2:
version "8.0.2"
- resolved "https://registry.npmjs.org/htmlparser2/-/htmlparser2-8.0.2.tgz"
+ resolved "https://registry.yarnpkg.com/htmlparser2/-/htmlparser2-8.0.2.tgz#f002151705b383e62433b5cf466f5b716edaec21"
integrity sha512-GYdjWKDkbRLkZ5geuHs5NY1puJ+PXwP7+fHPRz06Eirsb9ugf6d8kkXav6ADhcODhFFPMIXyxkxSuMf3D6NCFA==
dependencies:
domelementtype "^2.3.0"
@@ -3475,7 +3433,7 @@ htmlparser2@^8.0.2:
http-errors@2.0.0:
version "2.0.0"
- resolved "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz"
+ resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-2.0.0.tgz#b7774a1486ef73cf7667ac9ae0858c012c57b9d3"
integrity sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==
dependencies:
depd "2.0.0"
@@ -3486,7 +3444,7 @@ http-errors@2.0.0:
http-errors@~1.7.3:
version "1.7.3"
- resolved "https://registry.npmjs.org/http-errors/-/http-errors-1.7.3.tgz"
+ resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.7.3.tgz#6c619e4f9c60308c38519498c14fbb10aacebb06"
integrity sha512-ZTTX0MWrsQ2ZAhA1cejAwDLycFsd7I7nVtnkT3Ol0aqodaKW+0CTZDQ1uBv5whptCnc8e8HeRRJxRs0kmm/Qfw==
dependencies:
depd "~1.1.2"
@@ -3497,7 +3455,7 @@ http-errors@~1.7.3:
http-signature@~1.4.0:
version "1.4.0"
- resolved "https://registry.npmjs.org/http-signature/-/http-signature-1.4.0.tgz"
+ resolved "https://registry.yarnpkg.com/http-signature/-/http-signature-1.4.0.tgz#dee5a9ba2bf49416abc544abd6d967f6a94c8c3f"
integrity sha512-G5akfn7eKbpDN+8nPS/cb57YeA1jLTVxjpCj7tmm3QKPdyDy7T+qSC40e9ptydSWvkwjSXw1VbkpyEm39ukeAg==
dependencies:
assert-plus "^1.0.0"
@@ -3514,38 +3472,38 @@ https-proxy-agent@^5.0.0:
humanize-ms@^1.2.1:
version "1.2.1"
- resolved "https://registry.npmjs.org/humanize-ms/-/humanize-ms-1.2.1.tgz"
+ resolved "https://registry.yarnpkg.com/humanize-ms/-/humanize-ms-1.2.1.tgz#c46e3159a293f6b896da29316d8b6fe8bb79bbed"
integrity sha512-Fl70vYtsAFb/C06PTS9dZBo7ihau+Tu/DNCk/OyHhea07S+aeMWpFFkUaXRa8fI+ScZbEI8dfSxwY7gxZ9SAVQ==
dependencies:
ms "^2.0.0"
iconv-lite@0.4.24:
version "0.4.24"
- resolved "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz"
+ resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b"
integrity sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==
dependencies:
safer-buffer ">= 2.1.2 < 3"
iconv-lite@0.6.3:
version "0.6.3"
- resolved "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz"
+ resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.6.3.tgz#a52f80bf38da1952eb5c681790719871a1a72501"
integrity sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==
dependencies:
safer-buffer ">= 2.1.2 < 3.0.0"
ignore-by-default@^1.0.1:
version "1.0.1"
- resolved "https://registry.npmjs.org/ignore-by-default/-/ignore-by-default-1.0.1.tgz"
+ resolved "https://registry.yarnpkg.com/ignore-by-default/-/ignore-by-default-1.0.1.tgz#48ca6d72f6c6a3af00a9ad4ae6876be3889e2b09"
integrity sha512-Ius2VYcGNk7T90CppJqcIkS5ooHUZyIQK+ClZfMfMNFEF9VSE73Fq+906u/CWu92x4gzZMWOwfFYckPObzdEbA==
ignore@^5.1.1, ignore@^5.2.0:
version "5.3.2"
- resolved "https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz"
+ resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.3.2.tgz#3cd40e729f3643fd87cb04e50bf0eb722bc596f5"
integrity sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==
imap@^0.8.19:
version "0.8.19"
- resolved "https://registry.npmjs.org/imap/-/imap-0.8.19.tgz"
+ resolved "https://registry.yarnpkg.com/imap/-/imap-0.8.19.tgz#3678873934ab09cea6ba48741f284da2af59d8d5"
integrity sha512-z5DxEA1uRnZG73UcPA4ES5NSCGnPuuouUx43OPX7KZx1yzq3N8/vx2mtXEShT5inxB3pRgnfG1hijfu7XN2YMw==
dependencies:
readable-stream "1.1.x"
@@ -3563,7 +3521,7 @@ immutable@^4.0.0-rc.12:
import-fresh@^3.2.1:
version "3.3.1"
- resolved "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.1.tgz"
+ resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.3.1.tgz#9cecb56503c0ada1f2741dbbd6546e4b13b57ccf"
integrity sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ==
dependencies:
parent-module "^1.0.0"
@@ -3571,7 +3529,7 @@ import-fresh@^3.2.1:
imurmurhash@^0.1.4:
version "0.1.4"
- resolved "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz"
+ resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea"
integrity sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==
indent-string@^4.0.0:
@@ -3589,7 +3547,7 @@ inflight@^1.0.4:
inherits@2, inherits@2.0.4, inherits@^2.0.1, inherits@^2.0.3, inherits@^2.0.4, inherits@~2.0.1, inherits@~2.0.3:
version "2.0.4"
- resolved "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz"
+ resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c"
integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==
ini@^1.3.5:
@@ -3599,7 +3557,7 @@ ini@^1.3.5:
internal-slot@^1.1.0:
version "1.1.0"
- resolved "https://registry.npmjs.org/internal-slot/-/internal-slot-1.1.0.tgz"
+ resolved "https://registry.yarnpkg.com/internal-slot/-/internal-slot-1.1.0.tgz#1eac91762947d2f7056bc838d93e13b2e9604961"
integrity sha512-4gd7VpWNQNB4UKKCFFVcp1AVv+FMOgs9NKzjHKusc8jTMhd5eL1NqQqOpE0KzMds804/yHlglp3uxgluOqAPLw==
dependencies:
es-errors "^1.3.0"
@@ -3620,12 +3578,12 @@ io-ts@1.10.4:
ipaddr.js@1.9.1:
version "1.9.1"
- resolved "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz"
+ resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-1.9.1.tgz#bff38543eeb8984825079ff3a2a8e6cbd46781b3"
integrity sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==
is-array-buffer@^3.0.4, is-array-buffer@^3.0.5:
version "3.0.5"
- resolved "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.5.tgz"
+ resolved "https://registry.yarnpkg.com/is-array-buffer/-/is-array-buffer-3.0.5.tgz#65742e1e687bd2cc666253068fd8707fe4d44280"
integrity sha512-DDfANUiiG2wC1qawP66qlTugJeL5HyzMpfr8lLK+jMQirGzNod0B12cFB/9q838Ru27sBwfw78/rdoU7RERz6A==
dependencies:
call-bind "^1.0.8"
@@ -3634,12 +3592,12 @@ is-array-buffer@^3.0.4, is-array-buffer@^3.0.5:
is-arrayish@^0.3.1:
version "0.3.2"
- resolved "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.3.2.tgz"
+ resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.3.2.tgz#4574a2ae56f7ab206896fb431eaeed066fdf8f03"
integrity sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==
is-async-function@^2.0.0:
version "2.1.1"
- resolved "https://registry.npmjs.org/is-async-function/-/is-async-function-2.1.1.tgz"
+ resolved "https://registry.yarnpkg.com/is-async-function/-/is-async-function-2.1.1.tgz#3e69018c8e04e73b738793d020bfe884b9fd3523"
integrity sha512-9dgM/cZBnNvjzaMYHVoxxfPj2QXt22Ev7SuuPrs+xav0ukGB0S6d4ydZdEiM48kLx5kDV+QBPrpVnFyefL8kkQ==
dependencies:
async-function "^1.0.0"
@@ -3650,21 +3608,21 @@ is-async-function@^2.0.0:
is-bigint@^1.1.0:
version "1.1.0"
- resolved "https://registry.npmjs.org/is-bigint/-/is-bigint-1.1.0.tgz"
+ resolved "https://registry.yarnpkg.com/is-bigint/-/is-bigint-1.1.0.tgz#dda7a3445df57a42583db4228682eba7c4170672"
integrity sha512-n4ZT37wG78iz03xPRKJrHTdZbe3IicyucEtdRsV5yglwc3GyUfbAfpSeD0FJ41NbUNSt5wbhqfp1fS+BgnvDFQ==
dependencies:
has-bigints "^1.0.2"
is-binary-path@~2.1.0:
version "2.1.0"
- resolved "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz"
+ resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-2.1.0.tgz#ea1f7f3b80f064236e83470f86c09c254fb45b09"
integrity sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==
dependencies:
binary-extensions "^2.0.0"
is-boolean-object@^1.2.1:
version "1.2.2"
- resolved "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.2.2.tgz"
+ resolved "https://registry.yarnpkg.com/is-boolean-object/-/is-boolean-object-1.2.2.tgz#7067f47709809a393c71ff5bb3e135d8a9215d9e"
integrity sha512-wa56o2/ElJMYqjCjGkXri7it5FbebW5usLw/nPmCMs5DeZ7eziSYZhSmPRn0txqeW4LnAmQQU7FgqLpsEFKM4A==
dependencies:
call-bound "^1.0.3"
@@ -3672,7 +3630,7 @@ is-boolean-object@^1.2.1:
is-callable@^1.2.7:
version "1.2.7"
- resolved "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz"
+ resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.2.7.tgz#3bc2a85ea742d9e36205dcacdd72ca1fdc51b055"
integrity sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==
is-core-module@^2.16.0:
@@ -3684,7 +3642,7 @@ is-core-module@^2.16.0:
is-data-view@^1.0.1, is-data-view@^1.0.2:
version "1.0.2"
- resolved "https://registry.npmjs.org/is-data-view/-/is-data-view-1.0.2.tgz"
+ resolved "https://registry.yarnpkg.com/is-data-view/-/is-data-view-1.0.2.tgz#bae0a41b9688986c2188dda6657e56b8f9e63b8e"
integrity sha512-RKtWF8pGmS87i2D6gqQu/l7EYRlVdfzemCJN/P3UOs//x1QE7mfhvzHIApBTRf7axvT6DMGwSwBXYCT0nfB9xw==
dependencies:
call-bound "^1.0.2"
@@ -3693,7 +3651,7 @@ is-data-view@^1.0.1, is-data-view@^1.0.2:
is-date-object@^1.0.5, is-date-object@^1.1.0:
version "1.1.0"
- resolved "https://registry.npmjs.org/is-date-object/-/is-date-object-1.1.0.tgz"
+ resolved "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.1.0.tgz#ad85541996fc7aa8b2729701d27b7319f95d82f7"
integrity sha512-PwwhEakHVKTdRNVOw+/Gyh0+MzlCl4R6qKvkhuvLtPMggI1WAHt9sOwZxQLSGpUaDnrdyDsomoRgNnCfKNSXXg==
dependencies:
call-bound "^1.0.2"
@@ -3701,12 +3659,12 @@ is-date-object@^1.0.5, is-date-object@^1.1.0:
is-extglob@^2.1.1:
version "2.1.1"
- resolved "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz"
+ resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2"
integrity sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==
is-finalizationregistry@^1.1.0:
version "1.1.1"
- resolved "https://registry.npmjs.org/is-finalizationregistry/-/is-finalizationregistry-1.1.1.tgz"
+ resolved "https://registry.yarnpkg.com/is-finalizationregistry/-/is-finalizationregistry-1.1.1.tgz#eefdcdc6c94ddd0674d9c85887bf93f944a97c90"
integrity sha512-1pC6N8qWJbWoPtEjgcL2xyhQOP491EQjeUo3qTKcmV8YSDDJrOepfG8pcC7h/QgnQHYSv0mJ3Z/ZWxmatVrysg==
dependencies:
call-bound "^1.0.3"
@@ -3718,7 +3676,7 @@ is-fullwidth-code-point@^3.0.0:
is-generator-function@^1.0.10:
version "1.1.0"
- resolved "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.1.0.tgz"
+ resolved "https://registry.yarnpkg.com/is-generator-function/-/is-generator-function-1.1.0.tgz#bf3eeda931201394f57b5dba2800f91a238309ca"
integrity sha512-nPUB5km40q9e8UfN/Zc24eLlzdSf9OfKByBw9CIdw4H1giPMeA0OIJvbchsCu4npfI2QcMVBsGEBHKZ7wLTWmQ==
dependencies:
call-bound "^1.0.3"
@@ -3728,7 +3686,7 @@ is-generator-function@^1.0.10:
is-glob@^4.0.0, is-glob@^4.0.1, is-glob@^4.0.3, is-glob@~4.0.1:
version "4.0.3"
- resolved "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz"
+ resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.3.tgz#64f61e42cbbb2eec2071a9dac0b28ba1e65d5084"
integrity sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==
dependencies:
is-extglob "^2.1.1"
@@ -3740,12 +3698,12 @@ is-hex-prefixed@1.0.0:
is-map@^2.0.3:
version "2.0.3"
- resolved "https://registry.npmjs.org/is-map/-/is-map-2.0.3.tgz"
+ resolved "https://registry.yarnpkg.com/is-map/-/is-map-2.0.3.tgz#ede96b7fe1e270b3c4465e3a465658764926d62e"
integrity sha512-1Qed0/Hr2m+YqxnM09CjA2d/i6YZNfF6R2oRAOj36eUdS6qIV/huPJNSEpKbupewFs+ZsJlxsjjPbc0/afW6Lw==
is-number-object@^1.1.1:
version "1.1.1"
- resolved "https://registry.npmjs.org/is-number-object/-/is-number-object-1.1.1.tgz"
+ resolved "https://registry.yarnpkg.com/is-number-object/-/is-number-object-1.1.1.tgz#144b21e95a1bc148205dcc2814a9134ec41b2541"
integrity sha512-lZhclumE1G6VYD8VHe35wFaIif+CTy5SJIi5+3y4psDgWu4wPDoBhF8NxUOinEc7pHgiTsT6MaBb92rKhhD+Xw==
dependencies:
call-bound "^1.0.3"
@@ -3753,7 +3711,7 @@ is-number-object@^1.1.1:
is-number@^7.0.0:
version "7.0.0"
- resolved "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz"
+ resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b"
integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==
is-plain-obj@^2.1.0:
@@ -3763,7 +3721,7 @@ is-plain-obj@^2.1.0:
is-regex@^1.2.1:
version "1.2.1"
- resolved "https://registry.npmjs.org/is-regex/-/is-regex-1.2.1.tgz"
+ resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.2.1.tgz#76d70a3ed10ef9be48eb577887d74205bf0cad22"
integrity sha512-MjYsKHO5O7mCsmRGxWcLWheFqN9DJ/2TmngvjKXihe6efViPqc274+Fx/4fYj/r03+ESvBdTXK0V6tA3rgez1g==
dependencies:
call-bound "^1.0.2"
@@ -3773,24 +3731,24 @@ is-regex@^1.2.1:
is-set@^2.0.3:
version "2.0.3"
- resolved "https://registry.npmjs.org/is-set/-/is-set-2.0.3.tgz"
+ resolved "https://registry.yarnpkg.com/is-set/-/is-set-2.0.3.tgz#8ab209ea424608141372ded6e0cb200ef1d9d01d"
integrity sha512-iPAjerrse27/ygGLxw+EBR9agv9Y6uLeYVJMu+QNCoouJ1/1ri0mGrcWpfCqFZuzzx3WjtwxG098X+n4OuRkPg==
is-shared-array-buffer@^1.0.4:
version "1.0.4"
- resolved "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.4.tgz"
+ resolved "https://registry.yarnpkg.com/is-shared-array-buffer/-/is-shared-array-buffer-1.0.4.tgz#9b67844bd9b7f246ba0708c3a93e34269c774f6f"
integrity sha512-ISWac8drv4ZGfwKl5slpHG9OwPNty4jOWPRIhBpxOoD+hqITiwuipOQ2bNthAzwA3B4fIjO4Nln74N0S9byq8A==
dependencies:
call-bound "^1.0.3"
is-stream@^2.0.0:
version "2.0.1"
- resolved "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz"
+ resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-2.0.1.tgz#fac1e3d53b97ad5a9d0ae9cef2389f5810a5c077"
integrity sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==
is-string@^1.1.1:
version "1.1.1"
- resolved "https://registry.npmjs.org/is-string/-/is-string-1.1.1.tgz"
+ resolved "https://registry.yarnpkg.com/is-string/-/is-string-1.1.1.tgz#92ea3f3d5c5b6e039ca8677e5ac8d07ea773cbb9"
integrity sha512-BtEeSsoaQjlSPBemMQIrY1MY0uM6vnS1g5fmufYOtnxLGUZM2178PKbhsk7Ffv58IX+ZtcvoGwccYsh0PglkAA==
dependencies:
call-bound "^1.0.3"
@@ -3798,7 +3756,7 @@ is-string@^1.1.1:
is-symbol@^1.0.4, is-symbol@^1.1.1:
version "1.1.1"
- resolved "https://registry.npmjs.org/is-symbol/-/is-symbol-1.1.1.tgz"
+ resolved "https://registry.yarnpkg.com/is-symbol/-/is-symbol-1.1.1.tgz#f47761279f532e2b05a7024a7506dbbedacd0634"
integrity sha512-9gGx6GTtCQM73BgmHQXfDmLtfjjTUDSyoxTCbp5WtoixAhfgsDirWIcVQ/IHpvI5Vgd5i/J5F7B9cN/WlVbC/w==
dependencies:
call-bound "^1.0.2"
@@ -3807,14 +3765,14 @@ is-symbol@^1.0.4, is-symbol@^1.1.1:
is-typed-array@^1.1.13, is-typed-array@^1.1.14, is-typed-array@^1.1.15:
version "1.1.15"
- resolved "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.15.tgz"
+ resolved "https://registry.yarnpkg.com/is-typed-array/-/is-typed-array-1.1.15.tgz#4bfb4a45b61cee83a5a46fba778e4e8d59c0ce0b"
integrity sha512-p3EcsicXjit7SaskXHs1hA91QxgTw46Fv6EFKKGS5DRFLD8yKnohjF3hxoju94b/OcMZoQukzpPpBE9uLVKzgQ==
dependencies:
which-typed-array "^1.1.16"
is-typedarray@^1.0.0, is-typedarray@~1.0.0:
version "1.0.0"
- resolved "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz"
+ resolved "https://registry.yarnpkg.com/is-typedarray/-/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a"
integrity sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==
is-unicode-supported@^0.1.0:
@@ -3824,19 +3782,19 @@ is-unicode-supported@^0.1.0:
is-weakmap@^2.0.2:
version "2.0.2"
- resolved "https://registry.npmjs.org/is-weakmap/-/is-weakmap-2.0.2.tgz"
+ resolved "https://registry.yarnpkg.com/is-weakmap/-/is-weakmap-2.0.2.tgz#bf72615d649dfe5f699079c54b83e47d1ae19cfd"
integrity sha512-K5pXYOm9wqY1RgjpL3YTkF39tni1XajUIkawTLUo9EZEVUFga5gSQJF8nNS7ZwJQ02y+1YCNYcMh+HIf1ZqE+w==
is-weakref@^1.0.2, is-weakref@^1.1.0:
version "1.1.1"
- resolved "https://registry.npmjs.org/is-weakref/-/is-weakref-1.1.1.tgz"
+ resolved "https://registry.yarnpkg.com/is-weakref/-/is-weakref-1.1.1.tgz#eea430182be8d64174bd96bffbc46f21bf3f9293"
integrity sha512-6i9mGWSlqzNMEqpCp93KwRS1uUOodk2OJ6b+sq7ZPDSy2WuI5NFIxp/254TytR8ftefexkWn5xNiHUNpPOfSew==
dependencies:
call-bound "^1.0.3"
is-weakset@^2.0.3:
version "2.0.4"
- resolved "https://registry.npmjs.org/is-weakset/-/is-weakset-2.0.4.tgz"
+ resolved "https://registry.yarnpkg.com/is-weakset/-/is-weakset-2.0.4.tgz#c9f5deb0bc1906c6d6f1027f284ddf459249daca"
integrity sha512-mfcwb6IzQyOKTs84CQMrOwW4gQcaTOAWJ0zzJCl2WSPDrWk/OzDaImWFH3djXhb24g4eudZfLRozAvPGw4d9hQ==
dependencies:
call-bound "^1.0.3"
@@ -3844,29 +3802,24 @@ is-weakset@^2.0.3:
isarray@0.0.1:
version "0.0.1"
- resolved "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz"
+ resolved "https://registry.yarnpkg.com/isarray/-/isarray-0.0.1.tgz#8a18acfca9a8f4177e09abfc6038939b05d1eedf"
integrity sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ==
isarray@^2.0.5:
version "2.0.5"
- resolved "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz"
+ resolved "https://registry.yarnpkg.com/isarray/-/isarray-2.0.5.tgz#8af1e4c1221244cc62459faf38940d4e644a5723"
integrity sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==
isarray@~1.0.0:
version "1.0.0"
- resolved "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz"
+ resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11"
integrity sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==
isexe@^2.0.0:
version "2.0.0"
- resolved "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz"
+ resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10"
integrity sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==
-isows@1.0.3:
- version "1.0.3"
- resolved "https://registry.yarnpkg.com/isows/-/isows-1.0.3.tgz#93c1cf0575daf56e7120bab5c8c448b0809d0d74"
- integrity sha512-2cKei4vlmg2cxEjm3wVSqn8pcoRF/LX/wpifuuNquFO4SQmPwarClT+SUCA2lt+l581tTeZIPIZuIDo2jWN1fg==
-
isows@1.0.6:
version "1.0.6"
resolved "https://registry.yarnpkg.com/isows/-/isows-1.0.6.tgz#0da29d706fa51551c663c627ace42769850f86e7"
@@ -3874,7 +3827,7 @@ isows@1.0.6:
isstream@~0.1.2:
version "0.1.2"
- resolved "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz"
+ resolved "https://registry.yarnpkg.com/isstream/-/isstream-0.1.2.tgz#47e63f7af55afa6f92e1500e690eb8b8529c099a"
integrity sha512-Yljz7ffyPbrLpLngrMtZ7NduUgVvi6wG9RJ9IUcyCd59YQ911PBJphODUcbOVbqYfxe1wuYf/LJ8PauMRwsM/g==
jackspeak@^3.1.2:
@@ -3892,9 +3845,9 @@ js-sha3@0.8.0, js-sha3@^0.8.0:
integrity sha512-gF1cRrHhIzNfToc802P800N8PpXS+evLLXfsVpowqmAFR9uwbi89WvXg2QspOmXL8QL86J4T1EpFu+yUkwJY3Q==
js-tiktoken@^1.0.12:
- version "1.0.19"
- resolved "https://registry.npmjs.org/js-tiktoken/-/js-tiktoken-1.0.19.tgz"
- integrity sha512-XC63YQeEcS47Y53gg950xiZ4IWmkfMe4p2V9OSaBt26q+p47WHn18izuXzSclCI73B7yGqtfRsT6jcZQI0y08g==
+ version "1.0.20"
+ resolved "https://registry.yarnpkg.com/js-tiktoken/-/js-tiktoken-1.0.20.tgz#fa2733bf147acaf1bdcf9ab8a878e79c581c95f2"
+ integrity sha512-Xlaqhhs8VfCd6Sh7a1cFkZHQbYTLCwVJJWiHVxBYzLPxW0XsoxBy1hitmjkdIjD3Aon5BXLHFwU5O8WUx6HH+A==
dependencies:
base64-js "^1.5.1"
@@ -3908,24 +3861,24 @@ js-yaml@3.x:
js-yaml@^4.1.0:
version "4.1.0"
- resolved "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz"
+ resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-4.1.0.tgz#c1fb65f8f5017901cdd2c951864ba18458a10602"
integrity sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==
dependencies:
argparse "^2.0.1"
jsbn@~0.1.0:
version "0.1.1"
- resolved "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz"
+ resolved "https://registry.yarnpkg.com/jsbn/-/jsbn-0.1.1.tgz#a5e654c2e5a2deb5f201d96cefbca80c0ef2f513"
integrity sha512-UVU9dibq2JcFWxQPA6KCqj5O42VOmAY3zQUfEKxU0KpTGXwNoCjkX1e13eHNvw/xPynt6pU0rZ1htjWTNTSXsg==
json-buffer@3.0.1:
version "3.0.1"
- resolved "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz"
+ resolved "https://registry.yarnpkg.com/json-buffer/-/json-buffer-3.0.1.tgz#9338802a30d3b6605fbe0613e094008ca8c05a13"
integrity sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==
json-schema-traverse@^0.4.1:
version "0.4.1"
- resolved "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz"
+ resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660"
integrity sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==
json-schema-traverse@^1.0.0:
@@ -3935,12 +3888,12 @@ json-schema-traverse@^1.0.0:
json-schema@0.4.0:
version "0.4.0"
- resolved "https://registry.npmjs.org/json-schema/-/json-schema-0.4.0.tgz"
+ resolved "https://registry.yarnpkg.com/json-schema/-/json-schema-0.4.0.tgz#f7de4cf6efab838ebaeb3236474cbba5a1930ab5"
integrity sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA==
json-stable-stringify-without-jsonify@^1.0.1:
version "1.0.1"
- resolved "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz"
+ resolved "https://registry.yarnpkg.com/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz#9db7b59496ad3f3cfef30a75142d2d930ad72651"
integrity sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==
json-stream-stringify@^3.1.4:
@@ -3950,7 +3903,7 @@ json-stream-stringify@^3.1.4:
json-stringify-safe@^5.0.1, json-stringify-safe@~5.0.1:
version "5.0.1"
- resolved "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz"
+ resolved "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb"
integrity sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==
json5@^2.2.3:
@@ -3960,7 +3913,7 @@ json5@^2.2.3:
jsonfile@^4.0.0:
version "4.0.0"
- resolved "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz"
+ resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-4.0.0.tgz#8771aae0799b64076b76640fca058f9c10e33ecb"
integrity sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==
optionalDependencies:
graceful-fs "^4.1.6"
@@ -3976,7 +3929,7 @@ jsonfile@^6.0.1:
jsonpointer@^5.0.1:
version "5.0.1"
- resolved "https://registry.npmjs.org/jsonpointer/-/jsonpointer-5.0.1.tgz"
+ resolved "https://registry.yarnpkg.com/jsonpointer/-/jsonpointer-5.0.1.tgz#2110e0af0900fd37467b5907ecd13a7884a1b559"
integrity sha512-p/nXbhSEcu3pZRdkW1OfJhpsVtW1gd4Wa1fnQc9YLiTfAjn0312eMKimbdIQzuZl9aa9xUGaRlP9T/CJE/ditQ==
jsonschema@^1.2.4, jsonschema@^1.4.1:
@@ -3986,7 +3939,7 @@ jsonschema@^1.2.4, jsonschema@^1.4.1:
jsprim@^2.0.2:
version "2.0.2"
- resolved "https://registry.npmjs.org/jsprim/-/jsprim-2.0.2.tgz"
+ resolved "https://registry.yarnpkg.com/jsprim/-/jsprim-2.0.2.tgz#77ca23dbcd4135cd364800d22ff82c2185803d4d"
integrity sha512-gqXddjPqQ6G40VdnI6T6yObEC+pDNvyP95wdQhkWkg7crHH3km5qP1FsOXEkzEQwnz6gz5qGTn1c2Y52wP3OyQ==
dependencies:
assert-plus "1.0.0"
@@ -4005,7 +3958,7 @@ keccak@^3.0.0, keccak@^3.0.2:
keyv@^4.5.4:
version "4.5.4"
- resolved "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz"
+ resolved "https://registry.yarnpkg.com/keyv/-/keyv-4.5.4.tgz#a879a99e29452f942439f2a405e3af8b31d4de93"
integrity sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==
dependencies:
json-buffer "3.0.1"
@@ -4022,27 +3975,27 @@ kleur@^3.0.3:
kruptein@^2.0.4:
version "2.2.3"
- resolved "https://registry.npmjs.org/kruptein/-/kruptein-2.2.3.tgz"
+ resolved "https://registry.yarnpkg.com/kruptein/-/kruptein-2.2.3.tgz#e09a3942b8072ac71728d10fe089293e0b5e7d42"
integrity sha512-BTwprBPTzkFT9oTugxKd3WnWrX630MqUDsnmBuoa98eQs12oD4n4TeI0GbpdGcYn/73Xueg2rfnw+oK4dovnJg==
dependencies:
asn1.js "^5.4.1"
kuler@^2.0.0:
version "2.0.0"
- resolved "https://registry.npmjs.org/kuler/-/kuler-2.0.0.tgz"
+ resolved "https://registry.yarnpkg.com/kuler/-/kuler-2.0.0.tgz#e2c570a3800388fb44407e851531c1d670b061b3"
integrity sha512-Xq9nH7KlWZmXAtodXDDRE7vs6DU1gTU8zYDHDiWLSip45Egwq3plLHzPn27NgvzL2r1LMPC1vdqh98sQxtqj4A==
"langchain@>=0.2.3 <0.3.0 || >=0.3.4 <0.4.0", langchain@^0.3.19:
- version "0.3.19"
- resolved "https://registry.npmjs.org/langchain/-/langchain-0.3.19.tgz"
- integrity sha512-aGhoTvTBS5ulatA67RHbJ4bcV5zcYRYdm5IH+hpX99RYSFXG24XF3ghSjhYi6sxW+SUnEQ99fJhA5kroVpKNhw==
+ version "0.3.24"
+ resolved "https://registry.yarnpkg.com/langchain/-/langchain-0.3.24.tgz#24c5e16f7a43be8ce54d32079ea8dc8087c56777"
+ integrity sha512-BTjiYkUCpWFAmufK8J5zMqc5aUs4eEnAXPWtPe2+R4ZPP+U7bXJSBHAcrB40rQ3VeTdRgMvgDjekOOgCMWut6Q==
dependencies:
- "@langchain/openai" ">=0.1.0 <0.5.0"
+ "@langchain/openai" ">=0.1.0 <0.6.0"
"@langchain/textsplitters" ">=0.0.0 <0.2.0"
js-tiktoken "^1.0.12"
js-yaml "^4.1.0"
jsonpointer "^5.0.1"
- langsmith ">=0.2.8 <0.4.0"
+ langsmith "^0.3.16"
openapi-types "^12.1.3"
p-retry "4"
uuid "^10.0.0"
@@ -4050,22 +4003,9 @@ kuler@^2.0.0:
zod "^3.22.4"
zod-to-json-schema "^3.22.3"
-"langsmith@>=0.2.8 <0.4.0":
- version "0.3.12"
- resolved "https://registry.npmjs.org/langsmith/-/langsmith-0.3.12.tgz"
- integrity sha512-e4qWM27hxEr8GfO6dgXrc3W8La+wxkX1zEtMhxhqS/Th2ujTt5OH7x0uXfXFDqCv9WaC3nquo1Y2s4vpYmLLtg==
- dependencies:
- "@types/uuid" "^10.0.0"
- chalk "^4.1.2"
- console-table-printer "^2.12.1"
- p-queue "^6.6.2"
- p-retry "4"
- semver "^7.6.3"
- uuid "^10.0.0"
-
langsmith@^0.1.43:
version "0.1.68"
- resolved "https://registry.npmjs.org/langsmith/-/langsmith-0.1.68.tgz"
+ resolved "https://registry.yarnpkg.com/langsmith/-/langsmith-0.1.68.tgz#848332e822fe5e6734a07f1c36b6530cc1798afb"
integrity sha512-otmiysWtVAqzMx3CJ4PrtUBhWRG5Co8Z4o7hSZENPjlit9/j3/vm3TSvbaxpDYakZxtMjhkcJTqrdYFipISEiQ==
dependencies:
"@types/uuid" "^10.0.0"
@@ -4075,14 +4015,27 @@ langsmith@^0.1.43:
semver "^7.6.3"
uuid "^10.0.0"
+langsmith@^0.3.16:
+ version "0.3.21"
+ resolved "https://registry.yarnpkg.com/langsmith/-/langsmith-0.3.21.tgz#a5ccd54049031174aae386a3c3ff89246262eab3"
+ integrity sha512-klsPStt91LqcO5+FAHOuD2FJMrpKFSqa5H4ANv+YYs/fCdL2Ey9hg/YAFYKsDsCLabzcD1tCt/SN9A9JsIZ9ag==
+ dependencies:
+ "@types/uuid" "^10.0.0"
+ chalk "^4.1.2"
+ console-table-printer "^2.12.1"
+ p-queue "^6.6.2"
+ p-retry "4"
+ semver "^7.6.3"
+ uuid "^10.0.0"
+
leac@^0.6.0:
version "0.6.0"
- resolved "https://registry.npmjs.org/leac/-/leac-0.6.0.tgz"
+ resolved "https://registry.yarnpkg.com/leac/-/leac-0.6.0.tgz#dcf136e382e666bd2475f44a1096061b70dc0912"
integrity sha512-y+SqErxb8h7nE/fiEX07jsbuhrpO9lL8eca7/Y1nuWV2moNlXhyd59iDGcRf6moVyDMbmTNzL40SUyrFU/yDpg==
levn@^0.4.1:
version "0.4.1"
- resolved "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz"
+ resolved "https://registry.yarnpkg.com/levn/-/levn-0.4.1.tgz#ae4562c007473b932a6200d403268dd2fffc6ade"
integrity sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==
dependencies:
prelude-ls "^1.2.1"
@@ -4098,12 +4051,12 @@ levn@~0.3.0:
libbase64@1.3.0:
version "1.3.0"
- resolved "https://registry.npmjs.org/libbase64/-/libbase64-1.3.0.tgz"
+ resolved "https://registry.yarnpkg.com/libbase64/-/libbase64-1.3.0.tgz#053314755a05d2e5f08bbfc48d0290e9322f4406"
integrity sha512-GgOXd0Eo6phYgh0DJtjQ2tO8dc0IVINtZJeARPeiIJqge+HdsWSuaDTe8ztQ7j/cONByDZ3zeB325AHiv5O0dg==
libmime@5.3.6:
version "5.3.6"
- resolved "https://registry.npmjs.org/libmime/-/libmime-5.3.6.tgz"
+ resolved "https://registry.yarnpkg.com/libmime/-/libmime-5.3.6.tgz#e6dfc655b6b4614bad90e8e65817957903b56580"
integrity sha512-j9mBC7eiqi6fgBPAGvKCXJKJSIASanYF4EeA4iBzSG0HxQxmXnR3KbyWqTn4CwsKSebqCv2f5XZfAO6sKzgvwA==
dependencies:
encoding-japanese "2.2.0"
@@ -4113,19 +4066,19 @@ libmime@5.3.6:
libqp@2.1.1:
version "2.1.1"
- resolved "https://registry.npmjs.org/libqp/-/libqp-2.1.1.tgz"
+ resolved "https://registry.yarnpkg.com/libqp/-/libqp-2.1.1.tgz#f1be767a58f966f500597997cab72cfc1e17abfa"
integrity sha512-0Wd+GPz1O134cP62YU2GTOPNA7Qgl09XwCqM5zpBv87ERCXdfDtyKXvV7c9U22yWJh44QZqBocFnXN11K96qow==
linkify-it@5.0.0:
version "5.0.0"
- resolved "https://registry.npmjs.org/linkify-it/-/linkify-it-5.0.0.tgz"
+ resolved "https://registry.yarnpkg.com/linkify-it/-/linkify-it-5.0.0.tgz#9ef238bfa6dc70bd8e7f9572b52d369af569b421"
integrity sha512-5aHCbzQRADcdP+ATqnDuhhJ/MRIqDkZX5pyjFHRRysS8vZ5AbqGEoFIb6pYHPZ+L/OC2Lc+xT8uHVVR5CAK/wQ==
dependencies:
uc.micro "^2.0.0"
locate-path@^6.0.0:
version "6.0.0"
- resolved "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz"
+ resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-6.0.0.tgz#55321eb309febbc59c4801d931a72452a681d286"
integrity sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==
dependencies:
p-locate "^5.0.0"
@@ -4147,7 +4100,7 @@ lodash.isequal@^4.5.0:
lodash.merge@^4.6.2:
version "4.6.2"
- resolved "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz"
+ resolved "https://registry.yarnpkg.com/lodash.merge/-/lodash.merge-4.6.2.tgz#558aa53b43b661e1925a0afdfa36a9a1085fe57a"
integrity sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==
lodash.truncate@^4.4.2:
@@ -4157,7 +4110,7 @@ lodash.truncate@^4.4.2:
lodash@4.17.21, lodash@^4.17.11, lodash@^4.17.15, lodash@^4.17.21:
version "4.17.21"
- resolved "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz"
+ resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c"
integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==
log-symbols@^4.1.0:
@@ -4170,7 +4123,7 @@ log-symbols@^4.1.0:
logform@^2.7.0:
version "2.7.0"
- resolved "https://registry.npmjs.org/logform/-/logform-2.7.0.tgz"
+ resolved "https://registry.yarnpkg.com/logform/-/logform-2.7.0.tgz#cfca97528ef290f2e125a08396805002b2d060d1"
integrity sha512-TFYA4jnP7PVbmlBIfhlSe+WKxs9dklXMTEGcBCIvLhE/Tn3H6Gk1norupVW7m5Cnd4bLcr08AytbyV/xj7f/kQ==
dependencies:
"@colors/colors" "1.6.0"
@@ -4197,14 +4150,14 @@ lru_map@^0.3.3:
resolved "https://registry.yarnpkg.com/lru_map/-/lru_map-0.3.3.tgz#b5c8351b9464cbd750335a79650a0ec0e56118dd"
integrity sha512-Pn9cox5CsMYngeDbmChANltQl+5pi6XmTrraMSzhPmMBbmgcxmqWry0U3PGapCU1yB4/LqCcom7qhHZiF/jGfQ==
-luxon@~3.5.0:
- version "3.5.0"
- resolved "https://registry.npmjs.org/luxon/-/luxon-3.5.0.tgz"
- integrity sha512-rh+Zjr6DNfUYR3bPwJEnuwDdqMbxZW7LOQfUN4B54+Cl+0o5zaU9RJ6bcidfDtC1cWCZXQ+nvX8bf6bAji37QQ==
+luxon@~3.6.0:
+ version "3.6.1"
+ resolved "https://registry.yarnpkg.com/luxon/-/luxon-3.6.1.tgz#d283ffc4c0076cb0db7885ec6da1c49ba97e47b0"
+ integrity sha512-tJLxrKJhO2ukZ5z0gyjY1zPh3Rh88Ej9P7jNrZiHMUXHae1yvI2imgOZtL1TO8TW6biMMKfTtAOoEJANgtWBMQ==
mailparser@^3.7.2:
version "3.7.2"
- resolved "https://registry.npmjs.org/mailparser/-/mailparser-3.7.2.tgz"
+ resolved "https://registry.yarnpkg.com/mailparser/-/mailparser-3.7.2.tgz#00feec656e23c0ae805163581b460c2f72ca75d1"
integrity sha512-iI0p2TCcIodR1qGiRoDBBwboSSff50vQAWytM5JRggLfABa4hHYCf3YVujtuzV454xrOP352VsAPIzviqMTo4Q==
dependencies:
encoding-japanese "2.2.0"
@@ -4220,7 +4173,7 @@ mailparser@^3.7.2:
mailsplit@5.4.2:
version "5.4.2"
- resolved "https://registry.npmjs.org/mailsplit/-/mailsplit-5.4.2.tgz"
+ resolved "https://registry.yarnpkg.com/mailsplit/-/mailsplit-5.4.2.tgz#ee2be344bb3511345c0bd6ea72e5657acb8cd83b"
integrity sha512-4cczG/3Iu3pyl8JgQ76dKkisurZTmxMrA4dj/e8d2jKYcFTZ7MxOzg1gTioTDMPuFXwTrVuN/gxhkrO7wLg7qA==
dependencies:
libbase64 "1.3.0"
@@ -4241,7 +4194,7 @@ markdown-table@2.0.0:
math-intrinsics@^1.1.0:
version "1.1.0"
- resolved "https://registry.npmjs.org/math-intrinsics/-/math-intrinsics-1.1.0.tgz"
+ resolved "https://registry.yarnpkg.com/math-intrinsics/-/math-intrinsics-1.1.0.tgz#a0dd74be81e2aa5c2f27e65ce283605ee4e2b7f9"
integrity sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==
md5.js@^1.3.4:
@@ -4255,7 +4208,7 @@ md5.js@^1.3.4:
media-typer@0.3.0:
version "0.3.0"
- resolved "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz"
+ resolved "https://registry.yarnpkg.com/media-typer/-/media-typer-0.3.0.tgz#8710d7af0aa626f8fffa1ce00168545263255748"
integrity sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==
memorystream@^0.3.1:
@@ -4265,7 +4218,7 @@ memorystream@^0.3.1:
merge-descriptors@1.0.3:
version "1.0.3"
- resolved "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.3.tgz"
+ resolved "https://registry.yarnpkg.com/merge-descriptors/-/merge-descriptors-1.0.3.tgz#d80319a65f3c7935351e5cfdac8f9318504dbed5"
integrity sha512-gaNvAS7TZ897/rVaZ0nMtAyxNyi/pdbjbAwUpFQpN70GqnVfOiXpeUUMKRBmzXaSQ8DdTX4/0ms62r2K+hE6mQ==
merge2@^1.2.3, merge2@^1.3.0:
@@ -4275,14 +4228,30 @@ merge2@^1.2.3, merge2@^1.3.0:
methods@~1.1.2:
version "1.1.2"
- resolved "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz"
+ resolved "https://registry.yarnpkg.com/methods/-/methods-1.1.2.tgz#5529a4d67654134edcc5266656835b0f851afcee"
integrity sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==
+micro-eth-signer@^0.14.0:
+ version "0.14.0"
+ resolved "https://registry.yarnpkg.com/micro-eth-signer/-/micro-eth-signer-0.14.0.tgz#8aa1fe997d98d6bdf42f2071cef7eb01a66ecb22"
+ integrity sha512-5PLLzHiVYPWClEvZIXXFu5yutzpadb73rnQCpUqIHu3No3coFuWQNfE5tkBQJ7djuLYl6aRLaS0MgWJYGoqiBw==
+ dependencies:
+ "@noble/curves" "~1.8.1"
+ "@noble/hashes" "~1.7.1"
+ micro-packed "~0.7.2"
+
micro-ftch@^0.3.1:
version "0.3.1"
resolved "https://registry.yarnpkg.com/micro-ftch/-/micro-ftch-0.3.1.tgz#6cb83388de4c1f279a034fb0cf96dfc050853c5f"
integrity sha512-/0LLxhzP0tfiR5hcQebtudP56gUurs2CLkGarnCiB/OqEyUFQ6U3paQi/tgLv0hBJYt2rnr9MNpxz4fiiugstg==
+micro-packed@~0.7.2:
+ version "0.7.3"
+ resolved "https://registry.yarnpkg.com/micro-packed/-/micro-packed-0.7.3.tgz#59e96b139dffeda22705c7a041476f24cabb12b6"
+ integrity sha512-2Milxs+WNC00TRlem41oRswvw31146GiSaoCT7s3Xi2gMUglW5QBeqlQaZeHr5tJx9nm3i57LNXPqxOOaWtTYg==
+ dependencies:
+ "@scure/base" "~1.2.5"
+
micromatch@^4.0.8:
version "4.0.8"
resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.8.tgz#d66fa18f3a47076789320b9b1af32bd86d9fa202"
@@ -4293,24 +4262,24 @@ micromatch@^4.0.8:
mime-db@1.52.0:
version "1.52.0"
- resolved "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz"
+ resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.52.0.tgz#bbabcdc02859f4987301c856e3387ce5ec43bf70"
integrity sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==
mime-types@^2.1.12, mime-types@~2.1.19, mime-types@~2.1.24, mime-types@~2.1.34:
version "2.1.35"
- resolved "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz"
+ resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.35.tgz#381a871b62a734450660ae3deee44813f70d959a"
integrity sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==
dependencies:
mime-db "1.52.0"
mime@1.6.0, mime@^1.6.0:
version "1.6.0"
- resolved "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz"
+ resolved "https://registry.yarnpkg.com/mime/-/mime-1.6.0.tgz#32cd9e5c64553bd58d19a568af452acff04981b1"
integrity sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==
minimalistic-assert@^1.0.0, minimalistic-assert@^1.0.1:
version "1.0.1"
- resolved "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz"
+ resolved "https://registry.yarnpkg.com/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz#2e194de044626d4a10e7f7fbc00ce73e83e4d5c7"
integrity sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==
minimalistic-crypto-utils@^1.0.1:
@@ -4320,7 +4289,7 @@ minimalistic-crypto-utils@^1.0.1:
"minimatch@2 || 3", minimatch@^3.0.4, minimatch@^3.0.5, minimatch@^3.1.1, minimatch@^3.1.2:
version "3.1.2"
- resolved "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz"
+ resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.1.2.tgz#19cd194bfd3e428f049a70817c038d89ab4be35b"
integrity sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==
dependencies:
brace-expansion "^1.1.7"
@@ -4349,7 +4318,7 @@ minimist@^1.2.5, minimist@^1.2.6:
resolved "https://registry.yarnpkg.com/minipass/-/minipass-7.1.2.tgz#93a9626ce5e5e66bd4db86849e7515e92340a707"
integrity sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==
-mkdirp@0.5.x:
+mkdirp@0.5.x, mkdirp@^0.5.4:
version "0.5.6"
resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.6.tgz#7def03d2432dcae4ba1d611445c48396062255f6"
integrity sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==
@@ -4401,22 +4370,35 @@ mri@^1.2.0:
ms@2.0.0:
version "2.0.0"
- resolved "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz"
+ resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8"
integrity sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==
ms@2.1.3, ms@^2.0.0, ms@^2.1.1, ms@^2.1.3:
version "2.1.3"
- resolved "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz"
+ resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2"
integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==
+multer@^1.4.5-lts.2:
+ version "1.4.5-lts.2"
+ resolved "https://registry.yarnpkg.com/multer/-/multer-1.4.5-lts.2.tgz#340af065d8685dda846ec9e3d7655fcd50afba2d"
+ integrity sha512-VzGiVigcG9zUAoCNU+xShztrlr1auZOlurXynNvO9GiWD1/mTBbUljOKY+qMeazBqXgRnjzeEgJI/wyjJUHg9A==
+ dependencies:
+ append-field "^1.0.0"
+ busboy "^1.0.0"
+ concat-stream "^1.5.2"
+ mkdirp "^0.5.4"
+ object-assign "^4.1.1"
+ type-is "^1.6.4"
+ xtend "^4.0.0"
+
mustache@^4.2.0:
version "4.2.0"
- resolved "https://registry.npmjs.org/mustache/-/mustache-4.2.0.tgz"
+ resolved "https://registry.yarnpkg.com/mustache/-/mustache-4.2.0.tgz#e5892324d60a12ec9c2a73359edca52972bf6f64"
integrity sha512-71ippSywq5Yb7/tVYyGbkBggbU8H3u5Rz56fH60jGFgr8uHwxs+aSKeqmluIVzM0m0kB7xQjKS6qPfd0b2ZoqQ==
natural-compare@^1.4.0:
version "1.4.0"
- resolved "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz"
+ resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7"
integrity sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==
ndjson@2.0.0:
@@ -4432,7 +4414,7 @@ ndjson@2.0.0:
negotiator@0.6.3:
version "0.6.3"
- resolved "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz"
+ resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.3.tgz#58e323a72fedc0d6f9cd4d31fe49f51479590ccd"
integrity sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==
neo-async@^2.6.2:
@@ -4452,19 +4434,19 @@ node-addon-api@^5.0.0:
node-addon-api@^8.0.0:
version "8.3.1"
- resolved "https://registry.npmjs.org/node-addon-api/-/node-addon-api-8.3.1.tgz"
+ resolved "https://registry.yarnpkg.com/node-addon-api/-/node-addon-api-8.3.1.tgz#53bc8a4f8dbde3de787b9828059da94ba9fd4eed"
integrity sha512-lytcDEdxKjGJPTLEfW4mYMigRezMlyJY8W4wxJK8zE533Jlb8L8dRuObJFWg2P+AuOIxoCgKF+2Oq4d4Zd0OUA==
node-cron@^3.0.3:
version "3.0.3"
- resolved "https://registry.npmjs.org/node-cron/-/node-cron-3.0.3.tgz"
+ resolved "https://registry.yarnpkg.com/node-cron/-/node-cron-3.0.3.tgz#c4bc7173dd96d96c50bdb51122c64415458caff2"
integrity sha512-dOal67//nohNgYWb+nWmg5dkFdIwDm8EpeGYMekPMrngV3637lqnX0lbUcCtgibHTz6SEz7DAIjKvKDFYCnO1A==
dependencies:
uuid "8.3.2"
node-domexception@1.0.0:
version "1.0.0"
- resolved "https://registry.npmjs.org/node-domexception/-/node-domexception-1.0.0.tgz"
+ resolved "https://registry.yarnpkg.com/node-domexception/-/node-domexception-1.0.0.tgz#6888db46a1f71c0b76b3f7555016b63fe64766e5"
integrity sha512-/jKZoMpw0F8GRwl4/eLROPA3cfcXtLApP0QzLmUT/HuPCZWyB7IY9ZrMeKw2O/nFIqPQB3PVM9aYm0F312AXDQ==
node-emoji@^1.10.0:
@@ -4476,7 +4458,7 @@ node-emoji@^1.10.0:
node-fetch@^2.6.7, node-fetch@^2.7.0:
version "2.7.0"
- resolved "https://registry.npmjs.org/node-fetch/-/node-fetch-2.7.0.tgz"
+ resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.7.0.tgz#d0f0fa6e3e2dc1d27efcd8ad99d550bda94d187d"
integrity sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==
dependencies:
whatwg-url "^5.0.0"
@@ -4488,7 +4470,7 @@ node-gyp-build@^4.2.0:
node-telegram-bot-api@^0.66.0:
version "0.66.0"
- resolved "https://registry.npmjs.org/node-telegram-bot-api/-/node-telegram-bot-api-0.66.0.tgz"
+ resolved "https://registry.yarnpkg.com/node-telegram-bot-api/-/node-telegram-bot-api-0.66.0.tgz#9ad27e357b30fd3a89a37365ed95a82a70ac9f94"
integrity sha512-s4Hrg5q+VPl4/tJVG++pImxF6eb8tNJNj4KnDqAOKL6zGU34lo9RXmyAN158njwGN+v8hdNf8s9fWIYW9hPb5A==
dependencies:
"@cypress/request" "^3.0.1"
@@ -4503,18 +4485,18 @@ node-telegram-bot-api@^0.66.0:
nodemailer@6.9.16:
version "6.9.16"
- resolved "https://registry.npmjs.org/nodemailer/-/nodemailer-6.9.16.tgz"
+ resolved "https://registry.yarnpkg.com/nodemailer/-/nodemailer-6.9.16.tgz#3ebdf6c6f477c571c0facb0727b33892635e0b8b"
integrity sha512-psAuZdTIRN08HKVd/E8ObdV6NO7NTBY3KsC30F7M4H1OnmLCUNaS56FpYxyb26zWLSyYF9Ozch9KYHhHegsiOQ==
nodemailer@^6.10.0:
- version "6.10.0"
- resolved "https://registry.npmjs.org/nodemailer/-/nodemailer-6.10.0.tgz"
- integrity sha512-SQ3wZCExjeSatLE/HBaXS5vqUOQk6GtBdIIKxiFdmm01mOQZX/POJkO3SUX1wDiYcwUOJwT23scFSC9fY2H8IA==
+ version "6.10.1"
+ resolved "https://registry.yarnpkg.com/nodemailer/-/nodemailer-6.10.1.tgz#cbc434c54238f83a51c07eabd04e2b3e832da623"
+ integrity sha512-Z+iLaBGVaSjbIzQ4pX6XV41HrooLsQ10ZWPUehGmuantvzWoDVBnmsdUcOIDM1t+yPor5pDhVlDESgOMEGxhHA==
nodemon@^3.1.9:
- version "3.1.9"
- resolved "https://registry.npmjs.org/nodemon/-/nodemon-3.1.9.tgz"
- integrity sha512-hdr1oIb2p6ZSxu3PB2JWWYS7ZQ0qvaZsc3hK8DR8f02kRzc8rjYmxAIvdz+aYC+8F2IjNaB7HMcSDg8nQpJxyg==
+ version "3.1.10"
+ resolved "https://registry.yarnpkg.com/nodemon/-/nodemon-3.1.10.tgz#5015c5eb4fffcb24d98cf9454df14f4fecec9bc1"
+ integrity sha512-WDjw3pJ0/0jMFmyNDp3gvY2YizjLmmOUQo6DEBY+JgdvW/yQ9mEeSw6H5ythl5Ny2ytb7f9C2nIbjSxMNzbJXw==
dependencies:
chokidar "^3.5.2"
debug "^4"
@@ -4541,7 +4523,7 @@ nopt@3.x:
normalize-path@^3.0.0, normalize-path@~3.0.0:
version "3.0.0"
- resolved "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz"
+ resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65"
integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==
number-to-bn@1.7.0:
@@ -4554,22 +4536,22 @@ number-to-bn@1.7.0:
object-assign@^4, object-assign@^4.1.1:
version "4.1.1"
- resolved "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz"
+ resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863"
integrity sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==
object-inspect@^1.13.3:
version "1.13.4"
- resolved "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.4.tgz"
+ resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.13.4.tgz#8375265e21bc20d0fa582c22e1b13485d6e00213"
integrity sha512-W67iLl4J2EXEGTbfeHCffrjDfitvLANg0UlX3wFUUSTx92KXRFegMHUVgSqE+wvhAbi4WqjGg9czysTV2Epbew==
object-keys@^1.1.1:
version "1.1.1"
- resolved "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz"
+ resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.1.1.tgz#1c47f272df277f3b1daf061677d9c82e2322c60e"
integrity sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==
object.assign@^4.1.7:
version "4.1.7"
- resolved "https://registry.npmjs.org/object.assign/-/object.assign-4.1.7.tgz"
+ resolved "https://registry.yarnpkg.com/object.assign/-/object.assign-4.1.7.tgz#8c14ca1a424c6a561b0bb2a22f66f5049a945d3d"
integrity sha512-nK28WOo+QIjBkDduTINE4JkF/UJJKyf2EJxvJKfblDpyg0Q+pkOHNTL0Qwy6NP6FhE/EnzV73BxxqcJaXY9anw==
dependencies:
call-bind "^1.0.8"
@@ -4585,42 +4567,42 @@ obliterator@^2.0.0:
integrity sha512-42CPE9AhahZRsMNslczq0ctAEtqk8Eka26QofnqC346BZdHDySk3LWka23LI7ULIw11NmltpiLagIq8gBozxTw==
ollama@^0.5.12:
- version "0.5.14"
- resolved "https://registry.npmjs.org/ollama/-/ollama-0.5.14.tgz"
- integrity sha512-pvOuEYa2WkkAumxzJP0RdEYHkbZ64AYyyUszXVX7ruLvk5L+EiO2G71da2GqEQ4IAk4j6eLoUbGk5arzFT1wJA==
+ version "0.5.15"
+ resolved "https://registry.yarnpkg.com/ollama/-/ollama-0.5.15.tgz#34a4549af3c4b819d39c81d313d911f6b8a9ef6e"
+ integrity sha512-TSaZSJyP7MQJFjSmmNsoJiriwa3U+/UJRw6+M8aucs5dTsaWNZsBIGpDb5rXnW6nXxJBB/z79gZY8IaiIQgelQ==
dependencies:
whatwg-fetch "^3.6.20"
on-finished@2.4.1:
version "2.4.1"
- resolved "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz"
+ resolved "https://registry.yarnpkg.com/on-finished/-/on-finished-2.4.1.tgz#58c8c44116e54845ad57f14ab10b03533184ac3f"
integrity sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==
dependencies:
ee-first "1.1.1"
on-headers@~1.0.2:
version "1.0.2"
- resolved "https://registry.npmjs.org/on-headers/-/on-headers-1.0.2.tgz"
+ resolved "https://registry.yarnpkg.com/on-headers/-/on-headers-1.0.2.tgz#772b0ae6aaa525c399e489adfad90c403eb3c28f"
integrity sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==
once@1.x, once@^1.3.0, once@^1.3.1, once@^1.4.0:
version "1.4.0"
- resolved "https://registry.npmjs.org/once/-/once-1.4.0.tgz"
+ resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1"
integrity sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==
dependencies:
wrappy "1"
one-time@^1.0.0:
version "1.0.0"
- resolved "https://registry.npmjs.org/one-time/-/one-time-1.0.0.tgz"
+ resolved "https://registry.yarnpkg.com/one-time/-/one-time-1.0.0.tgz#e06bc174aed214ed58edede573b433bbf827cb45"
integrity sha512-5DXOiRKwuSEcQ/l0kGCF6Q3jcADFv5tSmRaJck/OqkVFcOzutB134KRSfF0xDrL39MNnqxbHBbUUcjZIhTgb2g==
dependencies:
fn.name "1.x.x"
-openai@^4.77.0:
- version "4.86.1"
- resolved "https://registry.npmjs.org/openai/-/openai-4.86.1.tgz"
- integrity sha512-x3iCLyaC3yegFVZaxOmrYJjitKxZ9hpVbLi+ZlT5UHuHTMlEQEbKXkGOM78z9qm2T5GF+XRUZCP2/aV4UPFPJQ==
+openai@^4.93.0:
+ version "4.96.0"
+ resolved "https://registry.yarnpkg.com/openai/-/openai-4.96.0.tgz#d1a821e99949ac2c55709f4e28e18bb1d9fd8ef9"
+ integrity sha512-dKoW56i02Prv2XQolJ9Rl9Svqubqkzg3QpwEOBuSVZLk05Shelu7s+ErRTwFc1Bs3JZ2qBqBfVpXQiJhwOGG8A==
dependencies:
"@types/node" "^18.11.18"
"@types/node-fetch" "^2.6.4"
@@ -4632,7 +4614,7 @@ openai@^4.77.0:
openapi-types@^12.1.3:
version "12.1.3"
- resolved "https://registry.npmjs.org/openapi-types/-/openapi-types-12.1.3.tgz"
+ resolved "https://registry.yarnpkg.com/openapi-types/-/openapi-types-12.1.3.tgz#471995eb26c4b97b7bd356aacf7b91b73e777dd3"
integrity sha512-N4YtSYJqghVu4iek2ZUvcN/0aqH1kRDuNqzcycDxhOUpg7GdvLa2F3DgS6yBNhInhv2r/6I0Flkn7CqL8+nIcw==
optionator@^0.8.1:
@@ -4649,7 +4631,7 @@ optionator@^0.8.1:
optionator@^0.9.3:
version "0.9.4"
- resolved "https://registry.npmjs.org/optionator/-/optionator-0.9.4.tgz"
+ resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.9.4.tgz#7ea1c1a5d91d764fb282139c88fe11e182a3a734"
integrity sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==
dependencies:
deep-is "^0.1.3"
@@ -4671,7 +4653,7 @@ os-tmpdir@~1.0.2:
own-keys@^1.0.1:
version "1.0.1"
- resolved "https://registry.npmjs.org/own-keys/-/own-keys-1.0.1.tgz"
+ resolved "https://registry.yarnpkg.com/own-keys/-/own-keys-1.0.1.tgz#e4006910a2bf913585289676eebd6f390cf51358"
integrity sha512-qFOyK5PjiWZd+QQIh+1jhdb9LpxTF0qs7Pm8o5QHYZ0M3vKqSqzsZaEB6oWlxZ+q2sJBMI/Ktgd2N5ZwQoRHfg==
dependencies:
get-intrinsic "^1.2.6"
@@ -4693,19 +4675,19 @@ ox@0.6.9:
p-finally@^1.0.0:
version "1.0.0"
- resolved "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz"
+ resolved "https://registry.yarnpkg.com/p-finally/-/p-finally-1.0.0.tgz#3fbcfb15b899a44123b34b6dcc18b724336a2cae"
integrity sha512-LICb2p9CB7FS+0eR1oqWnHhp0FljGLZCWBE9aix0Uye9W8LTQPwMTYVGWQWIw9RdQiDg4+epXQODwIYJtSJaow==
p-limit@^3.0.2:
version "3.1.0"
- resolved "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz"
+ resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-3.1.0.tgz#e1daccbe78d0d1388ca18c64fea38e3e57e3706b"
integrity sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==
dependencies:
yocto-queue "^0.1.0"
p-locate@^5.0.0:
version "5.0.0"
- resolved "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz"
+ resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-5.0.0.tgz#83c8315c6785005e3bd021839411c9e110e6d834"
integrity sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==
dependencies:
p-limit "^3.0.2"
@@ -4719,7 +4701,7 @@ p-map@^4.0.0:
p-queue@^6.6.2:
version "6.6.2"
- resolved "https://registry.npmjs.org/p-queue/-/p-queue-6.6.2.tgz"
+ resolved "https://registry.yarnpkg.com/p-queue/-/p-queue-6.6.2.tgz#2068a9dcf8e67dd0ec3e7a2bcb76810faa85e426"
integrity sha512-RwFpb72c/BhQLEXIZ5K2e+AhgNVmIejGlTgiB9MzZ0e93GRvqZ7uSi0dvRF7/XIXDeNkra2fNHBxTyPDGySpjQ==
dependencies:
eventemitter3 "^4.0.4"
@@ -4727,7 +4709,7 @@ p-queue@^6.6.2:
p-retry@4:
version "4.6.2"
- resolved "https://registry.npmjs.org/p-retry/-/p-retry-4.6.2.tgz"
+ resolved "https://registry.yarnpkg.com/p-retry/-/p-retry-4.6.2.tgz#9baae7184057edd4e17231cee04264106e092a16"
integrity sha512-312Id396EbJdvRONlngUx0NydfrIQ5lsYu0znKVUzVvArzEIt08V1qhtyESbGVd1FGX7UKtiFp5uwKZdM8wIuQ==
dependencies:
"@types/retry" "0.12.0"
@@ -4735,7 +4717,7 @@ p-retry@4:
p-timeout@^3.2.0:
version "3.2.0"
- resolved "https://registry.npmjs.org/p-timeout/-/p-timeout-3.2.0.tgz"
+ resolved "https://registry.yarnpkg.com/p-timeout/-/p-timeout-3.2.0.tgz#c7e17abc971d2a7962ef83626b35d635acf23dfe"
integrity sha512-rhIwUycgwwKcP9yTOOFK/AKsAopjjCakVqLHePO3CC6Mir1Z99xT+R63jZxAT5lFZLa2inS5h+ZS2GvR99/FBg==
dependencies:
p-finally "^1.0.0"
@@ -4752,14 +4734,14 @@ package-json-from-dist@^1.0.0:
parent-module@^1.0.0:
version "1.0.1"
- resolved "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz"
+ resolved "https://registry.yarnpkg.com/parent-module/-/parent-module-1.0.1.tgz#691d2709e78c79fae3a156622452d00762caaaa2"
integrity sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==
dependencies:
callsites "^3.0.0"
parseley@^0.12.0:
version "0.12.1"
- resolved "https://registry.npmjs.org/parseley/-/parseley-0.12.1.tgz"
+ resolved "https://registry.yarnpkg.com/parseley/-/parseley-0.12.1.tgz#4afd561d50215ebe259e3e7a853e62f600683aef"
integrity sha512-e6qHKe3a9HWr0oMRVDTRhKce+bRO8VGQR3NyVwcjwrbhMmFCX9KszEV35+rn4AdilFAq9VPxP/Fe1wC9Qjd2lw==
dependencies:
leac "^0.6.0"
@@ -4767,12 +4749,12 @@ parseley@^0.12.0:
parseurl@~1.3.3:
version "1.3.3"
- resolved "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz"
+ resolved "https://registry.yarnpkg.com/parseurl/-/parseurl-1.3.3.tgz#9da19e7bee8d12dff0513ed5b76957793bc2e8d4"
integrity sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==
path-exists@^4.0.0:
version "4.0.0"
- resolved "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz"
+ resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-4.0.0.tgz#513bdbe2d3b95d7762e8c1137efa195c6c61b5b3"
integrity sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==
path-is-absolute@^1.0.0:
@@ -4782,7 +4764,7 @@ path-is-absolute@^1.0.0:
path-key@^3.1.0:
version "3.1.1"
- resolved "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz"
+ resolved "https://registry.yarnpkg.com/path-key/-/path-key-3.1.1.tgz#581f6ade658cbba65a0d3380de7753295054f375"
integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==
path-parse@^1.0.6, path-parse@^1.0.7:
@@ -4800,7 +4782,7 @@ path-scurry@^1.11.1:
path-to-regexp@0.1.12:
version "0.1.12"
- resolved "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.12.tgz"
+ resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-0.1.12.tgz#d5e1a12e478a976d432ef3c58d534b9923164bb7"
integrity sha512-RA1GjUVMnvYFxuqovrEqZoxxW5NUZqbwKtYz/Tt7nXerk0LbLblQmrsgdeOxV5SFHf0UDggjS/bSeOZwt1pmEQ==
path-type@^4.0.0:
@@ -4826,42 +4808,42 @@ pbkdf2@^3.0.17:
peberminta@^0.9.0:
version "0.9.0"
- resolved "https://registry.npmjs.org/peberminta/-/peberminta-0.9.0.tgz"
+ resolved "https://registry.yarnpkg.com/peberminta/-/peberminta-0.9.0.tgz#8ec9bc0eb84b7d368126e71ce9033501dca2a352"
integrity sha512-XIxfHpEuSJbITd1H3EeQwpcZbTLHc+VVr8ANI9t5sit565tsI4/xK3KWTUFE2e6QiangUkh3B0jihzmGnNrRsQ==
performance-now@^2.1.0:
version "2.1.0"
- resolved "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz"
+ resolved "https://registry.yarnpkg.com/performance-now/-/performance-now-2.1.0.tgz#6309f4e0e5fa913ec1c69307ae364b4b377c9e7b"
integrity sha512-7EAHlyLHI56VEIdK57uwHdHKIaAGbnXPiw0yWbarQZOKaKpvUIgW0jWRVLiatnM+XXlSwsanIBH/hzGMJulMow==
-pg-cloudflare@^1.1.1:
- version "1.1.1"
- resolved "https://registry.npmjs.org/pg-cloudflare/-/pg-cloudflare-1.1.1.tgz"
- integrity sha512-xWPagP/4B6BgFO+EKz3JONXv3YDgvkbVrGw2mTo3D6tVDQRh1e7cqVGvyR3BE+eQgAvx1XhW/iEASj4/jCWl3Q==
+pg-cloudflare@^1.2.5:
+ version "1.2.5"
+ resolved "https://registry.yarnpkg.com/pg-cloudflare/-/pg-cloudflare-1.2.5.tgz#2e3649c38a7a9c74a7e5327c8098a2fd9af595bd"
+ integrity sha512-OOX22Vt0vOSRrdoUPKJ8Wi2OpE/o/h9T8X1s4qSkCedbNah9ei2W2765be8iMVxQUsvgT7zIAT2eIa9fs5+vtg==
-pg-connection-string@^2.7.0:
- version "2.7.0"
- resolved "https://registry.npmjs.org/pg-connection-string/-/pg-connection-string-2.7.0.tgz"
- integrity sha512-PI2W9mv53rXJQEOb8xNR8lH7Hr+EKa6oJa38zsK0S/ky2er16ios1wLKhZyxzD7jUReiWokc9WK5nxSnC7W1TA==
+pg-connection-string@^2.8.5:
+ version "2.8.5"
+ resolved "https://registry.yarnpkg.com/pg-connection-string/-/pg-connection-string-2.8.5.tgz#82cefd0269cb64a09603342d9b69e8392e6eb6cd"
+ integrity sha512-Ni8FuZ8yAF+sWZzojvtLE2b03cqjO5jNULcHFfM9ZZ0/JXrgom5pBREbtnAw7oxsxJqHw9Nz/XWORUEL3/IFow==
pg-int8@1.0.1:
version "1.0.1"
- resolved "https://registry.npmjs.org/pg-int8/-/pg-int8-1.0.1.tgz"
+ resolved "https://registry.yarnpkg.com/pg-int8/-/pg-int8-1.0.1.tgz#943bd463bf5b71b4170115f80f8efc9a0c0eb78c"
integrity sha512-WCtabS6t3c8SkpDBUlb1kjOs7l66xsGdKpIPZsg4wR+B3+u9UAum2odSsF9tnvxg80h4ZxLWMy4pRjOsFIqQpw==
-pg-pool@^3.7.1:
- version "3.7.1"
- resolved "https://registry.npmjs.org/pg-pool/-/pg-pool-3.7.1.tgz"
- integrity sha512-xIOsFoh7Vdhojas6q3596mXFsR8nwBQBXX5JiV7p9buEVAGqYL4yFzclON5P9vFrpu1u7Zwl2oriyDa89n0wbw==
+pg-pool@^3.9.6:
+ version "3.9.6"
+ resolved "https://registry.yarnpkg.com/pg-pool/-/pg-pool-3.9.6.tgz#c6fde89dee615d6c262724e68a3a37e9593157fc"
+ integrity sha512-rFen0G7adh1YmgvrmE5IPIqbb+IgEzENUm+tzm6MLLDSlPRoZVhzU1WdML9PV2W5GOdRA9qBKURlbt1OsXOsPw==
-pg-protocol@^1.7.1:
- version "1.7.1"
- resolved "https://registry.npmjs.org/pg-protocol/-/pg-protocol-1.7.1.tgz"
- integrity sha512-gjTHWGYWsEgy9MsY0Gp6ZJxV24IjDqdpTW7Eh0x+WfJLFsm/TJx1MzL6T0D88mBvkpxotCQ6TwW6N+Kko7lhgQ==
+pg-protocol@^1.9.5:
+ version "1.9.5"
+ resolved "https://registry.yarnpkg.com/pg-protocol/-/pg-protocol-1.9.5.tgz#e544eff37d6ab79c26281d7c0b59ac9be4862686"
+ integrity sha512-DYTWtWpfd5FOro3UnAfwvhD8jh59r2ig8bPtc9H8Ds7MscE/9NYruUQWFAOuraRl29jwcT2kyMFQ3MxeaVjUhg==
pg-types@^2.1.0:
version "2.2.0"
- resolved "https://registry.npmjs.org/pg-types/-/pg-types-2.2.0.tgz"
+ resolved "https://registry.yarnpkg.com/pg-types/-/pg-types-2.2.0.tgz#2d0250d636454f7cfa3b6ae0382fdfa8063254a3"
integrity sha512-qTAAlrEsl8s4OiEQY69wDvcMIdQN6wdz5ojQiOy6YRMuynxenON0O5oCpJI6lshc6scgAY8qvJ2On/p+CXY0GA==
dependencies:
pg-int8 "1.0.1"
@@ -4871,21 +4853,21 @@ pg-types@^2.1.0:
postgres-interval "^1.1.0"
pg@^8.10.0, pg@^8.12.0:
- version "8.13.3"
- resolved "https://registry.npmjs.org/pg/-/pg-8.13.3.tgz"
- integrity sha512-P6tPt9jXbL9HVu/SSRERNYaYG++MjnscnegFh9pPHihfoBSujsrka0hyuymMzeJKFWrcG8wvCKy8rCe8e5nDUQ==
+ version "8.15.6"
+ resolved "https://registry.yarnpkg.com/pg/-/pg-8.15.6.tgz#2a28e98fb6cab18b886ce58b2c184d712a94880a"
+ integrity sha512-yvao7YI3GdmmrslNVsZgx9PfntfWrnXwtR+K/DjI0I/sTKif4Z623um+sjVZ1hk5670B+ODjvHDAckKdjmPTsg==
dependencies:
- pg-connection-string "^2.7.0"
- pg-pool "^3.7.1"
- pg-protocol "^1.7.1"
+ pg-connection-string "^2.8.5"
+ pg-pool "^3.9.6"
+ pg-protocol "^1.9.5"
pg-types "^2.1.0"
pgpass "1.x"
optionalDependencies:
- pg-cloudflare "^1.1.1"
+ pg-cloudflare "^1.2.5"
pgpass@1.x:
version "1.0.5"
- resolved "https://registry.npmjs.org/pgpass/-/pgpass-1.0.5.tgz"
+ resolved "https://registry.yarnpkg.com/pgpass/-/pgpass-1.0.5.tgz#9b873e4a564bb10fa7a7dbd55312728d422a223d"
integrity sha512-FdW9r/jQZhSeohs1Z3sI1yxFQNFvMcnmfuj4WBMUTxOrAyLMaTcE1aAMBiTlbMNaXvBCQuVi0R7hd8udDSP7ug==
dependencies:
split2 "^4.1.0"
@@ -4897,7 +4879,7 @@ picocolors@^1.1.0:
picomatch@^2.0.4, picomatch@^2.2.1, picomatch@^2.3.1:
version "2.3.1"
- resolved "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz"
+ resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.1.tgz#3ba3833733646d9d3e4995946c1365a67fb07a42"
integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==
picomatch@^4.0.2:
@@ -4912,34 +4894,34 @@ pify@^4.0.1:
possible-typed-array-names@^1.0.0:
version "1.1.0"
- resolved "https://registry.npmjs.org/possible-typed-array-names/-/possible-typed-array-names-1.1.0.tgz"
+ resolved "https://registry.yarnpkg.com/possible-typed-array-names/-/possible-typed-array-names-1.1.0.tgz#93e3582bc0e5426586d9d07b79ee40fc841de4ae"
integrity sha512-/+5VFTchJDoVj3bhoqi6UeymcD00DAwb1nJwamzPvHEszJ4FpF6SNNbUbOS8yI56qHzdV8eK0qEfOSiodkTdxg==
postgres-array@~2.0.0:
version "2.0.0"
- resolved "https://registry.npmjs.org/postgres-array/-/postgres-array-2.0.0.tgz"
+ resolved "https://registry.yarnpkg.com/postgres-array/-/postgres-array-2.0.0.tgz#48f8fce054fbc69671999329b8834b772652d82e"
integrity sha512-VpZrUqU5A69eQyW2c5CA1jtLecCsN2U/bD6VilrFDWq5+5UIEVO7nazS3TEcHf1zuPYO/sqGvUvW62g86RXZuA==
postgres-bytea@~1.0.0:
version "1.0.0"
- resolved "https://registry.npmjs.org/postgres-bytea/-/postgres-bytea-1.0.0.tgz"
+ resolved "https://registry.yarnpkg.com/postgres-bytea/-/postgres-bytea-1.0.0.tgz#027b533c0aa890e26d172d47cf9ccecc521acd35"
integrity sha512-xy3pmLuQqRBZBXDULy7KbaitYqLcmxigw14Q5sj8QBVLqEwXfeybIKVWiqAXTlcvdvb0+xkOtDbfQMOf4lST1w==
postgres-date@~1.0.4:
version "1.0.7"
- resolved "https://registry.npmjs.org/postgres-date/-/postgres-date-1.0.7.tgz"
+ resolved "https://registry.yarnpkg.com/postgres-date/-/postgres-date-1.0.7.tgz#51bc086006005e5061c591cee727f2531bf641a8"
integrity sha512-suDmjLVQg78nMK2UZ454hAG+OAW+HQPZ6n++TNDUX+L0+uUlLywnoxJKDou51Zm+zTCjrCl0Nq6J9C5hP9vK/Q==
postgres-interval@^1.1.0:
version "1.2.0"
- resolved "https://registry.npmjs.org/postgres-interval/-/postgres-interval-1.2.0.tgz"
+ resolved "https://registry.yarnpkg.com/postgres-interval/-/postgres-interval-1.2.0.tgz#b460c82cb1587507788819a06aa0fffdb3544695"
integrity sha512-9ZhXKM/rw350N1ovuWHbGxnGh/SNJ4cnxHiM0rxE4VN41wsg8P8zWn9hv/buK00RP4WvlOyr/RBDiptyxVbkZQ==
dependencies:
xtend "^4.0.0"
prelude-ls@^1.2.1:
version "1.2.1"
- resolved "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz"
+ resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.2.1.tgz#debc6489d7a6e6b0e7611888cec880337d316396"
integrity sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==
prelude-ls@~1.1.2:
@@ -4954,12 +4936,12 @@ prettier@^2.3.1:
prettier@^3.5.3:
version "3.5.3"
- resolved "https://registry.npmjs.org/prettier/-/prettier-3.5.3.tgz"
+ resolved "https://registry.yarnpkg.com/prettier/-/prettier-3.5.3.tgz#4fc2ce0d657e7a02e602549f053b239cb7dfe1b5"
integrity sha512-QQtaxnoDJeAkDvDKWCLiwIXkTgRhwYDEQCghU9Z6q03iyek/rxRh/2lC3HB7P8sWT2xC/y5JDctPLBIGzHKbhw==
process-nextick-args@~2.0.0:
version "2.0.1"
- resolved "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz"
+ resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz#7820d9b16120cc55ca9ae7792680ae7dba6d7fe2"
integrity sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==
prompts@^2.4.2:
@@ -4972,7 +4954,7 @@ prompts@^2.4.2:
proxy-addr@~2.0.7:
version "2.0.7"
- resolved "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz"
+ resolved "https://registry.yarnpkg.com/proxy-addr/-/proxy-addr-2.0.7.tgz#f19fe69ceab311eeb94b42e70e8c2070f9ba1025"
integrity sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==
dependencies:
forwarded "0.2.0"
@@ -4980,24 +4962,24 @@ proxy-addr@~2.0.7:
proxy-from-env@^1.1.0:
version "1.1.0"
- resolved "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz"
+ resolved "https://registry.yarnpkg.com/proxy-from-env/-/proxy-from-env-1.1.0.tgz#e102f16ca355424865755d2c9e8ea4f24d58c3e2"
integrity sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==
psl@^1.1.33:
version "1.15.0"
- resolved "https://registry.npmjs.org/psl/-/psl-1.15.0.tgz"
+ resolved "https://registry.yarnpkg.com/psl/-/psl-1.15.0.tgz#bdace31896f1d97cec6a79e8224898ce93d974c6"
integrity sha512-JZd3gMVBAVQkSs6HdNZo9Sdo0LNcQeMNP3CozBJb3JYC/QUYZTnKxP+f8oWRX4rHP5EurWxqAHTSwUCjlNKa1w==
dependencies:
punycode "^2.3.1"
pstree.remy@^1.1.8:
version "1.1.8"
- resolved "https://registry.npmjs.org/pstree.remy/-/pstree.remy-1.1.8.tgz"
+ resolved "https://registry.yarnpkg.com/pstree.remy/-/pstree.remy-1.1.8.tgz#c242224f4a67c21f686839bbdb4ac282b8373d3a"
integrity sha512-77DZwxQmxKnu3aR542U+X8FypNzbfJ+C5XQDk3uWjWxn6151aIMGthWYRXTqT1E5oJvg+ljaa2OJi+VfvCOQ8w==
pump@^2.0.0:
version "2.0.1"
- resolved "https://registry.npmjs.org/pump/-/pump-2.0.1.tgz"
+ resolved "https://registry.yarnpkg.com/pump/-/pump-2.0.1.tgz#12399add6e4cf7526d973cbc8b5ce2e2908b3909"
integrity sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA==
dependencies:
end-of-stream "^1.1.0"
@@ -5005,31 +4987,31 @@ pump@^2.0.0:
punycode.js@2.3.1:
version "2.3.1"
- resolved "https://registry.npmjs.org/punycode.js/-/punycode.js-2.3.1.tgz"
+ resolved "https://registry.yarnpkg.com/punycode.js/-/punycode.js-2.3.1.tgz#6b53e56ad75588234e79f4affa90972c7dd8cdb7"
integrity sha512-uxFIHU0YlHYhDQtV4R9J6a52SLx28BCjT+4ieh7IGbgwVJWO+km431c4yRlREUAsAmt/uMjQUyQHNEPf0M39CA==
punycode@^2.1.0, punycode@^2.1.1, punycode@^2.3.1:
version "2.3.1"
- resolved "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz"
+ resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.3.1.tgz#027422e2faec0b25e1549c3e1bd8309b9133b6e5"
integrity sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==
qs@6.13.0:
version "6.13.0"
- resolved "https://registry.npmjs.org/qs/-/qs-6.13.0.tgz"
+ resolved "https://registry.yarnpkg.com/qs/-/qs-6.13.0.tgz#6ca3bd58439f7e245655798997787b0d88a51906"
integrity sha512-+38qI9SOr8tfZ4QmJNplMUxqjbe7LKvvZgWdExBOmd+egZTtjLB67Gu0HRX3u/XOq7UU2Nx6nsjvS16Z9uwfpg==
dependencies:
side-channel "^1.0.6"
-qs@6.13.1:
- version "6.13.1"
- resolved "https://registry.npmjs.org/qs/-/qs-6.13.1.tgz"
- integrity sha512-EJPeIn0CYrGu+hli1xilKAPXODtJ12T0sP63Ijx2/khC2JtuaN3JyNIpvmnkmaEtha9ocbG4A4cMcr+TvqvwQg==
+qs@6.14.0:
+ version "6.14.0"
+ resolved "https://registry.yarnpkg.com/qs/-/qs-6.14.0.tgz#c63fa40680d2c5c941412a0e899c89af60c0a930"
+ integrity sha512-YWWTjgABSKcvs/nWBi9PycY/JiPJqOD4JA6o9Sej2AtvSGarXxKC3OQSk4pAarbdQlKAh5D4FCQkJNkW+GAn3w==
dependencies:
- side-channel "^1.0.6"
+ side-channel "^1.1.0"
querystringify@^2.1.1:
version "2.2.0"
- resolved "https://registry.npmjs.org/querystringify/-/querystringify-2.2.0.tgz"
+ resolved "https://registry.yarnpkg.com/querystringify/-/querystringify-2.2.0.tgz#3345941b4153cb9d082d8eee4cda2016a9aef7f6"
integrity sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==
queue-microtask@^1.2.2:
@@ -5039,7 +5021,7 @@ queue-microtask@^1.2.2:
random-bytes@~1.0.0:
version "1.0.0"
- resolved "https://registry.npmjs.org/random-bytes/-/random-bytes-1.0.0.tgz"
+ resolved "https://registry.yarnpkg.com/random-bytes/-/random-bytes-1.0.0.tgz#4f68a1dc0ae58bd3fb95848c30324db75d64360b"
integrity sha512-iv7LhNVO047HzYR3InF6pUcUsPQiHTM1Qal51DcGSuZFBil1aBBWG5eHPNek7bvILMaYJ/8RU1e8w1AMdHmLQQ==
randombytes@^2.1.0:
@@ -5051,12 +5033,12 @@ randombytes@^2.1.0:
range-parser@~1.2.1:
version "1.2.1"
- resolved "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz"
+ resolved "https://registry.yarnpkg.com/range-parser/-/range-parser-1.2.1.tgz#3cf37023d199e1c24d1a55b84800c2f3e6468031"
integrity sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==
raw-body@2.5.2, raw-body@^2.4.1:
version "2.5.2"
- resolved "https://registry.npmjs.org/raw-body/-/raw-body-2.5.2.tgz"
+ resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-2.5.2.tgz#99febd83b90e08975087e8f1f9419a149366b68a"
integrity sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==
dependencies:
bytes "3.1.2"
@@ -5066,7 +5048,7 @@ raw-body@2.5.2, raw-body@^2.4.1:
readable-stream@1.1.x:
version "1.1.14"
- resolved "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz"
+ resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-1.1.14.tgz#7cf4c54ef648e3813084c636dd2079e166c081d9"
integrity sha512-+MeVjFf4L44XUkhM1eYbD8fyEsxcV81pqMSR5gblfcLCHfZvbrqy4/qYHE+/R5HoBUT11WV5O08Cr1n3YXkWVQ==
dependencies:
core-util-is "~1.0.0"
@@ -5076,16 +5058,16 @@ readable-stream@1.1.x:
readable-stream@3, readable-stream@^3.0.0, readable-stream@^3.4.0, readable-stream@^3.6.0, readable-stream@^3.6.2:
version "3.6.2"
- resolved "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz"
+ resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.2.tgz#56a9b36ea965c00c5a93ef31eb111a0f11056967"
integrity sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==
dependencies:
inherits "^2.0.3"
string_decoder "^1.1.1"
util-deprecate "^1.0.1"
-readable-stream@^2.3.5:
+readable-stream@^2.2.2, readable-stream@^2.3.5:
version "2.3.8"
- resolved "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz"
+ resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.8.tgz#91125e8042bba1b9887f49345f6277027ce8be9b"
integrity sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==
dependencies:
core-util-is "~1.0.0"
@@ -5103,7 +5085,7 @@ readdirp@^4.0.1:
readdirp@~3.6.0:
version "3.6.0"
- resolved "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz"
+ resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-3.6.0.tgz#74a370bd857116e245b29cc97340cd431a02a6c7"
integrity sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==
dependencies:
picomatch "^2.2.1"
@@ -5129,7 +5111,7 @@ reduce-flatten@^2.0.0:
reflect.getprototypeof@^1.0.6, reflect.getprototypeof@^1.0.9:
version "1.0.10"
- resolved "https://registry.npmjs.org/reflect.getprototypeof/-/reflect.getprototypeof-1.0.10.tgz"
+ resolved "https://registry.yarnpkg.com/reflect.getprototypeof/-/reflect.getprototypeof-1.0.10.tgz#c629219e78a3316d8b604c765ef68996964e7bf9"
integrity sha512-00o4I+DVrefhv+nX0ulyi3biSHCPDe+yLv5o/p6d/UVlirijB8E16FtfwSAi4g3tcqrQ4lRAqQSoFEZJehYEcw==
dependencies:
call-bind "^1.0.8"
@@ -5143,7 +5125,7 @@ reflect.getprototypeof@^1.0.6, reflect.getprototypeof@^1.0.9:
regexp.prototype.flags@^1.5.3:
version "1.5.4"
- resolved "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.4.tgz"
+ resolved "https://registry.yarnpkg.com/regexp.prototype.flags/-/regexp.prototype.flags-1.5.4.tgz#1ad6c62d44a259007e55b3970e00f746efbcaa19"
integrity sha512-dYqgNSZbDwkaJ2ceRd9ojCGjBq+mOm9LmtXnAnEGyHhN/5R7iDW2TRw3h+o/jCFxus3P2LfWIIiwowAjANm7IA==
dependencies:
call-bind "^1.0.8"
@@ -5160,7 +5142,7 @@ repeat-string@^1.0.0:
request-promise-core@1.1.3:
version "1.1.3"
- resolved "https://registry.npmjs.org/request-promise-core/-/request-promise-core-1.1.3.tgz"
+ resolved "https://registry.yarnpkg.com/request-promise-core/-/request-promise-core-1.1.3.tgz#e9a3c081b51380dfea677336061fea879a829ee9"
integrity sha512-QIs2+ArIGQVp5ZYbWD5ZLCY29D5CfWizP8eWnm8FoGD1TX61veauETVQbrV60662V0oFBkrDOuaBI8XgtuyYAQ==
dependencies:
lodash "^4.17.15"
@@ -5177,12 +5159,12 @@ require-from-string@^2.0.2:
requires-port@^1.0.0:
version "1.0.0"
- resolved "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz"
+ resolved "https://registry.yarnpkg.com/requires-port/-/requires-port-1.0.0.tgz#925d2601d39ac485e091cf0da5c6e694dc3dcaff"
integrity sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==
resolve-from@^4.0.0:
version "4.0.0"
- resolved "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz"
+ resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-4.0.0.tgz#4abcd852ad32dd7baabfe9b40e00a36db5f392e6"
integrity sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==
resolve@1.1.x:
@@ -5208,12 +5190,12 @@ resolve@^1.1.6:
retry@^0.12.0:
version "0.12.0"
- resolved "https://registry.npmjs.org/retry/-/retry-0.12.0.tgz"
+ resolved "https://registry.yarnpkg.com/retry/-/retry-0.12.0.tgz#1b42a6266a21f07421d1b0b54b7dc167b01c013b"
integrity sha512-9LkiTwjUh6rT555DtE9rTX+BKByPfrMzEAtnlEtdEwr3Nkffwiihqe2bWADg+OQRjt9gl6ICdmB/ZFDCGAtSow==
retry@^0.13.1:
version "0.13.1"
- resolved "https://registry.npmjs.org/retry/-/retry-0.13.1.tgz"
+ resolved "https://registry.yarnpkg.com/retry/-/retry-0.13.1.tgz#185b1587acf67919d63b357349e03537b2484658"
integrity sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg==
reusify@^1.0.4:
@@ -5229,7 +5211,7 @@ ripemd160@^2.0.0, ripemd160@^2.0.1:
hash-base "^3.0.0"
inherits "^2.0.1"
-rlp@^2.2.3, rlp@^2.2.4:
+rlp@^2.2.4:
version "2.2.7"
resolved "https://registry.yarnpkg.com/rlp/-/rlp-2.2.7.tgz#33f31c4afac81124ac4b283e2bd4d9720b30beaf"
integrity sha512-d5gdPmgQ0Z+AklL2NVXr/IoSjNZFfTVvQWzL/AM2AOcSzYP2xjlb0AC8YyCLc41MSNf6P6QVtjgPdmVtzb+4lQ==
@@ -5238,7 +5220,7 @@ rlp@^2.2.3, rlp@^2.2.4:
rndm@1.2.0:
version "1.2.0"
- resolved "https://registry.npmjs.org/rndm/-/rndm-1.2.0.tgz"
+ resolved "https://registry.yarnpkg.com/rndm/-/rndm-1.2.0.tgz#f33fe9cfb52bbfd520aa18323bc65db110a1b76c"
integrity sha512-fJhQQI5tLrQvYIYFpOnFinzv9dwmR7hRnUz1XqP3OJ1jIweTNOd6aTO4jwQSgcBSFUB+/KHJxuGneime+FdzOw==
run-parallel@^1.1.9:
@@ -5250,7 +5232,7 @@ run-parallel@^1.1.9:
safe-array-concat@^1.1.3:
version "1.1.3"
- resolved "https://registry.npmjs.org/safe-array-concat/-/safe-array-concat-1.1.3.tgz"
+ resolved "https://registry.yarnpkg.com/safe-array-concat/-/safe-array-concat-1.1.3.tgz#c9e54ec4f603b0bbb8e7e5007a5ee7aecd1538c3"
integrity sha512-AURm5f0jYEOydBj7VQlVvDrjeFgthDdEF5H1dP+6mNpoXOMo1quQqJ4wvJDyRZ9+pO3kGWoOdmV08cSv2aJV6Q==
dependencies:
call-bind "^1.0.8"
@@ -5261,12 +5243,12 @@ safe-array-concat@^1.1.3:
safe-buffer@5.2.1, safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@^5.1.1, safe-buffer@^5.1.2, safe-buffer@^5.2.0, safe-buffer@^5.2.1, safe-buffer@~5.2.0:
version "5.2.1"
- resolved "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz"
+ resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6"
integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==
safe-buffer@~5.1.0, safe-buffer@~5.1.1:
version "5.1.2"
- resolved "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz"
+ resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d"
integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==
safe-compare@^1.1.4:
@@ -5278,7 +5260,7 @@ safe-compare@^1.1.4:
safe-push-apply@^1.0.0:
version "1.0.0"
- resolved "https://registry.npmjs.org/safe-push-apply/-/safe-push-apply-1.0.0.tgz"
+ resolved "https://registry.yarnpkg.com/safe-push-apply/-/safe-push-apply-1.0.0.tgz#01850e981c1602d398c85081f360e4e6d03d27f5"
integrity sha512-iKE9w/Z7xCzUMIZqdBsp6pEQvwuEebH4vdpjcDWnyzaI6yl6O9FHvVpmGelvEHNsoY6wGblkxR6Zty/h00WiSA==
dependencies:
es-errors "^1.3.0"
@@ -5286,7 +5268,7 @@ safe-push-apply@^1.0.0:
safe-regex-test@^1.1.0:
version "1.1.0"
- resolved "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.1.0.tgz"
+ resolved "https://registry.yarnpkg.com/safe-regex-test/-/safe-regex-test-1.1.0.tgz#7f87dfb67a3150782eaaf18583ff5d1711ac10c1"
integrity sha512-x/+Cz4YrimQxQccJf5mKEbIa1NzeCRNI5Ecl/ekmlYaampdNLPalVyIcCZNNH3MvmqBugV5TMYZXv0ljslUlaw==
dependencies:
call-bound "^1.0.2"
@@ -5295,12 +5277,12 @@ safe-regex-test@^1.1.0:
safe-stable-stringify@^2.3.1:
version "2.5.0"
- resolved "https://registry.npmjs.org/safe-stable-stringify/-/safe-stable-stringify-2.5.0.tgz"
+ resolved "https://registry.yarnpkg.com/safe-stable-stringify/-/safe-stable-stringify-2.5.0.tgz#4ca2f8e385f2831c432a719b108a3bf7af42a1dd"
integrity sha512-b3rppTKm9T+PsVCBEOUR46GWI7fdOs00VKZ1+9c1EWDaDMvjQc6tUwuFyIprgGgTcWoVHSKrU8H31ZHA2e0RHA==
"safer-buffer@>= 2.1.2 < 3", "safer-buffer@>= 2.1.2 < 3.0.0", safer-buffer@^2.0.2, safer-buffer@^2.1.0, safer-buffer@~2.1.0:
version "2.1.2"
- resolved "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz"
+ resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a"
integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==
sandwich-stream@^2.0.2:
@@ -5344,19 +5326,19 @@ secp256k1@^4.0.1:
selderee@^0.11.0:
version "0.11.0"
- resolved "https://registry.npmjs.org/selderee/-/selderee-0.11.0.tgz"
+ resolved "https://registry.yarnpkg.com/selderee/-/selderee-0.11.0.tgz#6af0c7983e073ad3e35787ffe20cefd9daf0ec8a"
integrity sha512-5TF+l7p4+OsnP8BCCvSyZiSPc4x4//p5uPwK8TCnVPJYRmU2aYKMpOXvw8zM5a5JvuuCGN1jmsMwuU2W02ukfA==
dependencies:
parseley "^0.12.0"
semver@^5.5.0, semver@^6.3.0, semver@^7.3.4, semver@^7.5.3, semver@^7.6.3, semver@^7.7.1, semver@~5.3.0:
version "7.7.1"
- resolved "https://registry.npmjs.org/semver/-/semver-7.7.1.tgz"
+ resolved "https://registry.yarnpkg.com/semver/-/semver-7.7.1.tgz#abd5098d82b18c6c81f6074ff2647fd3e7220c9f"
integrity sha512-hlq8tAfn0m/61p4BVRcPzIGr6LKiMwo4VM6dGi6pt4qcRkmNzTcWq6eCEjEh+qXjkMDvPlOFFSGwQjoEa6gyMA==
send@0.19.0:
version "0.19.0"
- resolved "https://registry.npmjs.org/send/-/send-0.19.0.tgz"
+ resolved "https://registry.yarnpkg.com/send/-/send-0.19.0.tgz#bbc5a388c8ea6c048967049dbeac0e4a3f09d7f8"
integrity sha512-dW41u5VfLXu8SJh5bwRmyYUbAoSB3c9uQh6L8h/KtsFREPWpbX1lrljJo186Jc4nmci/sGUZ9a0a0J2zgfq2hw==
dependencies:
debug "2.6.9"
@@ -5382,7 +5364,7 @@ serialize-javascript@^6.0.2:
serve-static@1.16.2:
version "1.16.2"
- resolved "https://registry.npmjs.org/serve-static/-/serve-static-1.16.2.tgz"
+ resolved "https://registry.yarnpkg.com/serve-static/-/serve-static-1.16.2.tgz#b6a5343da47f6bdd2673848bf45754941e803296"
integrity sha512-VqpjJZKadQB/PEbEwvFdO43Ax5dFBZ2UECszz8bQ7pi7wt//PWe1P6MN7eCnjsatYtBT6EuiClbjSWP2WrIoTw==
dependencies:
encodeurl "~2.0.0"
@@ -5392,7 +5374,7 @@ serve-static@1.16.2:
session-file-store@^1.5.0:
version "1.5.0"
- resolved "https://registry.npmjs.org/session-file-store/-/session-file-store-1.5.0.tgz"
+ resolved "https://registry.yarnpkg.com/session-file-store/-/session-file-store-1.5.0.tgz#9faffc18c2e28f57fe7c4e4c84cdc92bb20833f4"
integrity sha512-60IZaJNzyu2tIeHutkYE8RiXVx3KRvacOxfLr2Mj92SIsRIroDsH0IlUUR6fJAjoTW4RQISbaOApa2IZpIwFdQ==
dependencies:
bagpipe "^0.3.5"
@@ -5404,7 +5386,7 @@ session-file-store@^1.5.0:
set-function-length@^1.2.2:
version "1.2.2"
- resolved "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.2.tgz"
+ resolved "https://registry.yarnpkg.com/set-function-length/-/set-function-length-1.2.2.tgz#aac72314198eaed975cf77b2c3b6b880695e5449"
integrity sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==
dependencies:
define-data-property "^1.1.4"
@@ -5416,7 +5398,7 @@ set-function-length@^1.2.2:
set-function-name@^2.0.2:
version "2.0.2"
- resolved "https://registry.npmjs.org/set-function-name/-/set-function-name-2.0.2.tgz"
+ resolved "https://registry.yarnpkg.com/set-function-name/-/set-function-name-2.0.2.tgz#16a705c5a0dc2f5e638ca96d8a8cd4e1c2b90985"
integrity sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ==
dependencies:
define-data-property "^1.1.4"
@@ -5426,7 +5408,7 @@ set-function-name@^2.0.2:
set-proto@^1.0.0:
version "1.0.0"
- resolved "https://registry.npmjs.org/set-proto/-/set-proto-1.0.0.tgz"
+ resolved "https://registry.yarnpkg.com/set-proto/-/set-proto-1.0.0.tgz#0760dbcff30b2d7e801fd6e19983e56da337565e"
integrity sha512-RJRdvCo6IAnPdsvP/7m6bsQqNnn1FCBX5ZNtFL98MmFF/4xAIJTIg1YbHW5DC2W5SKZanrC6i4HsJqlajw/dZw==
dependencies:
dunder-proto "^1.0.1"
@@ -5440,12 +5422,12 @@ setimmediate@^1.0.5:
setprototypeof@1.1.1:
version "1.1.1"
- resolved "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.1.tgz"
+ resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.1.1.tgz#7e95acb24aa92f5885e0abef5ba131330d4ae683"
integrity sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw==
setprototypeof@1.2.0:
version "1.2.0"
- resolved "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz"
+ resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.2.0.tgz#66c9a24a73f9fc28cbe66b09fed3d33dcaf1b424"
integrity sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==
sha.js@^2.4.0, sha.js@^2.4.8:
@@ -5466,14 +5448,14 @@ sha1@^1.1.1:
shebang-command@^2.0.0:
version "2.0.0"
- resolved "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz"
+ resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-2.0.0.tgz#ccd0af4f8835fbdc265b82461aaf0c36663f34ea"
integrity sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==
dependencies:
shebang-regex "^3.0.0"
shebang-regex@^3.0.0:
version "3.0.0"
- resolved "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz"
+ resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-3.0.0.tgz#ae16f1644d873ecad843b0307b143362d4c42172"
integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==
shelljs@^0.8.3:
@@ -5487,7 +5469,7 @@ shelljs@^0.8.3:
side-channel-list@^1.0.0:
version "1.0.0"
- resolved "https://registry.npmjs.org/side-channel-list/-/side-channel-list-1.0.0.tgz"
+ resolved "https://registry.yarnpkg.com/side-channel-list/-/side-channel-list-1.0.0.tgz#10cb5984263115d3b7a0e336591e290a830af8ad"
integrity sha512-FCLHtRD/gnpCiCHEiJLOwdmFP+wzCmDEkc9y7NsYxeF4u7Btsn1ZuwgwJGxImImHicJArLP4R0yX4c2KCrMrTA==
dependencies:
es-errors "^1.3.0"
@@ -5495,7 +5477,7 @@ side-channel-list@^1.0.0:
side-channel-map@^1.0.1:
version "1.0.1"
- resolved "https://registry.npmjs.org/side-channel-map/-/side-channel-map-1.0.1.tgz"
+ resolved "https://registry.yarnpkg.com/side-channel-map/-/side-channel-map-1.0.1.tgz#d6bb6b37902c6fef5174e5f533fab4c732a26f42"
integrity sha512-VCjCNfgMsby3tTdo02nbjtM/ewra6jPHmpThenkTYh8pG9ucZ/1P8So4u4FGBek/BjpOVsDCMoLA/iuBKIFXRA==
dependencies:
call-bound "^1.0.2"
@@ -5505,7 +5487,7 @@ side-channel-map@^1.0.1:
side-channel-weakmap@^1.0.2:
version "1.0.2"
- resolved "https://registry.npmjs.org/side-channel-weakmap/-/side-channel-weakmap-1.0.2.tgz"
+ resolved "https://registry.yarnpkg.com/side-channel-weakmap/-/side-channel-weakmap-1.0.2.tgz#11dda19d5368e40ce9ec2bdc1fb0ecbc0790ecea"
integrity sha512-WPS/HvHQTYnHisLo9McqBHOJk2FkHO/tlpvldyrnem4aeQp4hai3gythswg6p01oSoTl58rcpiFAjF2br2Ak2A==
dependencies:
call-bound "^1.0.2"
@@ -5516,7 +5498,7 @@ side-channel-weakmap@^1.0.2:
side-channel@^1.0.6, side-channel@^1.1.0:
version "1.1.0"
- resolved "https://registry.npmjs.org/side-channel/-/side-channel-1.1.0.tgz"
+ resolved "https://registry.yarnpkg.com/side-channel/-/side-channel-1.1.0.tgz#c3fcff9c4da932784873335ec9765fa94ff66bc9"
integrity sha512-ZX99e6tRweoUXqR+VBrslhda51Nh5MTQwou5tnUDgbtyM0dBgmhEDtWGP/xbKn6hqfPRHujUNwz5fy/wbbhnpw==
dependencies:
es-errors "^1.3.0"
@@ -5527,7 +5509,7 @@ side-channel@^1.0.6, side-channel@^1.1.0:
signal-exit@^3.0.2:
version "3.0.7"
- resolved "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz"
+ resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.7.tgz#a9a1767f8af84155114eaabd73f99273c8f59ad9"
integrity sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==
signal-exit@^4.0.1:
@@ -5537,21 +5519,21 @@ signal-exit@^4.0.1:
simple-swizzle@^0.2.2:
version "0.2.2"
- resolved "https://registry.npmjs.org/simple-swizzle/-/simple-swizzle-0.2.2.tgz"
+ resolved "https://registry.yarnpkg.com/simple-swizzle/-/simple-swizzle-0.2.2.tgz#a4da6b635ffcccca33f70d17cb92592de95e557a"
integrity sha512-JA//kQgZtbuY83m+xT+tXJkmJncGMTFT+C+g2h2R9uxkYIrE2yy9sgmcLhCnw57/WSD+Eh3J97FPEDFnbXnDUg==
dependencies:
is-arrayish "^0.3.1"
simple-update-notifier@^2.0.0:
version "2.0.0"
- resolved "https://registry.npmjs.org/simple-update-notifier/-/simple-update-notifier-2.0.0.tgz"
+ resolved "https://registry.yarnpkg.com/simple-update-notifier/-/simple-update-notifier-2.0.0.tgz#d70b92bdab7d6d90dfd73931195a30b6e3d7cebb"
integrity sha512-a2B9Y0KlNXl9u/vsW6sTIu9vGEpfKu2wRV6l1H3XEas/0gUIzGzBoP/IouTcUQbm9JWZLH3COxyn03TYlFax6w==
dependencies:
semver "^7.5.3"
simple-wcswidth@^1.0.1:
version "1.0.1"
- resolved "https://registry.npmjs.org/simple-wcswidth/-/simple-wcswidth-1.0.1.tgz"
+ resolved "https://registry.yarnpkg.com/simple-wcswidth/-/simple-wcswidth-1.0.1.tgz#8ab18ac0ae342f9d9b629604e54d2aa1ecb018b2"
integrity sha512-xMO/8eNREtaROt7tJvWJqHBDTMFN4eiQ5I4JRMuilwfnFcV5W9u7RUkueNkdw0jPqGMX36iCywelS5yilTuOxg==
sisteransi@^1.0.5:
@@ -5561,7 +5543,7 @@ sisteransi@^1.0.5:
siwe@^2.1.4:
version "2.3.2"
- resolved "https://registry.npmjs.org/siwe/-/siwe-2.3.2.tgz"
+ resolved "https://registry.yarnpkg.com/siwe/-/siwe-2.3.2.tgz#0794ae25f734f3068de0ab093ddd2f7867bc2d67"
integrity sha512-aSf+6+Latyttbj5nMu6GF3doMfv2UYj83hhwZgUF20ky6fTS83uVhkQABdIVnEuS8y1bBdk7p6ltb9SmlhTTlA==
dependencies:
"@spruceid/siwe-parser" "^2.1.2"
@@ -5597,9 +5579,9 @@ solc@0.8.26:
tmp "0.0.33"
solidity-coverage@^0.8.1:
- version "0.8.14"
- resolved "https://registry.yarnpkg.com/solidity-coverage/-/solidity-coverage-0.8.14.tgz#db9bfcc10e3bc369fc074b35b267d665bcc6ae2e"
- integrity sha512-ItAAObe5GaEOp20kXC2BZRnph+9P7Rtoqg2mQc2SXGEHgSDF2wWd1Wxz3ntzQWXkbCtIIGdJT918HG00cObwbA==
+ version "0.8.15"
+ resolved "https://registry.yarnpkg.com/solidity-coverage/-/solidity-coverage-0.8.15.tgz#c2d74e11525689f949ce211e63c2ef2c0fe8f225"
+ integrity sha512-qH7290NKww4/t/qFvnSEePEzON0k025IGVlwc8wo8Q6p+h1Tt6fV2M0k3yfsps3TomZYTROsfPXjx7MSnwD5uA==
dependencies:
"@ethersproject/abi" "^5.0.9"
"@solidity-parser/parser" "^0.19.0"
@@ -5650,7 +5632,7 @@ split2@^3.0.0:
split2@^4.1.0:
version "4.2.0"
- resolved "https://registry.npmjs.org/split2/-/split2-4.2.0.tgz"
+ resolved "https://registry.yarnpkg.com/split2/-/split2-4.2.0.tgz#c9c5920904d148bab0b9f67145f245a86aadbfa4"
integrity sha512-UcjcJOWknrNkF6PLX83qcHM6KHgVKNkV62Y8a5uYDVv9ydGQVwAHMKqHdJje1VTWpljG0WYpCDhrCdAOYH4TWg==
sprintf-js@~1.0.2:
@@ -5660,7 +5642,7 @@ sprintf-js@~1.0.2:
sshpk@^1.18.0:
version "1.18.0"
- resolved "https://registry.npmjs.org/sshpk/-/sshpk-1.18.0.tgz"
+ resolved "https://registry.yarnpkg.com/sshpk/-/sshpk-1.18.0.tgz#1663e55cddf4d688b86a46b77f0d5fe363aba028"
integrity sha512-2p2KJZTSqQ/I3+HX42EpYOa2l3f8Erv8MWKsy2I9uf4wA7yFIkXRffYdsx86y6z4vHtV8u7g+pPlr8/4ouAxsQ==
dependencies:
asn1 "~0.2.3"
@@ -5675,7 +5657,7 @@ sshpk@^1.18.0:
stack-trace@0.0.x:
version "0.0.10"
- resolved "https://registry.npmjs.org/stack-trace/-/stack-trace-0.0.10.tgz"
+ resolved "https://registry.yarnpkg.com/stack-trace/-/stack-trace-0.0.10.tgz#547c70b347e8d32b4e108ea1a2a159e5fdde19c0"
integrity sha512-KGzahc7puUKkzyMt+IqAep+TVNbKP+k2Lmwhub39m1AsTSkaDutx56aDCo+HLDzf/D26BIHTJWNiTG1KAJiQCg==
stacktrace-parser@^0.1.10:
@@ -5687,19 +5669,24 @@ stacktrace-parser@^0.1.10:
statuses@2.0.1:
version "2.0.1"
- resolved "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz"
+ resolved "https://registry.yarnpkg.com/statuses/-/statuses-2.0.1.tgz#55cb000ccf1d48728bd23c685a063998cf1a1b63"
integrity sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==
"statuses@>= 1.5.0 < 2":
version "1.5.0"
- resolved "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz"
+ resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.5.0.tgz#161c7dac177659fd9811f43771fa99381478628c"
integrity sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==
stealthy-require@^1.1.1:
version "1.1.1"
- resolved "https://registry.npmjs.org/stealthy-require/-/stealthy-require-1.1.1.tgz"
+ resolved "https://registry.yarnpkg.com/stealthy-require/-/stealthy-require-1.1.1.tgz#35b09875b4ff49f26a777e509b3090a3226bf24b"
integrity sha512-ZnWpYnYugiOVEY5GkcuJK1io5V8QmNYChG62gSit9pQVGErXtrKuPC55ITaVSukmMta5qpMU7vqLt2Lnni4f/g==
+streamsearch@^1.1.0:
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/streamsearch/-/streamsearch-1.1.0.tgz#404dd1e2247ca94af554e841a8ef0eaa238da764"
+ integrity sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg==
+
string-format@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/string-format/-/string-format-2.0.0.tgz#f2df2e7097440d3b65de31b6d40d54c96eaffb9b"
@@ -5734,7 +5721,7 @@ string-width@^5.0.1, string-width@^5.1.2:
string.prototype.trim@^1.2.10:
version "1.2.10"
- resolved "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.10.tgz"
+ resolved "https://registry.yarnpkg.com/string.prototype.trim/-/string.prototype.trim-1.2.10.tgz#40b2dd5ee94c959b4dcfb1d65ce72e90da480c81"
integrity sha512-Rs66F0P/1kedk5lyYyH9uBzuiI/kNRmwJAR9quK6VOtIpZ2G+hMZd+HQbbv25MgCA6gEffoMZYxlTod4WcdrKA==
dependencies:
call-bind "^1.0.8"
@@ -5747,7 +5734,7 @@ string.prototype.trim@^1.2.10:
string.prototype.trimend@^1.0.9:
version "1.0.9"
- resolved "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.9.tgz"
+ resolved "https://registry.yarnpkg.com/string.prototype.trimend/-/string.prototype.trimend-1.0.9.tgz#62e2731272cd285041b36596054e9f66569b6942"
integrity sha512-G7Ok5C6E/j4SGfyLCloXTrngQIQU3PWtXGst3yM7Bea9FRURf1S42ZHlZZtsNque2FN2PoUhfZXYLNWwEr4dLQ==
dependencies:
call-bind "^1.0.8"
@@ -5757,7 +5744,7 @@ string.prototype.trimend@^1.0.9:
string.prototype.trimstart@^1.0.8:
version "1.0.8"
- resolved "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.8.tgz"
+ resolved "https://registry.yarnpkg.com/string.prototype.trimstart/-/string.prototype.trimstart-1.0.8.tgz#7ee834dda8c7c17eff3118472bb35bfedaa34dde"
integrity sha512-UXSH262CSZY1tfu3G3Secr6uGLCFVPMhIqHjlgCUtCCcgihYc/xKs9djMTMUOb2j1mVSeU8EU6NWc/iQKU6Gfg==
dependencies:
call-bind "^1.0.7"
@@ -5766,19 +5753,19 @@ string.prototype.trimstart@^1.0.8:
string_decoder@^1.1.1:
version "1.3.0"
- resolved "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz"
+ resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.3.0.tgz#42f114594a46cf1a8e30b0a84f56c78c3edac21e"
integrity sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==
dependencies:
safe-buffer "~5.2.0"
string_decoder@~0.10.x:
version "0.10.31"
- resolved "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz"
+ resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-0.10.31.tgz#62e203bc41766c6c28c9fc84301dab1c5310fa94"
integrity sha512-ev2QzSzWPYmy9GuqfIVildA4OdcGLeFZQrq5ys6RtiuF+RQQiZWr8TZNyAcuVXyQRYfEO+MsoB/1BuQVhOJuoQ==
string_decoder@~1.1.1:
version "1.1.1"
- resolved "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz"
+ resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.1.1.tgz#9cf1611ba62685d7030ae9e4ba34149c3af03fc8"
integrity sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==
dependencies:
safe-buffer "~5.1.0"
@@ -5813,7 +5800,7 @@ strip-hex-prefix@1.0.0:
strip-json-comments@^3.1.1:
version "3.1.1"
- resolved "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz"
+ resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.1.1.tgz#31f1281b3832630434831c310c01cccda8cbe006"
integrity sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==
supports-color@^3.1.0:
@@ -5825,14 +5812,14 @@ supports-color@^3.1.0:
supports-color@^5.3.0, supports-color@^5.5.0:
version "5.5.0"
- resolved "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz"
+ resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f"
integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==
dependencies:
has-flag "^3.0.0"
supports-color@^7.1.0:
version "7.2.0"
- resolved "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz"
+ resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-7.2.0.tgz#1b7dcdcb32b8138801b3e478ba6a51caa89648da"
integrity sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==
dependencies:
has-flag "^4.0.0"
@@ -5886,7 +5873,7 @@ telegraf@^4.16.3:
text-hex@1.0.x:
version "1.0.0"
- resolved "https://registry.npmjs.org/text-hex/-/text-hex-1.0.0.tgz"
+ resolved "https://registry.yarnpkg.com/text-hex/-/text-hex-1.0.0.tgz#69dc9c1b17446ee79a92bf5b884bb4b9127506f5"
integrity sha512-uuVGNWzgJ4yhRaNSiubPY7OjISw4sw4E5Uv0wbjp+OzcbmVU/rsT8ujgcXJhn9ypzsgr5vlzpPqP+MBBKcGvbg==
through2@^4.0.0:
@@ -5897,29 +5884,29 @@ through2@^4.0.0:
readable-stream "3"
tinyglobby@^0.2.6:
- version "0.2.12"
- resolved "https://registry.yarnpkg.com/tinyglobby/-/tinyglobby-0.2.12.tgz#ac941a42e0c5773bd0b5d08f32de82e74a1a61b5"
- integrity sha512-qkf4trmKSIiMTs/E63cxH+ojC2unam7rJ0WrauAzpT3ECNTxGRMlaXxVbfxMUC/w0LaYk6jQ4y/nGR9uBO3tww==
+ version "0.2.13"
+ resolved "https://registry.yarnpkg.com/tinyglobby/-/tinyglobby-0.2.13.tgz#a0e46515ce6cbcd65331537e57484af5a7b2ff7e"
+ integrity sha512-mEwzpUgrLySlveBwEVDMKk5B57bhLPYovRfPAXD5gA/98Opn0rCDj3GtLwFvCvH5RK9uPCExUROW5NjDwvqkxw==
dependencies:
- fdir "^6.4.3"
+ fdir "^6.4.4"
picomatch "^4.0.2"
tlds@1.255.0:
version "1.255.0"
- resolved "https://registry.npmjs.org/tlds/-/tlds-1.255.0.tgz"
+ resolved "https://registry.yarnpkg.com/tlds/-/tlds-1.255.0.tgz#53c2571766c10da95928c716c48dfcf141341e3f"
integrity sha512-tcwMRIioTcF/FcxLev8MJWxCp+GUALRhFEqbDoZrnowmKSGqPrl5pqS+Sut2m8BgJ6S4FExCSSpGffZ0Tks6Aw==
-tldts-core@^6.1.82:
- version "6.1.82"
- resolved "https://registry.npmjs.org/tldts-core/-/tldts-core-6.1.82.tgz"
- integrity sha512-Jabl32m21tt/d/PbDO88R43F8aY98Piiz6BVH9ShUlOAiiAELhEqwrAmBocjAqnCfoUeIsRU+h3IEzZd318F3w==
+tldts-core@^6.1.86:
+ version "6.1.86"
+ resolved "https://registry.yarnpkg.com/tldts-core/-/tldts-core-6.1.86.tgz#a93e6ed9d505cb54c542ce43feb14c73913265d8"
+ integrity sha512-Je6p7pkk+KMzMv2XXKmAE3McmolOQFdxkKw0R8EYNr7sELW46JqnNeTX8ybPiQgvg1ymCoF8LXs5fzFaZvJPTA==
tldts@^6.1.32:
- version "6.1.82"
- resolved "https://registry.npmjs.org/tldts/-/tldts-6.1.82.tgz"
- integrity sha512-KCTjNL9F7j8MzxgfTgjT+v21oYH38OidFty7dH00maWANAI2IsLw2AnThtTJi9HKALHZKQQWnNebYheadacD+g==
+ version "6.1.86"
+ resolved "https://registry.yarnpkg.com/tldts/-/tldts-6.1.86.tgz#087e0555b31b9725ee48ca7e77edc56115cd82f7"
+ integrity sha512-WMi/OQ2axVTf/ykqCQgXiIct+mSQDFdH2fkwhPwgEwvJ1kSzZRiinb0zF2Xb8u4+OqPChmyI6MEu4EezNJz+FQ==
dependencies:
- tldts-core "^6.1.82"
+ tldts-core "^6.1.86"
tmp@0.0.33:
version "0.0.33"
@@ -5930,29 +5917,29 @@ tmp@0.0.33:
to-regex-range@^5.0.1:
version "5.0.1"
- resolved "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz"
+ resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-5.0.1.tgz#1648c44aae7c8d988a326018ed72f5b4dd0392e4"
integrity sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==
dependencies:
is-number "^7.0.0"
toidentifier@1.0.0:
version "1.0.0"
- resolved "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.0.tgz"
+ resolved "https://registry.yarnpkg.com/toidentifier/-/toidentifier-1.0.0.tgz#7e1be3470f1e77948bc43d94a3c8f4d7752ba553"
integrity sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw==
toidentifier@1.0.1:
version "1.0.1"
- resolved "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz"
+ resolved "https://registry.yarnpkg.com/toidentifier/-/toidentifier-1.0.1.tgz#3be34321a88a820ed1bd80dfaa33e479fbb8dd35"
integrity sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==
touch@^3.1.0:
version "3.1.1"
- resolved "https://registry.npmjs.org/touch/-/touch-3.1.1.tgz"
+ resolved "https://registry.yarnpkg.com/touch/-/touch-3.1.1.tgz#097a23d7b161476435e5c1344a95c0f75b4a5694"
integrity sha512-r0eojU4bI8MnHr8c5bNo7lJDdI2qXlWWJk6a9EAFG7vbhTjElYhBVS3/miuE0uOuoLdb8Mc/rVfsmm6eo5o9GA==
tough-cookie@^4.1.3:
version "4.1.4"
- resolved "https://registry.npmjs.org/tough-cookie/-/tough-cookie-4.1.4.tgz"
+ resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-4.1.4.tgz#945f1461b45b5a8c76821c33ea49c3ac192c1b36"
integrity sha512-Loo5UUvLD9ScZ6jh8beX1T6sO1w2/MpCRpEP7V280GKMVUQ0Jzar2U3UJPsrdbziLEMMhu3Ujnq//rhiFuIeag==
dependencies:
psl "^1.1.33"
@@ -5962,19 +5949,19 @@ tough-cookie@^4.1.3:
tough-cookie@^5.0.0:
version "5.1.2"
- resolved "https://registry.npmjs.org/tough-cookie/-/tough-cookie-5.1.2.tgz"
+ resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-5.1.2.tgz#66d774b4a1d9e12dc75089725af3ac75ec31bed7"
integrity sha512-FVDYdxtnj0G6Qm/DhNPSb8Ju59ULcup3tuJxkFb5K8Bv2pUXILbf0xZWU8PX8Ov19OXljbUyveOFwRMwkXzO+A==
dependencies:
tldts "^6.1.32"
tr46@~0.0.3:
version "0.0.3"
- resolved "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz"
+ resolved "https://registry.yarnpkg.com/tr46/-/tr46-0.0.3.tgz#8184fd347dac9cdc185992f3a6622e14b9d9ab6a"
integrity sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==
triple-beam@^1.3.0:
version "1.4.1"
- resolved "https://registry.npmjs.org/triple-beam/-/triple-beam-1.4.1.tgz"
+ resolved "https://registry.yarnpkg.com/triple-beam/-/triple-beam-1.4.1.tgz#6fde70271dc6e5d73ca0c3b24e2d92afb7441984"
integrity sha512-aZbgViZrg1QNcG+LULa7nhZpJTZSLm/mXnHXnbAbjmN5aSa0y7V+wvv6+4WaBtpISJzThKy+PIPxc1Nq1EJ9mg==
ts-command-line-args@^2.2.0:
@@ -6013,7 +6000,7 @@ ts-node@>=8.0.0:
tslib@2.7.0:
version "2.7.0"
- resolved "https://registry.npmjs.org/tslib/-/tslib-2.7.0.tgz"
+ resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.7.0.tgz#d9b40c5c40ab59e8738f297df3087bf1a2690c01"
integrity sha512-gLXCKdN1/j47AiHiOkJN69hJmcbGTHI0ImLmbYLHykhgeN0jVGola9yVjFgzCUklsZQMW55o+dW7IXv3RCXDzA==
tslib@^1.9.3:
@@ -6028,34 +6015,24 @@ tsort@0.0.1:
tsscmp@1.0.6:
version "1.0.6"
- resolved "https://registry.npmjs.org/tsscmp/-/tsscmp-1.0.6.tgz"
+ resolved "https://registry.yarnpkg.com/tsscmp/-/tsscmp-1.0.6.tgz#85b99583ac3589ec4bfef825b5000aa911d605eb"
integrity sha512-LxhtAkPDTkVCMQjt2h6eBVY28KCjikZqZfMcC15YBeNjkgUpdCfBu5HoiOTDu86v6smE8yOjyEktJ8hlbANHQA==
tunnel-agent@^0.6.0:
version "0.6.0"
- resolved "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz"
+ resolved "https://registry.yarnpkg.com/tunnel-agent/-/tunnel-agent-0.6.0.tgz#27a5dea06b36b04a0a9966774b290868f0fc40fd"
integrity sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w==
dependencies:
safe-buffer "^5.0.1"
-tweetnacl-util@^0.15.1:
- version "0.15.1"
- resolved "https://registry.yarnpkg.com/tweetnacl-util/-/tweetnacl-util-0.15.1.tgz#b80fcdb5c97bcc508be18c44a4be50f022eea00b"
- integrity sha512-RKJBIj8lySrShN4w6i/BonWp2Z/uxwC3h4y7xsRrpP59ZboCd0GpEVsOnMDYLMmKBpYhb5TgHzZXy7wTfYFBRw==
-
tweetnacl@^0.14.3, tweetnacl@~0.14.0:
version "0.14.5"
- resolved "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz"
+ resolved "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-0.14.5.tgz#5ae68177f192d4456269d108afa93ff8743f4f64"
integrity sha512-KXXFFdAbFXY4geFIwoyNK+f5Z1b7swfXABfL7HXCmoIWMKU3dmS26672A4EeQtDzLKy7SXmfBu51JolvEKwtGA==
-tweetnacl@^1.0.3:
- version "1.0.3"
- resolved "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-1.0.3.tgz#ac0af71680458d8a6378d0d0d050ab1407d35596"
- integrity sha512-6rt+RN7aOi1nGMyC4Xa5DdYiukl2UWCbcJft7YhxReBGQD7OAM8Pbxw6YMo4r2diNEA8FEmu32YOn9rhaiE5yw==
-
type-check@^0.4.0, type-check@~0.4.0:
version "0.4.0"
- resolved "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz"
+ resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.4.0.tgz#07b8203bfa7056c0657050e3ccd2c37730bab8f1"
integrity sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==
dependencies:
prelude-ls "^1.2.1"
@@ -6087,9 +6064,9 @@ type-fest@^0.7.1:
resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.7.1.tgz#8dda65feaf03ed78f0a3f9678f1869147f7c5c48"
integrity sha512-Ne2YiiGN8bmrmJJEuTWTLJR32nh/JdL1+PSicowtNb0WFpn59GK8/lfD61bVtzguz7b3PBt74nxpv/Pw5po5Rg==
-type-is@~1.6.18:
+type-is@^1.6.4, type-is@~1.6.18:
version "1.6.18"
- resolved "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz"
+ resolved "https://registry.yarnpkg.com/type-is/-/type-is-1.6.18.tgz#4e552cd05df09467dcbc4ef739de89f2cf37c131"
integrity sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==
dependencies:
media-typer "0.3.0"
@@ -6113,7 +6090,7 @@ typechain@^8.3.0:
typed-array-buffer@^1.0.3:
version "1.0.3"
- resolved "https://registry.npmjs.org/typed-array-buffer/-/typed-array-buffer-1.0.3.tgz"
+ resolved "https://registry.yarnpkg.com/typed-array-buffer/-/typed-array-buffer-1.0.3.tgz#a72395450a4869ec033fd549371b47af3a2ee536"
integrity sha512-nAYYwfY3qnzX30IkA6AQZjVbtK6duGontcQm1WSG1MD94YLqK0515GNApXkoxKOWMusVssAHWLh9SeaoefYFGw==
dependencies:
call-bound "^1.0.3"
@@ -6122,7 +6099,7 @@ typed-array-buffer@^1.0.3:
typed-array-byte-length@^1.0.3:
version "1.0.3"
- resolved "https://registry.npmjs.org/typed-array-byte-length/-/typed-array-byte-length-1.0.3.tgz"
+ resolved "https://registry.yarnpkg.com/typed-array-byte-length/-/typed-array-byte-length-1.0.3.tgz#8407a04f7d78684f3d252aa1a143d2b77b4160ce"
integrity sha512-BaXgOuIxz8n8pIq3e7Atg/7s+DpiYrxn4vdot3w9KbnBhcRQq6o3xemQdIfynqSeXeDrF32x+WvfzmOjPiY9lg==
dependencies:
call-bind "^1.0.8"
@@ -6133,7 +6110,7 @@ typed-array-byte-length@^1.0.3:
typed-array-byte-offset@^1.0.4:
version "1.0.4"
- resolved "https://registry.npmjs.org/typed-array-byte-offset/-/typed-array-byte-offset-1.0.4.tgz"
+ resolved "https://registry.yarnpkg.com/typed-array-byte-offset/-/typed-array-byte-offset-1.0.4.tgz#ae3698b8ec91a8ab945016108aef00d5bff12355"
integrity sha512-bTlAFB/FBYMcuX81gbL4OcpH5PmlFHqlCCpAl8AlEzMz5k53oNDvN8p1PNOWLEmI2x4orp3raOFB51tv9X+MFQ==
dependencies:
available-typed-arrays "^1.0.7"
@@ -6146,7 +6123,7 @@ typed-array-byte-offset@^1.0.4:
typed-array-length@^1.0.7:
version "1.0.7"
- resolved "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.7.tgz"
+ resolved "https://registry.yarnpkg.com/typed-array-length/-/typed-array-length-1.0.7.tgz#ee4deff984b64be1e118b0de8c9c877d5ce73d3d"
integrity sha512-3KS2b+kL7fsuk/eJZ7EQdnEmQoaho/r6KUef7hxvltNA5DR8NAUM+8wJMbJyZ4G9/7i3v5zPBIMN5aybAh2/Jg==
dependencies:
call-bind "^1.0.7"
@@ -6158,15 +6135,20 @@ typed-array-length@^1.0.7:
typedarray-to-buffer@^3.1.5:
version "3.1.5"
- resolved "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz"
+ resolved "https://registry.yarnpkg.com/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz#a97ee7a9ff42691b9f783ff1bc5112fe3fca9080"
integrity sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==
dependencies:
is-typedarray "^1.0.0"
+typedarray@^0.0.6:
+ version "0.0.6"
+ resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777"
+ integrity sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA==
+
typescript@>=4.5.0:
- version "5.8.2"
- resolved "https://registry.yarnpkg.com/typescript/-/typescript-5.8.2.tgz#8170b3702f74b79db2e5a96207c15e65807999e4"
- integrity sha512-aJn6wq13/afZp/jT9QZmwEjDqqvSGp1VT5GVg+f/t6/oVyrgXM6BY1h9BRh/O5p3PlUPAe+WuiEZOmb/49RqoQ==
+ version "5.8.3"
+ resolved "https://registry.yarnpkg.com/typescript/-/typescript-5.8.3.tgz#92f8a3e5e3cf497356f4178c34cd65a7f5e8440e"
+ integrity sha512-p1diW6TqL9L07nNxvRMM7hMMw4c5XOo/1ibL4aAIGmSAt9slTE1Xgw5KWuof2uTOvCg9BY7ZRi+GaF+7sfgPeQ==
typical@^4.0.0:
version "4.0.0"
@@ -6180,7 +6162,7 @@ typical@^5.2.0:
uc.micro@^2.0.0:
version "2.1.0"
- resolved "https://registry.npmjs.org/uc.micro/-/uc.micro-2.1.0.tgz"
+ resolved "https://registry.yarnpkg.com/uc.micro/-/uc.micro-2.1.0.tgz#f8d3f7d0ec4c3dea35a7e3c8efa4cb8b45c9e7ee"
integrity sha512-ARDJmphmdvUk6Glw7y9DQ2bFkKBHwQHLi2lsaH6PPmz/Ka9sFOBsBluozhDltWmnv9u/cF6Rt87znRTPV+yp/A==
uglify-js@^3.1.4:
@@ -6190,14 +6172,14 @@ uglify-js@^3.1.4:
uid-safe@2.1.5, uid-safe@~2.1.5:
version "2.1.5"
- resolved "https://registry.npmjs.org/uid-safe/-/uid-safe-2.1.5.tgz"
+ resolved "https://registry.yarnpkg.com/uid-safe/-/uid-safe-2.1.5.tgz#2b3d5c7240e8fc2e58f8aa269e5ee49c0857bd3a"
integrity sha512-KPHm4VL5dDXKz01UuEd88Df+KzynaohSL9fBh096KWAxSKZQDI2uBrVqtvRM4rwrIrRRKsdLNML/lnaaVSRioA==
dependencies:
random-bytes "~1.0.0"
unbox-primitive@^1.1.0:
version "1.1.0"
- resolved "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.1.0.tgz"
+ resolved "https://registry.yarnpkg.com/unbox-primitive/-/unbox-primitive-1.1.0.tgz#8d9d2c9edeea8460c7f35033a88867944934d1e2"
integrity sha512-nWJ91DjeOkej/TA8pXQ3myruKpKEYgqvpw9lz4OPHj/NWFNluYrjbz9j01CJ8yKQd2g4jFoOkINCTW2I5LEEyw==
dependencies:
call-bound "^1.0.3"
@@ -6207,39 +6189,39 @@ unbox-primitive@^1.1.0:
undefsafe@^2.0.5:
version "2.0.5"
- resolved "https://registry.npmjs.org/undefsafe/-/undefsafe-2.0.5.tgz"
+ resolved "https://registry.yarnpkg.com/undefsafe/-/undefsafe-2.0.5.tgz#38733b9327bdcd226db889fb723a6efd162e6e2c"
integrity sha512-WxONCrssBM8TSPRqN5EmsjVrsv4A8X12J4ArBiiayv3DyyG3ZlIg6yysuuSYdZsVz3TKcTg2fd//Ujd4CHV1iA==
undici-types@~5.26.4:
version "5.26.5"
- resolved "https://registry.npmjs.org/undici-types/-/undici-types-5.26.5.tgz"
+ resolved "https://registry.yarnpkg.com/undici-types/-/undici-types-5.26.5.tgz#bcd539893d00b56e964fd2657a4866b221a65617"
integrity sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==
undici-types@~6.19.2:
version "6.19.8"
- resolved "https://registry.npmjs.org/undici-types/-/undici-types-6.19.8.tgz"
+ resolved "https://registry.yarnpkg.com/undici-types/-/undici-types-6.19.8.tgz#35111c9d1437ab83a7cdc0abae2f26d88eda0a02"
integrity sha512-ve2KP6f/JnbPBFyobGHuerC9g1FYGn/F8n1LWTwNxCEzd6IfqTwUQcNXgEtmmQ6DlRrC1hrSrBnCZPokRrDHjw==
-undici-types@~6.20.0:
- version "6.20.0"
- resolved "https://registry.npmjs.org/undici-types/-/undici-types-6.20.0.tgz"
- integrity sha512-Ny6QZ2Nju20vw1SRHe3d9jVu6gJ+4e3+MMpqu7pqE5HT6WsTSlce++GQmK5UXS8mzV8DSYHrQH+Xrf2jVcuKNg==
+undici-types@~6.21.0:
+ version "6.21.0"
+ resolved "https://registry.yarnpkg.com/undici-types/-/undici-types-6.21.0.tgz#691d00af3909be93a7faa13be61b3a5b50ef12cb"
+ integrity sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ==
undici@^5.14.0:
- version "5.28.5"
- resolved "https://registry.yarnpkg.com/undici/-/undici-5.28.5.tgz#b2b94b6bf8f1d919bc5a6f31f2c01deb02e54d4b"
- integrity sha512-zICwjrDrcrUE0pyyJc1I2QzBkLM8FINsgOrt6WjA+BgajVq9Nxu2PbFFXUrAggLfDXlZGZBVZYw7WNV5KiBiBA==
+ version "5.29.0"
+ resolved "https://registry.yarnpkg.com/undici/-/undici-5.29.0.tgz#419595449ae3f2cdcba3580a2e8903399bd1f5a3"
+ integrity sha512-raqeBD6NQK4SkWhQzeYKd1KmIG6dllBOTt55Rmkt4HtI9mwdWtJljnrXjAFUBLTSN67HWrOIZ3EPF4kjUw80Bg==
dependencies:
"@fastify/busboy" "^2.0.0"
universalify@^0.1.0:
version "0.1.2"
- resolved "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz"
+ resolved "https://registry.yarnpkg.com/universalify/-/universalify-0.1.2.tgz#b646f69be3942dabcecc9d6639c80dc105efaa66"
integrity sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==
universalify@^0.2.0:
version "0.2.0"
- resolved "https://registry.npmjs.org/universalify/-/universalify-0.2.0.tgz"
+ resolved "https://registry.yarnpkg.com/universalify/-/universalify-0.2.0.tgz#6451760566fa857534745ab1dde952d1b1761be0"
integrity sha512-CJ1QgKmNg3CwvAv/kOFmtnEN05f0D/cn9QntgNOQlQF9dgvVTHj3t+8JPdjqawCHk7V/KA+fbUqzZ9XWhcqPUg==
universalify@^2.0.0:
@@ -6249,19 +6231,19 @@ universalify@^2.0.0:
unpipe@1.0.0, unpipe@~1.0.0:
version "1.0.0"
- resolved "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz"
+ resolved "https://registry.yarnpkg.com/unpipe/-/unpipe-1.0.0.tgz#b2bf4ee8514aae6165b4817829d21b2ef49904ec"
integrity sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==
uri-js@^4.2.2, uri-js@^4.4.1:
version "4.4.1"
- resolved "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz"
+ resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.4.1.tgz#9b1a52595225859e55f669d928f88c6c57f2a77e"
integrity sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==
dependencies:
punycode "^2.1.0"
url-parse@^1.5.3:
version "1.5.10"
- resolved "https://registry.npmjs.org/url-parse/-/url-parse-1.5.10.tgz"
+ resolved "https://registry.yarnpkg.com/url-parse/-/url-parse-1.5.10.tgz#9d3c2f736c1d75dd3bd2be507dcc111f1e2ea9c1"
integrity sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ==
dependencies:
querystringify "^2.1.1"
@@ -6269,7 +6251,7 @@ url-parse@^1.5.3:
utf7@>=1.0.2, utf7@^1.0.2:
version "1.0.2"
- resolved "https://registry.npmjs.org/utf7/-/utf7-1.0.2.tgz"
+ resolved "https://registry.yarnpkg.com/utf7/-/utf7-1.0.2.tgz#955f490aae653ba220b9456a0a8776c199360991"
integrity sha512-qQrPtYLLLl12NF4DrM9CvfkxkYI97xOb5dsnGZHE3teFr0tWiEZ9UdgMPczv24vl708cYMpe6mGXGHrotIp3Bw==
dependencies:
semver "~5.3.0"
@@ -6281,22 +6263,22 @@ utf8@3.0.0:
util-deprecate@^1.0.1, util-deprecate@~1.0.1:
version "1.0.2"
- resolved "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz"
+ resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf"
integrity sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==
utils-merge@1.0.1:
version "1.0.1"
- resolved "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz"
+ resolved "https://registry.yarnpkg.com/utils-merge/-/utils-merge-1.0.1.tgz#9f95710f50a267947b2ccc124741c1028427e713"
integrity sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==
uuid@8.3.2, uuid@^8.3.2:
version "8.3.2"
- resolved "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz"
+ resolved "https://registry.yarnpkg.com/uuid/-/uuid-8.3.2.tgz#80d5b5ced271bb9af6c445f21a1a04c606cefbe2"
integrity sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==
uuid@^10.0.0:
version "10.0.0"
- resolved "https://registry.npmjs.org/uuid/-/uuid-10.0.0.tgz"
+ resolved "https://registry.yarnpkg.com/uuid/-/uuid-10.0.0.tgz#5a95aa454e6e002725c79055fd42aaba30ca6294"
integrity sha512-8XkAphELsDnEGrDxUOHB3RGvXz6TeuYSGEZBOjtTtPm2lwhGBjLgOzLHB63IUWfBpNucQjND6d3AOudO+H3RWQ==
v8-compile-cache-lib@^3.0.1:
@@ -6306,44 +6288,30 @@ v8-compile-cache-lib@^3.0.1:
valid-url@^1.0.9:
version "1.0.9"
- resolved "https://registry.npmjs.org/valid-url/-/valid-url-1.0.9.tgz"
+ resolved "https://registry.yarnpkg.com/valid-url/-/valid-url-1.0.9.tgz#1c14479b40f1397a75782f115e4086447433a200"
integrity sha512-QQDsV8OnSf5Uc30CKSwG9lnhMPe6exHtTXLRYX8uMwKENy640pU+2BgBL0LRbDh/eYRahNCS7aewCx0wf3NYVA==
vary@^1, vary@~1.1.2:
version "1.1.2"
- resolved "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz"
+ resolved "https://registry.yarnpkg.com/vary/-/vary-1.1.2.tgz#2299f02c6ded30d4a5961b0b9f74524a18f634fc"
integrity sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==
verror@1.10.0:
version "1.10.0"
- resolved "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz"
+ resolved "https://registry.yarnpkg.com/verror/-/verror-1.10.0.tgz#3a105ca17053af55d6e270c1f8288682e18da400"
integrity sha512-ZZKSmDAEFOijERBLkmYfJ+vmk3w+7hOLYDNkRCuRuMJGEmqYNCNLyBBFwWKVMhfwaEF3WOd0Zlw86U/WC/+nYw==
dependencies:
assert-plus "^1.0.0"
core-util-is "1.0.2"
extsprintf "^1.2.0"
-viem@2.7.14:
- version "2.7.14"
- resolved "https://registry.yarnpkg.com/viem/-/viem-2.7.14.tgz#347d316cb5400f0b896b2205b1bc8073aa5e27e0"
- integrity sha512-5b1KB1gXli02GOQHZIUsRluNUwssl2t4hqdFAzyWPwJ744N83jAOBOjOkrGz7K3qMIv9b0GQt3DoZIErSQTPkQ==
+viem@^2.23.15, viem@^2.27.0:
+ version "2.28.0"
+ resolved "https://registry.yarnpkg.com/viem/-/viem-2.28.0.tgz#b04bea64f067d6bfdb8603b39561b732a1e64066"
+ integrity sha512-Z4W5O1pe+6pirYTFm451FcZmfGAUxUWt2L/eWC+YfTF28j/8rd7q6MBAi05lMN4KhLJjhN0s5YGIPB+kf1L20g==
dependencies:
- "@adraffy/ens-normalize" "1.10.0"
- "@noble/curves" "1.2.0"
- "@noble/hashes" "1.3.2"
- "@scure/bip32" "1.3.2"
- "@scure/bip39" "1.2.1"
- abitype "1.0.0"
- isows "1.0.3"
- ws "8.13.0"
-
-viem@^2.23.15:
- version "2.23.15"
- resolved "https://registry.yarnpkg.com/viem/-/viem-2.23.15.tgz#645d92e125a67b3f7beb601a18b51b63174c3324"
- integrity sha512-2t9lROkSzj/ciEZ08NqAHZ6c+J1wKLwJ4qpUxcHdVHcLBt6GfO9+ycuZycTT05ckfJ6TbwnMXMa3bMonvhtUMw==
- dependencies:
- "@noble/curves" "1.8.1"
- "@noble/hashes" "1.7.1"
+ "@noble/curves" "1.8.2"
+ "@noble/hashes" "1.7.2"
"@scure/bip32" "1.6.2"
"@scure/bip39" "1.5.4"
abitype "1.0.8"
@@ -6353,7 +6321,7 @@ viem@^2.23.15:
web-streams-polyfill@4.0.0-beta.3:
version "4.0.0-beta.3"
- resolved "https://registry.npmjs.org/web-streams-polyfill/-/web-streams-polyfill-4.0.0-beta.3.tgz"
+ resolved "https://registry.yarnpkg.com/web-streams-polyfill/-/web-streams-polyfill-4.0.0-beta.3.tgz#2898486b74f5156095e473efe989dcf185047a38"
integrity sha512-QW95TCTaHmsYfHDybGMwO5IJIM93I/6vTRk+daHTWFPhwh+C8Cg7j7XyKrwrj8Ib6vYXe0ocYNrmzY4xAAN6ug==
web3-utils@^1.3.6:
@@ -6372,17 +6340,17 @@ web3-utils@^1.3.6:
webidl-conversions@^3.0.0:
version "3.0.1"
- resolved "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz"
+ resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-3.0.1.tgz#24534275e2a7bc6be7bc86611cc16ae0a5654871"
integrity sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==
whatwg-fetch@^3.6.20:
version "3.6.20"
- resolved "https://registry.npmjs.org/whatwg-fetch/-/whatwg-fetch-3.6.20.tgz"
+ resolved "https://registry.yarnpkg.com/whatwg-fetch/-/whatwg-fetch-3.6.20.tgz#580ce6d791facec91d37c72890995a0b48d31c70"
integrity sha512-EqhiFU6daOA8kpjOWTL0olhVOF3i7OrFzSYiGsEMB8GcXS+RrzauAERX65xMeNWVqxA6HXH2m69Z9LaKKdisfg==
whatwg-url@^5.0.0:
version "5.0.0"
- resolved "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz"
+ resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-5.0.0.tgz#966454e8765462e37644d3626f6742ce8b70965d"
integrity sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==
dependencies:
tr46 "~0.0.3"
@@ -6390,7 +6358,7 @@ whatwg-url@^5.0.0:
which-boxed-primitive@^1.1.0, which-boxed-primitive@^1.1.1:
version "1.1.1"
- resolved "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.1.1.tgz"
+ resolved "https://registry.yarnpkg.com/which-boxed-primitive/-/which-boxed-primitive-1.1.1.tgz#d76ec27df7fa165f18d5808374a5fe23c29b176e"
integrity sha512-TbX3mj8n0odCBFVlY8AxkqcHASw3L60jIuF8jFP78az3C2YhmGvqbHBpAjTRH2/xqYunrJ9g1jSyjCjpoWzIAA==
dependencies:
is-bigint "^1.1.0"
@@ -6401,7 +6369,7 @@ which-boxed-primitive@^1.1.0, which-boxed-primitive@^1.1.1:
which-builtin-type@^1.2.1:
version "1.2.1"
- resolved "https://registry.npmjs.org/which-builtin-type/-/which-builtin-type-1.2.1.tgz"
+ resolved "https://registry.yarnpkg.com/which-builtin-type/-/which-builtin-type-1.2.1.tgz#89183da1b4907ab089a6b02029cc5d8d6574270e"
integrity sha512-6iBczoX+kDQ7a3+YJBnh3T+KZRxM/iYNPXicqk66/Qfm1b93iu+yOImkg0zHbj5LNOcNv1TEADiZ0xa34B4q6Q==
dependencies:
call-bound "^1.0.2"
@@ -6420,7 +6388,7 @@ which-builtin-type@^1.2.1:
which-collection@^1.0.2:
version "1.0.2"
- resolved "https://registry.npmjs.org/which-collection/-/which-collection-1.0.2.tgz"
+ resolved "https://registry.yarnpkg.com/which-collection/-/which-collection-1.0.2.tgz#627ef76243920a107e7ce8e96191debe4b16c2a0"
integrity sha512-K4jVyjnBdgvc86Y6BkaLZEN933SwYOuBFkdmBu9ZfkcAbdVbpITnDmjvZ/aQjRXQrv5EPkTnD1s39GiiqbngCw==
dependencies:
is-map "^2.0.3"
@@ -6429,14 +6397,15 @@ which-collection@^1.0.2:
is-weakset "^2.0.3"
which-typed-array@^1.1.16, which-typed-array@^1.1.18:
- version "1.1.18"
- resolved "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.18.tgz"
- integrity sha512-qEcY+KJYlWyLH9vNbsr6/5j59AXk5ni5aakf8ldzBvGde6Iz4sxZGkJyWSAueTG7QhOvNRYb1lDdFmL5Td0QKA==
+ version "1.1.19"
+ resolved "https://registry.yarnpkg.com/which-typed-array/-/which-typed-array-1.1.19.tgz#df03842e870b6b88e117524a4b364b6fc689f956"
+ integrity sha512-rEvr90Bck4WZt9HHFC4DJMsjvu7x+r6bImz0/BrbWb7A2djJ8hnZMrWnHo9F8ssv0OMErasDhftrfROTyqSDrw==
dependencies:
available-typed-arrays "^1.0.7"
call-bind "^1.0.8"
- call-bound "^1.0.3"
- for-each "^0.3.3"
+ call-bound "^1.0.4"
+ for-each "^0.3.5"
+ get-proto "^1.0.1"
gopd "^1.2.0"
has-tostringtag "^1.0.2"
@@ -6449,7 +6418,7 @@ which@^1.1.1, which@^1.3.1:
which@^2.0.1:
version "2.0.2"
- resolved "https://registry.npmjs.org/which/-/which-2.0.2.tgz"
+ resolved "https://registry.yarnpkg.com/which/-/which-2.0.2.tgz#7c6a8dd0a636a0327e10b59c9286eee93f3f51b1"
integrity sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==
dependencies:
isexe "^2.0.0"
@@ -6463,7 +6432,7 @@ widest-line@^3.1.0:
winston-transport@^4.9.0:
version "4.9.0"
- resolved "https://registry.npmjs.org/winston-transport/-/winston-transport-4.9.0.tgz"
+ resolved "https://registry.yarnpkg.com/winston-transport/-/winston-transport-4.9.0.tgz#3bba345de10297654ea6f33519424560003b3bf9"
integrity sha512-8drMJ4rkgaPo1Me4zD/3WLfI/zPdA9o2IipKODunnGDcuqbHwjsbB79ylv04LCGGzU0xQ6vTznOMpQGaLhhm6A==
dependencies:
logform "^2.7.0"
@@ -6472,7 +6441,7 @@ winston-transport@^4.9.0:
winston@^3.17.0:
version "3.17.0"
- resolved "https://registry.npmjs.org/winston/-/winston-3.17.0.tgz"
+ resolved "https://registry.yarnpkg.com/winston/-/winston-3.17.0.tgz#74b8665ce9b4ea7b29d0922cfccf852a08a11423"
integrity sha512-DLiFIXYC5fMPxaRg832S6F5mJYvePtmO5G9v9IgUFPhXm9/GkXarH/TUrBAVzhTCzAj9anE/+GjrgXp/54nOgw==
dependencies:
"@colors/colors" "^1.6.0"
@@ -6489,7 +6458,7 @@ winston@^3.17.0:
word-wrap@^1.2.5, word-wrap@~1.2.3:
version "1.2.5"
- resolved "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.5.tgz"
+ resolved "https://registry.yarnpkg.com/word-wrap/-/word-wrap-1.2.5.tgz#d2c45c6dd4fbce621a66f136cbe328afd0410b34"
integrity sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==
wordwrap@^1.0.0:
@@ -6539,12 +6508,12 @@ wrap-ansi@^8.1.0:
wrappy@1:
version "1.0.2"
- resolved "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz"
+ resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f"
integrity sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==
write-file-atomic@3.0.3:
version "3.0.3"
- resolved "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-3.0.3.tgz"
+ resolved "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-3.0.3.tgz#56bd5c5a5c70481cd19c571bd39ab965a5de56e8"
integrity sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==
dependencies:
imurmurhash "^0.1.4"
@@ -6552,14 +6521,14 @@ write-file-atomic@3.0.3:
signal-exit "^3.0.2"
typedarray-to-buffer "^3.1.5"
-ws@8.13.0, ws@8.17.1, ws@8.18.1, ws@^7.4.6, ws@^8.18.1:
+ws@8.17.1, ws@8.18.1, ws@^7.4.6, ws@^8.18.1:
version "8.18.1"
resolved "https://registry.yarnpkg.com/ws/-/ws-8.18.1.tgz#ea131d3784e1dfdff91adb0a4a116b127515e3cb"
integrity sha512-RKW2aJZMXeMxVpnZ6bck+RswznaxmzdULiBr6KY7XkTnW8uvt0iT9H5DkHUChXrc+uurzwa0rVI16n/Xzjdz1w==
xtend@^4.0.0:
version "4.0.2"
- resolved "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz"
+ resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.2.tgz#bb72779f5fa465186b1f438f674fa347fdb5db54"
integrity sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==
y18n@^5.0.5:
@@ -6568,9 +6537,9 @@ y18n@^5.0.5:
integrity sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==
yaml@^2.2.1:
- version "2.7.0"
- resolved "https://registry.npmjs.org/yaml/-/yaml-2.7.0.tgz"
- integrity sha512-+hSoy/QHluxmC9kCIJyL/uyFmLmc+e5CFR5Wa+bpIhIj85LVb9ZH2nVnqrHoSvKogwODv0ClqZkmiSSaIH5LTA==
+ version "2.7.1"
+ resolved "https://registry.yarnpkg.com/yaml/-/yaml-2.7.1.tgz#44a247d1b88523855679ac7fa7cda6ed7e135cf6"
+ integrity sha512-10ULxpnOCQXxJvBgxsn9ptjq6uviG/htZKk9veJGhlqn3w/DxQ631zFF+nlQXLwmImeS5amR2dl2U8sg6U9jsQ==
yargs-parser@^20.2.2, yargs-parser@^20.2.9:
version "20.2.9"
@@ -6607,15 +6576,15 @@ yn@3.1.1:
yocto-queue@^0.1.0:
version "0.1.0"
- resolved "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz"
+ resolved "https://registry.yarnpkg.com/yocto-queue/-/yocto-queue-0.1.0.tgz#0294eb3dee05028d31ee1a5fa2c556a6aaf10a1b"
integrity sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==
zod-to-json-schema@^3.22.3, zod-to-json-schema@^3.22.5, zod-to-json-schema@^3.24.1:
- version "3.24.3"
- resolved "https://registry.npmjs.org/zod-to-json-schema/-/zod-to-json-schema-3.24.3.tgz"
- integrity sha512-HIAfWdYIt1sssHfYZFCXp4rU1w2r8hVVXYIlmoa0r0gABLs5di3RCqPU5DDROogVz1pAdYBaz7HK5n9pSUNs3A==
+ version "3.24.5"
+ resolved "https://registry.yarnpkg.com/zod-to-json-schema/-/zod-to-json-schema-3.24.5.tgz#d1095440b147fb7c2093812a53c54df8d5df50a3"
+ integrity sha512-/AuWwMP+YqiPbsJx5D6TfgRTc4kTLjsh5SOcd4bLsfUg2RcEXrFMJl1DGgdHy2aCfsIA/cr/1JM0xcB2GZji8g==
zod@^3.22.3, zod@^3.22.4, zod@^3.24.1:
- version "3.24.2"
- resolved "https://registry.npmjs.org/zod/-/zod-3.24.2.tgz"
- integrity sha512-lY7CDW43ECgW9u1TcT3IoXHflywfVqDYze4waEz812jR/bZ8FHDsl7pFQoSZTz5N+2NqRXs8GBwnAwo3ZNxqhQ==
+ version "3.24.3"
+ resolved "https://registry.yarnpkg.com/zod/-/zod-3.24.3.tgz#1f40f750a05e477396da64438e0e1c0995dafd87"
+ integrity sha512-HhY1oqzWCQWuUqvBFnsyrtZRhyPeR7SUGv+C4+MsisMuVfSPx8HpwWqH8tRahSlt6M3PiFAcoeFhZAqIXTxoSg==
diff --git a/frontend/src/assets/styles/home.css b/frontend/src/assets/styles/home.css
index 51f4c2a..1864d15 100644
--- a/frontend/src/assets/styles/home.css
+++ b/frontend/src/assets/styles/home.css
@@ -316,24 +316,9 @@ input, textarea {
top: 0;
left: 0;
right: 0;
- bottom: 205px;
transition: bottom var(--transition-normal);
}
-/* Адаптация позиции при активации фокуса */
-.chat-container:has(.chat-input.focused) .chat-messages {
- bottom: 305px;
-}
-
-/* Реализуем программное изменение позиции через JS для браузеров без поддержки :has */
-@media (max-width: 100vw) {
- /* Примечание: Этот блок @media может потребовать обновления в JS коде, */
- /* если он используется для имитации :has. Сейчас изменяем только CSS. */
- .chat-input.focused ~ .messages-container {
- bottom: 305px;
- }
-}
-
/* Стили для сообщений */
.message {
margin-bottom: var(--spacing-md);
@@ -421,8 +406,7 @@ input, textarea {
.chat-input {
display: flex;
flex-direction: column;
- gap: var(--spacing-sm);
- padding: var(--spacing-md) var(--spacing-lg);
+ padding: var(--spacing-sm) var(--spacing-md);
background: var(--color-white);
border-radius: var(--radius-lg);
border: 1px solid var(--color-grey-light);
@@ -430,73 +414,193 @@ input, textarea {
left: 0;
right: 0;
bottom: 0;
- height: auto;
- min-height: var(--chat-input-min-height);
- max-height: var(--chat-input-max-height);
- transition: min-height var(--transition-normal), padding var(--transition-normal);
+ transition: all var(--transition-normal);
z-index: 10;
- box-shadow: none;
+ box-shadow: 0 -2px 5px rgba(0, 0, 0, 0.05);
}
-/* Стиль для input при фокусе */
-.chat-input.focused {
- min-height: var(--chat-input-focus-min-height);
- max-height: var(--chat-input-focus-max-height);
- padding: var(--spacing-lg);
- box-shadow: var(--shadow-md);
+.input-area {
+ display: flex;
+ align-items: flex-end;
+ gap: var(--spacing-sm);
}
.chat-input textarea {
flex: 1;
- padding: var(--spacing-sm);
- border: 1px solid var(--color-grey-light);
- border-radius: var(--radius-sm);
+ border: none;
resize: none;
font-size: var(--font-size-md);
line-height: 1.5;
- min-height: 40px;
- transition: min-height var(--transition-normal), border-color var(--transition-normal);
+ min-height: 24px;
+ max-height: 120px; /* Ограничение высоты textarea */
+ padding: 8px 0; /* Уменьшаем вертикальные отступы */
+ outline: none;
+ overflow-y: hidden; /* Убираем скролл, так как высота меняется динамически */
+ height: auto; /* Позволяем высоте изменяться */
}
.chat-input textarea:focus {
outline: none;
- border-color: var(--color-primary);
}
-.chat-input.focused textarea {
- min-height: 120px;
+/* Контейнер для иконок */
+.chat-icons {
+ display: flex;
+ gap: 6px;
+ flex-wrap: nowrap;
+ align-items: center;
}
-.chat-input button {
- padding: 0 var(--spacing-lg);
- background: var(--color-primary);
- color: var(--color-white);
+/* Стили для кнопок-иконок */
+.chat-icon-btn {
+ width: 36px;
+ height: 36px;
+ border-radius: 50%;
+ background: transparent;
border: none;
- border-radius: var(--radius-sm);
+ display: flex;
+ align-items: center;
+ justify-content: center;
cursor: pointer;
- font-size: var(--font-size-md);
- transition: background-color var(--transition-normal);
+ transition: all var(--transition-fast);
+ color: var(--color-grey);
+ padding: 0;
+ position: relative;
}
-.chat-input button:hover:not(:disabled) {
- background: var(--color-primary-dark);
+.chat-icon-btn:hover {
+ color: var(--color-primary);
+ background-color: rgba(0, 0, 0, 0.05);
}
-.chat-input button:disabled {
- background: #ccc;
+.chat-icon-btn:disabled {
+ opacity: 0.5;
cursor: not-allowed;
}
+/* Стили для кнопки отправки */
+.chat-icon-btn.send-button {
+ background-color: var(--color-primary);
+ color: white;
+ width: 36px;
+ height: 36px;
+}
+
+.chat-icon-btn.send-button:hover:not(:disabled) {
+ background-color: var(--color-primary-dark);
+ color: white;
+ transform: scale(1.05);
+}
+
+.chat-icon-btn.send-button:disabled {
+ background-color: #ccc;
+ opacity: 0.7;
+}
+
+/* Стили для состояния записи */
+.chat-icon-btn.recording {
+ color: var(--color-danger);
+ animation: pulse 1.5s infinite;
+}
+
+.chat-icon-btn.recording::after {
+ content: '';
+ position: absolute;
+ width: 8px;
+ height: 8px;
+ background-color: var(--color-danger);
+ border-radius: 50%;
+ top: 2px;
+ right: 2px;
+}
+
+@keyframes pulse {
+ 0% {
+ transform: scale(1);
+ }
+ 50% {
+ transform: scale(1.1);
+ }
+ 100% {
+ transform: scale(1);
+ }
+}
+
+/* Стили для области предпросмотра */
+.attachment-preview {
+ display: flex;
+ flex-wrap: wrap;
+ gap: 8px;
+ margin-top: 8px;
+ padding-top: 8px;
+ border-top: 1px solid var(--color-grey-light);
+ max-height: 100px; /* Ограничение высоты области превью */
+ overflow-y: auto; /* Скролл для превью */
+}
+
+.preview-item {
+ position: relative;
+ display: flex;
+ align-items: center;
+ background-color: var(--color-light);
+ border-radius: var(--radius-md);
+ padding: 4px 8px;
+ font-size: var(--font-size-sm);
+}
+
+.image-preview {
+ width: 40px;
+ height: 40px;
+ object-fit: cover;
+ border-radius: var(--radius-sm);
+ margin-right: 8px;
+}
+
+.audio-preview,
+.video-preview,
+.file-preview {
+ display: flex;
+ align-items: center;
+ gap: 5px;
+}
+
+.remove-attachment-btn {
+ position: absolute;
+ top: -5px;
+ right: -5px;
+ width: 18px;
+ height: 18px;
+ background-color: rgba(0, 0, 0, 0.6);
+ color: white;
+ border: none;
+ border-radius: 50%;
+ cursor: pointer;
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ font-size: 12px;
+ line-height: 1;
+ padding: 0;
+}
+
+/* Новый контейнер для действий чата */
+.chat-actions {
+ display: flex;
+ justify-content: space-between;
+ align-items: center;
+ width: 100%;
+}
+
/* Стили для кнопок в чате */
.chat-buttons {
display: flex;
gap: var(--spacing-sm);
margin-top: var(--spacing-xs);
padding-bottom: 0;
- width: 100%;
justify-content: flex-end;
flex-wrap: nowrap;
box-sizing: border-box;
+ align-items: center;
}
.chat-buttons button {
@@ -511,15 +615,6 @@ input, textarea {
max-width: 150px;
overflow: hidden;
text-overflow: ellipsis;
-}
-
-.chat-buttons button:first-child {
- background-color: var(--color-primary);
- color: var(--color-white);
-}
-
-.chat-buttons button:first-child:hover:not(:disabled) {
- background-color: var(--color-primary-dark);
}
.chat-buttons .clear-btn {
@@ -1095,7 +1190,6 @@ input, textarea {
}
.chat-input textarea {
- padding: var(--spacing-sm);
font-size: var(--font-size-md);
}
@@ -1148,7 +1242,7 @@ input, textarea {
}
.disconnect-block {
- padding: var(--spacing-sm) 0;
+ margin-bottom: var(--spacing-sm);
}
.wallet-header {
diff --git a/frontend/src/components/ChatInterface.vue b/frontend/src/components/ChatInterface.vue
new file mode 100644
index 0000000..d8921d3
--- /dev/null
+++ b/frontend/src/components/ChatInterface.vue
@@ -0,0 +1,622 @@
+
+ У вас пока нет диалогов. Создайте новый диалог, чтобы начать общение с ИИ-ассистентом. Подключите кошелек для просмотра бесед Пожалуйста, подключите кошелек для просмотра сообщенийДиалоги
-
-