@defisaver/positions-sdk 0.0.17 → 0.0.19
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/cjs/aaveV3/index.d.ts +1 -1
- package/cjs/aaveV3/index.js +2 -3
- package/cjs/compoundV3/index.d.ts +1 -1
- package/cjs/compoundV3/index.js +2 -3
- package/cjs/config/contracts.d.ts +184 -72
- package/cjs/config/contracts.js +16 -0
- package/cjs/helpers/aaveHelpers/index.js +5 -0
- package/cjs/liquity/index.d.ts +1 -0
- package/cjs/liquity/index.js +15 -2
- package/cjs/markets/curveUsd/index.d.ts +2 -0
- package/cjs/markets/curveUsd/index.js +14 -1
- package/cjs/morphoAaveV3/index.d.ts +1 -1
- package/cjs/morphoAaveV3/index.js +2 -3
- package/cjs/types/aave.d.ts +5 -0
- package/cjs/types/contracts/generated/CrvUSDsfrxETHAmm.d.ts +139 -0
- package/cjs/types/contracts/generated/CrvUSDsfrxETHAmm.js +5 -0
- package/cjs/types/contracts/generated/CrvUSDsfrxETHController.d.ts +205 -0
- package/cjs/types/contracts/generated/CrvUSDsfrxETHController.js +5 -0
- package/cjs/types/contracts/generated/index.d.ts +2 -0
- package/cjs/types/curveUsd.d.ts +2 -1
- package/cjs/types/curveUsd.js +1 -0
- package/cjs/types/liquity.d.ts +1 -0
- package/esm/aaveV3/index.d.ts +1 -1
- package/esm/aaveV3/index.js +2 -3
- package/esm/compoundV3/index.d.ts +1 -1
- package/esm/compoundV3/index.js +2 -3
- package/esm/config/contracts.d.ts +184 -72
- package/esm/config/contracts.js +16 -0
- package/esm/helpers/aaveHelpers/index.js +5 -0
- package/esm/liquity/index.d.ts +1 -0
- package/esm/liquity/index.js +13 -1
- package/esm/markets/curveUsd/index.d.ts +2 -0
- package/esm/markets/curveUsd/index.js +12 -0
- package/esm/morphoAaveV3/index.d.ts +1 -1
- package/esm/morphoAaveV3/index.js +2 -3
- package/esm/types/aave.d.ts +5 -0
- package/esm/types/contracts/generated/CrvUSDsfrxETHAmm.d.ts +139 -0
- package/esm/types/contracts/generated/CrvUSDsfrxETHAmm.js +4 -0
- package/esm/types/contracts/generated/CrvUSDsfrxETHController.d.ts +205 -0
- package/esm/types/contracts/generated/CrvUSDsfrxETHController.js +4 -0
- package/esm/types/contracts/generated/index.d.ts +2 -0
- package/esm/types/curveUsd.d.ts +2 -1
- package/esm/types/curveUsd.js +1 -0
- package/esm/types/liquity.d.ts +1 -0
- package/package.json +1 -1
- package/src/aaveV3/index.ts +2 -4
- package/src/compoundV3/index.ts +1 -4
- package/src/helpers/aaveHelpers/index.ts +7 -0
- package/src/liquity/index.ts +14 -1
- package/src/morphoAaveV3/index.ts +1 -4
- package/src/types/aave.ts +5 -0
- package/src/types/contracts/generated/CrvUSDsfrxETHAmm.ts +286 -0
- package/src/types/contracts/generated/CrvUSDsfrxETHController.ts +403 -0
- package/src/types/contracts/generated/index.ts +2 -0
- package/src/types/liquity.ts +1 -0
|
@@ -0,0 +1,205 @@
|
|
|
1
|
+
/// <reference types="node" />
|
|
2
|
+
import type BN from "bn.js";
|
|
3
|
+
import type { ContractOptions } from "web3-eth-contract";
|
|
4
|
+
import type { EventLog } from "web3-core";
|
|
5
|
+
import type { EventEmitter } from "events";
|
|
6
|
+
import type { Callback, PayableTransactionObject, NonPayableTransactionObject, BlockType, ContractEventLog, BaseContract } from "./types";
|
|
7
|
+
export interface EventOptions {
|
|
8
|
+
filter?: object;
|
|
9
|
+
fromBlock?: BlockType;
|
|
10
|
+
topics?: string[];
|
|
11
|
+
}
|
|
12
|
+
export type UserState = ContractEventLog<{
|
|
13
|
+
user: string;
|
|
14
|
+
collateral: string;
|
|
15
|
+
debt: string;
|
|
16
|
+
n1: string;
|
|
17
|
+
n2: string;
|
|
18
|
+
liquidation_discount: string;
|
|
19
|
+
0: string;
|
|
20
|
+
1: string;
|
|
21
|
+
2: string;
|
|
22
|
+
3: string;
|
|
23
|
+
4: string;
|
|
24
|
+
5: string;
|
|
25
|
+
}>;
|
|
26
|
+
export type Borrow = ContractEventLog<{
|
|
27
|
+
user: string;
|
|
28
|
+
collateral_increase: string;
|
|
29
|
+
loan_increase: string;
|
|
30
|
+
0: string;
|
|
31
|
+
1: string;
|
|
32
|
+
2: string;
|
|
33
|
+
}>;
|
|
34
|
+
export type Repay = ContractEventLog<{
|
|
35
|
+
user: string;
|
|
36
|
+
collateral_decrease: string;
|
|
37
|
+
loan_decrease: string;
|
|
38
|
+
0: string;
|
|
39
|
+
1: string;
|
|
40
|
+
2: string;
|
|
41
|
+
}>;
|
|
42
|
+
export type RemoveCollateral = ContractEventLog<{
|
|
43
|
+
user: string;
|
|
44
|
+
collateral_decrease: string;
|
|
45
|
+
0: string;
|
|
46
|
+
1: string;
|
|
47
|
+
}>;
|
|
48
|
+
export type Liquidate = ContractEventLog<{
|
|
49
|
+
liquidator: string;
|
|
50
|
+
user: string;
|
|
51
|
+
collateral_received: string;
|
|
52
|
+
stablecoin_received: string;
|
|
53
|
+
debt: string;
|
|
54
|
+
0: string;
|
|
55
|
+
1: string;
|
|
56
|
+
2: string;
|
|
57
|
+
3: string;
|
|
58
|
+
4: string;
|
|
59
|
+
}>;
|
|
60
|
+
export type SetMonetaryPolicy = ContractEventLog<{
|
|
61
|
+
monetary_policy: string;
|
|
62
|
+
0: string;
|
|
63
|
+
}>;
|
|
64
|
+
export type SetBorrowingDiscounts = ContractEventLog<{
|
|
65
|
+
loan_discount: string;
|
|
66
|
+
liquidation_discount: string;
|
|
67
|
+
0: string;
|
|
68
|
+
1: string;
|
|
69
|
+
}>;
|
|
70
|
+
export type CollectFees = ContractEventLog<{
|
|
71
|
+
amount: string;
|
|
72
|
+
new_supply: string;
|
|
73
|
+
0: string;
|
|
74
|
+
1: string;
|
|
75
|
+
}>;
|
|
76
|
+
export interface CrvUSDsfrxETHController extends BaseContract {
|
|
77
|
+
constructor(jsonInterface: any[], address?: string, options?: ContractOptions): CrvUSDsfrxETHController;
|
|
78
|
+
clone(): CrvUSDsfrxETHController;
|
|
79
|
+
methods: {
|
|
80
|
+
factory(): NonPayableTransactionObject<string>;
|
|
81
|
+
amm(): NonPayableTransactionObject<string>;
|
|
82
|
+
collateral_token(): NonPayableTransactionObject<string>;
|
|
83
|
+
debt(user: string): NonPayableTransactionObject<string>;
|
|
84
|
+
loan_exists(user: string): NonPayableTransactionObject<boolean>;
|
|
85
|
+
total_debt(): NonPayableTransactionObject<string>;
|
|
86
|
+
"max_borrowable(uint256,uint256)"(collateral: number | string | BN, N: number | string | BN): NonPayableTransactionObject<string>;
|
|
87
|
+
"max_borrowable(uint256,uint256,uint256)"(collateral: number | string | BN, N: number | string | BN, current_debt: number | string | BN): NonPayableTransactionObject<string>;
|
|
88
|
+
min_collateral(debt: number | string | BN, N: number | string | BN): NonPayableTransactionObject<string>;
|
|
89
|
+
calculate_debt_n1(collateral: number | string | BN, debt: number | string | BN, N: number | string | BN): NonPayableTransactionObject<string>;
|
|
90
|
+
create_loan(collateral: number | string | BN, debt: number | string | BN, N: number | string | BN): PayableTransactionObject<void>;
|
|
91
|
+
create_loan_extended(collateral: number | string | BN, debt: number | string | BN, N: number | string | BN, callbacker: string, callback_args: number | string | BN[]): PayableTransactionObject<void>;
|
|
92
|
+
"add_collateral(uint256)"(collateral: number | string | BN): PayableTransactionObject<void>;
|
|
93
|
+
"add_collateral(uint256,address)"(collateral: number | string | BN, _for: string): PayableTransactionObject<void>;
|
|
94
|
+
"remove_collateral(uint256)"(collateral: number | string | BN): NonPayableTransactionObject<void>;
|
|
95
|
+
"remove_collateral(uint256,bool)"(collateral: number | string | BN, use_eth: boolean): NonPayableTransactionObject<void>;
|
|
96
|
+
borrow_more(collateral: number | string | BN, debt: number | string | BN): PayableTransactionObject<void>;
|
|
97
|
+
"repay(uint256)"(_d_debt: number | string | BN): NonPayableTransactionObject<void>;
|
|
98
|
+
"repay(uint256,address)"(_d_debt: number | string | BN, _for: string): NonPayableTransactionObject<void>;
|
|
99
|
+
"repay(uint256,address,int256)"(_d_debt: number | string | BN, _for: string, max_active_band: number | string | BN): NonPayableTransactionObject<void>;
|
|
100
|
+
"repay(uint256,address,int256,bool)"(_d_debt: number | string | BN, _for: string, max_active_band: number | string | BN, use_eth: boolean): NonPayableTransactionObject<void>;
|
|
101
|
+
repay_extended(callbacker: string, callback_args: number | string | BN[]): NonPayableTransactionObject<void>;
|
|
102
|
+
"health_calculator(address,int256,int256,bool)"(user: string, d_collateral: number | string | BN, d_debt: number | string | BN, full: boolean): NonPayableTransactionObject<string>;
|
|
103
|
+
"health_calculator(address,int256,int256,bool,uint256)"(user: string, d_collateral: number | string | BN, d_debt: number | string | BN, full: boolean, N: number | string | BN): NonPayableTransactionObject<string>;
|
|
104
|
+
"liquidate(address,uint256)"(user: string, min_x: number | string | BN): NonPayableTransactionObject<void>;
|
|
105
|
+
"liquidate(address,uint256,bool)"(user: string, min_x: number | string | BN, use_eth: boolean): NonPayableTransactionObject<void>;
|
|
106
|
+
liquidate_extended(user: string, min_x: number | string | BN, frac: number | string | BN, use_eth: boolean, callbacker: string, callback_args: number | string | BN[]): NonPayableTransactionObject<void>;
|
|
107
|
+
"tokens_to_liquidate(address)"(user: string): NonPayableTransactionObject<string>;
|
|
108
|
+
"tokens_to_liquidate(address,uint256)"(user: string, frac: number | string | BN): NonPayableTransactionObject<string>;
|
|
109
|
+
"health(address)"(user: string): NonPayableTransactionObject<string>;
|
|
110
|
+
"health(address,bool)"(user: string, full: boolean): NonPayableTransactionObject<string>;
|
|
111
|
+
"users_to_liquidate()"(): NonPayableTransactionObject<[
|
|
112
|
+
string,
|
|
113
|
+
string,
|
|
114
|
+
string,
|
|
115
|
+
string,
|
|
116
|
+
string
|
|
117
|
+
] & {
|
|
118
|
+
user: string;
|
|
119
|
+
x: string;
|
|
120
|
+
y: string;
|
|
121
|
+
debt: string;
|
|
122
|
+
health: string;
|
|
123
|
+
}[]>;
|
|
124
|
+
"users_to_liquidate(uint256)"(_from: number | string | BN): NonPayableTransactionObject<[
|
|
125
|
+
string,
|
|
126
|
+
string,
|
|
127
|
+
string,
|
|
128
|
+
string,
|
|
129
|
+
string
|
|
130
|
+
] & {
|
|
131
|
+
user: string;
|
|
132
|
+
x: string;
|
|
133
|
+
y: string;
|
|
134
|
+
debt: string;
|
|
135
|
+
health: string;
|
|
136
|
+
}[]>;
|
|
137
|
+
"users_to_liquidate(uint256,uint256)"(_from: number | string | BN, _limit: number | string | BN): NonPayableTransactionObject<[
|
|
138
|
+
string,
|
|
139
|
+
string,
|
|
140
|
+
string,
|
|
141
|
+
string,
|
|
142
|
+
string
|
|
143
|
+
] & {
|
|
144
|
+
user: string;
|
|
145
|
+
x: string;
|
|
146
|
+
y: string;
|
|
147
|
+
debt: string;
|
|
148
|
+
health: string;
|
|
149
|
+
}[]>;
|
|
150
|
+
amm_price(): NonPayableTransactionObject<string>;
|
|
151
|
+
user_prices(user: string): NonPayableTransactionObject<[string, string]>;
|
|
152
|
+
user_state(user: string): NonPayableTransactionObject<[string, string, string, string]>;
|
|
153
|
+
set_amm_fee(fee: number | string | BN): NonPayableTransactionObject<void>;
|
|
154
|
+
set_amm_admin_fee(fee: number | string | BN): NonPayableTransactionObject<void>;
|
|
155
|
+
set_monetary_policy(monetary_policy: string): NonPayableTransactionObject<void>;
|
|
156
|
+
set_borrowing_discounts(loan_discount: number | string | BN, liquidation_discount: number | string | BN): NonPayableTransactionObject<void>;
|
|
157
|
+
set_callback(cb: string): NonPayableTransactionObject<void>;
|
|
158
|
+
admin_fees(): NonPayableTransactionObject<string>;
|
|
159
|
+
collect_fees(): NonPayableTransactionObject<string>;
|
|
160
|
+
liquidation_discounts(arg0: string): NonPayableTransactionObject<string>;
|
|
161
|
+
loans(arg0: number | string | BN): NonPayableTransactionObject<string>;
|
|
162
|
+
loan_ix(arg0: string): NonPayableTransactionObject<string>;
|
|
163
|
+
n_loans(): NonPayableTransactionObject<string>;
|
|
164
|
+
minted(): NonPayableTransactionObject<string>;
|
|
165
|
+
redeemed(): NonPayableTransactionObject<string>;
|
|
166
|
+
monetary_policy(): NonPayableTransactionObject<string>;
|
|
167
|
+
liquidation_discount(): NonPayableTransactionObject<string>;
|
|
168
|
+
loan_discount(): NonPayableTransactionObject<string>;
|
|
169
|
+
};
|
|
170
|
+
events: {
|
|
171
|
+
UserState(cb?: Callback<UserState>): EventEmitter;
|
|
172
|
+
UserState(options?: EventOptions, cb?: Callback<UserState>): EventEmitter;
|
|
173
|
+
Borrow(cb?: Callback<Borrow>): EventEmitter;
|
|
174
|
+
Borrow(options?: EventOptions, cb?: Callback<Borrow>): EventEmitter;
|
|
175
|
+
Repay(cb?: Callback<Repay>): EventEmitter;
|
|
176
|
+
Repay(options?: EventOptions, cb?: Callback<Repay>): EventEmitter;
|
|
177
|
+
RemoveCollateral(cb?: Callback<RemoveCollateral>): EventEmitter;
|
|
178
|
+
RemoveCollateral(options?: EventOptions, cb?: Callback<RemoveCollateral>): EventEmitter;
|
|
179
|
+
Liquidate(cb?: Callback<Liquidate>): EventEmitter;
|
|
180
|
+
Liquidate(options?: EventOptions, cb?: Callback<Liquidate>): EventEmitter;
|
|
181
|
+
SetMonetaryPolicy(cb?: Callback<SetMonetaryPolicy>): EventEmitter;
|
|
182
|
+
SetMonetaryPolicy(options?: EventOptions, cb?: Callback<SetMonetaryPolicy>): EventEmitter;
|
|
183
|
+
SetBorrowingDiscounts(cb?: Callback<SetBorrowingDiscounts>): EventEmitter;
|
|
184
|
+
SetBorrowingDiscounts(options?: EventOptions, cb?: Callback<SetBorrowingDiscounts>): EventEmitter;
|
|
185
|
+
CollectFees(cb?: Callback<CollectFees>): EventEmitter;
|
|
186
|
+
CollectFees(options?: EventOptions, cb?: Callback<CollectFees>): EventEmitter;
|
|
187
|
+
allEvents(options?: EventOptions, cb?: Callback<EventLog>): EventEmitter;
|
|
188
|
+
};
|
|
189
|
+
once(event: "UserState", cb: Callback<UserState>): void;
|
|
190
|
+
once(event: "UserState", options: EventOptions, cb: Callback<UserState>): void;
|
|
191
|
+
once(event: "Borrow", cb: Callback<Borrow>): void;
|
|
192
|
+
once(event: "Borrow", options: EventOptions, cb: Callback<Borrow>): void;
|
|
193
|
+
once(event: "Repay", cb: Callback<Repay>): void;
|
|
194
|
+
once(event: "Repay", options: EventOptions, cb: Callback<Repay>): void;
|
|
195
|
+
once(event: "RemoveCollateral", cb: Callback<RemoveCollateral>): void;
|
|
196
|
+
once(event: "RemoveCollateral", options: EventOptions, cb: Callback<RemoveCollateral>): void;
|
|
197
|
+
once(event: "Liquidate", cb: Callback<Liquidate>): void;
|
|
198
|
+
once(event: "Liquidate", options: EventOptions, cb: Callback<Liquidate>): void;
|
|
199
|
+
once(event: "SetMonetaryPolicy", cb: Callback<SetMonetaryPolicy>): void;
|
|
200
|
+
once(event: "SetMonetaryPolicy", options: EventOptions, cb: Callback<SetMonetaryPolicy>): void;
|
|
201
|
+
once(event: "SetBorrowingDiscounts", cb: Callback<SetBorrowingDiscounts>): void;
|
|
202
|
+
once(event: "SetBorrowingDiscounts", options: EventOptions, cb: Callback<SetBorrowingDiscounts>): void;
|
|
203
|
+
once(event: "CollectFees", cb: Callback<CollectFees>): void;
|
|
204
|
+
once(event: "CollectFees", options: EventOptions, cb: Callback<CollectFees>): void;
|
|
205
|
+
}
|
|
@@ -56,6 +56,8 @@ export type { CrvUSDFactory } from "./CrvUSDFactory";
|
|
|
56
56
|
export type { CrvUSDView } from "./CrvUSDView";
|
|
57
57
|
export type { CrvUSDWBTCAmm } from "./CrvUSDWBTCAmm";
|
|
58
58
|
export type { CrvUSDWBTCController } from "./CrvUSDWBTCController";
|
|
59
|
+
export type { CrvUSDsfrxETHAmm } from "./CrvUSDsfrxETHAmm";
|
|
60
|
+
export type { CrvUSDsfrxETHController } from "./CrvUSDsfrxETHController";
|
|
59
61
|
export type { CrvUSDtBTCAmm } from "./CrvUSDtBTCAmm";
|
|
60
62
|
export type { CrvUSDtBTCController } from "./CrvUSDtBTCController";
|
|
61
63
|
export type { CrvUSDwstETHAmm } from "./CrvUSDwstETHAmm";
|
package/esm/types/curveUsd.d.ts
CHANGED
package/esm/types/curveUsd.js
CHANGED
|
@@ -4,6 +4,7 @@ export var CrvUSDVersions;
|
|
|
4
4
|
CrvUSDVersions["WBTC"] = "WBTC";
|
|
5
5
|
CrvUSDVersions["ETH"] = "ETH";
|
|
6
6
|
CrvUSDVersions["tBTC"] = "tBTC";
|
|
7
|
+
CrvUSDVersions["sfrxETH"] = "sfrxETH";
|
|
7
8
|
})(CrvUSDVersions || (CrvUSDVersions = {}));
|
|
8
9
|
export var CrvUSDStatus;
|
|
9
10
|
(function (CrvUSDStatus) {
|
package/esm/types/liquity.d.ts
CHANGED
package/package.json
CHANGED
package/src/aaveV3/index.ts
CHANGED
|
@@ -398,7 +398,7 @@ export const getAaveV3AccountBalances = async (web3: Web3, network: NetworkNumbe
|
|
|
398
398
|
return balances;
|
|
399
399
|
};
|
|
400
400
|
|
|
401
|
-
export const getAaveV3AccountData = async (web3: Web3, network: NetworkNumber, address: EthAddress, extractedState: any
|
|
401
|
+
export const getAaveV3AccountData = async (web3: Web3, network: NetworkNumber, address: EthAddress, extractedState: any): Promise<AaveV3PositionData> => {
|
|
402
402
|
const {
|
|
403
403
|
selectedMarket: market, assetsData,
|
|
404
404
|
} = extractedState;
|
|
@@ -509,13 +509,11 @@ export const getAaveV3AccountData = async (web3: Web3, network: NetworkNumber, a
|
|
|
509
509
|
};
|
|
510
510
|
});
|
|
511
511
|
|
|
512
|
-
const aggregateFunction = customGetAggregatedDataFunction || aaveAnyGetAggregatedPositionData;
|
|
513
|
-
|
|
514
512
|
payload.eModeCategory = +multicallRes[0][0];
|
|
515
513
|
payload = {
|
|
516
514
|
...payload,
|
|
517
515
|
usedAssets,
|
|
518
|
-
...
|
|
516
|
+
...aaveAnyGetAggregatedPositionData({
|
|
519
517
|
...extractedState, usedAssets, eModeCategory: payload.eModeCategory,
|
|
520
518
|
}),
|
|
521
519
|
};
|
package/src/compoundV3/index.ts
CHANGED
|
@@ -170,7 +170,6 @@ export const getCompoundV3AccountData = async (
|
|
|
170
170
|
selectedMarket: CompoundMarketData,
|
|
171
171
|
assetsData: CompoundV3AssetsData,
|
|
172
172
|
}),
|
|
173
|
-
customGetAggregatedDataFunction?: Function,
|
|
174
173
|
): Promise<CompoundV3PositionData> => {
|
|
175
174
|
if (!address) throw new Error('No address provided');
|
|
176
175
|
const {
|
|
@@ -245,12 +244,10 @@ export const getCompoundV3AccountData = async (
|
|
|
245
244
|
};
|
|
246
245
|
});
|
|
247
246
|
|
|
248
|
-
const aggregateFunction = customGetAggregatedDataFunction || getCompoundV3AggregatedData;
|
|
249
|
-
|
|
250
247
|
payload = {
|
|
251
248
|
...payload,
|
|
252
249
|
usedAssets,
|
|
253
|
-
...
|
|
250
|
+
...getCompoundV3AggregatedData({
|
|
254
251
|
usedAssets, assetsData, network, selectedMarket,
|
|
255
252
|
}),
|
|
256
253
|
isAllowed: data[1][0],
|
|
@@ -131,5 +131,12 @@ export const aaveAnyGetAggregatedPositionData = ({
|
|
|
131
131
|
}
|
|
132
132
|
payload.liquidationPrice = calcLeverageLiqPrice(leveragedType, assetPrice, payload.borrowedUsd, payload.liquidationLimitUsd);
|
|
133
133
|
}
|
|
134
|
+
|
|
135
|
+
payload.suppliedEth = new Dec(payload.suppliedUsd).div(assetsData.ETH.price).toString();
|
|
136
|
+
payload.borrowedEth = new Dec(payload.borrowedUsd).div(assetsData.ETH.price).toString();
|
|
137
|
+
payload.leftToBorrowEth = new Dec(payload.leftToBorrowUsd).div(assetsData.ETH.price).toString();
|
|
138
|
+
payload.borrowLimitEth = new Dec(payload.borrowLimitUsd).div(assetsData.ETH.price).toString();
|
|
139
|
+
payload.liquidationLimitEth = new Dec(payload.liquidationLimitUsd).div(assetsData.ETH.price).toString();
|
|
140
|
+
|
|
134
141
|
return payload;
|
|
135
142
|
};
|
package/src/liquity/index.ts
CHANGED
|
@@ -9,6 +9,7 @@ import {
|
|
|
9
9
|
} from '../contracts';
|
|
10
10
|
import { multicall } from '../multicall';
|
|
11
11
|
import { LIQUITY_TROVE_STATUS_ENUM, LiquityTroveInfo } from '../types';
|
|
12
|
+
import { ZERO_ADDRESS } from '../constants';
|
|
12
13
|
|
|
13
14
|
export const LIQUITY_NORMAL_MODE_RATIO = 110; // MCR
|
|
14
15
|
export const LIQUITY_RECOVERY_MODE_RATIO = 150; // CCR
|
|
@@ -38,6 +39,14 @@ export const getLiquityAccountBalances = async (web3: Web3, network: NetworkNumb
|
|
|
38
39
|
return balances;
|
|
39
40
|
};
|
|
40
41
|
|
|
42
|
+
const _getDebtInFront = async (viewContract: any, address: string, accumulatedSum = '0', iterations = 2000) => viewContract.methods.getDebtInFront(address, accumulatedSum, iterations).call();
|
|
43
|
+
|
|
44
|
+
export const getDebtInFront = async (viewContract: any, address: string, accumulatedSum = '0', iterations = 2000): Promise<string> => {
|
|
45
|
+
const { debt, next } = await _getDebtInFront(viewContract, address, accumulatedSum, iterations);
|
|
46
|
+
if (next === ZERO_ADDRESS) return assetAmountInEth(debt, 'LUSD');
|
|
47
|
+
return getDebtInFront(viewContract, next, debt, iterations);
|
|
48
|
+
};
|
|
49
|
+
|
|
41
50
|
export const getLiquityTroveInfo = async (web3: Web3, network: NetworkNumber, address: string): Promise<LiquityTroveInfo> => {
|
|
42
51
|
const viewContract = LiquityViewContract(web3, network);
|
|
43
52
|
const collSurplusPoolContract = LiquityCollSurplusPoolContract(web3, network);
|
|
@@ -78,7 +87,10 @@ export const getLiquityTroveInfo = async (web3: Web3, network: NetworkNumber, ad
|
|
|
78
87
|
},
|
|
79
88
|
];
|
|
80
89
|
|
|
81
|
-
const multiRes = await
|
|
90
|
+
const [multiRes, debtInFront] = await Promise.all([
|
|
91
|
+
multicall(multicallData, web3, network),
|
|
92
|
+
getDebtInFront(viewContract, address),
|
|
93
|
+
]);
|
|
82
94
|
|
|
83
95
|
const recoveryMode = multiRes[0][6];
|
|
84
96
|
const totalETH = multiRes[4][0];
|
|
@@ -95,6 +107,7 @@ export const getLiquityTroveInfo = async (web3: Web3, network: NetworkNumber, ad
|
|
|
95
107
|
assetPrice: assetAmountInEth(multiRes[3][0]),
|
|
96
108
|
totalETH,
|
|
97
109
|
totalLUSD,
|
|
110
|
+
debtInFront,
|
|
98
111
|
minCollateralRatio: recoveryMode ? LIQUITY_RECOVERY_MODE_RATIO : LIQUITY_NORMAL_MODE_RATIO,
|
|
99
112
|
priceForRecovery: new Dec(recoveryMode ? LIQUITY_RECOVERY_MODE_RATIO : LIQUITY_NORMAL_MODE_RATIO).mul(totalLUSD).div(totalETH).div(100)
|
|
100
113
|
.toString(),
|
|
@@ -447,7 +447,6 @@ export const getMorphoAaveV3AccountData = async (
|
|
|
447
447
|
assetsData: MorphoAaveV3AssetsData,
|
|
448
448
|
delegator: string,
|
|
449
449
|
selectedMarket: MorphoAaveV3MarketInfo,
|
|
450
|
-
customGetAggregatedDataFunction?: Function,
|
|
451
450
|
): Promise<MorphoAaveV3PositionData> => {
|
|
452
451
|
if (!address) {
|
|
453
452
|
throw new Error('No address provided.');
|
|
@@ -591,11 +590,9 @@ export const getMorphoAaveV3AccountData = async (
|
|
|
591
590
|
}
|
|
592
591
|
});
|
|
593
592
|
|
|
594
|
-
const aggregateFunction = customGetAggregatedDataFunction || aaveAnyGetAggregatedPositionData;
|
|
595
|
-
|
|
596
593
|
payload = {
|
|
597
594
|
...payload,
|
|
598
|
-
...
|
|
595
|
+
...aaveAnyGetAggregatedPositionData({
|
|
599
596
|
usedAssets: payload.usedAssets, assetsData, eModeCategory, selectedMarket,
|
|
600
597
|
}),
|
|
601
598
|
};
|
package/src/types/aave.ts
CHANGED
|
@@ -222,11 +222,16 @@ export interface AaveV3IncentiveData {
|
|
|
222
222
|
|
|
223
223
|
export interface AaveV3AggregatedPositionData {
|
|
224
224
|
suppliedUsd: string,
|
|
225
|
+
suppliedEth: string,
|
|
225
226
|
suppliedCollateralUsd: string,
|
|
226
227
|
borrowedUsd: string,
|
|
228
|
+
borrowedEth: string,
|
|
227
229
|
borrowLimitUsd: string,
|
|
230
|
+
borrowLimitEth: string,
|
|
228
231
|
liquidationLimitUsd: string,
|
|
232
|
+
liquidationLimitEth: string,
|
|
229
233
|
leftToBorrowUsd: string,
|
|
234
|
+
leftToBorrowEth: string,
|
|
230
235
|
ratio: string,
|
|
231
236
|
collRatio: string,
|
|
232
237
|
netApy: string,
|