Skip to content

Commit 9e0b66c

Browse files
committed
refactor: fix lint issues
1 parent ac0466d commit 9e0b66c

File tree

3 files changed

+133
-135
lines changed

3 files changed

+133
-135
lines changed

src/lendMarkets/LendMarketTemplate.ts

Lines changed: 55 additions & 57 deletions
Original file line numberDiff line numberDiff line change
@@ -821,45 +821,44 @@ export class LendMarketTemplate {
821821
}
822822

823823
private vaultRewardTokens = memoize(async (): Promise<{token: string, symbol: string, decimals: number}[]> => {
824-
if (this.addresses.gauge === this.llamalend.constants.ZERO_ADDRESS) return []
824+
if (this.addresses.gauge === this.llamalend.constants.ZERO_ADDRESS) return []
825825

826-
// if (useApi) {
827-
// const rewards = await _getRewardsFromApi();
828-
// if (!rewards[this.addresses.gauge]) return [];
829-
// rewards[this.addresses.gauge].forEach((r) => _setContracts(r.tokenAddress, ERC20Abi));
830-
// return rewards[this.addresses.gauge].map((r) => ({ token: r.tokenAddress, symbol: r.symbol, decimals: Number(r.decimals) }));
831-
// }
826+
// if (useApi) {
827+
// const rewards = await _getRewardsFromApi();
828+
// if (!rewards[this.addresses.gauge]) return [];
829+
// rewards[this.addresses.gauge].forEach((r) => _setContracts(r.tokenAddress, ERC20Abi));
830+
// return rewards[this.addresses.gauge].map((r) => ({ token: r.tokenAddress, symbol: r.symbol, decimals: Number(r.decimals) }));
831+
// }
832832

833-
const gaugeContract = this.llamalend.contracts[this.addresses.gauge].contract;
834-
const gaugeMulticallContract = this.llamalend.contracts[this.addresses.gauge].multicallContract;
835-
const rewardCount = Number(this.llamalend.formatUnits(await gaugeContract.reward_count(this.llamalend.constantOptions), 0));
833+
const gaugeContract = this.llamalend.contracts[this.addresses.gauge].contract;
834+
const gaugeMulticallContract = this.llamalend.contracts[this.addresses.gauge].multicallContract;
835+
const rewardCount = Number(this.llamalend.formatUnits(await gaugeContract.reward_count(this.llamalend.constantOptions), 0));
836836

837-
const tokenCalls = [];
838-
for (let i = 0; i < rewardCount; i++) {
839-
tokenCalls.push(gaugeMulticallContract.reward_tokens(i));
840-
}
841-
const tokens = (await this.llamalend.multicallProvider.all(tokenCalls) as string[])
842-
.filter((addr) => addr !== this.llamalend.constants.ZERO_ADDRESS)
843-
.map((addr) => addr.toLowerCase())
844-
.filter((addr) => this.llamalend.chainId === 1 || addr !== this.llamalend.constants.COINS.crv);
845-
846-
const tokenInfoCalls = [];
847-
for (const token of tokens) {
848-
this.llamalend.setContract(token, ERC20Abi);
849-
const tokenMulticallContract = this.llamalend.contracts[token].multicallContract;
850-
tokenInfoCalls.push(tokenMulticallContract.symbol(), tokenMulticallContract.decimals());
851-
}
852-
const tokenInfo = await this.llamalend.multicallProvider.all(tokenInfoCalls);
853-
for (let i = 0; i < tokens.length; i++) {
854-
this.llamalend.constants.DECIMALS[tokens[i]] = Number(tokenInfo[(i * 2) + 1]);
855-
}
837+
const tokenCalls = [];
838+
for (let i = 0; i < rewardCount; i++) {
839+
tokenCalls.push(gaugeMulticallContract.reward_tokens(i));
840+
}
841+
const tokens = (await this.llamalend.multicallProvider.all(tokenCalls) as string[])
842+
.filter((addr) => addr !== this.llamalend.constants.ZERO_ADDRESS)
843+
.map((addr) => addr.toLowerCase())
844+
.filter((addr) => this.llamalend.chainId === 1 || addr !== this.llamalend.constants.COINS.crv);
856845

857-
return tokens.map((token, i) => ({ token, symbol: tokenInfo[i * 2] as string, decimals: Number(tokenInfo[(i * 2) + 1]) }));
858-
},
859-
{
860-
promise: true,
861-
maxAge: 30 * 60 * 1000, // 30m
862-
});
846+
const tokenInfoCalls = [];
847+
for (const token of tokens) {
848+
this.llamalend.setContract(token, ERC20Abi);
849+
const tokenMulticallContract = this.llamalend.contracts[token].multicallContract;
850+
tokenInfoCalls.push(tokenMulticallContract.symbol(), tokenMulticallContract.decimals());
851+
}
852+
const tokenInfo = await this.llamalend.multicallProvider.all(tokenInfoCalls);
853+
for (let i = 0; i < tokens.length; i++) {
854+
this.llamalend.constants.DECIMALS[tokens[i]] = Number(tokenInfo[(i * 2) + 1]);
855+
}
856+
857+
return tokens.map((token, i) => ({ token, symbol: tokenInfo[i * 2] as string, decimals: Number(tokenInfo[(i * 2) + 1]) }));
858+
}, {
859+
promise: true,
860+
maxAge: 30 * 60 * 1000, // 30m
861+
});
863862

864863
private vaultRewardsApr = async (useApi = true): Promise<IReward[]> => {
865864
if(useApi) {
@@ -971,30 +970,29 @@ export class LendMarketTemplate {
971970
base_price: string,
972971
A: string,
973972
}> => {
974-
const llammaContract = this.llamalend.contracts[this.addresses.amm].multicallContract;
975-
const controllerContract = this.llamalend.contracts[this.addresses.controller].multicallContract;
973+
const llammaContract = this.llamalend.contracts[this.addresses.amm].multicallContract;
974+
const controllerContract = this.llamalend.contracts[this.addresses.controller].multicallContract;
976975

977-
const calls = [
978-
llammaContract.fee(),
979-
llammaContract.admin_fee(),
980-
controllerContract.liquidation_discount(),
981-
controllerContract.loan_discount(),
982-
llammaContract.get_base_price(),
983-
llammaContract.A(),
984-
]
985-
986-
const [_fee, _admin_fee, _liquidation_discount, _loan_discount, _base_price, _A]: bigint[] = await this.llamalend.multicallProvider.all(calls) as bigint[];
987-
const A = formatUnits(_A, 0)
988-
const base_price = formatUnits(_base_price)
989-
const [fee, admin_fee, liquidation_discount, loan_discount] = [_fee, _admin_fee, _liquidation_discount, _loan_discount]
990-
.map((_x) => formatUnits(_x * BigInt(100)));
976+
const calls = [
977+
llammaContract.fee(),
978+
llammaContract.admin_fee(),
979+
controllerContract.liquidation_discount(),
980+
controllerContract.loan_discount(),
981+
llammaContract.get_base_price(),
982+
llammaContract.A(),
983+
]
991984

992-
return { fee, admin_fee, liquidation_discount, loan_discount, base_price, A }
993-
},
994-
{
995-
promise: true,
996-
maxAge: 5 * 60 * 1000, // 5m
997-
});
985+
const [_fee, _admin_fee, _liquidation_discount, _loan_discount, _base_price, _A]: bigint[] = await this.llamalend.multicallProvider.all(calls) as bigint[];
986+
const A = formatUnits(_A, 0)
987+
const base_price = formatUnits(_base_price)
988+
const [fee, admin_fee, liquidation_discount, loan_discount] = [_fee, _admin_fee, _liquidation_discount, _loan_discount]
989+
.map((_x) => formatUnits(_x * BigInt(100)));
990+
991+
return { fee, admin_fee, liquidation_discount, loan_discount, base_price, A }
992+
}, {
993+
promise: true,
994+
maxAge: 5 * 60 * 1000, // 5m
995+
});
998996

999997
private _getRate = async (isGetter = true): Promise<bigint> => {
1000998
let _rate;

src/lendMarkets/interfaces/leverageZapV2.ts

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ export interface ILeverageZapV2 {
99
userCollateral,
1010
userBorrowed,
1111
range,
12-
getExpected
12+
getExpected,
1313
}: {
1414
userCollateral: TAmount,
1515
userBorrowed: TAmount,
@@ -27,7 +27,7 @@ export interface ILeverageZapV2 {
2727
createLoanMaxRecvAllRanges: ({
2828
userCollateral,
2929
userBorrowed,
30-
getExpected
30+
getExpected,
3131
}: {
3232
userCollateral: TAmount,
3333
userBorrowed: TAmount,
@@ -45,7 +45,7 @@ export interface ILeverageZapV2 {
4545
userCollateral,
4646
userBorrowed,
4747
debt,
48-
quote
48+
quote,
4949
}: {
5050
userCollateral: TAmount,
5151
userBorrowed: TAmount,
@@ -65,7 +65,7 @@ export interface ILeverageZapV2 {
6565
debt,
6666
range,
6767
quote,
68-
healthIsFull
68+
healthIsFull,
6969
}: {
7070
userCollateral: TAmount,
7171
userBorrowed: TAmount,
@@ -78,7 +78,7 @@ export interface ILeverageZapV2 {
7878
userCollateral,
7979
userBorrowed,
8080
debt,
81-
getExpected
81+
getExpected,
8282
}: {
8383
userCollateral: TAmount,
8484
userBorrowed: TAmount,
@@ -90,7 +90,7 @@ export interface ILeverageZapV2 {
9090
userBorrowed,
9191
debt,
9292
getExpected,
93-
quote
93+
quote,
9494
}: {
9595
userCollateral: TAmount,
9696
userBorrowed: TAmount,
@@ -103,7 +103,7 @@ export interface ILeverageZapV2 {
103103
userBorrowed,
104104
debt,
105105
getExpected,
106-
quote
106+
quote,
107107
}: {
108108
userCollateral: TAmount,
109109
userBorrowed: TAmount,
@@ -113,14 +113,14 @@ export interface ILeverageZapV2 {
113113
}) => Promise<IDict<[string, string] | null>>,
114114
createLoanIsApproved: ({
115115
userCollateral,
116-
userBorrowed
116+
userBorrowed,
117117
}: {
118118
userCollateral: TAmount,
119119
userBorrowed: TAmount
120120
}) => Promise<boolean>,
121121
createLoanApprove: ({
122122
userCollateral,
123-
userBorrowed
123+
userBorrowed,
124124
}: {
125125
userCollateral: TAmount,
126126
userBorrowed: TAmount
@@ -131,7 +131,7 @@ export interface ILeverageZapV2 {
131131
debt,
132132
range,
133133
router,
134-
calldata
134+
calldata,
135135
}: {
136136
userCollateral: TAmount,
137137
userBorrowed: TAmount,

src/lendMarkets/modules/leverageZapV2.ts

Lines changed: 68 additions & 68 deletions
Original file line numberDiff line numberDiff line change
@@ -150,79 +150,79 @@ export class LeverageZapV2Module {
150150
maxLeverage: string,
151151
avgPrice: string,
152152
}>> => {
153-
this._checkLeverageZap();
154-
const _userCollateral = parseUnits(userCollateral, this.market.collateral_token.decimals);
155-
const contract = this.llamalend.contracts[this.llamalend.constants.ALIASES.leverage_zap_v2].multicallContract;
156-
157-
const oraclePriceBand = await this.market.oraclePriceBand();
158-
const pAvgApproxBN = BN(await this.market.calcTickPrice(oraclePriceBand)); // upper tick of oracle price band
159-
let pAvgBN: BigNumber | null = null;
160-
const arrLength = this.market.maxBands - this.market.minBands + 1;
161-
let maxLeverageCollateralBN: BigNumber[] = new Array(arrLength).fill(BN(0));
162-
let _maxLeverageCollateral: bigint[] = new Array(arrLength).fill(BigInt(0));
163-
let maxBorrowablePrevBN: BigNumber[] = new Array(arrLength).fill(BN(0));
164-
let maxBorrowableBN: BigNumber[] = new Array(arrLength).fill(BN(0));
165-
let _maxBorrowable: bigint[] = new Array(arrLength).fill(BigInt(0));
166-
167-
for (let i = 0; i < 5; i++) {
168-
const pBN = pAvgBN ?? pAvgApproxBN;
169-
maxBorrowablePrevBN = maxBorrowableBN;
170-
const _userEffectiveCollateral: bigint = _userCollateral + fromBN(BN(userBorrowed).div(pBN), this.market.collateral_token.decimals);
171-
const calls = [];
172-
for (let N = this.market.minBands; N <= this.market.maxBands; N++) {
173-
const j = N - this.market.minBands;
174-
calls.push(contract.max_borrowable(this.market.addresses.controller, _userEffectiveCollateral, _maxLeverageCollateral[j], N, fromBN(pBN)));
175-
}
176-
_maxBorrowable = (await this.llamalend.multicallProvider.all(calls) as bigint[]).map((_mb) => _mb * BigInt(998) / BigInt(1000));
177-
maxBorrowableBN = _maxBorrowable.map((_mb) => toBN(_mb, this.market.borrowed_token.decimals));
178-
179-
const deltaBN = maxBorrowableBN.map((mb, l) => mb.minus(maxBorrowablePrevBN[l]).abs().div(mb));
180-
if (BigNumber.max(...deltaBN).lt(0.0005)) {
181-
maxBorrowableBN = maxBorrowablePrevBN;
182-
break;
183-
}
184-
185-
if (pAvgBN === null){
186-
const _y = BigInt((await getExpected(
187-
this.market.addresses.borrowed_token,
188-
this.market.addresses.collateral_token,
189-
_maxBorrowable[0],
190-
this.market.addresses.amm
191-
)).outAmount);
192-
const yBN = toBN(_y, this.market.collateral_token.decimals);
193-
pAvgBN = maxBorrowableBN[0].div(yBN);
194-
}
195-
196-
maxLeverageCollateralBN = maxBorrowableBN.map((mb) => mb.div(pAvgBN as BigNumber));
197-
_maxLeverageCollateral = maxLeverageCollateralBN.map((mlc) => fromBN(mlc, this.market.collateral_token.decimals));
198-
}
153+
this._checkLeverageZap();
154+
const _userCollateral = parseUnits(userCollateral, this.market.collateral_token.decimals);
155+
const contract = this.llamalend.contracts[this.llamalend.constants.ALIASES.leverage_zap_v2].multicallContract;
199156

200-
const userEffectiveCollateralBN = BN(userCollateral).plus(BN(userBorrowed).div(pAvgBN as BigNumber));
201-
202-
const res: IDict<{
203-
maxDebt: string,
204-
maxTotalCollateral: string,
205-
userCollateral: string,
206-
collateralFromUserBorrowed: string,
207-
collateralFromMaxDebt: string,
208-
maxLeverage: string,
209-
avgPrice: string,
210-
}> = {};
157+
const oraclePriceBand = await this.market.oraclePriceBand();
158+
const pAvgApproxBN = BN(await this.market.calcTickPrice(oraclePriceBand)); // upper tick of oracle price band
159+
let pAvgBN: BigNumber | null = null;
160+
const arrLength = this.market.maxBands - this.market.minBands + 1;
161+
let maxLeverageCollateralBN: BigNumber[] = new Array(arrLength).fill(BN(0));
162+
let _maxLeverageCollateral: bigint[] = new Array(arrLength).fill(BigInt(0));
163+
let maxBorrowablePrevBN: BigNumber[] = new Array(arrLength).fill(BN(0));
164+
let maxBorrowableBN: BigNumber[] = new Array(arrLength).fill(BN(0));
165+
let _maxBorrowable: bigint[] = new Array(arrLength).fill(BigInt(0));
166+
167+
for (let i = 0; i < 5; i++) {
168+
const pBN = pAvgBN ?? pAvgApproxBN;
169+
maxBorrowablePrevBN = maxBorrowableBN;
170+
const _userEffectiveCollateral: bigint = _userCollateral + fromBN(BN(userBorrowed).div(pBN), this.market.collateral_token.decimals);
171+
const calls = [];
211172
for (let N = this.market.minBands; N <= this.market.maxBands; N++) {
212173
const j = N - this.market.minBands;
213-
res[N] = {
214-
maxDebt: formatNumber(maxBorrowableBN[j].toString(), this.market.borrowed_token.decimals),
215-
maxTotalCollateral: formatNumber(maxLeverageCollateralBN[j].plus(userEffectiveCollateralBN).toString(), this.market.collateral_token.decimals),
216-
userCollateral: formatNumber(userCollateral, this.market.collateral_token.decimals),
217-
collateralFromUserBorrowed: formatNumber(BN(userBorrowed).div(pAvgBN as BigNumber).toString(), this.market.collateral_token.decimals),
218-
collateralFromMaxDebt: formatNumber(maxLeverageCollateralBN[j].toString(), this.market.collateral_token.decimals),
219-
maxLeverage: maxLeverageCollateralBN[j].plus(userEffectiveCollateralBN).div(userEffectiveCollateralBN).toString(),
220-
avgPrice: (pAvgBN as BigNumber).toString(),
221-
};
174+
calls.push(contract.max_borrowable(this.market.addresses.controller, _userEffectiveCollateral, _maxLeverageCollateral[j], N, fromBN(pBN)));
222175
}
176+
_maxBorrowable = (await this.llamalend.multicallProvider.all(calls) as bigint[]).map((_mb) => _mb * BigInt(998) / BigInt(1000));
177+
maxBorrowableBN = _maxBorrowable.map((_mb) => toBN(_mb, this.market.borrowed_token.decimals));
223178

224-
return res;
225-
},
179+
const deltaBN = maxBorrowableBN.map((mb, l) => mb.minus(maxBorrowablePrevBN[l]).abs().div(mb));
180+
if (BigNumber.max(...deltaBN).lt(0.0005)) {
181+
maxBorrowableBN = maxBorrowablePrevBN;
182+
break;
183+
}
184+
185+
if (pAvgBN === null){
186+
const _y = BigInt((await getExpected(
187+
this.market.addresses.borrowed_token,
188+
this.market.addresses.collateral_token,
189+
_maxBorrowable[0],
190+
this.market.addresses.amm
191+
)).outAmount);
192+
const yBN = toBN(_y, this.market.collateral_token.decimals);
193+
pAvgBN = maxBorrowableBN[0].div(yBN);
194+
}
195+
196+
maxLeverageCollateralBN = maxBorrowableBN.map((mb) => mb.div(pAvgBN as BigNumber));
197+
_maxLeverageCollateral = maxLeverageCollateralBN.map((mlc) => fromBN(mlc, this.market.collateral_token.decimals));
198+
}
199+
200+
const userEffectiveCollateralBN = BN(userCollateral).plus(BN(userBorrowed).div(pAvgBN as BigNumber));
201+
202+
const res: IDict<{
203+
maxDebt: string,
204+
maxTotalCollateral: string,
205+
userCollateral: string,
206+
collateralFromUserBorrowed: string,
207+
collateralFromMaxDebt: string,
208+
maxLeverage: string,
209+
avgPrice: string,
210+
}> = {};
211+
for (let N = this.market.minBands; N <= this.market.maxBands; N++) {
212+
const j = N - this.market.minBands;
213+
res[N] = {
214+
maxDebt: formatNumber(maxBorrowableBN[j].toString(), this.market.borrowed_token.decimals),
215+
maxTotalCollateral: formatNumber(maxLeverageCollateralBN[j].plus(userEffectiveCollateralBN).toString(), this.market.collateral_token.decimals),
216+
userCollateral: formatNumber(userCollateral, this.market.collateral_token.decimals),
217+
collateralFromUserBorrowed: formatNumber(BN(userBorrowed).div(pAvgBN as BigNumber).toString(), this.market.collateral_token.decimals),
218+
collateralFromMaxDebt: formatNumber(maxLeverageCollateralBN[j].toString(), this.market.collateral_token.decimals),
219+
maxLeverage: maxLeverageCollateralBN[j].plus(userEffectiveCollateralBN).div(userEffectiveCollateralBN).toString(),
220+
avgPrice: (pAvgBN as BigNumber).toString(),
221+
};
222+
}
223+
224+
return res;
225+
},
226226
{
227227
promise: true,
228228
maxAge: 60 * 1000, // 1m

0 commit comments

Comments
 (0)