@xfuel/verify 0.3.1 → 0.3.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +16 -6
- package/dist/anchor-trust.d.ts +129 -0
- package/dist/anchor-trust.d.ts.map +1 -0
- package/dist/anchor-trust.js +395 -0
- package/dist/anchor-trust.js.map +1 -0
- package/dist/anchor-witness.d.ts +114 -4
- package/dist/anchor-witness.d.ts.map +1 -1
- package/dist/anchor-witness.js +419 -32
- package/dist/anchor-witness.js.map +1 -1
- 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.js +691 -42
- package/dist/cli.js.map +1 -1
- package/dist/epoch.d.ts +41 -7
- package/dist/epoch.d.ts.map +1 -1
- package/dist/epoch.js +143 -0
- package/dist/epoch.js.map +1 -1
- package/dist/index.d.ts +65 -6
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +348 -96
- package/dist/index.js.map +1 -1
- package/dist/issuer-history.d.ts +19 -0
- package/dist/issuer-history.d.ts.map +1 -1
- package/dist/issuer-history.js +131 -75
- package/dist/issuer-history.js.map +1 -1
- 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/preimage.d.ts +29 -0
- package/dist/preimage.d.ts.map +1 -1
- package/dist/preimage.js +162 -2
- package/dist/preimage.js.map +1 -1
- package/dist/receipt-lane.d.ts +1 -0
- package/dist/receipt-lane.d.ts.map +1 -1
- package/dist/receipt-lane.js +5 -2
- package/dist/receipt-lane.js.map +1 -1
- package/dist/refusal.d.ts +5 -2
- package/dist/refusal.d.ts.map +1 -1
- package/dist/refusal.js +28 -6
- package/dist/refusal.js.map +1 -1
- 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/v11-receipt.d.ts +21 -0
- package/dist/v11-receipt.d.ts.map +1 -0
- package/dist/v11-receipt.js +351 -0
- package/dist/v11-receipt.js.map +1 -0
- package/package.json +1 -1
package/dist/anchor-witness.d.ts
CHANGED
|
@@ -1,4 +1,8 @@
|
|
|
1
|
+
import { type AnchorWalletList } from './anchor-trust.js';
|
|
1
2
|
import { type EpochRecord } from './epoch.js';
|
|
3
|
+
import { type AssessIssuerPinInput, type IssuerPinAssessment } from './issuer-pin.js';
|
|
4
|
+
import type { IssuerHistoryDocument } from './issuer-history.js';
|
|
5
|
+
import type { Es256Jwk } from './jws.js';
|
|
2
6
|
export declare const MEMO_PROGRAM_ID = "MemoSq4gqABAXKb96qnH8TysNcWxMyWCqXgDLGmfcHr";
|
|
3
7
|
export declare const MEMO_PROGRAM_ID_V1 = "Memo1UhkJRfHyvLMcVucJwxXeuD728EqVDDwQDxFMNo";
|
|
4
8
|
/**
|
|
@@ -12,7 +16,8 @@ export declare const ANCHOR_PROVES: string[];
|
|
|
12
16
|
export declare const ANCHOR_DOES_NOT_PROVE: string[];
|
|
13
17
|
export interface InclusionStep {
|
|
14
18
|
hash: string;
|
|
15
|
-
|
|
19
|
+
/** Ignored. RFC 9162 uses the leaf index and the tree size to pick the side. */
|
|
20
|
+
position?: string;
|
|
16
21
|
}
|
|
17
22
|
export interface AnchorReceipt {
|
|
18
23
|
task_id?: string;
|
|
@@ -23,12 +28,16 @@ export interface AnchorReceipt {
|
|
|
23
28
|
}
|
|
24
29
|
export interface AnchorInclusion {
|
|
25
30
|
task_id?: string;
|
|
31
|
+
status?: string;
|
|
32
|
+
anchor_status?: string;
|
|
26
33
|
leaf_index: number;
|
|
27
34
|
tree_size: number;
|
|
35
|
+
live_tree_size?: number | null;
|
|
36
|
+
anchored_tree_size?: number | null;
|
|
28
37
|
root: string;
|
|
29
38
|
leaf?: string;
|
|
30
39
|
row_hash?: string | null;
|
|
31
|
-
proof
|
|
40
|
+
proof?: InclusionStep[] | null;
|
|
32
41
|
}
|
|
33
42
|
export interface AnchorHead {
|
|
34
43
|
root: string;
|
|
@@ -48,6 +57,7 @@ export interface AnchorHead {
|
|
|
48
57
|
calldata?: string | null;
|
|
49
58
|
chain_id?: number | null;
|
|
50
59
|
status?: string;
|
|
60
|
+
from?: string | null;
|
|
51
61
|
} | null;
|
|
52
62
|
solana?: {
|
|
53
63
|
signature?: string | null;
|
|
@@ -55,8 +65,17 @@ export interface AnchorHead {
|
|
|
55
65
|
cluster?: string | null;
|
|
56
66
|
memo?: string | null;
|
|
57
67
|
status?: string | null;
|
|
68
|
+
fee_payer?: string | null;
|
|
58
69
|
} | null;
|
|
59
70
|
} | null;
|
|
71
|
+
issuer_signature?: {
|
|
72
|
+
jws?: string;
|
|
73
|
+
kid?: string;
|
|
74
|
+
issuer_jwk?: Es256Jwk;
|
|
75
|
+
};
|
|
76
|
+
schema?: string;
|
|
77
|
+
payload_version?: number;
|
|
78
|
+
published_at?: string | null;
|
|
60
79
|
}
|
|
61
80
|
interface SolanaIx {
|
|
62
81
|
program?: string;
|
|
@@ -78,6 +97,10 @@ export interface SolanaAnchorTx {
|
|
|
78
97
|
transaction?: {
|
|
79
98
|
message?: {
|
|
80
99
|
instructions?: SolanaIx[];
|
|
100
|
+
accountKeys?: Array<{
|
|
101
|
+
pubkey?: string;
|
|
102
|
+
signer?: boolean;
|
|
103
|
+
} | string>;
|
|
81
104
|
};
|
|
82
105
|
};
|
|
83
106
|
}
|
|
@@ -85,15 +108,19 @@ export interface BaseAnchorTx {
|
|
|
85
108
|
hash?: string;
|
|
86
109
|
input?: string;
|
|
87
110
|
chainId?: number;
|
|
111
|
+
from?: string;
|
|
88
112
|
}
|
|
89
113
|
export interface AnchorWitnessResult {
|
|
90
|
-
overall: 'verified' | 'partial' | 'failed';
|
|
114
|
+
overall: 'verified' | 'partial' | 'pending' | 'failed';
|
|
91
115
|
root: string | null;
|
|
92
116
|
inclusion: {
|
|
93
117
|
valid: boolean;
|
|
94
118
|
leaf: string | null;
|
|
95
119
|
leaf_source: string;
|
|
96
120
|
reason?: string;
|
|
121
|
+
unlogged_reason?: string;
|
|
122
|
+
anchored_tree_size?: number | null;
|
|
123
|
+
live_tree_size?: number | null;
|
|
97
124
|
};
|
|
98
125
|
solana: {
|
|
99
126
|
checked: boolean;
|
|
@@ -102,6 +129,7 @@ export interface AnchorWitnessResult {
|
|
|
102
129
|
slot: number | null;
|
|
103
130
|
cluster: string | null;
|
|
104
131
|
memo: string | null;
|
|
132
|
+
fee_payer: string | null;
|
|
105
133
|
reason?: string;
|
|
106
134
|
};
|
|
107
135
|
base: {
|
|
@@ -109,15 +137,45 @@ export interface AnchorWitnessResult {
|
|
|
109
137
|
valid: boolean;
|
|
110
138
|
tx: string | null;
|
|
111
139
|
chain_id: number | null;
|
|
140
|
+
from: string | null;
|
|
141
|
+
reason?: string;
|
|
142
|
+
};
|
|
143
|
+
head_signature: {
|
|
144
|
+
checked: boolean;
|
|
145
|
+
valid: boolean;
|
|
146
|
+
kid: string | null;
|
|
147
|
+
trust: string | null;
|
|
112
148
|
reason?: string;
|
|
149
|
+
message?: string;
|
|
150
|
+
};
|
|
151
|
+
anchor_wallets: {
|
|
152
|
+
base_from: string | null;
|
|
153
|
+
solana_fee_payer: string | null;
|
|
154
|
+
sources: AnchorWalletList['sources'];
|
|
155
|
+
not_consulted: AnchorWalletList['not_consulted'];
|
|
113
156
|
};
|
|
114
157
|
proves: string[];
|
|
115
158
|
does_not_prove: string[];
|
|
116
159
|
errors: string[];
|
|
160
|
+
issuer_pin: IssuerPinAssessment;
|
|
117
161
|
}
|
|
118
162
|
export declare function leafHash(bytes: Uint8Array): Buffer;
|
|
119
163
|
export declare function normalizeRoot(root: string | null | undefined): string | null;
|
|
120
|
-
/**
|
|
164
|
+
/**
|
|
165
|
+
* RFC 9162 fold. Returns the recomputed root, or null when the proof is the
|
|
166
|
+
* wrong length for `(index, treeSize)` or a sibling is not 32 bytes.
|
|
167
|
+
* Index and tree size choose the side. A `position` label is not read here.
|
|
168
|
+
*/
|
|
169
|
+
export declare function inclusionRoot(leaf: Buffer, index: number, treeSize: number, proof: InclusionStep[]): string | null;
|
|
170
|
+
/**
|
|
171
|
+
* RFC 9162 §2.1.3.2 inclusion. `index` and `treeSize` choose left or right
|
|
172
|
+
* at each step. A `position` label is not the source of that side. When a
|
|
173
|
+
* label is present it must name the side the index already chose, so a
|
|
174
|
+
* swapped label fails. An omitted label does not. A proof whose length is
|
|
175
|
+
* not the length that pair requires is rejected, as is `index >= treeSize`.
|
|
176
|
+
* Leaf and node bytes stay SHA-256(0x00 || leaf) and SHA-256(0x01 || left ||
|
|
177
|
+
* right). Consistency proofs and the empty root are not this function.
|
|
178
|
+
*/
|
|
121
179
|
export declare function verifyMerkleInclusion(leaf: Buffer, index: number, treeSize: number, rootHex: string, proof: InclusionStep[]): boolean;
|
|
122
180
|
export interface ParsedAnchorMemo {
|
|
123
181
|
version?: 1 | 2;
|
|
@@ -135,6 +193,28 @@ export declare function parseAnchorMemo(memo: string): ParsedAnchorMemo | null;
|
|
|
135
193
|
export declare function extractMemos(tx: SolanaAnchorTx | null | undefined): string[];
|
|
136
194
|
export declare function fetchSolanaGenesisHash(rpcUrl: string): Promise<string>;
|
|
137
195
|
export declare function fetchBaseAnchorTransaction(txHash: string, rpcUrl: string): Promise<BaseAnchorTx | null>;
|
|
196
|
+
export interface NewestAnchor {
|
|
197
|
+
root: string;
|
|
198
|
+
signature: string;
|
|
199
|
+
slot?: number | null;
|
|
200
|
+
blockTime?: number | null;
|
|
201
|
+
}
|
|
202
|
+
/** Newest-first page size for `getSignaturesForAddress`. */
|
|
203
|
+
export declare const NEWEST_ANCHOR_PAGE_LIMIT = 25;
|
|
204
|
+
/** Full pages walked before a missing memo is `newest_anchor_unavailable`. */
|
|
205
|
+
export declare const NEWEST_ANCHOR_PAGE_CAP = 8;
|
|
206
|
+
/**
|
|
207
|
+
* Newest chit402 root memo paid by this fee payer. `getSignaturesForAddress`
|
|
208
|
+
* is newest-first and includes transactions that only mention the address.
|
|
209
|
+
* A memo whose fee payer is anyone else is ignored and is not newer.
|
|
210
|
+
* Pages use `before` until the first memo this payer actually paid. A listed
|
|
211
|
+
* signature whose transaction is null or whose fetch throws fails the scan.
|
|
212
|
+
* Walking `NEWEST_ANCHOR_PAGE_CAP` full pages without such a memo fails the scan.
|
|
213
|
+
* A short page with no memo from this payer means this payer has no anchor.
|
|
214
|
+
*/
|
|
215
|
+
export declare function fetchNewestSolanaAnchorRoot(feePayer: string, rpcUrl: string, fetchTx?: (signature: string, rpcUrl: string) => Promise<SolanaAnchorTx | null>): Promise<NewestAnchor | null>;
|
|
216
|
+
/** Fee payer is the first account. A parsed key that is explicitly not a signer does not count. */
|
|
217
|
+
export declare function solanaFeePayer(tx: SolanaAnchorTx | null | undefined): string | null;
|
|
138
218
|
export interface VerifyAnchoredRootInput {
|
|
139
219
|
receipt: AnchorReceipt;
|
|
140
220
|
inclusion: AnchorInclusion;
|
|
@@ -144,8 +224,38 @@ export interface VerifyAnchoredRootInput {
|
|
|
144
224
|
fetchSolanaTx?: (signature: string, rpcUrl: string) => Promise<SolanaAnchorTx | null>;
|
|
145
225
|
fetchGenesis?: (rpcUrl: string) => Promise<string>;
|
|
146
226
|
fetchBaseTx?: (txHash: string, rpcUrl: string) => Promise<BaseAnchorTx | null>;
|
|
227
|
+
/**
|
|
228
|
+
* When set, and the head claims an anchor, the served root must equal the
|
|
229
|
+
* newest Solana memo paid by `anchors.solana.fee_payer`, and that payer
|
|
230
|
+
* must be on the signed anchor-wallet list. A memo from any other payer
|
|
231
|
+
* is ignored. A missing or unlisted fee payer is `newest_anchor_unavailable`.
|
|
232
|
+
* The CLI sets this for `--rpc`.
|
|
233
|
+
*/
|
|
234
|
+
checkNewestAnchor?: boolean;
|
|
235
|
+
fetchNewestAnchor?: (feePayer: string, rpcUrl: string) => Promise<NewestAnchor | null>;
|
|
147
236
|
epochRecord?: EpochRecord | null;
|
|
148
237
|
verifyEpochSignature?: (jws: string) => boolean;
|
|
238
|
+
/**
|
|
239
|
+
* Local pin bytes. Anchor mode does not fetch them. A receipt or head
|
|
240
|
+
* that carries `issuer_key_pin` fails closed when this is omitted.
|
|
241
|
+
*/
|
|
242
|
+
issuerPin?: AssessIssuerPinInput | null;
|
|
243
|
+
jwks?: {
|
|
244
|
+
keys: Es256Jwk[];
|
|
245
|
+
};
|
|
246
|
+
trustedKids?: readonly string[];
|
|
247
|
+
issuerHistory?: IssuerHistoryDocument | null;
|
|
248
|
+
strictIssuerHistory?: boolean;
|
|
249
|
+
/** Parsed `chit402.anchor_wallets.v1`. Verified here. A bad document fails closed. */
|
|
250
|
+
anchorWalletDocument?: {
|
|
251
|
+
schema?: string;
|
|
252
|
+
base?: unknown;
|
|
253
|
+
solana?: unknown;
|
|
254
|
+
issuer_signature?: {
|
|
255
|
+
jws?: string;
|
|
256
|
+
issuer_jwk?: Es256Jwk;
|
|
257
|
+
};
|
|
258
|
+
} | null;
|
|
149
259
|
}
|
|
150
260
|
/**
|
|
151
261
|
* Verify inclusion, then the Solana memo and the Base calldata for that root.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"anchor-witness.d.ts","sourceRoot":"","sources":["../src/anchor-witness.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"anchor-witness.d.ts","sourceRoot":"","sources":["../src/anchor-witness.ts"],"names":[],"mappings":"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"}
|