Skip to content

Commit ceeaa7c

Browse files
committed
fix: donations without application
1 parent 7269de2 commit ceeaa7c

File tree

3 files changed

+20
-18
lines changed

3 files changed

+20
-18
lines changed

packages/data-layer/src/data-layer.ts

Lines changed: 18 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -803,25 +803,27 @@ export class DataLayer {
803803
},
804804
);
805805

806-
return response.donations
807-
.filter((donation) => {
806+
// Filter out invalid donations and map the project metadata from application metadata (solution for canonical projects in indexer v2)
807+
const validDonations = response.donations.reduce<Contribution[]>(
808+
(validDonations, donation) => {
808809
if (donation.round.strategyName !== "allov2.DirectAllocationStrategy") {
809-
return (
810-
donation.application !== null &&
811-
donation.application?.project !== null
812-
);
810+
if (donation.application?.project) {
811+
donation.application.project.metadata =
812+
donation.application.metadata.application.project;
813+
814+
validDonations.push(donation);
815+
}
813816
} else {
814-
return (
815-
// DirectAllocationStrategy donations are not linked to applications
816-
donation.application === null
817-
);
817+
if (donation.application === null) {
818+
validDonations.push(donation);
819+
}
818820
}
819-
})
820-
.map((donation) => {
821-
donation.application.project.metadata =
822-
donation.application.metadata.application.project;
823-
return donation;
824-
});
821+
return validDonations;
822+
},
823+
[],
824+
);
825+
826+
return validDonations;
825827
}
826828

827829
async getPayoutsByChainIdRoundIdProjectId(args: {

packages/data-layer/src/data.types.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -789,7 +789,7 @@ export type Contribution = {
789789
donationsEndTime: string;
790790
strategyName: RoundPayoutType;
791791
};
792-
application: {
792+
application?: {
793793
metadata: {
794794
application: {
795795
project: ProjectMetadata & { id: string };

packages/grant-explorer/src/features/contributors/components/RoundAccordion/RoundAccordionContribution.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ export function RoundAccordionContribution({
1111
}) {
1212
const { chainId, roundId, applicationId, amount } = contribution;
1313

14-
const projectName = contribution.application.project.name;
14+
const projectName = contribution.application?.project.name;
1515
const amountInUsd = contribution.amountInUsd.toFixed(2);
1616

1717
const linkToRound = `/round/${chainId}/${roundId.toString().toLowerCase()}/${applicationId}`;

0 commit comments

Comments
 (0)