mppx 0.4.10 → 0.4.11

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -1,5 +1,12 @@
1
1
  # mppx
2
2
 
3
+ ## 0.4.11
4
+
5
+ ### Patch Changes
6
+
7
+ - Fixed close voucher validation to reject vouchers equal to the on-chain settled amount. ([GHSA-mv9j-8jvg-j8mr](https://github.com/wevm/mppx/security/advisories/GHSA-mv9j-8jvg-j8mr))
8
+ - Added Stripe credential replay protection via the `Idempotent-Replayed` header. ([GHSA-8mhj-rffc-rcvw](https://github.com/wevm/mppx/security/advisories/GHSA-8mhj-rffc-rcvw))
9
+
3
10
  ## 0.4.10
4
11
 
5
12
  ### Patch Changes
@@ -30,7 +37,7 @@
30
37
 
31
38
  ### Patch Changes
32
39
 
33
- - 99920d0: Updated validation.
40
+ - 99920d0: Updated validation. ([GHSA-8x4m-qw58-3pcx](https://github.com/wevm/mppx/security/advisories/GHSA-8x4m-qw58-3pcx))
34
41
 
35
42
  ## 0.4.7
36
43
 
@@ -9,6 +9,9 @@ export type StripeClient = {
9
9
  create(...args: any[]): Promise<{
10
10
  id: string;
11
11
  status: string;
12
+ lastResponse?: {
13
+ headers?: Record<string, string>;
14
+ };
12
15
  }>;
13
16
  };
14
17
  };
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/stripe/internal/types.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,MAAM,MAAM,YAAY,GAAG;IACzB,cAAc,EAAE;QACd,MAAM,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,GAAG,OAAO,CAAC;YAAE,EAAE,EAAE,MAAM,CAAC;YAAC,MAAM,EAAE,MAAM,CAAA;SAAE,CAAC,CAAA;KAChE,CAAA;CACF,CAAA;AAED;;;;;GAKG;AACH,MAAM,MAAM,QAAQ,GAAG;IACrB,mBAAmB,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAA;IACrE,QAAQ,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,GAAG,OAAO,CAAA;CAClC,CAAA"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/stripe/internal/types.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,MAAM,MAAM,YAAY,GAAG;IACzB,cAAc,EAAE;QACd,MAAM,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,GAAG,OAAO,CAAC;YAC9B,EAAE,EAAE,MAAM,CAAA;YACV,MAAM,EAAE,MAAM,CAAA;YACd,YAAY,CAAC,EAAE;gBAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;aAAE,CAAA;SACpD,CAAC,CAAA;KACH,CAAA;CACF,CAAA;AAED;;;;;GAKG;AACH,MAAM,MAAM,QAAQ,GAAG;IACrB,mBAAmB,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAA;IACrE,QAAQ,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,GAAG,OAAO,CAAA;CAClC,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"Charge.d.ts","sourceRoot":"","sources":["../../../src/stripe/server/Charge.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,yBAAyB,CAAA;AAC/D,OAAO,KAAK,MAAM,MAAM,iBAAiB,CAAA;AACzC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAA;AACxD,OAAO,KAAK,OAAO,MAAM,eAAe,CAAA;AAExC;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,wBAAgB,MAAM,CAAC,KAAK,CAAC,UAAU,SAAS,MAAM,CAAC,UAAU,EAAE,UAAU,EAAE,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iDAqExF;AAED,MAAM,CAAC,OAAO,WAAW,MAAM,CAAC;IAC9B,KAAK,QAAQ,GAAG,SAAS,CAAC,MAAM,CAAC,eAAe,CAAC,OAAO,OAAO,CAAC,MAAM,CAAC,EAAE,WAAW,CAAC,CAAA;IAErF,KAAK,UAAU,GAAG;QAChB,6DAA6D;QAC7D,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,SAAS,CAAA;KAC9C,GAAG,QAAQ,GACV,KAAK,CACD;QACE,yGAAyG;QACzG,MAAM,EAAE,YAAY,CAAA;KACrB,GACD;QACE,6BAA6B;QAC7B,SAAS,EAAE,MAAM,CAAA;KAClB,CACJ,CAAA;IAEH,KAAK,cAAc,CAAC,UAAU,SAAS,UAAU,IAAI,IAAI,CACvD,UAAU,EACV,OAAO,CAAC,MAAM,UAAU,EAAE,MAAM,QAAQ,CAAC,CAC1C,GAAG;QAAE,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAA;CACzB"}
1
+ {"version":3,"file":"Charge.d.ts","sourceRoot":"","sources":["../../../src/stripe/server/Charge.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,yBAAyB,CAAA;AAC/D,OAAO,KAAK,MAAM,MAAM,iBAAiB,CAAA;AACzC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAA;AACxD,OAAO,KAAK,OAAO,MAAM,eAAe,CAAA;AAExC;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,wBAAgB,MAAM,CAAC,KAAK,CAAC,UAAU,SAAS,MAAM,CAAC,UAAU,EAAE,UAAU,EAAE,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iDAwExF;AAED,MAAM,CAAC,OAAO,WAAW,MAAM,CAAC;IAC9B,KAAK,QAAQ,GAAG,SAAS,CAAC,MAAM,CAAC,eAAe,CAAC,OAAO,OAAO,CAAC,MAAM,CAAC,EAAE,WAAW,CAAC,CAAA;IAErF,KAAK,UAAU,GAAG;QAChB,6DAA6D;QAC7D,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,SAAS,CAAA;KAC9C,GAAG,QAAQ,GACV,KAAK,CACD;QACE,yGAAyG;QACzG,MAAM,EAAE,YAAY,CAAA;KACrB,GACD;QACE,6BAA6B;QAC7B,SAAS,EAAE,MAAM,CAAA;KAClB,CACJ,CAAA;IAEH,KAAK,cAAc,CAAC,UAAU,SAAS,UAAU,IAAI,IAAI,CACvD,UAAU,EACV,OAAO,CAAC,MAAM,UAAU,EAAE,MAAM,QAAQ,CAAC,CAC1C,GAAG;QAAE,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAA;CACzB"}
@@ -61,6 +61,8 @@ export function charge(parameters) {
61
61
  spt,
62
62
  metadata: resolvedMetadata,
63
63
  });
64
+ if (pi.replayed)
65
+ throw new VerificationFailedError({ reason: 'Payment has already been processed.' });
64
66
  if (pi.status === 'requires_action') {
65
67
  throw new PaymentActionRequiredError({ reason: 'Stripe PaymentIntent requires action' });
66
68
  }
@@ -89,7 +91,9 @@ async function createWithClient(parameters) {
89
91
  // `shared_payment_granted_token` is not yet in the Stripe SDK types (SPTs are in private preview).
90
92
  shared_payment_granted_token: spt,
91
93
  }, { idempotencyKey: `mppx_${challenge.id}_${spt}` });
92
- return { id: result.id, status: result.status };
94
+ // https://docs.stripe.com/error-low-level#idempotency
95
+ const replayed = result.lastResponse?.headers?.['idempotent-replayed'] === 'true';
96
+ return { id: result.id, status: result.status, replayed };
93
97
  }
94
98
  catch {
95
99
  throw new VerificationFailedError({ reason: 'Stripe PaymentIntent failed' });
@@ -120,7 +124,10 @@ async function createWithSecretKey(parameters) {
120
124
  });
121
125
  if (!response.ok)
122
126
  throw new VerificationFailedError({ reason: 'Stripe PaymentIntent failed' });
123
- return (await response.json());
127
+ // https://docs.stripe.com/error-low-level#idempotency
128
+ const replayed = response.headers.get('idempotent-replayed') === 'true';
129
+ const result = (await response.json());
130
+ return { ...result, replayed };
124
131
  }
125
132
  /** @internal */
126
133
  function buildAnalytics(parameters) {
@@ -1 +1 @@
1
- {"version":3,"file":"Charge.js","sourceRoot":"","sources":["../../../src/stripe/server/Charge.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Charge.js","sourceRoot":"","sources":["../../../src/stripe/server/Charge.ts"],"names":[],"mappings":"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"}
@@ -533,10 +533,14 @@ async function handleClose(store, client, challenge, payload, methodDetails, acc
533
533
  if (onChain.finalized) {
534
534
  throw new ChannelClosedError({ reason: 'channel is finalized on-chain' });
535
535
  }
536
- const minCloseAmount = channel.spent > onChain.settled ? channel.spent : onChain.settled;
537
- if (voucher.cumulativeAmount < minCloseAmount) {
536
+ if (voucher.cumulativeAmount < channel.spent) {
538
537
  throw new VerificationFailedError({
539
- reason: `close voucher amount must be >= ${minCloseAmount} (max of spent and on-chain settled)`,
538
+ reason: `close voucher amount must be >= ${channel.spent} (spent)`,
539
+ });
540
+ }
541
+ if (voucher.cumulativeAmount <= onChain.settled) {
542
+ throw new VerificationFailedError({
543
+ reason: `close voucher amount must be > ${onChain.settled} (on-chain settled)`,
540
544
  });
541
545
  }
542
546
  if (voucher.cumulativeAmount > onChain.deposit) {
@@ -1 +1 @@
1
- {"version":3,"file":"Session.js","sourceRoot":"","sources":["../../../src/tempo/server/Session.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Session.js","sourceRoot":"","sources":["../../../src/tempo/server/Session.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "mppx",
3
3
  "type": "module",
4
- "version": "0.4.10",
4
+ "version": "0.4.11",
5
5
  "main": "./dist/index.js",
6
6
  "license": "MIT",
7
7
  "files": [
@@ -6,7 +6,11 @@
6
6
  */
7
7
  export type StripeClient = {
8
8
  paymentIntents: {
9
- create(...args: any[]): Promise<{ id: string; status: string }>
9
+ create(...args: any[]): Promise<{
10
+ id: string
11
+ status: string
12
+ lastResponse?: { headers?: Record<string, string> }
13
+ }>
10
14
  }
11
15
  }
12
16
 
@@ -16,9 +16,15 @@ function createMockStripeClient(
16
16
  overrides?: Partial<{ status: string; id: string; throws: boolean }>,
17
17
  ): { client: StripeClient; create: ReturnType<typeof vi.fn> } {
18
18
  const { status = 'succeeded', id = 'pi_mock_123', throws = false } = overrides ?? {}
19
+ let callCount = 0
19
20
  const create = vi.fn(async () => {
20
21
  if (throws) throw new Error('Stripe API error')
21
- return { id, status }
22
+ callCount++
23
+ return {
24
+ id,
25
+ status,
26
+ ...(callCount > 1 ? { lastResponse: { headers: { 'idempotent-replayed': 'true' } } } : {}),
27
+ }
22
28
  })
23
29
  return {
24
30
  client: { paymentIntents: { create } },
@@ -196,6 +202,51 @@ describe('stripe.charge with client', () => {
196
202
  expect(body.detail).toContain('requires action')
197
203
  })
198
204
 
205
+ test('behavior: rejects replayed credential', async () => {
206
+ const { client } = createMockStripeClient()
207
+
208
+ const server = Mppx.create({
209
+ methods: [
210
+ stripe.charge({
211
+ client,
212
+ networkId: 'internal',
213
+ paymentMethodTypes: ['card'],
214
+ }),
215
+ ],
216
+ realm,
217
+ secretKey,
218
+ })
219
+
220
+ const handle = server.charge({ amount: '1', currency: 'usd', decimals: 2 })
221
+
222
+ // First request: get challenge
223
+ const firstResult = await handle(new Request('https://example.com'))
224
+ expect(firstResult.status).toBe(402)
225
+ if (firstResult.status !== 402) throw new Error()
226
+
227
+ const challenge = Challenge.fromResponse(firstResult.challenge)
228
+ const credential = Credential.from({
229
+ challenge,
230
+ payload: { spt: 'spt_test_token' },
231
+ })
232
+
233
+ // First payment: should succeed
234
+ const result1 = await handle(
235
+ new Request('https://example.com', {
236
+ headers: { Authorization: Credential.serialize(credential) },
237
+ }),
238
+ )
239
+ expect(result1.status).toBe(200)
240
+
241
+ // Replay same credential: should be rejected
242
+ const result2 = await handle(
243
+ new Request('https://example.com', {
244
+ headers: { Authorization: Credential.serialize(credential) },
245
+ }),
246
+ )
247
+ expect(result2.status).toBe(402)
248
+ })
249
+
199
250
  test('behavior: receipt contains mock reference', async () => {
200
251
  const { client } = createMockStripeClient({ id: 'pi_custom_ref' })
201
252
 
@@ -89,6 +89,9 @@ export function charge<const parameters extends charge.Parameters>(parameters: p
89
89
  metadata: resolvedMetadata,
90
90
  })
91
91
 
92
+ if (pi.replayed)
93
+ throw new VerificationFailedError({ reason: 'Payment has already been processed.' })
94
+
92
95
  if (pi.status === 'requires_action') {
93
96
  throw new PaymentActionRequiredError({ reason: 'Stripe PaymentIntent requires action' })
94
97
  }
@@ -136,7 +139,7 @@ async function createWithClient(parameters: {
136
139
  metadata: Record<string, string>
137
140
  request: { amount: unknown; currency: unknown }
138
141
  spt: string
139
- }): Promise<{ id: string; status: string }> {
142
+ }): Promise<{ id: string; status: string; replayed: boolean }> {
140
143
  const { client, challenge, metadata, request, spt } = parameters
141
144
  try {
142
145
  const result = await client.paymentIntents.create(
@@ -151,7 +154,9 @@ async function createWithClient(parameters: {
151
154
  } as any,
152
155
  { idempotencyKey: `mppx_${challenge.id}_${spt}` },
153
156
  )
154
- return { id: result.id, status: result.status }
157
+ // https://docs.stripe.com/error-low-level#idempotency
158
+ const replayed = result.lastResponse?.headers?.['idempotent-replayed'] === 'true'
159
+ return { id: result.id, status: result.status, replayed }
155
160
  } catch {
156
161
  throw new VerificationFailedError({ reason: 'Stripe PaymentIntent failed' })
157
162
  }
@@ -164,7 +169,7 @@ async function createWithSecretKey(parameters: {
164
169
  metadata: Record<string, string>
165
170
  request: { amount: unknown; currency: unknown }
166
171
  spt: string
167
- }): Promise<{ id: string; status: string }> {
172
+ }): Promise<{ id: string; status: string; replayed: boolean }> {
168
173
  const { secretKey, challenge, metadata, request, spt } = parameters
169
174
 
170
175
  const body = new URLSearchParams({
@@ -190,7 +195,10 @@ async function createWithSecretKey(parameters: {
190
195
  })
191
196
 
192
197
  if (!response.ok) throw new VerificationFailedError({ reason: 'Stripe PaymentIntent failed' })
193
- return (await response.json()) as { id: string; status: string }
198
+ // https://docs.stripe.com/error-low-level#idempotency
199
+ const replayed = response.headers.get('idempotent-replayed') === 'true'
200
+ const result = (await response.json()) as { id: string; status: string }
201
+ return { ...result, replayed }
194
202
  }
195
203
 
196
204
  /** @internal */
@@ -1143,6 +1143,35 @@ describe.runIf(isLocalnet)('session', () => {
1143
1143
  ).rejects.toThrow('close voucher amount must be >=')
1144
1144
  })
1145
1145
 
1146
+ test('rejects close equal to on-chain settled amount', async () => {
1147
+ const { channelId, serializedTransaction } = await createSignedOpenTransaction(10000000n)
1148
+ const server = createServer()
1149
+
1150
+ // Open with 1M voucher (matches openServerChannel default)
1151
+ await openServerChannel(server, channelId, serializedTransaction)
1152
+
1153
+ // Settle on-chain so settled becomes 1000000
1154
+ const settleTxHash = await settle(store, client, channelId, { escrowContract })
1155
+ await waitForTransactionReceipt(client, { hash: settleTxHash })
1156
+
1157
+ // Try to close with voucher == on-chain settled — should be rejected
1158
+ // because replaying the settled amount doesn't commit new funds
1159
+ await expect(
1160
+ server.verify({
1161
+ credential: {
1162
+ challenge: makeChallenge({ id: 'challenge-2', channelId }),
1163
+ payload: {
1164
+ action: 'close' as const,
1165
+ channelId,
1166
+ cumulativeAmount: '1000000',
1167
+ signature: await signTestVoucher(channelId, 1000000n),
1168
+ },
1169
+ },
1170
+ request: makeRequest(),
1171
+ }),
1172
+ ).rejects.toThrow('close voucher amount must be >')
1173
+ })
1174
+
1146
1175
  test('rejects close exceeding on-chain deposit', async () => {
1147
1176
  const { channelId, serializedTransaction } = await createSignedOpenTransaction(10000000n)
1148
1177
  const server = createServer()
@@ -815,10 +815,14 @@ async function handleClose(
815
815
  throw new ChannelClosedError({ reason: 'channel is finalized on-chain' })
816
816
  }
817
817
 
818
- const minCloseAmount = channel.spent > onChain.settled ? channel.spent : onChain.settled
819
- if (voucher.cumulativeAmount < minCloseAmount) {
818
+ if (voucher.cumulativeAmount < channel.spent) {
820
819
  throw new VerificationFailedError({
821
- reason: `close voucher amount must be >= ${minCloseAmount} (max of spent and on-chain settled)`,
820
+ reason: `close voucher amount must be >= ${channel.spent} (spent)`,
821
+ })
822
+ }
823
+ if (voucher.cumulativeAmount <= onChain.settled) {
824
+ throw new VerificationFailedError({
825
+ reason: `close voucher amount must be > ${onChain.settled} (on-chain settled)`,
822
826
  })
823
827
  }
824
828