@paraswap/dex-lib 2.42.24 → 2.42.25-wombat.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 (255) hide show
  1. package/.vscode/launch.json +39 -0
  2. package/.vscode/settings.json +2 -0
  3. package/.vscode/tasks.json +15 -0
  4. package/build/abi/wombat/asset.json +769 -0
  5. package/build/abi/wombat/bmw.json +1247 -0
  6. package/build/abi/wombat/pool.json +1364 -0
  7. package/build/config.js +1 -1
  8. package/build/config.js.map +1 -1
  9. package/build/dex/index.js +2 -0
  10. package/build/dex/index.js.map +1 -1
  11. package/build/dex/{woo-fi → wombat}/config.d.ts +1 -1
  12. package/build/dex/wombat/config.js +77 -0
  13. package/build/dex/wombat/config.js.map +1 -0
  14. package/build/dex/wombat/types.d.ts +33 -0
  15. package/build/dex/{woo-fi → wombat}/types.js.map +1 -1
  16. package/build/dex/wombat/utils.d.ts +9 -0
  17. package/build/dex/wombat/utils.js +66 -0
  18. package/build/dex/wombat/utils.js.map +1 -0
  19. package/build/dex/wombat/wombat-bmw.d.ts +40 -0
  20. package/build/dex/wombat/wombat-bmw.js +147 -0
  21. package/build/dex/wombat/wombat-bmw.js.map +1 -0
  22. package/build/dex/wombat/wombat-pool.d.ts +22 -0
  23. package/build/dex/wombat/wombat-pool.js +161 -0
  24. package/build/dex/wombat/wombat-pool.js.map +1 -0
  25. package/build/dex/wombat/wombat-quoter.d.ts +16 -0
  26. package/build/dex/wombat/wombat-quoter.js +176 -0
  27. package/build/dex/wombat/wombat-quoter.js.map +1 -0
  28. package/build/dex/wombat/wombat.d.ts +55 -0
  29. package/build/dex/wombat/wombat.js +290 -0
  30. package/build/dex/wombat/wombat.js.map +1 -0
  31. package/package.json +1 -1
  32. package/src/abi/wombat/asset.json +769 -0
  33. package/src/abi/wombat/bmw.json +1247 -0
  34. package/{build/abi/wBETH.json → src/abi/wombat/pool.json} +574 -737
  35. package/src/config.ts +1 -2
  36. package/src/dex/index.ts +2 -0
  37. package/src/dex/wombat/config.ts +77 -0
  38. package/src/dex/wombat/types.ts +55 -0
  39. package/src/dex/wombat/utils.ts +62 -0
  40. package/src/dex/wombat/wombat-bmw.ts +209 -0
  41. package/src/dex/wombat/wombat-e2e.test.ts +264 -0
  42. package/src/dex/wombat/wombat-integration.test.ts +258 -0
  43. package/src/dex/wombat/wombat-pool.ts +231 -0
  44. package/src/dex/wombat/wombat-quoter.ts +269 -0
  45. package/src/dex/wombat/wombat.ts +426 -0
  46. package/tests/constants-e2e.ts +19 -4
  47. package/tests/utils-e2e.ts +2 -1
  48. package/.idea/aws.xml +0 -17
  49. package/.idea/codeStyles/Project.xml +0 -19
  50. package/.idea/codeStyles/codeStyleConfig.xml +0 -5
  51. package/.idea/misc.xml +0 -6
  52. package/.idea/modules.xml +0 -8
  53. package/.idea/paraswap-dex-lib.iml +0 -9
  54. package/.idea/prettier.xml +0 -7
  55. package/.idea/vcs.xml +0 -6
  56. package/build/abi/AugustusV6.abi.json +0 -395
  57. package/build/abi/algebra/AlgebraPool.abi.json +0 -727
  58. package/build/abi/curve-v1/StableSwapFRXETH.json +0 -889
  59. package/build/abi/curve-v1/StableSwapWBETH.json +0 -1223
  60. package/build/abi/sushiswap-v3/QuoterV2.json +0 -267
  61. package/build/abi/sushiswap-v3/RouterProcessor3.json +0 -289
  62. package/build/abi/uniswap-v3/UniswapV3Quoter.abi.json +0 -193
  63. package/build/abi/uniswap-v3/pancakeswap-v3/PancakeswapV3QuoterV2.abi.json +0 -285
  64. package/build/abi/uniswap-v3/pancakeswap-v3/PancakeswapV3Router.abi.json +0 -583
  65. package/build/abi/woo-fi/WooFeeManager.abi.json +0 -318
  66. package/build/abi/woo-fi/WooPP.abi.json +0 -548
  67. package/build/abi/woo-fi/Wooracle.abi.json +0 -260
  68. package/build/dex/aave-v3/tokens/arbitrum.json +0 -50
  69. package/build/dex/aave-v3/tokens/avalanche.json +0 -74
  70. package/build/dex/aave-v3/tokens/fantom.json +0 -62
  71. package/build/dex/aave-v3/tokens/optimism.json +0 -50
  72. package/build/dex/aave-v3/tokens/polygon.json +0 -116
  73. package/build/dex/algebra/algebra-pool.d.ts +0 -114
  74. package/build/dex/algebra/algebra-pool.js +0 -448
  75. package/build/dex/algebra/algebra-pool.js.map +0 -1
  76. package/build/dex/balancer-v2/Gyro3Pool.d.ts +0 -43
  77. package/build/dex/balancer-v2/Gyro3Pool.js +0 -160
  78. package/build/dex/balancer-v2/Gyro3Pool.js.map +0 -1
  79. package/build/dex/balancer-v2/LinearMath.d.ts +0 -88
  80. package/build/dex/balancer-v2/LinearMath.js +0 -285
  81. package/build/dex/balancer-v2/LinearMath.js.map +0 -1
  82. package/build/dex/balancer-v2/LinearPool.d.ts +0 -81
  83. package/build/dex/balancer-v2/LinearPool.js +0 -444
  84. package/build/dex/balancer-v2/LinearPool.js.map +0 -1
  85. package/build/dex/balancer-v2/PhantomStablePool.d.ts +0 -90
  86. package/build/dex/balancer-v2/PhantomStablePool.js +0 -418
  87. package/build/dex/balancer-v2/PhantomStablePool.js.map +0 -1
  88. package/build/dex/balancer-v2/StableMath.d.ts +0 -9
  89. package/build/dex/balancer-v2/StableMath.js +0 -272
  90. package/build/dex/balancer-v2/StableMath.js.map +0 -1
  91. package/build/dex/balancer-v2/balancer-v2-pool.d.ts +0 -140
  92. package/build/dex/balancer-v2/balancer-v2-pool.js +0 -647
  93. package/build/dex/balancer-v2/balancer-v2-pool.js.map +0 -1
  94. package/build/dex/balancer-v2/pools/gyro/Gyro3Pool.d.ts +0 -33
  95. package/build/dex/balancer-v2/pools/gyro/Gyro3Pool.js +0 -128
  96. package/build/dex/balancer-v2/pools/gyro/Gyro3Pool.js.map +0 -1
  97. package/build/dex/balancer-v2/pools/gyro/GyroEPool.d.ts +0 -34
  98. package/build/dex/balancer-v2/pools/gyro/GyroEPool.js +0 -151
  99. package/build/dex/balancer-v2/pools/gyro/GyroEPool.js.map +0 -1
  100. package/build/dex/curve-v1/pools/frxETHpool.d.ts +0 -7
  101. package/build/dex/curve-v1/pools/frxETHpool.js +0 -27
  102. package/build/dex/curve-v1/pools/frxETHpool.js.map +0 -1
  103. package/build/dex/curve-v1/pools/wbETHpool.d.ts +0 -29
  104. package/build/dex/curve-v1/pools/wbETHpool.js +0 -408
  105. package/build/dex/curve-v1/pools/wbETHpool.js.map +0 -1
  106. package/build/dex/lighter-v1/abi/erc20.json +0 -222
  107. package/build/dex/lighter-v1/abi/factory.json +0 -291
  108. package/build/dex/lighter-v1/abi/order_book.json +0 -594
  109. package/build/dex/lighter-v1/abi/order_book_helper.json +0 -176
  110. package/build/dex/lighter-v1/abi/router.json +0 -488
  111. package/build/dex/lighter-v1/config.d.ts +0 -4
  112. package/build/dex/lighter-v1/config.js +0 -17
  113. package/build/dex/lighter-v1/config.js.map +0 -1
  114. package/build/dex/lighter-v1/constants.d.ts +0 -2
  115. package/build/dex/lighter-v1/constants.js +0 -13
  116. package/build/dex/lighter-v1/constants.js.map +0 -1
  117. package/build/dex/lighter-v1/lighter-v1-pool.d.ts +0 -57
  118. package/build/dex/lighter-v1/lighter-v1-pool.js +0 -310
  119. package/build/dex/lighter-v1/lighter-v1-pool.js.map +0 -1
  120. package/build/dex/lighter-v1/lighter-v1.d.ts +0 -45
  121. package/build/dex/lighter-v1/lighter-v1.js +0 -331
  122. package/build/dex/lighter-v1/lighter-v1.js.map +0 -1
  123. package/build/dex/lighter-v1/types.d.ts +0 -40
  124. package/build/dex/lighter-v1/types.js.map +0 -1
  125. package/build/dex/pancakeswap-v3/types.d.ts +0 -14
  126. package/build/dex/pancakeswap-v3/types.js +0 -3
  127. package/build/dex/pancakeswap-v3/types.js.map +0 -1
  128. package/build/dex/quickswap/camelot-v3.d.ts +0 -6
  129. package/build/dex/quickswap/camelot-v3.js +0 -19
  130. package/build/dex/quickswap/camelot-v3.js.map +0 -1
  131. package/build/dex/quickswap/zyberswap-v3.d.ts +0 -6
  132. package/build/dex/quickswap/zyberswap-v3.js +0 -19
  133. package/build/dex/quickswap/zyberswap-v3.js.map +0 -1
  134. package/build/dex/quickswap-v3.d.ts +0 -21
  135. package/build/dex/quickswap-v3.js +0 -40
  136. package/build/dex/quickswap-v3.js.map +0 -1
  137. package/build/dex/ramses-v2/config.d.ts +0 -4
  138. package/build/dex/ramses-v2/config.js +0 -28
  139. package/build/dex/ramses-v2/config.js.map +0 -1
  140. package/build/dex/ramses-v2/constants.d.ts +0 -28
  141. package/build/dex/ramses-v2/constants.js +0 -35
  142. package/build/dex/ramses-v2/constants.js.map +0 -1
  143. package/build/dex/ramses-v2/contract-math/BitMath.d.ts +0 -4
  144. package/build/dex/ramses-v2/contract-math/BitMath.js +0 -93
  145. package/build/dex/ramses-v2/contract-math/BitMath.js.map +0 -1
  146. package/build/dex/ramses-v2/contract-math/FixedPoint128.d.ts +0 -3
  147. package/build/dex/ramses-v2/contract-math/FixedPoint128.js +0 -8
  148. package/build/dex/ramses-v2/contract-math/FixedPoint128.js.map +0 -1
  149. package/build/dex/ramses-v2/contract-math/FixedPoint96.d.ts +0 -4
  150. package/build/dex/ramses-v2/contract-math/FixedPoint96.js +0 -9
  151. package/build/dex/ramses-v2/contract-math/FixedPoint96.js.map +0 -1
  152. package/build/dex/ramses-v2/contract-math/FullMath.d.ts +0 -4
  153. package/build/dex/ramses-v2/contract-math/FullMath.js +0 -19
  154. package/build/dex/ramses-v2/contract-math/FullMath.js.map +0 -1
  155. package/build/dex/ramses-v2/contract-math/LiquidityMath.d.ts +0 -3
  156. package/build/dex/ramses-v2/contract-math/LiquidityMath.js +0 -22
  157. package/build/dex/ramses-v2/contract-math/LiquidityMath.js.map +0 -1
  158. package/build/dex/ramses-v2/contract-math/Oracle.d.ts +0 -10
  159. package/build/dex/ramses-v2/contract-math/Oracle.js +0 -133
  160. package/build/dex/ramses-v2/contract-math/Oracle.js.map +0 -1
  161. package/build/dex/ramses-v2/contract-math/SqrtPriceMath.d.ts +0 -10
  162. package/build/dex/ramses-v2/contract-math/SqrtPriceMath.js +0 -91
  163. package/build/dex/ramses-v2/contract-math/SqrtPriceMath.js.map +0 -1
  164. package/build/dex/ramses-v2/contract-math/SwapMath.d.ts +0 -8
  165. package/build/dex/ramses-v2/contract-math/SwapMath.js +0 -70
  166. package/build/dex/ramses-v2/contract-math/SwapMath.js.map +0 -1
  167. package/build/dex/ramses-v2/contract-math/Tick.d.ts +0 -7
  168. package/build/dex/ramses-v2/contract-math/Tick.js +0 -45
  169. package/build/dex/ramses-v2/contract-math/Tick.js.map +0 -1
  170. package/build/dex/ramses-v2/contract-math/TickBitMap.d.ts +0 -8
  171. package/build/dex/ramses-v2/contract-math/TickBitMap.js +0 -87
  172. package/build/dex/ramses-v2/contract-math/TickBitMap.js.map +0 -1
  173. package/build/dex/ramses-v2/contract-math/TickMath.d.ts +0 -8
  174. package/build/dex/ramses-v2/contract-math/TickMath.js +0 -162
  175. package/build/dex/ramses-v2/contract-math/TickMath.js.map +0 -1
  176. package/build/dex/ramses-v2/contract-math/UnsafeMath.d.ts +0 -3
  177. package/build/dex/ramses-v2/contract-math/UnsafeMath.js +0 -10
  178. package/build/dex/ramses-v2/contract-math/UnsafeMath.js.map +0 -1
  179. package/build/dex/ramses-v2/contract-math/uniswap-v3-math.d.ts +0 -18
  180. package/build/dex/ramses-v2/contract-math/uniswap-v3-math.js +0 -392
  181. package/build/dex/ramses-v2/contract-math/uniswap-v3-math.js.map +0 -1
  182. package/build/dex/ramses-v2/contract-math/utils.d.ts +0 -3
  183. package/build/dex/ramses-v2/contract-math/utils.js +0 -16
  184. package/build/dex/ramses-v2/contract-math/utils.js.map +0 -1
  185. package/build/dex/ramses-v2/ramses-v2-pool.d.ts +0 -42
  186. package/build/dex/ramses-v2/ramses-v2-pool.js +0 -307
  187. package/build/dex/ramses-v2/ramses-v2-pool.js.map +0 -1
  188. package/build/dex/ramses-v2/ramses-v2.d.ts +0 -61
  189. package/build/dex/ramses-v2/ramses-v2.js +0 -690
  190. package/build/dex/ramses-v2/ramses-v2.js.map +0 -1
  191. package/build/dex/ramses-v2/types.d.ts +0 -154
  192. package/build/dex/ramses-v2/types.js +0 -9
  193. package/build/dex/ramses-v2/types.js.map +0 -1
  194. package/build/dex/ramses-v2/utils.d.ts +0 -6
  195. package/build/dex/ramses-v2/utils.js +0 -71
  196. package/build/dex/ramses-v2/utils.js.map +0 -1
  197. package/build/dex/solidly/forks-override/fvm.d.ts +0 -20
  198. package/build/dex/solidly/forks-override/fvm.js +0 -42
  199. package/build/dex/solidly/forks-override/fvm.js.map +0 -1
  200. package/build/dex/sushiswap-v3/config.d.ts +0 -4
  201. package/build/dex/sushiswap-v3/config.js +0 -132
  202. package/build/dex/sushiswap-v3/config.js.map +0 -1
  203. package/build/dex/sushiswap-v3/constants.d.ts +0 -4
  204. package/build/dex/sushiswap-v3/constants.js +0 -32
  205. package/build/dex/sushiswap-v3/constants.js.map +0 -1
  206. package/build/dex/sushiswap-v3/sushiswap-v3-original.d.ts +0 -56
  207. package/build/dex/sushiswap-v3/sushiswap-v3-original.js +0 -598
  208. package/build/dex/sushiswap-v3/sushiswap-v3-original.js.map +0 -1
  209. package/build/dex/sushiswap-v3/sushiswap-v3-pool.d.ts +0 -1
  210. package/build/dex/sushiswap-v3/sushiswap-v3-pool.js +0 -6
  211. package/build/dex/sushiswap-v3/sushiswap-v3-pool.js.map +0 -1
  212. package/build/dex/sushiswap-v3/sushiswap-v3.d.ts +0 -21
  213. package/build/dex/sushiswap-v3/sushiswap-v3.js +0 -58
  214. package/build/dex/sushiswap-v3/sushiswap-v3.js.map +0 -1
  215. package/build/dex/sushiswap-v3/token.d.ts +0 -6
  216. package/build/dex/sushiswap-v3/token.js +0 -23
  217. package/build/dex/sushiswap-v3/token.js.map +0 -1
  218. package/build/dex/sushiswap-v3/types.d.ts +0 -15
  219. package/build/dex/sushiswap-v3/types.js +0 -18
  220. package/build/dex/sushiswap-v3/types.js.map +0 -1
  221. package/build/dex/uniswap-v3/forks/pancakeswap-v3/pancakeswap-v3.d.ts +0 -12
  222. package/build/dex/uniswap-v3/forks/pancakeswap-v3/pancakeswap-v3.js +0 -23
  223. package/build/dex/uniswap-v3/forks/pancakeswap-v3/pancakeswap-v3.js.map +0 -1
  224. package/build/dex/woo-fi/config.js +0 -141
  225. package/build/dex/woo-fi/config.js.map +0 -1
  226. package/build/dex/woo-fi/constants.d.ts +0 -5
  227. package/build/dex/woo-fi/constants.js +0 -20
  228. package/build/dex/woo-fi/constants.js.map +0 -1
  229. package/build/dex/woo-fi/types.d.ts +0 -48
  230. package/build/dex/woo-fi/types.js +0 -3
  231. package/build/dex/woo-fi/woo-fi-decimal-math.d.ts +0 -14
  232. package/build/dex/woo-fi/woo-fi-decimal-math.js +0 -42
  233. package/build/dex/woo-fi/woo-fi-decimal-math.js.map +0 -1
  234. package/build/dex/woo-fi/woo-fi-math.d.ts +0 -31
  235. package/build/dex/woo-fi/woo-fi-math.js +0 -300
  236. package/build/dex/woo-fi/woo-fi-math.js.map +0 -1
  237. package/build/dex/woo-fi/woo-fi.d.ts +0 -65
  238. package/build/dex/woo-fi/woo-fi.js +0 -480
  239. package/build/dex/woo-fi/woo-fi.js.map +0 -1
  240. package/build/executor/Executor01BytecodeBuilder.d.ts +0 -77
  241. package/build/executor/Executor01BytecodeBuilder.js +0 -359
  242. package/build/executor/Executor01BytecodeBuilder.js.map +0 -1
  243. package/build/executor/Executor02BytecodeBuilder.d.ts +0 -12
  244. package/build/executor/Executor02BytecodeBuilder.js +0 -14
  245. package/build/executor/Executor02BytecodeBuilder.js.map +0 -1
  246. package/build/executor/ExecutorDetector.d.ts +0 -28
  247. package/build/executor/ExecutorDetector.js +0 -89
  248. package/build/executor/ExecutorDetector.js.map +0 -1
  249. package/build/executor/IExecutorBytecodeBuilder.d.ts +0 -6
  250. package/build/executor/IExecutorBytecodeBuilder.js +0 -3
  251. package/build/executor/IExecutorBytecodeBuilder.js.map +0 -1
  252. package/build/generic-swap-transaction-builder.d.ts +0 -39
  253. package/build/generic-swap-transaction-builder.js +0 -156
  254. package/build/generic-swap-transaction-builder.js.map +0 -1
  255. /package/build/dex/{lighter-v1 → wombat}/types.js +0 -0
@@ -0,0 +1,290 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || function (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
24
+ };
25
+ var __importDefault = (this && this.__importDefault) || function (mod) {
26
+ return (mod && mod.__esModule) ? mod : { "default": mod };
27
+ };
28
+ Object.defineProperty(exports, "__esModule", { value: true });
29
+ exports.Wombat = void 0;
30
+ const abi_1 = require("@ethersproject/abi");
31
+ const core_1 = require("@paraswap/core");
32
+ const CALLDATA_GAS_COST = __importStar(require("../../calldata-gas-cost"));
33
+ const utils_1 = require("../../utils");
34
+ const simple_exchange_1 = require("../simple-exchange");
35
+ const config_1 = require("./config");
36
+ const pool_json_1 = __importDefault(require("../../abi/wombat/pool.json"));
37
+ const asset_json_1 = __importDefault(require("../../abi/wombat/asset.json"));
38
+ const erc20_json_1 = __importDefault(require("../../abi/erc20.json"));
39
+ const wombat_quoter_1 = require("./wombat-quoter");
40
+ const wombat_bmw_1 = require("./wombat-bmw");
41
+ const utils_2 = require("./utils");
42
+ const wombat_pool_1 = require("./wombat-pool");
43
+ class Wombat extends simple_exchange_1.SimpleExchange {
44
+ constructor(network, dexKey, dexHelper, adapters = config_1.Adapters[network] || {}) {
45
+ super(dexHelper, dexKey);
46
+ this.network = network;
47
+ this.dexKey = dexKey;
48
+ this.dexHelper = dexHelper;
49
+ this.adapters = adapters;
50
+ this.pools = {};
51
+ this.hasConstantPriceLargeAmounts = false;
52
+ this.needWrapNative = true;
53
+ this.isFeeOnTransferSupported = false;
54
+ this.onAssetAdded = async (pool, asset2TokenMap, blockNumber) => {
55
+ if (!this.pools[pool]) {
56
+ this.pools[pool] = new wombat_pool_1.WombatPool(this.dexKey, this.getPoolIdentifier(pool), this.dexHelper, pool, asset2TokenMap);
57
+ await this.pools[pool].getState('latest', true);
58
+ }
59
+ else {
60
+ this.pools[pool].addAssets(asset2TokenMap);
61
+ }
62
+ };
63
+ this.logger = dexHelper.getLogger(dexKey);
64
+ this.config = config_1.WombatConfig[dexKey][network];
65
+ this.bmw = new wombat_bmw_1.WombatBmw(dexKey, this.config.bmwAddress, network, dexHelper, this.logger, this.config.bmwAddress, this.onAssetAdded.bind(this));
66
+ }
67
+ async init(blockNumber) {
68
+ if (!this.bmw.isInitialized) {
69
+ await this.bmw.initialize(blockNumber);
70
+ }
71
+ }
72
+ // Initialize pricing is called once in the start of
73
+ // pricing service. It is intended to setup the integration
74
+ // for pricing requests. It is optional for a DEX to
75
+ // implement this function
76
+ async initializePricing(blockNumber) {
77
+ await this.init(blockNumber);
78
+ const bmwState = this.bmw.getState(blockNumber);
79
+ if (!bmwState) {
80
+ throw new Error('initializePricing: bmwState still null after init');
81
+ }
82
+ }
83
+ // Returns the list of contract adapters (name and index)
84
+ // for a buy/sell. Return null if there are no adapters.
85
+ getAdapters(side) {
86
+ return this.adapters[side] ? this.adapters[side] : null;
87
+ }
88
+ // Returns list of pool identifiers that can be used
89
+ // for a given swap. poolIdentifiers must be unique
90
+ // across DEXes. It is recommended to use
91
+ // ${dexKey}_${poolAddress} as a poolIdentifier
92
+ async getPoolIdentifiers(srcToken, destToken, side, blockNumber) {
93
+ await this.updatePoolState();
94
+ return (await this.findPools(this.dexHelper.config.wrapETH(srcToken).address.toLowerCase(), this.dexHelper.config.wrapETH(destToken).address.toLowerCase(), blockNumber)).map(p => this.getPoolIdentifier(p));
95
+ }
96
+ getPoolIdentifier(poolAddress) {
97
+ return `${this.dexKey}_${poolAddress}`;
98
+ }
99
+ // Returns pool prices for amounts.
100
+ // If limitPools is defined only pools in limitPools
101
+ // should be used. If limitPools is undefined then
102
+ // any pools can be used.
103
+ async getPricesVolume(srcToken, destToken, amounts, side, blockNumber, limitPools) {
104
+ if (!this.pools) {
105
+ this.logger.error(`Missing pools for ${this.dexKey} in getPricesVolume`);
106
+ return null;
107
+ }
108
+ const srcTokenAddress = this.dexHelper.config
109
+ .wrapETH(srcToken)
110
+ .address.toLowerCase();
111
+ const destTokenAddress = this.dexHelper.config
112
+ .wrapETH(destToken)
113
+ .address.toLowerCase();
114
+ if (srcTokenAddress === destTokenAddress)
115
+ return null;
116
+ const pools = (await this.findPools(srcTokenAddress, destTokenAddress, blockNumber)).filter(poolAddress => !limitPools || limitPools.includes(this.getPoolIdentifier(poolAddress)));
117
+ const promises = [];
118
+ for (const poolAddress of pools) {
119
+ let state = await this.pools[poolAddress].getState(blockNumber);
120
+ if (!state) {
121
+ this.logger.warn(`State of pool ${poolAddress} is null in getPricesVolume, skipping...`);
122
+ continue;
123
+ }
124
+ const [unit, ...prices] = this.computePrices(srcTokenAddress, destTokenAddress, [(0, utils_1.getBigIntPow)(srcToken.decimals), ...amounts], side, state.value);
125
+ promises.push({
126
+ prices,
127
+ unit,
128
+ data: {
129
+ exchange: poolAddress,
130
+ },
131
+ poolAddresses: [poolAddress],
132
+ exchange: this.dexKey,
133
+ /** @todo specify gas cost */
134
+ gasCost: 260 * 1000,
135
+ poolIdentifier: this.getPoolIdentifier(poolAddress),
136
+ });
137
+ }
138
+ return await Promise.all(promises);
139
+ }
140
+ // take PoolState to compute price
141
+ computePrices(srcTokenAddress, destTokenAddress, amounts, side, state) {
142
+ const srcAsset = state.asset[srcTokenAddress];
143
+ const destAsset = state.asset[destTokenAddress];
144
+ const quoter = new wombat_quoter_1.WombatQuoter(state.params);
145
+ return amounts.map(fromAmount => {
146
+ return side === core_1.SwapSide.SELL
147
+ ? quoter.getQuote(srcAsset, destAsset, fromAmount)
148
+ : quoter.getQuote(destAsset, srcAsset, -fromAmount);
149
+ });
150
+ }
151
+ async findPools(srcTokenAddress, destTokenAddress, blockNumber) {
152
+ const pools = [];
153
+ for (const [poolAddress, pool] of Object.entries(this.pools)) {
154
+ let stateOj = await pool.getState(blockNumber);
155
+ if (!stateOj) {
156
+ this.logger.warn(`State of pool ${poolAddress} is null in findPools, skipping...`);
157
+ continue;
158
+ }
159
+ const state = stateOj.value;
160
+ if (state &&
161
+ !state.params.paused &&
162
+ state.asset[srcTokenAddress] &&
163
+ state.asset[destTokenAddress]) {
164
+ pools.push(poolAddress);
165
+ }
166
+ }
167
+ return pools;
168
+ }
169
+ // Returns estimated gas cost of calldata for this DEX in multiSwap
170
+ getCalldataGasCost(poolPrices) {
171
+ // TODO: update if there is any payload in getAdapterParam
172
+ return CALLDATA_GAS_COST.DEX_NO_PAYLOAD;
173
+ }
174
+ getAdapterParam(srcToken, destToken, srcAmount, destAmount, data, side) {
175
+ const { exchange } = data;
176
+ return {
177
+ targetExchange: exchange,
178
+ payload: '0x',
179
+ networkFee: '0',
180
+ };
181
+ }
182
+ // Encode call data used by simpleSwap like routers
183
+ // Used for simpleSwap & simpleBuy
184
+ // Hint: this.buildSimpleParamWithoutWETHConversion
185
+ // could be useful
186
+ async getSimpleParam(srcToken, destToken, srcAmount, destAmount, data, side) {
187
+ const { exchange } = data;
188
+ // Encode here the transaction arguments
189
+ const swapData = Wombat.poolInterface.encodeFunctionData('swap', [
190
+ srcToken,
191
+ destToken,
192
+ srcAmount,
193
+ destAmount,
194
+ this.augustusAddress,
195
+ (0, simple_exchange_1.getLocalDeadlineAsFriendlyPlaceholder)(),
196
+ ]);
197
+ return this.buildSimpleParamWithoutWETHConversion(srcToken, srcAmount, destToken, destAmount, swapData, exchange);
198
+ }
199
+ // This is called once before getTopPoolsForToken is
200
+ // called for multiple tokens. This can be helpful to
201
+ // update common state required for calculating
202
+ // getTopPoolsForToken. For example, poolLiquidityUSD.
203
+ async updatePoolState() {
204
+ const blockNumber = await this.dexHelper.provider.getBlockNumber();
205
+ await this.init(blockNumber);
206
+ const bmwState = this.bmw.getState(blockNumber);
207
+ if (!bmwState) {
208
+ throw new Error('updatePoolState: bmwState still null after init');
209
+ }
210
+ // All tokens are USD stablecoins so to estimate liquidity can just add
211
+ // the cash balances of all the tokens
212
+ const poolLiquidityUSD = {};
213
+ const usdPromises = [];
214
+ const poolStates = {};
215
+ const poolStateObjs = await Promise.all(Object.values(this.pools).map(pool => pool.getState()));
216
+ for (const [poolAddress, pool] of Object.entries(this.pools)) {
217
+ const index = Object.keys(this.pools).indexOf(poolAddress);
218
+ let state = poolStateObjs[index];
219
+ if (!state) {
220
+ this.logger.warn(`State of ${poolAddress} is null in updatePoolState, skipping...`);
221
+ continue;
222
+ }
223
+ poolStates[poolAddress] = state.value;
224
+ for (const [tokenAddress, assetState] of Object.entries(state.value.asset)) {
225
+ usdPromises.push(this.dexHelper.getTokenUSDPrice({
226
+ address: tokenAddress,
227
+ decimals: assetState.underlyingTokenDecimals,
228
+ }, (0, utils_2.fromWad)(assetState.cash, BigInt(assetState.underlyingTokenDecimals))));
229
+ }
230
+ }
231
+ const usdValues = await Promise.all(usdPromises);
232
+ for (const [poolAddress, poolState] of Object.entries(poolStates)) {
233
+ poolLiquidityUSD[poolAddress] = 0;
234
+ for (let i = 0; i < poolState.underlyingAddresses.length; i++) {
235
+ poolLiquidityUSD[poolAddress] += usdValues[i];
236
+ }
237
+ }
238
+ this.poolLiquidityUSD = poolLiquidityUSD;
239
+ }
240
+ // Returns list of top pools based on liquidity. Max
241
+ // limit number pools should be returned.
242
+ async getTopPoolsForToken(tokenAddress, limit) {
243
+ if (!this.poolLiquidityUSD)
244
+ await this.updatePoolState();
245
+ tokenAddress = ((0, utils_1.isETHAddress)(tokenAddress)
246
+ ? this.dexHelper.config.data.wrappedNativeTokenAddress
247
+ : tokenAddress).toLowerCase();
248
+ const pools = [];
249
+ const poolStates = {};
250
+ for (const [poolAddress, eventPool] of Object.entries(this.pools)) {
251
+ let state = await eventPool.getState();
252
+ if (!state) {
253
+ this.logger.warn(`State of ${poolAddress} is null in getTopPoolsForToken, skipping...`);
254
+ continue;
255
+ }
256
+ if (state.value.underlyingAddresses.includes(tokenAddress) &&
257
+ this.poolLiquidityUSD[poolAddress]) {
258
+ poolStates[poolAddress] = state.value;
259
+ pools.push(poolAddress);
260
+ }
261
+ }
262
+ // sort by liquidity
263
+ pools.sort((a, b) => this.poolLiquidityUSD[b] - this.poolLiquidityUSD[a]);
264
+ return pools.slice(0, limit).map(poolAddress => ({
265
+ exchange: this.dexKey,
266
+ address: poolAddress,
267
+ // other tokens in the same pool
268
+ connectorTokens: poolStates[poolAddress].underlyingAddresses
269
+ .filter(t => t !== tokenAddress)
270
+ .map(t => ({
271
+ decimals: poolStates[poolAddress].asset[t].underlyingTokenDecimals,
272
+ address: t,
273
+ })),
274
+ liquidityUSD: this.poolLiquidityUSD[poolAddress],
275
+ }));
276
+ }
277
+ // This is optional function in case if your implementation has acquired any resources
278
+ // you need to release for graceful shutdown. For example, it may be any interval timer
279
+ releaseResources() {
280
+ // TODO: complete me!
281
+ }
282
+ }
283
+ exports.Wombat = Wombat;
284
+ // export class Wombat implements IDex<WombatData> {
285
+ // contract interfaces
286
+ Wombat.erc20Interface = new abi_1.Interface(erc20_json_1.default);
287
+ Wombat.poolInterface = new abi_1.Interface(pool_json_1.default);
288
+ Wombat.assetInterface = new abi_1.Interface(asset_json_1.default);
289
+ Wombat.dexKeysWithNetwork = (0, utils_1.getDexKeysWithNetwork)(config_1.WombatConfig);
290
+ //# sourceMappingURL=wombat.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"wombat.js","sourceRoot":"","sources":["../../../src/dex/wombat/wombat.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@paraswap/dex-lib",
3
- "version": "2.42.24",
3
+ "version": "2.42.25-wombat.0",
4
4
  "main": "build/index.js",
5
5
  "types": "build/index.d.ts",
6
6
  "repository": "https://github.com/paraswap/paraswap-dex-lib",