mppx 0.8.7 → 0.8.8

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.
@@ -1,3 +1,4 @@
1
+ import * as viemChains from 'viem/chains';
1
2
  import { validateChallenge, validateErrorHandling } from '../cli/validate/challenge.js';
2
3
  import { buildUrl, extractEndpointsFromDiscovery, extractRequestBodyFromDiscovery, fetchDiscoveryDoc, } from '../cli/validate/discovery.js';
3
4
  import { isValidIntegerAmount, parseEndpointArg, resolveBodyForEndpoint, } from '../cli/validate/helpers.js';
@@ -22,28 +23,34 @@ export async function* validateStream(options) {
22
23
  body = extractRequestBodyFromDiscovery(discovery.doc, endpoint);
23
24
  }
24
25
  }
25
- const { results: challengeResults, resolvedBody } = await validateChallenge(baseUrl, endpoint, verbose, {
26
+ const { results: challengeResults, resolvedBody, challenges: parsedChallenges, } = await validateChallenge(baseUrl, endpoint, verbose, {
26
27
  body,
27
28
  query: options.query,
28
29
  discoveryDoc: discovery.doc ?? undefined,
29
30
  });
30
31
  const effectiveBody = resolvedBody ?? body;
31
32
  const isMpp = challengeResults.some((r) => r.severity === 'pass' && r.label === 'Challenge parseable');
32
- const isTestnet = challengeResults.some((r) => r.severity === 'pass' &&
33
- r.label.endsWith('Valid currency address') &&
34
- r.detail === 'testnet');
33
+ const chainIds = (parsedChallenges ?? [])
34
+ .filter((ch) => ch.method !== 'stripe')
35
+ .map((ch) => ch.request.methodDetails?.chainId)
36
+ .filter((id) => typeof id === 'number');
37
+ const isTestnet = chainIds.some(chainIsTestnet);
38
+ const isMainnet = chainIds.some((id) => !chainIsTestnet(id));
35
39
  const isNonMppPayment = !isMpp && challengeResults.some((r) => r.label === 'Not an MPP endpoint');
36
40
  const hasPaymentScheme = challengeResults.some((r) => r.severity === 'pass' && r.label === 'WWW-Authenticate header present');
37
41
  const challengeFailed = challengeResults.some((r) => r.severity === 'fail' && r.label === 'Challenge parseable');
38
42
  const isMalformedChallenge = !isMpp && hasPaymentScheme && challengeFailed;
43
+ const methods = parsedChallenges?.map((c) => c.method) ?? [];
39
44
  yield {
40
45
  phase: 'challenge',
41
46
  endpoint,
42
47
  results: challengeResults,
43
48
  isMpp,
44
49
  isTestnet,
50
+ isMainnet,
45
51
  isNonMppPayment,
46
52
  isMalformedChallenge,
53
+ methods,
47
54
  };
48
55
  if (isMpp) {
49
56
  const errorResults = await validateErrorHandling(baseUrl, endpoint, {
@@ -57,6 +64,8 @@ export async function* validateStream(options) {
57
64
  body: effectiveBody,
58
65
  query: options.query,
59
66
  yes: options.yes,
67
+ silent: !onResults,
68
+ interactive: options.interactive,
60
69
  ...(onResults && { onResults }),
61
70
  });
62
71
  const succeeded = paymentResults.some((r) => r.severity === 'pass' && r.label === 'Payment: successful');
@@ -73,10 +82,6 @@ export async function validate(options) {
73
82
  let current;
74
83
  let sawTestnet = false;
75
84
  let sawMainnet = false;
76
- let paymentSucceeded = false;
77
- let sawMppEndpoint = false;
78
- let sawNonMppPaymentEndpoint = false;
79
- let sawMalformedChallenge = false;
80
85
  for await (const event of validateStream(options)) {
81
86
  switch (event.phase) {
82
87
  case 'discovery':
@@ -96,16 +101,11 @@ export async function validate(options) {
96
101
  if (current)
97
102
  current.challenge = event.results;
98
103
  if (event.isMpp) {
99
- sawMppEndpoint = true;
100
104
  if (event.isTestnet)
101
105
  sawTestnet = true;
102
- else
106
+ if (event.isMainnet)
103
107
  sawMainnet = true;
104
108
  }
105
- if (event.isNonMppPayment)
106
- sawNonMppPaymentEndpoint = true;
107
- if (event.isMalformedChallenge)
108
- sawMalformedChallenge = true;
109
109
  break;
110
110
  case 'errorHandling':
111
111
  if (current)
@@ -114,8 +114,6 @@ export async function validate(options) {
114
114
  case 'payment':
115
115
  if (current)
116
116
  current.payment = event.results;
117
- if (event.succeeded)
118
- paymentSucceeded = true;
119
117
  break;
120
118
  }
121
119
  }
@@ -146,21 +144,36 @@ export async function validate(options) {
146
144
  }
147
145
  if (!discovery)
148
146
  throw new Error('Discovery phase did not complete');
147
+ const suggestions = computeSuggestions(endpointResults, { sawTestnet, sawMainnet });
149
148
  return {
150
149
  url: baseUrl,
151
150
  discovery,
152
151
  endpoints: endpointResults,
153
152
  summary,
154
- flags: {
155
- sawMppEndpoint,
156
- sawNonMppPaymentEndpoint,
157
- sawMalformedChallenge,
158
- sawTestnet,
159
- sawMainnet,
160
- paymentSucceeded,
161
- },
153
+ suggestions,
162
154
  };
163
155
  }
156
+ function computeSuggestions(endpoints, flags) {
157
+ const steps = [];
158
+ const allResults = endpoints.flatMap((ep) => [...ep.challenge, ...ep.payment]);
159
+ const sawCryptoMainnet = flags.sawMainnet;
160
+ const sawCryptoTestnet = flags.sawTestnet;
161
+ const sawStripeLive = allResults.some((r) => r.label.includes('[stripe]') && r.label.includes('livemode'));
162
+ if (sawCryptoMainnet && !sawCryptoTestnet) {
163
+ steps.push('Validate your testnet server to test without real funds (Tempo wallets are automatically provisioned).');
164
+ }
165
+ else if (sawCryptoTestnet && !sawCryptoMainnet) {
166
+ steps.push('Validate your mainnet server to confirm real payments work end-to-end.');
167
+ }
168
+ if (sawStripeLive) {
169
+ steps.push('Validate your testmode Stripe server to test card payments end-to-end (auto-pays with test card).');
170
+ }
171
+ return steps;
172
+ }
173
+ const allChains = Object.values(viemChains);
174
+ function chainIsTestnet(chainId) {
175
+ return allChains.find((c) => c.id === chainId)?.testnet === true;
176
+ }
164
177
  async function runDiscovery(baseUrl, options) {
165
178
  const checks = [];
166
179
  let endpoints = [];
@@ -1 +1 @@
1
- {"version":3,"file":"core.js","sourceRoot":"","sources":["../../src/validation/core.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"core.js","sourceRoot":"","sources":["../../src/validation/core.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.8.7",
4
+ "version": "0.8.8",
5
5
  "main": "./dist/index.js",
6
6
  "license": "MIT",
7
7
  "homepage": "https://github.com/wevm/mppx#readme",
@@ -19,12 +19,13 @@ export function stripe() {
19
19
  const stripeOpts = parseOptions(
20
20
  z.object({
21
21
  paymentMethod: z.string(),
22
+ secretKey: z.string().optional(),
22
23
  }),
23
24
  methodOpts,
24
- ['paymentMethod'],
25
+ ['paymentMethod', 'secretKey'],
25
26
  )
26
27
 
27
- const stripeSecretKey = process.env.MPPX_STRIPE_SECRET_KEY
28
+ const stripeSecretKey = stripeOpts.secretKey ?? process.env.MPPX_STRIPE_SECRET_KEY
28
29
  if (!stripeSecretKey)
29
30
  throw new Errors.IncurError({
30
31
  code: 'MISSING_ENV',
@@ -1,6 +1,8 @@
1
+ import type { Chain } from 'viem'
2
+ import * as viemChains from 'viem/chains'
3
+
1
4
  import * as Challenge from '../../Challenge.js'
2
5
  import * as Constants from '../../Constants.js'
3
- import { chainId as tempoChainIds } from '../../tempo/internal/defaults.js'
4
6
  import * as x402Header from '../../x402/Header.js'
5
7
  import { pc } from '../utils.js'
6
8
  import { buildUrl, extractRequestBodyFromDiscovery } from './discovery.js'
@@ -15,13 +17,13 @@ import {
15
17
  warn,
16
18
  } from './helpers.js'
17
19
 
20
+ const allChains = Object.values(viemChains) as Chain[]
21
+
18
22
  function detectTestnet(challenge: Challenge.Challenge): boolean {
19
23
  const request = challenge.request as Record<string, unknown>
20
- const methodDetails = request.methodDetails as Record<string, unknown> | undefined
21
- if (typeof methodDetails?.chainId === 'number') {
22
- return methodDetails.chainId !== tempoChainIds.mainnet
23
- }
24
- return false
24
+ const md = request.methodDetails as Record<string, unknown> | undefined
25
+ if (typeof md?.chainId !== 'number') return false
26
+ return allChains.find((c) => c.id === md.chainId)?.testnet === true
25
27
  }
26
28
 
27
29
  export async function validateChallenge(
@@ -279,7 +281,8 @@ function validateMethodFields(
279
281
  validateTempoFields(request, tag, results, challenge)
280
282
  else if (challenge.method === Constants.Methods.stripe)
281
283
  validateStripeFields(request, tag, results)
282
- else if (challenge.method === Constants.Methods.evm) validateEvmFields(request, tag, results)
284
+ else if (challenge.method === Constants.Methods.evm)
285
+ validateEvmFields(challenge, request, tag, results)
283
286
  }
284
287
 
285
288
  function validateTempoFields(
@@ -384,6 +387,7 @@ function validateStripeFields(
384
387
  }
385
388
 
386
389
  function validateEvmFields(
390
+ challenge: Challenge.Challenge,
387
391
  request: Record<string, unknown>,
388
392
  tag: string,
389
393
  results: CheckResult[],
@@ -401,7 +405,8 @@ function validateEvmFields(
401
405
  }
402
406
 
403
407
  if (isValidAddress(request.currency)) {
404
- results.push(check(`${tag}Valid currency address`))
408
+ const network = detectTestnet(challenge) ? 'testnet' : 'mainnet'
409
+ results.push(check(`${tag}Valid currency address`, network))
405
410
  } else {
406
411
  results.push(
407
412
  fail(
@@ -39,6 +39,7 @@ const validate = Cli.create('validate', {
39
39
  query: c.options.query,
40
40
  verbose: c.options.verbose > 0,
41
41
  yes: c.options.yes,
42
+ interactive: false,
42
43
  })
43
44
  console.log(JSON.stringify(result, null, 2))
44
45
  const noEndpoints = result.endpoints.length === 0 && !c.options.endpoint
@@ -67,6 +68,7 @@ const validate = Cli.create('validate', {
67
68
  query: c.options.query,
68
69
  verbose: c.options.verbose > 0,
69
70
  yes: c.options.yes,
71
+ interactive: !!process.stdin.isTTY,
70
72
  onPaymentResults: (results) => printResults(results, counts),
71
73
  })) {
72
74
  switch (event.phase) {
@@ -106,7 +108,7 @@ const validate = Cli.create('validate', {
106
108
  if (event.isMpp) {
107
109
  sawMppEndpoint = true
108
110
  if (event.isTestnet) sawTestnet = true
109
- else sawMainnet = true
111
+ if (event.isMainnet) sawMainnet = true
110
112
  }
111
113
  if (event.isNonMppPayment) sawNonMppPaymentEndpoint = true
112
114
  if (event.isMalformedChallenge) sawMalformedChallenge = true
@@ -208,13 +210,13 @@ function printSummary(
208
210
  if (flags.paymentSucceeded && flags.sawTestnet && !flags.sawMainnet) {
209
211
  console.log('')
210
212
  console.log(
211
- pc.dim(' Tip: validate your mainnet server too to confirm real payments work end-to-end.'),
213
+ pc.dim(' Tip: also validate your mainnet server to confirm real payments work end-to-end.'),
212
214
  )
213
215
  } else if (flags.sawMainnet && !flags.sawTestnet) {
214
216
  console.log('')
215
217
  console.log(
216
218
  pc.dim(
217
- ' Tip: validate a testnet server too for free. This CLI automatically provisions and funds a testnet wallet for testing.',
219
+ ' Tip: also validate your testnet server for free. This CLI automatically provisions and funds a testnet wallet for testing.',
218
220
  ),
219
221
  )
220
222
  }