@huma-finance/shared 0.0.62-beta.630 → 0.0.62-beta.631

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.
@@ -4,3 +4,4 @@ export declare const getSolanaPoolApy: (protocolFeeInBps: number, yieldInBps: nu
4
4
  seniorTrancheApy: number;
5
5
  juniorTrancheApy: number;
6
6
  };
7
+ export declare const getSolanaUtilizationRate: (seniorTrancheAssets: BN | undefined, juniorTrancheAssets: BN | undefined, availableBalance: BN | undefined) => number | undefined;
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getSolanaPoolApy = void 0;
3
+ exports.getSolanaUtilizationRate = exports.getSolanaPoolApy = void 0;
4
4
  const anchor_1 = require("@coral-xyz/anchor");
5
5
  const const_1 = require("../const");
6
6
  const getSolanaPoolApy = (protocolFeeInBps, yieldInBps, rewardRateInBpsForPoolOwner, rewardRateInBpsForEA, liquidityCap, seniorDeployedAssets, juniorDeployedAssets, defaultMaxSeniorJuniorRatio, fixedSeniorYieldInBps, tranchesRiskAdjustmentInBps) => {
@@ -56,4 +56,17 @@ const getSolanaPoolApy = (protocolFeeInBps, yieldInBps, rewardRateInBpsForPoolOw
56
56
  };
57
57
  };
58
58
  exports.getSolanaPoolApy = getSolanaPoolApy;
59
+ const getSolanaUtilizationRate = (seniorTrancheAssets, juniorTrancheAssets, availableBalance) => {
60
+ if (!seniorTrancheAssets || !juniorTrancheAssets || !availableBalance) {
61
+ return undefined;
62
+ }
63
+ const totalSupply = seniorTrancheAssets.add(juniorTrancheAssets);
64
+ const borrowedBalance = totalSupply.sub(availableBalance);
65
+ if (borrowedBalance.gt(new anchor_1.BN(0)) && totalSupply.gt(new anchor_1.BN(0))) {
66
+ return (borrowedBalance.mul(const_1.SOLANA_BP_FACTOR).div(totalSupply).toNumber() /
67
+ const_1.SOLANA_BP_FACTOR.toNumber());
68
+ }
69
+ return 0;
70
+ };
71
+ exports.getSolanaUtilizationRate = getSolanaUtilizationRate;
59
72
  //# sourceMappingURL=poolUtils.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"poolUtils.js","sourceRoot":"","sources":["../../../../src/solana/utils/poolUtils.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"poolUtils.js","sourceRoot":"","sources":["../../../../src/solana/utils/poolUtils.ts"],"names":[],"mappings":"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"}
@@ -4,3 +4,4 @@ export declare const getSolanaPoolApy: (protocolFeeInBps: number, yieldInBps: nu
4
4
  seniorTrancheApy: number;
5
5
  juniorTrancheApy: number;
6
6
  };
7
+ export declare const getSolanaUtilizationRate: (seniorTrancheAssets: BN | undefined, juniorTrancheAssets: BN | undefined, availableBalance: BN | undefined) => number | undefined;
@@ -52,4 +52,16 @@ export const getSolanaPoolApy = (protocolFeeInBps, yieldInBps, rewardRateInBpsFo
52
52
  juniorTrancheApy,
53
53
  };
54
54
  };
55
+ export const getSolanaUtilizationRate = (seniorTrancheAssets, juniorTrancheAssets, availableBalance) => {
56
+ if (!seniorTrancheAssets || !juniorTrancheAssets || !availableBalance) {
57
+ return undefined;
58
+ }
59
+ const totalSupply = seniorTrancheAssets.add(juniorTrancheAssets);
60
+ const borrowedBalance = totalSupply.sub(availableBalance);
61
+ if (borrowedBalance.gt(new BN(0)) && totalSupply.gt(new BN(0))) {
62
+ return (borrowedBalance.mul(SOLANA_BP_FACTOR).div(totalSupply).toNumber() /
63
+ SOLANA_BP_FACTOR.toNumber());
64
+ }
65
+ return 0;
66
+ };
55
67
  //# sourceMappingURL=poolUtils.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"poolUtils.js","sourceRoot":"","sources":["../../../src/solana/utils/poolUtils.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"poolUtils.js","sourceRoot":"","sources":["../../../src/solana/utils/poolUtils.ts"],"names":[],"mappings":"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"}