@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,103 +1,107 @@
1
- import { Address, Cell } from "@ton/core";
2
- import { PoolAssetConfig } from "../types/Master";
3
- import { sha256Hash } from "../utils/sha256BigInt";
4
- import { JETTON_WALLET_STANDART_CODE, JETTON_WALLET_STANDART_CODE_TESTNET, NULL_ADDRESS } from "./general";
1
+ import { Address, Cell } from '@ton/core';
2
+ import { PoolAssetConfig } from '../types/Master';
3
+ import { sha256Hash } from '../utils/sha256BigInt';
4
+ import { JETTON_WALLET_STANDART_CODE, JETTON_WALLET_STANDART_CODE_TESTNET, NULL_ADDRESS } from './general';
5
5
 
6
6
  export const ASSET_ID = {
7
- TON: sha256Hash('TON'),
8
- USDT: sha256Hash('USDT'),
9
- jUSDT: sha256Hash('jUSDT'),
10
- jUSDC: sha256Hash('jUSDC'),
11
- stTON: sha256Hash('stTON'),
12
- tsTON: sha256Hash('tsTON'),
13
- uTON: sha256Hash('uTON'),
7
+ TON: sha256Hash('TON'),
8
+ USDT: sha256Hash('USDT'),
9
+ jUSDT: sha256Hash('jUSDT'),
10
+ jUSDC: sha256Hash('jUSDC'),
11
+ stTON: sha256Hash('stTON'),
12
+ tsTON: sha256Hash('tsTON'),
13
+ uTON: sha256Hash('uTON'),
14
+ tgBTC: sha256Hash('tgBTC'),
14
15
 
15
16
  // LP
16
17
  TONUSDT_DEDUST: sha256Hash('TONUSDT_DEDUST'),
17
18
  TONUSDT_STONFI: sha256Hash('TONUSDT_STONFI'),
18
- TON_STORM: sha256Hash('TON_STORM'),
19
- USDT_STORM: sha256Hash('USDT_STORM'),
19
+ TON_STORM: sha256Hash('TON_STORM'),
20
+ USDT_STORM: sha256Hash('USDT_STORM'),
20
21
 
21
22
  // ALTS
22
- NOT: sha256Hash('NOT'),
23
- DOGS: sha256Hash('DOGS'),
24
- CATI: sha256Hash('CATI'),
23
+ NOT: sha256Hash('NOT'),
24
+ DOGS: sha256Hash('DOGS'),
25
+ CATI: sha256Hash('CATI'),
26
+
27
+ // Testnet assets
28
+ EUSDT: sha256Hash('EUSDT'),
25
29
  };
26
30
 
27
- export const UNDEFINED_ASSET: PoolAssetConfig = {
31
+ export const UNDEFINED_ASSET: PoolAssetConfig = {
28
32
  name: 'undefined_asset',
29
33
  assetId: -1n,
30
- jettonMasterAddress: NULL_ADDRESS, // fake
31
- jettonWalletCode: Cell.EMPTY
32
- }
34
+ jettonMasterAddress: NULL_ADDRESS, // fake
35
+ jettonWalletCode: Cell.EMPTY,
36
+ };
33
37
 
34
- export const TON_MAINNET: PoolAssetConfig = {
38
+ export const TON_MAINNET: PoolAssetConfig = {
35
39
  name: 'TON',
36
40
  assetId: ASSET_ID.TON,
37
- jettonMasterAddress: NULL_ADDRESS, // fake
38
- jettonWalletCode: Cell.EMPTY
39
- }
41
+ jettonMasterAddress: NULL_ADDRESS, // fake
42
+ jettonWalletCode: Cell.EMPTY,
43
+ };
40
44
  export const TON_TESTNET = TON_MAINNET;
41
45
 
42
- export const JUSDT_MAINNET: PoolAssetConfig = {
46
+ export const JUSDT_MAINNET: PoolAssetConfig = {
43
47
  name: 'jUSDT',
44
48
  assetId: ASSET_ID.jUSDT,
45
49
  jettonMasterAddress: Address.parse('EQBynBO23ywHy_CgarY9NK9FTz0yDsG82PtcbSTQgGoXwiuA'),
46
- jettonWalletCode: JETTON_WALLET_STANDART_CODE
47
- }
50
+ jettonWalletCode: JETTON_WALLET_STANDART_CODE,
51
+ };
48
52
 
49
- export const JUSDC_MAINNET: PoolAssetConfig = {
53
+ export const JUSDC_MAINNET: PoolAssetConfig = {
50
54
  name: 'jUSDC',
51
55
  assetId: ASSET_ID.jUSDC,
52
56
  jettonMasterAddress: Address.parse('EQB-MPwrd1G6WKNkLz_VnV6WqBDd142KMQv-g1O-8QUA3728'),
53
- jettonWalletCode: JETTON_WALLET_STANDART_CODE
54
- }
57
+ jettonWalletCode: JETTON_WALLET_STANDART_CODE,
58
+ };
55
59
 
56
- export const STTON_MAINNET: PoolAssetConfig = {
60
+ export const STTON_MAINNET: PoolAssetConfig = {
57
61
  name: 'stTON',
58
62
  assetId: ASSET_ID.stTON,
59
63
  jettonMasterAddress: Address.parse('EQDNhy-nxYFgUqzfUzImBEP67JqsyMIcyk2S5_RwNNEYku0k'),
60
64
  jettonWalletCode: Cell.fromBase64(
61
- 'te6cckECEgEAA2IAART/APSkE/S88sgLAQIBYgIDAgLMBAUAG6D2BdqJofQB9IH0gahhAgHUBgcCASAJCgHPCDHAJJfBOAB0NMDAXGwlRNfA/AN4PpA+kAx+gAxcdch+gAx+gAwc6m0AALTHyGCEA+KfqW6lTE0WfAK4CGCEBeNRRm6ljFERAPwC+AhghBZXwe8upUxNFnwDOAUXwTABOMCMIQP8vCAIABE+kQwwADy4U2AAfO1E0PoA+kD6QNQwECNfAwGCCJiWgKFtgBByIm6zIJFxkXDiA8jLBVAGzxZQBPoCy2oDk1jMAZEw4gHJAfsAAgFYCwwCAUgQEQHxAPTP/oA+kAh8AHtRND6APpA+kDUMFE2oVIqxwXy4sEowv/y4sJUNEJwVCATVBQDyFAE+gJYzxYBzxbMySLIywES9AD0AMsAySD5AHB0yMsCygfL/8nQBPpA9AQx+gAg10nCAPLixHeAGMjLBVAIzxZw+gIXy2sTzIA0C9ztRND6APpA+kDUMAjTP/oAUVGgBfpA+kBTW8cFVHNtcFQgE1QUA8hQBPoCWM8WAc8WzMkiyMsBEvQA9ADLAMn5AHB0yMsCygfL/8nQUA3HBRyx8uLDCvoAUaihggiYloBmtgihggjk4cCgGKEnlxBJEDg3XwTjDSXXCwGAODwCeghAXjUUZyMsfGcs/UAf6AiLPFlAGzxYl+gJQA88WyVAFzCORcpFx4lAIqBOgggpiWgCgFLzy4sUEyYBA+wAQI8hQBPoCWM8WAc8WzMntVABwUnmgGKGCEHNi0JzIyx9SMMs/WPoCUAfPFlAHzxbJcYAQyMsFJM8WUAb6AhXLahTMyXH7ABAkECMAfMMAI8IAsI4hghDVMnbbcIAQyMsFUAjPFlAE+gIWy2oSyx8Syz/JcvsAkzVsIeIDyFAE+gJYzxYBzxbMye1UAMkMO1E0PoA+kD6QNQwBtM/+gAwUUShUjfHBfLiwSXC//LiwgSCC5OHAL7y4sWCEHvdl97Iyx8Uyz9Y+gIhzxbJcYAYyMsFJM8WcPoCy2rMyYBA+wBAE8hQBPoCWM8WAc8WzMntVIACBIAg1yHtRND6APpA+kDUMATTHyGCEBeNRRm6AoIQe92X3roSsfLgyNM/MfoAMBOgUCPIUAT6AljPFgHPFszJ7VSBpMmqD'
62
- )
63
- }
65
+ 'te6cckECEgEAA2IAART/APSkE/S88sgLAQIBYgIDAgLMBAUAG6D2BdqJofQB9IH0gahhAgHUBgcCASAJCgHPCDHAJJfBOAB0NMDAXGwlRNfA/AN4PpA+kAx+gAxcdch+gAx+gAwc6m0AALTHyGCEA+KfqW6lTE0WfAK4CGCEBeNRRm6ljFERAPwC+AhghBZXwe8upUxNFnwDOAUXwTABOMCMIQP8vCAIABE+kQwwADy4U2AAfO1E0PoA+kD6QNQwECNfAwGCCJiWgKFtgBByIm6zIJFxkXDiA8jLBVAGzxZQBPoCy2oDk1jMAZEw4gHJAfsAAgFYCwwCAUgQEQHxAPTP/oA+kAh8AHtRND6APpA+kDUMFE2oVIqxwXy4sEowv/y4sJUNEJwVCATVBQDyFAE+gJYzxYBzxbMySLIywES9AD0AMsAySD5AHB0yMsCygfL/8nQBPpA9AQx+gAg10nCAPLixHeAGMjLBVAIzxZw+gIXy2sTzIA0C9ztRND6APpA+kDUMAjTP/oAUVGgBfpA+kBTW8cFVHNtcFQgE1QUA8hQBPoCWM8WAc8WzMkiyMsBEvQA9ADLAMn5AHB0yMsCygfL/8nQUA3HBRyx8uLDCvoAUaihggiYloBmtgihggjk4cCgGKEnlxBJEDg3XwTjDSXXCwGAODwCeghAXjUUZyMsfGcs/UAf6AiLPFlAGzxYl+gJQA88WyVAFzCORcpFx4lAIqBOgggpiWgCgFLzy4sUEyYBA+wAQI8hQBPoCWM8WAc8WzMntVABwUnmgGKGCEHNi0JzIyx9SMMs/WPoCUAfPFlAHzxbJcYAQyMsFJM8WUAb6AhXLahTMyXH7ABAkECMAfMMAI8IAsI4hghDVMnbbcIAQyMsFUAjPFlAE+gIWy2oSyx8Syz/JcvsAkzVsIeIDyFAE+gJYzxYBzxbMye1UAMkMO1E0PoA+kD6QNQwBtM/+gAwUUShUjfHBfLiwSXC//LiwgSCC5OHAL7y4sWCEHvdl97Iyx8Uyz9Y+gIhzxbJcYAYyMsFJM8WcPoCy2rMyYBA+wBAE8hQBPoCWM8WAc8WzMntVIACBIAg1yHtRND6APpA+kDUMATTHyGCEBeNRRm6AoIQe92X3roSsfLgyNM/MfoAMBOgUCPIUAT6AljPFgHPFszJ7VSBpMmqD',
66
+ ),
67
+ };
64
68
 
65
- export const TSTON_MAINNET: PoolAssetConfig = {
69
+ export const TSTON_MAINNET: PoolAssetConfig = {
66
70
  name: 'tsTON',
67
71
  assetId: ASSET_ID.tsTON,
68
72
  jettonMasterAddress: Address.parse('EQC98_qAmNEptUtPc7W6xdHh_ZHrBUFpw5Ft_IzNU20QAJav'),
69
73
  jettonWalletCode: Cell.fromBase64(
70
- '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'
71
- )
72
- }
74
+ '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',
75
+ ),
76
+ };
73
77
 
74
- export const USDT_MAINNET: PoolAssetConfig = {
78
+ export const USDT_MAINNET: PoolAssetConfig = {
75
79
  name: 'USDT',
76
80
  assetId: ASSET_ID.USDT,
77
81
  jettonMasterAddress: Address.parse('EQCxE6mUtQJKFnGfaROTKOt1lZbDiiX1kCixRv7Nw2Id_sDs'),
78
82
  jettonWalletCode: Cell.fromBoc(
79
83
  Buffer.from(
80
- 'b5ee9c7241020f010003d1000114ff00f4a413f4bcf2c80b01020162050202012004030021bc508f6a2686981fd007d207d2068af81c0027bfd8176a2686981fd007d207d206899fc152098402f8d001d0d3030171b08e48135f038020d721ed44d0d303fa00fa40fa40d104d31f01840f218210178d4519ba0282107bdd97deba12b1f2f48040d721fa003012a0401303c8cb0358fa0201cf1601cf16c9ed54e0fa40fa4031fa0031f401fa0031fa00013170f83a02d31f012082100f8a7ea5ba8e85303459db3ce0330c0602d0228210178d4519ba8e84325adb3ce034218210595f07bcba8e843101db3ce032208210eed236d3ba8e2f30018040d721d303d1ed44d0d303fa00fa40fa40d1335142c705f2e04a403303c8cb0358fa0201cf1601cf16c9ed54e06c218210d372158cbadc840ff2f0080701f2ed44d0d303fa00fa40fa40d106d33f0101fa00fa40f401d15141a15288c705f2e04926c2fff2afc882107bdd97de01cb1f5801cb3f01fa0221cf1658cf16c9c8801801cb0526cf1670fa02017158cb6accc903f839206e943081169fde718102f270f8380170f836a0811a7770f836a0bcf2b0028050fb00030903f4ed44d0d303fa00fa40fa40d12372b0c002f26d07d33f0101fa005141a004fa40fa4053bac705f82a5464e070546004131503c8cb0358fa0201cf1601cf16c921c8cb0113f40012f400cb00c9f9007074c8cb02ca07cbffc9d0500cc7051bb1f2e04a09fa0021925f04e30d26d70b01c000b393306c33e30d55020b0a09002003c8cb0358fa0201cf1601cf16c9ed54007a5054a1f82fa07381040982100966018070f837b60972fb02c8801001cb055005cf1670fa027001cb6a8210d53276db01cb1f5801cb3fc9810082fb00590060c882107362d09c01cb1f2501cb3f5004fa0258cf1658cf16c9c8801001cb0524cf1658fa02017158cb6accc98011fb0001f203d33f0101fa00fa4021fa4430c000f2e14ded44d0d303fa00fa40fa40d15309c7052471b0c00021b1f2ad522bc705500ab1f2e0495115a120c2fff2aff82a54259070546004131503c8cb0358fa0201cf1601cf16c921c8cb0113f40012f400cb00c920f9007074c8cb02ca07cbffc9d004fa40f401fa00200d019820d70b009ad74bc00101c001b0f2b19130e2c88210178d451901cb1f500a01cb3f5008fa0223cf1601cf1626fa025007cf16c9c8801801cb055004cf1670fa024063775003cb6bccccc945370e00b42191729171e2f839206e938124279120e2216e94318128739101e25023a813a0738103a370f83ca00270f83612a00170f836a07381040982100966018070f837a0bcf2b0048050fb005803c8cb0358fa0201cf1601cf16c9ed5401f9319e',
81
- 'hex'
82
- )
84
+ 'b5ee9c7241020f010003d1000114ff00f4a413f4bcf2c80b01020162050202012004030021bc508f6a2686981fd007d207d2068af81c0027bfd8176a2686981fd007d207d206899fc152098402f8d001d0d3030171b08e48135f038020d721ed44d0d303fa00fa40fa40d104d31f01840f218210178d4519ba0282107bdd97deba12b1f2f48040d721fa003012a0401303c8cb0358fa0201cf1601cf16c9ed54e0fa40fa4031fa0031f401fa0031fa00013170f83a02d31f012082100f8a7ea5ba8e85303459db3ce0330c0602d0228210178d4519ba8e84325adb3ce034218210595f07bcba8e843101db3ce032208210eed236d3ba8e2f30018040d721d303d1ed44d0d303fa00fa40fa40d1335142c705f2e04a403303c8cb0358fa0201cf1601cf16c9ed54e06c218210d372158cbadc840ff2f0080701f2ed44d0d303fa00fa40fa40d106d33f0101fa00fa40f401d15141a15288c705f2e04926c2fff2afc882107bdd97de01cb1f5801cb3f01fa0221cf1658cf16c9c8801801cb0526cf1670fa02017158cb6accc903f839206e943081169fde718102f270f8380170f836a0811a7770f836a0bcf2b0028050fb00030903f4ed44d0d303fa00fa40fa40d12372b0c002f26d07d33f0101fa005141a004fa40fa4053bac705f82a5464e070546004131503c8cb0358fa0201cf1601cf16c921c8cb0113f40012f400cb00c9f9007074c8cb02ca07cbffc9d0500cc7051bb1f2e04a09fa0021925f04e30d26d70b01c000b393306c33e30d55020b0a09002003c8cb0358fa0201cf1601cf16c9ed54007a5054a1f82fa07381040982100966018070f837b60972fb02c8801001cb055005cf1670fa027001cb6a8210d53276db01cb1f5801cb3fc9810082fb00590060c882107362d09c01cb1f2501cb3f5004fa0258cf1658cf16c9c8801001cb0524cf1658fa02017158cb6accc98011fb0001f203d33f0101fa00fa4021fa4430c000f2e14ded44d0d303fa00fa40fa40d15309c7052471b0c00021b1f2ad522bc705500ab1f2e0495115a120c2fff2aff82a54259070546004131503c8cb0358fa0201cf1601cf16c921c8cb0113f40012f400cb00c920f9007074c8cb02ca07cbffc9d004fa40f401fa00200d019820d70b009ad74bc00101c001b0f2b19130e2c88210178d451901cb1f500a01cb3f5008fa0223cf1601cf1626fa025007cf16c9c8801801cb055004cf1670fa024063775003cb6bccccc945370e00b42191729171e2f839206e938124279120e2216e94318128739101e25023a813a0738103a370f83ca00270f83612a00170f836a07381040982100966018070f837a0bcf2b0048050fb005803c8cb0358fa0201cf1601cf16c9ed5401f9319e',
85
+ 'hex',
86
+ ),
83
87
  )[0],
84
- }
88
+ };
85
89
 
86
- export const JUSDT_TESTNET: PoolAssetConfig = {
90
+ export const JUSDT_TESTNET: PoolAssetConfig = {
87
91
  name: 'jUSDT',
88
92
  assetId: ASSET_ID.jUSDT,
89
93
  jettonMasterAddress: Address.parse('kQBe4gtSQMxM5RpMYLr4ydNY72F8JkY-icZXG1NJcsju8XM7'),
90
- jettonWalletCode: JETTON_WALLET_STANDART_CODE_TESTNET
91
- }
94
+ jettonWalletCode: JETTON_WALLET_STANDART_CODE_TESTNET,
95
+ };
92
96
 
93
- export const JUSDC_TESTNET: PoolAssetConfig = {
97
+ export const JUSDC_TESTNET: PoolAssetConfig = {
94
98
  name: 'jUSDC',
95
99
  assetId: ASSET_ID.jUSDC,
96
100
  jettonMasterAddress: Address.parse('kQDaY5yUatYnHei73HBqRX_Ox9LK2XnR7XuCY9MFC2INbfYI'),
97
- jettonWalletCode: JETTON_WALLET_STANDART_CODE_TESTNET
98
- }
101
+ jettonWalletCode: JETTON_WALLET_STANDART_CODE_TESTNET,
102
+ };
99
103
 
100
- export const STTON_TESTNET: PoolAssetConfig = {
104
+ export const STTON_TESTNET: PoolAssetConfig = {
101
105
  name: 'stTON',
102
106
  assetId: ASSET_ID.stTON,
103
107
  jettonMasterAddress: Address.parse('kQC3Duw3dg8k98xf5S7Bm7YOWVJ5QW8hm3iLqFfJfa_g9h07'),
@@ -107,7 +111,7 @@ export const STTON_TESTNET: PoolAssetConfig = {
107
111
  'hex',
108
112
  ),
109
113
  )[0],
110
- }
114
+ };
111
115
 
112
116
  export const TONUSDT_DEDUST_MAINNET: PoolAssetConfig = {
113
117
  name: 'TONUSDT_DEDUST',
@@ -119,9 +123,9 @@ export const TONUSDT_DEDUST_MAINNET: PoolAssetConfig = {
119
123
  'hex',
120
124
  ),
121
125
  )[0],
122
- }
126
+ };
123
127
 
124
- export const TON_STORM_MAINNET: PoolAssetConfig = {
128
+ export const TON_STORM_MAINNET: PoolAssetConfig = {
125
129
  name: 'TON_STORM',
126
130
  assetId: ASSET_ID.TON_STORM,
127
131
  jettonMasterAddress: Address.parse('EQCNY2AQ3ZDYwJAqx_nzl9i9Xhd_Ex7izKJM6JTxXRnO6n1F'),
@@ -131,10 +135,9 @@ export const TON_STORM_MAINNET: PoolAssetConfig = {
131
135
  'hex',
132
136
  ),
133
137
  )[0],
138
+ };
134
139
 
135
- }
136
-
137
- export const USDT_STORM_MAINNET: PoolAssetConfig = {
140
+ export const USDT_STORM_MAINNET: PoolAssetConfig = {
138
141
  name: 'USDT_STORM',
139
142
  assetId: ASSET_ID.USDT_STORM,
140
143
  jettonMasterAddress: Address.parse('EQCup4xxCulCcNwmOocM9HtDYPU8xe0449tQLp6a-5BLEegW'),
@@ -144,9 +147,9 @@ export const USDT_STORM_MAINNET: PoolAssetConfig = {
144
147
  'hex',
145
148
  ),
146
149
  )[0],
147
- }
150
+ };
148
151
 
149
- export const CATI_MAINNET: PoolAssetConfig = {
152
+ export const CATI_MAINNET: PoolAssetConfig = {
150
153
  name: 'CATI',
151
154
  assetId: ASSET_ID.CATI,
152
155
  jettonMasterAddress: Address.parse('EQD-cvR0Nz6XAyRBvbhz-abTrRC6sI5tvHvvpeQraV9UAAD7'),
@@ -156,9 +159,9 @@ export const CATI_MAINNET: PoolAssetConfig = {
156
159
  'hex',
157
160
  ),
158
161
  )[0],
159
- }
162
+ };
160
163
 
161
- export const DOGS_MAINNET: PoolAssetConfig = {
164
+ export const DOGS_MAINNET: PoolAssetConfig = {
162
165
  name: 'DOGS',
163
166
  assetId: ASSET_ID.DOGS,
164
167
  jettonMasterAddress: Address.parse('EQCvxJy4eG8hyHBFsZ7eePxrRsUQSFE_jpptRAYBmcG_DOGS'),
@@ -168,9 +171,9 @@ export const DOGS_MAINNET: PoolAssetConfig = {
168
171
  'hex',
169
172
  ),
170
173
  )[0],
171
- }
174
+ };
172
175
 
173
- export const NOT_MAINNET: PoolAssetConfig = {
176
+ export const NOT_MAINNET: PoolAssetConfig = {
174
177
  name: 'NOT',
175
178
  assetId: ASSET_ID.NOT,
176
179
  jettonMasterAddress: Address.parse('EQAvlWFDxGF2lXm67y4yzC17wYKD9A0guwPkMs1gOsM__NOT'),
@@ -180,9 +183,9 @@ export const NOT_MAINNET: PoolAssetConfig = {
180
183
  'hex',
181
184
  ),
182
185
  )[0],
183
- }
186
+ };
184
187
 
185
- export const UTON_MAINNET: PoolAssetConfig = {
188
+ export const UTON_MAINNET: PoolAssetConfig = {
186
189
  name: 'uTON',
187
190
  assetId: ASSET_ID.uTON,
188
191
  jettonMasterAddress: Address.parse('EQAfF5j3JMIpZlLmACv7Ub7RH7WmiVMuV4ivcgNYHvNnqHTz'),
@@ -192,5 +195,28 @@ export const UTON_MAINNET: PoolAssetConfig = {
192
195
  'hex',
193
196
  ),
194
197
  )[0],
195
- }
198
+ };
196
199
 
200
+ export const TGBTC_TESTNET: PoolAssetConfig = {
201
+ name: 'tgBTC',
202
+ assetId: ASSET_ID.tgBTC,
203
+ jettonMasterAddress: Address.parse('kQDoy1cUAbGq253vwfoPcqSloODVAWkDBniR12PJFUHnK6Yf'),
204
+ jettonWalletCode: Cell.fromBoc(
205
+ Buffer.from(
206
+ 'b5ee9c72010210010003ac000114ff00f4a413f4bcf2c80b01020162020302f8d001d0d3030171b08e48135f038020d721ed44d0d303fa00fa40fa40d104d31f01840f218210178d4519ba0282107bdd97deba12b1f2f48040d721fa003012a0401303c8cb0358fa0201cf1601cf16c9ed54e0fa40fa4031fa0031f401fa0031fa00013170f83a02d31f012082100f8a7ea5ba8e85303459db3ce03304050201200e0f01f603d33f0101fa00fa4021fa4430c000f2e14ded44d0d303fa00fa40fa40d1521ac705f2e0495115a120c2fff2aff82a54259070546004131503c8cb0358fa0201cf1601cf16c921c8cb0113f40012f400cb00c920f9007074c8cb02ca07cbffc9d004fa40f401fa002020d70b009ad74bc00101c001b0f2b19130e206025c228210178d4519ba8e84325adb3ce034218210595f07bcba8e843101db3ce0135f038210d372158cbadc840ff2f008090174c88210178d451901cb1f500a01cb3f5008fa0223cf1601cf1626fa025007cf16c9c8801801cb055004cf1670fa024063775003cb6bccccc945370700bc2191729171e2f839206e938123289120e2216e94318127109101e2f82f5005a05023a812a0738103a370f83ca00170f836a00170f836a07381040982100966018070f837a0bcf2b0048050fb005803c8cb0358fa0201cf1601cf16c9ed5403e6ed44d0d303fa00fa40fa40d107d33f0101fa005141a004fa40fa4053bac705f82a5464e070546004131503c8cb0358fa0201cf1601cf16c921c8cb0113f40012f400cb00c9f9007074c8cb02ca07cbffc9d0500cc7051bb1f2e04a09fa0021925f04e30d26d70b01c000b393306c33e30d55020a0b0c01d2ed44d0d303fa00fa40fa40d106d33f0101fa00fa40f404d120206ef271d0d74bc000018100f8beb0f2b15152a15249c705f2e04927c2fff2afc882107bdd97de01cb1f500301cb3f01fa0222cf1601cf1612f400c9c8801801cb0526cf1670fa02017158cb6accc9030d0060c882107362d09c01cb1f2501cb3f5004fa0258cf1658cf16c9c8801001cb0524cf1658fa02017158cb6accc98011fb00007a5054a1f82fa07381040982100966018070f837b60972fb02c8801001cb055005cf1670fa027001cb6a8210d53276db01cb1f5801cb3fc9810082fb0059002003c8cb0358fa0201cf1601cf16c9ed54006cf839206e9430811770de728106f170f8380170f836a0811b5870f836a0bcf2b0028050fb000303c8cb0358fa0201cf1601cf16c9ed540027bfd8176a2686981fd007d207d206899fc15209840021bc508f6a2686981fd007d207d2068af81c',
207
+ 'hex',
208
+ ),
209
+ )[0],
210
+ };
211
+
212
+ export const EUSDT_TESTNET: PoolAssetConfig = {
213
+ name: 'EUSDT',
214
+ assetId: ASSET_ID.EUSDT,
215
+ jettonMasterAddress: Address.parse('kQBe4gtSQMxM5RpMYLr4ydNY72F8JkY-icZXG1NJcsju8XM7'),
216
+ jettonWalletCode: Cell.fromBoc(
217
+ Buffer.from(
218
+ 'b5ee9c7201021101000323000114ff00f4a413f4bcf2c80b0102016202030202cc0405001ba0f605da89a1f401f481f481a8610201d40607020120080900c30831c02497c138007434c0c05c6c2544d7c0fc03383e903e900c7e800c5c75c87e800c7e800c1cea6d0000b4c7e08403e29fa954882ea54c4d167c0278208405e3514654882ea58c511100fc02b80d60841657c1ef2ea4d67c02f817c12103fcbc2000113e910c1c2ebcb853600201200a0b0083d40106b90f6a2687d007d207d206a1802698fc1080bc6a28ca9105d41083deecbef09dd0958f97162e99f98fd001809d02811e428027d012c678b00e78b6664f6aa401f1503d33ffa00fa4021f001ed44d0fa00fa40fa40d4305136a1522ac705f2e2c128c2fff2e2c254344270542013541403c85004fa0258cf1601cf16ccc922c8cb0112f400f400cb00c920f9007074c8cb02ca07cbffc9d004fa40f40431fa0020d749c200f2e2c4778018c8cb055008cf1670fa0217cb6b13cc80c0201200d0e009e8210178d4519c8cb1f19cb3f5007fa0222cf165006cf1625fa025003cf16c95005cc2391729171e25008a813a08209c9c380a014bcf2e2c504c98040fb001023c85004fa0258cf1601cf16ccc9ed5402f73b51343e803e903e90350c0234cffe80145468017e903e9014d6f1c1551cdb5c150804d50500f214013e809633c58073c5b33248b232c044bd003d0032c0327e401c1d3232c0b281f2fff274140371c1472c7cb8b0c2be80146a2860822625a019ad822860822625a028062849e5c412440e0dd7c138c34975c2c0600f1000d73b51343e803e903e90350c01f4cffe803e900c145468549271c17cb8b049f0bffcb8b08160824c4b402805af3cb8b0e0841ef765f7b232c7c572cfd400fe8088b3c58073c5b25c60063232c14933c59c3e80b2dab33260103ec01004f214013e809633c58073c5b3327b552000705279a018a182107362d09cc8cb1f5230cb3f58fa025007cf165007cf16c9718010c8cb0524cf165006fa0215cb6a14ccc971fb0010241023007cc30023c200b08e218210d53276db708010c8cb055008cf165004fa0216cb6a12cb1f12cb3fc972fb0093356c21e203c85004fa0258cf1601cf16ccc9ed54',
219
+ 'hex',
220
+ ),
221
+ )[0],
222
+ };
@@ -1,7 +1,6 @@
1
1
  import { Address, Cell, toNano } from '@ton/core';
2
2
  import { OracleNFT } from '../types/Master';
3
3
 
4
-
5
4
  const ASSET_PRICE_SCALE = BigInt(1e9);
6
5
 
7
6
  export const MASTER_CONSTANTS = {
@@ -22,13 +21,17 @@ export const NULL_ADDRESS = Address.parse('UQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
22
21
 
23
22
  export const EVAA_MASTER_MAINNET = Address.parse('EQC8rUZqR_pWV1BylWUlPNBzyiTYVoBEmQkMIQDZXICfnuRr');
24
23
  export const MAINNET_VERSION = 6;
25
- export const EVAA_MASTER_TESTNET = Address.parse('EQDLsg3w-iBj26Gww7neYoJAxiT2t77Zo8ro56b0yuHsPp3C');
24
+ export const EVAA_MASTER_TESTNET = Address.parse('kQBae_Pt-NcxX0yhNnsYyK-Kh6ZBnIUQhxheKTvNLTgZf7AV');
26
25
  export const TESTNET_VERSION = 0;
27
26
  export const EVAA_LP_MAINNET = Address.parse('EQBIlZX2URWkXCSg3QF2MJZU-wC5XkBoLww-hdWk2G37Jc6N');
28
27
  export const EVAA_LP_MAINNET_VERSION = 3;
29
28
  export const EVAA_ALTS_MAINNET = Address.parse('EQANURVS3fhBO9bivig34iyJQi97FhMbpivo1aUEAS2GYSu-');
30
29
  export const EVAA_ALTS_MAINNET_VERSION = 0;
31
30
 
31
+ export const EVAA_REWARDS_MASTER_TESTNET = Address.parse('EQCnp0iRGcfDJAvnKhAEN9sB-nPYSPuc83Ff4y75s8AtoSW1');
32
+ export const EVAA_USDT_REWARDS_MASTER_MAINNET = Address.parse('EQD22Fhylp1tX-xoVX81aMTSJNPV8j9klwApTLgjGmofISVD');
33
+ export const EVAA_TON_REWARDS_MASTER_MAINNET = Address.parse('EQDM_gdrntBg4fy5Rg9DgDF0AUu3FYoqxHEOsHNIC4_DTDuC');
34
+
32
35
  export const ORACLES_MAINNET: OracleNFT[] = [
33
36
  {id: 0, address: '0xd3a8c0b9fd44fd25a49289c631e3ac45689281f2f8cf0744400b4c65bed38e5d', pubkey: Buffer.from('b404f4a2ebb62f2623b370c89189748a0276c071965b1646b996407f10d72eb9', 'hex') },
34
37
  {id: 1, address: '0x2c21cabdaa89739de16bde7bc44e86401fac334a3c7e55305fe5e7563043e191', pubkey: Buffer.from('9ad115087520d91b6b45d6a8521eb4616ee6914af07fabdc2e9d1826dbb17078', 'hex') },
@@ -54,12 +57,32 @@ export const JETTON_WALLET_STANDART_CODE = Cell.fromBase64(
54
57
  export const JETTON_WALLET_STANDART_CODE_TESTNET = Cell.fromBase64(
55
58
  'te6cckECEQEAAyMAART/APSkE/S88sgLAQIBYgIDAgLMBAUAG6D2BdqJofQB9IH0gahhAgHUBgcCASAICQDDCDHAJJfBOAB0NMDAXGwlRNfA/AM4PpA+kAx+gAxcdch+gAx+gAwc6m0AALTH4IQD4p+pVIgupUxNFnwCeCCEBeNRRlSILqWMUREA/AK4DWCEFlfB7y6k1nwC+BfBIQP8vCAAET6RDBwuvLhTYAIBIAoLAIPUAQa5D2omh9AH0gfSBqGAJpj8EIC8aijKkQXUEIPe7L7wndCVj5cWLpn5j9ABgJ0CgR5CgCfQEsZ4sA54tmZPaqQB8VA9M/+gD6QCHwAe1E0PoA+kD6QNQwUTahUirHBfLiwSjC//LiwlQ0QnBUIBNUFAPIUAT6AljPFgHPFszJIsjLARL0APQAywDJIPkAcHTIywLKB8v/ydAE+kD0BDH6ACDXScIA8uLEd4AYyMsFUAjPFnD6AhfLaxPMgMAgEgDQ4AnoIQF41FGcjLHxnLP1AH+gIizxZQBs8WJfoCUAPPFslQBcwjkXKRceJQCKgToIIJycOAoBS88uLFBMmAQPsAECPIUAT6AljPFgHPFszJ7VQC9ztRND6APpA+kDUMAjTP/oAUVGgBfpA+kBTW8cFVHNtcFQgE1QUA8hQBPoCWM8WAc8WzMkiyMsBEvQA9ADLAMn5AHB0yMsCygfL/8nQUA3HBRyx8uLDCvoAUaihggiYloBmtgihggiYloCgGKEnlxBJEDg3XwTjDSXXCwGAPEADXO1E0PoA+kD6QNQwB9M/+gD6QDBRUaFSSccF8uLBJ8L/8uLCBYIJMS0AoBa88uLDghB73ZfeyMsfFcs/UAP6AiLPFgHPFslxgBjIywUkzxZw+gLLaszJgED7AEATyFAE+gJYzxYBzxbMye1UgAHBSeaAYoYIQc2LQnMjLH1Iwyz9Y+gJQB88WUAfPFslxgBDIywUkzxZQBvoCFctqFMzJcfsAECQQIwB8wwAjwgCwjiGCENUydttwgBDIywVQCM8WUAT6AhbLahLLHxLLP8ly+wCTNWwh4gPIUAT6AljPFgHPFszJ7VSV6u3X');
56
59
 
60
+ export const EVAA_REWARDS_MASTER_CODE_TESTNET = Cell.fromBoc(
61
+ Buffer.from(
62
+ 'b5ee9c7241020e01000386000114ff00f4a413f4bcf2c80b01020162020b046ad03322c700925f03e0d0d3030171b0925f03e0fa403002d31fd33f715230bae302725230bae30282107362d09c5230bae3027413ba0304070800c46c21ed44d0fa40fa00fa40d4d401d001d1fa40d3ffd3ffd11034102307fa40308103e8820afaf0801abe19f2f48103ea5196c70519f2f48103ee8b0212c705f2f41036453304c85004cf16cbff12cbffc9c85005cf165003fa0258cf16ccccc9ed5402fe6c22ed44d0fa40fa00fa40d4d401d001d1fa40d3ffd3ffd11034102307fa40fa003021ed44d0fa40fa00fa40d4d401d001d1fa40d3ffd3ffd11034102335355bc8f828cf1613cbffcbffc9c85003cf1670fa0212ccc97020c8cb0113f400f400cb00c9f9007074c8cb02ca07cbffc9d08103ea51c1c7051cf2f45306bce302050600466c810173c8cb1fcb3f01fa02c9718018c8cb055003cf1670fa0212cb6accc98040fb0001d23a8b3544f4e8f9025220ba8e16385288708018c8cb0558cf1658fa02cb6ac98040fb008e3b22544a030a702082100f8a7ea5c8cb1f13cb3f5004fa0222cf1658cf16cb0021fa02cb1fc9718018c8cb055003cf1670fa0212cb6accc98040fb00e25037a110365e40010a00ec6c21ed44d0fa40fa00fa40d4d401d001d1fa40d3ffd3ffd1103410238103e8820afaf08052a0bef2f48b3544f4e8f9025220ba993738068209c9c380a18e11388103ea5192c70519f2f405fa00301056e213a010364515503304c85004cf16cbff12cbffc9c85005cf165003fa0258cf16ccccc9ed5402ea8f6ced44d0fa40fa00fa40d4d401d001d1fa40d3ffd3ffd11034102308fa40fa00308103e8821005f5e1001cbe1bf2f48103ea51b7c7051bf2f48103ed5395bbf2f48b3544f4e8f9025210ba8e16365279708018c8cb0558cf1658fa02cb6ac98040fb00e30e5026a14615503304e05f04840ff2f0090a00745468281b702082100f8a7ea5c8cb1f13cb3f5004fa0222cf1658cf16cb0021fa02cb1fc9718018c8cb055003cf1670fa0212cb6accc98040fb000038c85004cf16cbff12cbffc9c85005cf165003fa0258cf16ccccc9ed540201580c0d0039bbc24ed44d0fa40fa00fa40d4d401d001d1fa40d3ffd3ffd1103410238009fb87b6ed44d0fa40fa00fa40d4d401d001d1fa40d3ffd3ffd11034102335355bc8f828cf1613cbffcbffc9c85003cf1670fa0212ccc97020c8cb0113f400f400cb00c9f9007074c8cb02ca07cbffc9d0872ac1c8c',
63
+ 'hex',
64
+ ),
65
+ )[0];
66
+ export const EVAA_REWARDS_MASTER_CODE_MAINNET = EVAA_REWARDS_MASTER_CODE_TESTNET;
67
+
68
+ export const EVAA_REWARDS_USER_CODE_TESTNET = Cell.fromBoc(
69
+ Buffer.from(
70
+ 'b5ee9c724102060100014e000114ff00f4a413f4bcf2c80b01020162020502f8d03322c700925f03e0d0d3030171b0925f03e0fa403002d31fd33f725230ba8ed63233ed44d0fa40fa00d401d001d1fa40d3ffd3ffd1058308d718d430d08103e8821005f5e10019be18f2f48103e927f901541027f910f2f405fa40fa00308103eaf82813c70512f2f48103ec5313bcf2f45203a15006e0313273ba030400b8ed44d0fa40fa00d401d001d1fa40d3ffd3ffd110235f0372c8cb1f13cb3f01cf1658fa02c9718018c8cb055003cf1670fa0212cb6accc9820a625a0070fb02810080fb005521c85003cf16cbffcbffc9c85003cf1601fa02ccc9ed5400888e3ced44d0fa40fa00d401d001d1fa40d3ffd3ffd105fa00308103ea5173c70517f2f45025a14143c85003cf16cbffcbffc9c85003cf1601fa02ccc9ed54e05b840ff2f0002ba17849da89a1f481f401a803a003a3f481a7ffa7ffa333f41908',
71
+ 'hex',
72
+ ),
73
+ )[0];
74
+ export const EVAA_REWARDS_USER_CODE_MAINNET = EVAA_REWARDS_USER_CODE_TESTNET;
75
+
57
76
  export const OPCODES = {
58
77
  SUPPLY: 0x1,
59
78
  WITHDRAW: 0x2,
60
79
  LIQUIDATE: 0x3,
61
80
  JETTON_TRANSFER: 0xf8a7ea5,
62
81
  ONCHAIN_GETTER: 0x9998,
82
+ REWARD_CLAIM: 0x2,
83
+ REWARD_TON_TOP_UP: 0x7362d09c,
84
+ REWARD_JETTON_MINT: 0x178d4519,
85
+ REWARD_JETTON_TRANSFER: 0x0f8a7ea5,
63
86
  };
64
87
 
65
88
  export const FEES = {
@@ -70,4 +93,9 @@ export const FEES = {
70
93
  LIQUIDATION: toNano('0.8'),
71
94
  LIQUIDATION_JETTON: toNano('1'),
72
95
  LIQUIDATION_JETTON_FWD: toNano('0.8'),
96
+ REWARD_MASTER_TON_TOP_UP: toNano('0.03'),
97
+ REWARD_MASTER_DEPLOY: toNano('0.05'),
98
+ REWARD_MASTER_WITHDRAW: toNano('0.1'),
99
+ REWARD_USER_DEPLOY: toNano('0.05'),
100
+ REWARD_USER_CLAIM: toNano('0.1'),
73
101
  };
@@ -1,6 +1,46 @@
1
- import { CATI_MAINNET, DOGS_MAINNET, JUSDC_MAINNET, JUSDC_TESTNET, JUSDT_MAINNET, JUSDT_TESTNET, NOT_MAINNET, STTON_MAINNET, STTON_TESTNET, TON_MAINNET, TON_STORM_MAINNET, TONUSDT_DEDUST_MAINNET, TSTON_MAINNET, USDT_MAINNET, USDT_STORM_MAINNET, UTON_MAINNET } from "./assets";
2
- import { PoolConfig } from "../types/Master";
3
- import { EVAA_MASTER_MAINNET, EVAA_MASTER_TESTNET, LENDING_CODE, MAINNET_VERSION, MASTER_CONSTANTS, TESTNET_VERSION, EVAA_LP_MAINNET, EVAA_LP_MAINNET_VERSION, ORACLES_MAINNET, ORACLES_LP, ORACLES_TESTNET, EVAA_ALTS_MAINNET, EVAA_ALTS_MAINNET_VERSION, ORACLES_ALTS } from "./general";
1
+ import { Address } from '@ton/core';
2
+ import { PoolConfig } from '../types/Master';
3
+ import { EvaaRewardsConfig } from '../types/MasterRewards';
4
+ import {
5
+ CATI_MAINNET,
6
+ DOGS_MAINNET,
7
+ EUSDT_TESTNET,
8
+ JUSDC_MAINNET,
9
+ JUSDT_MAINNET,
10
+ NOT_MAINNET,
11
+ STTON_MAINNET,
12
+ TGBTC_TESTNET,
13
+ TON_MAINNET,
14
+ TON_STORM_MAINNET,
15
+ TON_TESTNET,
16
+ TONUSDT_DEDUST_MAINNET,
17
+ TSTON_MAINNET,
18
+ USDT_MAINNET,
19
+ USDT_STORM_MAINNET,
20
+ } from './assets';
21
+ import {
22
+ EVAA_ALTS_MAINNET,
23
+ EVAA_ALTS_MAINNET_VERSION,
24
+ EVAA_LP_MAINNET,
25
+ EVAA_LP_MAINNET_VERSION,
26
+ EVAA_MASTER_MAINNET,
27
+ EVAA_MASTER_TESTNET,
28
+ EVAA_REWARDS_MASTER_CODE_MAINNET,
29
+ EVAA_REWARDS_MASTER_CODE_TESTNET,
30
+ EVAA_REWARDS_MASTER_TESTNET,
31
+ EVAA_REWARDS_USER_CODE_MAINNET,
32
+ EVAA_REWARDS_USER_CODE_TESTNET,
33
+ EVAA_TON_REWARDS_MASTER_MAINNET,
34
+ EVAA_USDT_REWARDS_MASTER_MAINNET,
35
+ LENDING_CODE,
36
+ MAINNET_VERSION,
37
+ MASTER_CONSTANTS,
38
+ ORACLES_ALTS,
39
+ ORACLES_LP,
40
+ ORACLES_MAINNET,
41
+ ORACLES_TESTNET,
42
+ TESTNET_VERSION,
43
+ } from './general';
4
44
 
5
45
  export const MAINNET_POOL_CONFIG: PoolConfig = {
6
46
  masterAddress: EVAA_MASTER_MAINNET,
@@ -15,9 +55,9 @@ export const MAINNET_POOL_CONFIG: PoolConfig = {
15
55
  STTON_MAINNET,
16
56
  TSTON_MAINNET,
17
57
  USDT_MAINNET,
18
- UTON_MAINNET // announce
58
+ // UTON_MAINNET // announce
19
59
  ],
20
- lendingCode: LENDING_CODE
60
+ lendingCode: LENDING_CODE,
21
61
  };
22
62
 
23
63
  export const TESTNET_POOL_CONFIG: PoolConfig = {
@@ -26,13 +66,8 @@ export const TESTNET_POOL_CONFIG: PoolConfig = {
26
66
  masterConstants: MASTER_CONSTANTS,
27
67
  oracles: ORACLES_TESTNET,
28
68
  minimalOracles: 3,
29
- poolAssetsConfig: [
30
- TON_MAINNET,
31
- JUSDT_TESTNET,
32
- JUSDC_TESTNET,
33
- STTON_TESTNET
34
- ],
35
- lendingCode: LENDING_CODE
69
+ poolAssetsConfig: [TON_TESTNET, TGBTC_TESTNET],
70
+ lendingCode: LENDING_CODE,
36
71
  };
37
72
 
38
73
  export const MAINNET_LP_POOL_CONFIG: PoolConfig = {
@@ -41,14 +76,8 @@ export const MAINNET_LP_POOL_CONFIG: PoolConfig = {
41
76
  masterConstants: MASTER_CONSTANTS,
42
77
  oracles: ORACLES_LP,
43
78
  minimalOracles: 3,
44
- poolAssetsConfig: [
45
- TON_MAINNET,
46
- USDT_MAINNET,
47
- TONUSDT_DEDUST_MAINNET,
48
- TON_STORM_MAINNET,
49
- USDT_STORM_MAINNET
50
- ],
51
- lendingCode: LENDING_CODE
79
+ poolAssetsConfig: [TON_MAINNET, USDT_MAINNET, TONUSDT_DEDUST_MAINNET, TON_STORM_MAINNET, USDT_STORM_MAINNET],
80
+ lendingCode: LENDING_CODE,
52
81
  };
53
82
 
54
83
  export const MAINNET_ALTS_POOL_CONFIG: PoolConfig = {
@@ -57,12 +86,46 @@ export const MAINNET_ALTS_POOL_CONFIG: PoolConfig = {
57
86
  masterConstants: MASTER_CONSTANTS,
58
87
  oracles: ORACLES_ALTS,
59
88
  minimalOracles: 3,
60
- poolAssetsConfig: [
61
- TON_MAINNET,
62
- USDT_MAINNET,
63
- CATI_MAINNET,
64
- NOT_MAINNET,
65
- DOGS_MAINNET
66
- ],
67
- lendingCode: LENDING_CODE
89
+ poolAssetsConfig: [TON_MAINNET, USDT_MAINNET, CATI_MAINNET, NOT_MAINNET, DOGS_MAINNET],
90
+ lendingCode: LENDING_CODE,
91
+ };
92
+
93
+ export const TESTNET_MASTER_REWARD_CONFIG: EvaaRewardsConfig = {
94
+ adminAddress: EVAA_REWARDS_MASTER_TESTNET,
95
+ evaaMasterAddress: new Address(0, Buffer.alloc(32, 0)),
96
+ rewardMasterCode: EVAA_REWARDS_MASTER_CODE_TESTNET,
97
+ rewardUserCode: EVAA_REWARDS_USER_CODE_TESTNET,
98
+ asset: TON_TESTNET,
99
+ availableReward: 0,
100
+ publicKey: Buffer.from('c38be45e033419b49cd22c97fbd23610fbc851a931208f8b4a1817dd11cb63ac', 'hex'), // adminAddress publicKey
101
+ };
102
+
103
+ export const TESTNET_MASTER_EUSDT_REWARD_CONFIG: EvaaRewardsConfig = {
104
+ adminAddress: EVAA_REWARDS_MASTER_TESTNET,
105
+ evaaMasterAddress: new Address(0, Buffer.alloc(32, 0)),
106
+ rewardMasterCode: EVAA_REWARDS_MASTER_CODE_TESTNET,
107
+ rewardUserCode: EVAA_REWARDS_USER_CODE_TESTNET,
108
+ asset: EUSDT_TESTNET,
109
+ availableReward: 0,
110
+ publicKey: Buffer.from('c38be45e033419b49cd22c97fbd23610fbc851a931208f8b4a1817dd11cb63ac', 'hex'), // adminAddress publicKey
111
+ };
112
+
113
+ export const MAINNET_MASTER_TON_REWARD_CONFIG: EvaaRewardsConfig = {
114
+ adminAddress: EVAA_TON_REWARDS_MASTER_MAINNET,
115
+ evaaMasterAddress: new Address(0, Buffer.alloc(32, 0)),
116
+ rewardMasterCode: EVAA_REWARDS_MASTER_CODE_MAINNET,
117
+ rewardUserCode: EVAA_REWARDS_USER_CODE_MAINNET,
118
+ asset: TON_MAINNET,
119
+ availableReward: 0,
120
+ publicKey: Buffer.from('bfe9a30221db4dff4c17e55d985e0b13a8f597bbb28002f311dc4429dad1ca95', 'hex'), // adminAddress publicKey
121
+ };
122
+
123
+ export const MAINNET_MASTER_USDT_REWARD_CONFIG: EvaaRewardsConfig = {
124
+ adminAddress: EVAA_USDT_REWARDS_MASTER_MAINNET,
125
+ evaaMasterAddress: new Address(0, Buffer.alloc(32, 0)),
126
+ rewardMasterCode: EVAA_REWARDS_MASTER_CODE_MAINNET,
127
+ rewardUserCode: EVAA_REWARDS_USER_CODE_MAINNET,
128
+ asset: USDT_MAINNET,
129
+ availableReward: 0,
130
+ publicKey: Buffer.from('9813725d6cead1c9bbc0e24b21d4fc62a7fa8ac4bb01b6758df30169a71dba67', 'hex'), // adminAddress publicKey
68
131
  };
package/src/index.ts CHANGED
@@ -14,7 +14,10 @@ export {
14
14
  calculateLiquidationData,
15
15
  predictHealthFactor,
16
16
  calculateHealthParams,
17
+ calculateInterestWithSupplyBorrow,
18
+ predictAPY,
17
19
  BigMath,
20
+ getAssetLiquidityMinusReserves,
18
21
  } from './api/math';
19
22
 
20
23
  export {
@@ -55,6 +58,15 @@ export {
55
58
  } from './contracts/MasterContract';
56
59
  export { EvaaUser } from './contracts/UserContract';
57
60
 
61
+ // Rewards contracts wrappers
62
+ export { RewardMaster } from './rewards/RewardMaster';
63
+ export { type EvaaRewardsConfig } from './types/MasterRewards';
64
+ export { RewardUser } from './rewards/RewardUser';
65
+ export { type EvaaUserRewardsConfig } from './types/UserRewards';
66
+ export { JettonMinter as RewardJettonMinter, type JettonMinterConfig, type MintMessage } from './rewards/JettonMinter';
67
+ export { JettonWallet as RewardJettonWallet, type JettonWalletConfig } from './rewards/JettonWallet';
68
+ export { EvaaUserRewards } from './rewards/EvaaRewards';
69
+
58
70
  // Types
59
71
  export {
60
72
  UpgradeConfig,
@@ -95,14 +107,23 @@ export {
95
107
  LENDING_CODE,
96
108
  OPCODES,
97
109
  FEES,
98
- MASTER_CONSTANTS
110
+ MASTER_CONSTANTS,
111
+ EVAA_REWARDS_MASTER_TESTNET,
112
+ EVAA_REWARDS_MASTER_CODE_TESTNET,
113
+ EVAA_REWARDS_USER_CODE_TESTNET,
114
+ EVAA_REWARDS_MASTER_CODE_MAINNET,
115
+ EVAA_REWARDS_USER_CODE_MAINNET,
99
116
  } from './constants/general';
100
117
 
101
118
  export {
102
119
  MAINNET_POOL_CONFIG,
103
120
  TESTNET_POOL_CONFIG,
104
121
  MAINNET_LP_POOL_CONFIG,
105
- MAINNET_ALTS_POOL_CONFIG
122
+ MAINNET_ALTS_POOL_CONFIG,
123
+ // Reward Pools
124
+ TESTNET_MASTER_REWARD_CONFIG,
125
+ MAINNET_MASTER_TON_REWARD_CONFIG,
126
+ MAINNET_MASTER_USDT_REWARD_CONFIG,
106
127
  } from './constants/pools';
107
128
 
108
129
  export {
@@ -29,8 +29,8 @@ export class PricesCollector {
29
29
 
30
30
  // TODO Make UserData class and incapsulate raw bigintegers
31
31
 
32
- async getPricesForLiquidate(userPrincipals: Dictionary<bigint, bigint>, retries: number = 1, timeout: number = 3000): Promise<Prices> {
33
- const assets = userPrincipals.keys().map(x => this.#poolConfig.poolAssetsConfig.find(asset => asset.assetId == x));
32
+ async getPricesForLiquidate(realPrincipals: Dictionary<bigint, bigint>, retries: number = 1, timeout: number = 3000): Promise<Prices> {
33
+ const assets = this.#filterEmptyPrincipalsAndAssets(realPrincipals);
34
34
  if (assets.includes(undefined)) {
35
35
  throw new Error("User from another pool");
36
36
  }
@@ -38,9 +38,9 @@ export class PricesCollector {
38
38
  }
39
39
 
40
40
 
41
- async getPricesForWithdraw(userPrincipals: Dictionary<bigint, bigint>, withdrawAsset: PoolAssetConfig, collateralToDebt = false, retries: number = 1, timeout: number = 3000): Promise<Prices> {
42
- let assets = userPrincipals.keys().map(x => this.#poolConfig.poolAssetsConfig.find(asset => asset.assetId == x));
43
- if (checkNotInDebtAtAll(userPrincipals) && userPrincipals.has(withdrawAsset.assetId) && !collateralToDebt) {
41
+ async getPricesForWithdraw(realPrincipals: Dictionary<bigint, bigint>, withdrawAsset: PoolAssetConfig, collateralToDebt = false, retries: number = 1, timeout: number = 3000): Promise<Prices> {
42
+ let assets = this.#filterEmptyPrincipalsAndAssets(realPrincipals);
43
+ if (checkNotInDebtAtAll(realPrincipals) && (realPrincipals.get(withdrawAsset.assetId) ?? 0n) > 0n && !collateralToDebt) {
44
44
  return new Prices(Dictionary.empty<bigint, bigint>(), Cell.EMPTY);
45
45
  }
46
46
 
@@ -132,4 +132,8 @@ export class PricesCollector {
132
132
  this.#prices = this.#prices.filter(verifyPricesTimestamp());
133
133
  return this.#prices.length;
134
134
  }
135
+
136
+ #filterEmptyPrincipalsAndAssets(principals: Dictionary<bigint, bigint>) {
137
+ return principals.keys().filter(x => principals.get(x)! != 0n).map(x => this.#poolConfig.poolAssetsConfig.find(asset => asset.assetId == x));
138
+ }
135
139
  }
@@ -0,0 +1,23 @@
1
+ import { Address, Contract } from '@ton/ton';
2
+ import { EvaaRewardsConfig } from '../types/MasterRewards';
3
+ import { RewardUser } from './RewardUser';
4
+
5
+ export class EvaaUserRewards implements Contract {
6
+ readonly address: Address;
7
+ constructor(
8
+ readonly userAddress: Address,
9
+ readonly config: Omit<EvaaRewardsConfig, 'userAddress'>,
10
+ ) {
11
+ this.address = this.userAddress;
12
+ }
13
+
14
+ openContract() {
15
+ return RewardUser.createFromConfig({
16
+ asset: this.config.asset,
17
+ rewardMasterAddress: this.config.adminAddress,
18
+ rewardUserCode: this.config.rewardUserCode,
19
+ userAddress: this.userAddress,
20
+ publicKey: this.config.publicKey,
21
+ });
22
+ }
23
+ }