Skip to content

Commit fab3bc2

Browse files
committed
fix: pr comments
1 parent ac86f6f commit fab3bc2

File tree

7 files changed

+28
-24
lines changed

7 files changed

+28
-24
lines changed

apps/indexer/src/handlers/Registry.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
11
/* eslint-disable @typescript-eslint/no-unsafe-member-access */
22
import { Registry } from "../../generated";
33

4-
// Handler for ProfileNameUpdated event
4+
// Handler for RoleGranted event
55
Registry.RoleGranted.handler(async ({}) => {});
66

7-
// Handler for ProfileOwnerUpdated event
7+
// Handler for RoleRevoked event
88
Registry.RoleRevoked.handler(async ({}) => {});
99

1010
// Handler for ProfileCreated event
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,2 @@
1-
export * from "./profileCreated.hanlder.js";
1+
export * from "./profileCreated.handler.js";
22
export * from "./roleGranted.handler.js";

packages/processors/src/registry/handlers/profileCreated.hanlder.ts renamed to packages/processors/src/registry/handlers/profileCreated.handler.ts

Lines changed: 13 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -8,19 +8,22 @@ import { ProjectMetadata, ProjectMetadataSchema } from "../../schemas/projectMet
88

99
type Dependencies = Pick<
1010
ProcessorDependencies,
11-
"projectRepository" | "evmProvider" | "pricingProvider" | "metadataProvider"
11+
"projectRepository" | "evmProvider" | "metadataProvider"
1212
>;
13-
13+
/**
14+
* Handles the ProfileCreated event for the Registry contract from Allo protocol.
15+
*/
1416
export class ProfileCreatedHandler implements IEventHandler<"Registry", "ProfileCreated"> {
1517
constructor(
1618
readonly event: ProtocolEvent<"Registry", "ProfileCreated">,
1719
readonly chainId: ChainId,
1820
private dependencies: Dependencies,
1921
) {}
2022
async handle(): Promise<Changeset[]> {
23+
const { metadataProvider, evmProvider, projectRepository } = this.dependencies;
2124
const profileId = this.event.params.profileId;
2225
const metadataCid = this.event.params.metadata[1];
23-
const metadata = await this.dependencies.metadataProvider.getMetadata(metadataCid);
26+
const metadata = await metadataProvider.getMetadata(metadataCid);
2427

2528
const parsedMetadata = ProjectMetadataSchema.safeParse(metadata);
2629

@@ -42,11 +45,9 @@ export class ProfileCreatedHandler implements IEventHandler<"Registry", "Profile
4245
});
4346
}
4447

45-
const tx = await this.dependencies.evmProvider.getTransaction(
46-
this.event.transactionFields.hash,
47-
);
48-
49-
const createdBy = tx.from;
48+
const createdBy =
49+
this.event.transactionFields.from ??
50+
(await evmProvider.getTransaction(this.event.transactionFields.hash)).from;
5051
const programTags = isProgram ? ["program"] : [];
5152

5253
const changes: Changeset[] = [
@@ -85,11 +86,10 @@ export class ProfileCreatedHandler implements IEventHandler<"Registry", "Profile
8586
},
8687
];
8788

88-
const pendingProjectRoles =
89-
await this.dependencies.projectRepository.getPendingProjectRolesByRole(
90-
this.chainId,
91-
profileId,
92-
);
89+
const pendingProjectRoles = await projectRepository.getPendingProjectRolesByRole(
90+
this.chainId,
91+
profileId,
92+
);
9393

9494
if (pendingProjectRoles.length !== 0) {
9595
for (const role of pendingProjectRoles) {

packages/processors/src/registry/handlers/roleGranted.handler.ts

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -6,23 +6,25 @@ import { ALLO_OWNER_ROLE, ChainId, ProtocolEvent } from "@grants-stack-indexer/s
66
import { IEventHandler } from "../../internal.js";
77
import { ProcessorDependencies } from "../../types/processor.types.js";
88

9+
/**
10+
* Handles the RoleGranted event for the Registry contract from Allo protocol.
11+
*/
912
export class RoleGrantedHandler implements IEventHandler<"Registry", "RoleGranted"> {
1013
constructor(
1114
readonly event: ProtocolEvent<"Registry", "RoleGranted">,
1215
readonly chainId: ChainId,
1316
private readonly dependencies: ProcessorDependencies,
1417
) {}
1518
async handle(): Promise<Changeset[]> {
19+
const { projectRepository } = this.dependencies;
1620
const role = this.event.params.role.toLocaleLowerCase();
1721
if (role === ALLO_OWNER_ROLE) {
1822
return [];
1923
}
2024

2125
const account = getAddress(this.event.params.account);
22-
const project = await this.dependencies.projectRepository.getProjectById(
23-
this.chainId,
24-
role,
25-
);
26+
const project = await projectRepository.getProjectById(this.chainId, role);
27+
2628
// The member role for an Allo V2 profile, is the profileId itself.
2729
// If a project exists with that id, we create the member role
2830
// If it doesn't exists we create a pending project role. This can happens

packages/processors/test/registry/handlers/roleGranted.handler.spec.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -82,7 +82,7 @@ describe("RoleGrantedHandler", () => {
8282
mockedEvent["params"]["role"] = "0x1231231234" as Bytes32String;
8383
const event = mockedEvent;
8484

85-
mockProjectRepository.getProjectById.mockResolvedValueOnce(null);
85+
mockProjectRepository.getProjectById.mockResolvedValueOnce(undefined);
8686

8787
const handler = new RoleGrantedHandler(event, chainId, dependencies);
8888

@@ -112,7 +112,7 @@ describe("RoleGrantedHandler", () => {
112112
await expect(handler.handle()).rejects.toThrow(InvalidAddressError);
113113
});
114114

115-
it("should throw an error if projectRepository throws an error", async () => {
115+
it("throws an error if projectRepository throws an error", async () => {
116116
mockedEvent["params"]["role"] = "0x1231231234" as Bytes32String;
117117
const event = mockedEvent;
118118

packages/processors/test/registry/registry.processor.spec.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ import { afterEach, describe, expect, it, vi } from "vitest";
33
import type { ChainId, ProtocolEvent, RegistryEvent } from "@grants-stack-indexer/shared";
44

55
import { ProcessorDependencies, UnsupportedEventException } from "../../src/internal.js";
6-
import { ProfileCreatedHandler } from "../../src/registry/handlers/profileCreated.hanlder.js";
6+
import { ProfileCreatedHandler } from "../../src/registry/handlers/profileCreated.handler.js";
77
import { RoleGrantedHandler } from "../../src/registry/handlers/roleGranted.handler.js";
88
import { RegistryProcessor } from "../../src/registry/registry.processor.js";
99

packages/shared/src/types/common.ts

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
1+
import { Hex } from "viem";
2+
13
import { Branded } from "../internal.js";
24

35
export type ChainId = Branded<number, "ChainId">;
46

5-
export type Bytes32String = Branded<`0x${string}`, "Bytes32String">;
7+
export type Bytes32String = Branded<Hex, "Bytes32String">;

0 commit comments

Comments
 (0)