@curvefi/llamalend-api 2.0.26 → 2.0.28

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.
@@ -428,7 +428,7 @@ export class LoanBaseModule {
428
428
  const { debt: currentDebt } = yield this.market.userPosition.userState(address);
429
429
  if (Number(currentDebt) === 0)
430
430
  throw Error(`Loan for ${address} does not exist`);
431
- const _debt = parseUnits(debt);
431
+ const _debt = parseUnits(debt, this.market.borrowed_token.decimals);
432
432
  const [, n1] = yield this.market.userPosition.userBands(address);
433
433
  const { borrowed } = yield this.market.userPosition.userState(address);
434
434
  const n = (BN(borrowed).gt(0)) ? MAX_ACTIVE_BAND : n1 - 1;
@@ -147,7 +147,7 @@ export class LoanV1Module extends LoanBaseModule {
147
147
  repayHealth(_a) {
148
148
  return __awaiter(this, arguments, void 0, function* ({ debt, full = true, address = "" }) {
149
149
  address = _getAddress.call(this.llamalend, address);
150
- const _debt = parseUnits(debt) * BigInt(-1);
150
+ const _debt = parseUnits(debt, this.market.borrowed_token.decimals) * BigInt(-1);
151
151
  const contract = this.llamalend.contracts[this.market.addresses.controller].contract;
152
152
  const _health = yield contract.health_calculator(address, 0, _debt, full, 0, this.llamalend.constantOptions);
153
153
  return formatUnits(_health * BigInt(100));
@@ -69,7 +69,7 @@ export class LoanV2Module extends LoanBaseModule {
69
69
  repayHealth(_a) {
70
70
  return __awaiter(this, arguments, void 0, function* ({ debt, shrink = false, full = true, address = "" }) {
71
71
  address = _getAddress.call(this.llamalend, address);
72
- const _debt = parseUnits(debt);
72
+ const _debt = parseUnits(debt, this.market.borrowed_token.decimals);
73
73
  const contract = this.llamalend.contracts[this.market.addresses.controller].contract;
74
74
  const _health = yield contract.repay_health_preview(0, _debt, address, shrink, full, this.llamalend.constantOptions);
75
75
  return formatUnits(_health * BigInt(100));
@@ -5,12 +5,13 @@ import controllerV2ABI from "../constants/abis/crvUSD/controller_v2.json" with {
5
5
  import LeverageZapCrvUSDABI from "../constants/abis/crvUSD/LeverageZap.json" with { type: "json" };
6
6
  import DeleverageZapABI from "../constants/abis/crvUSD/DeleverageZap.json" with { type: "json" };
7
7
  import HealthCalculatorZapABI from "../constants/abis/crvUSD/HealthCalculatorZap.json" with { type: "json" };
8
+ import LeverageZapABI from "../constants/abis/LeverageZap.json" with { type: "json" };
8
9
  import { resolveMonetaryPolicyAbi } from "./monetaryPolicyAbi.js";
9
10
  const NATIVE_ETH_PLACEHOLDER = "0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee";
10
11
  export const setupMintMarketContracts = (llamalend, llammaData) => {
11
- const isV2Controller = llammaData.is_deleverage_supported === true;
12
+ const isNewMarket = llammaData.is_deleverage_supported === true;
12
13
  llamalend.setContract(llammaData.amm_address, llammaABI);
13
- llamalend.setContract(llammaData.controller_address, isV2Controller ? controllerV2ABI : controllerABI);
14
+ llamalend.setContract(llammaData.controller_address, isNewMarket ? controllerV2ABI : controllerABI);
14
15
  llamalend.setContract(llammaData.monetary_policy_address, resolveMonetaryPolicyAbi(llammaData.monetary_policy_address));
15
16
  if (llammaData.collateral_address === NATIVE_ETH_PLACEHOLDER) {
16
17
  llamalend.setContract(llamalend.constants.WETH, ERC20ABI);
@@ -18,7 +19,7 @@ export const setupMintMarketContracts = (llamalend, llammaData) => {
18
19
  else {
19
20
  llamalend.setContract(llammaData.collateral_address, ERC20ABI);
20
21
  }
21
- llamalend.setContract(llammaData.leverage_zap, LeverageZapCrvUSDABI);
22
+ llamalend.setContract(llammaData.leverage_zap, isNewMarket ? LeverageZapABI : LeverageZapCrvUSDABI);
22
23
  llamalend.setContract(llammaData.deleverage_zap, DeleverageZapABI);
23
24
  if (llammaData.health_calculator_zap && llammaData.health_calculator_zap !== llamalend.constants.ZERO_ADDRESS) {
24
25
  llamalend.setContract(llammaData.health_calculator_zap, HealthCalculatorZapABI);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@curvefi/llamalend-api",
3
- "version": "2.0.26",
3
+ "version": "2.0.28",
4
4
  "description": "JavaScript library for Curve Lending",
5
5
  "main": "lib/index.js",
6
6
  "author": "Macket",
@@ -431,7 +431,7 @@ export abstract class LoanBaseModule {
431
431
  const { debt: currentDebt } = await this.market.userPosition.userState(address);
432
432
  if (Number(currentDebt) === 0) throw Error(`Loan for ${address} does not exist`);
433
433
 
434
- const _debt = parseUnits(debt);
434
+ const _debt = parseUnits(debt, this.market.borrowed_token.decimals);
435
435
  const [, n1] = await this.market.userPosition.userBands(address);
436
436
  const { borrowed } = await this.market.userPosition.userState(address);
437
437
  const n = (BN(borrowed).gt(0)) ? MAX_ACTIVE_BAND : n1 - 1;
@@ -168,7 +168,7 @@ export class LoanV1Module extends LoanBaseModule implements ILoanV1 {
168
168
 
169
169
  public async repayHealth({ debt, full = true, address = "" }: { debt: number | string; full?: boolean; address?: string }): Promise<string> {
170
170
  address = _getAddress.call(this.llamalend, address);
171
- const _debt = parseUnits(debt) * BigInt(-1);
171
+ const _debt = parseUnits(debt, this.market.borrowed_token.decimals) * BigInt(-1);
172
172
 
173
173
  const contract = this.llamalend.contracts[this.market.addresses.controller].contract;
174
174
  const _health = await contract.health_calculator(address, 0, _debt, full, 0, this.llamalend.constantOptions) as bigint;
@@ -64,7 +64,7 @@ export class LoanV2Module extends LoanBaseModule implements ILoanV2 {
64
64
 
65
65
  public async repayHealth({ debt, shrink = false, full = true, address = "" }: { debt: number | string; shrink?: boolean; full?: boolean; address?: string }): Promise<string> {
66
66
  address = _getAddress.call(this.llamalend, address);
67
- const _debt = parseUnits(debt);
67
+ const _debt = parseUnits(debt, this.market.borrowed_token.decimals);
68
68
 
69
69
  const contract = this.llamalend.contracts[this.market.addresses.controller].contract;
70
70
  const _health = await contract.repay_health_preview(0, _debt, address, shrink, full, this.llamalend.constantOptions) as bigint;
@@ -8,15 +8,16 @@ import controllerV2ABI from "../constants/abis/crvUSD/controller_v2.json" with {
8
8
  import LeverageZapCrvUSDABI from "../constants/abis/crvUSD/LeverageZap.json" with { type: "json" };
9
9
  import DeleverageZapABI from "../constants/abis/crvUSD/DeleverageZap.json" with { type: "json" };
10
10
  import HealthCalculatorZapABI from "../constants/abis/crvUSD/HealthCalculatorZap.json" with { type: "json" };
11
+ import LeverageZapABI from "../constants/abis/LeverageZap.json" with { type: "json" };
11
12
  import { resolveMonetaryPolicyAbi } from "./monetaryPolicyAbi.js";
12
13
 
13
14
  const NATIVE_ETH_PLACEHOLDER = "0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee";
14
15
 
15
16
  export const setupMintMarketContracts = (llamalend: Llamalend, llammaData: ILlamma): void => {
16
- const isV2Controller = llammaData.is_deleverage_supported === true;
17
+ const isNewMarket = llammaData.is_deleverage_supported === true;
17
18
 
18
19
  llamalend.setContract(llammaData.amm_address, llammaABI);
19
- llamalend.setContract(llammaData.controller_address, isV2Controller ? controllerV2ABI : controllerABI);
20
+ llamalend.setContract(llammaData.controller_address, isNewMarket ? controllerV2ABI : controllerABI);
20
21
  llamalend.setContract(llammaData.monetary_policy_address, resolveMonetaryPolicyAbi(llammaData.monetary_policy_address));
21
22
 
22
23
  if (llammaData.collateral_address === NATIVE_ETH_PLACEHOLDER) {
@@ -25,7 +26,7 @@ export const setupMintMarketContracts = (llamalend: Llamalend, llammaData: ILlam
25
26
  llamalend.setContract(llammaData.collateral_address, ERC20ABI);
26
27
  }
27
28
 
28
- llamalend.setContract(llammaData.leverage_zap, LeverageZapCrvUSDABI);
29
+ llamalend.setContract(llammaData.leverage_zap, isNewMarket ? LeverageZapABI : LeverageZapCrvUSDABI);
29
30
  llamalend.setContract(llammaData.deleverage_zap, DeleverageZapABI);
30
31
  if (llammaData.health_calculator_zap && llammaData.health_calculator_zap !== llamalend.constants.ZERO_ADDRESS) {
31
32
  llamalend.setContract(llammaData.health_calculator_zap, HealthCalculatorZapABI);