@suilend/sdk 1.1.4 → 1.1.6
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/core/client.d.ts +117 -0
- package/{client.js → core/client.js} +97 -93
- package/{constants.d.ts → core/constants.d.ts} +4 -0
- package/{constants.js → core/constants.js} +6 -1
- package/core/parsers/deps.d.ts +15 -0
- package/core/parsers/deps.js +2 -0
- package/{parsers → core/parsers}/lendingMarket.d.ts +37 -38
- package/{parsers → core/parsers}/lendingMarket.js +4 -14
- package/{parsers → core/parsers}/obligation.d.ts +60 -60
- package/{parsers → core/parsers}/obligation.js +1 -1
- package/core/parsers/rateLimiter.d.ts +19 -0
- package/{parsers → core/parsers}/rateLimiter.js +3 -3
- package/{parsers → core/parsers}/reserve.d.ts +46 -47
- package/{parsers → core/parsers}/reserve.js +8 -32
- package/core/types.d.ts +882 -0
- package/core/types.js +132 -0
- package/core/utils/simulate.d.ts +56 -0
- package/core/utils/simulate.js +312 -0
- package/index.d.ts +1 -7
- package/index.js +1 -7
- package/{_generated → mainnet/_generated}/suilend/index.d.ts +1 -2
- package/{_generated → mainnet/_generated}/suilend/index.js +1 -5
- package/mainnet/api/events.d.ts +1 -0
- package/mainnet/api/events.js +17 -0
- package/mainnet/client.d.ts +18 -0
- package/mainnet/client.js +110 -0
- package/mainnet/constants.d.ts +3 -0
- package/mainnet/constants.js +20 -0
- package/mainnet/index.d.ts +6 -0
- package/mainnet/index.js +22 -0
- package/mainnet/parsers/apiReserveAssetDataEvent.d.ts +1 -0
- package/mainnet/parsers/apiReserveAssetDataEvent.js +17 -0
- package/{parsers → mainnet/parsers}/index.d.ts +0 -1
- package/{parsers → mainnet/parsers}/index.js +0 -1
- package/mainnet/parsers/lendingMarket.d.ts +127 -0
- package/mainnet/parsers/lendingMarket.js +41 -0
- package/mainnet/parsers/obligation.d.ts +10 -0
- package/mainnet/parsers/obligation.js +30 -0
- package/{parsers → mainnet/parsers}/rateLimiter.d.ts +9 -10
- package/mainnet/parsers/rateLimiter.js +32 -0
- package/mainnet/parsers/reserve.d.ts +166 -0
- package/mainnet/parsers/reserve.js +38 -0
- package/mainnet/types.d.ts +1 -0
- package/{api/index.js → mainnet/types.js} +1 -1
- package/mainnet/utils/events.d.ts +1 -0
- package/mainnet/utils/events.js +17 -0
- package/mainnet/utils/simulate.js +78 -0
- package/mainnet/utils.d.ts +1 -0
- package/mainnet/utils.js +17 -0
- package/package.json +1 -1
- package/api/index.d.ts +0 -1
- package/client.d.ts +0 -64
- package/types.d.ts +0 -200
- package/types.js +0 -15
- package/utils/simulate.js +0 -316
- /package/{api → core/api}/events.d.ts +0 -0
- /package/{api → core/api}/events.js +0 -0
- /package/{parsers → core/parsers}/apiReserveAssetDataEvent.d.ts +0 -0
- /package/{parsers → core/parsers}/apiReserveAssetDataEvent.js +0 -0
- /package/{utils → core/utils}/events.d.ts +0 -0
- /package/{utils → core/utils}/events.js +0 -0
- /package/{utils.d.ts → core/utils.d.ts} +0 -0
- /package/{utils.js → core/utils.js} +0 -0
- /package/{_generated → mainnet/_generated}/_dependencies/source/0x1/ascii/structs.d.ts +0 -0
- /package/{_generated → mainnet/_generated}/_dependencies/source/0x1/ascii/structs.js +0 -0
- /package/{_generated → mainnet/_generated}/_dependencies/source/0x1/index.d.ts +0 -0
- /package/{_generated → mainnet/_generated}/_dependencies/source/0x1/index.js +0 -0
- /package/{_generated → mainnet/_generated}/_dependencies/source/0x1/option/structs.d.ts +0 -0
- /package/{_generated → mainnet/_generated}/_dependencies/source/0x1/option/structs.js +0 -0
- /package/{_generated → mainnet/_generated}/_dependencies/source/0x1/type-name/structs.d.ts +0 -0
- /package/{_generated → mainnet/_generated}/_dependencies/source/0x1/type-name/structs.js +0 -0
- /package/{_generated → mainnet/_generated}/_dependencies/source/0x2/bag/structs.d.ts +0 -0
- /package/{_generated → mainnet/_generated}/_dependencies/source/0x2/bag/structs.js +0 -0
- /package/{_generated → mainnet/_generated}/_dependencies/source/0x2/balance/structs.d.ts +0 -0
- /package/{_generated → mainnet/_generated}/_dependencies/source/0x2/balance/structs.js +0 -0
- /package/{_generated → mainnet/_generated}/_dependencies/source/0x2/index.d.ts +0 -0
- /package/{_generated → mainnet/_generated}/_dependencies/source/0x2/index.js +0 -0
- /package/{_generated → mainnet/_generated}/_dependencies/source/0x2/object/structs.d.ts +0 -0
- /package/{_generated → mainnet/_generated}/_dependencies/source/0x2/object/structs.js +0 -0
- /package/{_generated → mainnet/_generated}/_dependencies/source/0x2/object-table/structs.d.ts +0 -0
- /package/{_generated → mainnet/_generated}/_dependencies/source/0x2/object-table/structs.js +0 -0
- /package/{_generated → mainnet/_generated}/_dependencies/source/0x8d97f1cd6ac663735be08d1d2b6d02a159e711586461306ce60a2b7a6a565a9e/index.d.ts +0 -0
- /package/{_generated → mainnet/_generated}/_dependencies/source/0x8d97f1cd6ac663735be08d1d2b6d02a159e711586461306ce60a2b7a6a565a9e/index.js +0 -0
- /package/{_generated → mainnet/_generated}/_dependencies/source/0x8d97f1cd6ac663735be08d1d2b6d02a159e711586461306ce60a2b7a6a565a9e/price-identifier/structs.d.ts +0 -0
- /package/{_generated → mainnet/_generated}/_dependencies/source/0x8d97f1cd6ac663735be08d1d2b6d02a159e711586461306ce60a2b7a6a565a9e/price-identifier/structs.js +0 -0
- /package/{_generated → mainnet/_generated}/_framework/reified.d.ts +0 -0
- /package/{_generated → mainnet/_generated}/_framework/reified.js +0 -0
- /package/{_generated → mainnet/_generated}/_framework/util.d.ts +0 -0
- /package/{_generated → mainnet/_generated}/_framework/util.js +0 -0
- /package/{_generated → mainnet/_generated}/_framework/vector.d.ts +0 -0
- /package/{_generated → mainnet/_generated}/_framework/vector.js +0 -0
- /package/{_generated → mainnet/_generated}/suilend/cell/structs.d.ts +0 -0
- /package/{_generated → mainnet/_generated}/suilend/cell/structs.js +0 -0
- /package/{_generated → mainnet/_generated}/suilend/decimal/structs.d.ts +0 -0
- /package/{_generated → mainnet/_generated}/suilend/decimal/structs.js +0 -0
- /package/{_generated → mainnet/_generated}/suilend/lending-market/functions.d.ts +0 -0
- /package/{_generated → mainnet/_generated}/suilend/lending-market/functions.js +0 -0
- /package/{_generated → mainnet/_generated}/suilend/lending-market/structs.d.ts +0 -0
- /package/{_generated → mainnet/_generated}/suilend/lending-market/structs.js +0 -0
- /package/{_generated → mainnet/_generated}/suilend/lending-market-registry/functions.d.ts +0 -0
- /package/{_generated → mainnet/_generated}/suilend/lending-market-registry/functions.js +0 -0
- /package/{_generated → mainnet/_generated}/suilend/liquidity-mining/structs.d.ts +0 -0
- /package/{_generated → mainnet/_generated}/suilend/liquidity-mining/structs.js +0 -0
- /package/{_generated → mainnet/_generated}/suilend/obligation/structs.d.ts +0 -0
- /package/{_generated → mainnet/_generated}/suilend/obligation/structs.js +0 -0
- /package/{_generated → mainnet/_generated}/suilend/rate-limiter/functions.d.ts +0 -0
- /package/{_generated → mainnet/_generated}/suilend/rate-limiter/functions.js +0 -0
- /package/{_generated → mainnet/_generated}/suilend/rate-limiter/structs.d.ts +0 -0
- /package/{_generated → mainnet/_generated}/suilend/rate-limiter/structs.js +0 -0
- /package/{_generated → mainnet/_generated}/suilend/reserve/structs.d.ts +0 -0
- /package/{_generated → mainnet/_generated}/suilend/reserve/structs.js +0 -0
- /package/{_generated → mainnet/_generated}/suilend/reserve-config/functions.d.ts +0 -0
- /package/{_generated → mainnet/_generated}/suilend/reserve-config/functions.js +0 -0
- /package/{_generated → mainnet/_generated}/suilend/reserve-config/structs.d.ts +0 -0
- /package/{_generated → mainnet/_generated}/suilend/reserve-config/structs.js +0 -0
- /package/{utils → mainnet/utils}/index.d.ts +0 -0
- /package/{utils → mainnet/utils}/index.js +0 -0
- /package/{utils → mainnet/utils}/obligation.d.ts +0 -0
- /package/{utils → mainnet/utils}/obligation.js +0 -0
- /package/{utils → mainnet/utils}/simulate.d.ts +0 -0
package/core/client.d.ts
ADDED
|
@@ -0,0 +1,117 @@
|
|
|
1
|
+
import { SuiClient } from "@mysten/sui/client";
|
|
2
|
+
import { Transaction, TransactionObjectInput, TransactionResult } from "@mysten/sui/transactions";
|
|
3
|
+
import { SuiPriceServiceConnection, SuiPythClient } from "@pythnetwork/pyth-sui-js";
|
|
4
|
+
import { AddPoolRewardArgs, AddReserveArgs, BorrowArgs, CancelPoolRewardArgs, ChangeReservePriceFeedArgs, ClaimFeesArgs, ClaimRewardsAndDepositArgs, ClaimRewardsArgs, ClosePoolRewardArgs, CreateRateLimiterConfigArgs, CreateReserveConfigArgs, DepositCtokensIntoObligationArgs, DepositLiquidityAndMintCtokensArgs, LiquidateArgs, MigrateArgs, PhantomReified, RedeemCtokensAndWithdrawLiquidityArgs, RefreshReservePriceArgs, RepayArgs, Side, UpdateRateLimiterConfigArgs, UpdateReserveConfigArgs, WithdrawCtokensArgs } from "./types";
|
|
5
|
+
interface Deps {
|
|
6
|
+
phantom: (phantomType: string) => PhantomReified<string>;
|
|
7
|
+
PACKAGE_ID: string;
|
|
8
|
+
PUBLISHED_AT: string;
|
|
9
|
+
LendingMarket: any;
|
|
10
|
+
Obligation: any;
|
|
11
|
+
ObligationOwnerCap: any;
|
|
12
|
+
createLendingMarket: (transaction: Transaction, typeArg: string, registry: TransactionObjectInput) => TransactionResult;
|
|
13
|
+
createReserveConfig: (transaction: Transaction, args: CreateReserveConfigArgs) => TransactionResult;
|
|
14
|
+
updateReserveConfig: (transaction: Transaction, typeArgs: [string, string], args: UpdateReserveConfigArgs) => TransactionResult;
|
|
15
|
+
addReserve: (transaction: Transaction, typeArgs: [string, string], args: AddReserveArgs) => TransactionResult;
|
|
16
|
+
addPoolReward: (transaction: Transaction, typeArgs: [string, string], args: AddPoolRewardArgs) => TransactionResult;
|
|
17
|
+
cancelPoolReward: (transaction: Transaction, typeArgs: [string, string], args: CancelPoolRewardArgs) => TransactionResult;
|
|
18
|
+
closePoolReward: (transaction: Transaction, typeArgs: [string, string], args: ClosePoolRewardArgs) => TransactionResult;
|
|
19
|
+
claimRewards: (transaction: Transaction, typeArgs: [string, string], args: ClaimRewardsArgs) => TransactionResult;
|
|
20
|
+
claimRewardsAndDeposit: (transaction: Transaction, typeArgs: [string, string], args: ClaimRewardsAndDepositArgs) => TransactionResult;
|
|
21
|
+
createRateLimiterConfig: (transaction: Transaction, args: CreateRateLimiterConfigArgs) => TransactionResult;
|
|
22
|
+
updateRateLimiterConfig: (transaction: Transaction, typeArg: string, args: UpdateRateLimiterConfigArgs) => TransactionResult;
|
|
23
|
+
refreshReservePrice: (transaction: Transaction, typeArg: string, args: RefreshReservePriceArgs) => TransactionResult;
|
|
24
|
+
depositLiquidityAndMintCtokens: (transaction: Transaction, typeArgs: [string, string], args: DepositLiquidityAndMintCtokensArgs) => TransactionResult;
|
|
25
|
+
depositCtokensIntoObligation: (transaction: Transaction, typeArgs: [string, string], args: DepositCtokensIntoObligationArgs) => TransactionResult;
|
|
26
|
+
withdrawCtokens: (transaction: Transaction, typeArgs: [string, string], args: WithdrawCtokensArgs) => TransactionResult;
|
|
27
|
+
borrow: (transaction: Transaction, typeArgs: [string, string], args: BorrowArgs) => TransactionResult;
|
|
28
|
+
repay: (transaction: Transaction, typeArgs: [string, string], args: RepayArgs) => TransactionResult;
|
|
29
|
+
liquidate: (transaction: Transaction, typeArgs: [string, string, string], args: LiquidateArgs) => TransactionResult;
|
|
30
|
+
migrate: (transaction: Transaction, typeArg: string, args: MigrateArgs) => TransactionResult;
|
|
31
|
+
claimFees: (transaction: Transaction, typeArgs: [string, string], args: ClaimFeesArgs) => TransactionResult;
|
|
32
|
+
redeemCtokensAndWithdrawLiquidity: (transaction: Transaction, typeArgs: [string, string], args: RedeemCtokensAndWithdrawLiquidityArgs) => TransactionResult;
|
|
33
|
+
changeReservePriceFeed: (transaction: Transaction, typeArgs: [string, string], args: ChangeReservePriceFeedArgs) => TransactionResult;
|
|
34
|
+
}
|
|
35
|
+
export declare class SuilendClient {
|
|
36
|
+
lendingMarket: any;
|
|
37
|
+
client: SuiClient;
|
|
38
|
+
pythClient: SuiPythClient;
|
|
39
|
+
pythConnection: SuiPriceServiceConnection;
|
|
40
|
+
phantom: Deps["phantom"];
|
|
41
|
+
PACKAGE_ID: Deps["PACKAGE_ID"];
|
|
42
|
+
PUBLISHED_AT: Deps["PUBLISHED_AT"];
|
|
43
|
+
LendingMarket: Deps["LendingMarket"];
|
|
44
|
+
Obligation: Deps["Obligation"];
|
|
45
|
+
ObligationOwnerCap: Deps["ObligationOwnerCap"];
|
|
46
|
+
createLendingMarketFunction: Deps["createLendingMarket"];
|
|
47
|
+
createReserveConfigFunction: Deps["createReserveConfig"];
|
|
48
|
+
updateReserveConfigFunction: Deps["updateReserveConfig"];
|
|
49
|
+
addReserveFunction: Deps["addReserve"];
|
|
50
|
+
addPoolRewardFunction: Deps["addPoolReward"];
|
|
51
|
+
cancelPoolRewardFunction: Deps["cancelPoolReward"];
|
|
52
|
+
closePoolRewardFunction: Deps["closePoolReward"];
|
|
53
|
+
claimRewardsFunction: Deps["claimRewards"];
|
|
54
|
+
claimRewardsAndDepositFunction: Deps["claimRewardsAndDeposit"];
|
|
55
|
+
createRateLimiterConfigFunction: Deps["createRateLimiterConfig"];
|
|
56
|
+
updateRateLimiterConfigFunction: Deps["updateRateLimiterConfig"];
|
|
57
|
+
refreshReservePriceFunction: Deps["refreshReservePrice"];
|
|
58
|
+
depositLiquidityAndMintCtokensFunction: Deps["depositLiquidityAndMintCtokens"];
|
|
59
|
+
depositCtokensIntoObligationFunction: Deps["depositCtokensIntoObligation"];
|
|
60
|
+
withdrawCtokensFunction: Deps["withdrawCtokens"];
|
|
61
|
+
borrowFunction: Deps["borrow"];
|
|
62
|
+
repayFunction: Deps["repay"];
|
|
63
|
+
liquidateFunction: Deps["liquidate"];
|
|
64
|
+
migrateFunction: Deps["migrate"];
|
|
65
|
+
claimFeesFunction: Deps["claimFees"];
|
|
66
|
+
redeemCtokensAndWithdrawLiquidityFunction: Deps["redeemCtokensAndWithdrawLiquidity"];
|
|
67
|
+
changeReservePriceFeedFunction: Deps["changeReservePriceFeed"];
|
|
68
|
+
constructor(lendingMarket: any, client: SuiClient, { phantom, PACKAGE_ID, PUBLISHED_AT, LendingMarket, Obligation, ObligationOwnerCap, createLendingMarket, createReserveConfig, updateReserveConfig, addReserve, addPoolReward, cancelPoolReward, closePoolReward, claimRewards, claimRewardsAndDeposit, createRateLimiterConfig, updateRateLimiterConfig, refreshReservePrice, depositLiquidityAndMintCtokens, depositCtokensIntoObligation, withdrawCtokens, borrow, repay, liquidate, migrate, claimFees, redeemCtokensAndWithdrawLiquidity, changeReservePriceFeed, }: Deps);
|
|
69
|
+
static initialize(lendingMarketId: string, lendingMarketType: string, client: SuiClient, deps: Deps): Promise<SuilendClient>;
|
|
70
|
+
static initializeWithLendingMarket(lendingMarket: any, client: SuiClient, deps: Deps): Promise<SuilendClient>;
|
|
71
|
+
static hasBetaPass(ownerId: string, client: SuiClient): Promise<boolean>;
|
|
72
|
+
static createNewLendingMarket(registryId: string, lendingMarketType: string, transaction: Transaction, { LendingMarket, createLendingMarket, }: Pick<Deps, "LendingMarket" | "createLendingMarket">): Promise<{
|
|
73
|
+
$kind: "NestedResult";
|
|
74
|
+
NestedResult: [number, number];
|
|
75
|
+
}>;
|
|
76
|
+
static getObligationOwnerCaps(ownerId: string, lendingMarketTypeArgs: string[], client: SuiClient, { phantom, PACKAGE_ID, ObligationOwnerCap, }: Pick<Deps, "phantom" | "PACKAGE_ID" | "ObligationOwnerCap">): Promise<any[]>;
|
|
77
|
+
static getObligation(obligationId: string, lendingMarketTypeArgs: string[], client: SuiClient, { phantom, Obligation }: Pick<Deps, "phantom" | "Obligation">): Promise<any>;
|
|
78
|
+
getObligation(obligationId: string): Promise<any>;
|
|
79
|
+
static getLendingMarketOwnerCapId(ownerId: string, lendingMarketTypeArgs: string[], client: SuiClient, { PACKAGE_ID }: Pick<Deps, "PACKAGE_ID">): Promise<string | null>;
|
|
80
|
+
getLendingMarketOwnerCapId(ownerId: string): Promise<string | null>;
|
|
81
|
+
createReserve(lendingMarketOwnerCapId: string, transaction: Transaction, pythPriceId: string, coinType: string, createReserveConfigArgs: CreateReserveConfigArgs): Promise<TransactionResult>;
|
|
82
|
+
addReward(ownerId: string, lendingMarketOwnerCapId: string, reserveArrayIndex: bigint, isDepositReward: boolean, rewardCoinType: string, rewardValue: string, startTimeMs: bigint, endTimeMs: bigint, transaction: Transaction): Promise<TransactionResult>;
|
|
83
|
+
cancelReward(lendingMarketOwnerCapId: string, reserveArrayIndex: bigint, isDepositReward: boolean, rewardIndex: bigint, rewardCoinType: string, transaction: Transaction): TransactionResult;
|
|
84
|
+
closeReward(lendingMarketOwnerCapId: string, reserveArrayIndex: bigint, isDepositReward: boolean, rewardIndex: bigint, rewardCoinType: string, transaction: Transaction): TransactionResult;
|
|
85
|
+
claimReward(obligationOwnerCapId: string, reserveArrayIndex: bigint, rewardIndex: bigint, rewardType: string, side: Side, transaction: Transaction): TransactionResult;
|
|
86
|
+
claimRewardsAndDeposit(obligationId: string, rewardReserveArrayIndex: bigint, rewardIndex: bigint, rewardType: string, side: Side, depositReserveArrayIndex: bigint, transaction: Transaction): TransactionResult;
|
|
87
|
+
claimRewardsToObligation(ownerId: string, rewards: Array<{
|
|
88
|
+
obligationOwnerCapId: string;
|
|
89
|
+
reserveArrayIndex: bigint;
|
|
90
|
+
rewardIndex: bigint;
|
|
91
|
+
rewardType: string;
|
|
92
|
+
side: Side;
|
|
93
|
+
}>, transaction: Transaction): Promise<void>;
|
|
94
|
+
findReserveArrayIndex(coinType: string): bigint;
|
|
95
|
+
updateReserveConfig(ownerId: string, lendingMarketOwnerCapId: string, transaction: Transaction, coinType: string, createReserveConfigArgs: CreateReserveConfigArgs): Promise<TransactionResult>;
|
|
96
|
+
updateRateLimiterConfig(lendingMarketOwnerCapId: string, transaction: Transaction, newRateLimiterConfigArgs: CreateRateLimiterConfigArgs): Promise<TransactionResult>;
|
|
97
|
+
changeReservePriceFeed(lendingMarketOwnerCapId: string, coinType: string, pythPriceId: string, transaction: Transaction): Promise<TransactionResult>;
|
|
98
|
+
createObligation(transaction: Transaction): TransactionResult;
|
|
99
|
+
refreshAll(transaction: Transaction, obligation: typeof this.Obligation, extraReserveArrayIndex?: bigint): Promise<void>;
|
|
100
|
+
refreshReservePrices(transaction: Transaction, priceInfoObjectId: string, reserveArrayIndex: bigint): Promise<void>;
|
|
101
|
+
deposit(sendCoin: TransactionObjectInput, coinType: string, obligationOwnerCap: TransactionObjectInput, transaction: Transaction): Promise<void>;
|
|
102
|
+
depositCoin(ownerId: string, sendCoin: TransactionObjectInput, coinType: string, transaction: Transaction, obligationOwnerCapId?: string): Promise<void>;
|
|
103
|
+
depositIntoObligation(ownerId: string, coinType: string, value: string, transaction: Transaction, obligationOwnerCapId?: string): Promise<void>;
|
|
104
|
+
depositLiquidityAndGetCTokens(ownerId: string, coinType: string, value: string, transaction: Transaction): Promise<void>;
|
|
105
|
+
withdraw(obligationOwnerCapId: string, obligationId: string, coinType: string, value: string, transaction: Transaction): Promise<TransactionResult>;
|
|
106
|
+
withdrawFromObligation(ownerId: string, obligationOwnerCapId: string, obligationId: string, coinType: string, value: string, transaction: Transaction): Promise<void>;
|
|
107
|
+
borrow(obligationOwnerCapId: string, obligationId: string, coinType: string, value: string, transaction: Transaction): Promise<TransactionResult>;
|
|
108
|
+
borrowFromObligation(ownerId: string, obligationOwnerCapId: string, obligationId: string, coinType: string, value: string, transaction: Transaction): Promise<void>;
|
|
109
|
+
repay(obligationId: string, coinType: string, coin: TransactionObjectInput, transaction: Transaction): TransactionResult;
|
|
110
|
+
repayIntoObligation(ownerId: string, obligationId: string, coinType: string, value: string, transaction: Transaction): Promise<TransactionResult>;
|
|
111
|
+
liquidateAndRedeem(transaction: Transaction, obligation: typeof this.Obligation, repayCoinType: string, withdrawCoinType: string, repayCoinId: any): Promise<TransactionResult>;
|
|
112
|
+
liquidate(transaction: Transaction, obligation: typeof this.Obligation, repayCoinType: string, withdrawCoinType: string, repayCoinId: any): Promise<TransactionResult>;
|
|
113
|
+
migrate(transaction: Transaction, lendingMarketOwnerCapId: string): TransactionResult;
|
|
114
|
+
claimFees(transaction: Transaction, coinType: string): TransactionResult;
|
|
115
|
+
redeemCtokensAndWithdrawLiquidity(ownerId: string, ctokenCoinTypes: string[], transaction: Transaction): Promise<void>;
|
|
116
|
+
}
|
|
117
|
+
export {};
|
|
@@ -9,57 +9,61 @@ 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 =
|
|
12
|
+
exports.SuilendClient = void 0;
|
|
13
13
|
const transactions_1 = require("@mysten/sui/transactions");
|
|
14
14
|
const utils_1 = require("@mysten/sui/utils");
|
|
15
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");
|
|
25
16
|
const types_1 = require("./types");
|
|
26
17
|
const utils_2 = require("./utils");
|
|
27
18
|
const WORMHOLE_STATE_ID = "0xaeab97f96cf9877fee2883315d459552b2b921edc16d7ceac6eab944dd88919c";
|
|
28
19
|
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
|
-
}
|
|
42
20
|
const SUI_COINTYPE = "0x2::sui::SUI";
|
|
43
|
-
exports.LENDING_MARKET_ID = "0x84030d26d85eaa7035084a057f2f11f701b7e2e4eda87551becbc7c97505ece1";
|
|
44
|
-
exports.LENDING_MARKET_TYPE = "0xf95b06141ed4a174f239417323bde3f209b972f5930d8521ea38a52aff3a6ddf::suilend::MAIN_POOL";
|
|
45
21
|
class SuilendClient {
|
|
46
|
-
constructor(lendingMarket, client) {
|
|
22
|
+
constructor(lendingMarket, client, { phantom, PACKAGE_ID, PUBLISHED_AT, LendingMarket, Obligation, ObligationOwnerCap, createLendingMarket, createReserveConfig, updateReserveConfig, addReserve, addPoolReward, cancelPoolReward, closePoolReward, claimRewards, claimRewardsAndDeposit, createRateLimiterConfig, updateRateLimiterConfig, refreshReservePrice, depositLiquidityAndMintCtokens, depositCtokensIntoObligation, withdrawCtokens, borrow, repay, liquidate, migrate, claimFees, redeemCtokensAndWithdrawLiquidity, changeReservePriceFeed, }) {
|
|
47
23
|
this.lendingMarket = lendingMarket;
|
|
48
24
|
this.client = client;
|
|
49
25
|
this.pythClient = new pyth_sui_js_1.SuiPythClient(client, PYTH_STATE_ID, WORMHOLE_STATE_ID);
|
|
50
26
|
this.pythConnection = new pyth_sui_js_1.SuiPriceServiceConnection("https://hermes.pyth.network");
|
|
51
|
-
|
|
52
|
-
|
|
27
|
+
this.phantom = phantom;
|
|
28
|
+
this.PACKAGE_ID = PACKAGE_ID;
|
|
29
|
+
this.PUBLISHED_AT = PUBLISHED_AT;
|
|
30
|
+
this.LendingMarket = LendingMarket;
|
|
31
|
+
this.Obligation = Obligation;
|
|
32
|
+
this.ObligationOwnerCap = ObligationOwnerCap;
|
|
33
|
+
this.createLendingMarketFunction = createLendingMarket;
|
|
34
|
+
this.createReserveConfigFunction = createReserveConfig;
|
|
35
|
+
this.updateReserveConfigFunction = updateReserveConfig;
|
|
36
|
+
this.addReserveFunction = addReserve;
|
|
37
|
+
this.addPoolRewardFunction = addPoolReward;
|
|
38
|
+
this.cancelPoolRewardFunction = cancelPoolReward;
|
|
39
|
+
this.closePoolRewardFunction = closePoolReward;
|
|
40
|
+
this.claimRewardsFunction = claimRewards;
|
|
41
|
+
this.claimRewardsAndDepositFunction = claimRewardsAndDeposit;
|
|
42
|
+
this.createRateLimiterConfigFunction = createRateLimiterConfig;
|
|
43
|
+
this.updateRateLimiterConfigFunction = updateRateLimiterConfig;
|
|
44
|
+
this.refreshReservePriceFunction = refreshReservePrice;
|
|
45
|
+
this.depositLiquidityAndMintCtokensFunction =
|
|
46
|
+
depositLiquidityAndMintCtokens;
|
|
47
|
+
this.depositCtokensIntoObligationFunction = depositCtokensIntoObligation;
|
|
48
|
+
this.withdrawCtokensFunction = withdrawCtokens;
|
|
49
|
+
this.borrowFunction = borrow;
|
|
50
|
+
this.repayFunction = repay;
|
|
51
|
+
this.liquidateFunction = liquidate;
|
|
52
|
+
this.migrateFunction = migrate;
|
|
53
|
+
this.claimFeesFunction = claimFees;
|
|
54
|
+
this.redeemCtokensAndWithdrawLiquidityFunction =
|
|
55
|
+
redeemCtokensAndWithdrawLiquidity;
|
|
56
|
+
this.changeReservePriceFeedFunction = changeReservePriceFeed;
|
|
57
|
+
}
|
|
58
|
+
static initialize(lendingMarketId, lendingMarketType, client, deps) {
|
|
53
59
|
return __awaiter(this, void 0, void 0, function* () {
|
|
54
|
-
const lendingMarket = yield
|
|
55
|
-
|
|
56
|
-
(0, suilend_1.setPublishedAt)(latestPackageId);
|
|
57
|
-
return new SuilendClient(lendingMarket, client);
|
|
60
|
+
const lendingMarket = yield deps.LendingMarket.fetch(client, deps.phantom(lendingMarketType), lendingMarketId);
|
|
61
|
+
return new SuilendClient(lendingMarket, client, deps);
|
|
58
62
|
});
|
|
59
63
|
}
|
|
60
|
-
static initializeWithLendingMarket(lendingMarket, client) {
|
|
64
|
+
static initializeWithLendingMarket(lendingMarket, client, deps) {
|
|
61
65
|
return __awaiter(this, void 0, void 0, function* () {
|
|
62
|
-
return new SuilendClient(lendingMarket, client);
|
|
66
|
+
return new SuilendClient(lendingMarket, client, deps);
|
|
63
67
|
});
|
|
64
68
|
}
|
|
65
69
|
static hasBetaPass(ownerId, client) {
|
|
@@ -73,23 +77,23 @@ class SuilendClient {
|
|
|
73
77
|
return objs.data.length > 0;
|
|
74
78
|
});
|
|
75
79
|
}
|
|
76
|
-
static createNewLendingMarket(
|
|
77
|
-
return __awaiter(this,
|
|
78
|
-
const [ownerCap, lendingMarket] =
|
|
80
|
+
static createNewLendingMarket(registryId_1, lendingMarketType_1, transaction_1, _a) {
|
|
81
|
+
return __awaiter(this, arguments, void 0, function* (registryId, lendingMarketType, transaction, { LendingMarket, createLendingMarket, }) {
|
|
82
|
+
const [ownerCap, lendingMarket] = createLendingMarket(transaction, lendingMarketType, transaction.object(registryId));
|
|
79
83
|
transaction.moveCall({
|
|
80
84
|
target: `0x2::transfer::public_share_object`,
|
|
81
|
-
typeArguments: [`${
|
|
85
|
+
typeArguments: [`${LendingMarket.$typeName}<${lendingMarketType}>}`],
|
|
82
86
|
arguments: [lendingMarket],
|
|
83
87
|
});
|
|
84
88
|
return ownerCap;
|
|
85
89
|
});
|
|
86
90
|
}
|
|
87
|
-
static getObligationOwnerCaps(
|
|
88
|
-
return __awaiter(this,
|
|
91
|
+
static getObligationOwnerCaps(ownerId_1, lendingMarketTypeArgs_1, client_1, _a) {
|
|
92
|
+
return __awaiter(this, arguments, void 0, function* (ownerId, lendingMarketTypeArgs, client, { phantom, PACKAGE_ID, ObligationOwnerCap, }) {
|
|
89
93
|
const objs = yield client.getOwnedObjects({
|
|
90
94
|
owner: ownerId,
|
|
91
95
|
filter: {
|
|
92
|
-
StructType: `${
|
|
96
|
+
StructType: `${PACKAGE_ID}::lending_market::ObligationOwnerCap<${lendingMarketTypeArgs[0]}>`,
|
|
93
97
|
},
|
|
94
98
|
});
|
|
95
99
|
if (objs.data.length > 0) {
|
|
@@ -105,7 +109,7 @@ class SuilendClient {
|
|
|
105
109
|
var _a, _b, _c, _d;
|
|
106
110
|
if (((_b = (_a = obj.data) === null || _a === void 0 ? void 0 : _a.bcs) === null || _b === void 0 ? void 0 : _b.dataType) !== "moveObject")
|
|
107
111
|
throw new Error("Error: invalid data type");
|
|
108
|
-
obligationOwnerCaps.push(
|
|
112
|
+
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)));
|
|
109
113
|
});
|
|
110
114
|
return obligationOwnerCaps;
|
|
111
115
|
}
|
|
@@ -114,46 +118,46 @@ class SuilendClient {
|
|
|
114
118
|
}
|
|
115
119
|
});
|
|
116
120
|
}
|
|
117
|
-
static getObligation(
|
|
118
|
-
return __awaiter(this,
|
|
119
|
-
var
|
|
121
|
+
static getObligation(obligationId_1, lendingMarketTypeArgs_1, client_1, _a) {
|
|
122
|
+
return __awaiter(this, arguments, void 0, function* (obligationId, lendingMarketTypeArgs, client, { phantom, Obligation }) {
|
|
123
|
+
var _b, _c;
|
|
120
124
|
const obligationData = yield client.getObject({
|
|
121
125
|
id: obligationId,
|
|
122
126
|
options: { showBcs: true },
|
|
123
127
|
});
|
|
124
|
-
if (((
|
|
128
|
+
if (((_c = (_b = obligationData.data) === null || _b === void 0 ? void 0 : _b.bcs) === null || _c === void 0 ? void 0 : _c.dataType) !== "moveObject") {
|
|
125
129
|
throw new Error("Error: invalid data type");
|
|
126
130
|
}
|
|
127
|
-
const obligation =
|
|
131
|
+
const obligation = Obligation.fromBcs(phantom(lendingMarketTypeArgs[0]), (0, utils_1.fromBase64)(obligationData.data.bcs.bcsBytes));
|
|
128
132
|
return obligation;
|
|
129
133
|
});
|
|
130
134
|
}
|
|
131
135
|
getObligation(obligationId) {
|
|
132
|
-
return SuilendClient.getObligation(obligationId, this.lendingMarket.$typeArgs, this.client);
|
|
136
|
+
return SuilendClient.getObligation(obligationId, this.lendingMarket.$typeArgs, this.client, { phantom: this.phantom, Obligation: this.Obligation });
|
|
133
137
|
}
|
|
134
|
-
static getLendingMarketOwnerCapId(
|
|
135
|
-
return __awaiter(this,
|
|
136
|
-
var
|
|
138
|
+
static getLendingMarketOwnerCapId(ownerId_1, lendingMarketTypeArgs_1, client_1, _a) {
|
|
139
|
+
return __awaiter(this, arguments, void 0, function* (ownerId, lendingMarketTypeArgs, client, { PACKAGE_ID }) {
|
|
140
|
+
var _b;
|
|
137
141
|
const objs = yield client.getOwnedObjects({
|
|
138
142
|
owner: ownerId,
|
|
139
143
|
filter: {
|
|
140
|
-
StructType: `${
|
|
144
|
+
StructType: `${PACKAGE_ID}::lending_market::LendingMarketOwnerCap<${lendingMarketTypeArgs[0]}>`,
|
|
141
145
|
},
|
|
142
146
|
});
|
|
143
147
|
if (objs.data.length > 0)
|
|
144
|
-
return (
|
|
148
|
+
return (_b = objs.data[0].data) === null || _b === void 0 ? void 0 : _b.objectId;
|
|
145
149
|
else
|
|
146
150
|
return null;
|
|
147
151
|
});
|
|
148
152
|
}
|
|
149
153
|
getLendingMarketOwnerCapId(ownerId) {
|
|
150
154
|
return __awaiter(this, void 0, void 0, function* () {
|
|
151
|
-
return SuilendClient.getLendingMarketOwnerCapId(ownerId, this.lendingMarket.$typeArgs, this.client);
|
|
155
|
+
return SuilendClient.getLendingMarketOwnerCapId(ownerId, this.lendingMarket.$typeArgs, this.client, { PACKAGE_ID: this.PACKAGE_ID });
|
|
152
156
|
});
|
|
153
157
|
}
|
|
154
158
|
createReserve(lendingMarketOwnerCapId, transaction, pythPriceId, coinType, createReserveConfigArgs) {
|
|
155
159
|
return __awaiter(this, void 0, void 0, function* () {
|
|
156
|
-
const [config] =
|
|
160
|
+
const [config] = this.createReserveConfigFunction(transaction, createReserveConfigArgs);
|
|
157
161
|
const priceUpdateData = yield this.pythConnection.getPriceFeedsUpdateData([
|
|
158
162
|
pythPriceId,
|
|
159
163
|
]);
|
|
@@ -164,7 +168,7 @@ class SuilendClient {
|
|
|
164
168
|
if (coin_metadata === null) {
|
|
165
169
|
throw new Error("Error: coin metadata not found");
|
|
166
170
|
}
|
|
167
|
-
return
|
|
171
|
+
return this.addReserveFunction(transaction, [this.lendingMarket.$typeArgs[0], coinType], {
|
|
168
172
|
lendingMarketOwnerCap: lendingMarketOwnerCapId,
|
|
169
173
|
lendingMarket: this.lendingMarket.id,
|
|
170
174
|
priceInfo: priceInfoObjectIds[0],
|
|
@@ -186,20 +190,20 @@ class SuilendClient {
|
|
|
186
190
|
transaction.mergeCoins(transaction.object(mergeCoin.coinObjectId), coins.map((c) => transaction.object(c.coinObjectId)).slice(1));
|
|
187
191
|
}
|
|
188
192
|
const [rewardCoin] = transaction.splitCoins(isSui ? transaction.gas : transaction.object(mergeCoin.coinObjectId), [rewardValue]);
|
|
189
|
-
return
|
|
190
|
-
lendingMarketOwnerCap:
|
|
191
|
-
lendingMarket:
|
|
192
|
-
reserveArrayIndex
|
|
193
|
-
isDepositReward
|
|
194
|
-
rewards:
|
|
195
|
-
startTimeMs
|
|
196
|
-
endTimeMs
|
|
197
|
-
clock:
|
|
193
|
+
return this.addPoolRewardFunction(transaction, [this.lendingMarket.$typeArgs[0], rewardCoinType], {
|
|
194
|
+
lendingMarketOwnerCap: lendingMarketOwnerCapId,
|
|
195
|
+
lendingMarket: this.lendingMarket.id,
|
|
196
|
+
reserveArrayIndex,
|
|
197
|
+
isDepositReward,
|
|
198
|
+
rewards: rewardCoin,
|
|
199
|
+
startTimeMs,
|
|
200
|
+
endTimeMs,
|
|
201
|
+
clock: utils_1.SUI_CLOCK_OBJECT_ID,
|
|
198
202
|
});
|
|
199
203
|
});
|
|
200
204
|
}
|
|
201
205
|
cancelReward(lendingMarketOwnerCapId, reserveArrayIndex, isDepositReward, rewardIndex, rewardCoinType, transaction) {
|
|
202
|
-
return
|
|
206
|
+
return this.cancelPoolRewardFunction(transaction, [this.lendingMarket.$typeArgs[0], rewardCoinType], {
|
|
203
207
|
lendingMarketOwnerCap: lendingMarketOwnerCapId,
|
|
204
208
|
lendingMarket: this.lendingMarket.id,
|
|
205
209
|
reserveArrayIndex,
|
|
@@ -209,7 +213,7 @@ class SuilendClient {
|
|
|
209
213
|
});
|
|
210
214
|
}
|
|
211
215
|
closeReward(lendingMarketOwnerCapId, reserveArrayIndex, isDepositReward, rewardIndex, rewardCoinType, transaction) {
|
|
212
|
-
return
|
|
216
|
+
return this.closePoolRewardFunction(transaction, [this.lendingMarket.$typeArgs[0], rewardCoinType], {
|
|
213
217
|
lendingMarketOwnerCap: lendingMarketOwnerCapId,
|
|
214
218
|
lendingMarket: this.lendingMarket.id,
|
|
215
219
|
reserveArrayIndex,
|
|
@@ -219,7 +223,7 @@ class SuilendClient {
|
|
|
219
223
|
});
|
|
220
224
|
}
|
|
221
225
|
claimReward(obligationOwnerCapId, reserveArrayIndex, rewardIndex, rewardType, side, transaction) {
|
|
222
|
-
return
|
|
226
|
+
return this.claimRewardsFunction(transaction, [this.lendingMarket.$typeArgs[0], rewardType], {
|
|
223
227
|
lendingMarket: transaction.object(this.lendingMarket.id),
|
|
224
228
|
cap: transaction.object(obligationOwnerCapId),
|
|
225
229
|
clock: utils_1.SUI_CLOCK_OBJECT_ID,
|
|
@@ -229,7 +233,7 @@ class SuilendClient {
|
|
|
229
233
|
});
|
|
230
234
|
}
|
|
231
235
|
claimRewardsAndDeposit(obligationId, rewardReserveArrayIndex, rewardIndex, rewardType, side, depositReserveArrayIndex, transaction) {
|
|
232
|
-
return
|
|
236
|
+
return this.claimRewardsAndDepositFunction(transaction, [this.lendingMarket.$typeArgs[0], rewardType], {
|
|
233
237
|
lendingMarket: transaction.object(this.lendingMarket.id),
|
|
234
238
|
obligationId,
|
|
235
239
|
clock: transaction.object(utils_1.SUI_CLOCK_OBJECT_ID),
|
|
@@ -264,8 +268,8 @@ class SuilendClient {
|
|
|
264
268
|
}
|
|
265
269
|
updateReserveConfig(ownerId, lendingMarketOwnerCapId, transaction, coinType, createReserveConfigArgs) {
|
|
266
270
|
return __awaiter(this, void 0, void 0, function* () {
|
|
267
|
-
const [config] =
|
|
268
|
-
return
|
|
271
|
+
const [config] = this.createReserveConfigFunction(transaction, createReserveConfigArgs);
|
|
272
|
+
return this.updateReserveConfigFunction(transaction, [...this.lendingMarket.$typeArgs, coinType], {
|
|
269
273
|
lendingMarketOwnerCap: lendingMarketOwnerCapId,
|
|
270
274
|
lendingMarket: this.lendingMarket.id,
|
|
271
275
|
reserveArrayIndex: this.findReserveArrayIndex(coinType),
|
|
@@ -275,8 +279,8 @@ class SuilendClient {
|
|
|
275
279
|
}
|
|
276
280
|
updateRateLimiterConfig(lendingMarketOwnerCapId, transaction, newRateLimiterConfigArgs) {
|
|
277
281
|
return __awaiter(this, void 0, void 0, function* () {
|
|
278
|
-
const [config] =
|
|
279
|
-
return
|
|
282
|
+
const [config] = this.createRateLimiterConfigFunction(transaction, newRateLimiterConfigArgs);
|
|
283
|
+
return this.updateRateLimiterConfigFunction(transaction, this.lendingMarket.$typeArgs[0], {
|
|
280
284
|
lendingMarketOwnerCap: lendingMarketOwnerCapId,
|
|
281
285
|
lendingMarket: this.lendingMarket.id,
|
|
282
286
|
clock: utils_1.SUI_CLOCK_OBJECT_ID,
|
|
@@ -290,7 +294,7 @@ class SuilendClient {
|
|
|
290
294
|
pythPriceId,
|
|
291
295
|
]);
|
|
292
296
|
const priceInfoObjectIds = yield this.pythClient.updatePriceFeeds(transaction, priceUpdateData, [pythPriceId]);
|
|
293
|
-
return
|
|
297
|
+
return this.changeReservePriceFeedFunction(transaction, [this.lendingMarket.$typeArgs[0], coinType], {
|
|
294
298
|
lendingMarketOwnerCap: lendingMarketOwnerCapId,
|
|
295
299
|
lendingMarket: this.lendingMarket.id,
|
|
296
300
|
reserveArrayIndex: this.findReserveArrayIndex(coinType),
|
|
@@ -301,7 +305,7 @@ class SuilendClient {
|
|
|
301
305
|
}
|
|
302
306
|
createObligation(transaction) {
|
|
303
307
|
return transaction.moveCall({
|
|
304
|
-
target: `${
|
|
308
|
+
target: `${this.PUBLISHED_AT}::lending_market::create_obligation`,
|
|
305
309
|
arguments: [transaction.object(this.lendingMarket.id)],
|
|
306
310
|
typeArguments: this.lendingMarket.$typeArgs,
|
|
307
311
|
});
|
|
@@ -310,17 +314,17 @@ class SuilendClient {
|
|
|
310
314
|
return __awaiter(this, void 0, void 0, function* () {
|
|
311
315
|
const reserveArrayIndexToPriceId = new Map();
|
|
312
316
|
obligation.deposits.forEach((deposit) => {
|
|
313
|
-
const reserve = this.lendingMarket.reserves[
|
|
317
|
+
const reserve = this.lendingMarket.reserves[deposit.reserveArrayIndex];
|
|
314
318
|
reserveArrayIndexToPriceId.set(deposit.reserveArrayIndex, (0, utils_1.toHex)(new Uint8Array(reserve.priceIdentifier.bytes)));
|
|
315
319
|
});
|
|
316
320
|
obligation.borrows.forEach((borrow) => {
|
|
317
|
-
const reserve = this.lendingMarket.reserves[
|
|
321
|
+
const reserve = this.lendingMarket.reserves[borrow.reserveArrayIndex];
|
|
318
322
|
reserveArrayIndexToPriceId.set(borrow.reserveArrayIndex, (0, utils_1.toHex)(new Uint8Array(reserve.priceIdentifier.bytes)));
|
|
319
323
|
});
|
|
320
324
|
if (extraReserveArrayIndex != undefined &&
|
|
321
325
|
extraReserveArrayIndex >= 0 &&
|
|
322
326
|
extraReserveArrayIndex < this.lendingMarket.reserves.length) {
|
|
323
|
-
const reserve = this.lendingMarket.reserves[
|
|
327
|
+
const reserve = this.lendingMarket.reserves[extraReserveArrayIndex];
|
|
324
328
|
reserveArrayIndexToPriceId.set(extraReserveArrayIndex, (0, utils_1.toHex)(new Uint8Array(reserve.priceIdentifier.bytes)));
|
|
325
329
|
}
|
|
326
330
|
const tuples = Array.from(reserveArrayIndexToPriceId.entries()).sort();
|
|
@@ -347,7 +351,7 @@ class SuilendClient {
|
|
|
347
351
|
if (priceInfoObjectId == null) {
|
|
348
352
|
return;
|
|
349
353
|
}
|
|
350
|
-
|
|
354
|
+
this.refreshReservePriceFunction(transaction, this.lendingMarket.$typeArgs[0], {
|
|
351
355
|
lendingMarket: this.lendingMarket.id,
|
|
352
356
|
reserveArrayIndex,
|
|
353
357
|
clock: utils_1.SUI_CLOCK_OBJECT_ID,
|
|
@@ -357,13 +361,13 @@ class SuilendClient {
|
|
|
357
361
|
}
|
|
358
362
|
deposit(sendCoin, coinType, obligationOwnerCap, transaction) {
|
|
359
363
|
return __awaiter(this, void 0, void 0, function* () {
|
|
360
|
-
const [ctokens] =
|
|
364
|
+
const [ctokens] = this.depositLiquidityAndMintCtokensFunction(transaction, [this.lendingMarket.$typeArgs[0], coinType], {
|
|
361
365
|
lendingMarket: this.lendingMarket.id,
|
|
362
366
|
reserveArrayIndex: this.findReserveArrayIndex(coinType),
|
|
363
367
|
clock: utils_1.SUI_CLOCK_OBJECT_ID,
|
|
364
368
|
deposit: sendCoin,
|
|
365
369
|
});
|
|
366
|
-
|
|
370
|
+
this.depositCtokensIntoObligationFunction(transaction, [this.lendingMarket.$typeArgs[0], coinType], {
|
|
367
371
|
lendingMarket: this.lendingMarket.id,
|
|
368
372
|
reserveArrayIndex: this.findReserveArrayIndex(coinType),
|
|
369
373
|
obligationOwnerCap,
|
|
@@ -411,7 +415,7 @@ class SuilendClient {
|
|
|
411
415
|
transaction.mergeCoins(transaction.object(mergeCoin.coinObjectId), coins.map((c) => transaction.object(c.coinObjectId)).slice(1));
|
|
412
416
|
}
|
|
413
417
|
const [sendCoin] = transaction.splitCoins(isSui ? transaction.gas : transaction.object(mergeCoin.coinObjectId), [value]);
|
|
414
|
-
const [ctokens] =
|
|
418
|
+
const [ctokens] = this.depositLiquidityAndMintCtokensFunction(transaction, [this.lendingMarket.$typeArgs[0], coinType], {
|
|
415
419
|
lendingMarket: this.lendingMarket.id,
|
|
416
420
|
reserveArrayIndex: this.findReserveArrayIndex(coinType),
|
|
417
421
|
clock: utils_1.SUI_CLOCK_OBJECT_ID,
|
|
@@ -426,7 +430,7 @@ class SuilendClient {
|
|
|
426
430
|
if (!obligation)
|
|
427
431
|
throw new Error("Error: no obligation");
|
|
428
432
|
yield this.refreshAll(transaction, obligation);
|
|
429
|
-
const [ctokens] =
|
|
433
|
+
const [ctokens] = this.withdrawCtokensFunction(transaction, [this.lendingMarket.$typeArgs[0], coinType], {
|
|
430
434
|
lendingMarket: this.lendingMarket.id,
|
|
431
435
|
reserveArrayIndex: this.findReserveArrayIndex(coinType),
|
|
432
436
|
obligationOwnerCap: obligationOwnerCapId,
|
|
@@ -436,12 +440,12 @@ class SuilendClient {
|
|
|
436
440
|
const [exemption] = transaction.moveCall({
|
|
437
441
|
target: `0x1::option::none`,
|
|
438
442
|
typeArguments: [
|
|
439
|
-
`${
|
|
443
|
+
`${this.PACKAGE_ID}::lending_market::RateLimiterExemption<${this.lendingMarket.$typeArgs[0]}, ${coinType}>`,
|
|
440
444
|
],
|
|
441
445
|
arguments: [],
|
|
442
446
|
});
|
|
443
447
|
return transaction.moveCall({
|
|
444
|
-
target: `${
|
|
448
|
+
target: `${this.PUBLISHED_AT}::lending_market::redeem_ctokens_and_withdraw_liquidity`,
|
|
445
449
|
typeArguments: [this.lendingMarket.$typeArgs[0], coinType],
|
|
446
450
|
arguments: [
|
|
447
451
|
transaction.object(this.lendingMarket.id),
|
|
@@ -465,7 +469,7 @@ class SuilendClient {
|
|
|
465
469
|
if (!obligation)
|
|
466
470
|
throw new Error("Error: no obligation");
|
|
467
471
|
yield this.refreshAll(transaction, obligation, this.findReserveArrayIndex(coinType));
|
|
468
|
-
const result =
|
|
472
|
+
const result = this.borrowFunction(transaction, [this.lendingMarket.$typeArgs[0], coinType], {
|
|
469
473
|
lendingMarket: this.lendingMarket.id,
|
|
470
474
|
reserveArrayIndex: this.findReserveArrayIndex(coinType),
|
|
471
475
|
obligationOwnerCap: obligationOwnerCapId,
|
|
@@ -482,7 +486,7 @@ class SuilendClient {
|
|
|
482
486
|
});
|
|
483
487
|
}
|
|
484
488
|
repay(obligationId, coinType, coin, transaction) {
|
|
485
|
-
return
|
|
489
|
+
return this.repayFunction(transaction, [this.lendingMarket.$typeArgs[0], coinType], {
|
|
486
490
|
lendingMarket: this.lendingMarket.id,
|
|
487
491
|
reserveArrayIndex: this.findReserveArrayIndex(coinType),
|
|
488
492
|
obligationId: obligationId,
|
|
@@ -513,12 +517,12 @@ class SuilendClient {
|
|
|
513
517
|
const [optionalExemption] = transaction.moveCall({
|
|
514
518
|
target: `0x1::option::some`,
|
|
515
519
|
typeArguments: [
|
|
516
|
-
`${
|
|
520
|
+
`${this.PUBLISHED_AT}::lending_market::RateLimiterExemption<${this.lendingMarket.$typeArgs[0]}, ${withdrawCoinType}>`,
|
|
517
521
|
],
|
|
518
522
|
arguments: [exemption],
|
|
519
523
|
});
|
|
520
524
|
return transaction.moveCall({
|
|
521
|
-
target: `${
|
|
525
|
+
target: `${this.PUBLISHED_AT}::lending_market::redeem_ctokens_and_withdraw_liquidity`,
|
|
522
526
|
typeArguments: [this.lendingMarket.$typeArgs[0], withdrawCoinType],
|
|
523
527
|
arguments: [
|
|
524
528
|
transaction.object(this.lendingMarket.id),
|
|
@@ -533,7 +537,7 @@ class SuilendClient {
|
|
|
533
537
|
liquidate(transaction, obligation, repayCoinType, withdrawCoinType, repayCoinId) {
|
|
534
538
|
return __awaiter(this, void 0, void 0, function* () {
|
|
535
539
|
yield this.refreshAll(transaction, obligation);
|
|
536
|
-
return
|
|
540
|
+
return this.liquidateFunction(transaction, [this.lendingMarket.$typeArgs[0], repayCoinType, withdrawCoinType], {
|
|
537
541
|
lendingMarket: this.lendingMarket.id,
|
|
538
542
|
obligationId: obligation.id,
|
|
539
543
|
repayReserveArrayIndex: this.findReserveArrayIndex(repayCoinType),
|
|
@@ -544,13 +548,13 @@ class SuilendClient {
|
|
|
544
548
|
});
|
|
545
549
|
}
|
|
546
550
|
migrate(transaction, lendingMarketOwnerCapId) {
|
|
547
|
-
return
|
|
551
|
+
return this.migrateFunction(transaction, this.lendingMarket.$typeArgs[0], {
|
|
548
552
|
lendingMarketOwnerCap: lendingMarketOwnerCapId,
|
|
549
553
|
lendingMarket: this.lendingMarket.id,
|
|
550
554
|
});
|
|
551
555
|
}
|
|
552
556
|
claimFees(transaction, coinType) {
|
|
553
|
-
return
|
|
557
|
+
return this.claimFeesFunction(transaction, [this.lendingMarket.$typeArgs[0], coinType], {
|
|
554
558
|
lendingMarket: this.lendingMarket.id,
|
|
555
559
|
reserveArrayIndex: this.findReserveArrayIndex(coinType),
|
|
556
560
|
});
|
|
@@ -575,7 +579,7 @@ class SuilendClient {
|
|
|
575
579
|
transaction.mergeCoins(transaction.object(mergeCoin.coinObjectId), mergeCoins.map((mc) => transaction.object(mc.coinObjectId)).slice(1));
|
|
576
580
|
}
|
|
577
581
|
const coinType = (0, utils_2.extractCTokenCoinType)(ctokenCoinType);
|
|
578
|
-
const [redeemCoin] =
|
|
582
|
+
const [redeemCoin] = this.redeemCtokensAndWithdrawLiquidityFunction(transaction, [this.lendingMarket.$typeArgs[0], coinType], {
|
|
579
583
|
lendingMarket: this.lendingMarket.id,
|
|
580
584
|
reserveArrayIndex: this.findReserveArrayIndex(coinType),
|
|
581
585
|
clock: utils_1.SUI_CLOCK_OBJECT_ID,
|
|
@@ -3,7 +3,12 @@ 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.WAD = exports.maxU64 = void 0;
|
|
6
|
+
exports.SdkEnv = 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 = {}));
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import BigNumber from "bignumber.js";
|
|
2
|
+
export interface Deps {
|
|
3
|
+
LendingMarket: any;
|
|
4
|
+
Obligation: any;
|
|
5
|
+
Reserve: any;
|
|
6
|
+
PoolRewardManager: any;
|
|
7
|
+
PoolReward: any;
|
|
8
|
+
simulate: {
|
|
9
|
+
calculateUtilizationPercent: (reserve: Deps["Reserve"]) => BigNumber;
|
|
10
|
+
calculateBorrowAprPercent: (reserve: Deps["Reserve"]) => BigNumber;
|
|
11
|
+
calculateDepositAprPercent: (reserve: Deps["Reserve"]) => BigNumber;
|
|
12
|
+
cTokenRatio: (reserve: Deps["Reserve"]) => BigNumber;
|
|
13
|
+
};
|
|
14
|
+
RateLimiter: any;
|
|
15
|
+
}
|