twzrd-x402-gate 0.11.2 → 0.11.4

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.
Files changed (57) hide show
  1. package/CHANGELOG.md +17 -0
  2. package/QUICKSTART.md +3 -3
  3. package/README.md +4 -4
  4. package/dist/all-offers.d.ts +3 -0
  5. package/dist/all-offers.d.ts.map +1 -1
  6. package/dist/all-offers.js +3 -0
  7. package/dist/all-offers.js.map +1 -1
  8. package/dist/cloudflare-base.d.ts +2 -0
  9. package/dist/cloudflare-base.d.ts.map +1 -1
  10. package/dist/cloudflare-base.js +107 -43
  11. package/dist/cloudflare-base.js.map +1 -1
  12. package/dist/config.d.ts +6 -0
  13. package/dist/config.d.ts.map +1 -1
  14. package/dist/config.js +24 -8
  15. package/dist/config.js.map +1 -1
  16. package/dist/doctor.js +6 -6
  17. package/dist/evaluate.d.ts +1 -1
  18. package/dist/evaluate.d.ts.map +1 -1
  19. package/dist/evaluate.js +1 -1
  20. package/dist/evaluate.js.map +1 -1
  21. package/dist/index.d.ts +1 -1
  22. package/dist/index.d.ts.map +1 -1
  23. package/dist/index.js +1 -1
  24. package/dist/index.js.map +1 -1
  25. package/dist/intent-adapters.d.ts +9 -0
  26. package/dist/intent-adapters.d.ts.map +1 -1
  27. package/dist/intent-adapters.js +21 -1
  28. package/dist/intent-adapters.js.map +1 -1
  29. package/dist/mcp-hook.d.ts.map +1 -1
  30. package/dist/mcp-hook.js +2 -0
  31. package/dist/mcp-hook.js.map +1 -1
  32. package/dist/mpp-hook.d.ts +0 -60
  33. package/dist/mpp-hook.d.ts.map +1 -1
  34. package/dist/mpp-hook.js +2 -1
  35. package/dist/mpp-hook.js.map +1 -1
  36. package/dist/paying-fetch.d.ts.map +1 -1
  37. package/dist/paying-fetch.js +15 -3
  38. package/dist/paying-fetch.js.map +1 -1
  39. package/dist/payto.d.ts +6 -0
  40. package/dist/payto.d.ts.map +1 -1
  41. package/dist/payto.js +1 -1
  42. package/dist/payto.js.map +1 -1
  43. package/dist/policy-fetch.d.ts.map +1 -1
  44. package/dist/policy-fetch.js +34 -15
  45. package/dist/policy-fetch.js.map +1 -1
  46. package/dist/seller-hook.d.ts +0 -27
  47. package/dist/seller-hook.d.ts.map +1 -1
  48. package/dist/seller-hook.js +2 -1
  49. package/dist/seller-hook.js.map +1 -1
  50. package/dist/wash-default.d.ts.map +1 -1
  51. package/dist/wash-default.js +2 -1
  52. package/dist/wash-default.js.map +1 -1
  53. package/dist/x402-client-hook.d.ts +1 -1
  54. package/dist/x402-client-hook.d.ts.map +1 -1
  55. package/dist/x402-client-hook.js +2 -1
  56. package/dist/x402-client-hook.js.map +1 -1
  57. package/package.json +1 -1
package/CHANGELOG.md CHANGED
@@ -28,6 +28,23 @@ All notable changes to `twzrd-x402-gate`. Dates are npm publish dates (UTC).
28
28
  - **Seller side** (`createTwzrdSettleGuard`): fail-open by default. A screen that throws
29
29
  returns without aborting settlement unless `failOpen: false`.
30
30
 
31
+ ## 0.11.4 - 2026-10-01 (security fix)
32
+
33
+ - **`createTwzrdPolicyFetch` and the x402 intent adapter refuse a non-USDC asset** (`twzrd_non_usdc_asset`) instead of reading its base units as USD: 5 wSOL (`500000000`) passed a $1000 cap as "$500". The hook and approval seats already refused it; the policy seat now agrees. A bare `"USDC"` symbol is not a mint and is refused like any other non-mint asset on a network with a known USDC set. The MPP seat has its own priced-asset table and is unchanged (it also prices USDT 1:1; the x402 seats do not).
34
+ - **Base Worker**: an entry whose network is spelled `BASE`, `base` or `eip155:8453 ` is scored like `eip155:8453` (it was skipped, so a clean sibling could approve a wash one). An amount too large for a finite number is refused (`twzrd_invalid_price`). The Worker pays EVM entries only; Solana siblings are not scored by it.
35
+
36
+ ## 0.11.3 — 2026-10-01 (security fix)
37
+
38
+ Follow-up to a red-team of the published 0.11.2. Every change adds a refusal or makes one reliable.
39
+
40
+ - **One flag parser.** `failOpen` (override, wash seat, seller hook), `cloudflare-base` `failOpen` and `refuseUnevaluated`, and the MPP `treatWarnAsBlock`
41
+ read a boolean the same way: true, 1, or true/1/yes/on in any case are on; anything else is off, and a typo warns once. `failOpen: "false"` no longer
42
+ opens on an outage.
43
+ - **`createTwzrdPayingFetch` and `createTwzrdPolicyFetch` check every offer**, as the other wrappers do since 0.11.2, and refuse an entry with no recipient.
44
+ - **`./cloudflare-base` has a deadline** (`intelTimeoutMs`, default 2000) and honours string flags.
45
+ - An `async` `onReceipt` that rejects no longer crashes the host. `intelTimeoutMs` above 2^31-1 is clamped instead of becoming 1 ms (the main gate config and the Base Worker; `timeoutMs` on the wash seat and settle guard is not clamped and fails closed by default). `createTwzrdPolicyFetch` books the costliest offer in the spend ledger, since the client may pay any entry.
46
+ - Behavior changes to note: on the paying and policy fetch wrappers a 402 with a legitimate entry plus a sibling that has no recipient (e.g. another rail) is now refused whole (`twzrd_unidentifiable_payment_recipient`), matching `wrapFetchWithTwzrdGate`; more than 8 distinct entries is refused (`too_many_payment_options`); settle-guard `failOpen` of `"false"`/`"0"`/`0` now fails closed (was open).
47
+
31
48
  ## 0.11.2 — 2026-09-28 (security fix)
32
49
 
33
50
  Fixes from a line-by-line audit of the published 0.11.1. Every change adds a
package/QUICKSTART.md CHANGED
@@ -6,13 +6,13 @@ is unreachable the gate never *invents* a wash flag. A failed preflight, or a me
6
6
  outage on a scored path, blocks by default (`TWZRD_FAIL_OPEN=true` to allow). A reachable
7
7
  card with no wash signal still proceeds.
8
8
 
9
- **Pin:** `twzrd-x402-gate@0.11.2` + stock PayAI client `x402-solana@3.0.0` (official
9
+ **Pin:** `twzrd-x402-gate@0.11.4` + stock PayAI client `x402-solana@3.0.0` (official
10
10
  `beforePayment` seat). `@x402/core` Path E remains supported; refuse script is fallback.
11
11
 
12
12
  ## 1. Stock PayAI client (default seat — copy-paste)
13
13
 
14
14
  ```bash
15
- npm install twzrd-x402-gate@0.11.2 x402-solana@3.0.0
15
+ npm install twzrd-x402-gate@0.11.4 x402-solana@3.0.0
16
16
  ```
17
17
 
18
18
  > **ESM-only.** The package ships `import` conditions only — a CommonJS
@@ -37,7 +37,7 @@ Then: `await client.fetch("https://merchant.example/paid");`
37
37
  ## 1b. Official `@x402/core` client (Path E)
38
38
 
39
39
  ```bash
40
- npm install twzrd-x402-gate@0.11.2 @x402/core @x402/fetch @x402/svm
40
+ npm install twzrd-x402-gate@0.11.4 @x402/core @x402/fetch @x402/svm
41
41
  ```
42
42
 
43
43
  ```typescript
package/README.md CHANGED
@@ -41,7 +41,7 @@ refuse. Protects the **payer** from a risky **merchant** (`payTo`). Chain-neutra
41
41
  ### Default-on AutoGate (5 lines)
42
42
 
43
43
  ```bash
44
- npm install twzrd-x402-gate@0.11.2 @x402/core @x402/fetch @x402/svm
44
+ npm install twzrd-x402-gate@0.11.4 @x402/core @x402/fetch @x402/svm
45
45
  ```
46
46
 
47
47
  ```typescript
@@ -80,7 +80,7 @@ transfer on-chain. Wash/sybil edges are primarily discounted in TWZRD scoring, n
80
80
  revenue refusal.
81
81
 
82
82
  ```bash
83
- npm install twzrd-x402-gate@0.11.2
83
+ npm install twzrd-x402-gate@0.11.4
84
84
  ```
85
85
 
86
86
  ```typescript
@@ -125,7 +125,7 @@ Fixture-backed SVM extract tests live in `test/seller-hook.test.ts` +
125
125
  Install the published gate and run against wash fixtures:
126
126
 
127
127
  ```bash
128
- npm install twzrd-x402-gate@0.11.2
128
+ npm install twzrd-x402-gate@0.11.4
129
129
  # from package root after install, or from a checkout:
130
130
  npm run wash-dogfood
131
131
  ```
@@ -299,7 +299,7 @@ Dogfood (one public live proof path):
299
299
  ## Install
300
300
 
301
301
  ```bash
302
- npm install twzrd-x402-gate@0.11.2
302
+ npm install twzrd-x402-gate@0.11.4
303
303
  ```
304
304
 
305
305
  Do not hardcode a version in this doc — every past pin here (**0.5.4**, **0.7.1**, **0.8.5**,
@@ -20,6 +20,9 @@ export declare function firstRefusedOffer(offers: Array<Record<string, unknown>>
20
20
  config?: ResolvedTwzrdGateConfig;
21
21
  resourceUrl?: string;
22
22
  agentIntent: string;
23
+ resourceName?: string;
24
+ buyerWallet?: string;
25
+ sellerWallet?: string;
23
26
  skip?: Record<string, unknown>;
24
27
  }): Promise<{
25
28
  offer: Record<string, unknown>;
@@ -1 +1 @@
1
- {"version":3,"file":"all-offers.d.ts","sourceRoot":"","sources":["../src/all-offers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,aAAa,CAAC;AAS3D;;;;;;;GAOG;AACH,eAAO,MAAM,mBAAmB,IAAI,CAAC;AACrC,eAAO,MAAM,wBAAwB,6BAA6B,CAAC;AAanE,qEAAqE;AACrE,wBAAgB,cAAc,CAAC,OAAO,EAAE,OAAO,GAAG,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAU/E;AAED,wBAAgB,SAAS,CAAC,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAEzF;AAED;;;GAGG;AACH,wBAAsB,iBAAiB,CACrC,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,EACtC,IAAI,EAAE;IACJ,MAAM,CAAC,EAAE,uBAAuB,CAAC;IACjC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAChC,GACA,OAAO,CAAC;IAAE,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GAAG,SAAS,CAAC,CAsBzF"}
1
+ {"version":3,"file":"all-offers.d.ts","sourceRoot":"","sources":["../src/all-offers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,aAAa,CAAC;AAS3D;;;;;;;GAOG;AACH,eAAO,MAAM,mBAAmB,IAAI,CAAC;AACrC,eAAO,MAAM,wBAAwB,6BAA6B,CAAC;AAanE,qEAAqE;AACrE,wBAAgB,cAAc,CAAC,OAAO,EAAE,OAAO,GAAG,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAU/E;AAED,wBAAgB,SAAS,CAAC,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAEzF;AAED;;;GAGG;AACH,wBAAsB,iBAAiB,CACrC,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,EACtC,IAAI,EAAE;IACJ,MAAM,CAAC,EAAE,uBAAuB,CAAC;IACjC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAChC,GACA,OAAO,CAAC;IAAE,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GAAG,SAAS,CAAC,CAyBzF"}
@@ -55,6 +55,9 @@ export async function firstRefusedOffer(offers, opts) {
55
55
  payTo: f.payTo,
56
56
  priceUsdc: priceUsdcFromAmountMicro(f.amount, offer),
57
57
  agentIntent: opts.agentIntent,
58
+ resourceName: opts.resourceName,
59
+ buyerWallet: opts.buyerWallet,
60
+ sellerWallet: opts.sellerWallet,
58
61
  chain: offer.network,
59
62
  asset: requirementAsset(offer),
60
63
  }, opts.config);
@@ -1 +1 @@
1
- {"version":3,"file":"all-offers.js","sourceRoot":"","sources":["../src/all-offers.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"all-offers.js","sourceRoot":"","sources":["../src/all-offers.ts"],"names":[],"mappings":"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"}
@@ -41,6 +41,8 @@ export type CloudflareBaseGateOptions = {
41
41
  agentIntent?: string;
42
42
  /** Default false: an unavailable or malformed preflight does not permit signing. */
43
43
  failOpen?: boolean;
44
+ /** Deadline for the preflight call, ms (default 2000). A miss is an outage decided by failOpen. */
45
+ intelTimeoutMs?: number;
44
46
  };
45
47
  export declare class TwzrdBasePaymentBlockedError extends Error {
46
48
  readonly verdict: BasePreflightVerdict;
@@ -1 +1 @@
1
- {"version":3,"file":"cloudflare-base.d.ts","sourceRoot":"","sources":["../src/cloudflare-base.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,eAAO,MAAM,aAAa,OAAO,CAAC;AAClC,eAAO,MAAM,YAAY,gBAA4B,CAAC;AAEtD,MAAM,MAAM,0BAA0B,GAAG;IACvC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;CAC1C,CAAC;AAEF,MAAM,MAAM,oBAAoB,GAAG;IACjC,QAAQ,EAAE,OAAO,GAAG,MAAM,GAAG,OAAO,CAAC;IACrC,qFAAqF;IACrF,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,mEAAmE;IACnE,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,kBAAkB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACnC,WAAW,CAAC,EAAE,OAAO,GAAG,IAAI,CAAC;CAC9B,CAAC;AAEF,+DAA+D;AAC/D,eAAO,MAAM,SAAS,+CAA+C,CAAC;AAEtE,MAAM,MAAM,yBAAyB,GAAG;IACtC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,OAAO,KAAK,CAAC;IACrB;;;;OAIG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,uFAAuF;IACvF,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,kFAAkF;IAClF,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,oFAAoF;IACpF,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB,CAAC;AAEF,qBAAa,4BAA6B,SAAQ,KAAK;IACrD,QAAQ,CAAC,OAAO,EAAE,oBAAoB,CAAC;gBAE3B,OAAO,EAAE,oBAAoB;CAK1C;AAED;;;;;;GAMG;AACH,wBAAsB,kBAAkB,CACtC,YAAY,EAAE,0BAA0B,EACxC,OAAO,GAAE,yBAA8B,GACtC,OAAO,CAAC,oBAAoB,CAAC,CAqB/B;AAED,qFAAqF;AACrF,wBAAgB,iCAAiC,CAC/C,OAAO,GAAE,yBAA8B,GACtC,CAAC,YAAY,EAAE,0BAA0B,KAAK,OAAO,CAAC,OAAO,CAAC,CAgBhE;AAED;;;;;GAKG;AACH,wBAAsB,sBAAsB,CAAC,CAAC,EAC5C,YAAY,EAAE,0BAA0B,EACxC,OAAO,EAAE,yBAAyB,EAClC,UAAU,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,GAC3B,OAAO,CAAC,CAAC,CAAC,CAyBZ;AAgDD;;;GAGG;AACH,wBAAgB,WAAW,CACzB,OAAO,EAAE,oBAAoB,EAC7B,SAAS,EAAE,MAAM,EACjB,OAAO,GAAE,IAAI,CAAC,yBAAyB,EAAE,mBAAmB,GAAG,mBAAmB,CAAM,GACvF,MAAM,GAAG,SAAS,CAoBpB"}
1
+ {"version":3,"file":"cloudflare-base.d.ts","sourceRoot":"","sources":["../src/cloudflare-base.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,eAAO,MAAM,aAAa,OAAO,CAAC;AAClC,eAAO,MAAM,YAAY,gBAA4B,CAAC;AAEtD,MAAM,MAAM,0BAA0B,GAAG;IACvC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;CAC1C,CAAC;AAEF,MAAM,MAAM,oBAAoB,GAAG;IACjC,QAAQ,EAAE,OAAO,GAAG,MAAM,GAAG,OAAO,CAAC;IACrC,qFAAqF;IACrF,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,mEAAmE;IACnE,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,kBAAkB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACnC,WAAW,CAAC,EAAE,OAAO,GAAG,IAAI,CAAC;CAC9B,CAAC;AAEF,+DAA+D;AAC/D,eAAO,MAAM,SAAS,+CAA+C,CAAC;AAEtE,MAAM,MAAM,yBAAyB,GAAG;IACtC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,OAAO,KAAK,CAAC;IACrB;;;;OAIG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,uFAAuF;IACvF,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,kFAAkF;IAClF,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,oFAAoF;IACpF,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,mGAAmG;IACnG,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB,CAAC;AAWF,qBAAa,4BAA6B,SAAQ,KAAK;IACrD,QAAQ,CAAC,OAAO,EAAE,oBAAoB,CAAC;gBAE3B,OAAO,EAAE,oBAAoB;CAK1C;AAED;;;;;;GAMG;AACH,wBAAsB,kBAAkB,CACtC,YAAY,EAAE,0BAA0B,EACxC,OAAO,GAAE,yBAA8B,GACtC,OAAO,CAAC,oBAAoB,CAAC,CAwC/B;AA2BD,qFAAqF;AACrF,wBAAgB,iCAAiC,CAC/C,OAAO,GAAE,yBAA8B,GACtC,CAAC,YAAY,EAAE,0BAA0B,KAAK,OAAO,CAAC,OAAO,CAAC,CAqBhE;AAED;;;;;GAKG;AACH,wBAAsB,sBAAsB,CAAC,CAAC,EAC5C,YAAY,EAAE,0BAA0B,EACxC,OAAO,EAAE,yBAAyB,EAClC,UAAU,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,GAC3B,OAAO,CAAC,CAAC,CAAC,CA6BZ;AAgDD;;;GAGG;AACH,wBAAgB,WAAW,CACzB,OAAO,EAAE,oBAAoB,EAC7B,SAAS,EAAE,MAAM,EACjB,OAAO,GAAE,IAAI,CAAC,yBAAyB,EAAE,mBAAmB,GAAG,mBAAmB,CAAM,GACvF,MAAM,GAAG,SAAS,CAoBpB"}
@@ -9,6 +9,14 @@ export const BASE_CHAIN_ID = 8453;
9
9
  export const BASE_NETWORK = `eip155:${BASE_CHAIN_ID}`;
10
10
  /** Base mainnet USDC. The only asset this module signs for. */
11
11
  export const BASE_USDC = "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913";
12
+ const TRUE_FLAGS = new Set(["true", "1", "yes", "on"]);
13
+ /** Same reading as the main entry's isTrueFlag (kept local: this module imports no package code). */
14
+ function isTrueFlag(v) {
15
+ if (v === true || v === 1)
16
+ return true;
17
+ return typeof v === "string" && TRUE_FLAGS.has(v.trim().toLowerCase());
18
+ }
19
+ const DEFAULT_INTEL_TIMEOUT_MS = 2000;
12
20
  export class TwzrdBasePaymentBlockedError extends Error {
13
21
  verdict;
14
22
  constructor(verdict) {
@@ -30,40 +38,92 @@ export async function twzrdBasePreflight(requirements, options = {}) {
30
38
  if (typeof fetchFn !== "function")
31
39
  throw new Error("[twzrd] Worker fetch is unavailable");
32
40
  const intelBase = (options.intelBase ?? "https://intel.twzrd.xyz").replace(/\/+$/, "");
33
- const response = await fetchFn(`${intelBase}/v1/intel/preflight`, {
34
- method: "POST",
35
- headers: { "content-type": "application/json" },
36
- body: JSON.stringify({
37
- resource_name: options.resourceName ?? requirements.resource ?? "cloudflare_base_x402",
38
- resource_url: requirements.resource,
39
- seller_wallet: payTo,
40
- price_usdc: priceUsdc,
41
- agent_intent: options.agentIntent ?? "cloudflare_base_x402_preflight",
42
- chain: "base",
43
- chain_id: BASE_CHAIN_ID,
44
- }),
41
+ const t = Number(options.intelTimeoutMs);
42
+ const timeoutMs = Number.isFinite(t) && t > 0 ? Math.min(t, 2_147_483_647) : DEFAULT_INTEL_TIMEOUT_MS;
43
+ const ctrl = new AbortController();
44
+ let timer;
45
+ const deadline = new Promise((_, reject) => {
46
+ timer = setTimeout(() => {
47
+ ctrl.abort();
48
+ reject(new Error(`[twzrd] Base preflight timed out after ${timeoutMs}ms`));
49
+ }, timeoutMs);
50
+ });
51
+ const call = (async () => {
52
+ const response = await fetchFn(`${intelBase}/v1/intel/preflight`, {
53
+ signal: ctrl.signal,
54
+ method: "POST",
55
+ headers: { "content-type": "application/json" },
56
+ body: JSON.stringify({
57
+ resource_name: options.resourceName ?? requirements.resource ?? "cloudflare_base_x402",
58
+ resource_url: requirements.resource,
59
+ seller_wallet: payTo,
60
+ price_usdc: priceUsdc,
61
+ agent_intent: options.agentIntent ?? "cloudflare_base_x402_preflight",
62
+ chain: "base",
63
+ chain_id: BASE_CHAIN_ID,
64
+ }),
65
+ });
66
+ if (!response.ok)
67
+ throw new Error(`[twzrd] Base preflight HTTP ${response.status}`);
68
+ return normalizePreflight(await response.json());
69
+ })();
70
+ try {
71
+ return await Promise.race([call, deadline]);
72
+ }
73
+ finally {
74
+ clearTimeout(timer);
75
+ call.catch(() => { });
76
+ }
77
+ }
78
+ /**
79
+ * A Base entry by network name or chain id, read case- and whitespace-insensitively ("BASE",
80
+ * "eip155:8453 ") so a spelling variant is scored, not skipped. This Worker pays EVM entries
81
+ * only: Solana siblings are not its to sign and are deliberately not scored here (0.11.4).
82
+ */
83
+ function isBaseEntry(c) {
84
+ const network = typeof c.network === "string" ? c.network.trim().toLowerCase() : undefined;
85
+ const chainId = c.chainId ?? c.chain_id;
86
+ const chain = typeof chainId === "string" ? chainId.trim() : chainId;
87
+ return network === BASE_NETWORK || network === "base" || network === "base-mainnet" || chain === BASE_CHAIN_ID || chain === String(BASE_CHAIN_ID);
88
+ }
89
+ /** One requirements object per Base entry, so every entry the Worker could sign is evaluated (0.11.3). */
90
+ function perBaseEntry(requirements) {
91
+ const accepts = Array.isArray(requirements.accepts) ? requirements.accepts : [];
92
+ const base = accepts.filter((c) => {
93
+ if (!c || typeof c !== "object")
94
+ return false;
95
+ return isBaseEntry(c);
45
96
  });
46
- if (!response.ok)
47
- throw new Error(`[twzrd] Base preflight HTTP ${response.status}`);
48
- return normalizePreflight(await response.json());
97
+ if (base.length === 0)
98
+ return [requirements];
99
+ if (base.length > 8)
100
+ throw new OfferRefusal("too_many_payment_options", "[twzrd] more than 8 Base offers");
101
+ return base.map((entry) => ({ ...requirements, accepts: [entry] }));
49
102
  }
50
103
  /** Cloudflare `withX402Client` callback: true permits the retry; false aborts it. */
51
104
  export function createTwzrdCloudflareBaseApproval(options = {}) {
52
105
  return async (requirements) => {
53
- let offer;
106
+ let entries;
107
+ const offers = [];
54
108
  try {
55
- offer = baseOffer(requirements);
109
+ entries = perBaseEntry(requirements);
110
+ for (const e of entries)
111
+ offers.push(baseOffer(e));
56
112
  }
57
113
  catch {
58
114
  // A malformed or non-USDC offer is not an outage: failOpen never signs it.
59
115
  return false;
60
116
  }
61
117
  try {
62
- const verdict = await twzrdBasePreflight(requirements, options);
63
- return baseRefusal(verdict, offer.priceUsdc, options) === undefined;
118
+ for (let i = 0; i < entries.length; i++) {
119
+ const verdict = await twzrdBasePreflight(entries[i], options);
120
+ if (baseRefusal(verdict, offers[i].priceUsdc, options) !== undefined)
121
+ return false;
122
+ }
123
+ return true;
64
124
  }
65
125
  catch {
66
- return options.failOpen === true;
126
+ return isTrueFlag(options.failOpen);
67
127
  }
68
128
  };
69
129
  }
@@ -76,9 +136,12 @@ export function createTwzrdCloudflareBaseApproval(options = {}) {
76
136
  export async function withTwzrdBasePreflight(requirements, options, signOrSend) {
77
137
  // Offer shape first: a malformed amount or non-USDC asset is refused before
78
138
  // intel and is never an outage for failOpen to wave through (0.11.2).
79
- let offer;
139
+ let entries;
140
+ const offers = [];
80
141
  try {
81
- offer = baseOffer(requirements);
142
+ entries = perBaseEntry(requirements);
143
+ for (const e of entries)
144
+ offers.push(baseOffer(e));
82
145
  }
83
146
  catch (error) {
84
147
  throw new TwzrdBasePaymentBlockedError({
@@ -87,18 +150,20 @@ export async function withTwzrdBasePreflight(requirements, options, signOrSend)
87
150
  reasons: [refusalCode(error)],
88
151
  });
89
152
  }
90
- let verdict;
91
- try {
92
- verdict = await twzrdBasePreflight(requirements, options);
93
- }
94
- catch (error) {
95
- if (options.failOpen === true)
96
- return signOrSend();
97
- throw error;
98
- }
99
- const refusal = baseRefusal(verdict, offer.priceUsdc, options);
100
- if (refusal) {
101
- throw new TwzrdBasePaymentBlockedError({ ...verdict, reasons: [refusal, ...verdict.reasons] });
153
+ for (let i = 0; i < entries.length; i++) {
154
+ let verdict;
155
+ try {
156
+ verdict = await twzrdBasePreflight(entries[i], options);
157
+ }
158
+ catch (error) {
159
+ if (isTrueFlag(options.failOpen))
160
+ return signOrSend();
161
+ throw error;
162
+ }
163
+ const refusal = baseRefusal(verdict, offers[i].priceUsdc, options);
164
+ if (refusal) {
165
+ throw new TwzrdBasePaymentBlockedError({ ...verdict, reasons: [refusal, ...verdict.reasons] });
166
+ }
102
167
  }
103
168
  return signOrSend();
104
169
  }
@@ -120,13 +185,7 @@ function refusalCode(error) {
120
185
  */
121
186
  function baseOffer(requirements) {
122
187
  const accepts = Array.isArray(requirements.accepts) ? requirements.accepts : [];
123
- const accept = accepts.find((candidate) => {
124
- if (!candidate || typeof candidate !== "object")
125
- return false;
126
- const network = candidate.network;
127
- const chainId = candidate.chainId ?? candidate.chain_id;
128
- return network === BASE_NETWORK || chainId === BASE_CHAIN_ID || chainId === String(BASE_CHAIN_ID);
129
- });
188
+ const accept = accepts.find((candidate) => !!candidate && typeof candidate === "object" && isBaseEntry(candidate));
130
189
  const payTo = accept?.payTo ?? accept?.pay_to;
131
190
  if (typeof payTo !== "string" || !/^0x[a-fA-F0-9]{40}$/.test(payTo)) {
132
191
  throw new OfferRefusal("twzrd_unidentifiable_payment_recipient", "[twzrd] Base x402 requirements lack a valid eip155:8453 payTo");
@@ -144,7 +203,12 @@ function baseOffer(requirements) {
144
203
  if (asset != null && String(asset).toLowerCase() !== BASE_USDC) {
145
204
  throw new OfferRefusal("twzrd_non_usdc_asset", "[twzrd] Base offer names an asset other than USDC");
146
205
  }
147
- return { payTo, priceUsdc: Number(amount) / 1_000_000 };
206
+ const priceUsdc = Number(amount) / 1_000_000;
207
+ // 400 digits overflow Number to Infinity; the Solana hook refuses that as twzrd_invalid_price.
208
+ if (!Number.isFinite(priceUsdc)) {
209
+ throw new OfferRefusal("twzrd_invalid_price", "[twzrd] Base offer amount is out of range");
210
+ }
211
+ return { payTo, priceUsdc };
148
212
  }
149
213
  /**
150
214
  * The package's signing rules applied to a Base preflight card (0.11.2).
@@ -161,7 +225,7 @@ export function baseRefusal(verdict, priceUsdc, options = {}) {
161
225
  const unevaluated = (typeof verdict.nullReason === "string" && verdict.nullReason.trim() !== "") || verdict.scoreIsNull === true;
162
226
  if (unevaluated) {
163
227
  const nr = verdict.nullReason || "score_null";
164
- if (options.refuseUnevaluated === true)
228
+ if (isTrueFlag(options.refuseUnevaluated))
165
229
  return `twzrd_unevaluated_subject_${nr}`;
166
230
  if (cap === null)
167
231
  return `twzrd_unevaluated_no_cap_${nr}`;
@@ -1 +1 @@
1
- {"version":3,"file":"cloudflare-base.js","sourceRoot":"","sources":["../src/cloudflare-base.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cloudflare-base.js","sourceRoot":"","sources":["../src/cloudflare-base.ts"],"names":[],"mappings":"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"}
package/dist/config.d.ts CHANGED
@@ -27,5 +27,11 @@ export type ResolvedTwzrdGateConfig = {
27
27
  runId: string;
28
28
  };
29
29
  };
30
+ /**
31
+ * One reading of a boolean flag for every seat (0.11.3): true, 1, or the strings
32
+ * true/1/yes/on in any case are on. Everything else is off, and an unrecognised
33
+ * non-empty string (a typo) is off with a one-time warning, never silently on.
34
+ */
35
+ export declare function isTrueFlag(v: unknown): boolean;
30
36
  export declare function resolveConfig(overrides?: TwzrdGateConfig): ResolvedTwzrdGateConfig;
31
37
  //# sourceMappingURL=config.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAEtE,MAAM,MAAM,uBAAuB,GAAG;IACpC,SAAS,EAAE,MAAM,CAAC;IAClB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,cAAc,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IAC5B,QAAQ,EAAE,OAAO,CAAC;IAClB,cAAc,EAAE,OAAO,CAAC;IACxB,wFAAwF;IACxF,iBAAiB,EAAE,OAAO,CAAC;IAC3B,gGAAgG;IAChG,cAAc,EAAE,MAAM,CAAC;IACvB,gEAAgE;IAChE,iBAAiB,EAAE,OAAO,CAAC;IAC3B,0DAA0D;IAC1D,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B;;;;OAIG;IACH,sBAAsB,EAAE,SAAS,GAAG,QAAQ,CAAC;IAC7C,KAAK,EAAE,OAAO,KAAK,CAAC;IACpB,YAAY,CAAC,EAAE,CAAC,GAAG,EAAE,kBAAkB,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACjE,0EAA0E;IAC1E,WAAW,CAAC,EAAE;QAAE,WAAW,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;CACtD,CAAC;AAgCF,wBAAgB,aAAa,CAAC,SAAS,CAAC,EAAE,eAAe,GAAG,uBAAuB,CA8FlF"}
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAEtE,MAAM,MAAM,uBAAuB,GAAG;IACpC,SAAS,EAAE,MAAM,CAAC;IAClB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,cAAc,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IAC5B,QAAQ,EAAE,OAAO,CAAC;IAClB,cAAc,EAAE,OAAO,CAAC;IACxB,wFAAwF;IACxF,iBAAiB,EAAE,OAAO,CAAC;IAC3B,gGAAgG;IAChG,cAAc,EAAE,MAAM,CAAC;IACvB,gEAAgE;IAChE,iBAAiB,EAAE,OAAO,CAAC;IAC3B,0DAA0D;IAC1D,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B;;;;OAIG;IACH,sBAAsB,EAAE,SAAS,GAAG,QAAQ,CAAC;IAC7C,KAAK,EAAE,OAAO,KAAK,CAAC;IACpB,YAAY,CAAC,EAAE,CAAC,GAAG,EAAE,kBAAkB,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACjE,0EAA0E;IAC1E,WAAW,CAAC,EAAE;QAAE,WAAW,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;CACtD,CAAC;AAoBF;;;;GAIG;AACH,wBAAgB,UAAU,CAAC,CAAC,EAAE,OAAO,GAAG,OAAO,CAW9C;AAYD,wBAAgB,aAAa,CAAC,SAAS,CAAC,EAAE,eAAe,GAAG,uBAAuB,CA8FlF"}
package/dist/config.js CHANGED
@@ -11,19 +11,35 @@ function parseBlockDecisions(raw) {
11
11
  * A typo must not silently leave strict mode off (0.11.2).
12
12
  */
13
13
  const TRUTHY = new Set(["true", "1", "yes", "on"]);
14
- function strictFlag(override, env) {
15
- const v = override !== undefined && override !== null ? override : env;
14
+ const FALSY = new Set(["", "false", "0", "no", "off"]);
15
+ const warnedFlags = new Set();
16
+ /**
17
+ * One reading of a boolean flag for every seat (0.11.3): true, 1, or the strings
18
+ * true/1/yes/on in any case are on. Everything else is off, and an unrecognised
19
+ * non-empty string (a typo) is off with a one-time warning, never silently on.
20
+ */
21
+ export function isTrueFlag(v) {
16
22
  if (v === true || v === 1)
17
23
  return true;
18
- if (typeof v === "string")
19
- return TRUTHY.has(v.trim().toLowerCase());
24
+ if (typeof v === "string") {
25
+ const t = v.trim().toLowerCase();
26
+ if (TRUTHY.has(t))
27
+ return true;
28
+ if (!FALSY.has(t) && !warnedFlags.has(t)) {
29
+ warnedFlags.add(t);
30
+ console.warn(`[twzrd-x402-gate] unrecognised flag value ${JSON.stringify(v)} treated as off; use true/false`);
31
+ }
32
+ }
20
33
  return false;
21
34
  }
35
+ function strictFlag(override, env) {
36
+ return isTrueFlag(override !== undefined && override !== null ? override : env);
37
+ }
22
38
  const DEFAULT_INTEL_TIMEOUT_MS = 2000;
23
39
  function intelTimeout(override, env) {
24
40
  const raw = override ?? env;
25
41
  const n = typeof raw === "number" ? raw : raw == null || raw === "" ? NaN : Number(raw);
26
- return Number.isFinite(n) && n > 0 ? n : DEFAULT_INTEL_TIMEOUT_MS;
42
+ return Number.isFinite(n) && n > 0 ? Math.min(n, 2_147_483_647) : DEFAULT_INTEL_TIMEOUT_MS;
27
43
  }
28
44
  export function resolveConfig(overrides) {
29
45
  const intelBase = (overrides?.intelBase ??
@@ -38,9 +54,9 @@ export function resolveConfig(overrides) {
38
54
  // Default false (fail-closed): block and log loudly on preflight outage,
39
55
  // and on merchant_card outage on the reputation-scored path.
40
56
  // Opt in to legacy fail-open with TWZRD_FAIL_OPEN=true or TWZRD_FAIL_OPEN=1.
41
- const failOpen = overrides?.failOpen ??
42
- (process.env.TWZRD_FAIL_OPEN === "true" ||
43
- process.env.TWZRD_FAIL_OPEN === "1");
57
+ const failOpen = overrides?.failOpen != null
58
+ ? isTrueFlag(overrides.failOpen)
59
+ : process.env.TWZRD_FAIL_OPEN === "true" || process.env.TWZRD_FAIL_OPEN === "1";
44
60
  // Default false: can_spend false alone does not block. null_reason
45
61
  // unknown_subject is handled earlier (refuseUnevaluated) and is not this
46
62
  // knob. Opt in to strict can_spend gating with TWZRD_GATE_ON_CAN_SPEND (true/1/yes/on, any case).
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
package/dist/doctor.js CHANGED
@@ -33,7 +33,7 @@ const HOSTS = [
33
33
  id: "solana-agent-kit",
34
34
  label: "Solana Agent Kit (SolanaAgentKit)",
35
35
  deps: ["solana-agent-kit"],
36
- install: "npm install twzrd-x402-gate@0.11.2",
36
+ install: "npm install twzrd-x402-gate@0.11.4",
37
37
  snippet: `import { SolanaAgentKit } from "solana-agent-kit";
38
38
  import { twzrdBeforeSign } from "twzrd-x402-gate";
39
39
 
@@ -49,7 +49,7 @@ const agent = new SolanaAgentKit(wallet, rpcUrl, {
49
49
  id: "pay-kit",
50
50
  label: "Solana PayKit (createPayKitClient)",
51
51
  deps: ["@solana/pay-kit"],
52
- install: "npm install twzrd-x402-gate@0.11.2 @solana/pay-kit",
52
+ install: "npm install twzrd-x402-gate@0.11.4 @solana/pay-kit",
53
53
  snippet: `import { createPayKitClient } from "@solana/pay-kit";
54
54
  import { createTwzrdPayKitBeforePaymentHook } from "twzrd-x402-gate";
55
55
 
@@ -71,7 +71,7 @@ const client = await createPayKitClient({
71
71
  id: "x402-client",
72
72
  label: "official x402 client (@x402/core)",
73
73
  deps: ["@x402/core", "@x402/fetch", "@x402/svm"],
74
- install: "npm install twzrd-x402-gate@0.11.2 @x402/core @x402/fetch @x402/svm",
74
+ install: "npm install twzrd-x402-gate@0.11.4 @x402/core @x402/fetch @x402/svm",
75
75
  snippet: `import { x402Client } from "@x402/core/client";
76
76
  import { installTwzrdAutoGate } from "twzrd-x402-gate";
77
77
 
@@ -83,7 +83,7 @@ installTwzrdAutoGate(client, { refuseWashFlagged: true });`,
83
83
  id: "elizaos",
84
84
  label: "elizaOS agent runtime",
85
85
  deps: ["@elizaos/core", "elizaos"],
86
- install: "npm install twzrd-x402-gate@0.11.2",
86
+ install: "npm install twzrd-x402-gate@0.11.4",
87
87
  snippet: `import { installTwzrdAutoGate } from "twzrd-x402-gate";
88
88
 
89
89
  // Gate the payment client your plugin hands to the runtime, not the runtime
@@ -94,7 +94,7 @@ installTwzrdAutoGate(paymentClient, { refuseWashFlagged: true });`,
94
94
  id: "goat",
95
95
  label: "GOAT SDK",
96
96
  deps: ["@goat-sdk/core"],
97
- install: "npm install twzrd-x402-gate@0.11.2",
97
+ install: "npm install twzrd-x402-gate@0.11.4",
98
98
  snippet: `import { installTwzrdAutoGate } from "twzrd-x402-gate";
99
99
 
100
100
  installTwzrdAutoGate(walletClient, { refuseWashFlagged: true });`,
@@ -103,7 +103,7 @@ installTwzrdAutoGate(walletClient, { refuseWashFlagged: true });`,
103
103
  id: "raw-fetch",
104
104
  label: "raw fetch + x402 payer",
105
105
  deps: ["x402-fetch", "x402"],
106
- install: "npm install twzrd-x402-gate@0.11.2",
106
+ install: "npm install twzrd-x402-gate@0.11.4",
107
107
  snippet: `import { installTwzrdAutoGate } from "twzrd-x402-gate";
108
108
 
109
109
  // Wraps fetch: a refused payment never reaches the payer.
@@ -32,7 +32,7 @@ export type EvaluateX402Options = TwzrdGateConfig & {
32
32
  * Called immediately after a receipt is captured on-chain.
33
33
  * Provides the raw twzrd_receipt object and the settlement tx hash (if present).
34
34
  */
35
- onReceipt?: (receipt: unknown, tx: string | undefined) => void;
35
+ onReceipt?: (receipt: unknown, tx: string | undefined) => void | Promise<void>;
36
36
  /**
37
37
  * Require a captured Path A receipt to be proven included in the Receipt
38
38
  * Transparency log under a key the host pinned, before it counts as trust.
@@ -1 +1 @@
1
- {"version":3,"file":"evaluate.d.ts","sourceRoot":"","sources":["../src/evaluate.ts"],"names":[],"mappings":"AAGA,OAAO,EAAc,KAAK,SAAS,EAAE,MAAM,YAAY,CAAC;AAExD,OAAO,EAIL,KAAK,oBAAoB,EAC1B,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAGL,KAAK,mBAAmB,EACxB,KAAK,yBAAyB,EAC/B,MAAM,oBAAoB,CAAC;AAC5B,OAAO,KAAK,EACV,aAAa,EACb,eAAe,EACf,kBAAkB,EAClB,uBAAuB,EACxB,MAAM,YAAY,CAAC;AACpB,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAE/D,MAAM,MAAM,mBAAmB,GAAG,eAAe,GAAG;IAClD;;;;OAIG;IACH,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB;;;;;;;;;;OAUG;IACH,cAAc,CAAC,EAAE,OAAO,GAAG,oBAAoB,CAAC;IAChD;;;;OAIG;IACH,SAAS,CAAC,EAAE,OAAO,KAAK,CAAC;IACzB;;;OAGG;IACH,SAAS,CAAC,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE,MAAM,GAAG,SAAS,KAAK,IAAI,CAAC;IAC/D;;;;;;;;OAQG;IACH,mBAAmB,CAAC,EAAE,yBAAyB,GAAG,KAAK,CAAC;IACxD;;;;;;;;;;;;OAYG;IACH,cAAc,CAAC,EAAE,mBAAmB,CAAC;CACtC,CAAC;AAEF,MAAM,MAAM,kBAAkB,GAAG;IAC/B,QAAQ,EAAE,aAAa,GAAG,SAAS,CAAC;IACpC,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,QAAQ,EAAE,OAAO,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,yEAAyE;IACzE,WAAW,CAAC,EAAE,OAAO,GAAG,IAAI,CAAC;IAC7B,IAAI,EAAE,kBAAkB,CAAC;IACzB,iFAAiF;IACjF,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,+EAA+E;IAC/E,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,sEAAsE;IACtE,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,sDAAsD;IACtD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,4CAA4C;IAC5C,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,iFAAiF;IACjF,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,uEAAuE;IACvE,qBAAqB,CAAC,EAAE,OAAO,CAAC;IAChC;;;;OAIG;IACH,cAAc,CAAC,EAAE,kBAAkB,CAAC;IACpC;;;;;OAKG;IACH,YAAY,CAAC,EAAE,mBAAmB,CAAC;IACnC,sFAAsF;IACtF,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,8FAA8F;IAC9F,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,6GAA6G;IAC7G,cAAc,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,kFAAkF;IAClF,aAAa,CAAC,EAAE,SAAS,GAAG,IAAI,CAAC;IACjC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,YAAY,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC;CAClC,CAAC;AAEF;;;;;;;;;;;;;;GAcG;AACH,wBAAsB,sBAAsB,CAC1C,WAAW,EAAE,MAAM,EACnB,mBAAmB,EAAE,uBAAuB,EAC5C,IAAI,GAAE,mBAAwB,GAC7B,OAAO,CAAC,kBAAkB,CAAC,CA+S7B"}
1
+ {"version":3,"file":"evaluate.d.ts","sourceRoot":"","sources":["../src/evaluate.ts"],"names":[],"mappings":"AAGA,OAAO,EAAc,KAAK,SAAS,EAAE,MAAM,YAAY,CAAC;AAExD,OAAO,EAIL,KAAK,oBAAoB,EAC1B,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAGL,KAAK,mBAAmB,EACxB,KAAK,yBAAyB,EAC/B,MAAM,oBAAoB,CAAC;AAC5B,OAAO,KAAK,EACV,aAAa,EACb,eAAe,EACf,kBAAkB,EAClB,uBAAuB,EACxB,MAAM,YAAY,CAAC;AACpB,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAE/D,MAAM,MAAM,mBAAmB,GAAG,eAAe,GAAG;IAClD;;;;OAIG;IACH,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB;;;;;;;;;;OAUG;IACH,cAAc,CAAC,EAAE,OAAO,GAAG,oBAAoB,CAAC;IAChD;;;;OAIG;IACH,SAAS,CAAC,EAAE,OAAO,KAAK,CAAC;IACzB;;;OAGG;IACH,SAAS,CAAC,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE,MAAM,GAAG,SAAS,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC/E;;;;;;;;OAQG;IACH,mBAAmB,CAAC,EAAE,yBAAyB,GAAG,KAAK,CAAC;IACxD;;;;;;;;;;;;OAYG;IACH,cAAc,CAAC,EAAE,mBAAmB,CAAC;CACtC,CAAC;AAEF,MAAM,MAAM,kBAAkB,GAAG;IAC/B,QAAQ,EAAE,aAAa,GAAG,SAAS,CAAC;IACpC,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,QAAQ,EAAE,OAAO,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,yEAAyE;IACzE,WAAW,CAAC,EAAE,OAAO,GAAG,IAAI,CAAC;IAC7B,IAAI,EAAE,kBAAkB,CAAC;IACzB,iFAAiF;IACjF,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,+EAA+E;IAC/E,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,sEAAsE;IACtE,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,sDAAsD;IACtD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,4CAA4C;IAC5C,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,iFAAiF;IACjF,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,uEAAuE;IACvE,qBAAqB,CAAC,EAAE,OAAO,CAAC;IAChC;;;;OAIG;IACH,cAAc,CAAC,EAAE,kBAAkB,CAAC;IACpC;;;;;OAKG;IACH,YAAY,CAAC,EAAE,mBAAmB,CAAC;IACnC,sFAAsF;IACtF,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,8FAA8F;IAC9F,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,6GAA6G;IAC7G,cAAc,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,kFAAkF;IAClF,aAAa,CAAC,EAAE,SAAS,GAAG,IAAI,CAAC;IACjC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,YAAY,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC;CAClC,CAAC;AAEF;;;;;;;;;;;;;;GAcG;AACH,wBAAsB,sBAAsB,CAC1C,WAAW,EAAE,MAAM,EACnB,mBAAmB,EAAE,uBAAuB,EAC5C,IAAI,GAAE,mBAAwB,GAC7B,OAAO,CAAC,kBAAkB,CAAC,CA+S7B"}
package/dist/evaluate.js CHANGED
@@ -178,7 +178,7 @@ export async function evaluate_x402_resource(resourceUrl, paymentRequirements, o
178
178
  // A consumer callback must not turn a paid receipt into a deny (0.11.2).
179
179
  try {
180
180
  if (opts.onReceipt)
181
- opts.onReceipt(receipt, tx);
181
+ void Promise.resolve(opts.onReceipt(receipt, tx)).catch(() => { });
182
182
  }
183
183
  catch {
184
184
  /* telemetry */