@suilend/sdk 1.1.90 → 1.1.92
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/lib/liquidityMining.d.ts +2 -2
- package/lib/liquidityMining.js +10 -3
- package/package.json +1 -1
- package/strategies.js +30 -33
package/lib/liquidityMining.d.ts
CHANGED
|
@@ -51,10 +51,10 @@ export declare const getDedupedPerDayRewards: (filteredRewards: RewardSummary[])
|
|
|
51
51
|
export declare const getRewardsAprPercent: (side: Side, filteredRewards: RewardSummary[]) => BigNumber;
|
|
52
52
|
export declare const getStakingYieldAprPercent: (side: Side, coinType: string, lstStatsMap: Record<string, {
|
|
53
53
|
aprPercent: BigNumber;
|
|
54
|
-
}
|
|
54
|
+
}>, elixirSdeUsdAprPercent: BigNumber | undefined) => BigNumber | undefined;
|
|
55
55
|
export declare const getTotalAprPercent: (side: Side, aprPercent: BigNumber, filteredRewards: RewardSummary[], stakingYieldAprPercent?: BigNumber) => BigNumber;
|
|
56
56
|
export declare const getNetAprPercent: (obligation: ParsedObligation, rewardMap: RewardMap, lstStatsMap: Record<string, {
|
|
57
57
|
aprPercent: BigNumber;
|
|
58
|
-
}>, noShares?: boolean) => BigNumber;
|
|
58
|
+
}>, elixirSdeUsdAprPercent: BigNumber | undefined, noShares?: boolean) => BigNumber;
|
|
59
59
|
export declare const getRewardsMap: (obligation: ParsedObligation | undefined, rewardMap: RewardMap, coinMetadataMap: Record<string, CoinMetadata>) => RewardsMap;
|
|
60
60
|
export {};
|
package/lib/liquidityMining.js
CHANGED
|
@@ -145,17 +145,24 @@ const getDedupedPerDayRewards = (filteredRewards) => {
|
|
|
145
145
|
exports.getDedupedPerDayRewards = getDedupedPerDayRewards;
|
|
146
146
|
const getRewardsAprPercent = (side, filteredRewards) => (0, exports.getDedupedAprRewards)(filteredRewards).reduce((acc, reward) => acc.plus(reward.stats.aprPercent.times(side === types_1.Side.DEPOSIT ? 1 : -1)), new bignumber_js_1.default(0));
|
|
147
147
|
exports.getRewardsAprPercent = getRewardsAprPercent;
|
|
148
|
-
const getStakingYieldAprPercent = (side, coinType, lstStatsMap) => {
|
|
148
|
+
const getStakingYieldAprPercent = (side, coinType, lstStatsMap, elixirSdeUsdAprPercent) => {
|
|
149
|
+
var _a;
|
|
150
|
+
return side === types_1.Side.DEPOSIT
|
|
151
|
+
? coinType === sui_fe_1.NORMALIZED_sdeUSD_COINTYPE
|
|
152
|
+
? elixirSdeUsdAprPercent
|
|
153
|
+
: (_a = lstStatsMap[coinType]) === null || _a === void 0 ? void 0 : _a.aprPercent
|
|
154
|
+
: undefined;
|
|
155
|
+
};
|
|
149
156
|
exports.getStakingYieldAprPercent = getStakingYieldAprPercent;
|
|
150
157
|
const getTotalAprPercent = (side, aprPercent, filteredRewards, stakingYieldAprPercent) => aprPercent
|
|
151
158
|
.plus((0, exports.getRewardsAprPercent)(side, filteredRewards))
|
|
152
159
|
.plus(stakingYieldAprPercent !== null && stakingYieldAprPercent !== void 0 ? stakingYieldAprPercent : 0);
|
|
153
160
|
exports.getTotalAprPercent = getTotalAprPercent;
|
|
154
|
-
const getNetAprPercent = (obligation, rewardMap, lstStatsMap, noShares) => {
|
|
161
|
+
const getNetAprPercent = (obligation, rewardMap, lstStatsMap, elixirSdeUsdAprPercent, noShares) => {
|
|
155
162
|
const weightedDepositedAmountUsd_aprPercent = obligation.deposits.reduce((acc, deposit) => {
|
|
156
163
|
var _a;
|
|
157
164
|
const weightedDepositedAmountUsd_baseAprPercent = deposit.reserve.depositAprPercent.times(deposit.depositedAmountUsd);
|
|
158
|
-
const weightedDepositedAmountUsd_stakingYieldAprPercent = new bignumber_js_1.default((_a = (0, exports.getStakingYieldAprPercent)(types_1.Side.DEPOSIT, deposit.reserve.coinType, lstStatsMap)) !== null && _a !== void 0 ? _a : 0).times(deposit.depositedAmountUsd);
|
|
165
|
+
const weightedDepositedAmountUsd_stakingYieldAprPercent = new bignumber_js_1.default((_a = (0, exports.getStakingYieldAprPercent)(types_1.Side.DEPOSIT, deposit.reserve.coinType, lstStatsMap, elixirSdeUsdAprPercent)) !== null && _a !== void 0 ? _a : 0).times(deposit.depositedAmountUsd);
|
|
159
166
|
const weightedDepositedAmountUsd_rewardsAprPercent = (0, exports.getRewardsAprPercent)(types_1.Side.DEPOSIT, (0, exports.getFilteredRewards)(rewardMap[deposit.reserve.coinType].deposit)).times(!noShares
|
|
160
167
|
? getDepositShareUsd(deposit.reserve, new bignumber_js_1.default(deposit.userRewardManager.share.toString()))
|
|
161
168
|
: deposit.depositedAmountUsd);
|
package/package.json
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"name":"@suilend/sdk","version":"1.1.
|
|
1
|
+
{"name":"@suilend/sdk","version":"1.1.92","private":false,"description":"A TypeScript SDK for interacting with the Suilend program","author":"Suilend","license":"MIT","main":"./index.js","exports":{".":"./index.js","./client":"./client.js","./mmt":"./mmt.js","./strategies":"./strategies.js","./api/events":"./api/events.js","./api":"./api/index.js","./lib/constants":"./lib/constants.js","./lib":"./lib/index.js","./lib/initialize":"./lib/initialize.js","./lib/liquidityMining":"./lib/liquidityMining.js","./lib/strategyOwnerCap":"./lib/strategyOwnerCap.js","./lib/transactions":"./lib/transactions.js","./lib/types":"./lib/types.js","./parsers/apiReserveAssetDataEvent":"./parsers/apiReserveAssetDataEvent.js","./parsers":"./parsers/index.js","./parsers/lendingMarket":"./parsers/lendingMarket.js","./parsers/obligation":"./parsers/obligation.js","./parsers/rateLimiter":"./parsers/rateLimiter.js","./parsers/reserve":"./parsers/reserve.js","./swap":"./swap/index.js","./swap/quote":"./swap/quote.js","./swap/transaction":"./swap/transaction.js","./utils/events":"./utils/events.js","./utils":"./utils/index.js","./utils/obligation":"./utils/obligation.js","./utils/simulate":"./utils/simulate.js","./_generated/_framework/reified":"./_generated/_framework/reified.js","./_generated/_framework/util":"./_generated/_framework/util.js","./_generated/_framework/vector":"./_generated/_framework/vector.js","./_generated/suilend":"./_generated/suilend/index.js","./_generated/suilend/cell/structs":"./_generated/suilend/cell/structs.js","./_generated/suilend/decimal/structs":"./_generated/suilend/decimal/structs.js","./_generated/suilend/lending-market/functions":"./_generated/suilend/lending-market/functions.js","./_generated/suilend/lending-market/structs":"./_generated/suilend/lending-market/structs.js","./_generated/suilend/lending-market-registry/functions":"./_generated/suilend/lending-market-registry/functions.js","./_generated/suilend/liquidity-mining/structs":"./_generated/suilend/liquidity-mining/structs.js","./_generated/suilend/obligation/structs":"./_generated/suilend/obligation/structs.js","./_generated/suilend/rate-limiter/functions":"./_generated/suilend/rate-limiter/functions.js","./_generated/suilend/rate-limiter/structs":"./_generated/suilend/rate-limiter/structs.js","./_generated/suilend/reserve/structs":"./_generated/suilend/reserve/structs.js","./_generated/suilend/reserve-config/functions":"./_generated/suilend/reserve-config/functions.js","./_generated/suilend/reserve-config/structs":"./_generated/suilend/reserve-config/structs.js","./_generated/_dependencies/source/0x1":"./_generated/_dependencies/source/0x1/index.js","./_generated/_dependencies/source/0x2":"./_generated/_dependencies/source/0x2/index.js","./_generated/_dependencies/source/0x8d97f1cd6ac663735be08d1d2b6d02a159e711586461306ce60a2b7a6a565a9e":"./_generated/_dependencies/source/0x8d97f1cd6ac663735be08d1d2b6d02a159e711586461306ce60a2b7a6a565a9e/index.js","./_generated/_dependencies/source/0x1/ascii/structs":"./_generated/_dependencies/source/0x1/ascii/structs.js","./_generated/_dependencies/source/0x1/option/structs":"./_generated/_dependencies/source/0x1/option/structs.js","./_generated/_dependencies/source/0x1/type-name/structs":"./_generated/_dependencies/source/0x1/type-name/structs.js","./_generated/_dependencies/source/0x2/bag/structs":"./_generated/_dependencies/source/0x2/bag/structs.js","./_generated/_dependencies/source/0x2/balance/structs":"./_generated/_dependencies/source/0x2/balance/structs.js","./_generated/_dependencies/source/0x2/object/structs":"./_generated/_dependencies/source/0x2/object/structs.js","./_generated/_dependencies/source/0x2/object-table/structs":"./_generated/_dependencies/source/0x2/object-table/structs.js","./_generated/_dependencies/source/0x8d97f1cd6ac663735be08d1d2b6d02a159e711586461306ce60a2b7a6a565a9e/i64/structs":"./_generated/_dependencies/source/0x8d97f1cd6ac663735be08d1d2b6d02a159e711586461306ce60a2b7a6a565a9e/i64/structs.js","./_generated/_dependencies/source/0x8d97f1cd6ac663735be08d1d2b6d02a159e711586461306ce60a2b7a6a565a9e/price/structs":"./_generated/_dependencies/source/0x8d97f1cd6ac663735be08d1d2b6d02a159e711586461306ce60a2b7a6a565a9e/price/structs.js","./_generated/_dependencies/source/0x8d97f1cd6ac663735be08d1d2b6d02a159e711586461306ce60a2b7a6a565a9e/price-feed/structs":"./_generated/_dependencies/source/0x8d97f1cd6ac663735be08d1d2b6d02a159e711586461306ce60a2b7a6a565a9e/price-feed/structs.js","./_generated/_dependencies/source/0x8d97f1cd6ac663735be08d1d2b6d02a159e711586461306ce60a2b7a6a565a9e/price-identifier/structs":"./_generated/_dependencies/source/0x8d97f1cd6ac663735be08d1d2b6d02a159e711586461306ce60a2b7a6a565a9e/price-identifier/structs.js","./_generated/_dependencies/source/0x8d97f1cd6ac663735be08d1d2b6d02a159e711586461306ce60a2b7a6a565a9e/price-info/structs":"./_generated/_dependencies/source/0x8d97f1cd6ac663735be08d1d2b6d02a159e711586461306ce60a2b7a6a565a9e/price-info/structs.js"},"types":"./index.js","scripts":{"build":"rm -rf ./dist && bun tsc","eslint":"eslint --fix \"./src/**/*.ts\"","prettier":"prettier --write \"./src/**/*\"","lint":"bun eslint && bun prettier && bun tsc --noEmit","release":"bun run build && bun ts-node ./release.ts && cd ./dist && npm publish --access public"},"repository":{"type":"git","url":"git+https://github.com/suilend/suilend-fe-public.git"},"bugs":{"url":"https://github.com/suilend/suilend-fe-public/issues"},"dependencies":{"@7kprotocol/sdk-ts":"^3.5.0","@cetusprotocol/aggregator-sdk":"^1.4.2","@flowx-finance/sdk":"^1.14.0","@pythnetwork/pyth-sui-js":"^2.2.0","@suilend/springsui-sdk":"^1.0.27","aftermath-ts-sdk":"^1.3.24","bignumber.js":"^9.1.2","bn.js":"^5.2.2","crypto-js":"^4.2.0","lodash":"^4.17.21","p-limit":"3.1.0","uuid":"^11.0.3"},"devDependencies":{"@types/bn.js":"^5.2.0","@types/lodash":"^4.17.20","ts-node":"^10.9.2"},"peerDependencies":{"@mysten/bcs":"1.8.1","@mysten/sui":"1.42.0","@suilend/sui-fe":"^0.3.41"},"overrides":{"chalk":"5.3.0","strip-ansi":"7.1.0","color-convert":"2.0.1","color-name":"1.1.4","is-core-module":"2.13.1","error-ex":"1.3.2","has-ansi":"5.0.1"}}
|
package/strategies.js
CHANGED
|
@@ -13,6 +13,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
13
13
|
};
|
|
14
14
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
15
|
exports.strategyAdjustTx = exports.strategyDepositAdjustWithdrawTx = exports.strategyMaxWithdrawTx = exports.strategyWithdrawTx = exports.strategyDepositAndLoopToExposureTx = exports.strategyDepositTx = exports.strategyUnloopToExposureTx = exports.strategyLoopToExposureTx = exports.getStrategyLiquidationPrice = exports.getStrategyHealthPercent = exports.getStrategyAprPercent = exports.getStrategyUnclaimedRewardsAmount = exports.fetchStrategyGlobalTvlAmountUsdMap = exports.strategySimulateDepositAndLoopToExposure = exports.strategySimulateDeposit = exports.strategySimulateLoopToExposure = exports.getStrategyStepMaxWithdrawnAmount = exports.getStrategyStepMaxBorrowedAmount = exports.getStrategyExposure = exports.getStrategyTvlAmount = exports.getStrategyBorrowedAmount = exports.getStrategyDepositedAmount = exports.getStrategySimulatedObligation = exports.getStrategyDefaultCurrencyReserve = exports.getStrategyBorrowReserve = exports.getStrategyDepositReserves = exports.STRATEGY_TYPE_EXPOSURE_MAP = exports.getStrategyLstRedeemFee = exports.getStrategyLstMintFee = exports.fetchStrategyLstMap = exports.getStrategySuiReserve = exports.hasStrategyPosition = exports.addOrInsertStrategyDeposit = exports.getReserveSafeDepositLimit = exports.STRATEGY_TYPE_FLASH_LOAN_OBJ_MAP = exports.StrategyFlashLoanProvider = exports.LST_DECIMALS = exports.STRATEGY_E = void 0;
|
|
16
|
+
const bcs_1 = require("@mysten/bcs");
|
|
16
17
|
const transactions_1 = require("@mysten/sui/transactions");
|
|
17
18
|
const utils_1 = require("@mysten/sui/utils");
|
|
18
19
|
const bignumber_js_1 = __importDefault(require("bignumber.js"));
|
|
@@ -733,7 +734,8 @@ lstMap, strategyType, obligation, exposure) => {
|
|
|
733
734
|
depositedAmount: new bignumber_js_1.default(1), // Any number will do
|
|
734
735
|
}, exposure).obligation;
|
|
735
736
|
}
|
|
736
|
-
return (0, lib_1.getNetAprPercent)(_obligation, rewardMap, lstStatsMap,
|
|
737
|
+
return (0, lib_1.getNetAprPercent)(_obligation, rewardMap, lstStatsMap, undefined, // elixirSdeUsdAprPercent
|
|
738
|
+
!obligation ||
|
|
737
739
|
!(0, exports.hasStrategyPosition)(obligation) ||
|
|
738
740
|
obligation.deposits.some((d) => !d.userRewardManager));
|
|
739
741
|
};
|
|
@@ -765,7 +767,7 @@ lstMap, strategyType, obligation, exposure) => {
|
|
|
765
767
|
? 0.99 // 1% buffer
|
|
766
768
|
: 0.999);
|
|
767
769
|
const liquidationThresholdUsd = _obligation.unhealthyBorrowValueUsd;
|
|
768
|
-
if (weightedBorrowsUsd.
|
|
770
|
+
if (weightedBorrowsUsd.lte(borrowLimitUsd))
|
|
769
771
|
return new bignumber_js_1.default(100);
|
|
770
772
|
return new bignumber_js_1.default(100).minus(new bignumber_js_1.default(weightedBorrowsUsd.minus(borrowLimitUsd))
|
|
771
773
|
.div(liquidationThresholdUsd.minus(borrowLimitUsd))
|
|
@@ -1003,7 +1005,7 @@ transaction) => __awaiter(void 0, void 0, void 0, function* () {
|
|
|
1003
1005
|
});
|
|
1004
1006
|
if (!routers)
|
|
1005
1007
|
throw new Error("No swap quote found");
|
|
1006
|
-
const slippagePercent =
|
|
1008
|
+
const slippagePercent = 1;
|
|
1007
1009
|
let stepBaseCoin;
|
|
1008
1010
|
try {
|
|
1009
1011
|
stepBaseCoin = yield cetusSdk.fixableRouterSwapV3({
|
|
@@ -1100,14 +1102,8 @@ transaction, dryRunTransaction) => __awaiter(void 0, void 0, void 0, function* (
|
|
|
1100
1102
|
var _a, _b, _c, _d, _e, _f, _g;
|
|
1101
1103
|
if (depositReserves.lst === undefined)
|
|
1102
1104
|
throw new Error("LST reserve not found");
|
|
1103
|
-
const
|
|
1104
|
-
|
|
1105
|
-
? new bignumber_js_1.default(0.02).div(borrowReserve.price) // $0.02 in borrow coinType (still well over E borrows, e.g. E SUI, or E wBTC)
|
|
1106
|
-
: borrowedAmountUsd.lt(1)
|
|
1107
|
-
? borrowedAmount.times(1.1) // 10% buffer
|
|
1108
|
-
: borrowedAmountUsd.lt(10)
|
|
1109
|
-
? borrowedAmount.times(1.01) // 1% buffer
|
|
1110
|
-
: borrowedAmount.times(1.001)) // 0.1% buffer
|
|
1105
|
+
const fullRepaymentAmount = new bignumber_js_1.default(0.25)
|
|
1106
|
+
.div(borrowReserve.price) // $0.25 in borrow coinType (more than E borrows, e.g. E SUI, or E wBTC)
|
|
1111
1107
|
.decimalPlaces(borrowReserve.token.decimals, bignumber_js_1.default.ROUND_DOWN);
|
|
1112
1108
|
console.log(`[unloopStrategyToExposure.fullyRepayBorrowsUsingLst] |`, JSON.stringify({
|
|
1113
1109
|
borrowedAmount: borrowedAmount.toFixed(20),
|
|
@@ -1242,15 +1238,7 @@ transaction, dryRunTransaction) => __awaiter(void 0, void 0, void 0, function* (
|
|
|
1242
1238
|
var _a, _b;
|
|
1243
1239
|
if (depositReserves.base === undefined)
|
|
1244
1240
|
throw new Error("Base reserve not found");
|
|
1245
|
-
const
|
|
1246
|
-
const fullRepaymentAmount = (borrowedAmountUsd.lt(0.02)
|
|
1247
|
-
? new bignumber_js_1.default(0.02).div(borrowReserve.price) // $0.02 in borrow coinType (still well over E borrows, e.g. E SUI, or E wBTC)
|
|
1248
|
-
: borrowedAmountUsd.lt(1)
|
|
1249
|
-
? borrowedAmount.times(1.1) // 10% buffer
|
|
1250
|
-
: borrowedAmountUsd.lt(10)
|
|
1251
|
-
? borrowedAmount.times(1.01) // 1% buffer
|
|
1252
|
-
: borrowedAmount.times(1.001)) // 0.1% buffer
|
|
1253
|
-
.decimalPlaces(borrowReserve.token.decimals, bignumber_js_1.default.ROUND_DOWN);
|
|
1241
|
+
const fullRepaymentAmount = new bignumber_js_1.default(0.25).div(borrowReserve.price); // $0.25 in borrow coinType (more than E borrows, e.g. E SUI, or E wBTC)
|
|
1254
1242
|
console.log(`[unloopStrategyToExposure.fullyRepayBorrowsUsingBase] |`, JSON.stringify({
|
|
1255
1243
|
borrowedAmount: borrowedAmount.toFixed(20),
|
|
1256
1244
|
fullRepaymentAmount: fullRepaymentAmount.toFixed(20),
|
|
@@ -1584,7 +1572,7 @@ transaction, dryRunTransaction) => __awaiter(void 0, void 0, void 0, function* (
|
|
|
1584
1572
|
});
|
|
1585
1573
|
if (!routers)
|
|
1586
1574
|
throw new Error("No swap quote found");
|
|
1587
|
-
const slippagePercent =
|
|
1575
|
+
const slippagePercent = 1;
|
|
1588
1576
|
let stepBorrowCoin;
|
|
1589
1577
|
try {
|
|
1590
1578
|
stepBorrowCoin = yield cetusSdk.fixableRouterSwapV3({
|
|
@@ -2023,7 +2011,7 @@ const strategyDepositAdjustWithdrawTx = (
|
|
|
2023
2011
|
reserveMap,
|
|
2024
2012
|
// Strategy
|
|
2025
2013
|
lstMap, strategyType, suiClient, suilendClient, cetusSdk, cetusPartnerId, _address, strategyOwnerCapId, obligationId, _deposits, _borrowedAmount, flashLoanBorrowedAmount, transaction, dryRunTransaction) => __awaiter(void 0, void 0, void 0, function* () {
|
|
2026
|
-
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l;
|
|
2014
|
+
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q;
|
|
2027
2015
|
const strategyInfo = strategyOwnerCap_1.STRATEGY_TYPE_INFO_MAP[strategyType];
|
|
2028
2016
|
const lst = strategyInfo.depositLstCoinType !== undefined
|
|
2029
2017
|
? lstMap[strategyInfo.depositLstCoinType]
|
|
@@ -2119,13 +2107,22 @@ lstMap, strategyType, suiClient, suilendClient, cetusSdk, cetusPartnerId, _addre
|
|
|
2119
2107
|
borrowedAmount = newBorrowedAmount;
|
|
2120
2108
|
transaction = newTransaction;
|
|
2121
2109
|
// 4) Repay flash loan + fee
|
|
2122
|
-
|
|
2123
|
-
|
|
2124
|
-
|
|
2110
|
+
const receiptDebts = transaction.moveCall({
|
|
2111
|
+
target: `${mmt_1.MMT_CONTRACT_PACKAGE_ID}::trade::flash_receipt_debts`,
|
|
2112
|
+
typeArguments: [],
|
|
2113
|
+
arguments: [receipt],
|
|
2114
|
+
});
|
|
2115
|
+
const dryRunResults = yield dryRunTransaction(transaction);
|
|
2116
|
+
const flashLoanRepayAmount = new bignumber_js_1.default(bcs_1.bcs
|
|
2117
|
+
.u64()
|
|
2118
|
+
.parse(new Uint8Array((_m = (_l = (_k = (_j = dryRunResults.results) === null || _j === void 0 ? void 0 : _j.find((r, index) => index === receiptDebts.Result)) === null || _k === void 0 ? void 0 : _k.returnValues) === null || _l === void 0 ? void 0 : _l[flashLoanObj.borrowA ? 0 : 1][0]) !== null && _m !== void 0 ? _m : [0])))
|
|
2119
|
+
.div(10 ** depositReserve.token.decimals)
|
|
2125
2120
|
.decimalPlaces(depositReserve.token.decimals, bignumber_js_1.default.ROUND_UP);
|
|
2126
|
-
|
|
2121
|
+
// 4.1) Withdraw additional + fee
|
|
2122
|
+
let withdrawnAmount = flashLoanRepayAmount;
|
|
2123
|
+
if (depositReserve.coinType === ((_o = depositReserves.lst) === null || _o === void 0 ? void 0 : _o.coinType))
|
|
2127
2124
|
withdrawnAmount = withdrawnAmount
|
|
2128
|
-
.div(1 - +((
|
|
2125
|
+
.div(1 - +((_p = lst === null || lst === void 0 ? void 0 : lst.redeemFeePercent) !== null && _p !== void 0 ? _p : 0) / 100) // Potential rounding issue (max 1 MIST)
|
|
2129
2126
|
.decimalPlaces(depositReserve.token.decimals, bignumber_js_1.default.ROUND_UP);
|
|
2130
2127
|
const { deposits: newDeposits2, borrowedAmount: newBorrowedAmount2, transaction: newTransaction2, withdrawnCoin, } = yield (0, exports.strategyWithdrawTx)(reserveMap, lstMap, strategyType, suiClient, suilendClient, cetusSdk, cetusPartnerId, _address, strategyOwnerCapId, obligationId, deposits, borrowedAmount, {
|
|
2131
2128
|
coinType: depositReserve.coinType,
|
|
@@ -2133,10 +2130,14 @@ lstMap, strategyType, suiClient, suilendClient, cetusSdk, cetusPartnerId, _addre
|
|
|
2133
2130
|
}, transaction, dryRunTransaction, true);
|
|
2134
2131
|
if (!withdrawnCoin)
|
|
2135
2132
|
throw new Error("Withdrawn coin not found");
|
|
2133
|
+
// 4.2) Update state
|
|
2134
|
+
deposits = newDeposits2;
|
|
2135
|
+
borrowedAmount = newBorrowedAmount2;
|
|
2136
|
+
transaction = newTransaction2;
|
|
2137
|
+
// 4.3) Repay flash loan
|
|
2136
2138
|
let flashLoanRepayCoin = withdrawnCoin;
|
|
2137
|
-
if (depositReserve.coinType === ((
|
|
2139
|
+
if (depositReserve.coinType === ((_q = depositReserves.lst) === null || _q === void 0 ? void 0 : _q.coinType))
|
|
2138
2140
|
flashLoanRepayCoin = lst.client.redeem(transaction, flashLoanRepayCoin);
|
|
2139
|
-
// 4.2) Repay flash loan
|
|
2140
2141
|
const flashLoanRepayBalance = transaction.moveCall({
|
|
2141
2142
|
target: "0x2::coin::into_balance",
|
|
2142
2143
|
typeArguments: [
|
|
@@ -2160,10 +2161,6 @@ lstMap, strategyType, suiClient, suilendClient, cetusSdk, cetusPartnerId, _addre
|
|
|
2160
2161
|
else {
|
|
2161
2162
|
throw new Error("Invalid flash loan provider");
|
|
2162
2163
|
}
|
|
2163
|
-
// 4.3) Update state
|
|
2164
|
-
deposits = newDeposits2;
|
|
2165
|
-
borrowedAmount = newBorrowedAmount2;
|
|
2166
|
-
transaction = newTransaction2;
|
|
2167
2164
|
return { deposits, borrowedAmount, transaction };
|
|
2168
2165
|
});
|
|
2169
2166
|
exports.strategyDepositAdjustWithdrawTx = strategyDepositAdjustWithdrawTx;
|