@explorins/pers-sdk 1.1.2 → 1.1.3

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 (291) 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.d.ts +28 -0
  12. package/dist/analytics.js +72 -0
  13. package/dist/analytics.js.map +1 -0
  14. package/dist/auth-admin/api/auth-admin-api.d.ts +27 -0
  15. package/dist/auth-admin/api/auth-admin-api.d.ts.map +1 -0
  16. package/dist/auth-admin/index.d.ts +26 -0
  17. package/dist/auth-admin/index.d.ts.map +1 -0
  18. package/dist/auth-admin/services/auth-admin-service.d.ts +23 -0
  19. package/dist/auth-admin/services/auth-admin-service.d.ts.map +1 -0
  20. package/dist/auth-admin.cjs +96 -0
  21. package/dist/auth-admin.cjs.map +1 -0
  22. package/dist/auth-admin.d.ts +26 -0
  23. package/dist/auth-admin.js +92 -0
  24. package/dist/auth-admin.js.map +1 -0
  25. package/dist/business/api/business-api.d.ts +133 -0
  26. package/dist/business/api/business-api.d.ts.map +1 -0
  27. package/dist/business/index.d.ts +34 -0
  28. package/dist/business/index.d.ts.map +1 -0
  29. package/dist/business/models/index.d.ts +8 -0
  30. package/dist/business/models/index.d.ts.map +1 -0
  31. package/dist/business/services/business-service.d.ts +51 -0
  32. package/dist/business/services/business-service.d.ts.map +1 -0
  33. package/dist/business.cjs +303 -0
  34. package/dist/business.cjs.map +1 -0
  35. package/dist/business.d.ts +34 -0
  36. package/dist/business.js +299 -0
  37. package/dist/business.js.map +1 -0
  38. package/dist/campaign/api/campaign-api.d.ts +213 -0
  39. package/dist/campaign/api/campaign-api.d.ts.map +1 -0
  40. package/dist/campaign/index.d.ts +44 -0
  41. package/dist/campaign/index.d.ts.map +1 -0
  42. package/dist/campaign/services/campaign-service.d.ts +88 -0
  43. package/dist/campaign/services/campaign-service.d.ts.map +1 -0
  44. package/dist/campaign.cjs +506 -0
  45. package/dist/campaign.cjs.map +1 -0
  46. package/dist/campaign.d.ts +44 -0
  47. package/dist/campaign.js +502 -0
  48. package/dist/campaign.js.map +1 -0
  49. package/dist/core/abstractions/http-client.d.ts +22 -0
  50. package/dist/core/abstractions/http-client.d.ts.map +1 -0
  51. package/dist/core/auth/auth-provider.interface.d.ts +12 -0
  52. package/dist/core/auth/auth-provider.interface.d.ts.map +1 -0
  53. package/dist/core/auth/create-auth-provider.d.ts +27 -0
  54. package/dist/core/auth/create-auth-provider.d.ts.map +1 -0
  55. package/dist/core/auth/simple-auth-config.interface.d.ts +15 -0
  56. package/dist/core/auth/simple-auth-config.interface.d.ts.map +1 -0
  57. package/dist/core/index.d.ts +13 -0
  58. package/dist/core/index.d.ts.map +1 -0
  59. package/dist/core/pers-api-client.d.ts +54 -0
  60. package/dist/core/pers-api-client.d.ts.map +1 -0
  61. package/dist/core/pers-config.d.ts +38 -0
  62. package/dist/core/pers-config.d.ts.map +1 -0
  63. package/dist/core/utils/jwt.function.d.ts +2 -0
  64. package/dist/core/utils/jwt.function.d.ts.map +1 -0
  65. package/dist/core.cjs +506 -0
  66. package/dist/core.cjs.map +1 -0
  67. package/dist/core.d.ts +13 -0
  68. package/dist/core.js +497 -0
  69. package/dist/core.js.map +1 -0
  70. package/dist/donation/api/donation-api.d.ts +18 -0
  71. package/dist/donation/api/donation-api.d.ts.map +1 -0
  72. package/dist/donation/index.d.ts +25 -0
  73. package/dist/donation/index.d.ts.map +1 -0
  74. package/{src/donation/models/index.ts → dist/donation/models/index.d.ts} +8 -11
  75. package/dist/donation/models/index.d.ts.map +1 -0
  76. package/dist/donation/services/donation-service.d.ts +19 -0
  77. package/dist/donation/services/donation-service.d.ts.map +1 -0
  78. package/dist/donation.cjs +78 -0
  79. package/dist/donation.cjs.map +1 -0
  80. package/dist/donation.d.ts +25 -0
  81. package/dist/donation.js +74 -0
  82. package/dist/donation.js.map +1 -0
  83. package/dist/index.cjs +4217 -0
  84. package/dist/index.cjs.map +1 -0
  85. package/dist/index.d.ts +21 -0
  86. package/dist/index.d.ts.map +1 -0
  87. package/dist/index.js +4164 -0
  88. package/dist/index.js.map +1 -0
  89. package/dist/package.json +148 -0
  90. package/dist/payment/api/payment-api.d.ts +105 -0
  91. package/dist/payment/api/payment-api.d.ts.map +1 -0
  92. package/dist/payment/index.d.ts +36 -0
  93. package/dist/payment/index.d.ts.map +1 -0
  94. package/dist/payment/models/index.d.ts +12 -0
  95. package/dist/payment/models/index.d.ts.map +1 -0
  96. package/dist/payment/services/payment-service.d.ts +40 -0
  97. package/dist/payment/services/payment-service.d.ts.map +1 -0
  98. package/dist/payment.cjs +258 -0
  99. package/dist/payment.cjs.map +1 -0
  100. package/dist/payment.d.ts +36 -0
  101. package/dist/payment.js +254 -0
  102. package/dist/payment.js.map +1 -0
  103. package/dist/pers-sdk.d.ts +29 -0
  104. package/dist/pers-sdk.d.ts.map +1 -0
  105. package/dist/redemption/api/redemption-api.d.ts +147 -0
  106. package/dist/redemption/api/redemption-api.d.ts.map +1 -0
  107. package/dist/redemption/index.d.ts +35 -0
  108. package/dist/redemption/index.d.ts.map +1 -0
  109. package/dist/redemption/models/index.d.ts +8 -0
  110. package/dist/redemption/models/index.d.ts.map +1 -0
  111. package/dist/redemption/services/redemption-service.d.ts +56 -0
  112. package/dist/redemption/services/redemption-service.d.ts.map +1 -0
  113. package/dist/redemption.cjs +333 -0
  114. package/dist/redemption.cjs.map +1 -0
  115. package/dist/redemption.d.ts +35 -0
  116. package/dist/redemption.js +329 -0
  117. package/dist/redemption.js.map +1 -0
  118. package/dist/shared/interfaces/pers-shared-lib.interfaces.d.ts +18 -0
  119. package/dist/shared/interfaces/pers-shared-lib.interfaces.d.ts.map +1 -0
  120. package/dist/tenant/api/tenant-api.d.ts +56 -0
  121. package/dist/tenant/api/tenant-api.d.ts.map +1 -0
  122. package/dist/tenant/index.d.ts +34 -0
  123. package/dist/tenant/index.d.ts.map +1 -0
  124. package/dist/tenant/models/index.d.ts +11 -0
  125. package/dist/tenant/models/index.d.ts.map +1 -0
  126. package/dist/tenant/services/tenant-service.d.ts +46 -0
  127. package/dist/tenant/services/tenant-service.d.ts.map +1 -0
  128. package/dist/tenant.cjs +177 -0
  129. package/dist/tenant.cjs.map +1 -0
  130. package/dist/tenant.d.ts +34 -0
  131. package/dist/tenant.js +173 -0
  132. package/dist/tenant.js.map +1 -0
  133. package/dist/token/api/token-api.d.ts +64 -0
  134. package/dist/token/api/token-api.d.ts.map +1 -0
  135. package/dist/token/base/base-token-service.d.ts +87 -0
  136. package/dist/token/base/base-token-service.d.ts.map +1 -0
  137. package/dist/token/index.d.ts +13 -0
  138. package/dist/token/index.d.ts.map +1 -0
  139. package/dist/token/models/index.d.ts +18 -0
  140. package/dist/token/models/index.d.ts.map +1 -0
  141. package/dist/token/services/token-service.d.ts +68 -0
  142. package/dist/token/services/token-service.d.ts.map +1 -0
  143. package/dist/token/token-sdk.d.ts +140 -0
  144. package/dist/token/token-sdk.d.ts.map +1 -0
  145. package/dist/token.cjs +537 -0
  146. package/dist/token.cjs.map +1 -0
  147. package/dist/token.d.ts +13 -0
  148. package/dist/token.js +532 -0
  149. package/dist/token.js.map +1 -0
  150. package/dist/transaction/api/transaction-api.d.ts +133 -0
  151. package/dist/transaction/api/transaction-api.d.ts.map +1 -0
  152. package/dist/transaction/index.d.ts +38 -0
  153. package/dist/transaction/index.d.ts.map +1 -0
  154. package/dist/transaction/models/index.d.ts +42 -0
  155. package/dist/transaction/models/index.d.ts.map +1 -0
  156. package/dist/transaction/services/transaction-service.d.ts +56 -0
  157. package/dist/transaction/services/transaction-service.d.ts.map +1 -0
  158. package/dist/transaction.cjs +394 -0
  159. package/dist/transaction.cjs.map +1 -0
  160. package/dist/transaction.d.ts +38 -0
  161. package/dist/transaction.js +390 -0
  162. package/dist/transaction.js.map +1 -0
  163. package/dist/user/api/user-api.d.ts +56 -0
  164. package/dist/user/api/user-api.d.ts.map +1 -0
  165. package/dist/user/index.d.ts +36 -0
  166. package/dist/user/index.d.ts.map +1 -0
  167. package/{src/user/models/index.ts → dist/user/models/index.d.ts} +12 -10
  168. package/dist/user/models/index.d.ts.map +1 -0
  169. package/dist/user/services/user-service.d.ts +46 -0
  170. package/dist/user/services/user-service.d.ts.map +1 -0
  171. package/dist/user-status/api/user-status-api.d.ts +37 -0
  172. package/dist/user-status/api/user-status-api.d.ts.map +1 -0
  173. package/dist/user-status/index.d.ts +28 -0
  174. package/dist/user-status/index.d.ts.map +1 -0
  175. package/{src/user-status/models/index.ts → dist/user-status/models/index.d.ts} +8 -11
  176. package/dist/user-status/models/index.d.ts.map +1 -0
  177. package/dist/user-status/services/user-status-service.d.ts +26 -0
  178. package/dist/user-status/services/user-status-service.d.ts.map +1 -0
  179. package/dist/user-status.cjs +147 -0
  180. package/dist/user-status.cjs.map +1 -0
  181. package/dist/user-status.d.ts +28 -0
  182. package/dist/user-status.js +143 -0
  183. package/dist/user-status.js.map +1 -0
  184. package/dist/user.cjs +188 -0
  185. package/dist/user.cjs.map +1 -0
  186. package/dist/user.d.ts +36 -0
  187. package/dist/user.js +184 -0
  188. package/dist/user.js.map +1 -0
  189. package/dist/web3/api/web3-api.d.ts +27 -0
  190. package/dist/web3/api/web3-api.d.ts.map +1 -0
  191. package/dist/web3/index.d.ts +16 -0
  192. package/dist/web3/index.d.ts.map +1 -0
  193. package/dist/web3/models/index.d.ts +92 -0
  194. package/dist/web3/models/index.d.ts.map +1 -0
  195. package/dist/web3/services/web3-service.d.ts +21 -0
  196. package/dist/web3/services/web3-service.d.ts.map +1 -0
  197. package/dist/web3-chain/api/web3-chain-api.d.ts +19 -0
  198. package/dist/web3-chain/api/web3-chain-api.d.ts.map +1 -0
  199. package/dist/web3-chain/index.d.ts +17 -0
  200. package/dist/web3-chain/index.d.ts.map +1 -0
  201. package/{src/web3-chain/models/index.ts → dist/web3-chain/models/index.d.ts} +38 -45
  202. package/dist/web3-chain/models/index.d.ts.map +1 -0
  203. package/dist/web3-chain/services/getWeb3FCD.service.d.ts +8 -0
  204. package/dist/web3-chain/services/getWeb3FCD.service.d.ts.map +1 -0
  205. package/dist/web3-chain/services/provider.service.d.ts +15 -0
  206. package/dist/web3-chain/services/provider.service.d.ts.map +1 -0
  207. package/dist/web3-chain/services/public-http-provider.service.d.ts +8 -0
  208. package/dist/web3-chain/services/public-http-provider.service.d.ts.map +1 -0
  209. package/dist/web3-chain/services/web3-chain-service.d.ts +17 -0
  210. package/dist/web3-chain/services/web3-chain-service.d.ts.map +1 -0
  211. package/dist/web3-chain.cjs +316 -0
  212. package/dist/web3-chain.cjs.map +1 -0
  213. package/dist/web3-chain.d.ts +17 -0
  214. package/dist/web3-chain.js +310 -0
  215. package/dist/web3-chain.js.map +1 -0
  216. package/dist/web3.cjs +516 -0
  217. package/dist/web3.cjs.map +1 -0
  218. package/dist/web3.d.ts +16 -0
  219. package/dist/web3.js +513 -0
  220. package/dist/web3.js.map +1 -0
  221. package/package.json +70 -67
  222. package/config/domains.js +0 -22
  223. package/explorins-pers-sdk-1.0.0-alpha.1.tgz +0 -0
  224. package/rollup.config.js +0 -74
  225. package/scripts/copy-declarations.js +0 -147
  226. package/src/analytics/api/analytics-api.ts +0 -24
  227. package/src/analytics/models/index.ts +0 -74
  228. package/src/analytics/services/analytics-service.ts +0 -28
  229. package/src/auth-admin/api/auth-admin-api.ts +0 -42
  230. package/src/auth-admin/index.ts +0 -47
  231. package/src/auth-admin/services/auth-admin-service.ts +0 -36
  232. package/src/business/api/business-api.ts +0 -234
  233. package/src/business/index.ts +0 -53
  234. package/src/business/models/index.ts +0 -13
  235. package/src/business/services/business-service.ts +0 -88
  236. package/src/campaign/api/campaign-api.ts +0 -376
  237. package/src/campaign/index.ts +0 -67
  238. package/src/campaign/services/campaign-service.ts +0 -164
  239. package/src/core/abstractions/http-client.ts +0 -24
  240. package/src/core/auth/auth-provider.interface.ts +0 -16
  241. package/src/core/auth/create-auth-provider.ts +0 -136
  242. package/src/core/auth/simple-auth-config.interface.ts +0 -15
  243. package/src/core/index.ts +0 -33
  244. package/src/core/pers-api-client.ts +0 -343
  245. package/src/core/pers-config.ts +0 -65
  246. package/src/core/utils/jwt.function.ts +0 -24
  247. package/src/donation/api/donation-api.ts +0 -24
  248. package/src/donation/index.ts +0 -47
  249. package/src/donation/services/donation-service.ts +0 -25
  250. package/src/index.ts +0 -55
  251. package/src/payment/api/payment-api.ts +0 -185
  252. package/src/payment/index.ts +0 -64
  253. package/src/payment/models/index.ts +0 -29
  254. package/src/payment/services/payment-service.ts +0 -70
  255. package/src/pers-sdk.ts +0 -45
  256. package/src/redemption/api/redemption-api.ts +0 -241
  257. package/src/redemption/index.ts +0 -60
  258. package/src/redemption/models/index.ts +0 -17
  259. package/src/redemption/services/redemption-service.ts +0 -103
  260. package/src/shared/interfaces/pers-shared-lib.interfaces.ts +0 -99
  261. package/src/tenant/api/tenant-api.ts +0 -92
  262. package/src/tenant/index.ts +0 -61
  263. package/src/tenant/models/index.ts +0 -20
  264. package/src/tenant/services/tenant-service.ts +0 -78
  265. package/src/token/api/token-api.ts +0 -129
  266. package/src/token/base/base-token-service.ts +0 -167
  267. package/src/token/index.ts +0 -38
  268. package/src/token/models/index.ts +0 -30
  269. package/src/token/services/token-service.ts +0 -125
  270. package/src/token/token-sdk.ts +0 -231
  271. package/src/transaction/api/transaction-api.ts +0 -296
  272. package/src/transaction/index.ts +0 -65
  273. package/src/transaction/models/index.ts +0 -60
  274. package/src/transaction/services/transaction-service.ts +0 -104
  275. package/src/user/api/user-api.ts +0 -98
  276. package/src/user/index.ts +0 -62
  277. package/src/user/services/user-service.ts +0 -75
  278. package/src/user-status/api/user-status-api.ts +0 -78
  279. package/src/user-status/index.ts +0 -55
  280. package/src/user-status/services/user-status-service.ts +0 -51
  281. package/src/web3/api/web3-api.ts +0 -68
  282. package/src/web3/index.ts +0 -38
  283. package/src/web3/models/index.ts +0 -150
  284. package/src/web3/services/web3-service.ts +0 -338
  285. package/src/web3-chain/api/web3-chain-api.ts +0 -42
  286. package/src/web3-chain/index.ts +0 -27
  287. package/src/web3-chain/services/getWeb3FCD.service.ts +0 -47
  288. package/src/web3-chain/services/provider.service.ts +0 -123
  289. package/src/web3-chain/services/public-http-provider.service.ts +0 -26
  290. package/src/web3-chain/services/web3-chain-service.ts +0 -131
  291. 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
- }