@kasufinance/kasu-sdk 1.0.3 → 2.1.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 (186) hide show
  1. package/.claude/settings.local.json +15 -0
  2. package/CLAUDE.md +410 -0
  3. package/README.md +179 -12
  4. package/dist/bundle.cjs.js +749 -99
  5. package/dist/bundle.esm.js +745 -101
  6. package/dist/contracts/IClearingCoordinatorAbi.js +1 -0
  7. package/dist/contracts/IClearingCoordinatorAbi.js.map +1 -0
  8. package/dist/contracts/IERC20MetadataAbi.js +1 -0
  9. package/dist/contracts/IERC20MetadataAbi.js.map +1 -0
  10. package/dist/contracts/IFeeManagerAbi.js +1 -0
  11. package/dist/contracts/IFeeManagerAbi.js.map +1 -0
  12. package/dist/contracts/IKSULockingAbi.js +1 -0
  13. package/dist/contracts/IKSULockingAbi.js.map +1 -0
  14. package/dist/contracts/IKasuAllowListAbi.js +1 -0
  15. package/dist/contracts/IKasuAllowListAbi.js.map +1 -0
  16. package/dist/contracts/IKasuControllerAbi.js +1 -0
  17. package/dist/contracts/IKasuControllerAbi.js.map +1 -0
  18. package/dist/contracts/IKasuNFTsAbi.js +1 -0
  19. package/dist/contracts/IKasuNFTsAbi.js.map +1 -0
  20. package/dist/contracts/IKsuPriceAbi.js +1 -0
  21. package/dist/contracts/IKsuPriceAbi.js.map +1 -0
  22. package/dist/contracts/ILendingPoolAbi.js +1 -0
  23. package/dist/contracts/ILendingPoolAbi.js.map +1 -0
  24. package/dist/contracts/ILendingPoolFactoryAbi.js +1 -0
  25. package/dist/contracts/ILendingPoolFactoryAbi.js.map +1 -0
  26. package/dist/contracts/ILendingPoolManagerAbi.js +1 -0
  27. package/dist/contracts/ILendingPoolManagerAbi.js.map +1 -0
  28. package/dist/contracts/ILendingPoolTrancheAbi.js +1 -0
  29. package/dist/contracts/ILendingPoolTrancheAbi.js.map +1 -0
  30. package/dist/contracts/ISystemVariablesAbi.js +1 -0
  31. package/dist/contracts/ISystemVariablesAbi.js.map +1 -0
  32. package/dist/contracts/IUserLoyaltyRewardsAbi.js +1 -0
  33. package/dist/contracts/IUserLoyaltyRewardsAbi.js.map +1 -0
  34. package/dist/contracts/IUserManagerAbi.js +1 -0
  35. package/dist/contracts/IUserManagerAbi.js.map +1 -0
  36. package/dist/contracts/KSULockBonusAbi.js +1 -0
  37. package/dist/contracts/KSULockBonusAbi.js.map +1 -0
  38. package/dist/contracts/KasuPoolExternalTVLAbi.js +1 -0
  39. package/dist/contracts/KasuPoolExternalTVLAbi.js.map +1 -0
  40. package/dist/contracts/SwapperAbi.js +1 -0
  41. package/dist/contracts/SwapperAbi.js.map +1 -0
  42. package/dist/contracts/common.js +1 -0
  43. package/dist/contracts/common.js.map +1 -0
  44. package/dist/contracts/factories/IClearingCoordinatorAbi__factory.js +1 -0
  45. package/dist/contracts/factories/IClearingCoordinatorAbi__factory.js.map +1 -0
  46. package/dist/contracts/factories/IERC20MetadataAbi__factory.js +1 -0
  47. package/dist/contracts/factories/IERC20MetadataAbi__factory.js.map +1 -0
  48. package/dist/contracts/factories/IFeeManagerAbi__factory.js +1 -0
  49. package/dist/contracts/factories/IFeeManagerAbi__factory.js.map +1 -0
  50. package/dist/contracts/factories/IKSULockingAbi__factory.js +1 -0
  51. package/dist/contracts/factories/IKSULockingAbi__factory.js.map +1 -0
  52. package/dist/contracts/factories/IKasuAllowListAbi__factory.js +1 -0
  53. package/dist/contracts/factories/IKasuAllowListAbi__factory.js.map +1 -0
  54. package/dist/contracts/factories/IKasuControllerAbi__factory.js +1 -0
  55. package/dist/contracts/factories/IKasuControllerAbi__factory.js.map +1 -0
  56. package/dist/contracts/factories/IKasuNFTsAbi__factory.js +1 -0
  57. package/dist/contracts/factories/IKasuNFTsAbi__factory.js.map +1 -0
  58. package/dist/contracts/factories/IKsuPriceAbi__factory.js +1 -0
  59. package/dist/contracts/factories/IKsuPriceAbi__factory.js.map +1 -0
  60. package/dist/contracts/factories/ILendingPoolAbi__factory.js +1 -0
  61. package/dist/contracts/factories/ILendingPoolAbi__factory.js.map +1 -0
  62. package/dist/contracts/factories/ILendingPoolFactoryAbi__factory.js +1 -0
  63. package/dist/contracts/factories/ILendingPoolFactoryAbi__factory.js.map +1 -0
  64. package/dist/contracts/factories/ILendingPoolManagerAbi__factory.js +1 -0
  65. package/dist/contracts/factories/ILendingPoolManagerAbi__factory.js.map +1 -0
  66. package/dist/contracts/factories/ILendingPoolTrancheAbi__factory.js +1 -0
  67. package/dist/contracts/factories/ILendingPoolTrancheAbi__factory.js.map +1 -0
  68. package/dist/contracts/factories/ISystemVariablesAbi__factory.js +1 -0
  69. package/dist/contracts/factories/ISystemVariablesAbi__factory.js.map +1 -0
  70. package/dist/contracts/factories/IUserLoyaltyRewardsAbi__factory.js +1 -0
  71. package/dist/contracts/factories/IUserLoyaltyRewardsAbi__factory.js.map +1 -0
  72. package/dist/contracts/factories/IUserManagerAbi__factory.js +1 -0
  73. package/dist/contracts/factories/IUserManagerAbi__factory.js.map +1 -0
  74. package/dist/contracts/factories/KSULockBonusAbi__factory.js +1 -0
  75. package/dist/contracts/factories/KSULockBonusAbi__factory.js.map +1 -0
  76. package/dist/contracts/factories/KasuPoolExternalTVLAbi__factory.js +1 -0
  77. package/dist/contracts/factories/KasuPoolExternalTVLAbi__factory.js.map +1 -0
  78. package/dist/contracts/factories/SwapperAbi__factory.js +1 -0
  79. package/dist/contracts/factories/SwapperAbi__factory.js.map +1 -0
  80. package/dist/contracts/factories/index.js +1 -0
  81. package/dist/contracts/factories/index.js.map +1 -0
  82. package/dist/contracts/index.js +1 -0
  83. package/dist/contracts/index.js.map +1 -0
  84. package/dist/facade/chain-configs.d.ts +11 -0
  85. package/dist/facade/chain-configs.js +84 -0
  86. package/dist/facade/chain-configs.js.map +1 -0
  87. package/dist/facade/deposits.d.ts +56 -0
  88. package/dist/facade/deposits.js +87 -0
  89. package/dist/facade/deposits.js.map +1 -0
  90. package/dist/facade/index.d.ts +6 -0
  91. package/dist/facade/index.js +9 -0
  92. package/dist/facade/index.js.map +1 -0
  93. package/dist/facade/kasu.d.ts +71 -0
  94. package/dist/facade/kasu.js +101 -0
  95. package/dist/facade/kasu.js.map +1 -0
  96. package/dist/facade/strategies.d.ts +37 -0
  97. package/dist/facade/strategies.js +112 -0
  98. package/dist/facade/strategies.js.map +1 -0
  99. package/dist/facade/types.d.ts +127 -0
  100. package/dist/facade/types.js +2 -0
  101. package/dist/facade/types.js.map +1 -0
  102. package/dist/facade/user-portfolio.d.ts +35 -0
  103. package/dist/facade/user-portfolio.js +53 -0
  104. package/dist/facade/user-portfolio.js.map +1 -0
  105. package/dist/index.d.ts +9 -17
  106. package/dist/index.js +10 -16
  107. package/dist/index.js.map +1 -0
  108. package/dist/kasu-sdk.d.ts +17 -0
  109. package/dist/kasu-sdk.js +17 -0
  110. package/dist/kasu-sdk.js.map +1 -0
  111. package/dist/sdk-config.d.ts +28 -4
  112. package/dist/sdk-config.js +9 -6
  113. package/dist/sdk-config.js.map +1 -0
  114. package/dist/services/DataService/data-service.d.ts +9 -2
  115. package/dist/services/DataService/data-service.js +91 -52
  116. package/dist/services/DataService/data-service.js.map +1 -0
  117. package/dist/services/DataService/directus-types.js +1 -0
  118. package/dist/services/DataService/directus-types.js.map +1 -0
  119. package/dist/services/DataService/queries.d.ts +0 -1
  120. package/dist/services/DataService/queries.js +1 -8
  121. package/dist/services/DataService/queries.js.map +1 -0
  122. package/dist/services/DataService/subgraph-types.d.ts +0 -6
  123. package/dist/services/DataService/subgraph-types.js +1 -0
  124. package/dist/services/DataService/subgraph-types.js.map +1 -0
  125. package/dist/services/DataService/types.d.ts +0 -1
  126. package/dist/services/DataService/types.js +1 -0
  127. package/dist/services/DataService/types.js.map +1 -0
  128. package/dist/services/Locking/locking.d.ts +4 -2
  129. package/dist/services/Locking/locking.js +90 -7
  130. package/dist/services/Locking/locking.js.map +1 -0
  131. package/dist/services/Locking/queries.js +1 -0
  132. package/dist/services/Locking/queries.js.map +1 -0
  133. package/dist/services/Locking/types.js +1 -0
  134. package/dist/services/Locking/types.js.map +1 -0
  135. package/dist/services/Portfolio/portfolio.d.ts +41 -2
  136. package/dist/services/Portfolio/portfolio.js +146 -34
  137. package/dist/services/Portfolio/portfolio.js.map +1 -0
  138. package/dist/services/Portfolio/queries.js +1 -0
  139. package/dist/services/Portfolio/queries.js.map +1 -0
  140. package/dist/services/Portfolio/types.js +1 -0
  141. package/dist/services/Portfolio/types.js.map +1 -0
  142. package/dist/services/Swapper/swapper.js +1 -0
  143. package/dist/services/Swapper/swapper.js.map +1 -0
  144. package/dist/services/Swapper/types.js +1 -0
  145. package/dist/services/Swapper/types.js.map +1 -0
  146. package/dist/services/UserLending/helper.js +1 -0
  147. package/dist/services/UserLending/helper.js.map +1 -0
  148. package/dist/services/UserLending/queries.js +1 -0
  149. package/dist/services/UserLending/queries.js.map +1 -0
  150. package/dist/services/UserLending/subgraph-types.js +1 -0
  151. package/dist/services/UserLending/subgraph-types.js.map +1 -0
  152. package/dist/services/UserLending/types.js +1 -0
  153. package/dist/services/UserLending/types.js.map +1 -0
  154. package/dist/services/UserLending/user-lending.js +1 -0
  155. package/dist/services/UserLending/user-lending.js.map +1 -0
  156. package/dist/services/shared.js +1 -0
  157. package/dist/services/shared.js.map +1 -0
  158. package/dist/tests/facade.test.d.ts +1 -0
  159. package/dist/tests/facade.test.js +196 -0
  160. package/dist/tests/facade.test.js.map +1 -0
  161. package/dist/tests/sample.test.js +20 -14
  162. package/dist/tests/sample.test.js.map +1 -0
  163. package/dist/utils/deployment-mode.d.ts +6 -0
  164. package/dist/utils/deployment-mode.js +8 -0
  165. package/dist/utils/deployment-mode.js.map +1 -0
  166. package/package.json +3 -2
  167. package/src/facade/chain-configs.ts +93 -0
  168. package/src/facade/deposits.ts +102 -0
  169. package/src/facade/index.ts +26 -0
  170. package/src/facade/kasu.ts +144 -0
  171. package/src/facade/strategies.ts +119 -0
  172. package/src/facade/types.ts +168 -0
  173. package/src/facade/user-portfolio.ts +73 -0
  174. package/src/index.ts +59 -25
  175. package/src/kasu-sdk.ts +27 -0
  176. package/src/sdk-config.ts +36 -15
  177. package/src/services/DataService/data-service.ts +105 -65
  178. package/src/services/DataService/queries.ts +0 -9
  179. package/src/services/DataService/subgraph-types.ts +0 -7
  180. package/src/services/DataService/types.ts +0 -1
  181. package/src/services/Locking/locking.ts +113 -12
  182. package/src/services/Portfolio/portfolio.ts +276 -50
  183. package/src/tests/facade.test.ts +245 -0
  184. package/src/tests/sample.test.ts +7 -9
  185. package/src/utils/deployment-mode.ts +9 -0
  186. package/tsconfig.json +1 -1
@@ -24,21 +24,40 @@ import { GraphQLClient } from 'graphql-request';
24
24
  import { KasuPoolExternalTVLAbi__factory, } from '../../contracts';
25
25
  import { getSystemVariablesQuery } from '../Locking/queries';
26
26
  import { filterArray } from '../shared';
27
- import { getAllTrancheConfigurationsQuery, getAllTranchesQuery, getLendingPoolWithdrawalAndDepositsQuery, getPlumeTvl, getPoolNameQuery, getPoolOverviewQuery, } from './queries';
27
+ import { getAllTrancheConfigurationsQuery, getAllTranchesQuery, getLendingPoolWithdrawalAndDepositsQuery, getPoolNameQuery, getPoolOverviewQuery, } from './queries';
28
28
  export class DataService {
29
29
  constructor(_kasuConfig, signerOrProvider) {
30
30
  this._kasuConfig = _kasuConfig;
31
- this._plumeTvl = new Map();
32
31
  this._externalTvlAbi = KasuPoolExternalTVLAbi__factory.connect(_kasuConfig.contracts.ExternalTVL, signerOrProvider);
33
32
  this._graph = new GraphQLClient(_kasuConfig.subgraphUrl);
34
- this._plumeGraph = new GraphQLClient(_kasuConfig.plumeSubgraphUrl);
35
- this._directus = createDirectus(_kasuConfig.directusUrl)
36
- .with(authentication())
37
- .with(rest());
33
+ if (_kasuConfig.directusUrl) {
34
+ this._directus = createDirectus(_kasuConfig.directusUrl)
35
+ .with(authentication())
36
+ .with(rest());
37
+ }
38
+ else {
39
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment, @typescript-eslint/no-explicit-any
40
+ this._directus = null;
41
+ }
38
42
  }
39
43
  getUrlFromFile(fileName) {
40
44
  return `${this._kasuConfig.directusUrl}assets/${fileName}`;
41
45
  }
46
+ /**
47
+ * Maps a pool ID to its metadata source pool ID.
48
+ * Used for chains (XDC, Plume) that share Directus metadata with Base pools.
49
+ */
50
+ getMetadataPoolId(poolId) {
51
+ var _a;
52
+ const normalizedId = poolId.toLowerCase();
53
+ return (_a = this._kasuConfig.poolMetadataMapping[normalizedId]) !== null && _a !== void 0 ? _a : normalizedId;
54
+ }
55
+ /**
56
+ * Maps an array of pool IDs to their metadata source pool IDs.
57
+ */
58
+ getMetadataPoolIds(poolIds) {
59
+ return poolIds.map((id) => this.getMetadataPoolId(id));
60
+ }
42
61
  calculatePoolCapacity(poolCapacities, poolCapacityPercentages, index, spillOver, lendingPoolSubgraph, lendingPoolConfig) {
43
62
  const desiredDrawAmount = lendingPoolConfig.desiredDrawAmount; // subgraph
44
63
  const desiredTrancheRatio = lendingPoolConfig.tranchesConfig[index].desiredRatio;
@@ -96,7 +115,7 @@ export class DataService {
96
115
  }
97
116
  getPoolOverview(epochId, id_in) {
98
117
  return __awaiter(this, void 0, void 0, function* () {
99
- var _a, _b, _c;
118
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s;
100
119
  const trancheNames = [
101
120
  ['Senior'],
102
121
  ['Junior', 'Senior'],
@@ -106,29 +125,39 @@ export class DataService {
106
125
  unusedPools: this._kasuConfig.UNUSED_LENDING_POOL_IDS,
107
126
  epochId,
108
127
  });
109
- if (!this._plumeTvl.size) {
110
- const plumeResults = yield this._plumeGraph.request(getPlumeTvl);
111
- for (const pool of plumeResults.lendingPools) {
112
- this._plumeTvl.set(pool.id, pool.balance);
113
- }
114
- }
115
128
  if (!this._directusPoolOverview) {
116
- this._directusPoolOverview = yield this._directus.request(readItems('PoolOverview', {
117
- filter: {
118
- enabled: {
119
- _eq: true,
120
- },
121
- },
122
- }));
129
+ if (this._kasuConfig.directusUrl) {
130
+ try {
131
+ this._directusPoolOverview = yield this._directus.request(readItems('PoolOverview', {
132
+ filter: {
133
+ enabled: {
134
+ _eq: true,
135
+ },
136
+ },
137
+ }));
138
+ }
139
+ catch (error) {
140
+ console.warn('Directus fetch failed, falling back to on-chain data only:', error);
141
+ this._directusPoolOverview = [];
142
+ }
143
+ }
144
+ else {
145
+ this._directusPoolOverview = [];
146
+ }
123
147
  }
124
148
  const offchainTvlMap = yield this.getOffChainTvl(poolOverviewResults.lendingPools.map(({ id }) => id));
125
149
  const retn = [];
126
150
  for (const lendingPoolSubgraph of poolOverviewResults.lendingPools) {
127
- const lendingPoolDirectus = this._directusPoolOverview.find((r) => r.id.toLowerCase() == lendingPoolSubgraph.id);
151
+ // Use metadata mapping if available (for XDC/Plume pools that share metadata with Base)
152
+ const metadataPoolId = (_a = this._kasuConfig.poolMetadataMapping[lendingPoolSubgraph.id]) !== null && _a !== void 0 ? _a : lendingPoolSubgraph.id;
153
+ const lendingPoolDirectus = this._directusPoolOverview.find((r) => r.id.toLowerCase() === metadataPoolId);
128
154
  const lendingPoolConfig = lendingPoolSubgraph.configuration;
129
155
  if (!lendingPoolDirectus) {
130
- console.warn("Couldn't find directus pool for id: ", lendingPoolSubgraph.id);
131
- continue;
156
+ console.warn("Couldn't find directus pool for id: ", lendingPoolSubgraph.id, metadataPoolId !== lendingPoolSubgraph.id
157
+ ? `(mapped from ${metadataPoolId})`
158
+ : '');
159
+ // When Directus is unavailable or pool has no CMS entry,
160
+ // use a fallback so the pool is still returned with on-chain data.
132
161
  }
133
162
  const poolCapacities = this.calculatePoolCapacity([], [], 0, 0, lendingPoolSubgraph, lendingPoolConfig);
134
163
  const tranches = lendingPoolSubgraph.tranches
@@ -195,49 +224,50 @@ export class DataService {
195
224
  : parseFloat(tranche.balance) / trancheBalanceSum;
196
225
  averageApy += parseFloat(trancheData.averageApy) * weight;
197
226
  }
198
- const plumeTvl = lendingPoolDirectus.plumeStrategy &&
199
- this._plumeTvl.has(lendingPoolDirectus.plumeStrategy)
200
- ? (_a = this._plumeTvl.get(lendingPoolDirectus.plumeStrategy)) !== null && _a !== void 0 ? _a : '0'
201
- : '0';
202
227
  const offChainTvl = (_b = offchainTvlMap.get(lendingPoolSubgraph.id)) !== null && _b !== void 0 ? _b : '0';
203
228
  const poolOverview = {
204
229
  id: lendingPoolSubgraph.id,
205
- security: lendingPoolDirectus.security,
206
- enabled: lendingPoolDirectus.enabled,
207
- isOversubscribed: lendingPoolDirectus.oversubscribed,
230
+ security: (_c = lendingPoolDirectus === null || lendingPoolDirectus === void 0 ? void 0 : lendingPoolDirectus.security) !== null && _c !== void 0 ? _c : [],
231
+ enabled: (_d = lendingPoolDirectus === null || lendingPoolDirectus === void 0 ? void 0 : lendingPoolDirectus.enabled) !== null && _d !== void 0 ? _d : true,
232
+ isOversubscribed: (_e = lendingPoolDirectus === null || lendingPoolDirectus === void 0 ? void 0 : lendingPoolDirectus.oversubscribed) !== null && _e !== void 0 ? _e : false,
208
233
  apy: averageApy,
209
- description: lendingPoolDirectus.description,
210
- liteDescription: lendingPoolDirectus.liteDescription,
211
- thumbnailImageUrl: this.getUrlFromFile(lendingPoolDirectus.thumbnailImage),
212
- bannerImageUrl: this.getUrlFromFile(lendingPoolDirectus.bannerImage),
213
- strategyDeckUrl: this.getUrlFromFile(lendingPoolDirectus.strategyDeck),
214
- assetClass: lendingPoolDirectus.assetClass,
215
- industryExposure: lendingPoolDirectus.industryExposure,
216
- poolApyStructure: lendingPoolDirectus.poolApyStructure,
217
- apyExpiryDate: lendingPoolDirectus.apyExpiryDate,
218
- poolInvestmentTerm: lendingPoolDirectus.poolInvestmentTerm,
219
- loanStructure: lendingPoolDirectus.loanStructure,
220
- poolName: (_c = lendingPoolDirectus.poolName) !== null && _c !== void 0 ? _c : lendingPoolSubgraph.name,
221
- subheading: lendingPoolDirectus.subheading,
234
+ description: (_f = lendingPoolDirectus === null || lendingPoolDirectus === void 0 ? void 0 : lendingPoolDirectus.description) !== null && _f !== void 0 ? _f : '',
235
+ liteDescription: (_g = lendingPoolDirectus === null || lendingPoolDirectus === void 0 ? void 0 : lendingPoolDirectus.liteDescription) !== null && _g !== void 0 ? _g : '',
236
+ thumbnailImageUrl: (lendingPoolDirectus === null || lendingPoolDirectus === void 0 ? void 0 : lendingPoolDirectus.thumbnailImage)
237
+ ? this.getUrlFromFile(lendingPoolDirectus.thumbnailImage)
238
+ : '',
239
+ bannerImageUrl: (lendingPoolDirectus === null || lendingPoolDirectus === void 0 ? void 0 : lendingPoolDirectus.bannerImage)
240
+ ? this.getUrlFromFile(lendingPoolDirectus.bannerImage)
241
+ : '',
242
+ strategyDeckUrl: (lendingPoolDirectus === null || lendingPoolDirectus === void 0 ? void 0 : lendingPoolDirectus.strategyDeck)
243
+ ? this.getUrlFromFile(lendingPoolDirectus.strategyDeck)
244
+ : '',
245
+ assetClass: (_h = lendingPoolDirectus === null || lendingPoolDirectus === void 0 ? void 0 : lendingPoolDirectus.assetClass) !== null && _h !== void 0 ? _h : '',
246
+ industryExposure: (_j = lendingPoolDirectus === null || lendingPoolDirectus === void 0 ? void 0 : lendingPoolDirectus.industryExposure) !== null && _j !== void 0 ? _j : '',
247
+ poolApyStructure: (_k = lendingPoolDirectus === null || lendingPoolDirectus === void 0 ? void 0 : lendingPoolDirectus.poolApyStructure) !== null && _k !== void 0 ? _k : 'Variable',
248
+ apyExpiryDate: (_l = lendingPoolDirectus === null || lendingPoolDirectus === void 0 ? void 0 : lendingPoolDirectus.apyExpiryDate) !== null && _l !== void 0 ? _l : null,
249
+ poolInvestmentTerm: (_m = lendingPoolDirectus === null || lendingPoolDirectus === void 0 ? void 0 : lendingPoolDirectus.poolInvestmentTerm) !== null && _m !== void 0 ? _m : '',
250
+ loanStructure: (_o = lendingPoolDirectus === null || lendingPoolDirectus === void 0 ? void 0 : lendingPoolDirectus.loanStructure) !== null && _o !== void 0 ? _o : '',
251
+ poolName: (_p = lendingPoolDirectus === null || lendingPoolDirectus === void 0 ? void 0 : lendingPoolDirectus.poolName) !== null && _p !== void 0 ? _p : lendingPoolSubgraph.name,
252
+ subheading: lendingPoolDirectus === null || lendingPoolDirectus === void 0 ? void 0 : lendingPoolDirectus.subheading,
222
253
  totalValueLocked: {
223
254
  total: (parseFloat(lendingPoolSubgraph.balance) +
224
- parseFloat(plumeTvl) +
225
255
  parseFloat(offChainTvl)).toString(),
226
256
  offchain: offChainTvl,
227
- plume: plumeTvl,
228
257
  },
229
- loansUnderManagement: lendingPoolDirectus.loansUnderManagement,
258
+ loansUnderManagement: (_q = lendingPoolDirectus === null || lendingPoolDirectus === void 0 ? void 0 : lendingPoolDirectus.loansUnderManagement) !== null && _q !== void 0 ? _q : '0',
230
259
  yieldEarned: lendingPoolSubgraph.totalUserInterestAmount,
231
260
  poolCapacity: poolCapacitySum.toString(),
232
261
  poolCapacityPercentage: poolCapacityPercentageSum.toString(),
233
- activeLoans: lendingPoolDirectus.activeLoans,
234
- loanFundsOriginated: lendingPoolDirectus.loanFundsOriginated,
262
+ activeLoans: (_r = lendingPoolDirectus === null || lendingPoolDirectus === void 0 ? void 0 : lendingPoolDirectus.activeLoans) !== null && _r !== void 0 ? _r : '0',
263
+ loanFundsOriginated: (_s = lendingPoolDirectus === null || lendingPoolDirectus === void 0 ? void 0 : lendingPoolDirectus.loanFundsOriginated) !== null && _s !== void 0 ? _s : '0',
235
264
  tranches: tranches,
236
265
  isActive: !lendingPoolSubgraph.isStopped,
237
266
  requestEpochsInAdvance: lendingPoolSubgraph.configuration
238
267
  .lendingPoolWithdrawalConfig.requestEpochsInAdvance,
239
268
  };
240
- // show only enabled pools from cms
269
+ // When Directus is available, show only enabled pools.
270
+ // When Directus is unavailable, include all pools.
241
271
  if (poolOverview.enabled) {
242
272
  retn.push(poolOverview);
243
273
  }
@@ -457,7 +487,11 @@ export class DataService {
457
487
  const lendingPoolsWithdrawalsAndDepositsSubgraph = yield this._graph.request(getLendingPoolWithdrawalAndDepositsQuery, { unusedPools: this._kasuConfig.UNUSED_LENDING_POOL_IDS });
458
488
  const retn = [];
459
489
  for (const data of poolRepaymentDirectus) {
460
- const lendingPoolSubgraph = lendingPoolsWithdrawalsAndDepositsSubgraph.lendingPools.find((pool) => pool.id == data.poolIdFK);
490
+ // Find subgraph pool that maps to this Directus pool
491
+ // On non-Base chains, subgraph pool IDs are different from Directus poolIdFK
492
+ // Use getMetadataPoolId to map subgraph pool ID -> Directus/Base pool ID
493
+ const lendingPoolSubgraph = lendingPoolsWithdrawalsAndDepositsSubgraph.lendingPools.find((pool) => this.getMetadataPoolId(pool.id) ===
494
+ data.poolIdFK.toLowerCase());
461
495
  if (lendingPoolSubgraph === undefined) {
462
496
  continue;
463
497
  }
@@ -546,9 +580,13 @@ export class DataService {
546
580
  retn.totalYieldEarned += parseFloat(poolOverview.yieldEarned);
547
581
  }
548
582
  for (const poolOverview of poolOverviews) {
549
- const riskManagement = riskManagements.find((rm) => rm.poolIdFK.toLowerCase() === poolOverview.id.toLowerCase());
583
+ // Map to metadata pool ID for Directus lookup (XDC pools → Base pools)
584
+ const metadataPoolId = this.getMetadataPoolId(poolOverview.id);
585
+ const riskManagement = riskManagements.find((rm) => rm.poolIdFK.toLowerCase() === metadataPoolId.toLowerCase());
550
586
  if (!riskManagement) {
551
- console.warn("Couldn't find risk management for id: ", poolOverview.id);
587
+ console.warn("Couldn't find risk management for id: ", poolOverview.id, metadataPoolId !== poolOverview.id
588
+ ? `(mapped to ${metadataPoolId})`
589
+ : '');
552
590
  continue;
553
591
  }
554
592
  const weight = retn.totalLoanFundsOriginated === 0
@@ -584,3 +622,4 @@ export class DataService {
584
622
  return bonusInterestEarned;
585
623
  }
586
624
  }
625
+ //# sourceMappingURL=data-service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"data-service.js","sourceRoot":"","sources":["../../../src/services/DataService/data-service.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA,OAAO,EACH,cAAc,EAEd,cAAc,EAEd,SAAS,EACT,aAAa,EACb,IAAI,GAEP,MAAM,eAAe,CAAC;AAGvB,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAEhD,OAAO,EAEH,+BAA+B,GAClC,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EAAE,uBAAuB,EAAE,MAAM,oBAAoB,CAAC;AAE7D,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAcxC,OAAO,EACH,gCAAgC,EAChC,mBAAmB,EACnB,wCAAwC,EACxC,gBAAgB,EAChB,oBAAoB,GACvB,MAAM,WAAW,CAAC;AAuBnB,MAAM,OAAO,WAAW;IAQpB,YACY,WAAsB,EAC9B,gBAAmC;QAD3B,gBAAW,GAAX,WAAW,CAAW;QAG9B,IAAI,CAAC,eAAe,GAAG,+BAA+B,CAAC,OAAO,CAC1D,WAAW,CAAC,SAAS,CAAC,WAAW,EACjC,gBAAgB,CACnB,CAAC;QACF,IAAI,CAAC,MAAM,GAAG,IAAI,aAAa,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;QAEzD,IAAI,WAAW,CAAC,WAAW,EAAE,CAAC;YAC1B,IAAI,CAAC,SAAS,GAAG,cAAc,CAC3B,WAAW,CAAC,WAAW,CAC1B;iBACI,IAAI,CAAC,cAAc,EAAE,CAAC;iBACtB,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;QACtB,CAAC;aAAM,CAAC;YACJ,uGAAuG;YACvG,IAAI,CAAC,SAAS,GAAG,IAAW,CAAC;QACjC,CAAC;IACL,CAAC;IAEO,cAAc,CAAC,QAAgB;QACnC,OAAO,GAAG,IAAI,CAAC,WAAW,CAAC,WAAW,UAAU,QAAQ,EAAE,CAAC;IAC/D,CAAC;IAED;;;OAGG;IACK,iBAAiB,CAAC,MAAc;;QACpC,MAAM,YAAY,GAAG,MAAM,CAAC,WAAW,EAAE,CAAC;QAC1C,OAAO,MAAA,IAAI,CAAC,WAAW,CAAC,mBAAmB,CAAC,YAAY,CAAC,mCAAI,YAAY,CAAC;IAC9E,CAAC;IAED;;OAEG;IACK,kBAAkB,CAAC,OAAiB;QACxC,OAAO,OAAO,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,IAAI,CAAC,iBAAiB,CAAC,EAAE,CAAC,CAAC,CAAC;IAC3D,CAAC;IAED,qBAAqB,CACjB,cAAwB,EACxB,uBAAiC,EACjC,KAAa,EACb,SAAiB,EACjB,mBAAwC,EACxC,iBAAmD;QAEnD,MAAM,iBAAiB,GAAG,iBAAiB,CAAC,iBAAiB,CAAC,CAAC,WAAW;QAC1E,MAAM,mBAAmB,GACrB,iBAAiB,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC,YAAY,CAAC;QAEzD,MAAM,gBAAgB,GAClB,UAAU,CAAC,iBAAiB,CAAC;YAC7B,CAAC,UAAU,CAAC,mBAAmB,CAAC,GAAG,GAAG,CAAC,CAAC;QAE5C,MAAM,eAAe,GACjB,UAAU,CACN,mBAAmB,CAAC,WAAW,CAAC,0BAA0B,CACtD,KAAK,CACR,CACJ,GAAG,SAAS,CAAC;QAElB,MAAM,OAAO,GAAG,UAAU,CAAC,mBAAmB,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,WAAW;QAEpF,MAAM,YAAY,GAAG,OAAO,GAAG,gBAAgB,CAAC;QAEhD,MAAM,iBAAiB,GAAG,IAAI,CAAC,GAAG,CAC9B,gBAAgB,GAAG,eAAe,EAClC,CAAC,CACJ,CAAC;QAEF,MAAM,2BAA2B,GAC7B,YAAY,IAAI,CAAC,CAAC,CAAC,CAAC,iBAAiB,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC;QAE7D,MAAM,0BAA0B,GAAG,IAAI,CAAC,GAAG,CACvC,gBAAgB,GAAG,eAAe,EAClC,CAAC,CACJ,CAAC;QAEF,cAAc,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;QACvC,uBAAuB,CAAC,IAAI,CAAC,2BAA2B,CAAC,CAAC;QAC1D,IAAI,KAAK,KAAK,iBAAiB,CAAC,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACxD,OAAO;gBACH,YAAY,EAAE,cAAc;gBAC5B,sBAAsB,EAAE,uBAAuB;aAClD,CAAC;QACN,CAAC;QACD,OAAO,IAAI,CAAC,qBAAqB,CAC7B,cAAc,EACd,uBAAuB,EACvB,KAAK,GAAG,CAAC,EACT,0BAA0B,EAC1B,mBAAmB,EACnB,iBAAiB,CACpB,CAAC;IACN,CAAC;IAED,sBAAsB,CAAC,YAAoB;QACvC,MAAM,cAAc,GAAG,QAAQ,CAAC;QAChC,OAAO,SAAA,CAAC,CAAC,GAAG,UAAU,CAAC,YAAY,CAAC,CAAC,EAAI,cAAc,CAAA,GAAG,CAAC,CAAC;IAChE,CAAC;IAEK,mBAAmB;;YACrB,OAAO,MAAM,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,aAAa,CAAC,kBAAkB,CAAC,CAAC,CAAC;QAC3E,CAAC;KAAA;IAEK,WAAW;;YACb,OAAO,MAAM,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC,CAAC;QACnE,CAAC;KAAA;IAEK,cAAc,CAAC,OAAiB;;YAClC,MAAM,MAAM,GAAG,IAAI,GAAG,EAAkB,CAAC;YAEzC,IAAI,CAAC;gBACD,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,GAAG,CAC7B,OAAO,CAAC,GAAG,CACP,CAAO,EAAE,EAAE,EAAE;oBACT,OAAA;wBACI,EAAE;wBACF,MAAM,IAAI,CAAC,eAAe,CAAC,iBAAiB,CAAC,EAAE,CAAC;qBAC1C,CAAA;kBAAA,CACjB,CACJ,CAAC;gBAEF,KAAK,MAAM,CAAC,EAAE,EAAE,GAAG,CAAC,IAAI,OAAO,EAAE,CAAC;oBAC9B,MAAM,CAAC,GAAG,CAAC,EAAE,EAAE,WAAW,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC;gBACxC,CAAC;YACL,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACb,OAAO,CAAC,KAAK,CAAC,kBAAkB,EAAE,KAAK,CAAC,CAAC;YAC7C,CAAC;YAED,OAAO,MAAM,CAAC;QAClB,CAAC;KAAA;IAEK,eAAe,CACjB,OAAe,EACf,KAAgB;;;YAEhB,MAAM,YAAY,GAAe;gBAC7B,CAAC,QAAQ,CAAC;gBACV,CAAC,QAAQ,EAAE,QAAQ,CAAC;gBACpB,CAAC,QAAQ,EAAE,WAAW,EAAE,QAAQ,CAAC;aACpC,CAAC;YAEF,MAAM,mBAAmB,GACrB,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,oBAAoB,CAAC,KAAK,CAAC,EAAE;gBACnD,WAAW,EAAE,IAAI,CAAC,WAAW,CAAC,uBAAuB;gBACrD,OAAO;aACV,CAAC,CAAC;YAEP,IAAI,CAAC,IAAI,CAAC,qBAAqB,EAAE,CAAC;gBAC9B,IAAI,IAAI,CAAC,WAAW,CAAC,WAAW,EAAE,CAAC;oBAC/B,IAAI,CAAC;wBACD,IAAI,CAAC,qBAAqB,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,OAAO,CACrD,SAAS,CAAC,cAAc,EAAE;4BACtB,MAAM,EAAE;gCACJ,OAAO,EAAE;oCACL,GAAG,EAAE,IAAI;iCACZ;6BACJ;yBACJ,CAAC,CACL,CAAC;oBACN,CAAC;oBAAC,OAAO,KAAK,EAAE,CAAC;wBACb,OAAO,CAAC,IAAI,CACR,4DAA4D,EAC5D,KAAK,CACR,CAAC;wBACF,IAAI,CAAC,qBAAqB,GAAG,EAAE,CAAC;oBACpC,CAAC;gBACL,CAAC;qBAAM,CAAC;oBACJ,IAAI,CAAC,qBAAqB,GAAG,EAAE,CAAC;gBACpC,CAAC;YACL,CAAC;YAED,MAAM,cAAc,GAAG,MAAM,IAAI,CAAC,cAAc,CAC5C,mBAAmB,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,CACvD,CAAC;YAEF,MAAM,IAAI,GAAmB,EAAE,CAAC;YAChC,KAAK,MAAM,mBAAmB,IAAI,mBAAmB,CAAC,YAAY,EAAE,CAAC;gBACjE,wFAAwF;gBACxF,MAAM,cAAc,GAChB,MAAA,IAAI,CAAC,WAAW,CAAC,mBAAmB,CAAC,mBAAmB,CAAC,EAAE,CAAC,mCAC5D,mBAAmB,CAAC,EAAE,CAAC;gBAE3B,MAAM,mBAAmB,GACrB,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAC3B,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,WAAW,EAAE,KAAK,cAAc,CAC/C,CAAC;gBAEN,MAAM,iBAAiB,GAAG,mBAAmB,CAAC,aAAa,CAAC;gBAE5D,IAAI,CAAC,mBAAmB,EAAE,CAAC;oBACvB,OAAO,CAAC,IAAI,CACR,sCAAsC,EACtC,mBAAmB,CAAC,EAAE,EACtB,cAAc,KAAK,mBAAmB,CAAC,EAAE;wBACrC,CAAC,CAAC,gBAAgB,cAAc,GAAG;wBACnC,CAAC,CAAC,EAAE,CACX,CAAC;oBACF,yDAAyD;oBACzD,mEAAmE;gBACvE,CAAC;gBACD,MAAM,cAAc,GAAG,IAAI,CAAC,qBAAqB,CAC7C,EAAE,EACF,EAAE,EACF,CAAC,EACD,CAAC,EACD,mBAAmB,EACnB,iBAAiB,CACpB,CAAC;gBACF,MAAM,QAAQ,GAAkB,mBAAmB,CAAC,QAAQ;qBACvD,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE;oBACb,MAAM,aAAa,GACf,mBAAmB,CAAC,aAAa,CAAC,cAAc,CAAC,IAAI,CACjD,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,OAAO,CAAC,EAAE,CAC5B,CAAC;oBACN,IAAI,CAAC,aAAa,EAAE,CAAC;wBACjB,OAAO,CAAC,IAAI,CACR,uCAAuC,EACvC,OAAO,CAAC,EAAE,CACb,CAAC;wBACF,OAAO,IAAI,CAAC;oBAChB,CAAC;oBAED,MAAM,eAAe,GACjB,aAAa,CAAC,qCAAqC,CAAC;oBAExD,MAAM,YAAY,GAAG,eAAe,CAAC,MAAM;wBACvC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,iBAAiB;wBACtC,CAAC,CAAC,aAAa,CAAC,YAAY,CAAC;oBAEjC,MAAM,OAAO,GAAG,IAAI,CAAC,sBAAsB,CAAC,YAAY,CAAC,CAAC;oBAE1D,IAAI,MAAM,GAAG,OAAO,CAAC;oBACrB,IAAI,MAAM,GAAG,OAAO,CAAC;oBAErB,MAAM,eAAe,GACjB,aAAa,CAAC,kCAAkC,CAAC,GAAG,CAChD,CAAC,eAAe,EAAE,EAAE;wBAChB,MAAM,YAAY,GACd,IAAI,CAAC,sBAAsB,CACvB,eAAe,CAAC,iBAAiB,CACpC,CAAC;wBAEN,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;wBACxC,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;wBAExC,OAAO;4BACH,QAAQ,EAAE,eAAe,CAAC,QAAQ;4BAClC,GAAG,EAAE,YAAY,CAAC,QAAQ,EAAE;4BAC5B,iBAAiB,EACb,eAAe,CAAC,iBAAiB;4BACrC,iBAAiB,EACb,eAAe,CAAC,iBAAiB;4BACrC,sBAAsB,EAClB,eAAe,CAAC,sBAAsB;4BAC1C,yBAAyB,EACrB,eAAe,CAAC,yBAAyB,CAAC,GAAG,CACzC,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;gCACZ,aAAa,EACT,SAAS,CAAC,aAAa;gCAC3B,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE;6BAC5B,CAAC,CACL;yBACR,CAAC;oBACN,CAAC,CACJ,CAAC;oBAEN,MAAM,UAAU,GAAG,eAAe,CAAC,MAAM;wBACrC,CAAC,CAAC,eAAe,CAAC,MAAM,CAClB,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC,KAAK,IAAI,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,EAC9C,CAAC,CACJ,GAAG,eAAe,CAAC,MAAM;wBAC5B,CAAC,CAAC,OAAO,CAAC;oBAEd,OAAO;wBACH,EAAE,EAAE,OAAO,CAAC,EAAE;wBACd,GAAG,EAAE,OAAO,CAAC,QAAQ,EAAE;wBACvB,MAAM,EAAE,MAAM,CAAC,QAAQ,EAAE;wBACzB,MAAM,EAAE,MAAM,CAAC,QAAQ,EAAE;wBACzB,UAAU,EAAE,UAAU,CAAC,QAAQ,EAAE;wBACjC,YAAY;wBACZ,cAAc,EAAE,aAAa,CAAC,gBAAgB;wBAC9C,cAAc,EAAE,aAAa,CAAC,gBAAgB;wBAC9C,sBAAsB,EAClB,cAAc,CAAC,sBAAsB,CACjC,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,CAC5B,CAAC,QAAQ,EAAE;wBAChB,YAAY,EACR,cAAc,CAAC,YAAY,CACvB,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,CAC5B,CAAC,QAAQ,EAAE;wBAChB,IAAI,EAAE,YAAY,CACd,mBAAmB,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAC1C,CAAC,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;wBAC5B,eAAe;qBAClB,CAAC;gBACN,CAAC,CAAC;qBACD,MAAM,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,KAAK,IAAI,CAAC,CAAC;gBAE3C,MAAM,eAAe,GAAG,cAAc,CAAC,YAAY,CAAC,MAAM,CACtD,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,EACf,CAAC,CACJ,CAAC;gBAEF,MAAM,yBAAyB,GAC3B,cAAc,CAAC,sBAAsB,CAAC,MAAM,CACxC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,EACf,CAAC,CACJ,GAAG,cAAc,CAAC,YAAY,CAAC,MAAM,CAAC;gBAE3C,MAAM,iBAAiB,GAAG,mBAAmB,CAAC,QAAQ,CAAC,MAAM,CACzD,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC,OAAO,CAAC,EACnC,CAAC,CACJ,CAAC;gBAEF,IAAI,UAAU,GAAG,CAAC,CAAC;gBACnB,KAAK,MAAM,OAAO,IAAI,mBAAmB,CAAC,QAAQ,EAAE,CAAC;oBACjD,MAAM,WAAW,GAAG,QAAQ,CAAC,IAAI,CAC7B,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,WAAW,EAAE,IAAI,OAAO,CAAC,EAAE,CAC1C,CAAC;oBACF,IAAI,CAAC,WAAW,EAAE,CAAC;wBACf,OAAO,CAAC,IAAI,CACR,yCAAyC,EACzC,OAAO,CAAC,EAAE,CACb,CAAC;wBACF,SAAS;oBACb,CAAC;oBACD,MAAM,MAAM,GACR,iBAAiB,IAAI,CAAC;wBAClB,CAAC,CAAC,CAAC;wBACH,CAAC,CAAC,UAAU,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,iBAAiB,CAAC;oBAC1D,UAAU,IAAI,UAAU,CAAC,WAAW,CAAC,UAAU,CAAC,GAAG,MAAM,CAAC;gBAC9D,CAAC;gBAED,MAAM,WAAW,GACb,MAAA,cAAc,CAAC,GAAG,CAAC,mBAAmB,CAAC,EAAE,CAAC,mCAAI,GAAG,CAAC;gBAEtD,MAAM,YAAY,GAAiB;oBAC/B,EAAE,EAAE,mBAAmB,CAAC,EAAE;oBAC1B,QAAQ,EAAE,MAAA,mBAAmB,aAAnB,mBAAmB,uBAAnB,mBAAmB,CAAE,QAAQ,mCAAI,EAAE;oBAC7C,OAAO,EAAE,MAAA,mBAAmB,aAAnB,mBAAmB,uBAAnB,mBAAmB,CAAE,OAAO,mCAAI,IAAI;oBAC7C,gBAAgB,EACZ,MAAA,mBAAmB,aAAnB,mBAAmB,uBAAnB,mBAAmB,CAAE,cAAc,mCAAI,KAAK;oBAChD,GAAG,EAAE,UAAU;oBACf,WAAW,EAAE,MAAA,mBAAmB,aAAnB,mBAAmB,uBAAnB,mBAAmB,CAAE,WAAW,mCAAI,EAAE;oBACnD,eAAe,EAAE,MAAA,mBAAmB,aAAnB,mBAAmB,uBAAnB,mBAAmB,CAAE,eAAe,mCAAI,EAAE;oBAC3D,iBAAiB,EAAE,CAAA,mBAAmB,aAAnB,mBAAmB,uBAAnB,mBAAmB,CAAE,cAAc;wBAClD,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,mBAAmB,CAAC,cAAc,CAAC;wBACzD,CAAC,CAAC,EAAE;oBACR,cAAc,EAAE,CAAA,mBAAmB,aAAnB,mBAAmB,uBAAnB,mBAAmB,CAAE,WAAW;wBAC5C,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,mBAAmB,CAAC,WAAW,CAAC;wBACtD,CAAC,CAAC,EAAE;oBACR,eAAe,EAAE,CAAA,mBAAmB,aAAnB,mBAAmB,uBAAnB,mBAAmB,CAAE,YAAY;wBAC9C,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,mBAAmB,CAAC,YAAY,CAAC;wBACvD,CAAC,CAAC,EAAE;oBACR,UAAU,EAAE,MAAA,mBAAmB,aAAnB,mBAAmB,uBAAnB,mBAAmB,CAAE,UAAU,mCAAI,EAAE;oBACjD,gBAAgB,EACZ,MAAA,mBAAmB,aAAnB,mBAAmB,uBAAnB,mBAAmB,CAAE,gBAAgB,mCAAI,EAAE;oBAC/C,gBAAgB,EACZ,MAAA,mBAAmB,aAAnB,mBAAmB,uBAAnB,mBAAmB,CAAE,gBAAgB,mCAAI,UAAU;oBACvD,aAAa,EACT,MAAA,mBAAmB,aAAnB,mBAAmB,uBAAnB,mBAAmB,CAAE,aAAa,mCAAI,IAAI;oBAC9C,kBAAkB,EACd,MAAA,mBAAmB,aAAnB,mBAAmB,uBAAnB,mBAAmB,CAAE,kBAAkB,mCAAI,EAAE;oBACjD,aAAa,EAAE,MAAA,mBAAmB,aAAnB,mBAAmB,uBAAnB,mBAAmB,CAAE,aAAa,mCAAI,EAAE;oBACvD,QAAQ,EACJ,MAAA,mBAAmB,aAAnB,mBAAmB,uBAAnB,mBAAmB,CAAE,QAAQ,mCAC7B,mBAAmB,CAAC,IAAI;oBAC5B,UAAU,EAAE,mBAAmB,aAAnB,mBAAmB,uBAAnB,mBAAmB,CAAE,UAAU;oBAC3C,gBAAgB,EAAE;wBACd,KAAK,EAAE,CACH,UAAU,CAAC,mBAAmB,CAAC,OAAO,CAAC;4BACvC,UAAU,CAAC,WAAW,CAAC,CAC1B,CAAC,QAAQ,EAAE;wBACZ,QAAQ,EAAE,WAAW;qBACxB;oBACD,oBAAoB,EAChB,MAAA,mBAAmB,aAAnB,mBAAmB,uBAAnB,mBAAmB,CAAE,oBAAoB,mCAAI,GAAG;oBACpD,WAAW,EAAE,mBAAmB,CAAC,uBAAuB;oBACxD,YAAY,EAAE,eAAe,CAAC,QAAQ,EAAE;oBACxC,sBAAsB,EAAE,yBAAyB,CAAC,QAAQ,EAAE;oBAC5D,WAAW,EAAE,MAAA,mBAAmB,aAAnB,mBAAmB,uBAAnB,mBAAmB,CAAE,WAAW,mCAAI,GAAG;oBACpD,mBAAmB,EACf,MAAA,mBAAmB,aAAnB,mBAAmB,uBAAnB,mBAAmB,CAAE,mBAAmB,mCAAI,GAAG;oBACnD,QAAQ,EAAE,QAAQ;oBAClB,QAAQ,EAAE,CAAC,mBAAmB,CAAC,SAAS;oBACxC,sBAAsB,EAClB,mBAAmB,CAAC,aAAa;yBAC5B,2BAA2B,CAAC,sBAAsB;iBAC9D,CAAC;gBAEF,uDAAuD;gBACvD,mDAAmD;gBACnD,IAAI,YAAY,CAAC,OAAO,EAAE,CAAC;oBACvB,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;gBAC5B,CAAC;YACL,CAAC;YAED,OAAO,IAAI,CAAC;QAChB,CAAC;KAAA;IAEK,iBAAiB;;YACnB,MAAM,eAAe,GAAoB,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO,CAC9D,uBAAuB,CAC1B,CAAC;YAEF,OAAO,UAAU,CAAC,eAAe,CAAC,eAAe,CAAC,cAAc,CAAC,CAAC;QACtE,CAAC;KAAA;IAEK,iBAAiB,CAAC,KAAgB;;YACpC,MAAM,CACF,4BAA4B,EAC5B,gCAAgC,EAChC,kCAAkC,EACrC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;gBAClB,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,SAAS,CAAC,gBAAgB,CAAC,CAAC;gBACnD,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,SAAS,CAAC,qBAAqB,CAAC,CAAC;gBACxD,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,SAAS,CAAC,sBAAsB,CAAC,CAAC;aAC5D,CAAC,CAAC;YAEH,MAAM,WAAW,GAEb,kCAAkC,CAAC,MAAM,CACzC,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,CAAC,iCAAM,GAAG,KAAE,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,GAAG,IAAG,EAC3C,EAAE,CACL,CAAC;YAEF,MAAM,UAAU,GACZ,gCAAgC,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE;;gBACjD,MAAM,SAAS,GAAG,MAAA,WAAW,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,0CAAE,IAAI,CAAC;gBAEnD,IAAI,CAAC,SAAS;oBAAE,OAAO,GAAG,CAAC;gBAE3B,uCACO,GAAG,KACN,CAAC,GAAG,CAAC,IAAI,CAAC,kCACH,GAAG,KACN,KAAK,EAAE,SAAS,OAEtB;YACN,CAAC,EAAE,EAAE,CAAC,CAAC;YAEX,MAAM,cAAc,GAAG,4BAA4B,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;gBAC7D,MAAM,KAAK,GAAG,IAAI,CAAC,mBAAmB;qBACjC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;oBACV,MAAM,EAAE,kBAAkB,KAAc,IAAI,EAAb,IAAI,UAAK,IAAI,EAAtC,sBAA+B,CAAO,CAAC;oBAE7C,MAAM,IAAI,GAAG,UAAU,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAC;oBAEhD,IAAI,CAAC,IAAI;wBAAE,OAAO,IAAI,CAAC;oBAEvB,uCACO,IAAI,GACJ,IAAI,EACT;gBACN,CAAC,CAAC;qBACD,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC;gBAErC,OAAO;oBACH,EAAE,EAAE,IAAI,CAAC,EAAE;oBACX,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE;oBACrC,KAAK;oBACL,eAAe,EAAE;wBACb,EAAE,EAAE,IAAI,CAAC,EAAE;wBACX,gBAAgB,EAAE,IAAI,CAAC,gBAAgB;wBACvC,YAAY,EAAE,IAAI,CAAC,YAAY;wBAC/B,oBAAoB,EAAE,IAAI,CAAC,oBAAoB;wBAC/C,eAAe,EAAE,IAAI,CAAC,eAAe;qBACxC;iBACJ,CAAC;YACN,CAAC,CAAC,CAAC;YAEH,OAAO,WAAW,CAAC,cAAc,EAAE,KAAK,CAAC,CAAC;QAC9C,CAAC;KAAA;IAEK,gCAAgC,CAClC,KAAgB;;;YAEhB,MAAM,qCAAqC,GACvC,CAAC,MAAM,IAAI,CAAC,SAAS,CAAC,OAAO,CACzB,SAAS,CAAC,+BAA+B,EAAE;gBACvC,6CAA6C;gBAC7C,MAAM,EAAE,CAAC,GAAG,EAAE,EAAE,UAAU,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC;aACvC,CAAC,CACL,CAAuD,CAAC;YAE7D,MAAM,CAAC,SAAS,EAAE,iBAAiB,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;gBACrD,IAAI,CAAC,MAAM,CAAC,OAAO,CAKhB,gBAAgB,EAAE;oBACjB,GAAG,EAAE,qCAAqC,CAAC,OAAO,CAAC,CAAC,QAAQ,EAAE,EAAE,CAC5D,QAAQ,CAAC,UAAU,CAAC,GAAG,CACnB,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,eAAe,CACzC,CACJ;oBACD,WAAW,EAAE,IAAI,CAAC,WAAW,CAAC,uBAAuB;iBACxD,CAAC;gBACF,IAAI,CAAC,SAAS,CAAC,OAAO,CAClB,SAAS,CAAC,cAAc,EAAE;oBACtB,MAAM,EAAE,CAAC,IAAI,EAAE,UAAU,EAAE,YAAY,EAAE,gBAAgB,CAAC;iBAC7D,CAAC,CACL;aACJ,CAAC,CAAC;YAEH,MAAM,IAAI,GAAoC,EAAE,CAAC;YACjD,KAAK,MAAM,IAAI,IAAI,qCAAqC,EAAE,CAAC;gBACvD,MAAM,cAAc,GAChB,EAAE,CAAC;gBAEP,KAAK,MAAM,SAAS,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;oBACtC,MAAM,KAAK,GAAG,SAAS,CAAC,YAAY,CAAC,IAAI,CACrC,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,SAAS,CAAC,eAAe,KAAK,EAAE,CAC/C,CAAC;oBAEF,IAAI,CAAC,KAAK;wBAAE,SAAS;oBAErB,MAAM,YAAY,GAAG,iBAAiB,CAAC,IAAI,CACvC,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,KAAK,KAAK,CAAC,EAAE,CAC9B,CAAC;oBAEF,MAAM,QAAQ,GAAG,MAAA,YAAY,aAAZ,YAAY,uBAAZ,YAAY,CAAE,QAAQ,mCAAI,KAAK,CAAC,IAAI,CAAC;oBAEtD,cAAc,CAAC,IAAI,CAAC;wBAChB,EAAE,EAAE,KAAK,CAAC,EAAE;wBACZ,IAAI,EAAE,CAAA,YAAY,aAAZ,YAAY,uBAAZ,YAAY,CAAE,UAAU;4BAC1B,CAAC,CAAC,GAAG,QAAQ,MAAM,YAAY,CAAC,UAAU,EAAE;4BAC5C,CAAC,CAAC,QAAQ;wBACd,QAAQ,EAAE,CAAC,KAAK,CAAC,SAAS;wBAC1B,gBAAgB,EAAE,OAAO,CAAC,YAAY,aAAZ,YAAY,uBAAZ,YAAY,CAAE,cAAc,CAAC;qBAC1D,CAAC,CAAC;gBACP,CAAC;gBAED,IAAI,CAAC,IAAI,CAAC;oBACN,EAAE,EAAE,IAAI,CAAC,EAAE;oBACX,sBAAsB,EAAE,IAAI,CAAC,sBAAsB;oBACnD,YAAY,EAAE,IAAI,CAAC,YAAY;oBAC/B,cAAc;oBACd,wBAAwB,EAAE,IAAI,CAAC,wBAAwB;oBACvD,oBAAoB,EAAE,IAAI,CAAC,oBAAoB;oBAC/C,oBAAoB,EAAE,IAAI,CAAC,oBAAoB;oBAC/C,gBAAgB,EAAE,IAAI,CAAC,gBAAgB;iBAC1C,CAAC,CAAC;YACP,CAAC;YACD,OAAO,WAAW,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QACpC,CAAC;KAAA;IAEK,eAAe,CACjB,OAAe,EACf,KAAgB;;YAEhB,MAAM,eAAe,GACjB,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,mBAAmB,EAAE;gBAC3C,WAAW,EAAE,IAAI,CAAC,WAAW,CAAC,uBAAuB;aACxD,CAAC,CAAC;YACP,MAAM,4BAA4B,GAC9B,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,gCAAgC,EAAE;gBACxD,WAAW,EAAE,IAAI,CAAC,WAAW,CAAC,uBAAuB;gBACrD,OAAO;aACV,CAAC,CAAC;YACP,MAAM,IAAI,GAAkB,EAAE,CAAC;YAC/B,KAAK,MAAM,eAAe,IAAI,eAAe,CAAC,mBAAmB,EAAE,CAAC;gBAChE,MAAM,aAAa,GACf,4BAA4B,CAAC,gCAAgC,CAAC,IAAI,CAC9D,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,eAAe,CAAC,EAAE,CACpC,CAAC;gBACN,IAAI,CAAC,aAAa,EAAE,CAAC;oBACjB,OAAO,CAAC,IAAI,CACR,8CAA8C,EAC9C,eAAe,CAAC,EAAE,CACrB,CAAC;oBACF,SAAS;gBACb,CAAC;gBAED,MAAM,eAAe,GACjB,aAAa,CAAC,qCAAqC,CAAC;gBAExD,MAAM,YAAY,GAAG,eAAe,CAAC,MAAM;oBACvC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,iBAAiB;oBACtC,CAAC,CAAC,aAAa,CAAC,YAAY,CAAC;gBAEjC,MAAM,OAAO,GAAgB;oBACzB,EAAE,EAAE,eAAe,CAAC,EAAE;oBACtB,QAAQ,EAAE,eAAe,CAAC,WAAW,CAAC,EAAE,CAAC,WAAW,EAAE;oBACtD,GAAG,EAAE,IAAI,CAAC,sBAAsB,CAAC,YAAY,CAAC,CAAC,QAAQ,EAAE;oBACzD,uBAAuB,EAAE,aAAa,CAAC,gBAAgB;oBACvD,uBAAuB,EAAE,aAAa,CAAC,gBAAgB;iBAC1D,CAAC;gBACF,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YACvB,CAAC;YACD,OAAO,WAAW,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QACpC,CAAC;KAAA;IAEK,sBAAsB,CACxB,KAAgB;;YAEhB,MAAM,CAAC,gCAAgC,EAAE,2BAA2B,CAAC,GACjE,MAAM,OAAO,CAAC,GAAG,CAAC;gBACd,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,SAAS,CAAC,0BAA0B,CAAC,CAAC;gBAC7D,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,SAAS,CAAC,qBAAqB,CAAC,CAAC;aAC3D,CAAC,CAAC;YAEP,MAAM,WAAW,GACb,gCAAgC,CAAC,MAAM,CACnC,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,CAAC,iCAAM,GAAG,KAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,GAAG,IAAG,EACzC,EAAE,CACL,CAAC;YAEN,MAAM,IAAI,GAAG,2BAA2B,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;gBACnD,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK;qBACpB,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE;oBACd,MAAM,EAAE,IAAI,KAAgB,QAAQ,EAAnB,MAAM,UAAK,QAAQ,EAA9B,QAAmB,CAAW,CAAC;oBAErC,MAAM,UAAU,GAAG,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;oBAEzC,IAAI,CAAC,UAAU;wBAAE,OAAO,IAAI,CAAC;oBAE7B,uCACO,MAAM,KACT,IAAI,EAAE,UAAU,IAClB;gBACN,CAAC,CAAC;qBACD,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC;gBAErC,uCACO,KAAK,KACR,KAAK,IACP;YACN,CAAC,CAAC,CAAC;YAEH,OAAO,WAAW,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QACpC,CAAC;KAAA;IAEK,oBAAoB,CAAC,KAAgB;;YACvC,MAAM,CAAC,wBAAwB,EAAE,yBAAyB,CAAC,GACvD,MAAM,OAAO,CAAC,GAAG,CAAC;gBACd,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,SAAS,CAAC,kBAAkB,CAAC,CAAC;gBACrD,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,SAAS,CAAC,mBAAmB,CAAC,CAAC;aACzD,CAAC,CAAC;YAEP,MAAM,sBAAsB,GAExB,wBAAwB,CAAC,MAAM,CAC/B,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,CAAC,iCAAM,GAAG,KAAE,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,GAAG,IAAG,EAC3C,EAAE,CACL,CAAC;YAEF,MAAM,iBAAiB,GAAG,yBAAyB,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;gBAC7D,MAAM,OAAO,GAAG,IAAI,CAAC,gBAAgB;qBAChC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;oBACV,MAAM,EAAE,eAAe,KAAgB,IAAI,EAAf,MAAM,UAAK,IAAI,EAArC,mBAA8B,CAAO,CAAC;oBAE5C,MAAM,SAAS,GACX,sBAAsB,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC;oBAEhD,IAAI,CAAC,SAAS;wBAAE,OAAO,IAAI,CAAC;oBAE5B,uCACO,MAAM,KACT,eAAe,EAAE,SAAS,IAC5B;gBACN,CAAC,CAAC;qBACD,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,KAAK,IAAI,CAAC,CAAC;gBAEzC,uCACO,IAAI,KACP,gBAAgB,EAAE,OAAO,IAC3B;YACN,CAAC,CAAC,CAAC;YAEH,OAAO,WAAW,CAAC,iBAAiB,EAAE,KAAK,CAAC,CAAC;QACjD,CAAC;KAAA;IAEK,8BAA8B,CAChC,KAAgB;;YAEhB,MAAM,CACF,mCAAmC,EACnC,wCAAwC,EAC3C,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;gBAClB,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,SAAS,CAAC,6BAA6B,CAAC,CAAC;gBAChE,IAAI,CAAC,SAAS,CAAC,OAAO,CAClB,SAAS,CAAC,kCAAkC,CAAC,CAChD;aACJ,CAAC,CAAC;YAEH,MAAM,mBAAmB,GAErB,wCAAwC,CAAC,MAAM,CAC/C,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,CAAC,iCAAM,GAAG,KAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,GAAG,IAAG,EACzC,EAAE,CACL,CAAC;YAEF,MAAM,mBAAmB,GAAG,mCAAmC;iBAC1D,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE;gBACZ,IAAI,CAAC,MAAM,CAAC,SAAS;oBAAE,OAAO,IAAI,CAAC;gBAEnC,MAAM,SAAS,GAAG,MAAM,CAAC,SAAS;qBAC7B,GAAG,CAAC,CAAC,UAAU,EAAE,EAAE;oBAChB,MAAM,QAAQ,GAAG,mBAAmB,CAAC,UAAU,CAAC,CAAC;oBAEjD,IAAI,CAAC,QAAQ;wBAAE,OAAO,IAAI,CAAC;oBAE3B,uCACO,QAAQ,KACX,QAAQ,EAAE,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAClD;gBACN,CAAC,CAAC;qBACD,MAAM,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,KAAK,IAAI,CAAC,CAAC;gBAE7C,uCACO,MAAM,KACT,SAAS,IACX;YACN,CAAC,CAAC;iBACD,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,KAAK,IAAI,CAAC,CAAC;YAEzC,OAAO,WAAW,CAAC,mBAAmB,EAAE,KAAK,CAAC,CAAC;QACnD,CAAC;KAAA;IAEK,aAAa,CAAC,KAAgB;;YAChC,MAAM,CAAC,qBAAqB,EAAE,0BAA0B,CAAC,GACrD,MAAM,OAAO,CAAC,GAAG,CAAC;gBACd,IAAI,CAAC,SAAS,CAAC,OAAO,CAClB,SAAS,CAAC,gBAAgB,EAAE;oBACxB,MAAM,EAAE;wBACJ,QAAQ,EAAE;4BACN,IAAI,EAAE,IAAI,CAAC,WAAW,CAAC,uBAAuB;yBACjD;qBACJ;iBACJ,CAAC,CACL;gBACD,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,SAAS,CAAC,oBAAoB,CAAC,CAAC;aAC1D,CAAC,CAAC;YAEP,MAAM,oBAAoB,GAEtB,0BAA0B,CAAC,MAAM,CACjC,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,CAAC,iCAAM,GAAG,KAAE,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,GAAG,IAAG,EAC3C,EAAE,CACL,CAAC;YAEF,MAAM,0CAA0C,GAC5C,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO,CACrB,wCAAwC,EACxC,EAAE,WAAW,EAAE,IAAI,CAAC,WAAW,CAAC,uBAAuB,EAAE,CAC5D,CAAC;YACN,MAAM,IAAI,GAAoB,EAAE,CAAC;YACjC,KAAK,MAAM,IAAI,IAAI,qBAAqB,EAAE,CAAC;gBACvC,qDAAqD;gBACrD,6EAA6E;gBAC7E,yEAAyE;gBACzE,MAAM,mBAAmB,GACrB,0CAA0C,CAAC,YAAY,CAAC,IAAI,CACxD,CAAC,IAAI,EAAE,EAAE,CACL,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,EAAE,CAAC;oBAC/B,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,CAClC,CAAC;gBAEN,IAAI,mBAAmB,KAAK,SAAS,EAAE,CAAC;oBACpC,SAAS;gBACb,CAAC;gBAED,MAAM,sBAAsB,GAAG,UAAU,CACrC,mBAAmB,CAAC,WAAW,CAAC,0BAA0B,CAC7D,CAAC;gBAEF,IAAI,+BAA+B,GAAG,GAAG,CAAC;gBAE1C,mBAAmB,CAAC,WAAW,CAAC,4BAA4B,CAAC,OAAO,CAChE,CAAC,MAAM,EAAE,EAAE;oBACP,+BAA+B,IAAI,UAAU,CAAC,MAAM,CAAC,CAAC;gBAC1D,CAAC,CACJ,CAAC;gBAEF,MAAM,+BAA+B,GACjC,IAAI,CAAC,+BAA+B,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;;oBAC9C,IAAI,eAAe,GAAG,CAAC,CAAC;oBAExB,IAAI,IAAI,CAAC,GAAG,KAAK,uBAAuB,EAAE,CAAC;wBACvC,eAAe;4BACX,UAAU,CACN,mBAAmB,CAAC,qBAAqB,CAC5C;gCACD,UAAU,CACN,mBAAmB,CAAC,wBAAwB,CAC/C,CAAC;oBACV,CAAC;oBAED,IAAI,IAAI,CAAC,GAAG,KAAK,mBAAmB,EAAE,CAAC;wBACnC,eAAe,GAAG,UAAU,CACxB,mBAAmB,CAAC,qBAAqB,CAC5C,CAAC;oBACN,CAAC;oBAED,IAAI,IAAI,CAAC,GAAG,KAAK,8BAA8B,EAAE,CAAC;wBAC9C,eAAe,GAAG,UAAU,CACxB,mBAAmB,CAAC,wBAAwB,CAC/C,CAAC;oBACN,CAAC;oBAED,MAAM,aAAa,GACf,oBAAoB,CAAC,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;oBAEjD,IAAI,CAAC,aAAa;wBAAE,OAAO,IAAI,CAAC;oBAEhC,uBACI,KAAK,EAAE,MAAA,IAAI,CAAC,KAAK,mCAAI,eAAe,IACjC,aAAa,EAClB;gBACN,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC;gBAEvC,MAAM,4BAA4B,GAC9B,IAAI,CAAC,4BAA4B,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;;oBAC3C,IAAI,eAAe,GAAG,CAAC,CAAC;oBAExB,IAAI,IAAI,CAAC,GAAG,KAAK,8BAA8B,EAAE,CAAC;wBAC9C,eAAe;4BACX,sBAAsB;gCACtB,+BAA+B,CAAC;oBACxC,CAAC;oBAED,IAAI,IAAI,CAAC,GAAG,KAAK,wBAAwB,EAAE,CAAC;wBACxC,eAAe,GAAG,sBAAsB,CAAC;oBAC7C,CAAC;oBAED,IAAI,IAAI,CAAC,GAAG,KAAK,kCAAkC,EAAE,CAAC;wBAClD,eAAe,GAAG,+BAA+B,CAAC;oBACtD,CAAC;oBAED,MAAM,aAAa,GACf,oBAAoB,CAAC,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;oBAEjD,IAAI,CAAC,aAAa;wBAAE,OAAO,IAAI,CAAC;oBAEhC,uBACI,KAAK,EAAE,MAAA,IAAI,CAAC,KAAK,mCAAI,eAAe,IACjC,aAAa,EAClB;gBACN,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC;gBAEvC,MAAM,aAAa,GAAkB;oBACjC,EAAE,EAAE,IAAI,CAAC,EAAE;oBACX,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE;oBACrC,wBAAwB,EAAE,IAAI,CAAC,wBAAwB;oBACvD,iBAAiB,EAAE,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,cAAc,CAAC;oBAC3D,wBAAwB,EAAE,IAAI,CAAC,wBAAwB,CAAC,GAAG,CACvD,CAAC,IAAI,EAAE,EAAE;wBACL,MAAM,aAAa,GACf,oBAAoB,CAAC,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;wBAEjD,IAAI,CAAC,aAAa;4BAAE,OAAO,IAAI,CAAC;wBAEhC,uBACI,KAAK,EAAE,IAAI,CAAC,KAAK,IACd,aAAa,EAClB;oBACN,CAAC,CACJ,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,KAAK,IAAI,CAAC;oBACjC,0BAA0B,EAAE,IAAI,CAAC,0BAA0B,CAAC,GAAG,CAC3D,CAAC,IAAI,EAAE,EAAE;wBACL,MAAM,aAAa,GACf,oBAAoB,CAAC,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;wBAEjD,IAAI,CAAC,aAAa;4BAAE,OAAO,IAAI,CAAC;wBAEhC,uBACI,KAAK,EAAE,IAAI,CAAC,KAAK,IACd,aAAa,EAClB;oBACN,CAAC,CACJ,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,KAAK,IAAI,CAAC;oBACjC,+BAA+B;oBAC/B,4BAA4B;iBAC/B,CAAC;gBAEF,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;YAC7B,CAAC;YACD,OAAO,WAAW,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QACpC,CAAC;KAAA;IAEK,gBAAgB,CAClB,aAA6B;;YAE7B,MAAM,eAAe,GACjB,MAAM,IAAI,CAAC,iBAAiB,EAAE,CAAC;YACnC,MAAM,IAAI,GAAkB;gBACxB,gBAAgB,EAAE,CAAC;gBACnB,oBAAoB,EAAE,CAAC;gBACvB,wBAAwB,EAAE,CAAC;gBAC3B,aAAa,EAAE,CAAC;gBAChB,gBAAgB,EAAE,CAAC;aACtB,CAAC;YACF,KAAK,MAAM,YAAY,IAAI,aAAa,EAAE,CAAC;gBACvC,IAAI,CAAC,gBAAgB,IAAI,UAAU,CAC/B,YAAY,CAAC,gBAAgB,CAAC,KAAK,CACtC,CAAC;gBACF,IAAI,CAAC,oBAAoB,IAAI,UAAU,CACnC,YAAY,CAAC,oBAAoB,CACpC,CAAC;gBACF,IAAI,CAAC,wBAAwB,IAAI,UAAU,CACvC,YAAY,CAAC,mBAAmB,CACnC,CAAC;gBACF,IAAI,CAAC,gBAAgB,IAAI,UAAU,CAAC,YAAY,CAAC,WAAW,CAAC,CAAC;YAClE,CAAC;YACD,KAAK,MAAM,YAAY,IAAI,aAAa,EAAE,CAAC;gBACvC,uEAAuE;gBACvE,MAAM,cAAc,GAAG,IAAI,CAAC,iBAAiB,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC;gBAC/D,MAAM,cAAc,GAAG,eAAe,CAAC,IAAI,CACvC,CAAC,EAAE,EAAE,EAAE,CACH,EAAE,CAAC,QAAQ,CAAC,WAAW,EAAE,KAAK,cAAc,CAAC,WAAW,EAAE,CACjE,CAAC;gBACF,IAAI,CAAC,cAAc,EAAE,CAAC;oBAClB,OAAO,CAAC,IAAI,CACR,wCAAwC,EACxC,YAAY,CAAC,EAAE,EACf,cAAc,KAAK,YAAY,CAAC,EAAE;wBAC9B,CAAC,CAAC,cAAc,cAAc,GAAG;wBACjC,CAAC,CAAC,EAAE,CACX,CAAC;oBACF,SAAS;gBACb,CAAC;gBACD,MAAM,MAAM,GACR,IAAI,CAAC,wBAAwB,KAAK,CAAC;oBAC/B,CAAC,CAAC,CAAC;oBACH,CAAC,CAAC,UAAU,CAAC,YAAY,CAAC,mBAAmB,CAAC;wBAC5C,IAAI,CAAC,wBAAwB,CAAC;gBACxC,IAAI,CAAC,aAAa;oBACd,cAAc,CAAC,eAAe,CAAC,YAAY,GAAG,MAAM,CAAC;YAC7D,CAAC;YACD,OAAO,IAAI,CAAC;QAChB,CAAC;KAAA;IAED,oBAAoB,CAChB,MAAc,EACd,iBAAyB,EACzB,YAAoB,EACpB,WAAmB;QAEnB,MAAM,kBAAkB,GAAG,CAAC,CAAC;QAC7B,MAAM,YAAY,GAAa,EAAE,CAAC;QAElC,MAAM,yBAAyB,GAAG,iBAAiB,GAAG,CAAC,CAAC,GAAG,WAAW,CAAC,CAAC;QAExE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,YAAY,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;YACxC,MAAM,gBAAgB,GAAG,CAAC,GAAG,kBAAkB,CAAC;YAEhD,MAAM,cAAc,GAChB,MAAM;gBACN,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,yBAAyB,EAAE,gBAAgB,CAAC,GAAG,CAAC,CAAC,CAAC;YAEpE,YAAY,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QACtC,CAAC;QAED,OAAO,YAAY,CAAC;IACxB,CAAC;IAED,8BAA8B,CAC1B,aAAuB,EACvB,MAAc,EACd,kBAA0B;QAE1B,MAAM,kBAAkB,GAAG,CAAC,CAAC;QAC7B,MAAM,aAAa,GAAG,kBAAkB,GAAG,kBAAkB,CAAC;QAE9D,MAAM,mBAAmB,GAAa,CAAC,CAAC,CAAC,CAAC;QAE1C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,aAAa,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YAC5C,MAAM,aAAa,GAAG,CAAC,MAAM,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC,GAAG,aAAa,CAAC;YAClE,mBAAmB,CAAC,IAAI,CACpB,mBAAmB,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,aAAa,CAC7C,CAAC;QACN,CAAC;QAED,OAAO,mBAAmB,CAAC;IAC/B,CAAC;CACJ"}
@@ -1 +1,2 @@
1
1
  export {};
2
+ //# sourceMappingURL=directus-types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"directus-types.js","sourceRoot":"","sources":["../../../src/services/DataService/directus-types.ts"],"names":[],"mappings":""}
@@ -1,4 +1,3 @@
1
- export declare const getPlumeTvl: string;
2
1
  export declare const getPoolOverviewQuery: (ids?: string[]) => string;
3
2
  export declare const getAllLendingPoolsQuery: string;
4
3
  export declare const getAllTranchesQuery: string;
@@ -1,12 +1,4 @@
1
1
  import { gql } from 'graphql-request';
2
- export const getPlumeTvl = gql `
3
- {
4
- lendingPools {
5
- id
6
- balance
7
- }
8
- }
9
- `;
10
2
  export const getPoolOverviewQuery = (ids) => gql `
11
3
  query getAllPoolOverview($epochId: String!, $unusedPools: [String]!) {
12
4
  lendingPools(
@@ -156,3 +148,4 @@ export const getLendingPoolWithdrawalAndDepositsQuery = gql `
156
148
  }
157
149
  }
158
150
  `;
151
+ //# sourceMappingURL=queries.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"queries.js","sourceRoot":"","sources":["../../../src/services/DataService/queries.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,iBAAiB,CAAC;AAEtC,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,GAAc,EAAU,EAAE,CAAC,GAAG,CAAA;;;;;kBAKjD,CAAA,GAAG,aAAH,GAAG,uBAAH,GAAG,CAAE,MAAM,EAAC,CAAC,CAAC,aAAa,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAyDxF,CAAC;AAEF,MAAM,CAAC,MAAM,uBAAuB,GAAG,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;CAwBzC,CAAC;AAEF,MAAM,CAAC,MAAM,mBAAmB,GAAG,GAAG,CAAA;;;;;;;;;;;;CAYrC,CAAC;AAEF,MAAM,CAAC,MAAM,gCAAgC,GAAG,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;CAwBlD,CAAC;AAEF,MAAM,CAAC,MAAM,gBAAgB,GAAG,GAAG,CAAA;;;;;;;;CAQlC,CAAC;AAEF,MAAM,CAAC,MAAM,wCAAwC,GAAG,GAAG,CAAA;;;;;;;;;;;;;CAa1D,CAAC"}
@@ -15,12 +15,6 @@ export interface LendingPoolSubgraph {
15
15
  tranches: TrancheSubgraph[];
16
16
  configuration: LendingPoolConfigurationSubgraph;
17
17
  }
18
- export interface PlumeSubgraphReturn {
19
- lendingPools: {
20
- id: string;
21
- balance: string;
22
- }[];
23
- }
24
18
  export interface LendingPoolSubgraphReturn {
25
19
  lendingPools: LendingPoolSubgraph[];
26
20
  }
@@ -1 +1,2 @@
1
1
  export {};
2
+ //# sourceMappingURL=subgraph-types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"subgraph-types.js","sourceRoot":"","sources":["../../../src/services/DataService/subgraph-types.ts"],"names":[],"mappings":""}
@@ -15,7 +15,6 @@ export interface PoolOverview {
15
15
  totalValueLocked: {
16
16
  total: string;
17
17
  offchain: string;
18
- plume: string;
19
18
  };
20
19
  loansUnderManagement: string;
21
20
  yieldEarned: string;
@@ -1 +1,2 @@
1
1
  export {};
2
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/services/DataService/types.ts"],"names":[],"mappings":""}
@@ -12,11 +12,13 @@ export declare class KSULocking {
12
12
  private readonly _systemVariablesAbi;
13
13
  private readonly _ksuPriceAbi;
14
14
  private readonly _userLoyaltyRewardsAbi;
15
+ private readonly _isLiteDeployment;
15
16
  private readonly apyBonuses;
17
+ constructor(_kasuConfig: SdkConfig, signerOrProvider: Signer | Provider);
16
18
  /**
17
- *
19
+ * Check if this is a Lite deployment (no KSU token functionality)
18
20
  */
19
- constructor(_kasuConfig: SdkConfig, signerOrProvider: Signer | Provider);
21
+ get isLiteDeployment(): boolean;
20
22
  lockKSUTokens(amount: BigNumber, lockPeriod: BigNumber): Promise<ContractTransaction>;
21
23
  lockKSUWithPermit(amount: number, lockPeriod: number, permit: RSVDeadlineValue): Promise<ContractTransaction>;
22
24
  unlockKSU(amount: BigNumber, userLockId: BigNumber): Promise<ContractTransaction>;
@@ -14,14 +14,18 @@ import { IERC20MetadataAbi__factory, IKSULockingAbi__factory, IKsuPriceAbi__fact
14
14
  import { getAllTrancheConfigurationsQuery, getAllTranchesQuery, } from '../DataService/queries';
15
15
  import { claimedFeesQuery, getSystemVariablesQuery, getTotalUserLoyaltsRewardsQuery, lockingPeriodsQuery, lockingSummariesQuery, userEarnedrKsuQuery, userLocksQuery, userStakedKsuQuery, userTotalBonusAmountQuery, } from './queries';
16
16
  export class KSULocking {
17
- /**
18
- *
19
- */
20
17
  constructor(_kasuConfig, signerOrProvider) {
21
18
  this._kasuConfig = _kasuConfig;
22
19
  this.apyBonuses = [0, 0.001, 0.002];
20
+ this._isLiteDeployment = _kasuConfig.isLiteDeployment;
23
21
  this._contractAbi = IKSULockingAbi__factory.connect(_kasuConfig.contracts.IKSULocking, signerOrProvider);
24
- this._kasuToken = IERC20MetadataAbi__factory.connect(_kasuConfig.contracts.KSUToken, signerOrProvider);
22
+ // Only initialize KSU token contract if not a Lite deployment and address is provided
23
+ if (!this._isLiteDeployment && _kasuConfig.contracts.KSUToken) {
24
+ this._kasuToken = IERC20MetadataAbi__factory.connect(_kasuConfig.contracts.KSUToken, signerOrProvider);
25
+ }
26
+ else {
27
+ this._kasuToken = null;
28
+ }
25
29
  this._userManagerAbi = IUserManagerAbi__factory.connect(_kasuConfig.contracts.UserManager, signerOrProvider);
26
30
  this._systemVariablesAbi = ISystemVariablesAbi__factory.connect(_kasuConfig.contracts.SystemVariables, signerOrProvider);
27
31
  this._ksuPriceAbi = IKsuPriceAbi__factory.connect(_kasuConfig.contracts.KsuPrice, signerOrProvider);
@@ -29,13 +33,25 @@ export class KSULocking {
29
33
  this._graph = new GraphQLClient(_kasuConfig.subgraphUrl);
30
34
  this._userLoyaltyRewardsAbi = IUserLoyaltyRewardsAbi__factory.connect(_kasuConfig.contracts.UserLoyaltyRewards, signerOrProvider);
31
35
  }
36
+ /**
37
+ * Check if this is a Lite deployment (no KSU token functionality)
38
+ */
39
+ get isLiteDeployment() {
40
+ return this._isLiteDeployment;
41
+ }
32
42
  lockKSUTokens(amount, lockPeriod) {
33
43
  return __awaiter(this, void 0, void 0, function* () {
44
+ if (this._isLiteDeployment) {
45
+ throw new Error('Locking is not available on Lite deployments');
46
+ }
34
47
  return this._contractAbi.lock(amount, lockPeriod);
35
48
  });
36
49
  }
37
50
  lockKSUWithPermit(amount, lockPeriod, permit) {
38
51
  return __awaiter(this, void 0, void 0, function* () {
52
+ if (this._isLiteDeployment) {
53
+ throw new Error('Locking is not available on Lite deployments');
54
+ }
39
55
  const amountBN = BigNumber.from(amount);
40
56
  const lockPeriodBN = BigNumber.from(lockPeriod);
41
57
  const ksuPermit = {
@@ -50,16 +66,29 @@ export class KSULocking {
50
66
  }
51
67
  unlockKSU(amount, userLockId) {
52
68
  return __awaiter(this, void 0, void 0, function* () {
69
+ if (this._isLiteDeployment) {
70
+ throw new Error('Locking is not available on Lite deployments');
71
+ }
53
72
  return this._contractAbi.unlock(amount, userLockId);
54
73
  });
55
74
  }
56
75
  claimFees() {
57
76
  return __awaiter(this, void 0, void 0, function* () {
77
+ if (this._isLiteDeployment) {
78
+ throw new Error('Fee claiming is not available on Lite deployments');
79
+ }
58
80
  return yield this._contractAbi.claimFees();
59
81
  });
60
82
  }
61
83
  lockDetails(lockPeriod) {
62
84
  return __awaiter(this, void 0, void 0, function* () {
85
+ if (this._isLiteDeployment) {
86
+ return {
87
+ rKsuMultiplier: 0,
88
+ ksuBonusMultiplier: 0,
89
+ isActive: false,
90
+ };
91
+ }
63
92
  const result = yield this._contractAbi.lockDetails(lockPeriod);
64
93
  return {
65
94
  rKsuMultiplier: result[0].toNumber(),
@@ -70,12 +99,15 @@ export class KSULocking {
70
99
  }
71
100
  userTotalDeposits(userAddress) {
72
101
  return __awaiter(this, void 0, void 0, function* () {
102
+ if (this._isLiteDeployment) {
103
+ return BigNumber.from(0);
104
+ }
73
105
  return yield this._contractAbi.userTotalDeposits(userAddress);
74
106
  });
75
107
  }
76
108
  calculateUserLockProjectedProtocolFeeRewards(epochId, KSULocked, lockPeriod) {
77
109
  return __awaiter(this, void 0, void 0, function* () {
78
- if (KSULocked === 0) {
110
+ if (this._isLiteDeployment || KSULocked === 0) {
79
111
  return 0;
80
112
  }
81
113
  const lockingSummarySubgraph = yield this._graph.request(lockingSummariesQuery);
@@ -121,6 +153,9 @@ export class KSULocking {
121
153
  }
122
154
  getUserLocks(userAddress) {
123
155
  return __awaiter(this, void 0, void 0, function* () {
156
+ if (this._isLiteDeployment) {
157
+ return [];
158
+ }
124
159
  const result = yield this._graph.request(userLocksQuery, {
125
160
  userAddress: userAddress.toLowerCase(),
126
161
  });
@@ -146,8 +181,14 @@ export class KSULocking {
146
181
  }
147
182
  getUserBonusData(userAddress) {
148
183
  return __awaiter(this, void 0, void 0, function* () {
149
- // TODO this userLocks query is kinda bad -> change to userLocksDepositInfo as u never need user locks by themselves
150
- // whole function takes between 500 - 800ms
184
+ if (this._isLiteDeployment) {
185
+ return {
186
+ ksuBonusAndRewards: '0',
187
+ ksuBonusAndRewardsLifetime: '0',
188
+ protocolFeesEarned: '0',
189
+ totalLockedAmount: '0',
190
+ };
191
+ }
151
192
  const DECIMALS = 18;
152
193
  // Normalized user address
153
194
  const normalizedAddress = userAddress.toLowerCase();
@@ -180,6 +221,10 @@ export class KSULocking {
180
221
  });
181
222
  }
182
223
  getLoyaltyLevelAndApyBonusFromRatio(rKSUtoUSDCRatio) {
224
+ // On Lite deployments, always return level 0 with no bonus
225
+ if (this._isLiteDeployment) {
226
+ return { loyaltyLevel: 0, apyBonus: 0 };
227
+ }
183
228
  if (rKSUtoUSDCRatio < 0.01) {
184
229
  return { loyaltyLevel: 0, apyBonus: this.apyBonuses[0] };
185
230
  }
@@ -190,6 +235,9 @@ export class KSULocking {
190
235
  }
191
236
  getRKSUvsUSDCRatio(rKSUAmount, userAddress) {
192
237
  return __awaiter(this, void 0, void 0, function* () {
238
+ if (this._isLiteDeployment) {
239
+ return 0;
240
+ }
193
241
  const [depositedAmount, pendingAmount] = yield this._userManagerAbi.userTotalPendingAndActiveDepositedAmountForCurrentEpoch(userAddress);
194
242
  const ksuPrice = yield this._systemVariablesAbi.ksuEpochTokenPrice();
195
243
  const rKSUAmountBignumber = ethers.utils.parseUnits(rKSUAmount, 18);
@@ -203,6 +251,9 @@ export class KSULocking {
203
251
  }
204
252
  getClaimableRewards(userAddress) {
205
253
  return __awaiter(this, void 0, void 0, function* () {
254
+ if (this._isLiteDeployment) {
255
+ return BigNumber.from(0);
256
+ }
206
257
  const result = yield this._contractAbi.rewards(userAddress);
207
258
  return result;
208
259
  });
@@ -210,6 +261,7 @@ export class KSULocking {
210
261
  getKasuTokenPrice() {
211
262
  return __awaiter(this, void 0, void 0, function* () {
212
263
  const decimals = 18;
264
+ // Price can still be queried on Lite deployments (set to 0 or configured value)
213
265
  return Promise.resolve({
214
266
  price: yield this._ksuPriceAbi.ksuTokenPrice(),
215
267
  decimals,
@@ -228,6 +280,9 @@ export class KSULocking {
228
280
  getLifetimeRewards(userAddress, rewardDecimals, claimableRewards) {
229
281
  return __awaiter(this, void 0, void 0, function* () {
230
282
  var _a, _b;
283
+ if (this._isLiteDeployment) {
284
+ return BigNumber.from(0);
285
+ }
231
286
  const result = yield this._graph.request(claimedFeesQuery, {
232
287
  userAddress: userAddress.toLowerCase(),
233
288
  });
@@ -239,6 +294,9 @@ export class KSULocking {
239
294
  });
240
295
  }
241
296
  getLaunchBonusAmount(lockAmount, bonusMultiplier, bonusTokensLeft) {
297
+ if (this._isLiteDeployment) {
298
+ return BigNumber.from(0);
299
+ }
242
300
  const bonusMultiplierBN = ethers.utils.parseUnits(bonusMultiplier.toFixed(2), 2);
243
301
  const projectedBonus = lockAmount.mul(bonusMultiplierBN).div(100);
244
302
  if (bonusTokensLeft.gt(projectedBonus)) {
@@ -250,6 +308,9 @@ export class KSULocking {
250
308
  }
251
309
  getUserStakedKsu(userAddress) {
252
310
  return __awaiter(this, void 0, void 0, function* () {
311
+ if (this._isLiteDeployment) {
312
+ return '0';
313
+ }
253
314
  const result = yield this._graph.request(userStakedKsuQuery, {
254
315
  userAddress: userAddress.toLowerCase(),
255
316
  });
@@ -261,6 +322,9 @@ export class KSULocking {
261
322
  }
262
323
  getUserEarnedrKsu(userAddress) {
263
324
  return __awaiter(this, void 0, void 0, function* () {
325
+ if (this._isLiteDeployment) {
326
+ return '0';
327
+ }
264
328
  const result = yield this._graph.request(userEarnedrKsuQuery, {
265
329
  userAddress: userAddress.toLowerCase(),
266
330
  });
@@ -272,6 +336,9 @@ export class KSULocking {
272
336
  }
273
337
  getUserTotalBonusAmount(userAddress) {
274
338
  return __awaiter(this, void 0, void 0, function* () {
339
+ if (this._isLiteDeployment) {
340
+ return '0';
341
+ }
275
342
  const result = yield this._graph.request(userTotalBonusAmountQuery, {
276
343
  userAddress: userAddress.toLowerCase(),
277
344
  });
@@ -283,6 +350,12 @@ export class KSULocking {
283
350
  }
284
351
  getLockingRewards(userAddress) {
285
352
  return __awaiter(this, void 0, void 0, function* () {
353
+ if (this._isLiteDeployment) {
354
+ return {
355
+ claimableRewards: '0',
356
+ lifeTimeRewards: '0',
357
+ };
358
+ }
286
359
  const rewardDecimals = 6;
287
360
  const claimableRewards = yield this.getClaimableRewards(userAddress);
288
361
  const lifeTimeRewards = yield this.getLifetimeRewards(userAddress, rewardDecimals, claimableRewards);
@@ -299,12 +372,18 @@ export class KSULocking {
299
372
  }
300
373
  getAvailableKsuBonus() {
301
374
  return __awaiter(this, void 0, void 0, function* () {
375
+ if (this._isLiteDeployment || !this._kasuToken) {
376
+ return '0';
377
+ }
302
378
  const amount = yield this._kasuToken.balanceOf(this._kasuBonusAddress);
303
379
  return formatEther(amount);
304
380
  });
305
381
  }
306
382
  getUserKsuBalance(userAddress) {
307
383
  return __awaiter(this, void 0, void 0, function* () {
384
+ if (this._isLiteDeployment || !this._kasuToken) {
385
+ return '0';
386
+ }
308
387
  const balance = yield this._kasuToken.balanceOf(userAddress.toLowerCase());
309
388
  return formatEther(balance);
310
389
  });
@@ -331,6 +410,9 @@ export class KSULocking {
331
410
  }
332
411
  getActiveLockPeriods() {
333
412
  return __awaiter(this, void 0, void 0, function* () {
413
+ if (this._isLiteDeployment) {
414
+ return [];
415
+ }
334
416
  const data = yield this._graph.request(lockingPeriodsQuery);
335
417
  return data.lockPeriods;
336
418
  });
@@ -342,3 +424,4 @@ export class KSULocking {
342
424
  return '20.00';
343
425
  }
344
426
  }
427
+ //# sourceMappingURL=locking.js.map