diff --git a/package.json b/package.json index 8cd9fd7..68bb3a6 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "pezkuwi-telegram-miniapp", - "version": "1.0.228", + "version": "1.0.225", "type": "module", "description": "Pezkuwichain Telegram Mini App - Forum, Announcements, Rewards", "author": "Pezkuwichain Team", @@ -81,7 +81,7 @@ "prettier": "^3.8.1", "tailwindcss": "^3.4.11", "tronweb": "^6.2.0", - "typescript": "^5.9.3", + "typescript": "^5.5.3", "vite": "^5.4.1", "vitest": "^4.0.18" }, diff --git a/src/version.json b/src/version.json index 2622079..7f98e9d 100644 --- a/src/version.json +++ b/src/version.json @@ -1,5 +1,5 @@ { - "version": "1.0.228", - "buildTime": "2026-02-26T21:44:34.122Z", - "buildNumber": 1772142274123 + "version": "1.0.225", + "buildTime": "2026-02-26T22:51:27.298Z", + "buildNumber": 1772146287300 } diff --git a/supabase/functions/telegram-auth/index.ts b/supabase/functions/telegram-auth/index.ts index 2884c77..6a6c37c 100644 --- a/supabase/functions/telegram-auth/index.ts +++ b/supabase/functions/telegram-auth/index.ts @@ -156,9 +156,19 @@ serve(async (req) => { }); } + // Look up auth.users UUID for P2P trade matching + const sessionTelegramEmail = `telegram_${tgId}@pezkuwichain.io`; + const { + data: { users: sessionAuthUsers }, + } = await supabase.auth.admin.listUsers({ perPage: 1000 }); + const sessionAuthUser = sessionAuthUsers?.find( + (u: { email?: string }) => u.email === sessionTelegramEmail + ); + return new Response( JSON.stringify({ user: userData, + auth_user_id: sessionAuthUser?.id || null, session_token: generateSessionToken(tgId, matchedToken), }), { headers: { ...corsHeaders, 'Content-Type': 'application/json' } } @@ -235,11 +245,38 @@ serve(async (req) => { userId = newUser.id; } + // Ensure auth.users entry exists (needed for P2P foreign keys) + const telegramEmail = `telegram_${telegramUser.id}@pezkuwichain.io`; + const { + data: { users: existingAuthUsers }, + } = await supabase.auth.admin.listUsers({ perPage: 1000 }); + const authUser = existingAuthUsers?.find((u: { email?: string }) => u.email === telegramEmail); + + if (!authUser) { + await supabase.auth.admin.createUser({ + email: telegramEmail, + email_confirm: true, + user_metadata: { + telegram_id: telegramUser.id, + username: telegramUser.username, + first_name: telegramUser.first_name, + }, + }); + } + const { data: userData } = await supabase.from('users').select('*').eq('id', userId).single(); + // Get the auth.users UUID (just created or already exists) + const initAuthEmail = `telegram_${telegramUser.id}@pezkuwichain.io`; + const { + data: { users: initAuthUsers }, + } = await supabase.auth.admin.listUsers({ perPage: 1000 }); + const initAuthUser = initAuthUsers?.find((u: { email?: string }) => u.email === initAuthEmail); + return new Response( JSON.stringify({ user: userData, + auth_user_id: initAuthUser?.id || null, telegram_user: telegramUser, session_token: generateSessionToken(telegramUser.id, matchedBotToken), }),