From 7ae3b727b475fe42ae56effe9c9a4e603b3a5623 Mon Sep 17 00:00:00 2001 From: Thedavidajayi <123104552+Kingsuite@users.noreply.github.com> Date: Fri, 13 Dec 2024 16:12:41 +0000 Subject: [PATCH 1/2] refac: refactor handle donation event --- src/app.module.ts | 3 +-- .../token-giver-indexer.service.ts | 21 ++++++++++++++++++- 2 files changed, 21 insertions(+), 3 deletions(-) diff --git a/src/app.module.ts b/src/app.module.ts index a92daa7..0d9d40d 100644 --- a/src/app.module.ts +++ b/src/app.module.ts @@ -4,7 +4,6 @@ import { GraphQLModule } from '@nestjs/graphql'; import { ApolloDriver, ApolloDriverConfig } from '@nestjs/apollo'; import { AppController } from './app.controller'; import { AppService } from './app.service'; -import { handleDonationReceivedService } from './donation.service'; import { PrismaModule } from './prisma/prisma.module'; import { SharedIndexerModule } from './shared-indexer/shared-indexer.module'; import { TokenGiverIndexerModule } from './token-giver-indexer/token-giver-indexer.module'; @@ -23,6 +22,6 @@ import { ResolversModule } from './resolvers/resolvers.module'; ResolversModule, ], controllers: [AppController], - providers: [AppService, handleDonationReceivedService], + providers: [AppService], }) export class AppModule {} diff --git a/src/token-giver-indexer/token-giver-indexer.service.ts b/src/token-giver-indexer/token-giver-indexer.service.ts index 77aba6f..068382e 100644 --- a/src/token-giver-indexer/token-giver-indexer.service.ts +++ b/src/token-giver-indexer/token-giver-indexer.service.ts @@ -92,7 +92,26 @@ export class TokenGiverIndexerService { } // eslint-disable-next-line @typescript-eslint/no-unused-vars - private async handleDonationReceivedEvent(event: starknet.IEvent) {} + private async handleDonationReceivedEvent(event: starknet.IEvent) { + // Extract donation details from the event + const [campaign_id, amount] = event.keys; + this.logger.log( + `Processing DonationReceived event for campaign ${campaign_id}`, + ); + + //updating the specific campaign's donation total + await this.prismaService.campaign.update({ + where: { id: Number(campaign_id) }, + data: { + totalDonations: { + increment: Number(amount), + }, + }, + }); + this.logger.log( + `Donation of ${amount} successfully updated for campaign ${campaign_id}.`, + ); + } // eslint-disable-next-line @typescript-eslint/no-unused-vars private async handleDeployedTokenGiverNftEvent(event: starknet.IEvent) {} From 7076ca1b134810b1265dbc90a2fd861ef88fabd9 Mon Sep 17 00:00:00 2001 From: EjembiEmmanuel Date: Tue, 17 Dec 2024 09:15:00 +0100 Subject: [PATCH 2/2] fix handle donation --- .../token-giver-indexer.service.ts | 29 +++++++++++++------ 1 file changed, 20 insertions(+), 9 deletions(-) diff --git a/src/token-giver-indexer/token-giver-indexer.service.ts b/src/token-giver-indexer/token-giver-indexer.service.ts index 068382e..9346826 100644 --- a/src/token-giver-indexer/token-giver-indexer.service.ts +++ b/src/token-giver-indexer/token-giver-indexer.service.ts @@ -91,26 +91,37 @@ export class TokenGiverIndexerService { }); } - // eslint-disable-next-line @typescript-eslint/no-unused-vars private async handleDonationReceivedEvent(event: starknet.IEvent) { - // Extract donation details from the event - const [campaign_id, amount] = event.keys; - this.logger.log( - `Processing DonationReceived event for campaign ${campaign_id}`, + // eslint-disable-next-line @typescript-eslint/no-unused-vars + const [campaignIdLow, campaignIdHigh, donorAddress] = event.keys; + + // eslint-disable-next-line @typescript-eslint/no-unused-vars + const [amountLow, amountHigh, tokenIdLow, tokenIdHigh, blockTimestamp] = + event.data; + + const campaignId = Number( + uint256.uint256ToBN({ + low: FieldElement.toBigInt(campaignIdLow), + high: FieldElement.toBigInt(campaignIdHigh), + }), + ); + + const amount = Number( + uint256.uint256ToBN({ + low: FieldElement.toBigInt(amountLow), + high: FieldElement.toBigInt(amountHigh), + }), ); //updating the specific campaign's donation total await this.prismaService.campaign.update({ - where: { id: Number(campaign_id) }, + where: { id: campaignId }, data: { totalDonations: { increment: Number(amount), }, }, }); - this.logger.log( - `Donation of ${amount} successfully updated for campaign ${campaign_id}.`, - ); } // eslint-disable-next-line @typescript-eslint/no-unused-vars