@suilend/sdk 1.1.99 → 2.0.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/_generated/_dependencies/source/0x1/ascii/structs.d.ts +7 -7
- package/_generated/_dependencies/source/0x1/ascii/structs.js +35 -75
- package/_generated/_dependencies/source/0x1/index.js +3 -6
- package/_generated/_dependencies/source/0x1/option/structs.d.ts +3 -3
- package/_generated/_dependencies/source/0x1/option/structs.js +31 -69
- package/_generated/_dependencies/source/0x1/type-name/structs.d.ts +5 -5
- package/_generated/_dependencies/source/0x1/type-name/structs.js +20 -25
- package/_generated/_dependencies/source/0x2/bag/structs.d.ts +7 -7
- package/_generated/_dependencies/source/0x2/bag/structs.js +24 -29
- package/_generated/_dependencies/source/0x2/balance/structs.d.ts +7 -7
- package/_generated/_dependencies/source/0x2/balance/structs.js +49 -56
- package/_generated/_dependencies/source/0x2/index.js +3 -6
- package/_generated/_dependencies/source/0x2/object/structs.d.ts +8 -8
- package/_generated/_dependencies/source/0x2/object/structs.js +34 -41
- package/_generated/_dependencies/source/0x2/object-table/structs.d.ts +7 -7
- package/_generated/_dependencies/source/0x2/object-table/structs.js +31 -36
- package/_generated/_dependencies/source/0x8d97f1cd6ac663735be08d1d2b6d02a159e711586461306ce60a2b7a6a565a9e/i64/structs.d.ts +5 -5
- package/_generated/_dependencies/source/0x8d97f1cd6ac663735be08d1d2b6d02a159e711586461306ce60a2b7a6a565a9e/i64/structs.js +23 -28
- package/_generated/_dependencies/source/0x8d97f1cd6ac663735be08d1d2b6d02a159e711586461306ce60a2b7a6a565a9e/index.js +4 -7
- package/_generated/_dependencies/source/0x8d97f1cd6ac663735be08d1d2b6d02a159e711586461306ce60a2b7a6a565a9e/price/structs.d.ts +11 -11
- package/_generated/_dependencies/source/0x8d97f1cd6ac663735be08d1d2b6d02a159e711586461306ce60a2b7a6a565a9e/price/structs.js +32 -37
- package/_generated/_dependencies/source/0x8d97f1cd6ac663735be08d1d2b6d02a159e711586461306ce60a2b7a6a565a9e/price-feed/structs.d.ts +23 -23
- package/_generated/_dependencies/source/0x8d97f1cd6ac663735be08d1d2b6d02a159e711586461306ce60a2b7a6a565a9e/price-feed/structs.js +29 -34
- package/_generated/_dependencies/source/0x8d97f1cd6ac663735be08d1d2b6d02a159e711586461306ce60a2b7a6a565a9e/price-identifier/structs.d.ts +4 -4
- package/_generated/_dependencies/source/0x8d97f1cd6ac663735be08d1d2b6d02a159e711586461306ce60a2b7a6a565a9e/price-identifier/structs.js +21 -59
- package/_generated/_dependencies/source/0x8d97f1cd6ac663735be08d1d2b6d02a159e711586461306ce60a2b7a6a565a9e/price-info/structs.d.ts +55 -55
- package/_generated/_dependencies/source/0x8d97f1cd6ac663735be08d1d2b6d02a159e711586461306ce60a2b7a6a565a9e/price-info/structs.js +46 -53
- package/_generated/_framework/reified.d.ts +2 -2
- package/_generated/_framework/reified.js +27 -40
- package/_generated/_framework/util.js +26 -40
- package/_generated/_framework/vector.d.ts +4 -4
- package/_generated/_framework/vector.js +16 -21
- package/_generated/suilend/cell/structs.d.ts +4 -4
- package/_generated/suilend/cell/structs.js +31 -36
- package/_generated/suilend/decimal/structs.d.ts +4 -4
- package/_generated/suilend/decimal/structs.js +19 -24
- package/_generated/suilend/index.js +8 -12
- package/_generated/suilend/lending-market/functions.d.ts +1 -0
- package/_generated/suilend/lending-market/functions.js +271 -302
- package/_generated/suilend/lending-market/structs.d.ts +146 -146
- package/_generated/suilend/lending-market/structs.js +549 -617
- package/_generated/suilend/lending-market-registry/functions.js +7 -11
- package/_generated/suilend/liquidity-mining/structs.d.ts +50 -50
- package/_generated/suilend/liquidity-mining/structs.js +159 -205
- package/_generated/suilend/obligation/structs.d.ts +106 -106
- package/_generated/suilend/obligation/structs.js +313 -363
- package/_generated/suilend/rate-limiter/functions.js +23 -31
- package/_generated/suilend/rate-limiter/structs.d.ts +15 -15
- package/_generated/suilend/rate-limiter/structs.js +49 -56
- package/_generated/suilend/reserve/structs.d.ts +139 -139
- package/_generated/suilend/reserve/structs.js +397 -451
- package/_generated/suilend/reserve-config/functions.js +149 -190
- package/_generated/suilend/reserve-config/structs.d.ts +33 -33
- package/_generated/suilend/reserve-config/structs.js +109 -149
- package/api/events.js +1 -5
- package/api/index.js +1 -17
- package/client.d.ts +10 -10
- package/client.js +118 -128
- package/index.js +7 -23
- package/lib/constants.js +3 -9
- package/lib/index.js +5 -21
- package/lib/initialize.d.ts +3 -3
- package/lib/initialize.js +103 -140
- package/lib/liquidityMining.d.ts +3 -3
- package/lib/liquidityMining.js +57 -72
- package/lib/pyth.js +9 -14
- package/lib/strategyOwnerCap.js +106 -119
- package/lib/transactions.js +2 -7
- package/lib/types.js +4 -7
- package/mmt.js +2 -5
- package/package.json +1 -1
- package/parsers/apiReserveAssetDataEvent.js +25 -33
- package/parsers/index.js +5 -21
- package/parsers/lendingMarket.d.ts +1 -1
- package/parsers/lendingMarket.js +12 -19
- package/parsers/obligation.js +19 -26
- package/parsers/rateLimiter.js +11 -19
- package/parsers/reserve.d.ts +1 -1
- package/parsers/reserve.js +42 -85
- package/strategies.d.ts +11 -11
- package/strategies.js +547 -586
- package/swap/index.js +2 -18
- package/swap/quote.js +57 -65
- package/swap/transaction.d.ts +2 -2
- package/swap/transaction.js +40 -35
- package/utils/events.d.ts +3 -3
- package/utils/events.js +18 -35
- package/utils/index.js +16 -40
- package/utils/obligation.d.ts +4 -4
- package/utils/obligation.js +17 -60
- package/utils/simulate.js +118 -143
|
@@ -1,41 +1,35 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
const utils_1 = require("@mysten/sui/utils");
|
|
8
|
-
const bignumber_js_1 = __importDefault(require("bignumber.js"));
|
|
9
|
-
const constants_1 = require("../lib/constants");
|
|
10
|
-
const parseReserveAssetDataEvent = (event, reserve) => {
|
|
11
|
-
const availableAmount = new bignumber_js_1.default(event.availableAmount)
|
|
12
|
-
.div(constants_1.WAD)
|
|
1
|
+
import { normalizeStructTag } from "@mysten/sui/utils";
|
|
2
|
+
import BigNumber from "bignumber.js";
|
|
3
|
+
import { WAD } from "../lib/constants";
|
|
4
|
+
export const parseReserveAssetDataEvent = (event, reserve) => {
|
|
5
|
+
const availableAmount = new BigNumber(event.availableAmount)
|
|
6
|
+
.div(WAD)
|
|
13
7
|
.div(10 ** reserve.mintDecimals);
|
|
14
|
-
const depositedAmount = new
|
|
15
|
-
.div(
|
|
8
|
+
const depositedAmount = new BigNumber(event.supplyAmount)
|
|
9
|
+
.div(WAD)
|
|
16
10
|
.div(10 ** reserve.mintDecimals);
|
|
17
|
-
const borrowedAmount = new
|
|
18
|
-
.div(
|
|
11
|
+
const borrowedAmount = new BigNumber(event.borrowedAmount)
|
|
12
|
+
.div(WAD)
|
|
19
13
|
.div(10 ** reserve.mintDecimals);
|
|
20
|
-
const availableAmountUsd = new
|
|
21
|
-
const depositedAmountUsd = new
|
|
22
|
-
const borrowedAmountUsd = new
|
|
23
|
-
const borrowAprPercent = new
|
|
24
|
-
const depositAprPercent = new
|
|
25
|
-
const ctokenSupply = new
|
|
26
|
-
const cumulativeBorrowRate = new
|
|
27
|
-
const price = new
|
|
28
|
-
const smoothedPrice = new
|
|
29
|
-
const minPrice =
|
|
30
|
-
const maxPrice =
|
|
14
|
+
const availableAmountUsd = new BigNumber(event.availableAmountUsdEstimate).div(WAD);
|
|
15
|
+
const depositedAmountUsd = new BigNumber(event.supplyAmountUsdEstimate).div(WAD);
|
|
16
|
+
const borrowedAmountUsd = new BigNumber(event.borrowedAmountUsdEstimate).div(WAD);
|
|
17
|
+
const borrowAprPercent = new BigNumber(event.borrowApr).div(WAD).times(100);
|
|
18
|
+
const depositAprPercent = new BigNumber(event.supplyApr).div(WAD).times(100);
|
|
19
|
+
const ctokenSupply = new BigNumber(event.ctokenSupply).div(10 ** reserve.mintDecimals);
|
|
20
|
+
const cumulativeBorrowRate = new BigNumber(event.cumulativeBorrowRate).div(WAD);
|
|
21
|
+
const price = new BigNumber(event.price).div(WAD);
|
|
22
|
+
const smoothedPrice = new BigNumber(event.smoothedPrice).div(WAD);
|
|
23
|
+
const minPrice = BigNumber.min(price, smoothedPrice);
|
|
24
|
+
const maxPrice = BigNumber.max(price, smoothedPrice);
|
|
31
25
|
// Custom
|
|
32
26
|
const utilizationPercent = depositedAmount.eq(0)
|
|
33
|
-
? new
|
|
27
|
+
? new BigNumber(0)
|
|
34
28
|
: borrowedAmount.div(depositedAmount).times(100);
|
|
35
29
|
return {
|
|
36
30
|
id: event.id,
|
|
37
31
|
lendingMarketId: event.lendingMarketId,
|
|
38
|
-
coinType:
|
|
32
|
+
coinType: normalizeStructTag(event.coinType),
|
|
39
33
|
reserveId: event.reserveId,
|
|
40
34
|
availableAmount,
|
|
41
35
|
depositedAmount,
|
|
@@ -60,8 +54,6 @@ const parseReserveAssetDataEvent = (event, reserve) => {
|
|
|
60
54
|
original: event,
|
|
61
55
|
};
|
|
62
56
|
};
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
return Object.assign(Object.assign({}, (0, exports.parseReserveAssetDataEvent)(event, reserve)), { sampleTimestampS: event.sampletimestamp });
|
|
57
|
+
export const parseDownsampledApiReserveAssetDataEvent = (event, reserve) => {
|
|
58
|
+
return Object.assign(Object.assign({}, parseReserveAssetDataEvent(event, reserve)), { sampleTimestampS: event.sampletimestamp });
|
|
66
59
|
};
|
|
67
|
-
exports.parseDownsampledApiReserveAssetDataEvent = parseDownsampledApiReserveAssetDataEvent;
|
package/parsers/index.js
CHANGED
|
@@ -1,21 +1,5 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
-
}
|
|
8
|
-
Object.defineProperty(o, k2, desc);
|
|
9
|
-
}) : (function(o, m, k, k2) {
|
|
10
|
-
if (k2 === undefined) k2 = k;
|
|
11
|
-
o[k2] = m[k];
|
|
12
|
-
}));
|
|
13
|
-
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
-
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
-
};
|
|
16
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
-
__exportStar(require("./apiReserveAssetDataEvent"), exports);
|
|
18
|
-
__exportStar(require("./lendingMarket"), exports);
|
|
19
|
-
__exportStar(require("./obligation"), exports);
|
|
20
|
-
__exportStar(require("./rateLimiter"), exports);
|
|
21
|
-
__exportStar(require("./reserve"), exports);
|
|
1
|
+
export * from "./apiReserveAssetDataEvent";
|
|
2
|
+
export * from "./lendingMarket";
|
|
3
|
+
export * from "./obligation";
|
|
4
|
+
export * from "./rateLimiter";
|
|
5
|
+
export * from "./reserve";
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { CoinMetadata } from "@mysten/sui/
|
|
1
|
+
import { CoinMetadata } from "@mysten/sui/jsonRpc";
|
|
2
2
|
import BigNumber from "bignumber.js";
|
|
3
3
|
import { LendingMarket } from "../_generated/suilend/lending-market/structs";
|
|
4
4
|
import { Reserve } from "../_generated/suilend/reserve/structs";
|
package/parsers/lendingMarket.js
CHANGED
|
@@ -1,27 +1,21 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.parseLendingMarket = void 0;
|
|
7
|
-
const bignumber_js_1 = __importDefault(require("bignumber.js"));
|
|
8
|
-
const rateLimiter_1 = require("./rateLimiter");
|
|
9
|
-
const reserve_1 = require("./reserve");
|
|
10
|
-
const parseLendingMarket = (lendingMarket, reserves, coinMetadataMap, nowS, lendingMarketMetadata) => {
|
|
1
|
+
import BigNumber from "bignumber.js";
|
|
2
|
+
import { parseRateLimiter } from "./rateLimiter";
|
|
3
|
+
import { parseReserve } from "./reserve";
|
|
4
|
+
export const parseLendingMarket = (lendingMarket, reserves, coinMetadataMap, nowS, lendingMarketMetadata) => {
|
|
11
5
|
var _a, _b, _c;
|
|
12
6
|
const id = lendingMarket.id;
|
|
13
7
|
const type = lendingMarket.$typeArgs[0];
|
|
14
8
|
const version = lendingMarket.version;
|
|
15
|
-
const parsedReserves = reserves.map((reserve) =>
|
|
9
|
+
const parsedReserves = reserves.map((reserve) => parseReserve(reserve, coinMetadataMap));
|
|
16
10
|
const obligations = lendingMarket.obligations;
|
|
17
|
-
const parsedRateLimiter =
|
|
11
|
+
const parsedRateLimiter = parseRateLimiter(lendingMarket.rateLimiter, nowS);
|
|
18
12
|
const feeReceiver = lendingMarket.feeReceiver;
|
|
19
|
-
const badDebtUsd = new
|
|
20
|
-
const badDebtLimitUsd = new
|
|
13
|
+
const badDebtUsd = new BigNumber(lendingMarket.badDebtUsd.value.toString());
|
|
14
|
+
const badDebtLimitUsd = new BigNumber(lendingMarket.badDebtLimitUsd.value.toString());
|
|
21
15
|
// Custom
|
|
22
|
-
let depositedAmountUsd = new
|
|
23
|
-
let borrowedAmountUsd = new
|
|
24
|
-
let tvlUsd = new
|
|
16
|
+
let depositedAmountUsd = new BigNumber(0);
|
|
17
|
+
let borrowedAmountUsd = new BigNumber(0);
|
|
18
|
+
let tvlUsd = new BigNumber(0);
|
|
25
19
|
parsedReserves.forEach((parsedReserve) => {
|
|
26
20
|
depositedAmountUsd = depositedAmountUsd.plus(parsedReserve.depositedAmountUsd);
|
|
27
21
|
borrowedAmountUsd = borrowedAmountUsd.plus(parsedReserve.borrowedAmountUsd);
|
|
@@ -42,7 +36,7 @@ const parseLendingMarket = (lendingMarket, reserves, coinMetadataMap, nowS, lend
|
|
|
42
36
|
id,
|
|
43
37
|
type,
|
|
44
38
|
ownerCapId: (_a = lendingMarketMetadata === null || lendingMarketMetadata === void 0 ? void 0 : lendingMarketMetadata.lendingMarketOwnerCapId) !== null && _a !== void 0 ? _a : undefined,
|
|
45
|
-
name: (_b = lendingMarketMetadata === null || lendingMarketMetadata === void 0 ? void 0 : lendingMarketMetadata.name) !== null && _b !== void 0 ? _b : type.split("::").slice(
|
|
39
|
+
name: (_b = lendingMarketMetadata === null || lendingMarketMetadata === void 0 ? void 0 : lendingMarketMetadata.name) !== null && _b !== void 0 ? _b : type.split("::").slice(2).join(" "),
|
|
46
40
|
isHidden: (_c = lendingMarketMetadata === null || lendingMarketMetadata === void 0 ? void 0 : lendingMarketMetadata.isHidden) !== null && _c !== void 0 ? _c : true,
|
|
47
41
|
/**
|
|
48
42
|
* @deprecated since version 1.0.3. Use `depositedAmountUsd` instead.
|
|
@@ -54,4 +48,3 @@ const parseLendingMarket = (lendingMarket, reserves, coinMetadataMap, nowS, lend
|
|
|
54
48
|
totalBorrowUsd: borrowedAmountUsd,
|
|
55
49
|
};
|
|
56
50
|
};
|
|
57
|
-
exports.parseLendingMarket = parseLendingMarket;
|
package/parsers/obligation.js
CHANGED
|
@@ -1,29 +1,23 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
let
|
|
12
|
-
let totalBorrowedAmountUsd = new bignumber_js_1.default(0);
|
|
13
|
-
let weightedBorrowsUsd = new bignumber_js_1.default(0);
|
|
14
|
-
let maxPriceWeightedBorrowsUsd = new bignumber_js_1.default(0);
|
|
15
|
-
let borrowLimitUsd = new bignumber_js_1.default(0);
|
|
16
|
-
let minPriceBorrowLimitUsd = new bignumber_js_1.default(0);
|
|
17
|
-
let unhealthyBorrowValueUsd = new bignumber_js_1.default(0);
|
|
1
|
+
import { normalizeStructTag } from "@mysten/sui/utils";
|
|
2
|
+
import BigNumber from "bignumber.js";
|
|
3
|
+
import { WAD } from "../lib/constants";
|
|
4
|
+
export const parseObligation = (obligation, parsedReserveMap, isStrategy) => {
|
|
5
|
+
let totalDepositedAmountUsd = new BigNumber(0);
|
|
6
|
+
let totalBorrowedAmountUsd = new BigNumber(0);
|
|
7
|
+
let weightedBorrowsUsd = new BigNumber(0);
|
|
8
|
+
let maxPriceWeightedBorrowsUsd = new BigNumber(0);
|
|
9
|
+
let borrowLimitUsd = new BigNumber(0);
|
|
10
|
+
let minPriceBorrowLimitUsd = new BigNumber(0);
|
|
11
|
+
let unhealthyBorrowValueUsd = new BigNumber(0);
|
|
18
12
|
let depositPositionCount = 0;
|
|
19
13
|
let borrowPositionCount = 0;
|
|
20
14
|
const deposits = obligation.deposits.map((deposit) => {
|
|
21
|
-
const coinType =
|
|
15
|
+
const coinType = normalizeStructTag(deposit.coinType.name);
|
|
22
16
|
const reserve = parsedReserveMap[coinType];
|
|
23
17
|
if (!reserve)
|
|
24
18
|
throw new Error(`Reserve with coinType ${deposit.coinType.name} not found`);
|
|
25
19
|
depositPositionCount++;
|
|
26
|
-
const depositedCtokenAmount = new
|
|
20
|
+
const depositedCtokenAmount = new BigNumber(deposit.depositedCtokenAmount.toString());
|
|
27
21
|
const depositedAmount = depositedCtokenAmount
|
|
28
22
|
.times(reserve.cTokenExchangeRate)
|
|
29
23
|
.div(10 ** reserve.mintDecimals);
|
|
@@ -50,14 +44,14 @@ const parseObligation = (obligation, parsedReserveMap, isStrategy) => {
|
|
|
50
44
|
};
|
|
51
45
|
});
|
|
52
46
|
const borrows = obligation.borrows.map((borrow) => {
|
|
53
|
-
const coinType =
|
|
47
|
+
const coinType = normalizeStructTag(borrow.coinType.name);
|
|
54
48
|
const reserve = parsedReserveMap[coinType];
|
|
55
49
|
if (!reserve)
|
|
56
50
|
throw new Error(`Reserve with coinType ${borrow.coinType.name} not found`);
|
|
57
51
|
borrowPositionCount++;
|
|
58
|
-
const cumulativeBorrowRate = new
|
|
59
|
-
const borrowedAmountInitial = new
|
|
60
|
-
.div(
|
|
52
|
+
const cumulativeBorrowRate = new BigNumber(borrow.cumulativeBorrowRate.value.toString()).div(WAD);
|
|
53
|
+
const borrowedAmountInitial = new BigNumber(borrow.borrowedAmount.value.toString())
|
|
54
|
+
.div(WAD)
|
|
61
55
|
.div(10 ** reserve.mintDecimals);
|
|
62
56
|
const borrowInterestIndex = reserve.cumulativeBorrowRate.div(cumulativeBorrowRate);
|
|
63
57
|
const borrowedAmount = borrowedAmountInitial.times(borrowInterestIndex);
|
|
@@ -84,9 +78,9 @@ const parseObligation = (obligation, parsedReserveMap, isStrategy) => {
|
|
|
84
78
|
const netValueUsd = totalDepositedAmountUsd.minus(totalBorrowedAmountUsd);
|
|
85
79
|
// Cap `minPriceBorrowLimitUsd` at $30m (account borrow limit) -- NON-STRATEGY OBLIGATIONS ONLY
|
|
86
80
|
if (!isStrategy)
|
|
87
|
-
minPriceBorrowLimitUsd =
|
|
81
|
+
minPriceBorrowLimitUsd = BigNumber.min(minPriceBorrowLimitUsd, 30 * 10 ** 6);
|
|
88
82
|
const weightedConservativeBorrowUtilizationPercent = minPriceBorrowLimitUsd.eq(0)
|
|
89
|
-
? new
|
|
83
|
+
? new BigNumber(0)
|
|
90
84
|
: maxPriceWeightedBorrowsUsd.div(minPriceBorrowLimitUsd).times(100);
|
|
91
85
|
return {
|
|
92
86
|
id: obligation.id,
|
|
@@ -131,4 +125,3 @@ const parseObligation = (obligation, parsedReserveMap, isStrategy) => {
|
|
|
131
125
|
minPriceBorrowLimit: minPriceBorrowLimitUsd,
|
|
132
126
|
};
|
|
133
127
|
};
|
|
134
|
-
exports.parseObligation = parseObligation;
|
package/parsers/rateLimiter.js
CHANGED
|
@@ -1,28 +1,22 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.parseRateLimiterConfig = exports.parseRateLimiter = void 0;
|
|
7
|
-
const bignumber_js_1 = __importDefault(require("bignumber.js"));
|
|
8
|
-
const constants_1 = require("../lib/constants");
|
|
9
|
-
const parseRateLimiter = (rateLimiter, nowS) => {
|
|
10
|
-
const config = (0, exports.parseRateLimiterConfig)(rateLimiter);
|
|
1
|
+
import BigNumber from "bignumber.js";
|
|
2
|
+
import { WAD } from "../lib/constants";
|
|
3
|
+
export const parseRateLimiter = (rateLimiter, nowS) => {
|
|
4
|
+
const config = parseRateLimiterConfig(rateLimiter);
|
|
11
5
|
const $typeName = rateLimiter.$typeName;
|
|
12
6
|
const prevQty = rateLimiter.prevQty.value;
|
|
13
7
|
const windowStart = rateLimiter.windowStart;
|
|
14
8
|
const curQty = rateLimiter.curQty.value;
|
|
15
9
|
// Custom
|
|
16
|
-
const prevWeight = new
|
|
10
|
+
const prevWeight = new BigNumber(config.windowDuration.toString())
|
|
17
11
|
.minus((BigInt(nowS) - windowStart + BigInt(1)).toString())
|
|
18
12
|
.div(config.windowDuration.toString());
|
|
19
13
|
const currentOutflow = prevWeight
|
|
20
|
-
.times(new
|
|
21
|
-
.plus(new
|
|
22
|
-
.div(
|
|
14
|
+
.times(new BigNumber(prevQty.toString()))
|
|
15
|
+
.plus(new BigNumber(curQty.toString()))
|
|
16
|
+
.div(WAD);
|
|
23
17
|
const remainingOutflow = currentOutflow.gt(config.maxOutflow.toString())
|
|
24
|
-
? new
|
|
25
|
-
: new
|
|
18
|
+
? new BigNumber(0)
|
|
19
|
+
: new BigNumber(config.maxOutflow.toString()).minus(currentOutflow);
|
|
26
20
|
return {
|
|
27
21
|
config,
|
|
28
22
|
$typeName,
|
|
@@ -32,8 +26,7 @@ const parseRateLimiter = (rateLimiter, nowS) => {
|
|
|
32
26
|
remainingOutflow,
|
|
33
27
|
};
|
|
34
28
|
};
|
|
35
|
-
|
|
36
|
-
const parseRateLimiterConfig = (rateLimiter) => {
|
|
29
|
+
export const parseRateLimiterConfig = (rateLimiter) => {
|
|
37
30
|
const config = rateLimiter.config;
|
|
38
31
|
if (!config)
|
|
39
32
|
throw new Error("Rate limiter config not found");
|
|
@@ -44,4 +37,3 @@ const parseRateLimiterConfig = (rateLimiter) => {
|
|
|
44
37
|
maxOutflow,
|
|
45
38
|
};
|
|
46
39
|
};
|
|
47
|
-
exports.parseRateLimiterConfig = parseRateLimiterConfig;
|
package/parsers/reserve.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { CoinMetadata } from "@mysten/sui/
|
|
1
|
+
import { CoinMetadata } from "@mysten/sui/jsonRpc";
|
|
2
2
|
import BigNumber from "bignumber.js";
|
|
3
3
|
import { PoolReward, PoolRewardManager } from "../_generated/suilend/liquidity-mining/structs";
|
|
4
4
|
import { Reserve } from "../_generated/suilend/reserve/structs";
|
package/parsers/reserve.js
CHANGED
|
@@ -1,75 +1,36 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
}) : (function(o, m, k, k2) {
|
|
10
|
-
if (k2 === undefined) k2 = k;
|
|
11
|
-
o[k2] = m[k];
|
|
12
|
-
}));
|
|
13
|
-
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
-
}) : function(o, v) {
|
|
16
|
-
o["default"] = v;
|
|
17
|
-
});
|
|
18
|
-
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
-
var ownKeys = function(o) {
|
|
20
|
-
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
-
var ar = [];
|
|
22
|
-
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
-
return ar;
|
|
24
|
-
};
|
|
25
|
-
return ownKeys(o);
|
|
26
|
-
};
|
|
27
|
-
return function (mod) {
|
|
28
|
-
if (mod && mod.__esModule) return mod;
|
|
29
|
-
var result = {};
|
|
30
|
-
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
-
__setModuleDefault(result, mod);
|
|
32
|
-
return result;
|
|
33
|
-
};
|
|
34
|
-
})();
|
|
35
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
36
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
37
|
-
};
|
|
38
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
39
|
-
exports.parsePoolReward = exports.parsePoolRewardManager = exports.parseReserveConfig = exports.parseReserve = void 0;
|
|
40
|
-
const utils_1 = require("@mysten/sui/utils");
|
|
41
|
-
const bignumber_js_1 = __importDefault(require("bignumber.js"));
|
|
42
|
-
const uuid_1 = require("uuid");
|
|
43
|
-
const constants_1 = require("../lib/constants");
|
|
44
|
-
const utils_2 = require("../utils");
|
|
45
|
-
const simulate = __importStar(require("../utils/simulate"));
|
|
46
|
-
const parseReserve = (reserve, coinMetadataMap) => {
|
|
47
|
-
const config = (0, exports.parseReserveConfig)(reserve);
|
|
1
|
+
import { normalizeStructTag } from "@mysten/sui/utils";
|
|
2
|
+
import BigNumber from "bignumber.js";
|
|
3
|
+
import { v4 as uuidv4 } from "uuid";
|
|
4
|
+
import { WAD } from "../lib/constants";
|
|
5
|
+
import { toHexString } from "../utils";
|
|
6
|
+
import * as simulate from "../utils/simulate";
|
|
7
|
+
export const parseReserve = (reserve, coinMetadataMap) => {
|
|
8
|
+
const config = parseReserveConfig(reserve);
|
|
48
9
|
const $typeName = reserve.$typeName;
|
|
49
10
|
const id = reserve.id;
|
|
50
11
|
const arrayIndex = BigInt(reserve.arrayIndex);
|
|
51
|
-
const coinType =
|
|
12
|
+
const coinType = normalizeStructTag(reserve.coinType.name);
|
|
52
13
|
const coinMetadata = coinMetadataMap[coinType];
|
|
53
14
|
const mintDecimals = reserve.mintDecimals;
|
|
54
|
-
const priceIdentifier = `0x${
|
|
55
|
-
const price = new
|
|
56
|
-
const smoothedPrice = new
|
|
57
|
-
const minPrice =
|
|
58
|
-
const maxPrice =
|
|
15
|
+
const priceIdentifier = `0x${toHexString(reserve.priceIdentifier.bytes)}`;
|
|
16
|
+
const price = new BigNumber(reserve.price.value.toString()).div(WAD);
|
|
17
|
+
const smoothedPrice = new BigNumber(reserve.smoothedPrice.value.toString()).div(WAD);
|
|
18
|
+
const minPrice = BigNumber.min(price, smoothedPrice);
|
|
19
|
+
const maxPrice = BigNumber.max(price, smoothedPrice);
|
|
59
20
|
const priceLastUpdateTimestampS = reserve.priceLastUpdateTimestampS;
|
|
60
|
-
const availableAmount = new
|
|
61
|
-
const ctokenSupply = new
|
|
62
|
-
const borrowedAmount = new
|
|
63
|
-
.div(
|
|
21
|
+
const availableAmount = new BigNumber(reserve.availableAmount.toString()).div(10 ** mintDecimals);
|
|
22
|
+
const ctokenSupply = new BigNumber(reserve.ctokenSupply.toString()).div(10 ** mintDecimals);
|
|
23
|
+
const borrowedAmount = new BigNumber(reserve.borrowedAmount.value.toString())
|
|
24
|
+
.div(WAD)
|
|
64
25
|
.div(10 ** mintDecimals);
|
|
65
|
-
const cumulativeBorrowRate = new
|
|
26
|
+
const cumulativeBorrowRate = new BigNumber(reserve.cumulativeBorrowRate.value.toString()).div(WAD);
|
|
66
27
|
const interestLastUpdateTimestampS = reserve.interestLastUpdateTimestampS;
|
|
67
|
-
const unclaimedSpreadFees = new
|
|
68
|
-
.div(
|
|
28
|
+
const unclaimedSpreadFees = new BigNumber(reserve.unclaimedSpreadFees.value.toString())
|
|
29
|
+
.div(WAD)
|
|
69
30
|
.div(10 ** mintDecimals);
|
|
70
|
-
const attributedBorrowValue = new
|
|
71
|
-
const depositsPoolRewardManager =
|
|
72
|
-
const borrowsPoolRewardManager =
|
|
31
|
+
const attributedBorrowValue = new BigNumber(reserve.attributedBorrowValue.value.toString());
|
|
32
|
+
const depositsPoolRewardManager = parsePoolRewardManager(reserve.depositsPoolRewardManager, coinMetadataMap);
|
|
33
|
+
const borrowsPoolRewardManager = parsePoolRewardManager(reserve.borrowsPoolRewardManager, coinMetadataMap);
|
|
73
34
|
// Custom
|
|
74
35
|
const availableAmountUsd = availableAmount.times(price);
|
|
75
36
|
const borrowedAmountUsd = borrowedAmount.times(price);
|
|
@@ -136,8 +97,7 @@ const parseReserve = (reserve, coinMetadataMap) => {
|
|
|
136
97
|
totalDeposits: depositedAmount,
|
|
137
98
|
};
|
|
138
99
|
};
|
|
139
|
-
|
|
140
|
-
const parseReserveConfig = (reserve) => {
|
|
100
|
+
export const parseReserveConfig = (reserve) => {
|
|
141
101
|
const config = reserve.config.element;
|
|
142
102
|
if (!config)
|
|
143
103
|
throw new Error("Reserve config not found");
|
|
@@ -146,13 +106,13 @@ const parseReserveConfig = (reserve) => {
|
|
|
146
106
|
const openLtvPct = config.openLtvPct;
|
|
147
107
|
const closeLtvPct = config.closeLtvPct;
|
|
148
108
|
const maxCloseLtvPct = config.maxCloseLtvPct;
|
|
149
|
-
const borrowWeightBps = (
|
|
150
|
-
const depositLimit = new
|
|
151
|
-
const borrowLimit = new
|
|
109
|
+
const borrowWeightBps = BigNumber(config.borrowWeightBps.toString());
|
|
110
|
+
const depositLimit = new BigNumber(config.depositLimit.toString()).div(10 ** mintDecimals);
|
|
111
|
+
const borrowLimit = new BigNumber(config.borrowLimit.toString()).div(10 ** mintDecimals);
|
|
152
112
|
const liquidationBonusBps = Number(config.liquidationBonusBps.toString());
|
|
153
113
|
const maxLiquidationBonusBps = Number(config.maxLiquidationBonusBps.toString());
|
|
154
|
-
const depositLimitUsd = new
|
|
155
|
-
const borrowLimitUsd = new
|
|
114
|
+
const depositLimitUsd = new BigNumber(config.depositLimitUsd.toString());
|
|
115
|
+
const borrowLimitUsd = new BigNumber(config.borrowLimitUsd.toString());
|
|
156
116
|
const borrowFeeBps = Number(config.borrowFeeBps.toString());
|
|
157
117
|
const spreadFeeBps = Number(config.spreadFeeBps.toString());
|
|
158
118
|
const protocolLiquidationFeeBps = Number(config.protocolLiquidationFeeBps.toString());
|
|
@@ -161,9 +121,9 @@ const parseReserveConfig = (reserve) => {
|
|
|
161
121
|
const closeAttributedBorrowLimitUsd = Number(config.closeAttributedBorrowLimitUsd.toString());
|
|
162
122
|
// additionalFields
|
|
163
123
|
const interestRate = config.interestRateUtils.map((util, index) => ({
|
|
164
|
-
id: (
|
|
165
|
-
utilPercent: new
|
|
166
|
-
aprPercent: new
|
|
124
|
+
id: uuidv4(),
|
|
125
|
+
utilPercent: new BigNumber(util.toString()),
|
|
126
|
+
aprPercent: new BigNumber(config.interestRateAprs[index].toString()).div(100),
|
|
167
127
|
}));
|
|
168
128
|
return {
|
|
169
129
|
$typeName,
|
|
@@ -187,13 +147,12 @@ const parseReserveConfig = (reserve) => {
|
|
|
187
147
|
interestRate,
|
|
188
148
|
};
|
|
189
149
|
};
|
|
190
|
-
|
|
191
|
-
const parsePoolRewardManager = (poolRewardManager, coinMetadataMap) => {
|
|
150
|
+
export const parsePoolRewardManager = (poolRewardManager, coinMetadataMap) => {
|
|
192
151
|
const $typeName = poolRewardManager.$typeName;
|
|
193
152
|
const id = poolRewardManager.id;
|
|
194
153
|
const totalShares = poolRewardManager.totalShares;
|
|
195
154
|
const poolRewards = poolRewardManager.poolRewards
|
|
196
|
-
.map((pr, index) =>
|
|
155
|
+
.map((pr, index) => parsePoolReward(pr, index, coinMetadataMap))
|
|
197
156
|
.filter(Boolean);
|
|
198
157
|
const lastUpdateTimeMs = poolRewardManager.lastUpdateTimeMs;
|
|
199
158
|
return {
|
|
@@ -204,24 +163,23 @@ const parsePoolRewardManager = (poolRewardManager, coinMetadataMap) => {
|
|
|
204
163
|
lastUpdateTimeMs,
|
|
205
164
|
};
|
|
206
165
|
};
|
|
207
|
-
|
|
208
|
-
const parsePoolReward = (poolReward, rewardIndex, coinMetadataMap) => {
|
|
166
|
+
export const parsePoolReward = (poolReward, rewardIndex, coinMetadataMap) => {
|
|
209
167
|
if (!poolReward)
|
|
210
168
|
return null;
|
|
211
169
|
const $typeName = poolReward.$typeName;
|
|
212
170
|
const id = poolReward.id;
|
|
213
171
|
const poolRewardManagerId = poolReward.poolRewardManagerId;
|
|
214
|
-
const coinType =
|
|
172
|
+
const coinType = normalizeStructTag(poolReward.coinType.name);
|
|
215
173
|
const coinMetadata = coinMetadataMap[coinType];
|
|
216
174
|
const mintDecimals = coinMetadata.decimals;
|
|
217
175
|
const startTimeMs = Number(poolReward.startTimeMs);
|
|
218
176
|
const endTimeMs = Number(poolReward.endTimeMs);
|
|
219
|
-
const totalRewards = new
|
|
220
|
-
const allocatedRewards = new
|
|
221
|
-
.div(
|
|
177
|
+
const totalRewards = new BigNumber(poolReward.totalRewards.toString()).div(10 ** coinMetadata.decimals);
|
|
178
|
+
const allocatedRewards = new BigNumber(poolReward.allocatedRewards.value.toString())
|
|
179
|
+
.div(WAD)
|
|
222
180
|
.div(10 ** coinMetadata.decimals);
|
|
223
|
-
const cumulativeRewardsPerShare = new
|
|
224
|
-
.div(
|
|
181
|
+
const cumulativeRewardsPerShare = new BigNumber(poolReward.cumulativeRewardsPerShare.value.toString())
|
|
182
|
+
.div(WAD)
|
|
225
183
|
.div(10 ** coinMetadata.decimals);
|
|
226
184
|
const numUserRewardManagers = poolReward.numUserRewardManagers;
|
|
227
185
|
// additionalFields
|
|
@@ -243,4 +201,3 @@ const parsePoolReward = (poolReward, rewardIndex, coinMetadataMap) => {
|
|
|
243
201
|
mintDecimals,
|
|
244
202
|
};
|
|
245
203
|
};
|
|
246
|
-
exports.parsePoolReward = parsePoolReward;
|
package/strategies.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { AggregatorClient as CetusSdk } from "@cetusprotocol/aggregator-sdk";
|
|
2
|
-
import { CoinMetadata, DevInspectResults,
|
|
2
|
+
import { CoinMetadata, DevInspectResults, SuiJsonRpcClient } from "@mysten/sui/jsonRpc";
|
|
3
3
|
import { Transaction, TransactionArgument, TransactionObjectInput } from "@mysten/sui/transactions";
|
|
4
4
|
import BigNumber from "bignumber.js";
|
|
5
5
|
import { LstClient } from "@suilend/springsui-sdk";
|
|
@@ -152,7 +152,7 @@ export type StrategyLstMap = Record<string, {
|
|
|
152
152
|
suiToLstExchangeRate: BigNumber;
|
|
153
153
|
lstToSuiExchangeRate: BigNumber;
|
|
154
154
|
}>;
|
|
155
|
-
export declare const fetchStrategyLstMap: (suiClient:
|
|
155
|
+
export declare const fetchStrategyLstMap: (suiClient: SuiJsonRpcClient) => Promise<StrategyLstMap | undefined>;
|
|
156
156
|
export declare const getStrategyLstMintFee: (lstMap: StrategyLstMap, lstCoinType: string, suiAmount: BigNumber) => BigNumber;
|
|
157
157
|
export declare const getStrategyLstRedeemFee: (lstMap: StrategyLstMap, lstCoinType: string, lstAmount: BigNumber) => BigNumber;
|
|
158
158
|
export declare const STRATEGY_TYPE_EXPOSURE_MAP: Record<StrategyType, {
|
|
@@ -303,50 +303,50 @@ export declare const getStrategyAprPercent: (reserveMap: Record<string, ParsedRe
|
|
|
303
303
|
}>, rewardMap: RewardMap, lstMap: StrategyLstMap, strategyType: StrategyType, obligation?: ParsedObligation, exposure?: BigNumber) => BigNumber;
|
|
304
304
|
export declare const getStrategyHealthPercent: (reserveMap: Record<string, ParsedReserve>, lstMap: StrategyLstMap, strategyType: StrategyType, obligation?: ParsedObligation, exposure?: BigNumber) => BigNumber;
|
|
305
305
|
export declare const getStrategyLiquidationPrice: (reserveMap: Record<string, ParsedReserve>, lstMap: StrategyLstMap, strategyType: StrategyType, obligation?: ParsedObligation, exposure?: BigNumber) => BigNumber | null;
|
|
306
|
-
export declare const strategyLoopToExposureTx: (reserveMap: Record<string, ParsedReserve>, lstMap: StrategyLstMap, strategyType: StrategyType, suiClient:
|
|
306
|
+
export declare const strategyLoopToExposureTx: (reserveMap: Record<string, ParsedReserve>, lstMap: StrategyLstMap, strategyType: StrategyType, suiClient: SuiJsonRpcClient, suilendClient: SuilendClient, cetusSdk: CetusSdk, cetusPartnerId: string, _address: string, strategyOwnerCapId: TransactionObjectInput, obligationId: string | undefined, _deposits: StrategyDeposit[], _borrowedAmount: BigNumber, _targetBorrowedAmount: BigNumber | undefined, _targetExposure: BigNumber | undefined, // Must be defined if _targetBorrowedAmount is undefined
|
|
307
307
|
transaction: Transaction) => Promise<{
|
|
308
308
|
deposits: StrategyDeposit[];
|
|
309
309
|
borrowedAmount: BigNumber;
|
|
310
310
|
transaction: Transaction;
|
|
311
311
|
}>;
|
|
312
|
-
export declare const strategyUnloopToExposureTx: (reserveMap: Record<string, ParsedReserve>, lstMap: StrategyLstMap, strategyType: StrategyType, suiClient:
|
|
312
|
+
export declare const strategyUnloopToExposureTx: (reserveMap: Record<string, ParsedReserve>, lstMap: StrategyLstMap, strategyType: StrategyType, suiClient: SuiJsonRpcClient, suilendClient: SuilendClient, cetusSdk: CetusSdk, cetusPartnerId: string, _address: string, strategyOwnerCapId: TransactionObjectInput, obligationId: string, _deposits: StrategyDeposit[], _borrowedAmount: BigNumber, _targetBorrowedAmount: BigNumber | undefined, _targetExposure: BigNumber | undefined, // Must be defined if _targetBorrowedAmount is undefined
|
|
313
313
|
transaction: Transaction, dryRunTransaction: (transaction: Transaction, setGasBudget?: boolean) => Promise<DevInspectResults>) => Promise<{
|
|
314
314
|
deposits: StrategyDeposit[];
|
|
315
315
|
borrowedAmount: BigNumber;
|
|
316
316
|
transaction: Transaction;
|
|
317
317
|
}>;
|
|
318
|
-
export declare const strategyDepositTx: (reserveMap: Record<string, ParsedReserve>, lstMap: StrategyLstMap, strategyType: StrategyType, suiClient:
|
|
318
|
+
export declare const strategyDepositTx: (reserveMap: Record<string, ParsedReserve>, lstMap: StrategyLstMap, strategyType: StrategyType, suiClient: SuiJsonRpcClient, suilendClient: SuilendClient, cetusSdk: CetusSdk, cetusPartnerId: string, _address: string, strategyOwnerCapId: TransactionObjectInput, obligationId: string | undefined, _deposits: StrategyDeposit[], _borrowedAmount: BigNumber, deposit: StrategyDeposit, transaction: Transaction, dryRunTransaction: (transaction: Transaction, setGasBudget?: boolean) => Promise<DevInspectResults>) => Promise<{
|
|
319
319
|
deposits: StrategyDeposit[];
|
|
320
320
|
borrowedAmount: BigNumber;
|
|
321
321
|
transaction: Transaction;
|
|
322
322
|
}>;
|
|
323
|
-
export declare const strategyDepositAndLoopToExposureTx: (reserveMap: Record<string, ParsedReserve>, lstMap: StrategyLstMap, strategyType: StrategyType, suiClient:
|
|
323
|
+
export declare const strategyDepositAndLoopToExposureTx: (reserveMap: Record<string, ParsedReserve>, lstMap: StrategyLstMap, strategyType: StrategyType, suiClient: SuiJsonRpcClient, suilendClient: SuilendClient, cetusSdk: CetusSdk, cetusPartnerId: string, _address: string, strategyOwnerCapId: TransactionObjectInput, obligationId: string | undefined, _deposits: StrategyDeposit[], _borrowedAmount: BigNumber, deposit: StrategyDeposit, targetExposure: BigNumber, transaction: Transaction, dryRunTransaction: (transaction: Transaction, setGasBudget?: boolean) => Promise<DevInspectResults>) => Promise<{
|
|
324
324
|
deposits: StrategyDeposit[];
|
|
325
325
|
borrowedAmount: BigNumber;
|
|
326
326
|
transaction: Transaction;
|
|
327
327
|
}>;
|
|
328
|
-
export declare const strategyWithdrawTx: (reserveMap: Record<string, ParsedReserve>, lstMap: StrategyLstMap, strategyType: StrategyType, suiClient:
|
|
328
|
+
export declare const strategyWithdrawTx: (reserveMap: Record<string, ParsedReserve>, lstMap: StrategyLstMap, strategyType: StrategyType, suiClient: SuiJsonRpcClient, suilendClient: SuilendClient, cetusSdk: CetusSdk, cetusPartnerId: string, _address: string, strategyOwnerCapId: TransactionObjectInput, obligationId: string, _deposits: StrategyDeposit[], _borrowedAmount: BigNumber, withdraw: StrategyWithdraw, transaction: Transaction, dryRunTransaction: (transaction: Transaction, setGasBudget?: boolean) => Promise<DevInspectResults>, returnWithdrawnCoin?: boolean) => Promise<{
|
|
329
329
|
deposits: StrategyDeposit[];
|
|
330
330
|
borrowedAmount: BigNumber;
|
|
331
331
|
transaction: Transaction;
|
|
332
332
|
withdrawnCoin?: TransactionArgument;
|
|
333
333
|
}>;
|
|
334
|
-
export declare const strategyMaxWithdrawTx: (reserveMap: Record<string, ParsedReserve>, rewardPriceMap: Record<string, BigNumber | undefined>, rewardsMap: RewardsMap, lstMap: StrategyLstMap, strategyType: StrategyType, suiClient:
|
|
334
|
+
export declare const strategyMaxWithdrawTx: (reserveMap: Record<string, ParsedReserve>, rewardPriceMap: Record<string, BigNumber | undefined>, rewardsMap: RewardsMap, lstMap: StrategyLstMap, strategyType: StrategyType, suiClient: SuiJsonRpcClient, suilendClient: SuilendClient, cetusSdk: CetusSdk, cetusPartnerId: string, _address: string, strategyOwnerCapId: TransactionObjectInput, obligationId: string, _deposits: StrategyDeposit[], _borrowedAmount: BigNumber, withdrawCoinType: string, transaction: Transaction, dryRunTransaction: (transaction: Transaction, setGasBudget?: boolean) => Promise<DevInspectResults>) => Promise<{
|
|
335
335
|
deposits: StrategyDeposit[];
|
|
336
336
|
borrowedAmount: BigNumber;
|
|
337
337
|
transaction: Transaction;
|
|
338
338
|
}>;
|
|
339
|
-
export declare const strategyAdjustRepayTx: (reserveMap: Record<string, ParsedReserve>, lstMap: StrategyLstMap, strategyType: StrategyType, suiClient:
|
|
339
|
+
export declare const strategyAdjustRepayTx: (reserveMap: Record<string, ParsedReserve>, lstMap: StrategyLstMap, strategyType: StrategyType, suiClient: SuiJsonRpcClient, suilendClient: SuilendClient, cetusSdk: CetusSdk, cetusPartnerId: string, _address: string, strategyOwnerCapId: TransactionObjectInput, obligationId: string, _deposits: StrategyDeposit[], _borrowedAmount: BigNumber, flashLoanBorrowedAmount: BigNumber, transaction: Transaction, dryRunTransaction: (transaction: Transaction, setGasBudget?: boolean) => Promise<DevInspectResults>) => Promise<{
|
|
340
340
|
deposits: StrategyDeposit[];
|
|
341
341
|
borrowedAmount: BigNumber;
|
|
342
342
|
transaction: Transaction;
|
|
343
343
|
}>;
|
|
344
|
-
export declare const strategyDepositAdjustWithdrawTx: (reserveMap: Record<string, ParsedReserve>, lstMap: StrategyLstMap, strategyType: StrategyType, suiClient:
|
|
344
|
+
export declare const strategyDepositAdjustWithdrawTx: (reserveMap: Record<string, ParsedReserve>, lstMap: StrategyLstMap, strategyType: StrategyType, suiClient: SuiJsonRpcClient, suilendClient: SuilendClient, cetusSdk: CetusSdk, cetusPartnerId: string, _address: string, strategyOwnerCapId: TransactionObjectInput, obligationId: string, _deposits: StrategyDeposit[], _borrowedAmount: BigNumber, flashLoanBorrowedAmount: BigNumber, transaction: Transaction, dryRunTransaction: (transaction: Transaction, setGasBudget?: boolean) => Promise<DevInspectResults>) => Promise<{
|
|
345
345
|
deposits: StrategyDeposit[];
|
|
346
346
|
borrowedAmount: BigNumber;
|
|
347
347
|
transaction: Transaction;
|
|
348
348
|
}>;
|
|
349
|
-
export declare const strategyAdjustTx: (reserveMap: Record<string, ParsedReserve>, lstMap: StrategyLstMap, strategyType: StrategyType, suiClient:
|
|
349
|
+
export declare const strategyAdjustTx: (reserveMap: Record<string, ParsedReserve>, lstMap: StrategyLstMap, strategyType: StrategyType, suiClient: SuiJsonRpcClient, suilendClient: SuilendClient, cetusSdk: CetusSdk, cetusPartnerId: string, _address: string, strategyOwnerCapId: TransactionObjectInput, obligation: ParsedObligation, _deposits: StrategyDeposit[], _borrowedAmount: BigNumber, targetExposure: BigNumber, transaction: Transaction, dryRunTransaction: (transaction: Transaction, setGasBudget?: boolean) => Promise<DevInspectResults>) => Promise<{
|
|
350
350
|
deposits: StrategyDeposit[];
|
|
351
351
|
borrowedAmount: BigNumber;
|
|
352
352
|
transaction: Transaction;
|