@xfuel/verify 0.1.0 → 0.2.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/dist/index.d.ts CHANGED
@@ -11,11 +11,13 @@
11
11
  * See docs/specs/RECEIPT_V2_SEMANTICS.md for the verification algorithm.
12
12
  */
13
13
  import { computePaymentCommitment, computeInferenceBinding, type PaymentCommitmentInput, type InferenceBindingInput } from './binding.js';
14
- export { computePaymentCommitment, computeInferenceBinding, type PaymentCommitmentInput, type InferenceBindingInput, };
14
+ import { verifyBasePayer, parseBasePaymentRef, isEvmAddress, sumUsdcTransfersFromPayer, fetchBaseTransactionReceipt, USDC_ADDRESSES, ERC20_TRANSFER_TOPIC, BASE_RPC_URL, type BasePayerVerification, type BaseReceiptFetcher } from './base-payer.js';
15
+ import { verifySolanaPayer, parseSolanaPaymentRef, isSolanaBase58Pubkey, extractUsdcTransfersFromTx, inferUsdcOutflowFromBalances, fetchSolanaTransaction, SOLANA_RPC_URL, SOLANA_USDC_MINT_MAINNET, SOLANA_USDC_MINT_DEVNET, type SolanaPayerVerification, type SolanaRpcFetcher, type SolanaRpcGetTransactionResult } from './solana-payer.js';
16
+ import { verifyPayerBinding, receiptPayerClaimsFromEnvelope, decodeJwsPayload, type PayerBindingVerification, type ReceiptPayerClaims, type PayerRail } from './payer.js';
17
+ import { resolvePinnedIssuerJwk, verifyIssuerJws } from './jws.js';
18
+ export { computePaymentCommitment, computeInferenceBinding, type PaymentCommitmentInput, type InferenceBindingInput, verifyBasePayer, parseBasePaymentRef, isEvmAddress, sumUsdcTransfersFromPayer, fetchBaseTransactionReceipt, USDC_ADDRESSES, ERC20_TRANSFER_TOPIC, BASE_RPC_URL, type BasePayerVerification, type BaseReceiptFetcher, verifySolanaPayer, parseSolanaPaymentRef, isSolanaBase58Pubkey, extractUsdcTransfersFromTx, inferUsdcOutflowFromBalances, fetchSolanaTransaction, SOLANA_RPC_URL, SOLANA_USDC_MINT_MAINNET, SOLANA_USDC_MINT_DEVNET, type SolanaPayerVerification, type SolanaRpcFetcher, type SolanaRpcGetTransactionResult, verifyPayerBinding, receiptPayerClaimsFromEnvelope, decodeJwsPayload, type PayerBindingVerification, type ReceiptPayerClaims, type PayerRail, };
15
19
  /** ZKVerifierSP1 contract on Base mainnet. */
16
20
  export declare const ZK_VERIFIER_ADDRESS = "0x9373499645292715a2275A78eD65B14215C41c06";
17
- /** Default Base mainnet RPC. */
18
- export declare const BASE_RPC_URL = "https://mainnet.base.org";
19
21
  /** Base Sepolia testnet RPC. */
20
22
  export declare const BASE_SEPOLIA_RPC_URL = "https://sepolia.base.org";
21
23
  /** Chit402 receipt (v2/v3 compatible). */
@@ -35,14 +37,32 @@ export interface XFuelReceipt {
35
37
  payment?: {
36
38
  rail?: string;
37
39
  ref?: string | null;
38
- gross_amount?: string;
39
- net_amount?: string;
40
- fee_amount?: string;
41
- fee_bps?: number;
42
- protocol_fee_bps?: number;
43
- platform_fee?: string;
44
- platform_fee_bps?: number;
40
+ gross_amount?: string | null;
41
+ settled_amount?: string | null;
42
+ net_amount?: string | null;
43
+ fee_amount?: string | null;
44
+ fee_bps?: number | null;
45
+ protocol_fee_bps?: number | null;
46
+ platform_fee?: string | null;
47
+ platform_fee_bps?: number | null;
48
+ asset?: string | null;
49
+ payee?: string | null;
50
+ accounting?: {
51
+ kind?: string;
52
+ scope?: string;
53
+ note?: string;
54
+ internal_breakdown?: {
55
+ route_margin_bps?: number | null;
56
+ route_margin_amount?: string | null;
57
+ receipt_floor_amount?: string | null;
58
+ provider_cogs_amount?: string | null;
59
+ tier2_proof_amount?: string | null;
60
+ };
61
+ } | null;
45
62
  };
63
+ payment_meta?: {
64
+ network?: string;
65
+ } | null;
46
66
  provider_cogs?: {
47
67
  actual?: string;
48
68
  };
@@ -68,12 +88,30 @@ export interface XFuelReceipt {
68
88
  signature?: {
69
89
  alg?: string;
70
90
  value?: string;
91
+ payload_version?: number;
92
+ };
93
+ hmac_attestation?: {
94
+ payload_version?: number;
71
95
  };
72
96
  issuer_signature?: {
73
97
  alg?: string;
74
98
  value?: string;
75
99
  kid?: string;
100
+ jws?: string;
101
+ issuer_jwk?: Es256Jwk;
102
+ payload_version?: number;
103
+ };
104
+ verification?: {
105
+ source_of_truth?: string;
106
+ jwks_uri?: string;
107
+ issuer_jwk_pin?: string;
108
+ offline_key_source?: string;
76
109
  };
110
+ caller_binding?: {
111
+ payer_wallet?: string | null;
112
+ agent_pubkey?: string | null;
113
+ api_key_hash?: string | null;
114
+ } | null;
77
115
  }
78
116
  /** JWK public key for ES256 verification. */
79
117
  export interface Es256Jwk {
@@ -93,12 +131,24 @@ export interface Jwks {
93
131
  export interface IssuerSignatureVerification {
94
132
  /** Whether an issuer signature was present to check. */
95
133
  checked: boolean;
96
- /** True if the ECDSA signature is valid. */
134
+ /** True only when the signature verifies under a trusted key. */
97
135
  valid: boolean;
98
136
  /** Key ID from the signature. */
99
137
  kid?: string;
100
- /** Reason for failure when valid=false. */
138
+ /** Reason for failure when valid=false. `key untrusted` means the verifying key is not in the trust set. */
101
139
  reason?: string;
140
+ /** True when the key used (or the only candidate key) is in the trust set. */
141
+ key_trusted?: boolean;
142
+ /** How the verifying key was trusted, when valid. */
143
+ trust?: 'jwks' | 'pinned_kid';
144
+ /** Verified JWS claims. Present only when valid is true. */
145
+ payload?: Record<string, unknown>;
146
+ }
147
+ /** Outer unsigned field disagrees with the JWS payload. */
148
+ export interface ClaimMismatch {
149
+ field: string;
150
+ outer: string | null;
151
+ signed: string | null;
102
152
  }
103
153
  export interface BindingVerification {
104
154
  verified: boolean;
@@ -114,41 +164,93 @@ export interface NullifierVerification {
114
164
  anchored: boolean | null;
115
165
  reason?: string;
116
166
  }
167
+ export interface PayerVerification {
168
+ checked: boolean;
169
+ valid: boolean;
170
+ rail?: PayerRail;
171
+ reason?: string;
172
+ payer_wallet?: string | null;
173
+ payee?: string | null;
174
+ asset?: string | null;
175
+ amount?: string | null;
176
+ }
117
177
  export interface ReceiptVerification {
118
178
  receipt_id: string;
119
179
  binding: BindingVerification;
120
180
  issuer_signature: IssuerSignatureVerification;
181
+ payer: PayerVerification;
121
182
  nullifier: NullifierVerification;
122
183
  output_hash: string | null;
123
184
  hub: string | null;
124
185
  model: string | null;
186
+ /** Gross amount from verified signed claims, in atomic USDC. Null when the signature is not trusted. */
125
187
  amount_usdc: string | null;
188
+ /** Settlement ref from verified signed claims. Null when the signature is not trusted. */
126
189
  tx: string | null;
190
+ /** Unsigned outer fields that disagree with the JWS payload. */
191
+ claim_mismatches: ClaimMismatch[];
127
192
  overall: 'verified' | 'partial' | 'failed';
128
193
  errors: string[];
129
194
  }
130
195
  /**
131
- * Canonical, order-stable payload an issuer signature covers.
132
- * MUST match `canonicalSignedPayload` in services/gateway/src/receipt.js exactly.
133
- *
134
- * Signed fields (15 total):
135
- * 1. task_id
136
- * 2. payment.rail
137
- * 3. payment.ref
138
- * 4. payment.gross_amount
139
- * 5. payment.net_amount
140
- * 6. payment.fee_amount
141
- * 7. payment.protocol_fee_bps ?? payment.fee_bps
142
- * 8. payment.platform_fee
143
- * 9. payment.platform_fee_bps
144
- * 10. provider_cogs.actual
145
- * 11. route.model
146
- * 12. route.model_commitment.commitment
147
- * 13. route.provider
148
- * 14. output.hash
149
- * 15. binding.expected_commitment
196
+ * HMAC payload version.
197
+ * Versions <= 7 keep the historical net/fee field list.
198
+ * Version 8 signs settled_amount plus the internal accounting breakdown.
199
+ * Lockstep with `canonicalPayloadVersion` in services/gateway/src/receipt.js
200
+ * for the v8 list (the v7 list here is the historical 15-field public formula).
201
+ */
202
+ export declare function canonicalPayloadVersion(receipt: XFuelReceipt): number;
203
+ /**
204
+ * Canonical, order-stable payload an HMAC issuer signature covers.
205
+ * v8 matches `canonicalSignedPayload` in services/gateway/src/receipt.js.
206
+ * v7 and earlier stay on the historical 15-field list so old signatures verify.
150
207
  */
151
208
  export declare function canonicalIssuerPayload(receipt: XFuelReceipt): string;
209
+ export interface TransferLog {
210
+ address?: string;
211
+ topics?: string[];
212
+ data?: string;
213
+ }
214
+ export interface SettledAmountReconciliation {
215
+ checked: boolean;
216
+ /** True when the signed settled/net amount equals the USDC Transfer to payee. */
217
+ matches: boolean;
218
+ payload_version: number;
219
+ signed_field: 'settled_amount' | 'gross_amount' | 'net_amount' | null;
220
+ signed_amount: string | null;
221
+ transfer_amount: string | null;
222
+ payee: string | null;
223
+ reason?: string;
224
+ }
225
+ /**
226
+ * Sum USDC Transfer values to `payee` in a transaction's logs.
227
+ * Non-Transfer logs are ignored. When `usdcAddress` is set, other contracts are ignored.
228
+ */
229
+ export declare function sumUsdcTransfersToPayee(logs: TransferLog[] | null | undefined, payee: string, usdcAddress?: string): bigint | null;
230
+ export interface ReconcileSettledTransferOptions {
231
+ usdcAddress?: string;
232
+ /** JWKS treated as a trust root. Keys are matched by `kid`. */
233
+ jwks?: Jwks;
234
+ /**
235
+ * RFC 7638 thumbprints allowed as an offline pin.
236
+ * Omit to use the default production pin. Pass `[]` to disable the pin.
237
+ */
238
+ trustedKids?: readonly string[];
239
+ }
240
+ /**
241
+ * Optional on-chain reconciliation. Given a tx receipt's logs, the signed
242
+ * amount the payee was supposed to receive must equal the USDC Transfer to payee.
243
+ *
244
+ * The amount and payee come from JWS claims only after a key-trust check
245
+ * (JWKS by kid, or an embedded key whose thumbprint is a pinned kid). An
246
+ * untrusted signature does not contribute those facts.
247
+ *
248
+ * v8 compares `settled_amount` (falling back to `gross_amount`): that is the
249
+ * on-chain transfer. v7 and earlier compare `net_amount`, which those receipts
250
+ * defined as "amount after fees". A single direct transfer of gross will not
251
+ * match a net that subtracts a fee that never moved on chain.
252
+ */
253
+ export declare function reconcileSettledTransfer(receipt: XFuelReceipt, logs: TransferLog[] | null | undefined, options?: ReconcileSettledTransferOptions): SettledAmountReconciliation;
152
254
  /**
153
255
  * Verify a receipt's ES256 issuer signature against a JWK (public key).
154
256
  * This is the public-key verification path — no shared secret required.
@@ -163,19 +265,17 @@ export declare function canonicalIssuerPayload(receipt: XFuelReceipt): string;
163
265
  */
164
266
  export declare function verifyIssuerSignature(receipt: XFuelReceipt, jwk: Es256Jwk): IssuerSignatureVerification;
165
267
  /**
166
- * Verify a receipt's ES256 issuer signature against a JWKS (key set).
167
- * Finds the matching key by kid and verifies.
268
+ * Verify an issuer signature against trusted keys only.
168
269
  *
169
- * @param receipt - Receipt JSON with issuer_signature
170
- * @param jwks - JWKS with keys array
171
- */
172
- export declare function verifyIssuerSignatureWithJwks(receipt: XFuelReceipt, jwks: Jwks): IssuerSignatureVerification;
173
- /**
174
- * Verify a receipt's payment binding locally (no network required).
270
+ * Trust, in order:
271
+ * 1. A JWKS entry matched by `kid` (supplied file or fetched issuer JWKS).
272
+ * 2. An embedded `issuer_jwk` whose RFC 7638 thumbprint equals a pinned trusted kid.
175
273
  *
176
- * This recomputes the commitment from the receipt's fields and compares
177
- * it to the stored `binding.expected_commitment`.
274
+ * An embedded key that merely verifies the bytes is `key untrusted`.
178
275
  */
276
+ export declare function verifyIssuerSignatureWithJwks(receipt: XFuelReceipt, jwks?: Jwks, options?: {
277
+ trustedKids?: readonly string[];
278
+ }): IssuerSignatureVerification;
179
279
  export declare function verifyBinding(receipt: XFuelReceipt): BindingVerification;
180
280
  /**
181
281
  * Verify a receipt's nullifier is anchored on-chain.
@@ -195,34 +295,71 @@ export declare const canonicalSignedPayload: typeof canonicalIssuerPayload;
195
295
  * Hash the canonical payload (for ERC-8004 response_hash).
196
296
  */
197
297
  export declare function hashCanonicalPayload(receipt: XFuelReceipt): string;
298
+ /** Flag unsigned outer copies that disagree with the JWS payload. */
299
+ export declare function diffOuterClaims(receipt: XFuelReceipt, claims: Record<string, unknown> | null): ClaimMismatch[];
300
+ /** Fetch a JWKS document. Caller decides whether the URL is a trust root. */
301
+ export declare function fetchIssuerJwks(uri: string, fetchImpl?: typeof fetch): Promise<Jwks>;
198
302
  /**
199
- * Full receipt verification — binding + issuer signature + optional nullifier check.
303
+ * Full receipt verification — trusted issuer signature, signed-claim facts,
304
+ * optional on-chain payer and nullifier checks.
200
305
  *
201
- * @param receipt The Chit402 receipt JSON
202
- * @param options.jwks JWKS for issuer signature verification (no network fetch)
203
- * @param options.checkNullifier Whether to verify nullifier on-chain (requires network)
204
- * @param options.rpcUrl RPC URL for on-chain checks
306
+ * Facts (amount, payer, payee, asset, tx, model) are taken only from a JWS
307
+ * that verified under a trusted key. The embedded `issuer_jwk` is not trusted
308
+ * unless its RFC 7638 thumbprint is a pinned kid, or the same key is in a JWKS.
205
309
  */
206
- export declare function verifyReceipt(receipt: XFuelReceipt, options?: {
310
+ /** Extract JWS claims for payer binding. Prefers the JWS payload over the outer copy. */
311
+ export declare function receiptPayerClaims(receipt: XFuelReceipt): ReceiptPayerClaims;
312
+ export interface VerifyReceiptOptions {
313
+ /** Caller-supplied JWKS. Every key in it is a trust root, matched by kid. */
207
314
  jwks?: Jwks;
315
+ /**
316
+ * Pinned trusted kids (RFC 7638 thumbprints). Defaults to the production
317
+ * api.chit402.com issuer kid. Pass `[]` to disable the offline pin.
318
+ */
319
+ trustedKids?: readonly string[];
320
+ /** Fetch JWKS from the receipt `jwks_uri` when its host is allowlisted. */
321
+ fetchJwks?: boolean;
322
+ /** Explicit JWKS URL. Any https URL is fetched; this is user-supplied trust. */
323
+ jwksUri?: string;
324
+ /** Hosts allowed for `fetchJwks`. Defaults to api.chit402.com. */
325
+ trustedJwksHosts?: readonly string[];
326
+ fetchImpl?: typeof fetch;
208
327
  checkNullifier?: boolean;
328
+ checkPayer?: boolean;
209
329
  rpcUrl?: string;
330
+ solanaRpcUrl?: string;
210
331
  verifierAddress?: string;
211
- }): Promise<ReceiptVerification>;
332
+ fetchSolanaTransaction?: SolanaRpcFetcher;
333
+ fetchBaseReceipt?: BaseReceiptFetcher;
334
+ }
335
+ export declare function verifyReceipt(receipt: XFuelReceipt, options?: VerifyReceiptOptions): Promise<ReceiptVerification>;
336
+ export { resolvePinnedIssuerJwk, verifyIssuerJws, DEFAULT_TRUSTED_ISSUER_KIDS, DEFAULT_TRUSTED_JWKS_HOSTS, KEY_UNTRUSTED, jwkThumbprint, isPinnedTrustedJwk, jwksHostAllowed, } from './jws.js';
212
337
  declare const _default: {
213
338
  verifyBinding: typeof verifyBinding;
214
339
  verifyIssuerSignature: typeof verifyIssuerSignature;
215
340
  verifyIssuerSignatureWithJwks: typeof verifyIssuerSignatureWithJwks;
341
+ verifyIssuerJws: typeof verifyIssuerJws;
342
+ resolvePinnedIssuerJwk: typeof resolvePinnedIssuerJwk;
216
343
  verifyNullifier: typeof verifyNullifier;
344
+ verifyPayerBinding: typeof verifyPayerBinding;
345
+ verifySolanaPayer: typeof verifySolanaPayer;
346
+ verifyBasePayer: typeof verifyBasePayer;
217
347
  verifyReceipt: typeof verifyReceipt;
348
+ receiptPayerClaims: typeof receiptPayerClaims;
349
+ receiptPayerClaimsFromEnvelope: typeof receiptPayerClaimsFromEnvelope;
350
+ decodeJwsPayload: typeof decodeJwsPayload;
218
351
  computePaymentCommitment: typeof computePaymentCommitment;
219
352
  computeInferenceBinding: typeof computeInferenceBinding;
220
353
  canonicalIssuerPayload: typeof canonicalIssuerPayload;
354
+ canonicalPayloadVersion: typeof canonicalPayloadVersion;
221
355
  canonicalSignedPayload: typeof canonicalIssuerPayload;
356
+ reconcileSettledTransfer: typeof reconcileSettledTransfer;
357
+ sumUsdcTransfersToPayee: typeof sumUsdcTransfersToPayee;
222
358
  hashCanonicalPayload: typeof hashCanonicalPayload;
223
359
  ZK_VERIFIER_ADDRESS: string;
224
360
  BASE_RPC_URL: string;
225
361
  BASE_SEPOLIA_RPC_URL: string;
362
+ SOLANA_RPC_URL: string;
226
363
  };
227
364
  export default _default;
228
365
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}