@suilend/sdk 1.1.4 → 1.1.7

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.
Files changed (120) hide show
  1. package/core/client.d.ts +117 -0
  2. package/{client.js → core/client.js} +97 -93
  3. package/{constants.d.ts → core/constants.d.ts} +4 -0
  4. package/{constants.js → core/constants.js} +6 -1
  5. package/core/parsers/deps.d.ts +15 -0
  6. package/core/parsers/deps.js +2 -0
  7. package/{parsers → core/parsers}/lendingMarket.d.ts +37 -38
  8. package/{parsers → core/parsers}/lendingMarket.js +4 -14
  9. package/{parsers → core/parsers}/obligation.d.ts +60 -60
  10. package/{parsers → core/parsers}/obligation.js +1 -1
  11. package/core/parsers/rateLimiter.d.ts +19 -0
  12. package/{parsers → core/parsers}/rateLimiter.js +3 -3
  13. package/{parsers → core/parsers}/reserve.d.ts +46 -47
  14. package/{parsers → core/parsers}/reserve.js +8 -32
  15. package/core/types.d.ts +882 -0
  16. package/core/types.js +132 -0
  17. package/core/utils/simulate.d.ts +56 -0
  18. package/core/utils/simulate.js +312 -0
  19. package/index.d.ts +1 -7
  20. package/index.js +1 -7
  21. package/{_generated → mainnet/_generated}/suilend/index.d.ts +1 -2
  22. package/{_generated → mainnet/_generated}/suilend/index.js +1 -5
  23. package/mainnet/api/events.d.ts +1 -0
  24. package/mainnet/api/events.js +17 -0
  25. package/mainnet/client.d.ts +18 -0
  26. package/mainnet/client.js +110 -0
  27. package/mainnet/constants.d.ts +3 -0
  28. package/mainnet/constants.js +20 -0
  29. package/mainnet/index.d.ts +6 -0
  30. package/mainnet/index.js +22 -0
  31. package/mainnet/parsers/apiReserveAssetDataEvent.d.ts +1 -0
  32. package/mainnet/parsers/apiReserveAssetDataEvent.js +17 -0
  33. package/{parsers → mainnet/parsers}/index.d.ts +0 -1
  34. package/{parsers → mainnet/parsers}/index.js +0 -1
  35. package/mainnet/parsers/lendingMarket.d.ts +127 -0
  36. package/mainnet/parsers/lendingMarket.js +41 -0
  37. package/mainnet/parsers/obligation.d.ts +10 -0
  38. package/mainnet/parsers/obligation.js +30 -0
  39. package/{parsers → mainnet/parsers}/rateLimiter.d.ts +9 -10
  40. package/mainnet/parsers/rateLimiter.js +32 -0
  41. package/mainnet/parsers/reserve.d.ts +166 -0
  42. package/mainnet/parsers/reserve.js +38 -0
  43. package/mainnet/types.d.ts +1 -0
  44. package/{api/index.js → mainnet/types.js} +1 -1
  45. package/mainnet/utils/events.d.ts +1 -0
  46. package/mainnet/utils/events.js +17 -0
  47. package/mainnet/utils/simulate.js +78 -0
  48. package/mainnet/utils.d.ts +1 -0
  49. package/mainnet/utils.js +17 -0
  50. package/package.json +1 -1
  51. package/api/index.d.ts +0 -1
  52. package/client.d.ts +0 -64
  53. package/types.d.ts +0 -200
  54. package/types.js +0 -15
  55. package/utils/simulate.js +0 -316
  56. /package/{api → core/api}/events.d.ts +0 -0
  57. /package/{api → core/api}/events.js +0 -0
  58. /package/{parsers → core/parsers}/apiReserveAssetDataEvent.d.ts +0 -0
  59. /package/{parsers → core/parsers}/apiReserveAssetDataEvent.js +0 -0
  60. /package/{utils → core/utils}/events.d.ts +0 -0
  61. /package/{utils → core/utils}/events.js +0 -0
  62. /package/{utils.d.ts → core/utils.d.ts} +0 -0
  63. /package/{utils.js → core/utils.js} +0 -0
  64. /package/{_generated → mainnet/_generated}/_dependencies/source/0x1/ascii/structs.d.ts +0 -0
  65. /package/{_generated → mainnet/_generated}/_dependencies/source/0x1/ascii/structs.js +0 -0
  66. /package/{_generated → mainnet/_generated}/_dependencies/source/0x1/index.d.ts +0 -0
  67. /package/{_generated → mainnet/_generated}/_dependencies/source/0x1/index.js +0 -0
  68. /package/{_generated → mainnet/_generated}/_dependencies/source/0x1/option/structs.d.ts +0 -0
  69. /package/{_generated → mainnet/_generated}/_dependencies/source/0x1/option/structs.js +0 -0
  70. /package/{_generated → mainnet/_generated}/_dependencies/source/0x1/type-name/structs.d.ts +0 -0
  71. /package/{_generated → mainnet/_generated}/_dependencies/source/0x1/type-name/structs.js +0 -0
  72. /package/{_generated → mainnet/_generated}/_dependencies/source/0x2/bag/structs.d.ts +0 -0
  73. /package/{_generated → mainnet/_generated}/_dependencies/source/0x2/bag/structs.js +0 -0
  74. /package/{_generated → mainnet/_generated}/_dependencies/source/0x2/balance/structs.d.ts +0 -0
  75. /package/{_generated → mainnet/_generated}/_dependencies/source/0x2/balance/structs.js +0 -0
  76. /package/{_generated → mainnet/_generated}/_dependencies/source/0x2/index.d.ts +0 -0
  77. /package/{_generated → mainnet/_generated}/_dependencies/source/0x2/index.js +0 -0
  78. /package/{_generated → mainnet/_generated}/_dependencies/source/0x2/object/structs.d.ts +0 -0
  79. /package/{_generated → mainnet/_generated}/_dependencies/source/0x2/object/structs.js +0 -0
  80. /package/{_generated → mainnet/_generated}/_dependencies/source/0x2/object-table/structs.d.ts +0 -0
  81. /package/{_generated → mainnet/_generated}/_dependencies/source/0x2/object-table/structs.js +0 -0
  82. /package/{_generated → mainnet/_generated}/_dependencies/source/0x8d97f1cd6ac663735be08d1d2b6d02a159e711586461306ce60a2b7a6a565a9e/index.d.ts +0 -0
  83. /package/{_generated → mainnet/_generated}/_dependencies/source/0x8d97f1cd6ac663735be08d1d2b6d02a159e711586461306ce60a2b7a6a565a9e/index.js +0 -0
  84. /package/{_generated → mainnet/_generated}/_dependencies/source/0x8d97f1cd6ac663735be08d1d2b6d02a159e711586461306ce60a2b7a6a565a9e/price-identifier/structs.d.ts +0 -0
  85. /package/{_generated → mainnet/_generated}/_dependencies/source/0x8d97f1cd6ac663735be08d1d2b6d02a159e711586461306ce60a2b7a6a565a9e/price-identifier/structs.js +0 -0
  86. /package/{_generated → mainnet/_generated}/_framework/reified.d.ts +0 -0
  87. /package/{_generated → mainnet/_generated}/_framework/reified.js +0 -0
  88. /package/{_generated → mainnet/_generated}/_framework/util.d.ts +0 -0
  89. /package/{_generated → mainnet/_generated}/_framework/util.js +0 -0
  90. /package/{_generated → mainnet/_generated}/_framework/vector.d.ts +0 -0
  91. /package/{_generated → mainnet/_generated}/_framework/vector.js +0 -0
  92. /package/{_generated → mainnet/_generated}/suilend/cell/structs.d.ts +0 -0
  93. /package/{_generated → mainnet/_generated}/suilend/cell/structs.js +0 -0
  94. /package/{_generated → mainnet/_generated}/suilend/decimal/structs.d.ts +0 -0
  95. /package/{_generated → mainnet/_generated}/suilend/decimal/structs.js +0 -0
  96. /package/{_generated → mainnet/_generated}/suilend/lending-market/functions.d.ts +0 -0
  97. /package/{_generated → mainnet/_generated}/suilend/lending-market/functions.js +0 -0
  98. /package/{_generated → mainnet/_generated}/suilend/lending-market/structs.d.ts +0 -0
  99. /package/{_generated → mainnet/_generated}/suilend/lending-market/structs.js +0 -0
  100. /package/{_generated → mainnet/_generated}/suilend/lending-market-registry/functions.d.ts +0 -0
  101. /package/{_generated → mainnet/_generated}/suilend/lending-market-registry/functions.js +0 -0
  102. /package/{_generated → mainnet/_generated}/suilend/liquidity-mining/structs.d.ts +0 -0
  103. /package/{_generated → mainnet/_generated}/suilend/liquidity-mining/structs.js +0 -0
  104. /package/{_generated → mainnet/_generated}/suilend/obligation/structs.d.ts +0 -0
  105. /package/{_generated → mainnet/_generated}/suilend/obligation/structs.js +0 -0
  106. /package/{_generated → mainnet/_generated}/suilend/rate-limiter/functions.d.ts +0 -0
  107. /package/{_generated → mainnet/_generated}/suilend/rate-limiter/functions.js +0 -0
  108. /package/{_generated → mainnet/_generated}/suilend/rate-limiter/structs.d.ts +0 -0
  109. /package/{_generated → mainnet/_generated}/suilend/rate-limiter/structs.js +0 -0
  110. /package/{_generated → mainnet/_generated}/suilend/reserve/structs.d.ts +0 -0
  111. /package/{_generated → mainnet/_generated}/suilend/reserve/structs.js +0 -0
  112. /package/{_generated → mainnet/_generated}/suilend/reserve-config/functions.d.ts +0 -0
  113. /package/{_generated → mainnet/_generated}/suilend/reserve-config/functions.js +0 -0
  114. /package/{_generated → mainnet/_generated}/suilend/reserve-config/structs.d.ts +0 -0
  115. /package/{_generated → mainnet/_generated}/suilend/reserve-config/structs.js +0 -0
  116. /package/{utils → mainnet/utils}/index.d.ts +0 -0
  117. /package/{utils → mainnet/utils}/index.js +0 -0
  118. /package/{utils → mainnet/utils}/obligation.d.ts +0 -0
  119. /package/{utils → mainnet/utils}/obligation.js +0 -0
  120. /package/{utils → mainnet/utils}/simulate.d.ts +0 -0
@@ -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 = exports.LENDING_MARKET_TYPE = exports.LENDING_MARKET_ID = void 0;
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
- static initialize(lendingMarketId, lendingMarketType, client) {
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 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);
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(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));
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: [`${structs_1.LendingMarket.$typeName}<${lendingMarketType}>}`],
85
+ typeArguments: [`${LendingMarket.$typeName}<${lendingMarketType}>}`],
82
86
  arguments: [lendingMarket],
83
87
  });
84
88
  return ownerCap;
85
89
  });
86
90
  }
87
- static getObligationOwnerCaps(ownerId, lendingMarketTypeArgs, client) {
88
- return __awaiter(this, void 0, void 0, function* () {
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: `${suilend_2.PACKAGE_ID}::lending_market::ObligationOwnerCap<${lendingMarketTypeArgs[0]}>`,
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(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
+ 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(obligationId, lendingMarketTypeArgs, client) {
118
- return __awaiter(this, void 0, void 0, function* () {
119
- var _a, _b;
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 (((_b = (_a = obligationData.data) === null || _a === void 0 ? void 0 : _a.bcs) === null || _b === void 0 ? void 0 : _b.dataType) !== "moveObject") {
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 = structs_2.Obligation.fromBcs((0, reified_1.phantom)(lendingMarketTypeArgs[0]), (0, utils_1.fromBase64)(obligationData.data.bcs.bcsBytes));
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(ownerId, lendingMarketTypeArgs, client) {
135
- return __awaiter(this, void 0, void 0, function* () {
136
- var _a;
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: `${suilend_2.PACKAGE_ID}::lending_market::LendingMarketOwnerCap<${lendingMarketTypeArgs[0]}>`,
144
+ StructType: `${PACKAGE_ID}::lending_market::LendingMarketOwnerCap<${lendingMarketTypeArgs[0]}>`,
141
145
  },
142
146
  });
143
147
  if (objs.data.length > 0)
144
- return (_a = objs.data[0].data) === null || _a === void 0 ? void 0 : _a.objectId;
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] = (0, functions_4.createReserveConfig)(transaction, createReserveConfigArgs);
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 (0, functions_1.addReserve)(transaction, [this.lendingMarket.$typeArgs[0], coinType], {
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 (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),
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 (0, functions_1.cancelPoolReward)(transaction, [this.lendingMarket.$typeArgs[0], rewardCoinType], {
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 (0, functions_1.closePoolReward)(transaction, [this.lendingMarket.$typeArgs[0], rewardCoinType], {
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 (0, functions_1.claimRewards)(transaction, [this.lendingMarket.$typeArgs[0], rewardType], {
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 (0, functions_1.claimRewardsAndDeposit)(transaction, [this.lendingMarket.$typeArgs[0], rewardType], {
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] = (0, functions_4.createReserveConfig)(transaction, createReserveConfigArgs);
268
- return (0, functions_1.updateReserveConfig)(transaction, [...this.lendingMarket.$typeArgs, coinType], {
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] = (0, functions_3.newConfig)(transaction, newRateLimiterConfigArgs);
279
- return (0, functions_1.updateRateLimiterConfig)(transaction, this.lendingMarket.$typeArgs[0], {
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 (0, functions_1.changeReservePriceFeed)(transaction, [this.lendingMarket.$typeArgs[0], coinType], {
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: `${suilend_2.PUBLISHED_AT}::lending_market::create_obligation`,
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[Number(deposit.reserveArrayIndex)];
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[Number(borrow.reserveArrayIndex)];
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[Number(extraReserveArrayIndex)];
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
- (0, functions_1.refreshReservePrice)(transaction, this.lendingMarket.$typeArgs[0], {
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] = (0, functions_1.depositLiquidityAndMintCtokens)(transaction, [this.lendingMarket.$typeArgs[0], coinType], {
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
- (0, functions_1.depositCtokensIntoObligation)(transaction, [this.lendingMarket.$typeArgs[0], coinType], {
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] = (0, functions_1.depositLiquidityAndMintCtokens)(transaction, [this.lendingMarket.$typeArgs[0], coinType], {
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] = (0, functions_1.withdrawCtokens)(transaction, [this.lendingMarket.$typeArgs[0], coinType], {
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
- `${suilend_2.PACKAGE_ID}::lending_market::RateLimiterExemption<${this.lendingMarket.$typeArgs[0]}, ${coinType}>`,
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: `${suilend_2.PUBLISHED_AT}::lending_market::redeem_ctokens_and_withdraw_liquidity`,
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 = (0, functions_1.borrow)(transaction, [this.lendingMarket.$typeArgs[0], coinType], {
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 (0, functions_1.repay)(transaction, [this.lendingMarket.$typeArgs[0], coinType], {
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
- `${suilend_2.PUBLISHED_AT}::lending_market::RateLimiterExemption<${this.lendingMarket.$typeArgs[0]}, ${withdrawCoinType}>`,
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: `${suilend_2.PUBLISHED_AT}::lending_market::redeem_ctokens_and_withdraw_liquidity`,
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 (0, functions_1.liquidate)(transaction, [this.lendingMarket.$typeArgs[0], repayCoinType, withdrawCoinType], {
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 (0, functions_1.migrate)(transaction, this.lendingMarket.$typeArgs[0], {
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 (0, functions_1.claimFees)(transaction, [this.lendingMarket.$typeArgs[0], coinType], {
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] = (0, functions_1.redeemCtokensAndWithdrawLiquidity)(transaction, [this.lendingMarket.$typeArgs[0], coinType], {
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,
@@ -1,3 +1,7 @@
1
1
  import BigNumber from "bignumber.js";
2
2
  export declare const maxU64: BigNumber;
3
3
  export declare const WAD: BigNumber;
4
+ export declare enum SdkEnv {
5
+ BETA = "beta",
6
+ MAINNET = "mainnet"
7
+ }
@@ -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
+ }
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });