@kasufinance/kasu-sdk 1.0.2 → 1.0.4

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 (167) hide show
  1. package/dist/bundle.cjs.js +133 -32
  2. package/dist/bundle.esm.js +133 -32
  3. package/dist/contracts/IClearingCoordinatorAbi.js +1 -0
  4. package/dist/contracts/IClearingCoordinatorAbi.js.map +1 -0
  5. package/dist/contracts/IERC20MetadataAbi.js +1 -0
  6. package/dist/contracts/IERC20MetadataAbi.js.map +1 -0
  7. package/dist/contracts/IFeeManagerAbi.js +1 -0
  8. package/dist/contracts/IFeeManagerAbi.js.map +1 -0
  9. package/dist/contracts/IKSULockingAbi.js +1 -0
  10. package/dist/contracts/IKSULockingAbi.js.map +1 -0
  11. package/dist/contracts/IKasuAllowListAbi.js +1 -0
  12. package/dist/contracts/IKasuAllowListAbi.js.map +1 -0
  13. package/dist/contracts/IKasuControllerAbi.js +1 -0
  14. package/dist/contracts/IKasuControllerAbi.js.map +1 -0
  15. package/dist/contracts/IKasuNFTsAbi.js +1 -0
  16. package/dist/contracts/IKasuNFTsAbi.js.map +1 -0
  17. package/dist/contracts/IKsuPriceAbi.js +1 -0
  18. package/dist/contracts/IKsuPriceAbi.js.map +1 -0
  19. package/dist/contracts/ILendingPoolAbi.js +1 -0
  20. package/dist/contracts/ILendingPoolAbi.js.map +1 -0
  21. package/dist/contracts/ILendingPoolFactoryAbi.js +1 -0
  22. package/dist/contracts/ILendingPoolFactoryAbi.js.map +1 -0
  23. package/dist/contracts/ILendingPoolManagerAbi.js +1 -0
  24. package/dist/contracts/ILendingPoolManagerAbi.js.map +1 -0
  25. package/dist/contracts/ILendingPoolTrancheAbi.js +1 -0
  26. package/dist/contracts/ILendingPoolTrancheAbi.js.map +1 -0
  27. package/dist/contracts/ISystemVariablesAbi.js +1 -0
  28. package/dist/contracts/ISystemVariablesAbi.js.map +1 -0
  29. package/dist/contracts/IUserLoyaltyRewardsAbi.js +1 -0
  30. package/dist/contracts/IUserLoyaltyRewardsAbi.js.map +1 -0
  31. package/dist/contracts/IUserManagerAbi.js +1 -0
  32. package/dist/contracts/IUserManagerAbi.js.map +1 -0
  33. package/dist/contracts/KSULockBonusAbi.js +1 -0
  34. package/dist/contracts/KSULockBonusAbi.js.map +1 -0
  35. package/dist/contracts/KasuPoolExternalTVLAbi.js +1 -0
  36. package/dist/contracts/KasuPoolExternalTVLAbi.js.map +1 -0
  37. package/dist/contracts/SwapperAbi.js +1 -0
  38. package/dist/contracts/SwapperAbi.js.map +1 -0
  39. package/dist/contracts/common.js +1 -0
  40. package/dist/contracts/common.js.map +1 -0
  41. package/dist/contracts/factories/IClearingCoordinatorAbi__factory.js +1 -0
  42. package/dist/contracts/factories/IClearingCoordinatorAbi__factory.js.map +1 -0
  43. package/dist/contracts/factories/IERC20MetadataAbi__factory.js +1 -0
  44. package/dist/contracts/factories/IERC20MetadataAbi__factory.js.map +1 -0
  45. package/dist/contracts/factories/IFeeManagerAbi__factory.js +1 -0
  46. package/dist/contracts/factories/IFeeManagerAbi__factory.js.map +1 -0
  47. package/dist/contracts/factories/IKSULockingAbi__factory.js +1 -0
  48. package/dist/contracts/factories/IKSULockingAbi__factory.js.map +1 -0
  49. package/dist/contracts/factories/IKasuAllowListAbi__factory.js +1 -0
  50. package/dist/contracts/factories/IKasuAllowListAbi__factory.js.map +1 -0
  51. package/dist/contracts/factories/IKasuControllerAbi__factory.js +1 -0
  52. package/dist/contracts/factories/IKasuControllerAbi__factory.js.map +1 -0
  53. package/dist/contracts/factories/IKasuNFTsAbi__factory.js +1 -0
  54. package/dist/contracts/factories/IKasuNFTsAbi__factory.js.map +1 -0
  55. package/dist/contracts/factories/IKsuPriceAbi__factory.js +1 -0
  56. package/dist/contracts/factories/IKsuPriceAbi__factory.js.map +1 -0
  57. package/dist/contracts/factories/ILendingPoolAbi__factory.js +1 -0
  58. package/dist/contracts/factories/ILendingPoolAbi__factory.js.map +1 -0
  59. package/dist/contracts/factories/ILendingPoolFactoryAbi__factory.js +1 -0
  60. package/dist/contracts/factories/ILendingPoolFactoryAbi__factory.js.map +1 -0
  61. package/dist/contracts/factories/ILendingPoolManagerAbi__factory.js +1 -0
  62. package/dist/contracts/factories/ILendingPoolManagerAbi__factory.js.map +1 -0
  63. package/dist/contracts/factories/ILendingPoolTrancheAbi__factory.js +1 -0
  64. package/dist/contracts/factories/ILendingPoolTrancheAbi__factory.js.map +1 -0
  65. package/dist/contracts/factories/ISystemVariablesAbi__factory.js +1 -0
  66. package/dist/contracts/factories/ISystemVariablesAbi__factory.js.map +1 -0
  67. package/dist/contracts/factories/IUserLoyaltyRewardsAbi__factory.js +1 -0
  68. package/dist/contracts/factories/IUserLoyaltyRewardsAbi__factory.js.map +1 -0
  69. package/dist/contracts/factories/IUserManagerAbi__factory.js +1 -0
  70. package/dist/contracts/factories/IUserManagerAbi__factory.js.map +1 -0
  71. package/dist/contracts/factories/KSULockBonusAbi__factory.js +1 -0
  72. package/dist/contracts/factories/KSULockBonusAbi__factory.js.map +1 -0
  73. package/dist/contracts/factories/KasuPoolExternalTVLAbi__factory.js +1 -0
  74. package/dist/contracts/factories/KasuPoolExternalTVLAbi__factory.js.map +1 -0
  75. package/dist/contracts/factories/SwapperAbi__factory.js +1 -0
  76. package/dist/contracts/factories/SwapperAbi__factory.js.map +1 -0
  77. package/dist/contracts/factories/index.js +1 -0
  78. package/dist/contracts/factories/index.js.map +1 -0
  79. package/dist/contracts/index.js +1 -0
  80. package/dist/contracts/index.js.map +1 -0
  81. package/dist/index.js +1 -0
  82. package/dist/index.js.map +1 -0
  83. package/dist/sdk-config.js +1 -0
  84. package/dist/sdk-config.js.map +1 -0
  85. package/dist/services/DataService/data-service.js +1 -0
  86. package/dist/services/DataService/data-service.js.map +1 -0
  87. package/dist/services/DataService/directus-types.js +1 -0
  88. package/dist/services/DataService/directus-types.js.map +1 -0
  89. package/dist/services/DataService/queries.js +1 -0
  90. package/dist/services/DataService/queries.js.map +1 -0
  91. package/dist/services/DataService/subgraph-types.js +1 -0
  92. package/dist/services/DataService/subgraph-types.js.map +1 -0
  93. package/dist/services/DataService/types.js +1 -0
  94. package/dist/services/DataService/types.js.map +1 -0
  95. package/dist/services/Locking/locking.js +1 -0
  96. package/dist/services/Locking/locking.js.map +1 -0
  97. package/dist/services/Locking/queries.js +1 -0
  98. package/dist/services/Locking/queries.js.map +1 -0
  99. package/dist/services/Locking/types.js +1 -0
  100. package/dist/services/Locking/types.js.map +1 -0
  101. package/dist/services/Portfolio/portfolio.d.ts +40 -2
  102. package/dist/services/Portfolio/portfolio.js +137 -33
  103. package/dist/services/Portfolio/portfolio.js.map +1 -0
  104. package/dist/services/Portfolio/queries.js +1 -0
  105. package/dist/services/Portfolio/queries.js.map +1 -0
  106. package/dist/services/Portfolio/types.js +1 -0
  107. package/dist/services/Portfolio/types.js.map +1 -0
  108. package/dist/services/Swapper/swapper.js +1 -0
  109. package/dist/services/Swapper/swapper.js.map +1 -0
  110. package/dist/services/Swapper/types.js +1 -0
  111. package/dist/services/Swapper/types.js.map +1 -0
  112. package/dist/services/UserLending/helper.js +1 -0
  113. package/dist/services/UserLending/helper.js.map +1 -0
  114. package/dist/services/UserLending/queries.js +1 -0
  115. package/dist/services/UserLending/queries.js.map +1 -0
  116. package/dist/services/UserLending/subgraph-types.js +1 -0
  117. package/dist/services/UserLending/subgraph-types.js.map +1 -0
  118. package/dist/services/UserLending/types.js +1 -0
  119. package/dist/services/UserLending/types.js.map +1 -0
  120. package/dist/services/UserLending/user-lending.js +1 -0
  121. package/dist/services/UserLending/user-lending.js.map +1 -0
  122. package/dist/services/shared.js +1 -0
  123. package/dist/services/shared.js.map +1 -0
  124. package/dist/tests/sample.test.js +1 -0
  125. package/dist/tests/sample.test.js.map +1 -0
  126. package/package.json +2 -1
  127. package/src/contracts/IClearingCoordinatorAbi.ts +406 -0
  128. package/src/contracts/IERC20MetadataAbi.ts +364 -0
  129. package/src/contracts/IFeeManagerAbi.ts +182 -0
  130. package/src/contracts/IKSULockingAbi.ts +965 -0
  131. package/src/contracts/IKasuAllowListAbi.ts +605 -0
  132. package/src/contracts/IKasuControllerAbi.ts +703 -0
  133. package/src/contracts/IKasuNFTsAbi.ts +2744 -0
  134. package/src/contracts/IKsuPriceAbi.ts +87 -0
  135. package/src/contracts/ILendingPoolAbi.ts +2081 -0
  136. package/src/contracts/ILendingPoolFactoryAbi.ts +161 -0
  137. package/src/contracts/ILendingPoolManagerAbi.ts +1917 -0
  138. package/src/contracts/ILendingPoolTrancheAbi.ts +1911 -0
  139. package/src/contracts/ISystemVariablesAbi.ts +908 -0
  140. package/src/contracts/IUserLoyaltyRewardsAbi.ts +544 -0
  141. package/src/contracts/IUserManagerAbi.ts +612 -0
  142. package/src/contracts/KSULockBonusAbi.ts +124 -0
  143. package/src/contracts/KasuPoolExternalTVLAbi.ts +1071 -0
  144. package/src/contracts/SwapperAbi.ts +266 -0
  145. package/src/contracts/common.ts +44 -0
  146. package/src/contracts/factories/IClearingCoordinatorAbi__factory.ts +438 -0
  147. package/src/contracts/factories/IERC20MetadataAbi__factory.ts +248 -0
  148. package/src/contracts/factories/IFeeManagerAbi__factory.ts +90 -0
  149. package/src/contracts/factories/IKSULockingAbi__factory.ts +778 -0
  150. package/src/contracts/factories/IKasuAllowListAbi__factory.ts +479 -0
  151. package/src/contracts/factories/IKasuControllerAbi__factory.ts +447 -0
  152. package/src/contracts/factories/IKasuNFTsAbi__factory.ts +2116 -0
  153. package/src/contracts/factories/IKsuPriceAbi__factory.ts +36 -0
  154. package/src/contracts/factories/ILendingPoolAbi__factory.ts +1455 -0
  155. package/src/contracts/factories/ILendingPoolFactoryAbi__factory.ts +125 -0
  156. package/src/contracts/factories/ILendingPoolManagerAbi__factory.ts +1375 -0
  157. package/src/contracts/factories/ILendingPoolTrancheAbi__factory.ts +1345 -0
  158. package/src/contracts/factories/ISystemVariablesAbi__factory.ts +455 -0
  159. package/src/contracts/factories/IUserLoyaltyRewardsAbi__factory.ts +316 -0
  160. package/src/contracts/factories/IUserManagerAbi__factory.ts +345 -0
  161. package/src/contracts/factories/KSULockBonusAbi__factory.ts +115 -0
  162. package/src/contracts/factories/KasuPoolExternalTVLAbi__factory.ts +840 -0
  163. package/src/contracts/factories/SwapperAbi__factory.ts +167 -0
  164. package/src/contracts/factories/index.ts +21 -0
  165. package/src/contracts/index.ts +40 -0
  166. package/src/services/Portfolio/portfolio.ts +261 -45
  167. package/tsconfig.json +1 -1
@@ -17514,10 +17514,110 @@ class Portfolio {
17514
17514
  this._lockingService = new KSULocking(_kasuConfig, signerOrProvider);
17515
17515
  this._dataService = new DataService(_kasuConfig, signerOrProvider);
17516
17516
  this._systemVariablesAbi = ISystemVariablesAbi__factory.connect(_kasuConfig.contracts.SystemVariables, signerOrProvider);
17517
+ this._userLoyaltyRewardsAbi = IUserLoyaltyRewardsAbi__factory.connect(_kasuConfig.contracts.UserLoyaltyRewards, signerOrProvider);
17517
17518
  this._userLendingService = new UserLending(_kasuConfig, signerOrProvider);
17518
17519
  this._kasuNftContract = IKasuNFTsAbi__factory.connect(_kasuConfig.contracts.KasuNFTs, signerOrProvider);
17519
17520
  this._graph = new GraphQLClient(_kasuConfig.subgraphUrl);
17520
17521
  }
17522
+ computeYieldMetrics(portfolioLendingPools) {
17523
+ let totalInvestments = 0;
17524
+ let totalYieldEarned = 0;
17525
+ let weightedApy = 0;
17526
+ let weeklyYieldEarnings = 0;
17527
+ for (const pool of portfolioLendingPools) {
17528
+ for (const tranche of pool.tranches) {
17529
+ const investedAmount = parseFloat(tranche.investedAmount);
17530
+ totalInvestments += investedAmount;
17531
+ totalYieldEarned += parseFloat(tranche.yieldEarnings.lifetime);
17532
+ weightedApy += parseFloat(tranche.apy) * investedAmount;
17533
+ weeklyYieldEarnings +=
17534
+ investedAmount * parseFloat(tranche.interestRate);
17535
+ for (const fixedDeposits of tranche.fixedLoans) {
17536
+ const ftdConfig = tranche.fixedTermConfig.find((ftd) => ftd.configId === fixedDeposits.configId);
17537
+ if (!ftdConfig)
17538
+ continue;
17539
+ const ftdInvestedAmount = parseFloat(fixedDeposits.amount);
17540
+ totalInvestments += ftdInvestedAmount;
17541
+ totalYieldEarned += parseFloat(fixedDeposits.yieldEarnings.lifetime);
17542
+ weeklyYieldEarnings +=
17543
+ ftdInvestedAmount *
17544
+ parseFloat(ftdConfig.epochInterestRate);
17545
+ weightedApy +=
17546
+ parseFloat(ftdConfig.apy) * ftdInvestedAmount;
17547
+ }
17548
+ }
17549
+ }
17550
+ return {
17551
+ totalInvestments,
17552
+ totalYieldEarned,
17553
+ weightedApy,
17554
+ weeklyYieldEarnings,
17555
+ };
17556
+ }
17557
+ /**
17558
+ * Calculate aggregate yield metrics for a set of portfolio lending pools.
17559
+ * Accepts pre-fetched pool data and returns totals without performing any network calls.
17560
+ */
17561
+ calculateYieldMetrics(portfolioLendingPools) {
17562
+ return this.computeYieldMetrics(portfolioLendingPools);
17563
+ }
17564
+ /**
17565
+ * Calculate the user's weekly protocol fee share (USDC) given tranche balances/configs,
17566
+ * system variables and locking summary. All inputs are expected to be pre-fetched.
17567
+ */
17568
+ calculateWeeklyProtocolFees(params) {
17569
+ var _a, _b;
17570
+ const { trancheBalances, trancheConfigurations, systemVariables, lockingSummary, userRksuAmount, } = params;
17571
+ const totalRKsuAmount = parseFloat((_b = (_a = lockingSummary.lockingSummaries[0]) === null || _a === void 0 ? void 0 : _a.totalRKsuAmount) !== null && _b !== void 0 ? _b : '0');
17572
+ const userRKsuAmount = parseFloat(userRksuAmount || '0');
17573
+ const performanceFee = parseFloat(systemVariables.systemVariables.performanceFee) / 100;
17574
+ const ecosystemFeeRate = parseFloat(systemVariables.systemVariables.ecosystemFeeRate) / 100;
17575
+ if (totalRKsuAmount <= 0 ||
17576
+ userRKsuAmount <= 0 ||
17577
+ performanceFee <= 0 ||
17578
+ ecosystemFeeRate <= 0) {
17579
+ return 0;
17580
+ }
17581
+ let totalWeeklyEcosystemFees = 0;
17582
+ for (const tranche of trancheBalances.lendingPoolTranches) {
17583
+ const trancheConfig = trancheConfigurations.lendingPoolTrancheConfigurations.find((config) => config.id === tranche.id);
17584
+ if (!trancheConfig)
17585
+ continue;
17586
+ const interestUpdates = trancheConfig.lendingPoolTrancheInterestRateUpdates;
17587
+ const interestRate = interestUpdates.length
17588
+ ? interestUpdates[0].epochInterestRate
17589
+ : trancheConfig.interestRate;
17590
+ totalWeeklyEcosystemFees +=
17591
+ parseFloat(tranche.balance) *
17592
+ parseFloat(interestRate) *
17593
+ performanceFee *
17594
+ ecosystemFeeRate;
17595
+ }
17596
+ return ((totalWeeklyEcosystemFees * userRKsuAmount) / totalRKsuAmount);
17597
+ }
17598
+ /**
17599
+ * Calculate the user's weekly KASU bonus rewards (KASU) based on current deposits,
17600
+ * loyalty level, reward rate, and KSU epoch price. Inputs should be pre-fetched.
17601
+ */
17602
+ calculateWeeklyKsuBonusRewards(params) {
17603
+ return __awaiter(this, void 0, void 0, function* () {
17604
+ const { userAddress, userRksuAmount, userDepositAmounts, ksuEpochPrice } = params;
17605
+ const totalUserDeposits = userDepositAmounts[0].add(userDepositAmounts[1]);
17606
+ if (totalUserDeposits.isZero())
17607
+ return 0;
17608
+ const rKSUtoUSDCRatio = yield this._lockingService.getRKSUvsUSDCRatio(userRksuAmount, userAddress);
17609
+ const { loyaltyLevel } = this._lockingService.getLoyaltyLevelAndApyBonusFromRatio(rKSUtoUSDCRatio);
17610
+ const loyaltyRewardRate = yield this._userLoyaltyRewardsAbi.loyaltyEpochRewardRates(loyaltyLevel);
17611
+ if (loyaltyRewardRate.isZero() || ksuEpochPrice.price.isZero()) {
17612
+ return 0;
17613
+ }
17614
+ const reward = totalUserDeposits
17615
+ .mul(loyaltyRewardRate)
17616
+ .mul(ethers.BigNumber.from(10).pow(12))
17617
+ .div(ksuEpochPrice.price);
17618
+ return parseFloat(utils$2.formatEther(reward));
17619
+ });
17620
+ }
17521
17621
  getPortfolioRewards(userAddress) {
17522
17622
  return __awaiter(this, void 0, void 0, function* () {
17523
17623
  const userLockingData = yield this._lockingService.getUserBonusData(userAddress);
@@ -17548,36 +17648,38 @@ class Portfolio {
17548
17648
  return usernfts.map((nft) => nft.toNumber());
17549
17649
  });
17550
17650
  }
17551
- getPortfolioSummary(userAddress, portfolioLendingPools) {
17651
+ getPortfolioSummary(userAddress, portfolioLendingPools, currentEpoch) {
17552
17652
  return __awaiter(this, void 0, void 0, function* () {
17553
- const userLockingData = yield this._lockingService.getUserBonusData(userAddress);
17554
- let totalInvestments = 0;
17555
- let weightedApy = 0;
17556
- let totalYieldEarned = 0;
17557
- let weeklyYieldEarnings = 0;
17558
- for (const pool of portfolioLendingPools) {
17559
- for (const tranche of pool.tranches) {
17560
- const investedAmount = parseFloat(tranche.investedAmount);
17561
- totalInvestments += investedAmount;
17562
- totalYieldEarned += parseFloat(tranche.yieldEarnings.lifetime);
17563
- weightedApy += parseFloat(tranche.apy) * investedAmount;
17564
- weeklyYieldEarnings +=
17565
- investedAmount * parseFloat(tranche.interestRate);
17566
- for (const fixedDeposits of tranche.fixedLoans) {
17567
- const ftdConfig = tranche.fixedTermConfig.find((ftd) => ftd.configId === fixedDeposits.configId);
17568
- if (!ftdConfig)
17569
- continue;
17570
- const ftdInvestedAmount = parseFloat(fixedDeposits.amount);
17571
- totalInvestments += ftdInvestedAmount;
17572
- totalYieldEarned += parseFloat(fixedDeposits.yieldEarnings.lifetime);
17573
- weeklyYieldEarnings +=
17574
- ftdInvestedAmount *
17575
- parseFloat(ftdConfig.epochInterestRate);
17576
- weightedApy +=
17577
- parseFloat(ftdConfig.apy) * ftdInvestedAmount;
17578
- }
17579
- }
17580
- }
17653
+ const epochId = currentEpoch.toString();
17654
+ const [userLockingData, userRksuAmount, lockingSummary, systemVariables, trancheBalances, trancheConfigurations, userDepositAmounts, ksuEpochPrice,] = yield Promise.all([
17655
+ this._lockingService.getUserBonusData(userAddress),
17656
+ this._lockingService.getUserEarnedrKsu(userAddress),
17657
+ this._graph.request(lockingSummariesQuery),
17658
+ this._graph.request(getSystemVariablesQuery),
17659
+ this._graph.request(getAllTranchesQuery, {
17660
+ unusedPools: this._kasuConfig.UNUSED_LENDING_POOL_IDS,
17661
+ }),
17662
+ this._graph.request(getAllTrancheConfigurationsQuery, {
17663
+ unusedPools: this._kasuConfig.UNUSED_LENDING_POOL_IDS,
17664
+ epochId,
17665
+ }),
17666
+ this._userLendingService.getUserTotalPendingAndActiveDepositedAmountForCurrentEpoch(userAddress),
17667
+ this._lockingService.getKasuEpochTokenPrice(),
17668
+ ]);
17669
+ const { totalInvestments, totalYieldEarned, weightedApy, weeklyYieldEarnings, } = this.computeYieldMetrics(portfolioLendingPools);
17670
+ const weeklyProtocolFeesEarned = this.calculateWeeklyProtocolFees({
17671
+ trancheBalances,
17672
+ trancheConfigurations,
17673
+ systemVariables,
17674
+ lockingSummary,
17675
+ userRksuAmount,
17676
+ });
17677
+ const weeklyKsuBonusRewards = yield this.calculateWeeklyKsuBonusRewards({
17678
+ userAddress,
17679
+ userRksuAmount,
17680
+ userDepositAmounts,
17681
+ ksuEpochPrice,
17682
+ });
17581
17683
  return {
17582
17684
  current: {
17583
17685
  totalKsuLocked: userLockingData.totalLockedAmount,
@@ -17591,8 +17693,8 @@ class Portfolio {
17591
17693
  },
17592
17694
  weekly: {
17593
17695
  yieldEarnings: weeklyYieldEarnings.toString(),
17594
- protocolFeesEarned: '0',
17595
- ksuBonusRewards: '0',
17696
+ protocolFeesEarned: weeklyProtocolFeesEarned.toString(),
17697
+ ksuBonusRewards: weeklyKsuBonusRewards.toString(),
17596
17698
  },
17597
17699
  lifetime: {
17598
17700
  yieldEarnings: totalYieldEarned.toString(),
@@ -17655,7 +17757,6 @@ class Portfolio {
17655
17757
  for (const poolOverview of poolOverviews) {
17656
17758
  const userPoolBalance = userPoolBalances.find(({ poolId }) => poolId === poolOverview.id);
17657
17759
  if (!userPoolBalance) {
17658
- console.warn(`Could not find user pool balance for ${poolOverview.id}`);
17659
17760
  continue;
17660
17761
  }
17661
17762
  totalInvestments = userPoolBalance.balance.add(totalInvestments);
@@ -17512,10 +17512,110 @@ class Portfolio {
17512
17512
  this._lockingService = new KSULocking(_kasuConfig, signerOrProvider);
17513
17513
  this._dataService = new DataService(_kasuConfig, signerOrProvider);
17514
17514
  this._systemVariablesAbi = ISystemVariablesAbi__factory.connect(_kasuConfig.contracts.SystemVariables, signerOrProvider);
17515
+ this._userLoyaltyRewardsAbi = IUserLoyaltyRewardsAbi__factory.connect(_kasuConfig.contracts.UserLoyaltyRewards, signerOrProvider);
17515
17516
  this._userLendingService = new UserLending(_kasuConfig, signerOrProvider);
17516
17517
  this._kasuNftContract = IKasuNFTsAbi__factory.connect(_kasuConfig.contracts.KasuNFTs, signerOrProvider);
17517
17518
  this._graph = new GraphQLClient(_kasuConfig.subgraphUrl);
17518
17519
  }
17520
+ computeYieldMetrics(portfolioLendingPools) {
17521
+ let totalInvestments = 0;
17522
+ let totalYieldEarned = 0;
17523
+ let weightedApy = 0;
17524
+ let weeklyYieldEarnings = 0;
17525
+ for (const pool of portfolioLendingPools) {
17526
+ for (const tranche of pool.tranches) {
17527
+ const investedAmount = parseFloat(tranche.investedAmount);
17528
+ totalInvestments += investedAmount;
17529
+ totalYieldEarned += parseFloat(tranche.yieldEarnings.lifetime);
17530
+ weightedApy += parseFloat(tranche.apy) * investedAmount;
17531
+ weeklyYieldEarnings +=
17532
+ investedAmount * parseFloat(tranche.interestRate);
17533
+ for (const fixedDeposits of tranche.fixedLoans) {
17534
+ const ftdConfig = tranche.fixedTermConfig.find((ftd) => ftd.configId === fixedDeposits.configId);
17535
+ if (!ftdConfig)
17536
+ continue;
17537
+ const ftdInvestedAmount = parseFloat(fixedDeposits.amount);
17538
+ totalInvestments += ftdInvestedAmount;
17539
+ totalYieldEarned += parseFloat(fixedDeposits.yieldEarnings.lifetime);
17540
+ weeklyYieldEarnings +=
17541
+ ftdInvestedAmount *
17542
+ parseFloat(ftdConfig.epochInterestRate);
17543
+ weightedApy +=
17544
+ parseFloat(ftdConfig.apy) * ftdInvestedAmount;
17545
+ }
17546
+ }
17547
+ }
17548
+ return {
17549
+ totalInvestments,
17550
+ totalYieldEarned,
17551
+ weightedApy,
17552
+ weeklyYieldEarnings,
17553
+ };
17554
+ }
17555
+ /**
17556
+ * Calculate aggregate yield metrics for a set of portfolio lending pools.
17557
+ * Accepts pre-fetched pool data and returns totals without performing any network calls.
17558
+ */
17559
+ calculateYieldMetrics(portfolioLendingPools) {
17560
+ return this.computeYieldMetrics(portfolioLendingPools);
17561
+ }
17562
+ /**
17563
+ * Calculate the user's weekly protocol fee share (USDC) given tranche balances/configs,
17564
+ * system variables and locking summary. All inputs are expected to be pre-fetched.
17565
+ */
17566
+ calculateWeeklyProtocolFees(params) {
17567
+ var _a, _b;
17568
+ const { trancheBalances, trancheConfigurations, systemVariables, lockingSummary, userRksuAmount, } = params;
17569
+ const totalRKsuAmount = parseFloat((_b = (_a = lockingSummary.lockingSummaries[0]) === null || _a === void 0 ? void 0 : _a.totalRKsuAmount) !== null && _b !== void 0 ? _b : '0');
17570
+ const userRKsuAmount = parseFloat(userRksuAmount || '0');
17571
+ const performanceFee = parseFloat(systemVariables.systemVariables.performanceFee) / 100;
17572
+ const ecosystemFeeRate = parseFloat(systemVariables.systemVariables.ecosystemFeeRate) / 100;
17573
+ if (totalRKsuAmount <= 0 ||
17574
+ userRKsuAmount <= 0 ||
17575
+ performanceFee <= 0 ||
17576
+ ecosystemFeeRate <= 0) {
17577
+ return 0;
17578
+ }
17579
+ let totalWeeklyEcosystemFees = 0;
17580
+ for (const tranche of trancheBalances.lendingPoolTranches) {
17581
+ const trancheConfig = trancheConfigurations.lendingPoolTrancheConfigurations.find((config) => config.id === tranche.id);
17582
+ if (!trancheConfig)
17583
+ continue;
17584
+ const interestUpdates = trancheConfig.lendingPoolTrancheInterestRateUpdates;
17585
+ const interestRate = interestUpdates.length
17586
+ ? interestUpdates[0].epochInterestRate
17587
+ : trancheConfig.interestRate;
17588
+ totalWeeklyEcosystemFees +=
17589
+ parseFloat(tranche.balance) *
17590
+ parseFloat(interestRate) *
17591
+ performanceFee *
17592
+ ecosystemFeeRate;
17593
+ }
17594
+ return ((totalWeeklyEcosystemFees * userRKsuAmount) / totalRKsuAmount);
17595
+ }
17596
+ /**
17597
+ * Calculate the user's weekly KASU bonus rewards (KASU) based on current deposits,
17598
+ * loyalty level, reward rate, and KSU epoch price. Inputs should be pre-fetched.
17599
+ */
17600
+ calculateWeeklyKsuBonusRewards(params) {
17601
+ return __awaiter(this, void 0, void 0, function* () {
17602
+ const { userAddress, userRksuAmount, userDepositAmounts, ksuEpochPrice } = params;
17603
+ const totalUserDeposits = userDepositAmounts[0].add(userDepositAmounts[1]);
17604
+ if (totalUserDeposits.isZero())
17605
+ return 0;
17606
+ const rKSUtoUSDCRatio = yield this._lockingService.getRKSUvsUSDCRatio(userRksuAmount, userAddress);
17607
+ const { loyaltyLevel } = this._lockingService.getLoyaltyLevelAndApyBonusFromRatio(rKSUtoUSDCRatio);
17608
+ const loyaltyRewardRate = yield this._userLoyaltyRewardsAbi.loyaltyEpochRewardRates(loyaltyLevel);
17609
+ if (loyaltyRewardRate.isZero() || ksuEpochPrice.price.isZero()) {
17610
+ return 0;
17611
+ }
17612
+ const reward = totalUserDeposits
17613
+ .mul(loyaltyRewardRate)
17614
+ .mul(BigNumber.from(10).pow(12))
17615
+ .div(ksuEpochPrice.price);
17616
+ return parseFloat(formatEther(reward));
17617
+ });
17618
+ }
17519
17619
  getPortfolioRewards(userAddress) {
17520
17620
  return __awaiter(this, void 0, void 0, function* () {
17521
17621
  const userLockingData = yield this._lockingService.getUserBonusData(userAddress);
@@ -17546,36 +17646,38 @@ class Portfolio {
17546
17646
  return usernfts.map((nft) => nft.toNumber());
17547
17647
  });
17548
17648
  }
17549
- getPortfolioSummary(userAddress, portfolioLendingPools) {
17649
+ getPortfolioSummary(userAddress, portfolioLendingPools, currentEpoch) {
17550
17650
  return __awaiter(this, void 0, void 0, function* () {
17551
- const userLockingData = yield this._lockingService.getUserBonusData(userAddress);
17552
- let totalInvestments = 0;
17553
- let weightedApy = 0;
17554
- let totalYieldEarned = 0;
17555
- let weeklyYieldEarnings = 0;
17556
- for (const pool of portfolioLendingPools) {
17557
- for (const tranche of pool.tranches) {
17558
- const investedAmount = parseFloat(tranche.investedAmount);
17559
- totalInvestments += investedAmount;
17560
- totalYieldEarned += parseFloat(tranche.yieldEarnings.lifetime);
17561
- weightedApy += parseFloat(tranche.apy) * investedAmount;
17562
- weeklyYieldEarnings +=
17563
- investedAmount * parseFloat(tranche.interestRate);
17564
- for (const fixedDeposits of tranche.fixedLoans) {
17565
- const ftdConfig = tranche.fixedTermConfig.find((ftd) => ftd.configId === fixedDeposits.configId);
17566
- if (!ftdConfig)
17567
- continue;
17568
- const ftdInvestedAmount = parseFloat(fixedDeposits.amount);
17569
- totalInvestments += ftdInvestedAmount;
17570
- totalYieldEarned += parseFloat(fixedDeposits.yieldEarnings.lifetime);
17571
- weeklyYieldEarnings +=
17572
- ftdInvestedAmount *
17573
- parseFloat(ftdConfig.epochInterestRate);
17574
- weightedApy +=
17575
- parseFloat(ftdConfig.apy) * ftdInvestedAmount;
17576
- }
17577
- }
17578
- }
17651
+ const epochId = currentEpoch.toString();
17652
+ const [userLockingData, userRksuAmount, lockingSummary, systemVariables, trancheBalances, trancheConfigurations, userDepositAmounts, ksuEpochPrice,] = yield Promise.all([
17653
+ this._lockingService.getUserBonusData(userAddress),
17654
+ this._lockingService.getUserEarnedrKsu(userAddress),
17655
+ this._graph.request(lockingSummariesQuery),
17656
+ this._graph.request(getSystemVariablesQuery),
17657
+ this._graph.request(getAllTranchesQuery, {
17658
+ unusedPools: this._kasuConfig.UNUSED_LENDING_POOL_IDS,
17659
+ }),
17660
+ this._graph.request(getAllTrancheConfigurationsQuery, {
17661
+ unusedPools: this._kasuConfig.UNUSED_LENDING_POOL_IDS,
17662
+ epochId,
17663
+ }),
17664
+ this._userLendingService.getUserTotalPendingAndActiveDepositedAmountForCurrentEpoch(userAddress),
17665
+ this._lockingService.getKasuEpochTokenPrice(),
17666
+ ]);
17667
+ const { totalInvestments, totalYieldEarned, weightedApy, weeklyYieldEarnings, } = this.computeYieldMetrics(portfolioLendingPools);
17668
+ const weeklyProtocolFeesEarned = this.calculateWeeklyProtocolFees({
17669
+ trancheBalances,
17670
+ trancheConfigurations,
17671
+ systemVariables,
17672
+ lockingSummary,
17673
+ userRksuAmount,
17674
+ });
17675
+ const weeklyKsuBonusRewards = yield this.calculateWeeklyKsuBonusRewards({
17676
+ userAddress,
17677
+ userRksuAmount,
17678
+ userDepositAmounts,
17679
+ ksuEpochPrice,
17680
+ });
17579
17681
  return {
17580
17682
  current: {
17581
17683
  totalKsuLocked: userLockingData.totalLockedAmount,
@@ -17589,8 +17691,8 @@ class Portfolio {
17589
17691
  },
17590
17692
  weekly: {
17591
17693
  yieldEarnings: weeklyYieldEarnings.toString(),
17592
- protocolFeesEarned: '0',
17593
- ksuBonusRewards: '0',
17694
+ protocolFeesEarned: weeklyProtocolFeesEarned.toString(),
17695
+ ksuBonusRewards: weeklyKsuBonusRewards.toString(),
17594
17696
  },
17595
17697
  lifetime: {
17596
17698
  yieldEarnings: totalYieldEarned.toString(),
@@ -17653,7 +17755,6 @@ class Portfolio {
17653
17755
  for (const poolOverview of poolOverviews) {
17654
17756
  const userPoolBalance = userPoolBalances.find(({ poolId }) => poolId === poolOverview.id);
17655
17757
  if (!userPoolBalance) {
17656
- console.warn(`Could not find user pool balance for ${poolOverview.id}`);
17657
17758
  continue;
17658
17759
  }
17659
17760
  totalInvestments = userPoolBalance.balance.add(totalInvestments);
@@ -1 +1,2 @@
1
1
  export {};
2
+ //# sourceMappingURL=IClearingCoordinatorAbi.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"IClearingCoordinatorAbi.js","sourceRoot":"","sources":["../../src/contracts/IClearingCoordinatorAbi.ts"],"names":[],"mappings":""}
@@ -1 +1,2 @@
1
1
  export {};
2
+ //# sourceMappingURL=IERC20MetadataAbi.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"IERC20MetadataAbi.js","sourceRoot":"","sources":["../../src/contracts/IERC20MetadataAbi.ts"],"names":[],"mappings":""}
@@ -1 +1,2 @@
1
1
  export {};
2
+ //# sourceMappingURL=IFeeManagerAbi.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"IFeeManagerAbi.js","sourceRoot":"","sources":["../../src/contracts/IFeeManagerAbi.ts"],"names":[],"mappings":""}
@@ -1 +1,2 @@
1
1
  export {};
2
+ //# sourceMappingURL=IKSULockingAbi.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"IKSULockingAbi.js","sourceRoot":"","sources":["../../src/contracts/IKSULockingAbi.ts"],"names":[],"mappings":""}
@@ -1 +1,2 @@
1
1
  export {};
2
+ //# sourceMappingURL=IKasuAllowListAbi.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"IKasuAllowListAbi.js","sourceRoot":"","sources":["../../src/contracts/IKasuAllowListAbi.ts"],"names":[],"mappings":""}
@@ -1 +1,2 @@
1
1
  export {};
2
+ //# sourceMappingURL=IKasuControllerAbi.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"IKasuControllerAbi.js","sourceRoot":"","sources":["../../src/contracts/IKasuControllerAbi.ts"],"names":[],"mappings":""}
@@ -1 +1,2 @@
1
1
  export {};
2
+ //# sourceMappingURL=IKasuNFTsAbi.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"IKasuNFTsAbi.js","sourceRoot":"","sources":["../../src/contracts/IKasuNFTsAbi.ts"],"names":[],"mappings":""}
@@ -1 +1,2 @@
1
1
  export {};
2
+ //# sourceMappingURL=IKsuPriceAbi.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"IKsuPriceAbi.js","sourceRoot":"","sources":["../../src/contracts/IKsuPriceAbi.ts"],"names":[],"mappings":""}
@@ -1 +1,2 @@
1
1
  export {};
2
+ //# sourceMappingURL=ILendingPoolAbi.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ILendingPoolAbi.js","sourceRoot":"","sources":["../../src/contracts/ILendingPoolAbi.ts"],"names":[],"mappings":""}
@@ -1 +1,2 @@
1
1
  export {};
2
+ //# sourceMappingURL=ILendingPoolFactoryAbi.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ILendingPoolFactoryAbi.js","sourceRoot":"","sources":["../../src/contracts/ILendingPoolFactoryAbi.ts"],"names":[],"mappings":""}
@@ -1 +1,2 @@
1
1
  export {};
2
+ //# sourceMappingURL=ILendingPoolManagerAbi.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ILendingPoolManagerAbi.js","sourceRoot":"","sources":["../../src/contracts/ILendingPoolManagerAbi.ts"],"names":[],"mappings":""}
@@ -1 +1,2 @@
1
1
  export {};
2
+ //# sourceMappingURL=ILendingPoolTrancheAbi.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ILendingPoolTrancheAbi.js","sourceRoot":"","sources":["../../src/contracts/ILendingPoolTrancheAbi.ts"],"names":[],"mappings":""}
@@ -1 +1,2 @@
1
1
  export {};
2
+ //# sourceMappingURL=ISystemVariablesAbi.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ISystemVariablesAbi.js","sourceRoot":"","sources":["../../src/contracts/ISystemVariablesAbi.ts"],"names":[],"mappings":""}
@@ -1 +1,2 @@
1
1
  export {};
2
+ //# sourceMappingURL=IUserLoyaltyRewardsAbi.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"IUserLoyaltyRewardsAbi.js","sourceRoot":"","sources":["../../src/contracts/IUserLoyaltyRewardsAbi.ts"],"names":[],"mappings":""}
@@ -1 +1,2 @@
1
1
  export {};
2
+ //# sourceMappingURL=IUserManagerAbi.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"IUserManagerAbi.js","sourceRoot":"","sources":["../../src/contracts/IUserManagerAbi.ts"],"names":[],"mappings":""}
@@ -1 +1,2 @@
1
1
  export {};
2
+ //# sourceMappingURL=KSULockBonusAbi.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"KSULockBonusAbi.js","sourceRoot":"","sources":["../../src/contracts/KSULockBonusAbi.ts"],"names":[],"mappings":""}
@@ -1 +1,2 @@
1
1
  export {};
2
+ //# sourceMappingURL=KasuPoolExternalTVLAbi.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"KasuPoolExternalTVLAbi.js","sourceRoot":"","sources":["../../src/contracts/KasuPoolExternalTVLAbi.ts"],"names":[],"mappings":""}
@@ -1 +1,2 @@
1
1
  export {};
2
+ //# sourceMappingURL=SwapperAbi.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SwapperAbi.js","sourceRoot":"","sources":["../../src/contracts/SwapperAbi.ts"],"names":[],"mappings":""}
@@ -1 +1,2 @@
1
1
  export {};
2
+ //# sourceMappingURL=common.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"common.js","sourceRoot":"","sources":["../../src/contracts/common.ts"],"names":[],"mappings":""}
@@ -421,3 +421,4 @@ export class IClearingCoordinatorAbi__factory {
421
421
  }
422
422
  }
423
423
  IClearingCoordinatorAbi__factory.abi = _abi;
424
+ //# sourceMappingURL=IClearingCoordinatorAbi__factory.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"IClearingCoordinatorAbi__factory.js","sourceRoot":"","sources":["../../../src/contracts/factories/IClearingCoordinatorAbi__factory.ts"],"names":[],"mappings":"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"}
@@ -235,3 +235,4 @@ export class IERC20MetadataAbi__factory {
235
235
  }
236
236
  }
237
237
  IERC20MetadataAbi__factory.abi = _abi;
238
+ //# sourceMappingURL=IERC20MetadataAbi__factory.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"IERC20MetadataAbi__factory.js","sourceRoot":"","sources":["../../../src/contracts/factories/IERC20MetadataAbi__factory.ts"],"names":[],"mappings":"AAAA,+CAA+C;AAC/C,oBAAoB;AACpB,oBAAoB;AAEpB,OAAO,EAAE,QAAQ,EAAU,KAAK,EAAE,MAAM,QAAQ,CAAC;AAOjD,MAAM,IAAI,GAAG;IACX;QACE,SAAS,EAAE,KAAK;QAChB,MAAM,EAAE;YACN;gBACE,OAAO,EAAE,IAAI;gBACb,YAAY,EAAE,SAAS;gBACvB,IAAI,EAAE,OAAO;gBACb,IAAI,EAAE,SAAS;aAChB;YACD;gBACE,OAAO,EAAE,IAAI;gBACb,YAAY,EAAE,SAAS;gBACvB,IAAI,EAAE,SAAS;gBACf,IAAI,EAAE,SAAS;aAChB;YACD;gBACE,OAAO,EAAE,KAAK;gBACd,YAAY,EAAE,SAAS;gBACvB,IAAI,EAAE,OAAO;gBACb,IAAI,EAAE,SAAS;aAChB;SACF;QACD,IAAI,EAAE,UAAU;QAChB,IAAI,EAAE,OAAO;KACd;IACD;QACE,SAAS,EAAE,KAAK;QAChB,MAAM,EAAE;YACN;gBACE,OAAO,EAAE,IAAI;gBACb,YAAY,EAAE,SAAS;gBACvB,IAAI,EAAE,MAAM;gBACZ,IAAI,EAAE,SAAS;aAChB;YACD;gBACE,OAAO,EAAE,IAAI;gBACb,YAAY,EAAE,SAAS;gBACvB,IAAI,EAAE,IAAI;gBACV,IAAI,EAAE,SAAS;aAChB;YACD;gBACE,OAAO,EAAE,KAAK;gBACd,YAAY,EAAE,SAAS;gBACvB,IAAI,EAAE,OAAO;gBACb,IAAI,EAAE,SAAS;aAChB;SACF;QACD,IAAI,EAAE,UAAU;QAChB,IAAI,EAAE,OAAO;KACd;IACD;QACE,MAAM,EAAE;YACN;gBACE,YAAY,EAAE,SAAS;gBACvB,IAAI,EAAE,OAAO;gBACb,IAAI,EAAE,SAAS;aAChB;YACD;gBACE,YAAY,EAAE,SAAS;gBACvB,IAAI,EAAE,SAAS;gBACf,IAAI,EAAE,SAAS;aAChB;SACF;QACD,IAAI,EAAE,WAAW;QACjB,OAAO,EAAE;YACP;gBACE,YAAY,EAAE,SAAS;gBACvB,IAAI,EAAE,EAAE;gBACR,IAAI,EAAE,SAAS;aAChB;SACF;QACD,eAAe,EAAE,MAAM;QACvB,IAAI,EAAE,UAAU;KACjB;IACD;QACE,MAAM,EAAE;YACN;gBACE,YAAY,EAAE,SAAS;gBACvB,IAAI,EAAE,SAAS;gBACf,IAAI,EAAE,SAAS;aAChB;YACD;gBACE,YAAY,EAAE,SAAS;gBACvB,IAAI,EAAE,OAAO;gBACb,IAAI,EAAE,SAAS;aAChB;SACF;QACD,IAAI,EAAE,SAAS;QACf,OAAO,EAAE;YACP;gBACE,YAAY,EAAE,MAAM;gBACpB,IAAI,EAAE,EAAE;gBACR,IAAI,EAAE,MAAM;aACb;SACF;QACD,eAAe,EAAE,YAAY;QAC7B,IAAI,EAAE,UAAU;KACjB;IACD;QACE,MAAM,EAAE;YACN;gBACE,YAAY,EAAE,SAAS;gBACvB,IAAI,EAAE,SAAS;gBACf,IAAI,EAAE,SAAS;aAChB;SACF;QACD,IAAI,EAAE,WAAW;QACjB,OAAO,EAAE;YACP;gBACE,YAAY,EAAE,SAAS;gBACvB,IAAI,EAAE,EAAE;gBACR,IAAI,EAAE,SAAS;aAChB;SACF;QACD,eAAe,EAAE,MAAM;QACvB,IAAI,EAAE,UAAU;KACjB;IACD;QACE,MAAM,EAAE,EAAE;QACV,IAAI,EAAE,UAAU;QAChB,OAAO,EAAE;YACP;gBACE,YAAY,EAAE,OAAO;gBACrB,IAAI,EAAE,EAAE;gBACR,IAAI,EAAE,OAAO;aACd;SACF;QACD,eAAe,EAAE,MAAM;QACvB,IAAI,EAAE,UAAU;KACjB;IACD;QACE,MAAM,EAAE,EAAE;QACV,IAAI,EAAE,MAAM;QACZ,OAAO,EAAE;YACP;gBACE,YAAY,EAAE,QAAQ;gBACtB,IAAI,EAAE,EAAE;gBACR,IAAI,EAAE,QAAQ;aACf;SACF;QACD,eAAe,EAAE,MAAM;QACvB,IAAI,EAAE,UAAU;KACjB;IACD;QACE,MAAM,EAAE,EAAE;QACV,IAAI,EAAE,QAAQ;QACd,OAAO,EAAE;YACP;gBACE,YAAY,EAAE,QAAQ;gBACtB,IAAI,EAAE,EAAE;gBACR,IAAI,EAAE,QAAQ;aACf;SACF;QACD,eAAe,EAAE,MAAM;QACvB,IAAI,EAAE,UAAU;KACjB;IACD;QACE,MAAM,EAAE,EAAE;QACV,IAAI,EAAE,aAAa;QACnB,OAAO,EAAE;YACP;gBACE,YAAY,EAAE,SAAS;gBACvB,IAAI,EAAE,EAAE;gBACR,IAAI,EAAE,SAAS;aAChB;SACF;QACD,eAAe,EAAE,MAAM;QACvB,IAAI,EAAE,UAAU;KACjB;IACD;QACE,MAAM,EAAE;YACN;gBACE,YAAY,EAAE,SAAS;gBACvB,IAAI,EAAE,IAAI;gBACV,IAAI,EAAE,SAAS;aAChB;YACD;gBACE,YAAY,EAAE,SAAS;gBACvB,IAAI,EAAE,OAAO;gBACb,IAAI,EAAE,SAAS;aAChB;SACF;QACD,IAAI,EAAE,UAAU;QAChB,OAAO,EAAE;YACP;gBACE,YAAY,EAAE,MAAM;gBACpB,IAAI,EAAE,EAAE;gBACR,IAAI,EAAE,MAAM;aACb;SACF;QACD,eAAe,EAAE,YAAY;QAC7B,IAAI,EAAE,UAAU;KACjB;IACD;QACE,MAAM,EAAE;YACN;gBACE,YAAY,EAAE,SAAS;gBACvB,IAAI,EAAE,MAAM;gBACZ,IAAI,EAAE,SAAS;aAChB;YACD;gBACE,YAAY,EAAE,SAAS;gBACvB,IAAI,EAAE,IAAI;gBACV,IAAI,EAAE,SAAS;aAChB;YACD;gBACE,YAAY,EAAE,SAAS;gBACvB,IAAI,EAAE,OAAO;gBACb,IAAI,EAAE,SAAS;aAChB;SACF;QACD,IAAI,EAAE,cAAc;QACpB,OAAO,EAAE;YACP;gBACE,YAAY,EAAE,MAAM;gBACpB,IAAI,EAAE,EAAE;gBACR,IAAI,EAAE,MAAM;aACb;SACF;QACD,eAAe,EAAE,YAAY;QAC7B,IAAI,EAAE,UAAU;KACjB;CACO,CAAC;AAEX,MAAM,OAAO,0BAA0B;IAErC,MAAM,CAAC,eAAe;QACpB,OAAO,IAAI,KAAK,CAAC,SAAS,CAAC,IAAI,CAA+B,CAAC;IACjE,CAAC;IACD,MAAM,CAAC,OAAO,CACZ,OAAe,EACf,gBAAmC;QAEnC,OAAO,IAAI,QAAQ,CAAC,OAAO,EAAE,IAAI,EAAE,gBAAgB,CAAsB,CAAC;IAC5E,CAAC;;AATe,8BAAG,GAAG,IAAI,CAAC"}
@@ -77,3 +77,4 @@ export class IFeeManagerAbi__factory {
77
77
  }
78
78
  }
79
79
  IFeeManagerAbi__factory.abi = _abi;
80
+ //# sourceMappingURL=IFeeManagerAbi__factory.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"IFeeManagerAbi__factory.js","sourceRoot":"","sources":["../../../src/contracts/factories/IFeeManagerAbi__factory.ts"],"names":[],"mappings":"AAAA,+CAA+C;AAC/C,oBAAoB;AACpB,oBAAoB;AAEpB,OAAO,EAAE,QAAQ,EAAU,KAAK,EAAE,MAAM,QAAQ,CAAC;AAOjD,MAAM,IAAI,GAAG;IACX;QACE,SAAS,EAAE,KAAK;QAChB,MAAM,EAAE;YACN;gBACE,OAAO,EAAE,IAAI;gBACb,YAAY,EAAE,SAAS;gBACvB,IAAI,EAAE,oBAAoB;gBAC1B,IAAI,EAAE,SAAS;aAChB;YACD;gBACE,OAAO,EAAE,KAAK;gBACd,YAAY,EAAE,SAAS;gBACvB,IAAI,EAAE,oBAAoB;gBAC1B,IAAI,EAAE,SAAS;aAChB;YACD;gBACE,OAAO,EAAE,KAAK;gBACd,YAAY,EAAE,SAAS;gBACvB,IAAI,EAAE,mBAAmB;gBACzB,IAAI,EAAE,SAAS;aAChB;SACF;QACD,IAAI,EAAE,aAAa;QACnB,IAAI,EAAE,OAAO;KACd;IACD;QACE,SAAS,EAAE,KAAK;QAChB,MAAM,EAAE;YACN;gBACE,OAAO,EAAE,IAAI;gBACb,YAAY,EAAE,SAAS;gBACvB,IAAI,EAAE,MAAM;gBACZ,IAAI,EAAE,SAAS;aAChB;YACD;gBACE,OAAO,EAAE,KAAK;gBACd,YAAY,EAAE,SAAS;gBACvB,IAAI,EAAE,QAAQ;gBACd,IAAI,EAAE,SAAS;aAChB;SACF;QACD,IAAI,EAAE,qBAAqB;QAC3B,IAAI,EAAE,OAAO;KACd;IACD;QACE,MAAM,EAAE,EAAE;QACV,IAAI,EAAE,mBAAmB;QACzB,OAAO,EAAE,EAAE;QACX,eAAe,EAAE,YAAY;QAC7B,IAAI,EAAE,UAAU;KACjB;IACD;QACE,MAAM,EAAE;YACN;gBACE,YAAY,EAAE,SAAS;gBACvB,IAAI,EAAE,QAAQ;gBACd,IAAI,EAAE,SAAS;aAChB;SACF;QACD,IAAI,EAAE,UAAU;QAChB,OAAO,EAAE,EAAE;QACX,eAAe,EAAE,YAAY;QAC7B,IAAI,EAAE,UAAU;KACjB;CACO,CAAC;AAEX,MAAM,OAAO,uBAAuB;IAElC,MAAM,CAAC,eAAe;QACpB,OAAO,IAAI,KAAK,CAAC,SAAS,CAAC,IAAI,CAA4B,CAAC;IAC9D,CAAC;IACD,MAAM,CAAC,OAAO,CACZ,OAAe,EACf,gBAAmC;QAEnC,OAAO,IAAI,QAAQ,CAAC,OAAO,EAAE,IAAI,EAAE,gBAAgB,CAAmB,CAAC;IACzE,CAAC;;AATe,2BAAG,GAAG,IAAI,CAAC"}
@@ -765,3 +765,4 @@ export class IKSULockingAbi__factory {
765
765
  }
766
766
  }
767
767
  IKSULockingAbi__factory.abi = _abi;
768
+ //# sourceMappingURL=IKSULockingAbi__factory.js.map