neozipkit 0.2.1 → 0.3.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 +22 -0
- package/README.md +410 -186
- package/contracts/ABI.txt +889 -0
- package/contracts/Bytecode.txt +1 -0
- package/contracts/COMPILATION_NOTES.md +59 -0
- package/contracts/QUICK_DEPLOY.md +286 -0
- package/contracts/README.md +235 -131
- package/contracts/VERIFICATION.md +308 -0
- package/contracts/deploy-interactive.js +448 -0
- package/contracts/deployment-arbitrum-sepolia.json +12 -0
- package/contracts/deployment-arbitrum.json +12 -0
- package/contracts/deployment-eth-sepolia.json +12 -0
- package/contracts/hardhat.config.js +114 -0
- package/contracts/package.json +20 -0
- package/contracts/scripts/compile-and-extract.js +119 -0
- package/contracts/scripts/verify-contract.js +223 -0
- package/contracts/src/{NZIP-NFT-Private.sol → NZIP-NFT-v2.0.sol} +66 -151
- package/contracts/src/NZIP-NFT.sol +9 -15
- package/dist/blockchain/browser/TokenVerifierBrowser.d.ts +67 -0
- package/dist/blockchain/browser/TokenVerifierBrowser.d.ts.map +1 -0
- package/dist/blockchain/browser/TokenVerifierBrowser.js +313 -0
- package/dist/blockchain/browser/TokenVerifierBrowser.js.map +1 -0
- package/dist/blockchain/browser/WalletManagerBrowser.d.ts +98 -0
- package/dist/blockchain/browser/WalletManagerBrowser.d.ts.map +1 -0
- package/dist/blockchain/browser/WalletManagerBrowser.js +434 -0
- package/dist/blockchain/browser/WalletManagerBrowser.js.map +1 -0
- package/dist/blockchain/browser/ZipkitMinterBrowser.d.ts +58 -0
- package/dist/blockchain/browser/ZipkitMinterBrowser.d.ts.map +1 -0
- package/dist/blockchain/browser/ZipkitMinterBrowser.js +317 -0
- package/dist/blockchain/browser/ZipkitMinterBrowser.js.map +1 -0
- package/dist/blockchain/browser/index.d.ts +11 -0
- package/dist/blockchain/browser/index.d.ts.map +1 -0
- package/dist/blockchain/browser/index.js +16 -0
- package/dist/blockchain/browser/index.js.map +1 -0
- package/dist/blockchain/core/WalletManager.d.ts +124 -0
- package/dist/blockchain/core/WalletManager.d.ts.map +1 -0
- package/dist/blockchain/{ZipKitWallet.js → core/WalletManager.js} +157 -177
- package/dist/blockchain/core/WalletManager.js.map +1 -0
- package/dist/blockchain/{ZipKitMinter.d.ts → core/ZipkitMinter.d.ts} +46 -11
- package/dist/blockchain/core/ZipkitMinter.d.ts.map +1 -0
- package/dist/blockchain/core/ZipkitMinter.js +548 -0
- package/dist/blockchain/core/ZipkitMinter.js.map +1 -0
- package/dist/blockchain/{ZipKitOTS.d.ts → core/ZipkitOTS.d.ts} +6 -15
- package/dist/blockchain/core/ZipkitOTS.d.ts.map +1 -0
- package/dist/blockchain/{ZipKitOTS.js → core/ZipkitOTS.js} +26 -84
- package/dist/blockchain/core/ZipkitOTS.js.map +1 -0
- package/dist/blockchain/core/ZipkitVerifier.d.ts +177 -0
- package/dist/blockchain/core/ZipkitVerifier.d.ts.map +1 -0
- package/dist/blockchain/core/ZipkitVerifier.js +632 -0
- package/dist/blockchain/core/ZipkitVerifier.js.map +1 -0
- package/dist/blockchain/core/contracts.d.ts +83 -0
- package/dist/blockchain/core/contracts.d.ts.map +1 -0
- package/dist/blockchain/core/contracts.js +341 -0
- package/dist/blockchain/core/contracts.js.map +1 -0
- package/dist/blockchain/core/index.d.ts +12 -0
- package/dist/blockchain/core/index.d.ts.map +1 -0
- package/dist/blockchain/core/index.js +59 -0
- package/dist/blockchain/core/index.js.map +1 -0
- package/dist/blockchain/index.d.ts +11 -7
- package/dist/blockchain/index.d.ts.map +1 -0
- package/dist/blockchain/index.js +18 -34
- package/dist/blockchain/index.js.map +1 -0
- package/dist/blockchain/node/WalletManagerNode.d.ts +47 -0
- package/dist/blockchain/node/WalletManagerNode.d.ts.map +1 -0
- package/dist/blockchain/node/WalletManagerNode.js +203 -0
- package/dist/blockchain/node/WalletManagerNode.js.map +1 -0
- package/dist/blockchain/node/index.d.ts +12 -0
- package/dist/blockchain/node/index.d.ts.map +1 -0
- package/dist/blockchain/node/index.js +24 -0
- package/dist/blockchain/node/index.js.map +1 -0
- package/dist/browser/ZipkitBrowser.d.ts +27 -0
- package/dist/browser/ZipkitBrowser.d.ts.map +1 -0
- package/dist/browser/{ZipKitBrowser.js → ZipkitBrowser.js} +96 -43
- package/dist/browser/ZipkitBrowser.js.map +1 -0
- package/dist/browser/index.d.ts +12 -0
- package/dist/browser/index.d.ts.map +1 -0
- package/dist/browser/index.js +42 -0
- package/dist/browser/index.js.map +1 -0
- package/dist/browser-esm/index.d.ts +12 -0
- package/dist/browser-esm/index.js +59559 -0
- package/dist/browser-esm/index.js.map +7 -0
- package/dist/browser-umd/index.d.ts +12 -0
- package/dist/browser-umd/index.js +59576 -0
- package/dist/browser-umd/index.js.map +7 -0
- package/dist/browser-umd/index.min.js +63 -0
- package/dist/browser.d.ts +8 -14
- package/dist/browser.js +13 -28
- package/dist/core/ZipCompress.d.ts +99 -0
- package/dist/core/ZipCompress.d.ts.map +1 -0
- package/dist/core/ZipCompress.js +309 -0
- package/dist/core/ZipCompress.js.map +1 -0
- package/dist/core/ZipDecompress.d.ts +58 -0
- package/dist/core/ZipDecompress.d.ts.map +1 -0
- package/dist/core/ZipDecompress.js +172 -0
- package/dist/core/ZipDecompress.js.map +1 -0
- package/dist/{shared → core}/ZipEntry.d.ts +8 -1
- package/dist/core/ZipEntry.d.ts.map +1 -0
- package/dist/{shared → core}/ZipEntry.js +225 -82
- package/dist/core/ZipEntry.js.map +1 -0
- package/dist/core/Zipkit.d.ts +315 -0
- package/dist/core/Zipkit.d.ts.map +1 -0
- package/dist/core/Zipkit.js +647 -0
- package/dist/core/Zipkit.js.map +1 -0
- package/dist/core/components/HashCalculator.d.ts +138 -0
- package/dist/core/components/HashCalculator.d.ts.map +1 -0
- package/dist/core/components/HashCalculator.js +360 -0
- package/dist/core/components/HashCalculator.js.map +1 -0
- package/dist/core/components/Logger.d.ts +73 -0
- package/dist/core/components/Logger.d.ts.map +1 -0
- package/dist/core/components/Logger.js +156 -0
- package/dist/core/components/Logger.js.map +1 -0
- package/dist/core/components/ProgressTracker.d.ts +43 -0
- package/dist/core/components/ProgressTracker.d.ts.map +1 -0
- package/dist/core/components/ProgressTracker.js +112 -0
- package/dist/core/components/ProgressTracker.js.map +1 -0
- package/dist/{shared → core}/components/Support.d.ts +1 -0
- package/dist/core/components/Support.d.ts.map +1 -0
- package/dist/{shared → core}/components/Support.js +1 -0
- package/dist/core/components/Support.js.map +1 -0
- package/dist/{shared → core}/components/Util.d.ts +7 -2
- package/dist/core/components/Util.d.ts.map +1 -0
- package/dist/{shared → core}/components/Util.js +14 -34
- package/dist/core/components/Util.js.map +1 -0
- package/dist/{shared → core}/constants/Errors.d.ts +1 -2
- package/dist/core/constants/Errors.d.ts.map +1 -0
- package/dist/{shared → core}/constants/Errors.js +1 -3
- package/dist/core/constants/Errors.js.map +1 -0
- package/dist/{shared → core}/constants/Headers.d.ts +3 -0
- package/dist/core/constants/Headers.d.ts.map +1 -0
- package/dist/{shared → core}/constants/Headers.js +20 -17
- package/dist/core/constants/Headers.js.map +1 -0
- package/dist/core/encryption/Manager.d.ts +58 -0
- package/dist/core/encryption/Manager.d.ts.map +1 -0
- package/dist/core/encryption/Manager.js +121 -0
- package/dist/core/encryption/Manager.js.map +1 -0
- package/dist/core/encryption/ZipCrypto.d.ts +172 -0
- package/dist/core/encryption/ZipCrypto.d.ts.map +1 -0
- package/dist/core/encryption/ZipCrypto.js +554 -0
- package/dist/core/encryption/ZipCrypto.js.map +1 -0
- package/dist/core/encryption/index.d.ts +9 -0
- package/dist/core/encryption/index.d.ts.map +1 -0
- package/dist/core/encryption/index.js +17 -0
- package/dist/core/encryption/index.js.map +1 -0
- package/dist/core/encryption/types.d.ts +29 -0
- package/dist/core/encryption/types.d.ts.map +1 -0
- package/dist/core/encryption/types.js +12 -0
- package/dist/core/encryption/types.js.map +1 -0
- package/dist/core/index.d.ts +24 -0
- package/dist/core/index.d.ts.map +1 -0
- package/dist/core/index.js +57 -0
- package/dist/core/index.js.map +1 -0
- package/dist/core/version.d.ts +5 -0
- package/dist/core/version.d.ts.map +1 -0
- package/dist/core/version.js +31 -0
- package/dist/core/version.js.map +1 -0
- package/dist/index.d.ts +8 -18
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +29 -35
- package/dist/index.js.map +1 -0
- package/dist/node/ZipCompressNode.d.ts +123 -0
- package/dist/node/ZipCompressNode.d.ts.map +1 -0
- package/dist/node/ZipCompressNode.js +576 -0
- package/dist/node/ZipCompressNode.js.map +1 -0
- package/dist/node/ZipDecompressNode.d.ts +120 -0
- package/dist/node/ZipDecompressNode.d.ts.map +1 -0
- package/dist/node/ZipDecompressNode.js +461 -0
- package/dist/node/ZipDecompressNode.js.map +1 -0
- package/dist/node/ZipkitNode.d.ts +406 -0
- package/dist/node/ZipkitNode.d.ts.map +1 -0
- package/dist/node/ZipkitNode.js +1305 -0
- package/dist/node/ZipkitNode.js.map +1 -0
- package/dist/node/index.d.ts +26 -0
- package/dist/node/index.d.ts.map +1 -0
- package/dist/node/index.js +65 -0
- package/dist/node/index.js.map +1 -0
- package/dist/types/index.d.ts +59 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/index.js +36 -1
- package/dist/types/index.js.map +1 -0
- package/examples/README.md +269 -0
- package/examples/blockchain-tokenize.ts +354 -0
- package/examples/create-zip.ts +172 -0
- package/examples/extract-zip.ts +158 -0
- package/examples/list-zip.ts +161 -0
- package/examples/test-files/data.json +116 -0
- package/examples/test-files/document.md +80 -0
- package/examples/test-files/document.txt +2 -0
- package/examples/test-files/file1.txt +48 -0
- package/examples/test-files/file2.txt +80 -0
- package/examples/tsconfig.json +44 -0
- package/examples/unzip-token.ts +491 -0
- package/examples/verify-tokenized-zip.ts +305 -0
- package/examples/zip-token.ts +604 -0
- package/package.json +108 -24
- package/src/blockchain/README.md +59 -66
- package/src/{browser/TokenVerifierBrowser.ts-remove → blockchain/browser/TokenVerifierBrowser.ts} +125 -79
- package/src/blockchain/browser/WalletManagerBrowser.ts +486 -0
- package/src/blockchain/browser/ZipkitMinterBrowser.ts +400 -0
- package/src/blockchain/browser/index.ts +13 -0
- package/src/blockchain/{ZipKitWallet.ts → core/WalletManager.ts} +241 -143
- package/src/blockchain/core/ZipkitMinter.ts +716 -0
- package/src/blockchain/{ZipKitOTS.ts → core/ZipkitOTS.ts} +28 -62
- package/src/blockchain/core/ZipkitVerifier.ts +853 -0
- package/src/blockchain/core/contracts.ts +370 -0
- package/src/blockchain/core/index.ts +71 -0
- package/src/blockchain/index.ts +21 -55
- package/src/blockchain/node/WalletManagerNode.ts +171 -0
- package/src/blockchain/node/index.ts +40 -0
- package/src/browser/{ZipKitBrowser.ts → ZipkitBrowser.ts} +104 -41
- package/src/browser/index.esm.ts +37 -0
- package/src/browser/index.ts +25 -0
- package/src/core/ZipCompress.ts +398 -0
- package/src/core/ZipDecompress.ts +212 -0
- package/src/{shared → core}/ZipEntry.ts +240 -90
- package/src/core/Zipkit.ts +794 -0
- package/src/core/components/HashCalculator.ts +384 -0
- package/src/core/components/Logger.ts +180 -0
- package/src/core/components/ProgressTracker.ts +134 -0
- package/src/{shared → core}/components/Util.ts +12 -34
- package/src/{shared → core}/constants/Errors.ts +0 -4
- package/src/{shared → core}/constants/Headers.ts +19 -17
- package/src/core/encryption/Manager.ts +137 -0
- package/src/core/encryption/ZipCrypto.ts +650 -0
- package/src/core/encryption/index.ts +15 -0
- package/src/core/encryption/types.ts +33 -0
- package/src/core/index.ts +34 -0
- package/src/core/version.ts +33 -0
- package/src/index.ts +54 -25
- package/src/node/ZipCompressNode.ts +632 -0
- package/src/node/ZipDecompressNode.ts +508 -0
- package/src/node/ZipkitNode.ts +1559 -0
- package/src/node/index.ts +69 -0
- package/src/types/index.ts +131 -1
- package/src/types/modules.d.ts +1 -11
- package/src/types/opentimestamps.d.ts +1 -23
- package/contracts/INTEGRATION.md +0 -338
- package/contracts/NETWORKS.md +0 -156
- package/contracts/NZIP-NFT-bytecode.txt +0 -1
- package/contracts/constants.ts +0 -952
- package/contracts/deploy-bytecode.mjs +0 -94
- package/dist/blockchain/CertificateToken.d.ts +0 -48
- package/dist/blockchain/CertificateToken.js +0 -386
- package/dist/blockchain/ZipKitMinter.js +0 -347
- package/dist/blockchain/ZipKitNFT.d.ts +0 -3
- package/dist/blockchain/ZipKitNFT.js +0 -7
- package/dist/blockchain/ZipKitVerifier.d.ts +0 -69
- package/dist/blockchain/ZipKitVerifier.js +0 -289
- package/dist/blockchain/ZipKitWallet.d.ts +0 -69
- package/dist/blockchain/contracts.d.ts +0 -14
- package/dist/blockchain/contracts.js +0 -77
- package/dist/blockchain/types.d.ts +0 -47
- package/dist/blockchain/types.js +0 -30
- package/dist/browser/ZipKitBrowser.d.ts +0 -18
- package/dist/browser/ZipKitStampBrowser.d.ts +0 -2
- package/dist/browser/ZipKitStampBrowser.js +0 -12
- package/dist/browser-index.d.ts +0 -18
- package/dist/browser-index.js +0 -57
- package/dist/server/ZipKitServer.d.ts +0 -74
- package/dist/server/ZipKitServer.js +0 -310
- package/dist/shared/ZipKit.d.ts +0 -243
- package/dist/shared/ZipKit.js +0 -772
- package/dist/shared/components/CertificateOTS.d.ts +0 -15
- package/dist/shared/components/CertificateOTS.js +0 -116
- package/dist/shared/components/FileSys.d.ts +0 -2
- package/dist/shared/components/FileSys.js +0 -113
- package/dist/shared/components/HashAccumulator.d.ts +0 -55
- package/dist/shared/components/HashAccumulator.js +0 -100
- package/dist/shared/components/ZipCrypto.d.ts +0 -3
- package/dist/shared/components/ZipCrypto.js +0 -78
- package/dist/shared/components/merkleTree.d.ts +0 -66
- package/dist/shared/components/merkleTree.js +0 -136
- package/dist/shared/types/index.d.ts +0 -21
- package/dist/shared/types/index.js +0 -3
- package/dist/shared/types.d.ts +0 -33
- package/dist/shared/types.js +0 -8
- package/dist/shared/version.d.ts +0 -2
- package/dist/shared/version.js +0 -6
- package/src/blockchain/CertificateToken.ts +0 -444
- package/src/blockchain/ZipKitMinter.ts +0 -470
- package/src/blockchain/ZipKitNFT.ts +0 -12
- package/src/blockchain/ZipKitVerifier.ts +0 -382
- package/src/blockchain/contracts.ts +0 -88
- package/src/blockchain/types.ts +0 -91
- package/src/browser/CertificateGeneratorBrowser.ts-remove +0 -498
- package/src/browser/ZipKitStampBrowser.ts +0 -9
- package/src/browser-index.ts +0 -36
- package/src/server/README.md +0 -25
- package/src/server/ZipKitServer.ts +0 -305
- package/src/shared/ZipKit.ts +0 -881
- package/src/shared/components/CertificateOTS.ts +0 -132
- package/src/shared/components/FileSys.ts +0 -87
- package/src/shared/components/HashAccumulator.ts +0 -113
- package/src/shared/components/ZipCrypto.ts +0 -91
- package/src/shared/components/merkleTree.ts +0 -162
- package/src/shared/types/index.ts +0 -25
- package/src/shared/types/modules.d.ts +0 -22
- package/src/shared/types/opentimestamps.d.ts +0 -23
- package/src/shared/types.d.ts +0 -8
- package/src/shared/types.ts +0 -43
- package/src/shared/version.ts +0 -3
- /package/src/{shared → core}/components/Support.ts +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* ======================================
|
|
3
|
-
*
|
|
3
|
+
* ZipkitOTS.ts - OpenTimestamps Integration
|
|
4
4
|
* ======================================
|
|
5
5
|
*
|
|
6
6
|
* This module provides comprehensive OpenTimestamps (OTS) functionality for ZIP files,
|
|
@@ -14,44 +14,10 @@
|
|
|
14
14
|
* - Integration with ZIP file metadata
|
|
15
15
|
*
|
|
16
16
|
* @fileoverview OpenTimestamps utilities for blockchain-enabled ZIP files
|
|
17
|
-
* @version 0.1.2
|
|
18
17
|
* @author NeoWare Inc.
|
|
19
18
|
*/
|
|
20
19
|
"use server";
|
|
21
20
|
"use strict";
|
|
22
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
23
|
-
if (k2 === undefined) k2 = k;
|
|
24
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
25
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
26
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
27
|
-
}
|
|
28
|
-
Object.defineProperty(o, k2, desc);
|
|
29
|
-
}) : (function(o, m, k, k2) {
|
|
30
|
-
if (k2 === undefined) k2 = k;
|
|
31
|
-
o[k2] = m[k];
|
|
32
|
-
}));
|
|
33
|
-
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
34
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
35
|
-
}) : function(o, v) {
|
|
36
|
-
o["default"] = v;
|
|
37
|
-
});
|
|
38
|
-
var __importStar = (this && this.__importStar) || (function () {
|
|
39
|
-
var ownKeys = function(o) {
|
|
40
|
-
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
41
|
-
var ar = [];
|
|
42
|
-
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
43
|
-
return ar;
|
|
44
|
-
};
|
|
45
|
-
return ownKeys(o);
|
|
46
|
-
};
|
|
47
|
-
return function (mod) {
|
|
48
|
-
if (mod && mod.__esModule) return mod;
|
|
49
|
-
var result = {};
|
|
50
|
-
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
51
|
-
__setModuleDefault(result, mod);
|
|
52
|
-
return result;
|
|
53
|
-
};
|
|
54
|
-
})();
|
|
55
21
|
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
56
22
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
57
23
|
};
|
|
@@ -65,17 +31,20 @@ exports.verifyOtsZip = verifyOtsZip;
|
|
|
65
31
|
exports.createTimestamp = createTimestamp;
|
|
66
32
|
exports.deserializeOts = deserializeOts;
|
|
67
33
|
exports.parseVerifyResult = parseVerifyResult;
|
|
68
|
-
exports.createCertificateOts = createCertificateOts;
|
|
69
34
|
exports.upgradeOTS = upgradeOTS;
|
|
70
35
|
exports.createOtsMetadataEntry = createOtsMetadataEntry;
|
|
71
36
|
// ===== Imports =====
|
|
72
37
|
const moment_timezone_1 = __importDefault(require("moment-timezone"));
|
|
73
|
-
const
|
|
74
|
-
const
|
|
75
|
-
const
|
|
76
|
-
|
|
77
|
-
const
|
|
78
|
-
|
|
38
|
+
const core_1 = __importDefault(require("../../core"));
|
|
39
|
+
const Headers_1 = require("../../core/constants/Headers");
|
|
40
|
+
const ZipCrypto_1 = require("../../core/encryption/ZipCrypto");
|
|
41
|
+
// Platform detection
|
|
42
|
+
const isNode = typeof process !== 'undefined' && process.versions && process.versions.node;
|
|
43
|
+
// Node.js specific imports
|
|
44
|
+
let fs = null;
|
|
45
|
+
if (isNode) {
|
|
46
|
+
fs = require('fs');
|
|
47
|
+
}
|
|
79
48
|
if (globalThis._bitcore)
|
|
80
49
|
delete globalThis._bitcore;
|
|
81
50
|
let OTSInstance = null;
|
|
@@ -85,7 +54,8 @@ let OTSInstance = null;
|
|
|
85
54
|
*/
|
|
86
55
|
async function getOpenTimestamps() {
|
|
87
56
|
if (!OTSInstance) {
|
|
88
|
-
|
|
57
|
+
// @ts-ignore
|
|
58
|
+
OTSInstance = (await import('opentimestamps')).default;
|
|
89
59
|
}
|
|
90
60
|
return OTSInstance;
|
|
91
61
|
}
|
|
@@ -187,7 +157,7 @@ function bufferToArrayBuffer(buf) {
|
|
|
187
157
|
/**
|
|
188
158
|
* Finds the OpenTimestamps entry in a ZIP file.
|
|
189
159
|
* Searches for TIMESTAMP_METADATA first, then TIMESTAMP_SUBMITTED.
|
|
190
|
-
* @param zip -
|
|
160
|
+
* @param zip - Zipkit instance to search
|
|
191
161
|
* @returns ZIP entry containing OTS proof, or null if not found
|
|
192
162
|
*/
|
|
193
163
|
function getOtsEntry(zip) {
|
|
@@ -209,7 +179,7 @@ function getOtsEntry(zip) {
|
|
|
209
179
|
}
|
|
210
180
|
/**
|
|
211
181
|
* Extracts OTS proof data from a ZIP entry.
|
|
212
|
-
* @param zip -
|
|
182
|
+
* @param zip - Zipkit instance
|
|
213
183
|
* @param otsEntry - ZIP entry containing OTS data
|
|
214
184
|
* @returns Promise resolving to OTS proof buffer, or null if extraction fails
|
|
215
185
|
*/
|
|
@@ -224,7 +194,7 @@ async function getOtsBuffer(zip, otsEntry) {
|
|
|
224
194
|
}
|
|
225
195
|
/**
|
|
226
196
|
* Safely extracts merkle root from a ZIP file.
|
|
227
|
-
* @param zip -
|
|
197
|
+
* @param zip - Zipkit instance
|
|
228
198
|
* @returns Merkle root hash string, or null if not available
|
|
229
199
|
*/
|
|
230
200
|
function getMerkleRootSafe(zip) {
|
|
@@ -253,7 +223,7 @@ function coerceDate(val) {
|
|
|
253
223
|
/**
|
|
254
224
|
* Verifies OpenTimestamps proof within a ZIP file.
|
|
255
225
|
* Extracts merkle root and OTS proof, then verifies against Bitcoin blockchain.
|
|
256
|
-
* @param zip -
|
|
226
|
+
* @param zip - Zipkit instance containing files and OTS proof
|
|
257
227
|
* @returns Promise resolving to verification result with status: 'none', 'error', 'pending', or 'valid'
|
|
258
228
|
*/
|
|
259
229
|
async function verifyOtsZip(zip) {
|
|
@@ -388,38 +358,6 @@ async function parseVerifyResult(verifyResult) {
|
|
|
388
358
|
}
|
|
389
359
|
return tsInfo;
|
|
390
360
|
}
|
|
391
|
-
// =========================
|
|
392
|
-
// Server-side certificate generation (HTML)
|
|
393
|
-
// =========================
|
|
394
|
-
/**
|
|
395
|
-
* Creates an HTML certificate for OpenTimestamps verification.
|
|
396
|
-
* Generates a certificate file documenting the timestamp verification results.
|
|
397
|
-
* @param fileName - Base name for the ZIP file (used for certificate filename)
|
|
398
|
-
* @param zipEntries - Array of ZIP entries to include in certificate
|
|
399
|
-
* @param timestampResult - Verification result to document
|
|
400
|
-
* @returns Promise resolving to success message with certificate filename, or error message
|
|
401
|
-
*/
|
|
402
|
-
async function createCertificateOts(fileName, zipEntries, timestampResult) {
|
|
403
|
-
if (!timestampResult || !timestampResult.merkleRoot || !fileName) {
|
|
404
|
-
return Errors_1.default.CERTIFICATE_OTS_BAD;
|
|
405
|
-
}
|
|
406
|
-
const rsp = await deserializeOts(timestampResult);
|
|
407
|
-
if (!rsp)
|
|
408
|
-
return Errors_1.default.CERTIFICATE_OTS_FAILED;
|
|
409
|
-
const result = JSON.parse(rsp);
|
|
410
|
-
const cert = (0, CertificateOTS_1.default)(result.attestStr, fileName, timestampResult.merkleRoot, result.needsUpdateMsg, result.attestationValues, zipEntries, false);
|
|
411
|
-
if (!cert)
|
|
412
|
-
return Errors_1.default.CERTIFICATE_OTS_FAILED;
|
|
413
|
-
const certFileName = fileName + '.certificate.html';
|
|
414
|
-
try {
|
|
415
|
-
fs.writeFileSync(certFileName, cert, { encoding: 'utf8' });
|
|
416
|
-
return `Certificate created as ${certFileName}`;
|
|
417
|
-
}
|
|
418
|
-
catch (error) {
|
|
419
|
-
console.error(`Failed to write certificate file: ${error}`);
|
|
420
|
-
return Errors_1.default.CERTIFICATE_OTS_FAILED;
|
|
421
|
-
}
|
|
422
|
-
}
|
|
423
361
|
/**
|
|
424
362
|
* Upgrades OpenTimestamps proof in an existing ZIP file.
|
|
425
363
|
* Replaces old timestamp metadata with upgraded OTS proof data.
|
|
@@ -429,6 +367,9 @@ async function createCertificateOts(fileName, zipEntries, timestampResult) {
|
|
|
429
367
|
* @throws Error if upgrade fails
|
|
430
368
|
*/
|
|
431
369
|
async function upgradeOTS(zipFilePath, upgradedOts) {
|
|
370
|
+
if (!fs) {
|
|
371
|
+
throw new Error('upgradeOTS() is only available in Node.js environment');
|
|
372
|
+
}
|
|
432
373
|
if (!fs.existsSync(zipFilePath)) {
|
|
433
374
|
throw new Error(`Zip file not found: ${zipFilePath}`);
|
|
434
375
|
}
|
|
@@ -439,7 +380,7 @@ async function upgradeOTS(zipFilePath, upgradedOts) {
|
|
|
439
380
|
const tempPath = `${zipFilePath}.upgrading.${Date.now()}.${process.pid}`;
|
|
440
381
|
try {
|
|
441
382
|
// Load the existing zip file
|
|
442
|
-
const zipKit = new
|
|
383
|
+
const zipKit = new core_1.default();
|
|
443
384
|
const zipData = fs.readFileSync(zipFilePath);
|
|
444
385
|
zipKit.loadZip(zipData);
|
|
445
386
|
const zipEntries = zipKit.getDirectory(false) || [];
|
|
@@ -458,7 +399,7 @@ async function upgradeOTS(zipFilePath, upgradedOts) {
|
|
|
458
399
|
continue;
|
|
459
400
|
}
|
|
460
401
|
// Copy the entry data
|
|
461
|
-
const entryData = zipKit.copyEntry(entry);
|
|
402
|
+
const entryData = await zipKit.copyEntry(entry);
|
|
462
403
|
if (!entryData) {
|
|
463
404
|
throw new Error(`Failed to copy entry data for: ${entry.filename}`);
|
|
464
405
|
}
|
|
@@ -478,7 +419,7 @@ async function upgradeOTS(zipFilePath, upgradedOts) {
|
|
|
478
419
|
tsEntry.compressedSize = upgradedOts.length;
|
|
479
420
|
tsEntry.uncompressedSize = upgradedOts.length;
|
|
480
421
|
tsEntry.cmpMethod = Headers_1.CMP_METHOD.STORED; // Store without compression
|
|
481
|
-
tsEntry.crc = (0,
|
|
422
|
+
tsEntry.crc = (0, ZipCrypto_1.crc32)(upgradedOts);
|
|
482
423
|
tsEntry.fileData = upgradedOts; // Cast to any to avoid type issues
|
|
483
424
|
// Create and add the local header for the timestamp entry
|
|
484
425
|
const localHdr = tsEntry.createLocalHdr();
|
|
@@ -546,7 +487,7 @@ async function upgradeOTS(zipFilePath, upgradedOts) {
|
|
|
546
487
|
/**
|
|
547
488
|
* Creates a ZIP metadata entry containing OpenTimestamps proof.
|
|
548
489
|
* Creates a special ZIP entry marked as metadata that stores OTS proof data.
|
|
549
|
-
* @param zipKit -
|
|
490
|
+
* @param zipKit - Zipkit instance to add metadata entry to
|
|
550
491
|
* @param ots - Buffer containing OpenTimestamps proof data
|
|
551
492
|
* @returns ZIP entry containing OTS metadata, or null if creation failed
|
|
552
493
|
*/
|
|
@@ -554,7 +495,7 @@ function createOtsMetadataEntry(zipKit, ots) {
|
|
|
554
495
|
if (!ots || !zipKit)
|
|
555
496
|
return null;
|
|
556
497
|
const tsEntry = zipKit.createZipEntry(Headers_1.TIMESTAMP_SUBMITTED);
|
|
557
|
-
tsEntry.crc = (0,
|
|
498
|
+
tsEntry.crc = (0, ZipCrypto_1.crc32)(ots);
|
|
558
499
|
tsEntry.uncompressedSize = ots.length;
|
|
559
500
|
tsEntry.compressedSize = ots.length;
|
|
560
501
|
tsEntry.cmpMethod = Headers_1.CMP_METHOD.STORED;
|
|
@@ -562,3 +503,4 @@ function createOtsMetadataEntry(zipKit, ots) {
|
|
|
562
503
|
tsEntry.isMetaData = true;
|
|
563
504
|
return tsEntry;
|
|
564
505
|
}
|
|
506
|
+
//# sourceMappingURL=ZipkitOTS.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ZipkitOTS.js","sourceRoot":"","sources":["../../../src/blockchain/core/ZipkitOTS.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,177 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
/**
|
|
3
|
+
* ZipkitVerifier - Handles NFT token verification for ZIP files
|
|
4
|
+
* Verifier API for NZIP-NFT smart contract.
|
|
5
|
+
*/
|
|
6
|
+
import { type ContractConfig } from './contracts';
|
|
7
|
+
import type { TokenMetadata } from '../../types';
|
|
8
|
+
export interface VerificationOptions {
|
|
9
|
+
debug?: boolean;
|
|
10
|
+
skipHash?: boolean;
|
|
11
|
+
}
|
|
12
|
+
export interface VerificationResult {
|
|
13
|
+
success: boolean;
|
|
14
|
+
message: string;
|
|
15
|
+
tokenMetadata?: TokenMetadata;
|
|
16
|
+
verificationDetails?: {
|
|
17
|
+
tokenId: string;
|
|
18
|
+
network: string;
|
|
19
|
+
contractAddress: string;
|
|
20
|
+
merkleRoot: string;
|
|
21
|
+
mintDate: string;
|
|
22
|
+
calculatedMerkleRoot?: string;
|
|
23
|
+
declaredMerkleRoot?: string;
|
|
24
|
+
merkleRootMatch?: boolean;
|
|
25
|
+
onChainValid?: boolean;
|
|
26
|
+
currentWallet?: string;
|
|
27
|
+
};
|
|
28
|
+
errorDetails?: {
|
|
29
|
+
errorType: 'METADATA_ERROR' | 'MERKLE_ERROR' | 'NETWORK_ERROR' | 'CONTRACT_ERROR';
|
|
30
|
+
networkName?: string;
|
|
31
|
+
rpcUrl?: string;
|
|
32
|
+
contractAddress?: string;
|
|
33
|
+
tokenId?: string;
|
|
34
|
+
merkleRoot?: string;
|
|
35
|
+
calculatedMerkleRoot?: string;
|
|
36
|
+
onChainMerkleRoot?: string;
|
|
37
|
+
};
|
|
38
|
+
}
|
|
39
|
+
export interface EnhancedVerificationResult extends VerificationResult {
|
|
40
|
+
retryAttempts?: number;
|
|
41
|
+
processingTime?: number;
|
|
42
|
+
timestamp?: number;
|
|
43
|
+
}
|
|
44
|
+
export interface BatchVerificationResult {
|
|
45
|
+
success: boolean;
|
|
46
|
+
totalTokens: number;
|
|
47
|
+
successfulVerifications: number;
|
|
48
|
+
failedVerifications: number;
|
|
49
|
+
results: EnhancedVerificationResult[];
|
|
50
|
+
processingTime: number;
|
|
51
|
+
}
|
|
52
|
+
export interface VerificationJob {
|
|
53
|
+
tokenId: string;
|
|
54
|
+
merkleRoot?: string;
|
|
55
|
+
priority?: 'low' | 'normal' | 'high';
|
|
56
|
+
retryCount?: number;
|
|
57
|
+
}
|
|
58
|
+
/**
|
|
59
|
+
* Blockchain Token Verifier for ZIP files
|
|
60
|
+
*/
|
|
61
|
+
export declare class ZipkitVerifier {
|
|
62
|
+
private debug;
|
|
63
|
+
protected maxRetries: number;
|
|
64
|
+
protected retryDelay: number;
|
|
65
|
+
protected batchDelay: number;
|
|
66
|
+
constructor(options?: VerificationOptions & {
|
|
67
|
+
maxRetries?: number;
|
|
68
|
+
retryDelay?: number;
|
|
69
|
+
batchDelay?: number;
|
|
70
|
+
});
|
|
71
|
+
/**
|
|
72
|
+
* Extract and validate token metadata from ZIP
|
|
73
|
+
*/
|
|
74
|
+
extractTokenMetadata(tokenBuffer: Buffer): Promise<{
|
|
75
|
+
success: boolean;
|
|
76
|
+
metadata?: TokenMetadata;
|
|
77
|
+
error?: string;
|
|
78
|
+
}>;
|
|
79
|
+
/**
|
|
80
|
+
* Map network name to RPC configuration using contracts.ts (single source of truth)
|
|
81
|
+
* Supports both old metadata (without networkChainId) and new metadata (with networkChainId)
|
|
82
|
+
*/
|
|
83
|
+
private getNetworkConfig;
|
|
84
|
+
/**
|
|
85
|
+
* Perform merkle root comparison
|
|
86
|
+
*/
|
|
87
|
+
private compareMerkleRoots;
|
|
88
|
+
/**
|
|
89
|
+
* Verify token against blockchain
|
|
90
|
+
* @param rpcUrlIndex Optional index of RPC URL to use (default: 0)
|
|
91
|
+
*/
|
|
92
|
+
verifyOnChain(tokenId: string, contractAddress: string, networkConfig: ContractConfig, merkleRoot: string, rpcUrlIndex?: number): Promise<{
|
|
93
|
+
success: boolean;
|
|
94
|
+
isValid?: boolean;
|
|
95
|
+
onChainMerkleRoot?: string;
|
|
96
|
+
onChainTokenizationTime?: number;
|
|
97
|
+
onChainCreator?: string;
|
|
98
|
+
onChainBlockNumber?: number;
|
|
99
|
+
error?: string;
|
|
100
|
+
rpcUrl?: string;
|
|
101
|
+
}>;
|
|
102
|
+
/**
|
|
103
|
+
* Complete verification process
|
|
104
|
+
* @param rpcUrlIndex Optional index of RPC URL to use (default: 0)
|
|
105
|
+
*/
|
|
106
|
+
verifyToken(tokenMetadata: TokenMetadata, calculatedMerkleRoot: string | null, options?: VerificationOptions, rpcUrlIndex?: number): Promise<VerificationResult>;
|
|
107
|
+
/**
|
|
108
|
+
* Verify token with retry logic and exponential backoff
|
|
109
|
+
* @param tokenMetadata Token metadata to verify
|
|
110
|
+
* @param calculatedMerkleRoot Calculated merkle root from archive
|
|
111
|
+
* @param maxRetries Maximum number of retry attempts (default: uses instance maxRetries)
|
|
112
|
+
* @returns Enhanced verification result with retry information
|
|
113
|
+
*/
|
|
114
|
+
verifyTokenWithRetry(tokenMetadata: TokenMetadata, calculatedMerkleRoot: string | null, maxRetries?: number): Promise<EnhancedVerificationResult>;
|
|
115
|
+
/**
|
|
116
|
+
* Batch verification for multiple tokens with rate limiting
|
|
117
|
+
* @param tokens Array of token metadata and merkle roots to verify
|
|
118
|
+
* @param options Batch processing options
|
|
119
|
+
* @returns Batch verification result
|
|
120
|
+
*/
|
|
121
|
+
verifyBatch(tokens: Array<{
|
|
122
|
+
tokenMetadata: TokenMetadata;
|
|
123
|
+
calculatedMerkleRoot: string | null;
|
|
124
|
+
}>, options?: {
|
|
125
|
+
parallel?: boolean;
|
|
126
|
+
maxConcurrent?: number;
|
|
127
|
+
}): Promise<BatchVerificationResult>;
|
|
128
|
+
/**
|
|
129
|
+
* Verify tokens in parallel with concurrency control
|
|
130
|
+
*/
|
|
131
|
+
private verifyBatchParallel;
|
|
132
|
+
/**
|
|
133
|
+
* Verify tokens sequentially with rate limiting
|
|
134
|
+
*/
|
|
135
|
+
private verifyBatchSequential;
|
|
136
|
+
/**
|
|
137
|
+
* Process verification jobs with priority queue
|
|
138
|
+
* @param jobs Array of verification jobs
|
|
139
|
+
* @param options Processing options
|
|
140
|
+
* @returns Batch verification result
|
|
141
|
+
*/
|
|
142
|
+
processVerificationJobs(jobs: VerificationJob[], options?: {
|
|
143
|
+
maxConcurrent?: number;
|
|
144
|
+
priorityOrder?: boolean;
|
|
145
|
+
getTokenMetadata?: (tokenId: string) => Promise<TokenMetadata | null>;
|
|
146
|
+
getCalculatedMerkleRoot?: (tokenId: string) => Promise<string | null>;
|
|
147
|
+
}): Promise<BatchVerificationResult>;
|
|
148
|
+
/**
|
|
149
|
+
* Sort verification jobs by priority
|
|
150
|
+
*/
|
|
151
|
+
private sortJobsByPriority;
|
|
152
|
+
/**
|
|
153
|
+
* Calculate retry delay with exponential backoff
|
|
154
|
+
*/
|
|
155
|
+
protected calculateRetryDelay(attempt: number): number;
|
|
156
|
+
/**
|
|
157
|
+
* Utility method for delays
|
|
158
|
+
*/
|
|
159
|
+
protected delay(ms: number): Promise<void>;
|
|
160
|
+
/**
|
|
161
|
+
* Get verification statistics
|
|
162
|
+
*/
|
|
163
|
+
getVerificationStats(): {
|
|
164
|
+
maxRetries: number;
|
|
165
|
+
retryDelay: number;
|
|
166
|
+
batchDelay: number;
|
|
167
|
+
};
|
|
168
|
+
/**
|
|
169
|
+
* Update verification configuration
|
|
170
|
+
*/
|
|
171
|
+
updateConfig(config: {
|
|
172
|
+
maxRetries?: number;
|
|
173
|
+
retryDelay?: number;
|
|
174
|
+
batchDelay?: number;
|
|
175
|
+
}): void;
|
|
176
|
+
}
|
|
177
|
+
//# sourceMappingURL=ZipkitVerifier.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ZipkitVerifier.d.ts","sourceRoot":"","sources":["../../../src/blockchain/core/ZipkitVerifier.ts"],"names":[],"mappings":"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"}
|