impermax-sdk 2.1.221 → 2.1.223
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.
- package/lib/offchain/lendingPool/offchainCollateral.d.ts +1 -0
- package/lib/offchain/lendingPool/offchainCollateralV2.d.ts +1 -0
- package/lib/offchain/lendingPool/offchainCollateralV2.js +5 -0
- package/lib/offchain/lendingPool/offchainCollateralV3.d.ts +1 -0
- package/lib/offchain/lendingPool/offchainCollateralV3.js +5 -0
- package/lib/offchain/lendingPool/offchainLendingPool.d.ts +1 -0
- package/lib/offchain/lendingPool/offchainLendingPool.js +23 -13
- package/lib/offchain/lendingPool/offchainLendingPoolV2.d.ts +0 -1
- package/lib/offchain/lendingPool/offchainLendingPoolV2.js +0 -10
- package/lib/offchain/offchainPoolToken.d.ts +0 -1
- package/lib/offchain/offchainPoolToken.js +0 -13
- package/package.json +1 -1
|
@@ -18,5 +18,6 @@ export default class OffchainCollateralV2 extends OffchainPoolToken implements O
|
|
|
18
18
|
getGrowthFactor(): Promise<number>;
|
|
19
19
|
getTokenPriceFast(fallback?: boolean): Promise<number>;
|
|
20
20
|
getTokenPriceAccurate(): Promise<number>;
|
|
21
|
+
getTotalBalanceUSD(): Promise<number>;
|
|
21
22
|
getTWAP(): Promise<number>;
|
|
22
23
|
}
|
|
@@ -56,6 +56,11 @@ class OffchainCollateralV2 extends offchainPoolToken_1.default {
|
|
|
56
56
|
async getTokenPriceAccurate() {
|
|
57
57
|
throw new Error("USD price conversion for collateral is deprecated");
|
|
58
58
|
}
|
|
59
|
+
// TODO
|
|
60
|
+
async getTotalBalanceUSD() {
|
|
61
|
+
return 0;
|
|
62
|
+
}
|
|
63
|
+
// TODO
|
|
59
64
|
async getTWAP() {
|
|
60
65
|
return 1;
|
|
61
66
|
}
|
|
@@ -58,6 +58,7 @@ export default abstract class OffchainLendingPool {
|
|
|
58
58
|
getAmm(): Promise<Amms | null>;
|
|
59
59
|
getFarm(): Promise<Farms | null>;
|
|
60
60
|
getKinkMultiplier(): 2 | 5;
|
|
61
|
+
getTotalAPR(): Promise<number>;
|
|
61
62
|
getTVL(): Promise<number>;
|
|
62
63
|
isDeprecated(): Promise<boolean>;
|
|
63
64
|
isBlacklisted(): Promise<boolean>;
|
|
@@ -121,23 +121,33 @@ class OffchainLendingPool {
|
|
|
121
121
|
return 5;
|
|
122
122
|
return 2;
|
|
123
123
|
}
|
|
124
|
-
|
|
124
|
+
async getTotalAPR() {
|
|
125
|
+
const uniswapV2Pair = (await this.getLendingPoolData()).pair
|
|
126
|
+
.uniswapV2PairAddress;
|
|
127
|
+
// If llama fails/apr is 0 we get the uniswapAPR and stakingAPR through subgraph
|
|
128
|
+
const apr = await this.offchain
|
|
129
|
+
.getAPRHelper()
|
|
130
|
+
.getLlamaAPR(uniswapV2Pair, this.offchain.network);
|
|
131
|
+
if (apr > 0)
|
|
132
|
+
return apr;
|
|
133
|
+
// Try shadow on Sonic network
|
|
134
|
+
if (this.offchain.network === types_1.Networks.Sonic) {
|
|
135
|
+
const shadowAPR = await this.offchain
|
|
136
|
+
.getAPRHelper()
|
|
137
|
+
.getShadowAPR(uniswapV2Pair, this.offchain.network);
|
|
138
|
+
if (shadowAPR > 0)
|
|
139
|
+
return shadowAPR;
|
|
140
|
+
}
|
|
141
|
+
// TODO -> fallback for lending pools not supported by defillama
|
|
142
|
+
return 0;
|
|
143
|
+
}
|
|
125
144
|
async getTVL() {
|
|
126
|
-
const [supply0USD, supply1USD] = await Promise.all([
|
|
145
|
+
const [supply0USD, supply1USD, lpUSD] = await Promise.all([
|
|
127
146
|
this.getBorrowableA().getTotalBalanceUSD(),
|
|
128
147
|
this.getBorrowableB().getTotalBalanceUSD(),
|
|
148
|
+
this.getCollateral().getTotalBalanceUSD(),
|
|
129
149
|
]);
|
|
130
|
-
|
|
131
|
-
return supply0USD + supply1USD;
|
|
132
|
-
return 0;
|
|
133
|
-
// const [supply0USD, supply1USD, totalBalanceUSD] = await Promise.all([
|
|
134
|
-
// this.getBorrowableA().getTotalBalanceUSD(),
|
|
135
|
-
// this.getBorrowableB().getTotalBalanceUSD(),
|
|
136
|
-
// this.getCollateral().getTotalBalanceUSD(),
|
|
137
|
-
// ]);
|
|
138
|
-
// if (supply0USD && supply1USD && totalBalanceUSD)
|
|
139
|
-
// return supply0USD + supply1USD + totalBalanceUSD;
|
|
140
|
-
// return 0;
|
|
150
|
+
return supply0USD + supply1USD + lpUSD;
|
|
141
151
|
}
|
|
142
152
|
// Flags
|
|
143
153
|
async isDeprecated() {
|
|
@@ -13,6 +13,5 @@ export default class OffchainLendingPoolV2 extends OffchainLendingPool {
|
|
|
13
13
|
protected getNewCollateralObject(): OffchainCollateralV2;
|
|
14
14
|
protected getNewBorrowableObject(borrowable: Borrowable): OffchainBorrowableV2;
|
|
15
15
|
getNewAccountLendingPoolObject(account: OffchainAccount): OffchainAccountLendingPoolV2;
|
|
16
|
-
getTVL(): Promise<number>;
|
|
17
16
|
getUniswapV2PairAddress(): Promise<Address>;
|
|
18
17
|
}
|
|
@@ -18,16 +18,6 @@ class OffchainLendingPoolV2 extends offchainLendingPool_1.default {
|
|
|
18
18
|
getNewAccountLendingPoolObject(account) {
|
|
19
19
|
return new offchainAccountLendingPoolV2_1.default(account, this);
|
|
20
20
|
}
|
|
21
|
-
async getTVL() {
|
|
22
|
-
const [supply0USD, supply1USD, lpUSD] = await Promise.all([
|
|
23
|
-
this.getBorrowableA().getTotalBalanceUSD(),
|
|
24
|
-
this.getBorrowableB().getTotalBalanceUSD(),
|
|
25
|
-
this.collateral.getTotalBalanceUSD() // TODO
|
|
26
|
-
]);
|
|
27
|
-
if (supply0USD && supply1USD && lpUSD)
|
|
28
|
-
return supply0USD + supply1USD + lpUSD;
|
|
29
|
-
return 0;
|
|
30
|
-
}
|
|
31
21
|
async getUniswapV2PairAddress() {
|
|
32
22
|
const lendingPoolData = await this.getLendingPoolData();
|
|
33
23
|
return lendingPoolData.pair.uniswapV2PairAddress;
|
|
@@ -15,7 +15,6 @@ export default abstract class OffchainPoolToken {
|
|
|
15
15
|
getUnderlyingAddress(): Promise<Address>;
|
|
16
16
|
getTotalBalance(): Promise<number>;
|
|
17
17
|
getTotalBalanceUSD(): Promise<number>;
|
|
18
|
-
calculateCollateralPrice(reserve0: number, reserve1: number, totalSupply: number, price0: number, price1: number): number;
|
|
19
18
|
getTokenPriceFast(fallback?: boolean): Promise<number>;
|
|
20
19
|
abstract getTokenPriceAccurate(): Promise<number>;
|
|
21
20
|
}
|
|
@@ -71,19 +71,6 @@ class OffchainPoolToken {
|
|
|
71
71
|
const tokenPrice = await this.getTokenPriceFast();
|
|
72
72
|
return totalBalance * tokenPrice;
|
|
73
73
|
}
|
|
74
|
-
// Calculate collateral price -> returns the price of the collateral, not necessarily of the underlying LP
|
|
75
|
-
// TODO refactor?
|
|
76
|
-
calculateCollateralPrice(reserve0, reserve1, totalSupply, price0, price1) {
|
|
77
|
-
if (totalSupply === 0) {
|
|
78
|
-
console.error("Warning: totalSupply is 0");
|
|
79
|
-
return 0;
|
|
80
|
-
}
|
|
81
|
-
const reserve0USD = reserve0 * price0;
|
|
82
|
-
const reserve1USD = reserve1 * price1;
|
|
83
|
-
// adjust reserves taking the latest price passed as parameters
|
|
84
|
-
const adjustedReserveUSD = Math.sqrt(reserve0USD * reserve1USD) * 2;
|
|
85
|
-
return adjustedReserveUSD / totalSupply;
|
|
86
|
-
}
|
|
87
74
|
// Token price getters
|
|
88
75
|
async getTokenPriceFast(fallback = true) {
|
|
89
76
|
if (fallback) {
|