@paraswap/dex-lib 2.36.3-sequential-preprocessing.0 → 2.37.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 (200) hide show
  1. package/.idea/aws.xml +17 -0
  2. package/.idea/codeStyles/Project.xml +19 -0
  3. package/.idea/codeStyles/codeStyleConfig.xml +5 -0
  4. package/.idea/misc.xml +6 -0
  5. package/.idea/modules.xml +8 -0
  6. package/.idea/paraswap-dex-lib.iml +9 -0
  7. package/.idea/vcs.xml +6 -0
  8. package/build/abi/algebra/AlgebraPool.abi.json +727 -0
  9. package/build/abi/curve-v1/StableSwapFRXETH.json +889 -0
  10. package/build/abi/curve-v1/StableSwapWBETH.json +1223 -0
  11. package/build/abi/dexalot/DexalotMainnetRFQ.json +887 -0
  12. package/build/abi/sushiswap-v3/QuoterV2.json +267 -0
  13. package/build/abi/sushiswap-v3/RouterProcessor3.json +289 -0
  14. package/build/abi/uniswap-v3/UniswapV3Quoter.abi.json +193 -0
  15. package/build/abi/uniswap-v3/pancakeswap-v3/PancakeswapV3QuoterV2.abi.json +285 -0
  16. package/build/abi/uniswap-v3/pancakeswap-v3/PancakeswapV3Router.abi.json +583 -0
  17. package/build/abi/wBETH.json +1527 -0
  18. package/build/abi/woo-fi/WooFeeManager.abi.json +318 -0
  19. package/build/abi/woo-fi/WooPP.abi.json +548 -0
  20. package/build/abi/woo-fi/Wooracle.abi.json +260 -0
  21. package/build/dex/aave-v3/tokens/arbitrum.json +50 -0
  22. package/build/dex/aave-v3/tokens/avalanche.json +74 -0
  23. package/build/dex/aave-v3/tokens/fantom.json +62 -0
  24. package/build/dex/aave-v3/tokens/optimism.json +50 -0
  25. package/build/dex/aave-v3/tokens/polygon.json +116 -0
  26. package/build/dex/algebra/algebra-pool.d.ts +46 -0
  27. package/build/dex/algebra/algebra-pool.js +336 -0
  28. package/build/dex/algebra/algebra-pool.js.map +1 -0
  29. package/build/dex/balancer-v2/LinearMath.d.ts +19 -0
  30. package/build/dex/balancer-v2/LinearMath.js +179 -0
  31. package/build/dex/balancer-v2/LinearMath.js.map +1 -0
  32. package/build/dex/balancer-v2/LinearPool.d.ts +47 -0
  33. package/build/dex/balancer-v2/LinearPool.js +324 -0
  34. package/build/dex/balancer-v2/LinearPool.js.map +1 -0
  35. package/build/dex/balancer-v2/PhantomStablePool.d.ts +47 -0
  36. package/build/dex/balancer-v2/PhantomStablePool.js +294 -0
  37. package/build/dex/balancer-v2/PhantomStablePool.js.map +1 -0
  38. package/build/dex/balancer-v2/StableMath.d.ts +9 -0
  39. package/build/dex/balancer-v2/StableMath.js +272 -0
  40. package/build/dex/balancer-v2/StableMath.js.map +1 -0
  41. package/build/dex/balancer-v2/balancer-v2-pool.d.ts +75 -0
  42. package/build/dex/balancer-v2/balancer-v2-pool.js +417 -0
  43. package/build/dex/balancer-v2/balancer-v2-pool.js.map +1 -0
  44. package/build/dex/curve-v1/pools/frxETHpool.d.ts +7 -0
  45. package/build/dex/curve-v1/pools/frxETHpool.js +27 -0
  46. package/build/dex/curve-v1/pools/frxETHpool.js.map +1 -0
  47. package/build/dex/curve-v1/pools/wbETHpool.d.ts +29 -0
  48. package/build/dex/curve-v1/pools/wbETHpool.js +408 -0
  49. package/build/dex/curve-v1/pools/wbETHpool.js.map +1 -0
  50. package/build/dex/dexalot/config.d.ts +4 -0
  51. package/build/dex/dexalot/config.js +18 -0
  52. package/build/dex/dexalot/config.js.map +1 -0
  53. package/build/dex/dexalot/constants.d.ts +15 -0
  54. package/build/dex/dexalot/constants.js +22 -0
  55. package/build/dex/dexalot/constants.js.map +1 -0
  56. package/build/dex/dexalot/dexalot.d.ts +69 -0
  57. package/build/dex/dexalot/dexalot.js +646 -0
  58. package/build/dex/dexalot/dexalot.js.map +1 -0
  59. package/build/dex/dexalot/rate-fetcher.d.ts +28 -0
  60. package/build/dex/dexalot/rate-fetcher.js +100 -0
  61. package/build/dex/dexalot/rate-fetcher.js.map +1 -0
  62. package/build/dex/dexalot/types.d.ts +114 -0
  63. package/build/dex/dexalot/types.js +12 -0
  64. package/build/dex/dexalot/types.js.map +1 -0
  65. package/build/dex/dexalot/validators.d.ts +5 -0
  66. package/build/dex/dexalot/validators.js +45 -0
  67. package/build/dex/dexalot/validators.js.map +1 -0
  68. package/build/dex/hashflow/hashflow.d.ts +0 -1
  69. package/build/dex/hashflow/hashflow.js +0 -1
  70. package/build/dex/hashflow/hashflow.js.map +1 -1
  71. package/build/dex/idex.d.ts +0 -1
  72. package/build/dex/index.d.ts +0 -1
  73. package/build/dex/index.js +0 -4
  74. package/build/dex/index.js.map +1 -1
  75. package/build/dex/pancakeswap-v3/types.d.ts +14 -0
  76. package/build/dex/pancakeswap-v3/types.js +3 -0
  77. package/build/dex/pancakeswap-v3/types.js.map +1 -0
  78. package/build/dex/quickswap/camelot-v3.d.ts +6 -0
  79. package/build/dex/quickswap/camelot-v3.js +19 -0
  80. package/build/dex/quickswap/camelot-v3.js.map +1 -0
  81. package/build/dex/quickswap/zyberswap-v3.d.ts +6 -0
  82. package/build/dex/quickswap/zyberswap-v3.js +19 -0
  83. package/build/dex/quickswap/zyberswap-v3.js.map +1 -0
  84. package/build/dex/quickswap-v3.d.ts +21 -0
  85. package/build/dex/quickswap-v3.js +40 -0
  86. package/build/dex/quickswap-v3.js.map +1 -0
  87. package/build/dex/ramses-v2/config.d.ts +4 -0
  88. package/build/dex/ramses-v2/config.js +28 -0
  89. package/build/dex/ramses-v2/config.js.map +1 -0
  90. package/build/dex/ramses-v2/constants.d.ts +28 -0
  91. package/build/dex/ramses-v2/constants.js +35 -0
  92. package/build/dex/ramses-v2/constants.js.map +1 -0
  93. package/build/dex/ramses-v2/contract-math/BitMath.d.ts +4 -0
  94. package/build/dex/ramses-v2/contract-math/BitMath.js +93 -0
  95. package/build/dex/ramses-v2/contract-math/BitMath.js.map +1 -0
  96. package/build/dex/ramses-v2/contract-math/FixedPoint128.d.ts +3 -0
  97. package/build/dex/ramses-v2/contract-math/FixedPoint128.js +8 -0
  98. package/build/dex/ramses-v2/contract-math/FixedPoint128.js.map +1 -0
  99. package/build/dex/ramses-v2/contract-math/FixedPoint96.d.ts +4 -0
  100. package/build/dex/ramses-v2/contract-math/FixedPoint96.js +9 -0
  101. package/build/dex/ramses-v2/contract-math/FixedPoint96.js.map +1 -0
  102. package/build/dex/ramses-v2/contract-math/FullMath.d.ts +4 -0
  103. package/build/dex/ramses-v2/contract-math/FullMath.js +19 -0
  104. package/build/dex/ramses-v2/contract-math/FullMath.js.map +1 -0
  105. package/build/dex/ramses-v2/contract-math/LiquidityMath.d.ts +3 -0
  106. package/build/dex/ramses-v2/contract-math/LiquidityMath.js +22 -0
  107. package/build/dex/ramses-v2/contract-math/LiquidityMath.js.map +1 -0
  108. package/build/dex/ramses-v2/contract-math/Oracle.d.ts +10 -0
  109. package/build/dex/ramses-v2/contract-math/Oracle.js +133 -0
  110. package/build/dex/ramses-v2/contract-math/Oracle.js.map +1 -0
  111. package/build/dex/ramses-v2/contract-math/SqrtPriceMath.d.ts +10 -0
  112. package/build/dex/ramses-v2/contract-math/SqrtPriceMath.js +91 -0
  113. package/build/dex/ramses-v2/contract-math/SqrtPriceMath.js.map +1 -0
  114. package/build/dex/ramses-v2/contract-math/SwapMath.d.ts +8 -0
  115. package/build/dex/ramses-v2/contract-math/SwapMath.js +70 -0
  116. package/build/dex/ramses-v2/contract-math/SwapMath.js.map +1 -0
  117. package/build/dex/ramses-v2/contract-math/Tick.d.ts +7 -0
  118. package/build/dex/ramses-v2/contract-math/Tick.js +45 -0
  119. package/build/dex/ramses-v2/contract-math/Tick.js.map +1 -0
  120. package/build/dex/ramses-v2/contract-math/TickBitMap.d.ts +8 -0
  121. package/build/dex/ramses-v2/contract-math/TickBitMap.js +87 -0
  122. package/build/dex/ramses-v2/contract-math/TickBitMap.js.map +1 -0
  123. package/build/dex/ramses-v2/contract-math/TickMath.d.ts +8 -0
  124. package/build/dex/ramses-v2/contract-math/TickMath.js +162 -0
  125. package/build/dex/ramses-v2/contract-math/TickMath.js.map +1 -0
  126. package/build/dex/ramses-v2/contract-math/UnsafeMath.d.ts +3 -0
  127. package/build/dex/ramses-v2/contract-math/UnsafeMath.js +10 -0
  128. package/build/dex/ramses-v2/contract-math/UnsafeMath.js.map +1 -0
  129. package/build/dex/ramses-v2/contract-math/uniswap-v3-math.d.ts +18 -0
  130. package/build/dex/ramses-v2/contract-math/uniswap-v3-math.js +392 -0
  131. package/build/dex/ramses-v2/contract-math/uniswap-v3-math.js.map +1 -0
  132. package/build/dex/ramses-v2/contract-math/utils.d.ts +3 -0
  133. package/build/dex/ramses-v2/contract-math/utils.js +16 -0
  134. package/build/dex/ramses-v2/contract-math/utils.js.map +1 -0
  135. package/build/dex/ramses-v2/ramses-v2-pool.d.ts +42 -0
  136. package/build/dex/ramses-v2/ramses-v2-pool.js +307 -0
  137. package/build/dex/ramses-v2/ramses-v2-pool.js.map +1 -0
  138. package/build/dex/ramses-v2/ramses-v2.d.ts +61 -0
  139. package/build/dex/ramses-v2/ramses-v2.js +690 -0
  140. package/build/dex/ramses-v2/ramses-v2.js.map +1 -0
  141. package/build/dex/ramses-v2/types.d.ts +154 -0
  142. package/build/dex/ramses-v2/types.js +9 -0
  143. package/build/dex/ramses-v2/types.js.map +1 -0
  144. package/build/dex/ramses-v2/utils.d.ts +6 -0
  145. package/build/dex/ramses-v2/utils.js +71 -0
  146. package/build/dex/ramses-v2/utils.js.map +1 -0
  147. package/build/dex/sushiswap-v3/config.d.ts +4 -0
  148. package/build/dex/sushiswap-v3/config.js +132 -0
  149. package/build/dex/sushiswap-v3/config.js.map +1 -0
  150. package/build/dex/sushiswap-v3/constants.d.ts +4 -0
  151. package/build/dex/sushiswap-v3/constants.js +32 -0
  152. package/build/dex/sushiswap-v3/constants.js.map +1 -0
  153. package/build/dex/sushiswap-v3/sushiswap-v3-original.d.ts +56 -0
  154. package/build/dex/sushiswap-v3/sushiswap-v3-original.js +598 -0
  155. package/build/dex/sushiswap-v3/sushiswap-v3-original.js.map +1 -0
  156. package/build/dex/sushiswap-v3/sushiswap-v3-pool.d.ts +1 -0
  157. package/build/dex/sushiswap-v3/sushiswap-v3-pool.js +6 -0
  158. package/build/dex/sushiswap-v3/sushiswap-v3-pool.js.map +1 -0
  159. package/build/dex/sushiswap-v3/sushiswap-v3.d.ts +21 -0
  160. package/build/dex/sushiswap-v3/sushiswap-v3.js +58 -0
  161. package/build/dex/sushiswap-v3/sushiswap-v3.js.map +1 -0
  162. package/build/dex/sushiswap-v3/token.d.ts +6 -0
  163. package/build/dex/sushiswap-v3/token.js +23 -0
  164. package/build/dex/sushiswap-v3/token.js.map +1 -0
  165. package/build/dex/sushiswap-v3/types.d.ts +15 -0
  166. package/build/dex/sushiswap-v3/types.js +18 -0
  167. package/build/dex/sushiswap-v3/types.js.map +1 -0
  168. package/build/dex/uniswap-v3/config.js +14 -0
  169. package/build/dex/uniswap-v3/config.js.map +1 -1
  170. package/build/dex/uniswap-v3/forks/pancakeswap-v3/pancakeswap-v3.d.ts +12 -0
  171. package/build/dex/uniswap-v3/forks/pancakeswap-v3/pancakeswap-v3.js +23 -0
  172. package/build/dex/uniswap-v3/forks/pancakeswap-v3/pancakeswap-v3.js.map +1 -0
  173. package/build/dex/uniswap-v3/uniswap-v3.js +1 -0
  174. package/build/dex/uniswap-v3/uniswap-v3.js.map +1 -1
  175. package/build/dex/woo-fi/config.d.ts +4 -0
  176. package/build/dex/woo-fi/config.js +141 -0
  177. package/build/dex/woo-fi/config.js.map +1 -0
  178. package/build/dex/woo-fi/constants.d.ts +5 -0
  179. package/build/dex/woo-fi/constants.js +20 -0
  180. package/build/dex/woo-fi/constants.js.map +1 -0
  181. package/build/dex/woo-fi/types.d.ts +48 -0
  182. package/build/dex/woo-fi/types.js +3 -0
  183. package/build/dex/woo-fi/types.js.map +1 -0
  184. package/build/dex/woo-fi/woo-fi-decimal-math.d.ts +14 -0
  185. package/build/dex/woo-fi/woo-fi-decimal-math.js +42 -0
  186. package/build/dex/woo-fi/woo-fi-decimal-math.js.map +1 -0
  187. package/build/dex/woo-fi/woo-fi-math.d.ts +31 -0
  188. package/build/dex/woo-fi/woo-fi-math.js +300 -0
  189. package/build/dex/woo-fi/woo-fi-math.js.map +1 -0
  190. package/build/dex/woo-fi/woo-fi.d.ts +65 -0
  191. package/build/dex/woo-fi/woo-fi.js +480 -0
  192. package/build/dex/woo-fi/woo-fi.js.map +1 -0
  193. package/package.json +1 -1
  194. package/src/dex/hashflow/hashflow.ts +1 -2
  195. package/src/dex/idex.ts +0 -1
  196. package/src/dex/index.ts +0 -6
  197. package/src/dex/uniswap-v3/config.ts +15 -0
  198. package/src/dex/uniswap-v3/uniswap-v3-e2e.test.ts +25 -0
  199. package/src/dex/uniswap-v3/uniswap-v3-integration.test.ts +144 -0
  200. package/src/dex/uniswap-v3/uniswap-v3.ts +1 -0
@@ -1100,3 +1100,147 @@ describe('SushiSwapV3', () => {
1100
1100
  });
1101
1101
  });
1102
1102
  });
1103
+
1104
+
1105
+ describe('Retro', () => {
1106
+ const dexKey = 'Retro';
1107
+
1108
+ describe('Polygon', () => {
1109
+ let blockNumber: number;
1110
+ let retro: UniswapV3;
1111
+
1112
+ const network = Network.POLYGON;
1113
+ const dexHelper = new DummyDexHelper(network);
1114
+ const TokenASymbol = 'USDC';
1115
+ const TokenA = Tokens[network][TokenASymbol];
1116
+
1117
+ const TokenBSymbol = 'USDT';
1118
+ const TokenB = Tokens[network][TokenBSymbol];
1119
+
1120
+ beforeEach(async () => {
1121
+ blockNumber = await dexHelper.web3Provider.eth.getBlockNumber();
1122
+ retro = new UniswapV3(network, dexKey, dexHelper);
1123
+ });
1124
+
1125
+ it('getPoolIdentifiers and getPricesVolume SELL', async function () {
1126
+ const amounts = [0n, BI_POWS[6], 2000000n];
1127
+
1128
+ const pools = await retro.getPoolIdentifiers(
1129
+ TokenA,
1130
+ TokenB,
1131
+ SwapSide.SELL,
1132
+ blockNumber,
1133
+ );
1134
+ console.log(
1135
+ `${TokenASymbol} <> ${TokenBSymbol} Pool Identifiers: `,
1136
+ pools,
1137
+ );
1138
+
1139
+ expect(pools.length).toBeGreaterThan(0);
1140
+
1141
+ const poolPrices = await retro.getPricesVolume(
1142
+ TokenA,
1143
+ TokenB,
1144
+ amounts,
1145
+ SwapSide.SELL,
1146
+ blockNumber,
1147
+ pools,
1148
+ );
1149
+ console.log(
1150
+ `${TokenASymbol} <> ${TokenBSymbol} Pool Prices: `,
1151
+ poolPrices,
1152
+ );
1153
+
1154
+ expect(poolPrices).not.toBeNull();
1155
+ checkPoolPrices(poolPrices!, amounts, SwapSide.SELL, dexKey);
1156
+
1157
+ let falseChecksCounter = 0;
1158
+ await Promise.all(
1159
+ poolPrices!.map(async price => {
1160
+ const fee = retro.eventPools[price.poolIdentifier!]!.feeCode;
1161
+ const res = await checkOnChainPricing(
1162
+ dexHelper,
1163
+ retro,
1164
+ 'quoteExactInputSingle',
1165
+ blockNumber,
1166
+ '0xfe08be075758935cb6cb9318d1fbb60920416d4e',
1167
+ price.prices,
1168
+ TokenA.address,
1169
+ TokenB.address,
1170
+ fee,
1171
+ amounts,
1172
+ );
1173
+ if (res === false) falseChecksCounter++;
1174
+ }),
1175
+ );
1176
+
1177
+ expect(falseChecksCounter).toBeLessThan(poolPrices!.length);
1178
+ });
1179
+
1180
+ it('getPoolIdentifiers and getPricesVolume BUY', async function () {
1181
+ const amounts = [0n, BI_POWS[6], 2000000n];
1182
+
1183
+ const pools = await retro.getPoolIdentifiers(
1184
+ TokenA,
1185
+ TokenB,
1186
+ SwapSide.BUY,
1187
+ blockNumber,
1188
+ );
1189
+ console.log(
1190
+ `${TokenASymbol} <> ${TokenBSymbol} Pool Identifiers: `,
1191
+ pools,
1192
+ );
1193
+
1194
+ expect(pools.length).toBeGreaterThan(0);
1195
+
1196
+ const poolPrices = await retro.getPricesVolume(
1197
+ TokenA,
1198
+ TokenB,
1199
+ amounts,
1200
+ SwapSide.BUY,
1201
+ blockNumber,
1202
+ pools,
1203
+ );
1204
+ console.log(
1205
+ `${TokenASymbol} <> ${TokenBSymbol} Pool Prices: `,
1206
+ poolPrices,
1207
+ );
1208
+
1209
+ expect(poolPrices).not.toBeNull();
1210
+ checkPoolPrices(poolPrices!, amounts, SwapSide.SELL, dexKey);
1211
+
1212
+ let falseChecksCounter = 0;
1213
+ await Promise.all(
1214
+ poolPrices!.map(async price => {
1215
+ const fee = retro.eventPools[price.poolIdentifier!]!.feeCode;
1216
+ const res = await checkOnChainPricing(
1217
+ dexHelper,
1218
+ retro,
1219
+ 'quoteExactOutputSingle',
1220
+ blockNumber,
1221
+ '0xfe08be075758935cb6cb9318d1fbb60920416d4e',
1222
+ price.prices,
1223
+ TokenA.address,
1224
+ TokenB.address,
1225
+ fee,
1226
+ amounts,
1227
+ );
1228
+ if (res === false) falseChecksCounter++;
1229
+ }),
1230
+ );
1231
+
1232
+ expect(falseChecksCounter).toBeLessThan(poolPrices!.length);
1233
+ });
1234
+
1235
+ it('getTopPoolsForToken', async function () {
1236
+ const poolLiquidity = await retro.getTopPoolsForToken(
1237
+ TokenB.address,
1238
+ 10,
1239
+ );
1240
+ console.log(`${TokenASymbol} Top Pools:`, poolLiquidity);
1241
+
1242
+ checkPoolsLiquidity(poolLiquidity, TokenB.address, dexKey);
1243
+ });
1244
+ });
1245
+
1246
+ });
@@ -97,6 +97,7 @@ export class UniswapV3
97
97
  'QuickSwapV3.1',
98
98
  'RamsesV2',
99
99
  'ChronosV3',
100
+ 'Retro',
100
101
  ]),
101
102
  );
102
103