@paraswap/dex-lib 2.50.5 → 2.50.6

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 (144) hide show
  1. package/.vscode/launch.json +53 -0
  2. package/.vscode/settings.json +2 -0
  3. package/.vscode/tasks.json +15 -0
  4. package/build/abi/uniswap-v3/AlienBaseV3Router.abi.json +52 -0
  5. package/build/dex/algebra/config.js +0 -16
  6. package/build/dex/algebra/config.js.map +1 -1
  7. package/build/dex/pancakeswap-v3/config.js +15 -0
  8. package/build/dex/pancakeswap-v3/config.js.map +1 -1
  9. package/build/dex/pancakeswap-v3/pancakeswap-v3.js +5 -1
  10. package/build/dex/pancakeswap-v3/pancakeswap-v3.js.map +1 -1
  11. package/build/dex/solidly-v3/scripts/check-event-pool-event.d.ts +1 -0
  12. package/build/dex/solidly-v3/scripts/check-event-pool-event.js +53 -0
  13. package/build/dex/solidly-v3/scripts/check-event-pool-event.js.map +1 -0
  14. package/build/dex/uniswap-v3/forks/alien-base-v3/alien-base-v3.d.ts +17 -0
  15. package/build/dex/uniswap-v3/forks/alien-base-v3/alien-base-v3.js +64 -0
  16. package/build/dex/uniswap-v3/forks/alien-base-v3/alien-base-v3.js.map +1 -0
  17. package/build/dex/uniswap-v3/forks/alien-v3/alien-v3.d.ts +17 -0
  18. package/build/dex/uniswap-v3/forks/alien-v3/alien-v3.js +79 -0
  19. package/build/dex/uniswap-v3/forks/alien-v3/alien-v3.js.map +1 -0
  20. package/main-config.ts +4484 -0
  21. package/package.json +1 -1
  22. package/src/dex/algebra/config.ts +0 -18
  23. package/src/dex/pancakeswap-v3/config.ts +16 -0
  24. package/src/dex/pancakeswap-v3/pancakeswap-v3-e2e.test.ts +21 -0
  25. package/src/dex/pancakeswap-v3/pancakeswap-v3.ts +5 -1
  26. package/build/abi/Redstone.json +0 -739
  27. package/build/abi/angle/stagToken.json +0 -963
  28. package/build/abi/angle-transmuter/MorphoOracle.json +0 -193
  29. package/build/abi/angle-transmuter/MorphoVault.json +0 -2506
  30. package/build/abi/angle-transmuter/Pyth.json +0 -1534
  31. package/build/abi/angle-transmuter/Transmuter.json +0 -1711
  32. package/build/abi/pharaoh/PharaohPool.abi.json +0 -1582
  33. package/build/abi/smardex/smardex-factory.json +0 -185
  34. package/build/abi/smardex/smardex-pool.json +0 -578
  35. package/build/abi/smardex/smardex-router.json +0 -648
  36. package/build/abi/trader-joe-v2_1/FactoryABI.json +0 -1208
  37. package/build/abi/trader-joe-v2_1/PairABI.json +0 -1493
  38. package/build/abi/trader-joe-v2_1/RouterABI.json +0 -1489
  39. package/build/abi/trader-joe-v2_1/StateMulticall.json +0 -193
  40. package/build/dex/angle-staked-stable/angle-staked-stable-pool.d.ts +0 -55
  41. package/build/dex/angle-staked-stable/angle-staked-stable-pool.js +0 -183
  42. package/build/dex/angle-staked-stable/angle-staked-stable-pool.js.map +0 -1
  43. package/build/dex/angle-staked-stable/angle-staked-stable.d.ts +0 -50
  44. package/build/dex/angle-staked-stable/angle-staked-stable.js +0 -228
  45. package/build/dex/angle-staked-stable/angle-staked-stable.js.map +0 -1
  46. package/build/dex/angle-staked-stable/config.d.ts +0 -4
  47. package/build/dex/angle-staked-stable/config.js +0 -139
  48. package/build/dex/angle-staked-stable/config.js.map +0 -1
  49. package/build/dex/angle-staked-stable/types.d.ts +0 -15
  50. package/build/dex/angle-staked-stable/types.js +0 -3
  51. package/build/dex/angle-staked-stable/types.js.map +0 -1
  52. package/build/dex/angle-transmuter/angle-transmuter-pool.d.ts +0 -61
  53. package/build/dex/angle-transmuter/angle-transmuter-pool.js +0 -415
  54. package/build/dex/angle-transmuter/angle-transmuter-pool.js.map +0 -1
  55. package/build/dex/angle-transmuter/angle-transmuter.d.ts +0 -59
  56. package/build/dex/angle-transmuter/angle-transmuter.js +0 -262
  57. package/build/dex/angle-transmuter/angle-transmuter.js.map +0 -1
  58. package/build/dex/angle-transmuter/backedOracle.d.ts +0 -19
  59. package/build/dex/angle-transmuter/backedOracle.js +0 -56
  60. package/build/dex/angle-transmuter/backedOracle.js.map +0 -1
  61. package/build/dex/angle-transmuter/config.d.ts +0 -4
  62. package/build/dex/angle-transmuter/config.js +0 -30
  63. package/build/dex/angle-transmuter/config.js.map +0 -1
  64. package/build/dex/angle-transmuter/constants.d.ts +0 -77
  65. package/build/dex/angle-transmuter/constants.js +0 -94
  66. package/build/dex/angle-transmuter/constants.js.map +0 -1
  67. package/build/dex/angle-transmuter/morphoOracle.d.ts +0 -42
  68. package/build/dex/angle-transmuter/morphoOracle.js +0 -179
  69. package/build/dex/angle-transmuter/morphoOracle.js.map +0 -1
  70. package/build/dex/angle-transmuter/morphoVault.d.ts +0 -19
  71. package/build/dex/angle-transmuter/morphoVault.js +0 -78
  72. package/build/dex/angle-transmuter/morphoVault.js.map +0 -1
  73. package/build/dex/angle-transmuter/pyth.d.ts +0 -19
  74. package/build/dex/angle-transmuter/pyth.js +0 -70
  75. package/build/dex/angle-transmuter/pyth.js.map +0 -1
  76. package/build/dex/angle-transmuter/redstone.d.ts +0 -20
  77. package/build/dex/angle-transmuter/redstone.js +0 -73
  78. package/build/dex/angle-transmuter/redstone.js.map +0 -1
  79. package/build/dex/angle-transmuter/transmuter.d.ts +0 -52
  80. package/build/dex/angle-transmuter/transmuter.js +0 -374
  81. package/build/dex/angle-transmuter/transmuter.js.map +0 -1
  82. package/build/dex/angle-transmuter/types.d.ts +0 -188
  83. package/build/dex/angle-transmuter/types.js +0 -33
  84. package/build/dex/angle-transmuter/types.js.map +0 -1
  85. package/build/dex/angle-transmuter/utils.d.ts +0 -9
  86. package/build/dex/angle-transmuter/utils.js +0 -252
  87. package/build/dex/angle-transmuter/utils.js.map +0 -1
  88. package/build/dex/smardex/subgraph-queries.d.ts +0 -1
  89. package/build/dex/smardex/subgraph-queries.js +0 -17
  90. package/build/dex/smardex/subgraph-queries.js.map +0 -1
  91. package/build/dex/smardex/usd-reserves.d.ts +0 -23
  92. package/build/dex/smardex/usd-reserves.js +0 -86
  93. package/build/dex/smardex/usd-reserves.js.map +0 -1
  94. package/build/dex/trader-joe-v2-1-2/config.d.ts +0 -4
  95. package/build/dex/trader-joe-v2-1-2/config.js +0 -47
  96. package/build/dex/trader-joe-v2-1-2/config.js.map +0 -1
  97. package/build/dex/trader-joe-v2-1-2/constants.d.ts +0 -20
  98. package/build/dex/trader-joe-v2-1-2/constants.js +0 -22
  99. package/build/dex/trader-joe-v2-1-2/constants.js.map +0 -1
  100. package/build/dex/trader-joe-v2-1-2/math/index.d.ts +0 -37
  101. package/build/dex/trader-joe-v2-1-2/math/index.js +0 -291
  102. package/build/dex/trader-joe-v2-1-2/math/index.js.map +0 -1
  103. package/build/dex/trader-joe-v2-1-2/trader-joe-v2-1-2-pool.d.ts +0 -60
  104. package/build/dex/trader-joe-v2-1-2/trader-joe-v2-1-2-pool.js +0 -248
  105. package/build/dex/trader-joe-v2-1-2/trader-joe-v2-1-2-pool.js.map +0 -1
  106. package/build/dex/trader-joe-v2-1-2/trader-joe-v2-1-2.d.ts +0 -53
  107. package/build/dex/trader-joe-v2-1-2/trader-joe-v2-1-2.js +0 -307
  108. package/build/dex/trader-joe-v2-1-2/trader-joe-v2-1-2.js.map +0 -1
  109. package/build/dex/trader-joe-v2-1-2/types.d.ts +0 -82
  110. package/build/dex/trader-joe-v2-1-2/types.js +0 -9
  111. package/build/dex/trader-joe-v2-1-2/types.js.map +0 -1
  112. package/build/dex/trader-joe-v2_1/config.d.ts +0 -4
  113. package/build/dex/trader-joe-v2_1/config.js +0 -47
  114. package/build/dex/trader-joe-v2_1/config.js.map +0 -1
  115. package/build/dex/trader-joe-v2_1/constants.d.ts +0 -20
  116. package/build/dex/trader-joe-v2_1/constants.js +0 -22
  117. package/build/dex/trader-joe-v2_1/constants.js.map +0 -1
  118. package/build/dex/trader-joe-v2_1/math/index.d.ts +0 -37
  119. package/build/dex/trader-joe-v2_1/math/index.js +0 -291
  120. package/build/dex/trader-joe-v2_1/math/index.js.map +0 -1
  121. package/build/dex/trader-joe-v2_1/trader-joe-v2.1.d.ts +0 -0
  122. package/build/dex/trader-joe-v2_1/trader-joe-v2.1.js +0 -384
  123. package/build/dex/trader-joe-v2_1/trader-joe-v2.1.js.map +0 -1
  124. package/build/dex/trader-joe-v2_1/trader-joe-v2_1-pool.d.ts +0 -60
  125. package/build/dex/trader-joe-v2_1/trader-joe-v2_1-pool.js +0 -247
  126. package/build/dex/trader-joe-v2_1/trader-joe-v2_1-pool.js.map +0 -1
  127. package/build/dex/trader-joe-v2_1/trader-joe-v2_1.d.ts +0 -53
  128. package/build/dex/trader-joe-v2_1/trader-joe-v2_1.js +0 -307
  129. package/build/dex/trader-joe-v2_1/trader-joe-v2_1.js.map +0 -1
  130. package/build/dex/trader-joe-v2_1/types.d.ts +0 -82
  131. package/build/dex/trader-joe-v2_1/types.js +0 -9
  132. package/build/dex/trader-joe-v2_1/types.js.map +0 -1
  133. package/build/dex/wombat/wombat-pool-poller.d.ts +0 -22
  134. package/build/dex/wombat/wombat-pool-poller.js +0 -164
  135. package/build/dex/wombat/wombat-pool-poller.js.map +0 -1
  136. package/build/dex-helper/Cache.d.ts +0 -31
  137. package/build/dex-helper/Cache.js +0 -106
  138. package/build/dex-helper/Cache.js.map +0 -1
  139. package/build/dex-helper/RedisBatcher.d.ts +0 -20
  140. package/build/dex-helper/RedisBatcher.js +0 -75
  141. package/build/dex-helper/RedisBatcher.js.map +0 -1
  142. package/build/dex-helper/RedisWrapper.d.ts +0 -37
  143. package/build/dex-helper/RedisWrapper.js +0 -165
  144. package/build/dex-helper/RedisWrapper.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
- }