neozip-blockchain 0.5.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.
Files changed (127) hide show
  1. package/LICENSE +22 -0
  2. package/README.md +189 -0
  3. package/dist/browser/TokenVerifierBrowser.d.ts +63 -0
  4. package/dist/browser/TokenVerifierBrowser.d.ts.map +1 -0
  5. package/dist/browser/TokenVerifierBrowser.js +358 -0
  6. package/dist/browser/TokenVerifierBrowser.js.map +1 -0
  7. package/dist/browser/WalletManagerBrowser.d.ts +99 -0
  8. package/dist/browser/WalletManagerBrowser.d.ts.map +1 -0
  9. package/dist/browser/WalletManagerBrowser.js +434 -0
  10. package/dist/browser/WalletManagerBrowser.js.map +1 -0
  11. package/dist/browser/ZipkitMinterBrowser.d.ts +59 -0
  12. package/dist/browser/ZipkitMinterBrowser.d.ts.map +1 -0
  13. package/dist/browser/ZipkitMinterBrowser.js +337 -0
  14. package/dist/browser/ZipkitMinterBrowser.js.map +1 -0
  15. package/dist/browser/index.d.ts +12 -0
  16. package/dist/browser/index.d.ts.map +1 -0
  17. package/dist/browser/index.js +19 -0
  18. package/dist/browser/index.js.map +1 -0
  19. package/dist/constants/index.d.ts +5 -0
  20. package/dist/constants/index.d.ts.map +1 -0
  21. package/dist/constants/index.js +21 -0
  22. package/dist/constants/index.js.map +1 -0
  23. package/dist/constants/metadata.d.ts +18 -0
  24. package/dist/constants/metadata.d.ts.map +1 -0
  25. package/dist/constants/metadata.js +33 -0
  26. package/dist/constants/metadata.js.map +1 -0
  27. package/dist/constants/servers.d.ts +38 -0
  28. package/dist/constants/servers.d.ts.map +1 -0
  29. package/dist/constants/servers.js +54 -0
  30. package/dist/constants/servers.js.map +1 -0
  31. package/dist/core/ContractVersionRegistry.d.ts +63 -0
  32. package/dist/core/ContractVersionRegistry.d.ts.map +1 -0
  33. package/dist/core/ContractVersionRegistry.js +128 -0
  34. package/dist/core/ContractVersionRegistry.js.map +1 -0
  35. package/dist/core/WalletManager.d.ts +123 -0
  36. package/dist/core/WalletManager.d.ts.map +1 -0
  37. package/dist/core/WalletManager.js +360 -0
  38. package/dist/core/WalletManager.js.map +1 -0
  39. package/dist/core/ZipkitMinter.d.ts +155 -0
  40. package/dist/core/ZipkitMinter.d.ts.map +1 -0
  41. package/dist/core/ZipkitMinter.js +625 -0
  42. package/dist/core/ZipkitMinter.js.map +1 -0
  43. package/dist/core/ZipkitVerifier.d.ts +252 -0
  44. package/dist/core/ZipkitVerifier.d.ts.map +1 -0
  45. package/dist/core/ZipkitVerifier.js +1370 -0
  46. package/dist/core/ZipkitVerifier.js.map +1 -0
  47. package/dist/core/adapters/AdapterFactory.d.ts +22 -0
  48. package/dist/core/adapters/AdapterFactory.d.ts.map +1 -0
  49. package/dist/core/adapters/AdapterFactory.js +62 -0
  50. package/dist/core/adapters/AdapterFactory.js.map +1 -0
  51. package/dist/core/adapters/ContractVersionAdapter.d.ts +96 -0
  52. package/dist/core/adapters/ContractVersionAdapter.d.ts.map +1 -0
  53. package/dist/core/adapters/ContractVersionAdapter.js +9 -0
  54. package/dist/core/adapters/ContractVersionAdapter.js.map +1 -0
  55. package/dist/core/adapters/V2_10Adapter.d.ts +24 -0
  56. package/dist/core/adapters/V2_10Adapter.d.ts.map +1 -0
  57. package/dist/core/adapters/V2_10Adapter.js +87 -0
  58. package/dist/core/adapters/V2_10Adapter.js.map +1 -0
  59. package/dist/core/adapters/V2_11Adapter.d.ts +24 -0
  60. package/dist/core/adapters/V2_11Adapter.d.ts.map +1 -0
  61. package/dist/core/adapters/V2_11Adapter.js +87 -0
  62. package/dist/core/adapters/V2_11Adapter.js.map +1 -0
  63. package/dist/core/adapters/V2_50Adapter.d.ts +105 -0
  64. package/dist/core/adapters/V2_50Adapter.d.ts.map +1 -0
  65. package/dist/core/adapters/V2_50Adapter.js +263 -0
  66. package/dist/core/adapters/V2_50Adapter.js.map +1 -0
  67. package/dist/core/contracts.d.ts +169 -0
  68. package/dist/core/contracts.d.ts.map +1 -0
  69. package/dist/core/contracts.js +731 -0
  70. package/dist/core/contracts.js.map +1 -0
  71. package/dist/core/index.d.ts +24 -0
  72. package/dist/core/index.d.ts.map +1 -0
  73. package/dist/core/index.js +82 -0
  74. package/dist/core/index.js.map +1 -0
  75. package/dist/index.d.ts +15 -0
  76. package/dist/index.d.ts.map +1 -0
  77. package/dist/index.js +40 -0
  78. package/dist/index.js.map +1 -0
  79. package/dist/node/WalletManagerNode.d.ts +47 -0
  80. package/dist/node/WalletManagerNode.d.ts.map +1 -0
  81. package/dist/node/WalletManagerNode.js +203 -0
  82. package/dist/node/WalletManagerNode.js.map +1 -0
  83. package/dist/node/index.d.ts +12 -0
  84. package/dist/node/index.d.ts.map +1 -0
  85. package/dist/node/index.js +21 -0
  86. package/dist/node/index.js.map +1 -0
  87. package/dist/ots/ZipkitOTS.d.ts +152 -0
  88. package/dist/ots/ZipkitOTS.d.ts.map +1 -0
  89. package/dist/ots/ZipkitOTS.js +544 -0
  90. package/dist/ots/ZipkitOTS.js.map +1 -0
  91. package/dist/ots/index.d.ts +9 -0
  92. package/dist/ots/index.d.ts.map +1 -0
  93. package/dist/ots/index.js +25 -0
  94. package/dist/ots/index.js.map +1 -0
  95. package/dist/types/index.d.ts +84 -0
  96. package/dist/types/index.d.ts.map +1 -0
  97. package/dist/types/index.js +37 -0
  98. package/dist/types/index.js.map +1 -0
  99. package/dist/utils/Logger.d.ts +73 -0
  100. package/dist/utils/Logger.d.ts.map +1 -0
  101. package/dist/utils/Logger.js +156 -0
  102. package/dist/utils/Logger.js.map +1 -0
  103. package/dist/utils/crc32.d.ts +6 -0
  104. package/dist/utils/crc32.d.ts.map +1 -0
  105. package/dist/utils/crc32.js +23 -0
  106. package/dist/utils/crc32.js.map +1 -0
  107. package/dist/zipstamp-server/CalendarManager.d.ts +238 -0
  108. package/dist/zipstamp-server/CalendarManager.d.ts.map +1 -0
  109. package/dist/zipstamp-server/CalendarManager.js +364 -0
  110. package/dist/zipstamp-server/CalendarManager.js.map +1 -0
  111. package/dist/zipstamp-server/ZipstampServerAPI.d.ts +427 -0
  112. package/dist/zipstamp-server/ZipstampServerAPI.d.ts.map +1 -0
  113. package/dist/zipstamp-server/ZipstampServerAPI.js +696 -0
  114. package/dist/zipstamp-server/ZipstampServerAPI.js.map +1 -0
  115. package/dist/zipstamp-server/ZipstampServerClient.d.ts +590 -0
  116. package/dist/zipstamp-server/ZipstampServerClient.d.ts.map +1 -0
  117. package/dist/zipstamp-server/ZipstampServerClient.js +433 -0
  118. package/dist/zipstamp-server/ZipstampServerClient.js.map +1 -0
  119. package/dist/zipstamp-server/ZipstampServerHelpers.d.ts +430 -0
  120. package/dist/zipstamp-server/ZipstampServerHelpers.d.ts.map +1 -0
  121. package/dist/zipstamp-server/ZipstampServerHelpers.js +503 -0
  122. package/dist/zipstamp-server/ZipstampServerHelpers.js.map +1 -0
  123. package/dist/zipstamp-server/index.d.ts +24 -0
  124. package/dist/zipstamp-server/index.d.ts.map +1 -0
  125. package/dist/zipstamp-server/index.js +67 -0
  126. package/dist/zipstamp-server/index.js.map +1 -0
  127. package/package.json +117 -0
@@ -0,0 +1,544 @@
1
+ "use strict";
2
+ /**
3
+ * ======================================
4
+ * ZipkitOTS.ts - OpenTimestamps Integration
5
+ * ======================================
6
+ *
7
+ * This module provides comprehensive OpenTimestamps (OTS) functionality,
8
+ * including timestamp creation, verification, certificate generation, and proof upgrades.
9
+ *
10
+ * Key Features:
11
+ * - Bitcoin blockchain timestamping via OpenTimestamps
12
+ * - Merkle root calculation and verification
13
+ * - OTS proof upgrade capabilities
14
+ * - Certificate generation for verified timestamps
15
+ *
16
+ * @fileoverview OpenTimestamps utilities for blockchain timestamping
17
+ * @author NeoWare Inc.
18
+ */
19
+ var __importDefault = (this && this.__importDefault) || function (mod) {
20
+ return (mod && mod.__esModule) ? mod : { "default": mod };
21
+ };
22
+ Object.defineProperty(exports, "__esModule", { value: true });
23
+ exports.CMP_METHOD = exports.TIMESTAMP_METADATA = exports.TIMESTAMP_SUBMITTED = void 0;
24
+ exports.verifyOts = verifyOts;
25
+ exports.bufferToArrayBuffer = bufferToArrayBuffer;
26
+ exports.getOtsEntry = getOtsEntry;
27
+ exports.getOtsBuffer = getOtsBuffer;
28
+ exports.getMerkleRootSafe = getMerkleRootSafe;
29
+ exports.verifyOtsZip = verifyOtsZip;
30
+ exports.createTimestamp = createTimestamp;
31
+ exports.deserializeOts = deserializeOts;
32
+ exports.parseVerifyResult = parseVerifyResult;
33
+ exports.upgradeOTS = upgradeOTS;
34
+ exports.createOtsMetadataEntry = createOtsMetadataEntry;
35
+ // ===== Imports =====
36
+ const moment_timezone_1 = __importDefault(require("moment-timezone"));
37
+ const metadata_1 = require("../constants/metadata");
38
+ // Re-export OTS metadata filenames (single source: src/constants/metadata.ts)
39
+ exports.TIMESTAMP_SUBMITTED = metadata_1.TS_SUBMIT_OTS;
40
+ exports.TIMESTAMP_METADATA = metadata_1.TIMESTAMP_OTS;
41
+ exports.CMP_METHOD = { STORED: 0, DEFLATED: 8 };
42
+ // Platform detection
43
+ const isNode = typeof process !== 'undefined' && process.versions && process.versions.node;
44
+ // Node.js specific imports
45
+ let fs = null;
46
+ if (isNode) {
47
+ fs = require('fs');
48
+ }
49
+ if (globalThis._bitcore)
50
+ delete globalThis._bitcore;
51
+ let OTSInstance = null;
52
+ /**
53
+ * Lazily loads the OpenTimestamps module to avoid import conflicts.
54
+ * @returns Promise resolving to OpenTimestamps module instance
55
+ */
56
+ async function getOpenTimestamps() {
57
+ if (!OTSInstance) {
58
+ // @ts-ignore
59
+ OTSInstance = (await import('opentimestamps')).default;
60
+ }
61
+ return OTSInstance;
62
+ }
63
+ /**
64
+ * Executes a function with OpenTimestamps logging control.
65
+ * @param debug - If true, keeps logging enabled; if false, suppresses console output
66
+ * @param fn - Function to execute with controlled logging
67
+ * @returns Promise resolving to function result
68
+ */
69
+ async function withOtsLogging(debug, fn) {
70
+ if (debug)
71
+ return fn();
72
+ const originalLog = console.log;
73
+ const originalDebug = console.debug;
74
+ // eslint-disable-next-line @typescript-eslint/no-empty-function
75
+ console.log = () => { };
76
+ // eslint-disable-next-line @typescript-eslint/no-empty-function
77
+ console.debug = () => { };
78
+ try {
79
+ return await fn();
80
+ }
81
+ finally {
82
+ console.log = originalLog;
83
+ console.debug = originalDebug;
84
+ }
85
+ }
86
+ /**
87
+ * Simple CRC32 implementation for OTS metadata entries
88
+ */
89
+ function crc32(data) {
90
+ const table = new Int32Array(256);
91
+ for (let i = 0; i < 256; i++) {
92
+ let c = i;
93
+ for (let j = 0; j < 8; j++) {
94
+ c = c & 1 ? 0xedb88320 ^ (c >>> 1) : c >>> 1;
95
+ }
96
+ table[i] = c;
97
+ }
98
+ let crc = 0xffffffff;
99
+ for (let i = 0; i < data.length; i++) {
100
+ crc = table[(crc ^ data[i]) & 0xff] ^ (crc >>> 8);
101
+ }
102
+ return (crc ^ 0xffffffff) >>> 0;
103
+ }
104
+ /**
105
+ * Verifies an OpenTimestamps proof against a hash digest.
106
+ * @param hashDigest - SHA256 hash as hex string to verify
107
+ * @param ots - OpenTimestamps proof data
108
+ * @param options - Configuration options
109
+ * @param options.debug - Enable debug logging
110
+ * @returns Promise resolving to verification result, error object, or null if inputs invalid
111
+ */
112
+ async function verifyOts(hashDigest, ots, options) {
113
+ if (!hashDigest || !ots)
114
+ return null;
115
+ const tsResult = {
116
+ merkleRoot: hashDigest,
117
+ ots,
118
+ verified: false,
119
+ results: null,
120
+ error: null,
121
+ attestations: null,
122
+ upgradedOts: null,
123
+ };
124
+ try {
125
+ return await withOtsLogging(options?.debug, async () => {
126
+ const OpenTimestamps = await getOpenTimestamps();
127
+ const _otsBuffer = Buffer.from(ots);
128
+ const detachedOts = OpenTimestamps.DetachedTimestampFile.deserialize(_otsBuffer);
129
+ const digest = Buffer.from(hashDigest, 'hex');
130
+ const hashOts = OpenTimestamps.DetachedTimestampFile.fromHash(new OpenTimestamps.Ops.OpSHA256(), digest);
131
+ const upgrade = await OpenTimestamps.upgrade(detachedOts);
132
+ if (upgrade) {
133
+ tsResult.upgradedOts = detachedOts.serializeToBytes();
134
+ }
135
+ tsResult.results = await OpenTimestamps.verify(detachedOts, hashOts, {
136
+ ignoreBitcoinNode: true,
137
+ timeout: 5000,
138
+ });
139
+ const _attest = [];
140
+ detachedOts.timestamp.allAttestations().forEach((attestation) => {
141
+ if (!(attestation instanceof OpenTimestamps.Notary.UnknownAttestation)) {
142
+ _attest.push(attestation);
143
+ }
144
+ });
145
+ tsResult.attestations = JSON.stringify(_attest);
146
+ tsResult.verified = !!tsResult.results && Object.keys(tsResult.results).length > 0;
147
+ if (!tsResult.verified)
148
+ tsResult.results = null;
149
+ return tsResult;
150
+ });
151
+ }
152
+ catch (error) {
153
+ let errMsg = error?.message || 'Timestamp Verification Failed!';
154
+ if (errMsg.includes('ESOCKETTIMEDOUT'))
155
+ errMsg = 'Server timed out, Try again in a few minutes.';
156
+ else if (errMsg.includes('502'))
157
+ errMsg = 'Server failed to respond, Try again in a few minutes.';
158
+ else if (errMsg.includes('ECONNRESET'))
159
+ errMsg = 'Server connection reset, Try again in a few minutes.';
160
+ return { error: errMsg };
161
+ }
162
+ }
163
+ /**
164
+ * Converts a Node.js Buffer to an ArrayBuffer.
165
+ * @param buf - Buffer to convert
166
+ * @returns ArrayBuffer with same data
167
+ */
168
+ function bufferToArrayBuffer(buf) {
169
+ const ab = new ArrayBuffer(buf.byteLength);
170
+ const view = new Uint8Array(ab);
171
+ view.set(buf);
172
+ return ab;
173
+ }
174
+ /**
175
+ * Finds the OpenTimestamps entry in a ZIP file.
176
+ * Searches for TIMESTAMP_METADATA first, then TIMESTAMP_SUBMITTED.
177
+ * @param zip - Zipkit-like instance to search
178
+ * @returns ZIP entry containing OTS proof, or null if not found
179
+ */
180
+ function getOtsEntry(zip) {
181
+ try {
182
+ // Include metadata entries in the directory
183
+ const entries = zip.getDirectory?.(true) || [];
184
+ // Prefer upgraded metadata entry first
185
+ let entry = entries.find((e) => e && e.filename === exports.TIMESTAMP_METADATA);
186
+ if (entry)
187
+ return entry;
188
+ // Fallback to submitted proof entry
189
+ entry = entries.find((e) => e && e.filename === exports.TIMESTAMP_SUBMITTED);
190
+ if (entry)
191
+ return entry;
192
+ }
193
+ catch {
194
+ return null;
195
+ }
196
+ return null;
197
+ }
198
+ /**
199
+ * Extracts OTS proof data from a ZIP entry.
200
+ * Prefers extractToBuffer when available (required for file-based ZIPs loaded with loadZipFile).
201
+ * @param zip - Zipkit-like instance
202
+ * @param otsEntry - ZIP entry containing OTS data
203
+ * @returns Promise resolving to OTS proof buffer, or null if extraction fails
204
+ */
205
+ async function getOtsBuffer(zip, otsEntry) {
206
+ try {
207
+ if (zip.extractToBuffer) {
208
+ const data = await zip.extractToBuffer(otsEntry, { skipHashCheck: true });
209
+ return Buffer.isBuffer(data) ? data : Buffer.from(data);
210
+ }
211
+ const data = await zip.extract?.(otsEntry, true);
212
+ return Buffer.isBuffer(data) ? data : null;
213
+ }
214
+ catch {
215
+ return null;
216
+ }
217
+ }
218
+ /**
219
+ * Safely extracts merkle root from a ZIP file.
220
+ * @param zip - Zipkit-like instance
221
+ * @returns Merkle root hash string, or null if not available
222
+ */
223
+ function getMerkleRootSafe(zip) {
224
+ try {
225
+ const mr = zip.getMerkleRoot?.();
226
+ return (typeof mr === 'string' && mr.length > 0) ? mr : null;
227
+ }
228
+ catch {
229
+ return null;
230
+ }
231
+ }
232
+ /**
233
+ * Converts various date formats to a Date object.
234
+ * @param val - Date value (number timestamp, string, or Date)
235
+ * @returns Date object or undefined if invalid
236
+ */
237
+ function coerceDate(val) {
238
+ if (!val)
239
+ return undefined;
240
+ if (typeof val === 'number')
241
+ return new Date(val * (val > 10000000000 ? 1 : 1000));
242
+ if (typeof val === 'string')
243
+ return new Date(val);
244
+ return undefined;
245
+ }
246
+ /**
247
+ * Verifies OpenTimestamps proof within a ZIP file.
248
+ * Extracts merkle root and OTS proof, then verifies against Bitcoin blockchain.
249
+ * @param zip - Zipkit-like instance containing files and OTS proof
250
+ * @returns Promise resolving to verification result with status: 'none', 'error', 'pending', or 'valid'
251
+ */
252
+ async function verifyOtsZip(zip) {
253
+ const mr = getMerkleRootSafe(zip);
254
+ const entry = getOtsEntry(zip);
255
+ if (!entry)
256
+ return { status: 'none' };
257
+ const otsBuf = await getOtsBuffer(zip, entry);
258
+ if (!otsBuf) {
259
+ return { status: 'error', message: 'Could not read OTS proof from archive (META-INF/TS-SUBMIT.OTS or META-INF/TIMESTAMP.OTS).' };
260
+ }
261
+ if (!mr) {
262
+ return {
263
+ status: 'error',
264
+ message: 'Could not compute merkle root. Archive may not have been created with useSHA256: true, or content entries lack SHA-256 in the ZIP.',
265
+ };
266
+ }
267
+ try {
268
+ const result = await verifyOts(mr, bufferToArrayBuffer(otsBuf));
269
+ if (result?.error) {
270
+ return { status: 'pending', message: result.error };
271
+ }
272
+ if (result?.verified === true) {
273
+ const bitcoin = result?.results?.bitcoin || {};
274
+ const blockHeight = result.blockHeight ?? result.block ?? result.height ?? bitcoin.height;
275
+ const attestedAt = coerceDate(result.attestedAt ?? result.attested ?? result.time ?? bitcoin.timestamp);
276
+ const upgraded = Boolean(result.upgraded || result.upgradedOts);
277
+ const upgradedOts = result.upgradedOts ? Buffer.from(result.upgradedOts) : undefined;
278
+ return { status: 'valid', blockHeight, attestedAt, upgraded, upgradedOts };
279
+ }
280
+ return { status: 'pending', message: 'Timestamp not yet attested on Bitcoin. Try again later.' };
281
+ }
282
+ catch (e) {
283
+ return { status: 'pending', message: e?.message };
284
+ }
285
+ }
286
+ /**
287
+ * Creates an OpenTimestamps proof for a hash digest.
288
+ * Submits hash to OpenTimestamps servers for Bitcoin blockchain anchoring.
289
+ * @param hashDigest - SHA256 hash as hex string to timestamp
290
+ * @param options - Configuration options
291
+ * @param options.debug - Enable debug logging
292
+ * @returns Promise resolving to OTS proof buffer, or null if creation failed
293
+ */
294
+ async function createTimestamp(hashDigest, options) {
295
+ if (!hashDigest)
296
+ return null;
297
+ try {
298
+ return await withOtsLogging(options?.debug, async () => {
299
+ const OpenTimestamps = await getOpenTimestamps();
300
+ const hashBuffer = Buffer.from(hashDigest, 'hex');
301
+ const detached = OpenTimestamps.DetachedTimestampFile.fromHash(new OpenTimestamps.Ops.OpSHA256(), hashBuffer);
302
+ await OpenTimestamps.stamp(detached);
303
+ return Buffer.from(detached.serializeToBytes());
304
+ });
305
+ }
306
+ catch (error) {
307
+ console.error('Error creating timestamp:', error);
308
+ throw new Error('Error creating timestamp');
309
+ }
310
+ }
311
+ /**
312
+ * Deserializes OpenTimestamps verification result into JSON format.
313
+ * Extracts blockchain attestation data and transaction details.
314
+ * @param tsResult - Timestamp verification result to deserialize
315
+ * @param options - Configuration options
316
+ * @param options.debug - Enable debug logging
317
+ * @returns Promise resolving to JSON string with attestation data, or null if failed
318
+ */
319
+ async function deserializeOts(tsResult, options) {
320
+ let result = {
321
+ attestStr: null,
322
+ needsUpdateMsg: null,
323
+ attestationValues: [],
324
+ };
325
+ for (const chain in tsResult.results) {
326
+ const _results = tsResult.results[chain];
327
+ const _attestDate = (0, moment_timezone_1.default)(_results.timestamp * 1000).tz(moment_timezone_1.default.tz.guess()).format('MM-DD-YYYY hh:mma z');
328
+ const blockchain = chain.charAt(0).toUpperCase() + chain.slice(1);
329
+ result.attestStr = `<b>${blockchain} block ${_results.height}</b> attests existence as of <b>${_attestDate}</b>`;
330
+ }
331
+ let timestamp = tsResult.ots;
332
+ if (tsResult.upgradedOts != null) {
333
+ result.needsUpdateMsg = 'This Zip file requires updated Timestamp Metadata!';
334
+ timestamp = tsResult.upgradedOts;
335
+ }
336
+ if (!timestamp)
337
+ return null;
338
+ const infoResult = await withOtsLogging(options?.debug, async () => {
339
+ const OpenTimestamps = await getOpenTimestamps();
340
+ const detached = OpenTimestamps.DetachedTimestampFile.deserialize(Buffer.from(timestamp));
341
+ return OpenTimestamps.info(detached);
342
+ });
343
+ const transactionIdMatches = [...infoResult.matchAll(/transaction id ([a-f0-9]+)/gi)];
344
+ const transactionIds = transactionIdMatches.map((m) => m[1]);
345
+ const blockHeightMatches = [...infoResult.matchAll(/verify BitcoinBlockHeaderAttestation\((\d+)\)/g)];
346
+ const blockHeights = blockHeightMatches.map((m) => m[1]);
347
+ const merkleRootMatches = [...infoResult.matchAll(/block merkle root ([a-f0-9]+)/gi)];
348
+ const merkleRoots = merkleRootMatches.map((m) => m[1]);
349
+ result.attestationValues = [];
350
+ if (transactionIds.length === blockHeights.length && transactionIds.length === merkleRoots.length) {
351
+ for (let i = 0; i < transactionIds.length; i++) {
352
+ result.attestationValues.push({
353
+ blockHeight: blockHeights[i],
354
+ transactionId: transactionIds[i],
355
+ merkleRoot: merkleRoots[i],
356
+ });
357
+ }
358
+ result.attestationValues.sort((a, b) => a.blockHeight - b.blockHeight);
359
+ }
360
+ return JSON.stringify(result);
361
+ }
362
+ /**
363
+ * Parses timestamp verification result into readable information.
364
+ * Formats blockchain attestation data with human-readable messages and dates.
365
+ * @param verifyResult - Timestamp verification result to parse
366
+ * @returns Promise resolving to formatted timestamp information
367
+ */
368
+ async function parseVerifyResult(verifyResult) {
369
+ let tsInfo = {
370
+ message: '',
371
+ results: [],
372
+ attestDate: null,
373
+ attestHeight: null,
374
+ submittedUri: null,
375
+ otsUpgraded: false,
376
+ };
377
+ for (const chain in verifyResult?.results) {
378
+ const _results = verifyResult.results[chain];
379
+ const _date = (0, moment_timezone_1.default)(_results.timestamp * 1000).tz('UTC').format('MM-DD-YYYY hh:mma z');
380
+ const _blockchain = chain.charAt(0).toUpperCase() + chain.slice(1);
381
+ tsInfo.message = `Validated - ${_blockchain} block ${_results.height} attests existence as of ${_date}`;
382
+ if (tsInfo.attestHeight == null) {
383
+ tsInfo.attestDate = new Date(_results.timestamp * 1000);
384
+ tsInfo.attestHeight = _results.height;
385
+ }
386
+ tsInfo.results.push(tsInfo.message);
387
+ }
388
+ if (verifyResult?.upgradedOts) {
389
+ tsInfo.otsUpgraded = true;
390
+ tsInfo.results.push('Notice: Please select "Upgrade Timestamp" to save the upgraded timestamp.');
391
+ }
392
+ return tsInfo;
393
+ }
394
+ /**
395
+ * Upgrades OpenTimestamps proof in an existing ZIP file.
396
+ * Note: This function requires neozipkit for ZIP operations.
397
+ * @param zipFilePath - Path to ZIP file to upgrade
398
+ * @param upgradedOts - Buffer containing upgraded OTS proof
399
+ * @param zipkitInstance - Optional Zipkit instance for ZIP operations
400
+ * @returns Promise that resolves when upgrade is complete
401
+ * @throws Error if upgrade fails
402
+ */
403
+ async function upgradeOTS(zipFilePath, upgradedOts, zipkitInstance) {
404
+ if (!fs) {
405
+ throw new Error('upgradeOTS() is only available in Node.js environment');
406
+ }
407
+ if (!fs.existsSync(zipFilePath)) {
408
+ throw new Error(`Zip file not found: ${zipFilePath}`);
409
+ }
410
+ if (!upgradedOts || upgradedOts.length === 0) {
411
+ throw new Error('Invalid upgraded OTS data provided');
412
+ }
413
+ // This function requires neozipkit for ZIP manipulation
414
+ // If no zipkit instance provided, throw an error
415
+ if (!zipkitInstance) {
416
+ throw new Error('upgradeOTS requires a Zipkit instance from neozipkit package for ZIP file manipulation');
417
+ }
418
+ // Create a temporary file for the upgrade process
419
+ const tempPath = `${zipFilePath}.upgrading.${Date.now()}.${process.pid}`;
420
+ try {
421
+ // Load the existing zip file
422
+ const zipData = fs.readFileSync(zipFilePath);
423
+ zipkitInstance.loadZip(zipData);
424
+ const zipEntries = zipkitInstance.getDirectory(false) || [];
425
+ if (!zipEntries || zipEntries.length === 0) {
426
+ throw new Error('No entries found in zip file or file is corrupted');
427
+ }
428
+ // Prepare buffers for the new zip file
429
+ const buffers = [];
430
+ let offset = 0;
431
+ const keptEntries = [];
432
+ // Process existing entries, excluding old timestamp entries
433
+ for (const entry of zipEntries) {
434
+ if (entry.filename === exports.TIMESTAMP_METADATA ||
435
+ entry.filename === exports.TIMESTAMP_SUBMITTED) {
436
+ // Skip old timestamp entries - they will be replaced
437
+ continue;
438
+ }
439
+ // Copy the entry data
440
+ const entryData = await zipkitInstance.copyEntry(entry);
441
+ if (!entryData) {
442
+ throw new Error(`Failed to copy entry data for: ${entry.filename}`);
443
+ }
444
+ // Update the entry's local header offset
445
+ entry.localHdrOffset = offset;
446
+ offset += entryData.length;
447
+ buffers.push(entryData);
448
+ keptEntries.push(entry);
449
+ }
450
+ // Create the new upgraded timestamp entry with standard filename
451
+ const tsEntry = zipkitInstance.createZipEntry(exports.TIMESTAMP_METADATA);
452
+ if (!tsEntry) {
453
+ throw new Error('Failed to create timestamp metadata entry');
454
+ }
455
+ // Configure the timestamp entry
456
+ tsEntry.timeDateDOS = tsEntry.setDateTime(new Date());
457
+ tsEntry.compressedSize = upgradedOts.length;
458
+ tsEntry.uncompressedSize = upgradedOts.length;
459
+ tsEntry.cmpMethod = exports.CMP_METHOD.STORED; // Store without compression
460
+ tsEntry.crc = crc32(upgradedOts);
461
+ tsEntry.fileData = upgradedOts; // Cast to any to avoid type issues
462
+ // Create and add the local header for the timestamp entry
463
+ const localHdr = tsEntry.createLocalHdr();
464
+ if (!localHdr) {
465
+ throw new Error('Failed to create local header for timestamp entry');
466
+ }
467
+ tsEntry.localHdrOffset = offset;
468
+ offset += localHdr.length + tsEntry.compressedSize;
469
+ buffers.push(localHdr);
470
+ buffers.push(upgradedOts);
471
+ // Add the timestamp entry to our list of entries
472
+ keptEntries.push(tsEntry);
473
+ // Create central directory
474
+ const centralDirOffset = offset;
475
+ let centralDirSize = 0;
476
+ for (const entry of keptEntries) {
477
+ const centralDirEntry = entry.centralDirEntry();
478
+ if (!centralDirEntry) {
479
+ throw new Error(`Failed to create central directory entry for: ${entry.filename}`);
480
+ }
481
+ centralDirSize += centralDirEntry.length;
482
+ buffers.push(centralDirEntry);
483
+ }
484
+ // Create end of central directory record
485
+ const endOfCentralDir = Buffer.alloc(22);
486
+ endOfCentralDir.writeUInt32LE(0x06054b50, 0); // End of central dir signature
487
+ endOfCentralDir.writeUInt16LE(0, 4); // Number of this disk
488
+ endOfCentralDir.writeUInt16LE(0, 6); // Disk where central directory starts
489
+ endOfCentralDir.writeUInt16LE(keptEntries.length, 8); // Number of central directory records on this disk
490
+ endOfCentralDir.writeUInt16LE(keptEntries.length, 10); // Total number of central directory records
491
+ endOfCentralDir.writeUInt32LE(centralDirSize, 12); // Size of central directory
492
+ endOfCentralDir.writeUInt32LE(centralDirOffset, 16); // Offset of start of central directory
493
+ endOfCentralDir.writeUInt16LE(0, 20); // ZIP file comment length
494
+ buffers.push(endOfCentralDir);
495
+ // Write the complete new zip file to temporary location
496
+ const finalBuffer = Buffer.concat(buffers);
497
+ fs.writeFileSync(tempPath, finalBuffer);
498
+ // Validate the temporary file was created successfully
499
+ if (!fs.existsSync(tempPath)) {
500
+ throw new Error('Failed to create temporary upgraded file');
501
+ }
502
+ const tempStats = fs.statSync(tempPath);
503
+ if (tempStats.size === 0) {
504
+ throw new Error('Temporary upgraded file is empty');
505
+ }
506
+ // Replace the original file with the upgraded version
507
+ fs.unlinkSync(zipFilePath);
508
+ fs.renameSync(tempPath, zipFilePath);
509
+ }
510
+ catch (error) {
511
+ // Clean up temporary file if it exists
512
+ if (fs.existsSync(tempPath)) {
513
+ try {
514
+ fs.unlinkSync(tempPath);
515
+ }
516
+ catch (cleanupError) {
517
+ // Log cleanup error but don't throw - main error is more important
518
+ console.warn(`Warning: Could not clean up temporary file ${tempPath}: ${cleanupError}`);
519
+ }
520
+ }
521
+ // Re-throw the original error
522
+ throw error;
523
+ }
524
+ }
525
+ /**
526
+ * Creates a ZIP metadata entry containing OpenTimestamps proof.
527
+ * Note: This function requires a Zipkit instance for ZIP operations.
528
+ * @param zipKit - Zipkit-like instance to add metadata entry to
529
+ * @param ots - Buffer containing OpenTimestamps proof data
530
+ * @returns ZIP entry containing OTS metadata, or null if creation failed
531
+ */
532
+ function createOtsMetadataEntry(zipKit, ots) {
533
+ if (!ots || !zipKit)
534
+ return null;
535
+ const tsEntry = zipKit.createZipEntry(exports.TIMESTAMP_SUBMITTED);
536
+ tsEntry.crc = crc32(ots);
537
+ tsEntry.uncompressedSize = ots.length;
538
+ tsEntry.compressedSize = ots.length;
539
+ tsEntry.cmpMethod = exports.CMP_METHOD.STORED;
540
+ tsEntry.fileBuffer = ots;
541
+ tsEntry.isMetaData = true;
542
+ return tsEntry;
543
+ }
544
+ //# sourceMappingURL=ZipkitOTS.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ZipkitOTS.js","sourceRoot":"","sources":["../../src/ots/ZipkitOTS.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ /**
2
+ * OpenTimestamps (OTS) Module Exports
3
+ * OpenTimestamps functionality for blockchain timestamping
4
+ *
5
+ * Note: This module requires neozipkit for ZIP operations.
6
+ * Currently disabled in the main package exports.
7
+ */
8
+ export * from './ZipkitOTS';
9
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/ots/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,cAAc,aAAa,CAAC"}
@@ -0,0 +1,25 @@
1
+ "use strict";
2
+ /**
3
+ * OpenTimestamps (OTS) Module Exports
4
+ * OpenTimestamps functionality for blockchain timestamping
5
+ *
6
+ * Note: This module requires neozipkit for ZIP operations.
7
+ * Currently disabled in the main package exports.
8
+ */
9
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ var desc = Object.getOwnPropertyDescriptor(m, k);
12
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
13
+ desc = { enumerable: true, get: function() { return m[k]; } };
14
+ }
15
+ Object.defineProperty(o, k2, desc);
16
+ }) : (function(o, m, k, k2) {
17
+ if (k2 === undefined) k2 = k;
18
+ o[k2] = m[k];
19
+ }));
20
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
21
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
22
+ };
23
+ Object.defineProperty(exports, "__esModule", { value: true });
24
+ __exportStar(require("./ZipkitOTS"), exports);
25
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/ots/index.ts"],"names":[],"mappings":";AAAA;;;;;;GAMG;;;;;;;;;;;;;;;;AAEH,8CAA4B"}