@evaafi/sdk 0.7.0 → 0.9.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (122) hide show
  1. package/dist/api/feeds.d.ts +30 -0
  2. package/dist/api/feeds.js +73 -0
  3. package/dist/api/liquidation.js +1 -1
  4. package/dist/api/math.js +1 -1
  5. package/dist/api/parser.d.ts +4 -2
  6. package/dist/api/parser.js +39 -18
  7. package/dist/api/parsers/AbstractOracleParser.d.ts +11 -0
  8. package/dist/api/parsers/AbstractOracleParser.js +9 -0
  9. package/dist/api/parsers/ClassicOracleParser.d.ts +10 -0
  10. package/dist/api/parsers/ClassicOracleParser.js +16 -0
  11. package/dist/api/parsers/PythOracleParser.d.ts +17 -0
  12. package/dist/api/parsers/PythOracleParser.js +22 -0
  13. package/dist/api/parsers/index.d.ts +3 -0
  14. package/dist/api/parsers/index.js +19 -0
  15. package/dist/api/prices.d.ts +6 -6
  16. package/dist/api/prices.js +37 -46
  17. package/dist/api/pyth.d.ts +16 -0
  18. package/dist/api/pyth.js +35 -0
  19. package/dist/constants/assets/assetId.d.ts +22 -0
  20. package/dist/constants/assets/assetId.js +29 -0
  21. package/dist/constants/assets/index.d.ts +3 -0
  22. package/dist/constants/assets/index.js +19 -0
  23. package/dist/constants/assets/mainnet.d.ts +19 -0
  24. package/dist/constants/assets/mainnet.js +114 -0
  25. package/dist/constants/assets/testnet.d.ts +14 -0
  26. package/dist/constants/assets/testnet.js +54 -0
  27. package/dist/constants/general/index.d.ts +65 -0
  28. package/dist/constants/general/index.js +93 -0
  29. package/dist/constants/general/mainnet.d.ts +24 -0
  30. package/dist/constants/general/mainnet.js +53 -0
  31. package/dist/constants/general/testnet.d.ts +12 -0
  32. package/dist/constants/general/testnet.js +15 -0
  33. package/dist/constants/general.d.ts +2 -2
  34. package/dist/constants/general.js +4 -4
  35. package/dist/constants/index.d.ts +3 -0
  36. package/dist/constants/index.js +19 -0
  37. package/dist/constants/pools/index.d.ts +2 -0
  38. package/dist/constants/pools/index.js +18 -0
  39. package/dist/constants/pools/mainnet.d.ts +14 -0
  40. package/dist/constants/pools/mainnet.js +145 -0
  41. package/dist/constants/pools/testnet.d.ts +9 -0
  42. package/dist/constants/pools/testnet.js +57 -0
  43. package/dist/constants/pools.js +7 -7
  44. package/dist/contracts/AbstractMaster.d.ts +185 -0
  45. package/dist/contracts/AbstractMaster.js +179 -0
  46. package/dist/contracts/ClassicMaster.d.ts +34 -0
  47. package/dist/contracts/ClassicMaster.js +87 -0
  48. package/dist/contracts/PythMaster.d.ts +61 -0
  49. package/dist/contracts/PythMaster.js +179 -0
  50. package/dist/contracts/UserContract.d.ts +1 -7
  51. package/dist/contracts/UserContract.js +1 -19
  52. package/dist/contracts/index.d.ts +5 -0
  53. package/dist/contracts/index.js +21 -0
  54. package/dist/index.d.ts +14 -14
  55. package/dist/index.js +20 -60
  56. package/dist/prices/Oracle.interface.d.ts +9 -0
  57. package/dist/prices/Oracle.interface.js +2 -0
  58. package/dist/prices/Prices.d.ts +5 -3
  59. package/dist/prices/Prices.js +13 -3
  60. package/dist/prices/PricesCollector.d.ts +17 -7
  61. package/dist/prices/PricesCollector.js +67 -51
  62. package/dist/prices/PythCollector.d.ts +22 -0
  63. package/dist/prices/PythCollector.js +217 -0
  64. package/dist/prices/Types.d.ts +17 -1
  65. package/dist/prices/Types.js +8 -1
  66. package/dist/prices/index.d.ts +4 -3
  67. package/dist/prices/index.js +4 -3
  68. package/dist/prices/sources/Backend.d.ts +5 -4
  69. package/dist/prices/sources/Backend.js +16 -13
  70. package/dist/prices/sources/Icp.d.ts +2 -1
  71. package/dist/prices/sources/Icp.js +12 -9
  72. package/dist/prices/sources/PriceSource.d.ts +7 -6
  73. package/dist/prices/utils.d.ts +10 -8
  74. package/dist/prices/utils.js +32 -46
  75. package/dist/types/Master.d.ts +10 -30
  76. package/dist/types/Master.js +3 -0
  77. package/dist/utils/userJettonWallet.js +0 -8
  78. package/dist/utils/utils.d.ts +8 -1
  79. package/dist/utils/utils.js +31 -2
  80. package/package.json +3 -2
  81. package/src/api/feeds.ts +90 -0
  82. package/src/api/liquidation.ts +1 -1
  83. package/src/api/math.ts +1 -1
  84. package/src/api/parser.ts +100 -38
  85. package/src/api/parsers/AbstractOracleParser.ts +16 -0
  86. package/src/api/parsers/ClassicOracleParser.ts +20 -0
  87. package/src/api/parsers/PythOracleParser.ts +34 -0
  88. package/src/api/parsers/index.ts +3 -0
  89. package/src/api/prices.ts +32 -41
  90. package/src/constants/assets/assetId.ts +30 -0
  91. package/src/constants/assets/index.ts +3 -0
  92. package/src/constants/{assets.ts → assets/mainnet.ts} +3 -96
  93. package/src/constants/assets/testnet.ts +74 -0
  94. package/src/constants/general/index.ts +91 -0
  95. package/src/constants/{general.ts → general/mainnet.ts} +48 -72
  96. package/src/constants/general/testnet.ts +25 -0
  97. package/src/constants/index.ts +3 -0
  98. package/src/constants/pools/index.ts +2 -0
  99. package/src/constants/pools/mainnet.ts +218 -0
  100. package/src/constants/pools/testnet.ts +75 -0
  101. package/src/contracts/AbstractMaster.ts +450 -0
  102. package/src/contracts/ClassicMaster.ts +149 -0
  103. package/src/contracts/PythMaster.ts +313 -0
  104. package/src/contracts/UserContract.ts +7 -28
  105. package/src/contracts/index.ts +7 -0
  106. package/src/index.ts +18 -85
  107. package/src/prices/Oracle.interface.ts +18 -0
  108. package/src/prices/Prices.ts +17 -4
  109. package/src/prices/PricesCollector.ts +91 -68
  110. package/src/prices/PythCollector.ts +294 -0
  111. package/src/prices/Types.ts +28 -6
  112. package/src/prices/index.ts +4 -3
  113. package/src/prices/sources/Backend.ts +21 -19
  114. package/src/prices/sources/Icp.ts +13 -10
  115. package/src/prices/sources/PriceSource.ts +6 -5
  116. package/src/prices/utils.ts +65 -68
  117. package/src/types/Master.ts +29 -52
  118. package/src/types/User.ts +15 -7
  119. package/src/utils/userJettonWallet.ts +0 -8
  120. package/src/utils/utils.ts +41 -2
  121. package/src/constants/pools.ts +0 -177
  122. package/src/contracts/MasterContract.ts +0 -410
@@ -0,0 +1,74 @@
1
+ import { Address, Cell } from '@ton/core';
2
+ import { PoolAssetConfig } from '../../types/Master';
3
+ import { ASSET_ID } from '../assets';
4
+ import { JETTON_WALLET_STANDART_CODE_TESTNET, NULL_ADDRESS } from '../general';
5
+
6
+ export const TON_TESTNET: PoolAssetConfig = {
7
+ name: 'TON',
8
+ assetId: ASSET_ID.TON,
9
+ jettonMasterAddress: NULL_ADDRESS, // fake
10
+ jettonWalletCode: Cell.EMPTY,
11
+ };
12
+
13
+ export const JUSDT_TESTNET: PoolAssetConfig = {
14
+ name: 'jUSDT',
15
+ assetId: ASSET_ID.jUSDT,
16
+ jettonMasterAddress: Address.parse('kQBe4gtSQMxM5RpMYLr4ydNY72F8JkY-icZXG1NJcsju8XM7'),
17
+ jettonWalletCode: JETTON_WALLET_STANDART_CODE_TESTNET,
18
+ };
19
+
20
+ export const JUSDC_TESTNET: PoolAssetConfig = {
21
+ name: 'jUSDC',
22
+ assetId: ASSET_ID.jUSDC,
23
+ jettonMasterAddress: Address.parse('kQDaY5yUatYnHei73HBqRX_Ox9LK2XnR7XuCY9MFC2INbfYI'),
24
+ jettonWalletCode: JETTON_WALLET_STANDART_CODE_TESTNET,
25
+ };
26
+
27
+ export const STTON_TESTNET: PoolAssetConfig = {
28
+ name: 'stTON',
29
+ assetId: ASSET_ID.stTON,
30
+ jettonMasterAddress: Address.parse('kQC3Duw3dg8k98xf5S7Bm7YOWVJ5QW8hm3iLqFfJfa_g9h07'),
31
+ jettonWalletCode: Cell.fromBoc(
32
+ Buffer.from(
33
+ 'b5ee9c7201021201000362000114ff00f4a413f4bcf2c80b0102016202030202cc0405001ba0f605da89a1f401f481f481a8610201d40607020120090a01cf0831c02497c138007434c0c05c6c2544d7c0fc03383e903e900c7e800c5c75c87e800c7e800c1cea6d0000b4c7c8608403e29fa96ea54c4d167c027808608405e351466ea58c511100fc02b80860841657c1ef2ea54c4d167c02f80517c1300138c08c2103fcbc200800113e910c30003cb85360007ced44d0fa00fa40fa40d43010235f03018208989680a16d801072226eb32091719170e203c8cb055006cf165004fa02cb6a039358cc019130e201c901fb000201200b0c0081d40106b90f6a2687d007d207d206a1802698f90c1080bc6a28cdd0141083deecbef5d0958f97064699f98fd001809d02811e428027d012c678b00e78b6664f6aa401f1503d33ffa00fa4021f001ed44d0fa00fa40fa40d4305136a1522ac705f2e2c128c2fff2e2c254344270542013541403c85004fa0258cf1601cf16ccc922c8cb0112f400f400cb00c920f9007074c8cb02ca07cbffc9d004fa40f40431fa0020d749c200f2e2c4778018c8cb055008cf1670fa0217cb6b13cc80d0201200e0f009e8210178d4519c8cb1f19cb3f5007fa0222cf165006cf1625fa025003cf16c95005cc2391729171e25008a813a0820a625a00a014bcf2e2c504c98040fb001023c85004fa0258cf1601cf16ccc9ed5402f73b51343e803e903e90350c0234cffe80145468017e903e9014d6f1c1551cdb5c150804d50500f214013e809633c58073c5b33248b232c044bd003d0032c0327e401c1d3232c0b281f2fff274140371c1472c7cb8b0c2be80146a2860822625a019ad8228608239387028062849e5c412440e0dd7c138c34975c2c060101100c90c3b51343e803e903e90350c01b4cffe800c145128548df1c17cb8b04970bffcb8b0812082e4e1c02fbcb8b160841ef765f7b232c7c532cfd63e808873c5b25c60063232c14933c59c3e80b2dab33260103ec01004f214013e809633c58073c5b3327b552000705279a018a182107362d09cc8cb1f5230cb3f58fa025007cf165007cf16c9718010c8cb0524cf165006fa0215cb6a14ccc971fb0010241023007cc30023c200b08e218210d53276db708010c8cb055008cf165004fa0216cb6a12cb1f12cb3fc972fb0093356c21e203c85004fa0258cf1601cf16ccc9ed54',
34
+ 'hex',
35
+ ),
36
+ )[0],
37
+ };
38
+
39
+ export const TGBTC_TESTNET: PoolAssetConfig = {
40
+ name: 'tgBTC',
41
+ assetId: ASSET_ID.tgBTC,
42
+ jettonMasterAddress: Address.parse('kQDoy1cUAbGq253vwfoPcqSloODVAWkDBniR12PJFUHnK6Yf'),
43
+ jettonWalletCode: Cell.fromBoc(
44
+ Buffer.from(
45
+ 'b5ee9c72010210010003ac000114ff00f4a413f4bcf2c80b01020162020302f8d001d0d3030171b08e48135f038020d721ed44d0d303fa00fa40fa40d104d31f01840f218210178d4519ba0282107bdd97deba12b1f2f48040d721fa003012a0401303c8cb0358fa0201cf1601cf16c9ed54e0fa40fa4031fa0031f401fa0031fa00013170f83a02d31f012082100f8a7ea5ba8e85303459db3ce03304050201200e0f01f603d33f0101fa00fa4021fa4430c000f2e14ded44d0d303fa00fa40fa40d1521ac705f2e0495115a120c2fff2aff82a54259070546004131503c8cb0358fa0201cf1601cf16c921c8cb0113f40012f400cb00c920f9007074c8cb02ca07cbffc9d004fa40f401fa002020d70b009ad74bc00101c001b0f2b19130e206025c228210178d4519ba8e84325adb3ce034218210595f07bcba8e843101db3ce0135f038210d372158cbadc840ff2f008090174c88210178d451901cb1f500a01cb3f5008fa0223cf1601cf1626fa025007cf16c9c8801801cb055004cf1670fa024063775003cb6bccccc945370700bc2191729171e2f839206e938123289120e2216e94318127109101e2f82f5005a05023a812a0738103a370f83ca00170f836a00170f836a07381040982100966018070f837a0bcf2b0048050fb005803c8cb0358fa0201cf1601cf16c9ed5403e6ed44d0d303fa00fa40fa40d107d33f0101fa005141a004fa40fa4053bac705f82a5464e070546004131503c8cb0358fa0201cf1601cf16c921c8cb0113f40012f400cb00c9f9007074c8cb02ca07cbffc9d0500cc7051bb1f2e04a09fa0021925f04e30d26d70b01c000b393306c33e30d55020a0b0c01d2ed44d0d303fa00fa40fa40d106d33f0101fa00fa40f404d120206ef271d0d74bc000018100f8beb0f2b15152a15249c705f2e04927c2fff2afc882107bdd97de01cb1f500301cb3f01fa0222cf1601cf1612f400c9c8801801cb0526cf1670fa02017158cb6accc9030d0060c882107362d09c01cb1f2501cb3f5004fa0258cf1658cf16c9c8801001cb0524cf1658fa02017158cb6accc98011fb00007a5054a1f82fa07381040982100966018070f837b60972fb02c8801001cb055005cf1670fa027001cb6a8210d53276db01cb1f5801cb3fc9810082fb0059002003c8cb0358fa0201cf1601cf16c9ed54006cf839206e9430811770de728106f170f8380170f836a0811b5870f836a0bcf2b0028050fb000303c8cb0358fa0201cf1601cf16c9ed540027bfd8176a2686981fd007d207d206899fc15209840021bc508f6a2686981fd007d207d2068af81c',
46
+ 'hex',
47
+ ),
48
+ )[0],
49
+ };
50
+
51
+ /**
52
+ * @description faucet t.me/evaabuidl
53
+ */
54
+ export const EUSDT_TESTNET: PoolAssetConfig = {
55
+ name: 'EUSDT',
56
+ assetId: ASSET_ID.EUSDT,
57
+ jettonMasterAddress: Address.parse('kQBe4gtSQMxM5RpMYLr4ydNY72F8JkY-icZXG1NJcsju8XM7'),
58
+ jettonWalletCode: Cell.fromBoc(
59
+ Buffer.from(
60
+ 'b5ee9c7201021101000323000114ff00f4a413f4bcf2c80b0102016202030202cc0405001ba0f605da89a1f401f481f481a8610201d40607020120080900c30831c02497c138007434c0c05c6c2544d7c0fc03383e903e900c7e800c5c75c87e800c7e800c1cea6d0000b4c7e08403e29fa954882ea54c4d167c0278208405e3514654882ea58c511100fc02b80d60841657c1ef2ea4d67c02f817c12103fcbc2000113e910c1c2ebcb853600201200a0b0083d40106b90f6a2687d007d207d206a1802698fc1080bc6a28ca9105d41083deecbef09dd0958f97162e99f98fd001809d02811e428027d012c678b00e78b6664f6aa401f1503d33ffa00fa4021f001ed44d0fa00fa40fa40d4305136a1522ac705f2e2c128c2fff2e2c254344270542013541403c85004fa0258cf1601cf16ccc922c8cb0112f400f400cb00c920f9007074c8cb02ca07cbffc9d004fa40f40431fa0020d749c200f2e2c4778018c8cb055008cf1670fa0217cb6b13cc80c0201200d0e009e8210178d4519c8cb1f19cb3f5007fa0222cf165006cf1625fa025003cf16c95005cc2391729171e25008a813a08209c9c380a014bcf2e2c504c98040fb001023c85004fa0258cf1601cf16ccc9ed5402f73b51343e803e903e90350c0234cffe80145468017e903e9014d6f1c1551cdb5c150804d50500f214013e809633c58073c5b33248b232c044bd003d0032c0327e401c1d3232c0b281f2fff274140371c1472c7cb8b0c2be80146a2860822625a019ad822860822625a028062849e5c412440e0dd7c138c34975c2c0600f1000d73b51343e803e903e90350c01f4cffe803e900c145468549271c17cb8b049f0bffcb8b08160824c4b402805af3cb8b0e0841ef765f7b232c7c572cfd400fe8088b3c58073c5b25c60063232c14933c59c3e80b2dab33260103ec01004f214013e809633c58073c5b3327b552000705279a018a182107362d09cc8cb1f5230cb3f58fa025007cf165007cf16c9718010c8cb0524cf165006fa0215cb6a14ccc971fb0010241023007cc30023c200b08e218210d53276db708010c8cb055008cf165004fa0216cb6a12cb1f12cb3fc972fb0093356c21e203c85004fa0258cf1601cf16ccc9ed54',
61
+ 'hex',
62
+ ),
63
+ )[0],
64
+ };
65
+
66
+ /**
67
+ * @description faucet t.me/evaabuidl
68
+ */
69
+ export const EUSDC_TESTNET: PoolAssetConfig = {
70
+ name: 'EUSDC',
71
+ assetId: ASSET_ID.EUSDC,
72
+ jettonMasterAddress: Address.parse('kQDaY5yUatYnHei73HBqRX_Ox9LK2XnR7XuCY9MFC2INbfYI'),
73
+ jettonWalletCode: JETTON_WALLET_STANDART_CODE_TESTNET,
74
+ };
@@ -0,0 +1,91 @@
1
+ import { Address, toNano } from '@ton/core';
2
+
3
+ export * from './mainnet';
4
+ export * from './testnet';
5
+
6
+ export const NULL_ADDRESS = Address.parse('UQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJKZ');
7
+
8
+ export const ASSET_PRICE_SCALE = BigInt(1e9);
9
+
10
+ export const MASTER_CONSTANTS = {
11
+ FACTOR_SCALE: BigInt(1e12),
12
+ ASSET_COEFFICIENT_SCALE: 10000n,
13
+ ASSET_PRICE_SCALE,
14
+ ASSET_RESERVE_FACTOR_SCALE: 10000n,
15
+ ASSET_LIQUIDATION_RESERVE_FACTOR_SCALE: 10000n,
16
+ ASSET_ORIGINATION_FEE_SCALE: BigInt(1e9),
17
+ ASSET_LIQUIDATION_THRESHOLD_SCALE: 10_000n,
18
+ ASSET_LIQUIDATION_BONUS_SCALE: 10_000n,
19
+ ASSET_SRATE_SCALE: BigInt(1e12),
20
+ ASSET_BRATE_SCALE: BigInt(1e12),
21
+ COLLATERAL_WORTH_THRESHOLD: 100n * ASSET_PRICE_SCALE, // literally 100$
22
+ };
23
+
24
+ export const OPCODES = {
25
+ // General
26
+ ONCHAIN_GETTER: 0x9998,
27
+
28
+ // Supply
29
+ SUPPLY_MASTER: 0x1,
30
+ SUPPLY_USER: 0x11,
31
+ SUPPLY_SUCCESS: 0x11a,
32
+ SUPPLY_FAIL: 0x11f,
33
+ SUPPLY_EXCESS: 0x11ae,
34
+ SUPPLY_SUCCESS_AND_REPAY_REMAININGS: 0x11ab,
35
+ SUPPLY_FAIL_EXCESS: 0x11ae1,
36
+ SUPPLY_FAIL_REVERT: 0x11ae2,
37
+
38
+ // Liquidate
39
+ LIQUIDATE_MASTER: 0x3,
40
+ LIQUIDATE_MASTER_JETTON_PROCESS: 0x32,
41
+ LIQUIDATE_USER: 0x31,
42
+ LIQUIDATE_UNSATISFIED: 0x31f,
43
+ LIQUIDATE_SATISFIED: 0x311,
44
+ LIQUIDATE_SUCCESS: 0x311a,
45
+ LIQUIDATE_SUCCESS_REPORT: 0x311d,
46
+ LIQUIDATE_FAIL: 0x311f,
47
+ LIQUIDATE_FAIL_REVERT: 0x211fe91,
48
+
49
+ // Supply & Withdraw
50
+ SUPPLY_WITHDRAW_MASTER: 0x4,
51
+ SUPPLY_WITHDRAW_MASTER_WITHOUT_PRICES: 0x401,
52
+ SUPPLY_WITHDRAW_MASTER_JETTON: 0x42,
53
+ SUPPLY_WITHDRAW_USER: 0x41,
54
+ SUPPLY_WITHDRAW_SATISFIED: 0x411,
55
+ SUPPLY_WITHDRAW_SATISFIED_AND_REPAY_REMAININGS: 0x411b,
56
+ SUPPLY_WITHDRAW_UNSATISFIED: 0x41f,
57
+ SUPPLY_WITHDRAW_FAIL: 0x411f,
58
+ SUPPLY_WITHDRAW_SUCCESS: 0x411a,
59
+
60
+ // Reward
61
+ REWARD_CLAIM: 0x2,
62
+ REWARD_TON_TOP_UP: 0x7362d09c,
63
+ REWARD_JETTON_MINT: 0x178d4519,
64
+ REWARD_JETTON_TRANSFER: 0x0f8a7ea5,
65
+
66
+ // TEP's
67
+ JETTON_TRANSFER: 0xf8a7ea5,
68
+ };
69
+
70
+ export const FEES = {
71
+ // General
72
+ JETTON_FWD: toNano('0.05'),
73
+
74
+ // Supply
75
+ SUPPLY: toNano('0.25'),
76
+
77
+ // Supply & Withdraw
78
+ SUPPLY_WITHDRAW: toNano('0.45'),
79
+
80
+ // Liquidation
81
+ LIQUIDATION: toNano('0.8'),
82
+ LIQUIDATION_JETTON: toNano('1'),
83
+ LIQUIDATION_JETTON_FWD: toNano('0.8'),
84
+
85
+ // Reward
86
+ REWARD_MASTER_TON_TOP_UP: toNano('0.03'),
87
+ REWARD_MASTER_DEPLOY: toNano('0.05'),
88
+ REWARD_MASTER_WITHDRAW: toNano('0.1'),
89
+ REWARD_USER_DEPLOY: toNano('0.05'),
90
+ REWARD_USER_CLAIM: toNano('0.1'),
91
+ };
@@ -1,53 +1,60 @@
1
- import { Address, Cell, toNano } from '@ton/core';
2
- import { OracleNFT } from '../types/Master';
3
-
4
- const ASSET_PRICE_SCALE = BigInt(1e9);
5
-
6
- export const MASTER_CONSTANTS = {
7
- FACTOR_SCALE: BigInt(1e12),
8
- ASSET_COEFFICIENT_SCALE: 10000n,
9
- ASSET_PRICE_SCALE,
10
- ASSET_RESERVE_FACTOR_SCALE: 10000n,
11
- ASSET_LIQUIDATION_RESERVE_FACTOR_SCALE: 10000n,
12
- ASSET_ORIGINATION_FEE_SCALE: BigInt(1e9),
13
- ASSET_LIQUIDATION_THRESHOLD_SCALE: 10_000n,
14
- ASSET_LIQUIDATION_BONUS_SCALE: 10_000n,
15
- ASSET_SRATE_SCALE: BigInt(1e12),
16
- ASSET_BRATE_SCALE: BigInt(1e12),
17
- COLLATERAL_WORTH_THRESHOLD: 100n * ASSET_PRICE_SCALE, // literally 100$
18
- };
19
-
20
- export const NULL_ADDRESS = Address.parse('UQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJKZ');
1
+ import { Address, Cell } from '@ton/core';
2
+ import { ExtendedEvaaOracle } from '../../types/Master';
21
3
 
4
+ /* MAIN POOL */
22
5
  export const EVAA_MASTER_MAINNET = Address.parse('EQC8rUZqR_pWV1BylWUlPNBzyiTYVoBEmQkMIQDZXICfnuRr');
23
- export const MAINNET_VERSION = 7;
24
- export const EVAA_MASTER_TESTNET = Address.parse('kQBae_Pt-NcxX0yhNnsYyK-Kh6ZBnIUQhxheKTvNLTgZf7AV');
25
- export const TESTNET_VERSION = 0;
6
+ export const MAINNET_VERSION = 9;
7
+
8
+ /* LP POOL */
26
9
  export const EVAA_LP_MAINNET = Address.parse('EQBIlZX2URWkXCSg3QF2MJZU-wC5XkBoLww-hdWk2G37Jc6N');
27
- export const EVAA_LP_MAINNET_VERSION = 4;
10
+ export const EVAA_LP_MAINNET_VERSION = 5;
11
+
12
+ /* ALTS POOL */
28
13
  export const EVAA_ALTS_MAINNET = Address.parse('EQANURVS3fhBO9bivig34iyJQi97FhMbpivo1aUEAS2GYSu-');
29
- export const EVAA_ALTS_MAINNET_VERSION = 1;
14
+ export const EVAA_ALTS_MAINNET_VERSION = 3;
15
+
16
+ /* STABLE POOL */
30
17
  export const EVAA_STABLE_MAINNET = Address.parse('EQCdIdXf1kA_2Hd9mbGzSFDEPA-Px-et8qTWHEXgRGo0K3zd');
31
- export const STABLE_VERSION = 0;
18
+ export const STABLE_VERSION = 1;
19
+
20
+ /* EVAA V8 Trail of Bits Audited Pool */
21
+ export const EVAA_TOB_MAINNET = Address.parse('EQDrSGBBunrWNmIdHgdaA7Weu4yUr8Ckw3C9wNWobq7osn3H');
22
+ export const EVAA_TOB_VERSION = 0;
32
23
 
33
- export const EVAA_ETHENA_MAINNET = Address.parse('EQCn95X_qLJa5VUXfyIQkWDH2iq3PTatsO4esunMaIsnyyeW');
34
- export const EVAA_ETHENA_VERSION = 0;
24
+ /* EVAA V8 PYTH Trail of Bits Audited Pool */
25
+ export const EVAA_PYTH_TOB_MAINNET = Address.parse('EQCsOdQPDO1Xndzutn9dDcloolWo1wHKICMz2jHL6UP8smcV');
26
+ export const EVAA_PYTH_TOB_VERSION = 0;
35
27
 
36
- export const EVAA_REWARDS_MASTER_TESTNET = Address.parse('EQCnp0iRGcfDJAvnKhAEN9sB-nPYSPuc83Ff4y75s8AtoSW1');
37
28
  export const EVAA_USDT_REWARDS_MASTER_MAINNET = Address.parse('EQD22Fhylp1tX-xoVX81aMTSJNPV8j9klwApTLgjGmofISVD');
38
29
  export const EVAA_TON_REWARDS_MASTER_MAINNET = Address.parse('EQDM_gdrntBg4fy5Rg9DgDF0AUu3FYoqxHEOsHNIC4_DTDuC');
39
30
 
40
- export const ORACLES_MAINNET: OracleNFT[] = [
41
- {id: 0, address: '0xd3a8c0b9fd44fd25a49289c631e3ac45689281f2f8cf0744400b4c65bed38e5d', pubkey: Buffer.from('b404f4a2ebb62f2623b370c89189748a0276c071965b1646b996407f10d72eb9', 'hex') },
42
- {id: 1, address: '0x2c21cabdaa89739de16bde7bc44e86401fac334a3c7e55305fe5e7563043e191', pubkey: Buffer.from('9ad115087520d91b6b45d6a8521eb4616ee6914af07fabdc2e9d1826dbb17078', 'hex') },
43
- {id: 2, address: '0x2eb258ce7b5d02466ab8a178ad8b0ba6ffa7b58ef21de3dc3b6dd359a1e16af0', pubkey: Buffer.from('e503e02e8a9226b34e7c9deb463cbf7f19bce589362eb448a69a8ee7b2fca631', 'hex') },
44
- {id: 3, address: '0xf9a0769954b4430bca95149fb3d876deb7799d8f74852e0ad4ccc5778ce68b52', pubkey: Buffer.from('9cbf8374cf1f2cf17110134871d580198416e101683f4a61f54cf2a3e4e32070', 'hex') },
31
+ export const ORACLES_MAINNET: ExtendedEvaaOracle[] = [
32
+ {
33
+ id: 0,
34
+ address: '0xd3a8c0b9fd44fd25a49289c631e3ac45689281f2f8cf0744400b4c65bed38e5d',
35
+ pubkey: Buffer.from('b404f4a2ebb62f2623b370c89189748a0276c071965b1646b996407f10d72eb9', 'hex'),
36
+ },
37
+ {
38
+ id: 1,
39
+ address: '0x2c21cabdaa89739de16bde7bc44e86401fac334a3c7e55305fe5e7563043e191',
40
+ pubkey: Buffer.from('9ad115087520d91b6b45d6a8521eb4616ee6914af07fabdc2e9d1826dbb17078', 'hex'),
41
+ },
42
+ {
43
+ id: 2,
44
+ address: '0x2eb258ce7b5d02466ab8a178ad8b0ba6ffa7b58ef21de3dc3b6dd359a1e16af0',
45
+ pubkey: Buffer.from('e503e02e8a9226b34e7c9deb463cbf7f19bce589362eb448a69a8ee7b2fca631', 'hex'),
46
+ },
47
+ {
48
+ id: 3,
49
+ address: '0xf9a0769954b4430bca95149fb3d876deb7799d8f74852e0ad4ccc5778ce68b52',
50
+ pubkey: Buffer.from('9cbf8374cf1f2cf17110134871d580198416e101683f4a61f54cf2a3e4e32070', 'hex'),
51
+ },
45
52
  ];
46
53
 
47
- export const ORACLES_TESTNET: OracleNFT[] = ORACLES_MAINNET;
54
+ export const PYTH_ORACLE_MAINNET: Address = Address.parse('EQBU6k8HH6yX4Jf3d18swWbnYr31D3PJI7PgjXT-flsKHqql');
48
55
 
49
- export const ORACLES_LP: OracleNFT[] = ORACLES_MAINNET;
50
- export const ORACLES_ALTS: OracleNFT[] = ORACLES_MAINNET;
56
+ export const ORACLES_LP: ExtendedEvaaOracle[] = ORACLES_MAINNET;
57
+ export const ORACLES_ALTS: ExtendedEvaaOracle[] = ORACLES_MAINNET;
51
58
 
52
59
  export const LENDING_CODE = Cell.fromBoc(
53
60
  Buffer.from(
@@ -57,50 +64,19 @@ export const LENDING_CODE = Cell.fromBoc(
57
64
  )[0];
58
65
 
59
66
  export const JETTON_WALLET_STANDART_CODE = Cell.fromBase64(
60
- 'te6cckECEwEAA4UAART/APSkE/S88sgLAQIBYgIDAgLLBAUAG6D2BdqJofQB9IH0gamjAgHOBgcCAVgKCwL3CDHAJJfBOAB0NMDAXGwlRNfA/Ad4PpA+kAx+gAxcdch+gAx+gAwc6m0AALTHwHbPFsyNDQ0JIIQD4p+pbqaMGwiNl4xECPwGuAkghAXjUUZupswbCJeMhAkQwDwG+A3WzaCEFlfB7y6nwJxsPLSwFAjuvLixgHwHOBfBYAgJABE+kQwwADy4U2AAXIBP+DMgbpUwgLH4M94gbvLSmtDTBzHT/9P/9ATTB9Qw0PoA+gD6APoA+gD6ADAACIQP8vACAVgMDQIBSBESAfcBdM/AQH6APpAIfAB7UTQ+gD6QPpA1NFRNqFSLMcF8uLBKsL/8uLCVDRCcFQgE1QUA8hQBPoCWM8WAc8WzMkiyMsBEvQA9ADLAMkgcAH5AHTIywISygfL/8nQBPpA9AQx+gAg10nCAPLixMiAGAHLBVAHzxZw+gJ3ActrgDgLzO1E0PoA+kD6QNTRCtM/AQH6AFFRoAX6QPpAU13HBVRzb3BUIBNUFAPIUAT6AljPFgHPFszJIsjLARL0APQAywDJcAH5AHTIywISygfL/8nQUA/HBR6x8uLDDPoAUcqhKbYIGaFQB6AYoSaSbFXjDSXXCwHDACHCALCAPEACqE8zIghAXjUUZWAoCyx/LP1AH+gIizxZQBs8WJfoCUAPPFslQBcwjkXKRceJQB6gToAiqAFAEoBegFLzy4sUByYBA+wBDAMhQBPoCWM8WAc8WzMntVAByUmmgGKHIghBzYtCcKQLLH8s/UAf6AlAEzxZQB88WyciAEAHLBSfPFlAE+gJxActqE8zJcfsAUEITAHSOI8iAEAHLBVAGzxZQBfoCcAHLaoIQ1TJ221gFAssfyz/JcvsAklsz4kADyFAE+gJYzxYBzxbMye1UAOs7UTQ+gD6QPpA1NEF0z8BAfoAIcIA8uLC+kD0BAHQ05/RAdFRYqFSWMcF8uLBJsL/8uLCyIIQe92X3lgEAssfyz8B+gIjzxYBzxYTy5/JyIAYAcsFI88WcPoCcQHLaszJgED7AEATyFAE+gJYzxYBzxbMye1UgAIcgCDXIe1E0PoA+kD6QNTRBNMfAYQPIYIQF41FGboCghB73ZfeuhKx8vTTPwEw+gAwE6BQI8hQBPoCWM8WAc8WzMntVINjFu1o=');
61
-
62
- export const JETTON_WALLET_STANDART_CODE_TESTNET = Cell.fromBase64(
63
- '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');
67
+ 'te6cckECEwEAA4UAART/APSkE/S88sgLAQIBYgIDAgLLBAUAG6D2BdqJofQB9IH0gamjAgHOBgcCAVgKCwL3CDHAJJfBOAB0NMDAXGwlRNfA/Ad4PpA+kAx+gAxcdch+gAx+gAwc6m0AALTHwHbPFsyNDQ0JIIQD4p+pbqaMGwiNl4xECPwGuAkghAXjUUZupswbCJeMhAkQwDwG+A3WzaCEFlfB7y6nwJxsPLSwFAjuvLixgHwHOBfBYAgJABE+kQwwADy4U2AAXIBP+DMgbpUwgLH4M94gbvLSmtDTBzHT/9P/9ATTB9Qw0PoA+gD6APoA+gD6ADAACIQP8vACAVgMDQIBSBESAfcBdM/AQH6APpAIfAB7UTQ+gD6QPpA1NFRNqFSLMcF8uLBKsL/8uLCVDRCcFQgE1QUA8hQBPoCWM8WAc8WzMkiyMsBEvQA9ADLAMkgcAH5AHTIywISygfL/8nQBPpA9AQx+gAg10nCAPLixMiAGAHLBVAHzxZw+gJ3ActrgDgLzO1E0PoA+kD6QNTRCtM/AQH6AFFRoAX6QPpAU13HBVRzb3BUIBNUFAPIUAT6AljPFgHPFszJIsjLARL0APQAywDJcAH5AHTIywISygfL/8nQUA/HBR6x8uLDDPoAUcqhKbYIGaFQB6AYoSaSbFXjDSXXCwHDACHCALCAPEACqE8zIghAXjUUZWAoCyx/LP1AH+gIizxZQBs8WJfoCUAPPFslQBcwjkXKRceJQB6gToAiqAFAEoBegFLzy4sUByYBA+wBDAMhQBPoCWM8WAc8WzMntVAByUmmgGKHIghBzYtCcKQLLH8s/UAf6AlAEzxZQB88WyciAEAHLBSfPFlAE+gJxActqE8zJcfsAUEITAHSOI8iAEAHLBVAGzxZQBfoCcAHLaoIQ1TJ221gFAssfyz/JcvsAklsz4kADyFAE+gJYzxYBzxbMye1UAOs7UTQ+gD6QPpA1NEF0z8BAfoAIcIA8uLC+kD0BAHQ05/RAdFRYqFSWMcF8uLBJsL/8uLCyIIQe92X3lgEAssfyz8B+gIjzxYBzxYTy5/JyIAYAcsFI88WcPoCcQHLaszJgED7AEATyFAE+gJYzxYBzxbMye1UgAIcgCDXIe1E0PoA+kD6QNTRBNMfAYQPIYIQF41FGboCghB73ZfeuhKx8vTTPwEw+gAwE6BQI8hQBPoCWM8WAc8WzMntVINjFu1o=',
68
+ );
64
69
 
65
- export const EVAA_REWARDS_MASTER_CODE_TESTNET = Cell.fromBoc(
70
+ export const EVAA_REWARDS_MASTER_CODE_MAINNET = Cell.fromBoc(
66
71
  Buffer.from(
67
72
  'b5ee9c7241020e01000386000114ff00f4a413f4bcf2c80b01020162020b046ad03322c700925f03e0d0d3030171b0925f03e0fa403002d31fd33f715230bae302725230bae30282107362d09c5230bae3027413ba0304070800c46c21ed44d0fa40fa00fa40d4d401d001d1fa40d3ffd3ffd11034102307fa40308103e8820afaf0801abe19f2f48103ea5196c70519f2f48103ee8b0212c705f2f41036453304c85004cf16cbff12cbffc9c85005cf165003fa0258cf16ccccc9ed5402fe6c22ed44d0fa40fa00fa40d4d401d001d1fa40d3ffd3ffd11034102307fa40fa003021ed44d0fa40fa00fa40d4d401d001d1fa40d3ffd3ffd11034102335355bc8f828cf1613cbffcbffc9c85003cf1670fa0212ccc97020c8cb0113f400f400cb00c9f9007074c8cb02ca07cbffc9d08103ea51c1c7051cf2f45306bce302050600466c810173c8cb1fcb3f01fa02c9718018c8cb055003cf1670fa0212cb6accc98040fb0001d23a8b3544f4e8f9025220ba8e16385288708018c8cb0558cf1658fa02cb6ac98040fb008e3b22544a030a702082100f8a7ea5c8cb1f13cb3f5004fa0222cf1658cf16cb0021fa02cb1fc9718018c8cb055003cf1670fa0212cb6accc98040fb00e25037a110365e40010a00ec6c21ed44d0fa40fa00fa40d4d401d001d1fa40d3ffd3ffd1103410238103e8820afaf08052a0bef2f48b3544f4e8f9025220ba993738068209c9c380a18e11388103ea5192c70519f2f405fa00301056e213a010364515503304c85004cf16cbff12cbffc9c85005cf165003fa0258cf16ccccc9ed5402ea8f6ced44d0fa40fa00fa40d4d401d001d1fa40d3ffd3ffd11034102308fa40fa00308103e8821005f5e1001cbe1bf2f48103ea51b7c7051bf2f48103ed5395bbf2f48b3544f4e8f9025210ba8e16365279708018c8cb0558cf1658fa02cb6ac98040fb00e30e5026a14615503304e05f04840ff2f0090a00745468281b702082100f8a7ea5c8cb1f13cb3f5004fa0222cf1658cf16cb0021fa02cb1fc9718018c8cb055003cf1670fa0212cb6accc98040fb000038c85004cf16cbff12cbffc9c85005cf165003fa0258cf16ccccc9ed540201580c0d0039bbc24ed44d0fa40fa00fa40d4d401d001d1fa40d3ffd3ffd1103410238009fb87b6ed44d0fa40fa00fa40d4d401d001d1fa40d3ffd3ffd11034102335355bc8f828cf1613cbffcbffc9c85003cf1670fa0212ccc97020c8cb0113f400f400cb00c9f9007074c8cb02ca07cbffc9d0872ac1c8c',
68
73
  'hex',
69
74
  ),
70
75
  )[0];
71
- export const EVAA_REWARDS_MASTER_CODE_MAINNET = EVAA_REWARDS_MASTER_CODE_TESTNET;
72
76
 
73
- export const EVAA_REWARDS_USER_CODE_TESTNET = Cell.fromBoc(
77
+ export const EVAA_REWARDS_USER_CODE_MAINNET = Cell.fromBoc(
74
78
  Buffer.from(
75
79
  'b5ee9c724102060100014e000114ff00f4a413f4bcf2c80b01020162020502f8d03322c700925f03e0d0d3030171b0925f03e0fa403002d31fd33f725230ba8ed63233ed44d0fa40fa00d401d001d1fa40d3ffd3ffd1058308d718d430d08103e8821005f5e10019be18f2f48103e927f901541027f910f2f405fa40fa00308103eaf82813c70512f2f48103ec5313bcf2f45203a15006e0313273ba030400b8ed44d0fa40fa00d401d001d1fa40d3ffd3ffd110235f0372c8cb1f13cb3f01cf1658fa02c9718018c8cb055003cf1670fa0212cb6accc9820a625a0070fb02810080fb005521c85003cf16cbffcbffc9c85003cf1601fa02ccc9ed5400888e3ced44d0fa40fa00d401d001d1fa40d3ffd3ffd105fa00308103ea5173c70517f2f45025a14143c85003cf16cbffcbffc9c85003cf1601fa02ccc9ed54e05b840ff2f0002ba17849da89a1f481f401a803a003a3f481a7ffa7ffa333f41908',
76
80
  'hex',
77
81
  ),
78
82
  )[0];
79
- export const EVAA_REWARDS_USER_CODE_MAINNET = EVAA_REWARDS_USER_CODE_TESTNET;
80
-
81
- export const OPCODES = {
82
- SUPPLY: 0x1,
83
- WITHDRAW: 0x2,
84
- LIQUIDATE: 0x3,
85
- JETTON_TRANSFER: 0xf8a7ea5,
86
- ONCHAIN_GETTER: 0x9998,
87
- REWARD_CLAIM: 0x2,
88
- REWARD_TON_TOP_UP: 0x7362d09c,
89
- REWARD_JETTON_MINT: 0x178d4519,
90
- REWARD_JETTON_TRANSFER: 0x0f8a7ea5,
91
- };
92
-
93
- export const FEES = {
94
- SUPPLY: toNano('0.3'),
95
- WITHDRAW: toNano('0.35'),
96
- SUPPLY_JETTON: toNano('0.35'),
97
- SUPPLY_JETTON_FWD: toNano('0.3'),
98
- LIQUIDATION: toNano('0.8'),
99
- LIQUIDATION_JETTON: toNano('1'),
100
- LIQUIDATION_JETTON_FWD: toNano('0.8'),
101
- REWARD_MASTER_TON_TOP_UP: toNano('0.03'),
102
- REWARD_MASTER_DEPLOY: toNano('0.05'),
103
- REWARD_MASTER_WITHDRAW: toNano('0.1'),
104
- REWARD_USER_DEPLOY: toNano('0.05'),
105
- REWARD_USER_CLAIM: toNano('0.1'),
106
- };
@@ -0,0 +1,25 @@
1
+ import { Address, Cell } from '@ton/core';
2
+ import { ExtendedEvaaOracle } from '../../types/Master';
3
+ import { EVAA_REWARDS_MASTER_CODE_MAINNET, EVAA_REWARDS_USER_CODE_MAINNET, ORACLES_MAINNET } from './mainnet';
4
+
5
+ export const EVAA_MASTER_TESTNET_PYTH_TOB_AUDITED = Address.parse('kQBNhBq8D5F1Red9JX64M32PpFrIPRvLvioAgauCDOpfMipw');
6
+ export const TESTNET_PYTH_VERSION_TOB_AUDITED = 0;
7
+
8
+ export const EVAA_MASTER_TESTNET_CLASSIC_TOB_AUDITED = Address.parse(
9
+ 'kQBTmXNOP6TUEQ-v85mlefDnVUor6tX_ZYFvQnaoxkM7LFVl',
10
+ );
11
+ export const TESTNET_CLASSIC_TOB_AUDITED = 0;
12
+
13
+ export const PYTH_ORACLE_TESTNET: Address = Address.parse('EQB4ZnrI5qsP_IUJgVJNwEGKLzZWsQOFhiaqDbD7pTt_f9oU');
14
+
15
+ export const ORACLES_TESTNET: ExtendedEvaaOracle[] = ORACLES_MAINNET;
16
+
17
+ export const EVAA_REWARDS_MASTER_TESTNET = Address.parse('EQCnp0iRGcfDJAvnKhAEN9sB-nPYSPuc83Ff4y75s8AtoSW1');
18
+
19
+ export const JETTON_WALLET_STANDART_CODE_TESTNET = Cell.fromBase64(
20
+ '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',
21
+ );
22
+
23
+ export const EVAA_REWARDS_MASTER_CODE_TESTNET = EVAA_REWARDS_MASTER_CODE_MAINNET;
24
+
25
+ export const EVAA_REWARDS_USER_CODE_TESTNET = EVAA_REWARDS_USER_CODE_MAINNET;
@@ -0,0 +1,3 @@
1
+ export * from './assets';
2
+ export * from './general';
3
+ export * from './pools';
@@ -0,0 +1,2 @@
1
+ export * from './mainnet';
2
+ export * from './testnet';
@@ -0,0 +1,218 @@
1
+ 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';
13
+ import { PoolConfig } from '../../types/Master';
14
+ import { EvaaRewardsConfig } from '../../types/MasterRewards';
15
+ import {
16
+ ASSET_ID,
17
+ CATI_MAINNET,
18
+ DOGS_MAINNET,
19
+ JUSDC_MAINNET,
20
+ JUSDT_MAINNET,
21
+ NOT_MAINNET,
22
+ PT_tsUSDe_01Sep2025_MAINNET,
23
+ STTON_MAINNET,
24
+ TON_MAINNET,
25
+ TON_STORM_MAINNET,
26
+ TONUSDT_DEDUST_MAINNET,
27
+ TONUSDT_STONFI_MAINNET,
28
+ TSTON_MAINNET,
29
+ TSUSDE_MAINNET,
30
+ USDE_MAINNET,
31
+ USDT_MAINNET,
32
+ USDT_STORM_MAINNET,
33
+ } from '../assets';
34
+ import {
35
+ EVAA_ALTS_MAINNET,
36
+ EVAA_ALTS_MAINNET_VERSION,
37
+ EVAA_LP_MAINNET,
38
+ EVAA_LP_MAINNET_VERSION,
39
+ EVAA_MASTER_MAINNET,
40
+ EVAA_PYTH_TOB_MAINNET,
41
+ EVAA_PYTH_TOB_VERSION,
42
+ EVAA_REWARDS_MASTER_CODE_MAINNET,
43
+ EVAA_REWARDS_USER_CODE_MAINNET,
44
+ EVAA_STABLE_MAINNET,
45
+ EVAA_TOB_MAINNET,
46
+ EVAA_TOB_VERSION,
47
+ EVAA_TON_REWARDS_MASTER_MAINNET,
48
+ EVAA_USDT_REWARDS_MASTER_MAINNET,
49
+ LENDING_CODE,
50
+ MAINNET_VERSION,
51
+ MASTER_CONSTANTS,
52
+ ORACLES_ALTS,
53
+ ORACLES_LP,
54
+ ORACLES_MAINNET,
55
+ PYTH_ORACLE_MAINNET,
56
+ STABLE_VERSION,
57
+ } from '../general';
58
+
59
+ // Pool assets configs
60
+ export const MAINNET_POOL_ASSETS_CONFIG = [
61
+ TON_MAINNET,
62
+ JUSDT_MAINNET,
63
+ JUSDC_MAINNET,
64
+ STTON_MAINNET,
65
+ TSTON_MAINNET,
66
+ USDT_MAINNET,
67
+ USDE_MAINNET,
68
+ TSUSDE_MAINNET,
69
+ ];
70
+
71
+ const MAINNET_STABLE_POOL_ASSETS_CONFIG = [USDT_MAINNET, USDE_MAINNET, TSUSDE_MAINNET, PT_tsUSDe_01Sep2025_MAINNET];
72
+
73
+ const MAINNET_LP_POOL_ASSETS_CONFIG = [
74
+ TON_MAINNET,
75
+ USDT_MAINNET,
76
+ TONUSDT_DEDUST_MAINNET,
77
+ TON_STORM_MAINNET,
78
+ USDT_STORM_MAINNET,
79
+ TONUSDT_STONFI_MAINNET,
80
+ ];
81
+
82
+ const MAINNET_ALTS_POOL_ASSETS_CONFIG = [TON_MAINNET, USDT_MAINNET, CATI_MAINNET, NOT_MAINNET, DOGS_MAINNET];
83
+
84
+ export const MAINNET_POOL_CONFIG: PoolConfig = {
85
+ masterAddress: EVAA_MASTER_MAINNET,
86
+ masterVersion: MAINNET_VERSION,
87
+ masterConstants: MASTER_CONSTANTS,
88
+ oracles: new PythCollector({
89
+ pythConfig: DefaultPythPriceSourcesConfig,
90
+ poolAssetsConfig: MAINNET_POOL_ASSETS_CONFIG,
91
+ 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
+ ),
103
+ pythAddress: PYTH_ORACLE_MAINNET,
104
+ allowedRefTokens: Dictionary.empty<bigint, bigint>()
105
+ .set(ASSET_ID.jUSDT, ASSET_ID.USDT)
106
+ .set(ASSET_ID.jUSDC, ASSET_ID.USDT)
107
+ .set(ASSET_ID.USDe, ASSET_ID.USDT)
108
+ .set(ASSET_ID.stTON, ASSET_ID.tsTON),
109
+ },
110
+ }),
111
+ poolAssetsConfig: MAINNET_POOL_ASSETS_CONFIG,
112
+ lendingCode: LENDING_CODE,
113
+ };
114
+
115
+ export const MAINNET_STABLE_POOL_CONFIG: PoolConfig = {
116
+ masterAddress: EVAA_STABLE_MAINNET,
117
+ masterVersion: STABLE_VERSION,
118
+ masterConstants: MASTER_CONSTANTS,
119
+ oracles: new PricesCollector({
120
+ poolAssetsConfig: MAINNET_STABLE_POOL_ASSETS_CONFIG,
121
+ minimalOracles: 3,
122
+ evaaOracles: ORACLES_MAINNET,
123
+ }),
124
+ poolAssetsConfig: MAINNET_STABLE_POOL_ASSETS_CONFIG,
125
+ lendingCode: LENDING_CODE,
126
+ };
127
+
128
+ export const MAINNET_LP_POOL_CONFIG: PoolConfig = {
129
+ masterAddress: EVAA_LP_MAINNET,
130
+ masterVersion: EVAA_LP_MAINNET_VERSION,
131
+ masterConstants: MASTER_CONSTANTS,
132
+ oracles: new PricesCollector({
133
+ poolAssetsConfig: MAINNET_LP_POOL_ASSETS_CONFIG,
134
+ minimalOracles: 3,
135
+ evaaOracles: ORACLES_LP,
136
+ }),
137
+ poolAssetsConfig: MAINNET_LP_POOL_ASSETS_CONFIG,
138
+ lendingCode: LENDING_CODE,
139
+ };
140
+
141
+ export const MAINNET_ALTS_POOL_CONFIG: PoolConfig = {
142
+ masterAddress: EVAA_ALTS_MAINNET,
143
+ masterVersion: EVAA_ALTS_MAINNET_VERSION,
144
+ masterConstants: MASTER_CONSTANTS,
145
+ oracles: new PricesCollector({
146
+ poolAssetsConfig: MAINNET_ALTS_POOL_ASSETS_CONFIG,
147
+ minimalOracles: 3,
148
+ evaaOracles: ORACLES_ALTS,
149
+ }),
150
+ poolAssetsConfig: MAINNET_ALTS_POOL_ASSETS_CONFIG,
151
+ lendingCode: LENDING_CODE,
152
+ };
153
+
154
+ export const MAINNET_PYTH_V8_TOB_POOL_ASSETS_CONFIG = [TON_MAINNET, USDT_MAINNET, JUSDT_MAINNET];
155
+
156
+ export const MAINNET_PYTH_V8_TOB_POOL_CONFIG: PoolConfig = {
157
+ masterAddress: EVAA_PYTH_TOB_MAINNET,
158
+ masterVersion: EVAA_PYTH_TOB_VERSION,
159
+ masterConstants: MASTER_CONSTANTS,
160
+ oracles: new PythCollector({
161
+ pythConfig: DefaultPythPriceSourcesConfig,
162
+ poolAssetsConfig: MAINNET_PYTH_V8_TOB_POOL_ASSETS_CONFIG,
163
+ 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)),
167
+ pythAddress: PYTH_ORACLE_MAINNET,
168
+ allowedRefTokens: Dictionary.empty<bigint, bigint>().set(
169
+ BigInt(EVAA_JUSDT_PRICE_FEED_ID),
170
+ BigInt(ASSET_ID.USDT),
171
+ ),
172
+ },
173
+ }),
174
+ poolAssetsConfig: MAINNET_PYTH_V8_TOB_POOL_ASSETS_CONFIG,
175
+ lendingCode: LENDING_CODE,
176
+ };
177
+
178
+ export const MAINNET_V8_TOB_POOL_ASSETS_CONFIG = [TON_MAINNET, USDT_MAINNET];
179
+
180
+ export const MAINNET_V8_TOB_POOL_CONFIG: PoolConfig = {
181
+ masterAddress: EVAA_TOB_MAINNET,
182
+ masterVersion: EVAA_TOB_VERSION,
183
+ masterConstants: MASTER_CONSTANTS,
184
+ oracles: new PricesCollector({
185
+ poolAssetsConfig: MAINNET_V8_TOB_POOL_ASSETS_CONFIG,
186
+ minimalOracles: 3,
187
+ evaaOracles: ORACLES_MAINNET,
188
+ }),
189
+ poolAssetsConfig: MAINNET_V8_TOB_POOL_ASSETS_CONFIG,
190
+ lendingCode: LENDING_CODE,
191
+ };
192
+
193
+ export const MAINNET_MASTER_TON_REWARD_CONFIG: EvaaRewardsConfig = {
194
+ adminAddress: EVAA_TON_REWARDS_MASTER_MAINNET,
195
+ evaaMasterAddress: new Address(0, Buffer.alloc(32, 0)),
196
+ rewardMasterCode: EVAA_REWARDS_MASTER_CODE_MAINNET,
197
+ rewardUserCode: EVAA_REWARDS_USER_CODE_MAINNET,
198
+ asset: TON_MAINNET,
199
+ availableReward: 0,
200
+ publicKey: Buffer.from('bfe9a30221db4dff4c17e55d985e0b13a8f597bbb28002f311dc4429dad1ca95', 'hex'), // adminAddress publicKey
201
+ };
202
+
203
+ export const MAINNET_MASTER_USDT_REWARD_CONFIG: EvaaRewardsConfig = {
204
+ adminAddress: EVAA_USDT_REWARDS_MASTER_MAINNET,
205
+ evaaMasterAddress: new Address(0, Buffer.alloc(32, 0)),
206
+ rewardMasterCode: EVAA_REWARDS_MASTER_CODE_MAINNET,
207
+ rewardUserCode: EVAA_REWARDS_USER_CODE_MAINNET,
208
+ asset: USDT_MAINNET,
209
+ availableReward: 0,
210
+ publicKey: Buffer.from('9813725d6cead1c9bbc0e24b21d4fc62a7fa8ac4bb01b6758df30169a71dba67', 'hex'), // adminAddress publicKey
211
+ };
212
+
213
+ export const ALL_MAINNET_POOLS: PoolConfig[] = [
214
+ MAINNET_POOL_CONFIG,
215
+ MAINNET_LP_POOL_CONFIG,
216
+ MAINNET_ALTS_POOL_CONFIG,
217
+ MAINNET_STABLE_POOL_CONFIG,
218
+ ];
@@ -0,0 +1,75 @@
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';
4
+ import { PoolConfig } from '../../types/Master';
5
+ import { EvaaRewardsConfig } from '../../types/MasterRewards';
6
+ import { EUSDT_TESTNET, JUSDC_TESTNET, TON_TESTNET } from '../assets';
7
+ import {
8
+ EVAA_MASTER_TESTNET_CLASSIC_TOB_AUDITED,
9
+ EVAA_MASTER_TESTNET_PYTH_TOB_AUDITED,
10
+ EVAA_REWARDS_MASTER_CODE_TESTNET,
11
+ EVAA_REWARDS_MASTER_TESTNET,
12
+ EVAA_REWARDS_USER_CODE_TESTNET,
13
+ LENDING_CODE,
14
+ MASTER_CONSTANTS,
15
+ ORACLES_TESTNET,
16
+ PYTH_ORACLE_TESTNET,
17
+ TESTNET_CLASSIC_TOB_AUDITED,
18
+ TESTNET_PYTH_VERSION_TOB_AUDITED,
19
+ } from '../general';
20
+
21
+ export const TESTNET_POOL_ASSETS_CONFIG = [TON_TESTNET, JUSDC_TESTNET];
22
+
23
+ export const TESTNET_POOL_ASSETS_CONFIG_TOB_AUDITED = [TON_TESTNET, JUSDC_TESTNET];
24
+
25
+ export const TESTNET_PYTH_POOL_CONFIG_TOB_AUDITED: PoolConfig = {
26
+ masterAddress: EVAA_MASTER_TESTNET_PYTH_TOB_AUDITED,
27
+ masterVersion: TESTNET_PYTH_VERSION_TOB_AUDITED,
28
+ masterConstants: MASTER_CONSTANTS,
29
+ oracles: new PythCollector({
30
+ poolAssetsConfig: TESTNET_POOL_ASSETS_CONFIG_TOB_AUDITED,
31
+ pythOracle: {
32
+ feedsMap: TESTNET_FEEDS_MAP,
33
+ pythAddress: PYTH_ORACLE_TESTNET,
34
+ allowedRefTokens: TESTNET_ALLOWED_REF_TOKENS,
35
+ },
36
+ pythConfig: DefaultPythPriceSourcesConfig,
37
+ }),
38
+ poolAssetsConfig: TESTNET_POOL_ASSETS_CONFIG_TOB_AUDITED,
39
+ lendingCode: LENDING_CODE,
40
+ };
41
+
42
+ export const TESTNET_CLASSIC_POOL_CONFIG_TOB_AUDITED: PoolConfig = {
43
+ masterAddress: EVAA_MASTER_TESTNET_CLASSIC_TOB_AUDITED,
44
+ masterVersion: TESTNET_CLASSIC_TOB_AUDITED,
45
+ masterConstants: MASTER_CONSTANTS,
46
+ oracles: new PricesCollector({
47
+ poolAssetsConfig: TESTNET_POOL_ASSETS_CONFIG,
48
+ minimalOracles: 3,
49
+ evaaOracles: ORACLES_TESTNET,
50
+ }),
51
+ lendingCode: LENDING_CODE,
52
+ poolAssetsConfig: TESTNET_POOL_ASSETS_CONFIG,
53
+ };
54
+
55
+ export const TESTNET_MASTER_REWARD_CONFIG: EvaaRewardsConfig = {
56
+ adminAddress: EVAA_REWARDS_MASTER_TESTNET,
57
+ evaaMasterAddress: new Address(0, Buffer.alloc(32, 0)),
58
+ rewardMasterCode: EVAA_REWARDS_MASTER_CODE_TESTNET,
59
+ rewardUserCode: EVAA_REWARDS_USER_CODE_TESTNET,
60
+ asset: TON_TESTNET,
61
+ availableReward: 0,
62
+ publicKey: Buffer.from('c38be45e033419b49cd22c97fbd23610fbc851a931208f8b4a1817dd11cb63ac', 'hex'), // adminAddress publicKey
63
+ };
64
+
65
+ export const TESTNET_MASTER_EUSDT_REWARD_CONFIG: EvaaRewardsConfig = {
66
+ adminAddress: EVAA_REWARDS_MASTER_TESTNET,
67
+ evaaMasterAddress: new Address(0, Buffer.alloc(32, 0)),
68
+ rewardMasterCode: EVAA_REWARDS_MASTER_CODE_TESTNET,
69
+ rewardUserCode: EVAA_REWARDS_USER_CODE_TESTNET,
70
+ asset: EUSDT_TESTNET,
71
+ availableReward: 0,
72
+ publicKey: Buffer.from('c38be45e033419b49cd22c97fbd23610fbc851a931208f8b4a1817dd11cb63ac', 'hex'), // adminAddress publicKey
73
+ };
74
+
75
+ export const ALL_TESTNET_POOLS: PoolConfig[] = [];