Skip to content

Commit 069b7c9

Browse files
committed
fix webhook tests
1 parent 56a220c commit 069b7c9

File tree

2 files changed

+18
-7
lines changed

2 files changed

+18
-7
lines changed

packages/thirdweb/src/bridge/Webhook.test.ts

Lines changed: 17 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -21,11 +21,11 @@ const generateSignature = async (
2121

2222
describe("parseIncomingWebhook", () => {
2323
const testTimestamp = Math.floor(Date.now() / 1000).toString();
24-
const validPayload: WebhookPayload = {
24+
const validWebhook: WebhookPayload = {
2525
data: {
2626
action: "TRANSFER",
2727
clientId: "client123",
28-
destinationAmount: "1.0",
28+
destinationAmount: 10n,
2929
destinationToken: {
3030
address: "0x1234567890123456789012345678901234567890" as const,
3131
chainId: 1,
@@ -37,7 +37,7 @@ describe("parseIncomingWebhook", () => {
3737
},
3838
developerFeeBps: 100,
3939
developerFeeRecipient: "0x1234567890123456789012345678901234567890",
40-
originAmount: "1.0",
40+
originAmount: 10n,
4141
originToken: {
4242
address: "0x1234567890123456789012345678901234567890" as const,
4343
chainId: 1,
@@ -64,8 +64,17 @@ describe("parseIncomingWebhook", () => {
6464
],
6565
type: "transfer",
6666
},
67+
topic: "pay.onchain-transaction",
6768
version: 2,
6869
};
70+
const validPayload = {
71+
...validWebhook,
72+
data: {
73+
...validWebhook.data,
74+
originAmount: validWebhook.data.originAmount.toString(),
75+
destinationAmount: validWebhook.data.destinationAmount.toString(),
76+
},
77+
}
6978

7079
it("should successfully verify a valid webhook", async () => {
7180
const signature = await generateSignature(
@@ -78,7 +87,7 @@ describe("parseIncomingWebhook", () => {
7887
};
7988

8089
const result = await parse(JSON.stringify(validPayload), headers, secret);
81-
expect(result).toEqual(validPayload);
90+
expect(result).toEqual(validWebhook);
8291
});
8392

8493
it("should accept alternative header names", async () => {
@@ -92,7 +101,7 @@ describe("parseIncomingWebhook", () => {
92101
};
93102

94103
const result = await parse(JSON.stringify(validPayload), headers, secret);
95-
expect(result).toEqual(validPayload);
104+
expect(result).toEqual(validWebhook);
96105
});
97106

98107
it("should throw error for missing headers", async () => {
@@ -150,6 +159,7 @@ describe("parseIncomingWebhook", () => {
150159
someField: "value",
151160
},
152161
version: 1,
162+
topic: "pay.onchain-transaction",
153163
};
154164
const v1PayloadString = JSON.stringify(v1Payload);
155165
const signature = await generateSignature(testTimestamp, v1PayloadString);
@@ -180,7 +190,7 @@ describe("parseIncomingWebhook", () => {
180190
secret,
181191
300,
182192
);
183-
expect(result).toEqual(validPayload);
193+
expect(result).toEqual(validWebhook);
184194
});
185195

186196
describe("payload validation", () => {
@@ -576,6 +586,7 @@ describe("parseIncomingWebhook", () => {
576586
it("should throw error for version 1 payload missing data object", async () => {
577587
const invalidPayload = {
578588
version: 1,
589+
topic: "pay.onchain-transaction",
579590
// no data field
580591
} as unknown as WebhookPayload;
581592
const payloadString = JSON.stringify(invalidPayload);

packages/thirdweb/src/bridge/Webhook.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -80,7 +80,7 @@ const onrampWebhookSchema = z.discriminatedUnion("version", [
8080
}),
8181
]);
8282

83-
const webhookSchema = z.discriminatedUnion("type", [
83+
const webhookSchema = z.discriminatedUnion("topic", [
8484
onchainWebhookSchema,
8585
onrampWebhookSchema,
8686
]);

0 commit comments

Comments
 (0)