@evaafi/sdk 0.6.2 → 0.6.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (59) hide show
  1. package/README.md +2 -1
  2. package/dist/api/math.d.ts +12 -2
  3. package/dist/api/math.js +56 -4
  4. package/dist/api/parser.js +48 -20
  5. package/dist/constants/assets.d.ts +5 -1
  6. package/dist/constants/assets.js +24 -9
  7. package/dist/constants/general.d.ts +16 -0
  8. package/dist/constants/general.js +18 -2
  9. package/dist/constants/pools.d.ts +6 -1
  10. package/dist/constants/pools.js +46 -26
  11. package/dist/index.d.ts +10 -3
  12. package/dist/index.js +25 -2
  13. package/dist/prices/PricesCollector.d.ts +2 -2
  14. package/dist/prices/PricesCollector.js +8 -6
  15. package/dist/rewards/EvaaRewards.d.ts +10 -0
  16. package/dist/rewards/EvaaRewards.js +21 -0
  17. package/dist/rewards/JettonMinter.d.ts +30 -0
  18. package/dist/rewards/JettonMinter.js +83 -0
  19. package/dist/rewards/JettonWallet.d.ts +23 -0
  20. package/dist/rewards/JettonWallet.js +60 -0
  21. package/dist/rewards/RewardMaster.d.ts +26 -0
  22. package/dist/rewards/RewardMaster.js +83 -0
  23. package/dist/rewards/RewardUser.d.ts +23 -0
  24. package/dist/rewards/RewardUser.js +70 -0
  25. package/dist/types/MasterRewards.d.ts +13 -0
  26. package/dist/types/User.d.ts +11 -1
  27. package/dist/types/UserRewards.d.ts +10 -0
  28. package/dist/types/UserRewards.js +2 -0
  29. package/dist/utils/sha256BigInt.d.ts +2 -0
  30. package/dist/utils/sha256BigInt.js +9 -1
  31. package/dist/utils/userJettonWallet.js +7 -0
  32. package/package.json +42 -42
  33. package/src/api/math.ts +78 -3
  34. package/src/api/parser.ts +57 -22
  35. package/src/constants/assets.ts +91 -65
  36. package/src/constants/general.ts +30 -2
  37. package/src/constants/pools.ts +91 -28
  38. package/src/index.ts +23 -2
  39. package/src/prices/PricesCollector.ts +9 -5
  40. package/src/rewards/EvaaRewards.ts +23 -0
  41. package/src/rewards/JettonMinter.ts +113 -0
  42. package/src/rewards/JettonWallet.ts +77 -0
  43. package/src/rewards/RewardMaster.ts +110 -0
  44. package/src/rewards/RewardUser.ts +90 -0
  45. package/src/types/Master.ts +1 -1
  46. package/src/types/MasterRewards.ts +13 -0
  47. package/src/types/User.ts +13 -3
  48. package/src/types/UserRewards.ts +10 -0
  49. package/src/utils/sha256BigInt.ts +8 -0
  50. package/src/utils/userJettonWallet.ts +39 -33
  51. package/CHANGELOG.md +0 -240
  52. package/dist/config.d.ts +0 -1
  53. package/dist/config.js +0 -4
  54. package/dist/constants.d.ts +0 -69
  55. package/dist/constants.js +0 -83
  56. package/dist/types/Common.d.ts +0 -14
  57. package/dist/utils/priceUtils.d.ts +0 -55
  58. package/dist/utils/priceUtils.js +0 -117
  59. /package/dist/types/{Common.js → MasterRewards.js} +0 -0
package/README.md CHANGED
@@ -3,5 +3,6 @@
3
3
  The EVAA SDK is designed to easily integrate with the EVAA lending protocol on TON blockchain.
4
4
 
5
5
  ## Documentation
6
+ You can find the Typedoc documentation [here](https://evaafi.github.io/sdk/).
6
7
 
7
- You can find the documentation in the [docs](./docs) folder.
8
+ Additional (older) documentation can also be found in the [docs](./docs) folder.
@@ -1,6 +1,6 @@
1
- import { AgregatedBalances, AssetConfig, AssetData, AssetInterest, ExtendedAssetData, ExtendedAssetsConfig, ExtendedAssetsData, MasterConstants, PoolConfig } from '../types/Master';
1
+ import { AgregatedBalances, AssetApy, AssetConfig, AssetData, AssetInterest, ExtendedAssetData, ExtendedAssetsConfig, ExtendedAssetsData, MasterConstants, PoolConfig } from '../types/Master';
2
2
  import { Dictionary } from '@ton/core';
3
- import { HealthParamsArgs, LiquidationData, PredictHealthFactorArgs, UserBalance } from '../types/User';
3
+ import { HealthParamsArgs, LiquidationData, PredictAPYArgs, PredictHealthFactorArgs, UserBalance } from '../types/User';
4
4
  export declare function mulFactor(decimal: bigint, a: bigint, b: bigint): bigint;
5
5
  export declare function mulDiv(x: bigint, y: bigint, z: bigint): bigint;
6
6
  export declare function mulDivC(x: bigint, y: bigint, z: bigint): bigint;
@@ -16,6 +16,7 @@ export declare const BigMath: {
16
16
  max: typeof bigIntMax;
17
17
  };
18
18
  export declare function calculatePresentValue(index: bigint, principalValue: bigint, masterConstants: MasterConstants): bigint;
19
+ export declare function getAssetLiquidityMinusReserves(assetData: AssetData, masterConstants: MasterConstants): bigint;
19
20
  export declare function calculateCurrentRates(assetConfig: AssetConfig, assetData: AssetData, masterConstants: MasterConstants): {
20
21
  sRate: bigint;
21
22
  bRate: bigint;
@@ -25,6 +26,7 @@ export declare function calculateCurrentRates(assetConfig: AssetConfig, assetDat
25
26
  };
26
27
  export declare function calculateAssetData(assetsConfigDict: ExtendedAssetsConfig, assetsDataDict: Dictionary<bigint, AssetData>, assetId: bigint, masterConstants: MasterConstants): ExtendedAssetData;
27
28
  export declare function calculateAssetInterest(assetConfig: AssetConfig, assetData: AssetData, masterConstants: MasterConstants): AssetInterest;
29
+ export declare function calculateInterestWithSupplyBorrow(totalSupply: bigint, totalBorrow: bigint, assetConfig: AssetConfig, masterConstants: MasterConstants): AssetInterest;
28
30
  export declare function checkNotInDebtAtAll(principals: Dictionary<bigint, bigint>): boolean;
29
31
  export declare function getAgregatedBalances(assetsData: ExtendedAssetsData, assetsConfig: ExtendedAssetsConfig, principals: Dictionary<bigint, bigint>, prices: Dictionary<bigint, bigint>, masterConstants: MasterConstants): AgregatedBalances;
30
32
  export declare function calculateMaximumWithdrawAmount(assetsConfig: ExtendedAssetsConfig, assetsData: ExtendedAssetsData, principals: Dictionary<bigint, bigint>, prices: Dictionary<bigint, bigint>, masterConstants: MasterConstants, assetId: bigint): bigint;
@@ -59,3 +61,11 @@ export declare function calculateHealthParams(parameters: HealthParamsArgs): {
59
61
  */
60
62
  export declare function calculateLiquidationData(assetsConfig: ExtendedAssetsConfig, assetsData: ExtendedAssetsData, principals: Dictionary<bigint, bigint>, prices: Dictionary<bigint, bigint>, poolConfig: PoolConfig): LiquidationData;
61
63
  export declare function predictHealthFactor(args: PredictHealthFactorArgs): number;
64
+ /**
65
+ * Predicts how APY will change as a result of one of the actions Borrow, Supply, Withdraw or Repay.
66
+ *
67
+ * Used on the front-end.
68
+ *
69
+ * @returns Estimated APYs for Supply and Borrow
70
+ */
71
+ export declare function predictAPY(args: PredictAPYArgs): AssetInterest & AssetApy;
package/dist/api/math.js CHANGED
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.predictHealthFactor = exports.calculateLiquidationData = exports.calculateHealthParams = exports.presentValue = exports.getAvailableToBorrow = exports.calculateMaximumWithdrawAmount = exports.getAgregatedBalances = exports.checkNotInDebtAtAll = exports.calculateAssetInterest = exports.calculateAssetData = exports.calculateCurrentRates = exports.calculatePresentValue = exports.BigMath = exports.bigIntMin = exports.bigIntMax = exports.bigAbs = exports.mulDivC = exports.mulDiv = exports.mulFactor = void 0;
3
+ exports.predictAPY = exports.predictHealthFactor = exports.calculateLiquidationData = exports.calculateHealthParams = exports.presentValue = exports.getAvailableToBorrow = exports.calculateMaximumWithdrawAmount = exports.getAgregatedBalances = exports.checkNotInDebtAtAll = exports.calculateInterestWithSupplyBorrow = exports.calculateAssetInterest = exports.calculateAssetData = exports.calculateCurrentRates = exports.getAssetLiquidityMinusReserves = exports.calculatePresentValue = exports.BigMath = exports.bigIntMin = exports.bigIntMax = exports.bigAbs = exports.mulDivC = exports.mulDiv = exports.mulFactor = void 0;
4
4
  const User_1 = require("../types/User");
5
5
  const assets_1 = require("../constants/assets");
6
6
  const liquidation_1 = require("./liquidation");
@@ -35,6 +35,12 @@ function calculatePresentValue(index, principalValue, masterConstants) {
35
35
  return (principalValue * index) / masterConstants.FACTOR_SCALE;
36
36
  }
37
37
  exports.calculatePresentValue = calculatePresentValue;
38
+ function getAssetLiquidityMinusReserves(assetData, masterConstants) {
39
+ const total_supply = calculatePresentValue(assetData.sRate, assetData.totalSupply, masterConstants);
40
+ const total_borrow = calculatePresentValue(assetData.bRate, assetData.totalBorrow, masterConstants);
41
+ return bigIntMin(total_supply - total_borrow, assetData.balance);
42
+ }
43
+ exports.getAssetLiquidityMinusReserves = getAssetLiquidityMinusReserves;
38
44
  function calculateCurrentRates(assetConfig, assetData, masterConstants) {
39
45
  const now = BigInt(Math.floor(Date.now() / 1000));
40
46
  const timeElapsed = now - assetData.lastAccural;
@@ -81,6 +87,10 @@ exports.calculateAssetData = calculateAssetData;
81
87
  function calculateAssetInterest(assetConfig, assetData, masterConstants) {
82
88
  const totalSupply = calculatePresentValue(assetData.sRate, assetData.totalSupply, masterConstants);
83
89
  const totalBorrow = calculatePresentValue(assetData.bRate, assetData.totalBorrow, masterConstants);
90
+ return calculateInterestWithSupplyBorrow(totalSupply, totalBorrow, assetConfig, masterConstants);
91
+ }
92
+ exports.calculateAssetInterest = calculateAssetInterest;
93
+ function calculateInterestWithSupplyBorrow(totalSupply, totalBorrow, assetConfig, masterConstants) {
84
94
  let utilization = 0n;
85
95
  let supplyInterest = 0n;
86
96
  let borrowInterest = 0n;
@@ -104,7 +114,7 @@ function calculateAssetInterest(assetConfig, assetData, masterConstants) {
104
114
  borrowInterest
105
115
  };
106
116
  }
107
- exports.calculateAssetInterest = calculateAssetInterest;
117
+ exports.calculateInterestWithSupplyBorrow = calculateInterestWithSupplyBorrow;
108
118
  function checkNotInDebtAtAll(principals) {
109
119
  return principals.values().every(x => x >= 0n);
110
120
  }
@@ -173,10 +183,16 @@ function getAvailableToBorrow(assetsConfig, assetsData, principals, prices, mast
173
183
  let borrowLimit = 0n;
174
184
  let borrowAmount = 0n;
175
185
  for (const assetID of principals.keys()) {
186
+ const principal = principals.get(assetID);
187
+ if (principal == 0n) {
188
+ continue;
189
+ }
190
+ if (!prices.has(assetID)) {
191
+ return 0n;
192
+ }
176
193
  const assetConfig = assetsConfig.get(assetID);
177
194
  const assetData = assetsData.get(assetID);
178
195
  const price = prices.get(assetID);
179
- const principal = principals.get(assetID);
180
196
  if (principal < 0n) {
181
197
  borrowAmount += mulDiv(calculatePresentValue(assetData.bRate, -principal, masterConstants), price, 10n ** assetConfig.decimals);
182
198
  }
@@ -359,7 +375,6 @@ function predictHealthFactor(args) {
359
375
  const assetId = args.asset.assetId;
360
376
  const assetConfig = args.assetsConfig.get(assetId);
361
377
  const assetPrice = Number(args.prices.get(assetId));
362
- const assetData = args.assetsData.get(assetId);
363
378
  let totalLimit = Number(healthParams.totalLimit);
364
379
  let totalBorrow = Number(healthParams.totalDebt);
365
380
  const currentAmount = args.amount;
@@ -386,3 +401,40 @@ function predictHealthFactor(args) {
386
401
  return Math.min(Math.max(1 - totalBorrow / totalLimit, 0), 1); // let's limit a result to zero below and one above
387
402
  }
388
403
  exports.predictHealthFactor = predictHealthFactor;
404
+ /**
405
+ * Predicts how APY will change as a result of one of the actions Borrow, Supply, Withdraw or Repay.
406
+ *
407
+ * Used on the front-end.
408
+ *
409
+ * @returns Estimated APYs for Supply and Borrow
410
+ */
411
+ function predictAPY(args) {
412
+ const assetConfig = args.assetConfig;
413
+ const assetData = args.assetData;
414
+ const masterConstants = args.masterConstants;
415
+ let totalSupply = calculatePresentValue(assetData.sRate, assetData.totalSupply, masterConstants);
416
+ let totalBorrow = calculatePresentValue(assetData.bRate, assetData.totalBorrow, masterConstants);
417
+ const currentAmount = args.amount;
418
+ const changeType = args.balanceChangeType;
419
+ if (currentAmount != null && currentAmount != 0n) {
420
+ if (changeType == User_1.BalanceChangeType.Borrow) {
421
+ totalBorrow += currentAmount;
422
+ }
423
+ else if (changeType == User_1.BalanceChangeType.Repay) {
424
+ totalBorrow -= currentAmount;
425
+ }
426
+ else if (changeType == User_1.BalanceChangeType.Withdraw) {
427
+ totalSupply -= currentAmount;
428
+ }
429
+ else if (changeType == User_1.BalanceChangeType.Supply) {
430
+ totalSupply += currentAmount;
431
+ }
432
+ }
433
+ const interest = calculateInterestWithSupplyBorrow(totalSupply, totalBorrow, assetConfig, masterConstants);
434
+ return {
435
+ ...interest,
436
+ supplyApy: (1 + (Number(interest.supplyInterest) / 1e12) * 24 * 3600) ** 365 - 1,
437
+ borrowApy: (1 + (Number(interest.borrowInterest) / 1e12) * 24 * 3600) ** 365 - 1
438
+ };
439
+ }
440
+ exports.predictAPY = predictAPY;
@@ -24,8 +24,8 @@ function createAssetData() {
24
24
  serialize: (src, buidler) => {
25
25
  buidler.storeUint(src.sRate, 64);
26
26
  buidler.storeUint(src.bRate, 64);
27
- buidler.storeUint(src.totalSupply, 64);
28
- buidler.storeUint(src.totalBorrow, 64);
27
+ buidler.storeInt(src.totalSupply, 64);
28
+ buidler.storeInt(src.totalBorrow, 64);
29
29
  buidler.storeUint(src.lastAccural, 32);
30
30
  buidler.storeUint(src.balance, 64);
31
31
  buidler.storeUint(src.trackingSupplyIndex, 64);
@@ -33,15 +33,15 @@ function createAssetData() {
33
33
  buidler.storeUint(src.awaitedSupply, 64);
34
34
  },
35
35
  parse: (src) => {
36
- const sRate = BigInt(src.loadInt(64));
37
- const bRate = BigInt(src.loadInt(64));
38
- const totalSupply = BigInt(src.loadInt(64));
39
- const totalBorrow = BigInt(src.loadInt(64));
40
- const lastAccural = BigInt(src.loadInt(32));
41
- const balance = BigInt(src.loadInt(64));
42
- const trackingSupplyIndex = BigInt(src.loadUint(64));
43
- const trackingBorrowIndex = BigInt(src.loadUint(64));
44
- const awaitedSupply = BigInt(src.loadUint(64));
36
+ const sRate = BigInt(src.loadUintBig(64));
37
+ const bRate = BigInt(src.loadUintBig(64));
38
+ const totalSupply = BigInt(src.loadIntBig(64));
39
+ const totalBorrow = BigInt(src.loadIntBig(64));
40
+ const lastAccural = BigInt(src.loadUintBig(32));
41
+ const balance = BigInt(src.loadUintBig(64));
42
+ const trackingSupplyIndex = BigInt(src.loadUintBig(64));
43
+ const trackingBorrowIndex = BigInt(src.loadUintBig(64));
44
+ const awaitedSupply = BigInt(src.loadUintBig(64));
45
45
  return { sRate, bRate, totalSupply, totalBorrow, lastAccural, balance, trackingSupplyIndex, trackingBorrowIndex, awaitedSupply };
46
46
  },
47
47
  };
@@ -183,7 +183,8 @@ function parseUserLiteData(userDataBOC, assetsData, assetsConfig, poolConfig, ap
183
183
  const codeVersion = userSlice.loadCoins();
184
184
  const masterAddress = userSlice.loadAddress();
185
185
  const userAddress = userSlice.loadAddress();
186
- const principalsDict = userSlice.loadDict(core_1.Dictionary.Keys.BigUint(256), core_1.Dictionary.Values.BigInt(64));
186
+ const realPrincipals = userSlice.loadDict(core_1.Dictionary.Keys.BigUint(256), core_1.Dictionary.Values.BigInt(64));
187
+ const principalsDict = core_1.Dictionary.empty(core_1.Dictionary.Keys.BigUint(256), core_1.Dictionary.Values.BigInt(64));
187
188
  const userState = userSlice.loadInt(64);
188
189
  let trackingSupplyIndex = 0n;
189
190
  let trackingBorrowIndex = 0n;
@@ -209,7 +210,7 @@ function parseUserLiteData(userDataBOC, assetsData, assetsConfig, poolConfig, ap
209
210
  for (const [_, asset] of Object.entries(poolAssetsConfig)) {
210
211
  const assetData = assetsData.get(asset.assetId);
211
212
  const assetConfig = assetsConfig.get(asset.assetId);
212
- let principal = principalsDict.get(asset.assetId) || 0n;
213
+ let principal = realPrincipals.get(asset.assetId) || 0n;
213
214
  let balance = (0, math_1.presentValue)(assetData.sRate, assetData.bRate, principal, masterConstants);
214
215
  if (applyDust && (principal > 0 && (principal < assetConfig.dust))) {
215
216
  principal = 0n;
@@ -219,6 +220,9 @@ function parseUserLiteData(userDataBOC, assetsData, assetsConfig, poolConfig, ap
219
220
  };
220
221
  principalsDict.set(asset.assetId, 0n);
221
222
  }
223
+ else {
224
+ principalsDict.set(asset.assetId, principal);
225
+ }
222
226
  userBalances.set(asset.assetId, balance);
223
227
  }
224
228
  return {
@@ -227,12 +231,14 @@ function parseUserLiteData(userDataBOC, assetsData, assetsConfig, poolConfig, ap
227
231
  masterAddress: masterAddress,
228
232
  ownerAddress: userAddress,
229
233
  principals: principalsDict,
234
+ realPrincipals: realPrincipals,
230
235
  state: userState,
231
236
  balances: userBalances,
232
237
  trackingSupplyIndex: trackingSupplyIndex,
233
238
  trackingBorrowIndex: trackingBorrowIndex,
234
239
  dutchAuctionStart: dutchAuctionStart,
235
240
  backupCell: backupCell,
241
+ fullyParsed: false,
236
242
  rewards: rewards,
237
243
  backupCell1: backupCell1,
238
244
  backupCell2: backupCell2,
@@ -240,12 +246,22 @@ function parseUserLiteData(userDataBOC, assetsData, assetsConfig, poolConfig, ap
240
246
  }
241
247
  exports.parseUserLiteData = parseUserLiteData;
242
248
  function parseUserData(userLiteData, assetsData, assetsConfig, prices, poolConfig, applyDust = false) {
249
+ userLiteData.fullyParsed = true;
250
+ let havePrincipalWithoutPrice = false;
243
251
  const poolAssetsConfig = poolConfig.poolAssetsConfig;
244
252
  const masterConstants = poolConfig.masterConstants;
245
253
  const withdrawalLimits = core_1.Dictionary.empty();
246
254
  const borrowLimits = core_1.Dictionary.empty();
247
255
  let supplyBalance = 0n;
248
256
  let borrowBalance = 0n;
257
+ for (const [assetId, principal] of userLiteData.realPrincipals) {
258
+ if (!prices.has(assetId)) {
259
+ userLiteData.fullyParsed = false;
260
+ if (principal != 0n) {
261
+ havePrincipalWithoutPrice = true;
262
+ }
263
+ }
264
+ }
249
265
  for (const [_, asset] of Object.entries(poolAssetsConfig)) {
250
266
  const assetData = assetsData.get(asset.assetId);
251
267
  const assetConfig = assetsConfig.get(asset.assetId);
@@ -258,6 +274,9 @@ function parseUserData(userLiteData, assetsData, assetsConfig, prices, poolConfi
258
274
  userLiteData.balances.set(asset.assetId, balance);
259
275
  }
260
276
  for (const [_, asset] of Object.entries(poolAssetsConfig)) {
277
+ if (!prices.has(asset.assetId)) {
278
+ continue;
279
+ }
261
280
  const assetConfig = assetsConfig.get(asset.assetId);
262
281
  const balance = userLiteData.balances.get(asset.assetId);
263
282
  if (balance.type === User_1.BalanceType.supply) {
@@ -267,24 +286,32 @@ function parseUserData(userLiteData, assetsData, assetsConfig, prices, poolConfi
267
286
  borrowBalance += (balance.amount * prices.get(asset.assetId)) / 10n ** assetConfig.decimals;
268
287
  }
269
288
  }
270
- const availableToBorrow = (0, math_1.getAvailableToBorrow)(assetsConfig, assetsData, userLiteData.principals, prices, masterConstants);
289
+ const availableToBorrow = (0, math_1.getAvailableToBorrow)(assetsConfig, assetsData, userLiteData.realPrincipals, prices, masterConstants);
271
290
  for (const [_, asset] of Object.entries(poolAssetsConfig)) {
291
+ const balance = userLiteData.balances.get(asset.assetId);
272
292
  const assetConfig = assetsConfig.get(asset.assetId);
273
293
  const assetData = assetsData.get(asset.assetId);
274
- const balance = userLiteData.balances.get(asset.assetId);
294
+ const assetLiquidityMinusReserves = (0, math_1.getAssetLiquidityMinusReserves)(assetData, masterConstants);
275
295
  if (balance.type === User_1.BalanceType.supply) {
276
- withdrawalLimits.set(asset.assetId, (0, math_1.bigIntMin)((0, math_1.calculateMaximumWithdrawAmount)(assetsConfig, assetsData, userLiteData.principals, prices, masterConstants, asset.assetId), assetData.balance));
296
+ withdrawalLimits.set(asset.assetId, (0, math_1.bigIntMin)((0, math_1.calculateMaximumWithdrawAmount)(assetsConfig, assetsData, userLiteData.realPrincipals, prices, masterConstants, asset.assetId), assetData.balance));
277
297
  }
278
- borrowLimits.set(asset.assetId, (0, math_1.bigIntMax)(0n, (0, math_1.bigIntMin)((availableToBorrow * 10n ** assetConfig.decimals) / prices.get(asset.assetId), assetData.balance, assetData.totalSupply - assetData.totalBorrow)));
298
+ if (!prices.has(asset.assetId)) {
299
+ borrowLimits.set(asset.assetId, 0n);
300
+ continue;
301
+ }
302
+ borrowLimits.set(asset.assetId, (0, math_1.bigIntMax)(0n, (0, math_1.bigIntMin)((availableToBorrow * 10n ** assetConfig.decimals) / prices.get(asset.assetId), assetLiquidityMinusReserves)));
279
303
  }
280
304
  const limitUsed = borrowBalance + availableToBorrow;
281
305
  const limitUsedPercent = limitUsed === 0n
282
306
  ? 0
283
307
  : Number(BigInt(1e9) - (availableToBorrow * BigInt(1e9)) / (borrowBalance + availableToBorrow)) / 1e7;
284
- const liquidationData = (0, math_1.calculateLiquidationData)(assetsConfig, assetsData, userLiteData.principals, prices, poolConfig);
285
308
  let healthFactor = 1;
286
- if (liquidationData.totalLimit != 0n) {
287
- healthFactor = 1 - Number(liquidationData.totalDebt) / Number(liquidationData.totalLimit);
309
+ let liquidationData;
310
+ if (!havePrincipalWithoutPrice) {
311
+ liquidationData = (0, math_1.calculateLiquidationData)(assetsConfig, assetsData, userLiteData.realPrincipals, prices, poolConfig);
312
+ if (liquidationData.totalLimit != 0n) {
313
+ healthFactor = 1 - Number(liquidationData.totalDebt) / Number(liquidationData.totalLimit);
314
+ }
288
315
  }
289
316
  return {
290
317
  ...userLiteData,
@@ -297,6 +324,7 @@ function parseUserData(userLiteData, assetsData, assetsConfig, prices, poolConfi
297
324
  limitUsed: limitUsed,
298
325
  liquidationData: liquidationData,
299
326
  healthFactor: healthFactor,
327
+ havePrincipalWithoutPrice: havePrincipalWithoutPrice
300
328
  };
301
329
  }
302
330
  exports.parseUserData = parseUserData;
@@ -1,4 +1,4 @@
1
- import { PoolAssetConfig } from "../types/Master";
1
+ import { PoolAssetConfig } from '../types/Master';
2
2
  export declare const ASSET_ID: {
3
3
  TON: bigint;
4
4
  USDT: bigint;
@@ -7,6 +7,7 @@ export declare const ASSET_ID: {
7
7
  stTON: bigint;
8
8
  tsTON: bigint;
9
9
  uTON: bigint;
10
+ tgBTC: bigint;
10
11
  TONUSDT_DEDUST: bigint;
11
12
  TONUSDT_STONFI: bigint;
12
13
  TON_STORM: bigint;
@@ -14,6 +15,7 @@ export declare const ASSET_ID: {
14
15
  NOT: bigint;
15
16
  DOGS: bigint;
16
17
  CATI: bigint;
18
+ EUSDT: bigint;
17
19
  };
18
20
  export declare const UNDEFINED_ASSET: PoolAssetConfig;
19
21
  export declare const TON_MAINNET: PoolAssetConfig;
@@ -33,3 +35,5 @@ export declare const CATI_MAINNET: PoolAssetConfig;
33
35
  export declare const DOGS_MAINNET: PoolAssetConfig;
34
36
  export declare const NOT_MAINNET: PoolAssetConfig;
35
37
  export declare const UTON_MAINNET: PoolAssetConfig;
38
+ export declare const TGBTC_TESTNET: PoolAssetConfig;
39
+ export declare const EUSDT_TESTNET: PoolAssetConfig;
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.UTON_MAINNET = exports.NOT_MAINNET = exports.DOGS_MAINNET = exports.CATI_MAINNET = exports.USDT_STORM_MAINNET = exports.TON_STORM_MAINNET = exports.TONUSDT_DEDUST_MAINNET = exports.STTON_TESTNET = exports.JUSDC_TESTNET = exports.JUSDT_TESTNET = exports.USDT_MAINNET = exports.TSTON_MAINNET = exports.STTON_MAINNET = exports.JUSDC_MAINNET = exports.JUSDT_MAINNET = exports.TON_TESTNET = exports.TON_MAINNET = exports.UNDEFINED_ASSET = exports.ASSET_ID = void 0;
3
+ exports.EUSDT_TESTNET = exports.TGBTC_TESTNET = exports.UTON_MAINNET = exports.NOT_MAINNET = exports.DOGS_MAINNET = exports.CATI_MAINNET = exports.USDT_STORM_MAINNET = exports.TON_STORM_MAINNET = exports.TONUSDT_DEDUST_MAINNET = exports.STTON_TESTNET = exports.JUSDC_TESTNET = exports.JUSDT_TESTNET = exports.USDT_MAINNET = exports.TSTON_MAINNET = exports.STTON_MAINNET = exports.JUSDC_MAINNET = exports.JUSDT_MAINNET = exports.TON_TESTNET = exports.TON_MAINNET = exports.UNDEFINED_ASSET = exports.ASSET_ID = void 0;
4
4
  const core_1 = require("@ton/core");
5
5
  const sha256BigInt_1 = require("../utils/sha256BigInt");
6
6
  const general_1 = require("./general");
@@ -12,6 +12,7 @@ exports.ASSET_ID = {
12
12
  stTON: (0, sha256BigInt_1.sha256Hash)('stTON'),
13
13
  tsTON: (0, sha256BigInt_1.sha256Hash)('tsTON'),
14
14
  uTON: (0, sha256BigInt_1.sha256Hash)('uTON'),
15
+ tgBTC: (0, sha256BigInt_1.sha256Hash)('tgBTC'),
15
16
  // LP
16
17
  TONUSDT_DEDUST: (0, sha256BigInt_1.sha256Hash)('TONUSDT_DEDUST'),
17
18
  TONUSDT_STONFI: (0, sha256BigInt_1.sha256Hash)('TONUSDT_STONFI'),
@@ -21,43 +22,45 @@ exports.ASSET_ID = {
21
22
  NOT: (0, sha256BigInt_1.sha256Hash)('NOT'),
22
23
  DOGS: (0, sha256BigInt_1.sha256Hash)('DOGS'),
23
24
  CATI: (0, sha256BigInt_1.sha256Hash)('CATI'),
25
+ // Testnet assets
26
+ EUSDT: (0, sha256BigInt_1.sha256Hash)('EUSDT'),
24
27
  };
25
28
  exports.UNDEFINED_ASSET = {
26
29
  name: 'undefined_asset',
27
30
  assetId: -1n,
28
31
  jettonMasterAddress: general_1.NULL_ADDRESS, // fake
29
- jettonWalletCode: core_1.Cell.EMPTY
32
+ jettonWalletCode: core_1.Cell.EMPTY,
30
33
  };
31
34
  exports.TON_MAINNET = {
32
35
  name: 'TON',
33
36
  assetId: exports.ASSET_ID.TON,
34
37
  jettonMasterAddress: general_1.NULL_ADDRESS, // fake
35
- jettonWalletCode: core_1.Cell.EMPTY
38
+ jettonWalletCode: core_1.Cell.EMPTY,
36
39
  };
37
40
  exports.TON_TESTNET = exports.TON_MAINNET;
38
41
  exports.JUSDT_MAINNET = {
39
42
  name: 'jUSDT',
40
43
  assetId: exports.ASSET_ID.jUSDT,
41
44
  jettonMasterAddress: core_1.Address.parse('EQBynBO23ywHy_CgarY9NK9FTz0yDsG82PtcbSTQgGoXwiuA'),
42
- jettonWalletCode: general_1.JETTON_WALLET_STANDART_CODE
45
+ jettonWalletCode: general_1.JETTON_WALLET_STANDART_CODE,
43
46
  };
44
47
  exports.JUSDC_MAINNET = {
45
48
  name: 'jUSDC',
46
49
  assetId: exports.ASSET_ID.jUSDC,
47
50
  jettonMasterAddress: core_1.Address.parse('EQB-MPwrd1G6WKNkLz_VnV6WqBDd142KMQv-g1O-8QUA3728'),
48
- jettonWalletCode: general_1.JETTON_WALLET_STANDART_CODE
51
+ jettonWalletCode: general_1.JETTON_WALLET_STANDART_CODE,
49
52
  };
50
53
  exports.STTON_MAINNET = {
51
54
  name: 'stTON',
52
55
  assetId: exports.ASSET_ID.stTON,
53
56
  jettonMasterAddress: core_1.Address.parse('EQDNhy-nxYFgUqzfUzImBEP67JqsyMIcyk2S5_RwNNEYku0k'),
54
- jettonWalletCode: core_1.Cell.fromBase64('te6cckECEgEAA2IAART/APSkE/S88sgLAQIBYgIDAgLMBAUAG6D2BdqJofQB9IH0gahhAgHUBgcCASAJCgHPCDHAJJfBOAB0NMDAXGwlRNfA/AN4PpA+kAx+gAxcdch+gAx+gAwc6m0AALTHyGCEA+KfqW6lTE0WfAK4CGCEBeNRRm6ljFERAPwC+AhghBZXwe8upUxNFnwDOAUXwTABOMCMIQP8vCAIABE+kQwwADy4U2AAfO1E0PoA+kD6QNQwECNfAwGCCJiWgKFtgBByIm6zIJFxkXDiA8jLBVAGzxZQBPoCy2oDk1jMAZEw4gHJAfsAAgFYCwwCAUgQEQHxAPTP/oA+kAh8AHtRND6APpA+kDUMFE2oVIqxwXy4sEowv/y4sJUNEJwVCATVBQDyFAE+gJYzxYBzxbMySLIywES9AD0AMsAySD5AHB0yMsCygfL/8nQBPpA9AQx+gAg10nCAPLixHeAGMjLBVAIzxZw+gIXy2sTzIA0C9ztRND6APpA+kDUMAjTP/oAUVGgBfpA+kBTW8cFVHNtcFQgE1QUA8hQBPoCWM8WAc8WzMkiyMsBEvQA9ADLAMn5AHB0yMsCygfL/8nQUA3HBRyx8uLDCvoAUaihggiYloBmtgihggjk4cCgGKEnlxBJEDg3XwTjDSXXCwGAODwCeghAXjUUZyMsfGcs/UAf6AiLPFlAGzxYl+gJQA88WyVAFzCORcpFx4lAIqBOgggpiWgCgFLzy4sUEyYBA+wAQI8hQBPoCWM8WAc8WzMntVABwUnmgGKGCEHNi0JzIyx9SMMs/WPoCUAfPFlAHzxbJcYAQyMsFJM8WUAb6AhXLahTMyXH7ABAkECMAfMMAI8IAsI4hghDVMnbbcIAQyMsFUAjPFlAE+gIWy2oSyx8Syz/JcvsAkzVsIeIDyFAE+gJYzxYBzxbMye1UAMkMO1E0PoA+kD6QNQwBtM/+gAwUUShUjfHBfLiwSXC//LiwgSCC5OHAL7y4sWCEHvdl97Iyx8Uyz9Y+gIhzxbJcYAYyMsFJM8WcPoCy2rMyYBA+wBAE8hQBPoCWM8WAc8WzMntVIACBIAg1yHtRND6APpA+kDUMATTHyGCEBeNRRm6AoIQe92X3roSsfLgyNM/MfoAMBOgUCPIUAT6AljPFgHPFszJ7VSBpMmqD')
57
+ jettonWalletCode: core_1.Cell.fromBase64('te6cckECEgEAA2IAART/APSkE/S88sgLAQIBYgIDAgLMBAUAG6D2BdqJofQB9IH0gahhAgHUBgcCASAJCgHPCDHAJJfBOAB0NMDAXGwlRNfA/AN4PpA+kAx+gAxcdch+gAx+gAwc6m0AALTHyGCEA+KfqW6lTE0WfAK4CGCEBeNRRm6ljFERAPwC+AhghBZXwe8upUxNFnwDOAUXwTABOMCMIQP8vCAIABE+kQwwADy4U2AAfO1E0PoA+kD6QNQwECNfAwGCCJiWgKFtgBByIm6zIJFxkXDiA8jLBVAGzxZQBPoCy2oDk1jMAZEw4gHJAfsAAgFYCwwCAUgQEQHxAPTP/oA+kAh8AHtRND6APpA+kDUMFE2oVIqxwXy4sEowv/y4sJUNEJwVCATVBQDyFAE+gJYzxYBzxbMySLIywES9AD0AMsAySD5AHB0yMsCygfL/8nQBPpA9AQx+gAg10nCAPLixHeAGMjLBVAIzxZw+gIXy2sTzIA0C9ztRND6APpA+kDUMAjTP/oAUVGgBfpA+kBTW8cFVHNtcFQgE1QUA8hQBPoCWM8WAc8WzMkiyMsBEvQA9ADLAMn5AHB0yMsCygfL/8nQUA3HBRyx8uLDCvoAUaihggiYloBmtgihggjk4cCgGKEnlxBJEDg3XwTjDSXXCwGAODwCeghAXjUUZyMsfGcs/UAf6AiLPFlAGzxYl+gJQA88WyVAFzCORcpFx4lAIqBOgggpiWgCgFLzy4sUEyYBA+wAQI8hQBPoCWM8WAc8WzMntVABwUnmgGKGCEHNi0JzIyx9SMMs/WPoCUAfPFlAHzxbJcYAQyMsFJM8WUAb6AhXLahTMyXH7ABAkECMAfMMAI8IAsI4hghDVMnbbcIAQyMsFUAjPFlAE+gIWy2oSyx8Syz/JcvsAkzVsIeIDyFAE+gJYzxYBzxbMye1UAMkMO1E0PoA+kD6QNQwBtM/+gAwUUShUjfHBfLiwSXC//LiwgSCC5OHAL7y4sWCEHvdl97Iyx8Uyz9Y+gIhzxbJcYAYyMsFJM8WcPoCy2rMyYBA+wBAE8hQBPoCWM8WAc8WzMntVIACBIAg1yHtRND6APpA+kDUMATTHyGCEBeNRRm6AoIQe92X3roSsfLgyNM/MfoAMBOgUCPIUAT6AljPFgHPFszJ7VSBpMmqD'),
55
58
  };
56
59
  exports.TSTON_MAINNET = {
57
60
  name: 'tsTON',
58
61
  assetId: exports.ASSET_ID.tsTON,
59
62
  jettonMasterAddress: core_1.Address.parse('EQC98_qAmNEptUtPc7W6xdHh_ZHrBUFpw5Ft_IzNU20QAJav'),
60
- jettonWalletCode: core_1.Cell.fromBase64('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')
63
+ jettonWalletCode: core_1.Cell.fromBase64('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'),
61
64
  };
62
65
  exports.USDT_MAINNET = {
63
66
  name: 'USDT',
@@ -69,13 +72,13 @@ exports.JUSDT_TESTNET = {
69
72
  name: 'jUSDT',
70
73
  assetId: exports.ASSET_ID.jUSDT,
71
74
  jettonMasterAddress: core_1.Address.parse('kQBe4gtSQMxM5RpMYLr4ydNY72F8JkY-icZXG1NJcsju8XM7'),
72
- jettonWalletCode: general_1.JETTON_WALLET_STANDART_CODE_TESTNET
75
+ jettonWalletCode: general_1.JETTON_WALLET_STANDART_CODE_TESTNET,
73
76
  };
74
77
  exports.JUSDC_TESTNET = {
75
78
  name: 'jUSDC',
76
79
  assetId: exports.ASSET_ID.jUSDC,
77
80
  jettonMasterAddress: core_1.Address.parse('kQDaY5yUatYnHei73HBqRX_Ox9LK2XnR7XuCY9MFC2INbfYI'),
78
- jettonWalletCode: general_1.JETTON_WALLET_STANDART_CODE_TESTNET
81
+ jettonWalletCode: general_1.JETTON_WALLET_STANDART_CODE_TESTNET,
79
82
  };
80
83
  exports.STTON_TESTNET = {
81
84
  name: 'stTON',
@@ -125,3 +128,15 @@ exports.UTON_MAINNET = {
125
128
  jettonMasterAddress: core_1.Address.parse('EQAfF5j3JMIpZlLmACv7Ub7RH7WmiVMuV4ivcgNYHvNnqHTz'),
126
129
  jettonWalletCode: core_1.Cell.fromBoc(Buffer.from('b5ee9c7201021301000439000114ff00f4a413f4bcf2c80b0102016202030202cc0405020120111200bbd906380492f827000e8698180b8d84a89af81f807707d207d2018fd0018b8eb90fd0018fd001801698f90c10807c53f52dd4a989a2cf805f010c1080bc6a28cdd4b18a22201f8067000c1082caf83de5d4aa22201f806f02f82c207f9784020120060701f7f01e99ffd007d20381140816000fd23182c5d797a76a2687d00699ffd207d206a18027c30817c317c31fc327c32fc2091d0fc30fc21a8036382f97160fc20e17ff971617c227c22b82a300209aa0a82e42802fd0109e59f80e78b00e78b666490e4658089fa00097a00658064907c80383a6465816503e5ffe4e802c080201200a0b01fefa40f40431fa0020d749c200f2e2c4778018c8cb055009cf1670fa0218cb6b13cc8210178d4519c8cb1f15cb3f5003fa02f843cf1658cf1621fa025004cf16c901cc2291729171e25004a812a08208989680a08208989680a08208989680a0bcf2e2c5f841f842f843f844f845c85005fa0213cb3f01cf1601cf16ccc9ed5409000ac98040fb000201200c0d00b948020d721ed44d0fa00d33ffa40fa40d43004f86102f862f863f864f865d31f218210178d4519ba0282107bdd97deba12b1f2e2c5d33f31fa0030f84101a0f861f841f842f843f844f845c85005fa0213cb3f01cf1601cf16ccc9ed54801f53b51343e8034cffe903e90350c013e1840be18be18fe193e194134cffe803e1048a83e187e903e903e113e1149165c15180104d505417214017e8084f2cfc073c58073c5b332487232c044fd0004bd0032c0327e401c1d3232c0b281f2fff2740a31c17e11140271c1462c7cb8b0c1be80145a2860822625a019a00e01f73b51343e8034cffe903e90350c013e1840be18be18fe193e194134cffe803e903d010c1c0060083d03dbe87cb8b13434c7fe80204c0048b0803cbd350c3e10be10a93e18be1049a87e187e10d402b1c17cb8b07e1070bffcb8b0945e6860822625a019ad82284820822625a0281401e820822625a028086814a42f201001f2b608a18208989680a018a1278e355275a014a182107362d09cc8cb1f5230cb3f58fa025003cf165003cf16c9718018c8cb05f843cf165006fa0215cb6a14ccc971fb0094375b6c21e221d70b01c30023c200b08e208210d53276db708010c8cb055004cf165004fa0212cb6a12cb1fcb3fc972fb00925f03e20f0038f841f842f843f844f845c85005fa0213cb3f01cf1601cf16ccc9ed5400c0f2e2c5058208989680a018a1f841f842f843f844f845c85005fa0213cb3f01cf1601cf16ccc9ed5482107bdd97dec8cb1f14cb3ff843cf1616cb3f01fa0215cb1f5003cf1658fa02ccc9718018c8cb05f844cf165003fa0212cb6accc970fb000047bfd8176a2687d00699ffd207d206a18027c30817c317c31fc327c32fc20fc21fc227c22c004bbdd79f6a2687d00699ffd207d206a18027c30817c317c31fc327c32fc20fc217c21fc227c22c', 'hex'))[0],
127
130
  };
131
+ exports.TGBTC_TESTNET = {
132
+ name: 'tgBTC',
133
+ assetId: exports.ASSET_ID.tgBTC,
134
+ jettonMasterAddress: core_1.Address.parse('kQDoy1cUAbGq253vwfoPcqSloODVAWkDBniR12PJFUHnK6Yf'),
135
+ jettonWalletCode: core_1.Cell.fromBoc(Buffer.from('b5ee9c72010210010003ac000114ff00f4a413f4bcf2c80b01020162020302f8d001d0d3030171b08e48135f038020d721ed44d0d303fa00fa40fa40d104d31f01840f218210178d4519ba0282107bdd97deba12b1f2f48040d721fa003012a0401303c8cb0358fa0201cf1601cf16c9ed54e0fa40fa4031fa0031f401fa0031fa00013170f83a02d31f012082100f8a7ea5ba8e85303459db3ce03304050201200e0f01f603d33f0101fa00fa4021fa4430c000f2e14ded44d0d303fa00fa40fa40d1521ac705f2e0495115a120c2fff2aff82a54259070546004131503c8cb0358fa0201cf1601cf16c921c8cb0113f40012f400cb00c920f9007074c8cb02ca07cbffc9d004fa40f401fa002020d70b009ad74bc00101c001b0f2b19130e206025c228210178d4519ba8e84325adb3ce034218210595f07bcba8e843101db3ce0135f038210d372158cbadc840ff2f008090174c88210178d451901cb1f500a01cb3f5008fa0223cf1601cf1626fa025007cf16c9c8801801cb055004cf1670fa024063775003cb6bccccc945370700bc2191729171e2f839206e938123289120e2216e94318127109101e2f82f5005a05023a812a0738103a370f83ca00170f836a00170f836a07381040982100966018070f837a0bcf2b0048050fb005803c8cb0358fa0201cf1601cf16c9ed5403e6ed44d0d303fa00fa40fa40d107d33f0101fa005141a004fa40fa4053bac705f82a5464e070546004131503c8cb0358fa0201cf1601cf16c921c8cb0113f40012f400cb00c9f9007074c8cb02ca07cbffc9d0500cc7051bb1f2e04a09fa0021925f04e30d26d70b01c000b393306c33e30d55020a0b0c01d2ed44d0d303fa00fa40fa40d106d33f0101fa00fa40f404d120206ef271d0d74bc000018100f8beb0f2b15152a15249c705f2e04927c2fff2afc882107bdd97de01cb1f500301cb3f01fa0222cf1601cf1612f400c9c8801801cb0526cf1670fa02017158cb6accc9030d0060c882107362d09c01cb1f2501cb3f5004fa0258cf1658cf16c9c8801001cb0524cf1658fa02017158cb6accc98011fb00007a5054a1f82fa07381040982100966018070f837b60972fb02c8801001cb055005cf1670fa027001cb6a8210d53276db01cb1f5801cb3fc9810082fb0059002003c8cb0358fa0201cf1601cf16c9ed54006cf839206e9430811770de728106f170f8380170f836a0811b5870f836a0bcf2b0028050fb000303c8cb0358fa0201cf1601cf16c9ed540027bfd8176a2686981fd007d207d206899fc15209840021bc508f6a2686981fd007d207d2068af81c', 'hex'))[0],
136
+ };
137
+ exports.EUSDT_TESTNET = {
138
+ name: 'EUSDT',
139
+ assetId: exports.ASSET_ID.EUSDT,
140
+ jettonMasterAddress: core_1.Address.parse('kQBe4gtSQMxM5RpMYLr4ydNY72F8JkY-icZXG1NJcsju8XM7'),
141
+ jettonWalletCode: core_1.Cell.fromBoc(Buffer.from('b5ee9c7201021101000323000114ff00f4a413f4bcf2c80b0102016202030202cc0405001ba0f605da89a1f401f481f481a8610201d40607020120080900c30831c02497c138007434c0c05c6c2544d7c0fc03383e903e900c7e800c5c75c87e800c7e800c1cea6d0000b4c7e08403e29fa954882ea54c4d167c0278208405e3514654882ea58c511100fc02b80d60841657c1ef2ea4d67c02f817c12103fcbc2000113e910c1c2ebcb853600201200a0b0083d40106b90f6a2687d007d207d206a1802698fc1080bc6a28ca9105d41083deecbef09dd0958f97162e99f98fd001809d02811e428027d012c678b00e78b6664f6aa401f1503d33ffa00fa4021f001ed44d0fa00fa40fa40d4305136a1522ac705f2e2c128c2fff2e2c254344270542013541403c85004fa0258cf1601cf16ccc922c8cb0112f400f400cb00c920f9007074c8cb02ca07cbffc9d004fa40f40431fa0020d749c200f2e2c4778018c8cb055008cf1670fa0217cb6b13cc80c0201200d0e009e8210178d4519c8cb1f19cb3f5007fa0222cf165006cf1625fa025003cf16c95005cc2391729171e25008a813a08209c9c380a014bcf2e2c504c98040fb001023c85004fa0258cf1601cf16ccc9ed5402f73b51343e803e903e90350c0234cffe80145468017e903e9014d6f1c1551cdb5c150804d50500f214013e809633c58073c5b33248b232c044bd003d0032c0327e401c1d3232c0b281f2fff274140371c1472c7cb8b0c2be80146a2860822625a019ad822860822625a028062849e5c412440e0dd7c138c34975c2c0600f1000d73b51343e803e903e90350c01f4cffe803e900c145468549271c17cb8b049f0bffcb8b08160824c4b402805af3cb8b0e0841ef765f7b232c7c572cfd400fe8088b3c58073c5b25c60063232c14933c59c3e80b2dab33260103ec01004f214013e809633c58073c5b3327b552000705279a018a182107362d09cc8cb1f5230cb3f58fa025007cf165007cf16c9718010c8cb0524cf165006fa0215cb6a14ccc971fb0010241023007cc30023c200b08e218210d53276db708010c8cb055008cf165004fa0216cb6a12cb1f12cb3fc972fb0093356c21e203c85004fa0258cf1601cf16ccc9ed54', 'hex'))[0],
142
+ };
@@ -22,6 +22,9 @@ export declare const EVAA_LP_MAINNET: Address;
22
22
  export declare const EVAA_LP_MAINNET_VERSION = 3;
23
23
  export declare const EVAA_ALTS_MAINNET: Address;
24
24
  export declare const EVAA_ALTS_MAINNET_VERSION = 0;
25
+ export declare const EVAA_REWARDS_MASTER_TESTNET: Address;
26
+ export declare const EVAA_USDT_REWARDS_MASTER_MAINNET: Address;
27
+ export declare const EVAA_TON_REWARDS_MASTER_MAINNET: Address;
25
28
  export declare const ORACLES_MAINNET: OracleNFT[];
26
29
  export declare const ORACLES_TESTNET: OracleNFT[];
27
30
  export declare const ORACLES_LP: OracleNFT[];
@@ -29,12 +32,20 @@ export declare const ORACLES_ALTS: OracleNFT[];
29
32
  export declare const LENDING_CODE: Cell;
30
33
  export declare const JETTON_WALLET_STANDART_CODE: Cell;
31
34
  export declare const JETTON_WALLET_STANDART_CODE_TESTNET: Cell;
35
+ export declare const EVAA_REWARDS_MASTER_CODE_TESTNET: Cell;
36
+ export declare const EVAA_REWARDS_MASTER_CODE_MAINNET: Cell;
37
+ export declare const EVAA_REWARDS_USER_CODE_TESTNET: Cell;
38
+ export declare const EVAA_REWARDS_USER_CODE_MAINNET: Cell;
32
39
  export declare const OPCODES: {
33
40
  SUPPLY: number;
34
41
  WITHDRAW: number;
35
42
  LIQUIDATE: number;
36
43
  JETTON_TRANSFER: number;
37
44
  ONCHAIN_GETTER: number;
45
+ REWARD_CLAIM: number;
46
+ REWARD_TON_TOP_UP: number;
47
+ REWARD_JETTON_MINT: number;
48
+ REWARD_JETTON_TRANSFER: number;
38
49
  };
39
50
  export declare const FEES: {
40
51
  SUPPLY: bigint;
@@ -44,4 +55,9 @@ export declare const FEES: {
44
55
  LIQUIDATION: bigint;
45
56
  LIQUIDATION_JETTON: bigint;
46
57
  LIQUIDATION_JETTON_FWD: bigint;
58
+ REWARD_MASTER_TON_TOP_UP: bigint;
59
+ REWARD_MASTER_DEPLOY: bigint;
60
+ REWARD_MASTER_WITHDRAW: bigint;
61
+ REWARD_USER_DEPLOY: bigint;
62
+ REWARD_USER_CLAIM: bigint;
47
63
  };
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.FEES = exports.OPCODES = exports.JETTON_WALLET_STANDART_CODE_TESTNET = exports.JETTON_WALLET_STANDART_CODE = exports.LENDING_CODE = exports.ORACLES_ALTS = exports.ORACLES_LP = exports.ORACLES_TESTNET = exports.ORACLES_MAINNET = exports.EVAA_ALTS_MAINNET_VERSION = exports.EVAA_ALTS_MAINNET = exports.EVAA_LP_MAINNET_VERSION = exports.EVAA_LP_MAINNET = exports.TESTNET_VERSION = exports.EVAA_MASTER_TESTNET = exports.MAINNET_VERSION = exports.EVAA_MASTER_MAINNET = exports.NULL_ADDRESS = exports.MASTER_CONSTANTS = void 0;
3
+ exports.FEES = exports.OPCODES = exports.EVAA_REWARDS_USER_CODE_MAINNET = exports.EVAA_REWARDS_USER_CODE_TESTNET = exports.EVAA_REWARDS_MASTER_CODE_MAINNET = exports.EVAA_REWARDS_MASTER_CODE_TESTNET = exports.JETTON_WALLET_STANDART_CODE_TESTNET = exports.JETTON_WALLET_STANDART_CODE = exports.LENDING_CODE = exports.ORACLES_ALTS = exports.ORACLES_LP = exports.ORACLES_TESTNET = exports.ORACLES_MAINNET = exports.EVAA_TON_REWARDS_MASTER_MAINNET = exports.EVAA_USDT_REWARDS_MASTER_MAINNET = exports.EVAA_REWARDS_MASTER_TESTNET = exports.EVAA_ALTS_MAINNET_VERSION = exports.EVAA_ALTS_MAINNET = exports.EVAA_LP_MAINNET_VERSION = exports.EVAA_LP_MAINNET = exports.TESTNET_VERSION = exports.EVAA_MASTER_TESTNET = exports.MAINNET_VERSION = exports.EVAA_MASTER_MAINNET = exports.NULL_ADDRESS = exports.MASTER_CONSTANTS = void 0;
4
4
  const core_1 = require("@ton/core");
5
5
  const ASSET_PRICE_SCALE = BigInt(1e9);
6
6
  exports.MASTER_CONSTANTS = {
@@ -19,12 +19,15 @@ exports.MASTER_CONSTANTS = {
19
19
  exports.NULL_ADDRESS = core_1.Address.parse('UQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJKZ');
20
20
  exports.EVAA_MASTER_MAINNET = core_1.Address.parse('EQC8rUZqR_pWV1BylWUlPNBzyiTYVoBEmQkMIQDZXICfnuRr');
21
21
  exports.MAINNET_VERSION = 6;
22
- exports.EVAA_MASTER_TESTNET = core_1.Address.parse('EQDLsg3w-iBj26Gww7neYoJAxiT2t77Zo8ro56b0yuHsPp3C');
22
+ exports.EVAA_MASTER_TESTNET = core_1.Address.parse('kQBae_Pt-NcxX0yhNnsYyK-Kh6ZBnIUQhxheKTvNLTgZf7AV');
23
23
  exports.TESTNET_VERSION = 0;
24
24
  exports.EVAA_LP_MAINNET = core_1.Address.parse('EQBIlZX2URWkXCSg3QF2MJZU-wC5XkBoLww-hdWk2G37Jc6N');
25
25
  exports.EVAA_LP_MAINNET_VERSION = 3;
26
26
  exports.EVAA_ALTS_MAINNET = core_1.Address.parse('EQANURVS3fhBO9bivig34iyJQi97FhMbpivo1aUEAS2GYSu-');
27
27
  exports.EVAA_ALTS_MAINNET_VERSION = 0;
28
+ exports.EVAA_REWARDS_MASTER_TESTNET = core_1.Address.parse('EQCnp0iRGcfDJAvnKhAEN9sB-nPYSPuc83Ff4y75s8AtoSW1');
29
+ exports.EVAA_USDT_REWARDS_MASTER_MAINNET = core_1.Address.parse('EQD22Fhylp1tX-xoVX81aMTSJNPV8j9klwApTLgjGmofISVD');
30
+ exports.EVAA_TON_REWARDS_MASTER_MAINNET = core_1.Address.parse('EQDRRbkwEg5-fV7DAP6gUQqX0sizvQOBEUCU1eaDgJRFDVxl');
28
31
  exports.ORACLES_MAINNET = [
29
32
  { id: 0, address: '0xd3a8c0b9fd44fd25a49289c631e3ac45689281f2f8cf0744400b4c65bed38e5d', pubkey: Buffer.from('b404f4a2ebb62f2623b370c89189748a0276c071965b1646b996407f10d72eb9', 'hex') },
30
33
  { id: 1, address: '0x2c21cabdaa89739de16bde7bc44e86401fac334a3c7e55305fe5e7563043e191', pubkey: Buffer.from('9ad115087520d91b6b45d6a8521eb4616ee6914af07fabdc2e9d1826dbb17078', 'hex') },
@@ -37,12 +40,20 @@ exports.ORACLES_ALTS = exports.ORACLES_MAINNET;
37
40
  exports.LENDING_CODE = core_1.Cell.fromBoc(Buffer.from('b5ee9c72c1010e0100fd000d12182a555a6065717691969efd0114ff00f4a413f4bcf2c80b010202c8050202039f740403001ff2f8276a2687d2018fd201800f883b840051d38642c678b64e4400780e58fc10802faf07f80e59fa801e78b096664c02078067c07c100627a7978402014807060007a0ddb0c60201c709080013a0fd007a026900aa90400201200b0a0031b8e1002191960aa00b9e2ca007f4042796d225e8019203f6010201200d0c000bf7c147d2218400b9d10e86981fd201840b07f8138d809797976a2687d2029116382f970fd9178089910374daf81b619fd20182c7883b8701981684100627910eba56001797a6a6ba610fd8200e8768f76a9f6aa00cc2a32a8292878809bef2f1889f883bbcdeb86f01', 'hex'))[0];
38
41
  exports.JETTON_WALLET_STANDART_CODE = core_1.Cell.fromBase64('te6cckECEwEAA4UAART/APSkE/S88sgLAQIBYgIDAgLLBAUAG6D2BdqJofQB9IH0gamjAgHOBgcCAVgKCwL3CDHAJJfBOAB0NMDAXGwlRNfA/Ad4PpA+kAx+gAxcdch+gAx+gAwc6m0AALTHwHbPFsyNDQ0JIIQD4p+pbqaMGwiNl4xECPwGuAkghAXjUUZupswbCJeMhAkQwDwG+A3WzaCEFlfB7y6nwJxsPLSwFAjuvLixgHwHOBfBYAgJABE+kQwwADy4U2AAXIBP+DMgbpUwgLH4M94gbvLSmtDTBzHT/9P/9ATTB9Qw0PoA+gD6APoA+gD6ADAACIQP8vACAVgMDQIBSBESAfcBdM/AQH6APpAIfAB7UTQ+gD6QPpA1NFRNqFSLMcF8uLBKsL/8uLCVDRCcFQgE1QUA8hQBPoCWM8WAc8WzMkiyMsBEvQA9ADLAMkgcAH5AHTIywISygfL/8nQBPpA9AQx+gAg10nCAPLixMiAGAHLBVAHzxZw+gJ3ActrgDgLzO1E0PoA+kD6QNTRCtM/AQH6AFFRoAX6QPpAU13HBVRzb3BUIBNUFAPIUAT6AljPFgHPFszJIsjLARL0APQAywDJcAH5AHTIywISygfL/8nQUA/HBR6x8uLDDPoAUcqhKbYIGaFQB6AYoSaSbFXjDSXXCwHDACHCALCAPEACqE8zIghAXjUUZWAoCyx/LP1AH+gIizxZQBs8WJfoCUAPPFslQBcwjkXKRceJQB6gToAiqAFAEoBegFLzy4sUByYBA+wBDAMhQBPoCWM8WAc8WzMntVAByUmmgGKHIghBzYtCcKQLLH8s/UAf6AlAEzxZQB88WyciAEAHLBSfPFlAE+gJxActqE8zJcfsAUEITAHSOI8iAEAHLBVAGzxZQBfoCcAHLaoIQ1TJ221gFAssfyz/JcvsAklsz4kADyFAE+gJYzxYBzxbMye1UAOs7UTQ+gD6QPpA1NEF0z8BAfoAIcIA8uLC+kD0BAHQ05/RAdFRYqFSWMcF8uLBJsL/8uLCyIIQe92X3lgEAssfyz8B+gIjzxYBzxYTy5/JyIAYAcsFI88WcPoCcQHLaszJgED7AEATyFAE+gJYzxYBzxbMye1UgAIcgCDXIe1E0PoA+kD6QNTRBNMfAYQPIYIQF41FGboCghB73ZfeuhKx8vTTPwEw+gAwE6BQI8hQBPoCWM8WAc8WzMntVINjFu1o=');
39
42
  exports.JETTON_WALLET_STANDART_CODE_TESTNET = core_1.Cell.fromBase64('te6cckECEQEAAyMAART/APSkE/S88sgLAQIBYgIDAgLMBAUAG6D2BdqJofQB9IH0gahhAgHUBgcCASAICQDDCDHAJJfBOAB0NMDAXGwlRNfA/AM4PpA+kAx+gAxcdch+gAx+gAwc6m0AALTH4IQD4p+pVIgupUxNFnwCeCCEBeNRRlSILqWMUREA/AK4DWCEFlfB7y6k1nwC+BfBIQP8vCAAET6RDBwuvLhTYAIBIAoLAIPUAQa5D2omh9AH0gfSBqGAJpj8EIC8aijKkQXUEIPe7L7wndCVj5cWLpn5j9ABgJ0CgR5CgCfQEsZ4sA54tmZPaqQB8VA9M/+gD6QCHwAe1E0PoA+kD6QNQwUTahUirHBfLiwSjC//LiwlQ0QnBUIBNUFAPIUAT6AljPFgHPFszJIsjLARL0APQAywDJIPkAcHTIywLKB8v/ydAE+kD0BDH6ACDXScIA8uLEd4AYyMsFUAjPFnD6AhfLaxPMgMAgEgDQ4AnoIQF41FGcjLHxnLP1AH+gIizxZQBs8WJfoCUAPPFslQBcwjkXKRceJQCKgToIIJycOAoBS88uLFBMmAQPsAECPIUAT6AljPFgHPFszJ7VQC9ztRND6APpA+kDUMAjTP/oAUVGgBfpA+kBTW8cFVHNtcFQgE1QUA8hQBPoCWM8WAc8WzMkiyMsBEvQA9ADLAMn5AHB0yMsCygfL/8nQUA3HBRyx8uLDCvoAUaihggiYloBmtgihggiYloCgGKEnlxBJEDg3XwTjDSXXCwGAPEADXO1E0PoA+kD6QNQwB9M/+gD6QDBRUaFSSccF8uLBJ8L/8uLCBYIJMS0AoBa88uLDghB73ZfeyMsfFcs/UAP6AiLPFgHPFslxgBjIywUkzxZw+gLLaszJgED7AEATyFAE+gJYzxYBzxbMye1UgAHBSeaAYoYIQc2LQnMjLH1Iwyz9Y+gJQB88WUAfPFslxgBDIywUkzxZQBvoCFctqFMzJcfsAECQQIwB8wwAjwgCwjiGCENUydttwgBDIywVQCM8WUAT6AhbLahLLHxLLP8ly+wCTNWwh4gPIUAT6AljPFgHPFszJ7VSV6u3X');
43
+ exports.EVAA_REWARDS_MASTER_CODE_TESTNET = core_1.Cell.fromBoc(Buffer.from('b5ee9c7241020e01000386000114ff00f4a413f4bcf2c80b01020162020b046ad03322c700925f03e0d0d3030171b0925f03e0fa403002d31fd33f715230bae302725230bae30282107362d09c5230bae3027413ba0304070800c46c21ed44d0fa40fa00fa40d4d401d001d1fa40d3ffd3ffd11034102307fa40308103e8820afaf0801abe19f2f48103ea5196c70519f2f48103ee8b0212c705f2f41036453304c85004cf16cbff12cbffc9c85005cf165003fa0258cf16ccccc9ed5402fe6c22ed44d0fa40fa00fa40d4d401d001d1fa40d3ffd3ffd11034102307fa40fa003021ed44d0fa40fa00fa40d4d401d001d1fa40d3ffd3ffd11034102335355bc8f828cf1613cbffcbffc9c85003cf1670fa0212ccc97020c8cb0113f400f400cb00c9f9007074c8cb02ca07cbffc9d08103ea51c1c7051cf2f45306bce302050600466c810173c8cb1fcb3f01fa02c9718018c8cb055003cf1670fa0212cb6accc98040fb0001d23a8b3544f4e8f9025220ba8e16385288708018c8cb0558cf1658fa02cb6ac98040fb008e3b22544a030a702082100f8a7ea5c8cb1f13cb3f5004fa0222cf1658cf16cb0021fa02cb1fc9718018c8cb055003cf1670fa0212cb6accc98040fb00e25037a110365e40010a00ec6c21ed44d0fa40fa00fa40d4d401d001d1fa40d3ffd3ffd1103410238103e8820afaf08052a0bef2f48b3544f4e8f9025220ba993738068209c9c380a18e11388103ea5192c70519f2f405fa00301056e213a010364515503304c85004cf16cbff12cbffc9c85005cf165003fa0258cf16ccccc9ed5402ea8f6ced44d0fa40fa00fa40d4d401d001d1fa40d3ffd3ffd11034102308fa40fa00308103e8821005f5e1001cbe1bf2f48103ea51b7c7051bf2f48103ed5395bbf2f48b3544f4e8f9025210ba8e16365279708018c8cb0558cf1658fa02cb6ac98040fb00e30e5026a14615503304e05f04840ff2f0090a00745468281b702082100f8a7ea5c8cb1f13cb3f5004fa0222cf1658cf16cb0021fa02cb1fc9718018c8cb055003cf1670fa0212cb6accc98040fb000038c85004cf16cbff12cbffc9c85005cf165003fa0258cf16ccccc9ed540201580c0d0039bbc24ed44d0fa40fa00fa40d4d401d001d1fa40d3ffd3ffd1103410238009fb87b6ed44d0fa40fa00fa40d4d401d001d1fa40d3ffd3ffd11034102335355bc8f828cf1613cbffcbffc9c85003cf1670fa0212ccc97020c8cb0113f400f400cb00c9f9007074c8cb02ca07cbffc9d0872ac1c8c', 'hex'))[0];
44
+ exports.EVAA_REWARDS_MASTER_CODE_MAINNET = exports.EVAA_REWARDS_MASTER_CODE_TESTNET;
45
+ exports.EVAA_REWARDS_USER_CODE_TESTNET = core_1.Cell.fromBoc(Buffer.from('b5ee9c724102060100014e000114ff00f4a413f4bcf2c80b01020162020502f8d03322c700925f03e0d0d3030171b0925f03e0fa403002d31fd33f725230ba8ed63233ed44d0fa40fa00d401d001d1fa40d3ffd3ffd1058308d718d430d08103e8821005f5e10019be18f2f48103e927f901541027f910f2f405fa40fa00308103eaf82813c70512f2f48103ec5313bcf2f45203a15006e0313273ba030400b8ed44d0fa40fa00d401d001d1fa40d3ffd3ffd110235f0372c8cb1f13cb3f01cf1658fa02c9718018c8cb055003cf1670fa0212cb6accc9820a625a0070fb02810080fb005521c85003cf16cbffcbffc9c85003cf1601fa02ccc9ed5400888e3ced44d0fa40fa00d401d001d1fa40d3ffd3ffd105fa00308103ea5173c70517f2f45025a14143c85003cf16cbffcbffc9c85003cf1601fa02ccc9ed54e05b840ff2f0002ba17849da89a1f481f401a803a003a3f481a7ffa7ffa333f41908', 'hex'))[0];
46
+ exports.EVAA_REWARDS_USER_CODE_MAINNET = exports.EVAA_REWARDS_USER_CODE_TESTNET;
40
47
  exports.OPCODES = {
41
48
  SUPPLY: 0x1,
42
49
  WITHDRAW: 0x2,
43
50
  LIQUIDATE: 0x3,
44
51
  JETTON_TRANSFER: 0xf8a7ea5,
45
52
  ONCHAIN_GETTER: 0x9998,
53
+ REWARD_CLAIM: 0x2,
54
+ REWARD_TON_TOP_UP: 0x7362d09c,
55
+ REWARD_JETTON_MINT: 0x178d4519,
56
+ REWARD_JETTON_TRANSFER: 0x0f8a7ea5,
46
57
  };
47
58
  exports.FEES = {
48
59
  SUPPLY: (0, core_1.toNano)('0.3'),
@@ -52,4 +63,9 @@ exports.FEES = {
52
63
  LIQUIDATION: (0, core_1.toNano)('0.8'),
53
64
  LIQUIDATION_JETTON: (0, core_1.toNano)('1'),
54
65
  LIQUIDATION_JETTON_FWD: (0, core_1.toNano)('0.8'),
66
+ REWARD_MASTER_TON_TOP_UP: (0, core_1.toNano)('0.03'),
67
+ REWARD_MASTER_DEPLOY: (0, core_1.toNano)('0.05'),
68
+ REWARD_MASTER_WITHDRAW: (0, core_1.toNano)('0.1'),
69
+ REWARD_USER_DEPLOY: (0, core_1.toNano)('0.05'),
70
+ REWARD_USER_CLAIM: (0, core_1.toNano)('0.1'),
55
71
  };
@@ -1,5 +1,10 @@
1
- import { PoolConfig } from "../types/Master";
1
+ import { PoolConfig } from '../types/Master';
2
+ import { EvaaRewardsConfig } from '../types/MasterRewards';
2
3
  export declare const MAINNET_POOL_CONFIG: PoolConfig;
3
4
  export declare const TESTNET_POOL_CONFIG: PoolConfig;
4
5
  export declare const MAINNET_LP_POOL_CONFIG: PoolConfig;
5
6
  export declare const MAINNET_ALTS_POOL_CONFIG: PoolConfig;
7
+ export declare const TESTNET_MASTER_REWARD_CONFIG: EvaaRewardsConfig;
8
+ export declare const TESTNET_MASTER_EUSDT_REWARD_CONFIG: EvaaRewardsConfig;
9
+ export declare const MAINNET_MASTER_TON_REWARD_CONFIG: EvaaRewardsConfig;
10
+ export declare const MAINNET_MASTER_USDT_REWARD_CONFIG: EvaaRewardsConfig;