@explorins/pers-sdk 1.1.2 → 1.2.0

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 (276) hide show
  1. package/dist/analytics/api/analytics-api.d.ts +17 -0
  2. package/dist/analytics/api/analytics-api.d.ts.map +1 -0
  3. package/{src/analytics/index.ts → dist/analytics/index.d.ts} +28 -52
  4. package/dist/analytics/index.d.ts.map +1 -0
  5. package/dist/analytics/models/index.d.ts +61 -0
  6. package/dist/analytics/models/index.d.ts.map +1 -0
  7. package/dist/analytics/services/analytics-service.d.ts +19 -0
  8. package/dist/analytics/services/analytics-service.d.ts.map +1 -0
  9. package/dist/analytics.cjs +76 -0
  10. package/dist/analytics.cjs.map +1 -0
  11. package/dist/analytics.js +72 -0
  12. package/dist/analytics.js.map +1 -0
  13. package/dist/auth-admin/api/auth-admin-api.d.ts +27 -0
  14. package/dist/auth-admin/api/auth-admin-api.d.ts.map +1 -0
  15. package/dist/auth-admin/index.d.ts +26 -0
  16. package/dist/auth-admin/index.d.ts.map +1 -0
  17. package/dist/auth-admin/services/auth-admin-service.d.ts +23 -0
  18. package/dist/auth-admin/services/auth-admin-service.d.ts.map +1 -0
  19. package/dist/auth-admin.cjs +96 -0
  20. package/dist/auth-admin.cjs.map +1 -0
  21. package/dist/auth-admin.js +92 -0
  22. package/dist/auth-admin.js.map +1 -0
  23. package/dist/business/api/business-api.d.ts +133 -0
  24. package/dist/business/api/business-api.d.ts.map +1 -0
  25. package/dist/business/index.d.ts +34 -0
  26. package/dist/business/index.d.ts.map +1 -0
  27. package/dist/business/models/index.d.ts +8 -0
  28. package/dist/business/models/index.d.ts.map +1 -0
  29. package/dist/business/services/business-service.d.ts +51 -0
  30. package/dist/business/services/business-service.d.ts.map +1 -0
  31. package/dist/business.cjs +303 -0
  32. package/dist/business.cjs.map +1 -0
  33. package/dist/business.js +299 -0
  34. package/dist/business.js.map +1 -0
  35. package/dist/campaign/api/campaign-api.d.ts +213 -0
  36. package/dist/campaign/api/campaign-api.d.ts.map +1 -0
  37. package/dist/campaign/index.d.ts +44 -0
  38. package/dist/campaign/index.d.ts.map +1 -0
  39. package/dist/campaign/services/campaign-service.d.ts +88 -0
  40. package/dist/campaign/services/campaign-service.d.ts.map +1 -0
  41. package/dist/campaign.cjs +506 -0
  42. package/dist/campaign.cjs.map +1 -0
  43. package/dist/campaign.js +502 -0
  44. package/dist/campaign.js.map +1 -0
  45. package/dist/core/abstractions/http-client.d.ts +22 -0
  46. package/dist/core/abstractions/http-client.d.ts.map +1 -0
  47. package/dist/core/auth/auth-provider.interface.d.ts +12 -0
  48. package/dist/core/auth/auth-provider.interface.d.ts.map +1 -0
  49. package/dist/core/auth/create-auth-provider.d.ts +27 -0
  50. package/dist/core/auth/create-auth-provider.d.ts.map +1 -0
  51. package/dist/core/auth/simple-auth-config.interface.d.ts +15 -0
  52. package/dist/core/auth/simple-auth-config.interface.d.ts.map +1 -0
  53. package/dist/core/index.d.ts +13 -0
  54. package/dist/core/index.d.ts.map +1 -0
  55. package/dist/core/pers-api-client.d.ts +54 -0
  56. package/dist/core/pers-api-client.d.ts.map +1 -0
  57. package/dist/core/pers-config.d.ts +38 -0
  58. package/dist/core/pers-config.d.ts.map +1 -0
  59. package/dist/core/utils/jwt.function.d.ts +2 -0
  60. package/dist/core/utils/jwt.function.d.ts.map +1 -0
  61. package/dist/core.cjs +506 -0
  62. package/dist/core.cjs.map +1 -0
  63. package/dist/core.js +497 -0
  64. package/dist/core.js.map +1 -0
  65. package/dist/donation/api/donation-api.d.ts +18 -0
  66. package/dist/donation/api/donation-api.d.ts.map +1 -0
  67. package/dist/donation/index.d.ts +25 -0
  68. package/dist/donation/index.d.ts.map +1 -0
  69. package/{src/donation/models/index.ts → dist/donation/models/index.d.ts} +8 -11
  70. package/dist/donation/models/index.d.ts.map +1 -0
  71. package/dist/donation/services/donation-service.d.ts +19 -0
  72. package/dist/donation/services/donation-service.d.ts.map +1 -0
  73. package/dist/donation.cjs +78 -0
  74. package/dist/donation.cjs.map +1 -0
  75. package/dist/donation.js +74 -0
  76. package/dist/donation.js.map +1 -0
  77. package/dist/index.cjs +4217 -0
  78. package/dist/index.cjs.map +1 -0
  79. package/dist/index.d.ts +21 -0
  80. package/dist/index.d.ts.map +1 -0
  81. package/dist/index.js +4164 -0
  82. package/dist/index.js.map +1 -0
  83. package/dist/package.json +129 -0
  84. package/dist/payment/api/payment-api.d.ts +105 -0
  85. package/dist/payment/api/payment-api.d.ts.map +1 -0
  86. package/dist/payment/index.d.ts +36 -0
  87. package/dist/payment/index.d.ts.map +1 -0
  88. package/dist/payment/models/index.d.ts +12 -0
  89. package/dist/payment/models/index.d.ts.map +1 -0
  90. package/dist/payment/services/payment-service.d.ts +40 -0
  91. package/dist/payment/services/payment-service.d.ts.map +1 -0
  92. package/dist/payment.cjs +258 -0
  93. package/dist/payment.cjs.map +1 -0
  94. package/dist/payment.js +254 -0
  95. package/dist/payment.js.map +1 -0
  96. package/dist/pers-sdk.d.ts +29 -0
  97. package/dist/pers-sdk.d.ts.map +1 -0
  98. package/dist/redemption/api/redemption-api.d.ts +147 -0
  99. package/dist/redemption/api/redemption-api.d.ts.map +1 -0
  100. package/dist/redemption/index.d.ts +35 -0
  101. package/dist/redemption/index.d.ts.map +1 -0
  102. package/dist/redemption/models/index.d.ts +8 -0
  103. package/dist/redemption/models/index.d.ts.map +1 -0
  104. package/dist/redemption/services/redemption-service.d.ts +56 -0
  105. package/dist/redemption/services/redemption-service.d.ts.map +1 -0
  106. package/dist/redemption.cjs +333 -0
  107. package/dist/redemption.cjs.map +1 -0
  108. package/dist/redemption.js +329 -0
  109. package/dist/redemption.js.map +1 -0
  110. package/dist/shared/interfaces/pers-shared-lib.interfaces.d.ts +18 -0
  111. package/dist/shared/interfaces/pers-shared-lib.interfaces.d.ts.map +1 -0
  112. package/dist/tenant/api/tenant-api.d.ts +56 -0
  113. package/dist/tenant/api/tenant-api.d.ts.map +1 -0
  114. package/dist/tenant/index.d.ts +34 -0
  115. package/dist/tenant/index.d.ts.map +1 -0
  116. package/dist/tenant/models/index.d.ts +11 -0
  117. package/dist/tenant/models/index.d.ts.map +1 -0
  118. package/dist/tenant/services/tenant-service.d.ts +46 -0
  119. package/dist/tenant/services/tenant-service.d.ts.map +1 -0
  120. package/dist/tenant.cjs +177 -0
  121. package/dist/tenant.cjs.map +1 -0
  122. package/dist/tenant.js +173 -0
  123. package/dist/tenant.js.map +1 -0
  124. package/dist/token/api/token-api.d.ts +64 -0
  125. package/dist/token/api/token-api.d.ts.map +1 -0
  126. package/dist/token/base/base-token-service.d.ts +87 -0
  127. package/dist/token/base/base-token-service.d.ts.map +1 -0
  128. package/dist/token/index.d.ts +13 -0
  129. package/dist/token/index.d.ts.map +1 -0
  130. package/dist/token/models/index.d.ts +18 -0
  131. package/dist/token/models/index.d.ts.map +1 -0
  132. package/dist/token/services/token-service.d.ts +68 -0
  133. package/dist/token/services/token-service.d.ts.map +1 -0
  134. package/dist/token/token-sdk.d.ts +140 -0
  135. package/dist/token/token-sdk.d.ts.map +1 -0
  136. package/dist/token.cjs +537 -0
  137. package/dist/token.cjs.map +1 -0
  138. package/dist/token.js +532 -0
  139. package/dist/token.js.map +1 -0
  140. package/dist/transaction/api/transaction-api.d.ts +133 -0
  141. package/dist/transaction/api/transaction-api.d.ts.map +1 -0
  142. package/dist/transaction/index.d.ts +38 -0
  143. package/dist/transaction/index.d.ts.map +1 -0
  144. package/dist/transaction/models/index.d.ts +42 -0
  145. package/dist/transaction/models/index.d.ts.map +1 -0
  146. package/dist/transaction/services/transaction-service.d.ts +56 -0
  147. package/dist/transaction/services/transaction-service.d.ts.map +1 -0
  148. package/dist/transaction.cjs +394 -0
  149. package/dist/transaction.cjs.map +1 -0
  150. package/dist/transaction.js +390 -0
  151. package/dist/transaction.js.map +1 -0
  152. package/dist/user/api/user-api.d.ts +56 -0
  153. package/dist/user/api/user-api.d.ts.map +1 -0
  154. package/dist/user/index.d.ts +36 -0
  155. package/dist/user/index.d.ts.map +1 -0
  156. package/{src/user/models/index.ts → dist/user/models/index.d.ts} +12 -10
  157. package/dist/user/models/index.d.ts.map +1 -0
  158. package/dist/user/services/user-service.d.ts +46 -0
  159. package/dist/user/services/user-service.d.ts.map +1 -0
  160. package/dist/user-status/api/user-status-api.d.ts +37 -0
  161. package/dist/user-status/api/user-status-api.d.ts.map +1 -0
  162. package/dist/user-status/index.d.ts +28 -0
  163. package/dist/user-status/index.d.ts.map +1 -0
  164. package/{src/user-status/models/index.ts → dist/user-status/models/index.d.ts} +8 -11
  165. package/dist/user-status/models/index.d.ts.map +1 -0
  166. package/dist/user-status/services/user-status-service.d.ts +26 -0
  167. package/dist/user-status/services/user-status-service.d.ts.map +1 -0
  168. package/dist/user-status.cjs +147 -0
  169. package/dist/user-status.cjs.map +1 -0
  170. package/dist/user-status.js +143 -0
  171. package/dist/user-status.js.map +1 -0
  172. package/dist/user.cjs +188 -0
  173. package/dist/user.cjs.map +1 -0
  174. package/dist/user.js +184 -0
  175. package/dist/user.js.map +1 -0
  176. package/dist/web3/api/web3-api.d.ts +27 -0
  177. package/dist/web3/api/web3-api.d.ts.map +1 -0
  178. package/dist/web3/index.d.ts +16 -0
  179. package/dist/web3/index.d.ts.map +1 -0
  180. package/dist/web3/models/index.d.ts +92 -0
  181. package/dist/web3/models/index.d.ts.map +1 -0
  182. package/dist/web3/services/web3-service.d.ts +21 -0
  183. package/dist/web3/services/web3-service.d.ts.map +1 -0
  184. package/dist/web3-chain/api/web3-chain-api.d.ts +19 -0
  185. package/dist/web3-chain/api/web3-chain-api.d.ts.map +1 -0
  186. package/dist/web3-chain/index.d.ts +17 -0
  187. package/dist/web3-chain/index.d.ts.map +1 -0
  188. package/{src/web3-chain/models/index.ts → dist/web3-chain/models/index.d.ts} +38 -45
  189. package/dist/web3-chain/models/index.d.ts.map +1 -0
  190. package/dist/web3-chain/services/getWeb3FCD.service.d.ts +8 -0
  191. package/dist/web3-chain/services/getWeb3FCD.service.d.ts.map +1 -0
  192. package/dist/web3-chain/services/provider.service.d.ts +15 -0
  193. package/dist/web3-chain/services/provider.service.d.ts.map +1 -0
  194. package/dist/web3-chain/services/public-http-provider.service.d.ts +8 -0
  195. package/dist/web3-chain/services/public-http-provider.service.d.ts.map +1 -0
  196. package/dist/web3-chain/services/web3-chain-service.d.ts +17 -0
  197. package/dist/web3-chain/services/web3-chain-service.d.ts.map +1 -0
  198. package/dist/web3-chain.cjs +316 -0
  199. package/dist/web3-chain.cjs.map +1 -0
  200. package/dist/web3-chain.js +310 -0
  201. package/dist/web3-chain.js.map +1 -0
  202. package/dist/web3.cjs +516 -0
  203. package/dist/web3.cjs.map +1 -0
  204. package/dist/web3.js +513 -0
  205. package/dist/web3.js.map +1 -0
  206. package/package.json +56 -72
  207. package/config/domains.js +0 -22
  208. package/explorins-pers-sdk-1.0.0-alpha.1.tgz +0 -0
  209. package/rollup.config.js +0 -74
  210. package/scripts/copy-declarations.js +0 -147
  211. package/src/analytics/api/analytics-api.ts +0 -24
  212. package/src/analytics/models/index.ts +0 -74
  213. package/src/analytics/services/analytics-service.ts +0 -28
  214. package/src/auth-admin/api/auth-admin-api.ts +0 -42
  215. package/src/auth-admin/index.ts +0 -47
  216. package/src/auth-admin/services/auth-admin-service.ts +0 -36
  217. package/src/business/api/business-api.ts +0 -234
  218. package/src/business/index.ts +0 -53
  219. package/src/business/models/index.ts +0 -13
  220. package/src/business/services/business-service.ts +0 -88
  221. package/src/campaign/api/campaign-api.ts +0 -376
  222. package/src/campaign/index.ts +0 -67
  223. package/src/campaign/services/campaign-service.ts +0 -164
  224. package/src/core/abstractions/http-client.ts +0 -24
  225. package/src/core/auth/auth-provider.interface.ts +0 -16
  226. package/src/core/auth/create-auth-provider.ts +0 -136
  227. package/src/core/auth/simple-auth-config.interface.ts +0 -15
  228. package/src/core/index.ts +0 -33
  229. package/src/core/pers-api-client.ts +0 -343
  230. package/src/core/pers-config.ts +0 -65
  231. package/src/core/utils/jwt.function.ts +0 -24
  232. package/src/donation/api/donation-api.ts +0 -24
  233. package/src/donation/index.ts +0 -47
  234. package/src/donation/services/donation-service.ts +0 -25
  235. package/src/index.ts +0 -55
  236. package/src/payment/api/payment-api.ts +0 -185
  237. package/src/payment/index.ts +0 -64
  238. package/src/payment/models/index.ts +0 -29
  239. package/src/payment/services/payment-service.ts +0 -70
  240. package/src/pers-sdk.ts +0 -45
  241. package/src/redemption/api/redemption-api.ts +0 -241
  242. package/src/redemption/index.ts +0 -60
  243. package/src/redemption/models/index.ts +0 -17
  244. package/src/redemption/services/redemption-service.ts +0 -103
  245. package/src/shared/interfaces/pers-shared-lib.interfaces.ts +0 -99
  246. package/src/tenant/api/tenant-api.ts +0 -92
  247. package/src/tenant/index.ts +0 -61
  248. package/src/tenant/models/index.ts +0 -20
  249. package/src/tenant/services/tenant-service.ts +0 -78
  250. package/src/token/api/token-api.ts +0 -129
  251. package/src/token/base/base-token-service.ts +0 -167
  252. package/src/token/index.ts +0 -38
  253. package/src/token/models/index.ts +0 -30
  254. package/src/token/services/token-service.ts +0 -125
  255. package/src/token/token-sdk.ts +0 -231
  256. package/src/transaction/api/transaction-api.ts +0 -296
  257. package/src/transaction/index.ts +0 -65
  258. package/src/transaction/models/index.ts +0 -60
  259. package/src/transaction/services/transaction-service.ts +0 -104
  260. package/src/user/api/user-api.ts +0 -98
  261. package/src/user/index.ts +0 -62
  262. package/src/user/services/user-service.ts +0 -75
  263. package/src/user-status/api/user-status-api.ts +0 -78
  264. package/src/user-status/index.ts +0 -55
  265. package/src/user-status/services/user-status-service.ts +0 -51
  266. package/src/web3/api/web3-api.ts +0 -68
  267. package/src/web3/index.ts +0 -38
  268. package/src/web3/models/index.ts +0 -150
  269. package/src/web3/services/web3-service.ts +0 -338
  270. package/src/web3-chain/api/web3-chain-api.ts +0 -42
  271. package/src/web3-chain/index.ts +0 -27
  272. package/src/web3-chain/services/getWeb3FCD.service.ts +0 -47
  273. package/src/web3-chain/services/provider.service.ts +0 -123
  274. package/src/web3-chain/services/public-http-provider.service.ts +0 -26
  275. package/src/web3-chain/services/web3-chain-service.ts +0 -131
  276. package/tsconfig.json +0 -28
@@ -1,123 +0,0 @@
1
- import Web3 from "web3";
2
- import { ChainData, ChainType, ChainTypes } from "@explorins/web3-ts";
3
- import { PublicHttpProviderService } from "./public-http-provider.service";
4
- import { getWeb3ProviderFromChainData } from "./getWeb3FCD.service";
5
-
6
-
7
- export class Web3ProviderService {
8
-
9
- private _web3: Web3 | null = null;
10
- private _currentChainId: number | null = null;
11
-
12
- constructor(
13
- private readonly publicHttpProviderService: PublicHttpProviderService,
14
- ) {
15
- }
16
-
17
- public async getWeb3(chainId: number, chainType: ChainType, privateChainData: ChainData | null = null) {
18
- if (!this._web3 || this._currentChainId !== chainId) {
19
-
20
- if(!chainId) throw new Error('ChainId not found')
21
-
22
- try {
23
- this._currentChainId = chainId;
24
- const provider = await this.getWeb3ByChainId(chainId, chainType, privateChainData);
25
- this._web3 = this.convertToWeb3(provider);
26
- } catch (error) {
27
- console.error('Error getting web3 connection from chain id ' + chainId , error)
28
- throw new Error('Error getting web3 connection from chain id ' + chainId)
29
- }
30
- }
31
- return this._web3 as Web3;
32
- }
33
-
34
- // Keep return type as 'any' to avoid TypeScript errors while still being adapted later
35
- private getWeb3ByChainId(chainId: number, chainType: ChainType, privateChainData: ChainData | null = null): any {
36
- // Rest of the method remains the same
37
- if(chainType === ChainTypes.PRIVATE && privateChainData) {
38
- //const privateProvider = this.privateChainProviderService.getProviderFromChainData(privateChainData)
39
- const privateProvider = getWeb3ProviderFromChainData(privateChainData);
40
-
41
- if(!privateProvider || privateProvider instanceof Error) throw new Error('Error getting web3 provider');
42
-
43
-
44
- return privateProvider;
45
-
46
- } else {
47
-
48
- const publicProvider = this.publicHttpProviderService.getProvider(chainId)
49
- if(!publicProvider || publicProvider instanceof Error) throw new Error('Error getting web3 provider');
50
-
51
- return publicProvider;
52
- }
53
- }
54
-
55
- private convertToWeb3(provider: unknown): Web3 {
56
- if (provider instanceof Web3) {
57
- return provider as Web3;
58
- }
59
-
60
- if (provider && typeof provider === 'object' && 'web3Provider' in provider) {
61
- const providerObj = provider as {
62
- web3Provider?: unknown;
63
- ethersProvider?: any;
64
- isAuthenticated?: boolean;
65
- };
66
-
67
- // If we want to user the web3Provider directly:
68
- /*if (providerObj.web3Provider) {
69
- return new Web3(providerObj.web3Provider as never);
70
- }*/
71
-
72
- if (providerObj.ethersProvider) {
73
-
74
- const url = this.extractUrlFromEthersProvider(providerObj.ethersProvider);
75
- const headers = this.extractHeadersFromEthersProvider(providerObj.ethersProvider);
76
-
77
- const web3 = new Web3(url);
78
- const currentProvider = web3.currentProvider as unknown as Record<string, unknown>;
79
-
80
- if (currentProvider) {
81
- currentProvider['url'] = url;
82
-
83
- if (headers && Object.keys(headers).length > 0) {
84
- currentProvider['request'] = async (payload: Record<string, unknown>): Promise<Record<string, unknown>> => {
85
- const response = await fetch(url, {
86
- method: 'POST',
87
- headers: {
88
- 'Content-Type': 'application/json',
89
- ...headers
90
- },
91
- body: JSON.stringify(payload)
92
- });
93
-
94
- if (!response.ok) {
95
- throw new Error(`HTTP ${response.status}: ${response.statusText}`);
96
- }
97
-
98
- return await response.json() as Record<string, unknown>;
99
- };
100
- }
101
- }
102
-
103
- return web3;
104
- }
105
- }
106
-
107
- return new Web3(provider as never);
108
- }
109
-
110
-
111
- private extractUrlFromEthersProvider(ethersProvider: any): string {
112
- return ethersProvider.connection?.url ||
113
- ethersProvider._getConnection?.()?.url ||
114
- ethersProvider.url ||
115
- '';
116
- }
117
-
118
- private extractHeadersFromEthersProvider(ethersProvider: any): Record<string, string> {
119
- return ethersProvider.connection?.headers ||
120
- ethersProvider._getConnection?.()?.headers ||
121
- {};
122
- }
123
- }
@@ -1,26 +0,0 @@
1
- import type { PublicWeb3ProviderData } from "@explorins/web3/types";
2
- import type Web3 from "web3";
3
-
4
- import { adaptToWeb3, getPublicWeb3ConnectionFromChainId } from "@explorins/web3-ts";
5
-
6
- export class PublicHttpProviderService {
7
- private $providerData: PublicWeb3ProviderData | null;
8
-
9
- constructor(providerData: PublicWeb3ProviderData | null = null) {
10
- this.$providerData = providerData;
11
- }
12
-
13
- public getProvider(chainId: number): Web3 {
14
- const providerApiKey = this.$providerData ? this.$providerData?.apiKey || null : null;
15
- if (!providerApiKey) throw new Error('Provider API key not found');
16
-
17
- try {
18
- // Use the adapter function instead of unsafe type casting
19
- const provider = getPublicWeb3ConnectionFromChainId(chainId, 'infuraHttp', providerApiKey);
20
- return adaptToWeb3(provider);
21
- } catch (error) {
22
- console.error('Error getting web3 connection from chain id ' + chainId, error);
23
- throw new Error('Error getting web3 connection from chain id ' + chainId);
24
- }
25
- }
26
- }
@@ -1,131 +0,0 @@
1
- import { Web3ChainApi } from '../api/web3-chain-api';
2
- import { ChainData, CachedChainInstance } from '../models';
3
- import type { Web3 } from 'web3';
4
- import { isTokenExpired } from '../../core/utils/jwt.function';
5
- import { Web3ProviderService } from './provider.service';
6
-
7
- export class Web3ChainService {
8
-
9
- private web3InstanceCache = new Map<number, CachedChainInstance>();
10
-
11
- constructor(
12
- private web3ChainApi: Web3ChainApi,
13
- private providerService: Web3ProviderService
14
- ) {}
15
-
16
- async getWeb3ByChainId(chainId: number): Promise<Web3> {
17
- const cached = this.web3InstanceCache.get(chainId);
18
-
19
- // ✅ SMART CACHE: Check if cache is valid based on token expiration
20
- if (cached && !this.checkIsTokenExpired(cached.chainData.authHeader)) {
21
- console.log(`♻️ [Web3ChainService] Using cached Web3 instance for chain ${chainId}`);
22
- return cached.web3Instance;
23
- }
24
-
25
- // ✅ CREATE WITH ERROR RECOVERY: Handle auth errors gracefully
26
- try {
27
- console.log(`🔧 [Web3ChainService] Creating new Web3 instance for chain ${chainId}`);
28
- const { web3, chainData } = await this.createWeb3Instance(chainId);
29
-
30
- // ✅ CACHE NEW INSTANCE
31
- this.web3InstanceCache.set(chainId, {
32
- web3Instance: web3,
33
- chainData: chainData,
34
- createdAt: Date.now(),
35
- chainId
36
- });
37
-
38
- return web3;
39
- } catch (error) {
40
- // ✅ AUTH ERROR RECOVERY: Clear cache and retry once
41
- if (this.isAuthError(error)) {
42
- console.warn(`🔄 [Web3ChainService] Auth error detected, clearing cache and retrying...`);
43
- this.web3InstanceCache.delete(chainId);
44
-
45
- // Retry once with fresh instance
46
- const { web3, chainData } = await this.createWeb3Instance(chainId);
47
-
48
- this.web3InstanceCache.set(chainId, {
49
- web3Instance: web3,
50
- chainData: chainData,
51
- createdAt: Date.now(),
52
- chainId
53
- });
54
-
55
- return web3;
56
- }
57
-
58
- throw error;
59
- }
60
- }
61
-
62
- async getChainDataWithCache(chainId: number): Promise<ChainData> {
63
- const cached = this.web3InstanceCache.get(chainId);
64
- //const now = Date.now();
65
-
66
- if (cached && !this.checkIsTokenExpired(cached.chainData.authHeader)) {
67
- console.log(`♻️ [Web3ChainService] Using cached ChainData for chain ${chainId}`);
68
- return cached.chainData;
69
- }
70
-
71
- // If not cached, fetch fresh data
72
- const chainData = await this.getChainDataById(chainId);
73
- if (!chainData) {
74
- throw new Error(`Chain data not found for chainId: ${chainId}`);
75
- }
76
-
77
- return chainData;
78
- }
79
-
80
- private checkIsTokenExpired(authHeader?: string): boolean {
81
- // ✅ NULL CHECK: Handle undefined case
82
- if (!authHeader) {
83
- return false; // No token means no expiration (public chains)
84
- }
85
-
86
- // ✅ FUNCTION CALL: Use imported function, not method
87
- return isTokenExpired(authHeader);
88
- }
89
-
90
- private async createWeb3Instance(chainId: number): Promise<{ web3: Web3; chainData: ChainData }> {
91
- const chainData = await this.getChainDataById(chainId);
92
-
93
- if (!chainData) {
94
- throw new Error(`Chain data not found for chainId: ${chainId}`);
95
- }
96
-
97
- // ✅ CRITICAL CHECK: Ensure authHeader is present for private chains
98
- if (chainData.chainType === 'PRIVATE' && !chainData.authHeader) {
99
- console.error('❌ [Web3ChainService] CRITICAL: Private chain missing authHeader!');
100
- throw new Error(`Private chain ${chainId} missing authentication header`);
101
- }
102
-
103
- const web3 = await this.providerService.getWeb3(
104
- chainId,
105
- chainData.chainType || 'PUBLIC',
106
- chainData
107
- );
108
-
109
- return { web3, chainData };
110
- }
111
-
112
- // ✅ HELPER: Type-safe error checking
113
- private isAuthError(error: unknown): boolean {
114
- const message = error instanceof Error ? error.message.toLowerCase() : String(error).toLowerCase();
115
- return (
116
- message.includes('unauthorized') ||
117
- message.includes('401') ||
118
- message.includes('token expired') ||
119
- message.includes('invalid token')
120
- );
121
- }
122
-
123
- async getChainDataById(chainId: number): Promise<ChainData | null> {
124
- try {
125
- return await this.web3ChainApi.getChainData(chainId);
126
- } catch (error) {
127
- console.error('❌ [SDK Web3ChainService] Error getting chain data for chainId:', chainId, error);
128
- return null;
129
- }
130
- }
131
- }
package/tsconfig.json DELETED
@@ -1,28 +0,0 @@
1
- {
2
- "compilerOptions": {
3
- "target": "ES2020",
4
- "module": "ESNext",
5
- "moduleResolution": "node",
6
- "strict": true,
7
- "esModuleInterop": true,
8
- "skipLibCheck": true,
9
- "forceConsistentCasingInFileNames": true,
10
- "declaration": true,
11
- "declarationMap": true,
12
- "sourceMap": true,
13
- "outDir": "./dist",
14
- "baseUrl": ".",
15
- "paths": {
16
- "@explorins/pers-shared": ["../../framework/entities"]
17
- }
18
- },
19
- "include": [
20
- "src/**/*"
21
- ],
22
- "exclude": [
23
- "node_modules",
24
- "dist",
25
- "**/*.test.ts",
26
- "**/*.spec.ts"
27
- ]
28
- }