@paraswap/dex-lib 2.48.3 → 2.48.4-etherfi.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/build/abi/algebra/AlgebraPool.abi.json +727 -0
  2. package/build/abi/etherfi/eETHPool.json +9 -0
  3. package/build/abi/etherfi/weETH.json +20 -0
  4. package/build/abi/uniswap-v3/UniswapV3Quoter.abi.json +193 -0
  5. package/build/dex/algebra/algebra-pool.d.ts +46 -0
  6. package/build/dex/algebra/algebra-pool.js +336 -0
  7. package/build/dex/algebra/algebra-pool.js.map +1 -0
  8. package/build/dex/etherfi.d.ts +26 -0
  9. package/build/dex/etherfi.js +82 -0
  10. package/build/dex/etherfi.js.map +1 -0
  11. package/build/dex/index.js +2 -0
  12. package/build/dex/index.js.map +1 -1
  13. package/build/dex/quickswap/camelot-v3.d.ts +6 -0
  14. package/build/dex/quickswap/camelot-v3.js +19 -0
  15. package/build/dex/quickswap/camelot-v3.js.map +1 -0
  16. package/build/dex/quickswap/zyberswap-v3.d.ts +6 -0
  17. package/build/dex/quickswap/zyberswap-v3.js +19 -0
  18. package/build/dex/quickswap/zyberswap-v3.js.map +1 -0
  19. package/build/dex/uniswap-v2/rebase-tokens.json +7 -0
  20. package/package.json +1 -1
  21. package/src/abi/etherfi/eETHPool.json +9 -0
  22. package/src/abi/etherfi/weETH.json +20 -0
  23. package/src/dex/etherfi.ts +144 -0
  24. package/src/dex/index.ts +2 -0
  25. package/build/abi/Redstone.json +0 -739
  26. package/build/abi/angle/stagToken.json +0 -963
  27. package/build/abi/angle-transmuter/Pyth.json +0 -1534
  28. package/build/abi/angle-transmuter/Transmuter.json +0 -1719
  29. package/build/abi/pharaoh/PharaohPool.abi.json +0 -1582
  30. package/build/abi/smardex/smardex-factory.json +0 -185
  31. package/build/abi/smardex/smardex-pool.json +0 -578
  32. package/build/abi/smardex/smardex-router.json +0 -648
  33. package/build/abi/trader-joe-v2_1/FactoryABI.json +0 -1208
  34. package/build/abi/trader-joe-v2_1/PairABI.json +0 -1493
  35. package/build/abi/trader-joe-v2_1/RouterABI.json +0 -1489
  36. package/build/abi/trader-joe-v2_1/StateMulticall.json +0 -193
  37. package/build/dex/angle-staked-stable/angle-staked-stable-pool.d.ts +0 -53
  38. package/build/dex/angle-staked-stable/angle-staked-stable-pool.js +0 -175
  39. package/build/dex/angle-staked-stable/angle-staked-stable-pool.js.map +0 -1
  40. package/build/dex/angle-staked-stable/angle-staked-stable.d.ts +0 -42
  41. package/build/dex/angle-staked-stable/angle-staked-stable.js +0 -232
  42. package/build/dex/angle-staked-stable/angle-staked-stable.js.map +0 -1
  43. package/build/dex/angle-staked-stable/config.d.ts +0 -4
  44. package/build/dex/angle-staked-stable/config.js +0 -26
  45. package/build/dex/angle-staked-stable/config.js.map +0 -1
  46. package/build/dex/angle-staked-stable/types.d.ts +0 -15
  47. package/build/dex/angle-staked-stable/types.js +0 -3
  48. package/build/dex/angle-staked-stable/types.js.map +0 -1
  49. package/build/dex/angle-transmuter/angle-transmuter-pool.d.ts +0 -43
  50. package/build/dex/angle-transmuter/angle-transmuter-pool.js +0 -309
  51. package/build/dex/angle-transmuter/angle-transmuter-pool.js.map +0 -1
  52. package/build/dex/angle-transmuter/angle-transmuter.d.ts +0 -46
  53. package/build/dex/angle-transmuter/angle-transmuter.js +0 -233
  54. package/build/dex/angle-transmuter/angle-transmuter.js.map +0 -1
  55. package/build/dex/angle-transmuter/backedOracle.d.ts +0 -19
  56. package/build/dex/angle-transmuter/backedOracle.js +0 -56
  57. package/build/dex/angle-transmuter/backedOracle.js.map +0 -1
  58. package/build/dex/angle-transmuter/config.d.ts +0 -4
  59. package/build/dex/angle-transmuter/config.js +0 -20
  60. package/build/dex/angle-transmuter/config.js.map +0 -1
  61. package/build/dex/angle-transmuter/constants.d.ts +0 -4
  62. package/build/dex/angle-transmuter/constants.js +0 -8
  63. package/build/dex/angle-transmuter/constants.js.map +0 -1
  64. package/build/dex/angle-transmuter/pyth.d.ts +0 -19
  65. package/build/dex/angle-transmuter/pyth.js +0 -71
  66. package/build/dex/angle-transmuter/pyth.js.map +0 -1
  67. package/build/dex/angle-transmuter/redstone.d.ts +0 -20
  68. package/build/dex/angle-transmuter/redstone.js +0 -73
  69. package/build/dex/angle-transmuter/redstone.js.map +0 -1
  70. package/build/dex/angle-transmuter/transmuter.d.ts +0 -50
  71. package/build/dex/angle-transmuter/transmuter.js +0 -314
  72. package/build/dex/angle-transmuter/transmuter.js.map +0 -1
  73. package/build/dex/angle-transmuter/types.d.ts +0 -144
  74. package/build/dex/angle-transmuter/types.js +0 -31
  75. package/build/dex/angle-transmuter/types.js.map +0 -1
  76. package/build/dex/angle-transmuter/utils.d.ts +0 -9
  77. package/build/dex/angle-transmuter/utils.js +0 -264
  78. package/build/dex/angle-transmuter/utils.js.map +0 -1
  79. package/build/dex/smardex/subgraph-queries.d.ts +0 -1
  80. package/build/dex/smardex/subgraph-queries.js +0 -17
  81. package/build/dex/smardex/subgraph-queries.js.map +0 -1
  82. package/build/dex/smardex/usd-reserves.d.ts +0 -23
  83. package/build/dex/smardex/usd-reserves.js +0 -86
  84. package/build/dex/smardex/usd-reserves.js.map +0 -1
  85. package/build/dex/trader-joe-v2-1-2/config.d.ts +0 -4
  86. package/build/dex/trader-joe-v2-1-2/config.js +0 -47
  87. package/build/dex/trader-joe-v2-1-2/config.js.map +0 -1
  88. package/build/dex/trader-joe-v2-1-2/constants.d.ts +0 -20
  89. package/build/dex/trader-joe-v2-1-2/constants.js +0 -22
  90. package/build/dex/trader-joe-v2-1-2/constants.js.map +0 -1
  91. package/build/dex/trader-joe-v2-1-2/math/index.d.ts +0 -37
  92. package/build/dex/trader-joe-v2-1-2/math/index.js +0 -291
  93. package/build/dex/trader-joe-v2-1-2/math/index.js.map +0 -1
  94. package/build/dex/trader-joe-v2-1-2/trader-joe-v2-1-2-pool.d.ts +0 -60
  95. package/build/dex/trader-joe-v2-1-2/trader-joe-v2-1-2-pool.js +0 -248
  96. package/build/dex/trader-joe-v2-1-2/trader-joe-v2-1-2-pool.js.map +0 -1
  97. package/build/dex/trader-joe-v2-1-2/trader-joe-v2-1-2.d.ts +0 -53
  98. package/build/dex/trader-joe-v2-1-2/trader-joe-v2-1-2.js +0 -307
  99. package/build/dex/trader-joe-v2-1-2/trader-joe-v2-1-2.js.map +0 -1
  100. package/build/dex/trader-joe-v2-1-2/types.d.ts +0 -82
  101. package/build/dex/trader-joe-v2-1-2/types.js +0 -9
  102. package/build/dex/trader-joe-v2-1-2/types.js.map +0 -1
  103. package/build/dex/trader-joe-v2_1/config.d.ts +0 -4
  104. package/build/dex/trader-joe-v2_1/config.js +0 -47
  105. package/build/dex/trader-joe-v2_1/config.js.map +0 -1
  106. package/build/dex/trader-joe-v2_1/constants.d.ts +0 -20
  107. package/build/dex/trader-joe-v2_1/constants.js +0 -22
  108. package/build/dex/trader-joe-v2_1/constants.js.map +0 -1
  109. package/build/dex/trader-joe-v2_1/math/index.d.ts +0 -37
  110. package/build/dex/trader-joe-v2_1/math/index.js +0 -291
  111. package/build/dex/trader-joe-v2_1/math/index.js.map +0 -1
  112. package/build/dex/trader-joe-v2_1/trader-joe-v2.1.d.ts +0 -0
  113. package/build/dex/trader-joe-v2_1/trader-joe-v2.1.js +0 -384
  114. package/build/dex/trader-joe-v2_1/trader-joe-v2.1.js.map +0 -1
  115. package/build/dex/trader-joe-v2_1/trader-joe-v2_1-pool.d.ts +0 -60
  116. package/build/dex/trader-joe-v2_1/trader-joe-v2_1-pool.js +0 -247
  117. package/build/dex/trader-joe-v2_1/trader-joe-v2_1-pool.js.map +0 -1
  118. package/build/dex/trader-joe-v2_1/trader-joe-v2_1.d.ts +0 -53
  119. package/build/dex/trader-joe-v2_1/trader-joe-v2_1.js +0 -307
  120. package/build/dex/trader-joe-v2_1/trader-joe-v2_1.js.map +0 -1
  121. package/build/dex/trader-joe-v2_1/types.d.ts +0 -82
  122. package/build/dex/trader-joe-v2_1/types.js +0 -9
  123. package/build/dex/trader-joe-v2_1/types.js.map +0 -1
  124. package/build/dex/wombat/wombat-pool-poller.d.ts +0 -22
  125. package/build/dex/wombat/wombat-pool-poller.js +0 -164
  126. package/build/dex/wombat/wombat-pool-poller.js.map +0 -1
  127. package/build/dex-helper/RedisBatcher.d.ts +0 -20
  128. package/build/dex-helper/RedisBatcher.js +0 -75
  129. package/build/dex-helper/RedisBatcher.js.map +0 -1
@@ -1,264 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.filterDictionaryOnly = exports._quoteFees = exports._quoteBurnExactInput = exports._quoteBurnExactOutput = exports._quoteMintExactOutput = exports._quoteMintExactInput = void 0;
4
- const types_1 = require("./types");
5
- /// @notice Computes the `amountOut` of stablecoins to mint from `tokenIn` of a collateral with data `collatInfo`
6
- function _quoteMintExactInput(oracleValue, amountIn, fees, stablecoinsIssued, otherStablecoinSupply) {
7
- const amountOut = oracleValue * amountIn;
8
- return _quoteFees(fees, types_1.QuoteType.MintExactInput, amountOut, stablecoinsIssued, otherStablecoinSupply);
9
- }
10
- exports._quoteMintExactInput = _quoteMintExactInput;
11
- /// @notice Computes the `amountIn` of collateral to get during a mint of `amountOut` of stablecoins
12
- function _quoteMintExactOutput(oracleValue, amountOut, fees, stablecoinsIssued, otherStablecoinSupply) {
13
- const amountIn = _quoteFees(fees, types_1.QuoteType.MintExactOutput, amountOut, stablecoinsIssued, otherStablecoinSupply);
14
- return amountIn / oracleValue;
15
- }
16
- exports._quoteMintExactOutput = _quoteMintExactOutput;
17
- /// @notice Computes the `amountIn` of stablecoins to burn to release `amountOut` of `collateral`
18
- function _quoteBurnExactOutput(oracleValue, ratio, amountOut, fees, stablecoinsIssued, otherStablecoinSupply) {
19
- const amountIn = (amountOut * oracleValue) / ratio;
20
- return _quoteFees(fees, types_1.QuoteType.BurnExactOutput, amountIn, stablecoinsIssued, otherStablecoinSupply);
21
- }
22
- exports._quoteBurnExactOutput = _quoteBurnExactOutput;
23
- /// @notice Computes the `amountOut` of `collateral` to give during a burn operation of `amountIn` of stablecoins
24
- function _quoteBurnExactInput(oracleValue, ratio, amountIn, fees, stablecoinsIssued, otherStablecoinSupply) {
25
- const amountOut = _quoteFees(fees, types_1.QuoteType.BurnExactInput, amountIn, stablecoinsIssued, otherStablecoinSupply);
26
- return (amountOut * ratio) / oracleValue;
27
- }
28
- exports._quoteBurnExactInput = _quoteBurnExactInput;
29
- function _quoteFees(fees, quoteType, amountStable, stablecoinsIssued, otherStablecoinSupply) {
30
- const isMint = _isMint(quoteType);
31
- const isExact = _isExact(quoteType);
32
- const n = isMint ? fees.xFeeMint.length : fees.xFeeBurn.length;
33
- let currentExposure = (stablecoinsIssued * types_1.BASE_9) / (otherStablecoinSupply + stablecoinsIssued);
34
- let amount = 0;
35
- // Finding in which segment the current exposure to the collateral is
36
- let i = findLowerBound(isMint, isMint ? fees.xFeeMint : fees.xFeeBurn, types_1.BASE_9, currentExposure);
37
- let lowerExposure;
38
- let upperExposure;
39
- let lowerFees;
40
- let upperFees;
41
- let amountToNextBreakPoint;
42
- while (i < n - 1) {
43
- // We compute a linear by part function on the amount swapped
44
- // The `amountToNextBreakPoint` variable is the `b_{i+1}` value from the whitepaper
45
- if (isMint) {
46
- lowerExposure = fees.xFeeMint[i];
47
- upperExposure = fees.xFeeMint[i + 1];
48
- lowerFees = fees.yFeeMint[i];
49
- upperFees = fees.yFeeMint[i + 1];
50
- amountToNextBreakPoint =
51
- (otherStablecoinSupply * upperExposure) / (types_1.BASE_9 - upperExposure) -
52
- stablecoinsIssued;
53
- }
54
- else {
55
- // The exposures in the burn case are decreasing
56
- lowerExposure = fees.xFeeBurn[i];
57
- upperExposure = fees.xFeeBurn[i + 1];
58
- lowerFees = fees.yFeeBurn[i];
59
- upperFees = fees.yFeeBurn[i + 1];
60
- // The `b_{i+1}` value in the burn case is the opposite value of the mint case
61
- amountToNextBreakPoint =
62
- stablecoinsIssued -
63
- (otherStablecoinSupply * upperExposure) / (types_1.BASE_9 - upperExposure);
64
- }
65
- let currentFees;
66
- if (lowerExposure * types_1.BASE_9 === currentExposure) {
67
- currentFees = lowerFees;
68
- }
69
- else if (lowerFees === upperFees) {
70
- currentFees = lowerFees;
71
- }
72
- else {
73
- // This is the opposite of the `b_i` value from the whitepaper.
74
- const amountFromPrevBreakPoint = isMint
75
- ? stablecoinsIssued -
76
- (otherStablecoinSupply * lowerExposure) / (types_1.BASE_9 - lowerExposure)
77
- : (otherStablecoinSupply * lowerExposure) / (types_1.BASE_9 - lowerExposure) -
78
- stablecoinsIssued;
79
- // slope = (upperFees - lowerFees) / (amountToNextBreakPoint + amountFromPrevBreakPoint)
80
- // `currentFees` is the `g(0)` value from the whitepaper
81
- currentFees =
82
- lowerFees +
83
- ((upperFees - lowerFees) * amountFromPrevBreakPoint) /
84
- (amountToNextBreakPoint + amountFromPrevBreakPoint);
85
- }
86
- {
87
- let amountToNextBreakPointNormalizer = isExact
88
- ? amountToNextBreakPoint
89
- : isMint
90
- ? _invertFeeMint(amountToNextBreakPoint, (upperFees + currentFees) / 2)
91
- : _applyFeeBurn(amountToNextBreakPoint, (upperFees + currentFees) / 2);
92
- if (amountToNextBreakPointNormalizer >= amountStable) {
93
- let midFee;
94
- if (isExact) {
95
- // `(g_i(0) + g_i(M)) / 2 = g(0) + (f_{i+1} - g(0)) * M / (2 * b_{i+1})`
96
- midFee =
97
- currentFees +
98
- (amountStable * (upperFees - currentFees)) /
99
- (2 * amountToNextBreakPointNormalizer);
100
- }
101
- else {
102
- // Here instead of computing the closed form expression for `m_t` derived in the whitepaper,
103
- // we are computing: `(g(0)+g_i(m_t))/2 = g(0)+(f_{i+1}-f_i)/(b_{i+1}-b_i)m_t/2
104
- // ac4 is the value of `2M(f_{i+1}-f_i)/(b_{i+1}-b_i) = 2M(f_{i+1}-g(0))/b_{i+1}` used
105
- // in the computation of `m_t` in both the mint and burn case
106
- const ac4 = (types_1.BASE_9 * (2 * amountStable * (upperFees - currentFees))) /
107
- amountToNextBreakPoint;
108
- if (isMint) {
109
- // In the mint case:
110
- // `m_t = (-1-g(0)+sqrt[(1+g(0))**2+2M(f_{i+1}-g(0))/b_{i+1})]/((f_{i+1}-g(0))/b_{i+1})`
111
- // And so: g(0)+(f_{i+1}-f_i)/(b_{i+1}-b_i)m_t/2
112
- // = (g(0)-1+sqrt[(1+g(0))**2+2M(f_{i+1}-g(0))/b_{i+1})])
113
- midFee = Number((Math.sqrt((types_1.BASE_9 + currentFees) ** 2 + ac4) +
114
- currentFees -
115
- types_1.BASE_9) /
116
- 2);
117
- }
118
- else {
119
- // In the burn case:
120
- // `m_t = (1-g(0)+sqrt[(1-g(0))**2-2M(f_{i+1}-g(0))/b_{i+1})]/((f_{i+1}-g(0))/b_{i+1})`
121
- // And so: g(0)+(f_{i+1}-f_i)/(b_{i+1}-b_i)m_t/2
122
- // = (g(0)+1-sqrt[(1-g(0))**2-2M(f_{i+1}-g(0))/b_{i+1})])
123
- const baseMinusCurrentSquared = (types_1.BASE_9 - currentFees) ** 2;
124
- // Mathematically, this condition is always verified, but rounding errors may make this
125
- // mathematical invariant break, in which case we consider that the square root is null
126
- if (baseMinusCurrentSquared < ac4) {
127
- midFee = (currentFees + types_1.BASE_9) / 2;
128
- }
129
- else {
130
- midFee =
131
- (currentFees +
132
- types_1.BASE_9 -
133
- Math.sqrt(baseMinusCurrentSquared - ac4)) /
134
- 2;
135
- }
136
- }
137
- }
138
- return amount + _computeFee(quoteType, amountStable, midFee);
139
- }
140
- else {
141
- amountStable -= amountToNextBreakPointNormalizer;
142
- amount += !isExact
143
- ? amountToNextBreakPoint
144
- : isMint
145
- ? _invertFeeMint(amountToNextBreakPoint, (upperFees + currentFees) / 2)
146
- : _applyFeeBurn(amountToNextBreakPoint, (upperFees + currentFees) / 2);
147
- currentExposure = upperExposure * types_1.BASE_9;
148
- ++i;
149
- // Update for the rest of the swaps the stablecoins issued from the asset
150
- stablecoinsIssued = isMint
151
- ? stablecoinsIssued + amountToNextBreakPoint
152
- : stablecoinsIssued - amountToNextBreakPoint;
153
- }
154
- }
155
- }
156
- return (amount +
157
- _computeFee(quoteType, amountStable, isMint ? fees.yFeeMint[n - 1] : fees.yFeeBurn[n - 1]));
158
- }
159
- exports._quoteFees = _quoteFees;
160
- function findLowerBound(increasingArray, array, normalizerArray, element) {
161
- if (array.length === 0) {
162
- return 0;
163
- }
164
- let low = 1;
165
- let high = array.length;
166
- if ((increasingArray && array[high - 1] * normalizerArray <= element) ||
167
- (!increasingArray && array[high - 1] * normalizerArray >= element)) {
168
- return high - 1;
169
- }
170
- while (low < high) {
171
- const mid = Math.floor((low + high) / 2);
172
- if (increasingArray
173
- ? array[mid] * normalizerArray > element
174
- : array[mid] * normalizerArray < element) {
175
- high = mid;
176
- }
177
- else {
178
- low = mid + 1;
179
- }
180
- }
181
- return low - 1;
182
- }
183
- function _isMint(quoteType) {
184
- return (quoteType === types_1.QuoteType.MintExactInput ||
185
- quoteType === types_1.QuoteType.MintExactOutput);
186
- }
187
- function _isExact(quoteType) {
188
- return (quoteType === types_1.QuoteType.MintExactOutput ||
189
- quoteType === types_1.QuoteType.BurnExactInput);
190
- }
191
- function _applyFeeMint(amountIn, fees) {
192
- if (fees >= 0) {
193
- const castedFees = fees;
194
- // Consider that if fees are above `BASE_12` this is equivalent to infinite fees
195
- if (castedFees >= types_1.BASE_12)
196
- throw new Error('InvalidSwap');
197
- return (amountIn * types_1.BASE_9) / (types_1.BASE_9 + castedFees);
198
- }
199
- else {
200
- return (amountIn * types_1.BASE_9) / (types_1.BASE_9 - Math.abs(-fees));
201
- }
202
- }
203
- function _invertFeeMint(amountOut, fees) {
204
- if (fees >= 0) {
205
- const castedFees = fees;
206
- // Consider that if fees are above `BASE_12` this is equivalent to infinite fees
207
- if (castedFees >= types_1.BASE_12)
208
- throw new Error('InvalidSwap');
209
- return (amountOut * (types_1.BASE_9 + castedFees)) / types_1.BASE_9;
210
- }
211
- else {
212
- return (amountOut * (types_1.BASE_9 - Math.abs(-fees))) / types_1.BASE_9;
213
- }
214
- }
215
- function _applyFeeBurn(amountIn, fees) {
216
- if (fees >= 0) {
217
- const castedFees = fees;
218
- if (castedFees >= types_1.MAX_BURN_FEE)
219
- throw new Error('InvalidSwap');
220
- return ((types_1.BASE_9 - castedFees) * amountIn) / types_1.BASE_9;
221
- }
222
- else {
223
- return ((types_1.BASE_9 + Math.abs(-fees)) * amountIn) / types_1.BASE_9;
224
- }
225
- }
226
- function _invertFeeBurn(amountOut, fees) {
227
- if (fees >= 0) {
228
- const castedFees = fees;
229
- if (castedFees >= types_1.MAX_BURN_FEE)
230
- throw new Error('InvalidSwap');
231
- return (amountOut * types_1.BASE_9) / (types_1.BASE_9 - castedFees);
232
- }
233
- else {
234
- return (amountOut * types_1.BASE_9) / (types_1.BASE_9 + Math.abs(-fees));
235
- }
236
- }
237
- function _computeFee(quoteType, amount, fees) {
238
- if (quoteType === types_1.QuoteType.MintExactInput) {
239
- return _applyFeeMint(amount, fees);
240
- }
241
- else if (quoteType === types_1.QuoteType.MintExactOutput) {
242
- return _invertFeeMint(amount, fees);
243
- }
244
- else if (quoteType === types_1.QuoteType.BurnExactInput) {
245
- return _applyFeeBurn(amount, fees);
246
- }
247
- else {
248
- return _invertFeeBurn(amount, fees);
249
- }
250
- }
251
- function filterDictionaryOnly(obj) {
252
- const result = {};
253
- Object.keys(obj).map(key => {
254
- if (Object.prototype.hasOwnProperty.call(obj, key)) {
255
- // Skip numeric keys to exclude array-like properties
256
- if (isNaN(Number(key))) {
257
- result[key] = obj[key];
258
- }
259
- }
260
- });
261
- return result;
262
- }
263
- exports.filterDictionaryOnly = filterDictionaryOnly;
264
- //# sourceMappingURL=utils.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../src/dex/angle-transmuter/utils.ts"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- export declare const fetchPaginatedPairUSDReservesQuery: (first: number, skip: number) => string;
@@ -1,17 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.fetchPaginatedPairUSDReservesQuery = void 0;
4
- const fetchPaginatedPairUSDReservesQuery = (first, skip) => `query {
5
- pairs(
6
- orderBy: reserveUSD
7
- orderDirection: desc
8
- where: {reserve0_gt: 1, reserve1_gt: 1}
9
- first: ${first}
10
- skip: ${skip}
11
- ) {
12
- id
13
- reserveUSD
14
- }
15
- }`;
16
- exports.fetchPaginatedPairUSDReservesQuery = fetchPaginatedPairUSDReservesQuery;
17
- //# sourceMappingURL=subgraph-queries.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"subgraph-queries.js","sourceRoot":"","sources":["../../../src/dex/smardex/subgraph-queries.ts"],"names":[],"mappings":";;;AAAO,MAAM,kCAAkC,GAAG,CAChD,KAAa,EACb,IAAY,EACZ,EAAE,CACF;;;;;eAKa,KAAK;cACN,IAAI;;;;;IAKd,CAAC;AAfQ,QAAA,kCAAkC,sCAe1C"}
@@ -1,23 +0,0 @@
1
- import { Network } from '../../constants';
2
- import { IDexHelper } from '../../dex-helper';
3
- import { Address } from '../../types';
4
- import { USDReserve } from './types';
5
- export declare class USDReservesService {
6
- private static readonly CACHE_KEY_LOCK;
7
- private static readonly CACHE_TTL_LOCK;
8
- private static readonly CACHE_TTL_RESERVES;
9
- private static readonly CACHE_RESERVE_KEY_SUFFIX;
10
- private readonly subgraphURL;
11
- private readonly dexHelper;
12
- private readonly dexKey;
13
- private readonly network;
14
- private readonly logger;
15
- constructor(dexKey: string, network: Network, dexHelper: IDexHelper, subgraphURL: string);
16
- getUSDReserveForPair(pairAddress: Address): Promise<number>;
17
- private refreshUSDReservesIfNeeded;
18
- private lockUSDReservesCache;
19
- private areUSDReservesOutdated;
20
- private cacheUSDReserves;
21
- fetchSubgraphReserves(): Promise<USDReserve[]>;
22
- fetchPaginatedReserves(page: number, pageSize: number): Promise<USDReserve[]>;
23
- }
@@ -1,86 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.USDReservesService = void 0;
4
- const constants_1 = require("../../constants");
5
- const subgraph_queries_1 = require("./subgraph-queries");
6
- // Service for managing USD reserves for Smardex
7
- class USDReservesService {
8
- constructor(dexKey, network, dexHelper, subgraphURL) {
9
- this.dexKey = dexKey;
10
- this.subgraphURL = subgraphURL;
11
- this.network = network;
12
- this.dexHelper = dexHelper;
13
- this.logger = dexHelper.getLogger();
14
- }
15
- // Retrieves USD reserve for a specific pair from the cache
16
- async getUSDReserveForPair(pairAddress) {
17
- const suffix = USDReservesService.CACHE_RESERVE_KEY_SUFFIX;
18
- await this.refreshUSDReservesIfNeeded();
19
- const cachedReserve = await this.dexHelper.cache.get(this.dexKey, this.network, `${pairAddress.toLowerCase()}${suffix}`);
20
- return cachedReserve ? Number(cachedReserve) : 0;
21
- }
22
- // Updates USD reserves if they are outdated
23
- async refreshUSDReservesIfNeeded() {
24
- if (!this.subgraphURL || !(await this.areUSDReservesOutdated())) {
25
- return;
26
- }
27
- await this.lockUSDReservesCache();
28
- const pairs = await this.fetchSubgraphReserves();
29
- await this.cacheUSDReserves(pairs);
30
- }
31
- // Acquires a lock on the USD reserves cache
32
- async lockUSDReservesCache() {
33
- await this.dexHelper.cache.setex(this.dexKey, this.network, USDReservesService.CACHE_KEY_LOCK, USDReservesService.CACHE_TTL_LOCK, Date.now().toString());
34
- }
35
- // Checks if the USD reserves are outdated
36
- async areUSDReservesOutdated() {
37
- const lastUpdate = await this.dexHelper.cache.get(this.dexKey, this.network, USDReservesService.CACHE_KEY_LOCK);
38
- return !lastUpdate;
39
- }
40
- // Caches USD reserves for all pairs
41
- async cacheUSDReserves(reserves) {
42
- const suffix = USDReservesService.CACHE_RESERVE_KEY_SUFFIX;
43
- for (const reserve of reserves) {
44
- await this.dexHelper.cache.setex(this.dexKey, this.network, `${reserve.pairAddress}${suffix}`, USDReservesService.CACHE_TTL_RESERVES, reserve.reserveUSD.toString());
45
- }
46
- }
47
- async fetchSubgraphReserves() {
48
- const pageSize = 100;
49
- let page = 1;
50
- let pairs = [];
51
- let paginatedPairs = await this.fetchPaginatedReserves(page, pageSize);
52
- while (paginatedPairs.length > 0) {
53
- pairs = [...pairs, ...paginatedPairs];
54
- page++;
55
- paginatedPairs = await this.fetchPaginatedReserves(page, pageSize);
56
- }
57
- return pairs;
58
- }
59
- // Fetches pair data from the subgraph
60
- async fetchPaginatedReserves(page, pageSize) {
61
- const skip = Math.max(0, page - 1) * pageSize;
62
- const limit = pageSize;
63
- const paginatedQuery = (0, subgraph_queries_1.fetchPaginatedPairUSDReservesQuery)(limit, skip);
64
- try {
65
- const apiToken = this.dexHelper.config.data.smardexSubgraphAuthToken;
66
- const response = await this.dexHelper.httpRequest.post(this.subgraphURL, { query: paginatedQuery }, constants_1.SUBGRAPH_TIMEOUT, { 'x-api-key': apiToken });
67
- if (!response.data || !response.data.pairs) {
68
- return [];
69
- }
70
- return response.data.pairs.map((pair) => ({
71
- pairAddress: pair.id,
72
- reserveUSD: pair.reserveUSD,
73
- }));
74
- }
75
- catch (error) {
76
- this.logger.error('Error fetching paginated reserves from subgraph', error);
77
- return [];
78
- }
79
- }
80
- }
81
- exports.USDReservesService = USDReservesService;
82
- USDReservesService.CACHE_KEY_LOCK = 'cached-reserves-usd';
83
- USDReservesService.CACHE_TTL_LOCK = 120; // 2 minutes
84
- USDReservesService.CACHE_TTL_RESERVES = 60 * 60; // 1 hour
85
- USDReservesService.CACHE_RESERVE_KEY_SUFFIX = '-usd-reserve';
86
- //# sourceMappingURL=usd-reserves.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"usd-reserves.js","sourceRoot":"","sources":["../../../src/dex/smardex/usd-reserves.ts"],"names":[],"mappings":"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"}
@@ -1,4 +0,0 @@
1
- import { DexParams } from './types';
2
- import { DexConfigMap, AdapterMappings } from '../../types';
3
- export declare const TraderJoeV2_1Config: DexConfigMap<DexParams>;
4
- export declare const Adapters: Record<number, AdapterMappings>;
@@ -1,47 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.Adapters = exports.TraderJoeV2_1Config = void 0;
4
- const constants_1 = require("../../constants");
5
- exports.TraderJoeV2_1Config = {
6
- TraderJoeV2_1: {
7
- [constants_1.Network.MAINNET]: {
8
- factory: '0xDC8d77b69155c7E68A95a4fb0f06a71FF90B943a',
9
- router: '0x9A93a421b74F1c5755b83dD2C211614dC419C44b',
10
- stateMulticall: '',
11
- },
12
- [constants_1.Network.ARBITRUM]: {
13
- factory: '0x8e42f2F4101563bF679975178e880FD87d3eFd4e',
14
- router: '0xb4315e873dBcf96Ffd0acd8EA43f689D8c20fB30',
15
- stateMulticall: '',
16
- },
17
- [constants_1.Network.BSC]: {
18
- factory: '0x8e42f2F4101563bF679975178e880FD87d3eFd4e',
19
- router: '0xb4315e873dBcf96Ffd0acd8EA43f689D8c20fB30',
20
- stateMulticall: '',
21
- },
22
- [constants_1.Network.AVALANCHE]: {
23
- factory: '0x8e42f2F4101563bF679975178e880FD87d3eFd4e',
24
- router: '0xb4315e873dBcf96Ffd0acd8EA43f689D8c20fB30',
25
- stateMulticall: '0xBAEeb4540f59d30E567a5B563CC0c4587eDd9366',
26
- },
27
- },
28
- };
29
- exports.Adapters = {
30
- [constants_1.Network.MAINNET]: {
31
- [constants_1.SwapSide.SELL]: [{ name: 'Adapter04', index: 5 }],
32
- [constants_1.SwapSide.BUY]: [{ name: 'BuyAdapter02', index: 1 }],
33
- },
34
- [constants_1.Network.ARBITRUM]: {
35
- [constants_1.SwapSide.SELL]: [{ name: 'ArbitrumAdapter02', index: 4 }],
36
- [constants_1.SwapSide.BUY]: [{ name: 'ArbitrumBuyAdapter', index: 7 }],
37
- },
38
- [constants_1.Network.BSC]: {
39
- [constants_1.SwapSide.SELL]: [{ name: 'BscAdapter02', index: 5 }],
40
- [constants_1.SwapSide.BUY]: [{ name: 'BscBuyAdapter', index: 6 }],
41
- },
42
- [constants_1.Network.AVALANCHE]: {
43
- [constants_1.SwapSide.SELL]: [{ name: 'AvalancheAdapter02', index: 4 }],
44
- [constants_1.SwapSide.BUY]: [{ name: 'AvalancheBuyAdapter', index: 5 }],
45
- },
46
- };
47
- //# sourceMappingURL=config.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../../../src/dex/trader-joe-v2-1-2/config.ts"],"names":[],"mappings":";;;AAEA,+CAAoD;AAEvC,QAAA,mBAAmB,GAA4B;IAC1D,aAAa,EAAE;QACb,CAAC,mBAAO,CAAC,OAAO,CAAC,EAAE;YACjB,OAAO,EAAE,4CAA4C;YACrD,MAAM,EAAE,4CAA4C;YACpD,cAAc,EAAE,EAAE;SACnB;QACD,CAAC,mBAAO,CAAC,QAAQ,CAAC,EAAE;YAClB,OAAO,EAAE,4CAA4C;YACrD,MAAM,EAAE,4CAA4C;YACpD,cAAc,EAAE,EAAE;SACnB;QACD,CAAC,mBAAO,CAAC,GAAG,CAAC,EAAE;YACb,OAAO,EAAE,4CAA4C;YACrD,MAAM,EAAE,4CAA4C;YACpD,cAAc,EAAE,EAAE;SACnB;QACD,CAAC,mBAAO,CAAC,SAAS,CAAC,EAAE;YACnB,OAAO,EAAE,4CAA4C;YACrD,MAAM,EAAE,4CAA4C;YACpD,cAAc,EAAE,4CAA4C;SAC7D;KACF;CACF,CAAC;AAEW,QAAA,QAAQ,GAAoC;IACvD,CAAC,mBAAO,CAAC,OAAO,CAAC,EAAE;QACjB,CAAC,oBAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC;QAClD,CAAC,oBAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,cAAc,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC;KACrD;IACD,CAAC,mBAAO,CAAC,QAAQ,CAAC,EAAE;QAClB,CAAC,oBAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,mBAAmB,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC;QAC1D,CAAC,oBAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,oBAAoB,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC;KAC3D;IACD,CAAC,mBAAO,CAAC,GAAG,CAAC,EAAE;QACb,CAAC,oBAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,cAAc,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC;QACrD,CAAC,oBAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,eAAe,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC;KACtD;IACD,CAAC,mBAAO,CAAC,SAAS,CAAC,EAAE;QACnB,CAAC,oBAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,oBAAoB,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC;QAC3D,CAAC,oBAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,qBAAqB,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC;KAC5D;CACF,CAAC"}
@@ -1,20 +0,0 @@
1
- export declare const TRADER_JOE_V2_CHUNKS = 10;
2
- export declare const TRADER_JOE_V2_QUOTE_GASLIMIT = 200000;
3
- export declare const EMPTY_POOL_CACHE_TTL: number;
4
- export declare const POPULATED_POOL_CACHE_TTL: number;
5
- export declare const BASIS_POINT_MAX = 10000n;
6
- export declare const SCALE_OFFSET = 128n;
7
- export declare const PRECISION: bigint;
8
- export declare const CACHE_PREFIX = "dl";
9
- export declare const MinLBPairAbi: {
10
- inputs: never[];
11
- name: string;
12
- outputs: {
13
- internalType: string;
14
- name: string;
15
- type: string;
16
- }[];
17
- stateMutability: string;
18
- type: string;
19
- }[];
20
- export declare const SUPPORTED_BIN_STEPS: bigint[];
@@ -1,22 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.SUPPORTED_BIN_STEPS = exports.MinLBPairAbi = exports.CACHE_PREFIX = exports.PRECISION = exports.SCALE_OFFSET = exports.BASIS_POINT_MAX = exports.POPULATED_POOL_CACHE_TTL = exports.EMPTY_POOL_CACHE_TTL = exports.TRADER_JOE_V2_QUOTE_GASLIMIT = exports.TRADER_JOE_V2_CHUNKS = void 0;
4
- exports.TRADER_JOE_V2_CHUNKS = 10;
5
- exports.TRADER_JOE_V2_QUOTE_GASLIMIT = 200000;
6
- exports.EMPTY_POOL_CACHE_TTL = 60 * 60;
7
- exports.POPULATED_POOL_CACHE_TTL = 12 * 60 * 60;
8
- exports.BASIS_POINT_MAX = 10000n;
9
- exports.SCALE_OFFSET = 128n;
10
- exports.PRECISION = BigInt(1e18);
11
- exports.CACHE_PREFIX = 'dl';
12
- exports.MinLBPairAbi = [
13
- {
14
- inputs: [],
15
- name: 'getTokenX',
16
- outputs: [{ internalType: 'contract IERC20', name: '', type: 'address' }],
17
- stateMutability: 'view',
18
- type: 'function',
19
- },
20
- ];
21
- exports.SUPPORTED_BIN_STEPS = [1n, 2n, 5n, 10n, 15n, 20n, 25n, 50n, 100n];
22
- //# sourceMappingURL=constants.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../src/dex/trader-joe-v2-1-2/constants.ts"],"names":[],"mappings":";;;AAAa,QAAA,oBAAoB,GAAG,EAAE,CAAC;AAC1B,QAAA,4BAA4B,GAAG,MAAO,CAAC;AAEvC,QAAA,oBAAoB,GAAG,EAAE,GAAG,EAAE,CAAC;AAC/B,QAAA,wBAAwB,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC;AAExC,QAAA,eAAe,GAAG,MAAO,CAAC;AAC1B,QAAA,YAAY,GAAG,IAAI,CAAC;AACpB,QAAA,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC;AACzB,QAAA,YAAY,GAAG,IAAI,CAAC;AAEpB,QAAA,YAAY,GAAG;IAC1B;QACE,MAAM,EAAE,EAAE;QACV,IAAI,EAAE,WAAW;QACjB,OAAO,EAAE,CAAC,EAAE,YAAY,EAAE,iBAAiB,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;QACzE,eAAe,EAAE,MAAM;QACvB,IAAI,EAAE,UAAU;KACjB;CACF,CAAC;AAEW,QAAA,mBAAmB,GAAG,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC"}
@@ -1,37 +0,0 @@
1
- import { DeepReadonly } from 'ts-essentials';
2
- import { PoolState } from '../types';
3
- export declare class TraderJoeV21Math {
4
- private readonly BASIS_POINT_MAX;
5
- private readonly SCALE_OFFSET;
6
- private readonly PRECISION;
7
- private readonly REAL_ID_SHIFT;
8
- private readonly SCALE;
9
- private readonly MAX_FEE;
10
- getSwapIn(state: DeepReadonly<PoolState>, amountOut: bigint, binStep: bigint, swapForY: boolean): bigint;
11
- getSwapOut(state: DeepReadonly<PoolState>, amountIn: bigint, binStep: bigint, swapForY: boolean): bigint;
12
- updateVolatilityAccumulator(state: DeepReadonly<PoolState>, newIdReference: bigint, newVolatilityReference: bigint): bigint;
13
- getAmountsFromReserves(state: DeepReadonly<PoolState>, binStep: bigint, binId: bigint, amountInLeft: bigint, binReserves: bigint, swapForY: boolean, volatilityAccumulator: bigint): [bigint, bigint, bigint];
14
- getPriceFromId(binStep: bigint, id: bigint): bigint;
15
- getBase(binStep: bigint): bigint;
16
- pow(x: bigint, y: bigint): bigint;
17
- getTotalFee(state: PoolState, binStep: bigint, newVolatilityAccumulator: bigint): bigint;
18
- getBaseFee(state: DeepReadonly<PoolState>, binStep: bigint): bigint;
19
- getVariableFee(state: DeepReadonly<PoolState>, binStep: bigint, newVolatilityAccumulator: bigint): bigint;
20
- getFeeAmount(maxAmountIn: bigint, totalFee: bigint): bigint;
21
- getFeeAmountFrom(amountInWithFees: bigint, totalFee: bigint): bigint;
22
- verifyFee(fee: bigint): void;
23
- shiftDivRoundUp(x: bigint, offset: bigint, denominator: bigint): bigint;
24
- shiftDivRoundDown(x: bigint, offset: bigint, denominator: bigint): bigint;
25
- getEndOfDivRoundDown(x: bigint, y: bigint, denominator: bigint, prod0: bigint, prod1: bigint): bigint;
26
- manualShiftRight(x: bigint, shift: bigint): bigint;
27
- mulMod(x: bigint, y: bigint, mod: bigint): bigint;
28
- improvePrecision(denominator: bigint, inverse: bigint): bigint;
29
- mulShiftRoundUp(x: bigint, y: bigint, offset: bigint): bigint;
30
- mulShiftRoundDown(x: bigint, y: bigint, offset: bigint): bigint;
31
- getMulProds(x: bigint, y: bigint): [bigint, bigint];
32
- updateReferences(state: DeepReadonly<PoolState>): {
33
- idReference: bigint;
34
- volatilityReference: bigint;
35
- };
36
- updateVolatilityReference(state: DeepReadonly<PoolState>): bigint;
37
- }