diff --git a/backend/src/graphql/resolver/TransactionResolver.ts b/backend/src/graphql/resolver/TransactionResolver.ts index 7327f4925..78ab728e8 100644 --- a/backend/src/graphql/resolver/TransactionResolver.ts +++ b/backend/src/graphql/resolver/TransactionResolver.ts @@ -412,27 +412,14 @@ export class TransactionResolver { throw new Error('error loading saved transaction: ' + error) }) - // update state balance - const senderStateBalance = await updateStateBalance( - senderUser, - -centAmount, - transaction.received, - queryRunner, - ) - const recipiantStateBalance = await updateStateBalance( - recipiantUser, - centAmount, - transaction.received, - queryRunner, - ) - - // update user transactions + // Insert Transaction: sender - amount const senderUserTransactionBalance = await addUserTransaction( senderUser, transaction, -centAmount, queryRunner, ) + // Insert Transaction: recipient + amount const recipiantUserTransactionBalance = await addUserTransaction( recipiantUser, transaction, @@ -440,6 +427,21 @@ export class TransactionResolver { queryRunner, ) + // Update Balance: sender - amount + const senderStateBalance = await updateStateBalance( + senderUser, + -centAmount, + transaction.received, + queryRunner, + ) + // Update Balance: recipiant + amount + const recipiantStateBalance = await updateStateBalance( + recipiantUser, + centAmount, + transaction.received, + queryRunner, + ) + if (senderStateBalance.amount !== senderUserTransactionBalance.balance) { throw new Error('db data corrupted, sender') }