From 0a88ef93963f6215ea5a2e6b751e272556e1363f Mon Sep 17 00:00:00 2001 From: vimtor Date: Sun, 17 May 2026 12:01:36 +0200 Subject: [PATCH] core: prevent duplicate referral credits on repeat completion --- packages/console/core/src/referral.ts | 9 ++------- 1 file changed, 2 insertions(+), 7 deletions(-) diff --git a/packages/console/core/src/referral.ts b/packages/console/core/src/referral.ts index 67d19144d8..c0830e294e 100644 --- a/packages/console/core/src/referral.ts +++ b/packages/console/core/src/referral.ts @@ -360,13 +360,7 @@ export namespace Referral { .then((rows) => rows[0]) if (!referral) return { status: "missing-referral" as const } - const existingRewards = await tx - .select({ referralID: ReferralRewardTable.referralID }) - .from(ReferralRewardTable) - .where(and(eq(ReferralRewardTable.referralID, referral.id), isNull(ReferralRewardTable.timeDeleted))) - if (existingRewards.length > 0) return { status: "already-completed" as const } - - await tx + const result = await tx .insert(ReferralRewardTable) .values([ { @@ -386,6 +380,7 @@ export namespace Referral { }, }) + if (result.rowsAffected === 0) return { status: "already-completed" as const } return { status: "created" as const } }) }