@evaafi/sdk 0.6.0 → 0.6.1-a

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/api/math.js CHANGED
@@ -1,8 +1,9 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.predictHealthFactor = exports.calculateLiquidationData = exports.presentValue = exports.getAvailableToBorrow = exports.calculateMaximumWithdrawAmount = exports.getAgregatedBalances = exports.checkNotInDebtAtAll = exports.calculateAssetInterest = exports.calculateAssetData = exports.calculateCurrentRates = exports.calculatePresentValue = exports.bigIntMin = exports.bigIntMax = exports.mulDivC = exports.mulDiv = exports.mulFactor = void 0;
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;
4
4
  const User_1 = require("../types/User");
5
5
  const assets_1 = require("../constants/assets");
6
+ const liquidation_1 = require("./liquidation");
6
7
  function mulFactor(decimal, a, b) {
7
8
  return (a * b) / decimal;
8
9
  }
@@ -12,10 +13,15 @@ function mulDiv(x, y, z) {
12
13
  }
13
14
  exports.mulDiv = mulDiv;
14
15
  function mulDivC(x, y, z) {
15
- const mul = x * y;
16
- return mul / z + (mul % z ? 1n : 0n);
16
+ //const mul = x * y;
17
+ //return mul / z + (mul % z ? 1n : 0n);
18
+ return BigInt(Math.ceil(Number(x * y) / Number(z)));
17
19
  }
18
20
  exports.mulDivC = mulDivC;
21
+ function bigAbs(value) {
22
+ return value > 0n ? value : -value;
23
+ }
24
+ exports.bigAbs = bigAbs;
19
25
  function bigIntMax(...args) {
20
26
  return args.reduce((m, e) => (e > m ? e : m));
21
27
  }
@@ -24,6 +30,7 @@ function bigIntMin(...args) {
24
30
  return args.reduce((m, e) => (e < m ? e : m));
25
31
  }
26
32
  exports.bigIntMin = bigIntMin;
33
+ exports.BigMath = { mulFactor, mulDiv, mulDivC, abs: bigAbs, min: bigIntMin, max: bigIntMax };
27
34
  function calculatePresentValue(index, principalValue, masterConstants) {
28
35
  return (principalValue * index) / masterConstants.FACTOR_SCALE;
29
36
  }
@@ -40,7 +47,7 @@ function calculateCurrentRates(assetConfig, assetData, masterConstants) {
40
47
  bRate: updatedBRate,
41
48
  supplyInterest,
42
49
  borrowInterest,
43
- now,
50
+ now
44
51
  };
45
52
  }
46
53
  return {
@@ -48,7 +55,7 @@ function calculateCurrentRates(assetConfig, assetData, masterConstants) {
48
55
  bRate: assetData.bRate,
49
56
  supplyInterest,
50
57
  borrowInterest,
51
- now,
58
+ now
52
59
  };
53
60
  }
54
61
  exports.calculateCurrentRates = calculateCurrentRates;
@@ -67,7 +74,7 @@ function calculateAssetData(assetsConfigDict, assetsDataDict, assetId, masterCon
67
74
  return {
68
75
  ...data,
69
76
  ...{ supplyInterest, borrowInterest },
70
- ...{ supplyApy, borrowApy },
77
+ ...{ supplyApy, borrowApy }
71
78
  };
72
79
  }
73
80
  exports.calculateAssetData = calculateAssetData;
@@ -94,7 +101,7 @@ function calculateAssetInterest(assetConfig, assetData, masterConstants) {
94
101
  supplyInterest = mulDiv(mulDiv(borrowInterest, utilization, masterConstants.FACTOR_SCALE), masterConstants.ASSET_RESERVE_FACTOR_SCALE - assetConfig.reserveFactor, masterConstants.ASSET_RESERVE_FACTOR_SCALE);
95
102
  return {
96
103
  supplyInterest,
97
- borrowInterest,
104
+ borrowInterest
98
105
  };
99
106
  }
100
107
  exports.calculateAssetInterest = calculateAssetInterest;
@@ -113,12 +120,14 @@ function getAgregatedBalances(assetsData, assetsConfig, principals, prices, mast
113
120
  const price = prices.get(assetId);
114
121
  const assetData = assetsData.get(assetId);
115
122
  const assetConfig = assetsConfig.get(assetId);
123
+ // console.log('price', price);
116
124
  if (principal < 0) {
117
125
  user_total_borrow += presentValue(assetData.sRate, assetData.bRate, principal, masterConstants).amount * price / 10n ** assetConfig.decimals;
118
126
  }
119
127
  else {
120
128
  user_total_supply += presentValue(assetData.sRate, assetData.bRate, principal, masterConstants).amount * price / 10n ** assetConfig.decimals;
121
129
  }
130
+ // console.log('aggregated', assetId, presentValue(assetData.sRate, assetData.bRate, principal, masterConstants).type, presentValue(assetData.sRate, assetData.bRate, principal, masterConstants).amount * price / 10n ** assetConfig.decimals)
122
131
  }
123
132
  }
124
133
  return { totalSupply: user_total_supply, totalBorrow: user_total_borrow };
@@ -170,10 +179,10 @@ function getAvailableToBorrow(assetsConfig, assetsData, principals, prices, mast
170
179
  const assetData = assetsData.get(assetID);
171
180
  const price = prices.get(assetID);
172
181
  const principal = principals.get(assetID);
173
- if (principal < 0) {
182
+ if (principal < 0n) {
174
183
  borrowAmount += mulDiv(calculatePresentValue(assetData.bRate, -principal, masterConstants), price, 10n ** assetConfig.decimals);
175
184
  }
176
- else if (principal > 0) {
185
+ else if (principal > 0n) {
177
186
  borrowLimit +=
178
187
  mulDiv(mulDiv(calculatePresentValue(assetData.sRate, principal, masterConstants), price, 10n ** assetConfig.decimals), assetConfig.collateralFactor, masterConstants.ASSET_COEFFICIENT_SCALE);
179
188
  }
@@ -181,34 +190,89 @@ function getAvailableToBorrow(assetsConfig, assetsData, principals, prices, mast
181
190
  return borrowLimit - borrowAmount;
182
191
  }
183
192
  exports.getAvailableToBorrow = getAvailableToBorrow;
193
+ /**
194
+ * Calculates balance value for asset principal.
195
+ * @param sRate asset supply rate
196
+ * @param bRate asset borrow rate
197
+ * @param principalValue asset principal value
198
+ * @param masterConstants pool constants
199
+ */
184
200
  function presentValue(sRate, bRate, principalValue, masterConstants) {
185
201
  if (principalValue > 0) {
186
202
  return {
187
203
  amount: calculatePresentValue(sRate, principalValue, masterConstants),
188
- type: User_1.BalanceType.supply,
204
+ type: User_1.BalanceType.supply
189
205
  };
190
206
  }
191
207
  else if (principalValue < 0) {
192
208
  return {
193
209
  amount: calculatePresentValue(bRate, -principalValue, masterConstants),
194
- type: User_1.BalanceType.borrow,
210
+ type: User_1.BalanceType.borrow
195
211
  };
196
212
  }
197
213
  else {
198
214
  return {
199
215
  amount: 0n,
200
- type: undefined,
216
+ type: undefined
201
217
  };
202
218
  }
203
219
  }
204
220
  exports.presentValue = presentValue;
205
221
  /**
206
- *
207
- * @param assetsConfig
208
- * @param assetsData
209
- * @param principals
210
- * @param prices
211
- * @param poolConfig
222
+ * Calculates health parameters of the specified user account based on its parameters
223
+ * @param parameters
224
+ */
225
+ function calculateHealthParams(parameters) {
226
+ const { principals, prices, assetsData, assetsConfig, poolConfig } = parameters;
227
+ const { ASSET_LIQUIDATION_THRESHOLD_SCALE } = poolConfig.masterConstants;
228
+ let totalSupply = 0n;
229
+ let totalDebt = 0n;
230
+ let totalLimit = 0n;
231
+ for (const asset of poolConfig.poolAssetsConfig) {
232
+ if (!principals.has(asset.assetId))
233
+ continue;
234
+ const assetPrincipal = principals.get(asset.assetId);
235
+ if (!assetsConfig.has(asset.assetId))
236
+ throw (`No config for ${asset.name}:${asset.assetId}`);
237
+ const assetConfig = assetsConfig.get(asset.assetId);
238
+ if (!assetsData.has(asset.assetId))
239
+ throw (`No data for asset ${asset.name}:${asset.assetId}`);
240
+ const assetData = assetsData.get(asset.assetId);
241
+ if (!prices.has(asset.assetId))
242
+ throw (`No price for asset ${asset.name}:${asset.assetId}`);
243
+ const assetPrice = prices.get(asset.assetId);
244
+ const assetScale = 10n ** assetConfig.decimals;
245
+ const { sRate, bRate } = assetData;
246
+ const assetBalance = presentValue(sRate, bRate, assetPrincipal, poolConfig.masterConstants);
247
+ const assetWorth = assetBalance.amount * assetPrice / assetScale;
248
+ if (assetBalance.type === User_1.BalanceType.supply) {
249
+ totalSupply += assetWorth;
250
+ totalLimit += assetWorth * assetConfig.liquidationThreshold / ASSET_LIQUIDATION_THRESHOLD_SCALE;
251
+ }
252
+ else if (assetBalance.type === User_1.BalanceType.borrow) {
253
+ totalDebt += assetWorth;
254
+ }
255
+ }
256
+ const _isLiquidable = totalLimit < totalDebt;
257
+ // the `bad debt` condition depends on certain asset's liquidation bonus parameter
258
+ // , so it is not a user constant, but depends on certain asset
259
+ const _isBadDebt = (liquidationBonus) => {
260
+ return (0, liquidation_1.isBadDebt)(totalSupply, totalDebt, liquidationBonus, poolConfig.masterConstants);
261
+ };
262
+ return {
263
+ totalDebt, totalLimit, totalSupply,
264
+ isLiquidatable: _isLiquidable,
265
+ isBadDebt: _isBadDebt
266
+ };
267
+ }
268
+ exports.calculateHealthParams = calculateHealthParams;
269
+ /**
270
+ * Calculates liquidation data for greatest loan and collateral assets
271
+ * @param assetsConfig assets config dictionary
272
+ * @param assetsData assets data dictionary
273
+ * @param principals principals dictionary
274
+ * @param prices prices dictionary
275
+ * @param poolConfig pool config
212
276
  * @returns can return UNDEFINED_ASSET if there are no assets
213
277
  */
214
278
  function calculateLiquidationData(assetsConfig, assetsData, principals, prices, poolConfig) {
@@ -218,25 +282,28 @@ function calculateLiquidationData(assetsConfig, assetsData, principals, prices,
218
282
  let loanAsset = assets_1.UNDEFINED_ASSET;
219
283
  let totalDebt = 0n;
220
284
  let totalLimit = 0n;
285
+ const { ASSET_SRATE_SCALE, ASSET_BRATE_SCALE, COLLATERAL_WORTH_THRESHOLD } = poolConfig.masterConstants;
221
286
  for (const asset of poolConfig.poolAssetsConfig) {
222
- if (!principals.has(asset.assetId)) {
223
- continue;
224
- }
225
287
  const principal = principals.get(asset.assetId);
288
+ if (!principal)
289
+ continue;
226
290
  const assetConfig = assetsConfig.get(asset.assetId);
227
291
  const assetData = assetsData.get(asset.assetId);
228
- const balance = principal > 0 ? (principal * assetData.sRate) / BigInt(1e12) : (principal * assetData.bRate) / BigInt(1e12);
292
+ const balance = principal > 0 ?
293
+ (principal * assetData.sRate) / ASSET_SRATE_SCALE :
294
+ (principal * assetData.bRate) / ASSET_BRATE_SCALE;
295
+ const assetWorth = (bigAbs(balance) * prices.get(asset.assetId)) / 10n ** assetConfig.decimals;
229
296
  if (balance > 0) {
230
- const assetWorth = (balance * prices.get(asset.assetId)) / 10n ** assetConfig.decimals;
231
297
  totalLimit += (assetWorth * assetConfig.liquidationThreshold) / poolConfig.masterConstants.ASSET_COEFFICIENT_SCALE;
298
+ // get the greatest collateral
232
299
  if (assetWorth > collateralValue) {
233
300
  collateralValue = assetWorth;
234
301
  collateralAsset = asset;
235
302
  }
236
303
  }
237
304
  else if (balance < 0) {
238
- const assetWorth = (-balance * prices.get(asset.assetId)) / 10n ** assetConfig.decimals;
239
305
  totalDebt += assetWorth;
306
+ // get the greatest loan
240
307
  if (assetWorth > loanValue) {
241
308
  loanValue = assetWorth;
242
309
  loanAsset = asset;
@@ -250,7 +317,7 @@ function calculateLiquidationData(assetsConfig, assetsData, principals, prices,
250
317
  const loanAssetConfig = assetsConfig.get(loanAsset.assetId);
251
318
  const liquidationBonus = collateralAssetConfig.liquidationBonus;
252
319
  const loanScale = 10n ** loanAssetConfig.decimals;
253
- values.push((bigIntMax(collateralValue / 2n, bigIntMin(collateralValue, 100000000000n)) *
320
+ values.push((bigIntMax(collateralValue / 2n, bigIntMin(collateralValue, COLLATERAL_WORTH_THRESHOLD)) *
254
321
  loanScale *
255
322
  poolConfig.masterConstants.ASSET_COEFFICIENT_SCALE) /
256
323
  liquidationBonus /
@@ -264,7 +331,7 @@ function calculateLiquidationData(assetsConfig, assetsData, principals, prices,
264
331
  loanScale -
265
332
  10n;
266
333
  minCollateralAmount = (minCollateralAmount * 97n) / 100n;
267
- if (minCollateralAmount / collateralDecimal >= 0n) { // todo back to 1
334
+ if (minCollateralAmount > 0n) {
268
335
  return {
269
336
  greatestCollateralAsset: collateralAsset,
270
337
  greatestCollateralValue: collateralValue,
@@ -273,8 +340,8 @@ function calculateLiquidationData(assetsConfig, assetsData, principals, prices,
273
340
  totalDebt,
274
341
  totalLimit,
275
342
  liquidable: true,
276
- liquidationAmount,
277
- minCollateralAmount,
343
+ liquidationAmount: (0, liquidation_1.addReserve)(liquidationAmount, loanAssetConfig.liquidationReserveFactor, poolConfig.masterConstants.ASSET_RESERVE_FACTOR_SCALE),
344
+ minCollateralAmount
278
345
  };
279
346
  }
280
347
  }
@@ -285,17 +352,18 @@ function calculateLiquidationData(assetsConfig, assetsData, principals, prices,
285
352
  greatestLoanValue: loanValue,
286
353
  totalDebt,
287
354
  totalLimit,
288
- liquidable: false,
355
+ liquidable: false
289
356
  };
290
357
  }
291
358
  exports.calculateLiquidationData = calculateLiquidationData;
292
359
  function predictHealthFactor(args) {
293
- const liquidationData = calculateLiquidationData(args.assetsConfig, args.assetsData, args.principals, args.prices, args.poolConfig);
360
+ const healthParams = calculateHealthParams(args);
294
361
  const assetId = args.asset.assetId;
295
362
  const assetConfig = args.assetsConfig.get(assetId);
296
363
  const assetPrice = Number(args.prices.get(assetId));
297
- let totalLimit = Number(liquidationData.totalLimit);
298
- let totalBorrow = Number(liquidationData.totalDebt);
364
+ const assetData = args.assetsData.get(assetId);
365
+ let totalLimit = Number(healthParams.totalLimit);
366
+ let totalBorrow = Number(healthParams.totalDebt);
299
367
  const currentAmount = args.amount;
300
368
  const decimals = Number(assetConfig.decimals);
301
369
  const currentBalance = assetPrice * Number(currentAmount) / Math.pow(10, decimals);
@@ -30,9 +30,7 @@ function createAssetData() {
30
30
  buidler.storeUint(src.balance, 64);
31
31
  buidler.storeUint(src.trackingSupplyIndex, 64);
32
32
  buidler.storeUint(src.trackingBorrowIndex, 64);
33
- if (src.awaitedSupply) {
34
- buidler.storeUint(src.awaitedSupply, 64);
35
- }
33
+ buidler.storeUint(src.awaitedSupply, 64);
36
34
  },
37
35
  parse: (src) => {
38
36
  const sRate = BigInt(src.loadInt(64));
@@ -43,10 +41,7 @@ function createAssetData() {
43
41
  const balance = BigInt(src.loadInt(64));
44
42
  const trackingSupplyIndex = BigInt(src.loadUint(64));
45
43
  const trackingBorrowIndex = BigInt(src.loadUint(64));
46
- let awaitedSupply = undefined;
47
- if (src.remainingBits == 64) {
48
- awaitedSupply = BigInt(src.loadUint(64));
49
- }
44
+ const awaitedSupply = BigInt(src.loadUint(64));
50
45
  return { sRate, bRate, totalSupply, totalBorrow, lastAccural, balance, trackingSupplyIndex, trackingBorrowIndex, awaitedSupply };
51
46
  },
52
47
  };
@@ -181,7 +176,7 @@ function parseMasterData(masterDataBOC, poolAssetsConfig, masterConstants) {
181
176
  };
182
177
  }
183
178
  exports.parseMasterData = parseMasterData;
184
- function parseUserLiteData(userDataBOC, assetsData, assetsConfig, poolConfig, applyDust = true) {
179
+ function parseUserLiteData(userDataBOC, assetsData, assetsConfig, poolConfig, applyDust = false) {
185
180
  const poolAssetsConfig = poolConfig.poolAssetsConfig;
186
181
  const masterConstants = poolConfig.masterConstants;
187
182
  const userSlice = core_1.Cell.fromBase64(userDataBOC).beginParse();
@@ -244,7 +239,7 @@ function parseUserLiteData(userDataBOC, assetsData, assetsConfig, poolConfig, ap
244
239
  };
245
240
  }
246
241
  exports.parseUserLiteData = parseUserLiteData;
247
- function parseUserData(userLiteData, assetsData, assetsConfig, prices, poolConfig, applyDust = true) {
242
+ function parseUserData(userLiteData, assetsData, assetsConfig, prices, poolConfig, applyDust = false) {
248
243
  const poolAssetsConfig = poolConfig.poolAssetsConfig;
249
244
  const masterConstants = poolConfig.masterConstants;
250
245
  const withdrawalLimits = core_1.Dictionary.empty();
@@ -287,7 +282,10 @@ function parseUserData(userLiteData, assetsData, assetsConfig, prices, poolConfi
287
282
  ? 0
288
283
  : Number(BigInt(1e9) - (availableToBorrow * BigInt(1e9)) / (borrowBalance + availableToBorrow)) / 1e7;
289
284
  const liquidationData = (0, math_1.calculateLiquidationData)(assetsConfig, assetsData, userLiteData.principals, prices, poolConfig);
290
- const healthFactor = 1 - Number(liquidationData.totalDebt) / Number(liquidationData.totalLimit);
285
+ let healthFactor = 1;
286
+ if (liquidationData.totalLimit != 0n) {
287
+ healthFactor = 1 - Number(liquidationData.totalDebt) / Number(liquidationData.totalLimit);
288
+ }
291
289
  return {
292
290
  ...userLiteData,
293
291
  withdrawalLimits: withdrawalLimits,
@@ -1,4 +1,16 @@
1
1
  import { PoolAssetConfig } from "../types/Master";
2
+ export declare const ASSET_ID: {
3
+ TON: bigint;
4
+ USDT: bigint;
5
+ jUSDT: bigint;
6
+ jUSDC: bigint;
7
+ stTON: bigint;
8
+ tsTON: bigint;
9
+ TONUSDT_DEDUST: bigint;
10
+ TONUSDT_STONFI: bigint;
11
+ TON_STORM: bigint;
12
+ USDT_STORM: bigint;
13
+ };
2
14
  export declare const UNDEFINED_ASSET: PoolAssetConfig;
3
15
  export declare const TON_MAINNET: PoolAssetConfig;
4
16
  export declare const TON_TESTNET: PoolAssetConfig;
@@ -1,9 +1,21 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- 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 = void 0;
3
+ 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");
7
+ exports.ASSET_ID = {
8
+ TON: (0, sha256BigInt_1.sha256Hash)('TON'),
9
+ USDT: (0, sha256BigInt_1.sha256Hash)('USDT'),
10
+ jUSDT: (0, sha256BigInt_1.sha256Hash)('jUSDT'),
11
+ jUSDC: (0, sha256BigInt_1.sha256Hash)('jUSDC'),
12
+ stTON: (0, sha256BigInt_1.sha256Hash)('stTON'),
13
+ tsTON: (0, sha256BigInt_1.sha256Hash)('tsTON'),
14
+ TONUSDT_DEDUST: (0, sha256BigInt_1.sha256Hash)('TONUSDT_DEDUST'),
15
+ TONUSDT_STONFI: (0, sha256BigInt_1.sha256Hash)('TONUSDT_STONFI'),
16
+ TON_STORM: (0, sha256BigInt_1.sha256Hash)('TON_STORM'),
17
+ USDT_STORM: (0, sha256BigInt_1.sha256Hash)('USDT_STORM'),
18
+ };
7
19
  exports.UNDEFINED_ASSET = {
8
20
  name: 'undefined_asset',
9
21
  assetId: -1n,
@@ -12,74 +24,74 @@ exports.UNDEFINED_ASSET = {
12
24
  };
13
25
  exports.TON_MAINNET = {
14
26
  name: 'TON',
15
- assetId: (0, sha256BigInt_1.sha256Hash)('TON'),
27
+ assetId: exports.ASSET_ID.TON,
16
28
  jettonMasterAddress: general_1.NULL_ADDRESS, // fake
17
29
  jettonWalletCode: core_1.Cell.EMPTY
18
30
  };
19
31
  exports.TON_TESTNET = exports.TON_MAINNET;
20
32
  exports.JUSDT_MAINNET = {
21
33
  name: 'jUSDT',
22
- assetId: (0, sha256BigInt_1.sha256Hash)('jUSDT'),
34
+ assetId: exports.ASSET_ID.jUSDT,
23
35
  jettonMasterAddress: core_1.Address.parse('EQBynBO23ywHy_CgarY9NK9FTz0yDsG82PtcbSTQgGoXwiuA'),
24
36
  jettonWalletCode: general_1.JETTON_WALLET_STANDART_CODE
25
37
  };
26
38
  exports.JUSDC_MAINNET = {
27
39
  name: 'jUSDC',
28
- assetId: (0, sha256BigInt_1.sha256Hash)('jUSDC'),
40
+ assetId: exports.ASSET_ID.jUSDC,
29
41
  jettonMasterAddress: core_1.Address.parse('EQB-MPwrd1G6WKNkLz_VnV6WqBDd142KMQv-g1O-8QUA3728'),
30
42
  jettonWalletCode: general_1.JETTON_WALLET_STANDART_CODE
31
43
  };
32
44
  exports.STTON_MAINNET = {
33
45
  name: 'stTON',
34
- assetId: (0, sha256BigInt_1.sha256Hash)('stTON'),
46
+ assetId: exports.ASSET_ID.stTON,
35
47
  jettonMasterAddress: core_1.Address.parse('EQDNhy-nxYFgUqzfUzImBEP67JqsyMIcyk2S5_RwNNEYku0k'),
36
48
  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')
37
49
  };
38
50
  exports.TSTON_MAINNET = {
39
51
  name: 'tsTON',
40
- assetId: (0, sha256BigInt_1.sha256Hash)('tsTON'),
52
+ assetId: exports.ASSET_ID.tsTON,
41
53
  jettonMasterAddress: core_1.Address.parse('EQC98_qAmNEptUtPc7W6xdHh_ZHrBUFpw5Ft_IzNU20QAJav'),
42
54
  jettonWalletCode: core_1.Cell.fromBase64('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')
43
55
  };
44
56
  exports.USDT_MAINNET = {
45
57
  name: 'USDT',
46
- assetId: (0, sha256BigInt_1.sha256Hash)('USDT'),
58
+ assetId: exports.ASSET_ID.USDT,
47
59
  jettonMasterAddress: core_1.Address.parse('EQCxE6mUtQJKFnGfaROTKOt1lZbDiiX1kCixRv7Nw2Id_sDs'),
48
60
  jettonWalletCode: core_1.Cell.fromBoc(Buffer.from('b5ee9c7241020f010003d1000114ff00f4a413f4bcf2c80b01020162050202012004030021bc508f6a2686981fd007d207d2068af81c0027bfd8176a2686981fd007d207d206899fc152098402f8d001d0d3030171b08e48135f038020d721ed44d0d303fa00fa40fa40d104d31f01840f218210178d4519ba0282107bdd97deba12b1f2f48040d721fa003012a0401303c8cb0358fa0201cf1601cf16c9ed54e0fa40fa4031fa0031f401fa0031fa00013170f83a02d31f012082100f8a7ea5ba8e85303459db3ce0330c0602d0228210178d4519ba8e84325adb3ce034218210595f07bcba8e843101db3ce032208210eed236d3ba8e2f30018040d721d303d1ed44d0d303fa00fa40fa40d1335142c705f2e04a403303c8cb0358fa0201cf1601cf16c9ed54e06c218210d372158cbadc840ff2f0080701f2ed44d0d303fa00fa40fa40d106d33f0101fa00fa40f401d15141a15288c705f2e04926c2fff2afc882107bdd97de01cb1f5801cb3f01fa0221cf1658cf16c9c8801801cb0526cf1670fa02017158cb6accc903f839206e943081169fde718102f270f8380170f836a0811a7770f836a0bcf2b0028050fb00030903f4ed44d0d303fa00fa40fa40d12372b0c002f26d07d33f0101fa005141a004fa40fa4053bac705f82a5464e070546004131503c8cb0358fa0201cf1601cf16c921c8cb0113f40012f400cb00c9f9007074c8cb02ca07cbffc9d0500cc7051bb1f2e04a09fa0021925f04e30d26d70b01c000b393306c33e30d55020b0a09002003c8cb0358fa0201cf1601cf16c9ed54007a5054a1f82fa07381040982100966018070f837b60972fb02c8801001cb055005cf1670fa027001cb6a8210d53276db01cb1f5801cb3fc9810082fb00590060c882107362d09c01cb1f2501cb3f5004fa0258cf1658cf16c9c8801001cb0524cf1658fa02017158cb6accc98011fb0001f203d33f0101fa00fa4021fa4430c000f2e14ded44d0d303fa00fa40fa40d15309c7052471b0c00021b1f2ad522bc705500ab1f2e0495115a120c2fff2aff82a54259070546004131503c8cb0358fa0201cf1601cf16c921c8cb0113f40012f400cb00c920f9007074c8cb02ca07cbffc9d004fa40f401fa00200d019820d70b009ad74bc00101c001b0f2b19130e2c88210178d451901cb1f500a01cb3f5008fa0223cf1601cf1626fa025007cf16c9c8801801cb055004cf1670fa024063775003cb6bccccc945370e00b42191729171e2f839206e938124279120e2216e94318128739101e25023a813a0738103a370f83ca00270f83612a00170f836a07381040982100966018070f837a0bcf2b0048050fb005803c8cb0358fa0201cf1601cf16c9ed5401f9319e', 'hex'))[0],
49
61
  };
50
62
  exports.JUSDT_TESTNET = {
51
63
  name: 'jUSDT',
52
- assetId: (0, sha256BigInt_1.sha256Hash)('jUSDT'),
64
+ assetId: exports.ASSET_ID.jUSDT,
53
65
  jettonMasterAddress: core_1.Address.parse('kQBe4gtSQMxM5RpMYLr4ydNY72F8JkY-icZXG1NJcsju8XM7'),
54
66
  jettonWalletCode: general_1.JETTON_WALLET_STANDART_CODE_TESTNET
55
67
  };
56
68
  exports.JUSDC_TESTNET = {
57
69
  name: 'jUSDC',
58
- assetId: (0, sha256BigInt_1.sha256Hash)('jUSDC'),
70
+ assetId: exports.ASSET_ID.jUSDC,
59
71
  jettonMasterAddress: core_1.Address.parse('kQDaY5yUatYnHei73HBqRX_Ox9LK2XnR7XuCY9MFC2INbfYI'),
60
72
  jettonWalletCode: general_1.JETTON_WALLET_STANDART_CODE_TESTNET
61
73
  };
62
74
  exports.STTON_TESTNET = {
63
75
  name: 'stTON',
64
- assetId: (0, sha256BigInt_1.sha256Hash)('stTON'),
76
+ assetId: exports.ASSET_ID.stTON,
65
77
  jettonMasterAddress: core_1.Address.parse('kQC3Duw3dg8k98xf5S7Bm7YOWVJ5QW8hm3iLqFfJfa_g9h07'),
66
78
  jettonWalletCode: core_1.Cell.fromBoc(Buffer.from('b5ee9c7201021201000362000114ff00f4a413f4bcf2c80b0102016202030202cc0405001ba0f605da89a1f401f481f481a8610201d40607020120090a01cf0831c02497c138007434c0c05c6c2544d7c0fc03383e903e900c7e800c5c75c87e800c7e800c1cea6d0000b4c7c8608403e29fa96ea54c4d167c027808608405e351466ea58c511100fc02b80860841657c1ef2ea54c4d167c02f80517c1300138c08c2103fcbc200800113e910c30003cb85360007ced44d0fa00fa40fa40d43010235f03018208989680a16d801072226eb32091719170e203c8cb055006cf165004fa02cb6a039358cc019130e201c901fb000201200b0c0081d40106b90f6a2687d007d207d206a1802698f90c1080bc6a28cdd0141083deecbef5d0958f97064699f98fd001809d02811e428027d012c678b00e78b6664f6aa401f1503d33ffa00fa4021f001ed44d0fa00fa40fa40d4305136a1522ac705f2e2c128c2fff2e2c254344270542013541403c85004fa0258cf1601cf16ccc922c8cb0112f400f400cb00c920f9007074c8cb02ca07cbffc9d004fa40f40431fa0020d749c200f2e2c4778018c8cb055008cf1670fa0217cb6b13cc80d0201200e0f009e8210178d4519c8cb1f19cb3f5007fa0222cf165006cf1625fa025003cf16c95005cc2391729171e25008a813a0820a625a00a014bcf2e2c504c98040fb001023c85004fa0258cf1601cf16ccc9ed5402f73b51343e803e903e90350c0234cffe80145468017e903e9014d6f1c1551cdb5c150804d50500f214013e809633c58073c5b33248b232c044bd003d0032c0327e401c1d3232c0b281f2fff274140371c1472c7cb8b0c2be80146a2860822625a019ad8228608239387028062849e5c412440e0dd7c138c34975c2c060101100c90c3b51343e803e903e90350c01b4cffe800c145128548df1c17cb8b04970bffcb8b0812082e4e1c02fbcb8b160841ef765f7b232c7c532cfd63e808873c5b25c60063232c14933c59c3e80b2dab33260103ec01004f214013e809633c58073c5b3327b552000705279a018a182107362d09cc8cb1f5230cb3f58fa025007cf165007cf16c9718010c8cb0524cf165006fa0215cb6a14ccc971fb0010241023007cc30023c200b08e218210d53276db708010c8cb055008cf165004fa0216cb6a12cb1f12cb3fc972fb0093356c21e203c85004fa0258cf1601cf16ccc9ed54', 'hex'))[0],
67
79
  };
68
80
  exports.TONUSDT_DEDUST_MAINNET = {
69
81
  name: 'TONUSDT_DEDUST',
70
- assetId: (0, sha256BigInt_1.sha256Hash)('TONUSDT_DEDUST'),
82
+ assetId: exports.ASSET_ID.TONUSDT_DEDUST,
71
83
  jettonMasterAddress: core_1.Address.parse('EQA-X_yo3fzzbDbJ_0bzFWKqtRuZFIRa1sJsveZJ1YpViO3r'),
72
84
  jettonWalletCode: core_1.Cell.fromBoc(Buffer.from('b5ee9c7241021201000334000114ff00f4a413f4bcf2c80b0102016202110202cc03060201d4040500c30831c02497c138007434c0c05c6c2544d7c0fc02f83e903e900c7e800c5c75c87e800c7e800c1cea6d0000b4c7e08403e29fa954882ea54c4d167c0238208405e3514654882ea58c511100fc02780d60841657c1ef2ea4d67c02b817c12103fcbc2000113e910c1c2ebcb85360020148070e020120080a01f100f4cffe803e90087c007b51343e803e903e90350c144da8548ab1c17cb8b04a30bffcb8b0950d109c150804d50500f214013e809633c58073c5b33248b232c044bd003d0032c032483e401c1d3232c0b281f2fff274013e903d010c7e800835d270803cb8b11de0063232c1540233c59c3e8085f2dac4f3200900ae8210178d4519c8cb1f19cb3f5007fa0222cf165006cf1625fa025003cf16c95005cc2391729171e25008a813a08208e4e1c0aa008208989680a0a014bcf2e2c504c98040fb001023c85004fa0258cf1601cf16ccc9ed5403f73b51343e803e903e90350c0234cffe80145468017e903e9014d6f1c1551cdb5c150804d50500f214013e809633c58073c5b33248b232c044bd003d0032c0327e401c1d3232c0b281f2fff274140371c1472c7cb8b0c2be80146a2860822625a020822625a004ad8228608239387028062849f8c3c975c2c070c008e00b0c0d00705279a018a182107362d09cc8cb1f5230cb3f58fa025007cf165007cf16c9718010c8cb0524cf165006fa0215cb6a14ccc971fb0010241023000e10491038375f040076c200b08e218210d53276db708010c8cb055008cf165004fa0216cb6a12cb1f12cb3fc972fb0093356c21e203c85004fa0258cf1601cf16ccc9ed540201200f1000db3b51343e803e903e90350c01f4cffe803e900c145468549271c17cb8b049f0bffcb8b0a0823938702a8005a805af3cb8b0e0841ef765f7b232c7c572cfd400fe8088b3c58073c5b25c60063232c14933c59c3e80b2dab33260103ec01004f214013e809633c58073c5b3327b55200083200835c87b51343e803e903e90350c0134c7e08405e3514654882ea0841ef765f784ee84ac7cb8b174cfcc7e800c04e81408f214013e809633c58073c5b3327b5520001ba0f605da89a1f401f481f481a861f0a7d84b', 'hex'))[0],
73
85
  };
74
86
  exports.TON_STORM_MAINNET = {
75
87
  name: 'TON_STORM',
76
- assetId: (0, sha256BigInt_1.sha256Hash)('TON_STORM'),
88
+ assetId: exports.ASSET_ID.TON_STORM,
77
89
  jettonMasterAddress: core_1.Address.parse('EQCNY2AQ3ZDYwJAqx_nzl9i9Xhd_Ex7izKJM6JTxXRnO6n1F'),
78
90
  jettonWalletCode: core_1.Cell.fromBoc(Buffer.from('b5ee9c7241021301000380000114ff00f4a413f4bcf2c80b0102016202100202cd030f04add106380792000e8698180b8d8474289af81ed9e707d207d2018fd0018b8eb90fd0018fd001839d4da0001698f90c10807c53f52dd4742989a2ced9e7010c1080bc6a28cdd474318a22201ed9e701a9041082caf83de5d40405080c00888020d721ed44d0fa00fa40fa40d74c04d31f8200fff0228210178d4519ba0382107bdd97deba13b112f2f4d33f31fa003013a05023c85004fa0258cf1601cf16ccc9ed5401f603d33ffa00fa4021f007ed44d0fa00fa40fa40d74c5136a1522ac705f2e2c128c2fff2e2c2545255705202541304c85004fa0258cf1601cf16ccc921c8cb0113f40012f400cb00c97021f90074c8cb0212cb07cbffc9d004fa40f40431fa0020d749c200f2e2c48210178d4519c8cb1f1acb3f5008fa0223cf1601060176cf1626fa025007cf162591729171e2500aa815a0820a43d580a016bcf2e2c57007c9103741408040db3c4300c85004fa0258cf1601cf16ccc9ed5407002e778018c8cb055005cf165005fa0213cb6bccccc901fb0002f6ed44d0fa00fa40fa40d74c08d33ffa005151a005fa40fa40547c25705202541304c85004fa0258cf1601cf16ccc921c8cb0113f40012f400cb00c97021f90074c8cb0212cb07cbffc9d031536cc7050dc7051cb1f2e2c30afa0051a8a12195104a395f04e30d048208989680b60972fb0225d70b01c30003c20013090a014c521aa018a182107362d09cc8cb1f5240cb3f5003fa0201cf165008cf16c954253071db3c10350e0158b08e948210d53276dbc8cb1f14cb3f704055810082db3c923333e25003c85004fa0258cf1601cf16ccc9ed540b0030708018c8cb055004cf165004fa0212cb6a01cf17c901fb0002a08e843059db3ce06c22ed44d0fa00fa40fa40d74c10235f030182106d8e5e3cba8ea75202c705f2e2c1820898968070fb0201d70b3f8210d53276dbc8cb1fcb3f7001c912810082db3ce05f03840ff2f00d0e01bc30ed44d0fa00fa40fa40d74c06d33ffa00fa40305151a15248c705f2e2c126c2fff2e2c20582100ee6b280b9f2d2c782107bdd97dec8cb1fcb3f5004fa0221cf1658cf167001c952308040db3c4013c85004fa0258cf1601cf16ccc9ed540e002c718018c8cb055004cf165004fa0212cb6accc901fb000011f7d22186000797163402016611120021b5fe7da89a1f401f481f481ae9826be070001bb7605da89a1f401f481f481ae990c6f31b9d', 'hex'))[0],
79
91
  };
80
92
  exports.USDT_STORM_MAINNET = {
81
93
  name: 'USDT_STORM',
82
- assetId: (0, sha256BigInt_1.sha256Hash)('USDT_STORM'),
94
+ assetId: exports.ASSET_ID.USDT_STORM,
83
95
  jettonMasterAddress: core_1.Address.parse('EQCup4xxCulCcNwmOocM9HtDYPU8xe0449tQLp6a-5BLEegW'),
84
96
  jettonWalletCode: core_1.Cell.fromBoc(Buffer.from('b5ee9c7241021301000380000114ff00f4a413f4bcf2c80b0102016202100202cd030f04add106380792000e8698180b8d8474289af81ed9e707d207d2018fd0018b8eb90fd0018fd001839d4da0001698f90c10807c53f52dd4742989a2ced9e7010c1080bc6a28cdd474318a22201ed9e701a9041082caf83de5d40405080c00888020d721ed44d0fa00fa40fa40d74c04d31f8200fff0228210178d4519ba0382107bdd97deba13b112f2f4d33f31fa003013a05023c85004fa0258cf1601cf16ccc9ed5401f603d33ffa00fa4021f007ed44d0fa00fa40fa40d74c5136a1522ac705f2e2c128c2fff2e2c2545255705202541304c85004fa0258cf1601cf16ccc921c8cb0113f40012f400cb00c97021f90074c8cb0212cb07cbffc9d004fa40f40431fa0020d749c200f2e2c48210178d4519c8cb1f1acb3f5008fa0223cf1601060176cf1626fa025007cf162591729171e2500aa815a0820a43d580a016bcf2e2c57007c9103741408040db3c4300c85004fa0258cf1601cf16ccc9ed5407002e778018c8cb055005cf165005fa0213cb6bccccc901fb0002f6ed44d0fa00fa40fa40d74c08d33ffa005151a005fa40fa40547c25705202541304c85004fa0258cf1601cf16ccc921c8cb0113f40012f400cb00c97021f90074c8cb0212cb07cbffc9d031536cc7050dc7051cb1f2e2c30afa0051a8a12195104a395f04e30d048208989680b60972fb0225d70b01c30003c20013090a014c521aa018a182107362d09cc8cb1f5240cb3f5003fa0201cf165008cf16c954253071db3c10350e0158b08e948210d53276dbc8cb1f14cb3f704055810082db3c923333e25003c85004fa0258cf1601cf16ccc9ed540b0030708018c8cb055004cf165004fa0212cb6a01cf17c901fb0002a08e843059db3ce06c22ed44d0fa00fa40fa40d74c10235f030182106d8e5e3cba8ea75202c705f2e2c1820898968070fb0201d70b3f8210d53276dbc8cb1fcb3f7001c912810082db3ce05f03840ff2f00d0e01bc30ed44d0fa00fa40fa40d74c06d33ffa00fa40305151a15248c705f2e2c126c2fff2e2c20582100ee6b280b9f2d2c782107bdd97dec8cb1fcb3f5004fa0221cf1658cf167001c952308040db3c4013c85004fa0258cf1601cf16ccc9ed540e002c718018c8cb055004cf165004fa0212cb6accc901fb000011f7d22186000797163402016611120021b5fe7da89a1f401f481f481ae9826be070001bb7605da89a1f401f481f481ae990c6f31b9d', 'hex'))[0],
85
97
  };
@@ -9,6 +9,9 @@ export declare const MASTER_CONSTANTS: {
9
9
  ASSET_ORIGINATION_FEE_SCALE: bigint;
10
10
  ASSET_LIQUIDATION_THRESHOLD_SCALE: bigint;
11
11
  ASSET_LIQUIDATION_BONUS_SCALE: bigint;
12
+ ASSET_SRATE_SCALE: bigint;
13
+ ASSET_BRATE_SCALE: bigint;
14
+ COLLATERAL_WORTH_THRESHOLD: bigint;
12
15
  };
13
16
  export declare const NULL_ADDRESS: Address;
14
17
  export declare const EVAA_MASTER_MAINNET: Address;
@@ -16,7 +19,7 @@ export declare const MAINNET_VERSION = 6;
16
19
  export declare const EVAA_MASTER_TESTNET: Address;
17
20
  export declare const TESTNET_VERSION = 0;
18
21
  export declare const EVAA_LP_MAINNET: Address;
19
- export declare const EVAA_LP_MAINNET_VERSION = 2;
22
+ export declare const EVAA_LP_MAINNET_VERSION = 3;
20
23
  export declare const ORACLES_MAINNET: OracleNFT[];
21
24
  export declare const ORACLES_TESTNET: OracleNFT[];
22
25
  export declare const ORACLES_LP: OracleNFT[];
@@ -2,15 +2,19 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.FEES = exports.OPCODES = exports.JETTON_WALLET_STANDART_CODE_TESTNET = exports.JETTON_WALLET_STANDART_CODE = exports.LENDING_CODE = exports.ORACLES_LP = exports.ORACLES_TESTNET = exports.ORACLES_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
+ const ASSET_PRICE_SCALE = BigInt(1e9);
5
6
  exports.MASTER_CONSTANTS = {
6
7
  FACTOR_SCALE: BigInt(1e12),
7
8
  ASSET_COEFFICIENT_SCALE: 10000n,
8
- ASSET_PRICE_SCALE: BigInt(1e9),
9
+ ASSET_PRICE_SCALE,
9
10
  ASSET_RESERVE_FACTOR_SCALE: 10000n,
10
11
  ASSET_LIQUIDATION_RESERVE_FACTOR_SCALE: 10000n,
11
12
  ASSET_ORIGINATION_FEE_SCALE: BigInt(1e9),
12
13
  ASSET_LIQUIDATION_THRESHOLD_SCALE: 10000n,
13
14
  ASSET_LIQUIDATION_BONUS_SCALE: 10000n,
15
+ ASSET_SRATE_SCALE: BigInt(1e12),
16
+ ASSET_BRATE_SCALE: BigInt(1e12),
17
+ COLLATERAL_WORTH_THRESHOLD: 100n * ASSET_PRICE_SCALE, // literally 100$
14
18
  };
15
19
  exports.NULL_ADDRESS = core_1.Address.parse('UQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJKZ');
16
20
  exports.EVAA_MASTER_MAINNET = core_1.Address.parse('EQC8rUZqR_pWV1BylWUlPNBzyiTYVoBEmQkMIQDZXICfnuRr');
@@ -18,7 +22,7 @@ exports.MAINNET_VERSION = 6;
18
22
  exports.EVAA_MASTER_TESTNET = core_1.Address.parse('EQDLsg3w-iBj26Gww7neYoJAxiT2t77Zo8ro56b0yuHsPp3C');
19
23
  exports.TESTNET_VERSION = 0;
20
24
  exports.EVAA_LP_MAINNET = core_1.Address.parse('EQBIlZX2URWkXCSg3QF2MJZU-wC5XkBoLww-hdWk2G37Jc6N');
21
- exports.EVAA_LP_MAINNET_VERSION = 2;
25
+ exports.EVAA_LP_MAINNET_VERSION = 3;
22
26
  exports.ORACLES_MAINNET = [
23
27
  { id: 0, address: '0xd3a8c0b9fd44fd25a49289c631e3ac45689281f2f8cf0744400b4c65bed38e5d' },
24
28
  { id: 1, address: '0x2c21cabdaa89739de16bde7bc44e86401fac334a3c7e55305fe5e7563043e191' },
@@ -26,13 +30,10 @@ exports.ORACLES_MAINNET = [
26
30
  { id: 3, address: '0xf9a0769954b4430bca95149fb3d876deb7799d8f74852e0ad4ccc5778ce68b52' },
27
31
  ];
28
32
  exports.ORACLES_TESTNET = [
29
- { id: 0, address: '0x3bb147a37b7a7f874c39320440f352bddd2c9337e31a778731910f0266391650' },
30
- { id: 1, address: '0x676767e93b05a21aec9023a65f73cffe1c725709c3c964a7c3f0fd4229089bfe' },
31
- { id: 2, address: '0x9c9e65951b0c5920c286bdb3410babcaf21f85bc9c90c13172988630f1244e0f' },
32
- { id: 3, address: '0x9dcf880229bfb68d7344fd294624b64f1e0b43b9d858f0fdb1bc6434616c08f5' },
33
- { id: 4, address: '0x4d1afcf7c0426ca61c405c8cfaef0053a0f0d143740ffed04c8716beb99cd614' },
34
- { id: 5, address: '0x11c6baa608ed10733051fd74134441d384e471722fbc496b43ea4e3c6652485f' },
35
- { id: 6, address: '0x2b685672f38dc2fce59013bb740bf24c6037049a1c267bb3b5f6f55d5b195f5f' },
33
+ { id: 0, address: '0xd3a8c0b9fd44fd25a49289c631e3ac45689281f2f8cf0744400b4c65bed38e5d' },
34
+ { id: 1, address: '0x2c21cabdaa89739de16bde7bc44e86401fac334a3c7e55305fe5e7563043e191' },
35
+ { id: 2, address: '0x2eb258ce7b5d02466ab8a178ad8b0ba6ffa7b58ef21de3dc3b6dd359a1e16af0' },
36
+ { id: 3, address: '0xf9a0769954b4430bca95149fb3d876deb7799d8f74852e0ad4ccc5778ce68b52' },
36
37
  ];
37
38
  exports.ORACLES_LP = [
38
39
  { id: 0, address: '0xd3a8c0b9fd44fd25a49289c631e3ac45689281f2f8cf0744400b4c65bed38e5d' },
@@ -24,7 +24,7 @@ exports.TESTNET_POOL_CONFIG = {
24
24
  masterVersion: general_1.TESTNET_VERSION,
25
25
  masterConstants: general_1.MASTER_CONSTANTS,
26
26
  oracles: general_1.ORACLES_TESTNET,
27
- minimalOracles: 5,
27
+ minimalOracles: 3,
28
28
  poolAssetsConfig: [
29
29
  assets_1.TON_MAINNET,
30
30
  assets_1.JUSDT_TESTNET,
@@ -44,7 +44,7 @@ exports.MAINNET_LP_POOL_CONFIG = {
44
44
  assets_1.USDT_MAINNET,
45
45
  assets_1.TONUSDT_DEDUST_MAINNET,
46
46
  assets_1.TON_STORM_MAINNET,
47
- assets_1.USDT_STORM_MAINNET,
47
+ assets_1.USDT_STORM_MAINNET
48
48
  ],
49
49
  lendingCode: general_1.LENDING_CODE
50
50
  };
@@ -83,13 +83,14 @@ export type LiquidationParameters = LiquidationBaseData & {
83
83
  includeUserCode: boolean;
84
84
  priceData: Cell;
85
85
  payload: Cell;
86
+ payloadForwardAmount: bigint;
86
87
  };
87
88
  /**
88
89
  * Evaa master contract wrapper
89
90
  */
90
91
  export declare class Evaa implements Contract {
91
92
  readonly address: Address;
92
- private poolConfig;
93
+ private _poolConfig;
93
94
  private readonly debug?;
94
95
  private _data?;
95
96
  private lastSync;
@@ -98,6 +99,10 @@ export declare class Evaa implements Contract {
98
99
  * @param parameters Evaa contract parameters
99
100
  */
100
101
  constructor(parameters?: EvaaParameters);
102
+ /**
103
+ * Returns pool config
104
+ */
105
+ get poolConfig(): PoolConfig;
101
106
  /**
102
107
  * Create supply message
103
108
  * @returns supply message as a cell