twzrd-x402-gate 0.9.7 → 0.9.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.
- package/QUICKSTART.md +19 -8
- package/README.md +13 -10
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +2 -1
- package/dist/config.js.map +1 -1
- package/dist/evaluate.d.ts +6 -0
- package/dist/evaluate.d.ts.map +1 -1
- package/dist/evaluate.js +9 -1
- package/dist/evaluate.js.map +1 -1
- package/dist/index.d.ts +3 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -3
- package/dist/index.js.map +1 -1
- package/dist/merchant-card.d.ts +36 -2
- package/dist/merchant-card.d.ts.map +1 -1
- package/dist/merchant-card.js +52 -12
- package/dist/merchant-card.js.map +1 -1
- package/dist/payment-decision.d.ts +16 -22
- package/dist/payment-decision.d.ts.map +1 -1
- package/dist/payment-decision.js +31 -17
- package/dist/payment-decision.js.map +1 -1
- package/dist/policy.d.ts.map +1 -1
- package/dist/policy.js +45 -6
- package/dist/policy.js.map +1 -1
- package/dist/resource-bind-tx.js +3 -3
- package/dist/resource-bind-tx.js.map +1 -1
- package/dist/resource-bind.d.ts +17 -3
- package/dist/resource-bind.d.ts.map +1 -1
- package/dist/resource-bind.js +75 -15
- package/dist/resource-bind.js.map +1 -1
- package/dist/spend-control.d.ts +11 -0
- package/dist/spend-control.d.ts.map +1 -1
- package/dist/spend-control.js +14 -2
- package/dist/spend-control.js.map +1 -1
- package/dist/types.d.ts +4 -2
- package/dist/types.d.ts.map +1 -1
- package/dist/x402-client-hook.d.ts +7 -1
- package/dist/x402-client-hook.d.ts.map +1 -1
- package/dist/x402-client-hook.js +6 -0
- package/dist/x402-client-hook.js.map +1 -1
- package/package.json +6 -5
package/QUICKSTART.md
CHANGED
|
@@ -2,16 +2,17 @@
|
|
|
2
2
|
|
|
3
3
|
Refuses payment to a wash-flagged merchant **before your wallet signs**. Free intel, no
|
|
4
4
|
API key, no signup, no config — every `TWZRD_*` env var is an optional override. If intel
|
|
5
|
-
is unreachable the gate never *invents* a wash flag
|
|
6
|
-
|
|
5
|
+
is unreachable the gate never *invents* a wash flag. A failed preflight, or a merchant_card
|
|
6
|
+
outage on a scored path, blocks by default (`TWZRD_FAIL_OPEN=true` to allow). A reachable
|
|
7
|
+
card with no wash signal still proceeds.
|
|
7
8
|
|
|
8
|
-
**Pin:** `twzrd-x402-gate@0.9.
|
|
9
|
+
**Pin:** `twzrd-x402-gate@0.9.8` + stock PayAI client `x402-solana@3.0.0` (official
|
|
9
10
|
`beforePayment` seat). `@x402/core` Path E remains supported; refuse script is fallback.
|
|
10
11
|
|
|
11
12
|
## 1. Stock PayAI client (default seat — copy-paste)
|
|
12
13
|
|
|
13
14
|
```bash
|
|
14
|
-
npm install twzrd-x402-gate@0.9.
|
|
15
|
+
npm install twzrd-x402-gate@0.9.8 x402-solana@3.0.0
|
|
15
16
|
```
|
|
16
17
|
|
|
17
18
|
> **ESM-only.** The package ships `import` conditions only — a CommonJS
|
|
@@ -36,7 +37,7 @@ Then: `await client.fetch("https://merchant.example/paid");`
|
|
|
36
37
|
## 1b. Official `@x402/core` client (Path E)
|
|
37
38
|
|
|
38
39
|
```bash
|
|
39
|
-
npm install twzrd-x402-gate@0.9.
|
|
40
|
+
npm install twzrd-x402-gate@0.9.8 @x402/core @x402/fetch @x402/svm
|
|
40
41
|
```
|
|
41
42
|
|
|
42
43
|
```typescript
|
|
@@ -78,10 +79,20 @@ after `createPayKitClient` — PayKit only accepts the hook at construction.
|
|
|
78
79
|
|
|
79
80
|
## 2. Prove it blocked something (spends nothing)
|
|
80
81
|
|
|
82
|
+
Hello-world that closes from this package (needs a prior **repo-root** `npm ci`
|
|
83
|
+
and `npm run build`; do not `npm ci` in this directory):
|
|
84
|
+
|
|
85
|
+
```bash
|
|
86
|
+
npm run gate-eval-refuse
|
|
87
|
+
# signer_invocation_count: 0, usdc_spent: 0
|
|
88
|
+
```
|
|
89
|
+
|
|
90
|
+
Optional seat proofs (live intel; the clean-fixture leg can exit 2 when
|
|
91
|
+
`CLEAN_PAYTO` is wash-flagged — that is not the first demo):
|
|
92
|
+
|
|
81
93
|
```bash
|
|
82
|
-
# Stock-client seat proof (beforePayment
|
|
83
|
-
#
|
|
84
|
-
# clear closure (its negative arm counts a would-be sign)
|
|
94
|
+
# Stock-client seat proof (beforePayment). Needs x402-solana@3.0.0.
|
|
95
|
+
# Harness fallback runs without it but does not clear closure.
|
|
85
96
|
npm run x402-solana-before-payment-proof
|
|
86
97
|
# writes block-proof-<run_id>.json — hook: beforePayment
|
|
87
98
|
|
package/README.md
CHANGED
|
@@ -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.9.
|
|
83
|
+
npm install twzrd-x402-gate@0.9.8
|
|
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.9.
|
|
128
|
+
npm install twzrd-x402-gate@0.9.8
|
|
129
129
|
# from package root after install, or from a checkout:
|
|
130
130
|
npm run wash-dogfood
|
|
131
131
|
```
|
|
@@ -273,8 +273,10 @@ Canonical path for every agent that spends USDC on Solana x402:
|
|
|
273
273
|
| 4 | Pay (or refuse) | resource price | Only if steps 1–2 approved (and any opt-in paid escalate did not block). |
|
|
274
274
|
|
|
275
275
|
**Fail-open (no invent):**
|
|
276
|
-
- Preflight HTTP/network error → default fail-closed
|
|
277
|
-
- Merchant card
|
|
276
|
+
- Preflight HTTP/network error → default fail-closed (`TWZRD_FAIL_OPEN=true` restores legacy allow-on-outage).
|
|
277
|
+
- Merchant card **outage** on a reputation-scored path (5xx, 429, thrown fetch, non-JSON 200) → same `failOpen` switch; default refuses with `twzrd_card_unreachable_fail_closed`. This is tighten-only: an already-blocked payment keeps its more specific reason.
|
|
278
|
+
- Merchant card **reachable** with no `wash_flagged` (including 4xx, or 200 + `insufficient_evidence`) → `washFlagged=null` → **do not refuse on wash**.
|
|
279
|
+
- Unscored-network `observe`: a card outage keeps the observe allow; `wash_flagged: true` still refuses.
|
|
278
280
|
- Only a successful card with `wash_flagged: true` triggers wash refuse or soft cap.
|
|
279
281
|
|
|
280
282
|
**Wash policy (exact):**
|
|
@@ -295,7 +297,7 @@ Dogfood (one public live proof path):
|
|
|
295
297
|
## Install
|
|
296
298
|
|
|
297
299
|
```bash
|
|
298
|
-
npm install twzrd-x402-gate@0.9.
|
|
300
|
+
npm install twzrd-x402-gate@0.9.8
|
|
299
301
|
```
|
|
300
302
|
|
|
301
303
|
Do not hardcode a version in this doc — every past pin here (**0.5.4**, **0.7.1**, **0.8.5**,
|
|
@@ -561,7 +563,7 @@ Default **ON**. Disable with `TWZRD_AUTO_GATE=0` (env, deploy-time kill switch)
|
|
|
561
563
|
What happens on every HTTP 402 the raw fetch returns:
|
|
562
564
|
1. Reads the Solana-network entry from `accepts[]` (falls back to first entry) to get the seller wallet.
|
|
563
565
|
2. Calls `POST /v1/intel/preflight` — free, no auth. `decision=block` (or score floor) throws — `payWrap`'s client never signs.
|
|
564
|
-
3. Calls `GET /v1/intel/merchant_card/{payTo}` — free, no auth. `wash_flagged: true` refuses by default (only tightens step 2
|
|
566
|
+
3. Calls `GET /v1/intel/merchant_card/{payTo}` — free, no auth. `wash_flagged: true` refuses by default (only tightens step 2). A reachable card with no wash signal fails open (no invent). A card outage on the scored path honours `failOpen` (default fail-closed).
|
|
565
567
|
4. Otherwise returns the 402 to `payWrap`'s client, which pays normally.
|
|
566
568
|
|
|
567
569
|
Non-402 responses pass through unchanged.
|
|
@@ -656,7 +658,8 @@ What the guard does on HTTP 402:
|
|
|
656
658
|
1. Reads the Solana-network entry from `accepts[]` (falls back to first entry) to get the seller wallet.
|
|
657
659
|
2. Free `POST /v1/intel/preflight` — `decision=block` / score floor deny.
|
|
658
660
|
3. Free `GET /v1/intel/merchant_card/{payTo}` — `wash_flagged:true` **refuses by default**
|
|
659
|
-
(`reason: twzrd_wash_flagged`).
|
|
661
|
+
(`reason: twzrd_wash_flagged`). Reachable + no signal fails open (no invent). A card
|
|
662
|
+
outage on the scored path honours `failOpen` (default fail-closed).
|
|
660
663
|
4. If approved: returns the original 402 for the x402 client to pay.
|
|
661
664
|
|
|
662
665
|
Opt out of wash refuse: `withTwzrdGuard(fetch, { refuseWashFlagged: false })` or
|
|
@@ -672,14 +675,14 @@ const safeFetch = withTwzrdGuard(x402Fetch, {
|
|
|
672
675
|
autoReceipt: true, // on warn or allow, auto-buy the $0.05 TWZRD trust receipt
|
|
673
676
|
x402Fetch, // the paying fetch — TWZRD earns the fee on-chain
|
|
674
677
|
onReceipt: (receipt, tx) => {
|
|
675
|
-
// receipt is a twzrd_receipt (
|
|
678
|
+
// receipt is a twzrd_receipt (V7 + ERC-8004 reputation_credential)
|
|
676
679
|
console.log("Trust receipt captured:", tx);
|
|
677
680
|
},
|
|
678
681
|
});
|
|
679
682
|
```
|
|
680
683
|
|
|
681
684
|
`autoReceipt` is **off by default** — it spends the **buyer's** USDC, so you opt in. When on,
|
|
682
|
-
every warn/allow verdict settles $0.05 USDC to TWZRD and returns a signed
|
|
685
|
+
every warn/allow verdict settles $0.05 USDC to TWZRD and returns a signed V7 trust credential
|
|
683
686
|
for the counterparty before you pay the resource.
|
|
684
687
|
|
|
685
688
|
**`x402Fetch` is yours to supply** (this package is dependency-free). Wire the proven
|
|
@@ -698,7 +701,7 @@ is the next step.
|
|
|
698
701
|
### Quick tier ($0.001) — cheap paid qualify
|
|
699
702
|
|
|
700
703
|
The reputation ladder has three rungs: **free** preflight (`allow/warn/block`), **$0.001**
|
|
701
|
-
`quickCheck` (tier + score, no receipt), **$0.05** `autoReceipt` (full intel + signed
|
|
704
|
+
`quickCheck` (tier + score, no receipt), **$0.05** `autoReceipt` (full intel + signed V7
|
|
702
705
|
receipt). When the free preflight is inconclusive (`warn` / unknown seller) and you want a
|
|
703
706
|
cheap *paid* confirmation before committing — without paying 50× for the portable receipt —
|
|
704
707
|
use `quickCheck`:
|
package/dist/config.d.ts.map
CHANGED
|
@@ -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,gEAAgE;IAChE,iBAAiB,EAAE,OAAO,CAAC;IAC3B,0DAA0D;IAC1D,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B;;;OAGG;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;AAYF,wBAAgB,aAAa,CAAC,SAAS,CAAC,EAAE,eAAe,GAAG,uBAAuB,
|
|
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,gEAAgE;IAChE,iBAAiB,EAAE,OAAO,CAAC;IAC3B,0DAA0D;IAC1D,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B;;;OAGG;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;AAYF,wBAAgB,aAAa,CAAC,SAAS,CAAC,EAAE,eAAe,GAAG,uBAAuB,CA0FlF"}
|
package/dist/config.js
CHANGED
|
@@ -15,7 +15,8 @@ export function resolveConfig(overrides) {
|
|
|
15
15
|
const blockDecisions = overrides?.blockDecisions != null
|
|
16
16
|
? new Set([...overrides.blockDecisions].map((s) => s.trim()).filter(Boolean))
|
|
17
17
|
: parseBlockDecisions(process.env.TWZRD_BLOCK_DECISIONS);
|
|
18
|
-
// Default false (fail-closed): block and log loudly on preflight outage
|
|
18
|
+
// Default false (fail-closed): block and log loudly on preflight outage,
|
|
19
|
+
// and on merchant_card outage on the reputation-scored path.
|
|
19
20
|
// Opt in to legacy fail-open with TWZRD_FAIL_OPEN=true or TWZRD_FAIL_OPEN=1.
|
|
20
21
|
const failOpen = overrides?.failOpen ??
|
|
21
22
|
(process.env.TWZRD_FAIL_OPEN === "true" ||
|
package/dist/config.js.map
CHANGED
|
@@ -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/evaluate.d.ts
CHANGED
|
@@ -75,6 +75,12 @@ export type EvaluateX402Result = {
|
|
|
75
75
|
receiptRequired?: boolean;
|
|
76
76
|
/** true when hard requireReceipt denied spend because Path A failed */
|
|
77
77
|
receiptRequiredDenied?: boolean;
|
|
78
|
+
/**
|
|
79
|
+
* Path A is Solana-only. Set when policy would have bought a receipt but the
|
|
80
|
+
* rail is unscored (W-2026-0902 #2). `hard` means scored networks only — do
|
|
81
|
+
* not fetch `/v1/intel/trust/{0x…}` and do not deny a policy allow.
|
|
82
|
+
*/
|
|
83
|
+
receiptSkipped?: "unscored_network";
|
|
78
84
|
/**
|
|
79
85
|
* Present whenever requireLogInclusion was in play for an attempted Path A:
|
|
80
86
|
* either a captured receipt was verified, or none was captured to verify
|
package/dist/evaluate.d.ts.map
CHANGED
|
@@ -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;;;;;;;;OAQG;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;;;;;;;;;;;OAWG;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,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;;;;;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,
|
|
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;;;;;;;;OAQG;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;;;;;;;;;;;OAWG;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,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,CA2R7B"}
|
package/dist/evaluate.js
CHANGED
|
@@ -78,12 +78,20 @@ export async function evaluate_x402_resource(resourceUrl, paymentRequirements, o
|
|
|
78
78
|
decision,
|
|
79
79
|
priceUsdc,
|
|
80
80
|
});
|
|
81
|
-
const
|
|
81
|
+
const wantPathA = shouldAttemptPathAReceipt({
|
|
82
82
|
autoReceipt: opts.autoReceipt,
|
|
83
83
|
requireReceipt: opts.requireReceipt,
|
|
84
84
|
decision,
|
|
85
85
|
priceUsdc,
|
|
86
86
|
});
|
|
87
|
+
// Paid trust is Solana-only. Mirror the x402 hook (W-2026-0902 #2): do not
|
|
88
|
+
// buy Path A on an unscored rail, and do not treat a missing Base receipt
|
|
89
|
+
// as a hard deny of a policy allow.
|
|
90
|
+
const scoredRail = approval.reputationScored !== false;
|
|
91
|
+
const attemptReceipt = scoredRail && wantPathA;
|
|
92
|
+
if (!scoredRail && wantPathA) {
|
|
93
|
+
base.receiptSkipped = "unscored_network";
|
|
94
|
+
}
|
|
87
95
|
const logPolicy = resolveRequireLogInclusionPolicy(opts.requireLogInclusion);
|
|
88
96
|
// Why Path A ended without a captured receipt, when it did. Read by the hard
|
|
89
97
|
// requireLogInclusion guard below the Path A block.
|
package/dist/evaluate.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"evaluate.js","sourceRoot":"","sources":["../src/evaluate.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAClD,OAAO,EAAE,qBAAqB,EAAE,wBAAwB,EAAE,MAAM,YAAY,CAAC;AAC7E,OAAO,EAAE,UAAU,EAAkB,MAAM,YAAY,CAAC;AACxD,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,EACL,2BAA2B,EAC3B,yBAAyB,EACzB,yBAAyB,GAE1B,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EACL,oBAAoB,EACpB,gCAAgC,GAGjC,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"evaluate.js","sourceRoot":"","sources":["../src/evaluate.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -5,7 +5,7 @@ export { evaluateReadinessCard, buildPreflightInput, twzrdPreflight, twzrdApprov
|
|
|
5
5
|
export { payToFromRequirements, priceUsdcFromAmountMicro, pickRequirements, TWZRD_FEE_PAYER } from "./payto.js";
|
|
6
6
|
export { classifyNetwork, decideUnsupportedNetwork, amountBucket, type NetworkClass, type NetworkKind, type UnsupportedNetworkMode, type UnsupportedNetworkDecision, } from "./network.js";
|
|
7
7
|
export type { TwzrdGateDecision } from "./types.js";
|
|
8
|
-
export { fetchMerchantCard, applyWashFlaggedPolicy, type TwzrdMerchantCard, type WashPolicyInput, type WashPolicyResult, } from "./merchant-card.js";
|
|
8
|
+
export { fetchMerchantCard, fetchMerchantCardResult, type MerchantCardLookup, applyWashFlaggedPolicy, type TwzrdMerchantCard, type WashPolicyInput, type WashPolicyResult, } from "./merchant-card.js";
|
|
9
9
|
export { twzrdOnPaymentRequested } from "./mcp-hook.js";
|
|
10
10
|
export { wrapFetchWithTwzrdGate } from "./wrap-fetch.js";
|
|
11
11
|
export { evaluate_x402_resource, type EvaluateX402Options, type EvaluateX402Result, } from "./evaluate.js";
|
|
@@ -18,7 +18,7 @@ export { TWZRD_TRUST_GATE_BLOCK_WASH, TWZRD_TRUST_GATE_BLOCK_CAN_SPEND, TWZRD_TR
|
|
|
18
18
|
export { attachBlockOutcomeAttestation, AUTOGATE_BLOCK_PROOF_SCHEMA, AUTOGATE_BLOCK_PROOF_SCHEMA_V1_1, AUTOGATE_BLOCK_PROOF_SCHEMA_V1_2, buildAutogateBlockProof, resolveInstalledPackageVersion, type AutogateBlockProof, type BuildAutogateBlockProofInput, type ExecutionMode, } from "./block-proof.js";
|
|
19
19
|
export { safeFetch, runAgentcashFetch, main as safeFetchMain, type SafeFetchOptions, type SafeFetchResult, } from "./safe-fetch.js";
|
|
20
20
|
export { installTwzrdX402ClientHook, twzrdBeforePaymentCreation, evaluateBeforePaymentCreation, createTwzrdBeforePaymentHook, createTwzrdPayKitBeforePaymentHook, mapX402SolanaRequirements, flattenDeclaredResource, resourceUrlFromPaymentRequired, type X402ClientLike, type X402SelectedRequirements, type X402DeclaredResource, type BeforePaymentCreationContext, type BeforePaymentCreationResult, type InstallX402ClientHookOptions, type X402PaymentControlOptions, type X402SolanaBeforePaymentContext, } from "./x402-client-hook.js";
|
|
21
|
-
export { RESOURCE_BIND_DOMAIN, RESOURCE_BIND_EXTRA_KEY, RESOURCE_BIND_MEMO_PREFIX, RESOURCE_BIND_MEMO_MAX, ZERO_BODY_HASH, canonicalResourceUrl, resourceBindLeafHash, networksEquivalent, rawReqFromPaymentRequired, rememberRawInvoice, wrapFetchRememberInvoice, resourceBindMemo, memoContainsResourceBind, stampResourceBind, evaluateResourceBind, type BindStrength, type ResourceBindReq, type ResourceBindDecision, } from "./resource-bind.js";
|
|
21
|
+
export { RESOURCE_BIND_DOMAIN, RESOURCE_BIND_DOMAIN_V2, RESOURCE_BIND_EXTRA_KEY, RESOURCE_BIND_MEMO_PREFIX, RESOURCE_BIND_V2_MEMO_PREFIX, RESOURCE_BIND_MEMO_MAX, DECISION_ID_MAX_BYTES, ZERO_BODY_HASH, canonicalResourceUrl, resourceBindLeafHash, resourceBindLeafHashV2, assertDecisionId, normalizePreflightId, networksEquivalent, rawReqFromPaymentRequired, rememberRawInvoice, wrapFetchRememberInvoice, resourceBindMemo, memoContainsResourceBind, pickBindMemo, stampResourceBind, evaluateResourceBind, type BindStrength, type ResourceBindReq, type ResourceBindDecision, type ResourceBindSchema, type DecisionBind, } from "./resource-bind.js";
|
|
22
22
|
export { extractSvmMemoFromTransaction, extractSvmTransferLegs, evaluateResourceBindFromSvmTx, evaluateResourceBindLegsFromSvmTx, MEMO_PROGRAM_ADDRESS as RESOURCE_BIND_MEMO_PROGRAM, type ResourceBindLeafFields, type SvmTransferLegs, } from "./resource-bind-tx.js";
|
|
23
23
|
export { twzrd, spendControlSafeFetch, verifyOfferBindingAfterPay, type OfferBindingCheck, type SpendControlOptions, type SpendControlResult, } from "./spend-control.js";
|
|
24
24
|
export { createFileSpendLedger } from "./spend-ledger-file.js";
|
|
@@ -26,7 +26,7 @@ export { createFileDecisionLedger, DECISION_LEDGER_SCHEMA_VERSION, type Decision
|
|
|
26
26
|
export { runGateAdoptionProof, main as adoptionProofMain, ADOPTION_TRANSCRIPT_SCHEMA, ADOPTION_PROOF_SELLER, ADOPTION_PROOF_NETWORK, ADOPTION_PROOF_RESOURCE, type GateAdoptionTranscript, type GateAdoptionStep, type GateAdoptionAssertions, type GateAdoptionLineage, type RunGateAdoptionProofOptions, isInternalIntegration, } from "./adoption-proof.js";
|
|
27
27
|
export { listResources, listX402Directory, listDirectoryCallables, pickCallable, normalizeDirectoryRow, type DirectoryListing, type DirectorySource, type ListDirectoryOptions, } from "./directory.js";
|
|
28
28
|
export { exportEvidenceBundle, exportEvidenceBundleFromAdoptionProof, writeEvidenceBundle, fingerprint, EVIDENCE_BUNDLE_SCHEMA, main as evidenceBundleMain, type EvidenceBundle, type EvidenceDecision, type EvidenceBind, type EvidenceReceipt, type EvidenceLedgerSlice, type EvidenceOutcomeAttestation, type ExportEvidenceBundleOptions, } from "./evidence-bundle.js";
|
|
29
|
-
export { PAYMENT_DECISION_SCHEMA, PAYMENT_DECISION_DOMAIN, PAYMENT_DECISION_DECISIONS, PAYMENT_DECISION_REASON_CODES, PAYMENT_DECISION_FIELDS, challengeHashV1, merchantFromChallenge, toCaip2Network, paymentDecisionPreimage, issuePaymentDecisionRecord, paymentDecisionRecordFromToken, primaryReasonCode, decisionFromApproval, verifyPaymentDecisionRecord, validateRecordStructure, scanForbiddenContent, formatPaymentDecisionVerification, TwzrdPaymentDecisionError, type PaymentDecisionRecordV1, type PaymentDecisionRecordDecision, type PaymentDecisionReasonCode, type PaymentDecisionMerchant, type PaymentDecisionSignature, type IssuePaymentDecisionInput, type PaymentDecisionVerification, type PaymentDecisionVerifyError, type VerifyPaymentDecisionOptions, } from "./payment-decision.js";
|
|
29
|
+
export { PAYMENT_DECISION_SCHEMA, PAYMENT_DECISION_DOMAIN, PAYMENT_DECISION_DECISIONS, PAYMENT_DECISION_REASON_CODES, PAYMENT_DECISION_FIELDS, challengeHash, challengeHashV1, merchantFromChallenge, toCaip2Network, paymentDecisionPreimage, issuePaymentDecisionRecord, paymentDecisionRecordFromToken, primaryReasonCode, decisionFromApproval, verifyPaymentDecisionRecord, validateRecordStructure, scanForbiddenContent, formatPaymentDecisionVerification, TwzrdPaymentDecisionError, type PaymentDecisionRecordV1, type PaymentDecisionRecordDecision, type PaymentDecisionReasonCode, type PaymentDecisionMerchant, type PaymentDecisionSignature, type IssuePaymentDecisionInput, type PaymentDecisionVerification, type PaymentDecisionVerifyError, type VerifyPaymentDecisionOptions, } from "./payment-decision.js";
|
|
30
30
|
export { quickCheck, QUICK_PRICE_USDC, type QuickCheckResult, type QuickCheckOptions, type TwzrdTier, } from "./quick.js";
|
|
31
31
|
export { createSponsoredX402Fetch, type SponsorSettle, type SponsoredX402Options, } from "./sponsored.js";
|
|
32
32
|
export type { TwzrdDecision, TwzrdReadinessCard, TwzrdPreflightInput, TwzrdGateConfig, TwzrdApproveContext, TwzrdApprovalResult, TwzrdUpsellContext, X402PaymentRequirements, X402PaymentRequiredBody, X402McpPaymentRequest, X402McpPaymentRequestedContext, } from "./types.js";
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,EAAE,eAAe,EAAE,WAAW,EAAE,KAAK,SAAS,EAAE,MAAM,WAAW,CAAC;AACzE,OAAO,EAAE,aAAa,EAAE,KAAK,uBAAuB,EAAE,MAAM,aAAa,CAAC;AAC1E,OAAO,EACL,qBAAqB,EACrB,mBAAmB,EACnB,cAAc,EACd,mBAAmB,EACnB,KAAK,mBAAmB,GACzB,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,qBAAqB,EAAE,wBAAwB,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAChH,OAAO,EACL,eAAe,EACf,wBAAwB,EACxB,YAAY,EACZ,KAAK,YAAY,EACjB,KAAK,WAAW,EAChB,KAAK,sBAAsB,EAC3B,KAAK,0BAA0B,GAChC,MAAM,cAAc,CAAC;AACtB,YAAY,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AACpD,OAAO,EACL,iBAAiB,EACjB,sBAAsB,EACtB,KAAK,iBAAiB,EACtB,KAAK,eAAe,EACpB,KAAK,gBAAgB,GACtB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,uBAAuB,EAAE,MAAM,eAAe,CAAC;AACxD,OAAO,EAAE,sBAAsB,EAAE,MAAM,iBAAiB,CAAC;AACzD,OAAO,EACL,sBAAsB,EACtB,KAAK,mBAAmB,EACxB,KAAK,kBAAkB,GACxB,MAAM,eAAe,CAAC;AACvB,OAAO,EACL,sCAAsC,EACtC,2BAA2B,EAC3B,yBAAyB,EACzB,yBAAyB,EACzB,KAAK,oBAAoB,EACzB,KAAK,4BAA4B,GAClC,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EACL,oBAAoB,EACpB,gCAAgC,EAChC,KAAK,mBAAmB,EACxB,KAAK,sBAAsB,EAC3B,KAAK,mBAAmB,EACxB,KAAK,mBAAmB,EACxB,KAAK,oBAAoB,EACzB,KAAK,yBAAyB,EAC9B,KAAK,iCAAiC,GACvC,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EACL,2BAA2B,EAC3B,6BAA6B,EAC7B,8BAA8B,EAC9B,yBAAyB,EACzB,KAAK,mBAAmB,EACxB,KAAK,eAAe,GACrB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,cAAc,EAAE,KAAK,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AACzE,OAAO,EACL,oBAAoB,EACpB,sBAAsB,EACtB,uBAAuB,EACvB,KAAK,OAAO,EACZ,KAAK,sBAAsB,EAC3B,KAAK,2BAA2B,EAChC,KAAK,0BAA0B,EAC/B,KAAK,yBAAyB,EAC9B,KAAK,0BAA0B,GAChC,MAAM,gBAAgB,CAAC;AACxB,OAAO,EACL,2BAA2B,EAC3B,gCAAgC,EAChC,+BAA+B,EAC/B,6BAA6B,EAC7B,sBAAsB,GACvB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EACL,6BAA6B,EAC7B,2BAA2B,EAC3B,gCAAgC,EAChC,gCAAgC,EAChC,uBAAuB,EACvB,8BAA8B,EAC9B,KAAK,kBAAkB,EACvB,KAAK,4BAA4B,EACjC,KAAK,aAAa,GACnB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EACL,SAAS,EACT,iBAAiB,EACjB,IAAI,IAAI,aAAa,EACrB,KAAK,gBAAgB,EACrB,KAAK,eAAe,GACrB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EACL,0BAA0B,EAC1B,0BAA0B,EAC1B,6BAA6B,EAC7B,4BAA4B,EAC5B,kCAAkC,EAClC,yBAAyB,EACzB,uBAAuB,EACvB,8BAA8B,EAC9B,KAAK,cAAc,EACnB,KAAK,wBAAwB,EAC7B,KAAK,oBAAoB,EACzB,KAAK,4BAA4B,EACjC,KAAK,2BAA2B,EAChC,KAAK,4BAA4B,EACjC,KAAK,yBAAyB,EAC9B,KAAK,8BAA8B,GACpC,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EACL,oBAAoB,EACpB,uBAAuB,EACvB,yBAAyB,EACzB,sBAAsB,EACtB,cAAc,EACd,oBAAoB,EACpB,oBAAoB,EACpB,kBAAkB,EAClB,yBAAyB,EACzB,kBAAkB,EAClB,wBAAwB,EACxB,gBAAgB,EAChB,wBAAwB,EACxB,iBAAiB,EACjB,oBAAoB,EACpB,KAAK,YAAY,EACjB,KAAK,eAAe,EACpB,KAAK,oBAAoB,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -8,7 +8,7 @@ export { resolveConfig } from "./config.js";
|
|
|
8
8
|
export { evaluateReadinessCard, buildPreflightInput, twzrdPreflight, twzrdApprovePayment, } from "./policy.js";
|
|
9
9
|
export { payToFromRequirements, priceUsdcFromAmountMicro, pickRequirements, TWZRD_FEE_PAYER } from "./payto.js";
|
|
10
10
|
export { classifyNetwork, decideUnsupportedNetwork, amountBucket, } from "./network.js";
|
|
11
|
-
export { fetchMerchantCard, applyWashFlaggedPolicy, } from "./merchant-card.js";
|
|
11
|
+
export { fetchMerchantCard, fetchMerchantCardResult, applyWashFlaggedPolicy, } from "./merchant-card.js";
|
|
12
12
|
export { twzrdOnPaymentRequested } from "./mcp-hook.js";
|
|
13
13
|
export { wrapFetchWithTwzrdGate } from "./wrap-fetch.js";
|
|
14
14
|
export { evaluate_x402_resource, } from "./evaluate.js";
|
|
@@ -21,7 +21,7 @@ export { TWZRD_TRUST_GATE_BLOCK_WASH, TWZRD_TRUST_GATE_BLOCK_CAN_SPEND, TWZRD_TR
|
|
|
21
21
|
export { attachBlockOutcomeAttestation, AUTOGATE_BLOCK_PROOF_SCHEMA, AUTOGATE_BLOCK_PROOF_SCHEMA_V1_1, AUTOGATE_BLOCK_PROOF_SCHEMA_V1_2, buildAutogateBlockProof, resolveInstalledPackageVersion, } from "./block-proof.js";
|
|
22
22
|
export { safeFetch, runAgentcashFetch, main as safeFetchMain, } from "./safe-fetch.js";
|
|
23
23
|
export { installTwzrdX402ClientHook, twzrdBeforePaymentCreation, evaluateBeforePaymentCreation, createTwzrdBeforePaymentHook, createTwzrdPayKitBeforePaymentHook, mapX402SolanaRequirements, flattenDeclaredResource, resourceUrlFromPaymentRequired, } from "./x402-client-hook.js";
|
|
24
|
-
export { RESOURCE_BIND_DOMAIN, RESOURCE_BIND_EXTRA_KEY, RESOURCE_BIND_MEMO_PREFIX, RESOURCE_BIND_MEMO_MAX, ZERO_BODY_HASH, canonicalResourceUrl, resourceBindLeafHash, networksEquivalent, rawReqFromPaymentRequired, rememberRawInvoice, wrapFetchRememberInvoice, resourceBindMemo, memoContainsResourceBind, stampResourceBind, evaluateResourceBind, } from "./resource-bind.js";
|
|
24
|
+
export { RESOURCE_BIND_DOMAIN, RESOURCE_BIND_DOMAIN_V2, RESOURCE_BIND_EXTRA_KEY, RESOURCE_BIND_MEMO_PREFIX, RESOURCE_BIND_V2_MEMO_PREFIX, RESOURCE_BIND_MEMO_MAX, DECISION_ID_MAX_BYTES, ZERO_BODY_HASH, canonicalResourceUrl, resourceBindLeafHash, resourceBindLeafHashV2, assertDecisionId, normalizePreflightId, networksEquivalent, rawReqFromPaymentRequired, rememberRawInvoice, wrapFetchRememberInvoice, resourceBindMemo, memoContainsResourceBind, pickBindMemo, stampResourceBind, evaluateResourceBind, } from "./resource-bind.js";
|
|
25
25
|
export { extractSvmMemoFromTransaction, extractSvmTransferLegs, evaluateResourceBindFromSvmTx, evaluateResourceBindLegsFromSvmTx, MEMO_PROGRAM_ADDRESS as RESOURCE_BIND_MEMO_PROGRAM, } from "./resource-bind-tx.js";
|
|
26
26
|
export { twzrd, spendControlSafeFetch, verifyOfferBindingAfterPay, } from "./spend-control.js";
|
|
27
27
|
export { createFileSpendLedger } from "./spend-ledger-file.js";
|
|
@@ -31,7 +31,7 @@ export { listResources, listX402Directory, listDirectoryCallables, pickCallable,
|
|
|
31
31
|
export { exportEvidenceBundle, exportEvidenceBundleFromAdoptionProof, writeEvidenceBundle, fingerprint, EVIDENCE_BUNDLE_SCHEMA, main as evidenceBundleMain, } from "./evidence-bundle.js";
|
|
32
32
|
// twzrd.payment_decision.v1 — portable public decision receipt + offline verifier.
|
|
33
33
|
// Also available as the `twzrd-x402-gate/payment-decision` subpath.
|
|
34
|
-
export { PAYMENT_DECISION_SCHEMA, PAYMENT_DECISION_DOMAIN, PAYMENT_DECISION_DECISIONS, PAYMENT_DECISION_REASON_CODES, PAYMENT_DECISION_FIELDS, challengeHashV1, merchantFromChallenge, toCaip2Network, paymentDecisionPreimage, issuePaymentDecisionRecord, paymentDecisionRecordFromToken, primaryReasonCode, decisionFromApproval, verifyPaymentDecisionRecord, validateRecordStructure, scanForbiddenContent, formatPaymentDecisionVerification, TwzrdPaymentDecisionError, } from "./payment-decision.js";
|
|
34
|
+
export { PAYMENT_DECISION_SCHEMA, PAYMENT_DECISION_DOMAIN, PAYMENT_DECISION_DECISIONS, PAYMENT_DECISION_REASON_CODES, PAYMENT_DECISION_FIELDS, challengeHash, challengeHashV1, merchantFromChallenge, toCaip2Network, paymentDecisionPreimage, issuePaymentDecisionRecord, paymentDecisionRecordFromToken, primaryReasonCode, decisionFromApproval, verifyPaymentDecisionRecord, validateRecordStructure, scanForbiddenContent, formatPaymentDecisionVerification, TwzrdPaymentDecisionError, } from "./payment-decision.js";
|
|
35
35
|
export { quickCheck, QUICK_PRICE_USDC, } from "./quick.js";
|
|
36
36
|
export { createSponsoredX402Fetch, } from "./sponsored.js";
|
|
37
37
|
/* ── TWZRD Payment Control (protocol-neutral authorization core) ── */
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,qFAAqF;AACrF,qFAAqF;AACrF,uFAAuF;AACvF,qFAAqF;AACrF,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,EAAE,eAAe,EAAE,WAAW,EAAkB,MAAM,WAAW,CAAC;AACzE,OAAO,EAAE,aAAa,EAAgC,MAAM,aAAa,CAAC;AAC1E,OAAO,EACL,qBAAqB,EACrB,mBAAmB,EACnB,cAAc,EACd,mBAAmB,GAEpB,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,qBAAqB,EAAE,wBAAwB,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAChH,OAAO,EACL,eAAe,EACf,wBAAwB,EACxB,YAAY,GAKb,MAAM,cAAc,CAAC;AAEtB,OAAO,EACL,iBAAiB,EACjB,sBAAsB,GAIvB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,uBAAuB,EAAE,MAAM,eAAe,CAAC;AACxD,OAAO,EAAE,sBAAsB,EAAE,MAAM,iBAAiB,CAAC;AACzD,OAAO,EACL,sBAAsB,GAGvB,MAAM,eAAe,CAAC;AACvB,OAAO,EACL,sCAAsC,EACtC,2BAA2B,EAC3B,yBAAyB,EACzB,yBAAyB,GAG1B,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EACL,oBAAoB,EACpB,gCAAgC,GAQjC,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EACL,2BAA2B,EAC3B,6BAA6B,EAC7B,8BAA8B,EAC9B,yBAAyB,GAG1B,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,cAAc,EAA0B,MAAM,iBAAiB,CAAC;AACzE,OAAO,EACL,oBAAoB,EACpB,sBAAsB,EACtB,uBAAuB,GAOxB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EACL,2BAA2B,EAC3B,gCAAgC,EAChC,+BAA+B,EAC/B,6BAA6B,EAC7B,sBAAsB,GACvB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EACL,6BAA6B,EAC7B,2BAA2B,EAC3B,gCAAgC,EAChC,gCAAgC,EAChC,uBAAuB,EACvB,8BAA8B,GAI/B,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EACL,SAAS,EACT,iBAAiB,EACjB,IAAI,IAAI,aAAa,GAGtB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EACL,0BAA0B,EAC1B,0BAA0B,EAC1B,6BAA6B,EAC7B,4BAA4B,EAC5B,kCAAkC,EAClC,yBAAyB,EACzB,uBAAuB,EACvB,8BAA8B,GAS/B,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EACL,oBAAoB,EACpB,uBAAuB,EACvB,yBAAyB,EACzB,sBAAsB,EACtB,cAAc,EACd,oBAAoB,EACpB,oBAAoB,EACpB,kBAAkB,EAClB,yBAAyB,EACzB,kBAAkB,EAClB,wBAAwB,EACxB,gBAAgB,EAChB,wBAAwB,EACxB,iBAAiB,EACjB,oBAAoB,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,qFAAqF;AACrF,qFAAqF;AACrF,uFAAuF;AACvF,qFAAqF;AACrF,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,EAAE,eAAe,EAAE,WAAW,EAAkB,MAAM,WAAW,CAAC;AACzE,OAAO,EAAE,aAAa,EAAgC,MAAM,aAAa,CAAC;AAC1E,OAAO,EACL,qBAAqB,EACrB,mBAAmB,EACnB,cAAc,EACd,mBAAmB,GAEpB,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,qBAAqB,EAAE,wBAAwB,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAChH,OAAO,EACL,eAAe,EACf,wBAAwB,EACxB,YAAY,GAKb,MAAM,cAAc,CAAC;AAEtB,OAAO,EACL,iBAAiB,EACjB,uBAAuB,EAEvB,sBAAsB,GAIvB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,uBAAuB,EAAE,MAAM,eAAe,CAAC;AACxD,OAAO,EAAE,sBAAsB,EAAE,MAAM,iBAAiB,CAAC;AACzD,OAAO,EACL,sBAAsB,GAGvB,MAAM,eAAe,CAAC;AACvB,OAAO,EACL,sCAAsC,EACtC,2BAA2B,EAC3B,yBAAyB,EACzB,yBAAyB,GAG1B,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EACL,oBAAoB,EACpB,gCAAgC,GAQjC,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EACL,2BAA2B,EAC3B,6BAA6B,EAC7B,8BAA8B,EAC9B,yBAAyB,GAG1B,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,cAAc,EAA0B,MAAM,iBAAiB,CAAC;AACzE,OAAO,EACL,oBAAoB,EACpB,sBAAsB,EACtB,uBAAuB,GAOxB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EACL,2BAA2B,EAC3B,gCAAgC,EAChC,+BAA+B,EAC/B,6BAA6B,EAC7B,sBAAsB,GACvB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EACL,6BAA6B,EAC7B,2BAA2B,EAC3B,gCAAgC,EAChC,gCAAgC,EAChC,uBAAuB,EACvB,8BAA8B,GAI/B,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EACL,SAAS,EACT,iBAAiB,EACjB,IAAI,IAAI,aAAa,GAGtB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EACL,0BAA0B,EAC1B,0BAA0B,EAC1B,6BAA6B,EAC7B,4BAA4B,EAC5B,kCAAkC,EAClC,yBAAyB,EACzB,uBAAuB,EACvB,8BAA8B,GAS/B,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EACL,oBAAoB,EACpB,uBAAuB,EACvB,uBAAuB,EACvB,yBAAyB,EACzB,4BAA4B,EAC5B,sBAAsB,EACtB,qBAAqB,EACrB,cAAc,EACd,oBAAoB,EACpB,oBAAoB,EACpB,sBAAsB,EACtB,gBAAgB,EAChB,oBAAoB,EACpB,kBAAkB,EAClB,yBAAyB,EACzB,kBAAkB,EAClB,wBAAwB,EACxB,gBAAgB,EAChB,wBAAwB,EACxB,YAAY,EACZ,iBAAiB,EACjB,oBAAoB,GAMrB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EACL,6BAA6B,EAC7B,sBAAsB,EACtB,6BAA6B,EAC7B,iCAAiC,EACjC,oBAAoB,IAAI,0BAA0B,GAGnD,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EACL,KAAK,EACL,qBAAqB,EACrB,0BAA0B,GAI3B,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAC;AAC/D,OAAO,EACL,wBAAwB,EACxB,8BAA8B,GAI/B,MAAM,2BAA2B,CAAC;AACnC,OAAO,EACL,oBAAoB,EACpB,IAAI,IAAI,iBAAiB,EACzB,0BAA0B,EAC1B,qBAAqB,EACrB,sBAAsB,EACtB,uBAAuB,EAMvB,qBAAqB,GACtB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EACL,aAAa,EACb,iBAAiB,EACjB,sBAAsB,EACtB,YAAY,EACZ,qBAAqB,GAItB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EACL,oBAAoB,EACpB,qCAAqC,EACrC,mBAAmB,EACnB,WAAW,EACX,sBAAsB,EACtB,IAAI,IAAI,kBAAkB,GAQ3B,MAAM,sBAAsB,CAAC;AAC9B,mFAAmF;AACnF,oEAAoE;AACpE,OAAO,EACL,uBAAuB,EACvB,uBAAuB,EACvB,0BAA0B,EAC1B,6BAA6B,EAC7B,uBAAuB,EACvB,aAAa,EACb,eAAe,EACf,qBAAqB,EACrB,cAAc,EACd,uBAAuB,EACvB,0BAA0B,EAC1B,8BAA8B,EAC9B,iBAAiB,EACjB,oBAAoB,EACpB,2BAA2B,EAC3B,uBAAuB,EACvB,oBAAoB,EACpB,iCAAiC,EACjC,yBAAyB,GAU1B,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EACL,UAAU,EACV,gBAAgB,GAIjB,MAAM,YAAY,CAAC;AACpB,OAAO,EACL,wBAAwB,GAGzB,MAAM,gBAAgB,CAAC;AAexB,uEAAuE;AACvE,OAAO,EACL,aAAa,EACb,UAAU,EACV,UAAU,EACV,YAAY,EACZ,kBAAkB,GAGnB,MAAM,aAAa,CAAC;AACrB,2EAA2E;AAC3E,+EAA+E;AAC/E,OAAO,EACL,oBAAoB,EACpB,sBAAsB,EACtB,yBAAyB,EACzB,0BAA0B,EAC1B,gBAAgB,EAChB,kBAAkB,EAClB,aAAa,EACb,sBAAsB,EACtB,YAAY,EACZ,uBAAuB,EACvB,uBAAuB,EACvB,oBAAoB,EACpB,wBAAwB,GAQzB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EACL,kCAAkC,EAClC,uBAAuB,EACvB,4BAA4B,EAC5B,0BAA0B,EAC1B,iCAAiC,GAKlC,MAAM,0BAA0B,CAAC;AAClC,OAAO,EACL,uBAAuB,EACvB,cAAc,EACd,cAAc,EACd,qBAAqB,GAOtB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EACL,mBAAmB,EACnB,wBAAwB,GAIzB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EACL,yBAAyB,EACzB,oBAAoB,EACpB,kBAAkB,EAClB,mBAAmB,EACnB,kBAAkB,GAMnB,MAAM,eAAe,CAAC;AACvB,OAAO,EACL,sBAAsB,EACtB,6BAA6B,EAC7B,+BAA+B,EAC/B,sBAAsB,GAEvB,MAAM,mBAAmB,CAAC;AAC3B,wEAAwE;AACxE,yFAAyF;AACzF,OAAO,EACL,sBAAsB,EACtB,mBAAmB,EACnB,8BAA8B,EAC9B,gBAAgB,EAChB,mBAAmB,GAQpB,MAAM,kBAAkB,CAAC;AAE1B,iFAAiF;AACjF,4EAA4E;AAC5E,OAAO,EACL,uBAAuB,EACvB,gBAAgB,EAChB,oBAAoB,EACpB,YAAY,EACZ,gBAAgB,EAChB,oBAAoB,EACpB,kBAAkB,EAClB,uBAAuB,GAUxB,MAAM,uBAAuB,CAAC"}
|
package/dist/merchant-card.d.ts
CHANGED
|
@@ -1,8 +1,22 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Free merchant card client — wash refuse default for buyer agents.
|
|
3
3
|
*
|
|
4
|
-
* GET /v1/intel/merchant_card/{wallet} is free, no auth.
|
|
5
|
-
*
|
|
4
|
+
* GET /v1/intel/merchant_card/{wallet} is free, no auth.
|
|
5
|
+
*
|
|
6
|
+
* `fetchMerchantCard` returns null for BOTH "intel answered and carries no
|
|
7
|
+
* wash signal" and "intel was unreachable". Those are different facts and the
|
|
8
|
+
* caller needs to tell them apart: the first is a genuine unknown that must
|
|
9
|
+
* fail open (we do not invent wash_flagged), the second is an outage, which is
|
|
10
|
+
* precisely what `failOpen` exists to decide. Collapsing them made the
|
|
11
|
+
* configured `failOpen` unreachable on this path — the error was caught here
|
|
12
|
+
* and turned into an allow before the caller's fail-closed branch could ever
|
|
13
|
+
* see it (BlockRunAI/ClawRouter v0.12.278 removal notes, 2026-09-07:
|
|
14
|
+
* "converts a fast lookup failure into allow internally, and ignores the
|
|
15
|
+
* failOpen we pass").
|
|
16
|
+
*
|
|
17
|
+
* `fetchMerchantCardResult` reports which of the two happened.
|
|
18
|
+
* `fetchMerchantCard` keeps its original signature and is unchanged for
|
|
19
|
+
* existing callers.
|
|
6
20
|
*/
|
|
7
21
|
export type TwzrdMerchantCard = {
|
|
8
22
|
merchant?: string;
|
|
@@ -13,6 +27,26 @@ export type TwzrdMerchantCard = {
|
|
|
13
27
|
catalog_enriched?: boolean;
|
|
14
28
|
[key: string]: unknown;
|
|
15
29
|
};
|
|
30
|
+
/**
|
|
31
|
+
* `reachable: true` means intel answered — a JSON object, or a 4xx that is the
|
|
32
|
+
* service saying "nothing for this wallet". `card` may still carry no
|
|
33
|
+
* wash_flagged, which is a real unknown and fails open.
|
|
34
|
+
* `reachable: false` means the lookup itself did not complete: 5xx, 429, a
|
|
35
|
+
* body that is not a JSON object, or a thrown fetch (network, abort, timeout).
|
|
36
|
+
*/
|
|
37
|
+
export type MerchantCardLookup = {
|
|
38
|
+
reachable: true;
|
|
39
|
+
card: TwzrdMerchantCard | null;
|
|
40
|
+
} | {
|
|
41
|
+
reachable: false;
|
|
42
|
+
card: null;
|
|
43
|
+
error: string;
|
|
44
|
+
};
|
|
45
|
+
export declare function fetchMerchantCardResult(wallet: string, opts: {
|
|
46
|
+
intelBase: string;
|
|
47
|
+
fetch: typeof fetch;
|
|
48
|
+
}): Promise<MerchantCardLookup>;
|
|
49
|
+
/** Unchanged signature: null for both an unreachable lookup and no card. */
|
|
16
50
|
export declare function fetchMerchantCard(wallet: string, opts: {
|
|
17
51
|
intelBase: string;
|
|
18
52
|
fetch: typeof fetch;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"merchant-card.d.ts","sourceRoot":"","sources":["../src/merchant-card.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"merchant-card.d.ts","sourceRoot":"","sources":["../src/merchant-card.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,MAAM,MAAM,iBAAiB,GAAG;IAC9B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,wBAAwB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACzC,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB,CAAC;AAEF;;;;;;GAMG;AACH,MAAM,MAAM,kBAAkB,GAC1B;IAAE,SAAS,EAAE,IAAI,CAAC;IAAC,IAAI,EAAE,iBAAiB,GAAG,IAAI,CAAA;CAAE,GACnD;IAAE,SAAS,EAAE,KAAK,CAAC;IAAC,IAAI,EAAE,IAAI,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC;AAEpD,wBAAsB,uBAAuB,CAC3C,MAAM,EAAE,MAAM,EACd,IAAI,EAAE;IAAE,SAAS,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,OAAO,KAAK,CAAA;CAAE,GAC/C,OAAO,CAAC,kBAAkB,CAAC,CAuC7B;AAED,4EAA4E;AAC5E,wBAAsB,iBAAiB,CACrC,MAAM,EAAE,MAAM,EACd,IAAI,EAAE;IAAE,SAAS,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,OAAO,KAAK,CAAA;CAAE,GAC/C,OAAO,CAAC,iBAAiB,GAAG,IAAI,CAAC,CAEnC;AAED,MAAM,MAAM,eAAe,GAAG;IAC5B,uDAAuD;IACvD,QAAQ,EAAE,OAAO,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,gFAAgF;IAChF,WAAW,EAAE,OAAO,GAAG,IAAI,GAAG,SAAS,CAAC;IACxC,wCAAwC;IACxC,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B;;;OAGG;IACH,iBAAiB,EAAE,OAAO,CAAC;IAC3B;;;;;OAKG;IACH,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC7B,CAAC;AAEF,MAAM,MAAM,gBAAgB,GAAG;IAC7B,QAAQ,EAAE,OAAO,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,OAAO,GAAG,IAAI,CAAC;IAC5B,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB,CAAC;AAEF;;;GAGG;AACH,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,eAAe,GAAG,gBAAgB,CA4C/E"}
|
package/dist/merchant-card.js
CHANGED
|
@@ -1,30 +1,70 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Free merchant card client — wash refuse default for buyer agents.
|
|
3
3
|
*
|
|
4
|
-
* GET /v1/intel/merchant_card/{wallet} is free, no auth.
|
|
5
|
-
*
|
|
4
|
+
* GET /v1/intel/merchant_card/{wallet} is free, no auth.
|
|
5
|
+
*
|
|
6
|
+
* `fetchMerchantCard` returns null for BOTH "intel answered and carries no
|
|
7
|
+
* wash signal" and "intel was unreachable". Those are different facts and the
|
|
8
|
+
* caller needs to tell them apart: the first is a genuine unknown that must
|
|
9
|
+
* fail open (we do not invent wash_flagged), the second is an outage, which is
|
|
10
|
+
* precisely what `failOpen` exists to decide. Collapsing them made the
|
|
11
|
+
* configured `failOpen` unreachable on this path — the error was caught here
|
|
12
|
+
* and turned into an allow before the caller's fail-closed branch could ever
|
|
13
|
+
* see it (BlockRunAI/ClawRouter v0.12.278 removal notes, 2026-09-07:
|
|
14
|
+
* "converts a fast lookup failure into allow internally, and ignores the
|
|
15
|
+
* failOpen we pass").
|
|
16
|
+
*
|
|
17
|
+
* `fetchMerchantCardResult` reports which of the two happened.
|
|
18
|
+
* `fetchMerchantCard` keeps its original signature and is unchanged for
|
|
19
|
+
* existing callers.
|
|
6
20
|
*/
|
|
7
|
-
export async function
|
|
21
|
+
export async function fetchMerchantCardResult(wallet, opts) {
|
|
8
22
|
const w = (wallet || "").trim();
|
|
23
|
+
// No wallet to ask about is not an outage — there is nothing to look up.
|
|
9
24
|
if (!w)
|
|
10
|
-
return null;
|
|
25
|
+
return { reachable: true, card: null };
|
|
11
26
|
try {
|
|
12
27
|
const url = `${opts.intelBase.replace(/\/+$/, "")}/v1/intel/merchant_card/${encodeURIComponent(w)}`;
|
|
13
28
|
const resp = await opts.fetch(url, {
|
|
14
29
|
method: "GET",
|
|
15
30
|
headers: { accept: "application/json" },
|
|
16
31
|
});
|
|
17
|
-
if (!resp.ok)
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
32
|
+
if (!resp.ok) {
|
|
33
|
+
// Only a SERVICE failure is an outage. 5xx/429 mean intel could not
|
|
34
|
+
// answer; failOpen decides those. A 4xx means it DID answer and has
|
|
35
|
+
// nothing for us (or we asked badly) -- live intel returns 200 +
|
|
36
|
+
// wash_flagged:null + decision:"insufficient_evidence" for a wallet with
|
|
37
|
+
// no observed demand, and 400 for a malformed address, so a 4xx is never
|
|
38
|
+
// "the gate is down". Treating it as one would refuse every unscored
|
|
39
|
+
// recipient under the default, which is the over-refusal that got the
|
|
40
|
+
// gate removed downstream, not the outage failOpen exists for.
|
|
41
|
+
if (resp.status >= 500 || resp.status === 429) {
|
|
42
|
+
return { reachable: false, card: null, error: `http_${resp.status}` };
|
|
43
|
+
}
|
|
44
|
+
return { reachable: true, card: null };
|
|
45
|
+
}
|
|
46
|
+
let body;
|
|
47
|
+
try {
|
|
48
|
+
body = (await resp.json());
|
|
49
|
+
}
|
|
50
|
+
catch {
|
|
51
|
+
// 200 with a non-JSON body (captive portal, proxy error page).
|
|
52
|
+
return { reachable: false, card: null, error: "bad_json" };
|
|
53
|
+
}
|
|
54
|
+
if (!body || typeof body !== "object") {
|
|
55
|
+
return { reachable: false, card: null, error: "bad_json" };
|
|
56
|
+
}
|
|
57
|
+
return { reachable: true, card: body };
|
|
23
58
|
}
|
|
24
|
-
catch {
|
|
25
|
-
|
|
59
|
+
catch (err) {
|
|
60
|
+
const msg = String(err?.message ?? err).slice(0, 80);
|
|
61
|
+
return { reachable: false, card: null, error: `fetch_failed (${msg})` };
|
|
26
62
|
}
|
|
27
63
|
}
|
|
64
|
+
/** Unchanged signature: null for both an unreachable lookup and no card. */
|
|
65
|
+
export async function fetchMerchantCard(wallet, opts) {
|
|
66
|
+
return (await fetchMerchantCardResult(wallet, opts)).card;
|
|
67
|
+
}
|
|
28
68
|
/**
|
|
29
69
|
* Pure wash policy. Only tightens: never turns a prior deny into allow.
|
|
30
70
|
* Fail-open on missing wash signal (null/undefined) — no invent.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"merchant-card.js","sourceRoot":"","sources":["../src/merchant-card.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"merchant-card.js","sourceRoot":"","sources":["../src/merchant-card.ts"],"names":[],"mappings":"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"}
|