@peac/adapter-x402 0.12.0-preview.2 → 0.12.1
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/README.md +46 -19
- package/dist/errors.d.ts +1 -1
- package/dist/errors.d.ts.map +1 -1
- package/dist/errors.js +10 -0
- package/dist/errors.js.map +1 -1
- package/dist/index.d.ts +14 -23
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +25 -22
- package/dist/index.js.map +1 -1
- package/dist/map.d.ts +29 -23
- package/dist/map.d.ts.map +1 -1
- package/dist/map.js +57 -36
- package/dist/map.js.map +1 -1
- package/dist/normalize.d.ts +97 -0
- package/dist/normalize.d.ts.map +1 -0
- package/dist/normalize.js +75 -0
- package/dist/normalize.js.map +1 -0
- package/dist/raw.d.ts +246 -0
- package/dist/raw.d.ts.map +1 -0
- package/dist/raw.js +246 -0
- package/dist/raw.js.map +1 -0
- package/dist/types.d.ts +292 -144
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js +18 -16
- package/dist/types.js.map +1 -1
- package/dist/verify.d.ts +50 -41
- package/dist/verify.d.ts.map +1 -1
- package/dist/verify.js +380 -344
- package/dist/verify.js.map +1 -1
- package/package.json +5 -4
package/dist/raw.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"raw.js","sourceRoot":"","sources":["../src/raw.ts"],"names":[],"mappings":"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"}
|
package/dist/types.d.ts
CHANGED
|
@@ -1,23 +1,13 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* x402 Offer/Receipt extension types
|
|
3
3
|
*
|
|
4
|
-
*
|
|
5
|
-
*
|
|
6
|
-
* - SignedReceipt: Settlement proof binding offer to on-chain transaction
|
|
7
|
-
* - AcceptEntry: Terms an offer can match against
|
|
8
|
-
* - acceptIndex: Unsigned envelope field (hint only, not binding)
|
|
4
|
+
* Public API types for the x402 adapter. Uses raw wire types (Layer A)
|
|
5
|
+
* and normalized types (Layer B) from their respective modules.
|
|
9
6
|
*
|
|
10
|
-
*
|
|
11
|
-
* - validUntil: epoch seconds in signed payload
|
|
12
|
-
* - version: in signed payload
|
|
13
|
-
* - acceptIndex: unsigned envelope field (outside signature)
|
|
14
|
-
* - metadata: deferred to v2
|
|
15
|
-
*
|
|
16
|
-
* NOTE: This adapter targets the x402 Offer/Receipt EXTENSION,
|
|
17
|
-
* NOT the baseline x402 header flow. The profile identifier reflects this:
|
|
18
|
-
* `peac-x402-offer-receipt/0.1` (extension) vs `peac-x402/0.1` (baseline, reserved).
|
|
7
|
+
* @packageDocumentation
|
|
19
8
|
*/
|
|
20
|
-
|
|
9
|
+
export type { RawOfferPayload, RawReceiptPayload, RawJWSSignedOffer, RawEIP712SignedOffer, RawSignedOffer, RawJWSSignedReceipt, RawEIP712SignedReceipt, RawSignedReceipt, RawX402ExtensionInfo, ParsedCompactJWS, } from './raw.js';
|
|
10
|
+
export type { NormalizedOfferPayload, NormalizedReceiptPayload } from './normalize.js';
|
|
21
11
|
export type { Result, AdapterError, AdapterErrorCode, JsonObject } from '@peac/adapter-core';
|
|
22
12
|
/**
|
|
23
13
|
* Profile identifier for x402 Offer/Receipt extension records
|
|
@@ -27,7 +17,7 @@ export type { Result, AdapterError, AdapterErrorCode, JsonObject } from '@peac/a
|
|
|
27
17
|
*
|
|
28
18
|
* `peac-x402/0.1` is RESERVED for future baseline header flow support.
|
|
29
19
|
*/
|
|
30
|
-
export declare const X402_OFFER_RECEIPT_PROFILE: "peac-x402-offer-receipt/0.
|
|
20
|
+
export declare const X402_OFFER_RECEIPT_PROFILE: "peac-x402-offer-receipt/0.2";
|
|
31
21
|
/**
|
|
32
22
|
* Maximum number of accept entries allowed (DoS protection)
|
|
33
23
|
*
|
|
@@ -55,74 +45,32 @@ export declare const MAX_AMOUNT_LENGTH = 78;
|
|
|
55
45
|
* - jws: JWS compact serialization (RFC 7515)
|
|
56
46
|
*/
|
|
57
47
|
export type SignatureFormat = 'eip712' | 'jws';
|
|
48
|
+
import type { NormalizedOfferPayload, NormalizedReceiptPayload } from './normalize.js';
|
|
49
|
+
import type { RawSignedOffer, RawSignedReceipt } from './raw.js';
|
|
58
50
|
/**
|
|
59
|
-
* x402 Offer payload (
|
|
51
|
+
* x402 Offer payload (normalized, semantically clean)
|
|
60
52
|
*
|
|
61
|
-
*
|
|
62
|
-
*
|
|
53
|
+
* This is the public-facing offer payload type. EIP-712 placeholders
|
|
54
|
+
* have been normalized to semantic absence.
|
|
63
55
|
*/
|
|
64
|
-
export
|
|
65
|
-
/** Schema version (in signed payload) */
|
|
66
|
-
version: string;
|
|
67
|
-
/** Offer expiry as epoch seconds (in signed payload) */
|
|
68
|
-
validUntil: number;
|
|
69
|
-
/** CAIP-2 network identifier (e.g., "eip155:8453") */
|
|
70
|
-
network: string;
|
|
71
|
-
/** Payment asset identifier (e.g., "USDC", "ETH") */
|
|
72
|
-
asset: string;
|
|
73
|
-
/** Payment amount in minor units */
|
|
74
|
-
amount: string;
|
|
75
|
-
/** Payment recipient address */
|
|
76
|
-
payTo: string;
|
|
77
|
-
/** Settlement scheme (e.g., "exact", "flexible") */
|
|
78
|
-
scheme?: string;
|
|
79
|
-
/** Settlement parameters (scheme-specific) */
|
|
80
|
-
settlement?: JsonObject;
|
|
81
|
-
}
|
|
56
|
+
export type OfferPayload = NormalizedOfferPayload;
|
|
82
57
|
/**
|
|
83
|
-
* x402
|
|
58
|
+
* x402 Receipt payload (normalized, semantically clean)
|
|
84
59
|
*
|
|
85
|
-
*
|
|
86
|
-
* - payload: signed content (cryptographically bound)
|
|
87
|
-
* - signature: EIP-712 or JWS signature over the payload
|
|
88
|
-
* - format: which signature scheme was used
|
|
60
|
+
* Privacy-minimal: transaction is optional enrichable evidence.
|
|
89
61
|
*/
|
|
90
|
-
export
|
|
91
|
-
/** The signed payload */
|
|
92
|
-
payload: OfferPayload;
|
|
93
|
-
/** Signature over the payload */
|
|
94
|
-
signature: string;
|
|
95
|
-
/** Signature format */
|
|
96
|
-
format: SignatureFormat;
|
|
97
|
-
}
|
|
62
|
+
export type ReceiptPayload = NormalizedReceiptPayload;
|
|
98
63
|
/**
|
|
99
|
-
* x402
|
|
64
|
+
* x402 Signed Offer (discriminated union)
|
|
65
|
+
*
|
|
66
|
+
* JWS format: `{ format: 'jws', signature: string }` (payload inside compact JWS)
|
|
67
|
+
* EIP-712: `{ format: 'eip712', payload, signature }` (payload is separate field)
|
|
100
68
|
*/
|
|
101
|
-
export
|
|
102
|
-
/** Schema version */
|
|
103
|
-
version: string;
|
|
104
|
-
/** CAIP-2 network identifier */
|
|
105
|
-
network: string;
|
|
106
|
-
/** On-chain transaction hash */
|
|
107
|
-
txHash: string;
|
|
108
|
-
/** Payment asset */
|
|
109
|
-
asset?: string;
|
|
110
|
-
/** Payment amount in minor units */
|
|
111
|
-
amount?: string;
|
|
112
|
-
/** Payment recipient */
|
|
113
|
-
payTo?: string;
|
|
114
|
-
}
|
|
69
|
+
export type SignedOffer = RawSignedOffer;
|
|
115
70
|
/**
|
|
116
|
-
* x402 Signed Receipt (
|
|
71
|
+
* x402 Signed Receipt (discriminated union)
|
|
117
72
|
*/
|
|
118
|
-
export
|
|
119
|
-
/** The signed payload */
|
|
120
|
-
payload: ReceiptPayload;
|
|
121
|
-
/** Signature over the payload */
|
|
122
|
-
signature: string;
|
|
123
|
-
/** Signature format */
|
|
124
|
-
format: SignatureFormat;
|
|
125
|
-
}
|
|
73
|
+
export type SignedReceipt = RawSignedReceipt;
|
|
126
74
|
/**
|
|
127
75
|
* A single accept entry: the terms under which a facilitator accepts payment
|
|
128
76
|
*
|
|
@@ -138,30 +86,31 @@ export interface AcceptEntry {
|
|
|
138
86
|
payTo: string;
|
|
139
87
|
/** Maximum amount in minor units */
|
|
140
88
|
amount: string;
|
|
141
|
-
/** Settlement scheme */
|
|
142
|
-
scheme
|
|
143
|
-
/** Settlement parameters */
|
|
144
|
-
settlement?: JsonObject;
|
|
89
|
+
/** Settlement scheme (required per upstream) */
|
|
90
|
+
scheme: string;
|
|
145
91
|
}
|
|
146
92
|
/**
|
|
147
|
-
*
|
|
93
|
+
* PEAC's post-extraction convenience type for x402 offer/receipt challenge
|
|
94
|
+
*
|
|
95
|
+
* This is NOT the upstream `PaymentRequired` message type. Upstream's
|
|
96
|
+
* `PaymentRequired` nests extension data under `extensions["offer-receipt"].info`.
|
|
97
|
+
* This type represents the PEAC-side extracted and flattened shape, combining
|
|
98
|
+
* the offers from the extension info with the accepts from the top-level
|
|
99
|
+
* `PaymentRequired`.
|
|
100
|
+
*
|
|
101
|
+
* To convert from upstream wire format:
|
|
102
|
+
* 1. Use `extractExtensionInfo(body)` to pull offers from the raw response
|
|
103
|
+
* 2. Read `accepts` from the top-level `PaymentRequired` message
|
|
104
|
+
* 3. Combine into this convenience type
|
|
148
105
|
*
|
|
149
|
-
*
|
|
150
|
-
*
|
|
106
|
+
* @see extractExtensionInfo - Extracts from upstream `extensions["offer-receipt"].info`
|
|
107
|
+
* @see extractReceiptFromHeaders - Extracts receipt from settlement response headers
|
|
151
108
|
*/
|
|
152
|
-
export interface
|
|
109
|
+
export interface X402OfferReceiptChallenge {
|
|
153
110
|
/** List of acceptable payment terms */
|
|
154
111
|
accepts: AcceptEntry[];
|
|
155
|
-
/**
|
|
156
|
-
|
|
157
|
-
*
|
|
158
|
-
* IMPORTANT: This field is OUTSIDE the signed payload (unsigned envelope).
|
|
159
|
-
* Verifiers MUST NOT rely on it as binding.
|
|
160
|
-
* Treat as advisory hint only; always verify via term-matching.
|
|
161
|
-
*/
|
|
162
|
-
acceptIndex?: number;
|
|
163
|
-
/** Signed offer */
|
|
164
|
-
offer: SignedOffer;
|
|
112
|
+
/** Signed offers */
|
|
113
|
+
offers: RawSignedOffer[];
|
|
165
114
|
/** Resource URL being accessed */
|
|
166
115
|
resourceUrl?: string;
|
|
167
116
|
}
|
|
@@ -170,7 +119,7 @@ export interface X402PaymentRequired {
|
|
|
170
119
|
*/
|
|
171
120
|
export interface X402SettlementResponse {
|
|
172
121
|
/** Signed receipt proving settlement */
|
|
173
|
-
receipt:
|
|
122
|
+
receipt: RawSignedReceipt;
|
|
174
123
|
/** Resource URL that was accessed */
|
|
175
124
|
resourceUrl?: string;
|
|
176
125
|
/** Reference back to the offer */
|
|
@@ -178,14 +127,21 @@ export interface X402SettlementResponse {
|
|
|
178
127
|
/**
|
|
179
128
|
* Forward-compatibility: unknown extension fields from x402 evolution
|
|
180
129
|
*
|
|
181
|
-
* This allows the adapter to tolerate additions from upstream PRs
|
|
182
|
-
* (e.g., #1004 TXID, #1015 fee extensions) without breaking.
|
|
183
130
|
* Unknown fields are preserved in proofs but NOT copied to evidence.
|
|
184
131
|
*/
|
|
185
132
|
extensions?: Record<string, unknown>;
|
|
186
133
|
}
|
|
187
134
|
/**
|
|
188
|
-
* Result of
|
|
135
|
+
* Result of wire-level validation
|
|
136
|
+
*/
|
|
137
|
+
export interface WireVerification {
|
|
138
|
+
/** Whether the wire structure is valid */
|
|
139
|
+
valid: boolean;
|
|
140
|
+
/** Verification errors (if invalid) */
|
|
141
|
+
errors: VerificationError[];
|
|
142
|
+
}
|
|
143
|
+
/**
|
|
144
|
+
* Result of offer term verification
|
|
189
145
|
*/
|
|
190
146
|
export interface OfferVerification {
|
|
191
147
|
/** Whether the offer is valid */
|
|
@@ -200,11 +156,6 @@ export interface OfferVerification {
|
|
|
200
156
|
errors: VerificationError[];
|
|
201
157
|
/**
|
|
202
158
|
* Term-matching details (always populated for deterministic output)
|
|
203
|
-
*
|
|
204
|
-
* This makes mismatchDetected first-class in the verification output,
|
|
205
|
-
* rather than requiring callers to pass it externally.
|
|
206
|
-
*
|
|
207
|
-
* All fields are required booleans for predictable downstream processing.
|
|
208
159
|
*/
|
|
209
160
|
termMatching: {
|
|
210
161
|
/** Method used: 'hint' (acceptIndex) or 'scan' (full array scan) */
|
|
@@ -216,7 +167,7 @@ export interface OfferVerification {
|
|
|
216
167
|
};
|
|
217
168
|
}
|
|
218
169
|
/**
|
|
219
|
-
* Result of receipt verification
|
|
170
|
+
* Result of receipt semantic verification
|
|
220
171
|
*/
|
|
221
172
|
export interface ReceiptVerification {
|
|
222
173
|
/** Whether the receipt is valid */
|
|
@@ -224,6 +175,32 @@ export interface ReceiptVerification {
|
|
|
224
175
|
/** Verification errors (if invalid) */
|
|
225
176
|
errors: VerificationError[];
|
|
226
177
|
}
|
|
178
|
+
/**
|
|
179
|
+
* Options for offer-receipt consistency verification
|
|
180
|
+
*/
|
|
181
|
+
export interface ConsistencyOptions {
|
|
182
|
+
/**
|
|
183
|
+
* Candidate payer addresses to verify against receipt.payer
|
|
184
|
+
*
|
|
185
|
+
* If provided, receipt.payer must match one of these addresses
|
|
186
|
+
* (using the network-aware address comparator).
|
|
187
|
+
* Upstream client verification checks payer against wallet addresses.
|
|
188
|
+
*/
|
|
189
|
+
payerCandidates?: string[];
|
|
190
|
+
/**
|
|
191
|
+
* Address comparator for payer matching (default: defaultAddressComparator)
|
|
192
|
+
*/
|
|
193
|
+
addressComparator?: AddressComparator;
|
|
194
|
+
}
|
|
195
|
+
/**
|
|
196
|
+
* Result of offer-receipt consistency verification
|
|
197
|
+
*/
|
|
198
|
+
export interface ConsistencyVerification {
|
|
199
|
+
/** Whether offer and receipt are consistent */
|
|
200
|
+
valid: boolean;
|
|
201
|
+
/** Consistency errors (if inconsistent) */
|
|
202
|
+
errors: VerificationError[];
|
|
203
|
+
}
|
|
227
204
|
/**
|
|
228
205
|
* Structured verification error
|
|
229
206
|
*/
|
|
@@ -238,12 +215,12 @@ export interface VerificationError {
|
|
|
238
215
|
/**
|
|
239
216
|
* Verification status metadata
|
|
240
217
|
*
|
|
241
|
-
* Records what verification was performed and how.
|
|
242
|
-
* CRITICAL: `valid: true`
|
|
243
|
-
*
|
|
218
|
+
* Records what verification was performed and how across all layers.
|
|
219
|
+
* CRITICAL: `valid: true` does NOT imply cryptographic signature validity
|
|
220
|
+
* unless a crypto verifier was supplied.
|
|
244
221
|
*/
|
|
245
222
|
export interface VerificationStatus {
|
|
246
|
-
/**
|
|
223
|
+
/** Wire-level structural validation (always performed) */
|
|
247
224
|
structural: true;
|
|
248
225
|
/** Cryptographic signature verification status */
|
|
249
226
|
cryptographic: {
|
|
@@ -264,33 +241,54 @@ export interface VerificationStatus {
|
|
|
264
241
|
method: 'hint' | 'scan';
|
|
265
242
|
/** Index of matched accept entry */
|
|
266
243
|
matchedIndex?: number;
|
|
267
|
-
/** Why term-matching wasn't performed
|
|
244
|
+
/** Why term-matching wasn't performed */
|
|
268
245
|
reason?: 'not_verified';
|
|
269
246
|
};
|
|
247
|
+
/** Offer-receipt consistency status */
|
|
248
|
+
consistency?: {
|
|
249
|
+
/** Whether consistency was checked */
|
|
250
|
+
checked: boolean;
|
|
251
|
+
/** Whether offer and receipt are consistent */
|
|
252
|
+
valid?: boolean;
|
|
253
|
+
};
|
|
254
|
+
/** Signer authorization status */
|
|
255
|
+
signerAuthorization?: {
|
|
256
|
+
/** Whether authorization was checked */
|
|
257
|
+
checked: boolean;
|
|
258
|
+
/** Whether the signer is authorized */
|
|
259
|
+
authorized?: boolean;
|
|
260
|
+
/** Authorization method used */
|
|
261
|
+
method?: string;
|
|
262
|
+
};
|
|
270
263
|
}
|
|
271
264
|
/**
|
|
272
265
|
* PEAC interaction record for an x402 Offer/Receipt extension flow
|
|
273
266
|
*
|
|
274
|
-
*
|
|
275
|
-
*
|
|
276
|
-
*
|
|
277
|
-
* NOTE: This profile targets the x402 Offer/Receipt EXTENSION,
|
|
278
|
-
* NOT the baseline x402 header flow.
|
|
267
|
+
* Produced by mapping x402 proofs into the PEAC evidence layer.
|
|
268
|
+
* Evidence fields are derived from normalized payloads (Layer B).
|
|
269
|
+
* Raw upstream artifacts are preserved as-is in proofs.
|
|
279
270
|
*/
|
|
280
271
|
export interface X402PeacRecord {
|
|
281
272
|
/** Record format version (extension profile, not baseline) */
|
|
282
273
|
version: typeof X402_OFFER_RECEIPT_PROFILE;
|
|
283
|
-
/**
|
|
274
|
+
/**
|
|
275
|
+
* Raw x402 proofs (preserved for audit)
|
|
276
|
+
*
|
|
277
|
+
* These are the exact wire artifacts, never mutated or reconstructed.
|
|
278
|
+
* Proof preservation discipline: raw artifacts in, raw artifacts stored.
|
|
279
|
+
*/
|
|
284
280
|
proofs: {
|
|
285
281
|
x402: {
|
|
286
|
-
offer:
|
|
287
|
-
receipt:
|
|
282
|
+
offer: RawSignedOffer;
|
|
283
|
+
receipt: RawSignedReceipt;
|
|
288
284
|
};
|
|
289
285
|
};
|
|
290
|
-
/** Normalized evidence fields (extracted from signed payloads) */
|
|
286
|
+
/** Normalized evidence fields (extracted from signed payloads via Layer B) */
|
|
291
287
|
evidence: {
|
|
292
|
-
/**
|
|
293
|
-
|
|
288
|
+
/** Resource URL (from offer, signed) */
|
|
289
|
+
resourceUrl: string;
|
|
290
|
+
/** Offer expiry (epoch seconds, from offer; undefined = no expiry) */
|
|
291
|
+
validUntil?: number;
|
|
294
292
|
/** CAIP-2 network */
|
|
295
293
|
network: string;
|
|
296
294
|
/** Payment recipient (neutral naming; x402 calls this "payTo") */
|
|
@@ -299,21 +297,25 @@ export interface X402PeacRecord {
|
|
|
299
297
|
asset: string;
|
|
300
298
|
/** Payment amount in minor units */
|
|
301
299
|
amount: string;
|
|
302
|
-
/**
|
|
303
|
-
|
|
304
|
-
/**
|
|
305
|
-
|
|
300
|
+
/** Schema version (from offer, number) */
|
|
301
|
+
offerVersion: number;
|
|
302
|
+
/** Payer address (from receipt) */
|
|
303
|
+
payer?: string;
|
|
304
|
+
/** Receipt issuance timestamp (from receipt, epoch seconds) */
|
|
305
|
+
issuedAt?: number;
|
|
306
|
+
/** On-chain transaction reference (from receipt, optional; privacy-minimal) */
|
|
307
|
+
transaction?: string;
|
|
306
308
|
/** Schema version (from receipt, if present) */
|
|
307
|
-
receiptVersion?:
|
|
309
|
+
receiptVersion?: number;
|
|
308
310
|
};
|
|
309
311
|
/** Unsigned metadata and verification status */
|
|
310
312
|
hints: {
|
|
311
313
|
acceptIndex?: {
|
|
312
|
-
/** The acceptIndex value from the envelope */
|
|
314
|
+
/** The acceptIndex value from the offer envelope */
|
|
313
315
|
value: number;
|
|
314
|
-
/** Always true
|
|
316
|
+
/** Always true: acceptIndex is outside the signature */
|
|
315
317
|
untrusted: true;
|
|
316
|
-
/** True if acceptIndex pointed to a non-matching entry
|
|
318
|
+
/** True if acceptIndex pointed to a non-matching entry */
|
|
317
319
|
mismatchDetected?: boolean;
|
|
318
320
|
};
|
|
319
321
|
resourceUrl?: string;
|
|
@@ -341,52 +343,198 @@ export interface X402PeacRecord {
|
|
|
341
343
|
* - 'ignore_and_scan': Skip hint check entirely, always scan
|
|
342
344
|
*/
|
|
343
345
|
export type MismatchPolicy = 'fail' | 'warn_and_scan' | 'ignore_and_scan';
|
|
346
|
+
/**
|
|
347
|
+
* Network-aware address comparison function
|
|
348
|
+
*
|
|
349
|
+
* Default behavior:
|
|
350
|
+
* - EVM networks (eip155:*): case-insensitive (EIP-55 mixed-case is cosmetic)
|
|
351
|
+
* - All other networks: exact string comparison (fail-closed for unknown formats)
|
|
352
|
+
*
|
|
353
|
+
* Override via `X402AdapterConfig.addressComparator` or
|
|
354
|
+
* `ConsistencyOptions.addressComparator` for specific network requirements.
|
|
355
|
+
*
|
|
356
|
+
* @param a - First address
|
|
357
|
+
* @param b - Second address
|
|
358
|
+
* @param network - CAIP-2 network identifier
|
|
359
|
+
* @returns True if addresses are equivalent for the given network
|
|
360
|
+
*/
|
|
361
|
+
export type AddressComparator = (a: string, b: string, network: string) => boolean;
|
|
362
|
+
/**
|
|
363
|
+
* Default network-aware address comparator
|
|
364
|
+
*
|
|
365
|
+
* EVM networks (eip155:*): case-insensitive (EIP-55 checksums are cosmetic encoding).
|
|
366
|
+
* All other networks: exact string comparison (fail-closed for unknown formats).
|
|
367
|
+
*/
|
|
368
|
+
export declare function defaultAddressComparator(a: string, b: string, network: string): boolean;
|
|
344
369
|
/**
|
|
345
370
|
* Adapter configuration
|
|
346
371
|
*
|
|
347
|
-
*
|
|
348
|
-
*
|
|
372
|
+
* Defaults match upstream x402 behavior:
|
|
373
|
+
* - `offerExpiryPolicy: 'allow_missing'` (upstream treats validUntil as optional)
|
|
374
|
+
* - `receiptRecencySeconds: 3600` (upstream client default)
|
|
375
|
+
*
|
|
376
|
+
* Stricter options available via opt-in:
|
|
377
|
+
* - `offerExpiryPolicy: 'require'` rejects offers without expiry
|
|
378
|
+
* - `receiptRecencySeconds: 300` tightens freshness window
|
|
379
|
+
* - `signatureVerificationPolicy: 'require'` mandates crypto verification
|
|
349
380
|
*/
|
|
350
381
|
export interface X402AdapterConfig {
|
|
351
|
-
/** Supported offer versions (default: [
|
|
352
|
-
supportedVersions?:
|
|
382
|
+
/** Supported offer/receipt versions (default: [1]) */
|
|
383
|
+
supportedVersions?: number[];
|
|
353
384
|
/** Clock skew tolerance in seconds for validUntil (default: 60) */
|
|
354
385
|
clockSkewSeconds?: number;
|
|
355
386
|
/** Current time override for testing (epoch seconds) */
|
|
356
387
|
nowSeconds?: number;
|
|
357
388
|
/**
|
|
358
389
|
* How to handle acceptIndex mismatch (default: "fail")
|
|
359
|
-
*
|
|
360
|
-
* When "warn_and_scan" or "ignore_and_scan", the adapter will:
|
|
361
|
-
* 1. Record the mismatch in hints.acceptIndex.mismatchDetected
|
|
362
|
-
* 2. Continue verification via full scan
|
|
363
|
-
* 3. Succeed if scan finds a unique match
|
|
364
390
|
*/
|
|
365
391
|
mismatchPolicy?: MismatchPolicy;
|
|
366
392
|
/**
|
|
367
393
|
* Maximum number of accept entries allowed (default: 128)
|
|
368
|
-
*
|
|
369
|
-
* DoS protection: prevents CPU exhaustion from large accepts arrays.
|
|
370
394
|
*/
|
|
371
395
|
maxAcceptEntries?: number;
|
|
372
396
|
/**
|
|
373
397
|
* Maximum total bytes for accepts array JSON (default: 256 KiB)
|
|
374
|
-
*
|
|
375
|
-
* DoS protection: prevents memory exhaustion from large payloads.
|
|
376
|
-
* Note: This requires caller to pass raw JSON size if available.
|
|
377
398
|
*/
|
|
378
399
|
maxTotalAcceptsBytes?: number;
|
|
379
400
|
/**
|
|
380
401
|
* Enable strict CAIP-2 network format validation (default: true)
|
|
381
|
-
*
|
|
382
|
-
* When enabled, validates network strings match CAIP-2 format (namespace:reference).
|
|
383
402
|
*/
|
|
384
403
|
strictNetworkValidation?: boolean;
|
|
385
404
|
/**
|
|
386
405
|
* Enable strict amount validation (default: true)
|
|
387
|
-
*
|
|
388
|
-
* When enabled, validates amount is a non-negative integer string.
|
|
389
406
|
*/
|
|
390
407
|
strictAmountValidation?: boolean;
|
|
408
|
+
/**
|
|
409
|
+
* Offer expiry policy (default: 'allow_missing')
|
|
410
|
+
*
|
|
411
|
+
* Upstream x402 treats validUntil as optional (EIP-712 encodes
|
|
412
|
+
* unused values as `0`). The default matches upstream behavior.
|
|
413
|
+
*
|
|
414
|
+
* - 'allow_missing': accept offers without expiry (default)
|
|
415
|
+
* - 'require': reject offers without expiry
|
|
416
|
+
*/
|
|
417
|
+
offerExpiryPolicy?: 'require' | 'allow_missing';
|
|
418
|
+
/**
|
|
419
|
+
* Signature verification policy (default: 'none')
|
|
420
|
+
*
|
|
421
|
+
* - 'none': no crypto verification (structural only)
|
|
422
|
+
* - 'verify_if_configured': verify if CryptoVerifier is supplied
|
|
423
|
+
* - 'require': fail if CryptoVerifier is not supplied
|
|
424
|
+
*/
|
|
425
|
+
signatureVerificationPolicy?: 'none' | 'verify_if_configured' | 'require';
|
|
426
|
+
/**
|
|
427
|
+
* Signer authorization policy (default: 'none')
|
|
428
|
+
*
|
|
429
|
+
* - 'none': no signer authorization
|
|
430
|
+
* - 'verify_if_configured': authorize if SignerAuthorizer is supplied
|
|
431
|
+
* - 'require': fail if SignerAuthorizer is not supplied
|
|
432
|
+
*/
|
|
433
|
+
signerAuthorizationPolicy?: 'none' | 'verify_if_configured' | 'require';
|
|
434
|
+
/**
|
|
435
|
+
* Address comparator for payTo/payer matching (default: defaultAddressComparator)
|
|
436
|
+
*
|
|
437
|
+
* Network-aware: EVM is case-insensitive, others exact.
|
|
438
|
+
*/
|
|
439
|
+
addressComparator?: AddressComparator;
|
|
440
|
+
/**
|
|
441
|
+
* Maximum compact JWS byte length (default: 64 KB)
|
|
442
|
+
*/
|
|
443
|
+
maxCompactJwsBytes?: number;
|
|
444
|
+
/**
|
|
445
|
+
* Receipt recency window in seconds (default: 3600)
|
|
446
|
+
*
|
|
447
|
+
* Default matches upstream x402 client (1 hour).
|
|
448
|
+
* Receipts with issuedAt older than this are rejected.
|
|
449
|
+
*/
|
|
450
|
+
receiptRecencySeconds?: number;
|
|
451
|
+
}
|
|
452
|
+
/**
|
|
453
|
+
* Result of cryptographic verification
|
|
454
|
+
*/
|
|
455
|
+
export interface CryptoResult {
|
|
456
|
+
/** Whether the signature is valid */
|
|
457
|
+
valid: boolean;
|
|
458
|
+
/** Recovered/resolved signer identity */
|
|
459
|
+
signer?: string;
|
|
460
|
+
/** JWS algorithm used (from header, e.g., 'ES256', 'EdDSA') */
|
|
461
|
+
alg?: string;
|
|
462
|
+
/** JWS key ID (from header) */
|
|
463
|
+
kid?: string;
|
|
464
|
+
/** Error message if verification failed */
|
|
465
|
+
error?: string;
|
|
466
|
+
}
|
|
467
|
+
/**
|
|
468
|
+
* Opt-in cryptographic verifier interface
|
|
469
|
+
*
|
|
470
|
+
* Callers inject an implementation to enable signature verification.
|
|
471
|
+
* The adapter core has no crypto dependencies.
|
|
472
|
+
*
|
|
473
|
+
* Implementation constraints:
|
|
474
|
+
* - MUST NOT perform live network I/O (no key fetching, no DID resolution)
|
|
475
|
+
* - Key material MUST be provided via injection or pre-fetched
|
|
476
|
+
* - MUST enforce algorithm allowlists (no implicit algorithm trust)
|
|
477
|
+
* - MUST preserve `kid` and `alg` from JWS headers in CryptoResult
|
|
478
|
+
* - If DID-based: use pluggable resolver with caching, allowlists,
|
|
479
|
+
* timeouts, offline mode, and SSRF controls
|
|
480
|
+
*/
|
|
481
|
+
export interface CryptoVerifier {
|
|
482
|
+
/** Verify a JWS compact serialization */
|
|
483
|
+
verifyJWS(compactJws: string): Promise<CryptoResult>;
|
|
484
|
+
/** Verify an EIP-712 typed data signature */
|
|
485
|
+
verifyEIP712(payload: unknown, signature: string, domain: EIP712Domain): Promise<CryptoResult>;
|
|
486
|
+
}
|
|
487
|
+
/**
|
|
488
|
+
* EIP-712 domain parameters for signature verification
|
|
489
|
+
*/
|
|
490
|
+
export interface EIP712Domain {
|
|
491
|
+
name?: string;
|
|
492
|
+
version?: string;
|
|
493
|
+
chainId?: number;
|
|
494
|
+
verifyingContract?: string;
|
|
495
|
+
salt?: string;
|
|
496
|
+
}
|
|
497
|
+
/**
|
|
498
|
+
* Opt-in signer authorization interface
|
|
499
|
+
*
|
|
500
|
+
* Determines whether a recovered signer is authorized for a given resource.
|
|
501
|
+
* This is verifier policy, not payload data (per upstream PR #935 conclusion).
|
|
502
|
+
*
|
|
503
|
+
* Implementation constraints:
|
|
504
|
+
* - MUST NOT perform live network I/O in core verification path
|
|
505
|
+
* - Resolver injection only: callers provide pre-fetched or cached material
|
|
506
|
+
* - For `did:web` resolution: require explicit timeout (default 5s),
|
|
507
|
+
* caching (default 5min), allowlist, and SSRF controls
|
|
508
|
+
* - Results are stored separately from signature verification in record metadata
|
|
509
|
+
*/
|
|
510
|
+
export interface SignerAuthorizer {
|
|
511
|
+
/** Check if a signer is authorized for a resource */
|
|
512
|
+
authorize(signer: string, resourceUrl: string, context: AuthorizationContext): Promise<AuthorizationResult>;
|
|
513
|
+
}
|
|
514
|
+
/**
|
|
515
|
+
* Context provided to the signer authorizer
|
|
516
|
+
*
|
|
517
|
+
* Preserves `kid` and `alg` from JWS headers for authorization decisions.
|
|
518
|
+
*/
|
|
519
|
+
export interface AuthorizationContext {
|
|
520
|
+
/** CAIP-2 network identifier */
|
|
521
|
+
network: string;
|
|
522
|
+
/** Signature format */
|
|
523
|
+
format: 'jws' | 'eip712';
|
|
524
|
+
/** JWS kid header value (if JWS format) */
|
|
525
|
+
kid?: string;
|
|
526
|
+
/** JWS algorithm (from header, e.g., 'ES256', 'EdDSA') */
|
|
527
|
+
alg?: string;
|
|
528
|
+
}
|
|
529
|
+
/**
|
|
530
|
+
* Result of signer authorization
|
|
531
|
+
*/
|
|
532
|
+
export interface AuthorizationResult {
|
|
533
|
+
/** Whether the signer is authorized */
|
|
534
|
+
authorized: boolean;
|
|
535
|
+
/** Authorization method used (e.g., 'dns-txt', 'did-web', 'erc-8004', 'manual') */
|
|
536
|
+
method?: string;
|
|
537
|
+
/** Reason for authorization decision */
|
|
538
|
+
reason?: string;
|
|
391
539
|
}
|
|
392
540
|
//# sourceMappingURL=types.d.ts.map
|
package/dist/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
|