@explorins/pers-sdk 1.6.3 → 1.6.6

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 (207) hide show
  1. package/README.md +63 -37
  2. package/dist/analytics/index.d.ts +0 -16
  3. package/dist/analytics/index.d.ts.map +1 -1
  4. package/dist/analytics.cjs +5 -73
  5. package/dist/analytics.cjs.map +1 -1
  6. package/dist/analytics.js +1 -72
  7. package/dist/analytics.js.map +1 -1
  8. package/dist/business/index.d.ts +0 -24
  9. package/dist/business/index.d.ts.map +1 -1
  10. package/dist/business.cjs +5 -273
  11. package/dist/business.cjs.map +1 -1
  12. package/dist/business.js +1 -272
  13. package/dist/business.js.map +1 -1
  14. package/dist/campaign/api/campaign-api.d.ts +3 -13
  15. package/dist/campaign/api/campaign-api.d.ts.map +1 -1
  16. package/dist/campaign/index.d.ts +0 -34
  17. package/dist/campaign/index.d.ts.map +1 -1
  18. package/dist/campaign.cjs +5 -470
  19. package/dist/campaign.cjs.map +1 -1
  20. package/dist/campaign.js +1 -469
  21. package/dist/campaign.js.map +1 -1
  22. package/dist/chunks/analytics-service-CitlimKJ.cjs +49 -0
  23. package/dist/chunks/analytics-service-CitlimKJ.cjs.map +1 -0
  24. package/dist/chunks/analytics-service-CxyrOwel.js +46 -0
  25. package/dist/chunks/analytics-service-CxyrOwel.js.map +1 -0
  26. package/dist/chunks/{token-sdk-BW4kkJb3.js → base-token-service-BSXDwrcq.js} +138 -204
  27. package/dist/chunks/base-token-service-BSXDwrcq.js.map +1 -0
  28. package/dist/chunks/{token-sdk-CiAbOb6c.cjs → base-token-service-CYuqPPs0.cjs} +140 -207
  29. package/dist/chunks/base-token-service-CYuqPPs0.cjs.map +1 -0
  30. package/dist/chunks/business-service-Cq3-oksM.cjs +241 -0
  31. package/dist/chunks/business-service-Cq3-oksM.cjs.map +1 -0
  32. package/dist/chunks/business-service-DrC-TNGa.js +238 -0
  33. package/dist/chunks/business-service-DrC-TNGa.js.map +1 -0
  34. package/dist/chunks/campaign-service-CWK9I388.cjs +403 -0
  35. package/dist/chunks/campaign-service-CWK9I388.cjs.map +1 -0
  36. package/dist/chunks/campaign-service-Dd7gMjC9.js +400 -0
  37. package/dist/chunks/campaign-service-Dd7gMjC9.js.map +1 -0
  38. package/dist/chunks/donation-service-CyJS4DIZ.js +47 -0
  39. package/dist/chunks/donation-service-CyJS4DIZ.js.map +1 -0
  40. package/dist/chunks/donation-service-D-xFrONi.cjs +50 -0
  41. package/dist/chunks/donation-service-D-xFrONi.cjs.map +1 -0
  42. package/dist/chunks/{index-CJ9Jfa4A.js → explorer.utils-Ckll15ja.js} +108 -172
  43. package/dist/chunks/explorer.utils-Ckll15ja.js.map +1 -0
  44. package/dist/chunks/{index-CzEluQmf.cjs → explorer.utils-GpskbLl1.cjs} +106 -174
  45. package/dist/chunks/explorer.utils-GpskbLl1.cjs.map +1 -0
  46. package/dist/chunks/index-BtDNXaFq.js +13 -0
  47. package/dist/chunks/index-BtDNXaFq.js.map +1 -0
  48. package/dist/chunks/index-CMk3Aqkk.cjs +15 -0
  49. package/dist/chunks/index-CMk3Aqkk.cjs.map +1 -0
  50. package/dist/chunks/payment-service-B4qx0qiE.cjs +220 -0
  51. package/dist/chunks/payment-service-B4qx0qiE.cjs.map +1 -0
  52. package/dist/chunks/payment-service-DfCBFosx.js +217 -0
  53. package/dist/chunks/payment-service-DfCBFosx.js.map +1 -0
  54. package/dist/chunks/pers-sdk-CajYwGkL.cjs +5850 -0
  55. package/dist/chunks/pers-sdk-CajYwGkL.cjs.map +1 -0
  56. package/dist/chunks/pers-sdk-eO4XUi8w.js +5817 -0
  57. package/dist/chunks/pers-sdk-eO4XUi8w.js.map +1 -0
  58. package/dist/chunks/redemption-service-7qbeQxEM.cjs +330 -0
  59. package/dist/chunks/redemption-service-7qbeQxEM.cjs.map +1 -0
  60. package/dist/chunks/redemption-service-BT0J5Iy7.js +327 -0
  61. package/dist/chunks/redemption-service-BT0J5Iy7.js.map +1 -0
  62. package/dist/chunks/tenant-service-Ba7xrWED.cjs +171 -0
  63. package/dist/chunks/tenant-service-Ba7xrWED.cjs.map +1 -0
  64. package/dist/chunks/tenant-service-DELk412y.js +168 -0
  65. package/dist/chunks/tenant-service-DELk412y.js.map +1 -0
  66. package/dist/chunks/token-service-BWScn8Qa.cjs +208 -0
  67. package/dist/chunks/token-service-BWScn8Qa.cjs.map +1 -0
  68. package/dist/chunks/token-service-CpVwC5Eb.js +205 -0
  69. package/dist/chunks/token-service-CpVwC5Eb.js.map +1 -0
  70. package/dist/chunks/user-service-D1Rn4U8u.cjs +153 -0
  71. package/dist/chunks/user-service-D1Rn4U8u.cjs.map +1 -0
  72. package/dist/chunks/user-service-D6mTa_WZ.js +150 -0
  73. package/dist/chunks/user-service-D6mTa_WZ.js.map +1 -0
  74. package/dist/chunks/{index-BfOoX87y.cjs → web3-chain-service-BYkj61DN.cjs} +1 -33
  75. package/dist/chunks/web3-chain-service-BYkj61DN.cjs.map +1 -0
  76. package/dist/chunks/{index-CM21r58m.js → web3-chain-service-DN6tJmvK.js} +2 -31
  77. package/dist/chunks/web3-chain-service-DN6tJmvK.js.map +1 -0
  78. package/dist/core/auth/auth-provider.interface.d.ts +32 -69
  79. package/dist/core/auth/auth-provider.interface.d.ts.map +1 -1
  80. package/dist/core/auth/default-auth-provider.d.ts +15 -58
  81. package/dist/core/auth/default-auth-provider.d.ts.map +1 -1
  82. package/dist/core/auth/index.d.ts +10 -12
  83. package/dist/core/auth/index.d.ts.map +1 -1
  84. package/dist/core/auth/refresh-manager.d.ts +18 -0
  85. package/dist/core/auth/refresh-manager.d.ts.map +1 -0
  86. package/dist/core/auth/services/auth-service.d.ts +11 -6
  87. package/dist/core/auth/services/auth-service.d.ts.map +1 -1
  88. package/dist/core/auth/token-storage.d.ts +27 -47
  89. package/dist/core/auth/token-storage.d.ts.map +1 -1
  90. package/dist/core/errors/index.d.ts +1 -5
  91. package/dist/core/errors/index.d.ts.map +1 -1
  92. package/dist/core/index.d.ts +4 -1
  93. package/dist/core/index.d.ts.map +1 -1
  94. package/dist/core/pers-api-client.d.ts +10 -126
  95. package/dist/core/pers-api-client.d.ts.map +1 -1
  96. package/dist/core/pers-config.d.ts +8 -3
  97. package/dist/core/pers-config.d.ts.map +1 -1
  98. package/dist/core/utils/jwt.function.d.ts.map +1 -1
  99. package/dist/core.cjs +22 -17
  100. package/dist/core.cjs.map +1 -1
  101. package/dist/core.js +13 -13
  102. package/dist/donation/index.d.ts +0 -15
  103. package/dist/donation/index.d.ts.map +1 -1
  104. package/dist/donation.cjs +5 -75
  105. package/dist/donation.cjs.map +1 -1
  106. package/dist/donation.js +1 -74
  107. package/dist/donation.js.map +1 -1
  108. package/dist/index.cjs +51 -56
  109. package/dist/index.cjs.map +1 -1
  110. package/dist/index.js +16 -15
  111. package/dist/index.js.map +1 -1
  112. package/dist/managers/analytics-manager.d.ts +290 -10
  113. package/dist/managers/analytics-manager.d.ts.map +1 -1
  114. package/dist/managers/auth-manager.d.ts +123 -23
  115. package/dist/managers/auth-manager.d.ts.map +1 -1
  116. package/dist/managers/business-manager.d.ts +273 -18
  117. package/dist/managers/business-manager.d.ts.map +1 -1
  118. package/dist/managers/campaign-manager.d.ts +585 -46
  119. package/dist/managers/campaign-manager.d.ts.map +1 -1
  120. package/dist/managers/donation-manager.d.ts +5 -5
  121. package/dist/managers/donation-manager.d.ts.map +1 -1
  122. package/dist/managers/file-manager.d.ts +430 -13
  123. package/dist/managers/file-manager.d.ts.map +1 -1
  124. package/dist/managers/purchase-manager.d.ts +340 -15
  125. package/dist/managers/purchase-manager.d.ts.map +1 -1
  126. package/dist/managers/redemption-manager.d.ts +450 -27
  127. package/dist/managers/redemption-manager.d.ts.map +1 -1
  128. package/dist/managers/tenant-manager.d.ts +5 -5
  129. package/dist/managers/tenant-manager.d.ts.map +1 -1
  130. package/dist/managers/token-manager.d.ts +245 -21
  131. package/dist/managers/token-manager.d.ts.map +1 -1
  132. package/dist/managers/transaction-manager.d.ts +447 -18
  133. package/dist/managers/transaction-manager.d.ts.map +1 -1
  134. package/dist/managers/user-manager.d.ts +216 -14
  135. package/dist/managers/user-manager.d.ts.map +1 -1
  136. package/dist/managers/web3-manager.d.ts +4 -4
  137. package/dist/managers/web3-manager.d.ts.map +1 -1
  138. package/dist/package.json +9 -2
  139. package/dist/payment/index.d.ts +0 -21
  140. package/dist/payment/index.d.ts.map +1 -1
  141. package/dist/payment.cjs +5 -255
  142. package/dist/payment.cjs.map +1 -1
  143. package/dist/payment.js +1 -254
  144. package/dist/payment.js.map +1 -1
  145. package/dist/pers-sdk.d.ts +141 -34
  146. package/dist/pers-sdk.d.ts.map +1 -1
  147. package/dist/redemption/index.d.ts +0 -25
  148. package/dist/redemption/index.d.ts.map +1 -1
  149. package/dist/redemption.cjs +5 -365
  150. package/dist/redemption.cjs.map +1 -1
  151. package/dist/redemption.js +1 -364
  152. package/dist/redemption.js.map +1 -1
  153. package/dist/tenant/index.d.ts +0 -22
  154. package/dist/tenant/index.d.ts.map +1 -1
  155. package/dist/tenant.cjs +5 -203
  156. package/dist/tenant.cjs.map +1 -1
  157. package/dist/tenant.js +1 -202
  158. package/dist/tenant.js.map +1 -1
  159. package/dist/token.cjs +6 -6
  160. package/dist/token.js +2 -2
  161. package/dist/transaction/index.d.ts +0 -22
  162. package/dist/transaction/index.d.ts.map +1 -1
  163. package/dist/transaction.cjs +0 -40
  164. package/dist/transaction.cjs.map +1 -1
  165. package/dist/transaction.js +1 -40
  166. package/dist/transaction.js.map +1 -1
  167. package/dist/user/index.d.ts +0 -25
  168. package/dist/user/index.d.ts.map +1 -1
  169. package/dist/user.cjs +5 -185
  170. package/dist/user.cjs.map +1 -1
  171. package/dist/user.js +1 -184
  172. package/dist/user.js.map +1 -1
  173. package/dist/web3/index.d.ts +0 -11
  174. package/dist/web3/index.d.ts.map +1 -1
  175. package/dist/web3-chain/index.d.ts +0 -9
  176. package/dist/web3-chain/index.d.ts.map +1 -1
  177. package/dist/web3-chain/services/getWeb3FCD.service.d.ts.map +1 -1
  178. package/dist/web3-chain.cjs +5 -5
  179. package/dist/web3-chain.js +2 -1
  180. package/dist/web3-chain.js.map +1 -1
  181. package/dist/web3.cjs +6 -10
  182. package/dist/web3.cjs.map +1 -1
  183. package/dist/web3.js +1 -4
  184. package/dist/web3.js.map +1 -1
  185. package/package.json +9 -2
  186. package/dist/chunks/base-token-service-D0KANDgM.js +0 -139
  187. package/dist/chunks/base-token-service-D0KANDgM.js.map +0 -1
  188. package/dist/chunks/base-token-service-zNfPjHRx.cjs +0 -141
  189. package/dist/chunks/base-token-service-zNfPjHRx.cjs.map +0 -1
  190. package/dist/chunks/index-BfOoX87y.cjs.map +0 -1
  191. package/dist/chunks/index-CJ9Jfa4A.js.map +0 -1
  192. package/dist/chunks/index-CM21r58m.js.map +0 -1
  193. package/dist/chunks/index-CzEluQmf.cjs.map +0 -1
  194. package/dist/chunks/pers-sdk-DbPwFKrf.cjs +0 -3378
  195. package/dist/chunks/pers-sdk-DbPwFKrf.cjs.map +0 -1
  196. package/dist/chunks/pers-sdk-Z6MKeFBX.js +0 -3353
  197. package/dist/chunks/pers-sdk-Z6MKeFBX.js.map +0 -1
  198. package/dist/chunks/token-sdk-BW4kkJb3.js.map +0 -1
  199. package/dist/chunks/token-sdk-CiAbOb6c.cjs.map +0 -1
  200. package/dist/core/auth/auth-constants.d.ts +0 -33
  201. package/dist/core/auth/auth-constants.d.ts.map +0 -1
  202. package/dist/core/auth/auth-errors.d.ts +0 -8
  203. package/dist/core/auth/auth-errors.d.ts.map +0 -1
  204. package/dist/core/auth/create-auth-provider.d.ts +0 -27
  205. package/dist/core/auth/create-auth-provider.d.ts.map +0 -1
  206. package/dist/core/auth/token-refresh.d.ts +0 -91
  207. package/dist/core/auth/token-refresh.d.ts.map +0 -1
@@ -1,47 +1,115 @@
1
- import { c as createWeb3ChainSDK } from './index-CM21r58m.js';
2
- import { convertAbiToInterface, createSafeContract, getAccountTokenBalance, getTokenUri, getTokenOfOwnerByIndex } from '@explorins/web3-ts/ethers';
1
+ import { createSafeContract, getAccountTokenBalance, getTokenUri, getTokenOfOwnerByIndex, convertAbiToInterface } from '@explorins/web3-ts/ethers';
3
2
 
4
3
  /**
5
- * Environment Detection Utility
6
- *
7
- * Detects the runtime environment to handle platform-specific behaviors
8
- * for bundling and module resolution.
9
- */
10
- /**
11
- * Detects the current runtime environment
4
+ * Web3InfrastructureApi - Infrastructure implementation for blockchain operations
5
+ * Uses @explorins/web3-ts for Web3 interactions
12
6
  */
13
- function detectEnvironment() {
14
- const isNode = typeof process !== 'undefined' &&
15
- process.versions != null &&
16
- process.versions.node != null &&
17
- typeof globalThis.window === 'undefined';
18
- const isBrowser = typeof globalThis.window !== 'undefined' &&
19
- typeof globalThis.document !== 'undefined';
20
- const isReactNative = typeof globalThis.navigator !== 'undefined' &&
21
- typeof globalThis.navigator.product === 'string' &&
22
- globalThis.navigator.product.toLowerCase() === 'reactnative';
23
- const isWeb = isBrowser || isReactNative;
24
- // Node.js streams: Only native in Node.js, need polyfills or avoidance in web
25
- const needsNodeStreamPolyfills = isWeb;
26
- return {
27
- isNode,
28
- isBrowser,
29
- isReactNative,
30
- isWeb,
31
- needsNodeStreamPolyfills
32
- };
7
+ class Web3InfrastructureApi {
8
+ constructor(web3ChainService) {
9
+ this.web3ChainService = web3ChainService;
10
+ }
11
+ async getTokenBalance(request) {
12
+ try {
13
+ if (request.tokenId !== null)
14
+ request.tokenId = request.tokenId.toString();
15
+ const ethersProvider = await this.web3ChainService.getEthersProviderByChainId(request.chainId);
16
+ console.log(`[getTokenBalance] Ethers provider obtained, creating contract instance...`, ethersProvider);
17
+ const contract = createSafeContract(request.contractAddress, request.abi, ethersProvider);
18
+ return await getAccountTokenBalance(contract, request.accountAddress, request.tokenId);
19
+ }
20
+ catch (error) {
21
+ console.error(`Failed to get token balance for ${request.accountAddress} for ${request.contractAddress} and tokenId ${request.tokenId}, return 0 instead:`, error);
22
+ return 0;
23
+ }
24
+ }
25
+ async getTokenUri(request) {
26
+ try {
27
+ const ethersProvider = await this.web3ChainService.getEthersProviderByChainId(request.chainId);
28
+ const contract = createSafeContract(request.contractAddress, request.abi, ethersProvider);
29
+ const tokenId = Number(request.tokenId);
30
+ const tokenUri = await getTokenUri(contract, tokenId);
31
+ return String(tokenUri);
32
+ }
33
+ catch (error) {
34
+ console.error(`Failed to get token URI for tokenId ${request.tokenId}:`, error);
35
+ throw error;
36
+ }
37
+ }
38
+ async getTokenOfOwnerByIndex(request) {
39
+ try {
40
+ const ethersProvider = await this.web3ChainService.getEthersProviderByChainId(request.chainId);
41
+ const tokenContract = createSafeContract(request.contractAddress, request.abi, ethersProvider);
42
+ const tokenId = await getTokenOfOwnerByIndex(tokenContract, request.accountAddress, request.tokenIndex);
43
+ return String(tokenId);
44
+ }
45
+ catch (error) {
46
+ console.error(`Failed to get token by index ${request.tokenIndex} for ${request.accountAddress}:`, error);
47
+ throw error;
48
+ }
49
+ }
33
50
  }
51
+
34
52
  /**
35
- * Global environment info (cached)
36
- */
37
- const environment = detectEnvironment();
38
- /**
39
- * Warns if we're in an environment that might have bundling issues
53
+ * IPFSInfrastructureApi - Infrastructure implementation for IPFS operations
54
+ * Uses Web3ChainService for IPFS gateway resolution
40
55
  */
41
- function warnIfProblematicEnvironment(feature) {
42
- if (environment.needsNodeStreamPolyfills) {
43
- console.warn(`[PERS SDK] ${feature} may require additional polyfills in web environments. ` +
44
- `If you encounter 'readable-stream' errors, ensure proper polyfills are configured.`);
56
+ class IPFSInfrastructureApi {
57
+ constructor(web3ChainService) {
58
+ this.web3ChainService = web3ChainService;
59
+ this.defaultIpfsGatewayDomain = 'pers.mypinata.cloud';
60
+ }
61
+ async getIpfsGatewayDomain(chainId) {
62
+ try {
63
+ const chainData = await this.web3ChainService.getChainDataWithCache(chainId);
64
+ return chainData.ipfsGatewayDomain || this.defaultIpfsGatewayDomain;
65
+ }
66
+ catch (error) {
67
+ console.warn(`Failed to get chain data for chainId ${chainId}, using default IPFS gateway:`, error);
68
+ return this.defaultIpfsGatewayDomain;
69
+ }
70
+ }
71
+ async resolveIPFSUrl(url, chainId) {
72
+ if (url.startsWith('ipfs://')) {
73
+ const gateway = await this.getIpfsGatewayDomain(chainId);
74
+ return url.replace('ipfs://', `https://${gateway}/ipfs/`);
75
+ }
76
+ return url;
77
+ }
78
+ async fetchAndProcessMetadata(tokenUri, chainId) {
79
+ try {
80
+ const resolvedUri = await this.resolveIPFSUrl(tokenUri, chainId);
81
+ const response = await fetch(resolvedUri);
82
+ if (!response.ok) {
83
+ throw new Error(`HTTP error! status: ${response.status}`);
84
+ }
85
+ const metadata = await response.json();
86
+ // Process and return clean metadata
87
+ return {
88
+ name: metadata.name || '',
89
+ description: metadata.description || '',
90
+ image: metadata.image ? await this.resolveIPFSUrl(metadata.image, chainId) : '',
91
+ attributes: metadata.attributes || [],
92
+ animation_url: metadata.animation_url ? await this.resolveIPFSUrl(metadata.animation_url, chainId) : undefined,
93
+ external_url: metadata.external_url || undefined
94
+ };
95
+ }
96
+ catch (error) {
97
+ console.error('Error fetching metadata:', error);
98
+ return null;
99
+ }
100
+ }
101
+ async fetchFromUrl(url) {
102
+ try {
103
+ const response = await fetch(url);
104
+ if (!response.ok) {
105
+ throw new Error(`Failed to fetch from ${url}: ${response.statusText}`);
106
+ }
107
+ return await response.json();
108
+ }
109
+ catch (error) {
110
+ console.error(`Error fetching from URL ${url}:`, error);
111
+ throw error;
112
+ }
45
113
  }
46
114
  }
47
115
 
@@ -423,119 +491,6 @@ class Web3ApplicationService {
423
491
  }
424
492
  }
425
493
 
426
- /**
427
- * Web3InfrastructureApi - Infrastructure implementation for blockchain operations
428
- * Uses @explorins/web3-ts for Web3 interactions
429
- */
430
- class Web3InfrastructureApi {
431
- constructor(web3ChainService) {
432
- this.web3ChainService = web3ChainService;
433
- }
434
- async getTokenBalance(request) {
435
- try {
436
- if (request.tokenId !== null)
437
- request.tokenId = request.tokenId.toString();
438
- const ethersProvider = await this.web3ChainService.getEthersProviderByChainId(request.chainId);
439
- console.log(`[getTokenBalance] Ethers provider obtained, creating contract instance...`, ethersProvider);
440
- const contract = createSafeContract(request.contractAddress, request.abi, ethersProvider);
441
- return await getAccountTokenBalance(contract, request.accountAddress, request.tokenId);
442
- }
443
- catch (error) {
444
- console.error(`Failed to get token balance for ${request.accountAddress} for ${request.contractAddress} and tokenId ${request.tokenId}, return 0 instead:`, error);
445
- return 0;
446
- }
447
- }
448
- async getTokenUri(request) {
449
- try {
450
- const ethersProvider = await this.web3ChainService.getEthersProviderByChainId(request.chainId);
451
- const contract = createSafeContract(request.contractAddress, request.abi, ethersProvider);
452
- const tokenId = Number(request.tokenId);
453
- const tokenUri = await getTokenUri(contract, tokenId);
454
- return String(tokenUri);
455
- }
456
- catch (error) {
457
- console.error(`Failed to get token URI for tokenId ${request.tokenId}:`, error);
458
- throw error;
459
- }
460
- }
461
- async getTokenOfOwnerByIndex(request) {
462
- try {
463
- const ethersProvider = await this.web3ChainService.getEthersProviderByChainId(request.chainId);
464
- const tokenContract = createSafeContract(request.contractAddress, request.abi, ethersProvider);
465
- const tokenId = await getTokenOfOwnerByIndex(tokenContract, request.accountAddress, request.tokenIndex);
466
- return String(tokenId);
467
- }
468
- catch (error) {
469
- console.error(`Failed to get token by index ${request.tokenIndex} for ${request.accountAddress}:`, error);
470
- throw error;
471
- }
472
- }
473
- }
474
-
475
- /**
476
- * IPFSInfrastructureApi - Infrastructure implementation for IPFS operations
477
- * Uses Web3ChainService for IPFS gateway resolution
478
- */
479
- class IPFSInfrastructureApi {
480
- constructor(web3ChainService) {
481
- this.web3ChainService = web3ChainService;
482
- this.defaultIpfsGatewayDomain = 'pers.mypinata.cloud';
483
- }
484
- async getIpfsGatewayDomain(chainId) {
485
- try {
486
- const chainData = await this.web3ChainService.getChainDataWithCache(chainId);
487
- return chainData.ipfsGatewayDomain || this.defaultIpfsGatewayDomain;
488
- }
489
- catch (error) {
490
- console.warn(`Failed to get chain data for chainId ${chainId}, using default IPFS gateway:`, error);
491
- return this.defaultIpfsGatewayDomain;
492
- }
493
- }
494
- async resolveIPFSUrl(url, chainId) {
495
- if (url.startsWith('ipfs://')) {
496
- const gateway = await this.getIpfsGatewayDomain(chainId);
497
- return url.replace('ipfs://', `https://${gateway}/ipfs/`);
498
- }
499
- return url;
500
- }
501
- async fetchAndProcessMetadata(tokenUri, chainId) {
502
- try {
503
- const resolvedUri = await this.resolveIPFSUrl(tokenUri, chainId);
504
- const response = await fetch(resolvedUri);
505
- if (!response.ok) {
506
- throw new Error(`HTTP error! status: ${response.status}`);
507
- }
508
- const metadata = await response.json();
509
- // Process and return clean metadata
510
- return {
511
- name: metadata.name || '',
512
- description: metadata.description || '',
513
- image: metadata.image ? await this.resolveIPFSUrl(metadata.image, chainId) : '',
514
- attributes: metadata.attributes || [],
515
- animation_url: metadata.animation_url ? await this.resolveIPFSUrl(metadata.animation_url, chainId) : undefined,
516
- external_url: metadata.external_url || undefined
517
- };
518
- }
519
- catch (error) {
520
- console.error('Error fetching metadata:', error);
521
- return null;
522
- }
523
- }
524
- async fetchFromUrl(url) {
525
- try {
526
- const response = await fetch(url);
527
- if (!response.ok) {
528
- throw new Error(`Failed to fetch from ${url}: ${response.statusText}`);
529
- }
530
- return await response.json();
531
- }
532
- catch (error) {
533
- console.error(`Error fetching from URL ${url}:`, error);
534
- throw error;
535
- }
536
- }
537
- }
538
-
539
494
  /**
540
495
  * Generate explorer URL for a given address or transaction
541
496
  *
@@ -592,24 +547,5 @@ async function getExplorerUrlByChainId(getChainData, chainId, address, type) {
592
547
  return getExplorerUrl(chainData, address, type);
593
548
  }
594
549
 
595
- function createWeb3SDK(apiClient) {
596
- // Warn about potential bundling issues in web environments
597
- warnIfProblematicEnvironment('Web3 functionality');
598
- const web3ChainSDK = createWeb3ChainSDK(apiClient);
599
- // Create Web3ApplicationService - main entry point for all Web3 operations
600
- const web3InfrastructureApi = new Web3InfrastructureApi(web3ChainSDK.service);
601
- const ipfsInfrastructureApi = new IPFSInfrastructureApi(web3ChainSDK.service);
602
- const web3ApplicationService = new Web3ApplicationService(web3InfrastructureApi, ipfsInfrastructureApi);
603
- // Clean SDK - all functions route through Web3ApplicationService
604
- return {
605
- getTokenBalance: (request) => web3ApplicationService.getSpecificTokenBalance(request),
606
- getTokenMetadata: (request) => web3ApplicationService.getTokenMetadata(request),
607
- getTokenCollection: (request) => web3ApplicationService.getTokenCollection(request),
608
- resolveIPFSUrl: (url, chainId) => web3ApplicationService.resolveIPFSUrl(url, chainId),
609
- fetchAndProcessMetadata: (tokenUri, chainId) => web3ApplicationService.fetchAndProcessMetadata(tokenUri, chainId),
610
- applicationService: web3ApplicationService
611
- };
612
- }
613
-
614
- export { IPFSInfrastructureApi as I, Web3ApplicationService as W, Web3InfrastructureApi as a, getExplorerUrlByChainId as b, createWeb3SDK as c, detectEnvironment as d, environment as e, getExplorerUrl as g, warnIfProblematicEnvironment as w };
615
- //# sourceMappingURL=index-CJ9Jfa4A.js.map
550
+ export { IPFSInfrastructureApi as I, Web3ApplicationService as W, Web3InfrastructureApi as a, getExplorerUrlByChainId as b, getExplorerUrl as g };
551
+ //# sourceMappingURL=explorer.utils-Ckll15ja.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"explorer.utils-Ckll15ja.js","sources":["../../src/web3/infrastructure/api/web3-api.ts","../../src/web3/infrastructure/api/ipfs-api.ts","../../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/utils/explorer.utils.ts"],"sourcesContent":[null,null,null,null,null,null,null],"names":[],"mappings":";;AASA;;;AAGG;MACU,qBAAqB,CAAA;AAEhC,IAAA,WAAA,CAAoB,gBAAkC,EAAA;QAAlC,IAAA,CAAA,gBAAgB,GAAhB,gBAAgB;IAAqB;IAEzD,MAAM,eAAe,CAAC,OAMrB,EAAA;AACC,QAAA,IAAI;AACF,YAAA,IAAG,OAAO,CAAC,OAAO,KAAK,IAAI;gBAAE,OAAO,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,QAAQ,EAAE;AACzE,YAAA,MAAM,cAAc,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC,0BAA0B,CAAC,OAAO,CAAC,OAAO,CAAC;AAE9F,YAAA,OAAO,CAAC,GAAG,CAAC,2EAA2E,EAAE,cAAc,CAAC;AACxG,YAAA,MAAM,QAAQ,GAAG,kBAAkB,CAAC,OAAO,CAAC,eAAe,EAAE,OAAO,CAAC,GAAG,EAAE,cAAc,CAAC;AAEzF,YAAA,OAAO,MAAM,sBAAsB,CAAC,QAAQ,EAAE,OAAO,CAAC,cAAc,EAAE,OAAO,CAAC,OAAO,CAAC;QACxF;QAAE,OAAO,KAAK,EAAE;AACd,YAAA,OAAO,CAAC,KAAK,CAAC,mCAAmC,OAAO,CAAC,cAAc,CAAA,KAAA,EAAQ,OAAO,CAAC,eAAe,CAAA,aAAA,EAAgB,OAAO,CAAC,OAAO,qBAAqB,EAAE,KAAK,CAAC;AAClK,YAAA,OAAO,CAAC;QACV;IACF;IAEA,MAAM,WAAW,CAAC,OAKjB,EAAA;AACC,QAAA,IAAI;AACF,YAAA,MAAM,cAAc,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC,0BAA0B,CAAC,OAAO,CAAC,OAAO,CAAC;AAC9F,YAAA,MAAM,QAAQ,GAAG,kBAAkB,CAAC,OAAO,CAAC,eAAe,EAAE,OAAO,CAAC,GAAU,EAAE,cAAqB,CAAC;YAEvG,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC;YACvC,MAAM,QAAQ,GAAG,MAAM,WAAW,CAAC,QAAQ,EAAE,OAAO,CAAC;AAErD,YAAA,OAAO,MAAM,CAAC,QAAQ,CAAC;QACzB;QAAE,OAAO,KAAK,EAAE;YACd,OAAO,CAAC,KAAK,CAAC,CAAA,oCAAA,EAAuC,OAAO,CAAC,OAAO,CAAA,CAAA,CAAG,EAAE,KAAK,CAAC;AAC/E,YAAA,MAAM,KAAK;QACb;IACF;IAEA,MAAM,sBAAsB,CAAC,OAM5B,EAAA;AACC,QAAA,IAAI;AACF,YAAA,MAAM,cAAc,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC,0BAA0B,CAAC,OAAO,CAAC,OAAO,CAAC;AAC9F,YAAA,MAAM,aAAa,GAAG,kBAAkB,CAAC,OAAO,CAAC,eAAe,EAAE,OAAO,CAAC,GAAU,EAAE,cAAqB,CAAC;AAE5G,YAAA,MAAM,OAAO,GAAG,MAAM,sBAAsB,CAAC,aAAa,EAAE,OAAO,CAAC,cAAc,EAAE,OAAO,CAAC,UAAU,CAAC;AAEvG,YAAA,OAAO,MAAM,CAAC,OAAO,CAAC;QACxB;QAAE,OAAO,KAAK,EAAE;AACd,YAAA,OAAO,CAAC,KAAK,CAAC,CAAA,6BAAA,EAAgC,OAAO,CAAC,UAAU,CAAA,KAAA,EAAQ,OAAO,CAAC,cAAc,CAAA,CAAA,CAAG,EAAE,KAAK,CAAC;AACzG,YAAA,MAAM,KAAK;QACb;IACF;AACD;;AC3ED;;;AAGG;MACU,qBAAqB,CAAA;AAGhC,IAAA,WAAA,CAAoB,gBAAkC,EAAA;QAAlC,IAAA,CAAA,gBAAgB,GAAhB,gBAAgB;QAFnB,IAAA,CAAA,wBAAwB,GAAG,qBAAqB;IAER;IAEzD,MAAM,oBAAoB,CAAC,OAAe,EAAA;AACxC,QAAA,IAAI;YACF,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC,qBAAqB,CAAC,OAAO,CAAC;AAC5E,YAAA,OAAO,SAAS,CAAC,iBAAiB,IAAI,IAAI,CAAC,wBAAwB;QACrE;QAAE,OAAO,KAAK,EAAE;YACd,OAAO,CAAC,IAAI,CAAC,CAAA,qCAAA,EAAwC,OAAO,CAAA,6BAAA,CAA+B,EAAE,KAAK,CAAC;YACnG,OAAO,IAAI,CAAC,wBAAwB;QACtC;IACF;AAEA,IAAA,MAAM,cAAc,CAAC,GAAW,EAAE,OAAe,EAAA;AAC/C,QAAA,IAAI,GAAG,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE;YAC7B,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,oBAAoB,CAAC,OAAO,CAAC;YACxD,OAAO,GAAG,CAAC,OAAO,CAAC,SAAS,EAAE,CAAA,QAAA,EAAW,OAAO,CAAA,MAAA,CAAQ,CAAC;QAC3D;AACA,QAAA,OAAO,GAAG;IACZ;AAEA,IAAA,MAAM,uBAAuB,CAAC,QAAgB,EAAE,OAAe,EAAA;AAC7D,QAAA,IAAI;YACF,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,QAAQ,EAAE,OAAO,CAAC;AAChE,YAAA,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,WAAW,CAAC;AACzC,YAAA,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE;gBAChB,MAAM,IAAI,KAAK,CAAC,CAAA,oBAAA,EAAuB,QAAQ,CAAC,MAAM,CAAA,CAAE,CAAC;YAC3D;AAEA,YAAA,MAAM,QAAQ,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE;;YAGtC,OAAO;AACL,gBAAA,IAAI,EAAE,QAAQ,CAAC,IAAI,IAAI,EAAE;AACzB,gBAAA,WAAW,EAAE,QAAQ,CAAC,WAAW,IAAI,EAAE;gBACvC,KAAK,EAAE,QAAQ,CAAC,KAAK,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC,GAAG,EAAE;AAC/E,gBAAA,UAAU,EAAE,QAAQ,CAAC,UAAU,IAAI,EAAE;gBACrC,aAAa,EAAE,QAAQ,CAAC,aAAa,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,aAAa,EAAE,OAAO,CAAC,GAAG,SAAS;AAC9G,gBAAA,YAAY,EAAE,QAAQ,CAAC,YAAY,IAAI;aACxC;QACH;QAAE,OAAO,KAAK,EAAE;AACd,YAAA,OAAO,CAAC,KAAK,CAAC,0BAA0B,EAAE,KAAK,CAAC;AAChD,YAAA,OAAO,IAAI;QACb;IACF;IAEA,MAAM,YAAY,CAAC,GAAW,EAAA;AAC5B,QAAA,IAAI;AACF,YAAA,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,CAAC;AAEjC,YAAA,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE;gBAChB,MAAM,IAAI,KAAK,CAAC,CAAA,qBAAA,EAAwB,GAAG,CAAA,EAAA,EAAK,QAAQ,CAAC,UAAU,CAAA,CAAE,CAAC;YACxE;AAEA,YAAA,OAAO,MAAM,QAAQ,CAAC,IAAI,EAAE;QAC9B;QAAE,OAAO,KAAK,EAAE;YACd,OAAO,CAAC,KAAK,CAAC,CAAA,wBAAA,EAA2B,GAAG,CAAA,CAAA,CAAG,EAAE,KAAK,CAAC;AACvD,YAAA,MAAM,KAAK;QACb;IACF;AACD;;AC9DD;;;AAGG;MACU,kBAAkB,CAAA;AAE7B,IAAA,WAAA,CACU,OAA8B,EAC9B,eAAsC,EACtC,eAAsC,EAAA;QAFtC,IAAA,CAAA,OAAO,GAAP,OAAO;QACP,IAAA,CAAA,eAAe,GAAf,eAAe;QACf,IAAA,CAAA,eAAe,GAAf,eAAe;IACtB;IAEH,MAAM,eAAe,CAAC,OAA+G,EAAA;QACnI,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC;YACjD,cAAc,EAAE,OAAO,CAAC,cAAc;YACtC,eAAe,EAAE,OAAO,CAAC,eAAe;AACxC,YAAA,GAAG,EAAE,qBAAqB,CAAC,OAAO,CAAC,GAAG,CAAC;YACvC,OAAO,EAAE,OAAO,CAAC,OAAO;YACxB,OAAO,EAAE,OAAO,CAAC;AAClB,SAAA,CAAC;QAEF,OAAO;YACL,OAAO,EAAE,OAAO,CAAC,OAAO;YACxB,OAAO;YACP,UAAU,EAAE,OAAO,GAAG,CAAC;AACvB,YAAA,QAAQ,EAAE;SACX;IACH;IAEA,MAAM,oBAAoB,CAAC,MAM1B,EAAA;AACC,QAAA,IAAI;YACF,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC;gBACjD,cAAc,EAAE,MAAM,CAAC,cAAc;gBACrC,eAAe,EAAE,MAAM,CAAC,eAAe;AACvC,gBAAA,GAAG,EAAE,qBAAqB,CAAC,MAAM,CAAC,GAAG,CAAC;gBACtC,OAAO,EAAE,MAAM,CAAC,OAAO;gBACvB,OAAO,EAAE,MAAM,CAAC;AACjB,aAAA,CAAC;YAEF,IAAI,QAAQ,GAAyB,IAAI;AACzC,YAAA,IAAI,OAAO,GAAG,CAAC,EAAE;gBACf,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC;oBAC9C,eAAe,EAAE,MAAM,CAAC,eAAe;AACvC,oBAAA,GAAG,EAAE,qBAAqB,CAAC,MAAM,CAAC,GAAG,CAAC;oBACtC,OAAO,EAAE,MAAM,CAAC,OAAO;oBACvB,OAAO,EAAE,MAAM,CAAC;AACjB,iBAAA,CAAC;gBAEF,IAAI,QAAQ,EAAE;AACZ,oBAAA,QAAQ,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,uBAAuB,CAAC,QAAQ,EAAE,MAAM,CAAC,OAAO,CAAC;gBACzF;YACF;YAEA,OAAO;gBACL,OAAO,EAAE,MAAM,CAAC,OAAO;gBACvB,OAAO;gBACP,UAAU,EAAE,OAAO,GAAG,CAAC;gBACvB;aACD;QACH;QAAE,OAAO,KAAK,EAAE;AACd,YAAA,OAAO,CAAC,KAAK,CAAC,oCAAoC,EAAE,KAAK,CAAC;YAC1D,OAAO;gBACL,OAAO,EAAE,MAAM,CAAC,OAAO;AACvB,gBAAA,OAAO,EAAE,CAAC;AACV,gBAAA,UAAU,EAAE,KAAK;AACjB,gBAAA,QAAQ,EAAE;aACX;QACH;IACF;IAEA,MAAM,kBAAkB,CAAC,MAOxB,EAAA;QAEC,MAAM,CAAC,GAAG,GAAG,qBAAqB,CAAC,MAAM,CAAC,GAAG,CAAC;AAC9C,QAAA,IAAI;AAEA,YAAA,MAAM,gBAAgB,GAAG,IAAI,CAAC,eAAe,CAAC,eAAe,CAAC,MAAM,CAAC,GAAG,CAAC;YACzE,MAAM,MAAM,GAAmB,EAAE;YAEnC,IAAI,CAAC,gBAAgB,CAAC,cAAc,IAAI,CAAC,gBAAgB,CAAC,SAAS,EAAE;AACnE,gBAAA,OAAO,CAAC,IAAI,CAAC,wEAAwE,CAAC;gBACtF,OAAO;oBACL,cAAc,EAAE,MAAM,CAAC,cAAc;oBACrC,eAAe,EAAE,MAAM,CAAC,eAAe;AACvC,oBAAA,YAAY,EAAE,CAAC;AACf,oBAAA,eAAe,EAAE,CAAC;AAClB,oBAAA,MAAM,EAAE,EAAE;AACV,oBAAA,IAAI,EAAE;iBACP;YACH;AAAO,iBAAA,IAAI,gBAAgB,CAAC,SAAS,EAAE;AAErC,gBAAA,MAAM,iBAAiB,GAAG,MAAM,CAAC,QAAQ,IAAI,EAAE;AAE/C,gBAAA,IAAG,iBAAiB,CAAC,MAAM,GAAG,CAAC,EAAC;AAC5B,oBAAA,KAAK,MAAM,OAAO,IAAI,iBAAiB,EAAE;AACrC,wBAAA,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,oBAAoB,CAAC;4BACnD,cAAc,EAAE,MAAM,CAAC,cAAc;4BACnC,eAAe,EAAE,MAAM,CAAC,eAAe;4BACvC,GAAG,EAAE,MAAM,CAAC,GAAG;4BACf,OAAO;4BACP,OAAO,EAAE,MAAM,CAAC;AACnB,yBAAA,CAAC;AACF,wBAAA,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC;oBAC7B;gBACJ;AACA,gBAAA,OAAO,CAAC,GAAG,CAAC,yBAAyB,EAAE,MAAM,CAAC;;;AAI9C,gBAAA,OAAO,CAAC,IAAI,CAAC,6EAA6E,CAAC;gBAC3F,OAAO;oBACL,cAAc,EAAE,MAAM,CAAC,cAAc;oBACrC,eAAe,EAAE,MAAM,CAAC,eAAe;AACvC,oBAAA,YAAY,EAAE,CAAC;AACf,oBAAA,eAAe,EAAE,CAAC;AAClB,oBAAA,MAAM,EAAE,MAAM;AACd,oBAAA,IAAI,EAAE;iBACP;YACL;;AAKE,YAAA,IAAI,gBAAgB,CAAC,QAAQ,EAAE;;gBAE7B,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC;oBACrD,cAAc,EAAE,MAAM,CAAC,cAAc;oBACrC,eAAe,EAAE,MAAM,CAAC,eAAe;oBACvC,GAAG,EAAE,MAAM,CAAC,GAAG;oBACf,OAAO,EAAE,IAAI;oBACb,OAAO,EAAE,MAAM,CAAC;AACjB,iBAAA,CAAC;gBAEF,OAAO,CAAC,GAAG,CAAC,CAAA,yBAAA,EAA4B,MAAM,CAAC,cAAc,CAAA,CAAA,CAAG,EAAE,WAAW,CAAC;AAE9E,gBAAA,IAAI,WAAW,KAAK,CAAC,EAAE;oBACrB,OAAO;wBACL,cAAc,EAAE,MAAM,CAAC,cAAc;wBACrC,eAAe,EAAE,MAAM,CAAC,eAAe;AACvC,wBAAA,YAAY,EAAE,CAAC;AACf,wBAAA,eAAe,EAAE,CAAC;AAClB,wBAAA,MAAM,EAAE;qBACT;gBACH;;AAGA,gBAAA,MAAM,SAAS,GAAG,MAAM,CAAC,SAAS,IAAI,WAAW;gBACjD,MAAM,gBAAgB,GAAG,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,WAAW,CAAC;AAEzD,gBAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,gBAAgB,EAAE,CAAC,EAAE,EAAE;AACzC,oBAAA,IAAI;wBACF,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,sBAAsB,CAAC;4BACxD,eAAe,EAAE,MAAM,CAAC,eAAe;4BACvC,GAAG,EAAE,MAAM,CAAC,GAAG;4BACf,cAAc,EAAE,MAAM,CAAC,cAAc;AACrC,4BAAA,UAAU,EAAE,CAAC;4BACb,OAAO,EAAE,MAAM,CAAC;AACjB,yBAAA,CAAC;AAEF,wBAAA,MAAM,iBAAiB,GAAG,MAAM,IAAI,CAAC,oBAAoB,CAAC;4BACxD,cAAc,EAAE,MAAM,CAAC,cAAc;4BACrC,eAAe,EAAE,MAAM,CAAC,eAAe;4BACvC,GAAG,EAAE,MAAM,CAAC,GAAG;4BACf,OAAO;4BACP,OAAO,EAAE,MAAM,CAAC;AACjB,yBAAA,CAAC;AAEF,wBAAA,IAAI,iBAAiB,CAAC,UAAU,EAAE;AAChC,4BAAA,MAAM,CAAC,IAAI,CAAC,iBAAiB,CAAC;wBAChC;oBACF;oBAAE,OAAO,KAAK,EAAE;wBACd,OAAO,CAAC,IAAI,CAAC,CAAA,wCAAA,EAA2C,CAAC,CAAA,CAAA,CAAG,EAAE,KAAK,CAAC;wBACpE;oBACF;gBACF;YACF;iBAAO;;gBAEL,OAAO;oBACL,cAAc,EAAE,MAAM,CAAC,cAAc;oBACrC,eAAe,EAAE,MAAM,CAAC,eAAe;AACvC,oBAAA,YAAY,EAAE,CAAC;AACf,oBAAA,eAAe,EAAE,CAAC;AAClB,oBAAA,MAAM,EAAE,EAAE;AACV,oBAAA,IAAI,EAAE;iBACP;YACH;;YAGA,IAAI,YAAY,GAAG,CAAC;AACpB,YAAA,IAAI,gBAAgB,CAAC,QAAQ,EAAE;;AAE7B,gBAAA,YAAY,GAAG,MAAM,CAAC,MAAM;YAC9B;iBAAO;;gBAEL,YAAY,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,KAAK,KAAK,GAAG,GAAG,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;YACtE;YAEA,OAAO;gBACL,cAAc,EAAE,MAAM,CAAC,cAAc;gBACrC,eAAe,EAAE,MAAM,CAAC,eAAe;gBACvC,YAAY;gBACZ,eAAe,EAAE,MAAM,CAAC,MAAM;gBAC9B;aACD;QACH;QAAE,OAAO,KAAK,EAAE;AACd,YAAA,OAAO,CAAC,KAAK,CAAC,iCAAiC,EAAE,KAAK,CAAC;YACvD,OAAO;gBACL,cAAc,EAAE,MAAM,CAAC,cAAc;gBACrC,eAAe,EAAE,MAAM,CAAC,eAAe;AACvC,gBAAA,YAAY,EAAE,CAAC;AACf,gBAAA,eAAe,EAAE,CAAC;AAClB,gBAAA,MAAM,EAAE,EAAE;AACV,gBAAA,IAAI,EAAE;aACP;QACH;IACF;IAEA,MAAM,gBAAgB,CAAC,MAKtB,EAAA;QAKC,MAAM,CAAC,GAAG,GAAG,qBAAqB,CAAC,MAAM,CAAC,GAAG,CAAC;AAC9C,QAAA,IAAI;YACF,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC;gBAC9C,eAAe,EAAE,MAAM,CAAC,eAAe;gBACvC,GAAG,EAAE,MAAM,CAAC,GAAG;gBACf,OAAO,EAAE,MAAM,CAAC,OAAO;gBACvB,OAAO,EAAE,MAAM,CAAC;AACjB,aAAA,CAAC;YAEF,IAAI,QAAQ,GAAyB,IAAI;YACzC,IAAI,QAAQ,EAAE;AACZ,gBAAA,QAAQ,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,uBAAuB,CAAC,QAAQ,EAAE,MAAM,CAAC,OAAO,CAAC;YACzF;YAEA,OAAO;gBACL,OAAO,EAAE,MAAM,CAAC,OAAO;gBACvB,QAAQ;gBACR;aACD;QACH;QAAE,OAAO,KAAK,EAAE;AACd,YAAA,OAAO,CAAC,KAAK,CAAC,+BAA+B,EAAE,KAAK,CAAC;YACrD,OAAO;gBACL,OAAO,EAAE,MAAM,CAAC,OAAO;AACvB,gBAAA,QAAQ,EAAE,IAAI;AACd,gBAAA,QAAQ,EAAE;aACX;QACH;IACF;AACD;;AC9QD;;AAEG;MACU,qBAAqB,CAAA;AAChC,IAAA,WAAA,CAAoB,OAA8B,EAAA;QAA9B,IAAA,CAAA,OAAO,GAAP,OAAO;IAA0B;AAErD,IAAA,MAAM,uBAAuB,CAAC,QAAgB,EAAE,OAAe,EAAA;QAC7D,OAAO,IAAI,CAAC,OAAO,CAAC,uBAAuB,CAAC,QAAQ,EAAE,OAAO,CAAC;IAChE;AAEA,IAAA,MAAM,cAAc,CAAC,GAAW,EAAE,OAAe,EAAA;QAC/C,OAAO,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,GAAG,EAAE,OAAO,CAAC;IAClD;AACD;;ACdD;;AAEG;MACU,qBAAqB,CAAA;AAChC,IAAA,WAAA,GAAA,EAAe;AAEf,IAAA,eAAe,CAAC,GAAc,EAAA;AAU5B,QAAA,GAAG,GAAG,qBAAqB,CAAC,GAAG,CAAC;AAChC,QAAA,MAAM,OAAO,GAAG,GAAG,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,KAAK,UAAU,CAAC,CAAC,GAAG,CAAC,IAAI,IAAK,IAAY,CAAC,IAAI,CAAC;;QAGtG,MAAM,UAAU,GAAG,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC;QAC9C,MAAM,WAAW,GAAG,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC;QAChD,MAAM,eAAe,GAAG,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAC;AACxD,QAAA,MAAM,QAAQ,GAAG,UAAU,IAAI,WAAW,IAAI,eAAe;;QAG7D,MAAM,iBAAiB,GAAG,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAC;QAC5D,MAAM,wBAAwB,GAAG,OAAO,CAAC,QAAQ,CAAC,uBAAuB,CAAC;QAC1E,MAAM,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC;AACtC,QAAA,MAAM,SAAS,GAAG,iBAAiB,IAAI,wBAAwB,IAAI,MAAM;QAEzE,OAAO;AACL,YAAA,cAAc,EAAE,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAC,IAAI,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAC;YACnF,UAAU;AACV,YAAA,YAAY,EAAE,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC;YAC3C,WAAW;AACX,YAAA,WAAW,EAAE,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAC;AAC7E,YAAA,UAAU,EAAE,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC;YACvC,QAAQ;YACR;SACD;IACH;AACD;;ACVD;;;;AAIG;MACU,sBAAsB,CAAA;IAKjC,WAAA,CACE,OAA8B,EAC9B,OAA8B,EAAA;;AAgEf,QAAA,IAAA,CAAA,cAAc,GAAmB;AAChD,YAAA,eAAe,EAAE,CAAC,WAAW,MAAM;AACjC,gBAAA,IAAI,EAAE,WAAW,CAAC,IAAI,IAAI,EAAE;AAC5B,gBAAA,WAAW,EAAE,WAAW,CAAC,WAAW,IAAI,EAAE;AAC1C,gBAAA,QAAQ,EAAE,WAAW,CAAC,KAAK,IAAI,EAAE;gBACjC,WAAW,EAAE,WAAW,CAAC,YAAY;gBACrC,YAAY,EAAE,WAAW,CAAC,aAAa;gBACvC,qBAAqB,EAAE,SAAS;AAChC,gBAAA,UAAU,EAAE,WAAW,CAAC,UAAU,IAAI,EAAE;AACxC,gBAAA,GAAG;aACJ,CAAC;AAEF,YAAA,aAAa,EAAE,CAAC,QAAQ,MAAM;gBAC5B,IAAI,EAAE,QAAQ,CAAC,IAAI;gBACnB,WAAW,EAAE,QAAQ,CAAC,WAAW;gBACjC,KAAK,EAAE,QAAQ,CAAC,QAAQ;gBACxB,aAAa,EAAE,QAAQ,CAAC,YAAY;gBACpC,YAAY,EAAE,QAAQ,CAAC,WAAW;gBAClC,UAAU,EAAE,QAAQ,CAAC,UAAU;AAC/B,gBAAA,GAAG,MAAM,CAAC,WAAW,CACnB,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,KACpC,CAAC,CAAC,MAAM,EAAE,aAAa,EAAE,UAAU,EAAE,cAAc,EAAE,aAAa,EAAE,YAAY,EAAE,uBAAuB,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CACzH;aAEJ;SACF;;AAtFC,QAAA,IAAI,CAAC,qBAAqB,GAAG,IAAI,qBAAqB,EAAE;QACxD,IAAI,CAAC,qBAAqB,GAAG,IAAI,qBAAqB,CAAC,OAAO,CAAC;AAC/D,QAAA,IAAI,CAAC,kBAAkB,GAAG,IAAI,kBAAkB,CAC9C,OAAO,EACP,IAAI,CAAC,qBAAqB,EAC1B,IAAI,CAAC,qBAAqB,CAC3B;IACH;AAEA;;AAEG;IACH,MAAM,uBAAuB,CAAC,OAA4B,EAAA;AACxD,QAAA,IAAG,CAAC,OAAO,CAAC,OAAO,EAAC;AAChB,YAAA,OAAQ,IAAI,CAAC,kBAAkB,CAAC,eAAe,CAAC;AAC5C,gBAAA,cAAc,EAAE,OAAO,CAAC,cAAc,IAAI,EAAE;gBAC5C,eAAe,EAAE,OAAO,CAAC,eAAe;gBACxC,GAAG,EAAE,OAAO,CAAC,GAAG;AAChB,gBAAA,OAAO,EAAG,EAAE;gBACZ,OAAO,EAAE,OAAO,CAAC;AACpB,aAAA,CAAC;QACN;AAEA,QAAA,OAAO,IAAI,CAAC,kBAAkB,CAAC,oBAAoB,CAAC;AAClD,YAAA,cAAc,EAAE,OAAO,CAAC,cAAc,IAAI,EAAE;YAC5C,eAAe,EAAE,OAAO,CAAC,eAAe;YACxC,GAAG,EAAE,OAAO,CAAC,GAAG;AAChB,YAAA,OAAO,EAAE,OAAO,CAAC,OAAO,IAAI,EAAE;YAC9B,OAAO,EAAE,OAAO,CAAC;AAClB,SAAA,CAAC;IACJ;AAEA;;AAEG;IACH,MAAM,gBAAgB,CAAC,OAA4B,EAAA;QACjD,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,kBAAkB,CAAC,gBAAgB,CAAC;YAClE,eAAe,EAAE,OAAO,CAAC,eAAe;YACxC,GAAG,EAAE,OAAO,CAAC,GAAG;AAChB,YAAA,OAAO,EAAE,OAAO,CAAC,OAAO,IAAI,EAAE;YAC9B,OAAO,EAAE,OAAO,CAAC;AAClB,SAAA,CAAC;QAEF,OAAO,YAAY,CAAC,QAAQ;IAC9B;AAEA;;AAEG;IACH,MAAM,kBAAkB,CAAC,OAA+B,EAAA;AACtD,QAAA,OAAO,IAAI,CAAC,kBAAkB,CAAC,kBAAkB,CAAC;AAChD,YAAA,cAAc,EAAE,OAAO,CAAC,cAAc,IAAI,EAAE;YAC5C,eAAe,EAAE,OAAO,CAAC,eAAe;YACxC,GAAG,EAAE,OAAO,CAAC,GAAG;YAChB,OAAO,EAAE,OAAO,CAAC,OAAO;YACxB,SAAS,EAAE,OAAO,CAAC,SAAS;YAC5B,QAAQ,EAAE,OAAO,CAAC;AACnB,SAAA,CAAC;IACJ;AA8BA;;AAEG;AACH,IAAA,MAAM,cAAc,CAAC,GAAW,EAAE,OAAe,EAAA;QAC/C,OAAO,IAAI,CAAC,qBAAqB,CAAC,cAAc,CAAC,GAAG,EAAE,OAAO,CAAC;IAChE;AAEA;;AAEG;AACH,IAAA,MAAM,uBAAuB,CAAC,QAAgB,EAAE,OAAe,EAAA;AAC7D,QAAA,MAAM,cAAc,GAAG,MAAM,IAAI,CAAC,qBAAqB,CAAC,uBAAuB,CAAC,QAAQ,EAAE,OAAO,CAAC;AAClG,QAAA,IAAI,CAAC,cAAc;AAAE,YAAA,OAAO,IAAI;;QAGhC,MAAM,aAAa,GAAG,IAAI,CAAC,cAAc,CAAC,eAAe,CAAC,cAAc,CAAC;;QAGzE,IAAI,aAAa,CAAC,YAAY,EAAE,UAAU,CAAC,SAAS,CAAC,EAAE;YACrD,OAAO;AACL,gBAAA,GAAG,aAAa;gBAChB,qBAAqB,EAAE,MAAM,IAAI,CAAC,cAAc,CAAC,aAAa,CAAC,YAAY,EAAE,OAAO;aACrF;QACH;AAEA,QAAA,OAAO,aAAa;IACtB;AACD;;AClKD;;;;;;;AAOG;SACa,cAAc,CAC5B,SAA2B,EAC3B,OAAe,EACf,IAAsB,EAAA;AAEtB,IAAA,IAAI,SAAS,EAAE,WAAW,EAAE;QAC1B,OAAO,CAAA,EAAG,SAAS,CAAC,WAAW,IAAI,IAAI,CAAA,CAAA,EAAI,OAAO,CAAA,CAAE;IACtD;;AAGA,IAAA,MAAM,OAAO,GAAG,SAAS,EAAE,OAAO;IAClC,IAAI,GAAG,GAAG,EAAE;IACZ,QAAQ,OAAO;AACb,QAAA,KAAK,CAAC;AACJ,YAAA,GAAG,GAAG,CAAA,qBAAA,EAAwB,IAAI,CAAA,CAAA,EAAI,OAAO,EAAE;YAC/C;AACF,QAAA,KAAK,CAAC;AACJ,YAAA,GAAG,GAAG,CAAA,6BAAA,EAAgC,IAAI,CAAA,CAAA,EAAI,OAAO,EAAE;YACvD;AACF,QAAA,KAAK,EAAE;AACL,YAAA,GAAG,GAAG,CAAA,oBAAA,EAAuB,IAAI,CAAA,CAAA,EAAI,OAAO,EAAE;YAC9C;AACF,QAAA,KAAK,EAAE;AACL,YAAA,GAAG,GAAG,CAAA,4BAAA,EAA+B,IAAI,CAAA,CAAA,EAAI,OAAO,EAAE;YACtD;AACF,QAAA,KAAK,GAAG;AACN,YAAA,GAAG,GAAG,CAAA,wCAAA,EAA2C,IAAI,CAAA,CAAA,EAAI,OAAO,EAAE;YAClE;AACF,QAAA,KAAK,KAAK;AACR,YAAA,GAAG,GAAG,CAAA,uCAAA,EAA0C,IAAI,CAAA,CAAA,EAAI,OAAO,EAAE;YACjE;AACF,QAAA,KAAK,KAAK;AACR,YAAA,GAAG,GAAG,CAAA,4BAAA,EAA+B,IAAI,CAAA,CAAA,EAAI,OAAO,EAAE;YACtD;AACF,QAAA;AACE,YAAA,GAAG,GAAG,CAAA,qBAAA,EAAwB,IAAI,CAAA,CAAA,EAAI,OAAO,EAAE;;AAEnD,IAAA,OAAO,GAAG;AACZ;AAEA;;;;;;;;AAQG;AACI,eAAe,uBAAuB,CAC3C,YAA4D,EAC5D,OAAe,EACf,OAAe,EACf,IAAsB,EAAA;AAEtB,IAAA,MAAM,SAAS,GAAG,MAAM,YAAY,CAAC,OAAO,CAAC;IAC7C,OAAO,cAAc,CAAC,SAAS,EAAE,OAAO,EAAE,IAAI,CAAC;AACjD;;;;"}
@@ -1,49 +1,117 @@
1
1
  'use strict';
2
2
 
3
- var web3Chain = require('./index-BfOoX87y.cjs');
4
3
  var ethers = require('@explorins/web3-ts/ethers');
5
4
 
6
5
  /**
7
- * Environment Detection Utility
8
- *
9
- * Detects the runtime environment to handle platform-specific behaviors
10
- * for bundling and module resolution.
11
- */
12
- /**
13
- * Detects the current runtime environment
6
+ * Web3InfrastructureApi - Infrastructure implementation for blockchain operations
7
+ * Uses @explorins/web3-ts for Web3 interactions
14
8
  */
15
- function detectEnvironment() {
16
- const isNode = typeof process !== 'undefined' &&
17
- process.versions != null &&
18
- process.versions.node != null &&
19
- typeof globalThis.window === 'undefined';
20
- const isBrowser = typeof globalThis.window !== 'undefined' &&
21
- typeof globalThis.document !== 'undefined';
22
- const isReactNative = typeof globalThis.navigator !== 'undefined' &&
23
- typeof globalThis.navigator.product === 'string' &&
24
- globalThis.navigator.product.toLowerCase() === 'reactnative';
25
- const isWeb = isBrowser || isReactNative;
26
- // Node.js streams: Only native in Node.js, need polyfills or avoidance in web
27
- const needsNodeStreamPolyfills = isWeb;
28
- return {
29
- isNode,
30
- isBrowser,
31
- isReactNative,
32
- isWeb,
33
- needsNodeStreamPolyfills
34
- };
9
+ class Web3InfrastructureApi {
10
+ constructor(web3ChainService) {
11
+ this.web3ChainService = web3ChainService;
12
+ }
13
+ async getTokenBalance(request) {
14
+ try {
15
+ if (request.tokenId !== null)
16
+ request.tokenId = request.tokenId.toString();
17
+ const ethersProvider = await this.web3ChainService.getEthersProviderByChainId(request.chainId);
18
+ console.log(`[getTokenBalance] Ethers provider obtained, creating contract instance...`, ethersProvider);
19
+ const contract = ethers.createSafeContract(request.contractAddress, request.abi, ethersProvider);
20
+ return await ethers.getAccountTokenBalance(contract, request.accountAddress, request.tokenId);
21
+ }
22
+ catch (error) {
23
+ console.error(`Failed to get token balance for ${request.accountAddress} for ${request.contractAddress} and tokenId ${request.tokenId}, return 0 instead:`, error);
24
+ return 0;
25
+ }
26
+ }
27
+ async getTokenUri(request) {
28
+ try {
29
+ const ethersProvider = await this.web3ChainService.getEthersProviderByChainId(request.chainId);
30
+ const contract = ethers.createSafeContract(request.contractAddress, request.abi, ethersProvider);
31
+ const tokenId = Number(request.tokenId);
32
+ const tokenUri = await ethers.getTokenUri(contract, tokenId);
33
+ return String(tokenUri);
34
+ }
35
+ catch (error) {
36
+ console.error(`Failed to get token URI for tokenId ${request.tokenId}:`, error);
37
+ throw error;
38
+ }
39
+ }
40
+ async getTokenOfOwnerByIndex(request) {
41
+ try {
42
+ const ethersProvider = await this.web3ChainService.getEthersProviderByChainId(request.chainId);
43
+ const tokenContract = ethers.createSafeContract(request.contractAddress, request.abi, ethersProvider);
44
+ const tokenId = await ethers.getTokenOfOwnerByIndex(tokenContract, request.accountAddress, request.tokenIndex);
45
+ return String(tokenId);
46
+ }
47
+ catch (error) {
48
+ console.error(`Failed to get token by index ${request.tokenIndex} for ${request.accountAddress}:`, error);
49
+ throw error;
50
+ }
51
+ }
35
52
  }
53
+
36
54
  /**
37
- * Global environment info (cached)
38
- */
39
- const environment = detectEnvironment();
40
- /**
41
- * Warns if we're in an environment that might have bundling issues
55
+ * IPFSInfrastructureApi - Infrastructure implementation for IPFS operations
56
+ * Uses Web3ChainService for IPFS gateway resolution
42
57
  */
43
- function warnIfProblematicEnvironment(feature) {
44
- if (environment.needsNodeStreamPolyfills) {
45
- console.warn(`[PERS SDK] ${feature} may require additional polyfills in web environments. ` +
46
- `If you encounter 'readable-stream' errors, ensure proper polyfills are configured.`);
58
+ class IPFSInfrastructureApi {
59
+ constructor(web3ChainService) {
60
+ this.web3ChainService = web3ChainService;
61
+ this.defaultIpfsGatewayDomain = 'pers.mypinata.cloud';
62
+ }
63
+ async getIpfsGatewayDomain(chainId) {
64
+ try {
65
+ const chainData = await this.web3ChainService.getChainDataWithCache(chainId);
66
+ return chainData.ipfsGatewayDomain || this.defaultIpfsGatewayDomain;
67
+ }
68
+ catch (error) {
69
+ console.warn(`Failed to get chain data for chainId ${chainId}, using default IPFS gateway:`, error);
70
+ return this.defaultIpfsGatewayDomain;
71
+ }
72
+ }
73
+ async resolveIPFSUrl(url, chainId) {
74
+ if (url.startsWith('ipfs://')) {
75
+ const gateway = await this.getIpfsGatewayDomain(chainId);
76
+ return url.replace('ipfs://', `https://${gateway}/ipfs/`);
77
+ }
78
+ return url;
79
+ }
80
+ async fetchAndProcessMetadata(tokenUri, chainId) {
81
+ try {
82
+ const resolvedUri = await this.resolveIPFSUrl(tokenUri, chainId);
83
+ const response = await fetch(resolvedUri);
84
+ if (!response.ok) {
85
+ throw new Error(`HTTP error! status: ${response.status}`);
86
+ }
87
+ const metadata = await response.json();
88
+ // Process and return clean metadata
89
+ return {
90
+ name: metadata.name || '',
91
+ description: metadata.description || '',
92
+ image: metadata.image ? await this.resolveIPFSUrl(metadata.image, chainId) : '',
93
+ attributes: metadata.attributes || [],
94
+ animation_url: metadata.animation_url ? await this.resolveIPFSUrl(metadata.animation_url, chainId) : undefined,
95
+ external_url: metadata.external_url || undefined
96
+ };
97
+ }
98
+ catch (error) {
99
+ console.error('Error fetching metadata:', error);
100
+ return null;
101
+ }
102
+ }
103
+ async fetchFromUrl(url) {
104
+ try {
105
+ const response = await fetch(url);
106
+ if (!response.ok) {
107
+ throw new Error(`Failed to fetch from ${url}: ${response.statusText}`);
108
+ }
109
+ return await response.json();
110
+ }
111
+ catch (error) {
112
+ console.error(`Error fetching from URL ${url}:`, error);
113
+ throw error;
114
+ }
47
115
  }
48
116
  }
49
117
 
@@ -425,119 +493,6 @@ class Web3ApplicationService {
425
493
  }
426
494
  }
427
495
 
428
- /**
429
- * Web3InfrastructureApi - Infrastructure implementation for blockchain operations
430
- * Uses @explorins/web3-ts for Web3 interactions
431
- */
432
- class Web3InfrastructureApi {
433
- constructor(web3ChainService) {
434
- this.web3ChainService = web3ChainService;
435
- }
436
- async getTokenBalance(request) {
437
- try {
438
- if (request.tokenId !== null)
439
- request.tokenId = request.tokenId.toString();
440
- const ethersProvider = await this.web3ChainService.getEthersProviderByChainId(request.chainId);
441
- console.log(`[getTokenBalance] Ethers provider obtained, creating contract instance...`, ethersProvider);
442
- const contract = ethers.createSafeContract(request.contractAddress, request.abi, ethersProvider);
443
- return await ethers.getAccountTokenBalance(contract, request.accountAddress, request.tokenId);
444
- }
445
- catch (error) {
446
- console.error(`Failed to get token balance for ${request.accountAddress} for ${request.contractAddress} and tokenId ${request.tokenId}, return 0 instead:`, error);
447
- return 0;
448
- }
449
- }
450
- async getTokenUri(request) {
451
- try {
452
- const ethersProvider = await this.web3ChainService.getEthersProviderByChainId(request.chainId);
453
- const contract = ethers.createSafeContract(request.contractAddress, request.abi, ethersProvider);
454
- const tokenId = Number(request.tokenId);
455
- const tokenUri = await ethers.getTokenUri(contract, tokenId);
456
- return String(tokenUri);
457
- }
458
- catch (error) {
459
- console.error(`Failed to get token URI for tokenId ${request.tokenId}:`, error);
460
- throw error;
461
- }
462
- }
463
- async getTokenOfOwnerByIndex(request) {
464
- try {
465
- const ethersProvider = await this.web3ChainService.getEthersProviderByChainId(request.chainId);
466
- const tokenContract = ethers.createSafeContract(request.contractAddress, request.abi, ethersProvider);
467
- const tokenId = await ethers.getTokenOfOwnerByIndex(tokenContract, request.accountAddress, request.tokenIndex);
468
- return String(tokenId);
469
- }
470
- catch (error) {
471
- console.error(`Failed to get token by index ${request.tokenIndex} for ${request.accountAddress}:`, error);
472
- throw error;
473
- }
474
- }
475
- }
476
-
477
- /**
478
- * IPFSInfrastructureApi - Infrastructure implementation for IPFS operations
479
- * Uses Web3ChainService for IPFS gateway resolution
480
- */
481
- class IPFSInfrastructureApi {
482
- constructor(web3ChainService) {
483
- this.web3ChainService = web3ChainService;
484
- this.defaultIpfsGatewayDomain = 'pers.mypinata.cloud';
485
- }
486
- async getIpfsGatewayDomain(chainId) {
487
- try {
488
- const chainData = await this.web3ChainService.getChainDataWithCache(chainId);
489
- return chainData.ipfsGatewayDomain || this.defaultIpfsGatewayDomain;
490
- }
491
- catch (error) {
492
- console.warn(`Failed to get chain data for chainId ${chainId}, using default IPFS gateway:`, error);
493
- return this.defaultIpfsGatewayDomain;
494
- }
495
- }
496
- async resolveIPFSUrl(url, chainId) {
497
- if (url.startsWith('ipfs://')) {
498
- const gateway = await this.getIpfsGatewayDomain(chainId);
499
- return url.replace('ipfs://', `https://${gateway}/ipfs/`);
500
- }
501
- return url;
502
- }
503
- async fetchAndProcessMetadata(tokenUri, chainId) {
504
- try {
505
- const resolvedUri = await this.resolveIPFSUrl(tokenUri, chainId);
506
- const response = await fetch(resolvedUri);
507
- if (!response.ok) {
508
- throw new Error(`HTTP error! status: ${response.status}`);
509
- }
510
- const metadata = await response.json();
511
- // Process and return clean metadata
512
- return {
513
- name: metadata.name || '',
514
- description: metadata.description || '',
515
- image: metadata.image ? await this.resolveIPFSUrl(metadata.image, chainId) : '',
516
- attributes: metadata.attributes || [],
517
- animation_url: metadata.animation_url ? await this.resolveIPFSUrl(metadata.animation_url, chainId) : undefined,
518
- external_url: metadata.external_url || undefined
519
- };
520
- }
521
- catch (error) {
522
- console.error('Error fetching metadata:', error);
523
- return null;
524
- }
525
- }
526
- async fetchFromUrl(url) {
527
- try {
528
- const response = await fetch(url);
529
- if (!response.ok) {
530
- throw new Error(`Failed to fetch from ${url}: ${response.statusText}`);
531
- }
532
- return await response.json();
533
- }
534
- catch (error) {
535
- console.error(`Error fetching from URL ${url}:`, error);
536
- throw error;
537
- }
538
- }
539
- }
540
-
541
496
  /**
542
497
  * Generate explorer URL for a given address or transaction
543
498
  *
@@ -594,32 +549,9 @@ async function getExplorerUrlByChainId(getChainData, chainId, address, type) {
594
549
  return getExplorerUrl(chainData, address, type);
595
550
  }
596
551
 
597
- function createWeb3SDK(apiClient) {
598
- // Warn about potential bundling issues in web environments
599
- warnIfProblematicEnvironment('Web3 functionality');
600
- const web3ChainSDK = web3Chain.createWeb3ChainSDK(apiClient);
601
- // Create Web3ApplicationService - main entry point for all Web3 operations
602
- const web3InfrastructureApi = new Web3InfrastructureApi(web3ChainSDK.service);
603
- const ipfsInfrastructureApi = new IPFSInfrastructureApi(web3ChainSDK.service);
604
- const web3ApplicationService = new Web3ApplicationService(web3InfrastructureApi, ipfsInfrastructureApi);
605
- // Clean SDK - all functions route through Web3ApplicationService
606
- return {
607
- getTokenBalance: (request) => web3ApplicationService.getSpecificTokenBalance(request),
608
- getTokenMetadata: (request) => web3ApplicationService.getTokenMetadata(request),
609
- getTokenCollection: (request) => web3ApplicationService.getTokenCollection(request),
610
- resolveIPFSUrl: (url, chainId) => web3ApplicationService.resolveIPFSUrl(url, chainId),
611
- fetchAndProcessMetadata: (tokenUri, chainId) => web3ApplicationService.fetchAndProcessMetadata(tokenUri, chainId),
612
- applicationService: web3ApplicationService
613
- };
614
- }
615
-
616
552
  exports.IPFSInfrastructureApi = IPFSInfrastructureApi;
617
553
  exports.Web3ApplicationService = Web3ApplicationService;
618
554
  exports.Web3InfrastructureApi = Web3InfrastructureApi;
619
- exports.createWeb3SDK = createWeb3SDK;
620
- exports.detectEnvironment = detectEnvironment;
621
- exports.environment = environment;
622
555
  exports.getExplorerUrl = getExplorerUrl;
623
556
  exports.getExplorerUrlByChainId = getExplorerUrlByChainId;
624
- exports.warnIfProblematicEnvironment = warnIfProblematicEnvironment;
625
- //# sourceMappingURL=index-CzEluQmf.cjs.map
557
+ //# sourceMappingURL=explorer.utils-GpskbLl1.cjs.map