@@ -21,11 +21,11 @@ const generateSignature = async (
21
21
22
22
describe ( "parseIncomingWebhook" , ( ) => {
23
23
const testTimestamp = Math . floor ( Date . now ( ) / 1000 ) . toString ( ) ;
24
- const validPayload : WebhookPayload = {
24
+ const validWebhook : WebhookPayload = {
25
25
data : {
26
26
action : "TRANSFER" ,
27
27
clientId : "client123" ,
28
- destinationAmount : "1.0" ,
28
+ destinationAmount : 10n ,
29
29
destinationToken : {
30
30
address : "0x1234567890123456789012345678901234567890" as const ,
31
31
chainId : 1 ,
@@ -37,7 +37,7 @@ describe("parseIncomingWebhook", () => {
37
37
} ,
38
38
developerFeeBps : 100 ,
39
39
developerFeeRecipient : "0x1234567890123456789012345678901234567890" ,
40
- originAmount : "1.0" ,
40
+ originAmount : 10n ,
41
41
originToken : {
42
42
address : "0x1234567890123456789012345678901234567890" as const ,
43
43
chainId : 1 ,
@@ -64,8 +64,17 @@ describe("parseIncomingWebhook", () => {
64
64
] ,
65
65
type : "transfer" ,
66
66
} ,
67
+ topic : "pay.onchain-transaction" ,
67
68
version : 2 ,
68
69
} ;
70
+ const validPayload = {
71
+ ...validWebhook ,
72
+ data : {
73
+ ...validWebhook . data ,
74
+ originAmount : validWebhook . data . originAmount . toString ( ) ,
75
+ destinationAmount : validWebhook . data . destinationAmount . toString ( ) ,
76
+ } ,
77
+ }
69
78
70
79
it ( "should successfully verify a valid webhook" , async ( ) => {
71
80
const signature = await generateSignature (
@@ -78,7 +87,7 @@ describe("parseIncomingWebhook", () => {
78
87
} ;
79
88
80
89
const result = await parse ( JSON . stringify ( validPayload ) , headers , secret ) ;
81
- expect ( result ) . toEqual ( validPayload ) ;
90
+ expect ( result ) . toEqual ( validWebhook ) ;
82
91
} ) ;
83
92
84
93
it ( "should accept alternative header names" , async ( ) => {
@@ -92,7 +101,7 @@ describe("parseIncomingWebhook", () => {
92
101
} ;
93
102
94
103
const result = await parse ( JSON . stringify ( validPayload ) , headers , secret ) ;
95
- expect ( result ) . toEqual ( validPayload ) ;
104
+ expect ( result ) . toEqual ( validWebhook ) ;
96
105
} ) ;
97
106
98
107
it ( "should throw error for missing headers" , async ( ) => {
@@ -150,6 +159,7 @@ describe("parseIncomingWebhook", () => {
150
159
someField : "value" ,
151
160
} ,
152
161
version : 1 ,
162
+ topic : "pay.onchain-transaction" ,
153
163
} ;
154
164
const v1PayloadString = JSON . stringify ( v1Payload ) ;
155
165
const signature = await generateSignature ( testTimestamp , v1PayloadString ) ;
@@ -180,7 +190,7 @@ describe("parseIncomingWebhook", () => {
180
190
secret ,
181
191
300 ,
182
192
) ;
183
- expect ( result ) . toEqual ( validPayload ) ;
193
+ expect ( result ) . toEqual ( validWebhook ) ;
184
194
} ) ;
185
195
186
196
describe ( "payload validation" , ( ) => {
@@ -576,6 +586,7 @@ describe("parseIncomingWebhook", () => {
576
586
it ( "should throw error for version 1 payload missing data object" , async ( ) => {
577
587
const invalidPayload = {
578
588
version : 1 ,
589
+ topic : "pay.onchain-transaction" ,
579
590
// no data field
580
591
} as unknown as WebhookPayload ;
581
592
const payloadString = JSON . stringify ( invalidPayload ) ;
0 commit comments