curvance 1.0.22 → 1.0.24

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.
@@ -105,13 +105,13 @@ class CToken {
105
105
  return amount.mul(rate_percent);
106
106
  }
107
107
  /**
108
- * Grabs the collateralization ratio and converts it to a percentage.
109
- * @returns percentage representation of the LTV (e.g. 0.75 for 75% LTV)
108
+ * Grabs the collateralization ratio and converts it to a Percentage.
109
+ * @returns Percentage representation of the LTV (e.g. 0.75 for 75% LTV)
110
110
  */
111
111
  ltv() {
112
112
  return (0, decimal_js_1.default)(this.cache.collRatio).div(helpers_1.BPS);
113
113
  }
114
- getAsset(asErc20 = true) {
114
+ getAsset(asErc20) {
115
115
  return asErc20 ? new ERC20_1.ERC20(this.provider, this.cache.asset.address, this.cache.asset) : this.cache.asset.address;
116
116
  }
117
117
  getPrice(asset = false, lower = false) {
@@ -144,7 +144,7 @@ class CToken {
144
144
  }
145
145
  async fetchDecimals() {
146
146
  const decimals = await this.contract.decimals();
147
- this.cache.asset.decimals = decimals;
147
+ this.cache.decimals = decimals;
148
148
  return decimals;
149
149
  }
150
150
  async fetchIsBorrowable() {
@@ -162,7 +162,7 @@ class CToken {
162
162
  }
163
163
  async fetchSymbol() {
164
164
  const symbol = await this.contract.symbol();
165
- this.cache.asset.symbol = symbol;
165
+ this.cache.symbol = symbol;
166
166
  return symbol;
167
167
  }
168
168
  async fetchName() {
@@ -1 +1 @@
1
- {"version":3,"file":"CToken.js","sourceRoot":"","sources":["../../src/classes/CToken.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"CToken.js","sourceRoot":"","sources":["../../src/classes/CToken.ts"],"names":[],"mappings":"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"}
@@ -11,6 +11,7 @@ export declare class Faucet {
11
11
  provider: curvance_provider;
12
12
  address: address;
13
13
  contract: Contract & IFaucet;
14
+ token_symbols: string[];
14
15
  constructor(provider: curvance_provider, address: address);
15
16
  lastClaimed(user: address, token: address): Promise<bigint>;
16
17
  multiLastClaimed(user: address, tokens: address[]): Promise<Date[]>;
@@ -1 +1 @@
1
- {"version":3,"file":"Faucet.d.ts","sourceRoot":"","sources":["../../src/classes/Faucet.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAC;AAClC,OAAO,EAAE,mBAAmB,EAAE,MAAM,QAAQ,CAAC;AAC7C,OAAO,EAAE,OAAO,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC;AAEtD,MAAM,WAAW,OAAO;IACpB,eAAe,CAAC,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IAChE,gBAAgB,CAAC,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;IACtE,eAAe,CAAC,MAAM,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC;IACvD,KAAK,CAAC,KAAK,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAAC;CACzD;AAED,qBAAa,MAAM;IACf,QAAQ,EAAE,iBAAiB,CAAC;IAC5B,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,QAAQ,GAAG,OAAO,CAAC;gBAEjB,QAAQ,EAAE,iBAAiB,EAAE,OAAO,EAAE,OAAO;IAWnD,WAAW,CAAC,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO;IAIzC,gBAAgB,CAAC,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE;IAWjD,eAAe,CAAC,MAAM,EAAE,OAAO,EAAE;;;IAYjC,KAAK,CAAC,KAAK,EAAE,OAAO,EAAE;CAG/B"}
1
+ {"version":3,"file":"Faucet.d.ts","sourceRoot":"","sources":["../../src/classes/Faucet.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAC;AAClC,OAAO,EAAE,mBAAmB,EAAE,MAAM,QAAQ,CAAC;AAC7C,OAAO,EAAE,OAAO,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC;AAEtD,MAAM,WAAW,OAAO;IACpB,eAAe,CAAC,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IAChE,gBAAgB,CAAC,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;IACtE,eAAe,CAAC,MAAM,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC;IACvD,KAAK,CAAC,KAAK,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAAC;CACzD;AAED,qBAAa,MAAM;IACf,QAAQ,EAAE,iBAAiB,CAAC;IAC5B,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,QAAQ,GAAG,OAAO,CAAC;IAE7B,aAAa,WAQX;gBAEU,QAAQ,EAAE,iBAAiB,EAAE,OAAO,EAAE,OAAO;IAWnD,WAAW,CAAC,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO;IAIzC,gBAAgB,CAAC,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE;IAWjD,eAAe,CAAC,MAAM,EAAE,OAAO,EAAE;;;IAYjC,KAAK,CAAC,KAAK,EAAE,OAAO,EAAE;CAG/B"}
@@ -6,6 +6,15 @@ class Faucet {
6
6
  provider;
7
7
  address;
8
8
  contract;
9
+ token_symbols = [
10
+ "USDC",
11
+ "WBTC",
12
+ "SWETH",
13
+ "LUSD",
14
+ "mkUSD",
15
+ "mETH",
16
+ "mUSD"
17
+ ];
9
18
  constructor(provider, address) {
10
19
  this.provider = provider;
11
20
  this.address = address;
@@ -1 +1 @@
1
- {"version":3,"file":"Faucet.js","sourceRoot":"","sources":["../../src/classes/Faucet.ts"],"names":[],"mappings":";;;AAAA,wCAA2C;AAY3C,MAAa,MAAM;IACf,QAAQ,CAAoB;IAC5B,OAAO,CAAU;IACjB,QAAQ,CAAqB;IAE7B,YAAY,QAA2B,EAAE,OAAgB;QACrD,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,QAAQ,GAAG,IAAA,uBAAa,EAAU,QAAQ,EAAE,IAAI,CAAC,OAAO,EAAE;YAC3D,8EAA8E;YAC9E,oFAAoF;YACpF,kEAAkE;YAClE,0CAA0C;SAC7C,CAAC,CAAC;IACP,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,IAAa,EAAE,KAAc;QAC3C,OAAO,IAAI,CAAC,QAAQ,CAAC,eAAe,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IACtD,CAAC;IAED,KAAK,CAAC,gBAAgB,CAAC,IAAa,EAAE,MAAiB;QACnD,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,gBAAgB,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QAElE,IAAI,WAAW,GAAW,EAAE,CAAC;QAC7B,KAAI,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;YACxB,WAAW,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC;QACrD,CAAC;QAED,OAAO,WAAW,CAAC;IACvB,CAAC;IAED,KAAK,CAAC,eAAe,CAAC,MAAiB;QACnC,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;QACjE,IAAI,GAAG,GAAgC,EAAE,CAAC;QAC1C,KAAI,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACpC,MAAM,KAAK,GAAG,MAAM,CAAC,CAAC,CAAE,CAAC;YACzB,MAAM,SAAS,GAAG,YAAY,CAAC,CAAC,CAAE,CAAC;YACnC,GAAG,CAAC,KAAK,CAAC,GAAG,SAAS,CAAC;QAC3B,CAAC;QAED,OAAO,GAAG,CAAC;IACf,CAAC;IAED,KAAK,CAAC,KAAK,CAAC,KAAgB;QACxB,OAAO,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IACtC,CAAC;CACJ;AA9CD,wBA8CC"}
1
+ {"version":3,"file":"Faucet.js","sourceRoot":"","sources":["../../src/classes/Faucet.ts"],"names":[],"mappings":";;;AAAA,wCAA2C;AAY3C,MAAa,MAAM;IACf,QAAQ,CAAoB;IAC5B,OAAO,CAAU;IACjB,QAAQ,CAAqB;IAE7B,aAAa,GAAG;QACZ,MAAM;QACN,MAAM;QACN,OAAO;QACP,MAAM;QACN,OAAO;QACP,MAAM;QACN,MAAM;KACT,CAAC;IAEF,YAAY,QAA2B,EAAE,OAAgB;QACrD,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,QAAQ,GAAG,IAAA,uBAAa,EAAU,QAAQ,EAAE,IAAI,CAAC,OAAO,EAAE;YAC3D,8EAA8E;YAC9E,oFAAoF;YACpF,kEAAkE;YAClE,0CAA0C;SAC7C,CAAC,CAAC;IACP,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,IAAa,EAAE,KAAc;QAC3C,OAAO,IAAI,CAAC,QAAQ,CAAC,eAAe,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IACtD,CAAC;IAED,KAAK,CAAC,gBAAgB,CAAC,IAAa,EAAE,MAAiB;QACnD,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,gBAAgB,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QAElE,IAAI,WAAW,GAAW,EAAE,CAAC;QAC7B,KAAI,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;YACxB,WAAW,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC;QACrD,CAAC;QAED,OAAO,WAAW,CAAC;IACvB,CAAC;IAED,KAAK,CAAC,eAAe,CAAC,MAAiB;QACnC,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;QACjE,IAAI,GAAG,GAAgC,EAAE,CAAC;QAC1C,KAAI,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACpC,MAAM,KAAK,GAAG,MAAM,CAAC,CAAC,CAAE,CAAC;YACzB,MAAM,SAAS,GAAG,YAAY,CAAC,CAAC,CAAE,CAAC;YACnC,GAAG,CAAC,KAAK,CAAC,GAAG,SAAS,CAAC;QAC3B,CAAC;QAED,OAAO,GAAG,CAAC;IACf,CAAC;IAED,KAAK,CAAC,KAAK,CAAC,KAAgB;QACxB,OAAO,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IACtC,CAAC;CACJ;AAxDD,wBAwDC"}
@@ -3,7 +3,7 @@ import { Contract } from "ethers";
3
3
  import { DynamicMarketData, ProtocolReader, StaticMarketData, UserMarket } from "./ProtocolReader";
4
4
  import { BorrowableCToken, CToken } from "./CToken";
5
5
  import { Decimal } from "decimal.js";
6
- import { address, curvance_provider, TokenInput, USD } from "../types";
6
+ import { address, curvance_provider, Percentage, TokenInput, USD } from "../types";
7
7
  import { OracleManager } from "./OracleManager";
8
8
  export interface Plugins {
9
9
  simplePositionManager?: address;
@@ -54,7 +54,9 @@ export declare class Market {
54
54
  deploy: DeployData;
55
55
  };
56
56
  constructor(provider: curvance_provider, static_data: StaticMarketData, dynamic_data: DynamicMarketData, user_data: UserMarket, deploy_data: DeployData, oracle_manager: OracleManager, reader: ProtocolReader);
57
+ /** @returns {string} - The name of the market at deployment. */
57
58
  get name(): string;
59
+ /** @returns {Plugins} - The address of the market's plugins by deploy name. */
58
60
  get plugins(): Plugins;
59
61
  /** @returns {bigint} - The length of the cooldown period in seconds. */
60
62
  get cooldownLength(): bigint;
@@ -68,9 +70,11 @@ export declare class Market {
68
70
  get userDebt(): Decimal;
69
71
  /** @returns {Decimal} - The user's maximum debt in USD. */
70
72
  get userMaxDebt(): Decimal;
73
+ /** @returns {Decimal} - The user's remaining credit in USD or in the token amount */
74
+ get userRemainingCredit(): USD;
71
75
  /**
72
76
  * Get the user's position health.
73
- * @returns {Decimal | null} - The user's position health percentage or null if infinity
77
+ * @returns {Decimal | null} - The user's position health Percentage or null if infinity
74
78
  */
75
79
  get positionHealth(): Decimal | null;
76
80
  /**
@@ -83,13 +87,25 @@ export declare class Market {
83
87
  * @returns {Decimal} - The user's net position in USD.
84
88
  */
85
89
  get userNet(): Decimal;
90
+ /** @returns Market LTV */
86
91
  get ltv(): string | {
87
92
  min: Decimal;
88
93
  max: Decimal;
89
94
  };
95
+ /** @returns Total market deposits */
90
96
  get tvl(): Decimal;
97
+ /** @returns Total market debt */
91
98
  get totalDebt(): Decimal;
99
+ /** @returns Total market collateral */
92
100
  get totalCollateral(): Decimal;
101
+ /**
102
+ * Returns what tokens eligible and ineligible to borrow from
103
+ * @returns What tokens can and cannot be borrowed from
104
+ */
105
+ getBorrowableCTokens(): {
106
+ eligible: BorrowableCToken[];
107
+ ineligible: BorrowableCToken[];
108
+ };
93
109
  /**
94
110
  * Get the total user deposits change based on the provided rate.
95
111
  * @param rate - What rate to calculate the change for (ex: 'day')
@@ -108,39 +124,120 @@ export declare class Market {
108
124
  * @returns The total user net change (ex: 50, which would be $50/day)
109
125
  */
110
126
  getUserNetChange(rate: ChangeRate): Decimal;
111
- highestApy(): Decimal;
127
+ /**
128
+ * Searchs through all tokens and finds highest APY
129
+ * @returns The highest APY among all tokens
130
+ */
131
+ highestApy(): Percentage;
132
+ /**
133
+ * Does this market have the ability to borrow
134
+ * @returns True if borrowing is allowed, false otherwise
135
+ */
112
136
  hasBorrowing(): boolean;
137
+ /**
138
+ * Gets the market status of
139
+ * @param account - Wallet address
140
+ * @returns collateral, max debt, debt for the market
141
+ */
113
142
  statusOf(account: address): Promise<{
114
143
  collateral: bigint;
115
144
  maxDebt: bigint;
116
145
  debt: bigint;
117
146
  }>;
118
- previewAssetImpact(user: address, collateral_ctoken: CToken, debt_ctoken: BorrowableCToken, deposit_amount: TokenInput, borrow_amount: TokenInput): Promise<{
119
- supply: bigint;
120
- borrow: bigint;
121
- earn: bigint;
147
+ /**
148
+ * Preview the impact of the user descision for their deposit/borrow/leverage
149
+ * @param user - Wallet address
150
+ * @param collateral_ctoken - The collateral token
151
+ * @param debt_ctoken - The debt token
152
+ * @param deposit_amount - The colalteral amount
153
+ * @param borrow_amount - The debt amount
154
+ * @returns Supply, borrow & earn rates
155
+ */
156
+ previewAssetImpact(user: address, collateral_ctoken: CToken, debt_ctoken: BorrowableCToken, deposit_amount: TokenInput, borrow_amount: TokenInput, rate_change: ChangeRate): Promise<{
157
+ supply: {
158
+ percent: Decimal;
159
+ change: Decimal;
160
+ };
161
+ borrow: {
162
+ percent: Decimal;
163
+ change: Decimal;
164
+ };
165
+ earn: {
166
+ percent: Decimal;
167
+ change: Decimal;
168
+ };
122
169
  }>;
170
+ /**
171
+ * Grabs the new position health when doing a deposit
172
+ * @param ctoken - Token you are expecting to deposit on
173
+ * @param collateral_change - Amount of new collateral in USD
174
+ * @returns The new position health
175
+ */
123
176
  previewPositionHealthDeposit(ctoken: CToken, collateral_change: USD): Promise<Decimal | null>;
177
+ /**
178
+ * Grabs the new position health when doing a borrow
179
+ * @param debt_change - Amount of new debt in USD
180
+ * @returns The new position health
181
+ */
124
182
  previewPositionHealthBorrow(debt_change: USD): Promise<Decimal | null>;
183
+ /**
184
+ * Get liquidation values of for a given user
185
+ * @param account - user
186
+ * @returns The liquidation values of the user
187
+ */
125
188
  liquidationValuesOf(account: address): Promise<{
126
189
  soft: bigint;
127
190
  hard: bigint;
128
191
  debt: bigint;
129
192
  }>;
193
+ /**
194
+ * Grab the current liquidation status of
195
+ * @param account - Account you wanna check liquidation status of on
196
+ * @param collateralToken - What token to use as collateral
197
+ * @param debtToken - What token to use as debt
198
+ * @returns The liquidation status of the account
199
+ */
130
200
  liquidationStatusOf(account: address, collateralToken: address, debtToken: address): Promise<{
131
201
  lFactor: bigint;
132
202
  collateralPrice: bigint;
133
203
  debtPrice: bigint;
134
204
  }>;
205
+ /**
206
+ * Grabs the new liquidity values based on changes
207
+ * @param account - The user's account address
208
+ * @param cTokenModified - The ctoken you are modifiying
209
+ * @param redemptionShares - Shares being redeemed
210
+ * @param borrowAssets - Amount of assets being borrowed
211
+ * @returns An object containing the hypothetical liquidity values
212
+ */
135
213
  hypotheticalLiquidityOf(account: address, cTokenModified: address, redemptionShares: bigint, borrowAssets: bigint): Promise<{
136
214
  collateralSurplus: bigint;
137
215
  liquidityDeficit: bigint;
138
216
  positionsToClose: boolean[];
139
217
  }>;
218
+ /**
219
+ * Fetch the expiration date of a user's cooldown period
220
+ * @param account - The user's account address
221
+ * @param fetch - Whether to fetch the cooldown length from the contract
222
+ * @returns The expiration date of the cooldown period or null if not in cooldown
223
+ */
140
224
  expiresAt(account: address, fetch?: boolean): Promise<Date | null>;
141
- multiHoldExpiresAt(markets: Market[], reader: ProtocolReader): Promise<{
225
+ /**
226
+ * Fetch multiple market cooldown expirations
227
+ * @param markets - Markets you want to search
228
+ * @returns An object mapping market addresses to their cooldown expiration dates OR null if its not in cooldown
229
+ */
230
+ multiHoldExpiresAt(markets: Market[]): Promise<{
142
231
  [address: `0x${string}`]: Date | null;
143
232
  }>;
233
+ /**
234
+ * Grab all the markets available and set them up using the protocol reader efficient RPC calls / API cached calls
235
+ * @param provider - The RPC provider
236
+ * @param reader - instace of the ProtocolReader class
237
+ * @param oracle_manager - instance of the OracleManager class
238
+ * @param all_deploy_data - Deploy data
239
+ * @returns An array of Market instances setup with protocol reader data
240
+ */
144
241
  static getAll(provider: curvance_provider, reader: ProtocolReader, oracle_manager: OracleManager, all_deploy_data: {
145
242
  [key: string]: any;
146
243
  }): Promise<Market[]>;
@@ -1 +1 @@
1
- {"version":3,"file":"Market.d.ts","sourceRoot":"","sources":["../../src/classes/Market.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Market.d.ts","sourceRoot":"","sources":["../../src/classes/Market.ts"],"names":[],"mappings":"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"}
@@ -41,7 +41,9 @@ class Market {
41
41
  }
42
42
  }
43
43
  }
44
+ /** @returns {string} - The name of the market at deployment. */
44
45
  get name() { return this.cache.deploy.name; }
46
+ /** @returns {Plugins} - The address of the market's plugins by deploy name. */
45
47
  get plugins() { return this.cache.deploy.plugins ?? {}; }
46
48
  /** @returns {bigint} - The length of the cooldown period in seconds. */
47
49
  get cooldownLength() { return this.cache.static.cooldownLength; }
@@ -55,9 +57,14 @@ class Market {
55
57
  get userDebt() { return (0, helpers_1.toDecimal)(this.cache.user.debt, 18n); }
56
58
  /** @returns {Decimal} - The user's maximum debt in USD. */
57
59
  get userMaxDebt() { return (0, helpers_1.toDecimal)(this.cache.user.maxDebt, 18n); }
60
+ /** @returns {Decimal} - The user's remaining credit in USD or in the token amount */
61
+ get userRemainingCredit() {
62
+ const remaining = this.cache.user.maxDebt - this.cache.user.debt;
63
+ return (0, helpers_1.toDecimal)(remaining, 18n);
64
+ }
58
65
  /**
59
66
  * Get the user's position health.
60
- * @returns {Decimal | null} - The user's position health percentage or null if infinity
67
+ * @returns {Decimal | null} - The user's position health Percentage or null if infinity
61
68
  */
62
69
  get positionHealth() {
63
70
  return this.cache.user.positionHealth == helpers_1.UINT256_MAX ? null : (0, decimal_js_1.Decimal)(this.cache.user.positionHealth).div(helpers_1.WAD_DECIMAL);
@@ -80,6 +87,8 @@ class Market {
80
87
  get userNet() {
81
88
  return this.userDeposits.sub(this.userDebt);
82
89
  }
90
+ /** @returns Market LTV */
91
+ // TODO: This is probably wrong
83
92
  get ltv() {
84
93
  if (this.tokens.length === 0) {
85
94
  return { min: new decimal_js_1.Decimal(0), max: new decimal_js_1.Decimal(0) };
@@ -100,6 +109,7 @@ class Market {
100
109
  }
101
110
  return `${min.mul(100)}% - ${max.mul(100)}%`;
102
111
  }
112
+ /** @returns Total market deposits */
103
113
  get tvl() {
104
114
  let marketTvl = new decimal_js_1.Decimal(0);
105
115
  for (const token of this.tokens) {
@@ -107,6 +117,7 @@ class Market {
107
117
  }
108
118
  return marketTvl;
109
119
  }
120
+ /** @returns Total market debt */
110
121
  get totalDebt() {
111
122
  let marketDebt = new decimal_js_1.Decimal(0);
112
123
  for (const token of this.tokens) {
@@ -116,6 +127,7 @@ class Market {
116
127
  }
117
128
  return marketDebt;
118
129
  }
130
+ /** @returns Total market collateral */
119
131
  get totalCollateral() {
120
132
  let marketCollateral = new decimal_js_1.Decimal(0);
121
133
  for (const token of this.tokens) {
@@ -123,6 +135,27 @@ class Market {
123
135
  }
124
136
  return marketCollateral;
125
137
  }
138
+ /**
139
+ * Returns what tokens eligible and ineligible to borrow from
140
+ * @returns What tokens can and cannot be borrowed from
141
+ */
142
+ getBorrowableCTokens() {
143
+ const result = {
144
+ eligible: [],
145
+ ineligible: []
146
+ };
147
+ for (const token of this.tokens) {
148
+ if (token.isBorrowable) {
149
+ if (token.getUserCollateral(false) > 0) {
150
+ result.ineligible.push(token);
151
+ }
152
+ else {
153
+ result.eligible.push(token);
154
+ }
155
+ }
156
+ }
157
+ return result;
158
+ }
126
159
  /**
127
160
  * Get the total user deposits change based on the provided rate.
128
161
  * @param rate - What rate to calculate the change for (ex: 'day')
@@ -162,6 +195,10 @@ class Market {
162
195
  const debt = this.getUserDebtChange(rate);
163
196
  return earn.sub(debt);
164
197
  }
198
+ /**
199
+ * Searchs through all tokens and finds highest APY
200
+ * @returns The highest APY among all tokens
201
+ */
165
202
  highestApy() {
166
203
  let maxApy = new decimal_js_1.Decimal(0);
167
204
  for (const token of this.tokens) {
@@ -172,6 +209,10 @@ class Market {
172
209
  }
173
210
  return maxApy;
174
211
  }
212
+ /**
213
+ * Does this market have the ability to borrow
214
+ * @returns True if borrowing is allowed, false otherwise
215
+ */
175
216
  hasBorrowing() {
176
217
  let canBorrow = false;
177
218
  for (const token of this.tokens) {
@@ -182,6 +223,11 @@ class Market {
182
223
  }
183
224
  return canBorrow;
184
225
  }
226
+ /**
227
+ * Gets the market status of
228
+ * @param account - Wallet address
229
+ * @returns collateral, max debt, debt for the market
230
+ */
185
231
  async statusOf(account) {
186
232
  const data = await this.contract.statusOf(account);
187
233
  return {
@@ -190,26 +236,59 @@ class Market {
190
236
  debt: BigInt(data.debt)
191
237
  };
192
238
  }
193
- async previewAssetImpact(user, collateral_ctoken, debt_ctoken, deposit_amount, borrow_amount) {
239
+ /**
240
+ * Preview the impact of the user descision for their deposit/borrow/leverage
241
+ * @param user - Wallet address
242
+ * @param collateral_ctoken - The collateral token
243
+ * @param debt_ctoken - The debt token
244
+ * @param deposit_amount - The colalteral amount
245
+ * @param borrow_amount - The debt amount
246
+ * @returns Supply, borrow & earn rates
247
+ */
248
+ async previewAssetImpact(user, collateral_ctoken, debt_ctoken, deposit_amount, borrow_amount, rate_change) {
194
249
  const amount_in = (0, helpers_1.toBigInt)(deposit_amount.toNumber(), collateral_ctoken.decimals);
195
250
  const amount_out = (0, helpers_1.toBigInt)(borrow_amount.toNumber(), debt_ctoken.decimals);
196
- const preview = await this.reader.previewAssetImpact(user, collateral_ctoken.address, debt_ctoken.address, amount_in, amount_out);
251
+ const { supply, borrow } = await this.reader.previewAssetImpact(user, collateral_ctoken.address, debt_ctoken.address, amount_in, amount_out);
252
+ const supply_change = (0, decimal_js_1.Decimal)(supply * (0, helpers_1.getRateSeconds)(rate_change)).div(helpers_1.BPS);
253
+ const borrow_change = (0, decimal_js_1.Decimal)(borrow * (0, helpers_1.getRateSeconds)(rate_change)).div(helpers_1.BPS);
254
+ const amount_in_usd = collateral_ctoken.convertTokensToUsd(amount_in);
255
+ const amount_out_usd = debt_ctoken.convertTokensToUsd(amount_out);
197
256
  return {
198
- supply: preview.supply,
199
- borrow: preview.borrow,
200
- earn: preview.supply - preview.borrow
257
+ supply: {
258
+ percent: supply_change,
259
+ change: amount_in_usd.mul(supply_change)
260
+ },
261
+ borrow: {
262
+ percent: borrow_change,
263
+ change: amount_out_usd.mul(borrow_change)
264
+ },
265
+ earn: {
266
+ percent: supply_change.sub(borrow_change),
267
+ change: amount_in_usd.mul(supply_change).sub(amount_out_usd.mul(borrow_change))
268
+ }
201
269
  };
202
270
  }
271
+ /**
272
+ * Grabs the new position health when doing a deposit
273
+ * @param ctoken - Token you are expecting to deposit on
274
+ * @param collateral_change - Amount of new collateral in USD
275
+ * @returns The new position health
276
+ */
203
277
  async previewPositionHealthDeposit(ctoken, collateral_change) {
204
278
  const provider = (0, helpers_1.validateProviderAsSigner)(this.provider);
205
279
  const change = BigInt(collateral_change.mul(helpers_1.WAD_DECIMAL).toFixed(0));
206
280
  const liq = await this.liquidationValuesOf(provider.address);
207
- const impact = change / ctoken.getCollReqSoft(false) * helpers_1.WAD;
208
- const soft = liq.soft * helpers_1.WAD + impact;
281
+ const impact = change * helpers_1.BPS / ctoken.getCollReqSoft(false);
282
+ const soft = (liq.soft * helpers_1.WAD) + impact;
209
283
  const debt = liq.debt;
210
284
  const result = debt > 0n ? soft / debt : 0n;
211
285
  return result <= 0n ? null : (0, decimal_js_1.Decimal)(result).div(helpers_1.WAD);
212
286
  }
287
+ /**
288
+ * Grabs the new position health when doing a borrow
289
+ * @param debt_change - Amount of new debt in USD
290
+ * @returns The new position health
291
+ */
213
292
  async previewPositionHealthBorrow(debt_change) {
214
293
  const provider = (0, helpers_1.validateProviderAsSigner)(this.provider);
215
294
  const change = BigInt(debt_change.mul(helpers_1.WAD_DECIMAL).toFixed(0));
@@ -219,10 +298,22 @@ class Market {
219
298
  const result = debt > 0n ? soft / debt : 0n;
220
299
  return result <= 0n ? null : (0, decimal_js_1.Decimal)(result).div(helpers_1.WAD);
221
300
  }
301
+ /**
302
+ * Get liquidation values of for a given user
303
+ * @param account - user
304
+ * @returns The liquidation values of the user
305
+ */
222
306
  async liquidationValuesOf(account) {
223
307
  const [soft, hard, debt] = await this.contract.liquidationValuesOf(account);
224
308
  return { soft, hard, debt };
225
309
  }
310
+ /**
311
+ * Grab the current liquidation status of
312
+ * @param account - Account you wanna check liquidation status of on
313
+ * @param collateralToken - What token to use as collateral
314
+ * @param debtToken - What token to use as debt
315
+ * @returns The liquidation status of the account
316
+ */
226
317
  async liquidationStatusOf(account, collateralToken, debtToken) {
227
318
  const data = await this.contract.liquidationStatusOf(account, collateralToken, debtToken);
228
319
  return {
@@ -231,6 +322,15 @@ class Market {
231
322
  debtPrice: BigInt(data.debtPrice)
232
323
  };
233
324
  }
325
+ /**
326
+ * Grabs the new liquidity values based on changes
327
+ * @param account - The user's account address
328
+ * @param cTokenModified - The ctoken you are modifiying
329
+ * @param redemptionShares - Shares being redeemed
330
+ * @param borrowAssets - Amount of assets being borrowed
331
+ * @returns An object containing the hypothetical liquidity values
332
+ */
333
+ // TODO: This could probably be improved to just pass a ctoken & amount, the auto converts the shares
234
334
  async hypotheticalLiquidityOf(account, cTokenModified, redemptionShares, borrowAssets) {
235
335
  const data = await this.contract.hypotheticalLiquidityOf(account, cTokenModified, redemptionShares, borrowAssets);
236
336
  return {
@@ -239,19 +339,30 @@ class Market {
239
339
  positionsToClose: data.positionsToClose
240
340
  };
241
341
  }
342
+ /**
343
+ * Fetch the expiration date of a user's cooldown period
344
+ * @param account - The user's account address
345
+ * @param fetch - Whether to fetch the cooldown length from the contract
346
+ * @returns The expiration date of the cooldown period or null if not in cooldown
347
+ */
242
348
  async expiresAt(account, fetch = false) {
243
349
  const cooldownTimestamp = await this.contract.accountAssets(account);
244
350
  const cooldownLength = fetch || this.cooldownLength == 0n ? await this.contract.MIN_HOLD_PERIOD() : this.cooldownLength;
245
351
  const unlockTime = cooldownTimestamp + cooldownLength;
246
352
  return unlockTime == cooldownLength ? null : new Date(Number(unlockTime * 1000n));
247
353
  }
248
- async multiHoldExpiresAt(markets, reader) {
354
+ /**
355
+ * Fetch multiple market cooldown expirations
356
+ * @param markets - Markets you want to search
357
+ * @returns An object mapping market addresses to their cooldown expiration dates OR null if its not in cooldown
358
+ */
359
+ async multiHoldExpiresAt(markets) {
249
360
  const provider = (0, helpers_1.validateProviderAsSigner)(this.provider);
250
361
  if (markets.length == 0) {
251
362
  throw new Error("You can't fetch expirations for no markets.");
252
363
  }
253
364
  const marketAddresses = markets.map(market => market.address);
254
- const cooldownTimestamps = await reader.marketMultiCooldown(marketAddresses, provider.address);
365
+ const cooldownTimestamps = await this.reader.marketMultiCooldown(marketAddresses, provider.address);
255
366
  let cooldowns = {};
256
367
  for (let i = 0; i < markets.length; i++) {
257
368
  const market = markets[i];
@@ -261,6 +372,14 @@ class Market {
261
372
  }
262
373
  return cooldowns;
263
374
  }
375
+ /**
376
+ * Grab all the markets available and set them up using the protocol reader efficient RPC calls / API cached calls
377
+ * @param provider - The RPC provider
378
+ * @param reader - instace of the ProtocolReader class
379
+ * @param oracle_manager - instance of the OracleManager class
380
+ * @param all_deploy_data - Deploy data
381
+ * @returns An array of Market instances setup with protocol reader data
382
+ */
264
383
  static async getAll(provider, reader, oracle_manager, all_deploy_data) {
265
384
  const user = "address" in provider ? provider.address : helpers_1.EMPTY_ADDRESS;
266
385
  const all_data = await reader.getAllMarketData(user);