@evaafi/sdk 0.9.0 → 0.9.2

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 (132) hide show
  1. package/dist/api/feeds.d.ts +16 -24
  2. package/dist/api/feeds.js +22 -49
  3. package/dist/api/math.d.ts +1 -1
  4. package/dist/api/math.js +55 -38
  5. package/dist/api/parser.d.ts +2 -2
  6. package/dist/api/parser.js +3 -3
  7. package/dist/api/parsers/PythOracleParser.d.ts +3 -2
  8. package/dist/api/parsers/PythOracleParser.js +2 -1
  9. package/dist/api/prices.d.ts +1 -0
  10. package/dist/api/prices.js +2 -1
  11. package/dist/constants/assets/assetId.d.ts +3 -1
  12. package/dist/constants/assets/assetId.js +5 -1
  13. package/dist/constants/assets/mainnet.d.ts +2 -0
  14. package/dist/constants/assets/mainnet.js +13 -1
  15. package/dist/constants/general/index.d.ts +25 -11
  16. package/dist/constants/general/index.js +15 -1
  17. package/dist/constants/general/mainnet.d.ts +1 -0
  18. package/dist/constants/general/mainnet.js +2 -1
  19. package/dist/constants/pools/mainnet.d.ts +4 -0
  20. package/dist/constants/pools/mainnet.js +45 -28
  21. package/dist/constants/pools/testnet.js +14 -6
  22. package/dist/contracts/AbstractMaster.d.ts +239 -127
  23. package/dist/contracts/AbstractMaster.js +101 -16
  24. package/dist/contracts/ClassicMaster.d.ts +12 -12
  25. package/dist/contracts/PythMaster.d.ts +41 -24
  26. package/dist/contracts/PythMaster.js +61 -76
  27. package/dist/contracts/PythOracle.d.ts +16 -0
  28. package/dist/contracts/PythOracle.js +19 -0
  29. package/dist/contracts/index.d.ts +1 -0
  30. package/dist/contracts/index.js +1 -0
  31. package/dist/index.d.ts +1 -1
  32. package/dist/index.js +1 -1
  33. package/dist/{prices → oracles}/Types.d.ts +1 -4
  34. package/dist/oracles/collectors/AbstractCollector.d.ts +10 -0
  35. package/dist/oracles/collectors/AbstractCollector.js +6 -0
  36. package/dist/oracles/collectors/ClassicCollector.d.ts +22 -0
  37. package/dist/oracles/collectors/ClassicCollector.js +192 -0
  38. package/dist/oracles/collectors/PythCollector.d.ts +27 -0
  39. package/dist/oracles/collectors/PythCollector.js +252 -0
  40. package/dist/oracles/collectors/index.d.ts +3 -0
  41. package/dist/oracles/collectors/index.js +19 -0
  42. package/dist/{prices → oracles}/index.d.ts +2 -3
  43. package/dist/{prices → oracles}/index.js +2 -3
  44. package/dist/oracles/prices/AbstractPrices.d.ts +33 -0
  45. package/dist/oracles/prices/AbstractPrices.js +40 -0
  46. package/dist/oracles/prices/ClassicPrices.d.ts +19 -0
  47. package/dist/oracles/prices/ClassicPrices.js +48 -0
  48. package/dist/oracles/prices/PythPrices.d.ts +18 -0
  49. package/dist/oracles/prices/PythPrices.js +32 -0
  50. package/dist/oracles/prices/index.d.ts +3 -0
  51. package/dist/oracles/prices/index.js +19 -0
  52. package/dist/{prices → oracles}/utils.d.ts +7 -1
  53. package/dist/{prices → oracles}/utils.js +10 -1
  54. package/dist/rewards/RewardMaster.d.ts +1 -0
  55. package/dist/rewards/RewardUser.d.ts +1 -0
  56. package/dist/types/Master.d.ts +5 -5
  57. package/dist/types/MasterRewards.d.ts +1 -0
  58. package/dist/types/UserRewards.d.ts +1 -0
  59. package/dist/utils/fivaUtils.d.ts +2 -0
  60. package/dist/utils/fivaUtils.js +19 -0
  61. package/dist/utils/sha256BigInt.d.ts +1 -0
  62. package/dist/utils/userJettonWallet.js +15 -1
  63. package/package.json +2 -3
  64. package/src/api/feeds.ts +24 -60
  65. package/src/api/math.ts +118 -90
  66. package/src/api/parser.ts +5 -5
  67. package/src/api/parsers/PythOracleParser.ts +6 -2
  68. package/src/api/prices.ts +2 -1
  69. package/src/constants/assets/assetId.ts +7 -1
  70. package/src/constants/assets/mainnet.ts +24 -0
  71. package/src/constants/general/index.ts +16 -1
  72. package/src/constants/general/mainnet.ts +1 -0
  73. package/src/constants/pools/mainnet.ts +42 -38
  74. package/src/constants/pools/testnet.ts +17 -8
  75. package/src/contracts/AbstractMaster.ts +272 -144
  76. package/src/contracts/ClassicMaster.ts +12 -12
  77. package/src/contracts/PythMaster.ts +130 -123
  78. package/src/contracts/PythOracle.ts +20 -0
  79. package/src/contracts/index.ts +2 -0
  80. package/src/index.ts +1 -1
  81. package/src/{prices → oracles}/Types.ts +0 -5
  82. package/src/oracles/collectors/AbstractCollector.ts +22 -0
  83. package/src/oracles/collectors/ClassicCollector.ts +263 -0
  84. package/src/oracles/collectors/PythCollector.ts +358 -0
  85. package/src/oracles/collectors/index.ts +3 -0
  86. package/src/{prices → oracles}/index.ts +2 -3
  87. package/src/oracles/prices/AbstractPrices.ts +59 -0
  88. package/src/oracles/prices/ClassicPrices.ts +52 -0
  89. package/src/oracles/prices/PythPrices.ts +40 -0
  90. package/src/oracles/prices/index.ts +3 -0
  91. package/src/{prices → oracles}/utils.ts +12 -1
  92. package/src/types/Master.ts +4 -6
  93. package/src/utils/fivaUtils.ts +19 -0
  94. package/src/utils/userJettonWallet.ts +18 -1
  95. package/dist/api/pyth.d.ts +0 -16
  96. package/dist/api/pyth.js +0 -35
  97. package/dist/constants/assets.d.ts +0 -48
  98. package/dist/constants/assets.js +0 -176
  99. package/dist/constants/general.d.ts +0 -67
  100. package/dist/constants/general.js +0 -75
  101. package/dist/constants/pools.d.ts +0 -13
  102. package/dist/constants/pools.js +0 -120
  103. package/dist/contracts/MasterContract.d.ts +0 -156
  104. package/dist/contracts/MasterContract.js +0 -260
  105. package/dist/prices/Oracle.interface.d.ts +0 -9
  106. package/dist/prices/Oracle.interface.js +0 -2
  107. package/dist/prices/Prices.d.ts +0 -11
  108. package/dist/prices/Prices.js +0 -53
  109. package/dist/prices/PricesCollector.d.ts +0 -22
  110. package/dist/prices/PricesCollector.js +0 -146
  111. package/dist/prices/PythCollector.d.ts +0 -22
  112. package/dist/prices/PythCollector.js +0 -217
  113. package/src/prices/Oracle.interface.ts +0 -18
  114. package/src/prices/Prices.ts +0 -45
  115. package/src/prices/PricesCollector.ts +0 -169
  116. package/src/prices/PythCollector.ts +0 -294
  117. /package/dist/{prices → oracles}/Types.js +0 -0
  118. /package/dist/{prices → oracles}/constants.d.ts +0 -0
  119. /package/dist/{prices → oracles}/constants.js +0 -0
  120. /package/dist/{prices → oracles}/sources/Backend.d.ts +0 -0
  121. /package/dist/{prices → oracles}/sources/Backend.js +0 -0
  122. /package/dist/{prices → oracles}/sources/Icp.d.ts +0 -0
  123. /package/dist/{prices → oracles}/sources/Icp.js +0 -0
  124. /package/dist/{prices → oracles}/sources/PriceSource.d.ts +0 -0
  125. /package/dist/{prices → oracles}/sources/PriceSource.js +0 -0
  126. /package/dist/{prices → oracles}/sources/index.d.ts +0 -0
  127. /package/dist/{prices → oracles}/sources/index.js +0 -0
  128. /package/src/{prices → oracles}/constants.ts +0 -0
  129. /package/src/{prices → oracles}/sources/Backend.ts +0 -0
  130. /package/src/{prices → oracles}/sources/Icp.ts +0 -0
  131. /package/src/{prices → oracles}/sources/PriceSource.ts +0 -0
  132. /package/src/{prices → oracles}/sources/index.ts +0 -0
@@ -27,6 +27,7 @@ export const EVAA_PYTH_TOB_VERSION = 0;
27
27
 
28
28
  export const EVAA_USDT_REWARDS_MASTER_MAINNET = Address.parse('EQD22Fhylp1tX-xoVX81aMTSJNPV8j9klwApTLgjGmofISVD');
29
29
  export const EVAA_TON_REWARDS_MASTER_MAINNET = Address.parse('EQDM_gdrntBg4fy5Rg9DgDF0AUu3FYoqxHEOsHNIC4_DTDuC');
30
+ export const EVAA_EVAA_REWARDS_MASTER_MAINNET = Address.parse('EQBLjRyn69hqC9WAVjqjSjF0nnxxWBW-Atx_3T7dCF-tBdnM');
30
31
 
31
32
  export const ORACLES_MAINNET: ExtendedEvaaOracle[] = [
32
33
  {
@@ -1,25 +1,19 @@
1
+ import { HexString } from '@pythnetwork/hermes-client';
1
2
  import { Address, Dictionary } from '@ton/core';
2
- import {
3
- EVAA_JUSDT_PRICE_FEED_ID,
4
- EVAA_TSTON_PRICE_FEED_ID,
5
- EVAA_TSUSDE_PRICE_FEED_ID,
6
- packConnectedFeeds,
7
- PYTH_TON_PRICE_FEED_ID,
8
- PYTH_TSTON_PRICE_FEED_ID,
9
- PYTH_TSUSDE_PRICE_FEED_ID,
10
- PYTH_USDT_PRICE_FEED_ID,
11
- } from '../../api/feeds';
12
- import { DefaultPythPriceSourcesConfig, PricesCollector, PythCollector } from '../../prices';
3
+ import { FEED_ID, FeedMapItem } from '../../api/feeds';
4
+ import { ClassicCollector, DefaultPythPriceSourcesConfig, PythCollector } from '../../oracles';
13
5
  import { PoolConfig } from '../../types/Master';
14
6
  import { EvaaRewardsConfig } from '../../types/MasterRewards';
15
7
  import {
16
8
  ASSET_ID,
17
9
  CATI_MAINNET,
18
10
  DOGS_MAINNET,
11
+ EVAA_MAINNET,
19
12
  JUSDC_MAINNET,
20
13
  JUSDT_MAINNET,
21
14
  NOT_MAINNET,
22
15
  PT_tsUSDe_01Sep2025_MAINNET,
16
+ PT_tsUSDe_18Dec2025_MAINNET,
23
17
  STTON_MAINNET,
24
18
  TON_MAINNET,
25
19
  TON_STORM_MAINNET,
@@ -34,6 +28,7 @@ import {
34
28
  import {
35
29
  EVAA_ALTS_MAINNET,
36
30
  EVAA_ALTS_MAINNET_VERSION,
31
+ EVAA_EVAA_REWARDS_MASTER_MAINNET,
37
32
  EVAA_LP_MAINNET,
38
33
  EVAA_LP_MAINNET_VERSION,
39
34
  EVAA_MASTER_MAINNET,
@@ -68,9 +63,15 @@ export const MAINNET_POOL_ASSETS_CONFIG = [
68
63
  TSUSDE_MAINNET,
69
64
  ];
70
65
 
71
- const MAINNET_STABLE_POOL_ASSETS_CONFIG = [USDT_MAINNET, USDE_MAINNET, TSUSDE_MAINNET, PT_tsUSDe_01Sep2025_MAINNET];
66
+ export const MAINNET_STABLE_POOL_ASSETS_CONFIG = [
67
+ USDT_MAINNET,
68
+ USDE_MAINNET,
69
+ TSUSDE_MAINNET,
70
+ PT_tsUSDe_01Sep2025_MAINNET,
71
+ PT_tsUSDe_18Dec2025_MAINNET,
72
+ ];
72
73
 
73
- const MAINNET_LP_POOL_ASSETS_CONFIG = [
74
+ export const MAINNET_LP_POOL_ASSETS_CONFIG = [
74
75
  TON_MAINNET,
75
76
  USDT_MAINNET,
76
77
  TONUSDT_DEDUST_MAINNET,
@@ -79,27 +80,22 @@ const MAINNET_LP_POOL_ASSETS_CONFIG = [
79
80
  TONUSDT_STONFI_MAINNET,
80
81
  ];
81
82
 
82
- const MAINNET_ALTS_POOL_ASSETS_CONFIG = [TON_MAINNET, USDT_MAINNET, CATI_MAINNET, NOT_MAINNET, DOGS_MAINNET];
83
+ export const MAINNET_ALTS_POOL_ASSETS_CONFIG = [TON_MAINNET, USDT_MAINNET, CATI_MAINNET, NOT_MAINNET, DOGS_MAINNET];
83
84
 
84
85
  export const MAINNET_POOL_CONFIG: PoolConfig = {
85
86
  masterAddress: EVAA_MASTER_MAINNET,
86
87
  masterVersion: MAINNET_VERSION,
87
88
  masterConstants: MASTER_CONSTANTS,
88
- oracles: new PythCollector({
89
+ collector: new PythCollector({
89
90
  pythConfig: DefaultPythPriceSourcesConfig,
90
91
  poolAssetsConfig: MAINNET_POOL_ASSETS_CONFIG,
91
92
  pythOracle: {
92
- feedsMap: Dictionary.empty<bigint, Buffer>()
93
- .set(BigInt(PYTH_TON_PRICE_FEED_ID), packConnectedFeeds(ASSET_ID.TON, 0n))
94
- .set(BigInt(PYTH_USDT_PRICE_FEED_ID), packConnectedFeeds(ASSET_ID.USDT, 0n))
95
- .set(
96
- BigInt(PYTH_TSTON_PRICE_FEED_ID),
97
- packConnectedFeeds(EVAA_TSTON_PRICE_FEED_ID, BigInt(PYTH_TON_PRICE_FEED_ID)),
98
- )
99
- .set(
100
- BigInt(PYTH_TSUSDE_PRICE_FEED_ID),
101
- packConnectedFeeds(EVAA_TSUSDE_PRICE_FEED_ID, BigInt(PYTH_USDT_PRICE_FEED_ID)),
102
- ),
93
+ feedsMap: new Map<HexString, FeedMapItem>([
94
+ [FEED_ID.TON, { assetId: ASSET_ID.TON, feedId: '0x0' }],
95
+ [FEED_ID.USDT, { assetId: ASSET_ID.USDT, feedId: '0x0' }],
96
+ [FEED_ID.tsTON, { assetId: ASSET_ID.tsTON, feedId: FEED_ID.TON }],
97
+ [FEED_ID.tsUSDe, { assetId: ASSET_ID.tsUSDe, feedId: FEED_ID.USDT }],
98
+ ]),
103
99
  pythAddress: PYTH_ORACLE_MAINNET,
104
100
  allowedRefTokens: Dictionary.empty<bigint, bigint>()
105
101
  .set(ASSET_ID.jUSDT, ASSET_ID.USDT)
@@ -116,7 +112,7 @@ export const MAINNET_STABLE_POOL_CONFIG: PoolConfig = {
116
112
  masterAddress: EVAA_STABLE_MAINNET,
117
113
  masterVersion: STABLE_VERSION,
118
114
  masterConstants: MASTER_CONSTANTS,
119
- oracles: new PricesCollector({
115
+ collector: new ClassicCollector({
120
116
  poolAssetsConfig: MAINNET_STABLE_POOL_ASSETS_CONFIG,
121
117
  minimalOracles: 3,
122
118
  evaaOracles: ORACLES_MAINNET,
@@ -129,7 +125,7 @@ export const MAINNET_LP_POOL_CONFIG: PoolConfig = {
129
125
  masterAddress: EVAA_LP_MAINNET,
130
126
  masterVersion: EVAA_LP_MAINNET_VERSION,
131
127
  masterConstants: MASTER_CONSTANTS,
132
- oracles: new PricesCollector({
128
+ collector: new ClassicCollector({
133
129
  poolAssetsConfig: MAINNET_LP_POOL_ASSETS_CONFIG,
134
130
  minimalOracles: 3,
135
131
  evaaOracles: ORACLES_LP,
@@ -142,7 +138,7 @@ export const MAINNET_ALTS_POOL_CONFIG: PoolConfig = {
142
138
  masterAddress: EVAA_ALTS_MAINNET,
143
139
  masterVersion: EVAA_ALTS_MAINNET_VERSION,
144
140
  masterConstants: MASTER_CONSTANTS,
145
- oracles: new PricesCollector({
141
+ collector: new ClassicCollector({
146
142
  poolAssetsConfig: MAINNET_ALTS_POOL_ASSETS_CONFIG,
147
143
  minimalOracles: 3,
148
144
  evaaOracles: ORACLES_ALTS,
@@ -157,18 +153,16 @@ export const MAINNET_PYTH_V8_TOB_POOL_CONFIG: PoolConfig = {
157
153
  masterAddress: EVAA_PYTH_TOB_MAINNET,
158
154
  masterVersion: EVAA_PYTH_TOB_VERSION,
159
155
  masterConstants: MASTER_CONSTANTS,
160
- oracles: new PythCollector({
156
+ collector: new PythCollector({
161
157
  pythConfig: DefaultPythPriceSourcesConfig,
162
158
  poolAssetsConfig: MAINNET_PYTH_V8_TOB_POOL_ASSETS_CONFIG,
163
159
  pythOracle: {
164
- feedsMap: Dictionary.empty<bigint, Buffer>()
165
- .set(BigInt(PYTH_TON_PRICE_FEED_ID), packConnectedFeeds(ASSET_ID.TON, 0n))
166
- .set(BigInt(PYTH_USDT_PRICE_FEED_ID), packConnectedFeeds(ASSET_ID.USDT, 0n)),
160
+ feedsMap: new Map<HexString, FeedMapItem>([
161
+ [FEED_ID.TON, { assetId: ASSET_ID.TON, feedId: '0x0' }],
162
+ [FEED_ID.USDT, { assetId: ASSET_ID.USDT, feedId: '0x0' }],
163
+ ]),
167
164
  pythAddress: PYTH_ORACLE_MAINNET,
168
- allowedRefTokens: Dictionary.empty<bigint, bigint>().set(
169
- BigInt(EVAA_JUSDT_PRICE_FEED_ID),
170
- BigInt(ASSET_ID.USDT),
171
- ),
165
+ allowedRefTokens: Dictionary.empty<bigint, bigint>().set(ASSET_ID.jUSDT, ASSET_ID.USDT),
172
166
  },
173
167
  }),
174
168
  poolAssetsConfig: MAINNET_PYTH_V8_TOB_POOL_ASSETS_CONFIG,
@@ -181,7 +175,7 @@ export const MAINNET_V8_TOB_POOL_CONFIG: PoolConfig = {
181
175
  masterAddress: EVAA_TOB_MAINNET,
182
176
  masterVersion: EVAA_TOB_VERSION,
183
177
  masterConstants: MASTER_CONSTANTS,
184
- oracles: new PricesCollector({
178
+ collector: new ClassicCollector({
185
179
  poolAssetsConfig: MAINNET_V8_TOB_POOL_ASSETS_CONFIG,
186
180
  minimalOracles: 3,
187
181
  evaaOracles: ORACLES_MAINNET,
@@ -210,6 +204,16 @@ export const MAINNET_MASTER_USDT_REWARD_CONFIG: EvaaRewardsConfig = {
210
204
  publicKey: Buffer.from('9813725d6cead1c9bbc0e24b21d4fc62a7fa8ac4bb01b6758df30169a71dba67', 'hex'), // adminAddress publicKey
211
205
  };
212
206
 
207
+ export const MAINNET_MASTER_EVAA_REWARD_CONFIG: EvaaRewardsConfig = {
208
+ adminAddress: EVAA_EVAA_REWARDS_MASTER_MAINNET,
209
+ evaaMasterAddress: new Address(0, Buffer.alloc(32, 0)),
210
+ rewardMasterCode: EVAA_REWARDS_MASTER_CODE_MAINNET,
211
+ rewardUserCode: EVAA_REWARDS_USER_CODE_MAINNET,
212
+ asset: EVAA_MAINNET,
213
+ availableReward: 0,
214
+ publicKey: Buffer.from('b8eb0e312a9aa6394edceef21573f2d45e7d7a616a924e33190bd52fa31c8bb1', 'hex'), // adminAddress publicKey
215
+ };
216
+
213
217
  export const ALL_MAINNET_POOLS: PoolConfig[] = [
214
218
  MAINNET_POOL_CONFIG,
215
219
  MAINNET_LP_POOL_CONFIG,
@@ -1,9 +1,10 @@
1
- import { Address } from '@ton/core';
2
- import { TESTNET_ALLOWED_REF_TOKENS, TESTNET_FEEDS_MAP } from '../../api/feeds';
3
- import { DefaultPythPriceSourcesConfig, PricesCollector, PythCollector } from '../../prices';
1
+ import { HexString } from '@pythnetwork/hermes-client';
2
+ import { Address, Dictionary } from '@ton/core';
3
+ import { FEED_ID, FeedMapItem } from '../../api/feeds';
4
+ import { ClassicCollector, DefaultPythPriceSourcesConfig, PythCollector } from '../../oracles';
4
5
  import { PoolConfig } from '../../types/Master';
5
6
  import { EvaaRewardsConfig } from '../../types/MasterRewards';
6
- import { EUSDT_TESTNET, JUSDC_TESTNET, TON_TESTNET } from '../assets';
7
+ import { ASSET_ID, EUSDT_TESTNET, JUSDC_TESTNET, TON_TESTNET } from '../assets';
7
8
  import {
8
9
  EVAA_MASTER_TESTNET_CLASSIC_TOB_AUDITED,
9
10
  EVAA_MASTER_TESTNET_PYTH_TOB_AUDITED,
@@ -26,12 +27,20 @@ export const TESTNET_PYTH_POOL_CONFIG_TOB_AUDITED: PoolConfig = {
26
27
  masterAddress: EVAA_MASTER_TESTNET_PYTH_TOB_AUDITED,
27
28
  masterVersion: TESTNET_PYTH_VERSION_TOB_AUDITED,
28
29
  masterConstants: MASTER_CONSTANTS,
29
- oracles: new PythCollector({
30
+ collector: new PythCollector({
30
31
  poolAssetsConfig: TESTNET_POOL_ASSETS_CONFIG_TOB_AUDITED,
31
32
  pythOracle: {
32
- feedsMap: TESTNET_FEEDS_MAP,
33
+ feedsMap: new Map<HexString, FeedMapItem>([
34
+ [
35
+ FEED_ID.TON,
36
+ {
37
+ assetId: ASSET_ID.TON,
38
+ feedId: '0x0',
39
+ },
40
+ ],
41
+ ]),
33
42
  pythAddress: PYTH_ORACLE_TESTNET,
34
- allowedRefTokens: TESTNET_ALLOWED_REF_TOKENS,
43
+ allowedRefTokens: Dictionary.empty<bigint, bigint>().set(ASSET_ID.jUSDT, ASSET_ID.USDT),
35
44
  },
36
45
  pythConfig: DefaultPythPriceSourcesConfig,
37
46
  }),
@@ -43,7 +52,7 @@ export const TESTNET_CLASSIC_POOL_CONFIG_TOB_AUDITED: PoolConfig = {
43
52
  masterAddress: EVAA_MASTER_TESTNET_CLASSIC_TOB_AUDITED,
44
53
  masterVersion: TESTNET_CLASSIC_TOB_AUDITED,
45
54
  masterConstants: MASTER_CONSTANTS,
46
- oracles: new PricesCollector({
55
+ collector: new ClassicCollector({
47
56
  poolAssetsConfig: TESTNET_POOL_ASSETS_CONFIG,
48
57
  minimalOracles: 3,
49
58
  evaaOracles: ORACLES_TESTNET,