@suilend/sdk 1.1.2 → 1.1.3
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/{mainnet/_generated → _generated}/suilend/index.d.ts +2 -1
- package/{mainnet/_generated → _generated}/suilend/index.js +5 -1
- package/api/index.d.ts +1 -0
- package/{mainnet/utils.js → api/index.js} +1 -1
- package/client.d.ts +64 -0
- package/{core/client.js → client.js} +105 -98
- package/{core/constants.d.ts → constants.d.ts} +0 -4
- package/{core/constants.js → constants.js} +1 -6
- package/index.d.ts +7 -1
- package/index.js +7 -1
- package/package.json +1 -1
- package/{mainnet/parsers → parsers}/index.d.ts +1 -0
- package/{mainnet/parsers → parsers}/index.js +1 -0
- package/{core/parsers → parsers}/lendingMarket.d.ts +38 -37
- package/{core/parsers → parsers}/lendingMarket.js +14 -4
- package/{core/parsers → parsers}/obligation.d.ts +60 -60
- package/{core/parsers → parsers}/obligation.js +1 -1
- package/{mainnet/parsers → parsers}/rateLimiter.d.ts +10 -9
- package/{core/parsers → parsers}/rateLimiter.js +3 -3
- package/{core/parsers → parsers}/reserve.d.ts +47 -46
- package/{core/parsers → parsers}/reserve.js +32 -8
- package/types.d.ts +200 -0
- package/types.js +15 -0
- package/utils/simulate.js +316 -0
- package/core/client.d.ts +0 -117
- package/core/parsers/deps.d.ts +0 -15
- package/core/parsers/deps.js +0 -2
- package/core/parsers/rateLimiter.d.ts +0 -19
- package/core/types.d.ts +0 -882
- package/core/types.js +0 -132
- package/core/utils/simulate.d.ts +0 -56
- package/core/utils/simulate.js +0 -312
- package/mainnet/api/events.d.ts +0 -1
- package/mainnet/api/events.js +0 -17
- package/mainnet/client.d.ts +0 -18
- package/mainnet/client.js +0 -110
- package/mainnet/constants.d.ts +0 -3
- package/mainnet/constants.js +0 -20
- package/mainnet/index.d.ts +0 -6
- package/mainnet/index.js +0 -22
- package/mainnet/parsers/apiReserveAssetDataEvent.d.ts +0 -1
- package/mainnet/parsers/apiReserveAssetDataEvent.js +0 -17
- package/mainnet/parsers/lendingMarket.d.ts +0 -127
- package/mainnet/parsers/lendingMarket.js +0 -41
- package/mainnet/parsers/obligation.d.ts +0 -10
- package/mainnet/parsers/obligation.js +0 -30
- package/mainnet/parsers/rateLimiter.js +0 -32
- package/mainnet/parsers/reserve.d.ts +0 -166
- package/mainnet/parsers/reserve.js +0 -38
- package/mainnet/types.d.ts +0 -1
- package/mainnet/types.js +0 -17
- package/mainnet/utils/events.d.ts +0 -1
- package/mainnet/utils/events.js +0 -17
- package/mainnet/utils/simulate.js +0 -78
- package/mainnet/utils.d.ts +0 -1
- /package/{mainnet/_generated → _generated}/_dependencies/source/0x1/ascii/structs.d.ts +0 -0
- /package/{mainnet/_generated → _generated}/_dependencies/source/0x1/ascii/structs.js +0 -0
- /package/{mainnet/_generated → _generated}/_dependencies/source/0x1/index.d.ts +0 -0
- /package/{mainnet/_generated → _generated}/_dependencies/source/0x1/index.js +0 -0
- /package/{mainnet/_generated → _generated}/_dependencies/source/0x1/option/structs.d.ts +0 -0
- /package/{mainnet/_generated → _generated}/_dependencies/source/0x1/option/structs.js +0 -0
- /package/{mainnet/_generated → _generated}/_dependencies/source/0x1/type-name/structs.d.ts +0 -0
- /package/{mainnet/_generated → _generated}/_dependencies/source/0x1/type-name/structs.js +0 -0
- /package/{mainnet/_generated → _generated}/_dependencies/source/0x2/bag/structs.d.ts +0 -0
- /package/{mainnet/_generated → _generated}/_dependencies/source/0x2/bag/structs.js +0 -0
- /package/{mainnet/_generated → _generated}/_dependencies/source/0x2/balance/structs.d.ts +0 -0
- /package/{mainnet/_generated → _generated}/_dependencies/source/0x2/balance/structs.js +0 -0
- /package/{mainnet/_generated → _generated}/_dependencies/source/0x2/index.d.ts +0 -0
- /package/{mainnet/_generated → _generated}/_dependencies/source/0x2/index.js +0 -0
- /package/{mainnet/_generated → _generated}/_dependencies/source/0x2/object/structs.d.ts +0 -0
- /package/{mainnet/_generated → _generated}/_dependencies/source/0x2/object/structs.js +0 -0
- /package/{mainnet/_generated → _generated}/_dependencies/source/0x2/object-table/structs.d.ts +0 -0
- /package/{mainnet/_generated → _generated}/_dependencies/source/0x2/object-table/structs.js +0 -0
- /package/{mainnet/_generated → _generated}/_dependencies/source/0x8d97f1cd6ac663735be08d1d2b6d02a159e711586461306ce60a2b7a6a565a9e/index.d.ts +0 -0
- /package/{mainnet/_generated → _generated}/_dependencies/source/0x8d97f1cd6ac663735be08d1d2b6d02a159e711586461306ce60a2b7a6a565a9e/index.js +0 -0
- /package/{mainnet/_generated → _generated}/_dependencies/source/0x8d97f1cd6ac663735be08d1d2b6d02a159e711586461306ce60a2b7a6a565a9e/price-identifier/structs.d.ts +0 -0
- /package/{mainnet/_generated → _generated}/_dependencies/source/0x8d97f1cd6ac663735be08d1d2b6d02a159e711586461306ce60a2b7a6a565a9e/price-identifier/structs.js +0 -0
- /package/{mainnet/_generated → _generated}/_framework/reified.d.ts +0 -0
- /package/{mainnet/_generated → _generated}/_framework/reified.js +0 -0
- /package/{mainnet/_generated → _generated}/_framework/util.d.ts +0 -0
- /package/{mainnet/_generated → _generated}/_framework/util.js +0 -0
- /package/{mainnet/_generated → _generated}/_framework/vector.d.ts +0 -0
- /package/{mainnet/_generated → _generated}/_framework/vector.js +0 -0
- /package/{mainnet/_generated → _generated}/suilend/cell/structs.d.ts +0 -0
- /package/{mainnet/_generated → _generated}/suilend/cell/structs.js +0 -0
- /package/{mainnet/_generated → _generated}/suilend/decimal/structs.d.ts +0 -0
- /package/{mainnet/_generated → _generated}/suilend/decimal/structs.js +0 -0
- /package/{mainnet/_generated → _generated}/suilend/lending-market/functions.d.ts +0 -0
- /package/{mainnet/_generated → _generated}/suilend/lending-market/functions.js +0 -0
- /package/{mainnet/_generated → _generated}/suilend/lending-market/structs.d.ts +0 -0
- /package/{mainnet/_generated → _generated}/suilend/lending-market/structs.js +0 -0
- /package/{mainnet/_generated → _generated}/suilend/lending-market-registry/functions.d.ts +0 -0
- /package/{mainnet/_generated → _generated}/suilend/lending-market-registry/functions.js +0 -0
- /package/{mainnet/_generated → _generated}/suilend/liquidity-mining/structs.d.ts +0 -0
- /package/{mainnet/_generated → _generated}/suilend/liquidity-mining/structs.js +0 -0
- /package/{mainnet/_generated → _generated}/suilend/obligation/structs.d.ts +0 -0
- /package/{mainnet/_generated → _generated}/suilend/obligation/structs.js +0 -0
- /package/{mainnet/_generated → _generated}/suilend/rate-limiter/functions.d.ts +0 -0
- /package/{mainnet/_generated → _generated}/suilend/rate-limiter/functions.js +0 -0
- /package/{mainnet/_generated → _generated}/suilend/rate-limiter/structs.d.ts +0 -0
- /package/{mainnet/_generated → _generated}/suilend/rate-limiter/structs.js +0 -0
- /package/{mainnet/_generated → _generated}/suilend/reserve/structs.d.ts +0 -0
- /package/{mainnet/_generated → _generated}/suilend/reserve/structs.js +0 -0
- /package/{mainnet/_generated → _generated}/suilend/reserve-config/functions.d.ts +0 -0
- /package/{mainnet/_generated → _generated}/suilend/reserve-config/functions.js +0 -0
- /package/{mainnet/_generated → _generated}/suilend/reserve-config/structs.d.ts +0 -0
- /package/{mainnet/_generated → _generated}/suilend/reserve-config/structs.js +0 -0
- /package/{core/api → api}/events.d.ts +0 -0
- /package/{core/api → api}/events.js +0 -0
- /package/{core/parsers → parsers}/apiReserveAssetDataEvent.d.ts +0 -0
- /package/{core/parsers → parsers}/apiReserveAssetDataEvent.js +0 -0
- /package/{core/utils → utils}/events.d.ts +0 -0
- /package/{core/utils → utils}/events.js +0 -0
- /package/{mainnet/utils → utils}/index.d.ts +0 -0
- /package/{mainnet/utils → utils}/index.js +0 -0
- /package/{mainnet/utils → utils}/obligation.d.ts +0 -0
- /package/{mainnet/utils → utils}/obligation.js +0 -0
- /package/{mainnet/utils → utils}/simulate.d.ts +0 -0
- /package/{core/utils.d.ts → utils.d.ts} +0 -0
- /package/{core/utils.js → utils.js} +0 -0
|
@@ -1,3 +1,4 @@
|
|
|
1
1
|
export declare const PACKAGE_ID = "0xf95b06141ed4a174f239417323bde3f209b972f5930d8521ea38a52aff3a6ddf";
|
|
2
|
-
export declare
|
|
2
|
+
export declare var PUBLISHED_AT: string;
|
|
3
|
+
export declare function setPublishedAt(publishedAt: string): void;
|
|
3
4
|
export declare const PKG_V1 = "0xf95b06141ed4a174f239417323bde3f209b972f5930d8521ea38a52aff3a6ddf";
|
|
@@ -1,6 +1,10 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.PKG_V1 = exports.PUBLISHED_AT = exports.PACKAGE_ID = void 0;
|
|
3
|
+
exports.PKG_V1 = exports.setPublishedAt = exports.PUBLISHED_AT = exports.PACKAGE_ID = void 0;
|
|
4
4
|
exports.PACKAGE_ID = "0xf95b06141ed4a174f239417323bde3f209b972f5930d8521ea38a52aff3a6ddf";
|
|
5
5
|
exports.PUBLISHED_AT = "0xa5239cfdb84856fa466b7cec4da42954fc9901b2a48dd5320d670a1b21028207";
|
|
6
|
+
function setPublishedAt(publishedAt) {
|
|
7
|
+
exports.PUBLISHED_AT = publishedAt;
|
|
8
|
+
}
|
|
9
|
+
exports.setPublishedAt = setPublishedAt;
|
|
6
10
|
exports.PKG_V1 = "0xf95b06141ed4a174f239417323bde3f209b972f5930d8521ea38a52aff3a6ddf";
|
package/api/index.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from "./events";
|
|
@@ -14,4 +14,4 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
14
14
|
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
15
|
};
|
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
-
__exportStar(require("
|
|
17
|
+
__exportStar(require("./events"), exports);
|
package/client.d.ts
ADDED
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
import { SuiClient } from "@mysten/sui/client";
|
|
2
|
+
import { Transaction, TransactionObjectInput } from "@mysten/sui/transactions";
|
|
3
|
+
import { SuiPriceServiceConnection, SuiPythClient } from "@pythnetwork/pyth-sui-js";
|
|
4
|
+
import { LendingMarket, ObligationOwnerCap } from "./_generated/suilend/lending-market/structs";
|
|
5
|
+
import { Obligation } from "./_generated/suilend/obligation/structs";
|
|
6
|
+
import { NewConfigArgs as CreateRateLimiterConfigArgs } from "./_generated/suilend/rate-limiter/functions";
|
|
7
|
+
import { CreateReserveConfigArgs } from "./_generated/suilend/reserve-config/functions";
|
|
8
|
+
import { Side } from "./types";
|
|
9
|
+
export declare const LENDING_MARKET_ID = "0x84030d26d85eaa7035084a057f2f11f701b7e2e4eda87551becbc7c97505ece1";
|
|
10
|
+
export declare const LENDING_MARKET_TYPE = "0xf95b06141ed4a174f239417323bde3f209b972f5930d8521ea38a52aff3a6ddf::suilend::MAIN_POOL";
|
|
11
|
+
export declare class SuilendClient {
|
|
12
|
+
lendingMarket: LendingMarket<string>;
|
|
13
|
+
client: SuiClient;
|
|
14
|
+
pythClient: SuiPythClient;
|
|
15
|
+
pythConnection: SuiPriceServiceConnection;
|
|
16
|
+
constructor(lendingMarket: LendingMarket<string>, client: SuiClient);
|
|
17
|
+
static initialize(lendingMarketId: string, lendingMarketType: string, client: SuiClient): Promise<SuilendClient>;
|
|
18
|
+
static initializeWithLendingMarket(lendingMarket: LendingMarket<string>, client: SuiClient): Promise<SuilendClient>;
|
|
19
|
+
static hasBetaPass(ownerId: string, client: SuiClient): Promise<boolean>;
|
|
20
|
+
static createNewLendingMarket(registryId: string, lendingMarketType: string, transaction: Transaction): Promise<{
|
|
21
|
+
$kind: "NestedResult";
|
|
22
|
+
NestedResult: [number, number];
|
|
23
|
+
}>;
|
|
24
|
+
static getObligationOwnerCaps(ownerId: string, lendingMarketTypeArgs: string[], client: SuiClient): Promise<ObligationOwnerCap<string>[]>;
|
|
25
|
+
static getObligation(obligationId: string, lendingMarketTypeArgs: string[], client: SuiClient): Promise<Obligation<string>>;
|
|
26
|
+
getObligation(obligationId: string): Promise<Obligation<string>>;
|
|
27
|
+
static getLendingMarketOwnerCapId(ownerId: string, lendingMarketTypeArgs: string[], client: SuiClient): Promise<string | null>;
|
|
28
|
+
getLendingMarketOwnerCapId(ownerId: string): Promise<string | null>;
|
|
29
|
+
createReserve(lendingMarketOwnerCapId: string, transaction: Transaction, pythPriceId: string, coinType: string, createReserveConfigArgs: CreateReserveConfigArgs): Promise<import("@mysten/sui/transactions").TransactionResult>;
|
|
30
|
+
addReward(ownerId: string, lendingMarketOwnerCapId: string, reserveArrayIndex: bigint, isDepositReward: boolean, rewardCoinType: string, rewardValue: string, startTimeMs: bigint, endTimeMs: bigint, transaction: Transaction): Promise<import("@mysten/sui/transactions").TransactionResult>;
|
|
31
|
+
cancelReward(lendingMarketOwnerCapId: string, reserveArrayIndex: bigint, isDepositReward: boolean, rewardIndex: bigint, rewardCoinType: string, transaction: Transaction): import("@mysten/sui/transactions").TransactionResult;
|
|
32
|
+
closeReward(lendingMarketOwnerCapId: string, reserveArrayIndex: bigint, isDepositReward: boolean, rewardIndex: bigint, rewardCoinType: string, transaction: Transaction): import("@mysten/sui/transactions").TransactionResult;
|
|
33
|
+
claimReward(obligationOwnerCapId: string, reserveArrayIndex: bigint, rewardIndex: bigint, rewardType: string, side: Side, transaction: Transaction): import("@mysten/sui/transactions").TransactionResult;
|
|
34
|
+
claimRewardsAndDeposit(obligationId: string, rewardReserveArrayIndex: bigint, rewardIndex: bigint, rewardType: string, side: Side, depositReserveArrayIndex: bigint, transaction: Transaction): import("@mysten/sui/transactions").TransactionResult;
|
|
35
|
+
claimRewardsToObligation(ownerId: string, rewards: Array<{
|
|
36
|
+
obligationOwnerCapId: string;
|
|
37
|
+
reserveArrayIndex: bigint;
|
|
38
|
+
rewardIndex: bigint;
|
|
39
|
+
rewardType: string;
|
|
40
|
+
side: Side;
|
|
41
|
+
}>, transaction: Transaction): Promise<void>;
|
|
42
|
+
findReserveArrayIndex(coinType: string): bigint;
|
|
43
|
+
updateReserveConfig(ownerId: string, lendingMarketOwnerCapId: string, transaction: Transaction, coinType: string, createReserveConfigArgs: CreateReserveConfigArgs): Promise<import("@mysten/sui/transactions").TransactionResult>;
|
|
44
|
+
updateRateLimiterConfig(lendingMarketOwnerCapId: string, transaction: Transaction, newRateLimiterConfigArgs: CreateRateLimiterConfigArgs): Promise<import("@mysten/sui/transactions").TransactionResult>;
|
|
45
|
+
changeReservePriceFeed(lendingMarketOwnerCapId: string, coinType: string, pythPriceId: string, transaction: Transaction): Promise<import("@mysten/sui/transactions").TransactionResult>;
|
|
46
|
+
createObligation(transaction: Transaction): import("@mysten/sui/transactions").TransactionResult;
|
|
47
|
+
refreshAll(transaction: Transaction, obligation: Obligation<string>, extraReserveArrayIndex?: bigint): Promise<void>;
|
|
48
|
+
refreshReservePrices(transaction: Transaction, priceInfoObjectId: string, reserveArrayIndex: bigint): Promise<void>;
|
|
49
|
+
deposit(sendCoin: TransactionObjectInput, coinType: string, obligationOwnerCap: TransactionObjectInput, transaction: Transaction): Promise<void>;
|
|
50
|
+
depositCoin(ownerId: string, sendCoin: TransactionObjectInput, coinType: string, transaction: Transaction, obligationOwnerCapId?: string): Promise<void>;
|
|
51
|
+
depositIntoObligation(ownerId: string, coinType: string, value: string, transaction: Transaction, obligationOwnerCapId?: string): Promise<void>;
|
|
52
|
+
depositLiquidityAndGetCTokens(ownerId: string, coinType: string, value: string, transaction: Transaction): Promise<void>;
|
|
53
|
+
withdraw(obligationOwnerCapId: string, obligationId: string, coinType: string, value: string, transaction: Transaction): Promise<import("@mysten/sui/transactions").TransactionResult>;
|
|
54
|
+
withdrawFromObligation(ownerId: string, obligationOwnerCapId: string, obligationId: string, coinType: string, value: string, transaction: Transaction): Promise<void>;
|
|
55
|
+
borrow(obligationOwnerCapId: string, obligationId: string, coinType: string, value: string, transaction: Transaction): Promise<import("@mysten/sui/transactions").TransactionResult>;
|
|
56
|
+
borrowFromObligation(ownerId: string, obligationOwnerCapId: string, obligationId: string, coinType: string, value: string, transaction: Transaction): Promise<void>;
|
|
57
|
+
repay(obligationId: string, coinType: string, coin: TransactionObjectInput, transaction: Transaction): import("@mysten/sui/transactions").TransactionResult;
|
|
58
|
+
repayIntoObligation(ownerId: string, obligationId: string, coinType: string, value: string, transaction: Transaction): Promise<import("@mysten/sui/transactions").TransactionResult>;
|
|
59
|
+
liquidateAndRedeem(transaction: Transaction, obligation: Obligation<string>, repayCoinType: string, withdrawCoinType: string, repayCoinId: TransactionObjectInput): Promise<import("@mysten/sui/transactions").TransactionResult>;
|
|
60
|
+
liquidate(transaction: Transaction, obligation: Obligation<string>, repayCoinType: string, withdrawCoinType: string, repayCoinId: TransactionObjectInput): Promise<import("@mysten/sui/transactions").TransactionResult>;
|
|
61
|
+
migrate(transaction: Transaction, lendingMarketOwnerCapId: string): import("@mysten/sui/transactions").TransactionResult;
|
|
62
|
+
claimFees(transaction: Transaction, coinType: string): import("@mysten/sui/transactions").TransactionResult;
|
|
63
|
+
redeemCtokensAndWithdrawLiquidity(ownerId: string, ctokenCoinTypes: string[], transaction: Transaction): Promise<void>;
|
|
64
|
+
}
|
|
@@ -9,60 +9,57 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
9
9
|
});
|
|
10
10
|
};
|
|
11
11
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
-
exports.SuilendClient = void 0;
|
|
12
|
+
exports.SuilendClient = exports.LENDING_MARKET_TYPE = exports.LENDING_MARKET_ID = void 0;
|
|
13
|
+
const transactions_1 = require("@mysten/sui/transactions");
|
|
13
14
|
const utils_1 = require("@mysten/sui/utils");
|
|
14
15
|
const pyth_sui_js_1 = require("@pythnetwork/pyth-sui-js");
|
|
16
|
+
const reified_1 = require("./_generated/_framework/reified");
|
|
17
|
+
const suilend_1 = require("./_generated/suilend");
|
|
18
|
+
const suilend_2 = require("./_generated/suilend");
|
|
19
|
+
const functions_1 = require("./_generated/suilend/lending-market/functions");
|
|
20
|
+
const structs_1 = require("./_generated/suilend/lending-market/structs");
|
|
21
|
+
const functions_2 = require("./_generated/suilend/lending-market-registry/functions");
|
|
22
|
+
const structs_2 = require("./_generated/suilend/obligation/structs");
|
|
23
|
+
const functions_3 = require("./_generated/suilend/rate-limiter/functions");
|
|
24
|
+
const functions_4 = require("./_generated/suilend/reserve-config/functions");
|
|
15
25
|
const types_1 = require("./types");
|
|
16
26
|
const utils_2 = require("./utils");
|
|
17
27
|
const WORMHOLE_STATE_ID = "0xaeab97f96cf9877fee2883315d459552b2b921edc16d7ceac6eab944dd88919c";
|
|
18
28
|
const PYTH_STATE_ID = "0x1f9310238ee9298fb703c3419030b35b22bb1cc37113e3bb5007c99aec79e5b8";
|
|
29
|
+
const SUILEND_UPGRADE_CAP_ID = "0x3d4ef1859c3ee9fc72858f588b56a09da5466e64f8cc4e90a7b3b909fba8a7ae";
|
|
30
|
+
function getLatestPackageId(client, upgradeCapId) {
|
|
31
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
32
|
+
var _a;
|
|
33
|
+
const object = yield client.getObject({
|
|
34
|
+
id: upgradeCapId,
|
|
35
|
+
options: {
|
|
36
|
+
showContent: true,
|
|
37
|
+
},
|
|
38
|
+
});
|
|
39
|
+
return ((_a = object.data) === null || _a === void 0 ? void 0 : _a.content).fields.package;
|
|
40
|
+
});
|
|
41
|
+
}
|
|
19
42
|
const SUI_COINTYPE = "0x2::sui::SUI";
|
|
43
|
+
exports.LENDING_MARKET_ID = "0x84030d26d85eaa7035084a057f2f11f701b7e2e4eda87551becbc7c97505ece1";
|
|
44
|
+
exports.LENDING_MARKET_TYPE = "0xf95b06141ed4a174f239417323bde3f209b972f5930d8521ea38a52aff3a6ddf::suilend::MAIN_POOL";
|
|
20
45
|
class SuilendClient {
|
|
21
|
-
constructor(lendingMarket, client
|
|
46
|
+
constructor(lendingMarket, client) {
|
|
22
47
|
this.lendingMarket = lendingMarket;
|
|
23
48
|
this.client = client;
|
|
24
49
|
this.pythClient = new pyth_sui_js_1.SuiPythClient(client, PYTH_STATE_ID, WORMHOLE_STATE_ID);
|
|
25
50
|
this.pythConnection = new pyth_sui_js_1.SuiPriceServiceConnection("https://hermes.pyth.network");
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
this.PUBLISHED_AT = PUBLISHED_AT;
|
|
29
|
-
this.LendingMarket = LendingMarket;
|
|
30
|
-
this.Obligation = Obligation;
|
|
31
|
-
this.ObligationOwnerCap = ObligationOwnerCap;
|
|
32
|
-
this.createLendingMarketFunction = createLendingMarket;
|
|
33
|
-
this.createReserveConfigFunction = createReserveConfig;
|
|
34
|
-
this.updateReserveConfigFunction = updateReserveConfig;
|
|
35
|
-
this.addReserveFunction = addReserve;
|
|
36
|
-
this.addPoolRewardFunction = addPoolReward;
|
|
37
|
-
this.cancelPoolRewardFunction = cancelPoolReward;
|
|
38
|
-
this.closePoolRewardFunction = closePoolReward;
|
|
39
|
-
this.claimRewardsFunction = claimRewards;
|
|
40
|
-
this.claimRewardsAndDepositFunction = claimRewardsAndDeposit;
|
|
41
|
-
this.createRateLimiterConfigFunction = createRateLimiterConfig;
|
|
42
|
-
this.updateRateLimiterConfigFunction = updateRateLimiterConfig;
|
|
43
|
-
this.refreshReservePriceFunction = refreshReservePrice;
|
|
44
|
-
this.depositLiquidityAndMintCtokensFunction =
|
|
45
|
-
depositLiquidityAndMintCtokens;
|
|
46
|
-
this.depositCtokensIntoObligationFunction = depositCtokensIntoObligation;
|
|
47
|
-
this.withdrawCtokensFunction = withdrawCtokens;
|
|
48
|
-
this.borrowFunction = borrow;
|
|
49
|
-
this.repayFunction = repay;
|
|
50
|
-
this.liquidateFunction = liquidate;
|
|
51
|
-
this.migrateFunction = migrate;
|
|
52
|
-
this.claimFeesFunction = claimFees;
|
|
53
|
-
this.redeemCtokensAndWithdrawLiquidityFunction =
|
|
54
|
-
redeemCtokensAndWithdrawLiquidity;
|
|
55
|
-
this.changeReservePriceFeedFunction = changeReservePriceFeed;
|
|
56
|
-
}
|
|
57
|
-
static initialize(lendingMarketId, lendingMarketType, client, deps) {
|
|
51
|
+
}
|
|
52
|
+
static initialize(lendingMarketId, lendingMarketType, client) {
|
|
58
53
|
return __awaiter(this, void 0, void 0, function* () {
|
|
59
|
-
const lendingMarket = yield
|
|
60
|
-
|
|
54
|
+
const lendingMarket = yield structs_1.LendingMarket.fetch(client, (0, reified_1.phantom)(lendingMarketType), lendingMarketId);
|
|
55
|
+
const latestPackageId = yield getLatestPackageId(client, SUILEND_UPGRADE_CAP_ID);
|
|
56
|
+
(0, suilend_1.setPublishedAt)(latestPackageId);
|
|
57
|
+
return new SuilendClient(lendingMarket, client);
|
|
61
58
|
});
|
|
62
59
|
}
|
|
63
|
-
static initializeWithLendingMarket(lendingMarket, client
|
|
60
|
+
static initializeWithLendingMarket(lendingMarket, client) {
|
|
64
61
|
return __awaiter(this, void 0, void 0, function* () {
|
|
65
|
-
return new SuilendClient(lendingMarket, client
|
|
62
|
+
return new SuilendClient(lendingMarket, client);
|
|
66
63
|
});
|
|
67
64
|
}
|
|
68
65
|
static hasBetaPass(ownerId, client) {
|
|
@@ -76,23 +73,23 @@ class SuilendClient {
|
|
|
76
73
|
return objs.data.length > 0;
|
|
77
74
|
});
|
|
78
75
|
}
|
|
79
|
-
static createNewLendingMarket(
|
|
80
|
-
return __awaiter(this,
|
|
81
|
-
const [ownerCap, lendingMarket] = createLendingMarket(transaction, lendingMarketType, transaction.object(registryId));
|
|
76
|
+
static createNewLendingMarket(registryId, lendingMarketType, transaction) {
|
|
77
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
78
|
+
const [ownerCap, lendingMarket] = (0, functions_2.createLendingMarket)(transaction, lendingMarketType, transaction.object(registryId));
|
|
82
79
|
transaction.moveCall({
|
|
83
80
|
target: `0x2::transfer::public_share_object`,
|
|
84
|
-
typeArguments: [`${LendingMarket.$typeName}<${lendingMarketType}>}`],
|
|
81
|
+
typeArguments: [`${structs_1.LendingMarket.$typeName}<${lendingMarketType}>}`],
|
|
85
82
|
arguments: [lendingMarket],
|
|
86
83
|
});
|
|
87
84
|
return ownerCap;
|
|
88
85
|
});
|
|
89
86
|
}
|
|
90
|
-
static getObligationOwnerCaps(
|
|
91
|
-
return __awaiter(this,
|
|
87
|
+
static getObligationOwnerCaps(ownerId, lendingMarketTypeArgs, client) {
|
|
88
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
92
89
|
const objs = yield client.getOwnedObjects({
|
|
93
90
|
owner: ownerId,
|
|
94
91
|
filter: {
|
|
95
|
-
StructType: `${PACKAGE_ID}::lending_market::ObligationOwnerCap<${lendingMarketTypeArgs[0]}>`,
|
|
92
|
+
StructType: `${suilend_2.PACKAGE_ID}::lending_market::ObligationOwnerCap<${lendingMarketTypeArgs[0]}>`,
|
|
96
93
|
},
|
|
97
94
|
});
|
|
98
95
|
if (objs.data.length > 0) {
|
|
@@ -108,7 +105,7 @@ class SuilendClient {
|
|
|
108
105
|
var _a, _b, _c, _d;
|
|
109
106
|
if (((_b = (_a = obj.data) === null || _a === void 0 ? void 0 : _a.bcs) === null || _b === void 0 ? void 0 : _b.dataType) !== "moveObject")
|
|
110
107
|
throw new Error("Error: invalid data type");
|
|
111
|
-
obligationOwnerCaps.push(ObligationOwnerCap.fromBcs(phantom(lendingMarketTypeArgs[0]), (0, utils_1.fromBase64)((_d = (_c = obj.data) === null || _c === void 0 ? void 0 : _c.bcs) === null || _d === void 0 ? void 0 : _d.bcsBytes)));
|
|
108
|
+
obligationOwnerCaps.push(structs_1.ObligationOwnerCap.fromBcs((0, reified_1.phantom)(lendingMarketTypeArgs[0]), (0, utils_1.fromBase64)((_d = (_c = obj.data) === null || _c === void 0 ? void 0 : _c.bcs) === null || _d === void 0 ? void 0 : _d.bcsBytes)));
|
|
112
109
|
});
|
|
113
110
|
return obligationOwnerCaps;
|
|
114
111
|
}
|
|
@@ -117,46 +114,46 @@ class SuilendClient {
|
|
|
117
114
|
}
|
|
118
115
|
});
|
|
119
116
|
}
|
|
120
|
-
static getObligation(
|
|
121
|
-
return __awaiter(this,
|
|
122
|
-
var
|
|
117
|
+
static getObligation(obligationId, lendingMarketTypeArgs, client) {
|
|
118
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
119
|
+
var _a, _b;
|
|
123
120
|
const obligationData = yield client.getObject({
|
|
124
121
|
id: obligationId,
|
|
125
122
|
options: { showBcs: true },
|
|
126
123
|
});
|
|
127
|
-
if (((
|
|
124
|
+
if (((_b = (_a = obligationData.data) === null || _a === void 0 ? void 0 : _a.bcs) === null || _b === void 0 ? void 0 : _b.dataType) !== "moveObject") {
|
|
128
125
|
throw new Error("Error: invalid data type");
|
|
129
126
|
}
|
|
130
|
-
const obligation = Obligation.fromBcs(phantom(lendingMarketTypeArgs[0]), (0, utils_1.fromBase64)(obligationData.data.bcs.bcsBytes));
|
|
127
|
+
const obligation = structs_2.Obligation.fromBcs((0, reified_1.phantom)(lendingMarketTypeArgs[0]), (0, utils_1.fromBase64)(obligationData.data.bcs.bcsBytes));
|
|
131
128
|
return obligation;
|
|
132
129
|
});
|
|
133
130
|
}
|
|
134
131
|
getObligation(obligationId) {
|
|
135
|
-
return SuilendClient.getObligation(obligationId, this.lendingMarket.$typeArgs, this.client
|
|
132
|
+
return SuilendClient.getObligation(obligationId, this.lendingMarket.$typeArgs, this.client);
|
|
136
133
|
}
|
|
137
|
-
static getLendingMarketOwnerCapId(
|
|
138
|
-
return __awaiter(this,
|
|
139
|
-
var
|
|
134
|
+
static getLendingMarketOwnerCapId(ownerId, lendingMarketTypeArgs, client) {
|
|
135
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
136
|
+
var _a;
|
|
140
137
|
const objs = yield client.getOwnedObjects({
|
|
141
138
|
owner: ownerId,
|
|
142
139
|
filter: {
|
|
143
|
-
StructType: `${PACKAGE_ID}::lending_market::LendingMarketOwnerCap<${lendingMarketTypeArgs[0]}>`,
|
|
140
|
+
StructType: `${suilend_2.PACKAGE_ID}::lending_market::LendingMarketOwnerCap<${lendingMarketTypeArgs[0]}>`,
|
|
144
141
|
},
|
|
145
142
|
});
|
|
146
143
|
if (objs.data.length > 0)
|
|
147
|
-
return (
|
|
144
|
+
return (_a = objs.data[0].data) === null || _a === void 0 ? void 0 : _a.objectId;
|
|
148
145
|
else
|
|
149
146
|
return null;
|
|
150
147
|
});
|
|
151
148
|
}
|
|
152
149
|
getLendingMarketOwnerCapId(ownerId) {
|
|
153
150
|
return __awaiter(this, void 0, void 0, function* () {
|
|
154
|
-
return SuilendClient.getLendingMarketOwnerCapId(ownerId, this.lendingMarket.$typeArgs, this.client
|
|
151
|
+
return SuilendClient.getLendingMarketOwnerCapId(ownerId, this.lendingMarket.$typeArgs, this.client);
|
|
155
152
|
});
|
|
156
153
|
}
|
|
157
154
|
createReserve(lendingMarketOwnerCapId, transaction, pythPriceId, coinType, createReserveConfigArgs) {
|
|
158
155
|
return __awaiter(this, void 0, void 0, function* () {
|
|
159
|
-
const [config] =
|
|
156
|
+
const [config] = (0, functions_4.createReserveConfig)(transaction, createReserveConfigArgs);
|
|
160
157
|
const priceUpdateData = yield this.pythConnection.getPriceFeedsUpdateData([
|
|
161
158
|
pythPriceId,
|
|
162
159
|
]);
|
|
@@ -167,7 +164,7 @@ class SuilendClient {
|
|
|
167
164
|
if (coin_metadata === null) {
|
|
168
165
|
throw new Error("Error: coin metadata not found");
|
|
169
166
|
}
|
|
170
|
-
return
|
|
167
|
+
return (0, functions_1.addReserve)(transaction, [this.lendingMarket.$typeArgs[0], coinType], {
|
|
171
168
|
lendingMarketOwnerCap: lendingMarketOwnerCapId,
|
|
172
169
|
lendingMarket: this.lendingMarket.id,
|
|
173
170
|
priceInfo: priceInfoObjectIds[0],
|
|
@@ -189,20 +186,20 @@ class SuilendClient {
|
|
|
189
186
|
transaction.mergeCoins(transaction.object(mergeCoin.coinObjectId), coins.map((c) => transaction.object(c.coinObjectId)).slice(1));
|
|
190
187
|
}
|
|
191
188
|
const [rewardCoin] = transaction.splitCoins(isSui ? transaction.gas : transaction.object(mergeCoin.coinObjectId), [rewardValue]);
|
|
192
|
-
return
|
|
193
|
-
lendingMarketOwnerCap: lendingMarketOwnerCapId,
|
|
194
|
-
lendingMarket: this.lendingMarket.id,
|
|
195
|
-
reserveArrayIndex,
|
|
196
|
-
isDepositReward,
|
|
197
|
-
rewards: rewardCoin,
|
|
198
|
-
startTimeMs,
|
|
199
|
-
endTimeMs,
|
|
200
|
-
clock: utils_1.SUI_CLOCK_OBJECT_ID,
|
|
189
|
+
return (0, functions_1.addPoolReward)(transaction, [this.lendingMarket.$typeArgs[0], rewardCoinType], {
|
|
190
|
+
lendingMarketOwnerCap: transaction.object(lendingMarketOwnerCapId),
|
|
191
|
+
lendingMarket: transaction.object(this.lendingMarket.id),
|
|
192
|
+
reserveArrayIndex: transaction.pure.u64(reserveArrayIndex),
|
|
193
|
+
isDepositReward: transaction.pure.bool(isDepositReward),
|
|
194
|
+
rewards: transaction.object(rewardCoin),
|
|
195
|
+
startTimeMs: transaction.pure.u64(startTimeMs),
|
|
196
|
+
endTimeMs: transaction.pure.u64(endTimeMs),
|
|
197
|
+
clock: transaction.object(utils_1.SUI_CLOCK_OBJECT_ID),
|
|
201
198
|
});
|
|
202
199
|
});
|
|
203
200
|
}
|
|
204
201
|
cancelReward(lendingMarketOwnerCapId, reserveArrayIndex, isDepositReward, rewardIndex, rewardCoinType, transaction) {
|
|
205
|
-
return
|
|
202
|
+
return (0, functions_1.cancelPoolReward)(transaction, [this.lendingMarket.$typeArgs[0], rewardCoinType], {
|
|
206
203
|
lendingMarketOwnerCap: lendingMarketOwnerCapId,
|
|
207
204
|
lendingMarket: this.lendingMarket.id,
|
|
208
205
|
reserveArrayIndex,
|
|
@@ -212,7 +209,7 @@ class SuilendClient {
|
|
|
212
209
|
});
|
|
213
210
|
}
|
|
214
211
|
closeReward(lendingMarketOwnerCapId, reserveArrayIndex, isDepositReward, rewardIndex, rewardCoinType, transaction) {
|
|
215
|
-
return
|
|
212
|
+
return (0, functions_1.closePoolReward)(transaction, [this.lendingMarket.$typeArgs[0], rewardCoinType], {
|
|
216
213
|
lendingMarketOwnerCap: lendingMarketOwnerCapId,
|
|
217
214
|
lendingMarket: this.lendingMarket.id,
|
|
218
215
|
reserveArrayIndex,
|
|
@@ -222,7 +219,7 @@ class SuilendClient {
|
|
|
222
219
|
});
|
|
223
220
|
}
|
|
224
221
|
claimReward(obligationOwnerCapId, reserveArrayIndex, rewardIndex, rewardType, side, transaction) {
|
|
225
|
-
return
|
|
222
|
+
return (0, functions_1.claimRewards)(transaction, [this.lendingMarket.$typeArgs[0], rewardType], {
|
|
226
223
|
lendingMarket: transaction.object(this.lendingMarket.id),
|
|
227
224
|
cap: transaction.object(obligationOwnerCapId),
|
|
228
225
|
clock: utils_1.SUI_CLOCK_OBJECT_ID,
|
|
@@ -232,7 +229,7 @@ class SuilendClient {
|
|
|
232
229
|
});
|
|
233
230
|
}
|
|
234
231
|
claimRewardsAndDeposit(obligationId, rewardReserveArrayIndex, rewardIndex, rewardType, side, depositReserveArrayIndex, transaction) {
|
|
235
|
-
return
|
|
232
|
+
return (0, functions_1.claimRewardsAndDeposit)(transaction, [this.lendingMarket.$typeArgs[0], rewardType], {
|
|
236
233
|
lendingMarket: transaction.object(this.lendingMarket.id),
|
|
237
234
|
obligationId,
|
|
238
235
|
clock: transaction.object(utils_1.SUI_CLOCK_OBJECT_ID),
|
|
@@ -267,8 +264,8 @@ class SuilendClient {
|
|
|
267
264
|
}
|
|
268
265
|
updateReserveConfig(ownerId, lendingMarketOwnerCapId, transaction, coinType, createReserveConfigArgs) {
|
|
269
266
|
return __awaiter(this, void 0, void 0, function* () {
|
|
270
|
-
const [config] =
|
|
271
|
-
return
|
|
267
|
+
const [config] = (0, functions_4.createReserveConfig)(transaction, createReserveConfigArgs);
|
|
268
|
+
return (0, functions_1.updateReserveConfig)(transaction, [...this.lendingMarket.$typeArgs, coinType], {
|
|
272
269
|
lendingMarketOwnerCap: lendingMarketOwnerCapId,
|
|
273
270
|
lendingMarket: this.lendingMarket.id,
|
|
274
271
|
reserveArrayIndex: this.findReserveArrayIndex(coinType),
|
|
@@ -278,8 +275,8 @@ class SuilendClient {
|
|
|
278
275
|
}
|
|
279
276
|
updateRateLimiterConfig(lendingMarketOwnerCapId, transaction, newRateLimiterConfigArgs) {
|
|
280
277
|
return __awaiter(this, void 0, void 0, function* () {
|
|
281
|
-
const [config] =
|
|
282
|
-
return
|
|
278
|
+
const [config] = (0, functions_3.newConfig)(transaction, newRateLimiterConfigArgs);
|
|
279
|
+
return (0, functions_1.updateRateLimiterConfig)(transaction, this.lendingMarket.$typeArgs[0], {
|
|
283
280
|
lendingMarketOwnerCap: lendingMarketOwnerCapId,
|
|
284
281
|
lendingMarket: this.lendingMarket.id,
|
|
285
282
|
clock: utils_1.SUI_CLOCK_OBJECT_ID,
|
|
@@ -293,7 +290,7 @@ class SuilendClient {
|
|
|
293
290
|
pythPriceId,
|
|
294
291
|
]);
|
|
295
292
|
const priceInfoObjectIds = yield this.pythClient.updatePriceFeeds(transaction, priceUpdateData, [pythPriceId]);
|
|
296
|
-
return
|
|
293
|
+
return (0, functions_1.changeReservePriceFeed)(transaction, [this.lendingMarket.$typeArgs[0], coinType], {
|
|
297
294
|
lendingMarketOwnerCap: lendingMarketOwnerCapId,
|
|
298
295
|
lendingMarket: this.lendingMarket.id,
|
|
299
296
|
reserveArrayIndex: this.findReserveArrayIndex(coinType),
|
|
@@ -304,7 +301,7 @@ class SuilendClient {
|
|
|
304
301
|
}
|
|
305
302
|
createObligation(transaction) {
|
|
306
303
|
return transaction.moveCall({
|
|
307
|
-
target: `${
|
|
304
|
+
target: `${suilend_2.PUBLISHED_AT}::lending_market::create_obligation`,
|
|
308
305
|
arguments: [transaction.object(this.lendingMarket.id)],
|
|
309
306
|
typeArguments: this.lendingMarket.$typeArgs,
|
|
310
307
|
});
|
|
@@ -313,23 +310,33 @@ class SuilendClient {
|
|
|
313
310
|
return __awaiter(this, void 0, void 0, function* () {
|
|
314
311
|
const reserveArrayIndexToPriceId = new Map();
|
|
315
312
|
obligation.deposits.forEach((deposit) => {
|
|
316
|
-
const reserve = this.lendingMarket.reserves[deposit.reserveArrayIndex];
|
|
313
|
+
const reserve = this.lendingMarket.reserves[Number(deposit.reserveArrayIndex)];
|
|
317
314
|
reserveArrayIndexToPriceId.set(deposit.reserveArrayIndex, (0, utils_1.toHex)(new Uint8Array(reserve.priceIdentifier.bytes)));
|
|
318
315
|
});
|
|
319
316
|
obligation.borrows.forEach((borrow) => {
|
|
320
|
-
const reserve = this.lendingMarket.reserves[borrow.reserveArrayIndex];
|
|
317
|
+
const reserve = this.lendingMarket.reserves[Number(borrow.reserveArrayIndex)];
|
|
321
318
|
reserveArrayIndexToPriceId.set(borrow.reserveArrayIndex, (0, utils_1.toHex)(new Uint8Array(reserve.priceIdentifier.bytes)));
|
|
322
319
|
});
|
|
323
320
|
if (extraReserveArrayIndex != undefined &&
|
|
324
321
|
extraReserveArrayIndex >= 0 &&
|
|
325
322
|
extraReserveArrayIndex < this.lendingMarket.reserves.length) {
|
|
326
|
-
const reserve = this.lendingMarket.reserves[extraReserveArrayIndex];
|
|
323
|
+
const reserve = this.lendingMarket.reserves[Number(extraReserveArrayIndex)];
|
|
327
324
|
reserveArrayIndexToPriceId.set(extraReserveArrayIndex, (0, utils_1.toHex)(new Uint8Array(reserve.priceIdentifier.bytes)));
|
|
328
325
|
}
|
|
329
326
|
const tuples = Array.from(reserveArrayIndexToPriceId.entries()).sort();
|
|
330
327
|
const priceIds = Array.from(tuples.map((tuple) => tuple[1]));
|
|
331
328
|
const priceUpdateData = yield this.pythConnection.getPriceFeedsUpdateData(priceIds);
|
|
332
|
-
const
|
|
329
|
+
const numUniqueAssets = obligation.deposits.length +
|
|
330
|
+
obligation.borrows.length +
|
|
331
|
+
(extraReserveArrayIndex != null ? 1 : 0);
|
|
332
|
+
let priceInfoObjectIds = [];
|
|
333
|
+
if (numUniqueAssets >= 3) {
|
|
334
|
+
const tx = new transactions_1.Transaction(); // hack
|
|
335
|
+
priceInfoObjectIds = yield this.pythClient.updatePriceFeeds(tx, priceUpdateData, priceIds);
|
|
336
|
+
}
|
|
337
|
+
else {
|
|
338
|
+
priceInfoObjectIds = yield this.pythClient.updatePriceFeeds(transaction, priceUpdateData, priceIds);
|
|
339
|
+
}
|
|
333
340
|
for (let i = 0; i < tuples.length; i++) {
|
|
334
341
|
this.refreshReservePrices(transaction, priceInfoObjectIds[i], tuples[i][0]);
|
|
335
342
|
}
|
|
@@ -340,7 +347,7 @@ class SuilendClient {
|
|
|
340
347
|
if (priceInfoObjectId == null) {
|
|
341
348
|
return;
|
|
342
349
|
}
|
|
343
|
-
|
|
350
|
+
(0, functions_1.refreshReservePrice)(transaction, this.lendingMarket.$typeArgs[0], {
|
|
344
351
|
lendingMarket: this.lendingMarket.id,
|
|
345
352
|
reserveArrayIndex,
|
|
346
353
|
clock: utils_1.SUI_CLOCK_OBJECT_ID,
|
|
@@ -350,13 +357,13 @@ class SuilendClient {
|
|
|
350
357
|
}
|
|
351
358
|
deposit(sendCoin, coinType, obligationOwnerCap, transaction) {
|
|
352
359
|
return __awaiter(this, void 0, void 0, function* () {
|
|
353
|
-
const [ctokens] =
|
|
360
|
+
const [ctokens] = (0, functions_1.depositLiquidityAndMintCtokens)(transaction, [this.lendingMarket.$typeArgs[0], coinType], {
|
|
354
361
|
lendingMarket: this.lendingMarket.id,
|
|
355
362
|
reserveArrayIndex: this.findReserveArrayIndex(coinType),
|
|
356
363
|
clock: utils_1.SUI_CLOCK_OBJECT_ID,
|
|
357
364
|
deposit: sendCoin,
|
|
358
365
|
});
|
|
359
|
-
|
|
366
|
+
(0, functions_1.depositCtokensIntoObligation)(transaction, [this.lendingMarket.$typeArgs[0], coinType], {
|
|
360
367
|
lendingMarket: this.lendingMarket.id,
|
|
361
368
|
reserveArrayIndex: this.findReserveArrayIndex(coinType),
|
|
362
369
|
obligationOwnerCap,
|
|
@@ -404,7 +411,7 @@ class SuilendClient {
|
|
|
404
411
|
transaction.mergeCoins(transaction.object(mergeCoin.coinObjectId), coins.map((c) => transaction.object(c.coinObjectId)).slice(1));
|
|
405
412
|
}
|
|
406
413
|
const [sendCoin] = transaction.splitCoins(isSui ? transaction.gas : transaction.object(mergeCoin.coinObjectId), [value]);
|
|
407
|
-
const [ctokens] =
|
|
414
|
+
const [ctokens] = (0, functions_1.depositLiquidityAndMintCtokens)(transaction, [this.lendingMarket.$typeArgs[0], coinType], {
|
|
408
415
|
lendingMarket: this.lendingMarket.id,
|
|
409
416
|
reserveArrayIndex: this.findReserveArrayIndex(coinType),
|
|
410
417
|
clock: utils_1.SUI_CLOCK_OBJECT_ID,
|
|
@@ -419,7 +426,7 @@ class SuilendClient {
|
|
|
419
426
|
if (!obligation)
|
|
420
427
|
throw new Error("Error: no obligation");
|
|
421
428
|
yield this.refreshAll(transaction, obligation);
|
|
422
|
-
const [ctokens] =
|
|
429
|
+
const [ctokens] = (0, functions_1.withdrawCtokens)(transaction, [this.lendingMarket.$typeArgs[0], coinType], {
|
|
423
430
|
lendingMarket: this.lendingMarket.id,
|
|
424
431
|
reserveArrayIndex: this.findReserveArrayIndex(coinType),
|
|
425
432
|
obligationOwnerCap: obligationOwnerCapId,
|
|
@@ -429,12 +436,12 @@ class SuilendClient {
|
|
|
429
436
|
const [exemption] = transaction.moveCall({
|
|
430
437
|
target: `0x1::option::none`,
|
|
431
438
|
typeArguments: [
|
|
432
|
-
`${
|
|
439
|
+
`${suilend_2.PACKAGE_ID}::lending_market::RateLimiterExemption<${this.lendingMarket.$typeArgs[0]}, ${coinType}>`,
|
|
433
440
|
],
|
|
434
441
|
arguments: [],
|
|
435
442
|
});
|
|
436
443
|
return transaction.moveCall({
|
|
437
|
-
target: `${
|
|
444
|
+
target: `${suilend_2.PUBLISHED_AT}::lending_market::redeem_ctokens_and_withdraw_liquidity`,
|
|
438
445
|
typeArguments: [this.lendingMarket.$typeArgs[0], coinType],
|
|
439
446
|
arguments: [
|
|
440
447
|
transaction.object(this.lendingMarket.id),
|
|
@@ -458,7 +465,7 @@ class SuilendClient {
|
|
|
458
465
|
if (!obligation)
|
|
459
466
|
throw new Error("Error: no obligation");
|
|
460
467
|
yield this.refreshAll(transaction, obligation, this.findReserveArrayIndex(coinType));
|
|
461
|
-
const result =
|
|
468
|
+
const result = (0, functions_1.borrow)(transaction, [this.lendingMarket.$typeArgs[0], coinType], {
|
|
462
469
|
lendingMarket: this.lendingMarket.id,
|
|
463
470
|
reserveArrayIndex: this.findReserveArrayIndex(coinType),
|
|
464
471
|
obligationOwnerCap: obligationOwnerCapId,
|
|
@@ -475,7 +482,7 @@ class SuilendClient {
|
|
|
475
482
|
});
|
|
476
483
|
}
|
|
477
484
|
repay(obligationId, coinType, coin, transaction) {
|
|
478
|
-
return
|
|
485
|
+
return (0, functions_1.repay)(transaction, [this.lendingMarket.$typeArgs[0], coinType], {
|
|
479
486
|
lendingMarket: this.lendingMarket.id,
|
|
480
487
|
reserveArrayIndex: this.findReserveArrayIndex(coinType),
|
|
481
488
|
obligationId: obligationId,
|
|
@@ -506,12 +513,12 @@ class SuilendClient {
|
|
|
506
513
|
const [optionalExemption] = transaction.moveCall({
|
|
507
514
|
target: `0x1::option::some`,
|
|
508
515
|
typeArguments: [
|
|
509
|
-
`${
|
|
516
|
+
`${suilend_2.PUBLISHED_AT}::lending_market::RateLimiterExemption<${this.lendingMarket.$typeArgs[0]}, ${withdrawCoinType}>`,
|
|
510
517
|
],
|
|
511
518
|
arguments: [exemption],
|
|
512
519
|
});
|
|
513
520
|
return transaction.moveCall({
|
|
514
|
-
target: `${
|
|
521
|
+
target: `${suilend_2.PUBLISHED_AT}::lending_market::redeem_ctokens_and_withdraw_liquidity`,
|
|
515
522
|
typeArguments: [this.lendingMarket.$typeArgs[0], withdrawCoinType],
|
|
516
523
|
arguments: [
|
|
517
524
|
transaction.object(this.lendingMarket.id),
|
|
@@ -526,7 +533,7 @@ class SuilendClient {
|
|
|
526
533
|
liquidate(transaction, obligation, repayCoinType, withdrawCoinType, repayCoinId) {
|
|
527
534
|
return __awaiter(this, void 0, void 0, function* () {
|
|
528
535
|
yield this.refreshAll(transaction, obligation);
|
|
529
|
-
return
|
|
536
|
+
return (0, functions_1.liquidate)(transaction, [this.lendingMarket.$typeArgs[0], repayCoinType, withdrawCoinType], {
|
|
530
537
|
lendingMarket: this.lendingMarket.id,
|
|
531
538
|
obligationId: obligation.id,
|
|
532
539
|
repayReserveArrayIndex: this.findReserveArrayIndex(repayCoinType),
|
|
@@ -537,13 +544,13 @@ class SuilendClient {
|
|
|
537
544
|
});
|
|
538
545
|
}
|
|
539
546
|
migrate(transaction, lendingMarketOwnerCapId) {
|
|
540
|
-
return
|
|
547
|
+
return (0, functions_1.migrate)(transaction, this.lendingMarket.$typeArgs[0], {
|
|
541
548
|
lendingMarketOwnerCap: lendingMarketOwnerCapId,
|
|
542
549
|
lendingMarket: this.lendingMarket.id,
|
|
543
550
|
});
|
|
544
551
|
}
|
|
545
552
|
claimFees(transaction, coinType) {
|
|
546
|
-
return
|
|
553
|
+
return (0, functions_1.claimFees)(transaction, [this.lendingMarket.$typeArgs[0], coinType], {
|
|
547
554
|
lendingMarket: this.lendingMarket.id,
|
|
548
555
|
reserveArrayIndex: this.findReserveArrayIndex(coinType),
|
|
549
556
|
});
|
|
@@ -568,7 +575,7 @@ class SuilendClient {
|
|
|
568
575
|
transaction.mergeCoins(transaction.object(mergeCoin.coinObjectId), mergeCoins.map((mc) => transaction.object(mc.coinObjectId)).slice(1));
|
|
569
576
|
}
|
|
570
577
|
const coinType = (0, utils_2.extractCTokenCoinType)(ctokenCoinType);
|
|
571
|
-
const [redeemCoin] =
|
|
578
|
+
const [redeemCoin] = (0, functions_1.redeemCtokensAndWithdrawLiquidity)(transaction, [this.lendingMarket.$typeArgs[0], coinType], {
|
|
572
579
|
lendingMarket: this.lendingMarket.id,
|
|
573
580
|
reserveArrayIndex: this.findReserveArrayIndex(coinType),
|
|
574
581
|
clock: utils_1.SUI_CLOCK_OBJECT_ID,
|
|
@@ -3,12 +3,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
3
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.
|
|
6
|
+
exports.WAD = exports.maxU64 = void 0;
|
|
7
7
|
const bignumber_js_1 = __importDefault(require("bignumber.js"));
|
|
8
8
|
exports.maxU64 = new bignumber_js_1.default(2).pow(64).minus(1);
|
|
9
9
|
exports.WAD = new bignumber_js_1.default(10).pow(18);
|
|
10
|
-
var SdkEnv;
|
|
11
|
-
(function (SdkEnv) {
|
|
12
|
-
SdkEnv["BETA"] = "beta";
|
|
13
|
-
SdkEnv["MAINNET"] = "mainnet";
|
|
14
|
-
})(SdkEnv || (exports.SdkEnv = SdkEnv = {}));
|
package/index.d.ts
CHANGED
package/index.js
CHANGED
|
@@ -14,4 +14,10 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
14
14
|
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
15
|
};
|
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
-
__exportStar(require("./
|
|
17
|
+
__exportStar(require("./api"), exports);
|
|
18
|
+
__exportStar(require("./parsers"), exports);
|
|
19
|
+
__exportStar(require("./utils/"), exports);
|
|
20
|
+
__exportStar(require("./client"), exports);
|
|
21
|
+
__exportStar(require("./constants"), exports);
|
|
22
|
+
__exportStar(require("./types"), exports);
|
|
23
|
+
__exportStar(require("./utils"), exports);
|