@paraswap/dex-lib 2.49.2 → 2.50.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 (151) hide show
  1. package/build/abi/algebra/AlgebraPool.abi.json +727 -0
  2. package/build/abi/uniswap-v3/AlienBaseV3Router.abi.json +52 -0
  3. package/build/abi/uniswap-v3/UniswapV3Quoter.abi.json +193 -0
  4. package/build/dex/algebra/algebra-pool-v1_1.d.ts +3 -2
  5. package/build/dex/algebra/algebra-pool-v1_1.js +3 -2
  6. package/build/dex/algebra/algebra-pool-v1_1.js.map +1 -1
  7. package/build/dex/algebra/algebra-pool-v1_9_bidirectional_fee.d.ts +16 -0
  8. package/build/dex/algebra/algebra-pool-v1_9_bidirectional_fee.js +26 -0
  9. package/build/dex/algebra/algebra-pool-v1_9_bidirectional_fee.js.map +1 -0
  10. package/build/dex/algebra/algebra-pool-v1_9_directional_fee.d.ts +54 -0
  11. package/build/dex/algebra/algebra-pool-v1_9_directional_fee.js +356 -0
  12. package/build/dex/algebra/algebra-pool-v1_9_directional_fee.js.map +1 -0
  13. package/build/dex/algebra/algebra-pool.d.ts +46 -0
  14. package/build/dex/algebra/algebra-pool.js +336 -0
  15. package/build/dex/algebra/algebra-pool.js.map +1 -0
  16. package/build/dex/algebra/algebra.d.ts +2 -1
  17. package/build/dex/algebra/algebra.js +6 -1
  18. package/build/dex/algebra/algebra.js.map +1 -1
  19. package/build/dex/algebra/config.js +16 -0
  20. package/build/dex/algebra/config.js.map +1 -1
  21. package/build/dex/algebra/types.d.ts +1 -1
  22. package/build/dex/quickswap/camelot-v3.d.ts +6 -0
  23. package/build/dex/quickswap/camelot-v3.js +19 -0
  24. package/build/dex/quickswap/camelot-v3.js.map +1 -0
  25. package/build/dex/quickswap/zyberswap-v3.d.ts +6 -0
  26. package/build/dex/quickswap/zyberswap-v3.js +19 -0
  27. package/build/dex/quickswap/zyberswap-v3.js.map +1 -0
  28. package/build/dex/uniswap-v2/rebase-tokens.json +7 -0
  29. package/build/dex/uniswap-v3/forks/alien-v3/alien-v3.d.ts +17 -0
  30. package/build/dex/uniswap-v3/forks/alien-v3/alien-v3.js +64 -0
  31. package/build/dex/uniswap-v3/forks/alien-v3/alien-v3.js.map +1 -0
  32. package/package.json +1 -1
  33. package/src/dex/algebra/algebra-e2e.test.ts +22 -0
  34. package/src/dex/algebra/algebra-pool-v1_1.ts +3 -2
  35. package/src/dex/algebra/algebra-pool-v1_9_bidirectional_fee.ts +55 -0
  36. package/src/dex/algebra/algebra.ts +12 -3
  37. package/src/dex/algebra/config.ts +18 -0
  38. package/src/dex/algebra/types.ts +1 -1
  39. package/build/abi/Redstone.json +0 -739
  40. package/build/abi/angle/stagToken.json +0 -963
  41. package/build/abi/angle-transmuter/MorphoOracle.json +0 -193
  42. package/build/abi/angle-transmuter/MorphoVault.json +0 -2506
  43. package/build/abi/angle-transmuter/Pyth.json +0 -1534
  44. package/build/abi/angle-transmuter/Transmuter.json +0 -1711
  45. package/build/abi/pharaoh/PharaohPool.abi.json +0 -1582
  46. package/build/abi/smardex/smardex-factory.json +0 -185
  47. package/build/abi/smardex/smardex-pool.json +0 -578
  48. package/build/abi/smardex/smardex-router.json +0 -648
  49. package/build/abi/trader-joe-v2_1/FactoryABI.json +0 -1208
  50. package/build/abi/trader-joe-v2_1/PairABI.json +0 -1493
  51. package/build/abi/trader-joe-v2_1/RouterABI.json +0 -1489
  52. package/build/abi/trader-joe-v2_1/StateMulticall.json +0 -193
  53. package/build/dex/angle-staked-stable/angle-staked-stable-pool.d.ts +0 -55
  54. package/build/dex/angle-staked-stable/angle-staked-stable-pool.js +0 -183
  55. package/build/dex/angle-staked-stable/angle-staked-stable-pool.js.map +0 -1
  56. package/build/dex/angle-staked-stable/angle-staked-stable.d.ts +0 -50
  57. package/build/dex/angle-staked-stable/angle-staked-stable.js +0 -280
  58. package/build/dex/angle-staked-stable/angle-staked-stable.js.map +0 -1
  59. package/build/dex/angle-staked-stable/config.d.ts +0 -4
  60. package/build/dex/angle-staked-stable/config.js +0 -46
  61. package/build/dex/angle-staked-stable/config.js.map +0 -1
  62. package/build/dex/angle-staked-stable/types.d.ts +0 -17
  63. package/build/dex/angle-staked-stable/types.js +0 -3
  64. package/build/dex/angle-staked-stable/types.js.map +0 -1
  65. package/build/dex/angle-transmuter/angle-transmuter-pool.d.ts +0 -61
  66. package/build/dex/angle-transmuter/angle-transmuter-pool.js +0 -415
  67. package/build/dex/angle-transmuter/angle-transmuter-pool.js.map +0 -1
  68. package/build/dex/angle-transmuter/angle-transmuter.d.ts +0 -59
  69. package/build/dex/angle-transmuter/angle-transmuter.js +0 -262
  70. package/build/dex/angle-transmuter/angle-transmuter.js.map +0 -1
  71. package/build/dex/angle-transmuter/backedOracle.d.ts +0 -19
  72. package/build/dex/angle-transmuter/backedOracle.js +0 -56
  73. package/build/dex/angle-transmuter/backedOracle.js.map +0 -1
  74. package/build/dex/angle-transmuter/config.d.ts +0 -4
  75. package/build/dex/angle-transmuter/config.js +0 -30
  76. package/build/dex/angle-transmuter/config.js.map +0 -1
  77. package/build/dex/angle-transmuter/constants.d.ts +0 -77
  78. package/build/dex/angle-transmuter/constants.js +0 -94
  79. package/build/dex/angle-transmuter/constants.js.map +0 -1
  80. package/build/dex/angle-transmuter/morphoOracle.d.ts +0 -42
  81. package/build/dex/angle-transmuter/morphoOracle.js +0 -179
  82. package/build/dex/angle-transmuter/morphoOracle.js.map +0 -1
  83. package/build/dex/angle-transmuter/morphoVault.d.ts +0 -19
  84. package/build/dex/angle-transmuter/morphoVault.js +0 -78
  85. package/build/dex/angle-transmuter/morphoVault.js.map +0 -1
  86. package/build/dex/angle-transmuter/pyth.d.ts +0 -19
  87. package/build/dex/angle-transmuter/pyth.js +0 -70
  88. package/build/dex/angle-transmuter/pyth.js.map +0 -1
  89. package/build/dex/angle-transmuter/redstone.d.ts +0 -20
  90. package/build/dex/angle-transmuter/redstone.js +0 -73
  91. package/build/dex/angle-transmuter/redstone.js.map +0 -1
  92. package/build/dex/angle-transmuter/transmuter.d.ts +0 -52
  93. package/build/dex/angle-transmuter/transmuter.js +0 -374
  94. package/build/dex/angle-transmuter/transmuter.js.map +0 -1
  95. package/build/dex/angle-transmuter/types.d.ts +0 -188
  96. package/build/dex/angle-transmuter/types.js +0 -33
  97. package/build/dex/angle-transmuter/types.js.map +0 -1
  98. package/build/dex/angle-transmuter/utils.d.ts +0 -9
  99. package/build/dex/angle-transmuter/utils.js +0 -252
  100. package/build/dex/angle-transmuter/utils.js.map +0 -1
  101. package/build/dex/smardex/subgraph-queries.d.ts +0 -1
  102. package/build/dex/smardex/subgraph-queries.js +0 -17
  103. package/build/dex/smardex/subgraph-queries.js.map +0 -1
  104. package/build/dex/smardex/usd-reserves.d.ts +0 -23
  105. package/build/dex/smardex/usd-reserves.js +0 -86
  106. package/build/dex/smardex/usd-reserves.js.map +0 -1
  107. package/build/dex/trader-joe-v2-1-2/config.d.ts +0 -4
  108. package/build/dex/trader-joe-v2-1-2/config.js +0 -47
  109. package/build/dex/trader-joe-v2-1-2/config.js.map +0 -1
  110. package/build/dex/trader-joe-v2-1-2/constants.d.ts +0 -20
  111. package/build/dex/trader-joe-v2-1-2/constants.js +0 -22
  112. package/build/dex/trader-joe-v2-1-2/constants.js.map +0 -1
  113. package/build/dex/trader-joe-v2-1-2/math/index.d.ts +0 -37
  114. package/build/dex/trader-joe-v2-1-2/math/index.js +0 -291
  115. package/build/dex/trader-joe-v2-1-2/math/index.js.map +0 -1
  116. package/build/dex/trader-joe-v2-1-2/trader-joe-v2-1-2-pool.d.ts +0 -60
  117. package/build/dex/trader-joe-v2-1-2/trader-joe-v2-1-2-pool.js +0 -248
  118. package/build/dex/trader-joe-v2-1-2/trader-joe-v2-1-2-pool.js.map +0 -1
  119. package/build/dex/trader-joe-v2-1-2/trader-joe-v2-1-2.d.ts +0 -53
  120. package/build/dex/trader-joe-v2-1-2/trader-joe-v2-1-2.js +0 -307
  121. package/build/dex/trader-joe-v2-1-2/trader-joe-v2-1-2.js.map +0 -1
  122. package/build/dex/trader-joe-v2-1-2/types.d.ts +0 -82
  123. package/build/dex/trader-joe-v2-1-2/types.js +0 -9
  124. package/build/dex/trader-joe-v2-1-2/types.js.map +0 -1
  125. package/build/dex/trader-joe-v2_1/config.d.ts +0 -4
  126. package/build/dex/trader-joe-v2_1/config.js +0 -47
  127. package/build/dex/trader-joe-v2_1/config.js.map +0 -1
  128. package/build/dex/trader-joe-v2_1/constants.d.ts +0 -20
  129. package/build/dex/trader-joe-v2_1/constants.js +0 -22
  130. package/build/dex/trader-joe-v2_1/constants.js.map +0 -1
  131. package/build/dex/trader-joe-v2_1/math/index.d.ts +0 -37
  132. package/build/dex/trader-joe-v2_1/math/index.js +0 -291
  133. package/build/dex/trader-joe-v2_1/math/index.js.map +0 -1
  134. package/build/dex/trader-joe-v2_1/trader-joe-v2.1.d.ts +0 -0
  135. package/build/dex/trader-joe-v2_1/trader-joe-v2.1.js +0 -384
  136. package/build/dex/trader-joe-v2_1/trader-joe-v2.1.js.map +0 -1
  137. package/build/dex/trader-joe-v2_1/trader-joe-v2_1-pool.d.ts +0 -60
  138. package/build/dex/trader-joe-v2_1/trader-joe-v2_1-pool.js +0 -247
  139. package/build/dex/trader-joe-v2_1/trader-joe-v2_1-pool.js.map +0 -1
  140. package/build/dex/trader-joe-v2_1/trader-joe-v2_1.d.ts +0 -53
  141. package/build/dex/trader-joe-v2_1/trader-joe-v2_1.js +0 -307
  142. package/build/dex/trader-joe-v2_1/trader-joe-v2_1.js.map +0 -1
  143. package/build/dex/trader-joe-v2_1/types.d.ts +0 -82
  144. package/build/dex/trader-joe-v2_1/types.js +0 -9
  145. package/build/dex/trader-joe-v2_1/types.js.map +0 -1
  146. package/build/dex/wombat/wombat-pool-poller.d.ts +0 -22
  147. package/build/dex/wombat/wombat-pool-poller.js +0 -164
  148. package/build/dex/wombat/wombat-pool-poller.js.map +0 -1
  149. package/build/dex-helper/RedisBatcher.d.ts +0 -20
  150. package/build/dex-helper/RedisBatcher.js +0 -75
  151. package/build/dex-helper/RedisBatcher.js.map +0 -1
@@ -1,252 +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
- const 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
- amountStable -= amountToNextBreakPointNormalizer;
141
- amount += !isExact
142
- ? amountToNextBreakPoint
143
- : isMint
144
- ? _invertFeeMint(amountToNextBreakPoint, (upperFees + currentFees) / 2)
145
- : _applyFeeBurn(amountToNextBreakPoint, (upperFees + currentFees) / 2);
146
- currentExposure = upperExposure * types_1.BASE_9;
147
- ++i;
148
- // Update for the rest of the swaps the stablecoins issued from the asset
149
- stablecoinsIssued = isMint
150
- ? stablecoinsIssued + amountToNextBreakPoint
151
- : stablecoinsIssued - amountToNextBreakPoint;
152
- }
153
- }
154
- return (amount +
155
- _computeFee(quoteType, amountStable, isMint ? fees.yFeeMint[n - 1] : fees.yFeeBurn[n - 1]));
156
- }
157
- exports._quoteFees = _quoteFees;
158
- function findLowerBound(increasingArray, array, normalizerArray, element) {
159
- if (array.length === 0) {
160
- return 0;
161
- }
162
- let low = 1;
163
- let high = array.length;
164
- if ((increasingArray && array[high - 1] * normalizerArray <= element) ||
165
- (!increasingArray && array[high - 1] * normalizerArray >= element)) {
166
- return high - 1;
167
- }
168
- while (low < high) {
169
- const mid = Math.floor((low + high) / 2);
170
- if (increasingArray
171
- ? array[mid] * normalizerArray > element
172
- : array[mid] * normalizerArray < element) {
173
- high = mid;
174
- }
175
- else {
176
- low = mid + 1;
177
- }
178
- }
179
- return low - 1;
180
- }
181
- function _isMint(quoteType) {
182
- return (quoteType === types_1.QuoteType.MintExactInput ||
183
- quoteType === types_1.QuoteType.MintExactOutput);
184
- }
185
- function _isExact(quoteType) {
186
- return (quoteType === types_1.QuoteType.MintExactOutput ||
187
- quoteType === types_1.QuoteType.BurnExactInput);
188
- }
189
- function _applyFeeMint(amountIn, fees) {
190
- if (fees >= 0) {
191
- const castedFees = fees;
192
- // Consider that if fees are above `BASE_12` this is equivalent to infinite fees
193
- if (castedFees >= types_1.BASE_12)
194
- throw new Error('InvalidSwap');
195
- return (amountIn * types_1.BASE_9) / (types_1.BASE_9 + castedFees);
196
- }
197
- return (amountIn * types_1.BASE_9) / (types_1.BASE_9 - Math.abs(-fees));
198
- }
199
- function _invertFeeMint(amountOut, fees) {
200
- if (fees >= 0) {
201
- const castedFees = fees;
202
- // Consider that if fees are above `BASE_12` this is equivalent to infinite fees
203
- if (castedFees >= types_1.BASE_12)
204
- throw new Error('InvalidSwap');
205
- return (amountOut * (types_1.BASE_9 + castedFees)) / types_1.BASE_9;
206
- }
207
- return (amountOut * (types_1.BASE_9 - Math.abs(-fees))) / types_1.BASE_9;
208
- }
209
- function _applyFeeBurn(amountIn, fees) {
210
- if (fees >= 0) {
211
- const castedFees = fees;
212
- if (castedFees >= types_1.MAX_BURN_FEE)
213
- throw new Error('InvalidSwap');
214
- return ((types_1.BASE_9 - castedFees) * amountIn) / types_1.BASE_9;
215
- }
216
- return ((types_1.BASE_9 + Math.abs(-fees)) * amountIn) / types_1.BASE_9;
217
- }
218
- function _invertFeeBurn(amountOut, fees) {
219
- if (fees >= 0) {
220
- const castedFees = fees;
221
- if (castedFees >= types_1.MAX_BURN_FEE)
222
- throw new Error('InvalidSwap');
223
- return (amountOut * types_1.BASE_9) / (types_1.BASE_9 - castedFees);
224
- }
225
- return (amountOut * types_1.BASE_9) / (types_1.BASE_9 + Math.abs(-fees));
226
- }
227
- function _computeFee(quoteType, amount, fees) {
228
- if (quoteType === types_1.QuoteType.MintExactInput) {
229
- return _applyFeeMint(amount, fees);
230
- }
231
- if (quoteType === types_1.QuoteType.MintExactOutput) {
232
- return _invertFeeMint(amount, fees);
233
- }
234
- if (quoteType === types_1.QuoteType.BurnExactInput) {
235
- return _applyFeeBurn(amount, fees);
236
- }
237
- return _invertFeeBurn(amount, fees);
238
- }
239
- function filterDictionaryOnly(obj) {
240
- const result = {};
241
- Object.keys(obj).map(key => {
242
- if (Object.prototype.hasOwnProperty.call(obj, key)) {
243
- // Skip numeric keys to exclude array-like properties
244
- if (Number.isNaN(Number(key))) {
245
- result[key] = obj[key];
246
- }
247
- }
248
- });
249
- return result;
250
- }
251
- exports.filterDictionaryOnly = filterDictionaryOnly;
252
- //# 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
- }