@suilend/sdk 3.0.7 → 4.0.0

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 (71) hide show
  1. package/_generated/_dependencies/source/0x1/ascii/structs.d.ts +4 -4
  2. package/_generated/_dependencies/source/0x1/ascii/structs.js +42 -41
  3. package/_generated/_dependencies/source/0x1/option/structs.js +22 -26
  4. package/_generated/_dependencies/source/0x1/type-name/structs.d.ts +3 -3
  5. package/_generated/_dependencies/source/0x1/type-name/structs.js +21 -25
  6. package/_generated/_dependencies/source/0x2/bag/structs.d.ts +5 -5
  7. package/_generated/_dependencies/source/0x2/bag/structs.js +22 -25
  8. package/_generated/_dependencies/source/0x2/balance/structs.d.ts +4 -4
  9. package/_generated/_dependencies/source/0x2/balance/structs.js +42 -41
  10. package/_generated/_dependencies/source/0x2/object/structs.d.ts +5 -5
  11. package/_generated/_dependencies/source/0x2/object/structs.js +42 -41
  12. package/_generated/_dependencies/source/0x2/object-table/structs.d.ts +5 -5
  13. package/_generated/_dependencies/source/0x2/object-table/structs.js +22 -25
  14. package/_generated/_dependencies/source/0x8d97f1cd6ac663735be08d1d2b6d02a159e711586461306ce60a2b7a6a565a9e/i64/structs.d.ts +3 -3
  15. package/_generated/_dependencies/source/0x8d97f1cd6ac663735be08d1d2b6d02a159e711586461306ce60a2b7a6a565a9e/i64/structs.js +22 -25
  16. package/_generated/_dependencies/source/0x8d97f1cd6ac663735be08d1d2b6d02a159e711586461306ce60a2b7a6a565a9e/price/structs.d.ts +9 -9
  17. package/_generated/_dependencies/source/0x8d97f1cd6ac663735be08d1d2b6d02a159e711586461306ce60a2b7a6a565a9e/price/structs.js +24 -25
  18. package/_generated/_dependencies/source/0x8d97f1cd6ac663735be08d1d2b6d02a159e711586461306ce60a2b7a6a565a9e/price-feed/structs.d.ts +21 -21
  19. package/_generated/_dependencies/source/0x8d97f1cd6ac663735be08d1d2b6d02a159e711586461306ce60a2b7a6a565a9e/price-feed/structs.js +23 -25
  20. package/_generated/_dependencies/source/0x8d97f1cd6ac663735be08d1d2b6d02a159e711586461306ce60a2b7a6a565a9e/price-identifier/structs.d.ts +2 -2
  21. package/_generated/_dependencies/source/0x8d97f1cd6ac663735be08d1d2b6d02a159e711586461306ce60a2b7a6a565a9e/price-identifier/structs.js +21 -25
  22. package/_generated/_dependencies/source/0x8d97f1cd6ac663735be08d1d2b6d02a159e711586461306ce60a2b7a6a565a9e/price-info/structs.d.ts +52 -52
  23. package/_generated/_dependencies/source/0x8d97f1cd6ac663735be08d1d2b6d02a159e711586461306ce60a2b7a6a565a9e/price-info/structs.js +45 -41
  24. package/_generated/_framework/vector.js +9 -6
  25. package/_generated/suilend/cell/structs.d.ts +1 -1
  26. package/_generated/suilend/cell/structs.js +21 -25
  27. package/_generated/suilend/decimal/structs.d.ts +2 -2
  28. package/_generated/suilend/decimal/structs.js +21 -25
  29. package/_generated/suilend/lending-market/structs.d.ts +129 -129
  30. package/_generated/suilend/lending-market/structs.js +391 -265
  31. package/_generated/suilend/liquidity-mining/structs.d.ts +44 -44
  32. package/_generated/suilend/liquidity-mining/structs.js +122 -89
  33. package/_generated/suilend/obligation/structs.d.ts +98 -98
  34. package/_generated/suilend/obligation/structs.js +194 -121
  35. package/_generated/suilend/rate-limiter/structs.d.ts +12 -12
  36. package/_generated/suilend/rate-limiter/structs.js +46 -41
  37. package/_generated/suilend/reserve/structs.d.ts +128 -128
  38. package/_generated/suilend/reserve/structs.js +243 -153
  39. package/_generated/suilend/reserve-config/structs.d.ts +30 -30
  40. package/_generated/suilend/reserve-config/structs.js +60 -41
  41. package/api/events.js +5 -14
  42. package/client.js +267 -319
  43. package/lib/initialize.d.ts +2 -2
  44. package/lib/initialize.js +26 -31
  45. package/lib/liquidityMining.js +15 -19
  46. package/lib/pyth.js +6 -15
  47. package/lib/pythAdapter.js +96 -112
  48. package/lib/strategyOwnerCap.js +8 -17
  49. package/margin/margin/admin_cap.d.ts +2 -2
  50. package/margin/margin/deps/std/type_name.d.ts +1 -1
  51. package/margin/margin/deps/suilend/lending_market.d.ts +2 -2
  52. package/margin/margin/market.d.ts +11 -11
  53. package/margin/margin/market.js +22 -22
  54. package/margin/margin/permissions.js +14 -14
  55. package/margin/margin/position.d.ts +47 -47
  56. package/margin/margin/position.js +10 -10
  57. package/margin/margin/router.d.ts +5 -5
  58. package/margin/margin/router.js +16 -16
  59. package/margin/margin/version.d.ts +1 -1
  60. package/margin/utils/index.js +22 -36
  61. package/package.json +1 -1
  62. package/parsers/apiReserveAssetDataEvent.js +4 -1
  63. package/parsers/lendingMarket.js +3 -4
  64. package/parsers/reserve.js +4 -1
  65. package/strategies.js +188 -204
  66. package/swap/quote.d.ts +1 -1
  67. package/swap/quote.js +28 -39
  68. package/swap/transaction.js +17 -26
  69. package/utils/events.js +20 -32
  70. package/utils/obligation.js +111 -135
  71. package/utils/simulate.js +16 -24
package/utils/simulate.js CHANGED
@@ -1,12 +1,3 @@
1
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
2
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
3
- return new (P || (P = Promise))(function (resolve, reject) {
4
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
5
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
6
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
7
- step((generator = generator.apply(thisArg, _arguments || [])).next());
8
- });
9
- };
10
1
  import { bcs } from "@mysten/sui/bcs";
11
2
  import { toHex } from "@mysten/sui/utils";
12
3
  import BigNumber from "bignumber.js";
@@ -68,7 +59,6 @@ export const calculateDepositAprPercent = (reserve) => {
68
59
  return calculateSupplyApr(reserve);
69
60
  };
70
61
  export const compoundReserveInterest = (reserve, nowS) => {
71
- var _a, _b;
72
62
  const timeElapsedSeconds = nowS - Number(reserve.interestLastUpdateTimestampS);
73
63
  if (timeElapsedSeconds === 0) {
74
64
  return reserve;
@@ -79,13 +69,13 @@ export const compoundReserveInterest = (reserve, nowS) => {
79
69
  .div(100)
80
70
  .div(365 * 24 * 60 * 60))
81
71
  .pow(new BigNumber(timeElapsedSeconds).toNumber());
82
- const updatedReserve = Object.assign({}, reserve);
72
+ const updatedReserve = { ...reserve };
83
73
  const oldBorrowedAmount = decimalToBigNumber(reserve.borrowedAmount);
84
74
  const oldCumulativeBorrowRate = decimalToBigNumber(reserve.cumulativeBorrowRate);
85
75
  const oldUnclaimedSpreadFees = decimalToBigNumber(reserve.unclaimedSpreadFees);
86
76
  updatedReserve.cumulativeBorrowRate = stringToDecimal(compoundedBorrowRate.multipliedBy(oldCumulativeBorrowRate).toString());
87
77
  const netNewDebt = oldBorrowedAmount.multipliedBy(compoundedBorrowRate.minus(1));
88
- const spreadFee = new BigNumber(((_b = (_a = reserve.config.element) === null || _a === void 0 ? void 0 : _a.spreadFeeBps) === null || _b === void 0 ? void 0 : _b.toString()) || 0);
78
+ const spreadFee = new BigNumber(reserve.config.element?.spreadFeeBps?.toString() || 0);
89
79
  updatedReserve.unclaimedSpreadFees = stringToDecimal(oldUnclaimedSpreadFees
90
80
  .plus(netNewDebt.multipliedBy(spreadFee.dividedBy(10000)))
91
81
  .toString());
@@ -96,7 +86,7 @@ export const compoundReserveInterest = (reserve, nowS) => {
96
86
  return updatedReserve;
97
87
  };
98
88
  export const updatePoolRewardsManager = (manager, nowMs) => {
99
- const updatedManager = Object.assign({}, manager);
89
+ const updatedManager = { ...manager };
100
90
  const timeElapsedMs = nowMs - Number(manager.lastUpdateTimeMs);
101
91
  if (manager.totalShares === BigInt(0) || timeElapsedMs === 0) {
102
92
  return updatedManager;
@@ -109,7 +99,7 @@ export const updatePoolRewardsManager = (manager, nowMs) => {
109
99
  manager.lastUpdateTimeMs >= poolReward.endTimeMs) {
110
100
  return poolReward;
111
101
  }
112
- const updatedPoolReward = Object.assign({}, poolReward);
102
+ const updatedPoolReward = { ...poolReward };
113
103
  const endTimeMs = Number(poolReward.endTimeMs);
114
104
  const startTimeMs = Number(poolReward.startTimeMs);
115
105
  const lastUpdateTimeMs = Number(manager.lastUpdateTimeMs);
@@ -128,9 +118,9 @@ export const updatePoolRewardsManager = (manager, nowMs) => {
128
118
  updatedManager.lastUpdateTimeMs = BigInt(nowMs);
129
119
  return updatedManager;
130
120
  };
131
- export const refreshReservePrice = (reserves, pythConnection) => __awaiter(void 0, void 0, void 0, function* () {
121
+ export const refreshReservePrice = async (reserves, pythConnection) => {
132
122
  const priceIdentifiers = Array.from(new Set(reserves.map((r) => toHex(new Uint8Array(r.priceIdentifier.bytes)))));
133
- const priceFeeds = yield pythConnection.getLatestPriceFeeds(priceIdentifiers);
123
+ const priceFeeds = await pythConnection.getLatestPriceFeeds(priceIdentifiers);
134
124
  if (!priceFeeds)
135
125
  return reserves;
136
126
  const updatedReserves = [];
@@ -139,16 +129,16 @@ export const refreshReservePrice = (reserves, pythConnection) => __awaiter(void
139
129
  const priceFeed = priceFeeds.find((p) => p.id === toHex(new Uint8Array(reserve.priceIdentifier.bytes)));
140
130
  if (!priceFeed)
141
131
  throw new Error(`Price feed not found for reserve ${reserve.coinType.name}`);
142
- const newReserve = Object.assign({}, reserve);
132
+ const newReserve = { ...reserve };
143
133
  newReserve.price = stringToDecimal(priceFeed.getPriceUnchecked().getPriceAsNumberUnchecked().toString());
144
134
  newReserve.smoothedPrice = stringToDecimal(priceFeed.getEmaPriceUnchecked().getPriceAsNumberUnchecked().toString());
145
135
  newReserve.priceLastUpdateTimestampS = BigInt(priceFeed.getPriceUnchecked().publishTime);
146
136
  updatedReserves.push(newReserve);
147
137
  }
148
138
  return updatedReserves;
149
- });
139
+ };
150
140
  export const updateUserRewardManager = (poolManager, userRewardManager, nowMs) => {
151
- const updatedUserRewardManager = Object.assign({}, userRewardManager);
141
+ const updatedUserRewardManager = { ...userRewardManager };
152
142
  for (let i = 0; i < poolManager.poolRewards.length; i++) {
153
143
  const poolReward = poolManager.poolRewards[i];
154
144
  if (poolReward == null) {
@@ -158,7 +148,7 @@ export const updateUserRewardManager = (poolManager, userRewardManager, nowMs) =
158
148
  userRewardManager.rewards.push(null);
159
149
  }
160
150
  const oldReward = updatedUserRewardManager.rewards[i];
161
- const reward = Object.assign({}, oldReward);
151
+ const reward = { ...oldReward };
162
152
  if (oldReward != null) {
163
153
  const newRewards = decimalToBigNumber(poolReward.cumulativeRewardsPerShare)
164
154
  .minus(decimalToBigNumber(oldReward.cumulativeRewardsPerShare))
@@ -183,13 +173,13 @@ export const updateUserRewardManager = (poolManager, userRewardManager, nowMs) =
183
173
  return updatedUserRewardManager;
184
174
  };
185
175
  export const refreshObligation = (unrefreshedObligation, refreshedReserves) => {
186
- const obligation = Object.assign({}, unrefreshedObligation);
176
+ const obligation = { ...unrefreshedObligation };
187
177
  // Refresh Deposits
188
178
  let depositValueUsd = new BigNumber(0);
189
179
  let allowedBorrowValueUsd = new BigNumber(0);
190
180
  let unhealthyBorrowValueUsd = new BigNumber(0);
191
181
  for (let i = 0; i < obligation.deposits.length; i++) {
192
- const deposit = Object.assign({}, obligation.deposits[i]);
182
+ const deposit = { ...obligation.deposits[i] };
193
183
  const reserve = refreshedReserves.find((r) => r.coinType.name === deposit.coinType.name);
194
184
  if (!reserve) {
195
185
  throw new Error(`Unable to find reserve for coin type ${deposit.coinType.name}`);
@@ -219,7 +209,9 @@ export const refreshObligation = (unrefreshedObligation, refreshedReserves) => {
219
209
  throw new Error(`Unable to find reserve for coin type ${unrefreshedBorrow.coinType.name}`);
220
210
  }
221
211
  const config = reserve.config.element;
222
- const borrow = Object.assign({}, compoundDebt(unrefreshedBorrow, reserve));
212
+ const borrow = {
213
+ ...compoundDebt(unrefreshedBorrow, reserve),
214
+ };
223
215
  obligation.userRewardManagers[Number(borrow.userRewardManagerIndex)] =
224
216
  updateUserRewardManager(reserve.borrowsPoolRewardManager, obligation.userRewardManagers[Number(borrow.userRewardManagerIndex)], Date.now());
225
217
  const marketValue = decimalToBigNumber(borrow.borrowedAmount)
@@ -276,7 +268,7 @@ export const totalSupply = (reserve) => {
276
268
  .minus(decimalToBigNumber(reserve.unclaimedSpreadFees));
277
269
  };
278
270
  export const compoundDebt = (borrow, reserve) => {
279
- const borrowCopy = Object.assign({}, borrow);
271
+ const borrowCopy = { ...borrow };
280
272
  const newCumulativeBorrowRate = decimalToBigNumber(reserve.cumulativeBorrowRate);
281
273
  const compoundedInterestRate = newCumulativeBorrowRate.dividedBy(decimalToBigNumber(borrow.cumulativeBorrowRate));
282
274
  borrowCopy.borrowedAmount = stringToDecimal(decimalToBigNumber(borrow.borrowedAmount)