impermax-sdk 2.1.265 → 2.1.266
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.
|
@@ -175,11 +175,7 @@ class OffchainBorrowable extends offchainPoolToken_1.default {
|
|
|
175
175
|
return (UR / kinkUR) * kinkBR;
|
|
176
176
|
const kinkMultiplier = this.lendingPool.getKinkMultiplier();
|
|
177
177
|
return (((UR - kinkUR) / (1 - kinkUR)) * (kinkMultiplier - 1) + 1) * kinkBR;
|
|
178
|
-
}
|
|
179
|
-
public async getNextBorrowAPR(borrowAmount: number): Promise<number> {
|
|
180
|
-
const borrowRate = await this.getNextBorrowRate(borrowAmount);
|
|
181
|
-
return toAPR(borrowRate);
|
|
182
|
-
}*/
|
|
178
|
+
}
|
|
183
179
|
// Supply
|
|
184
180
|
async getSupply() {
|
|
185
181
|
const { totalBalance, totalBorrows } = await this._accrueInterest();
|
|
@@ -208,134 +204,6 @@ class OffchainBorrowable extends offchainPoolToken_1.default {
|
|
|
208
204
|
const supplyRate = await this.getSupplyRate();
|
|
209
205
|
return (0, utils_1.toAPR)(supplyRate);
|
|
210
206
|
}
|
|
211
|
-
/*
|
|
212
|
-
public async getNextSupplyRate(supplyAmount: number): Promise<number> {
|
|
213
|
-
const { totalBalance, totalBorrows } = await this._accrueInterest();
|
|
214
|
-
const supply = totalBalance + totalBorrows;
|
|
215
|
-
const UR = totalBorrows / (supply + supplyAmount);
|
|
216
|
-
const { kinkBorrowRate: kinkBR } = await this._calculateBorrowRate();
|
|
217
|
-
const kinkUR = await this.getKinkUtilizationRate();
|
|
218
|
-
const reserveFactor = await this.getReserveFactor();
|
|
219
|
-
if (UR < kinkUR) return (UR / kinkUR) * kinkBR * UR * (1 - reserveFactor);
|
|
220
|
-
const kinkMultiplier = this.lendingPool.getKinkMultiplier();
|
|
221
|
-
return (
|
|
222
|
-
(((UR - kinkUR) / (1 - kinkUR)) * (kinkMultiplier - 1) + 1) *
|
|
223
|
-
kinkBR *
|
|
224
|
-
UR *
|
|
225
|
-
(1 - reserveFactor)
|
|
226
|
-
);
|
|
227
|
-
}
|
|
228
|
-
public async getNextSupplyAPR(supplyAmount: number): Promise<number> {
|
|
229
|
-
const supplyRate = await this.getNextSupplyRate(supplyAmount);
|
|
230
|
-
return toAPR(supplyRate);
|
|
231
|
-
}
|
|
232
|
-
|
|
233
|
-
// Reward Speed
|
|
234
|
-
public async getFarmingRewardsRate(): Promise<
|
|
235
|
-
Array<{
|
|
236
|
-
rewardToken: string;
|
|
237
|
-
rewardRate: number;
|
|
238
|
-
}>
|
|
239
|
-
> {
|
|
240
|
-
const poolTokenData = (await this.getPoolTokenData()) as BorrowableData;
|
|
241
|
-
const rewards = poolTokenData.rewards;
|
|
242
|
-
if (rewards && rewards.length > 0) return rewards;
|
|
243
|
-
|
|
244
|
-
const FINISH_DELAY = 3600 * 24;
|
|
245
|
-
const farmingPoolData = poolTokenData.farmingPool;
|
|
246
|
-
if (farmingPoolData === null) return [];
|
|
247
|
-
const segmentLength = parseInt(farmingPoolData.segmentLength);
|
|
248
|
-
const epochAmount = parseFloat(farmingPoolData.epochAmount);
|
|
249
|
-
const epochBegin = parseInt(farmingPoolData.epochBegin);
|
|
250
|
-
const epochEnd = epochBegin + segmentLength;
|
|
251
|
-
const timestamp = new Date().getTime() / 1000;
|
|
252
|
-
if (timestamp - FINISH_DELAY > epochEnd) {
|
|
253
|
-
// How to manage better this case? Maybe check shares on distributor
|
|
254
|
-
return [];
|
|
255
|
-
}
|
|
256
|
-
return [
|
|
257
|
-
{
|
|
258
|
-
rewardToken: IMX[this.getOffchain().network],
|
|
259
|
-
rewardRate: epochAmount / segmentLength,
|
|
260
|
-
},
|
|
261
|
-
];
|
|
262
|
-
}
|
|
263
|
-
|
|
264
|
-
// TODO remove farming
|
|
265
|
-
// Farming
|
|
266
|
-
public async getFarmingRewards(): Promise<
|
|
267
|
-
Array<{
|
|
268
|
-
APR: number;
|
|
269
|
-
symbol: string;
|
|
270
|
-
}>
|
|
271
|
-
> {
|
|
272
|
-
return this.getNextFarmingRewards(0);
|
|
273
|
-
}
|
|
274
|
-
async getNextFarmingRewards(borrowAmount: number): Promise<
|
|
275
|
-
Array<{
|
|
276
|
-
APR: number;
|
|
277
|
-
symbol: string;
|
|
278
|
-
}>
|
|
279
|
-
> {
|
|
280
|
-
const farmingRewards = await this.getFarmingRewardsRate();
|
|
281
|
-
const currentBorrowedUSD = await this.getTotalBorrowsUSD();
|
|
282
|
-
const tokenPrice = await this.getTokenPriceFast();
|
|
283
|
-
const additionalBorrowsUSD = borrowAmount * tokenPrice;
|
|
284
|
-
const totalBorrowedUSD = currentBorrowedUSD + additionalBorrowsUSD;
|
|
285
|
-
if (totalBorrowedUSD === 0) return [];
|
|
286
|
-
|
|
287
|
-
const rewards: Array<{
|
|
288
|
-
APR: number;
|
|
289
|
-
symbol: string;
|
|
290
|
-
}> = [];
|
|
291
|
-
for (const reward of farmingRewards) {
|
|
292
|
-
const rewardPrice = await this.getOffchain()
|
|
293
|
-
.getPriceHelper()
|
|
294
|
-
.getDebankTokenPrice(this.getOffchain().network, reward.rewardToken);
|
|
295
|
-
rewards.push({
|
|
296
|
-
APR: toAPR((rewardPrice * reward.rewardRate) / totalBorrowedUSD),
|
|
297
|
-
symbol:
|
|
298
|
-
reward.rewardToken == "0x98878b06940ae243284ca214f92bb71a2b032b8a"
|
|
299
|
-
? "WMOVR"
|
|
300
|
-
: reward.rewardToken == "0x0d500b1d8e8ef31e21c99d1db9a6444d3adf1270"
|
|
301
|
-
? "WMATIC"
|
|
302
|
-
: reward.rewardToken ==
|
|
303
|
-
"0x6659a9c5cd313974343e30b4fdffd95bd4b4dcd2"
|
|
304
|
-
? "IMX"
|
|
305
|
-
: reward.rewardToken ==
|
|
306
|
-
"0x7b35ce522cb72e4077baeb96cb923a5529764a00"
|
|
307
|
-
? "IMX"
|
|
308
|
-
: reward.rewardToken ==
|
|
309
|
-
"0x60bb3d364b765c497c8ce50ae0ae3f0882c5bd05"
|
|
310
|
-
? "IMX"
|
|
311
|
-
: reward.rewardToken ==
|
|
312
|
-
"0x9c67ee39e3c4954396b9142010653f17257dd39c"
|
|
313
|
-
? "IMX"
|
|
314
|
-
: reward.rewardToken ==
|
|
315
|
-
"0xea6887e4a9cda1b77e70129e5fba830cdb5cddef"
|
|
316
|
-
? "IMX"
|
|
317
|
-
: reward.rewardToken ==
|
|
318
|
-
"0x900f1Ec5819FA087d368877cD03B265Bf1802667"
|
|
319
|
-
? "IMX"
|
|
320
|
-
: reward.rewardToken ==
|
|
321
|
-
"0xea38f1ccf77bf43f352636241b05dd8f6f5f52b2"
|
|
322
|
-
? "IMX"
|
|
323
|
-
: "IBEX",
|
|
324
|
-
});
|
|
325
|
-
}
|
|
326
|
-
return rewards;
|
|
327
|
-
}
|
|
328
|
-
public async getFarmingAPR(): Promise<number> {
|
|
329
|
-
return this.getNextFarmingAPR(0);
|
|
330
|
-
}
|
|
331
|
-
public async getNextFarmingAPR(borrowAmount: number): Promise<number> {
|
|
332
|
-
const rewards = await this.getNextFarmingRewards(borrowAmount);
|
|
333
|
-
let APR = 0;
|
|
334
|
-
for (const reward of rewards) {
|
|
335
|
-
APR += reward.APR;
|
|
336
|
-
}
|
|
337
|
-
return APR;
|
|
338
|
-
}*/
|
|
339
207
|
// Past Data
|
|
340
208
|
async getPoolTokenDataPast24h() {
|
|
341
209
|
const lendingPoolDataPast = await this.lendingPool.getLendingPoolDataPast24h();
|