@evaafi/sdk 0.5.5 → 0.5.6-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.d.ts +22 -3
- package/dist/api/math.js +141 -50
- package/dist/api/parser.d.ts +3 -3
- package/dist/api/parser.js +32 -15
- package/dist/config.d.ts +1 -0
- package/dist/config.js +4 -0
- package/dist/constants/assets.d.ts +2 -3
- package/dist/constants/assets.js +10 -2
- package/dist/constants/general.d.ts +3 -2
- package/dist/constants/general.js +6 -5
- package/dist/constants/pools.d.ts +0 -1
- package/dist/constants/pools.js +1 -14
- package/dist/constants.d.ts +4 -4
- package/dist/constants.js +15 -7
- package/dist/contracts/MasterContract.d.ts +13 -45
- package/dist/contracts/MasterContract.js +8 -10
- package/dist/contracts/UserContract.js +7 -7
- package/dist/index.d.ts +4 -3
- package/dist/index.js +3 -2
- package/dist/types/Master.d.ts +8 -7
- package/dist/types/User.d.ts +5 -5
- package/dist/utils/merkleProof.d.ts +4 -0
- package/dist/utils/merkleProof.js +108 -0
- package/dist/utils/priceUtils.d.ts +55 -0
- package/dist/utils/priceUtils.js +117 -0
- package/dist/utils/userJettonWallet.d.ts +2 -2
- package/dist/utils/userJettonWallet.js +4 -0
- package/dist/utils/utils.d.ts +2 -0
- package/dist/utils/utils.js +7 -0
- package/package.json +2 -3
- package/src/api/math.ts +169 -51
- package/src/api/parser.ts +50 -25
- package/src/constants/assets.ts +11 -3
- package/src/constants/general.ts +6 -4
- package/src/constants/pools.ts +1 -15
- package/src/contracts/MasterContract.ts +23 -65
- package/src/contracts/UserContract.ts +8 -10
- package/src/index.ts +2 -6
- package/src/types/Master.ts +9 -8
- package/src/types/User.ts +5 -5
- package/src/utils/userJettonWallet.ts +6 -2
- package/src/utils/utils.ts +6 -0
package/dist/api/math.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { AssetConfig, AssetData, AssetInterest, ExtendedAssetData, ExtendedAssetsConfig, ExtendedAssetsData, MasterConstants } from '../types/Master';
|
|
1
|
+
import { AgregatedBalances, AssetConfig, AssetData, AssetInterest, ExtendedAssetData, ExtendedAssetsConfig, ExtendedAssetsData, MasterConstants, PoolConfig } from '../types/Master';
|
|
2
2
|
import { Dictionary } from '@ton/core';
|
|
3
3
|
import { LiquidationData, PredictHealthFactorArgs, UserBalance } from '../types/User';
|
|
4
4
|
export declare function mulFactor(decimal: bigint, a: bigint, b: bigint): bigint;
|
|
@@ -17,8 +17,27 @@ export declare function calculateCurrentRates(assetConfig: AssetConfig, assetDat
|
|
|
17
17
|
export declare function calculateAssetData(assetsConfigDict: ExtendedAssetsConfig, assetsDataDict: Dictionary<bigint, AssetData>, assetId: bigint, masterConstants: MasterConstants): ExtendedAssetData;
|
|
18
18
|
export declare function calculateAssetInterest(assetConfig: AssetConfig, assetData: AssetData, masterConstants: MasterConstants): AssetInterest;
|
|
19
19
|
export declare function checkNotInDebtAtAll(principals: Dictionary<bigint, bigint>): boolean;
|
|
20
|
-
export declare function
|
|
20
|
+
export declare function getAgregatedBalances(assetsData: ExtendedAssetsData, assetsConfig: ExtendedAssetsConfig, principals: Dictionary<bigint, bigint>, prices: Dictionary<bigint, bigint>, masterConstants: MasterConstants): AgregatedBalances;
|
|
21
|
+
/**
|
|
22
|
+
* @deprecated The method should be used only for main contract v5
|
|
23
|
+
*/
|
|
24
|
+
export declare function isV5MainPoolContract(poolConfig: PoolConfig): boolean;
|
|
25
|
+
/**
|
|
26
|
+
* @deprecated The method should be used only for main contract v5
|
|
27
|
+
*/
|
|
28
|
+
export declare function calculateMaximumWithdrawAmountOld(assetsConfig: ExtendedAssetsConfig, assetsData: ExtendedAssetsData, principals: Dictionary<bigint, bigint>, prices: Dictionary<bigint, bigint>, masterConstants: MasterConstants, assetId: bigint): bigint;
|
|
29
|
+
export declare function calculateMaximumWithdrawAmount(// todo v6 ifelse dust not debt at all is fixed?
|
|
30
|
+
assetsConfig: ExtendedAssetsConfig, assetsData: ExtendedAssetsData, principals: Dictionary<bigint, bigint>, prices: Dictionary<bigint, bigint>, masterConstants: MasterConstants, assetId: bigint): bigint;
|
|
21
31
|
export declare function getAvailableToBorrow(assetsConfig: ExtendedAssetsConfig, assetsData: ExtendedAssetsData, principals: Dictionary<bigint, bigint>, prices: Dictionary<bigint, bigint>, masterConstants: MasterConstants): bigint;
|
|
22
32
|
export declare function presentValue(sRate: bigint, bRate: bigint, principalValue: bigint, masterConstants: MasterConstants): UserBalance;
|
|
23
|
-
|
|
33
|
+
/**
|
|
34
|
+
*
|
|
35
|
+
* @param assetsConfig
|
|
36
|
+
* @param assetsData
|
|
37
|
+
* @param principals
|
|
38
|
+
* @param prices
|
|
39
|
+
* @param poolConfig
|
|
40
|
+
* @returns can return UNDEFINED_ASSET if there are no assets
|
|
41
|
+
*/
|
|
42
|
+
export declare function calculateLiquidationData(assetsConfig: ExtendedAssetsConfig, assetsData: ExtendedAssetsData, principals: Dictionary<bigint, bigint>, prices: Dictionary<bigint, bigint>, poolConfig: PoolConfig): LiquidationData;
|
|
24
43
|
export declare function predictHealthFactor(args: PredictHealthFactorArgs): number;
|
package/dist/api/math.js
CHANGED
|
@@ -1,8 +1,10 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.predictHealthFactor = exports.calculateLiquidationData = exports.presentValue = exports.getAvailableToBorrow = exports.calculateMaximumWithdrawAmount = 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.presentValue = exports.getAvailableToBorrow = exports.calculateMaximumWithdrawAmount = exports.calculateMaximumWithdrawAmountOld = exports.isV5MainPoolContract = exports.getAgregatedBalances = exports.checkNotInDebtAtAll = exports.calculateAssetInterest = exports.calculateAssetData = exports.calculateCurrentRates = exports.calculatePresentValue = exports.bigIntMin = exports.bigIntMax = exports.mulDivC = exports.mulDiv = exports.mulFactor = void 0;
|
|
4
4
|
const User_1 = require("../types/User");
|
|
5
5
|
const sha256BigInt_1 = require("../utils/sha256BigInt");
|
|
6
|
+
const assets_1 = require("../constants/assets");
|
|
7
|
+
const __1 = require("..");
|
|
6
8
|
function mulFactor(decimal, a, b) {
|
|
7
9
|
return (a * b) / decimal;
|
|
8
10
|
}
|
|
@@ -12,8 +14,9 @@ function mulDiv(x, y, z) {
|
|
|
12
14
|
}
|
|
13
15
|
exports.mulDiv = mulDiv;
|
|
14
16
|
function mulDivC(x, y, z) {
|
|
15
|
-
const mul = x * y;
|
|
16
|
-
return mul / z + (mul % z ? 1n : 0n);
|
|
17
|
+
//const mul = x * y;
|
|
18
|
+
//return mul / z + (mul % z ? 1n : 0n);
|
|
19
|
+
return BigInt(Math.ceil(Number(x * y) / Number(z)));
|
|
17
20
|
}
|
|
18
21
|
exports.mulDivC = mulDivC;
|
|
19
22
|
function bigIntMax(...args) {
|
|
@@ -102,7 +105,83 @@ function checkNotInDebtAtAll(principals) {
|
|
|
102
105
|
return principals.values().every(x => x >= 0n);
|
|
103
106
|
}
|
|
104
107
|
exports.checkNotInDebtAtAll = checkNotInDebtAtAll;
|
|
105
|
-
function
|
|
108
|
+
function getAgregatedBalances(assetsData, assetsConfig, principals, prices, masterConstants) {
|
|
109
|
+
let user_total_supply = 0n;
|
|
110
|
+
let user_total_borrow = 0n;
|
|
111
|
+
for (const [assetId, principal] of principals) {
|
|
112
|
+
if (principal) {
|
|
113
|
+
if (!prices.has(assetId)) {
|
|
114
|
+
return { totalSupply: 0n, totalBorrow: 0n };
|
|
115
|
+
}
|
|
116
|
+
const price = prices.get(assetId);
|
|
117
|
+
const assetData = assetsData.get(assetId);
|
|
118
|
+
const assetConfig = assetsConfig.get(assetId);
|
|
119
|
+
// console.log('price', price);
|
|
120
|
+
if (principal < 0) {
|
|
121
|
+
user_total_borrow += presentValue(assetData.sRate, assetData.bRate, principal, masterConstants).amount * price / 10n ** assetConfig.decimals;
|
|
122
|
+
}
|
|
123
|
+
else {
|
|
124
|
+
user_total_supply += presentValue(assetData.sRate, assetData.bRate, principal, masterConstants).amount * price / 10n ** assetConfig.decimals;
|
|
125
|
+
}
|
|
126
|
+
// console.log('aggregated', assetId, presentValue(assetData.sRate, assetData.bRate, principal, masterConstants).type, presentValue(assetData.sRate, assetData.bRate, principal, masterConstants).amount * price / 10n ** assetConfig.decimals)
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
return { totalSupply: user_total_supply, totalBorrow: user_total_borrow };
|
|
130
|
+
}
|
|
131
|
+
exports.getAgregatedBalances = getAgregatedBalances;
|
|
132
|
+
/**
|
|
133
|
+
* @deprecated The method should be used only for main contract v5
|
|
134
|
+
*/
|
|
135
|
+
function isV5MainPoolContract(poolConfig) {
|
|
136
|
+
if ((poolConfig.masterAddress == __1.MAINNET_POOL_CONFIG.masterAddress && poolConfig.masterVersion == 5) ||
|
|
137
|
+
(poolConfig.masterAddress == __1.TESTNET_POOL_CONFIG.masterAddress && poolConfig.masterVersion == 5)) {
|
|
138
|
+
return true;
|
|
139
|
+
}
|
|
140
|
+
else {
|
|
141
|
+
return false;
|
|
142
|
+
}
|
|
143
|
+
}
|
|
144
|
+
exports.isV5MainPoolContract = isV5MainPoolContract;
|
|
145
|
+
/**
|
|
146
|
+
* @deprecated The method should be used only for main contract v5
|
|
147
|
+
*/
|
|
148
|
+
function calculateMaximumWithdrawAmountOld(assetsConfig, assetsData, principals, prices, masterConstants, assetId) {
|
|
149
|
+
let withdrawAmountMax = 0n;
|
|
150
|
+
const assetConfig = assetsConfig.get(assetId);
|
|
151
|
+
const assetData = assetsData.get(assetId);
|
|
152
|
+
const oldPrincipal = principals.get(assetId);
|
|
153
|
+
const oldPresentValue = presentValue(assetData.sRate, assetData.bRate, oldPrincipal, masterConstants);
|
|
154
|
+
if (oldPresentValue.amount > assetConfig.dust) {
|
|
155
|
+
if (checkNotInDebtAtAll(principals)) {
|
|
156
|
+
withdrawAmountMax = oldPresentValue.amount;
|
|
157
|
+
}
|
|
158
|
+
else {
|
|
159
|
+
if (!prices.has(assetId)) {
|
|
160
|
+
return 0n;
|
|
161
|
+
}
|
|
162
|
+
//const borrowable = getAvailableToBorrow(assetsConfig, assetsData, principals, prices, masterConstants);
|
|
163
|
+
const price = prices.get(assetId);
|
|
164
|
+
const agregatedBalances = getAgregatedBalances(assetsData, assetsConfig, principals, prices, masterConstants);
|
|
165
|
+
let maxAmountToReclaim = mulDiv(agregatedBalances.totalSupply - mulDivC(agregatedBalances.totalBorrow, masterConstants.ASSET_COEFFICIENT_SCALE, assetConfig.collateralFactor), 10n ** assetConfig.decimals, price);
|
|
166
|
+
withdrawAmountMax = bigIntMin(maxAmountToReclaim, oldPresentValue.amount);
|
|
167
|
+
//console.log('agregatedBalances', agregatedBalances);
|
|
168
|
+
//console.log('masterConstants.ASSET_COEFFICIENT_SCALE', masterConstants.ASSET_COEFFICIENT_SCALE);
|
|
169
|
+
//console.log('assetConfig.collateralFactor', assetConfig.collateralFactor);
|
|
170
|
+
//console.log('sekay', maxAmountToReclaim, oldPresentValue.amount);
|
|
171
|
+
}
|
|
172
|
+
}
|
|
173
|
+
else {
|
|
174
|
+
if (!prices.has(assetId)) {
|
|
175
|
+
return 0n;
|
|
176
|
+
}
|
|
177
|
+
const price = prices.get(assetId);
|
|
178
|
+
return getAvailableToBorrow(assetsConfig, assetsData, principals, prices, masterConstants) * (10n ** assetConfig.decimals) / price;
|
|
179
|
+
}
|
|
180
|
+
return withdrawAmountMax;
|
|
181
|
+
}
|
|
182
|
+
exports.calculateMaximumWithdrawAmountOld = calculateMaximumWithdrawAmountOld;
|
|
183
|
+
function calculateMaximumWithdrawAmount(// todo v6 ifelse dust not debt at all is fixed?
|
|
184
|
+
assetsConfig, assetsData, principals, prices, masterConstants, assetId) {
|
|
106
185
|
let withdrawAmountMax = 0n;
|
|
107
186
|
const assetConfig = assetsConfig.get(assetId);
|
|
108
187
|
const assetData = assetsData.get(assetId);
|
|
@@ -179,62 +258,74 @@ function presentValue(sRate, bRate, principalValue, masterConstants) {
|
|
|
179
258
|
}
|
|
180
259
|
}
|
|
181
260
|
exports.presentValue = presentValue;
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
261
|
+
/**
|
|
262
|
+
*
|
|
263
|
+
* @param assetsConfig
|
|
264
|
+
* @param assetsData
|
|
265
|
+
* @param principals
|
|
266
|
+
* @param prices
|
|
267
|
+
* @param poolConfig
|
|
268
|
+
* @returns can return UNDEFINED_ASSET if there are no assets
|
|
269
|
+
*/
|
|
270
|
+
function calculateLiquidationData(assetsConfig, assetsData, principals, prices, poolConfig) {
|
|
271
|
+
let collateralValue = 0n;
|
|
272
|
+
let collateralAsset = assets_1.UNDEFINED_ASSET;
|
|
273
|
+
let loanValue = 0n;
|
|
274
|
+
let loanAsset = assets_1.UNDEFINED_ASSET;
|
|
187
275
|
let totalDebt = 0n;
|
|
188
276
|
let totalLimit = 0n;
|
|
189
|
-
for (const
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
277
|
+
for (const asset of poolConfig.poolAssetsConfig) {
|
|
278
|
+
if (!principals.has(asset.assetId)) {
|
|
279
|
+
continue;
|
|
280
|
+
}
|
|
281
|
+
const principal = principals.get(asset.assetId);
|
|
282
|
+
const assetConfig = assetsConfig.get(asset.assetId);
|
|
283
|
+
const assetData = assetsData.get(asset.assetId);
|
|
193
284
|
const balance = principal > 0 ? (principal * assetData.sRate) / BigInt(1e12) : (principal * assetData.bRate) / BigInt(1e12);
|
|
194
285
|
if (balance > 0) {
|
|
195
|
-
const assetWorth = (balance * prices.get(
|
|
196
|
-
totalLimit += (assetWorth * assetConfig.liquidationThreshold) / masterConstants.ASSET_COEFFICIENT_SCALE;
|
|
197
|
-
if (assetWorth >
|
|
198
|
-
|
|
199
|
-
|
|
286
|
+
const assetWorth = (balance * prices.get(asset.assetId)) / 10n ** assetConfig.decimals;
|
|
287
|
+
totalLimit += (assetWorth * assetConfig.liquidationThreshold) / poolConfig.masterConstants.ASSET_COEFFICIENT_SCALE;
|
|
288
|
+
if (assetWorth > collateralValue) {
|
|
289
|
+
collateralValue = assetWorth;
|
|
290
|
+
collateralAsset = asset;
|
|
200
291
|
}
|
|
201
292
|
}
|
|
202
293
|
else if (balance < 0) {
|
|
203
|
-
const assetWorth = (-balance * prices.get(
|
|
294
|
+
const assetWorth = (-balance * prices.get(asset.assetId)) / 10n ** assetConfig.decimals;
|
|
204
295
|
totalDebt += assetWorth;
|
|
205
|
-
if (assetWorth >
|
|
206
|
-
|
|
207
|
-
|
|
296
|
+
if (assetWorth > loanValue) {
|
|
297
|
+
loanValue = assetWorth;
|
|
298
|
+
loanAsset = asset;
|
|
208
299
|
}
|
|
209
300
|
}
|
|
210
301
|
}
|
|
211
|
-
if (totalLimit < totalDebt) {
|
|
212
|
-
const
|
|
302
|
+
if (collateralAsset.assetId !== assets_1.UNDEFINED_ASSET.assetId && totalLimit < totalDebt) {
|
|
303
|
+
const loanAssetPrice = prices.get(loanAsset.assetId);
|
|
213
304
|
const values = [];
|
|
214
|
-
const
|
|
215
|
-
const
|
|
216
|
-
const liquidationBonus =
|
|
217
|
-
const
|
|
218
|
-
values.push((bigIntMax(
|
|
219
|
-
|
|
220
|
-
masterConstants.ASSET_COEFFICIENT_SCALE) /
|
|
305
|
+
const collateralAssetConfig = assetsConfig.get(collateralAsset.assetId);
|
|
306
|
+
const loanAssetConfig = assetsConfig.get(loanAsset.assetId);
|
|
307
|
+
const liquidationBonus = collateralAssetConfig.liquidationBonus;
|
|
308
|
+
const loanScale = 10n ** loanAssetConfig.decimals;
|
|
309
|
+
values.push((bigIntMax(collateralValue / 2n, bigIntMin(collateralValue, 100000000000n)) *
|
|
310
|
+
loanScale *
|
|
311
|
+
poolConfig.masterConstants.ASSET_COEFFICIENT_SCALE) /
|
|
221
312
|
liquidationBonus /
|
|
222
|
-
|
|
223
|
-
values.push((
|
|
313
|
+
loanAssetPrice);
|
|
314
|
+
values.push((loanValue * loanScale) / loanAssetPrice);
|
|
224
315
|
const liquidationAmount = bigIntMin(...values) - 5n;
|
|
225
|
-
const
|
|
226
|
-
const collateralDecimal = 10n **
|
|
227
|
-
let minCollateralAmount = (((liquidationAmount *
|
|
228
|
-
|
|
229
|
-
|
|
316
|
+
const collateralAssetPrice = prices.get(collateralAsset.assetId);
|
|
317
|
+
const collateralDecimal = 10n ** collateralAssetConfig.decimals;
|
|
318
|
+
let minCollateralAmount = (((liquidationAmount * loanAssetPrice * liquidationBonus) / poolConfig.masterConstants.ASSET_LIQUIDATION_BONUS_SCALE) * collateralDecimal) /
|
|
319
|
+
collateralAssetPrice /
|
|
320
|
+
loanScale -
|
|
230
321
|
10n;
|
|
231
322
|
minCollateralAmount = (minCollateralAmount * 97n) / 100n;
|
|
232
323
|
if (minCollateralAmount / collateralDecimal >= 1n) {
|
|
233
324
|
return {
|
|
234
|
-
greatestCollateralAsset:
|
|
235
|
-
greatestCollateralValue:
|
|
236
|
-
greatestLoanAsset:
|
|
237
|
-
greatestLoanValue:
|
|
325
|
+
greatestCollateralAsset: collateralAsset,
|
|
326
|
+
greatestCollateralValue: collateralValue,
|
|
327
|
+
greatestLoanAsset: loanAsset,
|
|
328
|
+
greatestLoanValue: loanValue,
|
|
238
329
|
totalDebt,
|
|
239
330
|
totalLimit,
|
|
240
331
|
liquidable: true,
|
|
@@ -244,10 +335,10 @@ function calculateLiquidationData(assetsConfig, assetsData, principals, prices,
|
|
|
244
335
|
}
|
|
245
336
|
}
|
|
246
337
|
return {
|
|
247
|
-
greatestCollateralAsset:
|
|
248
|
-
greatestCollateralValue:
|
|
249
|
-
greatestLoanAsset:
|
|
250
|
-
greatestLoanValue:
|
|
338
|
+
greatestCollateralAsset: collateralAsset,
|
|
339
|
+
greatestCollateralValue: collateralValue,
|
|
340
|
+
greatestLoanAsset: loanAsset,
|
|
341
|
+
greatestLoanValue: loanValue,
|
|
251
342
|
totalDebt,
|
|
252
343
|
totalLimit,
|
|
253
344
|
liquidable: false,
|
|
@@ -255,7 +346,7 @@ function calculateLiquidationData(assetsConfig, assetsData, principals, prices,
|
|
|
255
346
|
}
|
|
256
347
|
exports.calculateLiquidationData = calculateLiquidationData;
|
|
257
348
|
function predictHealthFactor(args) {
|
|
258
|
-
const liquidationData = calculateLiquidationData(args.assetsConfig, args.assetsData, args.
|
|
349
|
+
const liquidationData = calculateLiquidationData(args.assetsConfig, args.assetsData, args.principals, args.prices, args.poolConfig);
|
|
259
350
|
const tokenHash = (0, sha256BigInt_1.sha256Hash)(args.tokenSymbol);
|
|
260
351
|
const assetConfig = args.assetsConfig.get(tokenHash);
|
|
261
352
|
const assetPrice = Number(args.prices.get(tokenHash));
|
|
@@ -267,16 +358,16 @@ function predictHealthFactor(args) {
|
|
|
267
358
|
const changeType = args.balanceChangeType;
|
|
268
359
|
if (currentAmount != null && currentAmount != 0n) {
|
|
269
360
|
if (changeType == User_1.BalanceChangeType.Borrow) {
|
|
270
|
-
totalBorrow += currentBalance * (1 + Number(assetConfig.originationFee) / Number(args.masterConstants.ASSET_ORIGINATION_FEE_SCALE));
|
|
361
|
+
totalBorrow += currentBalance * (1 + Number(assetConfig.originationFee) / Number(args.poolConfig.masterConstants.ASSET_ORIGINATION_FEE_SCALE));
|
|
271
362
|
}
|
|
272
363
|
else if (changeType == User_1.BalanceChangeType.Repay) {
|
|
273
364
|
totalBorrow -= currentBalance;
|
|
274
365
|
}
|
|
275
366
|
else if (changeType == User_1.BalanceChangeType.Withdraw) {
|
|
276
|
-
totalLimit -= currentBalance * Number(assetConfig.liquidationThreshold) / Number(args.masterConstants.ASSET_COEFFICIENT_SCALE);
|
|
367
|
+
totalLimit -= currentBalance * Number(assetConfig.liquidationThreshold) / Number(args.poolConfig.masterConstants.ASSET_COEFFICIENT_SCALE);
|
|
277
368
|
}
|
|
278
369
|
else if (changeType == User_1.BalanceChangeType.Supply) {
|
|
279
|
-
totalLimit += currentBalance * Number(assetConfig.liquidationThreshold) / Number(args.masterConstants.ASSET_COEFFICIENT_SCALE);
|
|
370
|
+
totalLimit += currentBalance * Number(assetConfig.liquidationThreshold) / Number(args.poolConfig.masterConstants.ASSET_COEFFICIENT_SCALE);
|
|
280
371
|
}
|
|
281
372
|
}
|
|
282
373
|
if (Number(totalLimit) == 0) {
|
package/dist/api/parser.d.ts
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { Dictionary, DictionaryValue } from '@ton/core';
|
|
2
|
-
import { AssetConfig, AssetData, ExtendedAssetsConfig, ExtendedAssetsData, MasterConstants, MasterData, PoolAssetsConfig } from '../types/Master';
|
|
2
|
+
import { AssetConfig, AssetData, ExtendedAssetsConfig, ExtendedAssetsData, MasterConstants, MasterData, PoolAssetsConfig, PoolConfig } from '../types/Master';
|
|
3
3
|
import { UserData, UserLiteData } from '../types/User';
|
|
4
4
|
export declare function createAssetData(): DictionaryValue<AssetData>;
|
|
5
5
|
export declare function createAssetConfig(): DictionaryValue<AssetConfig>;
|
|
6
6
|
export declare function parseMasterData(masterDataBOC: string, poolAssetsConfig: PoolAssetsConfig, masterConstants: MasterConstants): MasterData;
|
|
7
|
-
export declare function parseUserLiteData(userDataBOC: string, assetsData: ExtendedAssetsData, assetsConfig: ExtendedAssetsConfig,
|
|
8
|
-
export declare function parseUserData(userLiteData: UserLiteData, assetsData: ExtendedAssetsData, assetsConfig: ExtendedAssetsConfig, prices: Dictionary<bigint, bigint>,
|
|
7
|
+
export declare function parseUserLiteData(userDataBOC: string, assetsData: ExtendedAssetsData, assetsConfig: ExtendedAssetsConfig, poolConfig: PoolConfig, applyDust?: boolean): UserLiteData;
|
|
8
|
+
export declare function parseUserData(userLiteData: UserLiteData, assetsData: ExtendedAssetsData, assetsConfig: ExtendedAssetsConfig, prices: Dictionary<bigint, bigint>, poolConfig: PoolConfig, applyDust?: boolean): UserData;
|
package/dist/api/parser.js
CHANGED
|
@@ -181,7 +181,9 @@ function parseMasterData(masterDataBOC, poolAssetsConfig, masterConstants) {
|
|
|
181
181
|
};
|
|
182
182
|
}
|
|
183
183
|
exports.parseMasterData = parseMasterData;
|
|
184
|
-
function parseUserLiteData(userDataBOC, assetsData, assetsConfig,
|
|
184
|
+
function parseUserLiteData(userDataBOC, assetsData, assetsConfig, poolConfig, applyDust = true) {
|
|
185
|
+
const poolAssetsConfig = poolConfig.poolAssetsConfig;
|
|
186
|
+
const masterConstants = poolConfig.masterConstants;
|
|
185
187
|
const userSlice = core_1.Cell.fromBase64(userDataBOC).beginParse();
|
|
186
188
|
const codeVersion = userSlice.loadCoins();
|
|
187
189
|
const masterAddress = userSlice.loadAddress();
|
|
@@ -213,14 +215,20 @@ function parseUserLiteData(userDataBOC, assetsData, assetsConfig, poolAssetsConf
|
|
|
213
215
|
}
|
|
214
216
|
*/
|
|
215
217
|
userSlice.endParse();
|
|
218
|
+
const isV5Main = (0, math_1.isV5MainPoolContract)(poolConfig);
|
|
216
219
|
const userBalances = core_1.Dictionary.empty();
|
|
217
220
|
for (const [_, asset] of Object.entries(poolAssetsConfig)) {
|
|
218
221
|
const assetData = assetsData.get(asset.assetId);
|
|
219
222
|
const assetConfig = assetsConfig.get(asset.assetId);
|
|
220
|
-
let
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
223
|
+
let principal = principalsDict.get(asset.assetId) || 0n;
|
|
224
|
+
let balance = (0, math_1.presentValue)(assetData.sRate, assetData.bRate, principal, masterConstants);
|
|
225
|
+
let leftBorder = isV5Main ? balance.amount : principal;
|
|
226
|
+
if (applyDust && (principal > 0 && (leftBorder < assetConfig.dust))) { // v6 will be abs(principals) < dust
|
|
227
|
+
principal = 0n;
|
|
228
|
+
balance = {
|
|
229
|
+
amount: 0n,
|
|
230
|
+
type: User_1.BalanceType.supply,
|
|
231
|
+
};
|
|
224
232
|
principalsDict.set(asset.assetId, 0n);
|
|
225
233
|
}
|
|
226
234
|
userBalances.set(asset.assetId, balance);
|
|
@@ -244,23 +252,27 @@ function parseUserLiteData(userDataBOC, assetsData, assetsConfig, poolAssetsConf
|
|
|
244
252
|
};
|
|
245
253
|
}
|
|
246
254
|
exports.parseUserLiteData = parseUserLiteData;
|
|
247
|
-
function parseUserData(userLiteData, assetsData, assetsConfig, prices,
|
|
255
|
+
function parseUserData(userLiteData, assetsData, assetsConfig, prices, poolConfig, applyDust = true) {
|
|
256
|
+
const poolAssetsConfig = poolConfig.poolAssetsConfig;
|
|
257
|
+
const masterConstants = poolConfig.masterConstants;
|
|
248
258
|
const withdrawalLimits = core_1.Dictionary.empty();
|
|
249
259
|
const borrowLimits = core_1.Dictionary.empty();
|
|
250
260
|
let supplyBalance = 0n;
|
|
251
261
|
let borrowBalance = 0n;
|
|
252
|
-
|
|
262
|
+
const isV5Main = (0, math_1.isV5MainPoolContract)(poolConfig);
|
|
263
|
+
for (const [_, asset] of Object.entries(poolAssetsConfig)) {
|
|
253
264
|
const assetData = assetsData.get(asset.assetId);
|
|
254
265
|
const assetConfig = assetsConfig.get(asset.assetId);
|
|
255
|
-
let
|
|
256
|
-
const balance = (0, math_1.presentValue)(assetData.sRate, assetData.bRate,
|
|
257
|
-
|
|
258
|
-
|
|
266
|
+
let principal = userLiteData.principals.get(asset.assetId) || 0n;
|
|
267
|
+
const balance = (0, math_1.presentValue)(assetData.sRate, assetData.bRate, principal, masterConstants);
|
|
268
|
+
let leftBorder = isV5Main ? balance.amount : principal;
|
|
269
|
+
if (applyDust && (principal > 0 && (leftBorder < assetConfig.dust))) { // v6 will be abs(principals) < dust
|
|
270
|
+
principal = 0n;
|
|
259
271
|
userLiteData.principals.set(asset.assetId, 0n);
|
|
260
272
|
}
|
|
261
273
|
userLiteData.balances.set(asset.assetId, balance);
|
|
262
274
|
}
|
|
263
|
-
for (const [_, asset] of Object.entries(
|
|
275
|
+
for (const [_, asset] of Object.entries(poolAssetsConfig)) {
|
|
264
276
|
const assetConfig = assetsConfig.get(asset.assetId);
|
|
265
277
|
const balance = userLiteData.balances.get(asset.assetId);
|
|
266
278
|
if (balance.type === User_1.BalanceType.supply) {
|
|
@@ -271,12 +283,17 @@ function parseUserData(userLiteData, assetsData, assetsConfig, prices, poolAsset
|
|
|
271
283
|
}
|
|
272
284
|
}
|
|
273
285
|
const availableToBorrow = (0, math_1.getAvailableToBorrow)(assetsConfig, assetsData, userLiteData.principals, prices, masterConstants);
|
|
274
|
-
for (const [_, asset] of Object.entries(
|
|
286
|
+
for (const [_, asset] of Object.entries(poolAssetsConfig)) {
|
|
275
287
|
const assetConfig = assetsConfig.get(asset.assetId);
|
|
276
288
|
const assetData = assetsData.get(asset.assetId);
|
|
277
289
|
const balance = userLiteData.balances.get(asset.assetId);
|
|
278
290
|
if (balance.type === User_1.BalanceType.supply) {
|
|
279
|
-
|
|
291
|
+
if ((0, math_1.isV5MainPoolContract)(poolConfig)) {
|
|
292
|
+
withdrawalLimits.set(asset.assetId, (0, math_1.calculateMaximumWithdrawAmountOld)(assetsConfig, assetsData, userLiteData.principals, prices, masterConstants, asset.assetId));
|
|
293
|
+
}
|
|
294
|
+
else {
|
|
295
|
+
withdrawalLimits.set(asset.assetId, (0, math_1.calculateMaximumWithdrawAmount)(assetsConfig, assetsData, userLiteData.principals, prices, masterConstants, asset.assetId));
|
|
296
|
+
}
|
|
280
297
|
}
|
|
281
298
|
borrowLimits.set(asset.assetId, (0, math_1.bigIntMin)((availableToBorrow * 10n ** assetConfig.decimals) / prices.get(asset.assetId), assetData.balance));
|
|
282
299
|
}
|
|
@@ -284,7 +301,7 @@ function parseUserData(userLiteData, assetsData, assetsConfig, prices, poolAsset
|
|
|
284
301
|
const limitUsedPercent = limitUsed === 0n
|
|
285
302
|
? 0
|
|
286
303
|
: Number(BigInt(1e9) - (availableToBorrow * BigInt(1e9)) / (borrowBalance + availableToBorrow)) / 1e7;
|
|
287
|
-
const liquidationData = (0, math_1.calculateLiquidationData)(assetsConfig, assetsData, userLiteData.principals, prices,
|
|
304
|
+
const liquidationData = (0, math_1.calculateLiquidationData)(assetsConfig, assetsData, userLiteData.principals, prices, poolConfig);
|
|
288
305
|
const healthFactor = 1 - Number(liquidationData.totalDebt) / Number(liquidationData.totalLimit);
|
|
289
306
|
return {
|
|
290
307
|
...userLiteData,
|
package/dist/config.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const TTL_ORACLE_DATA_SEC = 170;
|
package/dist/config.js
ADDED
|
@@ -1,8 +1,7 @@
|
|
|
1
1
|
import { PoolAssetConfig } from "../types/Master";
|
|
2
|
+
export declare const UNDEFINED_ASSET: PoolAssetConfig;
|
|
2
3
|
export declare const TON_MAINNET: PoolAssetConfig;
|
|
3
|
-
export declare const TON_TESTNET:
|
|
4
|
-
name: string;
|
|
5
|
-
};
|
|
4
|
+
export declare const TON_TESTNET: PoolAssetConfig;
|
|
6
5
|
export declare const JUSDT_MAINNET: PoolAssetConfig;
|
|
7
6
|
export declare const JUSDC_MAINNET: PoolAssetConfig;
|
|
8
7
|
export declare const STTON_MAINNET: PoolAssetConfig;
|
package/dist/constants/assets.js
CHANGED
|
@@ -1,12 +1,20 @@
|
|
|
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 = 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 = 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.UNDEFINED_ASSET = {
|
|
8
|
+
name: 'undefined_asset',
|
|
9
|
+
assetId: -1n,
|
|
10
|
+
jettonMasterAddress: general_1.NULL_ADDRESS, // fake
|
|
11
|
+
jettonWalletCode: core_1.Cell.EMPTY
|
|
12
|
+
};
|
|
7
13
|
exports.TON_MAINNET = {
|
|
8
14
|
name: 'TON',
|
|
9
|
-
assetId: (0, sha256BigInt_1.sha256Hash)('TON')
|
|
15
|
+
assetId: (0, sha256BigInt_1.sha256Hash)('TON'),
|
|
16
|
+
jettonMasterAddress: general_1.NULL_ADDRESS, // fake
|
|
17
|
+
jettonWalletCode: core_1.Cell.EMPTY
|
|
10
18
|
};
|
|
11
19
|
exports.TON_TESTNET = exports.TON_MAINNET;
|
|
12
20
|
exports.JUSDT_MAINNET = {
|
|
@@ -6,13 +6,14 @@ export declare const MASTER_CONSTANTS: {
|
|
|
6
6
|
ASSET_RESERVE_FACTOR_SCALE: bigint;
|
|
7
7
|
ASSET_LIQUIDATION_RESERVE_FACTOR_SCALE: bigint;
|
|
8
8
|
ASSET_ORIGINATION_FEE_SCALE: bigint;
|
|
9
|
+
ASSET_LIQUIDATION_THRESHOLD_SCALE: bigint;
|
|
10
|
+
ASSET_LIQUIDATION_BONUS_SCALE: bigint;
|
|
9
11
|
};
|
|
12
|
+
export declare const NULL_ADDRESS: Address;
|
|
10
13
|
export declare const EVAA_MASTER_MAINNET: Address;
|
|
11
14
|
export declare const MAINNET_VERSION = 5;
|
|
12
15
|
export declare const EVAA_MASTER_TESTNET: Address;
|
|
13
16
|
export declare const TESTNET_VERSION = 5;
|
|
14
|
-
export declare const EVAA_LP_TESTNET: Address;
|
|
15
|
-
export declare const EVAA_LP_TESTNET_VERSION = 5;
|
|
16
17
|
export declare const EVAA_LP_MAINNET: Address;
|
|
17
18
|
export declare const EVAA_LP_MAINNET_VERSION = 0;
|
|
18
19
|
export declare const MAIN_POOL_NFT_ID = "0xfb9874544d76ca49c5db9cc3e5121e4c018bc8a2fb2bfe8f2a38c5b9963492f5";
|
|
@@ -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.LP_POOL_NFT_ID = exports.MAIN_POOL_NFT_ID = exports.EVAA_LP_MAINNET_VERSION = exports.EVAA_LP_MAINNET = exports.
|
|
3
|
+
exports.FEES = exports.OPCODES = exports.JETTON_WALLET_STANDART_CODE_TESTNET = exports.JETTON_WALLET_STANDART_CODE = exports.LENDING_CODE = exports.LP_POOL_NFT_ID = exports.MAIN_POOL_NFT_ID = 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
|
exports.MASTER_CONSTANTS = {
|
|
6
6
|
FACTOR_SCALE: BigInt(1e12),
|
|
@@ -8,14 +8,15 @@ exports.MASTER_CONSTANTS = {
|
|
|
8
8
|
ASSET_PRICE_SCALE: BigInt(1e9),
|
|
9
9
|
ASSET_RESERVE_FACTOR_SCALE: 10000n,
|
|
10
10
|
ASSET_LIQUIDATION_RESERVE_FACTOR_SCALE: 10000n,
|
|
11
|
-
ASSET_ORIGINATION_FEE_SCALE: BigInt(1e9)
|
|
11
|
+
ASSET_ORIGINATION_FEE_SCALE: BigInt(1e9),
|
|
12
|
+
ASSET_LIQUIDATION_THRESHOLD_SCALE: 10000n,
|
|
13
|
+
ASSET_LIQUIDATION_BONUS_SCALE: 10000n,
|
|
12
14
|
};
|
|
15
|
+
exports.NULL_ADDRESS = core_1.Address.parse('UQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJKZ');
|
|
13
16
|
exports.EVAA_MASTER_MAINNET = core_1.Address.parse('EQC8rUZqR_pWV1BylWUlPNBzyiTYVoBEmQkMIQDZXICfnuRr');
|
|
14
17
|
exports.MAINNET_VERSION = 5;
|
|
15
|
-
exports.EVAA_MASTER_TESTNET = core_1.Address.parse('EQCoIxsE8m0Q_Ui9uM-2RPtVWXqHK0ttuW2Mccuaj4FfdkLl');
|
|
18
|
+
exports.EVAA_MASTER_TESTNET = core_1.Address.parse('EQCoIxsE8m0Q_Ui9uM-2RPtVWXqHK0ttuW2Mccuaj4FfdkLl'); // EQBghPVKxgauOyrcyNYNwE2MRRnebaNpDGpVDQLbml_LIXnK
|
|
16
19
|
exports.TESTNET_VERSION = 5;
|
|
17
|
-
exports.EVAA_LP_TESTNET = core_1.Address.parse('EQBghPVKxgauOyrcyNYNwE2MRRnebaNpDGpVDQLbml_LIXnK');
|
|
18
|
-
exports.EVAA_LP_TESTNET_VERSION = 5;
|
|
19
20
|
exports.EVAA_LP_MAINNET = core_1.Address.parse('EQBIlZX2URWkXCSg3QF2MJZU-wC5XkBoLww-hdWk2G37Jc6N');
|
|
20
21
|
exports.EVAA_LP_MAINNET_VERSION = 0;
|
|
21
22
|
exports.MAIN_POOL_NFT_ID = '0xfb9874544d76ca49c5db9cc3e5121e4c018bc8a2fb2bfe8f2a38c5b9963492f5';
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import { PoolConfig } from "../types/Master";
|
|
2
2
|
export declare const MAINNET_POOL_CONFIG: PoolConfig;
|
|
3
3
|
export declare const TESTNET_POOL_CONFIG: PoolConfig;
|
|
4
|
-
export declare const TESTNET_LP_POOL_CONFIG: PoolConfig;
|
|
5
4
|
export declare const MAINNET_LP_POOL_CONFIG: PoolConfig;
|
package/dist/constants/pools.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.MAINNET_LP_POOL_CONFIG = exports.
|
|
3
|
+
exports.MAINNET_LP_POOL_CONFIG = exports.TESTNET_POOL_CONFIG = exports.MAINNET_POOL_CONFIG = void 0;
|
|
4
4
|
const assets_1 = require("./assets");
|
|
5
5
|
const general_1 = require("./general");
|
|
6
6
|
exports.MAINNET_POOL_CONFIG = {
|
|
@@ -31,19 +31,6 @@ exports.TESTNET_POOL_CONFIG = {
|
|
|
31
31
|
],
|
|
32
32
|
lendingCode: general_1.LENDING_CODE
|
|
33
33
|
};
|
|
34
|
-
exports.TESTNET_LP_POOL_CONFIG = {
|
|
35
|
-
masterAddress: general_1.EVAA_LP_TESTNET,
|
|
36
|
-
masterVersion: general_1.EVAA_LP_TESTNET_VERSION,
|
|
37
|
-
masterConstants: general_1.MASTER_CONSTANTS,
|
|
38
|
-
nftId: general_1.LP_POOL_NFT_ID,
|
|
39
|
-
poolAssetsConfig: [
|
|
40
|
-
assets_1.TON_MAINNET,
|
|
41
|
-
assets_1.JUSDT_TESTNET,
|
|
42
|
-
assets_1.JUSDC_TESTNET,
|
|
43
|
-
assets_1.STTON_TESTNET
|
|
44
|
-
],
|
|
45
|
-
lendingCode: general_1.LENDING_CODE
|
|
46
|
-
};
|
|
47
34
|
exports.MAINNET_LP_POOL_CONFIG = {
|
|
48
35
|
masterAddress: general_1.EVAA_LP_MAINNET,
|
|
49
36
|
masterVersion: general_1.EVAA_LP_MAINNET_VERSION,
|
package/dist/constants.d.ts
CHANGED
|
@@ -1,16 +1,16 @@
|
|
|
1
1
|
import { Address, Cell } from '@ton/core';
|
|
2
|
+
import { OracleNFT } from './types/Master';
|
|
2
3
|
export declare const EVAA_MASTER_MAINNET: Address;
|
|
3
|
-
export declare const MAINNET_VERSION =
|
|
4
|
+
export declare const MAINNET_VERSION = 0;
|
|
4
5
|
export declare const EVAA_MASTER_TESTNET: Address;
|
|
5
|
-
export declare const TESTNET_VERSION =
|
|
6
|
-
export declare const
|
|
6
|
+
export declare const TESTNET_VERSION = 6;
|
|
7
|
+
export declare const ORACLE_NFTS: OracleNFT[];
|
|
7
8
|
export declare const MAINNET_ASSETS_ID: {
|
|
8
9
|
TON: bigint;
|
|
9
10
|
jUSDT: bigint;
|
|
10
11
|
jUSDC: bigint;
|
|
11
12
|
stTON: bigint;
|
|
12
13
|
tsTON: bigint;
|
|
13
|
-
USDT: bigint;
|
|
14
14
|
};
|
|
15
15
|
export declare const TESTNET_ASSETS_ID: {
|
|
16
16
|
TON: bigint;
|
package/dist/constants.js
CHANGED
|
@@ -1,20 +1,28 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.FEES = exports.OPCODES = exports.JETTON_WALLETS_CODE = exports.LENDING_CODE = exports.MASTER_CONSTANTS = exports.JETTON_MASTER_ADDRESSES = exports.TESTNET_ASSETS_ID = exports.MAINNET_ASSETS_ID = exports.
|
|
3
|
+
exports.FEES = exports.OPCODES = exports.JETTON_WALLETS_CODE = exports.LENDING_CODE = exports.MASTER_CONSTANTS = exports.JETTON_MASTER_ADDRESSES = exports.TESTNET_ASSETS_ID = exports.MAINNET_ASSETS_ID = exports.ORACLE_NFTS = exports.TESTNET_VERSION = exports.EVAA_MASTER_TESTNET = exports.MAINNET_VERSION = exports.EVAA_MASTER_MAINNET = void 0;
|
|
4
4
|
const core_1 = require("@ton/core");
|
|
5
5
|
const sha256BigInt_1 = require("./utils/sha256BigInt");
|
|
6
|
-
|
|
7
|
-
exports.
|
|
8
|
-
|
|
9
|
-
exports.
|
|
10
|
-
exports.
|
|
6
|
+
//todo set back to EQC8rUZqR_pWV1BylWUlPNBzyiTYVoBEmQkMIQDZXICfnuRr
|
|
7
|
+
exports.EVAA_MASTER_MAINNET = core_1.Address.parse('EQC_hR5L4G3vkPG0VODURYoohp_3hlMW-gZiGp89HwyulZK4');
|
|
8
|
+
//todo set back to 5 (todo set at 6 on 10.10.2024)
|
|
9
|
+
exports.MAINNET_VERSION = 0;
|
|
10
|
+
exports.EVAA_MASTER_TESTNET = core_1.Address.parse('kQC92pF4XWatZY9-ZS6SGW6s-dCpjk9NtEkdXQ7vFHJUAdT9');
|
|
11
|
+
exports.TESTNET_VERSION = 6;
|
|
12
|
+
exports.ORACLE_NFTS = [
|
|
13
|
+
{ id: 0, address: '0xd3a8c0b9fd44fd25a49289c631e3ac45689281f2f8cf0744400b4c65bed38e5d' },
|
|
14
|
+
{ id: 1, address: '0x2c21cabdaa89739de16bde7bc44e86401fac334a3c7e55305fe5e7563043e191' },
|
|
15
|
+
{ id: 2, address: '0x2eb258ce7b5d02466ab8a178ad8b0ba6ffa7b58ef21de3dc3b6dd359a1e16af0' },
|
|
16
|
+
{ id: 3, address: '0xf9a0769954b4430bca95149fb3d876deb7799d8f74852e0ad4ccc5778ce68b52' },
|
|
17
|
+
];
|
|
11
18
|
exports.MAINNET_ASSETS_ID = {
|
|
12
19
|
TON: (0, sha256BigInt_1.sha256Hash)('TON'),
|
|
13
20
|
jUSDT: (0, sha256BigInt_1.sha256Hash)('jUSDT'),
|
|
14
21
|
jUSDC: (0, sha256BigInt_1.sha256Hash)('jUSDC'),
|
|
15
22
|
stTON: (0, sha256BigInt_1.sha256Hash)('stTON'),
|
|
16
23
|
tsTON: (0, sha256BigInt_1.sha256Hash)('tsTON'),
|
|
17
|
-
|
|
24
|
+
//todo uncomment
|
|
25
|
+
// USDT: sha256Hash('USDT'),
|
|
18
26
|
};
|
|
19
27
|
exports.TESTNET_ASSETS_ID = {
|
|
20
28
|
TON: (0, sha256BigInt_1.sha256Hash)('TON'),
|