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,337 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* ZipkitMinterBrowser - Browser-specific NFT minting for ZIP files
|
|
4
|
+
* Extends core minting functionality with browser-specific features
|
|
5
|
+
*/
|
|
6
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
|
+
exports.ZipkitMinterBrowser = void 0;
|
|
8
|
+
const contracts_1 = require("../core/contracts");
|
|
9
|
+
class ZipkitMinterBrowser {
|
|
10
|
+
constructor(merkleRoot, walletManager, encryptedHash) {
|
|
11
|
+
this.merkleRoot = merkleRoot;
|
|
12
|
+
this.encryptedHash = encryptedHash || '';
|
|
13
|
+
this.walletManager = walletManager;
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* Initialize the minter with wallet manager
|
|
17
|
+
*/
|
|
18
|
+
async initialize() {
|
|
19
|
+
if (!this.walletManager.getContract() || !this.walletManager.getBrowserProvider()) {
|
|
20
|
+
throw new Error("Wallet manager not initialized");
|
|
21
|
+
}
|
|
22
|
+
// Browser minter uses wallet manager directly, no core minter needed
|
|
23
|
+
console.log('ZipkitMinterBrowser initialized with wallet manager');
|
|
24
|
+
}
|
|
25
|
+
getNetworkName(chainId) {
|
|
26
|
+
const networkNames = {
|
|
27
|
+
1: "homestead",
|
|
28
|
+
11155111: "sepolia",
|
|
29
|
+
84532: "base-sepolia",
|
|
30
|
+
8453: "base"
|
|
31
|
+
};
|
|
32
|
+
return networkNames[chainId] || `chain-${chainId}`;
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* Check for any existing tokens with the same Merkle Root
|
|
36
|
+
*/
|
|
37
|
+
async findTokensByMerkleRoot() {
|
|
38
|
+
const contract = this.walletManager.getContract();
|
|
39
|
+
if (!contract) {
|
|
40
|
+
throw new Error("Service not initialized");
|
|
41
|
+
}
|
|
42
|
+
try {
|
|
43
|
+
const tokenIds = await contract.getFunction("getTokensByMerkleRoot")(this.merkleRoot);
|
|
44
|
+
if (tokenIds.length === 0) {
|
|
45
|
+
return [];
|
|
46
|
+
}
|
|
47
|
+
const existingTokens = [];
|
|
48
|
+
for (const tokenId of tokenIds) {
|
|
49
|
+
try {
|
|
50
|
+
const owner = await contract.getFunction("ownerOf")(tokenId);
|
|
51
|
+
const zipFileInfo = await contract.getFunction("getZipFileInfo")(tokenId);
|
|
52
|
+
existingTokens.push({
|
|
53
|
+
tokenId: tokenId.toString(),
|
|
54
|
+
owner: owner,
|
|
55
|
+
creationTimestamp: Number(zipFileInfo.tokenizationTime) || 0,
|
|
56
|
+
mintedAt: new Date(Number(zipFileInfo.tokenizationTime) * 1000).toISOString(),
|
|
57
|
+
transactionHash: ''
|
|
58
|
+
});
|
|
59
|
+
}
|
|
60
|
+
catch (error) {
|
|
61
|
+
console.warn(`Could not get info for token ${tokenId}:`, error);
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
return existingTokens;
|
|
65
|
+
}
|
|
66
|
+
catch (error) {
|
|
67
|
+
console.error("Error finding tokens by merkle root:", error);
|
|
68
|
+
return [];
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
/**
|
|
72
|
+
* Estimate gas cost for minting
|
|
73
|
+
*/
|
|
74
|
+
async estimateGasCost() {
|
|
75
|
+
const contract = this.walletManager.getContract();
|
|
76
|
+
const provider = this.walletManager.getBrowserProvider();
|
|
77
|
+
if (!contract || !provider) {
|
|
78
|
+
throw new Error("Service not initialized");
|
|
79
|
+
}
|
|
80
|
+
try {
|
|
81
|
+
console.log(`⛽ Estimating gas for ZIP archive (${this.merkleRoot.slice(0, 10)}...)`);
|
|
82
|
+
const signer = await provider.getSigner();
|
|
83
|
+
const contractWithSigner = contract.connect(signer);
|
|
84
|
+
// Create a timestamp for the archive (current time)
|
|
85
|
+
const creationTimestamp = Math.floor(Date.now() / 1000);
|
|
86
|
+
// Placeholder values for IPFS hash and token URI
|
|
87
|
+
const ipfsHash = ""; // Empty for now, could be implemented later
|
|
88
|
+
const tokenURI = ""; // Empty for now, could be implemented later
|
|
89
|
+
// Get adapter for this contract version
|
|
90
|
+
const config = this.walletManager.getCurrentConfig();
|
|
91
|
+
if (!config.version) {
|
|
92
|
+
throw new Error(`Contract version not specified for network ${config.network}`);
|
|
93
|
+
}
|
|
94
|
+
const adapter = (0, contracts_1.getContractAdapterByVersion)(config.version);
|
|
95
|
+
// Estimate gas using adapter (handles version-specific signatures)
|
|
96
|
+
const GAS_ESTIMATION_TIMEOUT = 30000; // 30 seconds
|
|
97
|
+
const gasEstimate = await Promise.race([
|
|
98
|
+
adapter.estimateGasForMint(contractWithSigner, this.merkleRoot, this.encryptedHash || undefined, creationTimestamp, ipfsHash, tokenURI),
|
|
99
|
+
new Promise((_, reject) => setTimeout(() => reject(new Error('Gas estimation timeout')), GAS_ESTIMATION_TIMEOUT))
|
|
100
|
+
]);
|
|
101
|
+
// Get current gas price (use read provider if available) with timeout
|
|
102
|
+
const readProvider = this.walletManager.getReadProvider();
|
|
103
|
+
const providerForRead = readProvider || provider;
|
|
104
|
+
const gasPrice = await Promise.race([
|
|
105
|
+
providerForRead.getFeeData(),
|
|
106
|
+
new Promise((_, reject) => setTimeout(() => reject(new Error('Gas price fetch timeout')), 10000))
|
|
107
|
+
]);
|
|
108
|
+
const gasCost = gasEstimate * (gasPrice.gasPrice || BigInt(0));
|
|
109
|
+
// Convert to ETH (18 decimals)
|
|
110
|
+
const costInEth = Number(gasCost) / 1e18;
|
|
111
|
+
console.log(`⛽ Estimated gas: ${gasEstimate.toString()} units`);
|
|
112
|
+
console.log(`💰 Estimated cost: ${costInEth.toFixed(6)} ETH`);
|
|
113
|
+
return costInEth.toFixed(6);
|
|
114
|
+
}
|
|
115
|
+
catch (error) {
|
|
116
|
+
console.warn('Gas estimation failed:', error);
|
|
117
|
+
// Provide fallback estimate based on error type
|
|
118
|
+
if (error instanceof Error) {
|
|
119
|
+
if (error.message.includes("not supported") || error.message.includes("method")) {
|
|
120
|
+
console.warn("RPC method not supported by wallet provider, using fallback estimate");
|
|
121
|
+
return "0.002"; // Higher fallback estimate for complex contract calls
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
return "0.001"; // Default fallback estimate
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
/**
|
|
128
|
+
* Mint a new token
|
|
129
|
+
*/
|
|
130
|
+
async mintToken() {
|
|
131
|
+
const contract = this.walletManager.getContract();
|
|
132
|
+
const provider = this.walletManager.getBrowserProvider();
|
|
133
|
+
const config = this.walletManager.getCurrentConfig();
|
|
134
|
+
if (!contract || !provider || !config.address) {
|
|
135
|
+
throw new Error("Service not initialized");
|
|
136
|
+
}
|
|
137
|
+
try {
|
|
138
|
+
console.log("🎯 Minting NFT token for ZIP archive...");
|
|
139
|
+
console.log(`📝 Minting token for ZIP archive (filename stored in ZIP metadata only for privacy)`);
|
|
140
|
+
console.log(`🔐 Merkle Root: ${this.merkleRoot}`);
|
|
141
|
+
console.log(`📍 Contract: ${config.address}`);
|
|
142
|
+
// Call the actual contract to mint the token
|
|
143
|
+
const signer = await provider.getSigner();
|
|
144
|
+
const contractWithSigner = contract.connect(signer);
|
|
145
|
+
// Create a timestamp for the archive (current time)
|
|
146
|
+
const creationTimestamp = Math.floor(Date.now() / 1000);
|
|
147
|
+
// Placeholder values for IPFS hash and token URI
|
|
148
|
+
const ipfsHash = ""; // Empty for now, could be implemented later
|
|
149
|
+
const tokenURI = ""; // Empty for now, could be implemented later
|
|
150
|
+
console.log("📡 Submitting transaction to blockchain...");
|
|
151
|
+
console.log(`🕐 Creation timestamp: ${creationTimestamp}`);
|
|
152
|
+
console.log("🔒 Note: Filename is not stored on blockchain for privacy");
|
|
153
|
+
// Get adapter for this contract version
|
|
154
|
+
if (!config.version) {
|
|
155
|
+
throw new Error(`Contract version not specified for network ${config.network}`);
|
|
156
|
+
}
|
|
157
|
+
const adapter = (0, contracts_1.getContractAdapterByVersion)(config.version);
|
|
158
|
+
// Send the transaction using adapter (this will trigger wallet approval)
|
|
159
|
+
// Adapter handles version-specific function signatures
|
|
160
|
+
// Add timeout to prevent hanging if wallet doesn't respond
|
|
161
|
+
const TX_SEND_TIMEOUT = 60000; // 60 seconds for user to approve
|
|
162
|
+
console.log("⏳ Waiting for wallet approval...");
|
|
163
|
+
const tx = await Promise.race([
|
|
164
|
+
adapter.mintZipFile(contractWithSigner, this.merkleRoot, this.encryptedHash || undefined, creationTimestamp, ipfsHash, tokenURI),
|
|
165
|
+
new Promise((_, reject) => setTimeout(() => reject(new Error('Transaction send timeout - wallet approval dialog may not have appeared. Please check your wallet.')), TX_SEND_TIMEOUT))
|
|
166
|
+
]);
|
|
167
|
+
console.log(`📜 Transaction submitted: ${tx.hash}`);
|
|
168
|
+
console.log("⏳ Waiting for confirmation...");
|
|
169
|
+
// Use read provider for waiting to avoid rate limiting with timeout
|
|
170
|
+
let receipt = null;
|
|
171
|
+
const CONFIRMATION_TIMEOUT = 120000; // 2 minutes timeout
|
|
172
|
+
try {
|
|
173
|
+
const readProvider = this.walletManager.getReadProvider();
|
|
174
|
+
if (readProvider) {
|
|
175
|
+
receipt = await Promise.race([
|
|
176
|
+
readProvider.waitForTransaction(tx.hash),
|
|
177
|
+
new Promise((_, reject) => setTimeout(() => reject(new Error('Transaction confirmation timeout')), CONFIRMATION_TIMEOUT))
|
|
178
|
+
]);
|
|
179
|
+
}
|
|
180
|
+
else {
|
|
181
|
+
receipt = await Promise.race([
|
|
182
|
+
tx.wait(),
|
|
183
|
+
new Promise((_, reject) => setTimeout(() => reject(new Error('Transaction confirmation timeout')), CONFIRMATION_TIMEOUT))
|
|
184
|
+
]);
|
|
185
|
+
}
|
|
186
|
+
}
|
|
187
|
+
catch (confirmationError) {
|
|
188
|
+
// If timeout, still try to get receipt manually
|
|
189
|
+
if (confirmationError?.message?.includes?.('timeout')) {
|
|
190
|
+
try {
|
|
191
|
+
const readProvider = this.walletManager.getReadProvider();
|
|
192
|
+
const providerForRead = readProvider || provider;
|
|
193
|
+
receipt = await providerForRead.getTransactionReceipt(tx.hash);
|
|
194
|
+
if (!receipt) {
|
|
195
|
+
throw new Error(`Transaction ${tx.hash} not found after timeout. It may still be pending.`);
|
|
196
|
+
}
|
|
197
|
+
}
|
|
198
|
+
catch (manualError) {
|
|
199
|
+
throw new Error(`Transaction confirmation failed: ${confirmationError?.message || 'Unknown error'}. Manual lookup also failed: ${manualError?.message || 'Unknown error'}`);
|
|
200
|
+
}
|
|
201
|
+
}
|
|
202
|
+
else {
|
|
203
|
+
throw confirmationError;
|
|
204
|
+
}
|
|
205
|
+
}
|
|
206
|
+
if (!receipt) {
|
|
207
|
+
throw new Error('Transaction receipt not available');
|
|
208
|
+
}
|
|
209
|
+
console.log(`✅ Transaction confirmed in block: ${receipt.blockNumber}`);
|
|
210
|
+
// Extract token ID from the transaction logs
|
|
211
|
+
let tokenId;
|
|
212
|
+
// Extract token ID from transaction logs
|
|
213
|
+
if (receipt.logs && Array.isArray(receipt.logs)) {
|
|
214
|
+
for (let i = 0; i < receipt.logs.length; i++) {
|
|
215
|
+
const log = receipt.logs[i];
|
|
216
|
+
try {
|
|
217
|
+
const parsed = contract.interface.parseLog(log);
|
|
218
|
+
if (parsed) {
|
|
219
|
+
if (parsed.name === 'ZipFileTokenized') {
|
|
220
|
+
tokenId = parsed.args.tokenId.toString();
|
|
221
|
+
break;
|
|
222
|
+
}
|
|
223
|
+
else if (parsed.name === 'Transfer') {
|
|
224
|
+
// ERC721 Transfer event: Transfer(from, to, tokenId)
|
|
225
|
+
const from = parsed.args.from;
|
|
226
|
+
const transferTokenId = parsed.args.tokenId;
|
|
227
|
+
// Only use Transfer events that are minting (from zero address)
|
|
228
|
+
if (from === '0x0000000000000000000000000000000000000000') {
|
|
229
|
+
tokenId = transferTokenId.toString();
|
|
230
|
+
break;
|
|
231
|
+
}
|
|
232
|
+
}
|
|
233
|
+
}
|
|
234
|
+
}
|
|
235
|
+
catch (parseError) {
|
|
236
|
+
console.warn(`⚠️ Could not parse log ${i}:`, parseError);
|
|
237
|
+
// Try manual parsing for standard ERC721 Transfer event
|
|
238
|
+
if (log.topics && log.topics.length >= 4 && log.topics[0] === '0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef') {
|
|
239
|
+
try {
|
|
240
|
+
// ERC721 Transfer event signature
|
|
241
|
+
const from = log.topics[1];
|
|
242
|
+
const to = log.topics[2];
|
|
243
|
+
const transferTokenId = log.topics[3];
|
|
244
|
+
console.log(`🔄 Manual Transfer parse: from=${from}, to=${to}, tokenId=${transferTokenId}`);
|
|
245
|
+
// Check if this is a mint (from zero address)
|
|
246
|
+
if (from === '0x0000000000000000000000000000000000000000000000000000000000000000') {
|
|
247
|
+
tokenId = parseInt(transferTokenId, 16).toString();
|
|
248
|
+
console.log(`🎯 Found minting via manual parse with token ID: ${tokenId}`);
|
|
249
|
+
break;
|
|
250
|
+
}
|
|
251
|
+
}
|
|
252
|
+
catch (manualParseError) {
|
|
253
|
+
console.warn(`⚠️ Manual parsing also failed:`, manualParseError);
|
|
254
|
+
}
|
|
255
|
+
}
|
|
256
|
+
}
|
|
257
|
+
}
|
|
258
|
+
}
|
|
259
|
+
if (!tokenId) {
|
|
260
|
+
console.error("❌ Could not extract token ID from any logs");
|
|
261
|
+
console.error("📋 Full receipt for debugging:", JSON.stringify(receipt, null, 2));
|
|
262
|
+
throw new Error("Could not extract token ID from transaction receipt");
|
|
263
|
+
}
|
|
264
|
+
console.log(`✅ NFT token minted successfully!`);
|
|
265
|
+
console.log(`🎫 Token ID: ${tokenId}`);
|
|
266
|
+
console.log(`📜 Transaction: ${tx.hash}`);
|
|
267
|
+
return {
|
|
268
|
+
success: true,
|
|
269
|
+
tokenId: tokenId,
|
|
270
|
+
transactionHash: tx.hash
|
|
271
|
+
};
|
|
272
|
+
}
|
|
273
|
+
catch (error) {
|
|
274
|
+
console.error("Token minting failed:", error);
|
|
275
|
+
let errorMessage = "Unknown error occurred";
|
|
276
|
+
if (error.code === 'ACTION_REJECTED') {
|
|
277
|
+
errorMessage = "Transaction was rejected by user";
|
|
278
|
+
}
|
|
279
|
+
else if (error.code === 'INSUFFICIENT_FUNDS') {
|
|
280
|
+
errorMessage = "Insufficient funds for transaction";
|
|
281
|
+
}
|
|
282
|
+
else if (error.reason) {
|
|
283
|
+
errorMessage = error.reason;
|
|
284
|
+
}
|
|
285
|
+
else if (error.message) {
|
|
286
|
+
errorMessage = error.message;
|
|
287
|
+
}
|
|
288
|
+
return {
|
|
289
|
+
success: false,
|
|
290
|
+
error: errorMessage
|
|
291
|
+
};
|
|
292
|
+
}
|
|
293
|
+
}
|
|
294
|
+
/**
|
|
295
|
+
* Create token metadata
|
|
296
|
+
*/
|
|
297
|
+
createTokenMetadata(tokenId, transactionHash) {
|
|
298
|
+
const now = new Date();
|
|
299
|
+
const config = this.walletManager.getCurrentConfig();
|
|
300
|
+
// Ensure contractVersion is always set (required field)
|
|
301
|
+
if (!config.version) {
|
|
302
|
+
throw new Error(`Contract version not specified for network ${config.network} (chainId: ${config.chainId})`);
|
|
303
|
+
}
|
|
304
|
+
return {
|
|
305
|
+
tokenId,
|
|
306
|
+
contractAddress: config.address,
|
|
307
|
+
network: config.network,
|
|
308
|
+
networkChainId: config.chainId,
|
|
309
|
+
transactionHash,
|
|
310
|
+
merkleRoot: this.merkleRoot,
|
|
311
|
+
encryptedHash: this.encryptedHash || undefined,
|
|
312
|
+
mintedAt: now.toISOString(),
|
|
313
|
+
creationTimestamp: Math.floor(now.getTime() / 1000),
|
|
314
|
+
contractVersion: config.version // Required - always set from config
|
|
315
|
+
};
|
|
316
|
+
}
|
|
317
|
+
/**
|
|
318
|
+
* Get explorer URL for transaction
|
|
319
|
+
*/
|
|
320
|
+
getExplorerUrl(transactionHash) {
|
|
321
|
+
return this.walletManager.getExplorerUrl(transactionHash);
|
|
322
|
+
}
|
|
323
|
+
/**
|
|
324
|
+
* Get explorer URL for contract
|
|
325
|
+
*/
|
|
326
|
+
getContractExplorerUrl() {
|
|
327
|
+
return this.walletManager.getContractExplorerUrl();
|
|
328
|
+
}
|
|
329
|
+
/**
|
|
330
|
+
* Get explorer URL for token
|
|
331
|
+
*/
|
|
332
|
+
getTokenExplorerUrl(tokenId) {
|
|
333
|
+
return this.walletManager.getTokenExplorerUrl(tokenId);
|
|
334
|
+
}
|
|
335
|
+
}
|
|
336
|
+
exports.ZipkitMinterBrowser = ZipkitMinterBrowser;
|
|
337
|
+
//# sourceMappingURL=ZipkitMinterBrowser.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ZipkitMinterBrowser.js","sourceRoot":"","sources":["../../src/browser/ZipkitMinterBrowser.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Browser Blockchain Module Exports
|
|
3
|
+
* Browser-specific blockchain functionality for ZIP file tokenization
|
|
4
|
+
*/
|
|
5
|
+
export { WalletManagerBrowser } from './WalletManagerBrowser';
|
|
6
|
+
export type { WalletConfigBrowser } from './WalletManagerBrowser';
|
|
7
|
+
export { ZipkitMinterBrowser } from './ZipkitMinterBrowser';
|
|
8
|
+
export type { TokenizationResult, ExistingToken } from './ZipkitMinterBrowser';
|
|
9
|
+
export { TokenVerifierBrowser, createTokenVerifier, checkForTokenization } from './TokenVerifierBrowser';
|
|
10
|
+
export { TOKENIZED_METADATA, TOKENIZED_METADATA_LEGACY } from '../core/contracts';
|
|
11
|
+
export type { TokenVerificationResult, TokenVerificationOptions, BlockchainVerification } from './TokenVerifierBrowser';
|
|
12
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/browser/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAC9D,YAAY,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAElE,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,YAAY,EAAE,kBAAkB,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAE/E,OAAO,EAAE,oBAAoB,EAAE,mBAAmB,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AACzG,OAAO,EAAE,kBAAkB,EAAE,yBAAyB,EAAE,MAAM,mBAAmB,CAAC;AAClF,YAAY,EAAE,uBAAuB,EAAE,wBAAwB,EAAE,sBAAsB,EAAE,MAAM,wBAAwB,CAAC"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Browser Blockchain Module Exports
|
|
4
|
+
* Browser-specific blockchain functionality for ZIP file tokenization
|
|
5
|
+
*/
|
|
6
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
|
+
exports.TOKENIZED_METADATA_LEGACY = exports.TOKENIZED_METADATA = exports.checkForTokenization = exports.createTokenVerifier = exports.TokenVerifierBrowser = exports.ZipkitMinterBrowser = exports.WalletManagerBrowser = void 0;
|
|
8
|
+
var WalletManagerBrowser_1 = require("./WalletManagerBrowser");
|
|
9
|
+
Object.defineProperty(exports, "WalletManagerBrowser", { enumerable: true, get: function () { return WalletManagerBrowser_1.WalletManagerBrowser; } });
|
|
10
|
+
var ZipkitMinterBrowser_1 = require("./ZipkitMinterBrowser");
|
|
11
|
+
Object.defineProperty(exports, "ZipkitMinterBrowser", { enumerable: true, get: function () { return ZipkitMinterBrowser_1.ZipkitMinterBrowser; } });
|
|
12
|
+
var TokenVerifierBrowser_1 = require("./TokenVerifierBrowser");
|
|
13
|
+
Object.defineProperty(exports, "TokenVerifierBrowser", { enumerable: true, get: function () { return TokenVerifierBrowser_1.TokenVerifierBrowser; } });
|
|
14
|
+
Object.defineProperty(exports, "createTokenVerifier", { enumerable: true, get: function () { return TokenVerifierBrowser_1.createTokenVerifier; } });
|
|
15
|
+
Object.defineProperty(exports, "checkForTokenization", { enumerable: true, get: function () { return TokenVerifierBrowser_1.checkForTokenization; } });
|
|
16
|
+
var contracts_1 = require("../core/contracts");
|
|
17
|
+
Object.defineProperty(exports, "TOKENIZED_METADATA", { enumerable: true, get: function () { return contracts_1.TOKENIZED_METADATA; } });
|
|
18
|
+
Object.defineProperty(exports, "TOKENIZED_METADATA_LEGACY", { enumerable: true, get: function () { return contracts_1.TOKENIZED_METADATA_LEGACY; } });
|
|
19
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/browser/index.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AAEH,+DAA8D;AAArD,4HAAA,oBAAoB,OAAA;AAG7B,6DAA4D;AAAnD,0HAAA,mBAAmB,OAAA;AAG5B,+DAAyG;AAAhG,4HAAA,oBAAoB,OAAA;AAAE,2HAAA,mBAAmB,OAAA;AAAE,4HAAA,oBAAoB,OAAA;AACxE,+CAAkF;AAAzE,+GAAA,kBAAkB,OAAA;AAAE,sHAAA,yBAAyB,OAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/constants/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,cAAc,YAAY,CAAC"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Centralized constants (metadata filenames, etc.)
|
|
4
|
+
*/
|
|
5
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
6
|
+
if (k2 === undefined) k2 = k;
|
|
7
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
8
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
9
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
10
|
+
}
|
|
11
|
+
Object.defineProperty(o, k2, desc);
|
|
12
|
+
}) : (function(o, m, k, k2) {
|
|
13
|
+
if (k2 === undefined) k2 = k;
|
|
14
|
+
o[k2] = m[k];
|
|
15
|
+
}));
|
|
16
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
17
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
18
|
+
};
|
|
19
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
20
|
+
__exportStar(require("./metadata"), exports);
|
|
21
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/constants/index.ts"],"names":[],"mappings":";AAAA;;GAEG;;;;;;;;;;;;;;;;AAEH,6CAA2B"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Centralized metadata filenames for NZIP and OTS ZIP archives.
|
|
3
|
+
*
|
|
4
|
+
* All META-INF metadata file names used across core, zipstamp-server, and OTS
|
|
5
|
+
* are defined here to avoid duplication and drift. Other modules re-export
|
|
6
|
+
* these with domain-specific names (e.g. TOKENIZED_METADATA, SUBMIT_METADATA).
|
|
7
|
+
*
|
|
8
|
+
* Naming convention: TYPE.EXT
|
|
9
|
+
* - .NZIP = neozip-blockchain zipstamp-server timestamp/NFT metadata
|
|
10
|
+
* - .OTS = OpenTimestamps (Bitcoin) proof metadata
|
|
11
|
+
*/
|
|
12
|
+
export declare const TOKEN_NZIP = "META-INF/TOKEN.NZIP";
|
|
13
|
+
export declare const TOKEN_NZIP_LEGACY = "META-INF/NZIP.TOKEN";
|
|
14
|
+
export declare const TS_SUBMIT_NZIP = "META-INF/TS-SUBMIT.NZIP";
|
|
15
|
+
export declare const TIMESTAMP_NZIP = "META-INF/TIMESTAMP.NZIP";
|
|
16
|
+
export declare const TS_SUBMIT_OTS = "META-INF/TS-SUBMIT.OTS";
|
|
17
|
+
export declare const TIMESTAMP_OTS = "META-INF/TIMESTAMP.OTS";
|
|
18
|
+
//# sourceMappingURL=metadata.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"metadata.d.ts","sourceRoot":"","sources":["../../src/constants/metadata.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAMH,eAAO,MAAM,UAAU,wBAAwB,CAAC;AAChD,eAAO,MAAM,iBAAiB,wBAAwB,CAAC;AAMvD,eAAO,MAAM,cAAc,4BAA4B,CAAC;AACxD,eAAO,MAAM,cAAc,4BAA4B,CAAC;AAMxD,eAAO,MAAM,aAAa,2BAA2B,CAAC;AACtD,eAAO,MAAM,aAAa,2BAA2B,CAAC"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Centralized metadata filenames for NZIP and OTS ZIP archives.
|
|
4
|
+
*
|
|
5
|
+
* All META-INF metadata file names used across core, zipstamp-server, and OTS
|
|
6
|
+
* are defined here to avoid duplication and drift. Other modules re-export
|
|
7
|
+
* these with domain-specific names (e.g. TOKENIZED_METADATA, SUBMIT_METADATA).
|
|
8
|
+
*
|
|
9
|
+
* Naming convention: TYPE.EXT
|
|
10
|
+
* - .NZIP = neozip-blockchain zipstamp-server timestamp/NFT metadata
|
|
11
|
+
* - .OTS = OpenTimestamps (Bitcoin) proof metadata
|
|
12
|
+
*/
|
|
13
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
14
|
+
exports.TIMESTAMP_OTS = exports.TS_SUBMIT_OTS = exports.TIMESTAMP_NZIP = exports.TS_SUBMIT_NZIP = exports.TOKEN_NZIP_LEGACY = exports.TOKEN_NZIP = void 0;
|
|
15
|
+
// ---------------------------------------------------------------------------
|
|
16
|
+
// Token / NFT metadata (used by core verifier and zipstamp-server)
|
|
17
|
+
// Standard: TOKEN.NZIP. Legacy NZIP.TOKEN is accepted for reading only.
|
|
18
|
+
// ---------------------------------------------------------------------------
|
|
19
|
+
exports.TOKEN_NZIP = 'META-INF/TOKEN.NZIP';
|
|
20
|
+
exports.TOKEN_NZIP_LEGACY = 'META-INF/NZIP.TOKEN';
|
|
21
|
+
// ---------------------------------------------------------------------------
|
|
22
|
+
// Zipstamp server timestamp metadata (Ethereum batch timestamping)
|
|
23
|
+
// Pending: TS-SUBMIT.NZIP. Confirmed: TIMESTAMP.NZIP.
|
|
24
|
+
// ---------------------------------------------------------------------------
|
|
25
|
+
exports.TS_SUBMIT_NZIP = 'META-INF/TS-SUBMIT.NZIP';
|
|
26
|
+
exports.TIMESTAMP_NZIP = 'META-INF/TIMESTAMP.NZIP';
|
|
27
|
+
// ---------------------------------------------------------------------------
|
|
28
|
+
// OpenTimestamps metadata (Bitcoin OTS proof)
|
|
29
|
+
// Pending: TS-SUBMIT.OTS. Confirmed: TIMESTAMP.OTS.
|
|
30
|
+
// ---------------------------------------------------------------------------
|
|
31
|
+
exports.TS_SUBMIT_OTS = 'META-INF/TS-SUBMIT.OTS';
|
|
32
|
+
exports.TIMESTAMP_OTS = 'META-INF/TIMESTAMP.OTS';
|
|
33
|
+
//# sourceMappingURL=metadata.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"metadata.js","sourceRoot":"","sources":["../../src/constants/metadata.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;GAUG;;;AAEH,8EAA8E;AAC9E,mEAAmE;AACnE,wEAAwE;AACxE,8EAA8E;AACjE,QAAA,UAAU,GAAG,qBAAqB,CAAC;AACnC,QAAA,iBAAiB,GAAG,qBAAqB,CAAC;AAEvD,8EAA8E;AAC9E,mEAAmE;AACnE,sDAAsD;AACtD,8EAA8E;AACjE,QAAA,cAAc,GAAG,yBAAyB,CAAC;AAC3C,QAAA,cAAc,GAAG,yBAAyB,CAAC;AAExD,8EAA8E;AAC9E,8CAA8C;AAC9C,oDAAoD;AACpD,8EAA8E;AACjE,QAAA,aAAa,GAAG,wBAAwB,CAAC;AACzC,QAAA,aAAa,GAAG,wBAAwB,CAAC"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Centralized Zipstamp server URL(s) and resolver.
|
|
3
|
+
*
|
|
4
|
+
* Single source of truth for the default stamp server URL and named server
|
|
5
|
+
* lookup. Env vars ZIPSTAMP_SERVER_URL and TOKEN_SERVER_URL override the
|
|
6
|
+
* default when set. Use getZipStampServerUrl() everywhere instead of
|
|
7
|
+
* hardcoding the default.
|
|
8
|
+
*
|
|
9
|
+
* Resolution order for getZipStampServerUrl():
|
|
10
|
+
* 1. options.serverUrl (explicit URL)
|
|
11
|
+
* 2. options.serverKey → ZIPSTAMP_SERVER_URLS[serverKey]
|
|
12
|
+
* 3. process.env.ZIPSTAMP_SERVER_URL, then process.env.TOKEN_SERVER_URL
|
|
13
|
+
* 4. DEFAULT_ZIPSTAMP_SERVER_URL
|
|
14
|
+
*/
|
|
15
|
+
/** Default Zipstamp server URL when no env override is set */
|
|
16
|
+
export declare const DEFAULT_ZIPSTAMP_SERVER_URL = "https://zipstamp-dev.neozip.io";
|
|
17
|
+
/**
|
|
18
|
+
* Named server URLs for lookup by key (e.g. "default", "dev", "staging", "production").
|
|
19
|
+
* Extend this record as more servers are added; env vars still override at runtime.
|
|
20
|
+
*/
|
|
21
|
+
export declare const ZIPSTAMP_SERVER_URLS: Record<string, string>;
|
|
22
|
+
export interface GetZipStampServerUrlOptions {
|
|
23
|
+
/** Explicit server URL (highest precedence) */
|
|
24
|
+
serverUrl?: string;
|
|
25
|
+
/** Key into ZIPSTAMP_SERVER_URLS (e.g. "default", "staging") */
|
|
26
|
+
serverKey?: string;
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* Resolve the Zipstamp server URL.
|
|
30
|
+
* Order: options.serverUrl → options.serverKey → ZIPSTAMP_SERVER_URL → TOKEN_SERVER_URL → default.
|
|
31
|
+
*/
|
|
32
|
+
export declare function getZipStampServerUrl(options?: GetZipStampServerUrlOptions): string;
|
|
33
|
+
/**
|
|
34
|
+
* Return the default server URL as a single-element array for multi-calendar use.
|
|
35
|
+
* Later can return multiple URLs from ZIPSTAMP_SERVER_URLS or env.
|
|
36
|
+
*/
|
|
37
|
+
export declare function getDefaultZipStampServerUrls(): string[];
|
|
38
|
+
//# sourceMappingURL=servers.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"servers.d.ts","sourceRoot":"","sources":["../../src/constants/servers.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,8DAA8D;AAC9D,eAAO,MAAM,2BAA2B,mCAAmC,CAAC;AAE5E;;;GAGG;AACH,eAAO,MAAM,oBAAoB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAEvD,CAAC;AAEF,MAAM,WAAW,2BAA2B;IAC1C,+CAA+C;IAC/C,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,gEAAgE;IAChE,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,CAAC,EAAE,2BAA2B,GAAG,MAAM,CAclF;AAED;;;GAGG;AACH,wBAAgB,4BAA4B,IAAI,MAAM,EAAE,CAEvD"}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Centralized Zipstamp server URL(s) and resolver.
|
|
4
|
+
*
|
|
5
|
+
* Single source of truth for the default stamp server URL and named server
|
|
6
|
+
* lookup. Env vars ZIPSTAMP_SERVER_URL and TOKEN_SERVER_URL override the
|
|
7
|
+
* default when set. Use getZipStampServerUrl() everywhere instead of
|
|
8
|
+
* hardcoding the default.
|
|
9
|
+
*
|
|
10
|
+
* Resolution order for getZipStampServerUrl():
|
|
11
|
+
* 1. options.serverUrl (explicit URL)
|
|
12
|
+
* 2. options.serverKey → ZIPSTAMP_SERVER_URLS[serverKey]
|
|
13
|
+
* 3. process.env.ZIPSTAMP_SERVER_URL, then process.env.TOKEN_SERVER_URL
|
|
14
|
+
* 4. DEFAULT_ZIPSTAMP_SERVER_URL
|
|
15
|
+
*/
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
exports.ZIPSTAMP_SERVER_URLS = exports.DEFAULT_ZIPSTAMP_SERVER_URL = void 0;
|
|
18
|
+
exports.getZipStampServerUrl = getZipStampServerUrl;
|
|
19
|
+
exports.getDefaultZipStampServerUrls = getDefaultZipStampServerUrls;
|
|
20
|
+
/** Default Zipstamp server URL when no env override is set */
|
|
21
|
+
exports.DEFAULT_ZIPSTAMP_SERVER_URL = 'https://zipstamp-dev.neozip.io';
|
|
22
|
+
/**
|
|
23
|
+
* Named server URLs for lookup by key (e.g. "default", "dev", "staging", "production").
|
|
24
|
+
* Extend this record as more servers are added; env vars still override at runtime.
|
|
25
|
+
*/
|
|
26
|
+
exports.ZIPSTAMP_SERVER_URLS = {
|
|
27
|
+
default: exports.DEFAULT_ZIPSTAMP_SERVER_URL,
|
|
28
|
+
};
|
|
29
|
+
/**
|
|
30
|
+
* Resolve the Zipstamp server URL.
|
|
31
|
+
* Order: options.serverUrl → options.serverKey → ZIPSTAMP_SERVER_URL → TOKEN_SERVER_URL → default.
|
|
32
|
+
*/
|
|
33
|
+
function getZipStampServerUrl(options) {
|
|
34
|
+
if (options?.serverUrl && options.serverUrl.trim()) {
|
|
35
|
+
return options.serverUrl.trim();
|
|
36
|
+
}
|
|
37
|
+
if (options?.serverKey && exports.ZIPSTAMP_SERVER_URLS[options.serverKey]) {
|
|
38
|
+
return exports.ZIPSTAMP_SERVER_URLS[options.serverKey];
|
|
39
|
+
}
|
|
40
|
+
const fromEnv = (typeof process !== 'undefined' && process.env?.ZIPSTAMP_SERVER_URL?.trim()) ||
|
|
41
|
+
(typeof process !== 'undefined' && process.env?.TOKEN_SERVER_URL?.trim());
|
|
42
|
+
if (fromEnv) {
|
|
43
|
+
return fromEnv;
|
|
44
|
+
}
|
|
45
|
+
return exports.DEFAULT_ZIPSTAMP_SERVER_URL;
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* Return the default server URL as a single-element array for multi-calendar use.
|
|
49
|
+
* Later can return multiple URLs from ZIPSTAMP_SERVER_URLS or env.
|
|
50
|
+
*/
|
|
51
|
+
function getDefaultZipStampServerUrls() {
|
|
52
|
+
return [getZipStampServerUrl()];
|
|
53
|
+
}
|
|
54
|
+
//# sourceMappingURL=servers.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"servers.js","sourceRoot":"","sources":["../../src/constants/servers.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;GAaG;;;AAwBH,oDAcC;AAMD,oEAEC;AA5CD,8DAA8D;AACjD,QAAA,2BAA2B,GAAG,gCAAgC,CAAC;AAE5E;;;GAGG;AACU,QAAA,oBAAoB,GAA2B;IAC1D,OAAO,EAAE,mCAA2B;CACrC,CAAC;AASF;;;GAGG;AACH,SAAgB,oBAAoB,CAAC,OAAqC;IACxE,IAAI,OAAO,EAAE,SAAS,IAAI,OAAO,CAAC,SAAS,CAAC,IAAI,EAAE,EAAE,CAAC;QACnD,OAAO,OAAO,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC;IAClC,CAAC;IACD,IAAI,OAAO,EAAE,SAAS,IAAI,4BAAoB,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC;QAClE,OAAO,4BAAoB,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IACjD,CAAC;IACD,MAAM,OAAO,GACX,CAAC,OAAO,OAAO,KAAK,WAAW,IAAI,OAAO,CAAC,GAAG,EAAE,mBAAmB,EAAE,IAAI,EAAE,CAAC;QAC5E,CAAC,OAAO,OAAO,KAAK,WAAW,IAAI,OAAO,CAAC,GAAG,EAAE,gBAAgB,EAAE,IAAI,EAAE,CAAC,CAAC;IAC5E,IAAI,OAAO,EAAE,CAAC;QACZ,OAAO,OAAO,CAAC;IACjB,CAAC;IACD,OAAO,mCAA2B,CAAC;AACrC,CAAC;AAED;;;GAGG;AACH,SAAgB,4BAA4B;IAC1C,OAAO,CAAC,oBAAoB,EAAE,CAAC,CAAC;AAClC,CAAC"}
|