@defisaver/positions-sdk 1.0.2 → 1.0.3-dev

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.
@@ -79,6 +79,11 @@ const getCurveUsdGlobalData = (web3, network, selectedMarket) => __awaiter(void
79
79
  abiItem: contract.options.jsonInterface.find(({ name }) => name === 'globalData'),
80
80
  params: [selectedMarket.controllerAddress],
81
81
  },
82
+ {
83
+ target: selectedMarket.controllerAddress,
84
+ abiItem: (0, utils_1.getAbiItem)((0, contracts_1.getConfigContractAbi)('crvUSDwstETHController'), 'loan_discount'),
85
+ params: [],
86
+ },
82
87
  ];
83
88
  const multiRes = yield (0, multicall_1.multicall)(multicallData, web3, network);
84
89
  const data = multiRes[2][0];
@@ -96,10 +101,12 @@ const getCurveUsdGlobalData = (web3, network, selectedMarket) => __awaiter(void
96
101
  .toString();
97
102
  const bandsData = yield getAndFormatBands(web3, network, selectedMarket, data.minBand, data.maxBand);
98
103
  const leftToBorrow = new decimal_js_1.default(debtCeiling).minus(totalDebt).toString();
104
+ const loanDiscount = (0, tokens_1.assetAmountInEth)(multiRes[3][0], debtAsset);
99
105
  return Object.assign(Object.assign({}, data), { debtCeiling,
100
106
  totalDebt,
101
107
  ammPrice, oraclePrice: (0, tokens_1.assetAmountInEth)(data.oraclePrice, debtAsset), basePrice: (0, tokens_1.assetAmountInEth)(data.basePrice, debtAsset), minted: (0, tokens_1.assetAmountInEth)(data.minted, debtAsset), redeemed: (0, tokens_1.assetAmountInEth)(data.redeemed, debtAsset), borrowRate,
102
- futureBorrowRate, bands: bandsData, leftToBorrow });
108
+ futureBorrowRate, bands: bandsData, leftToBorrow,
109
+ loanDiscount });
103
110
  });
104
111
  exports.getCurveUsdGlobalData = getCurveUsdGlobalData;
105
112
  const getStatusForUser = (bandRange, activeBand, crvUSDSupplied, collSupplied, healthPercent) => {
@@ -59,6 +59,7 @@ export interface CrvUSDGlobalMarketData {
59
59
  futureBorrowRate: string;
60
60
  leftToBorrow: string;
61
61
  bands: BandData[];
62
+ loanDiscount: string;
62
63
  }
63
64
  export interface CrvUSDAggregatedPositionData {
64
65
  ratio: string;
@@ -12,10 +12,10 @@ import { assetAmountInEth, getAssetInfo } from '@defisaver/tokens';
12
12
  import { CrvUSDStatus, } from '../types';
13
13
  import { multicall } from '../multicall';
14
14
  import { NetworkNumber, } from '../types/common';
15
- import { CrvUSDFactoryContract, CrvUSDViewContract } from '../contracts';
15
+ import { CrvUSDFactoryContract, CrvUSDViewContract, getConfigContractAbi } from '../contracts';
16
16
  import { getCrvUsdAggregatedData } from '../helpers/curveUsdHelpers';
17
17
  import { CrvUsdMarkets } from '../markets';
18
- import { wethToEth } from '../services/utils';
18
+ import { getAbiItem, wethToEth } from '../services/utils';
19
19
  const getAndFormatBands = (web3, network, selectedMarket, _minBand, _maxBand) => __awaiter(void 0, void 0, void 0, function* () {
20
20
  const contract = CrvUSDViewContract(web3, network);
21
21
  const minBand = parseInt(_minBand, 10);
@@ -73,6 +73,11 @@ export const getCurveUsdGlobalData = (web3, network, selectedMarket) => __awaite
73
73
  abiItem: contract.options.jsonInterface.find(({ name }) => name === 'globalData'),
74
74
  params: [selectedMarket.controllerAddress],
75
75
  },
76
+ {
77
+ target: selectedMarket.controllerAddress,
78
+ abiItem: getAbiItem(getConfigContractAbi('crvUSDwstETHController'), 'loan_discount'),
79
+ params: [],
80
+ },
76
81
  ];
77
82
  const multiRes = yield multicall(multicallData, web3, network);
78
83
  const data = multiRes[2][0];
@@ -90,10 +95,12 @@ export const getCurveUsdGlobalData = (web3, network, selectedMarket) => __awaite
90
95
  .toString();
91
96
  const bandsData = yield getAndFormatBands(web3, network, selectedMarket, data.minBand, data.maxBand);
92
97
  const leftToBorrow = new Dec(debtCeiling).minus(totalDebt).toString();
98
+ const loanDiscount = assetAmountInEth(multiRes[3][0], debtAsset);
93
99
  return Object.assign(Object.assign({}, data), { debtCeiling,
94
100
  totalDebt,
95
101
  ammPrice, oraclePrice: assetAmountInEth(data.oraclePrice, debtAsset), basePrice: assetAmountInEth(data.basePrice, debtAsset), minted: assetAmountInEth(data.minted, debtAsset), redeemed: assetAmountInEth(data.redeemed, debtAsset), borrowRate,
96
- futureBorrowRate, bands: bandsData, leftToBorrow });
102
+ futureBorrowRate, bands: bandsData, leftToBorrow,
103
+ loanDiscount });
97
104
  });
98
105
  const getStatusForUser = (bandRange, activeBand, crvUSDSupplied, collSupplied, healthPercent) => {
99
106
  // if bands are equal, that can only be [0,0] which means user doesn't have loan (min number of bands is 4)
@@ -59,6 +59,7 @@ export interface CrvUSDGlobalMarketData {
59
59
  futureBorrowRate: string;
60
60
  leftToBorrow: string;
61
61
  bands: BandData[];
62
+ loanDiscount: string;
62
63
  }
63
64
  export interface CrvUSDAggregatedPositionData {
64
65
  ratio: string;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@defisaver/positions-sdk",
3
- "version": "1.0.2",
3
+ "version": "1.0.3-dev",
4
4
  "description": "",
5
5
  "main": "./cjs/index.js",
6
6
  "module": "./esm/index.js",
@@ -8,10 +8,10 @@ import { multicall } from '../multicall';
8
8
  import {
9
9
  Blockish, EthAddress, NetworkNumber, PositionBalances,
10
10
  } from '../types/common';
11
- import { CrvUSDFactoryContract, CrvUSDViewContract } from '../contracts';
11
+ import { CrvUSDFactoryContract, CrvUSDViewContract, getConfigContractAbi } from '../contracts';
12
12
  import { getCrvUsdAggregatedData } from '../helpers/curveUsdHelpers';
13
13
  import { CrvUsdMarkets } from '../markets';
14
- import { wethToEth } from '../services/utils';
14
+ import { getAbiItem, wethToEth } from '../services/utils';
15
15
 
16
16
  const getAndFormatBands = async (web3: Web3, network: NetworkNumber, selectedMarket: CrvUSDMarketData, _minBand: string, _maxBand: string) => {
17
17
  const contract = CrvUSDViewContract(web3, network);
@@ -73,6 +73,11 @@ export const getCurveUsdGlobalData = async (web3: Web3, network: NetworkNumber,
73
73
  abiItem: contract.options.jsonInterface.find(({ name }) => name === 'globalData'),
74
74
  params: [selectedMarket.controllerAddress],
75
75
  },
76
+ {
77
+ target: selectedMarket.controllerAddress,
78
+ abiItem: getAbiItem(getConfigContractAbi('crvUSDwstETHController'), 'loan_discount'),
79
+ params: [],
80
+ },
76
81
  ];
77
82
  const multiRes = await multicall(multicallData, web3, network);
78
83
  const data = multiRes[2][0];
@@ -95,6 +100,9 @@ export const getCurveUsdGlobalData = async (web3: Web3, network: NetworkNumber,
95
100
  const bandsData = await getAndFormatBands(web3, network, selectedMarket, data.minBand, data.maxBand);
96
101
 
97
102
  const leftToBorrow = new Dec(debtCeiling).minus(totalDebt).toString();
103
+
104
+ const loanDiscount = assetAmountInEth(multiRes[3][0], debtAsset);
105
+
98
106
  return {
99
107
  ...data,
100
108
  debtCeiling,
@@ -108,6 +116,7 @@ export const getCurveUsdGlobalData = async (web3: Web3, network: NetworkNumber,
108
116
  futureBorrowRate,
109
117
  bands: bandsData,
110
118
  leftToBorrow,
119
+ loanDiscount,
111
120
  };
112
121
  };
113
122
 
@@ -227,4 +236,4 @@ export const getCurveUsdFullPositionData = async (web3: Web3, network: NetworkNu
227
236
  const marketData = await getCurveUsdGlobalData(web3, network, selectedMarket);
228
237
  const positionData = await getCurveUsdUserData(web3, network, address, selectedMarket, marketData.activeBand);
229
238
  return positionData;
230
- };
239
+ };
@@ -65,6 +65,7 @@ export interface CrvUSDGlobalMarketData {
65
65
  futureBorrowRate: string,
66
66
  leftToBorrow: string,
67
67
  bands: BandData[],
68
+ loanDiscount: string;
68
69
  }
69
70
 
70
71
  export interface CrvUSDAggregatedPositionData {