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,252 @@
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
+ * Enable RPC consensus mechanism for enhanced security
13
+ * When enabled, queries multiple RPC endpoints and requires majority agreement
14
+ * Default: false (disabled for quick validation)
15
+ */
16
+ rpcConsensus?: boolean;
17
+ /**
18
+ * Minimum number of RPC endpoints that must agree (when consensus enabled)
19
+ * Default: 2 (majority of 3 endpoints)
20
+ */
21
+ minRpcConsensus?: number;
22
+ /**
23
+ * Validate chainId from RPC matches expected chainId
24
+ * Default: true
25
+ */
26
+ validateRpcChainId?: boolean;
27
+ /**
28
+ * Validate contract version matches on-chain version
29
+ * When enabled, queries on-chain version and validates it matches metadata version (or used version for legacy files)
30
+ * Default: true (enabled for security)
31
+ */
32
+ validateContractVersion?: boolean;
33
+ }
34
+ export interface VerificationResult {
35
+ success: boolean;
36
+ message: string;
37
+ tokenMetadata?: TokenMetadata;
38
+ verificationDetails?: {
39
+ tokenId: string;
40
+ network: string;
41
+ contractAddress: string;
42
+ merkleRoot: string;
43
+ mintDate: string;
44
+ calculatedMerkleRoot?: string;
45
+ declaredMerkleRoot?: string;
46
+ merkleRootMatch?: boolean;
47
+ onChainValid?: boolean;
48
+ currentWallet?: string;
49
+ };
50
+ errorDetails?: {
51
+ errorType: 'METADATA_ERROR' | 'MERKLE_ERROR' | 'NETWORK_ERROR' | 'CONTRACT_ERROR';
52
+ networkName?: string;
53
+ rpcUrl?: string;
54
+ contractAddress?: string;
55
+ tokenId?: string;
56
+ merkleRoot?: string;
57
+ calculatedMerkleRoot?: string;
58
+ onChainMerkleRoot?: string;
59
+ };
60
+ }
61
+ export interface EnhancedVerificationResult extends VerificationResult {
62
+ retryAttempts?: number;
63
+ processingTime?: number;
64
+ timestamp?: number;
65
+ }
66
+ export interface BatchVerificationResult {
67
+ success: boolean;
68
+ totalTokens: number;
69
+ successfulVerifications: number;
70
+ failedVerifications: number;
71
+ results: EnhancedVerificationResult[];
72
+ processingTime: number;
73
+ }
74
+ export interface VerificationJob {
75
+ tokenId: string;
76
+ merkleRoot?: string;
77
+ priority?: 'low' | 'normal' | 'high';
78
+ retryCount?: number;
79
+ }
80
+ /**
81
+ * Blockchain Token Verifier for ZIP files
82
+ */
83
+ export declare class ZipkitVerifier {
84
+ private debug;
85
+ protected maxRetries: number;
86
+ protected retryDelay: number;
87
+ protected batchDelay: number;
88
+ constructor(options?: VerificationOptions & {
89
+ maxRetries?: number;
90
+ retryDelay?: number;
91
+ batchDelay?: number;
92
+ });
93
+ /**
94
+ * Extracts and normalizes token metadata from a tokenized ZIP archive.
95
+ *
96
+ * Handles field name variations across different token versions:
97
+ * - chainId vs networkChainId
98
+ * - timestamp vs mintedAt
99
+ * - Validates required fields
100
+ *
101
+ * @param zipkit - ZipkitNode instance with loaded archive
102
+ * @returns Normalized TokenMetadata or null if not tokenized
103
+ * @throws Error if TOKEN file exists but is invalid
104
+ *
105
+ * @example
106
+ * ```typescript
107
+ * import { ZipkitNode } from 'neozipkit/node';
108
+ * import { ZipkitVerifier } from 'neozipkit/blockchain';
109
+ *
110
+ * const zipkit = new ZipkitNode();
111
+ * await zipkit.loadZipFile('archive.nzip');
112
+ * const metadata = await ZipkitVerifier.extractTokenMetadata(zipkit);
113
+ * if (metadata) {
114
+ * console.log(`Token ID: ${metadata.tokenId}`);
115
+ * console.log(`Network: ${metadata.network}`);
116
+ * }
117
+ * ```
118
+ */
119
+ static extractTokenMetadata(zipkit: any): Promise<TokenMetadata | null>;
120
+ /**
121
+ * Instance method for convenience - extracts token metadata from loaded archive
122
+ * @param zipkit - ZipkitNode instance with loaded archive
123
+ * @returns Normalized TokenMetadata or null if not tokenized
124
+ */
125
+ getTokenMetadata(zipkit: any): Promise<TokenMetadata | null>;
126
+ /**
127
+ * Query contract version from blockchain
128
+ * @param contractAddress - Contract address
129
+ * @param networkConfig - Network configuration with RPC URLs
130
+ * @param rpcUrlIndex - Optional RPC URL index (default: 0)
131
+ * @returns Contract version string or null if query fails
132
+ */
133
+ private queryContractVersion;
134
+ /**
135
+ * Extract and validate token metadata from ZIP
136
+ */
137
+ extractTokenMetadata(tokenBuffer: Buffer): Promise<{
138
+ success: boolean;
139
+ metadata?: TokenMetadata;
140
+ error?: string;
141
+ }>;
142
+ /**
143
+ * Map network name to RPC configuration using contracts.ts (single source of truth)
144
+ * REQUIRES chainId for security - network names are ambiguous and can match wrong networks
145
+ *
146
+ * @param networkName Network name (for logging/display purposes only)
147
+ * @param chainId Chain ID (REQUIRED - must be provided)
148
+ * @returns Network configuration or error if chainId is missing or invalid
149
+ */
150
+ private getNetworkConfig;
151
+ /**
152
+ * Perform merkle root comparison
153
+ * Uses direct string comparison - merkle roots are hex strings and must match exactly
154
+ * Case-sensitive comparison ensures no encoding issues or false positives
155
+ */
156
+ private compareMerkleRoots;
157
+ /**
158
+ * Query multiple RPC endpoints with consensus mechanism
159
+ * Returns data only if majority of endpoints agree
160
+ */
161
+ private queryMultipleRPCsWithConsensus;
162
+ /**
163
+ * Verify token against blockchain
164
+ * @param rpcUrlIndex Optional index of RPC URL to use (default: 0)
165
+ * @param options Optional verification options including RPC consensus settings
166
+ */
167
+ verifyOnChain(tokenId: string, contractAddress: string, networkConfig: ContractConfig, merkleRoot: string, rpcUrlIndex?: number, options?: VerificationOptions, metadataContractVersion?: string): Promise<{
168
+ success: boolean;
169
+ isValid?: boolean;
170
+ onChainMerkleRoot?: string;
171
+ onChainTokenizationTime?: number;
172
+ onChainCreator?: string;
173
+ onChainBlockNumber?: number;
174
+ error?: string;
175
+ rpcUrl?: string;
176
+ }>;
177
+ /**
178
+ * Complete verification process
179
+ * @param rpcUrlIndex Optional index of RPC URL to use (default: 0)
180
+ */
181
+ verifyToken(tokenMetadata: TokenMetadata, calculatedMerkleRoot: string | null, options?: VerificationOptions, rpcUrlIndex?: number): Promise<VerificationResult>;
182
+ /**
183
+ * Verify token with retry logic and exponential backoff
184
+ * @param tokenMetadata Token metadata to verify
185
+ * @param calculatedMerkleRoot Calculated merkle root from archive
186
+ * @param maxRetries Maximum number of retry attempts (default: uses instance maxRetries)
187
+ * @returns Enhanced verification result with retry information
188
+ */
189
+ verifyTokenWithRetry(tokenMetadata: TokenMetadata, calculatedMerkleRoot: string | null, maxRetries?: number): Promise<EnhancedVerificationResult>;
190
+ /**
191
+ * Batch verification for multiple tokens with rate limiting
192
+ * @param tokens Array of token metadata and merkle roots to verify
193
+ * @param options Batch processing options
194
+ * @returns Batch verification result
195
+ */
196
+ verifyBatch(tokens: Array<{
197
+ tokenMetadata: TokenMetadata;
198
+ calculatedMerkleRoot: string | null;
199
+ }>, options?: {
200
+ parallel?: boolean;
201
+ maxConcurrent?: number;
202
+ }): Promise<BatchVerificationResult>;
203
+ /**
204
+ * Verify tokens in parallel with concurrency control
205
+ */
206
+ private verifyBatchParallel;
207
+ /**
208
+ * Verify tokens sequentially with rate limiting
209
+ */
210
+ private verifyBatchSequential;
211
+ /**
212
+ * Process verification jobs with priority queue
213
+ * @param jobs Array of verification jobs
214
+ * @param options Processing options
215
+ * @returns Batch verification result
216
+ */
217
+ processVerificationJobs(jobs: VerificationJob[], options?: {
218
+ maxConcurrent?: number;
219
+ priorityOrder?: boolean;
220
+ getTokenMetadata?: (tokenId: string) => Promise<TokenMetadata | null>;
221
+ getCalculatedMerkleRoot?: (tokenId: string) => Promise<string | null>;
222
+ }): Promise<BatchVerificationResult>;
223
+ /**
224
+ * Sort verification jobs by priority
225
+ */
226
+ private sortJobsByPriority;
227
+ /**
228
+ * Calculate retry delay with exponential backoff
229
+ */
230
+ protected calculateRetryDelay(attempt: number): number;
231
+ /**
232
+ * Utility method for delays
233
+ */
234
+ protected delay(ms: number): Promise<void>;
235
+ /**
236
+ * Get verification statistics
237
+ */
238
+ getVerificationStats(): {
239
+ maxRetries: number;
240
+ retryDelay: number;
241
+ batchDelay: number;
242
+ };
243
+ /**
244
+ * Update verification configuration
245
+ */
246
+ updateConfig(config: {
247
+ maxRetries?: number;
248
+ retryDelay?: number;
249
+ batchDelay?: number;
250
+ }): void;
251
+ }
252
+ //# sourceMappingURL=ZipkitVerifier.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ZipkitVerifier.d.ts","sourceRoot":"","sources":["../../src/core/ZipkitVerifier.ts"],"names":[],"mappings":"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"}