impermax-sdk 1.2.14 → 1.2.16

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.
@@ -21,4 +21,5 @@ export default class OffchainAccount {
21
21
  getSupplyPositions(): Promise<FactoryIndex<Address[]>>;
22
22
  getLendingVaultsSuppliedUSD(): Promise<number>;
23
23
  getLendingVaultsEarningsUSD(): Promise<number>;
24
+ getLendingVaultsYearlyYieldUSD(): Promise<number>;
24
25
  }
@@ -112,5 +112,18 @@ class OffchainAccount {
112
112
  return earningsUSD;
113
113
  });
114
114
  }
115
+ getLendingVaultsYearlyYieldUSD() {
116
+ return __awaiter(this, void 0, void 0, function* () {
117
+ let yieldUSD = 0;
118
+ const lendingVaultUserData = yield this.getLendingVaultsUserData();
119
+ if (lendingVaultUserData === null)
120
+ return 0;
121
+ for (const address in lendingVaultUserData) {
122
+ const lendingVault = yield this.getLendingVault(address);
123
+ yieldUSD += (yield lendingVault.getValue()) * (yield lendingVault.getPoolToken().getSupplyAPR());
124
+ }
125
+ return yieldUSD;
126
+ });
127
+ }
115
128
  }
116
129
  exports.default = OffchainAccount;
@@ -7,6 +7,7 @@ export default class OffchainAccountLendingVault extends OffchainAccountPoolToke
7
7
  protected readonly poolToken: OffchainLendingVault;
8
8
  constructor(account: OffchainAccount, lendingVault: OffchainLendingVault);
9
9
  getAccount: () => OffchainAccount;
10
+ getPoolToken: () => OffchainLendingVault;
10
11
  private getVaultAddress;
11
12
  getLendingVaultPosition(): Promise<LendingVaultPosition | undefined>;
12
13
  getAmount(): Promise<number>;
@@ -17,6 +17,7 @@ class OffchainAccountLendingVault extends offchainAccountPoolToken_1.default {
17
17
  constructor(account, lendingVault) {
18
18
  super();
19
19
  this.getAccount = () => this.account;
20
+ this.getPoolToken = () => this.poolToken;
20
21
  this.getVaultAddress = () => this.poolToken.getVaultAddress();
21
22
  this.account = account;
22
23
  this.poolToken = lendingVault;
@@ -9,6 +9,9 @@ export default abstract class OnchainPoolToken {
9
9
  exchangeRate?: Promise<number>;
10
10
  totalBalance?: Promise<number>;
11
11
  };
12
+ protected lockedCache: {
13
+ exchangeRate?: Promise<number>;
14
+ };
12
15
  cleanCache(): void;
13
16
  abstract getOffchainPoolToken(): Promise<OffchainPoolToken>;
14
17
  abstract getPoolTokenAddress(): Promise<Address>;
@@ -28,4 +31,5 @@ export default abstract class OnchainPoolToken {
28
31
  getTotalBalanceUSD(): Promise<number>;
29
32
  protected initializeExchangeRate(): Promise<number>;
30
33
  getExchangeRate(): Promise<number>;
34
+ getLockedExchangeRate(): Promise<number>;
31
35
  }
@@ -14,6 +14,8 @@ const ether_utils_1 = require("../utils/ether-utils");
14
14
  class OnchainPoolToken {
15
15
  constructor() {
16
16
  this.cache = {};
17
+ // Cache that can't be erased
18
+ this.lockedCache = {};
17
19
  }
18
20
  cleanCache() {
19
21
  this.cache = {};
@@ -67,7 +69,7 @@ class OnchainPoolToken {
67
69
  return __awaiter(this, void 0, void 0, function* () {
68
70
  if (!(0, utils_1.isValidNumber)(amount))
69
71
  return null;
70
- const exchangeRate = yield this.getExchangeRate();
72
+ const exchangeRate = yield this.getLockedExchangeRate();
71
73
  return (0, ether_utils_1.decimalToBalance)(amount / exchangeRate, yield this.getDecimals());
72
74
  });
73
75
  }
@@ -75,7 +77,7 @@ class OnchainPoolToken {
75
77
  return __awaiter(this, void 0, void 0, function* () {
76
78
  if (!amount)
77
79
  return null;
78
- const exchangeRate = yield this.getExchangeRate();
80
+ const exchangeRate = yield this.getLockedExchangeRate();
79
81
  return parseFloat(amount.toString()) * exchangeRate / Math.pow(10, yield this.getDecimals());
80
82
  });
81
83
  }
@@ -116,5 +118,12 @@ class OnchainPoolToken {
116
118
  return this.cache.exchangeRate;
117
119
  });
118
120
  }
121
+ getLockedExchangeRate() {
122
+ return __awaiter(this, void 0, void 0, function* () {
123
+ if (!this.lockedCache.exchangeRate)
124
+ this.lockedCache.exchangeRate = this.getExchangeRate();
125
+ return this.lockedCache.exchangeRate;
126
+ });
127
+ }
119
128
  }
120
129
  exports.default = OnchainPoolToken;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "impermax-sdk",
3
- "version": "1.2.14",
3
+ "version": "1.2.16",
4
4
  "description": "",
5
5
  "main": "./lib/index.js",
6
6
  "module": "./lib/index.js",