@evaafi/sdk 0.6.4 → 0.9.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/api/feeds.d.ts +30 -0
- package/dist/api/feeds.js +73 -0
- package/dist/api/liquidation.js +1 -1
- package/dist/api/math.js +1 -1
- package/dist/api/parser.d.ts +4 -2
- package/dist/api/parser.js +39 -18
- package/dist/api/parsers/AbstractOracleParser.d.ts +11 -0
- package/dist/api/parsers/AbstractOracleParser.js +9 -0
- package/dist/api/parsers/ClassicOracleParser.d.ts +10 -0
- package/dist/api/parsers/ClassicOracleParser.js +16 -0
- package/dist/api/parsers/PythOracleParser.d.ts +17 -0
- package/dist/api/parsers/PythOracleParser.js +22 -0
- package/dist/api/parsers/index.d.ts +3 -0
- package/dist/api/parsers/index.js +19 -0
- package/dist/api/prices.d.ts +6 -6
- package/dist/api/prices.js +37 -46
- package/dist/api/pyth.d.ts +16 -0
- package/dist/api/pyth.js +35 -0
- package/dist/constants/assets/assetId.d.ts +22 -0
- package/dist/constants/assets/assetId.js +29 -0
- package/dist/constants/assets/index.d.ts +3 -0
- package/dist/constants/assets/index.js +19 -0
- package/dist/constants/assets/mainnet.d.ts +19 -0
- package/dist/constants/assets/mainnet.js +114 -0
- package/dist/constants/assets/testnet.d.ts +14 -0
- package/dist/constants/assets/testnet.js +54 -0
- package/dist/constants/assets.d.ts +3 -0
- package/dist/constants/assets.js +14 -1
- package/dist/constants/general/index.d.ts +65 -0
- package/dist/constants/general/index.js +93 -0
- package/dist/constants/general/mainnet.d.ts +24 -0
- package/dist/constants/general/mainnet.js +53 -0
- package/dist/constants/general/testnet.d.ts +12 -0
- package/dist/constants/general/testnet.js +15 -0
- package/dist/constants/general.d.ts +4 -4
- package/dist/constants/general.js +6 -6
- package/dist/constants/index.d.ts +3 -0
- package/dist/constants/index.js +19 -0
- package/dist/constants/pools/index.d.ts +2 -0
- package/dist/constants/pools/index.js +18 -0
- package/dist/constants/pools/mainnet.d.ts +14 -0
- package/dist/constants/pools/mainnet.js +145 -0
- package/dist/constants/pools/testnet.d.ts +9 -0
- package/dist/constants/pools/testnet.js +57 -0
- package/dist/constants/pools.js +9 -9
- package/dist/contracts/AbstractMaster.d.ts +185 -0
- package/dist/contracts/AbstractMaster.js +179 -0
- package/dist/contracts/ClassicMaster.d.ts +34 -0
- package/dist/contracts/ClassicMaster.js +87 -0
- package/dist/contracts/PythMaster.d.ts +61 -0
- package/dist/contracts/PythMaster.js +179 -0
- package/dist/contracts/UserContract.d.ts +1 -7
- package/dist/contracts/UserContract.js +1 -19
- package/dist/contracts/index.d.ts +5 -0
- package/dist/contracts/index.js +21 -0
- package/dist/index.d.ts +14 -14
- package/dist/index.js +20 -60
- package/dist/prices/Oracle.interface.d.ts +9 -0
- package/dist/prices/Oracle.interface.js +2 -0
- package/dist/prices/Prices.d.ts +5 -3
- package/dist/prices/Prices.js +13 -3
- package/dist/prices/PricesCollector.d.ts +17 -7
- package/dist/prices/PricesCollector.js +67 -51
- package/dist/prices/PythCollector.d.ts +22 -0
- package/dist/prices/PythCollector.js +217 -0
- package/dist/prices/Types.d.ts +17 -2
- package/dist/prices/Types.js +8 -1
- package/dist/prices/index.d.ts +4 -3
- package/dist/prices/index.js +4 -3
- package/dist/prices/sources/Backend.d.ts +5 -4
- package/dist/prices/sources/Backend.js +16 -13
- package/dist/prices/sources/Icp.d.ts +2 -1
- package/dist/prices/sources/Icp.js +12 -9
- package/dist/prices/sources/PriceSource.d.ts +7 -6
- package/dist/prices/utils.d.ts +10 -9
- package/dist/prices/utils.js +32 -46
- package/dist/rewards/RewardMaster.d.ts +0 -1
- package/dist/rewards/RewardUser.d.ts +0 -1
- package/dist/types/Master.d.ts +10 -31
- package/dist/types/Master.js +3 -0
- package/dist/types/MasterRewards.d.ts +0 -1
- package/dist/types/UserRewards.d.ts +0 -1
- package/dist/utils/sha256BigInt.d.ts +0 -1
- package/dist/utils/userJettonWallet.js +0 -8
- package/dist/utils/utils.d.ts +8 -1
- package/dist/utils/utils.js +31 -2
- package/package.json +4 -3
- package/src/api/feeds.ts +90 -0
- package/src/api/liquidation.ts +1 -1
- package/src/api/math.ts +1 -1
- package/src/api/parser.ts +100 -38
- package/src/api/parsers/AbstractOracleParser.ts +16 -0
- package/src/api/parsers/ClassicOracleParser.ts +20 -0
- package/src/api/parsers/PythOracleParser.ts +34 -0
- package/src/api/parsers/index.ts +3 -0
- package/src/api/prices.ts +32 -41
- package/src/constants/assets/assetId.ts +30 -0
- package/src/constants/assets/index.ts +3 -0
- package/src/constants/{assets.ts → assets/mainnet.ts} +27 -94
- package/src/constants/assets/testnet.ts +74 -0
- package/src/constants/general/index.ts +91 -0
- package/src/constants/{general.ts → general/mainnet.ts} +48 -72
- package/src/constants/general/testnet.ts +25 -0
- package/src/constants/index.ts +3 -0
- package/src/constants/pools/index.ts +2 -0
- package/src/constants/pools/mainnet.ts +218 -0
- package/src/constants/pools/testnet.ts +75 -0
- package/src/contracts/AbstractMaster.ts +450 -0
- package/src/contracts/ClassicMaster.ts +149 -0
- package/src/contracts/PythMaster.ts +313 -0
- package/src/contracts/UserContract.ts +7 -28
- package/src/contracts/index.ts +7 -0
- package/src/index.ts +18 -85
- package/src/prices/Oracle.interface.ts +18 -0
- package/src/prices/Prices.ts +17 -4
- package/src/prices/PricesCollector.ts +91 -68
- package/src/prices/PythCollector.ts +294 -0
- package/src/prices/Types.ts +28 -6
- package/src/prices/index.ts +4 -3
- package/src/prices/sources/Backend.ts +21 -19
- package/src/prices/sources/Icp.ts +13 -10
- package/src/prices/sources/PriceSource.ts +6 -5
- package/src/prices/utils.ts +65 -68
- package/src/types/Master.ts +29 -52
- package/src/types/User.ts +15 -7
- package/src/utils/userJettonWallet.ts +0 -8
- package/src/utils/utils.ts +41 -2
- package/src/constants/pools.ts +0 -175
- package/src/contracts/MasterContract.ts +0 -410
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./assets"), exports);
|
|
18
|
+
__exportStar(require("./general"), exports);
|
|
19
|
+
__exportStar(require("./pools"), exports);
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./mainnet"), exports);
|
|
18
|
+
__exportStar(require("./testnet"), exports);
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { PoolConfig } from '../../types/Master';
|
|
2
|
+
import { EvaaRewardsConfig } from '../../types/MasterRewards';
|
|
3
|
+
export declare const MAINNET_POOL_ASSETS_CONFIG: import("../../types/Master").PoolAssetConfig[];
|
|
4
|
+
export declare const MAINNET_POOL_CONFIG: PoolConfig;
|
|
5
|
+
export declare const MAINNET_STABLE_POOL_CONFIG: PoolConfig;
|
|
6
|
+
export declare const MAINNET_LP_POOL_CONFIG: PoolConfig;
|
|
7
|
+
export declare const MAINNET_ALTS_POOL_CONFIG: PoolConfig;
|
|
8
|
+
export declare const MAINNET_PYTH_V8_TOB_POOL_ASSETS_CONFIG: import("../../types/Master").PoolAssetConfig[];
|
|
9
|
+
export declare const MAINNET_PYTH_V8_TOB_POOL_CONFIG: PoolConfig;
|
|
10
|
+
export declare const MAINNET_V8_TOB_POOL_ASSETS_CONFIG: import("../../types/Master").PoolAssetConfig[];
|
|
11
|
+
export declare const MAINNET_V8_TOB_POOL_CONFIG: PoolConfig;
|
|
12
|
+
export declare const MAINNET_MASTER_TON_REWARD_CONFIG: EvaaRewardsConfig;
|
|
13
|
+
export declare const MAINNET_MASTER_USDT_REWARD_CONFIG: EvaaRewardsConfig;
|
|
14
|
+
export declare const ALL_MAINNET_POOLS: PoolConfig[];
|
|
@@ -0,0 +1,145 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ALL_MAINNET_POOLS = exports.MAINNET_MASTER_USDT_REWARD_CONFIG = exports.MAINNET_MASTER_TON_REWARD_CONFIG = exports.MAINNET_V8_TOB_POOL_CONFIG = exports.MAINNET_V8_TOB_POOL_ASSETS_CONFIG = exports.MAINNET_PYTH_V8_TOB_POOL_CONFIG = exports.MAINNET_PYTH_V8_TOB_POOL_ASSETS_CONFIG = exports.MAINNET_ALTS_POOL_CONFIG = exports.MAINNET_LP_POOL_CONFIG = exports.MAINNET_STABLE_POOL_CONFIG = exports.MAINNET_POOL_CONFIG = exports.MAINNET_POOL_ASSETS_CONFIG = void 0;
|
|
4
|
+
const core_1 = require("@ton/core");
|
|
5
|
+
const feeds_1 = require("../../api/feeds");
|
|
6
|
+
const prices_1 = require("../../prices");
|
|
7
|
+
const assets_1 = require("../assets");
|
|
8
|
+
const general_1 = require("../general");
|
|
9
|
+
// Pool assets configs
|
|
10
|
+
exports.MAINNET_POOL_ASSETS_CONFIG = [
|
|
11
|
+
assets_1.TON_MAINNET,
|
|
12
|
+
assets_1.JUSDT_MAINNET,
|
|
13
|
+
assets_1.JUSDC_MAINNET,
|
|
14
|
+
assets_1.STTON_MAINNET,
|
|
15
|
+
assets_1.TSTON_MAINNET,
|
|
16
|
+
assets_1.USDT_MAINNET,
|
|
17
|
+
assets_1.USDE_MAINNET,
|
|
18
|
+
assets_1.TSUSDE_MAINNET,
|
|
19
|
+
];
|
|
20
|
+
const MAINNET_STABLE_POOL_ASSETS_CONFIG = [assets_1.USDT_MAINNET, assets_1.USDE_MAINNET, assets_1.TSUSDE_MAINNET, assets_1.PT_tsUSDe_01Sep2025_MAINNET];
|
|
21
|
+
const MAINNET_LP_POOL_ASSETS_CONFIG = [
|
|
22
|
+
assets_1.TON_MAINNET,
|
|
23
|
+
assets_1.USDT_MAINNET,
|
|
24
|
+
assets_1.TONUSDT_DEDUST_MAINNET,
|
|
25
|
+
assets_1.TON_STORM_MAINNET,
|
|
26
|
+
assets_1.USDT_STORM_MAINNET,
|
|
27
|
+
assets_1.TONUSDT_STONFI_MAINNET,
|
|
28
|
+
];
|
|
29
|
+
const MAINNET_ALTS_POOL_ASSETS_CONFIG = [assets_1.TON_MAINNET, assets_1.USDT_MAINNET, assets_1.CATI_MAINNET, assets_1.NOT_MAINNET, assets_1.DOGS_MAINNET];
|
|
30
|
+
exports.MAINNET_POOL_CONFIG = {
|
|
31
|
+
masterAddress: general_1.EVAA_MASTER_MAINNET,
|
|
32
|
+
masterVersion: general_1.MAINNET_VERSION,
|
|
33
|
+
masterConstants: general_1.MASTER_CONSTANTS,
|
|
34
|
+
oracles: new prices_1.PythCollector({
|
|
35
|
+
pythConfig: prices_1.DefaultPythPriceSourcesConfig,
|
|
36
|
+
poolAssetsConfig: exports.MAINNET_POOL_ASSETS_CONFIG,
|
|
37
|
+
pythOracle: {
|
|
38
|
+
feedsMap: core_1.Dictionary.empty()
|
|
39
|
+
.set(BigInt(feeds_1.PYTH_TON_PRICE_FEED_ID), (0, feeds_1.packConnectedFeeds)(assets_1.ASSET_ID.TON, 0n))
|
|
40
|
+
.set(BigInt(feeds_1.PYTH_USDT_PRICE_FEED_ID), (0, feeds_1.packConnectedFeeds)(assets_1.ASSET_ID.USDT, 0n))
|
|
41
|
+
.set(BigInt(feeds_1.PYTH_TSTON_PRICE_FEED_ID), (0, feeds_1.packConnectedFeeds)(feeds_1.EVAA_TSTON_PRICE_FEED_ID, BigInt(feeds_1.PYTH_TON_PRICE_FEED_ID)))
|
|
42
|
+
.set(BigInt(feeds_1.PYTH_TSUSDE_PRICE_FEED_ID), (0, feeds_1.packConnectedFeeds)(feeds_1.EVAA_TSUSDE_PRICE_FEED_ID, BigInt(feeds_1.PYTH_USDT_PRICE_FEED_ID))),
|
|
43
|
+
pythAddress: general_1.PYTH_ORACLE_MAINNET,
|
|
44
|
+
allowedRefTokens: core_1.Dictionary.empty()
|
|
45
|
+
.set(assets_1.ASSET_ID.jUSDT, assets_1.ASSET_ID.USDT)
|
|
46
|
+
.set(assets_1.ASSET_ID.jUSDC, assets_1.ASSET_ID.USDT)
|
|
47
|
+
.set(assets_1.ASSET_ID.USDe, assets_1.ASSET_ID.USDT)
|
|
48
|
+
.set(assets_1.ASSET_ID.stTON, assets_1.ASSET_ID.tsTON),
|
|
49
|
+
},
|
|
50
|
+
}),
|
|
51
|
+
poolAssetsConfig: exports.MAINNET_POOL_ASSETS_CONFIG,
|
|
52
|
+
lendingCode: general_1.LENDING_CODE,
|
|
53
|
+
};
|
|
54
|
+
exports.MAINNET_STABLE_POOL_CONFIG = {
|
|
55
|
+
masterAddress: general_1.EVAA_STABLE_MAINNET,
|
|
56
|
+
masterVersion: general_1.STABLE_VERSION,
|
|
57
|
+
masterConstants: general_1.MASTER_CONSTANTS,
|
|
58
|
+
oracles: new prices_1.PricesCollector({
|
|
59
|
+
poolAssetsConfig: MAINNET_STABLE_POOL_ASSETS_CONFIG,
|
|
60
|
+
minimalOracles: 3,
|
|
61
|
+
evaaOracles: general_1.ORACLES_MAINNET,
|
|
62
|
+
}),
|
|
63
|
+
poolAssetsConfig: MAINNET_STABLE_POOL_ASSETS_CONFIG,
|
|
64
|
+
lendingCode: general_1.LENDING_CODE,
|
|
65
|
+
};
|
|
66
|
+
exports.MAINNET_LP_POOL_CONFIG = {
|
|
67
|
+
masterAddress: general_1.EVAA_LP_MAINNET,
|
|
68
|
+
masterVersion: general_1.EVAA_LP_MAINNET_VERSION,
|
|
69
|
+
masterConstants: general_1.MASTER_CONSTANTS,
|
|
70
|
+
oracles: new prices_1.PricesCollector({
|
|
71
|
+
poolAssetsConfig: MAINNET_LP_POOL_ASSETS_CONFIG,
|
|
72
|
+
minimalOracles: 3,
|
|
73
|
+
evaaOracles: general_1.ORACLES_LP,
|
|
74
|
+
}),
|
|
75
|
+
poolAssetsConfig: MAINNET_LP_POOL_ASSETS_CONFIG,
|
|
76
|
+
lendingCode: general_1.LENDING_CODE,
|
|
77
|
+
};
|
|
78
|
+
exports.MAINNET_ALTS_POOL_CONFIG = {
|
|
79
|
+
masterAddress: general_1.EVAA_ALTS_MAINNET,
|
|
80
|
+
masterVersion: general_1.EVAA_ALTS_MAINNET_VERSION,
|
|
81
|
+
masterConstants: general_1.MASTER_CONSTANTS,
|
|
82
|
+
oracles: new prices_1.PricesCollector({
|
|
83
|
+
poolAssetsConfig: MAINNET_ALTS_POOL_ASSETS_CONFIG,
|
|
84
|
+
minimalOracles: 3,
|
|
85
|
+
evaaOracles: general_1.ORACLES_ALTS,
|
|
86
|
+
}),
|
|
87
|
+
poolAssetsConfig: MAINNET_ALTS_POOL_ASSETS_CONFIG,
|
|
88
|
+
lendingCode: general_1.LENDING_CODE,
|
|
89
|
+
};
|
|
90
|
+
exports.MAINNET_PYTH_V8_TOB_POOL_ASSETS_CONFIG = [assets_1.TON_MAINNET, assets_1.USDT_MAINNET, assets_1.JUSDT_MAINNET];
|
|
91
|
+
exports.MAINNET_PYTH_V8_TOB_POOL_CONFIG = {
|
|
92
|
+
masterAddress: general_1.EVAA_PYTH_TOB_MAINNET,
|
|
93
|
+
masterVersion: general_1.EVAA_PYTH_TOB_VERSION,
|
|
94
|
+
masterConstants: general_1.MASTER_CONSTANTS,
|
|
95
|
+
oracles: new prices_1.PythCollector({
|
|
96
|
+
pythConfig: prices_1.DefaultPythPriceSourcesConfig,
|
|
97
|
+
poolAssetsConfig: exports.MAINNET_PYTH_V8_TOB_POOL_ASSETS_CONFIG,
|
|
98
|
+
pythOracle: {
|
|
99
|
+
feedsMap: core_1.Dictionary.empty()
|
|
100
|
+
.set(BigInt(feeds_1.PYTH_TON_PRICE_FEED_ID), (0, feeds_1.packConnectedFeeds)(assets_1.ASSET_ID.TON, 0n))
|
|
101
|
+
.set(BigInt(feeds_1.PYTH_USDT_PRICE_FEED_ID), (0, feeds_1.packConnectedFeeds)(assets_1.ASSET_ID.USDT, 0n)),
|
|
102
|
+
pythAddress: general_1.PYTH_ORACLE_MAINNET,
|
|
103
|
+
allowedRefTokens: core_1.Dictionary.empty().set(BigInt(feeds_1.EVAA_JUSDT_PRICE_FEED_ID), BigInt(assets_1.ASSET_ID.USDT)),
|
|
104
|
+
},
|
|
105
|
+
}),
|
|
106
|
+
poolAssetsConfig: exports.MAINNET_PYTH_V8_TOB_POOL_ASSETS_CONFIG,
|
|
107
|
+
lendingCode: general_1.LENDING_CODE,
|
|
108
|
+
};
|
|
109
|
+
exports.MAINNET_V8_TOB_POOL_ASSETS_CONFIG = [assets_1.TON_MAINNET, assets_1.USDT_MAINNET];
|
|
110
|
+
exports.MAINNET_V8_TOB_POOL_CONFIG = {
|
|
111
|
+
masterAddress: general_1.EVAA_TOB_MAINNET,
|
|
112
|
+
masterVersion: general_1.EVAA_TOB_VERSION,
|
|
113
|
+
masterConstants: general_1.MASTER_CONSTANTS,
|
|
114
|
+
oracles: new prices_1.PricesCollector({
|
|
115
|
+
poolAssetsConfig: exports.MAINNET_V8_TOB_POOL_ASSETS_CONFIG,
|
|
116
|
+
minimalOracles: 3,
|
|
117
|
+
evaaOracles: general_1.ORACLES_MAINNET,
|
|
118
|
+
}),
|
|
119
|
+
poolAssetsConfig: exports.MAINNET_V8_TOB_POOL_ASSETS_CONFIG,
|
|
120
|
+
lendingCode: general_1.LENDING_CODE,
|
|
121
|
+
};
|
|
122
|
+
exports.MAINNET_MASTER_TON_REWARD_CONFIG = {
|
|
123
|
+
adminAddress: general_1.EVAA_TON_REWARDS_MASTER_MAINNET,
|
|
124
|
+
evaaMasterAddress: new core_1.Address(0, Buffer.alloc(32, 0)),
|
|
125
|
+
rewardMasterCode: general_1.EVAA_REWARDS_MASTER_CODE_MAINNET,
|
|
126
|
+
rewardUserCode: general_1.EVAA_REWARDS_USER_CODE_MAINNET,
|
|
127
|
+
asset: assets_1.TON_MAINNET,
|
|
128
|
+
availableReward: 0,
|
|
129
|
+
publicKey: Buffer.from('bfe9a30221db4dff4c17e55d985e0b13a8f597bbb28002f311dc4429dad1ca95', 'hex'), // adminAddress publicKey
|
|
130
|
+
};
|
|
131
|
+
exports.MAINNET_MASTER_USDT_REWARD_CONFIG = {
|
|
132
|
+
adminAddress: general_1.EVAA_USDT_REWARDS_MASTER_MAINNET,
|
|
133
|
+
evaaMasterAddress: new core_1.Address(0, Buffer.alloc(32, 0)),
|
|
134
|
+
rewardMasterCode: general_1.EVAA_REWARDS_MASTER_CODE_MAINNET,
|
|
135
|
+
rewardUserCode: general_1.EVAA_REWARDS_USER_CODE_MAINNET,
|
|
136
|
+
asset: assets_1.USDT_MAINNET,
|
|
137
|
+
availableReward: 0,
|
|
138
|
+
publicKey: Buffer.from('9813725d6cead1c9bbc0e24b21d4fc62a7fa8ac4bb01b6758df30169a71dba67', 'hex'), // adminAddress publicKey
|
|
139
|
+
};
|
|
140
|
+
exports.ALL_MAINNET_POOLS = [
|
|
141
|
+
exports.MAINNET_POOL_CONFIG,
|
|
142
|
+
exports.MAINNET_LP_POOL_CONFIG,
|
|
143
|
+
exports.MAINNET_ALTS_POOL_CONFIG,
|
|
144
|
+
exports.MAINNET_STABLE_POOL_CONFIG,
|
|
145
|
+
];
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { PoolConfig } from '../../types/Master';
|
|
2
|
+
import { EvaaRewardsConfig } from '../../types/MasterRewards';
|
|
3
|
+
export declare const TESTNET_POOL_ASSETS_CONFIG: import("../../types/Master").PoolAssetConfig[];
|
|
4
|
+
export declare const TESTNET_POOL_ASSETS_CONFIG_TOB_AUDITED: import("../../types/Master").PoolAssetConfig[];
|
|
5
|
+
export declare const TESTNET_PYTH_POOL_CONFIG_TOB_AUDITED: PoolConfig;
|
|
6
|
+
export declare const TESTNET_CLASSIC_POOL_CONFIG_TOB_AUDITED: PoolConfig;
|
|
7
|
+
export declare const TESTNET_MASTER_REWARD_CONFIG: EvaaRewardsConfig;
|
|
8
|
+
export declare const TESTNET_MASTER_EUSDT_REWARD_CONFIG: EvaaRewardsConfig;
|
|
9
|
+
export declare const ALL_TESTNET_POOLS: PoolConfig[];
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ALL_TESTNET_POOLS = exports.TESTNET_MASTER_EUSDT_REWARD_CONFIG = exports.TESTNET_MASTER_REWARD_CONFIG = exports.TESTNET_CLASSIC_POOL_CONFIG_TOB_AUDITED = exports.TESTNET_PYTH_POOL_CONFIG_TOB_AUDITED = exports.TESTNET_POOL_ASSETS_CONFIG_TOB_AUDITED = exports.TESTNET_POOL_ASSETS_CONFIG = void 0;
|
|
4
|
+
const core_1 = require("@ton/core");
|
|
5
|
+
const feeds_1 = require("../../api/feeds");
|
|
6
|
+
const prices_1 = require("../../prices");
|
|
7
|
+
const assets_1 = require("../assets");
|
|
8
|
+
const general_1 = require("../general");
|
|
9
|
+
exports.TESTNET_POOL_ASSETS_CONFIG = [assets_1.TON_TESTNET, assets_1.JUSDC_TESTNET];
|
|
10
|
+
exports.TESTNET_POOL_ASSETS_CONFIG_TOB_AUDITED = [assets_1.TON_TESTNET, assets_1.JUSDC_TESTNET];
|
|
11
|
+
exports.TESTNET_PYTH_POOL_CONFIG_TOB_AUDITED = {
|
|
12
|
+
masterAddress: general_1.EVAA_MASTER_TESTNET_PYTH_TOB_AUDITED,
|
|
13
|
+
masterVersion: general_1.TESTNET_PYTH_VERSION_TOB_AUDITED,
|
|
14
|
+
masterConstants: general_1.MASTER_CONSTANTS,
|
|
15
|
+
oracles: new prices_1.PythCollector({
|
|
16
|
+
poolAssetsConfig: exports.TESTNET_POOL_ASSETS_CONFIG_TOB_AUDITED,
|
|
17
|
+
pythOracle: {
|
|
18
|
+
feedsMap: feeds_1.TESTNET_FEEDS_MAP,
|
|
19
|
+
pythAddress: general_1.PYTH_ORACLE_TESTNET,
|
|
20
|
+
allowedRefTokens: feeds_1.TESTNET_ALLOWED_REF_TOKENS,
|
|
21
|
+
},
|
|
22
|
+
pythConfig: prices_1.DefaultPythPriceSourcesConfig,
|
|
23
|
+
}),
|
|
24
|
+
poolAssetsConfig: exports.TESTNET_POOL_ASSETS_CONFIG_TOB_AUDITED,
|
|
25
|
+
lendingCode: general_1.LENDING_CODE,
|
|
26
|
+
};
|
|
27
|
+
exports.TESTNET_CLASSIC_POOL_CONFIG_TOB_AUDITED = {
|
|
28
|
+
masterAddress: general_1.EVAA_MASTER_TESTNET_CLASSIC_TOB_AUDITED,
|
|
29
|
+
masterVersion: general_1.TESTNET_CLASSIC_TOB_AUDITED,
|
|
30
|
+
masterConstants: general_1.MASTER_CONSTANTS,
|
|
31
|
+
oracles: new prices_1.PricesCollector({
|
|
32
|
+
poolAssetsConfig: exports.TESTNET_POOL_ASSETS_CONFIG,
|
|
33
|
+
minimalOracles: 3,
|
|
34
|
+
evaaOracles: general_1.ORACLES_TESTNET,
|
|
35
|
+
}),
|
|
36
|
+
lendingCode: general_1.LENDING_CODE,
|
|
37
|
+
poolAssetsConfig: exports.TESTNET_POOL_ASSETS_CONFIG,
|
|
38
|
+
};
|
|
39
|
+
exports.TESTNET_MASTER_REWARD_CONFIG = {
|
|
40
|
+
adminAddress: general_1.EVAA_REWARDS_MASTER_TESTNET,
|
|
41
|
+
evaaMasterAddress: new core_1.Address(0, Buffer.alloc(32, 0)),
|
|
42
|
+
rewardMasterCode: general_1.EVAA_REWARDS_MASTER_CODE_TESTNET,
|
|
43
|
+
rewardUserCode: general_1.EVAA_REWARDS_USER_CODE_TESTNET,
|
|
44
|
+
asset: assets_1.TON_TESTNET,
|
|
45
|
+
availableReward: 0,
|
|
46
|
+
publicKey: Buffer.from('c38be45e033419b49cd22c97fbd23610fbc851a931208f8b4a1817dd11cb63ac', 'hex'), // adminAddress publicKey
|
|
47
|
+
};
|
|
48
|
+
exports.TESTNET_MASTER_EUSDT_REWARD_CONFIG = {
|
|
49
|
+
adminAddress: general_1.EVAA_REWARDS_MASTER_TESTNET,
|
|
50
|
+
evaaMasterAddress: new core_1.Address(0, Buffer.alloc(32, 0)),
|
|
51
|
+
rewardMasterCode: general_1.EVAA_REWARDS_MASTER_CODE_TESTNET,
|
|
52
|
+
rewardUserCode: general_1.EVAA_REWARDS_USER_CODE_TESTNET,
|
|
53
|
+
asset: assets_1.EUSDT_TESTNET,
|
|
54
|
+
availableReward: 0,
|
|
55
|
+
publicKey: Buffer.from('c38be45e033419b49cd22c97fbd23610fbc851a931208f8b4a1817dd11cb63ac', 'hex'), // adminAddress publicKey
|
|
56
|
+
};
|
|
57
|
+
exports.ALL_TESTNET_POOLS = [];
|
package/dist/constants/pools.js
CHANGED
|
@@ -12,13 +12,13 @@ exports.MAINNET_POOL_CONFIG = {
|
|
|
12
12
|
minimalOracles: 3,
|
|
13
13
|
poolAssetsConfig: [
|
|
14
14
|
assets_1.TON_MAINNET,
|
|
15
|
-
|
|
15
|
+
// JUSDT_MAINNET,
|
|
16
16
|
assets_1.JUSDC_MAINNET,
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
17
|
+
// STTON_MAINNET,
|
|
18
|
+
// TSTON_MAINNET,
|
|
19
|
+
// USDT_MAINNET,
|
|
20
|
+
// USDE_MAINNET,
|
|
21
|
+
// TSUSDE_MAINNET,
|
|
22
22
|
// UTON_MAINNET // announce xdddd fake announce
|
|
23
23
|
],
|
|
24
24
|
lendingCode: general_1.LENDING_CODE,
|
|
@@ -55,7 +55,7 @@ exports.TESTNET_POOL_CONFIG = {
|
|
|
55
55
|
masterConstants: general_1.MASTER_CONSTANTS,
|
|
56
56
|
oracles: general_1.ORACLES_TESTNET,
|
|
57
57
|
minimalOracles: 3,
|
|
58
|
-
poolAssetsConfig: [assets_1.TON_TESTNET, assets_1.
|
|
58
|
+
poolAssetsConfig: [assets_1.TON_TESTNET, assets_1.JUSDC_TESTNET],
|
|
59
59
|
lendingCode: general_1.LENDING_CODE,
|
|
60
60
|
};
|
|
61
61
|
exports.MAINNET_LP_POOL_CONFIG = {
|
|
@@ -64,7 +64,7 @@ exports.MAINNET_LP_POOL_CONFIG = {
|
|
|
64
64
|
masterConstants: general_1.MASTER_CONSTANTS,
|
|
65
65
|
oracles: general_1.ORACLES_LP,
|
|
66
66
|
minimalOracles: 3,
|
|
67
|
-
poolAssetsConfig: [assets_1.TON_MAINNET, assets_1.USDT_MAINNET, assets_1.TONUSDT_DEDUST_MAINNET, assets_1.TON_STORM_MAINNET, assets_1.USDT_STORM_MAINNET],
|
|
67
|
+
poolAssetsConfig: [assets_1.TON_MAINNET, assets_1.USDT_MAINNET, assets_1.TONUSDT_DEDUST_MAINNET, assets_1.TON_STORM_MAINNET, assets_1.USDT_STORM_MAINNET, assets_1.TONUSDT_STONFI_MAINNET],
|
|
68
68
|
lendingCode: general_1.LENDING_CODE,
|
|
69
69
|
};
|
|
70
70
|
exports.MAINNET_ALTS_POOL_CONFIG = {
|
|
@@ -73,7 +73,7 @@ exports.MAINNET_ALTS_POOL_CONFIG = {
|
|
|
73
73
|
masterConstants: general_1.MASTER_CONSTANTS,
|
|
74
74
|
oracles: general_1.ORACLES_ALTS,
|
|
75
75
|
minimalOracles: 3,
|
|
76
|
-
poolAssetsConfig: [assets_1.TON_MAINNET, assets_1.USDT_MAINNET, assets_1.CATI_MAINNET, assets_1.NOT_MAINNET, assets_1.DOGS_MAINNET],
|
|
76
|
+
poolAssetsConfig: [assets_1.TON_MAINNET, assets_1.USDT_MAINNET, assets_1.CATI_MAINNET, assets_1.NOT_MAINNET, assets_1.DOGS_MAINNET /*, STON_MAINNET announce*/],
|
|
77
77
|
lendingCode: general_1.LENDING_CODE,
|
|
78
78
|
};
|
|
79
79
|
exports.TESTNET_MASTER_REWARD_CONFIG = {
|
|
@@ -0,0 +1,185 @@
|
|
|
1
|
+
import { Address, Builder, Cell, Contract, ContractProvider, Dictionary, OpenedContract, Sender } from '@ton/core';
|
|
2
|
+
import { OracleParser } from '../api/parsers/AbstractOracleParser';
|
|
3
|
+
import { ClassicOracleInfo } from '../api/parsers/ClassicOracleParser';
|
|
4
|
+
import { PythOracleInfo } from '../api/parsers/PythOracleParser';
|
|
5
|
+
import { ExtendedAssetsConfig, ExtendedAssetsData, PoolAssetConfig, PoolConfig, UpgradeConfig } from '../types/Master';
|
|
6
|
+
import { ClassicLiquidationOperationParameters, ClassicLiquidationParameters, ClassicSupplyWithdrawParameters, ClassicWithdrawParameters } from './ClassicMaster';
|
|
7
|
+
import { PythLiquidationOperationParameters, PythLiquidationParameters, PythSupplyWithdrawParameters, PythWithdrawParameters } from './PythMaster';
|
|
8
|
+
import { EvaaUser } from './UserContract';
|
|
9
|
+
type JettonParams = {
|
|
10
|
+
queryID: bigint;
|
|
11
|
+
amount?: bigint;
|
|
12
|
+
liquidationAmount?: bigint;
|
|
13
|
+
supplyAmount?: bigint;
|
|
14
|
+
responseAddress?: Address;
|
|
15
|
+
userAddress?: Address;
|
|
16
|
+
liquidatorAddress?: Address;
|
|
17
|
+
forwardAmount?: bigint;
|
|
18
|
+
destinationAddress?: Address;
|
|
19
|
+
};
|
|
20
|
+
/**
|
|
21
|
+
* Parameters for the Evaa contract
|
|
22
|
+
* @property testnet - true for testnet, false for mainnet
|
|
23
|
+
* @property debug - true to enable debug mode (optional)
|
|
24
|
+
*/
|
|
25
|
+
export type EvaaParameters = {
|
|
26
|
+
poolConfig: PoolConfig;
|
|
27
|
+
debug?: boolean;
|
|
28
|
+
};
|
|
29
|
+
/**
|
|
30
|
+
* Base parameters for supply
|
|
31
|
+
* @property queryID - unique query ID
|
|
32
|
+
* @property includeUserCode - true to include user code for update (needed when user contract code version is outdated)
|
|
33
|
+
* @property amount - amount to supply
|
|
34
|
+
* @property userAddress - user address
|
|
35
|
+
* @property asset
|
|
36
|
+
*/
|
|
37
|
+
export type SupplyParameters = {
|
|
38
|
+
asset: PoolAssetConfig;
|
|
39
|
+
queryID: bigint;
|
|
40
|
+
includeUserCode: boolean;
|
|
41
|
+
amount: bigint;
|
|
42
|
+
userAddress: Address;
|
|
43
|
+
responseAddress?: Address;
|
|
44
|
+
forwardAmount?: bigint;
|
|
45
|
+
payload: Cell;
|
|
46
|
+
subaccountId?: number;
|
|
47
|
+
returnRepayRemainingsFlag?: boolean;
|
|
48
|
+
customPayloadRecipient?: Address;
|
|
49
|
+
customPayloadSaturationFlag?: boolean;
|
|
50
|
+
};
|
|
51
|
+
/**
|
|
52
|
+
* Parameters for the withdraw message
|
|
53
|
+
* @property queryID - unique query ID
|
|
54
|
+
* @property asset - asset config
|
|
55
|
+
* @property amount - amount to withdraw
|
|
56
|
+
* @property userAddress - user address
|
|
57
|
+
* @property includeUserCode - true to include user code for update (needed when user contract code version is outdated)
|
|
58
|
+
*/
|
|
59
|
+
export type WithdrawParameters = {
|
|
60
|
+
queryID: bigint;
|
|
61
|
+
amount: bigint;
|
|
62
|
+
userAddress: Address;
|
|
63
|
+
includeUserCode: boolean;
|
|
64
|
+
asset: PoolAssetConfig;
|
|
65
|
+
payload: Cell;
|
|
66
|
+
subaccountId?: number;
|
|
67
|
+
forwardAmount?: bigint;
|
|
68
|
+
amountToTransfer: bigint;
|
|
69
|
+
customPayloadSaturationFlag: boolean;
|
|
70
|
+
returnRepayRemainingsFlag: boolean;
|
|
71
|
+
};
|
|
72
|
+
/**
|
|
73
|
+
* Parameters for liquidation inner operations
|
|
74
|
+
* @interface LiquidationInnerParameters
|
|
75
|
+
*/
|
|
76
|
+
export type LiquidationInnerParameters = {
|
|
77
|
+
/** Liquidation operation payload cell */
|
|
78
|
+
payload: Cell;
|
|
79
|
+
subaccountId: number;
|
|
80
|
+
customPayloadRecipient: Address;
|
|
81
|
+
customPayloadSaturationFlag: boolean;
|
|
82
|
+
};
|
|
83
|
+
/**
|
|
84
|
+
* Base data for liquidation. Can be obtained from the user contract liquidationParameters getter
|
|
85
|
+
* @property loanAsset - loan asset ID
|
|
86
|
+
* @property queryID - unique query ID
|
|
87
|
+
* @property liquidatorAddress - liquidator address, where and collateral will be sent
|
|
88
|
+
*/
|
|
89
|
+
export type LiquidationParameters = {
|
|
90
|
+
loanAsset: bigint;
|
|
91
|
+
queryID: bigint;
|
|
92
|
+
liquidatorAddress: Address;
|
|
93
|
+
};
|
|
94
|
+
/**
|
|
95
|
+
* @property asset - asset config
|
|
96
|
+
* @property borrowerAddress - borrower address (user address that is being liquidated)
|
|
97
|
+
* @property collateralAsset - collateral asset ID
|
|
98
|
+
* @property minCollateralAmount - minimal amount to receive from the liquidation
|
|
99
|
+
* @property liquidationAmount - amount to liquidate
|
|
100
|
+
* @property includeUserCode - true to include user code for update (needed when user contract code version is outdated)
|
|
101
|
+
*/
|
|
102
|
+
export type LiquidationOperationBuilderParameters = {
|
|
103
|
+
asset: PoolAssetConfig;
|
|
104
|
+
borrowerAddress: Address;
|
|
105
|
+
collateralAsset: bigint;
|
|
106
|
+
minCollateralAmount: bigint;
|
|
107
|
+
liquidationAmount: bigint;
|
|
108
|
+
includeUserCode: boolean;
|
|
109
|
+
};
|
|
110
|
+
export type SupplyWithdrawParameters = {
|
|
111
|
+
queryID: bigint;
|
|
112
|
+
supplyAmount: bigint;
|
|
113
|
+
supplyAsset: PoolAssetConfig;
|
|
114
|
+
withdrawAmount: bigint;
|
|
115
|
+
withdrawAsset: PoolAssetConfig;
|
|
116
|
+
withdrawRecipient: Address;
|
|
117
|
+
includeUserCode: boolean;
|
|
118
|
+
tonForRepayRemainings?: bigint;
|
|
119
|
+
payload: Cell;
|
|
120
|
+
subaccountId?: number;
|
|
121
|
+
returnRepayRemainingsFlag?: boolean;
|
|
122
|
+
customPayloadSaturationFlag?: boolean;
|
|
123
|
+
forwardAmount?: bigint;
|
|
124
|
+
responseAddress?: Address;
|
|
125
|
+
};
|
|
126
|
+
export type BaseMasterConfig = {
|
|
127
|
+
ifActive: number;
|
|
128
|
+
admin: Address;
|
|
129
|
+
tokenKeys: Cell | null;
|
|
130
|
+
supervisor: Address | null;
|
|
131
|
+
};
|
|
132
|
+
export type OracleInfo = PythOracleInfo | ClassicOracleInfo;
|
|
133
|
+
export type MasterConfig<T extends OracleInfo> = BaseMasterConfig & {
|
|
134
|
+
oraclesInfo: T;
|
|
135
|
+
};
|
|
136
|
+
export type BaseMasterData = {
|
|
137
|
+
meta: string;
|
|
138
|
+
upgradeConfig: UpgradeConfig;
|
|
139
|
+
assetsConfig: ExtendedAssetsConfig;
|
|
140
|
+
assetsData: ExtendedAssetsData;
|
|
141
|
+
assetsReserves: Dictionary<bigint, bigint>;
|
|
142
|
+
apy: {
|
|
143
|
+
supply: Dictionary<bigint, number>;
|
|
144
|
+
borrow: Dictionary<bigint, number>;
|
|
145
|
+
};
|
|
146
|
+
};
|
|
147
|
+
export type MasterData<T extends MasterConfig<OracleInfo>> = BaseMasterData & {
|
|
148
|
+
masterConfig: T;
|
|
149
|
+
};
|
|
150
|
+
/**
|
|
151
|
+
* Abstract EVAA Master base that encapsulates shared logic and structure.
|
|
152
|
+
* Concrete implementations (Classic/Pyth) should override message creation for
|
|
153
|
+
* withdraw/liquidation and supply-withdraw wrapping.
|
|
154
|
+
*/
|
|
155
|
+
export declare abstract class AbstractEvaaMaster<T extends MasterData<MasterConfig<OracleInfo>>> implements Contract {
|
|
156
|
+
readonly address: Address;
|
|
157
|
+
protected _poolConfig: PoolConfig;
|
|
158
|
+
protected readonly debug?: boolean;
|
|
159
|
+
protected _data?: T;
|
|
160
|
+
protected lastSync: number;
|
|
161
|
+
constructor(parameters: EvaaParameters);
|
|
162
|
+
get poolConfig(): PoolConfig;
|
|
163
|
+
get data(): T | undefined;
|
|
164
|
+
protected createJettonTransferMessage(parameters: JettonParams, defaultFees: bigint, message: Cell): Cell;
|
|
165
|
+
abstract buildGeneralDataPayload(parameters: PythSupplyWithdrawParameters | ClassicSupplyWithdrawParameters): Cell;
|
|
166
|
+
protected buildSupplyWithdrawOperationPayload(parameters: PythSupplyWithdrawParameters | ClassicSupplyWithdrawParameters): Cell;
|
|
167
|
+
createSupplyMessage(parameters: SupplyParameters): Cell;
|
|
168
|
+
abstract createSupplyWithdrawMessage(parameters: ClassicSupplyWithdrawParameters | PythSupplyWithdrawParameters): Cell;
|
|
169
|
+
sendSupply(provider: ContractProvider, via: Sender, value: bigint, parameters: SupplyParameters): Promise<void>;
|
|
170
|
+
sendSupplyWithdraw(provider: ContractProvider, via: Sender, value: bigint, parameters: ClassicSupplyWithdrawParameters | PythSupplyWithdrawParameters): Promise<void>;
|
|
171
|
+
abstract sendWithdraw(provider: ContractProvider, via: Sender, value: bigint, parameters: ClassicWithdrawParameters | PythWithdrawParameters): Promise<void>;
|
|
172
|
+
abstract createLiquidationMessage(parameters: ClassicLiquidationParameters | PythLiquidationParameters): Cell;
|
|
173
|
+
protected buildLiquidationInnerBuilder(parameters: LiquidationInnerParameters): Builder;
|
|
174
|
+
protected abstract buildLiquidationOperationPayload(parameters: PythLiquidationOperationParameters | ClassicLiquidationOperationParameters): Cell | Builder;
|
|
175
|
+
protected buildLiquidationOperationPayloadBuilder(parameters: LiquidationOperationBuilderParameters): Builder;
|
|
176
|
+
abstract sendLiquidation(provider: ContractProvider, via: Sender, value: bigint, parameters: ClassicLiquidationParameters | PythLiquidationParameters): Promise<void>;
|
|
177
|
+
calculateUserSCAddr(userAddress: Address, lendingCode: Cell, subaccountId?: number): Address;
|
|
178
|
+
openUserContract(userAddress: Address, subaccountId?: number): EvaaUser;
|
|
179
|
+
getOpenedUserContract(provider: ContractProvider, userAddress: Address, subaccountId?: number): OpenedContract<EvaaUser>;
|
|
180
|
+
sendOnchainGetter(provider: ContractProvider, via: Sender, value: bigint, queryID: bigint, forwardPayload: Cell): Promise<void>;
|
|
181
|
+
sendTx(provider: ContractProvider, via: Sender, value: bigint, message: Cell, asset: PoolAssetConfig): Promise<void>;
|
|
182
|
+
protected syncMasterData(provider: ContractProvider, oracleParser: OracleParser): Promise<void>;
|
|
183
|
+
protected abstract getSync(provider: ContractProvider): Promise<void>;
|
|
184
|
+
}
|
|
185
|
+
export {};
|