diff --git a/core/src/graphql/logic/processXComSendCoins.ts b/core/src/graphql/logic/processXComSendCoins.ts index 079ba76b7..531771f16 100644 --- a/core/src/graphql/logic/processXComSendCoins.ts +++ b/core/src/graphql/logic/processXComSendCoins.ts @@ -111,6 +111,7 @@ export async function processXComCompleteTransaction( memo, senderUser, recipientGradidoId, + dbTransactionLink?.id, ) methodLogger.debug('processXComPendingSendCoins result: ', pendingResult) if (pendingResult && pendingResult.vote && pendingResult.recipGradidoID) { @@ -123,6 +124,7 @@ export async function processXComCompleteTransaction( memo, senderUser, pendingResult, + dbTransactionLink?.id, ) methodLogger.debug('processXComCommittingSendCoins result: ', committingResult) if (!committingResult.vote) { @@ -183,6 +185,7 @@ export async function processXComPendingSendCoins( memo: string, sender: dbUser, recipientIdentifier: string, + transactionLinkId?: number, ): Promise { let voteResult: SendCoinsResponseJwtPayloadType const methodLogger = createLogger(`processXComPendingSendCoins`) @@ -196,7 +199,8 @@ export async function processXComPendingSendCoins( amount: amount.toString(), memo: memo.substring(0, 5), sender: new UserLoggingView(sender), - recipientIdentifier + recipientIdentifier, + transactionLinkId } ) } @@ -236,7 +240,8 @@ export async function processXComPendingSendCoins( senderCom.communityUuid!, sender.gradidoID, fullName(sender.firstName, sender.lastName), - sender.alias + sender.alias, + transactionLinkId ) if(methodLogger.isDebugEnabled()) { methodLogger.debug(`ready for voteForSendCoins with payload=${payload}`) @@ -297,6 +302,7 @@ export async function processXComPendingSendCoins( pendingTx.userId = sender.id pendingTx.userGradidoID = sender.gradidoID pendingTx.userName = fullName(sender.firstName, sender.lastName) + pendingTx.linkedTransactionId = transactionLinkId if(methodLogger.isDebugEnabled()) { methodLogger.debug(`initialized sender pendingTX=${new PendingTransactionLoggingView(pendingTx)}`) } @@ -346,6 +352,7 @@ export async function processXComCommittingSendCoins( memo: string, sender: dbUser, recipient: SendCoinsResult, + transactionLinkId?: number, ): Promise { const methodLogger = createLogger(`processXComCommittingSendCoins`) const handshakeID = randombytes_random().toString() @@ -362,6 +369,7 @@ export async function processXComCommittingSendCoins( memo: memo.substring(0, 5), sender: new UserLoggingView(sender), recipient: new SendCoinsResultLoggingView(recipient), + transactionLinkId, } ) } @@ -404,6 +412,7 @@ export async function processXComCommittingSendCoins( pendingTx.userGradidoID!, pendingTx.userName!, sender.alias, + pendingTx.transactionLinkId, ) payload.recipientCommunityUuid = pendingTx.linkedUserCommunityUuid ? pendingTx.linkedUserCommunityUuid diff --git a/federation/src/graphql/api/1_0/resolver/SendCoinsResolver.ts b/federation/src/graphql/api/1_0/resolver/SendCoinsResolver.ts index 938dca47c..baaa376c5 100644 --- a/federation/src/graphql/api/1_0/resolver/SendCoinsResolver.ts +++ b/federation/src/graphql/api/1_0/resolver/SendCoinsResolver.ts @@ -104,6 +104,7 @@ export class SendCoinsResolver { pendingTx.userCommunityUuid = authArgs.recipientCommunityUuid pendingTx.userGradidoID = receiverUser.gradidoID pendingTx.userName = fullName(receiverUser.firstName, receiverUser.lastName) + pendingTx.transactionLinkId = authArgs.transactionLinkId await DbPendingTransaction.insert(pendingTx) const responseArgs = new SendCoinsResponseJwtPayloadType( diff --git a/federation/src/graphql/api/1_0/util/settlePendingReceiveTransaction.ts b/federation/src/graphql/api/1_0/util/settlePendingReceiveTransaction.ts index 6396174bc..6035aa442 100644 --- a/federation/src/graphql/api/1_0/util/settlePendingReceiveTransaction.ts +++ b/federation/src/graphql/api/1_0/util/settlePendingReceiveTransaction.ts @@ -92,6 +92,7 @@ export async function settlePendingReceiveTransaction( transactionReceive.decayStart = receiveBalance ? receiveBalance.decay.start : null transactionReceive.previous = receiveBalance ? receiveBalance.lastTransactionId : null transactionReceive.linkedTransactionId = pendingTx.linkedTransactionId + transactionReceive.transactionLinkId = pendingTx.transactionLinkId await queryRunner.manager.insert(dbTransaction, transactionReceive) logger.debug(`receive Transaction inserted: ${new TransactionLoggingView(transactionReceive)}`) diff --git a/shared/src/jwt/payloadtypes/SendCoinsJwtPayloadType.ts b/shared/src/jwt/payloadtypes/SendCoinsJwtPayloadType.ts index 833b004fc..b49086467 100644 --- a/shared/src/jwt/payloadtypes/SendCoinsJwtPayloadType.ts +++ b/shared/src/jwt/payloadtypes/SendCoinsJwtPayloadType.ts @@ -13,6 +13,7 @@ export class SendCoinsJwtPayloadType extends JwtPayloadType { senderUserUuid: string senderUserName: string senderAlias?: string | null + transactionLinkId?: number | null constructor( handshakeID: string, @@ -25,6 +26,7 @@ export class SendCoinsJwtPayloadType extends JwtPayloadType { senderUserUuid: string, senderUserName: string, senderAlias?: string | null, + transactionLinkId?: number | null, ) { super(handshakeID) this.tokentype = SendCoinsJwtPayloadType.SEND_COINS_TYPE @@ -37,5 +39,6 @@ export class SendCoinsJwtPayloadType extends JwtPayloadType { this.senderUserUuid = senderUserUuid this.senderUserName = senderUserName this.senderAlias = senderAlias + this.transactionLinkId = transactionLinkId } }