@evaafi/sdk 0.6.2 → 0.6.3-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.
Files changed (59) hide show
  1. package/README.md +2 -1
  2. package/dist/api/math.d.ts +12 -2
  3. package/dist/api/math.js +56 -4
  4. package/dist/api/parser.js +48 -20
  5. package/dist/constants/assets.d.ts +5 -1
  6. package/dist/constants/assets.js +24 -9
  7. package/dist/constants/general.d.ts +16 -0
  8. package/dist/constants/general.js +18 -2
  9. package/dist/constants/pools.d.ts +6 -1
  10. package/dist/constants/pools.js +46 -26
  11. package/dist/index.d.ts +10 -3
  12. package/dist/index.js +25 -2
  13. package/dist/prices/PricesCollector.d.ts +2 -2
  14. package/dist/prices/PricesCollector.js +8 -6
  15. package/dist/rewards/EvaaRewards.d.ts +10 -0
  16. package/dist/rewards/EvaaRewards.js +21 -0
  17. package/dist/rewards/JettonMinter.d.ts +30 -0
  18. package/dist/rewards/JettonMinter.js +83 -0
  19. package/dist/rewards/JettonWallet.d.ts +23 -0
  20. package/dist/rewards/JettonWallet.js +60 -0
  21. package/dist/rewards/RewardMaster.d.ts +26 -0
  22. package/dist/rewards/RewardMaster.js +83 -0
  23. package/dist/rewards/RewardUser.d.ts +23 -0
  24. package/dist/rewards/RewardUser.js +70 -0
  25. package/dist/types/MasterRewards.d.ts +13 -0
  26. package/dist/types/User.d.ts +11 -1
  27. package/dist/types/UserRewards.d.ts +10 -0
  28. package/dist/types/UserRewards.js +2 -0
  29. package/dist/utils/sha256BigInt.d.ts +2 -0
  30. package/dist/utils/sha256BigInt.js +9 -1
  31. package/dist/utils/userJettonWallet.js +7 -0
  32. package/package.json +42 -42
  33. package/src/api/math.ts +78 -3
  34. package/src/api/parser.ts +57 -22
  35. package/src/constants/assets.ts +91 -65
  36. package/src/constants/general.ts +30 -2
  37. package/src/constants/pools.ts +91 -28
  38. package/src/index.ts +23 -2
  39. package/src/prices/PricesCollector.ts +9 -5
  40. package/src/rewards/EvaaRewards.ts +23 -0
  41. package/src/rewards/JettonMinter.ts +113 -0
  42. package/src/rewards/JettonWallet.ts +77 -0
  43. package/src/rewards/RewardMaster.ts +110 -0
  44. package/src/rewards/RewardUser.ts +90 -0
  45. package/src/types/Master.ts +1 -1
  46. package/src/types/MasterRewards.ts +13 -0
  47. package/src/types/User.ts +13 -3
  48. package/src/types/UserRewards.ts +10 -0
  49. package/src/utils/sha256BigInt.ts +8 -0
  50. package/src/utils/userJettonWallet.ts +39 -33
  51. package/CHANGELOG.md +0 -240
  52. package/dist/config.d.ts +0 -1
  53. package/dist/config.js +0 -4
  54. package/dist/constants.d.ts +0 -69
  55. package/dist/constants.js +0 -83
  56. package/dist/types/Common.d.ts +0 -14
  57. package/dist/utils/priceUtils.d.ts +0 -55
  58. package/dist/utils/priceUtils.js +0 -117
  59. /package/dist/types/{Common.js → MasterRewards.js} +0 -0
@@ -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
- assets_1.UTON_MAINNET // announce
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
- assets_1.TON_MAINNET,
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
- assets_1.TON_MAINNET,
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
- assets_1.TON_MAINNET,
60
- assets_1.USDT_MAINNET,
61
- assets_1.CATI_MAINNET,
62
- assets_1.NOT_MAINNET,
63
- assets_1.DOGS_MAINNET
64
- ],
65
- lendingCode: general_1.LENDING_CODE
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('bfe9a30221db4dff4c17e55d985e0b13a8f597bbb28002f311dc4429dad1ca95', '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.TESTNET_POOL_CONFIG = exports.MAINNET_POOL_CONFIG = exports.MASTER_CONSTANTS = exports.FEES = exports.OPCODES = exports.LENDING_CODE = exports.TESTNET_VERSION = exports.EVAA_MASTER_TESTNET = exports.MAINNET_VERSION = exports.EVAA_MASTER_MAINNET = exports.BalanceChangeType = exports.BalanceType = 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.BigMath = 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_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(userPrincipals: Dictionary<bigint, bigint>, retries?: number, timeout?: number): Promise<Prices>;
10
- getPricesForWithdraw(userPrincipals: Dictionary<bigint, bigint>, withdrawAsset: PoolAssetConfig, collateralToDebt?: boolean, retries?: number, timeout?: number): Promise<Prices>;
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(userPrincipals, retries = 1, timeout = 3000) {
40
- const assets = userPrincipals.keys().map(x => __classPrivateFieldGet(this, _PricesCollector_poolConfig, "f").poolAssetsConfig.find(asset => asset.assetId == x));
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(userPrincipals, withdrawAsset, collateralToDebt = false, retries = 1, timeout = 3000) {
47
- let assets = userPrincipals.keys().map(x => __classPrivateFieldGet(this, _PricesCollector_poolConfig, "f").poolAssetsConfig.find(asset => asset.assetId == x));
48
- if ((0, math_1.checkNotInDebtAtAll)(userPrincipals) && userPrincipals.has(withdrawAsset.assetId) && !collateralToDebt) {
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
+ }