From 6b558c92562f1fb3de1b2020a59eb19febf472dd Mon Sep 17 00:00:00 2001
From: clauspeterhuebner
Date: Tue, 6 Jan 2026 23:00:26 +0100
Subject: [PATCH] remove email exchange of recepient-user between involved
communities
---
.../src/graphql/resolver/TransactionLinkResolver.ts | 7 +++++++
.../client/1_0/logging/SendCoinsResultLogging.view.ts | 1 -
.../src/federation/client/1_0/model/SendCoinsResult.ts | 3 ---
core/src/graphql/logic/processXComSendCoins.ts | 6 +++---
core/src/graphql/logic/storeForeignUser.ts | 10 +++++++---
.../src/graphql/api/1_0/resolver/SendCoinsResolver.ts | 1 -
.../payloadtypes/SendCoinsResponseJwtPayloadType.ts | 4 +---
7 files changed, 18 insertions(+), 14 deletions(-)
diff --git a/backend/src/graphql/resolver/TransactionLinkResolver.ts b/backend/src/graphql/resolver/TransactionLinkResolver.ts
index 907761309..28412ea59 100644
--- a/backend/src/graphql/resolver/TransactionLinkResolver.ts
+++ b/backend/src/graphql/resolver/TransactionLinkResolver.ts
@@ -15,6 +15,7 @@ import {
EncryptedTransferArgs,
fullName,
interpretEncryptedTransferArgs,
+ sendTransactionReceivedEmail,
TransactionTypeId,
} from 'core'
import { randomBytes } from 'crypto'
@@ -661,6 +662,12 @@ export class TransactionLinkResolver {
if (methodLogger.isDebugEnabled()) {
methodLogger.debug('Disburse JWT was sent successfully with result=', result)
}
+ const senderUser = await findUserByIdentifier(senderGradidoId, senderCommunityUuid)
+ if (!senderUser) {
+ const errmsg = `Sender user not found with identifier=${senderGradidoId}`
+ methodLogger.error(errmsg)
+ throw new LogError(errmsg)
+ }
const recipientUser = await findUserByIdentifier(recipientGradidoId, recipientCommunityUuid)
if (!recipientUser) {
const errmsg = `Recipient user not found with identifier=${recipientGradidoId}`
diff --git a/core/src/federation/client/1_0/logging/SendCoinsResultLogging.view.ts b/core/src/federation/client/1_0/logging/SendCoinsResultLogging.view.ts
index d92a20e71..1eb08c432 100644
--- a/core/src/federation/client/1_0/logging/SendCoinsResultLogging.view.ts
+++ b/core/src/federation/client/1_0/logging/SendCoinsResultLogging.view.ts
@@ -14,7 +14,6 @@ export class SendCoinsResultLoggingView extends AbstractLoggingView {
recipFirstName: this.self.recipFirstName?.substring(0, 3),
recipLastName: this.self.recipLastName?.substring(0, 3),
recipAlias: this.self.recipAlias?.substring(0, 3),
- recipEmail: this.self.recipEmail?.substring(0, 3),
}
}
}
diff --git a/core/src/federation/client/1_0/model/SendCoinsResult.ts b/core/src/federation/client/1_0/model/SendCoinsResult.ts
index bef399b01..8fc21305f 100644
--- a/core/src/federation/client/1_0/model/SendCoinsResult.ts
+++ b/core/src/federation/client/1_0/model/SendCoinsResult.ts
@@ -20,7 +20,4 @@ export class SendCoinsResult {
@Field(() => String, { nullable: true })
recipAlias: string | null
-
- @Field(() => String, { nullable: true })
- recipEmail: string | null
}
diff --git a/core/src/graphql/logic/processXComSendCoins.ts b/core/src/graphql/logic/processXComSendCoins.ts
index 7b39f2927..7b2ca3dc6 100644
--- a/core/src/graphql/logic/processXComSendCoins.ts
+++ b/core/src/graphql/logic/processXComSendCoins.ts
@@ -168,7 +168,7 @@ export async function processXComCompleteTransaction(
)
}
}
-
+ /*
await sendTransactionReceivedEmail({
firstName: foreignUser.firstName,
lastName: foreignUser.lastName,
@@ -180,6 +180,7 @@ export async function processXComCompleteTransaction(
senderEmail: senderUser.emailContact.email,
transactionAmount: new Decimal(amount),
})
+ */
if (dbTransactionLink) {
await sendTransactionLinkRedeemedEmail({
firstName: senderUser.firstName,
@@ -188,7 +189,7 @@ export async function processXComCompleteTransaction(
language: senderUser.language,
senderFirstName: foreignUser.firstName,
senderLastName: foreignUser.lastName,
- senderEmail: foreignUser.emailContact.email,
+ senderEmail: 'unknown', // foreignUser.emailContact.email,
transactionAmount: new Decimal(amount),
transactionMemo: memo,
})
@@ -509,7 +510,6 @@ export async function processXComCommittingSendCoins(
}
sendCoinsResult.recipGradidoID = pendingTx.linkedUserGradidoID
sendCoinsResult.recipAlias = recipient.recipAlias
- sendCoinsResult.recipEmail = recipient.recipEmail
}
} catch (err) {
methodLogger.error(
diff --git a/core/src/graphql/logic/storeForeignUser.ts b/core/src/graphql/logic/storeForeignUser.ts
index 3722ca351..90c7c7c7b 100644
--- a/core/src/graphql/logic/storeForeignUser.ts
+++ b/core/src/graphql/logic/storeForeignUser.ts
@@ -45,6 +45,7 @@ export async function storeForeignUser(
foreignUser = await DbUser.save(foreignUser)
logger.debug('new foreignUser inserted:', new UserLoggingView(foreignUser))
+ /*
if (committingResult.recipEmail !== null) {
let foreignUserEmail = DbUserContact.create()
foreignUserEmail.email = committingResult.recipEmail!
@@ -59,19 +60,20 @@ export async function storeForeignUser(
foreignUser.emailId = foreignUserEmail.id
foreignUser = await DbUser.save(foreignUser)
}
-
+ */
return foreignUser
} else if (
user.firstName !== committingResult.recipFirstName ||
user.lastName !== committingResult.recipLastName ||
- user.alias !== committingResult.recipAlias ||
+ user.alias !== committingResult.recipAlias/* ||
(user.emailContact === null && committingResult.recipEmail !== null) ||
(user.emailContact !== null &&
user.emailContact?.email !== null &&
user.emailContact?.email !== committingResult.recipEmail)
+ */
) {
logger.debug(
- 'foreignUser still exists, but with different name, alias or email:',
+ 'foreignUser still exists, but with different name or alias:',
new UserLoggingView(user),
committingResult,
)
@@ -84,6 +86,7 @@ export async function storeForeignUser(
if (committingResult.recipAlias !== null) {
user.alias = committingResult.recipAlias
}
+ /*
if (!user.emailContact && committingResult.recipEmail !== null) {
logger.debug(
'creating new userContact:',
@@ -110,6 +113,7 @@ export async function storeForeignUser(
user.emailId = userContact.id
logger.debug('foreignUserEmail updated:', new UserContactLoggingView(userContact))
}
+ */
await DbUser.save(user)
logger.debug('update recipient successful.', new UserLoggingView(user))
return user
diff --git a/federation/src/graphql/api/1_0/resolver/SendCoinsResolver.ts b/federation/src/graphql/api/1_0/resolver/SendCoinsResolver.ts
index 7e29fbe29..4e6dc71d2 100644
--- a/federation/src/graphql/api/1_0/resolver/SendCoinsResolver.ts
+++ b/federation/src/graphql/api/1_0/resolver/SendCoinsResolver.ts
@@ -128,7 +128,6 @@ export class SendCoinsResolver {
receiverUser.firstName,
receiverUser.lastName,
receiverUser.alias,
- receiverUser.emailContact.email,
)
const responseJwt = await encryptAndSign(
responseArgs,
diff --git a/shared/src/jwt/payloadtypes/SendCoinsResponseJwtPayloadType.ts b/shared/src/jwt/payloadtypes/SendCoinsResponseJwtPayloadType.ts
index b6335b262..a857cceae 100644
--- a/shared/src/jwt/payloadtypes/SendCoinsResponseJwtPayloadType.ts
+++ b/shared/src/jwt/payloadtypes/SendCoinsResponseJwtPayloadType.ts
@@ -8,7 +8,7 @@ export class SendCoinsResponseJwtPayloadType extends JwtPayloadType {
recipFirstName: string | null
recipLastName: string | null
recipAlias: string | null
- recipEmail: string | null
+
constructor(
handshakeID: string,
@@ -17,7 +17,6 @@ export class SendCoinsResponseJwtPayloadType extends JwtPayloadType {
recipFirstName: string | null,
recipLastName: string | null,
recipAlias: string | null,
- recipEmail: string | null,
) {
super(handshakeID)
this.tokentype = SendCoinsResponseJwtPayloadType.SEND_COINS_RESPONSE_TYPE
@@ -26,6 +25,5 @@ export class SendCoinsResponseJwtPayloadType extends JwtPayloadType {
this.recipFirstName = recipFirstName
this.recipLastName = recipLastName
this.recipAlias = recipAlias
- this.recipEmail = recipEmail
}
}