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,63 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ContractVersionRegistry - Central registry for contract versions and their capabilities
|
|
3
|
+
*
|
|
4
|
+
* This registry defines what each contract version supports, enabling the adapter system
|
|
5
|
+
* to handle version-specific differences cleanly.
|
|
6
|
+
*/
|
|
7
|
+
export type ContractVersion = '2.0' | '2.10' | '2.11' | '2.50';
|
|
8
|
+
/**
|
|
9
|
+
* Capabilities that a contract version may support
|
|
10
|
+
*/
|
|
11
|
+
export interface VersionCapabilities {
|
|
12
|
+
/** Whether this version supports encryptedHash field */
|
|
13
|
+
supportsEncryptedHash: boolean;
|
|
14
|
+
/** Whether this version supports fileName field (removed in v2.10+) */
|
|
15
|
+
supportsFileName: boolean;
|
|
16
|
+
/** Fields available in getZipFileInfo return value */
|
|
17
|
+
getZipFileInfoFields: string[];
|
|
18
|
+
/** Function signature variant for publicMintZipFile */
|
|
19
|
+
publicMintZipFileSignature: 'v2.0' | 'v2.10' | 'v2.11' | 'v2.50';
|
|
20
|
+
/** Whether getVersion() function is available */
|
|
21
|
+
hasGetVersion: boolean;
|
|
22
|
+
/** Additional functions available in this version */
|
|
23
|
+
additionalFunctions?: string[];
|
|
24
|
+
/** Whether this version supports timestamp proof minting (v2.50+) */
|
|
25
|
+
supportsTimestampProof?: boolean;
|
|
26
|
+
/** Whether this version supports minting fees (v2.50+) */
|
|
27
|
+
supportsMintFee?: boolean;
|
|
28
|
+
/** Whether this version supports authorized minters (v2.50+) */
|
|
29
|
+
supportsAuthorizedMinters?: boolean;
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* Registry mapping contract versions to their capabilities
|
|
33
|
+
*/
|
|
34
|
+
export declare const VERSION_REGISTRY: Record<ContractVersion, VersionCapabilities>;
|
|
35
|
+
/**
|
|
36
|
+
* Get capabilities for a specific contract version
|
|
37
|
+
* @param version Contract version string (e.g., "2.11", "2.10")
|
|
38
|
+
* @returns VersionCapabilities if version is supported, null otherwise
|
|
39
|
+
*/
|
|
40
|
+
export declare function getVersionCapabilities(version: string): VersionCapabilities | null;
|
|
41
|
+
/**
|
|
42
|
+
* List of versions that have adapter implementations
|
|
43
|
+
* This is separate from the registry to distinguish between "known" and "implemented"
|
|
44
|
+
*/
|
|
45
|
+
export declare const IMPLEMENTED_VERSIONS: ContractVersion[];
|
|
46
|
+
/**
|
|
47
|
+
* Check if a contract version is supported (has both registry entry and adapter implementation)
|
|
48
|
+
* @param version Contract version string
|
|
49
|
+
* @returns true if version is supported and has an adapter, false otherwise
|
|
50
|
+
*/
|
|
51
|
+
export declare function isVersionSupported(version: string): boolean;
|
|
52
|
+
/**
|
|
53
|
+
* Normalize version string to major.minor format
|
|
54
|
+
* @param version Version string (e.g., "2.11.0", "2.11", "2.10")
|
|
55
|
+
* @returns Normalized version (e.g., "2.11", "2.10")
|
|
56
|
+
*/
|
|
57
|
+
export declare function normalizeVersion(version: string): string;
|
|
58
|
+
/**
|
|
59
|
+
* Get all supported contract versions
|
|
60
|
+
* @returns Array of supported version strings
|
|
61
|
+
*/
|
|
62
|
+
export declare function getSupportedVersions(): ContractVersion[];
|
|
63
|
+
//# sourceMappingURL=ContractVersionRegistry.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ContractVersionRegistry.d.ts","sourceRoot":"","sources":["../../src/core/ContractVersionRegistry.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,MAAM,MAAM,eAAe,GAAG,KAAK,GAAG,MAAM,GAAG,MAAM,GAAG,MAAM,CAAC;AAE/D;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,wDAAwD;IACxD,qBAAqB,EAAE,OAAO,CAAC;IAE/B,uEAAuE;IACvE,gBAAgB,EAAE,OAAO,CAAC;IAE1B,sDAAsD;IACtD,oBAAoB,EAAE,MAAM,EAAE,CAAC;IAE/B,uDAAuD;IACvD,0BAA0B,EAAE,MAAM,GAAG,OAAO,GAAG,OAAO,GAAG,OAAO,CAAC;IAEjE,iDAAiD;IACjD,aAAa,EAAE,OAAO,CAAC;IAEvB,qDAAqD;IACrD,mBAAmB,CAAC,EAAE,MAAM,EAAE,CAAC;IAE/B,qEAAqE;IACrE,sBAAsB,CAAC,EAAE,OAAO,CAAC;IAEjC,0DAA0D;IAC1D,eAAe,CAAC,EAAE,OAAO,CAAC;IAE1B,gEAAgE;IAChE,yBAAyB,CAAC,EAAE,OAAO,CAAC;CACrC;AAED;;GAEG;AACH,eAAO,MAAM,gBAAgB,EAAE,MAAM,CAAC,eAAe,EAAE,mBAAmB,CAqDzE,CAAC;AAEF;;;;GAIG;AACH,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,MAAM,GAAG,mBAAmB,GAAG,IAAI,CASlF;AAED;;;GAGG;AACH,eAAO,MAAM,oBAAoB,EAAE,eAAe,EAA6B,CAAC;AAEhF;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAQ3D;AAED;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAcxD;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,IAAI,eAAe,EAAE,CAExD"}
|
|
@@ -0,0 +1,128 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* ContractVersionRegistry - Central registry for contract versions and their capabilities
|
|
4
|
+
*
|
|
5
|
+
* This registry defines what each contract version supports, enabling the adapter system
|
|
6
|
+
* to handle version-specific differences cleanly.
|
|
7
|
+
*/
|
|
8
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
+
exports.IMPLEMENTED_VERSIONS = exports.VERSION_REGISTRY = void 0;
|
|
10
|
+
exports.getVersionCapabilities = getVersionCapabilities;
|
|
11
|
+
exports.isVersionSupported = isVersionSupported;
|
|
12
|
+
exports.normalizeVersion = normalizeVersion;
|
|
13
|
+
exports.getSupportedVersions = getSupportedVersions;
|
|
14
|
+
/**
|
|
15
|
+
* Registry mapping contract versions to their capabilities
|
|
16
|
+
*/
|
|
17
|
+
exports.VERSION_REGISTRY = {
|
|
18
|
+
'2.0': {
|
|
19
|
+
supportsEncryptedHash: false,
|
|
20
|
+
supportsFileName: true,
|
|
21
|
+
getZipFileInfoFields: ['fileName', 'merkleRootHash', 'ipfsHash', 'creator', 'creationTimestamp', 'tokenizationTime', 'blockNumber'],
|
|
22
|
+
publicMintZipFileSignature: 'v2.0',
|
|
23
|
+
hasGetVersion: true,
|
|
24
|
+
additionalFunctions: []
|
|
25
|
+
},
|
|
26
|
+
'2.10': {
|
|
27
|
+
supportsEncryptedHash: false,
|
|
28
|
+
supportsFileName: false,
|
|
29
|
+
getZipFileInfoFields: ['merkleRootHash', 'ipfsHash', 'creator', 'creationTimestamp', 'tokenizationTime', 'blockNumber'],
|
|
30
|
+
publicMintZipFileSignature: 'v2.10',
|
|
31
|
+
hasGetVersion: true,
|
|
32
|
+
additionalFunctions: []
|
|
33
|
+
},
|
|
34
|
+
'2.11': {
|
|
35
|
+
supportsEncryptedHash: true,
|
|
36
|
+
supportsFileName: false,
|
|
37
|
+
getZipFileInfoFields: ['merkleRootHash', 'encryptedHash', 'ipfsHash', 'creator', 'creationTimestamp', 'tokenizationTime', 'blockNumber'],
|
|
38
|
+
publicMintZipFileSignature: 'v2.11',
|
|
39
|
+
hasGetVersion: true,
|
|
40
|
+
additionalFunctions: ['getEncryptedHash', 'verifyEncryptedZipFile']
|
|
41
|
+
},
|
|
42
|
+
'2.50': {
|
|
43
|
+
supportsEncryptedHash: true,
|
|
44
|
+
supportsFileName: false,
|
|
45
|
+
getZipFileInfoFields: ['merkleRootHash', 'encryptedHash', 'ipfsHash', 'creator', 'creationTimestamp', 'tokenizationTime', 'blockNumber'],
|
|
46
|
+
publicMintZipFileSignature: 'v2.50',
|
|
47
|
+
hasGetVersion: true,
|
|
48
|
+
additionalFunctions: [
|
|
49
|
+
'getEncryptedHash',
|
|
50
|
+
'verifyEncryptedZipFile',
|
|
51
|
+
'mintWithTimestampProof',
|
|
52
|
+
'hasTimestampProof',
|
|
53
|
+
'getTimestampProof',
|
|
54
|
+
'getTokenData',
|
|
55
|
+
'verifyToken',
|
|
56
|
+
'getRegistry',
|
|
57
|
+
'mintFee',
|
|
58
|
+
'mintFeeRequired',
|
|
59
|
+
'setMintFee',
|
|
60
|
+
'setMintFeeRequired',
|
|
61
|
+
'withdrawFees',
|
|
62
|
+
'authorizeMinter',
|
|
63
|
+
'deauthorizeMinter',
|
|
64
|
+
'isAuthorizedMinter'
|
|
65
|
+
],
|
|
66
|
+
supportsTimestampProof: true,
|
|
67
|
+
supportsMintFee: true,
|
|
68
|
+
supportsAuthorizedMinters: true
|
|
69
|
+
}
|
|
70
|
+
};
|
|
71
|
+
/**
|
|
72
|
+
* Get capabilities for a specific contract version
|
|
73
|
+
* @param version Contract version string (e.g., "2.11", "2.10")
|
|
74
|
+
* @returns VersionCapabilities if version is supported, null otherwise
|
|
75
|
+
*/
|
|
76
|
+
function getVersionCapabilities(version) {
|
|
77
|
+
// Normalize version string (e.g., "2.11.0" -> "2.11")
|
|
78
|
+
const normalizedVersion = normalizeVersion(version);
|
|
79
|
+
if (normalizedVersion in exports.VERSION_REGISTRY) {
|
|
80
|
+
return exports.VERSION_REGISTRY[normalizedVersion];
|
|
81
|
+
}
|
|
82
|
+
return null;
|
|
83
|
+
}
|
|
84
|
+
/**
|
|
85
|
+
* List of versions that have adapter implementations
|
|
86
|
+
* This is separate from the registry to distinguish between "known" and "implemented"
|
|
87
|
+
*/
|
|
88
|
+
exports.IMPLEMENTED_VERSIONS = ['2.10', '2.11', '2.50'];
|
|
89
|
+
/**
|
|
90
|
+
* Check if a contract version is supported (has both registry entry and adapter implementation)
|
|
91
|
+
* @param version Contract version string
|
|
92
|
+
* @returns true if version is supported and has an adapter, false otherwise
|
|
93
|
+
*/
|
|
94
|
+
function isVersionSupported(version) {
|
|
95
|
+
const normalized = normalizeVersion(version);
|
|
96
|
+
if (!normalized) {
|
|
97
|
+
return false;
|
|
98
|
+
}
|
|
99
|
+
// Version must be in registry AND have an adapter implementation
|
|
100
|
+
return getVersionCapabilities(normalized) !== null &&
|
|
101
|
+
exports.IMPLEMENTED_VERSIONS.includes(normalized);
|
|
102
|
+
}
|
|
103
|
+
/**
|
|
104
|
+
* Normalize version string to major.minor format
|
|
105
|
+
* @param version Version string (e.g., "2.11.0", "2.11", "2.10")
|
|
106
|
+
* @returns Normalized version (e.g., "2.11", "2.10")
|
|
107
|
+
*/
|
|
108
|
+
function normalizeVersion(version) {
|
|
109
|
+
// Remove any "unknown" or empty strings
|
|
110
|
+
if (!version || version === 'unknown' || version.trim() === '') {
|
|
111
|
+
return '';
|
|
112
|
+
}
|
|
113
|
+
// Extract major.minor from version string (e.g., "2.11.0" -> "2.11")
|
|
114
|
+
const parts = version.split('.');
|
|
115
|
+
if (parts.length >= 2) {
|
|
116
|
+
return `${parts[0]}.${parts[1]}`;
|
|
117
|
+
}
|
|
118
|
+
// If already in major.minor format, return as-is
|
|
119
|
+
return version;
|
|
120
|
+
}
|
|
121
|
+
/**
|
|
122
|
+
* Get all supported contract versions
|
|
123
|
+
* @returns Array of supported version strings
|
|
124
|
+
*/
|
|
125
|
+
function getSupportedVersions() {
|
|
126
|
+
return Object.keys(exports.VERSION_REGISTRY);
|
|
127
|
+
}
|
|
128
|
+
//# sourceMappingURL=ContractVersionRegistry.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ContractVersionRegistry.js","sourceRoot":"","sources":["../../src/core/ContractVersionRegistry.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,123 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Core WalletManager - Platform-agnostic wallet functionality
|
|
3
|
+
* Provides core wallet operations that work in both browser and server environments
|
|
4
|
+
*/
|
|
5
|
+
import { ethers } from 'ethers';
|
|
6
|
+
import { WalletSetupResult, NetworkConfig } from '../types';
|
|
7
|
+
export interface CommonTokenConfig {
|
|
8
|
+
address: string;
|
|
9
|
+
name: string;
|
|
10
|
+
symbol: string;
|
|
11
|
+
type: 'ERC20' | 'ERC721';
|
|
12
|
+
}
|
|
13
|
+
export interface TokenInfo {
|
|
14
|
+
address: string;
|
|
15
|
+
name: string;
|
|
16
|
+
symbol: string;
|
|
17
|
+
balance: string;
|
|
18
|
+
decimals?: number;
|
|
19
|
+
type: 'ERC20' | 'ERC721' | 'NZIP';
|
|
20
|
+
}
|
|
21
|
+
export interface WalletBasicInfo {
|
|
22
|
+
ethBalance: string;
|
|
23
|
+
transactionCount: number;
|
|
24
|
+
networkName: string;
|
|
25
|
+
chainId: bigint;
|
|
26
|
+
latestBlock: number;
|
|
27
|
+
}
|
|
28
|
+
export interface TokenScanResult {
|
|
29
|
+
foundTokens: number[];
|
|
30
|
+
searchMethod: 'recent-events' | 'iteration' | 'common-ids' | 'none';
|
|
31
|
+
}
|
|
32
|
+
export interface NZipTokenDetails {
|
|
33
|
+
tokenId: string;
|
|
34
|
+
merkleRootHash: string;
|
|
35
|
+
timestamp: number;
|
|
36
|
+
tokenURI?: string;
|
|
37
|
+
creator: string;
|
|
38
|
+
creationTimestamp: number;
|
|
39
|
+
tokenizationTime: number;
|
|
40
|
+
ipfsHash?: string;
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* Core wallet functionality that works in both browser and server environments
|
|
44
|
+
*/
|
|
45
|
+
export declare class CoreWalletManager {
|
|
46
|
+
protected wallet: ethers.Wallet | null;
|
|
47
|
+
protected provider: ethers.JsonRpcProvider | null;
|
|
48
|
+
constructor();
|
|
49
|
+
/**
|
|
50
|
+
* Setup wallet with private key and connect to network
|
|
51
|
+
*
|
|
52
|
+
* SECURITY WARNING: This method accepts a private key as a parameter.
|
|
53
|
+
* - Never hardcode private keys in source code
|
|
54
|
+
* - Always use environment variables for private keys
|
|
55
|
+
* - Use testnet keys for development/testing
|
|
56
|
+
* - Use secure key management (HSMs, KMS) for production
|
|
57
|
+
*/
|
|
58
|
+
setupWallet(privateKey: string, network: string, mintToken?: boolean): Promise<WalletSetupResult>;
|
|
59
|
+
/**
|
|
60
|
+
* Connect to the specified network
|
|
61
|
+
*/
|
|
62
|
+
protected connectToNetwork(networkConfig: NetworkConfig, mintToken: boolean): Promise<boolean>;
|
|
63
|
+
/**
|
|
64
|
+
* Get the current wallet instance
|
|
65
|
+
*/
|
|
66
|
+
getWallet(): ethers.Wallet | null;
|
|
67
|
+
/**
|
|
68
|
+
* Get the current provider instance
|
|
69
|
+
*/
|
|
70
|
+
getProvider(): ethers.JsonRpcProvider | null;
|
|
71
|
+
/**
|
|
72
|
+
* Check if wallet is ready
|
|
73
|
+
*/
|
|
74
|
+
isReady(): boolean;
|
|
75
|
+
/**
|
|
76
|
+
* Check if connected to network
|
|
77
|
+
*/
|
|
78
|
+
isOnline(): boolean;
|
|
79
|
+
}
|
|
80
|
+
/**
|
|
81
|
+
* Wallet analyzer for blockchain operations
|
|
82
|
+
*/
|
|
83
|
+
export declare class WalletAnalyzer {
|
|
84
|
+
private provider;
|
|
85
|
+
constructor(provider: ethers.JsonRpcProvider);
|
|
86
|
+
/**
|
|
87
|
+
* Get basic wallet information
|
|
88
|
+
*/
|
|
89
|
+
getWalletBasics(address: string): Promise<WalletBasicInfo>;
|
|
90
|
+
/**
|
|
91
|
+
* Scan for NZIP tokens owned by an address
|
|
92
|
+
*/
|
|
93
|
+
scanForNZipTokens(contractAddress: string, ownerAddress: string): Promise<TokenScanResult>;
|
|
94
|
+
/**
|
|
95
|
+
* Get detailed information for NZIP tokens
|
|
96
|
+
*/
|
|
97
|
+
getNZipTokenDetails(contractAddress: string, tokenIds: number[]): Promise<NZipTokenDetails[]>;
|
|
98
|
+
/**
|
|
99
|
+
* Get contract information
|
|
100
|
+
*/
|
|
101
|
+
getContractInfo(contractAddress: string): Promise<{
|
|
102
|
+
name: string;
|
|
103
|
+
symbol: string;
|
|
104
|
+
totalSupply: string;
|
|
105
|
+
} | null>;
|
|
106
|
+
/**
|
|
107
|
+
* Check for ERC20 tokens
|
|
108
|
+
*/
|
|
109
|
+
checkERC20Tokens(ownerAddress: string, tokenConfigs: CommonTokenConfig[]): Promise<TokenInfo[]>;
|
|
110
|
+
/**
|
|
111
|
+
* Check for NFT collections
|
|
112
|
+
*/
|
|
113
|
+
checkNFTCollections(ownerAddress: string, nftConfigs: CommonTokenConfig[]): Promise<TokenInfo[]>;
|
|
114
|
+
/**
|
|
115
|
+
* Get common token configurations for a network
|
|
116
|
+
*/
|
|
117
|
+
static getCommonTokens(network: string): CommonTokenConfig[];
|
|
118
|
+
/**
|
|
119
|
+
* Get common NFT configurations for a network
|
|
120
|
+
*/
|
|
121
|
+
static getCommonNFTs(network: string): CommonTokenConfig[];
|
|
122
|
+
}
|
|
123
|
+
//# sourceMappingURL=WalletManager.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"WalletManager.d.ts","sourceRoot":"","sources":["../../src/core/WalletManager.ts"],"names":[],"mappings":"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"}
|