@paraswap/dex-lib 3.11.5-fluid-dex-changes.2 → 3.11.5

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 (196) 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/fluid-dex/resolver.abi.json +4 -731
  5. package/build/abi/{cables/CablesMainnetRFQ.json → inception/inception-ineth-pool.json} +489 -510
  6. package/build/abi/inception/inception-ratio-feed.json +329 -0
  7. package/build/abi/inception/inception-vault.json +991 -0
  8. package/build/abi/uniswap-v3/AlienBaseV3Router.abi.json +52 -0
  9. package/build/abi/{integral/relayer.json → wombat/pool.json} +474 -721
  10. package/build/dex/aave-v1/aave-v1.d.ts +2 -1
  11. package/build/dex/aave-v1/aave-v1.js +23 -0
  12. package/build/dex/aave-v1/aave-v1.js.map +1 -1
  13. package/build/dex/aave-v2/tokens-avalanche.json +44 -0
  14. package/build/dex/aave-v2/tokens-mainnet.json +188 -0
  15. package/build/dex/aave-v2/tokens-polygon.json +44 -0
  16. package/build/dex/algebra/algebra.js +10 -18
  17. package/build/dex/algebra/algebra.js.map +1 -1
  18. package/build/dex/algebra/config.js +1 -1
  19. package/build/dex/algebra/config.js.map +1 -1
  20. package/build/dex/balancer-v3/abi/balancerBatchRouter.d.ts +729 -0
  21. package/build/dex/balancer-v3/abi/balancerBatchRouter.js +732 -0
  22. package/build/dex/balancer-v3/abi/balancerBatchRouter.js.map +1 -0
  23. package/build/dex/balancer-v3/abi/balancerRouter.d.ts +1406 -0
  24. package/build/dex/balancer-v3/abi/balancerRouter.js +1175 -0
  25. package/build/dex/balancer-v3/abi/balancerRouter.js.map +1 -0
  26. package/build/dex/balancer-v3/abi/vaultExtension.V3.d.ts +2081 -0
  27. package/build/dex/balancer-v3/abi/vaultExtension.V3.js +1851 -0
  28. package/build/dex/balancer-v3/abi/vaultExtension.V3.js.map +1 -0
  29. package/build/dex/balancer-v3/balancer-v3-pool.d.ts +76 -0
  30. package/build/dex/balancer-v3/balancer-v3-pool.js +383 -0
  31. package/build/dex/balancer-v3/balancer-v3-pool.js.map +1 -0
  32. package/build/dex/balancer-v3/balancer-v3.d.ts +57 -0
  33. package/build/dex/balancer-v3/balancer-v3.js +373 -0
  34. package/build/dex/balancer-v3/balancer-v3.js.map +1 -0
  35. package/build/dex/balancer-v3/config.d.ts +8 -0
  36. package/build/dex/balancer-v3/config.js +24 -0
  37. package/build/dex/balancer-v3/config.js.map +1 -0
  38. package/build/dex/balancer-v3/getOnChainState.d.ts +10 -0
  39. package/build/dex/balancer-v3/getOnChainState.js +158 -0
  40. package/build/dex/balancer-v3/getOnChainState.js.map +1 -0
  41. package/build/dex/balancer-v3/getPoolsApi.d.ts +2 -0
  42. package/build/dex/balancer-v3/getPoolsApi.js +81 -0
  43. package/build/dex/balancer-v3/getPoolsApi.js.map +1 -0
  44. package/build/dex/balancer-v3/getTopPoolsApi.d.ts +13 -0
  45. package/build/dex/balancer-v3/getTopPoolsApi.js +62 -0
  46. package/build/dex/balancer-v3/getTopPoolsApi.js.map +1 -0
  47. package/build/dex/balancer-v3/types.d.ts +63 -0
  48. package/build/dex/balancer-v3/types.js +3 -0
  49. package/build/dex/balancer-v3/types.js.map +1 -0
  50. package/build/dex/fluid-dex/config.js +1 -1
  51. package/build/dex/fluid-dex/fluid-dex-liquidity-proxy.js +1 -28
  52. package/build/dex/fluid-dex/fluid-dex-liquidity-proxy.js.map +1 -1
  53. package/build/dex/fluid-dex/fluid-dex.d.ts +10 -17
  54. package/build/dex/fluid-dex/fluid-dex.js +67 -219
  55. package/build/dex/fluid-dex/fluid-dex.js.map +1 -1
  56. package/build/dex/fluid-dex/types.d.ts +2 -22
  57. package/build/dex/inception/config.d.ts +4 -0
  58. package/build/dex/inception/config.js +109 -0
  59. package/build/dex/inception/config.js.map +1 -0
  60. package/build/dex/inception/inception-event-pool.d.ts +16 -0
  61. package/build/dex/inception/inception-event-pool.js +49 -0
  62. package/build/dex/inception/inception-event-pool.js.map +1 -0
  63. package/build/dex/inception/inception.d.ts +43 -0
  64. package/build/dex/inception/inception.js +180 -0
  65. package/build/dex/inception/inception.js.map +1 -0
  66. package/build/dex/inception/tokens.d.ts +9 -0
  67. package/build/dex/inception/tokens.js +28 -0
  68. package/build/dex/inception/tokens.js.map +1 -0
  69. package/build/dex/inception/types.d.ts +22 -0
  70. package/build/dex/inception/types.js +3 -0
  71. package/build/dex/inception/types.js.map +1 -0
  72. package/build/dex/inception/utils.d.ts +7 -0
  73. package/build/dex/inception/utils.js +58 -0
  74. package/build/dex/inception/utils.js.map +1 -0
  75. package/build/dex/jarvis.d.ts +2 -1
  76. package/build/dex/jarvis.js +58 -0
  77. package/build/dex/jarvis.js.map +1 -1
  78. package/build/dex/maker-psm/scripts/gem.abi.json +136 -0
  79. package/build/dex/maker-psm/scripts/validate-state.d.ts +0 -0
  80. package/build/dex/maker-psm/scripts/validate-state.js +185 -0
  81. package/build/dex/maker-psm/scripts/validate-state.js.map +1 -0
  82. package/build/dex/maker-psm/scripts/vat.abi.json +243 -0
  83. package/build/dex/platypus/platypus.d.ts +2 -1
  84. package/build/dex/platypus/platypus.js +45 -0
  85. package/build/dex/platypus/platypus.js.map +1 -1
  86. package/build/dex/solidly-v3/scripts/check-event-pool-event.d.ts +1 -0
  87. package/build/dex/solidly-v3/scripts/check-event-pool-event.js +53 -0
  88. package/build/dex/solidly-v3/scripts/check-event-pool-event.js.map +1 -0
  89. package/build/dex/stable-pool.js +1 -8
  90. package/build/dex/stable-pool.js.map +1 -1
  91. package/build/dex/swaap-v1/swaap-v1.d.ts +2 -1
  92. package/build/dex/swaap-v1/swaap-v1.js +14 -0
  93. package/build/dex/swaap-v1/swaap-v1.js.map +1 -1
  94. package/build/dex/uniswap-v3/config.js +1 -1
  95. package/build/dex/uniswap-v3/config.js.map +1 -1
  96. package/build/dex/uniswap-v3/forks/alien-base-v3/alien-base-v3.d.ts +17 -0
  97. package/build/dex/uniswap-v3/forks/alien-base-v3/alien-base-v3.js +64 -0
  98. package/build/dex/uniswap-v3/forks/alien-base-v3/alien-base-v3.js.map +1 -0
  99. package/build/dex/uniswap-v3/forks/alien-v3/alien-v3.d.ts +17 -0
  100. package/build/dex/uniswap-v3/forks/alien-v3/alien-v3.js +79 -0
  101. package/build/dex/uniswap-v3/forks/alien-v3/alien-v3.js.map +1 -0
  102. package/build/dex/uniswap-v3/uniswap-v3-pricing.d.ts +4 -0
  103. package/build/dex/uniswap-v3/uniswap-v3-pricing.js +43 -0
  104. package/build/dex/uniswap-v3/uniswap-v3-pricing.js.map +1 -0
  105. package/build/dex/uniswap-v3/uniswap-v3-worker.d.ts +1 -0
  106. package/build/dex/uniswap-v3/uniswap-v3-worker.js +10 -0
  107. package/build/dex/uniswap-v3/uniswap-v3-worker.js.map +1 -0
  108. package/build/dex/zerox/index.d.ts +4 -26
  109. package/build/dex/zerox/index.js +50 -42
  110. package/build/dex/zerox/index.js.map +1 -1
  111. package/build/dex/zerox/types.d.ts +29 -0
  112. package/build/dex/zerox/types.js +8 -1
  113. package/build/dex/zerox/types.js.map +1 -1
  114. package/build/executor/Executor03BytecodeBuilder.js +3 -8
  115. package/build/executor/Executor03BytecodeBuilder.js.map +1 -1
  116. package/package.json +1 -1
  117. package/src/abi/fluid-dex/resolver.abi.json +4 -731
  118. package/src/dex/algebra/algebra.ts +20 -19
  119. package/src/dex/algebra/config.ts +1 -2
  120. package/src/dex/fluid-dex/config.ts +1 -1
  121. package/src/dex/fluid-dex/fluid-dex-e2e.test.ts +6 -153
  122. package/src/dex/fluid-dex/fluid-dex-events.test.ts +4 -2
  123. package/src/dex/fluid-dex/fluid-dex-integration.test.ts +11 -79
  124. package/src/dex/fluid-dex/fluid-dex-liquidity-proxy.ts +0 -33
  125. package/src/dex/fluid-dex/fluid-dex.ts +104 -303
  126. package/src/dex/fluid-dex/types.ts +1 -25
  127. package/src/dex/uniswap-v3/config.ts +1 -2
  128. package/src/executor/Executor03BytecodeBuilder.ts +2 -10
  129. package/.idea/aws.xml +0 -17
  130. package/.idea/codeStyles/Project.xml +0 -19
  131. package/.idea/codeStyles/codeStyleConfig.xml +0 -5
  132. package/.idea/misc.xml +0 -6
  133. package/.idea/modules.xml +0 -8
  134. package/.idea/paraswap-dex-lib.iml +0 -9
  135. package/.idea/prettier.xml +0 -7
  136. package/.idea/vcs.xml +0 -6
  137. package/build/abi/integral/factory.json +0 -333
  138. package/build/abi/integral/oracle.json +0 -501
  139. package/build/abi/integral/pool.json +0 -1041
  140. package/build/dex/cables/cables.d.ts +0 -59
  141. package/build/dex/cables/cables.js +0 -599
  142. package/build/dex/cables/cables.js.map +0 -1
  143. package/build/dex/cables/config.d.ts +0 -4
  144. package/build/dex/cables/config.js +0 -15
  145. package/build/dex/cables/config.js.map +0 -1
  146. package/build/dex/cables/constants.d.ts +0 -20
  147. package/build/dex/cables/constants.js +0 -24
  148. package/build/dex/cables/constants.js.map +0 -1
  149. package/build/dex/cables/rate-fetcher.d.ts +0 -34
  150. package/build/dex/cables/rate-fetcher.js +0 -106
  151. package/build/dex/cables/rate-fetcher.js.map +0 -1
  152. package/build/dex/cables/types.d.ts +0 -113
  153. package/build/dex/cables/types.js +0 -19
  154. package/build/dex/cables/types.js.map +0 -1
  155. package/build/dex/cables/validators.d.ts +0 -5
  156. package/build/dex/cables/validators.js +0 -49
  157. package/build/dex/cables/validators.js.map +0 -1
  158. package/build/dex/fluid-dex/fluid-dex-generate-pool.d.ts +0 -49
  159. package/build/dex/fluid-dex/fluid-dex-generate-pool.js +0 -104
  160. package/build/dex/fluid-dex/fluid-dex-generate-pool.js.map +0 -1
  161. package/build/dex/integral/config.d.ts +0 -4
  162. package/build/dex/integral/config.js +0 -20
  163. package/build/dex/integral/config.js.map +0 -1
  164. package/build/dex/integral/context.d.ts +0 -40
  165. package/build/dex/integral/context.js +0 -158
  166. package/build/dex/integral/context.js.map +0 -1
  167. package/build/dex/integral/integral-factory.d.ts +0 -24
  168. package/build/dex/integral/integral-factory.js +0 -95
  169. package/build/dex/integral/integral-factory.js.map +0 -1
  170. package/build/dex/integral/integral-pool.d.ts +0 -50
  171. package/build/dex/integral/integral-pool.js +0 -149
  172. package/build/dex/integral/integral-pool.js.map +0 -1
  173. package/build/dex/integral/integral-pricing.d.ts +0 -18
  174. package/build/dex/integral/integral-pricing.js +0 -114
  175. package/build/dex/integral/integral-pricing.js.map +0 -1
  176. package/build/dex/integral/integral-relayer.d.ts +0 -42
  177. package/build/dex/integral/integral-relayer.js +0 -192
  178. package/build/dex/integral/integral-relayer.js.map +0 -1
  179. package/build/dex/integral/integral-token.d.ts +0 -27
  180. package/build/dex/integral/integral-token.js +0 -59
  181. package/build/dex/integral/integral-token.js.map +0 -1
  182. package/build/dex/integral/integral.d.ts +0 -41
  183. package/build/dex/integral/integral.js +0 -376
  184. package/build/dex/integral/integral.js.map +0 -1
  185. package/build/dex/integral/types.d.ts +0 -85
  186. package/build/dex/integral/types.js +0 -9
  187. package/build/dex/integral/types.js.map +0 -1
  188. package/build/dex/integral/utils-e2e.d.ts +0 -9
  189. package/build/dex/integral/utils-e2e.js +0 -131
  190. package/build/dex/integral/utils-e2e.js.map +0 -1
  191. package/build/dex/integral/utils.d.ts +0 -17
  192. package/build/dex/integral/utils.js +0 -94
  193. package/build/dex/integral/utils.js.map +0 -1
  194. package/build/dex/trader-joe-v2.1/optimizer.d.ts +0 -2
  195. package/build/dex/trader-joe-v2.1/optimizer.js +0 -47
  196. package/build/dex/trader-joe-v2.1/optimizer.js.map +0 -1
@@ -98,6 +98,8 @@ class FluidDex extends simple_exchange_1.SimpleExchange {
98
98
  // across DEXes. It is recommended to use
99
99
  // ${dexKey}_${poolAddress} as a poolIdentifier
100
100
  async getPoolIdentifiers(srcToken, destToken, side, blockNumber) {
101
+ if (side === constants_1.SwapSide.BUY)
102
+ return [];
101
103
  const pool = this.getPoolByTokenPair(srcToken.address, destToken.address);
102
104
  return pool ? [pool.id] : [];
103
105
  }
@@ -123,6 +125,8 @@ class FluidDex extends simple_exchange_1.SimpleExchange {
123
125
  try {
124
126
  if (srcToken.address.toLowerCase() === destToken.address.toLowerCase())
125
127
  return null;
128
+ if (side === constants_1.SwapSide.BUY)
129
+ return null;
126
130
  // Get the pool to use.
127
131
  const pool = this.getPoolByTokenPair(srcToken.address, destToken.address);
128
132
  if (!pool)
@@ -132,21 +136,15 @@ class FluidDex extends simple_exchange_1.SimpleExchange {
132
136
  return null;
133
137
  const liquidityProxyState = await this.liquidityProxy.getStateOrGenerate(blockNumber);
134
138
  const currentPoolReserves = liquidityProxyState.poolsReserves.find(poolReserve => poolReserve.pool.toLowerCase() === pool.address.toLowerCase());
135
- if (!currentPoolReserves) {
139
+ if (!currentPoolReserves)
136
140
  return null;
137
- }
138
141
  const prices = amounts.map(amount => {
139
- if (side === constants_1.SwapSide.SELL) {
140
- return this.swapIn(srcToken.address.toLowerCase() === pool.token0.toLowerCase(), amount, currentPoolReserves.collateralReserves, currentPoolReserves.debtReserves, srcToken.decimals, destToken.decimals, BigInt(currentPoolReserves.fee), currentPoolReserves.dexLimits, Math.floor(Date.now() / 1000));
141
- }
142
- else {
143
- return this.swapOut(srcToken.address.toLowerCase() === pool.token0.toLowerCase(), amount, currentPoolReserves.collateralReserves, currentPoolReserves.debtReserves, srcToken.decimals, destToken.decimals, BigInt(currentPoolReserves.fee), currentPoolReserves.dexLimits, Math.floor(Date.now() / 1000));
144
- }
142
+ return this.swapIn(srcToken.address.toLowerCase() === pool.token0.toLowerCase(), amount, currentPoolReserves.collateralReserves, currentPoolReserves.debtReserves, srcToken.decimals, destToken.decimals, BigInt(currentPoolReserves.fee));
145
143
  });
146
144
  return [
147
145
  {
148
146
  prices: prices,
149
- unit: (0, utils_1.getBigIntPow)(destToken.decimals),
147
+ unit: (0, utils_1.getBigIntPow)((side === constants_1.SwapSide.SELL ? destToken : srcToken).decimals),
150
148
  data: {},
151
149
  exchange: this.dexKey,
152
150
  poolIdentifier: pool.id,
@@ -169,6 +167,8 @@ class FluidDex extends simple_exchange_1.SimpleExchange {
169
167
  // V6: Not used, can be left blank
170
168
  // Hint: abiCoder.encodeParameter() could be useful
171
169
  getAdapterParam(srcToken, destToken, srcAmount, destAmount, data, side) {
170
+ if (side === constants_1.SwapSide.BUY)
171
+ throw new Error(`Buy not supported`);
172
172
  // Encode here the payload for adapter
173
173
  const payload = '';
174
174
  const pool = this.getPoolByTokenPair(srcToken, destToken);
@@ -185,26 +185,18 @@ class FluidDex extends simple_exchange_1.SimpleExchange {
185
185
  return [];
186
186
  }
187
187
  async getDexParam(srcToken, destToken, srcAmount, destAmount, recipient, data, side, context, executorAddress) {
188
+ if (side === constants_1.SwapSide.BUY)
189
+ throw new Error(`Buy not supported`);
188
190
  let args;
189
191
  let returnAmountPos;
190
- const method = side === constants_1.SwapSide.SELL ? 'swapIn' : 'swapOut';
191
- returnAmountPos = (0, utils_2.extractReturnAmountPosition)(this.fluidDexPoolIface, method, side === constants_1.SwapSide.SELL ? 'amountOut_' : 'amountIn_');
192
+ const method = 'swapIn';
193
+ returnAmountPos = (0, utils_2.extractReturnAmountPosition)(this.fluidDexPoolIface, method, 'amountOut_');
192
194
  const pool = this.getPoolByTokenPair(srcToken, destToken);
193
- if (side === constants_1.SwapSide.SELL) {
194
- if (pool.token0.toLowerCase() !== srcToken.toLowerCase()) {
195
- args = [false, BigInt(srcAmount), BigInt(destAmount), recipient];
196
- }
197
- else {
198
- args = [true, BigInt(srcAmount), BigInt(destAmount), recipient];
199
- }
195
+ if (pool.token0.toLowerCase() !== srcToken.toLowerCase()) {
196
+ args = [false, BigInt(srcAmount), BigInt(destAmount), recipient];
200
197
  }
201
198
  else {
202
- if (pool.token0.toLowerCase() !== srcToken.toLowerCase()) {
203
- args = [false, BigInt(destAmount), BigInt(srcAmount), recipient];
204
- }
205
- else {
206
- args = [true, BigInt(destAmount), BigInt(srcAmount), recipient];
207
- }
199
+ args = [true, BigInt(srcAmount), BigInt(destAmount), recipient];
208
200
  }
209
201
  const swapData = this.fluidDexPoolIface.encodeFunctionData(method, args);
210
202
  return {
@@ -213,7 +205,6 @@ class FluidDex extends simple_exchange_1.SimpleExchange {
213
205
  exchangeData: swapData,
214
206
  targetExchange: pool.address,
215
207
  returnAmountPos,
216
- sendEthButSupportsInsertFromAmount: true,
217
208
  };
218
209
  }
219
210
  /**
@@ -226,7 +217,7 @@ class FluidDex extends simple_exchange_1.SimpleExchange {
226
217
  * @param outDecimals - The number of decimals for the output token.
227
218
  * @returns The calculated output amount (as a BigInt).
228
219
  */
229
- swapIn(swap0To1, amountIn, colReserves, debtReserves, inDecimals, outDecimals, fee, currentLimits, syncTime) {
220
+ swapIn(swap0To1, amountIn, colReserves, debtReserves, inDecimals, outDecimals, fee) {
230
221
  if (amountIn === 0n) {
231
222
  return 0n; // Return 0 if input amount is 0
232
223
  }
@@ -234,11 +225,11 @@ class FluidDex extends simple_exchange_1.SimpleExchange {
234
225
  colReserves.token1RealReserves + debtReserves.token1RealReserves == 0n) {
235
226
  return 0n;
236
227
  }
237
- const amountInAdjusted = (((amountIn * (this.FEE_100_PERCENT - fee)) / this.FEE_100_PERCENT) *
238
- BigInt(10 ** 12)) /
239
- BigInt(10 ** inDecimals);
240
- const amountOut = this.swapInAdjusted(swap0To1, amountInAdjusted, colReserves, debtReserves, outDecimals, currentLimits, syncTime);
241
- return (amountOut * BigInt(10 ** outDecimals)) / BigInt(10 ** 12);
228
+ const amountInAdjusted = (amountIn * BigInt(10 ** 12)) / BigInt(10 ** inDecimals);
229
+ const amountOut = this.swapInAdjusted(swap0To1, amountInAdjusted, // Convert back to number for internal calculations
230
+ colReserves, debtReserves, fee);
231
+ const result = (amountOut * BigInt(10 ** outDecimals)) / BigInt(10 ** 12);
232
+ return result;
242
233
  }
243
234
  /**
244
235
  * Calculates the output amount for a given input amount in a swap operation.
@@ -248,22 +239,21 @@ class FluidDex extends simple_exchange_1.SimpleExchange {
248
239
  * @param debtReserves - The reserves of the debt pool.
249
240
  * @returns The calculated output amount.
250
241
  */
251
- swapInAdjusted(swap0To1, amountToSwap, colReserves, debtReserves, outDecimals, currentLimits, syncTime) {
242
+ swapInAdjusted(swap0To1, amountToSwap, colReserves, debtReserves, fee) {
252
243
  const { token0RealReserves, token1RealReserves, token0ImaginaryReserves, token1ImaginaryReserves, } = colReserves;
253
244
  const { token0RealReserves: debtToken0RealReserves, token1RealReserves: debtToken1RealReserves, token0ImaginaryReserves: debtToken0ImaginaryReserves, token1ImaginaryReserves: debtToken1ImaginaryReserves, } = debtReserves;
254
245
  // Check if all reserves of collateral pool are greater than 0
255
- const colPoolEnabled = token0RealReserves > 0 &&
256
- token1RealReserves > 0 &&
257
- token0ImaginaryReserves > 0 &&
258
- token1ImaginaryReserves > 0;
246
+ const colPoolEnabled = token0RealReserves > BigInt(0) &&
247
+ token1RealReserves > BigInt(0) &&
248
+ token0ImaginaryReserves > BigInt(0) &&
249
+ token1ImaginaryReserves > BigInt(0);
259
250
  // Check if all reserves of debt pool are greater than 0
260
- const debtPoolEnabled = debtToken0RealReserves > 0 &&
261
- debtToken1RealReserves > 0 &&
262
- debtToken0ImaginaryReserves > 0 &&
263
- debtToken1ImaginaryReserves > 0;
251
+ const debtPoolEnabled = debtToken0RealReserves > BigInt(0) &&
252
+ debtToken1RealReserves > BigInt(0) &&
253
+ debtToken0ImaginaryReserves > BigInt(0) &&
254
+ debtToken1ImaginaryReserves > BigInt(0);
264
255
  let colReserveIn, colReserveOut, debtReserveIn, debtReserveOut;
265
256
  let colIReserveIn, colIReserveOut, debtIReserveIn, debtIReserveOut;
266
- let borrowable, withdrawable;
267
257
  if (swap0To1) {
268
258
  colReserveIn = token0RealReserves;
269
259
  colReserveOut = token1RealReserves;
@@ -273,8 +263,6 @@ class FluidDex extends simple_exchange_1.SimpleExchange {
273
263
  debtReserveOut = debtToken1RealReserves;
274
264
  debtIReserveIn = debtToken0ImaginaryReserves;
275
265
  debtIReserveOut = debtToken1ImaginaryReserves;
276
- borrowable = this.getExpandedLimit(syncTime, currentLimits.borrowableToken1);
277
- withdrawable = this.getExpandedLimit(syncTime, currentLimits.withdrawableToken1);
278
266
  }
279
267
  else {
280
268
  colReserveIn = token1RealReserves;
@@ -285,121 +273,46 @@ class FluidDex extends simple_exchange_1.SimpleExchange {
285
273
  debtReserveOut = debtToken0RealReserves;
286
274
  debtIReserveIn = debtToken1ImaginaryReserves;
287
275
  debtIReserveOut = debtToken0ImaginaryReserves;
288
- borrowable = this.getExpandedLimit(syncTime, currentLimits.borrowableToken0);
289
- withdrawable = this.getExpandedLimit(syncTime, currentLimits.withdrawableToken0);
290
276
  }
291
- // bring borrowable and withdrawable from token decimals to 1e12 decimals, same as amounts
292
- borrowable = (borrowable * BigInt(10 ** 12)) / BigInt(10 ** outDecimals);
293
- withdrawable =
294
- (withdrawable * BigInt(10 ** 12)) / BigInt(10 ** outDecimals);
295
277
  let a;
296
278
  if (colPoolEnabled && debtPoolEnabled) {
297
279
  a = this.swapRoutingIn(amountToSwap, colIReserveOut, colIReserveIn, debtIReserveOut, debtIReserveIn);
298
280
  }
299
281
  else if (debtPoolEnabled) {
300
- a = -1n; // Route from debt pool
282
+ a = BigInt(-1); // Route from debt pool
301
283
  }
302
284
  else if (colPoolEnabled) {
303
- a = amountToSwap + 1n; // Route from collateral pool
285
+ a = amountToSwap + BigInt(1); // Route from collateral pool
304
286
  }
305
287
  else {
306
288
  throw new Error('No pools are enabled');
307
289
  }
308
- let amountOutCollateral = 0n;
309
- let amountOutDebt = 0n;
310
- let amountInCollateral = 0n;
311
- let amountInDebt = 0n;
312
- if (a <= 0n) {
290
+ let amountOutCollateral = BigInt(0);
291
+ let amountOutDebt = BigInt(0);
292
+ if (a <= BigInt(0)) {
313
293
  // Entire trade routes through debt pool
314
- amountInDebt = amountToSwap;
315
- amountOutDebt = this.getAmountOut(amountToSwap, debtIReserveIn, debtIReserveOut);
294
+ amountOutDebt = this.getAmountOut(this.applyFee(amountToSwap, fee), debtIReserveIn, debtIReserveOut);
316
295
  }
317
296
  else if (a >= amountToSwap) {
318
297
  // Entire trade routes through collateral pool
319
- amountInCollateral = amountToSwap;
320
- amountOutCollateral = this.getAmountOut(amountToSwap, colIReserveIn, colIReserveOut);
298
+ amountOutCollateral = this.getAmountOut(this.applyFee(amountToSwap, fee), colIReserveIn, colIReserveOut);
321
299
  }
322
300
  else {
323
301
  // Trade routes through both pools
324
- amountInCollateral = a;
325
- amountOutCollateral = this.getAmountOut(a, colIReserveIn, colIReserveOut);
326
- amountInDebt = amountToSwap - a;
327
- amountOutDebt = this.getAmountOut(amountInDebt, debtIReserveIn, debtIReserveOut);
302
+ amountOutCollateral = this.getAmountOut(this.applyFee(a, fee), colIReserveIn, colIReserveOut);
303
+ amountOutDebt = this.getAmountOut(this.applyFee(amountToSwap - a, fee), debtIReserveIn, debtIReserveOut);
328
304
  }
329
305
  if (amountOutDebt > debtReserveOut) {
330
306
  return 0n;
331
307
  }
332
- if (amountOutDebt > borrowable) {
333
- return 0n;
334
- }
335
308
  if (amountOutCollateral > colReserveOut) {
336
309
  return 0n;
337
310
  }
338
- if (amountOutCollateral > withdrawable) {
339
- return 0n;
340
- }
341
- // For price calculations, we'll use a precision factor for bigint division
342
- const PRECISION = 1000000000000000000000000000n; // 1e27
343
- let oldPrice;
344
- let newPrice;
345
- if (amountInCollateral > amountInDebt) {
346
- // new pool price from col pool
347
- oldPrice = swap0To1
348
- ? (colIReserveOut * PRECISION) / colIReserveIn
349
- : (colIReserveIn * PRECISION) / colIReserveOut;
350
- newPrice = swap0To1
351
- ? ((colIReserveOut - amountOutCollateral) * PRECISION) /
352
- (colIReserveIn + amountInCollateral)
353
- : ((colIReserveIn + amountInCollateral) * PRECISION) /
354
- (colIReserveOut - amountOutCollateral);
355
- }
356
- else {
357
- // new pool price from debt pool
358
- oldPrice = swap0To1
359
- ? (debtIReserveOut * PRECISION) / debtIReserveIn
360
- : (debtIReserveIn * PRECISION) / debtIReserveOut;
361
- newPrice = swap0To1
362
- ? ((debtIReserveOut - amountOutDebt) * PRECISION) /
363
- (debtIReserveIn + amountInDebt)
364
- : ((debtIReserveIn + amountInDebt) * PRECISION) /
365
- (debtIReserveOut - amountOutDebt);
366
- }
367
- // Calculate price difference using bigint arithmetic
368
- const MAX_PRICE_DIFF = 5n; // 5%
369
- const priceDiff = oldPrice > newPrice ? oldPrice - newPrice : newPrice - oldPrice;
370
- const maxAllowedDiff = (oldPrice * MAX_PRICE_DIFF) / 100n;
371
- if (priceDiff > maxAllowedDiff) {
372
- return 0n;
373
- }
374
311
  const totalAmountOut = amountOutCollateral + amountOutDebt;
375
312
  return totalAmountOut;
376
313
  }
377
- /**
378
- * Calculates the currently available swappable amount for a token limit considering expansion since last syncTime.
379
- * @param syncTime - timestamp in seconds when the limits were synced
380
- * @param limit - token limit object containing available amount, expandsTo amount, and expandDuration
381
- * @returns The calculated available swappable amount (borrowable or withdrawable)
382
- */
383
- getExpandedLimit(syncTime, limit) {
384
- const currentTime = Math.floor(Date.now() / 1000); // convert milliseconds to seconds
385
- const elapsedTime = currentTime - syncTime;
386
- limit.expandsDuration = limit.expandsDuration || 0n;
387
- if (elapsedTime < 10n) {
388
- // if almost no time has elapsed, return available amount
389
- return limit.available;
390
- }
391
- if (elapsedTime >= limit.expandsDuration) {
392
- // if duration has passed, return max amount
393
- return limit.expandsTo;
394
- }
395
- // Calculate expansion ratio using bigint arithmetic
396
- // Multiply by a large factor for precision in integer arithmetic
397
- const PRECISION = 1000000;
398
- const ratio = BigInt(elapsedTime * PRECISION) / limit.expandsDuration;
399
- // Calculate expanded amount with precision factor
400
- const expansion = ((limit.expandsTo - limit.available) * ratio) / BigInt(PRECISION);
401
- const expandedAmount = limit.available + expansion;
402
- return expandedAmount;
314
+ applyFee(amount, fee) {
315
+ return (amount * (this.FEE_100_PERCENT - fee)) / this.FEE_100_PERCENT;
403
316
  }
404
317
  /**
405
318
  * Given an input amount of asset and pair reserves, returns the maximum output amount of the other asset.
@@ -484,16 +397,13 @@ class FluidDex extends simple_exchange_1.SimpleExchange {
484
397
  * @param {number} fee - The fee for the swap. 1e4 = 1%
485
398
  * @returns {bigint} amountIn - The calculated input amount required for the swap.
486
399
  */
487
- swapOut(swap0to1, amountOut, colReserves, debtReserves, inDecimals, outDecimals, fee, currentLimits, syncTime) {
400
+ swapOut(swap0to1, amountOut, colReserves, debtReserves, inDecimals, outDecimals, fee) {
488
401
  const amountOutAdjusted = (amountOut * BigInt(10 ** 12)) / BigInt(10 ** outDecimals);
489
- const amountIn = this.swapOutAdjusted(swap0to1, amountOutAdjusted, colReserves, debtReserves, outDecimals, currentLimits, syncTime);
490
- if (amountIn == 2n ** 256n - 1n) {
491
- return amountIn;
492
- }
493
- const ans = (amountIn * this.FEE_100_PERCENT * BigInt(10 ** inDecimals)) /
494
- BigInt(10 ** 12) /
495
- (this.FEE_100_PERCENT - fee);
496
- return ans;
402
+ const amountIn = this.swapOutAdjusted(swap0to1, amountOutAdjusted, colReserves, debtReserves);
403
+ const FEE_100_PERCENT = BigInt(1e6); // Assuming this constant is defined elsewhere
404
+ const result = ((amountIn * FEE_100_PERCENT) / (FEE_100_PERCENT - fee)) *
405
+ BigInt(10 ** (inDecimals - 12));
406
+ return result;
497
407
  }
498
408
  /**
499
409
  * Calculates the input amount for a given output amount in a swap operation.
@@ -503,25 +413,21 @@ class FluidDex extends simple_exchange_1.SimpleExchange {
503
413
  * @param {DebtReserves} debtReserves - The reserves of the debt pool.
504
414
  * @returns {bigint} The calculated input amount required for the swap.
505
415
  */
506
- swapOutAdjusted(swap0to1, amountOut, colReserves, debtReserves, outDecimals, currentLimits, syncTime) {
507
- if (amountOut === 0n) {
508
- return 0n; // Return 0 if output amount is 0
509
- }
416
+ swapOutAdjusted(swap0to1, amountOut, colReserves, debtReserves) {
510
417
  const { token0RealReserves, token1RealReserves, token0ImaginaryReserves, token1ImaginaryReserves, } = colReserves;
511
418
  const { token0RealReserves: debtToken0RealReserves, token1RealReserves: debtToken1RealReserves, token0ImaginaryReserves: debtToken0ImaginaryReserves, token1ImaginaryReserves: debtToken1ImaginaryReserves, } = debtReserves;
512
419
  // Check if all reserves of collateral pool are greater than 0
513
- const colPoolEnabled = token0RealReserves > BigInt(0) &&
514
- token1RealReserves > BigInt(0) &&
515
- token0ImaginaryReserves > BigInt(0) &&
516
- token1ImaginaryReserves > BigInt(0);
420
+ const colPoolEnabled = token0RealReserves > 0n &&
421
+ token1RealReserves > 0n &&
422
+ token0ImaginaryReserves > 0n &&
423
+ token1ImaginaryReserves > 0n;
517
424
  // Check if all reserves of debt pool are greater than 0
518
- const debtPoolEnabled = debtToken0RealReserves > BigInt(0) &&
519
- debtToken1RealReserves > BigInt(0) &&
520
- debtToken0ImaginaryReserves > BigInt(0) &&
521
- debtToken1ImaginaryReserves > BigInt(0);
425
+ const debtPoolEnabled = debtToken0RealReserves > 0n &&
426
+ debtToken1RealReserves > 0n &&
427
+ debtToken0ImaginaryReserves > 0n &&
428
+ debtToken1ImaginaryReserves > 0n;
522
429
  let colReserveIn, colReserveOut, debtReserveIn, debtReserveOut;
523
430
  let colIReserveIn, colIReserveOut, debtIReserveIn, debtIReserveOut;
524
- let borrowable, withdrawable;
525
431
  if (swap0to1) {
526
432
  colReserveIn = token0RealReserves;
527
433
  colReserveOut = token1RealReserves;
@@ -531,8 +437,6 @@ class FluidDex extends simple_exchange_1.SimpleExchange {
531
437
  debtReserveOut = debtToken1RealReserves;
532
438
  debtIReserveIn = debtToken0ImaginaryReserves;
533
439
  debtIReserveOut = debtToken1ImaginaryReserves;
534
- borrowable = this.getExpandedLimit(syncTime, currentLimits.borrowableToken1);
535
- withdrawable = this.getExpandedLimit(syncTime, currentLimits.withdrawableToken1);
536
440
  }
537
441
  else {
538
442
  colReserveIn = token1RealReserves;
@@ -543,103 +447,47 @@ class FluidDex extends simple_exchange_1.SimpleExchange {
543
447
  debtReserveOut = debtToken0RealReserves;
544
448
  debtIReserveIn = debtToken1ImaginaryReserves;
545
449
  debtIReserveOut = debtToken0ImaginaryReserves;
546
- borrowable = this.getExpandedLimit(syncTime, currentLimits.borrowableToken0);
547
- withdrawable = this.getExpandedLimit(syncTime, currentLimits.withdrawableToken0);
548
450
  }
549
- // bring borrowable and withdrawable from token decimals to 1e12 decimals, same as amounts
550
- borrowable = (borrowable * BigInt(10 ** 12)) / BigInt(10 ** outDecimals);
551
- withdrawable =
552
- (withdrawable * BigInt(10 ** 12)) / BigInt(10 ** outDecimals);
553
451
  let a;
554
452
  if (colPoolEnabled && debtPoolEnabled) {
555
453
  a = this.swapRoutingOut(amountOut, colIReserveIn, colIReserveOut, debtIReserveIn, debtIReserveOut);
556
454
  }
557
455
  else if (debtPoolEnabled) {
558
- a = BigInt(-1); // Route from debt pool
456
+ a = -1n; // Route from debt pool
559
457
  }
560
458
  else if (colPoolEnabled) {
561
- a = amountOut + BigInt(1); // Route from collateral pool
459
+ a = amountOut + 1n; // Route from collateral pool
562
460
  }
563
461
  else {
564
462
  throw new Error('No pools are enabled');
565
463
  }
566
- let amountInCollateral = BigInt(0);
567
- let amountInDebt = BigInt(0);
568
- let amountOutCollateral = BigInt(0);
569
- let amountOutDebt = BigInt(0);
570
- if (a <= BigInt(0)) {
464
+ let amountInCollateral = 0n;
465
+ let amountInDebt = 0n;
466
+ if (a <= 0n) {
571
467
  // Entire trade routes through debt pool
572
- amountOutDebt = amountOut;
573
468
  amountInDebt = this.getAmountIn(amountOut, debtIReserveIn, debtIReserveOut);
574
469
  if (amountOut > debtReserveOut) {
575
- return 2n ** 256n - 1n;
576
- }
577
- if (amountOut > borrowable) {
578
- return 2n ** 256n - 1n;
470
+ return 2n ** 64n - 1n; // BigInt max value
579
471
  }
580
472
  }
581
473
  else if (a >= amountOut) {
582
474
  // Entire trade routes through collateral pool
583
- amountOutCollateral = amountOut;
584
475
  amountInCollateral = this.getAmountIn(amountOut, colIReserveIn, colIReserveOut);
585
476
  if (amountOut > colReserveOut) {
586
- return 2n ** 256n - 1n;
587
- }
588
- if (amountOut > withdrawable) {
589
- return 2n ** 256n - 1n;
477
+ return 2n ** 64n - 1n; // BigInt max value
590
478
  }
591
479
  }
592
480
  else {
593
481
  // Trade routes through both pools
594
- amountOutCollateral = a;
595
482
  amountInCollateral = this.getAmountIn(a, colIReserveIn, colIReserveOut);
596
- amountOutDebt = amountOut - a;
597
- amountInDebt = this.getAmountIn(amountOutDebt, debtIReserveIn, debtIReserveOut);
598
- if (amountOutDebt > debtReserveOut || a > colReserveOut) {
599
- return 2n ** 256n - 1n;
600
- }
601
- if (amountOutDebt > borrowable || a > withdrawable) {
602
- return 2n ** 256n - 1n;
483
+ amountInDebt = this.getAmountIn(amountOut - a, debtIReserveIn, debtIReserveOut);
484
+ if (amountOut - a > debtReserveOut || a > debtReserveOut) {
485
+ return 2n ** 64n - 1n; // BigInt max value
603
486
  }
604
487
  }
605
- let oldPrice;
606
- let newPrice;
607
- const SCALE = BigInt(1e27);
608
- // from whatever pool higher amount of swap is routing we are taking that as final price, does not matter much because both pools final price should be same
609
- if (amountOutCollateral > amountOutDebt) {
610
- // new pool price from col pool
611
- oldPrice = swap0to1
612
- ? (colIReserveOut * SCALE) / colIReserveIn
613
- : (colIReserveIn * SCALE) / colIReserveOut;
614
- newPrice = swap0to1
615
- ? ((colIReserveOut - amountOutCollateral) * SCALE) /
616
- (colIReserveIn + amountInCollateral)
617
- : ((colIReserveIn + amountInCollateral) * SCALE) /
618
- (colIReserveOut - amountOutCollateral);
619
- }
620
- else {
621
- // new pool price from debt pool
622
- oldPrice = swap0to1
623
- ? (debtIReserveOut * SCALE) / debtIReserveIn
624
- : (debtIReserveIn * SCALE) / debtIReserveOut;
625
- newPrice = swap0to1
626
- ? ((debtIReserveOut - amountOutDebt) * SCALE) /
627
- (debtIReserveIn + amountInDebt)
628
- : ((debtIReserveIn + amountInDebt) * SCALE) /
629
- (debtIReserveOut - amountOutDebt);
630
- }
631
- const MAX_PRICE_DIFF = BigInt(5); // 5%
632
- if (this.abs(oldPrice - newPrice) >
633
- (oldPrice / BigInt(100)) * MAX_PRICE_DIFF) {
634
- // if price diff is > 5% then swap would revert.
635
- return 2n ** 256n - 1n;
636
- }
637
488
  const totalAmountIn = amountInCollateral + amountInDebt;
638
489
  return totalAmountIn;
639
490
  }
640
- abs(value) {
641
- return value < 0 ? -value : value;
642
- }
643
491
  }
644
492
  exports.FluidDex = FluidDex;
645
493
  FluidDex.dexKeysWithNetwork = (0, utils_1.getDexKeysWithNetwork)(config_1.FluidDexConfig);
@@ -1 +1 @@
1
- {"version":3,"file":"fluid-dex.js","sourceRoot":"","sources":["../../../src/dex/fluid-dex/fluid-dex.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"fluid-dex.js","sourceRoot":"","sources":["../../../src/dex/fluid-dex/fluid-dex.ts"],"names":[],"mappings":"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"}
@@ -4,10 +4,9 @@ export declare type PoolReserve = {
4
4
  pool: string;
5
5
  token0: string;
6
6
  token1: string;
7
- fee: number;
8
7
  collateralReserves: CollateralReserves;
9
8
  debtReserves: DebtReserves;
10
- dexLimits: DexLimits;
9
+ fee: number;
11
10
  };
12
11
  export declare type PoolReserveResponse = [
13
12
  string,
@@ -15,27 +14,8 @@ export declare type PoolReserveResponse = [
15
14
  string,
16
15
  BigNumber,
17
16
  BigNumber[],
18
- BigNumber[],
19
- DexLimitResponse
17
+ BigNumber[]
20
18
  ];
21
- export declare type DexLimits = {
22
- withdrawableToken0: TokenLimit;
23
- withdrawableToken1: TokenLimit;
24
- borrowableToken0: TokenLimit;
25
- borrowableToken1: TokenLimit;
26
- };
27
- export declare type DexLimitResponse = [
28
- TokenLimitResponse,
29
- TokenLimitResponse,
30
- TokenLimitResponse,
31
- TokenLimitResponse
32
- ];
33
- export declare type TokenLimit = {
34
- available: bigint;
35
- expandsTo: bigint;
36
- expandsDuration: bigint;
37
- };
38
- export declare type TokenLimitResponse = [bigint, bigint, bigint];
39
19
  export declare type FluidDexLiquidityProxyState = {
40
20
  poolsReserves: readonly PoolReserve[];
41
21
  };
@@ -0,0 +1,4 @@
1
+ import { DexParams, PricePoolParams } from './types';
2
+ import { DexConfigMap } from '../../types';
3
+ export declare const InceptionConfig: DexConfigMap<DexParams[]>;
4
+ export declare const InceptionPricePoolConfig: DexConfigMap<PricePoolParams>;