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

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.
@@ -19,7 +19,10 @@ export type SolanaReceivableEvent = {
19
19
  currencyCode: number;
20
20
  maturityDate: number;
21
21
  };
22
- declare function getRecentActivities(poolId: string, first: number, skip: number, isDev: boolean, isTestnet: boolean, owner?: string): Promise<{
22
+ declare function getRecentActivities(poolId: string, first: number, skip: number, isDev: boolean, isTestnet: boolean, filters?: {
23
+ owner?: string;
24
+ events?: string[];
25
+ }): Promise<{
23
26
  totalCount: number;
24
27
  events: SolanaEvent[];
25
28
  } | undefined>;
@@ -4,16 +4,26 @@ exports.SolanaService = void 0;
4
4
  const graphql_request_1 = require("graphql-request");
5
5
  const config_1 = require("../utils/config");
6
6
  const request_1 = require("../utils/request");
7
- function getRecentActivities(poolId, first, skip, isDev, isTestnet, owner) {
7
+ function getRecentActivities(poolId, first, skip, isDev, isTestnet, filters) {
8
+ const { owner, events } = filters || {};
8
9
  const url = config_1.configUtil.getCampaignAPIUrl(isDev, isTestnet);
9
- let query = (0, graphql_request_1.gql) `
10
- query {
11
- poolActivityEvents(
10
+ let options = `
12
11
  poolId: "${poolId}",
13
12
  first: ${first},
14
13
  skip: ${skip},
15
14
  orderBy: "timestamp",
16
15
  orderDirection: "desc"
16
+ `;
17
+ if (owner) {
18
+ options += `, owner: "${owner}"`;
19
+ }
20
+ if (events) {
21
+ options += `, nameIn: ["${events.join('","')}"]`;
22
+ }
23
+ const query = (0, graphql_request_1.gql) `
24
+ query {
25
+ poolActivityEvents(
26
+ ${options}
17
27
  ) {
18
28
  totalCount
19
29
  events {
@@ -27,29 +37,6 @@ function getRecentActivities(poolId, first, skip, isDev, isTestnet, owner) {
27
37
  }
28
38
  }
29
39
  `;
30
- if (owner) {
31
- query = (0, graphql_request_1.gql) `
32
- query {
33
- poolActivityEvents(
34
- poolId: "${poolId}",
35
- owner: "${owner}",
36
- first: ${first},
37
- skip: ${skip},
38
- orderBy: "timestamp",
39
- orderDirection: "desc"
40
- ) {
41
- totalCount
42
- events {
43
- name
44
- blockNumber
45
- timestamp
46
- transactionHash
47
- owner
48
- amount
49
- }
50
- }
51
- }`;
52
- }
53
40
  return (0, request_1.requestPost)(url, JSON.stringify({ query }))
54
41
  .then((res) => {
55
42
  var _a;
@@ -1 +1 @@
1
- {"version":3,"file":"SolanaService.js","sourceRoot":"","sources":["../../../src/services/SolanaService.ts"],"names":[],"mappings":";;;AAAA,qDAAqC;AAErC,4CAA4C;AAC5C,8CAA8C;AAyB9C,SAAS,mBAAmB,CAC1B,MAAc,EACd,KAAa,EACb,IAAY,EACZ,KAAc,EACd,SAAkB,EAClB,KAAc;IAQd,MAAM,GAAG,GAAG,mBAAU,CAAC,iBAAiB,CAAC,KAAK,EAAE,SAAS,CAAC,CAAA;IAE1D,IAAI,KAAK,GAAG,IAAA,qBAAG,EAAA;;;mBAGE,MAAM;iBACR,KAAK;gBACN,IAAI;;;;;;;;;;;;;;;GAejB,CAAA;IACD,IAAI,KAAK,EAAE,CAAC;QACV,KAAK,GAAG,IAAA,qBAAG,EAAA;;;qBAGM,MAAM;oBACP,KAAK;mBACN,KAAK;kBACN,IAAI;;;;;;;;;;;;;;QAcd,CAAA;IACN,CAAC;IAED,OAAO,IAAA,qBAAW,EAQf,GAAG,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;SAC/B,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE;;QACZ,IAAI,GAAG,CAAC,MAAM,EAAE,CAAC;YACf,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;YACzB,OAAO,SAAS,CAAA;QAClB,CAAC;QACD,OAAO,MAAA,GAAG,CAAC,IAAI,0CAAE,kBAAkB,CAAA;IACrC,CAAC,CAAC;SACD,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;QACb,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;QAClB,OAAO,SAAS,CAAA;IAClB,CAAC,CAAC,CAAA;AACN,CAAC;AAED,SAAS,uBAAuB,CAC9B,MAAc,EACd,KAAa,EACb,IAAY,EACZ,KAAc,EACd,SAAkB;IAQlB,MAAM,GAAG,GAAG,mBAAU,CAAC,iBAAiB,CAAC,KAAK,EAAE,SAAS,CAAC,CAAA;IAE1D,MAAM,KAAK,GAAG,IAAA,qBAAG,EAAA;;;mBAGA,MAAM;iBACR,KAAK;gBACN,IAAI;;;;;;;;;;;;;;;;;;;GAmBjB,CAAA;IAED,OAAO,IAAA,qBAAW,EAQf,GAAG,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;SAC/B,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE;;QACZ,IAAI,GAAG,CAAC,MAAM,EAAE,CAAC;YACf,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;YACzB,OAAO,SAAS,CAAA;QAClB,CAAC;QACD,OAAO,MAAA,GAAG,CAAC,IAAI,0CAAE,uBAAuB,CAAA;IAC1C,CAAC,CAAC;SACD,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;QACb,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;QAClB,OAAO,SAAS,CAAA;IAClB,CAAC,CAAC,CAAA;AACN,CAAC;AAED;;;GAGG;AACU,QAAA,aAAa,GAAG;IAC3B,mBAAmB;IACnB,uBAAuB;CACxB,CAAA"}
1
+ {"version":3,"file":"SolanaService.js","sourceRoot":"","sources":["../../../src/services/SolanaService.ts"],"names":[],"mappings":";;;AAAA,qDAAqC;AAErC,4CAA4C;AAC5C,8CAA8C;AAyB9C,SAAS,mBAAmB,CAC1B,MAAc,EACd,KAAa,EACb,IAAY,EACZ,KAAc,EACd,SAAkB,EAClB,OAGC;IAQD,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,OAAO,IAAI,EAAE,CAAA;IACvC,MAAM,GAAG,GAAG,mBAAU,CAAC,iBAAiB,CAAC,KAAK,EAAE,SAAS,CAAC,CAAA;IAE1D,IAAI,OAAO,GAAG;mBACG,MAAM;iBACR,KAAK;gBACN,IAAI;;;OAGb,CAAA;IACL,IAAI,KAAK,EAAE,CAAC;QACV,OAAO,IAAI,aAAa,KAAK,GAAG,CAAA;IAClC,CAAC;IACD,IAAI,MAAM,EAAE,CAAC;QACX,OAAO,IAAI,eAAe,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAA;IAClD,CAAC;IAED,MAAM,KAAK,GAAG,IAAA,qBAAG,EAAA;;;YAGP,OAAO;;;;;;;;;;;;;GAahB,CAAA;IAED,OAAO,IAAA,qBAAW,EAQf,GAAG,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;SAC/B,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE;;QACZ,IAAI,GAAG,CAAC,MAAM,EAAE,CAAC;YACf,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;YACzB,OAAO,SAAS,CAAA;QAClB,CAAC;QACD,OAAO,MAAA,GAAG,CAAC,IAAI,0CAAE,kBAAkB,CAAA;IACrC,CAAC,CAAC;SACD,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;QACb,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;QAClB,OAAO,SAAS,CAAA;IAClB,CAAC,CAAC,CAAA;AACN,CAAC;AAED,SAAS,uBAAuB,CAC9B,MAAc,EACd,KAAa,EACb,IAAY,EACZ,KAAc,EACd,SAAkB;IAQlB,MAAM,GAAG,GAAG,mBAAU,CAAC,iBAAiB,CAAC,KAAK,EAAE,SAAS,CAAC,CAAA;IAE1D,MAAM,KAAK,GAAG,IAAA,qBAAG,EAAA;;;mBAGA,MAAM;iBACR,KAAK;gBACN,IAAI;;;;;;;;;;;;;;;;;;;GAmBjB,CAAA;IAED,OAAO,IAAA,qBAAW,EAQf,GAAG,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;SAC/B,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE;;QACZ,IAAI,GAAG,CAAC,MAAM,EAAE,CAAC;YACf,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;YACzB,OAAO,SAAS,CAAA;QAClB,CAAC;QACD,OAAO,MAAA,GAAG,CAAC,IAAI,0CAAE,uBAAuB,CAAA;IAC1C,CAAC,CAAC;SACD,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;QACb,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;QAClB,OAAO,SAAS,CAAA;IAClB,CAAC,CAAC,CAAA;AACN,CAAC;AAED;;;GAGG;AACU,QAAA,aAAa,GAAG;IAC3B,mBAAmB;IACnB,uBAAuB;CACxB,CAAA"}
@@ -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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"}
@@ -19,7 +19,10 @@ export type SolanaReceivableEvent = {
19
19
  currencyCode: number;
20
20
  maturityDate: number;
21
21
  };
22
- declare function getRecentActivities(poolId: string, first: number, skip: number, isDev: boolean, isTestnet: boolean, owner?: string): Promise<{
22
+ declare function getRecentActivities(poolId: string, first: number, skip: number, isDev: boolean, isTestnet: boolean, filters?: {
23
+ owner?: string;
24
+ events?: string[];
25
+ }): Promise<{
23
26
  totalCount: number;
24
27
  events: SolanaEvent[];
25
28
  } | undefined>;
@@ -1,16 +1,26 @@
1
1
  import { gql } from 'graphql-request';
2
2
  import { configUtil } from '../utils/config';
3
3
  import { requestPost } from '../utils/request';
4
- function getRecentActivities(poolId, first, skip, isDev, isTestnet, owner) {
4
+ function getRecentActivities(poolId, first, skip, isDev, isTestnet, filters) {
5
+ const { owner, events } = filters || {};
5
6
  const url = configUtil.getCampaignAPIUrl(isDev, isTestnet);
6
- let query = gql `
7
- query {
8
- poolActivityEvents(
7
+ let options = `
9
8
  poolId: "${poolId}",
10
9
  first: ${first},
11
10
  skip: ${skip},
12
11
  orderBy: "timestamp",
13
12
  orderDirection: "desc"
13
+ `;
14
+ if (owner) {
15
+ options += `, owner: "${owner}"`;
16
+ }
17
+ if (events) {
18
+ options += `, nameIn: ["${events.join('","')}"]`;
19
+ }
20
+ const query = gql `
21
+ query {
22
+ poolActivityEvents(
23
+ ${options}
14
24
  ) {
15
25
  totalCount
16
26
  events {
@@ -24,29 +34,6 @@ function getRecentActivities(poolId, first, skip, isDev, isTestnet, owner) {
24
34
  }
25
35
  }
26
36
  `;
27
- if (owner) {
28
- query = gql `
29
- query {
30
- poolActivityEvents(
31
- poolId: "${poolId}",
32
- owner: "${owner}",
33
- first: ${first},
34
- skip: ${skip},
35
- orderBy: "timestamp",
36
- orderDirection: "desc"
37
- ) {
38
- totalCount
39
- events {
40
- name
41
- blockNumber
42
- timestamp
43
- transactionHash
44
- owner
45
- amount
46
- }
47
- }
48
- }`;
49
- }
50
37
  return requestPost(url, JSON.stringify({ query }))
51
38
  .then((res) => {
52
39
  var _a;
@@ -1 +1 @@
1
- {"version":3,"file":"SolanaService.js","sourceRoot":"","sources":["../../src/services/SolanaService.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,iBAAiB,CAAA;AAErC,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AAC5C,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AAyB9C,SAAS,mBAAmB,CAC1B,MAAc,EACd,KAAa,EACb,IAAY,EACZ,KAAc,EACd,SAAkB,EAClB,KAAc;IAQd,MAAM,GAAG,GAAG,UAAU,CAAC,iBAAiB,CAAC,KAAK,EAAE,SAAS,CAAC,CAAA;IAE1D,IAAI,KAAK,GAAG,GAAG,CAAA;;;mBAGE,MAAM;iBACR,KAAK;gBACN,IAAI;;;;;;;;;;;;;;;GAejB,CAAA;IACD,IAAI,KAAK,EAAE,CAAC;QACV,KAAK,GAAG,GAAG,CAAA;;;qBAGM,MAAM;oBACP,KAAK;mBACN,KAAK;kBACN,IAAI;;;;;;;;;;;;;;QAcd,CAAA;IACN,CAAC;IAED,OAAO,WAAW,CAQf,GAAG,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;SAC/B,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE;;QACZ,IAAI,GAAG,CAAC,MAAM,EAAE,CAAC;YACf,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;YACzB,OAAO,SAAS,CAAA;QAClB,CAAC;QACD,OAAO,MAAA,GAAG,CAAC,IAAI,0CAAE,kBAAkB,CAAA;IACrC,CAAC,CAAC;SACD,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;QACb,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;QAClB,OAAO,SAAS,CAAA;IAClB,CAAC,CAAC,CAAA;AACN,CAAC;AAED,SAAS,uBAAuB,CAC9B,MAAc,EACd,KAAa,EACb,IAAY,EACZ,KAAc,EACd,SAAkB;IAQlB,MAAM,GAAG,GAAG,UAAU,CAAC,iBAAiB,CAAC,KAAK,EAAE,SAAS,CAAC,CAAA;IAE1D,MAAM,KAAK,GAAG,GAAG,CAAA;;;mBAGA,MAAM;iBACR,KAAK;gBACN,IAAI;;;;;;;;;;;;;;;;;;;GAmBjB,CAAA;IAED,OAAO,WAAW,CAQf,GAAG,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;SAC/B,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE;;QACZ,IAAI,GAAG,CAAC,MAAM,EAAE,CAAC;YACf,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;YACzB,OAAO,SAAS,CAAA;QAClB,CAAC;QACD,OAAO,MAAA,GAAG,CAAC,IAAI,0CAAE,uBAAuB,CAAA;IAC1C,CAAC,CAAC;SACD,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;QACb,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;QAClB,OAAO,SAAS,CAAA;IAClB,CAAC,CAAC,CAAA;AACN,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG;IAC3B,mBAAmB;IACnB,uBAAuB;CACxB,CAAA"}
1
+ {"version":3,"file":"SolanaService.js","sourceRoot":"","sources":["../../src/services/SolanaService.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,iBAAiB,CAAA;AAErC,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AAC5C,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AAyB9C,SAAS,mBAAmB,CAC1B,MAAc,EACd,KAAa,EACb,IAAY,EACZ,KAAc,EACd,SAAkB,EAClB,OAGC;IAQD,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,OAAO,IAAI,EAAE,CAAA;IACvC,MAAM,GAAG,GAAG,UAAU,CAAC,iBAAiB,CAAC,KAAK,EAAE,SAAS,CAAC,CAAA;IAE1D,IAAI,OAAO,GAAG;mBACG,MAAM;iBACR,KAAK;gBACN,IAAI;;;OAGb,CAAA;IACL,IAAI,KAAK,EAAE,CAAC;QACV,OAAO,IAAI,aAAa,KAAK,GAAG,CAAA;IAClC,CAAC;IACD,IAAI,MAAM,EAAE,CAAC;QACX,OAAO,IAAI,eAAe,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAA;IAClD,CAAC;IAED,MAAM,KAAK,GAAG,GAAG,CAAA;;;YAGP,OAAO;;;;;;;;;;;;;GAahB,CAAA;IAED,OAAO,WAAW,CAQf,GAAG,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;SAC/B,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE;;QACZ,IAAI,GAAG,CAAC,MAAM,EAAE,CAAC;YACf,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;YACzB,OAAO,SAAS,CAAA;QAClB,CAAC;QACD,OAAO,MAAA,GAAG,CAAC,IAAI,0CAAE,kBAAkB,CAAA;IACrC,CAAC,CAAC;SACD,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;QACb,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;QAClB,OAAO,SAAS,CAAA;IAClB,CAAC,CAAC,CAAA;AACN,CAAC;AAED,SAAS,uBAAuB,CAC9B,MAAc,EACd,KAAa,EACb,IAAY,EACZ,KAAc,EACd,SAAkB;IAQlB,MAAM,GAAG,GAAG,UAAU,CAAC,iBAAiB,CAAC,KAAK,EAAE,SAAS,CAAC,CAAA;IAE1D,MAAM,KAAK,GAAG,GAAG,CAAA;;;mBAGA,MAAM;iBACR,KAAK;gBACN,IAAI;;;;;;;;;;;;;;;;;;;GAmBjB,CAAA;IAED,OAAO,WAAW,CAQf,GAAG,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;SAC/B,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE;;QACZ,IAAI,GAAG,CAAC,MAAM,EAAE,CAAC;YACf,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;YACzB,OAAO,SAAS,CAAA;QAClB,CAAC;QACD,OAAO,MAAA,GAAG,CAAC,IAAI,0CAAE,uBAAuB,CAAA;IAC1C,CAAC,CAAC;SACD,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;QACb,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;QAClB,OAAO,SAAS,CAAA;IAClB,CAAC,CAAC,CAAA;AACN,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG;IAC3B,mBAAmB;IACnB,uBAAuB;CACxB,CAAA"}
@@ -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":"AAAA,OAAO,EAAE,EAAE,EAAE,MAAM,mBAAmB,CAAA;AAEtC,OAAO,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAA;AAE3C,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAC9B,gBAAwB,EACxB,UAAkB,EAClB,2BAAmC,EACnC,oBAA4B,EAC5B,YAAgB,EAChB,oBAAwB,EACxB,oBAAwB,EACxB,2BAAmC,EACnC,qBAA6B,EAC7B,2BAAmC,EAKnC,EAAE;IACF,MAAM,gBAAgB,GAAG,gBAAgB,CAAC,QAAQ,EAAE,CAAA;IACpD,MAAM,GAAG,GAAG,UAAU,GAAG,gBAAgB,CAAA;IAEzC,MAAM,mBAAmB,GAAG,oBAAoB,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAA;IAC1E,MAAM,eAAe,GAAG,YAAY;SACjC,GAAG,CAAC,mBAAmB,CAAC;SACxB,GAAG,CAAC,oBAAoB,CAAC,CAAA;IAC5B,MAAM,2BAA2B,GAAG,eAAe;SAChD,GAAG,CAAC,oBAAoB,CAAC;SACzB,QAAQ,EAAE,CAAA;IAEb,IAAI,YAAY,GAAG,YAAY,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,2BAA2B,GAAG,CAAC,CAAC,CAAC,CAAA;IAC5E,IAAI,YAAY,GAAG,YAAY,CAAC,GAAG,CAAC,YAAY,CAAC,CAAA;IACjD,IAAI,2BAA2B,GAAG,2BAA2B,EAAE,CAAC;QAC9D,YAAY,GAAG,oBAAoB,CAAA;QACnC,YAAY,GAAG,eAAe,CAAA;IAChC,CAAC;IAED,MAAM,WAAW,GAAG,YAAY;SAC7B,GAAG,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG,gBAAgB,CAAC,CAAC,CAAC;SAC/C,GAAG,CAAC,gBAAgB,CAAC,CAAA;IACxB,MAAM,mBAAmB,GACvB,CAAC,CAAC,GAAG,gBAAgB,GAAG,gBAAgB,CAAC;QACzC,CAAC,CAAC;YACA,2BAA2B,GAAG,gBAAgB;YAC9C,oBAAoB,GAAG,gBAAgB,CAAC,CAAA;IAC5C,MAAM,cAAc,GAAG,WAAW;SAC/B,GAAG,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,mBAAmB,GAAG,gBAAgB,CAAC,CAAC,CAAC;SAC/D,GAAG,CAAC,gBAAgB,CAAC,CAAA;IACxB,MAAM,UAAU,GACd,cAAc,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC,QAAQ,EAAE;QACjE,gBAAgB,CAAA;IAElB,IAAI,gBAAgB,GAAG,CAAC,CAAA;IACxB,IAAI,YAAY,GAAG,IAAI,EAAE,CAAC,CAAC,CAAC,CAAA;IAC5B,IAAI,qBAAqB,GAAG,CAAC,EAAE,CAAC;QAC9B,gBAAgB,GAAG,qBAAqB,GAAG,gBAAgB,CAAA;QAC3D,YAAY,GAAG,cAAc,CAAC,GAAG,CAC/B,YAAY;aACT,GAAG,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,gBAAgB,GAAG,gBAAgB,CAAC,CAAC,CAAC;aAC5D,GAAG,CAAC,gBAAgB,CAAC,CACzB,CAAA;IACH,CAAC;SAAM,CAAC;QACN,MAAM,cAAc,GAAG,2BAA2B,GAAG,gBAAgB,CAAA;QACrE,MAAM,YAAY,GAAG,YAAY;aAC9B,GAAG,CACF,IAAI,EAAE,CACJ,IAAI,CAAC,KAAK,CACR,mBAAmB,GAAG,CAAC,CAAC,GAAG,cAAc,CAAC,GAAG,GAAG,GAAG,gBAAgB,CACpE,CACF,CACF;aACA,GAAG,CAAC,gBAAgB,CAAC,CAAA;QACxB,gBAAgB,GAAG,mBAAmB,GAAG,CAAC,CAAC,GAAG,cAAc,CAAC,GAAG,GAAG,CAAA;QACnE,YAAY,GAAG,cAAc,CAAC,GAAG,CAAC,YAAY,CAAC,CAAA;IACjD,CAAC;IAED,MAAM,gBAAgB,GACpB,YAAY,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC,QAAQ,EAAE;QAC/D,gBAAgB,CAAA;IAElB,OAAO;QACL,UAAU;QACV,gBAAgB;QAChB,gBAAgB;KACjB,CAAA;AACH,CAAC,CAAA"}
1
+ {"version":3,"file":"poolUtils.js","sourceRoot":"","sources":["../../../src/solana/utils/poolUtils.ts"],"names":[],"mappings":"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"}