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.
- package/LICENSE +22 -0
- package/README.md +189 -0
- package/dist/browser/TokenVerifierBrowser.d.ts +63 -0
- package/dist/browser/TokenVerifierBrowser.d.ts.map +1 -0
- package/dist/browser/TokenVerifierBrowser.js +358 -0
- package/dist/browser/TokenVerifierBrowser.js.map +1 -0
- package/dist/browser/WalletManagerBrowser.d.ts +99 -0
- package/dist/browser/WalletManagerBrowser.d.ts.map +1 -0
- package/dist/browser/WalletManagerBrowser.js +434 -0
- package/dist/browser/WalletManagerBrowser.js.map +1 -0
- package/dist/browser/ZipkitMinterBrowser.d.ts +59 -0
- package/dist/browser/ZipkitMinterBrowser.d.ts.map +1 -0
- package/dist/browser/ZipkitMinterBrowser.js +337 -0
- package/dist/browser/ZipkitMinterBrowser.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 +19 -0
- package/dist/browser/index.js.map +1 -0
- package/dist/constants/index.d.ts +5 -0
- package/dist/constants/index.d.ts.map +1 -0
- package/dist/constants/index.js +21 -0
- package/dist/constants/index.js.map +1 -0
- package/dist/constants/metadata.d.ts +18 -0
- package/dist/constants/metadata.d.ts.map +1 -0
- package/dist/constants/metadata.js +33 -0
- package/dist/constants/metadata.js.map +1 -0
- package/dist/constants/servers.d.ts +38 -0
- package/dist/constants/servers.d.ts.map +1 -0
- package/dist/constants/servers.js +54 -0
- package/dist/constants/servers.js.map +1 -0
- package/dist/core/ContractVersionRegistry.d.ts +63 -0
- package/dist/core/ContractVersionRegistry.d.ts.map +1 -0
- package/dist/core/ContractVersionRegistry.js +128 -0
- package/dist/core/ContractVersionRegistry.js.map +1 -0
- package/dist/core/WalletManager.d.ts +123 -0
- package/dist/core/WalletManager.d.ts.map +1 -0
- package/dist/core/WalletManager.js +360 -0
- package/dist/core/WalletManager.js.map +1 -0
- package/dist/core/ZipkitMinter.d.ts +155 -0
- package/dist/core/ZipkitMinter.d.ts.map +1 -0
- package/dist/core/ZipkitMinter.js +625 -0
- package/dist/core/ZipkitMinter.js.map +1 -0
- package/dist/core/ZipkitVerifier.d.ts +252 -0
- package/dist/core/ZipkitVerifier.d.ts.map +1 -0
- package/dist/core/ZipkitVerifier.js +1370 -0
- package/dist/core/ZipkitVerifier.js.map +1 -0
- package/dist/core/adapters/AdapterFactory.d.ts +22 -0
- package/dist/core/adapters/AdapterFactory.d.ts.map +1 -0
- package/dist/core/adapters/AdapterFactory.js +62 -0
- package/dist/core/adapters/AdapterFactory.js.map +1 -0
- package/dist/core/adapters/ContractVersionAdapter.d.ts +96 -0
- package/dist/core/adapters/ContractVersionAdapter.d.ts.map +1 -0
- package/dist/core/adapters/ContractVersionAdapter.js +9 -0
- package/dist/core/adapters/ContractVersionAdapter.js.map +1 -0
- package/dist/core/adapters/V2_10Adapter.d.ts +24 -0
- package/dist/core/adapters/V2_10Adapter.d.ts.map +1 -0
- package/dist/core/adapters/V2_10Adapter.js +87 -0
- package/dist/core/adapters/V2_10Adapter.js.map +1 -0
- package/dist/core/adapters/V2_11Adapter.d.ts +24 -0
- package/dist/core/adapters/V2_11Adapter.d.ts.map +1 -0
- package/dist/core/adapters/V2_11Adapter.js +87 -0
- package/dist/core/adapters/V2_11Adapter.js.map +1 -0
- package/dist/core/adapters/V2_50Adapter.d.ts +105 -0
- package/dist/core/adapters/V2_50Adapter.d.ts.map +1 -0
- package/dist/core/adapters/V2_50Adapter.js +263 -0
- package/dist/core/adapters/V2_50Adapter.js.map +1 -0
- package/dist/core/contracts.d.ts +169 -0
- package/dist/core/contracts.d.ts.map +1 -0
- package/dist/core/contracts.js +731 -0
- package/dist/core/contracts.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 +82 -0
- package/dist/core/index.js.map +1 -0
- package/dist/index.d.ts +15 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +40 -0
- package/dist/index.js.map +1 -0
- package/dist/node/WalletManagerNode.d.ts +47 -0
- package/dist/node/WalletManagerNode.d.ts.map +1 -0
- package/dist/node/WalletManagerNode.js +203 -0
- package/dist/node/WalletManagerNode.js.map +1 -0
- package/dist/node/index.d.ts +12 -0
- package/dist/node/index.d.ts.map +1 -0
- package/dist/node/index.js +21 -0
- package/dist/node/index.js.map +1 -0
- package/dist/ots/ZipkitOTS.d.ts +152 -0
- package/dist/ots/ZipkitOTS.d.ts.map +1 -0
- package/dist/ots/ZipkitOTS.js +544 -0
- package/dist/ots/ZipkitOTS.js.map +1 -0
- package/dist/ots/index.d.ts +9 -0
- package/dist/ots/index.d.ts.map +1 -0
- package/dist/ots/index.js +25 -0
- package/dist/ots/index.js.map +1 -0
- package/dist/types/index.d.ts +84 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/index.js +37 -0
- package/dist/types/index.js.map +1 -0
- package/dist/utils/Logger.d.ts +73 -0
- package/dist/utils/Logger.d.ts.map +1 -0
- package/dist/utils/Logger.js +156 -0
- package/dist/utils/Logger.js.map +1 -0
- package/dist/utils/crc32.d.ts +6 -0
- package/dist/utils/crc32.d.ts.map +1 -0
- package/dist/utils/crc32.js +23 -0
- package/dist/utils/crc32.js.map +1 -0
- package/dist/zipstamp-server/CalendarManager.d.ts +238 -0
- package/dist/zipstamp-server/CalendarManager.d.ts.map +1 -0
- package/dist/zipstamp-server/CalendarManager.js +364 -0
- package/dist/zipstamp-server/CalendarManager.js.map +1 -0
- package/dist/zipstamp-server/ZipstampServerAPI.d.ts +427 -0
- package/dist/zipstamp-server/ZipstampServerAPI.d.ts.map +1 -0
- package/dist/zipstamp-server/ZipstampServerAPI.js +696 -0
- package/dist/zipstamp-server/ZipstampServerAPI.js.map +1 -0
- package/dist/zipstamp-server/ZipstampServerClient.d.ts +590 -0
- package/dist/zipstamp-server/ZipstampServerClient.d.ts.map +1 -0
- package/dist/zipstamp-server/ZipstampServerClient.js +433 -0
- package/dist/zipstamp-server/ZipstampServerClient.js.map +1 -0
- package/dist/zipstamp-server/ZipstampServerHelpers.d.ts +430 -0
- package/dist/zipstamp-server/ZipstampServerHelpers.d.ts.map +1 -0
- package/dist/zipstamp-server/ZipstampServerHelpers.js +503 -0
- package/dist/zipstamp-server/ZipstampServerHelpers.js.map +1 -0
- package/dist/zipstamp-server/index.d.ts +24 -0
- package/dist/zipstamp-server/index.d.ts.map +1 -0
- package/dist/zipstamp-server/index.js +67 -0
- package/dist/zipstamp-server/index.js.map +1 -0
- package/package.json +117 -0
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
import type { Wallet, JsonRpcProvider } from 'ethers';
|
|
2
|
+
export interface WalletInfo {
|
|
3
|
+
address: string;
|
|
4
|
+
privateKey: string;
|
|
5
|
+
mnemonic: string;
|
|
6
|
+
}
|
|
7
|
+
export interface NetworkConfig {
|
|
8
|
+
name: string;
|
|
9
|
+
rpcUrl: string;
|
|
10
|
+
chainId: number;
|
|
11
|
+
explorerUrl: string;
|
|
12
|
+
}
|
|
13
|
+
export interface WalletSetupResult {
|
|
14
|
+
wallet: Wallet | null;
|
|
15
|
+
provider: JsonRpcProvider | null;
|
|
16
|
+
success: boolean;
|
|
17
|
+
message?: string;
|
|
18
|
+
}
|
|
19
|
+
export interface MintingResult {
|
|
20
|
+
success: boolean;
|
|
21
|
+
message: string;
|
|
22
|
+
tokenId?: string;
|
|
23
|
+
txHash?: string;
|
|
24
|
+
creationTimestamp?: number;
|
|
25
|
+
}
|
|
26
|
+
export interface MintingOptions {
|
|
27
|
+
wallet?: string;
|
|
28
|
+
network: string;
|
|
29
|
+
mintToken: boolean;
|
|
30
|
+
}
|
|
31
|
+
export interface TokenMetadata {
|
|
32
|
+
tokenId: string;
|
|
33
|
+
contractAddress: string;
|
|
34
|
+
network: string;
|
|
35
|
+
merkleRoot: string;
|
|
36
|
+
encryptedHash?: string;
|
|
37
|
+
networkChainId: number;
|
|
38
|
+
contractVersion: string;
|
|
39
|
+
transactionHash?: string;
|
|
40
|
+
blockNumber?: number;
|
|
41
|
+
owner?: string;
|
|
42
|
+
mintedAt?: string;
|
|
43
|
+
mintDate?: string;
|
|
44
|
+
creationTimestamp?: number;
|
|
45
|
+
ipfsHash?: string;
|
|
46
|
+
originalTimestamp?: {
|
|
47
|
+
digest: string;
|
|
48
|
+
tokenId?: string;
|
|
49
|
+
transactionHash?: string;
|
|
50
|
+
timestamp: string;
|
|
51
|
+
network: string;
|
|
52
|
+
networkChainId?: number;
|
|
53
|
+
contractAddress?: string;
|
|
54
|
+
batchId?: string;
|
|
55
|
+
};
|
|
56
|
+
}
|
|
57
|
+
export declare const NETWORKS: Record<string, NetworkConfig>;
|
|
58
|
+
export interface NeoZipBlockchainInfo {
|
|
59
|
+
version: string;
|
|
60
|
+
releaseDate: string;
|
|
61
|
+
}
|
|
62
|
+
export declare const NEOZIP_BLOCKCHAIN_INFO: NeoZipBlockchainInfo;
|
|
63
|
+
/**
|
|
64
|
+
* Interface for ZIP entry representation
|
|
65
|
+
* Used for compatibility with neozipkit's ZipEntry
|
|
66
|
+
*/
|
|
67
|
+
export interface ZipEntryLike {
|
|
68
|
+
filename: string;
|
|
69
|
+
sha256?: string | null;
|
|
70
|
+
isDirectory?: boolean;
|
|
71
|
+
isMetaData?: boolean;
|
|
72
|
+
}
|
|
73
|
+
/**
|
|
74
|
+
* Interface for Zipkit-like operations
|
|
75
|
+
* Used for optional integration with neozipkit
|
|
76
|
+
*/
|
|
77
|
+
export interface ZipkitLike {
|
|
78
|
+
getMerkleRoot?(): string | null;
|
|
79
|
+
getDirectory?(includeMetadata?: boolean): ZipEntryLike[];
|
|
80
|
+
extract?(entry: ZipEntryLike, raw?: boolean): Promise<Buffer | null>;
|
|
81
|
+
getZipEntry?(filename: string): ZipEntryLike | null;
|
|
82
|
+
extractToBuffer?(entry: ZipEntryLike, options?: any): Promise<Buffer>;
|
|
83
|
+
}
|
|
84
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.NEOZIP_BLOCKCHAIN_INFO = exports.NETWORKS = void 0;
|
|
4
|
+
// ============================================================================
|
|
5
|
+
// Network Configuration
|
|
6
|
+
// ============================================================================
|
|
7
|
+
exports.NETWORKS = {
|
|
8
|
+
'base': {
|
|
9
|
+
name: 'Base Mainnet',
|
|
10
|
+
rpcUrl: 'https://mainnet.base.org',
|
|
11
|
+
chainId: 8453,
|
|
12
|
+
explorerUrl: 'https://basescan.org'
|
|
13
|
+
},
|
|
14
|
+
'base-sepolia': {
|
|
15
|
+
name: 'Base Sepolia',
|
|
16
|
+
rpcUrl: 'https://sepolia.base.org',
|
|
17
|
+
chainId: 84532,
|
|
18
|
+
explorerUrl: 'https://sepolia.basescan.org'
|
|
19
|
+
},
|
|
20
|
+
'base-goerli': {
|
|
21
|
+
name: 'Base Goerli',
|
|
22
|
+
rpcUrl: 'https://goerli.base.org',
|
|
23
|
+
chainId: 84531,
|
|
24
|
+
explorerUrl: 'https://goerli.basescan.org'
|
|
25
|
+
},
|
|
26
|
+
'localhost': {
|
|
27
|
+
name: 'Localhost',
|
|
28
|
+
rpcUrl: 'http://localhost:8545',
|
|
29
|
+
chainId: 31337,
|
|
30
|
+
explorerUrl: 'http://localhost:8545'
|
|
31
|
+
}
|
|
32
|
+
};
|
|
33
|
+
exports.NEOZIP_BLOCKCHAIN_INFO = {
|
|
34
|
+
version: '0.1.0',
|
|
35
|
+
releaseDate: '2025-01-01'
|
|
36
|
+
};
|
|
37
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":";;;AAmFA,+EAA+E;AAC/E,wBAAwB;AACxB,+EAA+E;AAElE,QAAA,QAAQ,GAAkC;IACrD,MAAM,EAAE;QACN,IAAI,EAAE,cAAc;QACpB,MAAM,EAAE,0BAA0B;QAClC,OAAO,EAAE,IAAI;QACb,WAAW,EAAE,sBAAsB;KACpC;IACD,cAAc,EAAE;QACd,IAAI,EAAE,cAAc;QACpB,MAAM,EAAE,0BAA0B;QAClC,OAAO,EAAE,KAAK;QACd,WAAW,EAAE,8BAA8B;KAC5C;IACD,aAAa,EAAE;QACb,IAAI,EAAE,aAAa;QACnB,MAAM,EAAE,yBAAyB;QACjC,OAAO,EAAE,KAAK;QACd,WAAW,EAAE,6BAA6B;KAC3C;IACD,WAAW,EAAE;QACX,IAAI,EAAE,WAAW;QACjB,MAAM,EAAE,uBAAuB;QAC/B,OAAO,EAAE,KAAK;QACd,WAAW,EAAE,uBAAuB;KACrC;CACF,CAAC;AAWW,QAAA,sBAAsB,GAAyB;IAC1D,OAAO,EAAE,OAAO;IAChB,WAAW,EAAE,YAAY;CAC1B,CAAC"}
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Global Logger Utility for neozip-blockchain
|
|
3
|
+
* Provides centralized console control with configurable log levels
|
|
4
|
+
*/
|
|
5
|
+
export type LogLevel = 'debug' | 'info' | 'warn' | 'error' | 'silent';
|
|
6
|
+
export interface LoggerConfig {
|
|
7
|
+
enabled: boolean;
|
|
8
|
+
level: LogLevel;
|
|
9
|
+
}
|
|
10
|
+
/**
|
|
11
|
+
* Global Logger class for controlling console output throughout neozip-blockchain
|
|
12
|
+
*/
|
|
13
|
+
export declare class Logger {
|
|
14
|
+
private static config;
|
|
15
|
+
private static originalConsole;
|
|
16
|
+
/**
|
|
17
|
+
* Configure the logger
|
|
18
|
+
*/
|
|
19
|
+
static configure(config: Partial<LoggerConfig>): void;
|
|
20
|
+
/**
|
|
21
|
+
* Get current logger configuration
|
|
22
|
+
*/
|
|
23
|
+
static getConfig(): LoggerConfig;
|
|
24
|
+
/**
|
|
25
|
+
* Enable logging
|
|
26
|
+
*/
|
|
27
|
+
static enable(): void;
|
|
28
|
+
/**
|
|
29
|
+
* Disable all logging
|
|
30
|
+
*/
|
|
31
|
+
static disable(): void;
|
|
32
|
+
/**
|
|
33
|
+
* Set log level
|
|
34
|
+
*/
|
|
35
|
+
static setLevel(level: LogLevel): void;
|
|
36
|
+
/**
|
|
37
|
+
* Check if a log level should be output
|
|
38
|
+
*/
|
|
39
|
+
private static shouldLog;
|
|
40
|
+
/**
|
|
41
|
+
* Log a message
|
|
42
|
+
*/
|
|
43
|
+
static log(...args: any[]): void;
|
|
44
|
+
/**
|
|
45
|
+
* Log an error message
|
|
46
|
+
*/
|
|
47
|
+
static error(...args: any[]): void;
|
|
48
|
+
/**
|
|
49
|
+
* Log a warning message
|
|
50
|
+
*/
|
|
51
|
+
static warn(...args: any[]): void;
|
|
52
|
+
/**
|
|
53
|
+
* Log a debug message
|
|
54
|
+
*/
|
|
55
|
+
static debug(...args: any[]): void;
|
|
56
|
+
/**
|
|
57
|
+
* Log an info message
|
|
58
|
+
*/
|
|
59
|
+
static info(...args: any[]): void;
|
|
60
|
+
/**
|
|
61
|
+
* Override console methods globally (use with caution)
|
|
62
|
+
*/
|
|
63
|
+
static overrideConsole(): void;
|
|
64
|
+
/**
|
|
65
|
+
* Restore original console methods
|
|
66
|
+
*/
|
|
67
|
+
static restoreConsole(): void;
|
|
68
|
+
}
|
|
69
|
+
/**
|
|
70
|
+
* Environment-based configuration
|
|
71
|
+
*/
|
|
72
|
+
export declare function configureLoggerFromEnvironment(): void;
|
|
73
|
+
//# sourceMappingURL=Logger.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Logger.d.ts","sourceRoot":"","sources":["../../src/utils/Logger.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,MAAM,MAAM,QAAQ,GAAG,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,QAAQ,CAAC;AAEtE,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,EAAE,QAAQ,CAAC;CACjB;AAED;;GAEG;AACH,qBAAa,MAAM;IACjB,OAAO,CAAC,MAAM,CAAC,MAAM,CAGnB;IAEF,OAAO,CAAC,MAAM,CAAC,eAAe,CAM5B;IAEF;;OAEG;IACH,MAAM,CAAC,SAAS,CAAC,MAAM,EAAE,OAAO,CAAC,YAAY,CAAC,GAAG,IAAI;IAIrD;;OAEG;IACH,MAAM,CAAC,SAAS,IAAI,YAAY;IAIhC;;OAEG;IACH,MAAM,CAAC,MAAM,IAAI,IAAI;IAIrB;;OAEG;IACH,MAAM,CAAC,OAAO,IAAI,IAAI;IAItB;;OAEG;IACH,MAAM,CAAC,QAAQ,CAAC,KAAK,EAAE,QAAQ,GAAG,IAAI;IAKtC;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,SAAS;IAUxB;;OAEG;IACH,MAAM,CAAC,GAAG,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,GAAG,IAAI;IAMhC;;OAEG;IACH,MAAM,CAAC,KAAK,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,GAAG,IAAI;IAMlC;;OAEG;IACH,MAAM,CAAC,IAAI,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,GAAG,IAAI;IAMjC;;OAEG;IACH,MAAM,CAAC,KAAK,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,GAAG,IAAI;IAOlC;;OAEG;IACH,MAAM,CAAC,IAAI,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,GAAG,IAAI;IAOjC;;OAEG;IACH,MAAM,CAAC,eAAe,IAAI,IAAI;IAQ9B;;OAEG;IACH,MAAM,CAAC,cAAc,IAAI,IAAI;CAQ9B;AAED;;GAEG;AACH,wBAAgB,8BAA8B,IAAI,IAAI,CAuBrD"}
|
|
@@ -0,0 +1,156 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Global Logger Utility for neozip-blockchain
|
|
4
|
+
* Provides centralized console control with configurable log levels
|
|
5
|
+
*/
|
|
6
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
|
+
exports.Logger = void 0;
|
|
8
|
+
exports.configureLoggerFromEnvironment = configureLoggerFromEnvironment;
|
|
9
|
+
/**
|
|
10
|
+
* Global Logger class for controlling console output throughout neozip-blockchain
|
|
11
|
+
*/
|
|
12
|
+
class Logger {
|
|
13
|
+
/**
|
|
14
|
+
* Configure the logger
|
|
15
|
+
*/
|
|
16
|
+
static configure(config) {
|
|
17
|
+
this.config = { ...this.config, ...config };
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* Get current logger configuration
|
|
21
|
+
*/
|
|
22
|
+
static getConfig() {
|
|
23
|
+
return { ...this.config };
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* Enable logging
|
|
27
|
+
*/
|
|
28
|
+
static enable() {
|
|
29
|
+
this.config.enabled = true;
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* Disable all logging
|
|
33
|
+
*/
|
|
34
|
+
static disable() {
|
|
35
|
+
this.config.enabled = false;
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* Set log level
|
|
39
|
+
*/
|
|
40
|
+
static setLevel(level) {
|
|
41
|
+
this.config.level = level;
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* Check if a log level should be output
|
|
45
|
+
*/
|
|
46
|
+
static shouldLog(level) {
|
|
47
|
+
if (!this.config.enabled)
|
|
48
|
+
return false;
|
|
49
|
+
const levels = ['debug', 'info', 'warn', 'error', 'silent'];
|
|
50
|
+
const currentLevelIndex = levels.indexOf(this.config.level);
|
|
51
|
+
const requestedLevelIndex = levels.indexOf(level);
|
|
52
|
+
return requestedLevelIndex >= currentLevelIndex;
|
|
53
|
+
}
|
|
54
|
+
/**
|
|
55
|
+
* Log a message
|
|
56
|
+
*/
|
|
57
|
+
static log(...args) {
|
|
58
|
+
if (this.shouldLog('info')) {
|
|
59
|
+
this.originalConsole.log(...args);
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
/**
|
|
63
|
+
* Log an error message
|
|
64
|
+
*/
|
|
65
|
+
static error(...args) {
|
|
66
|
+
if (this.shouldLog('error')) {
|
|
67
|
+
this.originalConsole.error(...args);
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
/**
|
|
71
|
+
* Log a warning message
|
|
72
|
+
*/
|
|
73
|
+
static warn(...args) {
|
|
74
|
+
if (this.shouldLog('warn')) {
|
|
75
|
+
this.originalConsole.warn(...args);
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
/**
|
|
79
|
+
* Log a debug message
|
|
80
|
+
*/
|
|
81
|
+
static debug(...args) {
|
|
82
|
+
if (this.shouldLog('debug')) {
|
|
83
|
+
// Use console.log for debug messages to ensure they're visible
|
|
84
|
+
this.originalConsole.log(...args);
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
/**
|
|
88
|
+
* Log an info message
|
|
89
|
+
*/
|
|
90
|
+
static info(...args) {
|
|
91
|
+
if (this.shouldLog('info')) {
|
|
92
|
+
this.originalConsole.info(...args);
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
/**
|
|
96
|
+
* Override console methods globally (use with caution)
|
|
97
|
+
*/
|
|
98
|
+
static overrideConsole() {
|
|
99
|
+
console.log = (...args) => this.log(...args);
|
|
100
|
+
console.error = (...args) => this.error(...args);
|
|
101
|
+
console.warn = (...args) => this.warn(...args);
|
|
102
|
+
console.debug = (...args) => this.debug(...args);
|
|
103
|
+
console.info = (...args) => this.info(...args);
|
|
104
|
+
}
|
|
105
|
+
/**
|
|
106
|
+
* Restore original console methods
|
|
107
|
+
*/
|
|
108
|
+
static restoreConsole() {
|
|
109
|
+
console.log = this.originalConsole.log;
|
|
110
|
+
console.error = this.originalConsole.error;
|
|
111
|
+
console.warn = this.originalConsole.warn;
|
|
112
|
+
console.debug = this.originalConsole.debug;
|
|
113
|
+
console.info = this.originalConsole.info;
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
exports.Logger = Logger;
|
|
117
|
+
Logger.config = {
|
|
118
|
+
enabled: true,
|
|
119
|
+
level: 'info'
|
|
120
|
+
};
|
|
121
|
+
Logger.originalConsole = {
|
|
122
|
+
log: console.log,
|
|
123
|
+
error: console.error,
|
|
124
|
+
warn: console.warn,
|
|
125
|
+
debug: console.debug,
|
|
126
|
+
info: console.info
|
|
127
|
+
};
|
|
128
|
+
/**
|
|
129
|
+
* Environment-based configuration
|
|
130
|
+
*/
|
|
131
|
+
function configureLoggerFromEnvironment() {
|
|
132
|
+
const env = typeof process !== 'undefined' ? process.env : {};
|
|
133
|
+
// Check for NEOZIP_DEBUG environment variable
|
|
134
|
+
if (env.NEOZIP_DEBUG === 'false') {
|
|
135
|
+
Logger.disable();
|
|
136
|
+
}
|
|
137
|
+
else if (env.NEOZIP_DEBUG === 'true') {
|
|
138
|
+
Logger.enable();
|
|
139
|
+
Logger.setLevel('debug');
|
|
140
|
+
}
|
|
141
|
+
// Check for NEOZIP_LOG_LEVEL
|
|
142
|
+
if (env.NEOZIP_LOG_LEVEL) {
|
|
143
|
+
const level = env.NEOZIP_LOG_LEVEL;
|
|
144
|
+
if (['debug', 'info', 'warn', 'error', 'silent'].includes(level)) {
|
|
145
|
+
Logger.setLevel(level);
|
|
146
|
+
}
|
|
147
|
+
}
|
|
148
|
+
// Check for NODE_ENV
|
|
149
|
+
if (env.NODE_ENV === 'production') {
|
|
150
|
+
Logger.setLevel('error');
|
|
151
|
+
}
|
|
152
|
+
}
|
|
153
|
+
// Auto-configure from environment on import
|
|
154
|
+
// Only run in Node.js environment
|
|
155
|
+
configureLoggerFromEnvironment();
|
|
156
|
+
//# sourceMappingURL=Logger.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Logger.js","sourceRoot":"","sources":["../../src/utils/Logger.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"crc32.d.ts","sourceRoot":"","sources":["../../src/utils/crc32.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,wBAAgB,KAAK,CAAC,IAAI,EAAE,MAAM,GAAG,UAAU,GAAG,MAAM,CAevD"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.crc32 = crc32;
|
|
4
|
+
/**
|
|
5
|
+
* CRC32 checksum for ZIP metadata entries.
|
|
6
|
+
* Pure JS implementation so the library does not require neozipkit at compile time.
|
|
7
|
+
*/
|
|
8
|
+
function crc32(data) {
|
|
9
|
+
const table = new Int32Array(256);
|
|
10
|
+
for (let i = 0; i < 256; i++) {
|
|
11
|
+
let c = i;
|
|
12
|
+
for (let j = 0; j < 8; j++) {
|
|
13
|
+
c = c & 1 ? 0xedb88320 ^ (c >>> 1) : c >>> 1;
|
|
14
|
+
}
|
|
15
|
+
table[i] = c;
|
|
16
|
+
}
|
|
17
|
+
let crc = 0xffffffff;
|
|
18
|
+
for (let i = 0; i < data.length; i++) {
|
|
19
|
+
crc = table[(crc ^ data[i]) & 0xff] ^ (crc >>> 8);
|
|
20
|
+
}
|
|
21
|
+
return (crc ^ 0xffffffff) >>> 0;
|
|
22
|
+
}
|
|
23
|
+
//# sourceMappingURL=crc32.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"crc32.js","sourceRoot":"","sources":["../../src/utils/crc32.ts"],"names":[],"mappings":";;AAIA,sBAeC;AAnBD;;;GAGG;AACH,SAAgB,KAAK,CAAC,IAAyB;IAC7C,MAAM,KAAK,GAAG,IAAI,UAAU,CAAC,GAAG,CAAC,CAAC;IAClC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC;QAC7B,IAAI,CAAC,GAAG,CAAC,CAAC;QACV,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;YAC3B,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,UAAU,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;QAC/C,CAAC;QACD,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;IACf,CAAC;IAED,IAAI,GAAG,GAAG,UAAU,CAAC;IACrB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACrC,GAAG,GAAG,KAAK,CAAC,CAAC,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;IACpD,CAAC;IACD,OAAO,CAAC,GAAG,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC;AAClC,CAAC"}
|
|
@@ -0,0 +1,238 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* CalendarManager - Multi-calendar support for redundancy
|
|
3
|
+
*
|
|
4
|
+
* Similar to OpenTimestamps' approach of submitting to multiple calendars,
|
|
5
|
+
* this class manages multiple Zipstamp server calendars for reliability.
|
|
6
|
+
*
|
|
7
|
+
* **Use Cases:**
|
|
8
|
+
* - Submit timestamps to multiple calendars for redundancy
|
|
9
|
+
* - Verify from any available calendar (failover)
|
|
10
|
+
* - Monitor calendar health and availability
|
|
11
|
+
* - Automatic failover when calendars are unavailable
|
|
12
|
+
*
|
|
13
|
+
* @example
|
|
14
|
+
* ```typescript
|
|
15
|
+
* // Create manager with multiple calendars
|
|
16
|
+
* const manager = new CalendarManager([
|
|
17
|
+
* { url: 'https://alpha.timestamp.neozip.io', priority: 1 },
|
|
18
|
+
* { url: 'https://beta.timestamp.neozip.io', priority: 2 },
|
|
19
|
+
* ]);
|
|
20
|
+
*
|
|
21
|
+
* // Check health of all calendars
|
|
22
|
+
* await manager.checkAllHealth();
|
|
23
|
+
*
|
|
24
|
+
* // Submit to multiple calendars for redundancy
|
|
25
|
+
* const results = await manager.submitToMultiple(digest, chainId);
|
|
26
|
+
* console.log(`Submitted to ${results.successes.length} calendars`);
|
|
27
|
+
*
|
|
28
|
+
* // Verify from any available calendar
|
|
29
|
+
* const verification = await manager.verifyFromAny(digest, chainId, batchId);
|
|
30
|
+
* ```
|
|
31
|
+
*/
|
|
32
|
+
import { ZipstampServerClient, type CalendarIdentity, type HealthCheckResponse, type StampResponse, type VerifyResponse } from './ZipstampServerClient';
|
|
33
|
+
/**
|
|
34
|
+
* Configuration for a single calendar server
|
|
35
|
+
*/
|
|
36
|
+
export interface CalendarConfig {
|
|
37
|
+
/** Base URL of the calendar server */
|
|
38
|
+
url: string;
|
|
39
|
+
/** Priority for ordering (lower = higher priority, default: 100) */
|
|
40
|
+
priority?: number;
|
|
41
|
+
/** Optional friendly name for this calendar */
|
|
42
|
+
name?: string;
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* Status of a calendar server
|
|
46
|
+
*/
|
|
47
|
+
export interface CalendarStatus {
|
|
48
|
+
/** Base URL of the calendar */
|
|
49
|
+
url: string;
|
|
50
|
+
/** Calendar identity (if fetched) */
|
|
51
|
+
identity?: CalendarIdentity;
|
|
52
|
+
/** Health check response (if fetched) */
|
|
53
|
+
health?: HealthCheckResponse;
|
|
54
|
+
/** When this status was last updated */
|
|
55
|
+
lastChecked: Date;
|
|
56
|
+
/** Whether the calendar is currently available */
|
|
57
|
+
available: boolean;
|
|
58
|
+
/** Latency in milliseconds (if measured) */
|
|
59
|
+
latencyMs?: number;
|
|
60
|
+
/** Error message if unavailable */
|
|
61
|
+
error?: string;
|
|
62
|
+
}
|
|
63
|
+
/**
|
|
64
|
+
* Result of submitting to a single calendar
|
|
65
|
+
*/
|
|
66
|
+
export interface SubmitResult {
|
|
67
|
+
calendar: string;
|
|
68
|
+
result: StampResponse;
|
|
69
|
+
}
|
|
70
|
+
/**
|
|
71
|
+
* Result of submitting to multiple calendars
|
|
72
|
+
*/
|
|
73
|
+
export interface MultiSubmitResult {
|
|
74
|
+
/** Successful submissions */
|
|
75
|
+
successes: SubmitResult[];
|
|
76
|
+
/** Failed submissions */
|
|
77
|
+
failures: Array<{
|
|
78
|
+
calendar: string;
|
|
79
|
+
error: string;
|
|
80
|
+
}>;
|
|
81
|
+
}
|
|
82
|
+
/**
|
|
83
|
+
* Result of verifying from a calendar
|
|
84
|
+
*/
|
|
85
|
+
export interface VerifyResult {
|
|
86
|
+
calendar: string;
|
|
87
|
+
result: VerifyResponse;
|
|
88
|
+
}
|
|
89
|
+
/**
|
|
90
|
+
* Options for multi-calendar operations
|
|
91
|
+
*/
|
|
92
|
+
export interface MultiCalendarOptions {
|
|
93
|
+
/** Minimum number of successful submissions required (default: 1) */
|
|
94
|
+
minSuccess?: number;
|
|
95
|
+
/** Timeout per calendar in milliseconds (default: 30000) */
|
|
96
|
+
timeout?: number;
|
|
97
|
+
/** Whether to continue after minSuccess is reached (default: true) */
|
|
98
|
+
continueAfterMinSuccess?: boolean;
|
|
99
|
+
}
|
|
100
|
+
export declare class CalendarManager {
|
|
101
|
+
private calendars;
|
|
102
|
+
private statusCache;
|
|
103
|
+
/**
|
|
104
|
+
* Create a new CalendarManager
|
|
105
|
+
*
|
|
106
|
+
* @param calendars - Optional initial list of calendar configurations
|
|
107
|
+
*/
|
|
108
|
+
constructor(calendars?: CalendarConfig[]);
|
|
109
|
+
/**
|
|
110
|
+
* Add a calendar server to the manager
|
|
111
|
+
*
|
|
112
|
+
* @param config - Calendar configuration
|
|
113
|
+
*/
|
|
114
|
+
addCalendar(config: CalendarConfig): void;
|
|
115
|
+
/**
|
|
116
|
+
* Remove a calendar server from the manager
|
|
117
|
+
*
|
|
118
|
+
* @param url - URL of the calendar to remove
|
|
119
|
+
* @returns true if removed, false if not found
|
|
120
|
+
*/
|
|
121
|
+
removeCalendar(url: string): boolean;
|
|
122
|
+
/**
|
|
123
|
+
* Get all configured calendars
|
|
124
|
+
*
|
|
125
|
+
* @returns Copy of the calendar configurations array
|
|
126
|
+
*/
|
|
127
|
+
getCalendars(): CalendarConfig[];
|
|
128
|
+
/**
|
|
129
|
+
* Get the number of configured calendars
|
|
130
|
+
*/
|
|
131
|
+
get count(): number;
|
|
132
|
+
/**
|
|
133
|
+
* Check health of all configured calendars
|
|
134
|
+
*
|
|
135
|
+
* Updates the internal status cache with results.
|
|
136
|
+
*
|
|
137
|
+
* @returns Array of calendar statuses
|
|
138
|
+
*/
|
|
139
|
+
checkAllHealth(): Promise<CalendarStatus[]>;
|
|
140
|
+
/**
|
|
141
|
+
* Check health of a specific calendar
|
|
142
|
+
*
|
|
143
|
+
* @param url - URL of the calendar to check
|
|
144
|
+
* @returns Calendar status
|
|
145
|
+
*/
|
|
146
|
+
checkHealth(url: string): Promise<CalendarStatus>;
|
|
147
|
+
/**
|
|
148
|
+
* Get cached status for a calendar
|
|
149
|
+
*
|
|
150
|
+
* @param url - URL of the calendar
|
|
151
|
+
* @returns Cached status or undefined if not checked
|
|
152
|
+
*/
|
|
153
|
+
getStatus(url: string): CalendarStatus | undefined;
|
|
154
|
+
/**
|
|
155
|
+
* Get all cached statuses
|
|
156
|
+
*
|
|
157
|
+
* @returns Map of URL to status
|
|
158
|
+
*/
|
|
159
|
+
getAllStatuses(): Map<string, CalendarStatus>;
|
|
160
|
+
/**
|
|
161
|
+
* Get calendars that are currently healthy
|
|
162
|
+
*
|
|
163
|
+
* Returns calendars sorted by priority. If a calendar hasn't been
|
|
164
|
+
* checked yet, it's assumed to be available.
|
|
165
|
+
*
|
|
166
|
+
* @returns Array of healthy calendar configurations
|
|
167
|
+
*/
|
|
168
|
+
getHealthyCalendars(): CalendarConfig[];
|
|
169
|
+
/**
|
|
170
|
+
* Get calendars that are currently unavailable
|
|
171
|
+
*
|
|
172
|
+
* @returns Array of unavailable calendar configurations
|
|
173
|
+
*/
|
|
174
|
+
getUnhealthyCalendars(): CalendarConfig[];
|
|
175
|
+
/**
|
|
176
|
+
* Submit digest to multiple calendars for redundancy
|
|
177
|
+
*
|
|
178
|
+
* Submits to all healthy calendars in parallel. Useful for ensuring
|
|
179
|
+
* your timestamp is recorded by multiple independent servers.
|
|
180
|
+
* Stamping requires a verified email (pass email in the request).
|
|
181
|
+
*
|
|
182
|
+
* @param digest - SHA-256 digest to timestamp
|
|
183
|
+
* @param chainId - Optional chain ID hint
|
|
184
|
+
* @param email - Email address (must be verified on each server)
|
|
185
|
+
* @param options - Multi-calendar options
|
|
186
|
+
* @returns Results from all submission attempts
|
|
187
|
+
* @throws Error if fewer than minSuccess calendars succeed
|
|
188
|
+
*/
|
|
189
|
+
submitToMultiple(digest: string, chainId?: number, email?: string, options?: MultiCalendarOptions): Promise<MultiSubmitResult>;
|
|
190
|
+
/**
|
|
191
|
+
* Verify digest by trying calendars until one succeeds
|
|
192
|
+
*
|
|
193
|
+
* Tries each healthy calendar in priority order until verification
|
|
194
|
+
* succeeds. Useful for failover when a calendar is temporarily unavailable.
|
|
195
|
+
*
|
|
196
|
+
* **Note:** Verification is PUBLIC - no API key required.
|
|
197
|
+
*
|
|
198
|
+
* @param digest - SHA-256 digest to verify
|
|
199
|
+
* @param chainId - Optional chain ID hint
|
|
200
|
+
* @param batchId - Optional batch ID hint
|
|
201
|
+
* @returns Verification result from the first successful calendar
|
|
202
|
+
* @throws Error if no calendar can verify the digest
|
|
203
|
+
*/
|
|
204
|
+
verifyFromAny(digest: string, chainId?: number, batchId?: string): Promise<VerifyResult>;
|
|
205
|
+
/**
|
|
206
|
+
* Poll for confirmation from any calendar
|
|
207
|
+
*
|
|
208
|
+
* Polls healthy calendars until the digest is confirmed or timeout
|
|
209
|
+
* is reached. Returns as soon as any calendar reports confirmation.
|
|
210
|
+
*
|
|
211
|
+
* @param digest - SHA-256 digest to check
|
|
212
|
+
* @param chainId - Optional chain ID hint
|
|
213
|
+
* @param batchId - Optional batch ID hint
|
|
214
|
+
* @param timeout - Maximum time to poll in milliseconds (default: 300000 = 5 minutes)
|
|
215
|
+
* @param interval - Time between polling attempts in milliseconds (default: 10000 = 10 seconds)
|
|
216
|
+
* @returns Verification result if confirmed, null if timeout
|
|
217
|
+
*/
|
|
218
|
+
pollForConfirmation(digest: string, chainId?: number, batchId?: string, timeout?: number, interval?: number): Promise<VerifyResult | null>;
|
|
219
|
+
/**
|
|
220
|
+
* Create a client for a specific calendar
|
|
221
|
+
*
|
|
222
|
+
* @param url - URL of the calendar (must be configured)
|
|
223
|
+
* @returns ZipstampServerClient instance
|
|
224
|
+
* @throws Error if calendar is not configured
|
|
225
|
+
*/
|
|
226
|
+
getClient(url: string): ZipstampServerClient;
|
|
227
|
+
/**
|
|
228
|
+
* Get client for the highest priority healthy calendar
|
|
229
|
+
*
|
|
230
|
+
* @returns ZipstampServerClient instance or null if no healthy calendars
|
|
231
|
+
*/
|
|
232
|
+
getBestClient(): ZipstampServerClient | null;
|
|
233
|
+
/**
|
|
234
|
+
* Clear all cached health statuses
|
|
235
|
+
*/
|
|
236
|
+
clearCache(): void;
|
|
237
|
+
}
|
|
238
|
+
//# sourceMappingURL=CalendarManager.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CalendarManager.d.ts","sourceRoot":"","sources":["../../src/zipstamp-server/CalendarManager.ts"],"names":[],"mappings":"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"}
|