@curvefi/llamalend-api 2.2.6 → 2.3.1
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/.yarn/install-state.gz +0 -0
- package/README.md +23 -26
- package/lib/constants/aliases.js +6 -6
- package/lib/lendMarkets/interfaces/leverageZapV2.d.ts +31 -63
- package/lib/lendMarkets/modules/common/leverageZapV2Base.d.ts +34 -65
- package/lib/lendMarkets/modules/common/leverageZapV2Base.js +107 -127
- package/lib/lendMarkets/modules/v1/leverageV1ZapV2.d.ts +3 -3
- package/lib/lendMarkets/modules/v1/leverageV1ZapV2.js +12 -12
- package/lib/lendMarkets/modules/v2/leverageV2ZapV2.d.ts +3 -3
- package/lib/lendMarkets/modules/v2/leverageV2ZapV2.js +10 -17
- package/lib/utils.d.ts +3 -11
- package/lib/utils.js +2 -10
- package/package.json +2 -2
- package/src/constants/aliases.ts +6 -6
- package/src/lendMarkets/interfaces/leverageZapV2.ts +30 -72
- package/src/lendMarkets/modules/common/leverageZapV2Base.ts +112 -175
- package/src/lendMarkets/modules/v1/leverageV1ZapV2.ts +9 -12
- package/src/lendMarkets/modules/v2/leverageV2ZapV2.ts +7 -17
- package/src/utils.ts +5 -27
|
Binary file
|
package/README.md
CHANGED
|
@@ -1051,7 +1051,7 @@ Use `calcMinRecv(expected, slippage)` to compute the minimum acceptable amount:
|
|
|
1051
1051
|
```ts
|
|
1052
1052
|
// quote.outAmount — the expected amount from your router (computed on your side)
|
|
1053
1053
|
const minRecv = lendMarket.leverageZapV2.calcMinRecv(quote.outAmount, 0.5); // 0.5% slippage
|
|
1054
|
-
await lendMarket.leverageZapV2.createLoan({ userCollateral,
|
|
1054
|
+
await lendMarket.leverageZapV2.createLoan({ userCollateral, debt, range, minRecv, router, calldata });
|
|
1055
1055
|
```
|
|
1056
1056
|
|
|
1057
1057
|
|
|
@@ -1089,7 +1089,7 @@ await lendMarket.leverageZapV2.createLoan({ userCollateral, userBorrowed, debt,
|
|
|
1089
1089
|
// 7.4728229145282742179
|
|
1090
1090
|
|
|
1091
1091
|
// Get maximum possible debt for given parameters
|
|
1092
|
-
await lendMarket.leverageZapV2.createLoanMaxRecv({ userCollateral,
|
|
1092
|
+
await lendMarket.leverageZapV2.createLoanMaxRecv({ userCollateral, range, getExpected });
|
|
1093
1093
|
// {
|
|
1094
1094
|
// maxDebt: '26089.494406081862861214',
|
|
1095
1095
|
// maxTotalCollateral: '9.539182089833411347',
|
|
@@ -1103,7 +1103,7 @@ await lendMarket.leverageZapV2.createLoan({ userCollateral, userBorrowed, debt,
|
|
|
1103
1103
|
// Get quote for swapping (debt + userBorrowed)!!!
|
|
1104
1104
|
|
|
1105
1105
|
// Get expected collateral amount
|
|
1106
|
-
await lendMarket.leverageZapV2.createLoanExpectedCollateral({ userCollateral,
|
|
1106
|
+
await lendMarket.leverageZapV2.createLoanExpectedCollateral({ userCollateral, debt, quote });
|
|
1107
1107
|
// {
|
|
1108
1108
|
// totalCollateral: '1.946422996710829',
|
|
1109
1109
|
// userCollateral: '1.0',
|
|
@@ -1115,8 +1115,7 @@ await lendMarket.leverageZapV2.createLoan({ userCollateral, userBorrowed, debt,
|
|
|
1115
1115
|
|
|
1116
1116
|
// NEW: Get all metrics in one call
|
|
1117
1117
|
const metrics = await lendMarket.leverageZapV2.createLoanExpectedMetrics({
|
|
1118
|
-
userCollateral,
|
|
1119
|
-
userBorrowed,
|
|
1118
|
+
userCollateral,
|
|
1120
1119
|
debt,
|
|
1121
1120
|
range,
|
|
1122
1121
|
quote,
|
|
@@ -1129,9 +1128,9 @@ await lendMarket.leverageZapV2.createLoan({ userCollateral, userBorrowed, debt,
|
|
|
1129
1128
|
// health: '195.8994783042570637' // %
|
|
1130
1129
|
//
|
|
1131
1130
|
|
|
1132
|
-
await lendMarket.leverageZapV2.createLoanIsApproved({ userCollateral
|
|
1131
|
+
await lendMarket.leverageZapV2.createLoanIsApproved({ userCollateral });
|
|
1133
1132
|
// false
|
|
1134
|
-
await lendMarket.leverageZapV2.createLoanApprove({ userCollateral
|
|
1133
|
+
await lendMarket.leverageZapV2.createLoanApprove({ userCollateral });
|
|
1135
1134
|
// [
|
|
1136
1135
|
// '0xd5491d9f1e9d8ac84b03867494e35b25efad151c597d2fa4211d7bf5d540c98e',
|
|
1137
1136
|
// '0x93565f37ec5be902a824714a30bddc25cf9cd9ed39b4c0e8de61fab44af5bc8c'
|
|
@@ -1143,7 +1142,7 @@ await lendMarket.leverageZapV2.createLoan({ userCollateral, userBorrowed, debt,
|
|
|
1143
1142
|
const minRecv = lendMarket.leverageZapV2.calcMinRecv(quote.outAmount, 0.5); // 0.5% slippage
|
|
1144
1143
|
|
|
1145
1144
|
// Create loan, passing router address and calldata from router
|
|
1146
|
-
await lendMarket.leverageZapV2.createLoan({ userCollateral,
|
|
1145
|
+
await lendMarket.leverageZapV2.createLoan({ userCollateral, debt, range, minRecv, router, calldata });
|
|
1147
1146
|
// 0xeb1b7a92bcb02598f00dc8bbfe8fa3a554e7a2b1ca764e0ee45e2bf583edf731
|
|
1148
1147
|
|
|
1149
1148
|
await lendMarket.wallet.balances();
|
|
@@ -1188,7 +1187,7 @@ await lendMarket.leverageZapV2.createLoan({ userCollateral, userBorrowed, debt,
|
|
|
1188
1187
|
debt = 10000;
|
|
1189
1188
|
|
|
1190
1189
|
// Get maximum possible debt for given parameters
|
|
1191
|
-
await lendMarket.leverageZapV2.borrowMoreMaxRecv({ userCollateral,
|
|
1190
|
+
await lendMarket.leverageZapV2.borrowMoreMaxRecv({ userCollateral, getExpected });
|
|
1192
1191
|
// {
|
|
1193
1192
|
// maxDebt: '76182.8497941193262889',
|
|
1194
1193
|
// maxTotalCollateral: '26.639775583730298462',
|
|
@@ -1200,7 +1199,7 @@ await lendMarket.leverageZapV2.createLoan({ userCollateral, userBorrowed, debt,
|
|
|
1200
1199
|
|
|
1201
1200
|
// Get quote for swapping (debt + userBorrowed)
|
|
1202
1201
|
|
|
1203
|
-
await lendMarket.leverageZapV2.borrowMoreExpectedCollateral({ userCollateral,
|
|
1202
|
+
await lendMarket.leverageZapV2.borrowMoreExpectedCollateral({ userCollateral, dDebt: debt, quote });
|
|
1204
1203
|
// {
|
|
1205
1204
|
// totalCollateral: '5.783452104143246413',
|
|
1206
1205
|
// userCollateral: '2.0',
|
|
@@ -1211,8 +1210,7 @@ await lendMarket.leverageZapV2.createLoan({ userCollateral, userBorrowed, debt,
|
|
|
1211
1210
|
|
|
1212
1211
|
// NEW: Get all metrics in one call
|
|
1213
1212
|
const metricsBM = await lendMarket.leverageZapV2.borrowMoreExpectedMetrics({
|
|
1214
|
-
userCollateral,
|
|
1215
|
-
userBorrowed,
|
|
1213
|
+
userCollateral,
|
|
1216
1214
|
debt,
|
|
1217
1215
|
quote,
|
|
1218
1216
|
healthIsFull: true // true for full health, false for not full
|
|
@@ -1224,16 +1222,16 @@ await lendMarket.leverageZapV2.createLoan({ userCollateral, userBorrowed, debt,
|
|
|
1224
1222
|
// health: '91.6798951784708552' // %
|
|
1225
1223
|
// }
|
|
1226
1224
|
|
|
1227
|
-
await lendMarket.leverageZapV2.borrowMoreIsApproved({ userCollateral
|
|
1225
|
+
await lendMarket.leverageZapV2.borrowMoreIsApproved({ userCollateral });
|
|
1228
1226
|
// true
|
|
1229
|
-
await lendMarket.leverageZapV2.borrowMoreApprove({ userCollateral
|
|
1227
|
+
await lendMarket.leverageZapV2.borrowMoreApprove({ userCollateral });
|
|
1230
1228
|
// []
|
|
1231
1229
|
|
|
1232
1230
|
// Calculate minRecv with slippage protection (see Security Improvements)
|
|
1233
1231
|
const minRecvBM = lendMarket.leverageZapV2.calcMinRecv(quote.outAmount, 0.5); // 0.5% slippage
|
|
1234
1232
|
|
|
1235
1233
|
// Execute borrowMore, passing router address and calldata from router
|
|
1236
|
-
await lendMarket.leverageZapV2.borrowMore({ userCollateral,
|
|
1234
|
+
await lendMarket.leverageZapV2.borrowMore({ userCollateral, debt, minRecv: minRecvBM, router, calldata });
|
|
1237
1235
|
// 0x6357dd6ea7250d7adb2344cd9295f8255fd8fbbe85f00120fbcd1ebf139e057c
|
|
1238
1236
|
|
|
1239
1237
|
await lendMarket.wallet.balances();
|
|
@@ -1282,7 +1280,7 @@ await lendMarket.leverageZapV2.createLoan({ userCollateral, userBorrowed, debt,
|
|
|
1282
1280
|
|
|
1283
1281
|
// Get quote for swapping (stateCollateral + userCollateral)
|
|
1284
1282
|
|
|
1285
|
-
await lendMarket.leverageZapV2.repayExpectedBorrowed({ stateCollateral, userCollateral,
|
|
1283
|
+
await lendMarket.leverageZapV2.repayExpectedBorrowed({ stateCollateral, userCollateral, quote });
|
|
1286
1284
|
// {
|
|
1287
1285
|
// totalBorrowed: '10998.882838599741571472',
|
|
1288
1286
|
// borrowedFromStateCollateral: '6332.588559066494374648',
|
|
@@ -1291,16 +1289,15 @@ await lendMarket.leverageZapV2.createLoan({ userCollateral, userBorrowed, debt,
|
|
|
1291
1289
|
// avgPrice: '3166.29427953324743125312'
|
|
1292
1290
|
// }
|
|
1293
1291
|
|
|
1294
|
-
await lendMarket.leverageZapV2.repayIsFull({ stateCollateral, userCollateral,
|
|
1292
|
+
await lendMarket.leverageZapV2.repayIsFull({ stateCollateral, userCollateral, quote });
|
|
1295
1293
|
// false
|
|
1296
|
-
await lendMarket.leverageZapV2.repayIsAvailable({ stateCollateral, userCollateral,
|
|
1294
|
+
await lendMarket.leverageZapV2.repayIsAvailable({ stateCollateral, userCollateral, quote });
|
|
1297
1295
|
// true
|
|
1298
1296
|
|
|
1299
1297
|
// NEW: Get all metrics in one call
|
|
1300
1298
|
const metricsRepay = await lendMarket.leverageZapV2.repayExpectedMetrics({
|
|
1301
1299
|
stateCollateral,
|
|
1302
|
-
userCollateral,
|
|
1303
|
-
userBorrowed,
|
|
1300
|
+
userCollateral,
|
|
1304
1301
|
healthIsFull: true, // true for full health, false for not full
|
|
1305
1302
|
quote,
|
|
1306
1303
|
address: llamalend.signerAddress
|
|
@@ -1312,16 +1309,16 @@ await lendMarket.leverageZapV2.createLoan({ userCollateral, userBorrowed, debt,
|
|
|
1312
1309
|
// health: '1699.6097751079226865' // %
|
|
1313
1310
|
// }
|
|
1314
1311
|
|
|
1315
|
-
await lendMarket.leverageZapV2.repayIsApproved({ userCollateral
|
|
1312
|
+
await lendMarket.leverageZapV2.repayIsApproved({ userCollateral });
|
|
1316
1313
|
// false
|
|
1317
|
-
await lendMarket.leverageZapV2.repayApprove({ userCollateral
|
|
1314
|
+
await lendMarket.leverageZapV2.repayApprove({ userCollateral });
|
|
1318
1315
|
// ['0xd8a8d3b3f67395e1a4f4d4f95b041edcaf1c9f7bab5eb8a8a767467678295498']
|
|
1319
1316
|
|
|
1320
1317
|
// Calculate minRecv with slippage protection (see Security Improvements)
|
|
1321
1318
|
const minRecvRepay = lendMarket.leverageZapV2.calcMinRecv(quote.outAmount, 0.5); // 0.5% slippage
|
|
1322
1319
|
|
|
1323
1320
|
// Execute repay, passing router address and calldata from router
|
|
1324
|
-
await lendMarket.leverageZapV2.repay({ stateCollateral, userCollateral,
|
|
1321
|
+
await lendMarket.leverageZapV2.repay({ stateCollateral, userCollateral, minRecv: minRecvRepay, router, calldata });
|
|
1325
1322
|
// 0xe48a97fef1c54180a2c7d104d210a95ac1a516fdd22109682179f1582da23a82
|
|
1326
1323
|
|
|
1327
1324
|
await lendMarket.wallet.balances();
|
|
@@ -1361,7 +1358,7 @@ await lendMarket.leverageZapV2.createLoan({ userCollateral, userBorrowed, debt,
|
|
|
1361
1358
|
const debt = 2000;
|
|
1362
1359
|
|
|
1363
1360
|
// Get maximum values for all possible ranges
|
|
1364
|
-
await lendMarket.leverageZapV2.createLoanMaxRecvAllRanges({ userCollateral,
|
|
1361
|
+
await lendMarket.leverageZapV2.createLoanMaxRecvAllRanges({ userCollateral, getExpected });
|
|
1365
1362
|
// {
|
|
1366
1363
|
// '4': {
|
|
1367
1364
|
// maxDebt: '37916.338071504823875251',
|
|
@@ -1414,7 +1411,7 @@ await lendMarket.leverageZapV2.createLoan({ userCollateral, userBorrowed, debt,
|
|
|
1414
1411
|
|
|
1415
1412
|
// Get quote for specific debt + userBorrowed
|
|
1416
1413
|
// and provide getExpected callback
|
|
1417
|
-
await lendMarket.leverageZapV2.createLoanBandsAllRanges({ userCollateral,
|
|
1414
|
+
await lendMarket.leverageZapV2.createLoanBandsAllRanges({ userCollateral, debt, getExpected, quote });
|
|
1418
1415
|
// {
|
|
1419
1416
|
// '4': [ 73, 70 ],
|
|
1420
1417
|
// '5': [ 73, 69 ],
|
|
@@ -1426,7 +1423,7 @@ await lendMarket.leverageZapV2.createLoan({ userCollateral, userBorrowed, debt,
|
|
|
1426
1423
|
// '50': [ 97, 48 ]
|
|
1427
1424
|
// }
|
|
1428
1425
|
|
|
1429
|
-
await lendMarket.leverageZapV2.createLoanPricesAllRanges({ userCollateral,
|
|
1426
|
+
await lendMarket.leverageZapV2.createLoanPricesAllRanges({ userCollateral, debt, getExpected, quote });
|
|
1430
1427
|
// {
|
|
1431
1428
|
// '4': [ '1073.323292757532604807', '1136.910693647788699808' ],
|
|
1432
1429
|
// '5': [ '1073.323292757532604807', '1153.387660222394333133' ],
|
package/lib/constants/aliases.js
CHANGED
|
@@ -6,7 +6,7 @@ export const ALIASES_ETHEREUM = lowerCaseValues({
|
|
|
6
6
|
"minter": '0xd061D61a4d941c39E5453435B6345Dc261C2fcE0',
|
|
7
7
|
"gauge_factory": "0xabC000d88f23Bb45525E447528DBF656A9D55bf5",
|
|
8
8
|
"leverage_zap_deprecated": "0xC8E8430dc7Cb23C32543329acCC68c9055C23e18", // odos v3
|
|
9
|
-
"leverage_zap_v2": "
|
|
9
|
+
"leverage_zap_v2": "0x19010d0f5D5a88aC609B568c91057679eed643d3",
|
|
10
10
|
"leverage_zap_v2_llv2": "0x0000000000000000000000000000000000000000",
|
|
11
11
|
"leverage_markets_start_id": "9",
|
|
12
12
|
"crvUSD": "0xf939E0A03FB07F59A73314E73794Be0E57ac1b4E",
|
|
@@ -18,7 +18,7 @@ export const ALIASES_ARBITRUM = lowerCaseValues({
|
|
|
18
18
|
"gauge_controller": "0x2F50D538606Fa9EDD2B11E2446BEb18C9D5846bB",
|
|
19
19
|
"gauge_factory": "0xabC000d88f23Bb45525E447528DBF656A9D55bf5",
|
|
20
20
|
"leverage_zap_deprecated": "0xFE02553d3Ba4c3f39F36a4632F91404DF94b9AE2", // odos v3
|
|
21
|
-
"leverage_zap_v2": "
|
|
21
|
+
"leverage_zap_v2": "0x227d2f40E3a66C0344D8Af373b4d48A8744d6560",
|
|
22
22
|
"leverage_zap_v2_llv2": "0x0000000000000000000000000000000000000000",
|
|
23
23
|
"leverage_markets_start_id": "9",
|
|
24
24
|
});
|
|
@@ -31,8 +31,8 @@ export const ALIASES_OPTIMISM = lowerCaseValues({
|
|
|
31
31
|
"gauge_factory": "0x871fBD4E01012e2E8457346059e8C189d664DbA4",
|
|
32
32
|
"old_gauge_end_index": "4",
|
|
33
33
|
"leverage_zap_deprecated": "0xBFab8ebc836E1c4D81837798FC076D219C9a1855", // odos v3
|
|
34
|
-
"leverage_zap_v2": "
|
|
35
|
-
"leverage_zap_v2_llv2": "
|
|
34
|
+
"leverage_zap_v2": "0x56C526b0159a258887e0d79ec3a80dfb940d0cD7",
|
|
35
|
+
"leverage_zap_v2_llv2": "0xdbeBDaE6f2D47B553B984E4091693824cf38584a",
|
|
36
36
|
"leverage_markets_start_id": "0",
|
|
37
37
|
"gas_oracle": '0xc0d3C0d3C0d3c0D3C0D3C0d3C0d3C0D3C0D3000f',
|
|
38
38
|
"gas_oracle_blob": '0x420000000000000000000000000000000000000f',
|
|
@@ -45,7 +45,7 @@ export const ALIASES_FRAXTAL = lowerCaseValues({
|
|
|
45
45
|
"gauge_factory": "0x0b8d6b6cefc7aa1c2852442e518443b1b22e1c52",
|
|
46
46
|
"old_gauge_end_index": "3",
|
|
47
47
|
"leverage_zap_deprecated": "0x3294514B78Df4Bb90132567fcf8E5e99f390B687", // odos v3
|
|
48
|
-
"leverage_zap_v2": "
|
|
48
|
+
"leverage_zap_v2": "0xA7a4bb50AF91f90b6fEb3388E7f8286aF45b299B",
|
|
49
49
|
"leverage_zap_v2_llv2": "0x0000000000000000000000000000000000000000",
|
|
50
50
|
"leverage_markets_start_id": "0",
|
|
51
51
|
});
|
|
@@ -55,7 +55,7 @@ export const ALIASES_SONIC = lowerCaseValues({
|
|
|
55
55
|
"gauge_controller": "0x2F50D538606Fa9EDD2B11E2446BEb18C9D5846bB",
|
|
56
56
|
"gauge_factory": "0xf3A431008396df8A8b2DF492C913706BDB0874ef",
|
|
57
57
|
"leverage_zap_deprecated": "0x0fE38dCC905eC14F6099a83Ac5C93BF2601300CF", // odos v3
|
|
58
|
-
"leverage_zap_v2": "
|
|
58
|
+
"leverage_zap_v2": "0xEfadDdE5B43917CcC738AdE6962295A0B343f7CE",
|
|
59
59
|
"leverage_zap_v2_llv2": "0x0000000000000000000000000000000000000000",
|
|
60
60
|
"leverage_markets_start_id": "0",
|
|
61
61
|
});
|
|
@@ -2,9 +2,8 @@ import { GetExpectedFn, IDict, ILeverageMetrics, IQuote, TAmount, TGas } from ".
|
|
|
2
2
|
export interface ILeverageZapV2 {
|
|
3
3
|
hasLeverage: () => boolean;
|
|
4
4
|
maxLeverage: (N: number) => Promise<string>;
|
|
5
|
-
createLoanMaxRecv: ({ userCollateral,
|
|
5
|
+
createLoanMaxRecv: ({ userCollateral, range, getExpected, }: {
|
|
6
6
|
userCollateral: TAmount;
|
|
7
|
-
userBorrowed: TAmount;
|
|
8
7
|
range: number;
|
|
9
8
|
getExpected: GetExpectedFn;
|
|
10
9
|
}) => Promise<{
|
|
@@ -16,9 +15,8 @@ export interface ILeverageZapV2 {
|
|
|
16
15
|
maxLeverage: string;
|
|
17
16
|
avgPrice: string;
|
|
18
17
|
}>;
|
|
19
|
-
createLoanMaxRecvAllRanges: ({ userCollateral,
|
|
18
|
+
createLoanMaxRecvAllRanges: ({ userCollateral, getExpected, }: {
|
|
20
19
|
userCollateral: TAmount;
|
|
21
|
-
userBorrowed: TAmount;
|
|
22
20
|
getExpected: GetExpectedFn;
|
|
23
21
|
}) => Promise<IDict<{
|
|
24
22
|
maxDebt: string;
|
|
@@ -29,9 +27,8 @@ export interface ILeverageZapV2 {
|
|
|
29
27
|
maxLeverage: string;
|
|
30
28
|
avgPrice: string;
|
|
31
29
|
}>>;
|
|
32
|
-
createLoanExpectedCollateral: ({ userCollateral,
|
|
30
|
+
createLoanExpectedCollateral: ({ userCollateral, debt, quote, }: {
|
|
33
31
|
userCollateral: TAmount;
|
|
34
|
-
userBorrowed: TAmount;
|
|
35
32
|
debt: TAmount;
|
|
36
33
|
quote: IQuote;
|
|
37
34
|
}) => Promise<{
|
|
@@ -42,55 +39,47 @@ export interface ILeverageZapV2 {
|
|
|
42
39
|
leverage: string;
|
|
43
40
|
avgPrice: string;
|
|
44
41
|
}>;
|
|
45
|
-
createLoanExpectedMetrics: ({ userCollateral,
|
|
42
|
+
createLoanExpectedMetrics: ({ userCollateral, debt, range, quote, healthIsFull, }: {
|
|
46
43
|
userCollateral: TAmount;
|
|
47
|
-
userBorrowed: TAmount;
|
|
48
44
|
debt: TAmount;
|
|
49
45
|
range: number;
|
|
50
46
|
quote: IQuote;
|
|
51
47
|
healthIsFull?: boolean;
|
|
52
48
|
}) => Promise<ILeverageMetrics>;
|
|
53
|
-
createLoanMaxRange: ({ userCollateral,
|
|
49
|
+
createLoanMaxRange: ({ userCollateral, debt, getExpected, }: {
|
|
54
50
|
userCollateral: TAmount;
|
|
55
|
-
userBorrowed: TAmount;
|
|
56
51
|
debt: TAmount;
|
|
57
52
|
getExpected: GetExpectedFn;
|
|
58
53
|
}) => Promise<number>;
|
|
59
|
-
createLoanBandsAllRanges: ({ userCollateral,
|
|
54
|
+
createLoanBandsAllRanges: ({ userCollateral, debt, getExpected, quote, }: {
|
|
60
55
|
userCollateral: TAmount;
|
|
61
|
-
userBorrowed: TAmount;
|
|
62
56
|
debt: TAmount;
|
|
63
57
|
getExpected: GetExpectedFn;
|
|
64
58
|
quote: IQuote;
|
|
65
59
|
}) => Promise<IDict<[number, number] | null>>;
|
|
66
|
-
createLoanPricesAllRanges: ({ userCollateral,
|
|
60
|
+
createLoanPricesAllRanges: ({ userCollateral, debt, getExpected, quote, }: {
|
|
67
61
|
userCollateral: TAmount;
|
|
68
|
-
userBorrowed: TAmount;
|
|
69
62
|
debt: TAmount;
|
|
70
63
|
getExpected: GetExpectedFn;
|
|
71
64
|
quote: IQuote;
|
|
72
65
|
}) => Promise<IDict<[string, string] | null>>;
|
|
73
|
-
createLoanIsApproved: ({ userCollateral,
|
|
66
|
+
createLoanIsApproved: ({ userCollateral, }: {
|
|
74
67
|
userCollateral: TAmount;
|
|
75
|
-
userBorrowed: TAmount;
|
|
76
68
|
}) => Promise<boolean>;
|
|
77
|
-
createLoanApprove: ({ userCollateral,
|
|
69
|
+
createLoanApprove: ({ userCollateral, }: {
|
|
78
70
|
userCollateral: TAmount;
|
|
79
|
-
userBorrowed: TAmount;
|
|
80
71
|
}) => Promise<string[]>;
|
|
81
72
|
calcMinRecv: (expected: TAmount, slippage: number) => string;
|
|
82
|
-
createLoan: ({ userCollateral,
|
|
73
|
+
createLoan: ({ userCollateral, debt, range, minRecv, router, calldata, }: {
|
|
83
74
|
userCollateral: TAmount;
|
|
84
|
-
userBorrowed: TAmount;
|
|
85
75
|
debt: TAmount;
|
|
86
76
|
range: number;
|
|
87
77
|
minRecv: TAmount;
|
|
88
78
|
router: string;
|
|
89
79
|
calldata: string;
|
|
90
80
|
}) => Promise<string>;
|
|
91
|
-
borrowMoreMaxRecv: ({ userCollateral,
|
|
81
|
+
borrowMoreMaxRecv: ({ userCollateral, getExpected, address }: {
|
|
92
82
|
userCollateral: TAmount;
|
|
93
|
-
userBorrowed: TAmount;
|
|
94
83
|
getExpected: GetExpectedFn;
|
|
95
84
|
address?: string;
|
|
96
85
|
}) => Promise<{
|
|
@@ -101,9 +90,8 @@ export interface ILeverageZapV2 {
|
|
|
101
90
|
collateralFromMaxDebt: string;
|
|
102
91
|
avgPrice: string;
|
|
103
92
|
}>;
|
|
104
|
-
borrowMoreExpectedCollateral: ({ userCollateral,
|
|
93
|
+
borrowMoreExpectedCollateral: ({ userCollateral, dDebt, quote, address }: {
|
|
105
94
|
userCollateral: TAmount;
|
|
106
|
-
userBorrowed: TAmount;
|
|
107
95
|
dDebt: TAmount;
|
|
108
96
|
quote: IQuote;
|
|
109
97
|
address?: string;
|
|
@@ -114,41 +102,35 @@ export interface ILeverageZapV2 {
|
|
|
114
102
|
collateralFromDebt: string;
|
|
115
103
|
avgPrice: string;
|
|
116
104
|
}>;
|
|
117
|
-
borrowMoreExpectedMetrics: ({ userCollateral,
|
|
105
|
+
borrowMoreExpectedMetrics: ({ userCollateral, debt, quote, healthIsFull, address }: {
|
|
118
106
|
userCollateral: TAmount;
|
|
119
|
-
userBorrowed: TAmount;
|
|
120
107
|
debt: TAmount;
|
|
121
108
|
quote: IQuote;
|
|
122
109
|
healthIsFull?: boolean;
|
|
123
110
|
address?: string;
|
|
124
111
|
}) => Promise<ILeverageMetrics>;
|
|
125
|
-
borrowMoreIsApproved: ({ userCollateral
|
|
112
|
+
borrowMoreIsApproved: ({ userCollateral }: {
|
|
126
113
|
userCollateral: TAmount;
|
|
127
|
-
userBorrowed: TAmount;
|
|
128
114
|
}) => Promise<boolean>;
|
|
129
|
-
borrowMoreApprove: ({ userCollateral
|
|
115
|
+
borrowMoreApprove: ({ userCollateral }: {
|
|
130
116
|
userCollateral: TAmount;
|
|
131
|
-
userBorrowed: TAmount;
|
|
132
117
|
}) => Promise<string[]>;
|
|
133
|
-
borrowMore: ({ userCollateral,
|
|
118
|
+
borrowMore: ({ userCollateral, debt, minRecv, router, calldata }: {
|
|
134
119
|
userCollateral: TAmount;
|
|
135
|
-
userBorrowed: TAmount;
|
|
136
120
|
debt: TAmount;
|
|
137
121
|
minRecv: TAmount;
|
|
138
122
|
router: string;
|
|
139
123
|
calldata: string;
|
|
140
124
|
}) => Promise<string>;
|
|
141
|
-
borrowMoreFutureLeverage: ({ userCollateral,
|
|
125
|
+
borrowMoreFutureLeverage: ({ userCollateral, debt, quote, address }: {
|
|
142
126
|
userCollateral: TAmount;
|
|
143
|
-
userBorrowed: TAmount;
|
|
144
127
|
debt: TAmount;
|
|
145
128
|
quote: IQuote;
|
|
146
129
|
address?: string;
|
|
147
130
|
}) => Promise<string>;
|
|
148
|
-
repayExpectedBorrowed: ({ stateCollateral, userCollateral,
|
|
131
|
+
repayExpectedBorrowed: ({ stateCollateral, userCollateral, quote }: {
|
|
149
132
|
stateCollateral: TAmount;
|
|
150
133
|
userCollateral: TAmount;
|
|
151
|
-
userBorrowed: TAmount;
|
|
152
134
|
quote: IQuote;
|
|
153
135
|
}) => Promise<{
|
|
154
136
|
totalBorrowed: string;
|
|
@@ -157,85 +139,71 @@ export interface ILeverageZapV2 {
|
|
|
157
139
|
userBorrowed: string;
|
|
158
140
|
avgPrice: string;
|
|
159
141
|
}>;
|
|
160
|
-
repayIsFull: ({ stateCollateral, userCollateral,
|
|
142
|
+
repayIsFull: ({ stateCollateral, userCollateral, quote, address }: {
|
|
161
143
|
stateCollateral: TAmount;
|
|
162
144
|
userCollateral: TAmount;
|
|
163
|
-
userBorrowed: TAmount;
|
|
164
145
|
quote: IQuote;
|
|
165
146
|
address?: string;
|
|
166
147
|
}) => Promise<boolean>;
|
|
167
|
-
repayIsAvailable: ({ stateCollateral, userCollateral,
|
|
148
|
+
repayIsAvailable: ({ stateCollateral, userCollateral, quote, address }: {
|
|
168
149
|
stateCollateral: TAmount;
|
|
169
150
|
userCollateral: TAmount;
|
|
170
|
-
userBorrowed: TAmount;
|
|
171
151
|
quote: IQuote;
|
|
172
152
|
address?: string;
|
|
173
153
|
}) => Promise<boolean>;
|
|
174
|
-
repayExpectedMetrics: ({ stateCollateral, userCollateral,
|
|
154
|
+
repayExpectedMetrics: ({ stateCollateral, userCollateral, healthIsFull, quote, address }: {
|
|
175
155
|
stateCollateral: TAmount;
|
|
176
156
|
userCollateral: TAmount;
|
|
177
|
-
userBorrowed: TAmount;
|
|
178
157
|
healthIsFull: boolean;
|
|
179
158
|
quote: IQuote;
|
|
180
159
|
address: string;
|
|
181
160
|
}) => Promise<ILeverageMetrics>;
|
|
182
|
-
repayIsApproved: ({ userCollateral
|
|
161
|
+
repayIsApproved: ({ userCollateral }: {
|
|
183
162
|
userCollateral: TAmount;
|
|
184
|
-
userBorrowed: TAmount;
|
|
185
163
|
}) => Promise<boolean>;
|
|
186
|
-
repayApprove: ({ userCollateral
|
|
164
|
+
repayApprove: ({ userCollateral }: {
|
|
187
165
|
userCollateral: TAmount;
|
|
188
|
-
userBorrowed: TAmount;
|
|
189
166
|
}) => Promise<string[]>;
|
|
190
|
-
repay: ({ stateCollateral, userCollateral,
|
|
167
|
+
repay: ({ stateCollateral, userCollateral, minRecv, router, calldata }: {
|
|
191
168
|
stateCollateral: TAmount;
|
|
192
169
|
userCollateral: TAmount;
|
|
193
|
-
userBorrowed: TAmount;
|
|
194
170
|
minRecv: TAmount;
|
|
195
171
|
router: string;
|
|
196
172
|
calldata: string;
|
|
197
173
|
}) => Promise<string>;
|
|
198
|
-
repayFutureLeverage: ({ stateCollateral, userCollateral,
|
|
174
|
+
repayFutureLeverage: ({ stateCollateral, userCollateral, address }: {
|
|
199
175
|
stateCollateral: TAmount;
|
|
200
176
|
userCollateral: TAmount;
|
|
201
|
-
userBorrowed: TAmount;
|
|
202
|
-
quote: IQuote;
|
|
203
177
|
address?: string;
|
|
204
178
|
}) => Promise<string>;
|
|
205
179
|
estimateGas: {
|
|
206
|
-
createLoanApprove: ({ userCollateral
|
|
180
|
+
createLoanApprove: ({ userCollateral }: {
|
|
207
181
|
userCollateral: TAmount;
|
|
208
|
-
userBorrowed: TAmount;
|
|
209
182
|
}) => Promise<TGas>;
|
|
210
|
-
createLoan: ({ userCollateral,
|
|
183
|
+
createLoan: ({ userCollateral, debt, range, minRecv, router, calldata }: {
|
|
211
184
|
userCollateral: TAmount;
|
|
212
|
-
userBorrowed: TAmount;
|
|
213
185
|
debt: TAmount;
|
|
214
186
|
range: number;
|
|
215
187
|
minRecv: TAmount;
|
|
216
188
|
router: string;
|
|
217
189
|
calldata: string;
|
|
218
190
|
}) => Promise<number>;
|
|
219
|
-
borrowMoreApprove: ({ userCollateral
|
|
191
|
+
borrowMoreApprove: ({ userCollateral }: {
|
|
220
192
|
userCollateral: TAmount;
|
|
221
|
-
userBorrowed: TAmount;
|
|
222
193
|
}) => Promise<TGas>;
|
|
223
|
-
borrowMore: ({ userCollateral,
|
|
194
|
+
borrowMore: ({ userCollateral, debt, minRecv, router, calldata }: {
|
|
224
195
|
userCollateral: TAmount;
|
|
225
|
-
userBorrowed: TAmount;
|
|
226
196
|
debt: TAmount;
|
|
227
197
|
minRecv: TAmount;
|
|
228
198
|
router: string;
|
|
229
199
|
calldata: string;
|
|
230
200
|
}) => Promise<number>;
|
|
231
|
-
repayApprove: ({ userCollateral
|
|
201
|
+
repayApprove: ({ userCollateral }: {
|
|
232
202
|
userCollateral: TAmount;
|
|
233
|
-
userBorrowed: TAmount;
|
|
234
203
|
}) => Promise<TGas>;
|
|
235
|
-
repay: ({ stateCollateral, userCollateral,
|
|
204
|
+
repay: ({ stateCollateral, userCollateral, minRecv, router, calldata }: {
|
|
236
205
|
stateCollateral: TAmount;
|
|
237
206
|
userCollateral: TAmount;
|
|
238
|
-
userBorrowed: TAmount;
|
|
239
207
|
minRecv: TAmount;
|
|
240
208
|
router: string;
|
|
241
209
|
calldata: string;
|