@evaafi/sdk 0.6.4 → 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 (129) 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/assets.d.ts +3 -0
  28. package/dist/constants/assets.js +14 -1
  29. package/dist/constants/general/index.d.ts +65 -0
  30. package/dist/constants/general/index.js +93 -0
  31. package/dist/constants/general/mainnet.d.ts +24 -0
  32. package/dist/constants/general/mainnet.js +53 -0
  33. package/dist/constants/general/testnet.d.ts +12 -0
  34. package/dist/constants/general/testnet.js +15 -0
  35. package/dist/constants/general.d.ts +4 -4
  36. package/dist/constants/general.js +6 -6
  37. package/dist/constants/index.d.ts +3 -0
  38. package/dist/constants/index.js +19 -0
  39. package/dist/constants/pools/index.d.ts +2 -0
  40. package/dist/constants/pools/index.js +18 -0
  41. package/dist/constants/pools/mainnet.d.ts +14 -0
  42. package/dist/constants/pools/mainnet.js +145 -0
  43. package/dist/constants/pools/testnet.d.ts +9 -0
  44. package/dist/constants/pools/testnet.js +57 -0
  45. package/dist/constants/pools.js +9 -9
  46. package/dist/contracts/AbstractMaster.d.ts +185 -0
  47. package/dist/contracts/AbstractMaster.js +179 -0
  48. package/dist/contracts/ClassicMaster.d.ts +34 -0
  49. package/dist/contracts/ClassicMaster.js +87 -0
  50. package/dist/contracts/PythMaster.d.ts +61 -0
  51. package/dist/contracts/PythMaster.js +179 -0
  52. package/dist/contracts/UserContract.d.ts +1 -7
  53. package/dist/contracts/UserContract.js +1 -19
  54. package/dist/contracts/index.d.ts +5 -0
  55. package/dist/contracts/index.js +21 -0
  56. package/dist/index.d.ts +14 -14
  57. package/dist/index.js +20 -60
  58. package/dist/prices/Oracle.interface.d.ts +9 -0
  59. package/dist/prices/Oracle.interface.js +2 -0
  60. package/dist/prices/Prices.d.ts +5 -3
  61. package/dist/prices/Prices.js +13 -3
  62. package/dist/prices/PricesCollector.d.ts +17 -7
  63. package/dist/prices/PricesCollector.js +67 -51
  64. package/dist/prices/PythCollector.d.ts +22 -0
  65. package/dist/prices/PythCollector.js +217 -0
  66. package/dist/prices/Types.d.ts +17 -2
  67. package/dist/prices/Types.js +8 -1
  68. package/dist/prices/index.d.ts +4 -3
  69. package/dist/prices/index.js +4 -3
  70. package/dist/prices/sources/Backend.d.ts +5 -4
  71. package/dist/prices/sources/Backend.js +16 -13
  72. package/dist/prices/sources/Icp.d.ts +2 -1
  73. package/dist/prices/sources/Icp.js +12 -9
  74. package/dist/prices/sources/PriceSource.d.ts +7 -6
  75. package/dist/prices/utils.d.ts +10 -9
  76. package/dist/prices/utils.js +32 -46
  77. package/dist/rewards/RewardMaster.d.ts +0 -1
  78. package/dist/rewards/RewardUser.d.ts +0 -1
  79. package/dist/types/Master.d.ts +10 -31
  80. package/dist/types/Master.js +3 -0
  81. package/dist/types/MasterRewards.d.ts +0 -1
  82. package/dist/types/UserRewards.d.ts +0 -1
  83. package/dist/utils/sha256BigInt.d.ts +0 -1
  84. package/dist/utils/userJettonWallet.js +0 -8
  85. package/dist/utils/utils.d.ts +8 -1
  86. package/dist/utils/utils.js +31 -2
  87. package/package.json +4 -3
  88. package/src/api/feeds.ts +90 -0
  89. package/src/api/liquidation.ts +1 -1
  90. package/src/api/math.ts +1 -1
  91. package/src/api/parser.ts +100 -38
  92. package/src/api/parsers/AbstractOracleParser.ts +16 -0
  93. package/src/api/parsers/ClassicOracleParser.ts +20 -0
  94. package/src/api/parsers/PythOracleParser.ts +34 -0
  95. package/src/api/parsers/index.ts +3 -0
  96. package/src/api/prices.ts +32 -41
  97. package/src/constants/assets/assetId.ts +30 -0
  98. package/src/constants/assets/index.ts +3 -0
  99. package/src/constants/{assets.ts → assets/mainnet.ts} +27 -94
  100. package/src/constants/assets/testnet.ts +74 -0
  101. package/src/constants/general/index.ts +91 -0
  102. package/src/constants/{general.ts → general/mainnet.ts} +48 -72
  103. package/src/constants/general/testnet.ts +25 -0
  104. package/src/constants/index.ts +3 -0
  105. package/src/constants/pools/index.ts +2 -0
  106. package/src/constants/pools/mainnet.ts +218 -0
  107. package/src/constants/pools/testnet.ts +75 -0
  108. package/src/contracts/AbstractMaster.ts +450 -0
  109. package/src/contracts/ClassicMaster.ts +149 -0
  110. package/src/contracts/PythMaster.ts +313 -0
  111. package/src/contracts/UserContract.ts +7 -28
  112. package/src/contracts/index.ts +7 -0
  113. package/src/index.ts +18 -85
  114. package/src/prices/Oracle.interface.ts +18 -0
  115. package/src/prices/Prices.ts +17 -4
  116. package/src/prices/PricesCollector.ts +91 -68
  117. package/src/prices/PythCollector.ts +294 -0
  118. package/src/prices/Types.ts +28 -6
  119. package/src/prices/index.ts +4 -3
  120. package/src/prices/sources/Backend.ts +21 -19
  121. package/src/prices/sources/Icp.ts +13 -10
  122. package/src/prices/sources/PriceSource.ts +6 -5
  123. package/src/prices/utils.ts +65 -68
  124. package/src/types/Master.ts +29 -52
  125. package/src/types/User.ts +15 -7
  126. package/src/utils/userJettonWallet.ts +0 -8
  127. package/src/utils/utils.ts +41 -2
  128. package/src/constants/pools.ts +0 -175
  129. package/src/contracts/MasterContract.ts +0 -410
@@ -0,0 +1,34 @@
1
+ import { Address, Dictionary, Slice } from '@ton/core';
2
+ import { AbstractOracleParser } from './AbstractOracleParser';
3
+
4
+ export type OracleConfig = {
5
+ pythAddress: Address;
6
+ // FYI: The Pyth max feeds count is 7, but it can add more in the future
7
+ feedsMap: Dictionary<bigint, Buffer>;
8
+ allowedRefTokens: Dictionary<bigint, bigint>;
9
+ };
10
+
11
+ export type PythOracleInfo = OracleConfig & {
12
+ pricesTtl: number;
13
+ pythComputeBaseGas: bigint;
14
+ pythComputePerUpdateGas: bigint;
15
+ pythSingleUpdateFee: bigint;
16
+ };
17
+
18
+ export class PythOracleParser extends AbstractOracleParser {
19
+ parseOracleConfig(masterConfigSlice: Slice): PythOracleInfo {
20
+ const oraclesSlice = masterConfigSlice.loadRef().beginParse();
21
+ const feedDataCell = oraclesSlice.loadRef();
22
+ const feedDataSlice = feedDataCell.beginParse();
23
+
24
+ return {
25
+ pythAddress: oraclesSlice.loadAddress(),
26
+ feedsMap: feedDataSlice.loadDict(Dictionary.Keys.BigUint(256), Dictionary.Values.Buffer(64)),
27
+ allowedRefTokens: feedDataSlice.loadDict(Dictionary.Keys.BigUint(256), Dictionary.Values.BigUint(256)),
28
+ pricesTtl: oraclesSlice.loadUint(32),
29
+ pythComputeBaseGas: oraclesSlice.loadUintBig(64),
30
+ pythComputePerUpdateGas: oraclesSlice.loadUintBig(64),
31
+ pythSingleUpdateFee: oraclesSlice.loadUintBig(64),
32
+ };
33
+ }
34
+ }
@@ -0,0 +1,3 @@
1
+ export * from './AbstractOracleParser';
2
+ export * from './ClassicOracleParser';
3
+ export * from './PythOracleParser';
package/src/api/prices.ts CHANGED
@@ -1,10 +1,35 @@
1
- import { PoolConfig } from '../types/Master';
2
- import { MAINNET_POOL_CONFIG } from '../constants/pools';
3
- import { DefaultPriceSourcesConfig, PriceData, PricesCollector, PriceSource, PriceSourcesConfig } from '../prices';
1
+ import { HexString } from '@pythnetwork/hermes-client';
2
+ import { createCellChain } from '@pythnetwork/pyth-ton-js';
3
+ import { Cell } from '@ton/core';
4
+ import { beginCell } from '@ton/ton';
5
+ import { Buffer } from 'buffer';
6
+
7
+ export function composeFeedsCell(feeds: HexString[]): Cell {
8
+ if (feeds.length === 0) {
9
+ return beginCell().storeUint(0, 8).endCell();
10
+ }
11
+
12
+ const reversedTail = feeds.slice(1).reverse();
13
+ const packedTail = reversedTail.reduce((prev: Cell | null, curr) => {
14
+ const builder = beginCell().storeUint(BigInt(curr), 256);
15
+ if (prev !== null) builder.storeRef(prev);
16
+ return builder.endCell();
17
+ }, null);
18
+ const firstFeed = feeds[0];
19
+ const builder = beginCell().storeUint(feeds.length, 8).storeUint(BigInt(firstFeed), 256);
20
+ if (packedTail !== null) {
21
+ builder.storeRef(packedTail!);
22
+ }
23
+
24
+ return builder.endCell();
25
+ }
4
26
 
5
- /**
6
- * @deprecated Use PriceCollector istead of getPrices
7
- */
27
+ export function packPythUpdatesData(pythUpdates: Buffer | Cell): Cell {
28
+ return pythUpdates instanceof Cell ? pythUpdates : createCellChain(pythUpdates);
29
+ }
30
+
31
+ /*
32
+ old code:
8
33
  export async function getPrices(endpoints: string[] = ["api.stardust-mainnet.iotaledger.net"], poolConfig: PoolConfig = MAINNET_POOL_CONFIG): Promise<PriceData> {
9
34
  if (endpoints.length == 0) {
10
35
  throw new Error("Empty endpoint list");
@@ -19,39 +44,5 @@ export async function getPrices(endpoints: string[] = ["api.stardust-mainnet.iot
19
44
  const prices = await priceCollector.getPrices();
20
45
 
21
46
  return { dict: prices.dict, dataCell: prices.dataCell };
22
- /*
23
- Old code
24
- const prices = await Promise.all(poolConfig.oracles.map(async x => await parsePrices(await loadPrices(x.address, endpoints), x.id)));
25
-
26
- let acceptedPrices: RawPriceData[] = prices.filter(verifyPrices(poolConfig.poolAssetsConfig));
27
-
28
-
29
- if (acceptedPrices.length < poolConfig.minimalOracles) {
30
- throw new Error("Prices are outdated");
31
- }
32
-
33
- if (acceptedPrices.length > poolConfig.minimalOracles && acceptedPrices.length % 2 == 0) {
34
- acceptedPrices = acceptedPrices.slice(0, acceptedPrices.length - 1); // to reduce fees, MINIMAL_ORACLES_NUMBER is odd
35
- }
36
-
37
- if (acceptedPrices.length != poolConfig.minimalOracles) {
38
- const sortedByTimestamp = acceptedPrices.slice().sort((a, b) => b.timestamp - a.timestamp);
39
- const newerPrices = sortedByTimestamp.slice(0, poolConfig.minimalOracles);
40
- acceptedPrices = newerPrices.sort((a, b) => a.oracleId - b.oracleId);
41
- }
42
-
43
-
44
- const medianData = poolConfig.poolAssetsConfig.map(asset => ({ assetId: asset.assetId, medianPrice: getMedianPrice(acceptedPrices, asset.assetId)}));
45
- const packedMedianData = packAssetsData(medianData);
46
-
47
- const oraclesData = acceptedPrices.map(x => ({oracle: {id: x.oracleId, pubkey: x.pubkey}, data: {timestamp: x.timestamp, prices: x.dict}, signature: x.signature}));
48
- const packedOracleData = packOraclesData(oraclesData, poolConfig.poolAssetsConfig.map(x => x.assetId));
49
-
50
- const dict = Dictionary.empty<bigint, bigint>();
51
- medianData.forEach(x => dict.set(x.assetId, x.medianPrice));
52
-
53
- return {
54
- dict: dict,
55
- dataCell: packPrices(packedMedianData, packedOracleData)
56
- };*/
57
47
  }
48
+ */
@@ -0,0 +1,30 @@
1
+ import { sha256Hash } from '../../utils/sha256BigInt';
2
+
3
+ export const ASSET_ID = {
4
+ TON: sha256Hash('TON'),
5
+ USDT: sha256Hash('USDT'),
6
+ jUSDT: sha256Hash('jUSDT'),
7
+ jUSDC: sha256Hash('jUSDC'),
8
+ stTON: sha256Hash('stTON'),
9
+ tsTON: sha256Hash('tsTON'),
10
+ tgBTC: sha256Hash('tgBTC'),
11
+ USDe: sha256Hash('USDe'),
12
+ tsUSDe: sha256Hash('tsUSDe'),
13
+ PT_tsUSDe_01Sep2025: sha256Hash('PT_tsUSDe_01Sep2025'),
14
+
15
+ // LP
16
+ TONUSDT_DEDUST: sha256Hash('TONUSDT_DEDUST'),
17
+ TONUSDT_STONFI: sha256Hash('TONUSDT_STONFI'),
18
+ TON_STORM: sha256Hash('TON_STORM'),
19
+ USDT_STORM: sha256Hash('USDT_STORM'),
20
+
21
+ // ALTS
22
+ NOT: sha256Hash('NOT'),
23
+ DOGS: sha256Hash('DOGS'),
24
+ CATI: sha256Hash('CATI'),
25
+ STON: sha256Hash('STON'),
26
+
27
+ // Testnet assets, faucet t.me/evaabuidl
28
+ EUSDT: sha256Hash('EUSDT'),
29
+ EUSDC: sha256Hash('EUSDC'),
30
+ };
@@ -0,0 +1,3 @@
1
+ export * from './assetId';
2
+ export * from './mainnet';
3
+ export * from './testnet';
@@ -1,35 +1,7 @@
1
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
-
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'),
14
- tgBTC: sha256Hash('tgBTC'),
15
- USDe: sha256Hash('USDe'),
16
- tsUSDe: sha256Hash('tsUSDe'),
17
- PT_tsUSDe_01Sep2025: sha256Hash('PT_tsUSDe_01Sep2025'),
18
-
19
- // LP
20
- TONUSDT_DEDUST: sha256Hash('TONUSDT_DEDUST'),
21
- TONUSDT_STONFI: sha256Hash('TONUSDT_STONFI'),
22
- TON_STORM: sha256Hash('TON_STORM'),
23
- USDT_STORM: sha256Hash('USDT_STORM'),
24
-
25
- // ALTS
26
- NOT: sha256Hash('NOT'),
27
- DOGS: sha256Hash('DOGS'),
28
- CATI: sha256Hash('CATI'),
29
-
30
- // Testnet assets
31
- EUSDT: sha256Hash('EUSDT'),
32
- };
2
+ import { PoolAssetConfig } from '../../types/Master';
3
+ import { JETTON_WALLET_STANDART_CODE, NULL_ADDRESS } from '../general';
4
+ import { ASSET_ID } from './assetId';
33
5
 
34
6
  export const UNDEFINED_ASSET: PoolAssetConfig = {
35
7
  name: 'undefined_asset',
@@ -44,7 +16,6 @@ export const TON_MAINNET: PoolAssetConfig = {
44
16
  jettonMasterAddress: NULL_ADDRESS, // fake
45
17
  jettonWalletCode: Cell.EMPTY,
46
18
  };
47
- export const TON_TESTNET = TON_MAINNET;
48
19
 
49
20
  export const JUSDT_MAINNET: PoolAssetConfig = {
50
21
  name: 'jUSDT',
@@ -90,32 +61,6 @@ export const USDT_MAINNET: PoolAssetConfig = {
90
61
  )[0],
91
62
  };
92
63
 
93
- export const JUSDT_TESTNET: PoolAssetConfig = {
94
- name: 'jUSDT',
95
- assetId: ASSET_ID.jUSDT,
96
- jettonMasterAddress: Address.parse('kQBe4gtSQMxM5RpMYLr4ydNY72F8JkY-icZXG1NJcsju8XM7'),
97
- jettonWalletCode: JETTON_WALLET_STANDART_CODE_TESTNET,
98
- };
99
-
100
- export const JUSDC_TESTNET: PoolAssetConfig = {
101
- name: 'jUSDC',
102
- assetId: ASSET_ID.jUSDC,
103
- jettonMasterAddress: Address.parse('kQDaY5yUatYnHei73HBqRX_Ox9LK2XnR7XuCY9MFC2INbfYI'),
104
- jettonWalletCode: JETTON_WALLET_STANDART_CODE_TESTNET,
105
- };
106
-
107
- export const STTON_TESTNET: PoolAssetConfig = {
108
- name: 'stTON',
109
- assetId: ASSET_ID.stTON,
110
- jettonMasterAddress: Address.parse('kQC3Duw3dg8k98xf5S7Bm7YOWVJ5QW8hm3iLqFfJfa_g9h07'),
111
- jettonWalletCode: Cell.fromBoc(
112
- Buffer.from(
113
- 'b5ee9c7201021201000362000114ff00f4a413f4bcf2c80b0102016202030202cc0405001ba0f605da89a1f401f481f481a8610201d40607020120090a01cf0831c02497c138007434c0c05c6c2544d7c0fc03383e903e900c7e800c5c75c87e800c7e800c1cea6d0000b4c7c8608403e29fa96ea54c4d167c027808608405e351466ea58c511100fc02b80860841657c1ef2ea54c4d167c02f80517c1300138c08c2103fcbc200800113e910c30003cb85360007ced44d0fa00fa40fa40d43010235f03018208989680a16d801072226eb32091719170e203c8cb055006cf165004fa02cb6a039358cc019130e201c901fb000201200b0c0081d40106b90f6a2687d007d207d206a1802698f90c1080bc6a28cdd0141083deecbef5d0958f97064699f98fd001809d02811e428027d012c678b00e78b6664f6aa401f1503d33ffa00fa4021f001ed44d0fa00fa40fa40d4305136a1522ac705f2e2c128c2fff2e2c254344270542013541403c85004fa0258cf1601cf16ccc922c8cb0112f400f400cb00c920f9007074c8cb02ca07cbffc9d004fa40f40431fa0020d749c200f2e2c4778018c8cb055008cf1670fa0217cb6b13cc80d0201200e0f009e8210178d4519c8cb1f19cb3f5007fa0222cf165006cf1625fa025003cf16c95005cc2391729171e25008a813a0820a625a00a014bcf2e2c504c98040fb001023c85004fa0258cf1601cf16ccc9ed5402f73b51343e803e903e90350c0234cffe80145468017e903e9014d6f1c1551cdb5c150804d50500f214013e809633c58073c5b33248b232c044bd003d0032c0327e401c1d3232c0b281f2fff274140371c1472c7cb8b0c2be80146a2860822625a019ad8228608239387028062849e5c412440e0dd7c138c34975c2c060101100c90c3b51343e803e903e90350c01b4cffe800c145128548df1c17cb8b04970bffcb8b0812082e4e1c02fbcb8b160841ef765f7b232c7c532cfd63e808873c5b25c60063232c14933c59c3e80b2dab33260103ec01004f214013e809633c58073c5b3327b552000705279a018a182107362d09cc8cb1f5230cb3f58fa025007cf165007cf16c9718010c8cb0524cf165006fa0215cb6a14ccc971fb0010241023007cc30023c200b08e218210d53276db708010c8cb055008cf165004fa0216cb6a12cb1f12cb3fc972fb0093356c21e203c85004fa0258cf1601cf16ccc9ed54',
114
- 'hex',
115
- ),
116
- )[0],
117
- };
118
-
119
64
  export const TONUSDT_DEDUST_MAINNET: PoolAssetConfig = {
120
65
  name: 'TONUSDT_DEDUST',
121
66
  assetId: ASSET_ID.TONUSDT_DEDUST,
@@ -188,42 +133,6 @@ export const NOT_MAINNET: PoolAssetConfig = {
188
133
  )[0],
189
134
  };
190
135
 
191
- export const UTON_MAINNET: PoolAssetConfig = {
192
- name: 'uTON',
193
- assetId: ASSET_ID.uTON,
194
- jettonMasterAddress: Address.parse('EQAfF5j3JMIpZlLmACv7Ub7RH7WmiVMuV4ivcgNYHvNnqHTz'),
195
- jettonWalletCode: Cell.fromBoc(
196
- Buffer.from(
197
- 'b5ee9c7201021301000439000114ff00f4a413f4bcf2c80b0102016202030202cc0405020120111200bbd906380492f827000e8698180b8d84a89af81f807707d207d2018fd0018b8eb90fd0018fd001801698f90c10807c53f52dd4a989a2cf805f010c1080bc6a28cdd4b18a22201f8067000c1082caf83de5d4aa22201f806f02f82c207f9784020120060701f7f01e99ffd007d20381140816000fd23182c5d797a76a2687d00699ffd207d206a18027c30817c317c31fc327c32fc2091d0fc30fc21a8036382f97160fc20e17ff971617c227c22b82a300209aa0a82e42802fd0109e59f80e78b00e78b666490e4658089fa00097a00658064907c80383a6465816503e5ffe4e802c080201200a0b01fefa40f40431fa0020d749c200f2e2c4778018c8cb055009cf1670fa0218cb6b13cc8210178d4519c8cb1f15cb3f5003fa02f843cf1658cf1621fa025004cf16c901cc2291729171e25004a812a08208989680a08208989680a08208989680a0bcf2e2c5f841f842f843f844f845c85005fa0213cb3f01cf1601cf16ccc9ed5409000ac98040fb000201200c0d00b948020d721ed44d0fa00d33ffa40fa40d43004f86102f862f863f864f865d31f218210178d4519ba0282107bdd97deba12b1f2e2c5d33f31fa0030f84101a0f861f841f842f843f844f845c85005fa0213cb3f01cf1601cf16ccc9ed54801f53b51343e8034cffe903e90350c013e1840be18be18fe193e194134cffe803e1048a83e187e903e903e113e1149165c15180104d505417214017e8084f2cfc073c58073c5b332487232c044fd0004bd0032c0327e401c1d3232c0b281f2fff2740a31c17e11140271c1462c7cb8b0c1be80145a2860822625a019a00e01f73b51343e8034cffe903e90350c013e1840be18be18fe193e194134cffe803e903d010c1c0060083d03dbe87cb8b13434c7fe80204c0048b0803cbd350c3e10be10a93e18be1049a87e187e10d402b1c17cb8b07e1070bffcb8b0945e6860822625a019ad82284820822625a0281401e820822625a028086814a42f201001f2b608a18208989680a018a1278e355275a014a182107362d09cc8cb1f5230cb3f58fa025003cf165003cf16c9718018c8cb05f843cf165006fa0215cb6a14ccc971fb0094375b6c21e221d70b01c30023c200b08e208210d53276db708010c8cb055004cf165004fa0212cb6a12cb1fcb3fc972fb00925f03e20f0038f841f842f843f844f845c85005fa0213cb3f01cf1601cf16ccc9ed5400c0f2e2c5058208989680a018a1f841f842f843f844f845c85005fa0213cb3f01cf1601cf16ccc9ed5482107bdd97dec8cb1f14cb3ff843cf1616cb3f01fa0215cb1f5003cf1658fa02ccc9718018c8cb05f844cf165003fa0212cb6accc970fb000047bfd8176a2687d00699ffd207d206a18027c30817c317c31fc327c32fc20fc21fc227c22c004bbdd79f6a2687d00699ffd207d206a18027c30817c317c31fc327c32fc20fc217c21fc227c22c',
198
- 'hex',
199
- ),
200
- )[0],
201
- };
202
-
203
- export const TGBTC_TESTNET: PoolAssetConfig = {
204
- name: 'tgBTC',
205
- assetId: ASSET_ID.tgBTC,
206
- jettonMasterAddress: Address.parse('kQDoy1cUAbGq253vwfoPcqSloODVAWkDBniR12PJFUHnK6Yf'),
207
- jettonWalletCode: Cell.fromBoc(
208
- Buffer.from(
209
- 'b5ee9c72010210010003ac000114ff00f4a413f4bcf2c80b01020162020302f8d001d0d3030171b08e48135f038020d721ed44d0d303fa00fa40fa40d104d31f01840f218210178d4519ba0282107bdd97deba12b1f2f48040d721fa003012a0401303c8cb0358fa0201cf1601cf16c9ed54e0fa40fa4031fa0031f401fa0031fa00013170f83a02d31f012082100f8a7ea5ba8e85303459db3ce03304050201200e0f01f603d33f0101fa00fa4021fa4430c000f2e14ded44d0d303fa00fa40fa40d1521ac705f2e0495115a120c2fff2aff82a54259070546004131503c8cb0358fa0201cf1601cf16c921c8cb0113f40012f400cb00c920f9007074c8cb02ca07cbffc9d004fa40f401fa002020d70b009ad74bc00101c001b0f2b19130e206025c228210178d4519ba8e84325adb3ce034218210595f07bcba8e843101db3ce0135f038210d372158cbadc840ff2f008090174c88210178d451901cb1f500a01cb3f5008fa0223cf1601cf1626fa025007cf16c9c8801801cb055004cf1670fa024063775003cb6bccccc945370700bc2191729171e2f839206e938123289120e2216e94318127109101e2f82f5005a05023a812a0738103a370f83ca00170f836a00170f836a07381040982100966018070f837a0bcf2b0048050fb005803c8cb0358fa0201cf1601cf16c9ed5403e6ed44d0d303fa00fa40fa40d107d33f0101fa005141a004fa40fa4053bac705f82a5464e070546004131503c8cb0358fa0201cf1601cf16c921c8cb0113f40012f400cb00c9f9007074c8cb02ca07cbffc9d0500cc7051bb1f2e04a09fa0021925f04e30d26d70b01c000b393306c33e30d55020a0b0c01d2ed44d0d303fa00fa40fa40d106d33f0101fa00fa40f404d120206ef271d0d74bc000018100f8beb0f2b15152a15249c705f2e04927c2fff2afc882107bdd97de01cb1f500301cb3f01fa0222cf1601cf1612f400c9c8801801cb0526cf1670fa02017158cb6accc9030d0060c882107362d09c01cb1f2501cb3f5004fa0258cf1658cf16c9c8801001cb0524cf1658fa02017158cb6accc98011fb00007a5054a1f82fa07381040982100966018070f837b60972fb02c8801001cb055005cf1670fa027001cb6a8210d53276db01cb1f5801cb3fc9810082fb0059002003c8cb0358fa0201cf1601cf16c9ed54006cf839206e9430811770de728106f170f8380170f836a0811b5870f836a0bcf2b0028050fb000303c8cb0358fa0201cf1601cf16c9ed540027bfd8176a2686981fd007d207d206899fc15209840021bc508f6a2686981fd007d207d2068af81c',
210
- 'hex',
211
- ),
212
- )[0],
213
- };
214
-
215
- export const EUSDT_TESTNET: PoolAssetConfig = {
216
- name: 'EUSDT',
217
- assetId: ASSET_ID.EUSDT,
218
- jettonMasterAddress: Address.parse('kQBe4gtSQMxM5RpMYLr4ydNY72F8JkY-icZXG1NJcsju8XM7'),
219
- jettonWalletCode: Cell.fromBoc(
220
- Buffer.from(
221
- 'b5ee9c7201021101000323000114ff00f4a413f4bcf2c80b0102016202030202cc0405001ba0f605da89a1f401f481f481a8610201d40607020120080900c30831c02497c138007434c0c05c6c2544d7c0fc03383e903e900c7e800c5c75c87e800c7e800c1cea6d0000b4c7e08403e29fa954882ea54c4d167c0278208405e3514654882ea58c511100fc02b80d60841657c1ef2ea4d67c02f817c12103fcbc2000113e910c1c2ebcb853600201200a0b0083d40106b90f6a2687d007d207d206a1802698fc1080bc6a28ca9105d41083deecbef09dd0958f97162e99f98fd001809d02811e428027d012c678b00e78b6664f6aa401f1503d33ffa00fa4021f001ed44d0fa00fa40fa40d4305136a1522ac705f2e2c128c2fff2e2c254344270542013541403c85004fa0258cf1601cf16ccc922c8cb0112f400f400cb00c920f9007074c8cb02ca07cbffc9d004fa40f40431fa0020d749c200f2e2c4778018c8cb055008cf1670fa0217cb6b13cc80c0201200d0e009e8210178d4519c8cb1f19cb3f5007fa0222cf165006cf1625fa025003cf16c95005cc2391729171e25008a813a08209c9c380a014bcf2e2c504c98040fb001023c85004fa0258cf1601cf16ccc9ed5402f73b51343e803e903e90350c0234cffe80145468017e903e9014d6f1c1551cdb5c150804d50500f214013e809633c58073c5b33248b232c044bd003d0032c0327e401c1d3232c0b281f2fff274140371c1472c7cb8b0c2be80146a2860822625a019ad822860822625a028062849e5c412440e0dd7c138c34975c2c0600f1000d73b51343e803e903e90350c01f4cffe803e900c145468549271c17cb8b049f0bffcb8b08160824c4b402805af3cb8b0e0841ef765f7b232c7c572cfd400fe8088b3c58073c5b25c60063232c14933c59c3e80b2dab33260103ec01004f214013e809633c58073c5b3327b552000705279a018a182107362d09cc8cb1f5230cb3f58fa025007cf165007cf16c9718010c8cb0524cf165006fa0215cb6a14ccc971fb0010241023007cc30023c200b08e218210d53276db708010c8cb055008cf165004fa0216cb6a12cb1f12cb3fc972fb0093356c21e203c85004fa0258cf1601cf16ccc9ed54',
222
- 'hex',
223
- ),
224
- )[0],
225
- };
226
-
227
136
  export const USDE_MAINNET: PoolAssetConfig = {
228
137
  name: 'USDe',
229
138
  assetId: ASSET_ID.USDe,
@@ -259,3 +168,27 @@ export const PT_tsUSDe_01Sep2025_MAINNET: PoolAssetConfig = {
259
168
  ),
260
169
  )[0],
261
170
  };
171
+
172
+ export const TONUSDT_STONFI_MAINNET: PoolAssetConfig = {
173
+ name: 'TONUSDT_STONFI',
174
+ assetId: ASSET_ID.TONUSDT_STONFI,
175
+ jettonMasterAddress: Address.parse('EQCGScrZe1xbyWqWDvdI6mzP-GAcAWFv6ZXuaJOuSqemxku4'),
176
+ jettonWalletCode: Cell.fromBoc(
177
+ Buffer.from(
178
+ 'b5ee9c7201010101002300084202c00836440d084e44fb94316132ac5a21417ef4f429ee09b5560b5678b334c3e8',
179
+ 'hex',
180
+ ),
181
+ )[0],
182
+ };
183
+
184
+ export const STON_MAINNET: PoolAssetConfig = {
185
+ name: 'STON',
186
+ assetId: ASSET_ID.STON,
187
+ jettonMasterAddress: Address.parse('EQA2kCVNwVsil2EM2mB0SkXytxCqQjS4mttjDpnXmwG9T6bO'),
188
+ jettonWalletCode: Cell.fromBoc(
189
+ Buffer.from(
190
+ 'b5ee9c7201021201000334000114ff00f4a413f4bcf2c80b0102016202030202cc0405001ba0f605da89a1f401f481f481a8610201d40607020148080900c30831c02497c138007434c0c05c6c2544d7c0fc02f83e903e900c7e800c5c75c87e800c7e800c1cea6d0000b4c7e08403e29fa954882ea54c4d167c0238208405e3514654882ea58c511100fc02780d60841657c1ef2ea4d67c02b817c12103fcbc2000113e910c1c2ebcb853600201200a0b020120101101f100f4cffe803e90087c007b51343e803e903e90350c144da8548ab1c17cb8b04a30bffcb8b0950d109c150804d50500f214013e809633c58073c5b33248b232c044bd003d0032c032483e401c1d3232c0b281f2fff274013e903d010c7e800835d270803cb8b11de0063232c1540233c59c3e8085f2dac4f3200c03f73b51343e803e903e90350c0234cffe80145468017e903e9014d6f1c1551cdb5c150804d50500f214013e809633c58073c5b33248b232c044bd003d0032c0327e401c1d3232c0b281f2fff274140371c1472c7cb8b0c2be80146a2860822625a020822625a004ad8228608239387028062849f8c3c975c2c070c008e00d0e0f00ae8210178d4519c8cb1f19cb3f5007fa0222cf165006cf1625fa025003cf16c95005cc2391729171e25008a813a08208e4e1c0aa008208989680a0a014bcf2e2c504c98040fb001023c85004fa0258cf1601cf16ccc9ed5400705279a018a182107362d09cc8cb1f5230cb3f58fa025007cf165007cf16c9718010c8cb0524cf165006fa0215cb6a14ccc971fb0010241023000e10491038375f040076c200b08e218210d53276db708010c8cb055008cf165004fa0216cb6a12cb1f12cb3fc972fb0093356c21e203c85004fa0258cf1601cf16ccc9ed5400db3b51343e803e903e90350c01f4cffe803e900c145468549271c17cb8b049f0bffcb8b0a0823938702a8005a805af3cb8b0e0841ef765f7b232c7c572cfd400fe8088b3c58073c5b25c60063232c14933c59c3e80b2dab33260103ec01004f214013e809633c58073c5b3327b55200083200835c87b51343e803e903e90350c0134c7e08405e3514654882ea0841ef765f784ee84ac7cb8b174cfcc7e800c04e81408f214013e809633c58073c5b3327b5520',
191
+ 'hex',
192
+ ),
193
+ )[0],
194
+ };
@@ -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 = 6;
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 = 3;
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 = 0;
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
- };