chit402-verify 0.3.4 → 0.4.0
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/LICENSE +201 -201
- package/README.md +270 -82
- package/dist/anchor-trust.d.ts +144 -0
- package/dist/anchor-trust.d.ts.map +1 -0
- package/dist/anchor-trust.js +441 -0
- package/dist/anchor-trust.js.map +1 -0
- package/dist/anchor-witness.d.ts +265 -0
- package/dist/anchor-witness.d.ts.map +1 -0
- package/dist/anchor-witness.js +833 -0
- package/dist/anchor-witness.js.map +1 -0
- package/dist/base-payer.d.ts +65 -0
- package/dist/base-payer.d.ts.map +1 -0
- package/dist/base-payer.js +222 -0
- package/dist/base-payer.js.map +1 -0
- package/dist/binding.d.ts +52 -0
- package/dist/binding.d.ts.map +1 -0
- package/dist/binding.js +80 -0
- package/dist/binding.js.map +1 -0
- package/dist/canonical-preimage.d.ts +9 -0
- package/dist/canonical-preimage.d.ts.map +1 -0
- package/dist/canonical-preimage.js +25 -0
- package/dist/canonical-preimage.js.map +1 -0
- package/dist/carry-forward.d.ts +79 -0
- package/dist/carry-forward.d.ts.map +1 -0
- package/dist/carry-forward.js +184 -0
- package/dist/carry-forward.js.map +1 -0
- package/dist/cli.d.ts +18 -0
- package/dist/cli.d.ts.map +1 -0
- package/dist/cli.js +2090 -0
- package/dist/cli.js.map +1 -0
- package/dist/epoch.d.ts +143 -0
- package/dist/epoch.d.ts.map +1 -0
- package/dist/epoch.js +352 -0
- package/dist/epoch.js.map +1 -0
- package/dist/head-binding.d.ts +24 -0
- package/dist/head-binding.d.ts.map +1 -0
- package/dist/head-binding.js +61 -0
- package/dist/head-binding.js.map +1 -0
- package/dist/index.d.ts +585 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +1648 -0
- package/dist/index.js.map +1 -0
- package/dist/issuer-history.d.ts +151 -0
- package/dist/issuer-history.d.ts.map +1 -0
- package/dist/issuer-history.js +595 -0
- package/dist/issuer-history.js.map +1 -0
- package/dist/issuer-pin.d.ts +126 -0
- package/dist/issuer-pin.d.ts.map +1 -0
- package/dist/issuer-pin.js +567 -0
- package/dist/issuer-pin.js.map +1 -0
- package/dist/jcs.d.ts +8 -0
- package/dist/jcs.d.ts.map +1 -0
- package/dist/jcs.js +64 -0
- package/dist/jcs.js.map +1 -0
- package/dist/jws.d.ts +46 -0
- package/dist/jws.d.ts.map +1 -0
- package/dist/jws.js +129 -0
- package/dist/jws.js.map +1 -0
- package/dist/payer.d.ts +65 -0
- package/dist/payer.d.ts.map +1 -0
- package/dist/payer.js +148 -0
- package/dist/payer.js.map +1 -0
- package/dist/preimage.d.ts +78 -0
- package/dist/preimage.d.ts.map +1 -0
- package/dist/preimage.js +363 -0
- package/dist/preimage.js.map +1 -0
- package/dist/receipt-lane.d.ts +235 -0
- package/dist/receipt-lane.d.ts.map +1 -0
- package/dist/receipt-lane.js +446 -0
- package/dist/receipt-lane.js.map +1 -0
- package/dist/receipt-version.d.ts +98 -0
- package/dist/receipt-version.d.ts.map +1 -0
- package/dist/receipt-version.js +364 -0
- package/dist/receipt-version.js.map +1 -0
- package/dist/refusal.d.ts +93 -0
- package/dist/refusal.d.ts.map +1 -0
- package/dist/refusal.js +249 -0
- package/dist/refusal.js.map +1 -0
- package/dist/request-binding.d.ts +7 -0
- package/dist/request-binding.d.ts.map +1 -0
- package/dist/request-binding.js +26 -0
- package/dist/request-binding.js.map +1 -0
- package/dist/row-hash.d.ts +22 -0
- package/dist/row-hash.d.ts.map +1 -0
- package/dist/row-hash.js +26 -0
- package/dist/row-hash.js.map +1 -0
- package/dist/shell.d.ts +65 -0
- package/dist/shell.d.ts.map +1 -0
- package/dist/shell.js +268 -0
- package/dist/shell.js.map +1 -0
- package/dist/solana-payer.d.ts +99 -0
- package/dist/solana-payer.d.ts.map +1 -0
- package/dist/solana-payer.js +258 -0
- package/dist/solana-payer.js.map +1 -0
- package/dist/v11-receipt.d.ts +23 -0
- package/dist/v11-receipt.d.ts.map +1 -0
- package/dist/v11-receipt.js +368 -0
- package/dist/v11-receipt.js.map +1 -0
- package/dist/verdict.d.ts +94 -0
- package/dist/verdict.d.ts.map +1 -0
- package/dist/verdict.js +381 -0
- package/dist/verdict.js.map +1 -0
- package/issuer-history.snapshot.json +1 -0
- package/package.json +70 -59
- package/cli.js +0 -27
- package/index.cjs +0 -8
- package/index.d.ts +0 -5
- package/index.js +0 -7
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,585 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @xfuel/verify — Offline verification for Chit402 receipts.
|
|
3
|
+
*
|
|
4
|
+
* Verify payment binding and output commitment WITHOUT calling the Chit402 API.
|
|
5
|
+
* Third parties use this to confirm:
|
|
6
|
+
* 1. The receipt's payment binding matches on-chain settlement
|
|
7
|
+
* 2. The output hash commitment is correct
|
|
8
|
+
* 3. The issuer signature is valid (ES256/JWKS)
|
|
9
|
+
* 4. (Optional) The SP1 nullifier is anchored on-chain
|
|
10
|
+
*
|
|
11
|
+
* See docs/specs/RECEIPT_V2_SEMANTICS.md for the verification algorithm.
|
|
12
|
+
*/
|
|
13
|
+
import { type InclusionStep } from './anchor-witness.js';
|
|
14
|
+
import { type CarryForwardView, type CarryHead, type CarryInclusion } from './carry-forward.js';
|
|
15
|
+
import { computePaymentCommitment, computeInferenceBinding, type PaymentCommitmentInput, type InferenceBindingInput } from './binding.js';
|
|
16
|
+
import { verifyBasePayer, parseBasePaymentRef, isEvmAddress, sumUsdcTransfersFromPayer, fetchBaseTransactionReceipt, USDC_ADDRESSES, ERC20_TRANSFER_TOPIC, BASE_RPC_URL, type BasePayerVerification, type BaseReceiptFetcher } from './base-payer.js';
|
|
17
|
+
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';
|
|
18
|
+
import { verifyPayerBinding, receiptPayerClaimsFromEnvelope, decodeJwsPayload, type PayerBindingVerification, type ReceiptPayerClaims, type PayerRail } from './payer.js';
|
|
19
|
+
import { resolvePinnedIssuerJwk, verifyIssuerJws } from './jws.js';
|
|
20
|
+
import { type ReceiptLane, type ReceiptTreeHead } from './receipt-lane.js';
|
|
21
|
+
import { type PreimageCheck } from './preimage.js';
|
|
22
|
+
import { type IssuerHistoryCheck, type IssuerHistoryDocument } from './issuer-history.js';
|
|
23
|
+
import { type TreeHeadDocument } from './anchor-trust.js';
|
|
24
|
+
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, };
|
|
25
|
+
/** ZKVerifierSP1 contract on Base mainnet. */
|
|
26
|
+
export declare const ZK_VERIFIER_ADDRESS = "0x9373499645292715a2275A78eD65B14215C41c06";
|
|
27
|
+
/** Base Sepolia testnet RPC. */
|
|
28
|
+
export declare const BASE_SEPOLIA_RPC_URL = "https://sepolia.base.org";
|
|
29
|
+
/** Chit402 receipt (v2/v3 compatible). */
|
|
30
|
+
export interface XFuelReceipt {
|
|
31
|
+
schema?: string;
|
|
32
|
+
task_id: string;
|
|
33
|
+
created_at?: number | string;
|
|
34
|
+
status: string;
|
|
35
|
+
proof_outcome?: string;
|
|
36
|
+
verify_url?: string;
|
|
37
|
+
route?: {
|
|
38
|
+
model?: string;
|
|
39
|
+
provider?: string;
|
|
40
|
+
model_commitment?: {
|
|
41
|
+
commitment?: string;
|
|
42
|
+
} | null;
|
|
43
|
+
};
|
|
44
|
+
payment?: {
|
|
45
|
+
rail?: string;
|
|
46
|
+
ref?: string | null;
|
|
47
|
+
gross_amount?: string | null;
|
|
48
|
+
settled_amount?: string | null;
|
|
49
|
+
net_amount?: string | null;
|
|
50
|
+
fee_amount?: string | null;
|
|
51
|
+
fee_bps?: number | null;
|
|
52
|
+
protocol_fee_bps?: number | null;
|
|
53
|
+
platform_fee?: string | null;
|
|
54
|
+
platform_fee_bps?: number | null;
|
|
55
|
+
asset?: string | null;
|
|
56
|
+
payee?: string | null;
|
|
57
|
+
accounting?: {
|
|
58
|
+
kind?: string;
|
|
59
|
+
scope?: string;
|
|
60
|
+
note?: string;
|
|
61
|
+
internal_breakdown?: {
|
|
62
|
+
route_margin_bps?: number | null;
|
|
63
|
+
route_margin_amount?: string | null;
|
|
64
|
+
receipt_floor_amount?: string | null;
|
|
65
|
+
provider_cogs_amount?: string | null;
|
|
66
|
+
tier2_proof_amount?: string | null;
|
|
67
|
+
};
|
|
68
|
+
} | null;
|
|
69
|
+
};
|
|
70
|
+
payment_meta?: {
|
|
71
|
+
network?: string;
|
|
72
|
+
} | null;
|
|
73
|
+
provider_cogs?: {
|
|
74
|
+
actual?: string;
|
|
75
|
+
};
|
|
76
|
+
output?: {
|
|
77
|
+
hash?: string;
|
|
78
|
+
kind?: string;
|
|
79
|
+
} | null;
|
|
80
|
+
proof?: {
|
|
81
|
+
tier?: string;
|
|
82
|
+
has_proof?: boolean;
|
|
83
|
+
nullifier?: string | null;
|
|
84
|
+
};
|
|
85
|
+
binding?: {
|
|
86
|
+
expected_commitment?: string;
|
|
87
|
+
recomputed_commitment?: string;
|
|
88
|
+
matches?: boolean;
|
|
89
|
+
covers?: string[];
|
|
90
|
+
model_commitment?: string | null;
|
|
91
|
+
output_hash?: string | null;
|
|
92
|
+
amount?: string;
|
|
93
|
+
rail?: string;
|
|
94
|
+
} | null;
|
|
95
|
+
signature?: {
|
|
96
|
+
alg?: string;
|
|
97
|
+
value?: string;
|
|
98
|
+
payload_version?: number;
|
|
99
|
+
};
|
|
100
|
+
hmac_attestation?: {
|
|
101
|
+
payload_version?: number;
|
|
102
|
+
};
|
|
103
|
+
issuer_signature?: {
|
|
104
|
+
alg?: string;
|
|
105
|
+
value?: string;
|
|
106
|
+
kid?: string;
|
|
107
|
+
jws?: string;
|
|
108
|
+
payload_version?: number;
|
|
109
|
+
payload_hash?: string;
|
|
110
|
+
canonical_preimage?: string;
|
|
111
|
+
issuer_jwk?: Es256Jwk;
|
|
112
|
+
};
|
|
113
|
+
verification?: {
|
|
114
|
+
source_of_truth?: string;
|
|
115
|
+
jwks_uri?: string;
|
|
116
|
+
issuer_jwk_pin?: string;
|
|
117
|
+
offline_key_source?: string;
|
|
118
|
+
};
|
|
119
|
+
caller_binding?: {
|
|
120
|
+
payer_wallet?: string | null;
|
|
121
|
+
agent_pubkey?: string | null;
|
|
122
|
+
api_key_hash?: string | null;
|
|
123
|
+
agent_id?: string | number | null;
|
|
124
|
+
} | null;
|
|
125
|
+
/** Book agent_id. Present on claim_id-era JWS payloads. Absent on older v8 receipts. */
|
|
126
|
+
claim_id?: string | null;
|
|
127
|
+
/**
|
|
128
|
+
* v9. Transparency-log head hash inside the issuer JWS. The outer copy is
|
|
129
|
+
* display only. Absent on v8 and earlier.
|
|
130
|
+
*/
|
|
131
|
+
tree_head_hash?: string | null;
|
|
132
|
+
/** v9. Clock tolerance bound inside the issuer JWS. Absent on v8 and earlier. */
|
|
133
|
+
tolerance?: {
|
|
134
|
+
base?: number;
|
|
135
|
+
solana?: number;
|
|
136
|
+
} | null;
|
|
137
|
+
/** Append position. Unsigned relative to the payment JWS; signed inside book_chain. */
|
|
138
|
+
book_seq?: number | null;
|
|
139
|
+
/** Log leaf hash. Same field verifyAnchoredRoot reads before book_chain.row_hash. */
|
|
140
|
+
row_hash?: string | null;
|
|
141
|
+
book_chain?: {
|
|
142
|
+
seq?: number | null;
|
|
143
|
+
row_hash?: string | null;
|
|
144
|
+
} | null;
|
|
145
|
+
/** Unsigned derived refusal section. Ignored by signature verification. */
|
|
146
|
+
receipt_lane?: {
|
|
147
|
+
anchor_at_binding?: {
|
|
148
|
+
root: string | null;
|
|
149
|
+
tree_size: number | null;
|
|
150
|
+
anchor_tx: string | null;
|
|
151
|
+
solana_signature: string | null;
|
|
152
|
+
} | null;
|
|
153
|
+
anchor_current?: {
|
|
154
|
+
root: string | null;
|
|
155
|
+
tree_size: number | null;
|
|
156
|
+
anchor_tx: string | null;
|
|
157
|
+
solana_signature: string | null;
|
|
158
|
+
} | null;
|
|
159
|
+
freeze?: boolean;
|
|
160
|
+
anchor_changed_since_binding?: boolean | null;
|
|
161
|
+
} | null;
|
|
162
|
+
tree_head?: ReceiptTreeHead | null;
|
|
163
|
+
head?: ReceiptTreeHead | null;
|
|
164
|
+
}
|
|
165
|
+
/** JWK public key for ES256 verification. */
|
|
166
|
+
export interface Es256Jwk {
|
|
167
|
+
kty: 'EC';
|
|
168
|
+
crv: 'P-256';
|
|
169
|
+
x: string;
|
|
170
|
+
y: string;
|
|
171
|
+
kid?: string;
|
|
172
|
+
alg?: string;
|
|
173
|
+
use?: string;
|
|
174
|
+
}
|
|
175
|
+
/** JWKS (JSON Web Key Set) structure. */
|
|
176
|
+
export interface Jwks {
|
|
177
|
+
keys: Es256Jwk[];
|
|
178
|
+
}
|
|
179
|
+
/** Result of ECDSA signature verification. */
|
|
180
|
+
export interface IssuerSignatureVerification {
|
|
181
|
+
/** Whether an issuer signature was present to check. */
|
|
182
|
+
checked: boolean;
|
|
183
|
+
/** True only when the signature verifies under a trusted key. */
|
|
184
|
+
valid: boolean;
|
|
185
|
+
/** Key ID from the signature. */
|
|
186
|
+
kid?: string;
|
|
187
|
+
/** Reason for failure when valid=false. `key untrusted` means the verifying key is not in the trust set. */
|
|
188
|
+
reason?: string;
|
|
189
|
+
/** True when the key used (or the only candidate key) is in the trust set. */
|
|
190
|
+
key_trusted?: boolean;
|
|
191
|
+
/** How the verifying key was trusted, when valid. */
|
|
192
|
+
trust?: 'jwks' | 'pinned_kid';
|
|
193
|
+
/** Verified JWS claims. Present only when valid is true. */
|
|
194
|
+
payload?: Record<string, unknown>;
|
|
195
|
+
}
|
|
196
|
+
/** Outer unsigned field disagrees with the JWS payload. */
|
|
197
|
+
export interface ClaimMismatch {
|
|
198
|
+
field: string;
|
|
199
|
+
outer: string | null;
|
|
200
|
+
signed: string | null;
|
|
201
|
+
}
|
|
202
|
+
export interface BindingVerification {
|
|
203
|
+
verified: boolean;
|
|
204
|
+
expected: string | null;
|
|
205
|
+
recomputed: string | null;
|
|
206
|
+
matches: boolean;
|
|
207
|
+
covers: string[];
|
|
208
|
+
reason?: string;
|
|
209
|
+
}
|
|
210
|
+
export interface NullifierVerification {
|
|
211
|
+
verified: boolean;
|
|
212
|
+
nullifier: string | null;
|
|
213
|
+
anchored: boolean | null;
|
|
214
|
+
reason?: string;
|
|
215
|
+
}
|
|
216
|
+
export interface PayerVerification {
|
|
217
|
+
checked: boolean;
|
|
218
|
+
valid: boolean;
|
|
219
|
+
rail?: PayerRail;
|
|
220
|
+
reason?: string;
|
|
221
|
+
payer_wallet?: string | null;
|
|
222
|
+
payee?: string | null;
|
|
223
|
+
asset?: string | null;
|
|
224
|
+
amount?: string | null;
|
|
225
|
+
}
|
|
226
|
+
export interface ReceiptVerification {
|
|
227
|
+
receipt_id: string;
|
|
228
|
+
binding: BindingVerification;
|
|
229
|
+
issuer_signature: IssuerSignatureVerification;
|
|
230
|
+
payer: PayerVerification;
|
|
231
|
+
nullifier: NullifierVerification;
|
|
232
|
+
output_hash: string | null;
|
|
233
|
+
hub: string | null;
|
|
234
|
+
model: string | null;
|
|
235
|
+
/** Gross amount from verified signed claims, in atomic USDC. Null when the signature is not trusted. */
|
|
236
|
+
amount_usdc: string | null;
|
|
237
|
+
/** Settlement ref from verified signed claims. Null when the signature is not trusted. */
|
|
238
|
+
tx: string | null;
|
|
239
|
+
/** Signed claim paths whose outer copy disagrees. */
|
|
240
|
+
claim_mismatches: ClaimMismatch[];
|
|
241
|
+
/**
|
|
242
|
+
* Outer paths the payment JWS does not cover. Overall does not verify them.
|
|
243
|
+
* `issuer_signature` is omitted: those bytes are the signature that was checked.
|
|
244
|
+
*/
|
|
245
|
+
unsigned_fields: string[];
|
|
246
|
+
/** Overall covers signed claims and the checks named in `errors`. */
|
|
247
|
+
verified_scope: 'signed_claims';
|
|
248
|
+
/**
|
|
249
|
+
* `not_present_legacy` — v8 (or older) payload with no claim_id key. Still verifies.
|
|
250
|
+
* `ok` — claim_id-era payload, and a payment.ref is paired with a seat.
|
|
251
|
+
* `refused` — claim_id-era payload, payment.ref set, claim_id null.
|
|
252
|
+
*/
|
|
253
|
+
claim_id: 'not_present_legacy' | 'ok' | 'refused';
|
|
254
|
+
/**
|
|
255
|
+
* v9 head binding from verified claims only. Null when the signature is not
|
|
256
|
+
* trusted, when the payload is v8 or earlier, or when the pair is missing.
|
|
257
|
+
* Never copied from the unsigned outer fields.
|
|
258
|
+
*/
|
|
259
|
+
head_binding: {
|
|
260
|
+
tree_head_hash: string | null;
|
|
261
|
+
tolerance: unknown;
|
|
262
|
+
} | null;
|
|
263
|
+
/**
|
|
264
|
+
* Unsigned refusal decision beside book_seq. Not part of the payment JWS.
|
|
265
|
+
* freeze is true only for an unsettled receipt-lane row whose anchor changed
|
|
266
|
+
* after binding. It does not change `overall`.
|
|
267
|
+
*/
|
|
268
|
+
receipt_lane: ReceiptLane;
|
|
269
|
+
/** Recompute of published preimages. Absent block is skipped unless requirePreimages. */
|
|
270
|
+
preimages: PreimageCheck;
|
|
271
|
+
/** Kid window against the signed issuer history. Unreachable is a warning unless strict. */
|
|
272
|
+
issuer_history: IssuerHistoryCheck;
|
|
273
|
+
warnings: string[];
|
|
274
|
+
/**
|
|
275
|
+
* Set only when the leaf is included under an earlier signed epoch head
|
|
276
|
+
* and under the current signed epoch head. Dates are those head claims.
|
|
277
|
+
* Absent for a receipt in the current epoch.
|
|
278
|
+
*/
|
|
279
|
+
carry_forward?: CarryForwardView | null;
|
|
280
|
+
overall: 'verified' | 'partial' | 'failed' | 'verified_carried_forward';
|
|
281
|
+
errors: string[];
|
|
282
|
+
/** Signed version, or the outer 4/5 used when the JWS itself has no version. */
|
|
283
|
+
receipt_version?: number | null;
|
|
284
|
+
/** `inferred` is the Sep 4–5 unversioned rule. Otherwise the JWS payload. */
|
|
285
|
+
version_source?: 'signed' | 'inferred' | null;
|
|
286
|
+
}
|
|
287
|
+
/**
|
|
288
|
+
* HMAC payload version.
|
|
289
|
+
* Versions <= 7 keep the historical net/fee field list.
|
|
290
|
+
* Version 8 signs settled_amount plus the internal accounting breakdown.
|
|
291
|
+
* Lockstep with `canonicalPayloadVersion` in services/gateway/src/receipt.js
|
|
292
|
+
* for the v8 list (the v7 list here is the historical 15-field public formula).
|
|
293
|
+
*/
|
|
294
|
+
export declare function canonicalPayloadVersion(receipt: XFuelReceipt): number;
|
|
295
|
+
/**
|
|
296
|
+
* Canonical, order-stable payload an HMAC issuer signature covers.
|
|
297
|
+
* v8 matches `canonicalSignedPayload` in services/gateway/src/receipt.js.
|
|
298
|
+
* v7 and earlier stay on the historical 15-field list so old signatures verify.
|
|
299
|
+
*/
|
|
300
|
+
export declare function canonicalIssuerPayload(receipt: XFuelReceipt): string;
|
|
301
|
+
export interface TransferLog {
|
|
302
|
+
address?: string;
|
|
303
|
+
topics?: string[];
|
|
304
|
+
data?: string;
|
|
305
|
+
}
|
|
306
|
+
export interface SettledAmountReconciliation {
|
|
307
|
+
checked: boolean;
|
|
308
|
+
/** True when the signed settled/net amount equals the USDC Transfer to payee. */
|
|
309
|
+
matches: boolean;
|
|
310
|
+
payload_version: number;
|
|
311
|
+
signed_field: 'settled_amount' | 'gross_amount' | 'net_amount' | null;
|
|
312
|
+
signed_amount: string | null;
|
|
313
|
+
transfer_amount: string | null;
|
|
314
|
+
payee: string | null;
|
|
315
|
+
reason?: string;
|
|
316
|
+
}
|
|
317
|
+
/**
|
|
318
|
+
* Sum USDC Transfer values to `payee` in a transaction's logs.
|
|
319
|
+
* Non-Transfer logs are ignored. When `usdcAddress` is set, other contracts are ignored.
|
|
320
|
+
*/
|
|
321
|
+
export declare function sumUsdcTransfersToPayee(logs: TransferLog[] | null | undefined, payee: string, usdcAddress?: string): bigint | null;
|
|
322
|
+
export interface ReconcileSettledTransferOptions {
|
|
323
|
+
usdcAddress?: string;
|
|
324
|
+
/** JWKS treated as a trust root. Keys are matched by `kid`. */
|
|
325
|
+
jwks?: Jwks;
|
|
326
|
+
/**
|
|
327
|
+
* RFC 7638 thumbprints allowed as an offline pin.
|
|
328
|
+
* Omit to use the default production pin. Pass `[]` to disable the pin.
|
|
329
|
+
*/
|
|
330
|
+
trustedKids?: readonly string[];
|
|
331
|
+
}
|
|
332
|
+
/**
|
|
333
|
+
* Optional on-chain reconciliation. Given a tx receipt's logs, the signed
|
|
334
|
+
* amount the payee was supposed to receive must equal the USDC Transfer to payee.
|
|
335
|
+
*
|
|
336
|
+
* The amount and payee come from JWS claims only after a key-trust check
|
|
337
|
+
* (JWKS by kid, or an embedded key whose thumbprint is a pinned kid). An
|
|
338
|
+
* untrusted signature does not contribute those facts.
|
|
339
|
+
*
|
|
340
|
+
* v8 compares `settled_amount` (falling back to `gross_amount`): that is the
|
|
341
|
+
* on-chain transfer. v7 and earlier compare `net_amount`, which those receipts
|
|
342
|
+
* defined as "amount after fees". A single direct transfer of gross will not
|
|
343
|
+
* match a net that subtracts a fee that never moved on chain.
|
|
344
|
+
*/
|
|
345
|
+
export declare function reconcileSettledTransfer(receipt: XFuelReceipt, logs: TransferLog[] | null | undefined, options?: ReconcileSettledTransferOptions): SettledAmountReconciliation;
|
|
346
|
+
/**
|
|
347
|
+
* Verify a receipt's ES256 issuer signature against a JWK (public key).
|
|
348
|
+
* This is the public-key verification path — no shared secret required.
|
|
349
|
+
*
|
|
350
|
+
* Verification steps:
|
|
351
|
+
* 1. GET /receipt/:taskId?format=json → receipt.issuer_signature
|
|
352
|
+
* 2. GET /.well-known/jwks.json → find key matching issuer_signature.kid
|
|
353
|
+
* 3. ES256 verify canonicalIssuerPayload(receipt) against the signature
|
|
354
|
+
*
|
|
355
|
+
* @param receipt - Receipt JSON with issuer_signature
|
|
356
|
+
* @param jwk - JWK public key { kty: 'EC', crv: 'P-256', x, y }
|
|
357
|
+
*/
|
|
358
|
+
export declare function verifyIssuerSignature(receipt: XFuelReceipt, jwk: Es256Jwk): IssuerSignatureVerification;
|
|
359
|
+
/**
|
|
360
|
+
* Verify an issuer signature against trusted keys only.
|
|
361
|
+
*
|
|
362
|
+
* Trust, in order:
|
|
363
|
+
* 1. A JWKS entry matched by `kid` (supplied file or fetched issuer JWKS).
|
|
364
|
+
* 2. An embedded `issuer_jwk` whose RFC 7638 thumbprint equals a pinned trusted kid.
|
|
365
|
+
*
|
|
366
|
+
* An embedded key that merely verifies the bytes is `key untrusted`.
|
|
367
|
+
*/
|
|
368
|
+
export declare function verifyIssuerSignatureWithJwks(receipt: XFuelReceipt, jwks?: Jwks, options?: {
|
|
369
|
+
trustedKids?: readonly string[];
|
|
370
|
+
}): IssuerSignatureVerification;
|
|
371
|
+
export declare function verifyBinding(receipt: XFuelReceipt): BindingVerification;
|
|
372
|
+
/**
|
|
373
|
+
* Verify a receipt's nullifier is anchored on-chain.
|
|
374
|
+
*
|
|
375
|
+
* Requires network access to the Base RPC.
|
|
376
|
+
*/
|
|
377
|
+
export declare function verifyNullifier(receipt: XFuelReceipt, options?: {
|
|
378
|
+
rpcUrl?: string;
|
|
379
|
+
verifierAddress?: string;
|
|
380
|
+
}): Promise<NullifierVerification>;
|
|
381
|
+
/**
|
|
382
|
+
* Canonical signed payload for HMAC verification.
|
|
383
|
+
* Alias of canonicalIssuerPayload — both must produce identical bytes.
|
|
384
|
+
*/
|
|
385
|
+
export declare const canonicalSignedPayload: typeof canonicalIssuerPayload;
|
|
386
|
+
/**
|
|
387
|
+
* Hash the canonical payload (for ERC-8004 response_hash).
|
|
388
|
+
*/
|
|
389
|
+
export declare function hashCanonicalPayload(receipt: XFuelReceipt): string;
|
|
390
|
+
/**
|
|
391
|
+
* claim_id-era receipts include the key even when the value is null.
|
|
392
|
+
* Older payloads omit the key and stay valid.
|
|
393
|
+
*/
|
|
394
|
+
export declare function claimIdVerdict(claims: Record<string, unknown> | null | undefined): 'not_present_legacy' | 'ok' | 'refused';
|
|
395
|
+
/**
|
|
396
|
+
* Walk every signed claim. When the outer receipt has the same path, the
|
|
397
|
+
* values must match, including null against a filled-in outer copy. A path
|
|
398
|
+
* the outer receipt omits is not a copy, so it is not a mismatch.
|
|
399
|
+
*/
|
|
400
|
+
export declare function diffOuterClaims(receipt: XFuelReceipt, claims: Record<string, unknown> | null): ClaimMismatch[];
|
|
401
|
+
/** Outer paths the signed claims do not cover. Sorted. Not a failure by themselves. */
|
|
402
|
+
export declare function unsignedOuterFields(receipt: unknown, claims: Record<string, unknown> | null): string[];
|
|
403
|
+
/**
|
|
404
|
+
* Key sources shared by receipt verification and the epoch-record check:
|
|
405
|
+
* a caller-supplied JWKS, `--jwks-url` (any https URL), and `--fetch-jwks`
|
|
406
|
+
* from an allowlisted host. A failed fetch is an error. It does not add a key.
|
|
407
|
+
*/
|
|
408
|
+
export declare function loadIssuerJwks(source: {
|
|
409
|
+
verification?: {
|
|
410
|
+
jwks_uri?: string | null;
|
|
411
|
+
};
|
|
412
|
+
issuer_signature?: {
|
|
413
|
+
jws?: string;
|
|
414
|
+
};
|
|
415
|
+
} | null | undefined, options?: {
|
|
416
|
+
jwks?: Jwks;
|
|
417
|
+
jwksUri?: string;
|
|
418
|
+
fetchJwks?: boolean;
|
|
419
|
+
trustedJwksHosts?: readonly string[];
|
|
420
|
+
fetchImpl?: typeof fetch;
|
|
421
|
+
}): Promise<{
|
|
422
|
+
jwks?: Jwks;
|
|
423
|
+
errors: string[];
|
|
424
|
+
}>;
|
|
425
|
+
/** Fetch a JWKS document. Caller decides whether the URL is a trust root. */
|
|
426
|
+
export declare function fetchIssuerJwks(uri: string, fetchImpl?: typeof fetch): Promise<Jwks>;
|
|
427
|
+
/**
|
|
428
|
+
* Full receipt verification — trusted issuer signature, signed-claim facts,
|
|
429
|
+
* optional on-chain payer and nullifier checks.
|
|
430
|
+
*
|
|
431
|
+
* Facts (amount, payer, payee, asset, tx, model) are taken only from a JWS
|
|
432
|
+
* that verified under a trusted key. The embedded `issuer_jwk` is not trusted
|
|
433
|
+
* unless its RFC 7638 thumbprint is a pinned kid, or the same key is in a JWKS.
|
|
434
|
+
*/
|
|
435
|
+
/** Extract JWS claims for payer binding. Prefers the JWS payload over the outer copy. */
|
|
436
|
+
export declare function receiptPayerClaims(receipt: XFuelReceipt): ReceiptPayerClaims;
|
|
437
|
+
export interface VerifyReceiptOptions {
|
|
438
|
+
/** Caller-supplied JWKS. Every key in it is a trust root, matched by kid. */
|
|
439
|
+
jwks?: Jwks;
|
|
440
|
+
/**
|
|
441
|
+
* Pinned trusted kids (RFC 7638 thumbprints). Defaults to the production
|
|
442
|
+
* api.chit402.com issuer kid. Pass `[]` to disable the offline pin.
|
|
443
|
+
*/
|
|
444
|
+
trustedKids?: readonly string[];
|
|
445
|
+
/** Fetch JWKS from the receipt `jwks_uri` when its host is allowlisted. */
|
|
446
|
+
fetchJwks?: boolean;
|
|
447
|
+
/** Explicit JWKS URL. Any https URL is fetched; this is user-supplied trust. */
|
|
448
|
+
jwksUri?: string;
|
|
449
|
+
/** Hosts allowed for `fetchJwks`. Defaults to api.chit402.com. */
|
|
450
|
+
trustedJwksHosts?: readonly string[];
|
|
451
|
+
fetchImpl?: typeof fetch;
|
|
452
|
+
checkNullifier?: boolean;
|
|
453
|
+
checkPayer?: boolean;
|
|
454
|
+
rpcUrl?: string;
|
|
455
|
+
solanaRpcUrl?: string;
|
|
456
|
+
verifierAddress?: string;
|
|
457
|
+
fetchSolanaTransaction?: SolanaRpcFetcher;
|
|
458
|
+
fetchBaseReceipt?: BaseReceiptFetcher;
|
|
459
|
+
/**
|
|
460
|
+
* Tree head to check against the signed `tree_head_hash`. An equal root is
|
|
461
|
+
* the issuance prefix and proves inclusion of this receipt. A different root
|
|
462
|
+
* verifies only when `inclusion` proves the leaf is in that head.
|
|
463
|
+
* A tree-head witness (anything beyond `{ root, tree_size }`) is checked
|
|
464
|
+
* offline. A missing `issuer_signature` fails closed. The signature must
|
|
465
|
+
* cover the outer size, root, and the other signed fields. The issuer-history
|
|
466
|
+
* document fetched for this call is the one that trusts the head's kid.
|
|
467
|
+
* No chain RPC.
|
|
468
|
+
*/
|
|
469
|
+
head?: (ReceiptTreeHead & TreeHeadDocument) | null;
|
|
470
|
+
/**
|
|
471
|
+
* Inclusion witness for `head` when its root is not the signed prefix.
|
|
472
|
+
* `leaf` is the 32-byte leaf hash hex. Without it the leaf is
|
|
473
|
+
* SHA-256(0x00 || `${task_id}|${row_hash}`).
|
|
474
|
+
*/
|
|
475
|
+
inclusion?: {
|
|
476
|
+
leaf?: string | null;
|
|
477
|
+
leaf_index?: number | null;
|
|
478
|
+
tree_size?: number | null;
|
|
479
|
+
row_hash?: string | null;
|
|
480
|
+
proof?: InclusionStep[] | null;
|
|
481
|
+
/**
|
|
482
|
+
* Named head summary from an inclusion response. Used only when `head`
|
|
483
|
+
* is omitted and the summary JWS verifies under JWKS or a pinned kid.
|
|
484
|
+
*/
|
|
485
|
+
head?: unknown;
|
|
486
|
+
} | null;
|
|
487
|
+
/**
|
|
488
|
+
* Fail when a recomputable hash has no preimage. A present `preimages`
|
|
489
|
+
* block is always checked, even when this is false.
|
|
490
|
+
*/
|
|
491
|
+
requirePreimages?: boolean;
|
|
492
|
+
/** Signed issuer history document. Skips the network when set. */
|
|
493
|
+
issuerHistory?: IssuerHistoryDocument | null;
|
|
494
|
+
/** Fetch /.well-known/issuer-history.json. Unreachable warns unless strict. */
|
|
495
|
+
fetchIssuerHistory?: boolean;
|
|
496
|
+
/** Fail closed when the history cannot be loaded. */
|
|
497
|
+
strictIssuerHistory?: boolean;
|
|
498
|
+
/** Explicit history URL. Any https URL. */
|
|
499
|
+
issuerHistoryUrl?: string | null;
|
|
500
|
+
/** Exact issuer-history response bytes. SHA-256 must match a signed pin. */
|
|
501
|
+
issuerHistoryBytes?: string | null;
|
|
502
|
+
/**
|
|
503
|
+
* Library seam. The CLI does not set this: 0.4.0 always checks history.
|
|
504
|
+
* A skipped window is not a verified result. Callers that pass a document
|
|
505
|
+
* still run the window.
|
|
506
|
+
*/
|
|
507
|
+
skipIssuerHistory?: boolean;
|
|
508
|
+
/** Ignored. `VERIFIED_NO_KEY_WINDOW` is retired. */
|
|
509
|
+
labelSkippedKeyWindow?: boolean;
|
|
510
|
+
/**
|
|
511
|
+
* Earlier-epoch head and current-epoch head for a leaf that was carried
|
|
512
|
+
* into the current log. Omitted for a receipt that is only in the current
|
|
513
|
+
* epoch. Dates are read from the signed heads, not from this object.
|
|
514
|
+
*/
|
|
515
|
+
carry?: {
|
|
516
|
+
oldHead: CarryHead;
|
|
517
|
+
oldInclusion: CarryInclusion;
|
|
518
|
+
currentHead: CarryHead;
|
|
519
|
+
currentInclusions: CarryInclusion[];
|
|
520
|
+
row_hash?: string | null;
|
|
521
|
+
} | null;
|
|
522
|
+
/**
|
|
523
|
+
* Stored canonical object (the GET /preimage body). SHA-256 must match
|
|
524
|
+
* the signed payload_hash. Absent bytes are not rebuilt.
|
|
525
|
+
*/
|
|
526
|
+
canonicalPreimage?: string | null;
|
|
527
|
+
/** Holder salt. 64 lowercase hex. Malformed values are rejected, not normalized. */
|
|
528
|
+
salt?: string | null;
|
|
529
|
+
/**
|
|
530
|
+
* Holder openings. `output` is raw bytes. The others are UTF-8 JSON of the
|
|
531
|
+
* committed object.
|
|
532
|
+
*/
|
|
533
|
+
open?: {
|
|
534
|
+
output?: Buffer | null;
|
|
535
|
+
accounting?: string | null;
|
|
536
|
+
routing?: string | null;
|
|
537
|
+
refusal?: string | null;
|
|
538
|
+
} | null;
|
|
539
|
+
}
|
|
540
|
+
/** v1–v10 verifier. A v11 payload is `unsupported_version` and is not checked as v10. */
|
|
541
|
+
export declare function verifyReceiptUpToV10(receipt: XFuelReceipt, options?: VerifyReceiptOptions): Promise<ReceiptVerification>;
|
|
542
|
+
export declare function verifyReceipt(receipt: XFuelReceipt, options?: VerifyReceiptOptions): Promise<ReceiptVerification>;
|
|
543
|
+
export { resolvePinnedIssuerJwk, verifyIssuerJws, DEFAULT_TRUSTED_ISSUER_KIDS, DEFAULT_TRUSTED_JWKS_HOSTS, KEY_UNTRUSTED, jwkThumbprint, isPinnedTrustedJwk, jwksHostAllowed, } from './jws.js';
|
|
544
|
+
export { buildReceiptLane, receiptLaneFromVerification, receiptLaneDecision, deriveSettledBy, deriveSettled, anchorChangedSinceBinding, RECEIPT_LANE_SCHEMA, RECEIPT_LANE_RULE, RECEIPT_LANE_ORDERING, RECEIPT_LANE_BOUNDARY, type ReceiptLane, type SettledBy, type RegistryClassification, type LocalCheckHint, type AnchorIdentity, type ReceiptTreeHead, } from './receipt-lane.js';
|
|
545
|
+
export { headBindingVerdict, signedHeadBinding, outerHeadDisagrees, HEAD_BINDING_PAYLOAD_VERSION, type HeadBindingVerdict, type SignedHeadBinding, } from './head-binding.js';
|
|
546
|
+
export { isRefusalDocument, verifyRefusal, REFUSAL_SCHEMA, REFUSAL_SCHEMA_V2, REFUSAL_PAYLOAD_VERSION, REFUSAL_PROVES, REFUSAL_DOES_NOT_PROVE, type RefusalDocument, type RefusalVerification, type RefusalJwks, } from './refusal.js';
|
|
547
|
+
export { verifyRequestDigest, requestDigestOfPreimage, type RequestBindingStatus, } from './request-binding.js';
|
|
548
|
+
export { acceptTreeHeadSchema, verifyEpochLink, verifyEpochRecord, verifyEpochInclusion, verifyUnloggedSection, verifyUnloggedCommitment, unloggedIdCommitment, unloggedReasonForTask, canonicalUnloggedRows, TREE_HEAD_SCHEMA_V1, TREE_HEAD_SCHEMA_V2, EPOCH1_FINAL_ROOT, EPOCH1_FINAL_SIZE, EPOCH1_GENESIS_DIGEST, EPOCH1_SIZE1_ROOT, EPOCH1_SIZE2_ROOT, epoch1PrefixRoot, matchEpoch1Prefix, EPOCH2_OPENING_ROOT, type EpochTreeHead, type EpochRecord, type EpochRecordEntry, type EpochRecordOptions, type UnloggedRow, type UnloggedSection, type UnloggedCommitment, } from './epoch.js';
|
|
549
|
+
export { verifyCarryForward, PINNED_ANCHOR_EPOCHS, CARRY_FORWARD_STATUS, type CarryForwardInput, type CarryForwardVerdict, type CarryForwardView, type CarryHead, type CarryInclusion, } from './carry-forward.js';
|
|
550
|
+
export { verifyAnchoredRoot, verifyMerkleInclusion, extractMemos, parseAnchorMemo, leafHash, ANCHOR_PROVES, ANCHOR_DOES_NOT_PROVE, SOLANA_GENESIS, BASE_MAINNET_CHAIN_ID, type AnchorWitnessResult, type AnchorReceipt, type AnchorInclusion, type AnchorHead, type VerifyAnchoredRootInput, } from './anchor-witness.js';
|
|
551
|
+
export { assessIssuerPin, issuerPinContentUrl, issuerPinFileHash, loadIssuerPinBytes, readIssuerPinClaim, registrationPreimage, rotationStatement, serializeIssuerPin, verifyCitizenRotation, verifyRegistrationSignature, canonicalPublicKey, ISSUER_REGISTRATION_CONTEXT, ISSUER_ROTATION_CONTEXT, ISSUER_PIN_VERSION, ISSUER_PIN_SCHEMA, ISSUER_PIN_PATH, ISSUER_PIN_CHAIN_ID, PUBLISHED_ISSUER_PIN_KID, CITIZEN_FREEZE_SCHEMA, CITIZEN_FREEZE_PURPOSE, ISSUER_PIN_MISMATCH, ISSUER_PIN_HASH_MISMATCH, ISSUER_SELF_SIG_INVALID, ISSUER_PIN_DOWNGRADE, ISSUER_PIN_MUTABLE_REF, ISSUER_ROTATION_UNCONTROLLED, ISSUER_PIN_CHAIN_REFUSED, type IssuerPinRef, type IssuerPinAssessment, type IssuerKeyPin, type AssessIssuerPinInput, } from './issuer-pin.js';
|
|
552
|
+
export { PINNED_BASE_ANCHOR_WALLET, PINNED_SOLANA_ANCHOR_FEE_PAYER, ANCHOR_WALLET_SOURCES_NOT_CONSULTED, LEGACY_HEAD_UNPINNED_SIGNER, HEAD_TRUST_MESSAGES, headOmitsPinnedSigner, headTrustedFromInclusion, verifyTreeHeadTrust, verifyAnchorWalletDocument, compileAnchorWallets, } from './anchor-trust.js';
|
|
553
|
+
export { verifyCanonicalPreimageBytes, CANONICAL_PAYLOAD_VERSION, } from './canonical-preimage.js';
|
|
554
|
+
export { SUPPORTED_RECEIPT_VERSIONS, LEGACY_PAYLOAD_VERSIONS, REFUSAL_EXACT_VERSIONS, VERIFIER_MIN, UNSUPPORTED_VERSION, VERSION_MISMATCH, classifyReceiptDocument, classifySignedClaims, legacyIdentityErrors, classifyShellDocument, signedClaimsOnAllowlist, formatSupportedReceiptVersions, readSignedClaims, refusalPayloadVersion, isJsonInteger, } from './receipt-version.js';
|
|
555
|
+
export { readIssuerHistoryPin, issuerHistoryDocumentHash, type IssuerHistoryPin, } from './issuer-history.js';
|
|
556
|
+
export { isReceiptShell, shellFromHolder, compareShellToJws, holderDocumentFromOwnerView, shellHolderVerdict, openV11Commitment, decodeJwsPayload as decodeShellJwsPayload, SHELL_SCHEMA, INCLUDED_SHELL_LINE, } from './shell.js';
|
|
557
|
+
declare const _default: {
|
|
558
|
+
verifyBinding: typeof verifyBinding;
|
|
559
|
+
verifyIssuerSignature: typeof verifyIssuerSignature;
|
|
560
|
+
verifyIssuerSignatureWithJwks: typeof verifyIssuerSignatureWithJwks;
|
|
561
|
+
verifyIssuerJws: typeof verifyIssuerJws;
|
|
562
|
+
resolvePinnedIssuerJwk: typeof resolvePinnedIssuerJwk;
|
|
563
|
+
verifyNullifier: typeof verifyNullifier;
|
|
564
|
+
verifyPayerBinding: typeof verifyPayerBinding;
|
|
565
|
+
verifySolanaPayer: typeof verifySolanaPayer;
|
|
566
|
+
verifyBasePayer: typeof verifyBasePayer;
|
|
567
|
+
verifyReceipt: typeof verifyReceipt;
|
|
568
|
+
receiptPayerClaims: typeof receiptPayerClaims;
|
|
569
|
+
receiptPayerClaimsFromEnvelope: typeof receiptPayerClaimsFromEnvelope;
|
|
570
|
+
decodeJwsPayload: typeof decodeJwsPayload;
|
|
571
|
+
computePaymentCommitment: typeof computePaymentCommitment;
|
|
572
|
+
computeInferenceBinding: typeof computeInferenceBinding;
|
|
573
|
+
canonicalIssuerPayload: typeof canonicalIssuerPayload;
|
|
574
|
+
canonicalPayloadVersion: typeof canonicalPayloadVersion;
|
|
575
|
+
canonicalSignedPayload: typeof canonicalIssuerPayload;
|
|
576
|
+
reconcileSettledTransfer: typeof reconcileSettledTransfer;
|
|
577
|
+
sumUsdcTransfersToPayee: typeof sumUsdcTransfersToPayee;
|
|
578
|
+
hashCanonicalPayload: typeof hashCanonicalPayload;
|
|
579
|
+
ZK_VERIFIER_ADDRESS: string;
|
|
580
|
+
BASE_RPC_URL: string;
|
|
581
|
+
BASE_SEPOLIA_RPC_URL: string;
|
|
582
|
+
SOLANA_RPC_URL: string;
|
|
583
|
+
};
|
|
584
|
+
export default _default;
|
|
585
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|