@evaafi/sdk 0.6.2 → 0.6.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +2 -1
- package/dist/api/math.d.ts +12 -2
- package/dist/api/math.js +56 -4
- package/dist/api/parser.js +48 -20
- package/dist/constants/assets.d.ts +5 -1
- package/dist/constants/assets.js +24 -9
- package/dist/constants/general.d.ts +16 -0
- package/dist/constants/general.js +18 -2
- package/dist/constants/pools.d.ts +6 -1
- package/dist/constants/pools.js +46 -26
- package/dist/index.d.ts +10 -3
- package/dist/index.js +25 -2
- package/dist/prices/PricesCollector.d.ts +2 -2
- package/dist/prices/PricesCollector.js +8 -6
- package/dist/rewards/EvaaRewards.d.ts +10 -0
- package/dist/rewards/EvaaRewards.js +21 -0
- package/dist/rewards/JettonMinter.d.ts +30 -0
- package/dist/rewards/JettonMinter.js +83 -0
- package/dist/rewards/JettonWallet.d.ts +23 -0
- package/dist/rewards/JettonWallet.js +60 -0
- package/dist/rewards/RewardMaster.d.ts +26 -0
- package/dist/rewards/RewardMaster.js +83 -0
- package/dist/rewards/RewardUser.d.ts +23 -0
- package/dist/rewards/RewardUser.js +70 -0
- package/dist/types/MasterRewards.d.ts +13 -0
- package/dist/types/User.d.ts +11 -1
- package/dist/types/UserRewards.d.ts +10 -0
- package/dist/types/UserRewards.js +2 -0
- package/dist/utils/sha256BigInt.d.ts +2 -0
- package/dist/utils/sha256BigInt.js +9 -1
- package/dist/utils/userJettonWallet.js +7 -0
- package/package.json +42 -42
- package/src/api/math.ts +78 -3
- package/src/api/parser.ts +57 -22
- package/src/constants/assets.ts +91 -65
- package/src/constants/general.ts +30 -2
- package/src/constants/pools.ts +91 -28
- package/src/index.ts +23 -2
- package/src/prices/PricesCollector.ts +9 -5
- package/src/rewards/EvaaRewards.ts +23 -0
- package/src/rewards/JettonMinter.ts +113 -0
- package/src/rewards/JettonWallet.ts +77 -0
- package/src/rewards/RewardMaster.ts +110 -0
- package/src/rewards/RewardUser.ts +90 -0
- package/src/types/Master.ts +1 -1
- package/src/types/MasterRewards.ts +13 -0
- package/src/types/User.ts +13 -3
- package/src/types/UserRewards.ts +10 -0
- package/src/utils/sha256BigInt.ts +8 -0
- package/src/utils/userJettonWallet.ts +39 -33
- package/CHANGELOG.md +0 -240
- package/dist/config.d.ts +0 -1
- package/dist/config.js +0 -4
- package/dist/constants.d.ts +0 -69
- package/dist/constants.js +0 -83
- package/dist/types/Common.d.ts +0 -14
- package/dist/utils/priceUtils.d.ts +0 -55
- package/dist/utils/priceUtils.js +0 -117
- /package/dist/types/{Common.js → MasterRewards.js} +0 -0
package/dist/constants/pools.js
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.MAINNET_ALTS_POOL_CONFIG = exports.MAINNET_LP_POOL_CONFIG = exports.TESTNET_POOL_CONFIG = exports.MAINNET_POOL_CONFIG = void 0;
|
|
3
|
+
exports.MAINNET_MASTER_USDT_REWARD_CONFIG = exports.MAINNET_MASTER_TON_REWARD_CONFIG = exports.TESTNET_MASTER_EUSDT_REWARD_CONFIG = exports.TESTNET_MASTER_REWARD_CONFIG = exports.MAINNET_ALTS_POOL_CONFIG = exports.MAINNET_LP_POOL_CONFIG = exports.TESTNET_POOL_CONFIG = exports.MAINNET_POOL_CONFIG = void 0;
|
|
4
|
+
const core_1 = require("@ton/core");
|
|
4
5
|
const assets_1 = require("./assets");
|
|
5
6
|
const general_1 = require("./general");
|
|
6
7
|
exports.MAINNET_POOL_CONFIG = {
|
|
@@ -16,9 +17,9 @@ exports.MAINNET_POOL_CONFIG = {
|
|
|
16
17
|
assets_1.STTON_MAINNET,
|
|
17
18
|
assets_1.TSTON_MAINNET,
|
|
18
19
|
assets_1.USDT_MAINNET,
|
|
19
|
-
|
|
20
|
+
// UTON_MAINNET // announce
|
|
20
21
|
],
|
|
21
|
-
lendingCode: general_1.LENDING_CODE
|
|
22
|
+
lendingCode: general_1.LENDING_CODE,
|
|
22
23
|
};
|
|
23
24
|
exports.TESTNET_POOL_CONFIG = {
|
|
24
25
|
masterAddress: general_1.EVAA_MASTER_TESTNET,
|
|
@@ -26,13 +27,8 @@ exports.TESTNET_POOL_CONFIG = {
|
|
|
26
27
|
masterConstants: general_1.MASTER_CONSTANTS,
|
|
27
28
|
oracles: general_1.ORACLES_TESTNET,
|
|
28
29
|
minimalOracles: 3,
|
|
29
|
-
poolAssetsConfig: [
|
|
30
|
-
|
|
31
|
-
assets_1.JUSDT_TESTNET,
|
|
32
|
-
assets_1.JUSDC_TESTNET,
|
|
33
|
-
assets_1.STTON_TESTNET
|
|
34
|
-
],
|
|
35
|
-
lendingCode: general_1.LENDING_CODE
|
|
30
|
+
poolAssetsConfig: [assets_1.TON_TESTNET, assets_1.TGBTC_TESTNET],
|
|
31
|
+
lendingCode: general_1.LENDING_CODE,
|
|
36
32
|
};
|
|
37
33
|
exports.MAINNET_LP_POOL_CONFIG = {
|
|
38
34
|
masterAddress: general_1.EVAA_LP_MAINNET,
|
|
@@ -40,14 +36,8 @@ exports.MAINNET_LP_POOL_CONFIG = {
|
|
|
40
36
|
masterConstants: general_1.MASTER_CONSTANTS,
|
|
41
37
|
oracles: general_1.ORACLES_LP,
|
|
42
38
|
minimalOracles: 3,
|
|
43
|
-
poolAssetsConfig: [
|
|
44
|
-
|
|
45
|
-
assets_1.USDT_MAINNET,
|
|
46
|
-
assets_1.TONUSDT_DEDUST_MAINNET,
|
|
47
|
-
assets_1.TON_STORM_MAINNET,
|
|
48
|
-
assets_1.USDT_STORM_MAINNET
|
|
49
|
-
],
|
|
50
|
-
lendingCode: general_1.LENDING_CODE
|
|
39
|
+
poolAssetsConfig: [assets_1.TON_MAINNET, assets_1.USDT_MAINNET, assets_1.TONUSDT_DEDUST_MAINNET, assets_1.TON_STORM_MAINNET, assets_1.USDT_STORM_MAINNET],
|
|
40
|
+
lendingCode: general_1.LENDING_CODE,
|
|
51
41
|
};
|
|
52
42
|
exports.MAINNET_ALTS_POOL_CONFIG = {
|
|
53
43
|
masterAddress: general_1.EVAA_ALTS_MAINNET,
|
|
@@ -55,12 +45,42 @@ exports.MAINNET_ALTS_POOL_CONFIG = {
|
|
|
55
45
|
masterConstants: general_1.MASTER_CONSTANTS,
|
|
56
46
|
oracles: general_1.ORACLES_ALTS,
|
|
57
47
|
minimalOracles: 3,
|
|
58
|
-
poolAssetsConfig: [
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
48
|
+
poolAssetsConfig: [assets_1.TON_MAINNET, assets_1.USDT_MAINNET, assets_1.CATI_MAINNET, assets_1.NOT_MAINNET, assets_1.DOGS_MAINNET],
|
|
49
|
+
lendingCode: general_1.LENDING_CODE,
|
|
50
|
+
};
|
|
51
|
+
exports.TESTNET_MASTER_REWARD_CONFIG = {
|
|
52
|
+
adminAddress: general_1.EVAA_REWARDS_MASTER_TESTNET,
|
|
53
|
+
evaaMasterAddress: new core_1.Address(0, Buffer.alloc(32, 0)),
|
|
54
|
+
rewardMasterCode: general_1.EVAA_REWARDS_MASTER_CODE_TESTNET,
|
|
55
|
+
rewardUserCode: general_1.EVAA_REWARDS_USER_CODE_TESTNET,
|
|
56
|
+
asset: assets_1.TON_TESTNET,
|
|
57
|
+
availableReward: 0,
|
|
58
|
+
publicKey: Buffer.from('c38be45e033419b49cd22c97fbd23610fbc851a931208f8b4a1817dd11cb63ac', 'hex'), // adminAddress publicKey
|
|
59
|
+
};
|
|
60
|
+
exports.TESTNET_MASTER_EUSDT_REWARD_CONFIG = {
|
|
61
|
+
adminAddress: general_1.EVAA_REWARDS_MASTER_TESTNET,
|
|
62
|
+
evaaMasterAddress: new core_1.Address(0, Buffer.alloc(32, 0)),
|
|
63
|
+
rewardMasterCode: general_1.EVAA_REWARDS_MASTER_CODE_TESTNET,
|
|
64
|
+
rewardUserCode: general_1.EVAA_REWARDS_USER_CODE_TESTNET,
|
|
65
|
+
asset: assets_1.EUSDT_TESTNET,
|
|
66
|
+
availableReward: 0,
|
|
67
|
+
publicKey: Buffer.from('c38be45e033419b49cd22c97fbd23610fbc851a931208f8b4a1817dd11cb63ac', 'hex'), // adminAddress publicKey
|
|
68
|
+
};
|
|
69
|
+
exports.MAINNET_MASTER_TON_REWARD_CONFIG = {
|
|
70
|
+
adminAddress: general_1.EVAA_TON_REWARDS_MASTER_MAINNET,
|
|
71
|
+
evaaMasterAddress: new core_1.Address(0, Buffer.alloc(32, 0)),
|
|
72
|
+
rewardMasterCode: general_1.EVAA_REWARDS_MASTER_CODE_MAINNET,
|
|
73
|
+
rewardUserCode: general_1.EVAA_REWARDS_USER_CODE_MAINNET,
|
|
74
|
+
asset: assets_1.TON_MAINNET,
|
|
75
|
+
availableReward: 0,
|
|
76
|
+
publicKey: Buffer.from('7d95ea582b019beb07bbab8f325f1b45930e2b45375aa5345ed95f49e814dc34', 'hex'), // adminAddress publicKey
|
|
77
|
+
};
|
|
78
|
+
exports.MAINNET_MASTER_USDT_REWARD_CONFIG = {
|
|
79
|
+
adminAddress: general_1.EVAA_USDT_REWARDS_MASTER_MAINNET,
|
|
80
|
+
evaaMasterAddress: new core_1.Address(0, Buffer.alloc(32, 0)),
|
|
81
|
+
rewardMasterCode: general_1.EVAA_REWARDS_MASTER_CODE_MAINNET,
|
|
82
|
+
rewardUserCode: general_1.EVAA_REWARDS_USER_CODE_MAINNET,
|
|
83
|
+
asset: assets_1.USDT_MAINNET,
|
|
84
|
+
availableReward: 0,
|
|
85
|
+
publicKey: Buffer.from('9813725d6cead1c9bbc0e24b21d4fc62a7fa8ac4bb01b6758df30169a71dba67', 'hex'), // adminAddress publicKey
|
|
66
86
|
};
|
package/dist/index.d.ts
CHANGED
|
@@ -1,14 +1,21 @@
|
|
|
1
|
-
export { mulFactor, mulDiv, bigIntMin, bigIntMax, calculatePresentValue, calculateCurrentRates, calculateAssetData, calculateAssetInterest, getAvailableToBorrow, calculateMaximumWithdrawAmount, presentValue, calculateLiquidationData, predictHealthFactor, calculateHealthParams, BigMath, } from './api/math';
|
|
1
|
+
export { mulFactor, mulDiv, bigIntMin, bigIntMax, calculatePresentValue, calculateCurrentRates, calculateAssetData, calculateAssetInterest, getAvailableToBorrow, calculateMaximumWithdrawAmount, presentValue, calculateLiquidationData, predictHealthFactor, calculateHealthParams, calculateInterestWithSupplyBorrow, predictAPY, BigMath, getAssetLiquidityMinusReserves, } from './api/math';
|
|
2
2
|
export { calculateLiquidationAmounts, calculateMinCollateralByTransferredAmount, isLiquidatable, isBadDebt, addReserve, deductReserve, addLiquidationBonus, deductLiquidationBonus, toAssetAmount, toAssetWorth, PreparedAssetInfo, PreparedAssetInfoResult, prepareAssetInfo, findAssetById, selectGreatestAssets, calculateAssetsValues, AssetsValues, SelectedAssets, } from './api/liquidation';
|
|
3
3
|
export { createAssetData, createAssetConfig, parseMasterData, parseUserData, parseUserLiteData } from './api/parser';
|
|
4
4
|
export { getPrices } from './api/prices';
|
|
5
5
|
export { JettonWallet } from './contracts/JettonWallet';
|
|
6
6
|
export { EvaaParameters, WithdrawParameters, LiquidationBaseData, LiquidationParameters, Evaa } from './contracts/MasterContract';
|
|
7
7
|
export { EvaaUser } from './contracts/UserContract';
|
|
8
|
+
export { RewardMaster } from './rewards/RewardMaster';
|
|
9
|
+
export { type EvaaRewardsConfig } from './types/MasterRewards';
|
|
10
|
+
export { RewardUser } from './rewards/RewardUser';
|
|
11
|
+
export { type EvaaUserRewardsConfig } from './types/UserRewards';
|
|
12
|
+
export { JettonMinter as RewardJettonMinter, type JettonMinterConfig, type MintMessage } from './rewards/JettonMinter';
|
|
13
|
+
export { JettonWallet as RewardJettonWallet, type JettonWalletConfig } from './rewards/JettonWallet';
|
|
14
|
+
export { EvaaUserRewards } from './rewards/EvaaRewards';
|
|
8
15
|
export { UpgradeConfig, AssetConfig, MasterConfig, AssetData, AssetInterest, AssetApy, ExtendedAssetData, MasterData, PoolConfig, ExtendedAssetsData, ExtendedAssetsConfig, PoolAssetConfig, PoolAssetsConfig, MasterConstants } from './types/Master';
|
|
9
16
|
export { BalanceType, UserBalance, UserLiqudationData, LiquidableData, NonLiquidableData, LiquidationData, UserDataInactive, UserDataActive, UserData, BalanceChangeType } from './types/User';
|
|
10
|
-
export { EVAA_MASTER_MAINNET, MAINNET_VERSION, EVAA_MASTER_TESTNET, TESTNET_VERSION, LENDING_CODE, OPCODES, FEES, MASTER_CONSTANTS } from './constants/general';
|
|
11
|
-
export { MAINNET_POOL_CONFIG, TESTNET_POOL_CONFIG, MAINNET_LP_POOL_CONFIG, MAINNET_ALTS_POOL_CONFIG } from './constants/pools';
|
|
17
|
+
export { EVAA_MASTER_MAINNET, MAINNET_VERSION, EVAA_MASTER_TESTNET, TESTNET_VERSION, LENDING_CODE, OPCODES, FEES, MASTER_CONSTANTS, EVAA_REWARDS_MASTER_TESTNET, EVAA_REWARDS_MASTER_CODE_TESTNET, EVAA_REWARDS_USER_CODE_TESTNET, EVAA_REWARDS_MASTER_CODE_MAINNET, EVAA_REWARDS_USER_CODE_MAINNET, } from './constants/general';
|
|
18
|
+
export { MAINNET_POOL_CONFIG, TESTNET_POOL_CONFIG, MAINNET_LP_POOL_CONFIG, MAINNET_ALTS_POOL_CONFIG, TESTNET_MASTER_REWARD_CONFIG, MAINNET_MASTER_TON_REWARD_CONFIG, MAINNET_MASTER_USDT_REWARD_CONFIG, } from './constants/pools';
|
|
12
19
|
export { ASSET_ID, UNDEFINED_ASSET, TON_MAINNET, USDT_MAINNET, TONUSDT_DEDUST_MAINNET, TON_STORM_MAINNET, USDT_STORM_MAINNET, DOGS_MAINNET, CATI_MAINNET, UTON_MAINNET, NOT_MAINNET, JUSDT_MAINNET, JUSDC_MAINNET, STTON_MAINNET, TSTON_MAINNET, JUSDT_TESTNET, JUSDC_TESTNET, STTON_TESTNET } from './constants/assets';
|
|
13
20
|
export * from './constants/assets';
|
|
14
21
|
export * from './utils/utils';
|
package/dist/index.js
CHANGED
|
@@ -14,8 +14,8 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
14
14
|
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
15
|
};
|
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
-
exports.
|
|
18
|
-
exports.getUserJettonWallet = exports.getTonConnectSender = exports.getLastSentBoc = exports.STTON_TESTNET = exports.JUSDC_TESTNET = exports.JUSDT_TESTNET = exports.TSTON_MAINNET = exports.STTON_MAINNET = exports.JUSDC_MAINNET = exports.JUSDT_MAINNET = exports.NOT_MAINNET = exports.UTON_MAINNET = exports.CATI_MAINNET = exports.DOGS_MAINNET = exports.USDT_STORM_MAINNET = exports.TON_STORM_MAINNET = exports.TONUSDT_DEDUST_MAINNET = exports.USDT_MAINNET = exports.TON_MAINNET = exports.UNDEFINED_ASSET = exports.ASSET_ID = exports.MAINNET_ALTS_POOL_CONFIG = exports.MAINNET_LP_POOL_CONFIG = void 0;
|
|
17
|
+
exports.MAINNET_VERSION = exports.EVAA_MASTER_MAINNET = exports.BalanceChangeType = exports.BalanceType = exports.EvaaUserRewards = exports.RewardJettonWallet = exports.RewardJettonMinter = exports.RewardUser = exports.RewardMaster = exports.EvaaUser = exports.Evaa = exports.JettonWallet = exports.getPrices = exports.parseUserLiteData = exports.parseUserData = exports.parseMasterData = exports.createAssetConfig = exports.createAssetData = exports.calculateAssetsValues = exports.selectGreatestAssets = exports.findAssetById = exports.prepareAssetInfo = exports.toAssetWorth = exports.toAssetAmount = exports.deductLiquidationBonus = exports.addLiquidationBonus = exports.deductReserve = exports.addReserve = exports.isBadDebt = exports.isLiquidatable = exports.calculateMinCollateralByTransferredAmount = exports.calculateLiquidationAmounts = exports.getAssetLiquidityMinusReserves = exports.BigMath = exports.predictAPY = exports.calculateInterestWithSupplyBorrow = exports.calculateHealthParams = exports.predictHealthFactor = exports.calculateLiquidationData = exports.presentValue = exports.calculateMaximumWithdrawAmount = exports.getAvailableToBorrow = exports.calculateAssetInterest = exports.calculateAssetData = exports.calculateCurrentRates = exports.calculatePresentValue = exports.bigIntMax = exports.bigIntMin = exports.mulDiv = exports.mulFactor = void 0;
|
|
18
|
+
exports.getUserJettonWallet = exports.getTonConnectSender = exports.getLastSentBoc = exports.STTON_TESTNET = exports.JUSDC_TESTNET = exports.JUSDT_TESTNET = exports.TSTON_MAINNET = exports.STTON_MAINNET = exports.JUSDC_MAINNET = exports.JUSDT_MAINNET = exports.NOT_MAINNET = exports.UTON_MAINNET = exports.CATI_MAINNET = exports.DOGS_MAINNET = exports.USDT_STORM_MAINNET = exports.TON_STORM_MAINNET = exports.TONUSDT_DEDUST_MAINNET = exports.USDT_MAINNET = exports.TON_MAINNET = exports.UNDEFINED_ASSET = exports.ASSET_ID = exports.MAINNET_MASTER_USDT_REWARD_CONFIG = exports.MAINNET_MASTER_TON_REWARD_CONFIG = exports.TESTNET_MASTER_REWARD_CONFIG = exports.MAINNET_ALTS_POOL_CONFIG = exports.MAINNET_LP_POOL_CONFIG = exports.TESTNET_POOL_CONFIG = exports.MAINNET_POOL_CONFIG = exports.EVAA_REWARDS_USER_CODE_MAINNET = exports.EVAA_REWARDS_MASTER_CODE_MAINNET = exports.EVAA_REWARDS_USER_CODE_TESTNET = exports.EVAA_REWARDS_MASTER_CODE_TESTNET = exports.EVAA_REWARDS_MASTER_TESTNET = exports.MASTER_CONSTANTS = exports.FEES = exports.OPCODES = exports.LENDING_CODE = exports.TESTNET_VERSION = exports.EVAA_MASTER_TESTNET = void 0;
|
|
19
19
|
// Math
|
|
20
20
|
var math_1 = require("./api/math");
|
|
21
21
|
Object.defineProperty(exports, "mulFactor", { enumerable: true, get: function () { return math_1.mulFactor; } });
|
|
@@ -32,7 +32,10 @@ Object.defineProperty(exports, "presentValue", { enumerable: true, get: function
|
|
|
32
32
|
Object.defineProperty(exports, "calculateLiquidationData", { enumerable: true, get: function () { return math_1.calculateLiquidationData; } });
|
|
33
33
|
Object.defineProperty(exports, "predictHealthFactor", { enumerable: true, get: function () { return math_1.predictHealthFactor; } });
|
|
34
34
|
Object.defineProperty(exports, "calculateHealthParams", { enumerable: true, get: function () { return math_1.calculateHealthParams; } });
|
|
35
|
+
Object.defineProperty(exports, "calculateInterestWithSupplyBorrow", { enumerable: true, get: function () { return math_1.calculateInterestWithSupplyBorrow; } });
|
|
36
|
+
Object.defineProperty(exports, "predictAPY", { enumerable: true, get: function () { return math_1.predictAPY; } });
|
|
35
37
|
Object.defineProperty(exports, "BigMath", { enumerable: true, get: function () { return math_1.BigMath; } });
|
|
38
|
+
Object.defineProperty(exports, "getAssetLiquidityMinusReserves", { enumerable: true, get: function () { return math_1.getAssetLiquidityMinusReserves; } });
|
|
36
39
|
var liquidation_1 = require("./api/liquidation");
|
|
37
40
|
Object.defineProperty(exports, "calculateLiquidationAmounts", { enumerable: true, get: function () { return liquidation_1.calculateLiquidationAmounts; } });
|
|
38
41
|
Object.defineProperty(exports, "calculateMinCollateralByTransferredAmount", { enumerable: true, get: function () { return liquidation_1.calculateMinCollateralByTransferredAmount; } });
|
|
@@ -65,6 +68,17 @@ var MasterContract_1 = require("./contracts/MasterContract");
|
|
|
65
68
|
Object.defineProperty(exports, "Evaa", { enumerable: true, get: function () { return MasterContract_1.Evaa; } });
|
|
66
69
|
var UserContract_1 = require("./contracts/UserContract");
|
|
67
70
|
Object.defineProperty(exports, "EvaaUser", { enumerable: true, get: function () { return UserContract_1.EvaaUser; } });
|
|
71
|
+
// Rewards contracts wrappers
|
|
72
|
+
var RewardMaster_1 = require("./rewards/RewardMaster");
|
|
73
|
+
Object.defineProperty(exports, "RewardMaster", { enumerable: true, get: function () { return RewardMaster_1.RewardMaster; } });
|
|
74
|
+
var RewardUser_1 = require("./rewards/RewardUser");
|
|
75
|
+
Object.defineProperty(exports, "RewardUser", { enumerable: true, get: function () { return RewardUser_1.RewardUser; } });
|
|
76
|
+
var JettonMinter_1 = require("./rewards/JettonMinter");
|
|
77
|
+
Object.defineProperty(exports, "RewardJettonMinter", { enumerable: true, get: function () { return JettonMinter_1.JettonMinter; } });
|
|
78
|
+
var JettonWallet_2 = require("./rewards/JettonWallet");
|
|
79
|
+
Object.defineProperty(exports, "RewardJettonWallet", { enumerable: true, get: function () { return JettonWallet_2.JettonWallet; } });
|
|
80
|
+
var EvaaRewards_1 = require("./rewards/EvaaRewards");
|
|
81
|
+
Object.defineProperty(exports, "EvaaUserRewards", { enumerable: true, get: function () { return EvaaRewards_1.EvaaUserRewards; } });
|
|
68
82
|
var User_1 = require("./types/User");
|
|
69
83
|
Object.defineProperty(exports, "BalanceType", { enumerable: true, get: function () { return User_1.BalanceType; } });
|
|
70
84
|
Object.defineProperty(exports, "BalanceChangeType", { enumerable: true, get: function () { return User_1.BalanceChangeType; } });
|
|
@@ -78,11 +92,20 @@ Object.defineProperty(exports, "LENDING_CODE", { enumerable: true, get: function
|
|
|
78
92
|
Object.defineProperty(exports, "OPCODES", { enumerable: true, get: function () { return general_1.OPCODES; } });
|
|
79
93
|
Object.defineProperty(exports, "FEES", { enumerable: true, get: function () { return general_1.FEES; } });
|
|
80
94
|
Object.defineProperty(exports, "MASTER_CONSTANTS", { enumerable: true, get: function () { return general_1.MASTER_CONSTANTS; } });
|
|
95
|
+
Object.defineProperty(exports, "EVAA_REWARDS_MASTER_TESTNET", { enumerable: true, get: function () { return general_1.EVAA_REWARDS_MASTER_TESTNET; } });
|
|
96
|
+
Object.defineProperty(exports, "EVAA_REWARDS_MASTER_CODE_TESTNET", { enumerable: true, get: function () { return general_1.EVAA_REWARDS_MASTER_CODE_TESTNET; } });
|
|
97
|
+
Object.defineProperty(exports, "EVAA_REWARDS_USER_CODE_TESTNET", { enumerable: true, get: function () { return general_1.EVAA_REWARDS_USER_CODE_TESTNET; } });
|
|
98
|
+
Object.defineProperty(exports, "EVAA_REWARDS_MASTER_CODE_MAINNET", { enumerable: true, get: function () { return general_1.EVAA_REWARDS_MASTER_CODE_MAINNET; } });
|
|
99
|
+
Object.defineProperty(exports, "EVAA_REWARDS_USER_CODE_MAINNET", { enumerable: true, get: function () { return general_1.EVAA_REWARDS_USER_CODE_MAINNET; } });
|
|
81
100
|
var pools_1 = require("./constants/pools");
|
|
82
101
|
Object.defineProperty(exports, "MAINNET_POOL_CONFIG", { enumerable: true, get: function () { return pools_1.MAINNET_POOL_CONFIG; } });
|
|
83
102
|
Object.defineProperty(exports, "TESTNET_POOL_CONFIG", { enumerable: true, get: function () { return pools_1.TESTNET_POOL_CONFIG; } });
|
|
84
103
|
Object.defineProperty(exports, "MAINNET_LP_POOL_CONFIG", { enumerable: true, get: function () { return pools_1.MAINNET_LP_POOL_CONFIG; } });
|
|
85
104
|
Object.defineProperty(exports, "MAINNET_ALTS_POOL_CONFIG", { enumerable: true, get: function () { return pools_1.MAINNET_ALTS_POOL_CONFIG; } });
|
|
105
|
+
// Reward Pools
|
|
106
|
+
Object.defineProperty(exports, "TESTNET_MASTER_REWARD_CONFIG", { enumerable: true, get: function () { return pools_1.TESTNET_MASTER_REWARD_CONFIG; } });
|
|
107
|
+
Object.defineProperty(exports, "MAINNET_MASTER_TON_REWARD_CONFIG", { enumerable: true, get: function () { return pools_1.MAINNET_MASTER_TON_REWARD_CONFIG; } });
|
|
108
|
+
Object.defineProperty(exports, "MAINNET_MASTER_USDT_REWARD_CONFIG", { enumerable: true, get: function () { return pools_1.MAINNET_MASTER_USDT_REWARD_CONFIG; } });
|
|
86
109
|
var assets_1 = require("./constants/assets");
|
|
87
110
|
Object.defineProperty(exports, "ASSET_ID", { enumerable: true, get: function () { return assets_1.ASSET_ID; } });
|
|
88
111
|
Object.defineProperty(exports, "UNDEFINED_ASSET", { enumerable: true, get: function () { return assets_1.UNDEFINED_ASSET; } });
|
|
@@ -6,7 +6,7 @@ import { Prices } from "./Prices";
|
|
|
6
6
|
export declare class PricesCollector {
|
|
7
7
|
#private;
|
|
8
8
|
constructor(poolConfig?: PoolConfig, sourcesConfig?: PriceSourcesConfig, additionalPriceSources?: PriceSource[]);
|
|
9
|
-
getPricesForLiquidate(
|
|
10
|
-
getPricesForWithdraw(
|
|
9
|
+
getPricesForLiquidate(realPrincipals: Dictionary<bigint, bigint>, retries?: number, timeout?: number): Promise<Prices>;
|
|
10
|
+
getPricesForWithdraw(realPrincipals: Dictionary<bigint, bigint>, withdrawAsset: PoolAssetConfig, collateralToDebt?: boolean, retries?: number, timeout?: number): Promise<Prices>;
|
|
11
11
|
getPrices(assets?: PoolAssetsConfig, retries?: number, timeout?: number): Promise<Prices>;
|
|
12
12
|
}
|
|
@@ -10,7 +10,7 @@ var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (
|
|
|
10
10
|
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
|
|
11
11
|
return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
|
|
12
12
|
};
|
|
13
|
-
var _PricesCollector_instances, _PricesCollector_prices, _PricesCollector_poolConfig, _PricesCollector_sourcesConfig, _PricesCollector_priceSources, _PricesCollector_getPricesByAssetList, _PricesCollector_collectPrices, _PricesCollector_filterPrices;
|
|
13
|
+
var _PricesCollector_instances, _PricesCollector_prices, _PricesCollector_poolConfig, _PricesCollector_sourcesConfig, _PricesCollector_priceSources, _PricesCollector_getPricesByAssetList, _PricesCollector_collectPrices, _PricesCollector_filterPrices, _PricesCollector_filterEmptyPrincipalsAndAssets;
|
|
14
14
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
15
|
exports.PricesCollector = void 0;
|
|
16
16
|
const core_1 = require("@ton/core");
|
|
@@ -36,16 +36,16 @@ class PricesCollector {
|
|
|
36
36
|
__classPrivateFieldSet(this, _PricesCollector_prices, [], "f");
|
|
37
37
|
}
|
|
38
38
|
// TODO Make UserData class and incapsulate raw bigintegers
|
|
39
|
-
async getPricesForLiquidate(
|
|
40
|
-
const assets =
|
|
39
|
+
async getPricesForLiquidate(realPrincipals, retries = 1, timeout = 3000) {
|
|
40
|
+
const assets = __classPrivateFieldGet(this, _PricesCollector_instances, "m", _PricesCollector_filterEmptyPrincipalsAndAssets).call(this, realPrincipals);
|
|
41
41
|
if (assets.includes(undefined)) {
|
|
42
42
|
throw new Error("User from another pool");
|
|
43
43
|
}
|
|
44
44
|
return await this.getPrices(assets.map(x => x), retries, timeout);
|
|
45
45
|
}
|
|
46
|
-
async getPricesForWithdraw(
|
|
47
|
-
let assets =
|
|
48
|
-
if ((0, math_1.checkNotInDebtAtAll)(
|
|
46
|
+
async getPricesForWithdraw(realPrincipals, withdrawAsset, collateralToDebt = false, retries = 1, timeout = 3000) {
|
|
47
|
+
let assets = __classPrivateFieldGet(this, _PricesCollector_instances, "m", _PricesCollector_filterEmptyPrincipalsAndAssets).call(this, realPrincipals);
|
|
48
|
+
if ((0, math_1.checkNotInDebtAtAll)(realPrincipals) && (realPrincipals.get(withdrawAsset.assetId) ?? 0n) > 0n && !collateralToDebt) {
|
|
49
49
|
return new Prices_1.Prices(core_1.Dictionary.empty(), core_1.Cell.EMPTY);
|
|
50
50
|
}
|
|
51
51
|
if (assets.includes(undefined)) {
|
|
@@ -118,4 +118,6 @@ _PricesCollector_prices = new WeakMap(), _PricesCollector_poolConfig = new WeakM
|
|
|
118
118
|
}, _PricesCollector_filterPrices = function _PricesCollector_filterPrices() {
|
|
119
119
|
__classPrivateFieldSet(this, _PricesCollector_prices, __classPrivateFieldGet(this, _PricesCollector_prices, "f").filter((0, utils_1.verifyPricesTimestamp)()), "f");
|
|
120
120
|
return __classPrivateFieldGet(this, _PricesCollector_prices, "f").length;
|
|
121
|
+
}, _PricesCollector_filterEmptyPrincipalsAndAssets = function _PricesCollector_filterEmptyPrincipalsAndAssets(principals) {
|
|
122
|
+
return principals.keys().filter(x => principals.get(x) != 0n).map(x => __classPrivateFieldGet(this, _PricesCollector_poolConfig, "f").poolAssetsConfig.find(asset => asset.assetId == x));
|
|
121
123
|
};
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { Address, Contract } from '@ton/ton';
|
|
2
|
+
import { EvaaRewardsConfig } from '../types/MasterRewards';
|
|
3
|
+
import { RewardUser } from './RewardUser';
|
|
4
|
+
export declare class EvaaUserRewards implements Contract {
|
|
5
|
+
readonly userAddress: Address;
|
|
6
|
+
readonly config: Omit<EvaaRewardsConfig, 'userAddress'>;
|
|
7
|
+
readonly address: Address;
|
|
8
|
+
constructor(userAddress: Address, config: Omit<EvaaRewardsConfig, 'userAddress'>);
|
|
9
|
+
openContract(): RewardUser;
|
|
10
|
+
}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.EvaaUserRewards = void 0;
|
|
4
|
+
const RewardUser_1 = require("./RewardUser");
|
|
5
|
+
class EvaaUserRewards {
|
|
6
|
+
constructor(userAddress, config) {
|
|
7
|
+
this.userAddress = userAddress;
|
|
8
|
+
this.config = config;
|
|
9
|
+
this.address = this.userAddress;
|
|
10
|
+
}
|
|
11
|
+
openContract() {
|
|
12
|
+
return RewardUser_1.RewardUser.createFromConfig({
|
|
13
|
+
asset: this.config.asset,
|
|
14
|
+
rewardMasterAddress: this.config.adminAddress,
|
|
15
|
+
rewardUserCode: this.config.rewardUserCode,
|
|
16
|
+
userAddress: this.userAddress,
|
|
17
|
+
publicKey: this.config.publicKey,
|
|
18
|
+
});
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
exports.EvaaUserRewards = EvaaUserRewards;
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { Address, Cell, Contract, ContractProvider, Sender } from '@ton/ton';
|
|
2
|
+
export type JettonMinterConfig = {
|
|
3
|
+
address: Address;
|
|
4
|
+
content: Cell;
|
|
5
|
+
walletCode: Cell;
|
|
6
|
+
};
|
|
7
|
+
export type MintMessage = {
|
|
8
|
+
address: Address;
|
|
9
|
+
forwardValue: bigint;
|
|
10
|
+
amount: bigint;
|
|
11
|
+
};
|
|
12
|
+
export declare class JettonMinter implements Contract {
|
|
13
|
+
readonly address: Address;
|
|
14
|
+
readonly init?: {
|
|
15
|
+
code: Cell;
|
|
16
|
+
data: Cell;
|
|
17
|
+
} | undefined;
|
|
18
|
+
constructor(address: Address, init?: {
|
|
19
|
+
code: Cell;
|
|
20
|
+
data: Cell;
|
|
21
|
+
} | undefined);
|
|
22
|
+
static createFromAddress(address: Address): JettonMinter;
|
|
23
|
+
static jettonMinterConfigToCell(config: JettonMinterConfig): Cell;
|
|
24
|
+
static createFromConfig(config: JettonMinterConfig, code: Cell, workchain?: number): JettonMinter;
|
|
25
|
+
sendDeploy(provider: ContractProvider, via: Sender, value: bigint): Promise<void>;
|
|
26
|
+
sendMintMessage(payload: MintMessage): Cell;
|
|
27
|
+
sendMint(provider: ContractProvider, via: Sender, value: bigint, forwardValue: bigint, recipient: Address, amount: bigint): Promise<void>;
|
|
28
|
+
getWalletAddressOf(provider: ContractProvider, address: Address): Promise<Address>;
|
|
29
|
+
getWalletCode(provider: ContractProvider): Promise<Cell>;
|
|
30
|
+
}
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.JettonMinter = void 0;
|
|
4
|
+
const ton_1 = require("@ton/ton");
|
|
5
|
+
const general_1 = require("../constants/general");
|
|
6
|
+
class JettonMinter {
|
|
7
|
+
constructor(address, init) {
|
|
8
|
+
this.address = address;
|
|
9
|
+
this.init = init;
|
|
10
|
+
}
|
|
11
|
+
static createFromAddress(address) {
|
|
12
|
+
return new JettonMinter(address);
|
|
13
|
+
}
|
|
14
|
+
static jettonMinterConfigToCell(config) {
|
|
15
|
+
return (0, ton_1.beginCell)()
|
|
16
|
+
.storeCoins(0)
|
|
17
|
+
.storeAddress(config.address)
|
|
18
|
+
.storeRef(config.content)
|
|
19
|
+
.storeRef(config.walletCode)
|
|
20
|
+
.endCell();
|
|
21
|
+
}
|
|
22
|
+
static createFromConfig(config, code, workchain = 0) {
|
|
23
|
+
const data = this.jettonMinterConfigToCell(config);
|
|
24
|
+
const init = { code, data };
|
|
25
|
+
return new JettonMinter((0, ton_1.contractAddress)(workchain, init), init);
|
|
26
|
+
}
|
|
27
|
+
async sendDeploy(provider, via, value) {
|
|
28
|
+
await provider.internal(via, {
|
|
29
|
+
value,
|
|
30
|
+
sendMode: ton_1.SendMode.PAY_GAS_SEPARATELY,
|
|
31
|
+
body: (0, ton_1.beginCell)().endCell(),
|
|
32
|
+
});
|
|
33
|
+
}
|
|
34
|
+
sendMintMessage(payload) {
|
|
35
|
+
return (0, ton_1.beginCell)()
|
|
36
|
+
.storeUint(21, 32)
|
|
37
|
+
.storeUint(0, 64)
|
|
38
|
+
.storeAddress(payload.address)
|
|
39
|
+
.storeCoins(payload.forwardValue)
|
|
40
|
+
.storeRef((0, ton_1.beginCell)()
|
|
41
|
+
.storeUint(general_1.OPCODES.REWARD_JETTON_MINT, 32)
|
|
42
|
+
.storeUint(0, 64)
|
|
43
|
+
.storeCoins(payload.amount)
|
|
44
|
+
.storeAddress(this.address)
|
|
45
|
+
.storeAddress(this.address)
|
|
46
|
+
.storeCoins(0)
|
|
47
|
+
.storeUint(0, 1)
|
|
48
|
+
.endCell())
|
|
49
|
+
.endCell();
|
|
50
|
+
}
|
|
51
|
+
async sendMint(provider, via, value, forwardValue, recipient, amount) {
|
|
52
|
+
await provider.internal(via, {
|
|
53
|
+
sendMode: ton_1.SendMode.PAY_GAS_SEPARATELY,
|
|
54
|
+
body: (0, ton_1.beginCell)()
|
|
55
|
+
.storeUint(21, 32)
|
|
56
|
+
.storeUint(0, 64)
|
|
57
|
+
.storeAddress(recipient)
|
|
58
|
+
.storeCoins(forwardValue)
|
|
59
|
+
.storeRef((0, ton_1.beginCell)()
|
|
60
|
+
.storeUint(general_1.OPCODES.REWARD_JETTON_MINT, 32)
|
|
61
|
+
.storeUint(0, 64)
|
|
62
|
+
.storeCoins(amount)
|
|
63
|
+
.storeAddress(this.address)
|
|
64
|
+
.storeAddress(this.address)
|
|
65
|
+
.storeCoins(0)
|
|
66
|
+
.storeUint(0, 1)
|
|
67
|
+
.endCell())
|
|
68
|
+
.endCell(),
|
|
69
|
+
value: value + forwardValue,
|
|
70
|
+
});
|
|
71
|
+
}
|
|
72
|
+
async getWalletAddressOf(provider, address) {
|
|
73
|
+
return (await provider.get('get_wallet_address', [
|
|
74
|
+
{ type: 'slice', cell: (0, ton_1.beginCell)().storeAddress(address).endCell() },
|
|
75
|
+
])).stack.readAddress();
|
|
76
|
+
}
|
|
77
|
+
async getWalletCode(provider) {
|
|
78
|
+
let stack = (await provider.get('get_jetton_data', [])).stack;
|
|
79
|
+
stack.skip(4);
|
|
80
|
+
return stack.readCell();
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
exports.JettonMinter = JettonMinter;
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { Address, Cell, Contract, ContractProvider, Sender } from '@ton/ton';
|
|
2
|
+
export type JettonWalletConfig = {
|
|
3
|
+
owner: Address;
|
|
4
|
+
minter: Address;
|
|
5
|
+
walletCode: Cell;
|
|
6
|
+
};
|
|
7
|
+
export declare class JettonWallet implements Contract {
|
|
8
|
+
readonly address: Address;
|
|
9
|
+
readonly init?: {
|
|
10
|
+
code: Cell;
|
|
11
|
+
data: Cell;
|
|
12
|
+
} | undefined;
|
|
13
|
+
constructor(address: Address, init?: {
|
|
14
|
+
code: Cell;
|
|
15
|
+
data: Cell;
|
|
16
|
+
} | undefined);
|
|
17
|
+
static createFromAddress(address: Address): JettonWallet;
|
|
18
|
+
static jettonWalletConfigToCell(config: JettonWalletConfig): Cell;
|
|
19
|
+
static createFromConfig(config: JettonWalletConfig, code: Cell, workchain?: number): JettonWallet;
|
|
20
|
+
sendDeploy(provider: ContractProvider, via: Sender, value: bigint): Promise<void>;
|
|
21
|
+
sendTransfer(provider: ContractProvider, via: Sender, value: bigint, forwardValue: bigint, recipient: Address, amount: bigint, forwardPayload: Cell): Promise<void>;
|
|
22
|
+
getJettonBalance(provider: ContractProvider): Promise<bigint>;
|
|
23
|
+
}
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.JettonWallet = void 0;
|
|
4
|
+
const ton_1 = require("@ton/ton");
|
|
5
|
+
const general_1 = require("../constants/general");
|
|
6
|
+
class JettonWallet {
|
|
7
|
+
constructor(address, init) {
|
|
8
|
+
this.address = address;
|
|
9
|
+
this.init = init;
|
|
10
|
+
}
|
|
11
|
+
static createFromAddress(address) {
|
|
12
|
+
return new JettonWallet(address);
|
|
13
|
+
}
|
|
14
|
+
static jettonWalletConfigToCell(config) {
|
|
15
|
+
return (0, ton_1.beginCell)()
|
|
16
|
+
.storeCoins(0) // baseTrackingAccured always is 0, check smartcontract
|
|
17
|
+
.storeAddress(config.owner)
|
|
18
|
+
.storeAddress(config.minter)
|
|
19
|
+
.storeRef(config.walletCode)
|
|
20
|
+
.endCell();
|
|
21
|
+
}
|
|
22
|
+
static createFromConfig(config, code, workchain = 0) {
|
|
23
|
+
const data = this.jettonWalletConfigToCell(config);
|
|
24
|
+
const init = { code, data };
|
|
25
|
+
return new JettonWallet((0, ton_1.contractAddress)(workchain, init), init);
|
|
26
|
+
}
|
|
27
|
+
async sendDeploy(provider, via, value) {
|
|
28
|
+
await provider.internal(via, {
|
|
29
|
+
value,
|
|
30
|
+
sendMode: ton_1.SendMode.PAY_GAS_SEPARATELY,
|
|
31
|
+
body: (0, ton_1.beginCell)().endCell(),
|
|
32
|
+
});
|
|
33
|
+
}
|
|
34
|
+
async sendTransfer(provider, via, value, forwardValue, recipient, amount, forwardPayload) {
|
|
35
|
+
await provider.internal(via, {
|
|
36
|
+
sendMode: ton_1.SendMode.PAY_GAS_SEPARATELY,
|
|
37
|
+
body: (0, ton_1.beginCell)()
|
|
38
|
+
.storeUint(general_1.OPCODES.REWARD_JETTON_TRANSFER, 32)
|
|
39
|
+
.storeUint(0, 64)
|
|
40
|
+
.storeCoins(amount)
|
|
41
|
+
.storeAddress(recipient)
|
|
42
|
+
.storeAddress(via.address)
|
|
43
|
+
.storeUint(0, 1)
|
|
44
|
+
.storeCoins(forwardValue)
|
|
45
|
+
.storeUint(1, 1)
|
|
46
|
+
.storeRef(forwardPayload)
|
|
47
|
+
.endCell(),
|
|
48
|
+
value: value + forwardValue,
|
|
49
|
+
});
|
|
50
|
+
}
|
|
51
|
+
async getJettonBalance(provider) {
|
|
52
|
+
let state = await provider.getState();
|
|
53
|
+
if (state.state.type !== 'active') {
|
|
54
|
+
return 0n;
|
|
55
|
+
}
|
|
56
|
+
let res = await provider.get('get_wallet_data', []);
|
|
57
|
+
return res.stack.readBigNumber();
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
exports.JettonWallet = JettonWallet;
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
/// <reference types="node" />
|
|
2
|
+
import { Address, Cell, Contract, ContractProvider, Sender, StateInit } from '@ton/ton';
|
|
3
|
+
import { Maybe } from '@ton/ton/dist/utils/maybe';
|
|
4
|
+
import { EvaaRewardsConfig } from '../types/MasterRewards';
|
|
5
|
+
export declare class RewardMaster implements Contract {
|
|
6
|
+
readonly address: Address;
|
|
7
|
+
readonly init?: Maybe<StateInit>;
|
|
8
|
+
constructor(address: Address, init?: Maybe<StateInit>);
|
|
9
|
+
static createFromAddress(address: Address): RewardMaster;
|
|
10
|
+
static rewardMasterConfigToCell(config: EvaaRewardsConfig): Cell;
|
|
11
|
+
static createFromConfig(config: EvaaRewardsConfig, workchain?: number): RewardMaster;
|
|
12
|
+
sendDeploy(provider: ContractProvider, via: Sender, rewardTokenJettonWalletAddress: Address | null): Promise<void>;
|
|
13
|
+
sendTonTopUp(provider: ContractProvider, via: Sender, topUpRewardAmount: number): Promise<void>;
|
|
14
|
+
private adminWithdrawMessage;
|
|
15
|
+
sendAdminWithdraw(provider: ContractProvider, via: Sender, destinationAddress: Address, jettonAmount: number): Promise<void>;
|
|
16
|
+
getData(provider: ContractProvider): Promise<{
|
|
17
|
+
adminAddress: Address;
|
|
18
|
+
availableReward: number;
|
|
19
|
+
rewardUserCode: Cell;
|
|
20
|
+
evaaMasterAddress: Address;
|
|
21
|
+
rewardTokenJettonWalletAddress: Address | null;
|
|
22
|
+
assetId: Buffer;
|
|
23
|
+
publicKey: Buffer;
|
|
24
|
+
}>;
|
|
25
|
+
getRewardUserAddress(provider: ContractProvider, userAddress: Address): Promise<Address>;
|
|
26
|
+
}
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.RewardMaster = void 0;
|
|
4
|
+
const ton_1 = require("@ton/ton");
|
|
5
|
+
const general_1 = require("../constants/general");
|
|
6
|
+
const sha256BigInt_1 = require("../utils/sha256BigInt");
|
|
7
|
+
class RewardMaster {
|
|
8
|
+
constructor(address, init) {
|
|
9
|
+
this.address = address;
|
|
10
|
+
this.init = init;
|
|
11
|
+
}
|
|
12
|
+
static createFromAddress(address) {
|
|
13
|
+
return new RewardMaster(address);
|
|
14
|
+
}
|
|
15
|
+
static rewardMasterConfigToCell(config) {
|
|
16
|
+
return (0, ton_1.beginCell)()
|
|
17
|
+
.storeAddress(config.adminAddress)
|
|
18
|
+
.storeCoins(config.availableReward)
|
|
19
|
+
.storeAddress(null) // The addres null for TON
|
|
20
|
+
.storeRef(config.rewardUserCode)
|
|
21
|
+
.storeRef((0, ton_1.beginCell)()
|
|
22
|
+
.storeAddress(config.evaaMasterAddress)
|
|
23
|
+
.storeBuffer((0, sha256BigInt_1.bigIntToBuffer)(config.asset.assetId), 256 / 8)
|
|
24
|
+
.storeBuffer(config.publicKey, 256 / 8)
|
|
25
|
+
.endCell())
|
|
26
|
+
.endCell();
|
|
27
|
+
}
|
|
28
|
+
static createFromConfig(config, workchain = 0) {
|
|
29
|
+
const data = this.rewardMasterConfigToCell(config);
|
|
30
|
+
const init = { code: config.rewardMasterCode, data };
|
|
31
|
+
return new RewardMaster((0, ton_1.contractAddress)(workchain, init), init);
|
|
32
|
+
}
|
|
33
|
+
async sendDeploy(provider, via, rewardTokenJettonWalletAddress) {
|
|
34
|
+
await provider.internal(via, {
|
|
35
|
+
value: general_1.FEES.REWARD_MASTER_DEPLOY,
|
|
36
|
+
sendMode: ton_1.SendMode.PAY_GAS_SEPARATELY,
|
|
37
|
+
body: (0, ton_1.beginCell)().storeUint(1, 32).storeUint(0, 64).storeAddress(rewardTokenJettonWalletAddress).endCell(),
|
|
38
|
+
});
|
|
39
|
+
}
|
|
40
|
+
async sendTonTopUp(provider, via, topUpRewardAmount) {
|
|
41
|
+
await provider.internal(via, {
|
|
42
|
+
value: (0, ton_1.toNano)(topUpRewardAmount) + general_1.FEES.REWARD_MASTER_TON_TOP_UP,
|
|
43
|
+
sendMode: ton_1.SendMode.PAY_GAS_SEPARATELY,
|
|
44
|
+
body: (0, ton_1.beginCell)().storeUint(general_1.OPCODES.REWARD_TON_TOP_UP, 32).storeUint(0, 64).endCell(),
|
|
45
|
+
});
|
|
46
|
+
}
|
|
47
|
+
adminWithdrawMessage(destinationAddress, jettonAmount) {
|
|
48
|
+
return (0, ton_1.beginCell)()
|
|
49
|
+
.storeUint(4, 32)
|
|
50
|
+
.storeUint(0, 64)
|
|
51
|
+
.storeAddress(destinationAddress)
|
|
52
|
+
.storeCoins((0, ton_1.toNano)(jettonAmount))
|
|
53
|
+
.endCell();
|
|
54
|
+
}
|
|
55
|
+
async sendAdminWithdraw(provider, via, destinationAddress, jettonAmount) {
|
|
56
|
+
await provider.internal(via, {
|
|
57
|
+
value: general_1.FEES.REWARD_MASTER_WITHDRAW,
|
|
58
|
+
sendMode: ton_1.SendMode.PAY_GAS_SEPARATELY,
|
|
59
|
+
body: this.adminWithdrawMessage(destinationAddress, jettonAmount),
|
|
60
|
+
});
|
|
61
|
+
}
|
|
62
|
+
async getData(provider) {
|
|
63
|
+
const result = await provider.get('load_data', []);
|
|
64
|
+
const data = {
|
|
65
|
+
// TODO: maybe it will be typed
|
|
66
|
+
adminAddress: result.stack.readAddress(),
|
|
67
|
+
availableReward: Number((0, ton_1.fromNano)(result.stack.readBigNumber())),
|
|
68
|
+
rewardUserCode: result.stack.readCell(),
|
|
69
|
+
evaaMasterAddress: result.stack.readAddress(),
|
|
70
|
+
rewardTokenJettonWalletAddress: result.stack.readAddressOpt(),
|
|
71
|
+
assetId: Buffer.from(result.stack.readBigNumber().toString(16), 'hex'),
|
|
72
|
+
publicKey: Buffer.from(result.stack.readBigNumber().toString(16), 'hex'),
|
|
73
|
+
};
|
|
74
|
+
return data;
|
|
75
|
+
}
|
|
76
|
+
async getRewardUserAddress(provider, userAddress) {
|
|
77
|
+
const result = await provider.get('calculate_reward_user_address', [
|
|
78
|
+
{ type: 'slice', cell: (0, ton_1.beginCell)().storeAddress(userAddress).endCell() },
|
|
79
|
+
]);
|
|
80
|
+
return result.stack.readAddress();
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
exports.RewardMaster = RewardMaster;
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
/// <reference types="node" />
|
|
2
|
+
import { Address, Cell, Contract, ContractProvider, Sender, StateInit } from '@ton/ton';
|
|
3
|
+
import { Maybe } from '@ton/ton/dist/utils/maybe';
|
|
4
|
+
import { EvaaUserRewardsConfig } from '../types/UserRewards';
|
|
5
|
+
export declare class RewardUser implements Contract {
|
|
6
|
+
readonly address: Address;
|
|
7
|
+
readonly init?: Maybe<StateInit>;
|
|
8
|
+
constructor(address: Address, init?: Maybe<StateInit>);
|
|
9
|
+
static createFromAddress(address: Address): RewardUser;
|
|
10
|
+
static rewardUserConfigToCell(config: EvaaUserRewardsConfig): Cell;
|
|
11
|
+
static createFromConfig(config: EvaaUserRewardsConfig, workchain?: number): RewardUser;
|
|
12
|
+
sendDeploy(provider: ContractProvider, via: Sender): Promise<void>;
|
|
13
|
+
claimMessageToCell(claimAmount: bigint): Cell;
|
|
14
|
+
signClaimMessage(claimBody: Cell, privateKey: Buffer): Cell;
|
|
15
|
+
sendClaim(provider: ContractProvider, via: Sender, signedClaimMessage: Cell): Promise<void>;
|
|
16
|
+
getData(provider: ContractProvider): Promise<{
|
|
17
|
+
userAddress: Address;
|
|
18
|
+
baseTrackingAccrued: number;
|
|
19
|
+
rewardMasterAddress: Address;
|
|
20
|
+
assetId: Buffer;
|
|
21
|
+
publicKey: Buffer;
|
|
22
|
+
}>;
|
|
23
|
+
}
|