@xfuel/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.
Files changed (99) hide show
  1. package/LICENSE +201 -201
  2. package/README.md +82 -252
  3. package/cli.js +40 -0
  4. package/index.cjs +8 -0
  5. package/index.d.ts +5 -0
  6. package/index.js +7 -0
  7. package/package.json +61 -67
  8. package/dist/anchor-trust.d.ts +0 -129
  9. package/dist/anchor-trust.d.ts.map +0 -1
  10. package/dist/anchor-trust.js +0 -395
  11. package/dist/anchor-trust.js.map +0 -1
  12. package/dist/anchor-witness.d.ts +0 -265
  13. package/dist/anchor-witness.d.ts.map +0 -1
  14. package/dist/anchor-witness.js +0 -818
  15. package/dist/anchor-witness.js.map +0 -1
  16. package/dist/base-payer.d.ts +0 -65
  17. package/dist/base-payer.d.ts.map +0 -1
  18. package/dist/base-payer.js +0 -222
  19. package/dist/base-payer.js.map +0 -1
  20. package/dist/binding.d.ts +0 -52
  21. package/dist/binding.d.ts.map +0 -1
  22. package/dist/binding.js +0 -80
  23. package/dist/binding.js.map +0 -1
  24. package/dist/canonical-preimage.d.ts +0 -9
  25. package/dist/canonical-preimage.d.ts.map +0 -1
  26. package/dist/canonical-preimage.js +0 -25
  27. package/dist/canonical-preimage.js.map +0 -1
  28. package/dist/carry-forward.d.ts +0 -79
  29. package/dist/carry-forward.d.ts.map +0 -1
  30. package/dist/carry-forward.js +0 -184
  31. package/dist/carry-forward.js.map +0 -1
  32. package/dist/cli.d.ts +0 -19
  33. package/dist/cli.d.ts.map +0 -1
  34. package/dist/cli.js +0 -1479
  35. package/dist/cli.js.map +0 -1
  36. package/dist/epoch.d.ts +0 -143
  37. package/dist/epoch.d.ts.map +0 -1
  38. package/dist/epoch.js +0 -352
  39. package/dist/epoch.js.map +0 -1
  40. package/dist/head-binding.d.ts +0 -24
  41. package/dist/head-binding.d.ts.map +0 -1
  42. package/dist/head-binding.js +0 -61
  43. package/dist/head-binding.js.map +0 -1
  44. package/dist/index.d.ts +0 -569
  45. package/dist/index.d.ts.map +0 -1
  46. package/dist/index.js +0 -1597
  47. package/dist/index.js.map +0 -1
  48. package/dist/issuer-history.d.ts +0 -110
  49. package/dist/issuer-history.d.ts.map +0 -1
  50. package/dist/issuer-history.js +0 -348
  51. package/dist/issuer-history.js.map +0 -1
  52. package/dist/issuer-pin.d.ts +0 -126
  53. package/dist/issuer-pin.d.ts.map +0 -1
  54. package/dist/issuer-pin.js +0 -567
  55. package/dist/issuer-pin.js.map +0 -1
  56. package/dist/jcs.d.ts +0 -8
  57. package/dist/jcs.d.ts.map +0 -1
  58. package/dist/jcs.js +0 -64
  59. package/dist/jcs.js.map +0 -1
  60. package/dist/jws.d.ts +0 -46
  61. package/dist/jws.d.ts.map +0 -1
  62. package/dist/jws.js +0 -129
  63. package/dist/jws.js.map +0 -1
  64. package/dist/payer.d.ts +0 -65
  65. package/dist/payer.d.ts.map +0 -1
  66. package/dist/payer.js +0 -148
  67. package/dist/payer.js.map +0 -1
  68. package/dist/preimage.d.ts +0 -78
  69. package/dist/preimage.d.ts.map +0 -1
  70. package/dist/preimage.js +0 -363
  71. package/dist/preimage.js.map +0 -1
  72. package/dist/receipt-lane.d.ts +0 -235
  73. package/dist/receipt-lane.d.ts.map +0 -1
  74. package/dist/receipt-lane.js +0 -446
  75. package/dist/receipt-lane.js.map +0 -1
  76. package/dist/refusal.d.ts +0 -93
  77. package/dist/refusal.d.ts.map +0 -1
  78. package/dist/refusal.js +0 -248
  79. package/dist/refusal.js.map +0 -1
  80. package/dist/request-binding.d.ts +0 -7
  81. package/dist/request-binding.d.ts.map +0 -1
  82. package/dist/request-binding.js +0 -26
  83. package/dist/request-binding.js.map +0 -1
  84. package/dist/row-hash.d.ts +0 -22
  85. package/dist/row-hash.d.ts.map +0 -1
  86. package/dist/row-hash.js +0 -26
  87. package/dist/row-hash.js.map +0 -1
  88. package/dist/shell.d.ts +0 -65
  89. package/dist/shell.d.ts.map +0 -1
  90. package/dist/shell.js +0 -268
  91. package/dist/shell.js.map +0 -1
  92. package/dist/solana-payer.d.ts +0 -99
  93. package/dist/solana-payer.d.ts.map +0 -1
  94. package/dist/solana-payer.js +0 -258
  95. package/dist/solana-payer.js.map +0 -1
  96. package/dist/v11-receipt.d.ts +0 -21
  97. package/dist/v11-receipt.d.ts.map +0 -1
  98. package/dist/v11-receipt.js +0 -351
  99. package/dist/v11-receipt.js.map +0 -1
@@ -1,184 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.CARRY_FORWARD_STATUS = exports.PINNED_ANCHOR_EPOCHS = void 0;
4
- exports.verifyCarryForward = verifyCarryForward;
5
- /**
6
- * A receipt leaf that was included under an earlier epoch head and later
7
- * included under the current epoch head.
8
- *
9
- * The issued time and the issued epoch come from the earlier head's signed
10
- * claims. The logged time, epoch, and leaf index come from the current
11
- * head's signed claims and from the inclusion proof that binds that leaf
12
- * to the current root. Unsigned receipt fields, request fields, and the
13
- * local clock are not a source for either date.
14
- *
15
- * Lockstep with `assessCarryForward` in services/gateway/src/receipt-merkle.js.
16
- */
17
- const anchor_witness_js_1 = require("./anchor-witness.js");
18
- const jws_js_1 = require("./jws.js");
19
- /** Epoch ids named by the committed receipt-log pin anchors. */
20
- exports.PINNED_ANCHOR_EPOCHS = [1, 2];
21
- exports.CARRY_FORWARD_STATUS = 'VERIFIED_CARRIED_FORWARD';
22
- const SIGNED_TIME = /^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(?:\.\d{1,3})?Z$/;
23
- function signedTime(value) {
24
- if (typeof value !== 'string' || !SIGNED_TIME.test(value))
25
- return null;
26
- const ms = Date.parse(value);
27
- if (!Number.isFinite(ms))
28
- return null;
29
- return value;
30
- }
31
- function fail(reason) {
32
- return { applicable: true, ok: false, status: null, reason };
33
- }
34
- function jwksCandidates(jwks, kid) {
35
- const keys = jwks?.keys || [];
36
- const es256 = keys.filter((key) => (0, jws_js_1.isEs256PublicJwk)(key) && (key.alg == null || key.alg === 'ES256'));
37
- if (!kid)
38
- return es256;
39
- return es256.filter((key) => key.kid === kid);
40
- }
41
- function verifyHeadJws(head, options) {
42
- const jws = head?.issuer_signature?.jws;
43
- if (!jws)
44
- return { ok: false, reason: 'epoch_signature_missing' };
45
- const header = (0, jws_js_1.readJwsHeader)(jws);
46
- const kid = header?.kid || head?.issuer_signature?.kid;
47
- const trustedKids = options.trustedKids ?? [];
48
- const embedded = (0, jws_js_1.resolvePinnedIssuerJwk)({ issuer_signature: head?.issuer_signature || undefined });
49
- const pinned = !!(embedded && (0, jws_js_1.isPinnedTrustedJwk)(embedded, trustedKids));
50
- const candidates = jwksCandidates(options.jwks, kid);
51
- for (const jwk of candidates) {
52
- const result = (0, jws_js_1.verifyIssuerJws)(jws, jwk);
53
- if (result.valid && result.payload)
54
- return { ok: true, payload: result.payload };
55
- }
56
- if (pinned && embedded) {
57
- const result = (0, jws_js_1.verifyIssuerJws)(jws, embedded);
58
- if (result.valid && result.payload)
59
- return { ok: true, payload: result.payload };
60
- }
61
- return { ok: false, reason: 'signature_invalid' };
62
- }
63
- function sameJson(a, b) {
64
- return JSON.stringify(a ?? null) === JSON.stringify(b ?? null);
65
- }
66
- function hexLeaf(value) {
67
- if (typeof value !== 'string')
68
- return null;
69
- const hex = value.replace(/^0x/i, '').toLowerCase();
70
- return /^[0-9a-f]{64}$/.test(hex) ? hex : null;
71
- }
72
- function readSignedHead(head, options, pinned) {
73
- const verified = verifyHeadJws(head, options);
74
- if (!verified.ok)
75
- return fail(verified.reason);
76
- const payload = verified.payload;
77
- const publishedAt = signedTime(payload.published_at);
78
- if (!publishedAt)
79
- return fail('head_mismatch');
80
- if (head && Object.prototype.hasOwnProperty.call(head, 'published_at')
81
- && head.published_at != null
82
- && head.published_at !== publishedAt) {
83
- return fail('head_mismatch');
84
- }
85
- const epoch = Number(payload.epoch);
86
- if (!Number.isInteger(epoch) || epoch < 1)
87
- return fail('bad_epoch');
88
- if (!pinned.has(epoch))
89
- return fail('bad_epoch');
90
- if (head && Object.prototype.hasOwnProperty.call(head, 'epoch')
91
- && head.epoch != null
92
- && Number(head.epoch) !== epoch) {
93
- return fail('head_mismatch');
94
- }
95
- const root = typeof payload.root === 'string' ? payload.root.replace(/^0x/i, '').toLowerCase() : '';
96
- if (!/^[0-9a-f]{64}$/.test(root))
97
- return fail('head_mismatch');
98
- if (head?.root != null && String(head.root).replace(/^0x/i, '').toLowerCase() !== root) {
99
- return fail('head_mismatch');
100
- }
101
- const treeSize = Number(payload.tree_size);
102
- if (!Number.isSafeInteger(treeSize) || treeSize < 1)
103
- return fail('head_mismatch');
104
- if (head?.tree_size != null && Number(head.tree_size) !== treeSize)
105
- return fail('head_mismatch');
106
- if (payload.schema != null && head && 'schema' in head && head.schema != null
107
- && !sameJson(payload.schema, head.schema)) {
108
- return fail('head_mismatch');
109
- }
110
- return { ok: true, published_at: publishedAt, epoch, root, tree_size: treeSize };
111
- }
112
- function inclusionOf(leaf, inclusion, root, treeSize) {
113
- if (!inclusion || inclusion.error === 'not_in_tree')
114
- return fail('not_in_tree');
115
- if (!Array.isArray(inclusion.proof))
116
- return fail('not_in_tree');
117
- const claimed = hexLeaf(inclusion.leaf);
118
- const got = Buffer.from(leaf).toString('hex');
119
- if (claimed && claimed !== got)
120
- return fail('tree_head_mismatch');
121
- if (inclusion.tree_size != null && Number(inclusion.tree_size) !== treeSize)
122
- return fail('inclusion_failed');
123
- const index = Number(inclusion.leaf_index);
124
- if (!Number.isSafeInteger(index))
125
- return fail('inclusion_failed');
126
- const proved = (0, anchor_witness_js_1.verifyMerkleInclusion)(Buffer.from(leaf), index, treeSize, root, inclusion.proof);
127
- if (!proved)
128
- return fail('inclusion_failed');
129
- return { ok: true, leaf_index: index };
130
- }
131
- /**
132
- * Verify a cross-epoch carry. A pair of heads in the same epoch is not a
133
- * carry: the caller leaves the receipt result unchanged.
134
- */
135
- function verifyCarryForward(input) {
136
- const pinned = new Set(input.pinnedEpochs ?? exports.PINNED_ANCHOR_EPOCHS);
137
- const trust = { trustedKids: input.trustedKids, jwks: input.jwks };
138
- const oldHead = readSignedHead(input.oldHead, trust, pinned);
139
- if (!('published_at' in oldHead))
140
- return oldHead;
141
- const currentHead = readSignedHead(input.currentHead, trust, pinned);
142
- if (!('published_at' in currentHead))
143
- return currentHead;
144
- if (oldHead.epoch === currentHead.epoch) {
145
- return { applicable: false, ok: true, status: null };
146
- }
147
- if (currentHead.epoch < oldHead.epoch)
148
- return fail('head_mismatch');
149
- const oldMs = Date.parse(oldHead.published_at);
150
- const currentMs = Date.parse(currentHead.published_at);
151
- if (!(currentMs >= oldMs))
152
- return fail('head_mismatch');
153
- const oldLeaf = hexLeaf(input.oldInclusion?.leaf);
154
- const currentLeaves = (input.currentInclusions || []).map((row) => hexLeaf(row?.leaf)).filter((row) => !!row);
155
- if (oldLeaf && currentLeaves.some((row) => row !== oldLeaf))
156
- return fail('tree_head_mismatch');
157
- const oldIncluded = inclusionOf(input.leaf, input.oldInclusion, oldHead.root, oldHead.tree_size);
158
- if (!oldIncluded.ok)
159
- return oldIncluded;
160
- const inclusions = input.currentInclusions;
161
- if (!Array.isArray(inclusions) || inclusions.length === 0)
162
- return fail('not_in_tree');
163
- const positions = new Set();
164
- for (const row of inclusions) {
165
- const included = inclusionOf(input.leaf, row, currentHead.root, currentHead.tree_size);
166
- if (!included.ok)
167
- return included;
168
- positions.add(included.leaf_index);
169
- }
170
- if (positions.size !== 1)
171
- return fail('inclusion_failed');
172
- const leafIndex = [...positions][0];
173
- return {
174
- applicable: true,
175
- ok: true,
176
- status: exports.CARRY_FORWARD_STATUS,
177
- issued_at: oldHead.published_at,
178
- issued_epoch: oldHead.epoch,
179
- logged_at: currentHead.published_at,
180
- logged_epoch: currentHead.epoch,
181
- leaf_index: leafIndex,
182
- };
183
- }
184
- //# sourceMappingURL=carry-forward.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"carry-forward.js","sourceRoot":"","sources":["../src/carry-forward.ts"],"names":[],"mappings":"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"}
package/dist/cli.d.ts DELETED
@@ -1,19 +0,0 @@
1
- #!/usr/bin/env node
2
- /**
3
- * xfuel-verify CLI — Offline receipt verification.
4
- *
5
- * Usage:
6
- * xfuel-verify receipt.json
7
- * xfuel-verify receipt.json --check-nullifier
8
- * xfuel-verify receipt.json --rpc https://mainnet.base.org
9
- * xfuel-verify receipt.json inclusion.json head.json --rpc
10
- * cat receipt.json | xfuel-verify -
11
- *
12
- * Exit codes:
13
- * 0 = verified
14
- * 1 = verification failed
15
- * 2 = partial (binding ok, nullifier not checked or pending)
16
- * 3 = input error
17
- */
18
- export {};
19
- //# sourceMappingURL=cli.d.ts.map
package/dist/cli.d.ts.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AACA;;;;;;;;;;;;;;;GAeG"}