@explorins/pers-sdk 2.1.11 → 2.1.15

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (119) hide show
  1. package/dist/business/api/business-membership-api.d.ts +2 -2
  2. package/dist/chunks/{index-B-g2JPVK.cjs → index-CGaKfZNU.cjs} +279 -1
  3. package/dist/chunks/index-CGaKfZNU.cjs.map +1 -0
  4. package/dist/chunks/{index-CKm_V5XE.js → index-DgTEdUgC.js} +277 -2
  5. package/dist/chunks/index-DgTEdUgC.js.map +1 -0
  6. package/dist/chunks/{pers-sdk-CJo4CCTG.js → pers-sdk-BiP7UMJ3.js} +1695 -180
  7. package/dist/chunks/pers-sdk-BiP7UMJ3.js.map +1 -0
  8. package/dist/chunks/{pers-sdk-Bheg5mKX.cjs → pers-sdk-Cv7hM1I7.cjs} +1701 -180
  9. package/dist/chunks/pers-sdk-Cv7hM1I7.cjs.map +1 -0
  10. package/dist/chunks/tenant-manager-BUiFM33X.cjs +157 -0
  11. package/dist/chunks/tenant-manager-BUiFM33X.cjs.map +1 -0
  12. package/dist/chunks/tenant-manager-Bbj0bKoo.js +155 -0
  13. package/dist/chunks/tenant-manager-Bbj0bKoo.js.map +1 -0
  14. package/dist/chunks/{transaction-request.builder-DGTxGvc3.js → transaction-request.builder-C3C19kCx.js} +23 -2
  15. package/dist/chunks/{transaction-request.builder-DGTxGvc3.js.map → transaction-request.builder-C3C19kCx.js.map} +1 -1
  16. package/dist/chunks/{transaction-request.builder-Bjxi0C9F.cjs → transaction-request.builder-CW3Wwdi3.cjs} +23 -1
  17. package/dist/chunks/{transaction-request.builder-Bjxi0C9F.cjs.map → transaction-request.builder-CW3Wwdi3.cjs.map} +1 -1
  18. package/dist/chunks/{web3-chain-service-D68-0WaW.cjs → web3-chain-service-DcLiy3m2.cjs} +7 -7
  19. package/dist/chunks/{web3-chain-service-D68-0WaW.cjs.map → web3-chain-service-DcLiy3m2.cjs.map} +1 -1
  20. package/dist/chunks/{web3-chain-service-DuvxmKSj.js → web3-chain-service-nGntR60S.js} +3 -3
  21. package/dist/chunks/{web3-chain-service-DuvxmKSj.js.map → web3-chain-service-nGntR60S.js.map} +1 -1
  22. package/dist/chunks/{web3-manager-C_cFaMCm.cjs → web3-manager-B0OyjqJR.cjs} +89 -93
  23. package/dist/chunks/web3-manager-B0OyjqJR.cjs.map +1 -0
  24. package/dist/chunks/{web3-manager-OExwBWB7.js → web3-manager-Bnsvcz3Q.js} +89 -93
  25. package/dist/chunks/web3-manager-Bnsvcz3Q.js.map +1 -0
  26. package/dist/core/events/event-emitter.d.ts.map +1 -1
  27. package/dist/core/pers-config.d.ts +19 -0
  28. package/dist/core/pers-config.d.ts.map +1 -1
  29. package/dist/core.cjs +17 -14
  30. package/dist/core.cjs.map +1 -1
  31. package/dist/core.js +5 -5
  32. package/dist/events/index.d.ts +13 -0
  33. package/dist/events/index.d.ts.map +1 -0
  34. package/dist/events/pers-events-client.d.ts +143 -0
  35. package/dist/events/pers-events-client.d.ts.map +1 -0
  36. package/dist/events/types.d.ts +37 -0
  37. package/dist/events/types.d.ts.map +1 -0
  38. package/dist/index.cjs +41 -13
  39. package/dist/index.cjs.map +1 -1
  40. package/dist/index.d.ts +2 -0
  41. package/dist/index.d.ts.map +1 -1
  42. package/dist/index.js +5 -5
  43. package/dist/managers/events-manager.d.ts +179 -0
  44. package/dist/managers/events-manager.d.ts.map +1 -0
  45. package/dist/managers/index.d.ts +2 -0
  46. package/dist/managers/index.d.ts.map +1 -1
  47. package/dist/managers/tenant-manager.d.ts +42 -1
  48. package/dist/managers/tenant-manager.d.ts.map +1 -1
  49. package/dist/managers/web3-manager.d.ts +12 -14
  50. package/dist/managers/web3-manager.d.ts.map +1 -1
  51. package/dist/managers/webhook-manager.d.ts +237 -0
  52. package/dist/managers/webhook-manager.d.ts.map +1 -0
  53. package/dist/node.cjs +4 -3
  54. package/dist/node.cjs.map +1 -1
  55. package/dist/node.js +4 -3
  56. package/dist/node.js.map +1 -1
  57. package/dist/package.json +3 -2
  58. package/dist/pers-sdk.d.ts +110 -1
  59. package/dist/pers-sdk.d.ts.map +1 -1
  60. package/dist/transaction/index.d.ts +1 -1
  61. package/dist/transaction/index.d.ts.map +1 -1
  62. package/dist/transaction/models/transaction-request.builder.d.ts +16 -0
  63. package/dist/transaction/models/transaction-request.builder.d.ts.map +1 -1
  64. package/dist/transaction.cjs +2 -1
  65. package/dist/transaction.cjs.map +1 -1
  66. package/dist/transaction.js +1 -1
  67. package/dist/web3/application/web3-application.service.d.ts +6 -3
  68. package/dist/web3/application/web3-application.service.d.ts.map +1 -1
  69. package/dist/web3/domain/services/metadata-domain.service.d.ts +4 -2
  70. package/dist/web3/domain/services/metadata-domain.service.d.ts.map +1 -1
  71. package/dist/web3/domain/services/token-domain.service.d.ts +7 -3
  72. package/dist/web3/domain/services/token-domain.service.d.ts.map +1 -1
  73. package/dist/web3/infrastructure/api/ipfs-api.d.ts +22 -9
  74. package/dist/web3/infrastructure/api/ipfs-api.d.ts.map +1 -1
  75. package/dist/web3/utils/explorer.utils.d.ts +3 -3
  76. package/dist/web3/utils/explorer.utils.d.ts.map +1 -1
  77. package/dist/web3-chain/api/web3-chain-api.d.ts +3 -2
  78. package/dist/web3-chain/api/web3-chain-api.d.ts.map +1 -1
  79. package/dist/web3-chain/index.d.ts +0 -1
  80. package/dist/web3-chain/index.d.ts.map +1 -1
  81. package/dist/web3-chain/models/index.d.ts +5 -23
  82. package/dist/web3-chain/models/index.d.ts.map +1 -1
  83. package/dist/web3-chain/services/web3-chain-service.d.ts +2 -2
  84. package/dist/web3-chain/services/web3-chain-service.d.ts.map +1 -1
  85. package/dist/web3-chain.cjs +8 -14
  86. package/dist/web3-chain.cjs.map +1 -1
  87. package/dist/web3-chain.js +3 -16
  88. package/dist/web3-chain.js.map +1 -1
  89. package/dist/web3-manager.cjs +7 -4
  90. package/dist/web3-manager.cjs.map +1 -1
  91. package/dist/web3-manager.js +7 -4
  92. package/dist/web3-manager.js.map +1 -1
  93. package/dist/web3.cjs +7 -4
  94. package/dist/web3.cjs.map +1 -1
  95. package/dist/web3.js +7 -4
  96. package/dist/web3.js.map +1 -1
  97. package/dist/webhook/api/index.d.ts +2 -0
  98. package/dist/webhook/api/index.d.ts.map +1 -0
  99. package/dist/webhook/api/webhook-api.d.ts +73 -0
  100. package/dist/webhook/api/webhook-api.d.ts.map +1 -0
  101. package/dist/webhook/index.d.ts +35 -0
  102. package/dist/webhook/index.d.ts.map +1 -0
  103. package/dist/webhook/models/index.d.ts +58 -0
  104. package/dist/webhook/models/index.d.ts.map +1 -0
  105. package/dist/webhook/services/index.d.ts +2 -0
  106. package/dist/webhook/services/index.d.ts.map +1 -0
  107. package/dist/webhook/services/webhook-service.d.ts +98 -0
  108. package/dist/webhook/services/webhook-service.d.ts.map +1 -0
  109. package/package.json +3 -2
  110. package/dist/chunks/index-B-g2JPVK.cjs.map +0 -1
  111. package/dist/chunks/index-B6-bbNnd.cjs +0 -281
  112. package/dist/chunks/index-B6-bbNnd.cjs.map +0 -1
  113. package/dist/chunks/index-CKm_V5XE.js.map +0 -1
  114. package/dist/chunks/index-DBLskLuH.js +0 -277
  115. package/dist/chunks/index-DBLskLuH.js.map +0 -1
  116. package/dist/chunks/pers-sdk-Bheg5mKX.cjs.map +0 -1
  117. package/dist/chunks/pers-sdk-CJo4CCTG.js.map +0 -1
  118. package/dist/chunks/web3-manager-C_cFaMCm.cjs.map +0 -1
  119. package/dist/chunks/web3-manager-OExwBWB7.js.map +0 -1
@@ -1,13 +1,20 @@
1
1
  'use strict';
2
2
 
3
3
  var ethers = require('@explorins/web3-ts/ethers');
4
- var index = require('./index-B6-bbNnd.cjs');
5
- var web3ChainService = require('./web3-chain-service-D68-0WaW.cjs');
4
+ var index = require('./index-CGaKfZNU.cjs');
5
+ var web3ChainService = require('./web3-chain-service-DcLiy3m2.cjs');
6
+ require('@explorins/web3-types');
7
+ var tenantManager = require('./tenant-manager-BUiFM33X.cjs');
6
8
  var persShared = require('@explorins/pers-shared');
7
9
 
8
10
  // type ContractAnalysis = ReturnType<ContractDomainService['analyzeContract']>;
9
11
  /**
10
- * TokenDomainService - Clean, focused token operations with smart caching
12
+ * TokenDomainService - Clean, focused token operations
13
+ *
14
+ * Caching strategy:
15
+ * - Balance/ownership: NO CACHING - always fetch fresh from blockchain
16
+ * (event-based updates in consuming apps handle refresh)
17
+ * - Metadata: CACHED 24h - IPFS content is immutable
11
18
  */
12
19
  class TokenDomainService {
13
20
  constructor(web3Api, metadataService, contractService) {
@@ -33,7 +40,7 @@ class TokenDomainService {
33
40
  const abi = ethers.convertAbiToInterface(params.abi);
34
41
  const tokenUri = await this.web3Api.getTokenUri({ ...params, abi });
35
42
  const metadata = tokenUri
36
- ? await this.metadataService.fetchAndProcessMetadata(tokenUri, params.chainId)
43
+ ? await this.metadataService.fetchAndProcessMetadata(tokenUri)
37
44
  : null;
38
45
  return { tokenId: params.tokenId, tokenUri, metadata };
39
46
  }
@@ -77,12 +84,20 @@ class TokenDomainService {
77
84
  }
78
85
  return this.processTokenBatch(params, params.tokenIds, batchSize, 'ERC-1155');
79
86
  }
80
- // ERC-721: Use cached token ownership to minimize enumeration calls
87
+ // ERC-721: Enumerate tokens directly (no caching)
81
88
  if (analysis.isERC721) {
82
89
  if (analysis.hasEnumeration) {
83
- const { tokenIds, fromCache } = await this.getCachedTokenOwnership(params, abi);
90
+ // Get current balance to know how many tokens to enumerate
91
+ const currentBalance = await this.web3Api.getTokenBalance({
92
+ ...params, abi, tokenId: null
93
+ });
94
+ if (currentBalance === 0) {
95
+ return this.emptyCollection(params, 'No tokens owned');
96
+ }
97
+ const maxTokens = Math.min(params.maxTokens || currentBalance, currentBalance, 100);
98
+ const tokenIds = await this.getTokenIdsByEnumeration(params, abi, maxTokens);
84
99
  if (tokenIds.length === 0) {
85
- return this.emptyCollection(params, fromCache ? 'No tokens owned (cached)' : 'No tokens owned');
100
+ return this.emptyCollection(params, 'No tokens owned');
86
101
  }
87
102
  return this.processTokenBatch(params, tokenIds, batchSize, 'ERC-721');
88
103
  }
@@ -102,44 +117,13 @@ class TokenDomainService {
102
117
  }
103
118
  }
104
119
  /**
105
- * Get cached token ownership for ERC-721 with separate longer TTL
120
+ * Enumerate token IDs owned by account (no caching - fresh data each call)
106
121
  */
107
- async getCachedTokenOwnership(params, abi) {
108
- const ownershipCacheKey = `ownership:${params.contractAddress}:${params.accountAddress}:${params.chainId}`;
109
- // ALWAYS check current balance first to detect changes
110
- const currentBalance = await this.web3Api.getTokenBalance({
111
- ...params, abi, tokenId: null
112
- });
113
- if (currentBalance === 0) {
114
- // Clear any existing cache and return empty
115
- this.cache.delete(ownershipCacheKey);
116
- return { tokenIds: [], fromCache: false };
117
- }
118
- // Check ownership cache with balance validation
119
- const cached = this.cache.get(ownershipCacheKey);
120
- const cacheAge = cached ? Date.now() - cached.timestamp : Infinity;
121
- if (cached && cacheAge < index.CacheTTL.SHORT && cached.balance === currentBalance) {
122
- return { tokenIds: cached.tokenIds, fromCache: true };
123
- }
124
- // Enumerate tokens
125
- const maxTokens = Math.min(params.maxTokens || currentBalance, currentBalance, 100);
126
- const tokenIds = await this.getTokenIdsByEnumeration(params, abi, maxTokens);
127
- // Cache with current balance for validation
128
- this.cache.set(ownershipCacheKey, { tokenIds, balance: currentBalance, timestamp: Date.now() }, index.CacheTTL.SHORT);
129
- return { tokenIds, fromCache: false };
130
- }
131
122
  async getTokenIdsByEnumeration(params, abi, maxTokens) {
132
- // Cache individual enumeration calls to avoid repeated tokenOfOwnerByIndex calls
133
- const promises = Array.from({ length: maxTokens }, (_, i) => {
134
- const enumerationCacheKey = `enumeration:${params.contractAddress}:${params.accountAddress}:${i}:${params.chainId}`;
135
- return this.cache.getOrSet(enumerationCacheKey, () => this.web3Api.getTokenOfOwnerByIndex({
136
- ...params, abi, tokenIndex: i
137
- }).catch(error => {
138
- // Silently handle token enumeration errors (index out of bounds is normal)
139
- return null;
140
- }), index.CacheTTL.SHORT // 5 minutes - enumeration results rarely change
141
- );
142
- });
123
+ const promises = Array.from({ length: maxTokens }, (_, i) => this.web3Api.getTokenOfOwnerByIndex({
124
+ ...params, abi, tokenIndex: i
125
+ }).catch(() => null) // Silently handle index out of bounds
126
+ );
143
127
  const results = await Promise.all(promises);
144
128
  return results.filter((id) => id !== null);
145
129
  }
@@ -224,17 +208,19 @@ class TokenDomainService {
224
208
 
225
209
  /**
226
210
  * MetadataDomainService - Clean IPFS metadata resolution with centralized caching
211
+ *
212
+ * IPFS gateway is resolved from tenant configuration (chain-agnostic).
227
213
  */
228
214
  class MetadataDomainService {
229
215
  constructor(ipfsApi) {
230
216
  this.ipfsApi = ipfsApi;
231
217
  this.cache = index.globalCacheService.createNamespace('metadata');
232
218
  }
233
- async fetchAndProcessMetadata(tokenUri, chainId) {
234
- const cacheKey = `fetch:${tokenUri}:${chainId}`;
219
+ async fetchAndProcessMetadata(tokenUri) {
220
+ const cacheKey = `fetch:${tokenUri}`;
235
221
  return this.cache.getOrSet(cacheKey, async () => {
236
222
  try {
237
- return await this.ipfsApi.fetchAndProcessMetadata(tokenUri, chainId);
223
+ return await this.ipfsApi.fetchAndProcessMetadata(tokenUri);
238
224
  }
239
225
  catch (error) {
240
226
  console.error(`Error fetching metadata for ${tokenUri}:`, error);
@@ -242,9 +228,9 @@ class MetadataDomainService {
242
228
  }
243
229
  }, index.CacheTTL.METADATA);
244
230
  }
245
- async resolveIPFSUrl(url, chainId) {
246
- const cacheKey = `resolve:${url}:${chainId}`;
247
- return this.cache.getOrSet(cacheKey, () => this.ipfsApi.resolveIPFSUrl(url, chainId), index.CacheTTL.GATEWAY);
231
+ async resolveIPFSUrl(url) {
232
+ const cacheKey = `resolve:${url}`;
233
+ return this.cache.getOrSet(cacheKey, () => this.ipfsApi.resolveIPFSUrl(url), index.CacheTTL.GATEWAY);
248
234
  }
249
235
  /**
250
236
  * Clear all cached metadata and URLs for this service
@@ -344,19 +330,22 @@ class Web3ApplicationService {
344
330
  });
345
331
  }
346
332
  /**
347
- * Resolve IPFS URLs to HTTPS if needed
333
+ * Resolve IPFS URLs to HTTPS if needed.
334
+ *
335
+ * IPFS gateway is resolved from tenant configuration (chain-agnostic).
348
336
  */
349
- async resolveIPFSUrl(url, chainId) {
350
- return this.metadataDomainService.resolveIPFSUrl(url, chainId);
337
+ async resolveIPFSUrl(url) {
338
+ return this.metadataDomainService.resolveIPFSUrl(url);
351
339
  }
352
340
  /**
353
341
  * Fetch and process metadata from any URI with IPFS conversion.
354
342
  *
355
343
  * Use this for ad-hoc metadata fetching when you have a tokenURI.
356
344
  * Normalization happens at infrastructure layer.
345
+ * IPFS gateway is resolved from tenant configuration (chain-agnostic).
357
346
  */
358
- async fetchAndProcessMetadata(tokenUri, chainId) {
359
- return this.metadataDomainService.fetchAndProcessMetadata(tokenUri, chainId);
347
+ async fetchAndProcessMetadata(tokenUri) {
348
+ return this.metadataDomainService.fetchAndProcessMetadata(tokenUri);
360
349
  }
361
350
  }
362
351
 
@@ -410,30 +399,42 @@ class Web3InfrastructureApi {
410
399
 
411
400
  /**
412
401
  * IPFSInfrastructureApi - Infrastructure implementation for IPFS operations
413
- * Uses Web3ChainService for IPFS gateway resolution with centralized caching
402
+ * Uses TenantManager for IPFS gateway resolution with centralized caching
403
+ *
404
+ * IMPORTANT: IPFS gateway domain is now fetched from tenant configuration (TenantClientConfigDTO),
405
+ * not from chain data. This is the correct architecture since IPFS is chain-agnostic.
414
406
  */
415
407
  class IPFSInfrastructureApi {
416
- constructor(web3ChainService) {
417
- this.web3ChainService = web3ChainService;
418
- this.defaultIpfsGatewayDomain = 'pers.mypinata.cloud';
408
+ constructor(tenantManager) {
409
+ this.tenantManager = tenantManager;
419
410
  this.cache = index.globalCacheService.createNamespace('ipfs');
420
411
  }
421
- async getIpfsGatewayDomain(chainId) {
422
- const cacheKey = `gateway:${chainId}`;
412
+ /**
413
+ * Get IPFS gateway domain from tenant configuration.
414
+ *
415
+ * @returns The IPFS gateway domain from tenant configuration
416
+ * @throws Error if tenant config is not found or ipfsGatewayDomain is not configured
417
+ */
418
+ async getIpfsGatewayDomain() {
419
+ const cacheKey = 'gateway';
423
420
  return this.cache.getOrSet(cacheKey, async () => {
424
- try {
425
- const chainData = await this.web3ChainService.getChainDataWithCache(chainId);
426
- return chainData.ipfsGatewayDomain || this.defaultIpfsGatewayDomain;
427
- }
428
- catch (error) {
429
- console.warn(`Failed to get chain data for chainId ${chainId}, using default IPFS gateway:`, error);
430
- return this.defaultIpfsGatewayDomain;
421
+ const clientConfig = await this.tenantManager.getClientConfig();
422
+ if (!clientConfig.ipfsGatewayDomain) {
423
+ throw new Error(`IPFS gateway domain not configured for tenant. ` +
424
+ `Please configure ipfsGatewayDomain in the tenant configuration.`);
431
425
  }
426
+ return clientConfig.ipfsGatewayDomain;
432
427
  }, index.CacheTTL.GATEWAY);
433
428
  }
434
- async resolveIPFSUrl(url, chainId) {
429
+ /**
430
+ * Resolve IPFS URL to HTTPS URL using tenant's configured gateway.
431
+ *
432
+ * @param url - The URL to resolve (can be ipfs:// or https://)
433
+ * @returns Resolved HTTPS URL
434
+ */
435
+ async resolveIPFSUrl(url) {
435
436
  if (url.startsWith('ipfs://')) {
436
- const gateway = await this.getIpfsGatewayDomain(chainId);
437
+ const gateway = await this.getIpfsGatewayDomain();
437
438
  return url.replace('ipfs://', `https://${gateway}/ipfs/`);
438
439
  }
439
440
  return url;
@@ -446,12 +447,11 @@ class IPFSInfrastructureApi {
446
447
  * All downstream consumers receive normalized SDK format with resolved HTTPS URLs.
447
448
  *
448
449
  * @param tokenUri - Token URI (can be ipfs:// or https://)
449
- * @param chainId - Chain ID for IPFS gateway selection
450
450
  * @returns Normalized TokenMetadata with resolved HTTPS URLs, or null on error
451
451
  */
452
- async fetchAndProcessMetadata(tokenUri, chainId) {
452
+ async fetchAndProcessMetadata(tokenUri) {
453
453
  try {
454
- const resolvedUri = await this.resolveIPFSUrl(tokenUri, chainId);
454
+ const resolvedUri = await this.resolveIPFSUrl(tokenUri);
455
455
  const response = await fetch(resolvedUri);
456
456
  if (!response.ok) {
457
457
  throw new Error(`HTTP error! status: ${response.status}`);
@@ -459,10 +459,10 @@ class IPFSInfrastructureApi {
459
459
  const rawMetadata = await response.json();
460
460
  // Resolve IPFS URLs for media fields
461
461
  const resolvedImageUrl = rawMetadata.image
462
- ? await this.resolveIPFSUrl(rawMetadata.image, chainId)
462
+ ? await this.resolveIPFSUrl(rawMetadata.image)
463
463
  : '';
464
464
  const resolvedAnimationUrl = rawMetadata.animation_url
465
- ? await this.resolveIPFSUrl(rawMetadata.animation_url, chainId)
465
+ ? await this.resolveIPFSUrl(rawMetadata.animation_url)
466
466
  : undefined;
467
467
  // Extract custom properties (anything not in ERC standard)
468
468
  const customProperties = Object.fromEntries(Object.entries(rawMetadata).filter(([key]) => !['name', 'description', 'image', 'animation_url', 'external_url', 'attributes'].includes(key)));
@@ -595,6 +595,11 @@ async function getExplorerUrlByChainId(getChainData, chainId, address, type) {
595
595
  * tokenIds // Required for ERC-1155, optional for ERC-721
596
596
  * });
597
597
  * ```
598
+ *
599
+ * ## IPFS Resolution
600
+ *
601
+ * For IPFS URL resolution, use `sdk.tenant.resolveIPFSUrl()` instead.
602
+ * IPFS is chain-agnostic and configured at the tenant level.
598
603
  */
599
604
  class Web3Manager {
600
605
  // TODO: Add PersEventEmitter support for blockchain events
@@ -604,14 +609,16 @@ class Web3Manager {
604
609
  // 3. Emit via: this.events?.emitSuccess({ domain: 'web3', type: 'NFT_TRANSFERRED', ... })
605
610
  // 4. Filter to only user's address (not all transfers)
606
611
  // 5. Add cleanup for event listeners on SDK destroy
607
- constructor(apiClient) {
612
+ constructor(apiClient, tenantManager$1) {
608
613
  this.apiClient = apiClient;
614
+ // Use provided TenantManager or create one
615
+ this.tenantManager = tenantManager$1 || new tenantManager.TenantManager(apiClient);
609
616
  // Initialize Web3 Chain service
610
617
  const web3ChainApi = new web3ChainService.Web3ChainApi(apiClient);
611
618
  this.web3ChainService = new web3ChainService.Web3ChainService(web3ChainApi);
612
- // Initialize Web3 Application service
619
+ // Initialize Web3 Application service with TenantManager for IPFS
613
620
  const web3InfrastructureApi = new Web3InfrastructureApi(this.web3ChainService);
614
- const ipfsInfrastructureApi = new IPFSInfrastructureApi(this.web3ChainService);
621
+ const ipfsInfrastructureApi = new IPFSInfrastructureApi(this.tenantManager);
615
622
  this.web3ApplicationService = new Web3ApplicationService(web3InfrastructureApi, ipfsInfrastructureApi);
616
623
  }
617
624
  /**
@@ -641,25 +648,14 @@ class Web3Manager {
641
648
  async getTokenCollection(request) {
642
649
  return this.web3ApplicationService.getTokenCollection(request);
643
650
  }
644
- /**
645
- * Resolve IPFS URL to accessible URL
646
- *
647
- * @param url - IPFS URL to resolve
648
- * @param chainId - Chain ID for context
649
- * @returns Promise resolving to accessible URL
650
- */
651
- async resolveIPFSUrl(url, chainId) {
652
- return this.web3ApplicationService.resolveIPFSUrl(url, chainId);
653
- }
654
651
  /**
655
652
  * Fetch and process token metadata
656
653
  *
657
654
  * @param tokenUri - Token URI to fetch metadata from
658
- * @param chainId - Chain ID for context
659
655
  * @returns Promise resolving to processed metadata or null if not found
660
656
  */
661
- async fetchAndProcessMetadata(tokenUri, chainId) {
662
- return this.web3ApplicationService.fetchAndProcessMetadata(tokenUri, chainId);
657
+ async fetchAndProcessMetadata(tokenUri) {
658
+ return this.web3ApplicationService.fetchAndProcessMetadata(tokenUri);
663
659
  }
664
660
  /**
665
661
  * Get blockchain chain data by chain ID
@@ -743,7 +739,7 @@ class Web3Manager {
743
739
  *
744
740
  * @param accountAddress - Any valid blockchain address (wallet, contract, etc.)
745
741
  * @param token - Token definition (from getRewardTokens, getStatusTokens, etc.)
746
- * @param maxTokens - Maximum tokens to retrieve (default: 50)
742
+ * @param maxTokens - Maximum tokens to retrieve (default: 100, max: 100)
747
743
  * @returns Promise resolving to collection result with owned tokens
748
744
  *
749
745
  * @example Query user's wallet
@@ -763,7 +759,7 @@ class Web3Manager {
763
759
  * @see {@link extractTokenIds} - Low-level helper used internally for ERC-1155
764
760
  * @see {@link buildCollectionRequest} - For manual request building
765
761
  */
766
- async getAccountOwnedTokensFromContract(accountAddress, token, maxTokens = 50) {
762
+ async getAccountOwnedTokensFromContract(accountAddress, token, maxTokens = 100) {
767
763
  // For ERC-1155, extract tokenIds from metadata
768
764
  const tokenIds = token.type === persShared.NativeTokenTypes.ERC1155 ? this.extractTokenIds(token) : undefined;
769
765
  const collection = await this.getTokenCollection({
@@ -829,4 +825,4 @@ exports.Web3InfrastructureApi = Web3InfrastructureApi;
829
825
  exports.Web3Manager = Web3Manager;
830
826
  exports.getExplorerUrl = getExplorerUrl;
831
827
  exports.getExplorerUrlByChainId = getExplorerUrlByChainId;
832
- //# sourceMappingURL=web3-manager-C_cFaMCm.cjs.map
828
+ //# sourceMappingURL=web3-manager-B0OyjqJR.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"web3-manager-B0OyjqJR.cjs","sources":["../../src/web3/domain/services/token-domain.service.ts","../../src/web3/domain/services/metadata-domain.service.ts","../../src/web3/domain/services/contract-domain.service.ts","../../src/web3/application/web3-application.service.ts","../../src/web3/infrastructure/api/web3-api.ts","../../src/web3/infrastructure/api/ipfs-api.ts","../../src/web3/utils/explorer.utils.ts","../../src/managers/web3-manager.ts"],"sourcesContent":[null,null,null,null,null,null,null,null],"names":["globalCacheService","convertAbiToInterface","CacheTTL","createSafeContract","getAccountTokenBalance","getTokenUri","getTokenOfOwnerByIndex","tenantManager","TenantManager","Web3ChainApi","Web3ChainService","NativeTokenTypes"],"mappings":"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"}