@paraswap/dex-lib 2.42.4-baseswap → 2.42.4

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 (216) hide show
  1. package/.vscode/launch.json +16 -0
  2. package/build/dex/index.js +0 -2
  3. package/build/dex/index.js.map +1 -1
  4. package/build/test.js +26 -0
  5. package/package.json +1 -1
  6. package/src/dex/index.ts +0 -2
  7. package/build/abi/kyberswap-elastic/IAntiSnipAttackPositionManager.json +0 -1276
  8. package/build/abi/kyberswap-elastic/IFactory.json +0 -550
  9. package/build/abi/kyberswap-elastic/IPool.json +0 -1042
  10. package/build/abi/kyberswap-elastic/IQuoterV2.json +0 -226
  11. package/build/abi/kyberswap-elastic/IRouter.json +0 -239
  12. package/build/abi/kyberswap-elastic/TicksFeesReader.json +0 -142
  13. package/build/abi/wombat/asset.json +0 -769
  14. package/build/abi/wombat/bmw.json +0 -1247
  15. package/build/abi/wombat/pool.json +0 -1364
  16. package/build/dex/baseswap-v3/baseswap-v3-factory.d.ts +0 -26
  17. package/build/dex/baseswap-v3/baseswap-v3-factory.js +0 -44
  18. package/build/dex/baseswap-v3/baseswap-v3-factory.js.map +0 -1
  19. package/build/dex/baseswap-v3/baseswap-v3-pool.d.ts +0 -46
  20. package/build/dex/baseswap-v3/baseswap-v3-pool.js +0 -312
  21. package/build/dex/baseswap-v3/baseswap-v3-pool.js.map +0 -1
  22. package/build/dex/baseswap-v3/baseswap-v3.d.ts +0 -71
  23. package/build/dex/baseswap-v3/baseswap-v3.js +0 -752
  24. package/build/dex/baseswap-v3/baseswap-v3.js.map +0 -1
  25. package/build/dex/baseswap-v3/config.d.ts +0 -9
  26. package/build/dex/baseswap-v3/config.js +0 -48
  27. package/build/dex/baseswap-v3/config.js.map +0 -1
  28. package/build/dex/baseswap-v3/constants.d.ts +0 -28
  29. package/build/dex/baseswap-v3/constants.js +0 -35
  30. package/build/dex/baseswap-v3/constants.js.map +0 -1
  31. package/build/dex/baseswap-v3/contract-math/BitMath.d.ts +0 -4
  32. package/build/dex/baseswap-v3/contract-math/BitMath.js +0 -93
  33. package/build/dex/baseswap-v3/contract-math/BitMath.js.map +0 -1
  34. package/build/dex/baseswap-v3/contract-math/FixedPoint128.d.ts +0 -3
  35. package/build/dex/baseswap-v3/contract-math/FixedPoint128.js +0 -8
  36. package/build/dex/baseswap-v3/contract-math/FixedPoint128.js.map +0 -1
  37. package/build/dex/baseswap-v3/contract-math/FixedPoint96.d.ts +0 -4
  38. package/build/dex/baseswap-v3/contract-math/FixedPoint96.js +0 -9
  39. package/build/dex/baseswap-v3/contract-math/FixedPoint96.js.map +0 -1
  40. package/build/dex/baseswap-v3/contract-math/FullMath.d.ts +0 -4
  41. package/build/dex/baseswap-v3/contract-math/FullMath.js +0 -19
  42. package/build/dex/baseswap-v3/contract-math/FullMath.js.map +0 -1
  43. package/build/dex/baseswap-v3/contract-math/LiquidityMath.d.ts +0 -3
  44. package/build/dex/baseswap-v3/contract-math/LiquidityMath.js +0 -22
  45. package/build/dex/baseswap-v3/contract-math/LiquidityMath.js.map +0 -1
  46. package/build/dex/baseswap-v3/contract-math/Oracle.d.ts +0 -10
  47. package/build/dex/baseswap-v3/contract-math/Oracle.js +0 -133
  48. package/build/dex/baseswap-v3/contract-math/Oracle.js.map +0 -1
  49. package/build/dex/baseswap-v3/contract-math/SqrtPriceMath.d.ts +0 -10
  50. package/build/dex/baseswap-v3/contract-math/SqrtPriceMath.js +0 -91
  51. package/build/dex/baseswap-v3/contract-math/SqrtPriceMath.js.map +0 -1
  52. package/build/dex/baseswap-v3/contract-math/SwapMath.d.ts +0 -8
  53. package/build/dex/baseswap-v3/contract-math/SwapMath.js +0 -70
  54. package/build/dex/baseswap-v3/contract-math/SwapMath.js.map +0 -1
  55. package/build/dex/baseswap-v3/contract-math/Tick.d.ts +0 -7
  56. package/build/dex/baseswap-v3/contract-math/Tick.js +0 -45
  57. package/build/dex/baseswap-v3/contract-math/Tick.js.map +0 -1
  58. package/build/dex/baseswap-v3/contract-math/TickBitMap.d.ts +0 -7
  59. package/build/dex/baseswap-v3/contract-math/TickBitMap.js +0 -84
  60. package/build/dex/baseswap-v3/contract-math/TickBitMap.js.map +0 -1
  61. package/build/dex/baseswap-v3/contract-math/TickMath.d.ts +0 -8
  62. package/build/dex/baseswap-v3/contract-math/TickMath.js +0 -162
  63. package/build/dex/baseswap-v3/contract-math/TickMath.js.map +0 -1
  64. package/build/dex/baseswap-v3/contract-math/UnsafeMath.d.ts +0 -3
  65. package/build/dex/baseswap-v3/contract-math/UnsafeMath.js +0 -10
  66. package/build/dex/baseswap-v3/contract-math/UnsafeMath.js.map +0 -1
  67. package/build/dex/baseswap-v3/contract-math/uniswap-v3-math.d.ts +0 -37
  68. package/build/dex/baseswap-v3/contract-math/uniswap-v3-math.js +0 -393
  69. package/build/dex/baseswap-v3/contract-math/uniswap-v3-math.js.map +0 -1
  70. package/build/dex/baseswap-v3/contract-math/utils.d.ts +0 -7
  71. package/build/dex/baseswap-v3/contract-math/utils.js +0 -42
  72. package/build/dex/baseswap-v3/contract-math/utils.js.map +0 -1
  73. package/build/dex/baseswap-v3/types.d.ts +0 -164
  74. package/build/dex/baseswap-v3/types.js +0 -9
  75. package/build/dex/baseswap-v3/types.js.map +0 -1
  76. package/build/dex/baseswap-v3/utils.d.ts +0 -6
  77. package/build/dex/baseswap-v3/utils.js +0 -65
  78. package/build/dex/baseswap-v3/utils.js.map +0 -1
  79. package/build/dex/hello/config.d.ts +0 -4
  80. package/build/dex/hello/config.js +0 -15
  81. package/build/dex/hello/config.js.map +0 -1
  82. package/build/dex/hello/hello-pool.d.ts +0 -39
  83. package/build/dex/hello/hello-pool.js +0 -64
  84. package/build/dex/hello/hello-pool.js.map +0 -1
  85. package/build/dex/hello/hello.d.ts +0 -37
  86. package/build/dex/hello/hello.js +0 -126
  87. package/build/dex/hello/hello.js.map +0 -1
  88. package/build/dex/hello/types.d.ts +0 -6
  89. package/build/dex/hello/types.js +0 -3
  90. package/build/dex/hello/types.js.map +0 -1
  91. package/build/dex/kyberswap-elastic/config.d.ts +0 -4
  92. package/build/dex/kyberswap-elastic/config.js +0 -80
  93. package/build/dex/kyberswap-elastic/config.js.map +0 -1
  94. package/build/dex/kyberswap-elastic/constants.d.ts +0 -17
  95. package/build/dex/kyberswap-elastic/constants.js +0 -42
  96. package/build/dex/kyberswap-elastic/constants.js.map +0 -1
  97. package/build/dex/kyberswap-elastic/contract-math/FixedPoint96.d.ts +0 -4
  98. package/build/dex/kyberswap-elastic/contract-math/FixedPoint96.js +0 -9
  99. package/build/dex/kyberswap-elastic/contract-math/FixedPoint96.js.map +0 -1
  100. package/build/dex/kyberswap-elastic/contract-math/FullMath.d.ts +0 -5
  101. package/build/dex/kyberswap-elastic/contract-math/FullMath.js +0 -22
  102. package/build/dex/kyberswap-elastic/contract-math/FullMath.js.map +0 -1
  103. package/build/dex/kyberswap-elastic/contract-math/LiqDeltaMath.d.ts +0 -3
  104. package/build/dex/kyberswap-elastic/contract-math/LiqDeltaMath.js +0 -12
  105. package/build/dex/kyberswap-elastic/contract-math/LiqDeltaMath.js.map +0 -1
  106. package/build/dex/kyberswap-elastic/contract-math/LiquidityMath.d.ts +0 -3
  107. package/build/dex/kyberswap-elastic/contract-math/LiquidityMath.js +0 -22
  108. package/build/dex/kyberswap-elastic/contract-math/LiquidityMath.js.map +0 -1
  109. package/build/dex/kyberswap-elastic/contract-math/QtyDeltaMath.d.ts +0 -5
  110. package/build/dex/kyberswap-elastic/contract-math/QtyDeltaMath.js +0 -25
  111. package/build/dex/kyberswap-elastic/contract-math/QtyDeltaMath.js.map +0 -1
  112. package/build/dex/kyberswap-elastic/contract-math/QuadMath.d.ts +0 -4
  113. package/build/dex/kyberswap-elastic/contract-math/QuadMath.js +0 -27
  114. package/build/dex/kyberswap-elastic/contract-math/QuadMath.js.map +0 -1
  115. package/build/dex/kyberswap-elastic/contract-math/ReinvestmentMath.d.ts +0 -3
  116. package/build/dex/kyberswap-elastic/contract-math/ReinvestmentMath.js +0 -14
  117. package/build/dex/kyberswap-elastic/contract-math/ReinvestmentMath.js.map +0 -1
  118. package/build/dex/kyberswap-elastic/contract-math/SafeCast.d.ts +0 -8
  119. package/build/dex/kyberswap-elastic/contract-math/SafeCast.js +0 -30
  120. package/build/dex/kyberswap-elastic/contract-math/SafeCast.js.map +0 -1
  121. package/build/dex/kyberswap-elastic/contract-math/SqrtPriceMath.d.ts +0 -10
  122. package/build/dex/kyberswap-elastic/contract-math/SqrtPriceMath.js +0 -91
  123. package/build/dex/kyberswap-elastic/contract-math/SqrtPriceMath.js.map +0 -1
  124. package/build/dex/kyberswap-elastic/contract-math/SwapMath.d.ts +0 -13
  125. package/build/dex/kyberswap-elastic/contract-math/SwapMath.js +0 -188
  126. package/build/dex/kyberswap-elastic/contract-math/SwapMath.js.map +0 -1
  127. package/build/dex/kyberswap-elastic/contract-math/TickLinkedList.d.ts +0 -6
  128. package/build/dex/kyberswap-elastic/contract-math/TickLinkedList.js +0 -41
  129. package/build/dex/kyberswap-elastic/contract-math/TickLinkedList.js.map +0 -1
  130. package/build/dex/kyberswap-elastic/contract-math/TickMath.d.ts +0 -9
  131. package/build/dex/kyberswap-elastic/contract-math/TickMath.js +0 -165
  132. package/build/dex/kyberswap-elastic/contract-math/TickMath.js.map +0 -1
  133. package/build/dex/kyberswap-elastic/contract-math/UnsafeMath.d.ts +0 -3
  134. package/build/dex/kyberswap-elastic/contract-math/UnsafeMath.js +0 -10
  135. package/build/dex/kyberswap-elastic/contract-math/UnsafeMath.js.map +0 -1
  136. package/build/dex/kyberswap-elastic/contract-math/kyberswap-elastic-math.d.ts +0 -28
  137. package/build/dex/kyberswap-elastic/contract-math/kyberswap-elastic-math.js +0 -502
  138. package/build/dex/kyberswap-elastic/contract-math/kyberswap-elastic-math.js.map +0 -1
  139. package/build/dex/kyberswap-elastic/contract-math/utils.d.ts +0 -3
  140. package/build/dex/kyberswap-elastic/contract-math/utils.js +0 -16
  141. package/build/dex/kyberswap-elastic/contract-math/utils.js.map +0 -1
  142. package/build/dex/kyberswap-elastic/errors.d.ts +0 -2
  143. package/build/dex/kyberswap-elastic/errors.js +0 -6
  144. package/build/dex/kyberswap-elastic/errors.js.map +0 -1
  145. package/build/dex/kyberswap-elastic/kyberswap-elastic-pool.d.ts +0 -80
  146. package/build/dex/kyberswap-elastic/kyberswap-elastic-pool.js +0 -458
  147. package/build/dex/kyberswap-elastic/kyberswap-elastic-pool.js.map +0 -1
  148. package/build/dex/kyberswap-elastic/kyberswap-elastic.d.ts +0 -53
  149. package/build/dex/kyberswap-elastic/kyberswap-elastic.js +0 -610
  150. package/build/dex/kyberswap-elastic/kyberswap-elastic.js.map +0 -1
  151. package/build/dex/kyberswap-elastic/types.d.ts +0 -134
  152. package/build/dex/kyberswap-elastic/types.js +0 -9
  153. package/build/dex/kyberswap-elastic/types.js.map +0 -1
  154. package/build/dex/kyberswap-elastic/utils/decoders.d.ts +0 -9
  155. package/build/dex/kyberswap-elastic/utils/decoders.js +0 -78
  156. package/build/dex/kyberswap-elastic/utils/decoders.js.map +0 -1
  157. package/build/dex/my-test-dex/config.d.ts +0 -4
  158. package/build/dex/my-test-dex/config.js +0 -15
  159. package/build/dex/my-test-dex/config.js.map +0 -1
  160. package/build/dex/my-test-dex/my-test-dex-pool.d.ts +0 -39
  161. package/build/dex/my-test-dex/my-test-dex-pool.js +0 -64
  162. package/build/dex/my-test-dex/my-test-dex-pool.js.map +0 -1
  163. package/build/dex/my-test-dex/my-test-dex.d.ts +0 -37
  164. package/build/dex/my-test-dex/my-test-dex.js +0 -126
  165. package/build/dex/my-test-dex/my-test-dex.js.map +0 -1
  166. package/build/dex/my-test-dex/types.d.ts +0 -6
  167. package/build/dex/my-test-dex/types.js +0 -3
  168. package/build/dex/my-test-dex/types.js.map +0 -1
  169. package/build/dex/solidly/forks-override/fvm.d.ts +0 -20
  170. package/build/dex/solidly/forks-override/fvm.js +0 -42
  171. package/build/dex/solidly/forks-override/fvm.js.map +0 -1
  172. package/build/dex/wombat/config.d.ts +0 -5
  173. package/build/dex/wombat/config.js +0 -36
  174. package/build/dex/wombat/config.js.map +0 -1
  175. package/build/dex/wombat/types.d.ts +0 -33
  176. package/build/dex/wombat/types.js +0 -3
  177. package/build/dex/wombat/types.js.map +0 -1
  178. package/build/dex/wombat/utils.d.ts +0 -9
  179. package/build/dex/wombat/utils.js +0 -66
  180. package/build/dex/wombat/utils.js.map +0 -1
  181. package/build/dex/wombat/wombat-bmw.d.ts +0 -40
  182. package/build/dex/wombat/wombat-bmw.js +0 -145
  183. package/build/dex/wombat/wombat-bmw.js.map +0 -1
  184. package/build/dex/wombat/wombat-pool.d.ts +0 -22
  185. package/build/dex/wombat/wombat-pool.js +0 -161
  186. package/build/dex/wombat/wombat-pool.js.map +0 -1
  187. package/build/dex/wombat/wombat-quoter.d.ts +0 -16
  188. package/build/dex/wombat/wombat-quoter.js +0 -176
  189. package/build/dex/wombat/wombat-quoter.js.map +0 -1
  190. package/build/dex/wombat/wombat.d.ts +0 -55
  191. package/build/dex/wombat/wombat.js +0 -292
  192. package/build/dex/wombat/wombat.js.map +0 -1
  193. package/src/dex/baseswap-v3/baseswap-v3-e2e.test.ts +0 -129
  194. package/src/dex/baseswap-v3/baseswap-v3-events.test.ts +0 -141
  195. package/src/dex/baseswap-v3/baseswap-v3-factory.ts +0 -73
  196. package/src/dex/baseswap-v3/baseswap-v3-integration.test.ts +0 -472
  197. package/src/dex/baseswap-v3/baseswap-v3-pool.ts +0 -519
  198. package/src/dex/baseswap-v3/baseswap-v3.ts +0 -1243
  199. package/src/dex/baseswap-v3/config.ts +0 -53
  200. package/src/dex/baseswap-v3/constants.ts +0 -41
  201. package/src/dex/baseswap-v3/contract-math/BitMath.ts +0 -90
  202. package/src/dex/baseswap-v3/contract-math/FixedPoint128.ts +0 -3
  203. package/src/dex/baseswap-v3/contract-math/FixedPoint96.ts +0 -4
  204. package/src/dex/baseswap-v3/contract-math/FullMath.ts +0 -30
  205. package/src/dex/baseswap-v3/contract-math/LiquidityMath.ts +0 -17
  206. package/src/dex/baseswap-v3/contract-math/Oracle.ts +0 -226
  207. package/src/dex/baseswap-v3/contract-math/SqrtPriceMath.ts +0 -226
  208. package/src/dex/baseswap-v3/contract-math/SwapMath.ts +0 -139
  209. package/src/dex/baseswap-v3/contract-math/Tick.ts +0 -82
  210. package/src/dex/baseswap-v3/contract-math/TickBitMap.ts +0 -123
  211. package/src/dex/baseswap-v3/contract-math/TickMath.ts +0 -211
  212. package/src/dex/baseswap-v3/contract-math/UnsafeMath.ts +0 -5
  213. package/src/dex/baseswap-v3/contract-math/uniswap-v3-math.ts +0 -666
  214. package/src/dex/baseswap-v3/contract-math/utils.ts +0 -55
  215. package/src/dex/baseswap-v3/types.ts +0 -191
  216. package/src/dex/baseswap-v3/utils.ts +0 -83
@@ -1,36 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.LIQUIDITY_THRESHOLD_IN_USD = exports.Adapters = exports.WombatConfig = void 0;
4
- const constants_1 = require("../../constants");
5
- exports.WombatConfig = {
6
- Wombat: {
7
- [constants_1.Network.BSC]: {
8
- bmwAddress: '0x489833311676B566f888119c29bd997Dc6C95830',
9
- // routerAddress: '0x19609B03C976CCA288fbDae5c21d4290e9a4aDD7',
10
- },
11
- [constants_1.Network.ARBITRUM]: {
12
- bmwAddress: '0x62A83C6791A3d7950D823BB71a38e47252b6b6F4',
13
- },
14
- },
15
- };
16
- exports.Adapters = {
17
- [constants_1.Network.BSC]: {
18
- [constants_1.SwapSide.SELL]: [
19
- {
20
- name: 'BscAdapter01',
21
- /** @todo check index number */
22
- // index: 12,
23
- // uniswapv2 forks
24
- index: 3,
25
- },
26
- ],
27
- [constants_1.SwapSide.BUY]: [
28
- {
29
- name: 'BscBuyAdapter',
30
- index: 1,
31
- },
32
- ],
33
- },
34
- };
35
- exports.LIQUIDITY_THRESHOLD_IN_USD = 100;
36
- //# sourceMappingURL=config.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../../../src/dex/wombat/config.ts"],"names":[],"mappings":";;;AAEA,+CAAoD;AAEvC,QAAA,YAAY,GAA4B;IACnD,MAAM,EAAE;QACN,CAAC,mBAAO,CAAC,GAAG,CAAC,EAAE;YACb,UAAU,EAAE,4CAA4C;YACxD,+DAA+D;SAChE;QACD,CAAC,mBAAO,CAAC,QAAQ,CAAC,EAAE;YAClB,UAAU,EAAE,4CAA4C;SACzD;KACF;CACF,CAAC;AAEW,QAAA,QAAQ,GAAoC;IACvD,CAAC,mBAAO,CAAC,GAAG,CAAC,EAAE;QACb,CAAC,oBAAQ,CAAC,IAAI,CAAC,EAAE;YACf;gBACE,IAAI,EAAE,cAAc;gBACpB,+BAA+B;gBAC/B,aAAa;gBACb,kBAAkB;gBAClB,KAAK,EAAE,CAAC;aACT;SACF;QACD,CAAC,oBAAQ,CAAC,GAAG,CAAC,EAAE;YACd;gBACE,IAAI,EAAE,eAAe;gBACrB,KAAK,EAAE,CAAC;aACT;SACF;KACF;CACF,CAAC;AAEW,QAAA,0BAA0B,GAAG,GAAG,CAAC"}
@@ -1,33 +0,0 @@
1
- import { Address } from '../../types';
2
- export declare type BmwState = {
3
- pools: Address[];
4
- };
5
- export declare type PoolState = {
6
- params: PoolParams;
7
- underlyingAddresses: Address[];
8
- asset: {
9
- [underlyingAddress: string]: AssetState;
10
- };
11
- };
12
- export declare type AssetState = {
13
- address: Address;
14
- paused: boolean;
15
- cash: bigint;
16
- liability: bigint;
17
- underlyingTokenDecimals: number;
18
- relativePrice?: bigint;
19
- };
20
- export declare type PoolParams = {
21
- paused: boolean;
22
- ampFactor: bigint;
23
- haircutRate: bigint;
24
- startCovRatio: bigint;
25
- endCovRatio: bigint;
26
- };
27
- export declare type WombatData = {
28
- exchange: Address;
29
- };
30
- export declare type DexParams = {
31
- bmwAddress: Address;
32
- };
33
- export declare type MulticallResultOutputs = boolean | bigint | Address | number | undefined;
@@ -1,3 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- //# sourceMappingURL=types.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/dex/wombat/types.ts"],"names":[],"mappings":""}
@@ -1,9 +0,0 @@
1
- import { MultiResult } from '../../lib/multi-wrapper';
2
- import { BytesLike } from 'ethers/lib/utils';
3
- export declare const WAD: bigint;
4
- export declare function wmul(x: bigint, y: bigint): bigint;
5
- export declare function wdiv(x: bigint, y: bigint): bigint;
6
- export declare function toWad(x: bigint, d: bigint): bigint;
7
- export declare function fromWad(x: bigint, d: bigint): bigint;
8
- export declare function sqrt(y: bigint, guess: bigint): bigint;
9
- export declare const uint120ToBigInt: (result: MultiResult<BytesLike> | BytesLike) => bigint;
@@ -1,66 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.uint120ToBigInt = exports.sqrt = exports.fromWad = exports.toWad = exports.wdiv = exports.wmul = exports.WAD = void 0;
4
- const bigint_constants_1 = require("../../bigint-constants");
5
- const decoders_1 = require("../../lib/decoders");
6
- exports.WAD = bigint_constants_1.BI_POWS[18];
7
- function wmul(x, y) {
8
- return (x * y + exports.WAD / 2n) / exports.WAD;
9
- }
10
- exports.wmul = wmul;
11
- function wdiv(x, y) {
12
- return (x * exports.WAD + y / 2n) / y;
13
- }
14
- exports.wdiv = wdiv;
15
- // Convert x to WAD (18 decimals) from d decimals.
16
- function toWad(x, d) {
17
- if (d < 18n) {
18
- return x * 10n ** (18n - d);
19
- }
20
- else if (d > 18n) {
21
- return x / 10n ** (d - 18n);
22
- }
23
- return x;
24
- }
25
- exports.toWad = toWad;
26
- // Convert x from WAD (18 decimals) to d decimals.
27
- function fromWad(x, d) {
28
- if (d < 18n) {
29
- return x / 10n ** (18n - d);
30
- }
31
- else if (d > 18n) {
32
- return x * 10n ** (d - 18n);
33
- }
34
- return x;
35
- }
36
- exports.fromWad = fromWad;
37
- // Babylonian Method with initial guess (typecast as int)
38
- function sqrt(y, guess) {
39
- let z = 0n;
40
- if (y > 3) {
41
- if (guess > 0 && guess <= y) {
42
- z = guess;
43
- }
44
- else if (guess < 0 && -guess <= y) {
45
- z = -guess;
46
- }
47
- else {
48
- z = y;
49
- }
50
- let x = (y / z + z) / 2n;
51
- while (x != z) {
52
- z = x;
53
- x = (y / x + x) / 2n;
54
- }
55
- }
56
- else if (y != 0n) {
57
- z = 1n;
58
- }
59
- return z;
60
- }
61
- exports.sqrt = sqrt;
62
- const uint120ToBigInt = (result) => {
63
- return (0, decoders_1.generalDecoder)(result, ['uint120'], 0n, value => value[0].toBigInt());
64
- };
65
- exports.uint120ToBigInt = uint120ToBigInt;
66
- //# sourceMappingURL=utils.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../src/dex/wombat/utils.ts"],"names":[],"mappings":";;;AAAA,6DAAiD;AAGjD,iDAAoD;AAEvC,QAAA,GAAG,GAAG,0BAAO,CAAC,EAAE,CAAC,CAAC;AAE/B,SAAgB,IAAI,CAAC,CAAS,EAAE,CAAS;IACvC,OAAO,CAAC,CAAC,GAAG,CAAC,GAAG,WAAG,GAAG,EAAE,CAAC,GAAG,WAAG,CAAC;AAClC,CAAC;AAFD,oBAEC;AAED,SAAgB,IAAI,CAAC,CAAS,EAAE,CAAS;IACvC,OAAO,CAAC,CAAC,GAAG,WAAG,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC;AAChC,CAAC;AAFD,oBAEC;AAED,kDAAkD;AAClD,SAAgB,KAAK,CAAC,CAAS,EAAE,CAAS;IACxC,IAAI,CAAC,GAAG,GAAG,EAAE;QACX,OAAO,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;KAC7B;SAAM,IAAI,CAAC,GAAG,GAAG,EAAE;QAClB,OAAO,CAAC,GAAG,GAAG,IAAI,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC;KAC7B;IACD,OAAO,CAAC,CAAC;AACX,CAAC;AAPD,sBAOC;AACD,kDAAkD;AAClD,SAAgB,OAAO,CAAC,CAAS,EAAE,CAAS;IAC1C,IAAI,CAAC,GAAG,GAAG,EAAE;QACX,OAAO,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;KAC7B;SAAM,IAAI,CAAC,GAAG,GAAG,EAAE;QAClB,OAAO,CAAC,GAAG,GAAG,IAAI,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC;KAC7B;IACD,OAAO,CAAC,CAAC;AACX,CAAC;AAPD,0BAOC;AAED,yDAAyD;AACzD,SAAgB,IAAI,CAAC,CAAS,EAAE,KAAa;IAC3C,IAAI,CAAC,GAAG,EAAE,CAAC;IACX,IAAI,CAAC,GAAG,CAAC,EAAE;QACT,IAAI,KAAK,GAAG,CAAC,IAAI,KAAK,IAAI,CAAC,EAAE;YAC3B,CAAC,GAAG,KAAK,CAAC;SACX;aAAM,IAAI,KAAK,GAAG,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC,EAAE;YACnC,CAAC,GAAG,CAAC,KAAK,CAAC;SACZ;aAAM;YACL,CAAC,GAAG,CAAC,CAAC;SACP;QACD,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC;QACzB,OAAO,CAAC,IAAI,CAAC,EAAE;YACb,CAAC,GAAG,CAAC,CAAC;YACN,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC;SACtB;KACF;SAAM,IAAI,CAAC,IAAI,EAAE,EAAE;QAClB,CAAC,GAAG,EAAE,CAAC;KACR;IAED,OAAO,CAAC,CAAC;AACX,CAAC;AApBD,oBAoBC;AAEM,MAAM,eAAe,GAAG,CAC7B,MAA0C,EAClC,EAAE;IACV,OAAO,IAAA,yBAAc,EAAC,MAAM,EAAE,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;AAC/E,CAAC,CAAC;AAJW,QAAA,eAAe,mBAI1B"}
@@ -1,40 +0,0 @@
1
- import { Interface } from '@ethersproject/abi';
2
- import { LogDescription } from 'ethers/lib/utils';
3
- import { DeepReadonly } from 'ts-essentials';
4
- import { Address, Log, Logger } from '../../types';
5
- import { StatefulEventSubscriber } from '../../stateful-event-subscriber';
6
- import { IDexHelper } from '../../dex-helper';
7
- import { BmwState } from './types';
8
- export declare class WombatBmw extends StatefulEventSubscriber<BmwState> {
9
- protected network: number;
10
- protected dexHelper: IDexHelper;
11
- protected bmwAddress: Address;
12
- protected onAssetAdded: (pool: Address, asset2TokenMap: Map<Address, Address>, blockNumber: number) => void;
13
- static readonly bmwInterface: Interface;
14
- static readonly assetInterface: Interface;
15
- static readonly poolInterface: Interface;
16
- private readonly logDecoder;
17
- private bmwContract;
18
- private handlers;
19
- constructor(dexKey: string, name: string, network: number, dexHelper: IDexHelper, logger: Logger, bmwAddress: Address, onAssetAdded: (pool: Address, asset2TokenMap: Map<Address, Address>, blockNumber: number) => void);
20
- /**
21
- * The function is called every time any of the subscribed
22
- * addresses release log. The function accepts the current
23
- * state, updates the state according to the log, and returns
24
- * the updated state.
25
- * @param state - Current state of event subscriber
26
- * @param log - Log released by one of the subscribed addresses
27
- * @returns Updates state of the event subscriber after the log
28
- */
29
- protected processLog(state: DeepReadonly<BmwState>, log: Readonly<Log>): Promise<DeepReadonly<BmwState> | null>;
30
- /**
31
- * The function generates state using on-chain calls. This
32
- * function is called to regenerate state if the event based
33
- * system fails to fetch events and the local state is no
34
- * more correct.
35
- * should be generated
36
- * @returns state of the event subscriber at blocknumber
37
- */
38
- generateState(blockNumber: number): Promise<DeepReadonly<BmwState>>;
39
- handleAdd(event: LogDescription, state: DeepReadonly<BmwState>, log: Readonly<Log>): Promise<DeepReadonly<BmwState> | null>;
40
- }
@@ -1,145 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.WombatBmw = void 0;
7
- const abi_1 = require("@ethersproject/abi");
8
- const utils_1 = require("../../utils");
9
- const stateful_event_subscriber_1 = require("../../stateful-event-subscriber");
10
- const bmw_json_1 = __importDefault(require("../../abi/wombat/bmw.json"));
11
- const asset_json_1 = __importDefault(require("../../abi/wombat/asset.json"));
12
- const pool_json_1 = __importDefault(require("../../abi/wombat/pool.json"));
13
- class WombatBmw extends stateful_event_subscriber_1.StatefulEventSubscriber {
14
- constructor(dexKey, name, network, dexHelper, logger, bmwAddress, onAssetAdded) {
15
- super(`${dexKey} ${name}`, `${dexKey}-${network} ${name}`, dexHelper, logger);
16
- this.network = network;
17
- this.dexHelper = dexHelper;
18
- this.bmwAddress = bmwAddress;
19
- this.onAssetAdded = onAssetAdded;
20
- this.handlers = {};
21
- this.logDecoder = (log) => WombatBmw.bmwInterface.parseLog(log);
22
- this.addressesSubscribed = [this.bmwAddress];
23
- this.bmwContract = new this.dexHelper.web3Provider.eth.Contract(bmw_json_1.default, this.bmwAddress);
24
- // users-actions handlers
25
- this.handlers['Add'] = this.handleAdd.bind(this);
26
- }
27
- /**
28
- * The function is called every time any of the subscribed
29
- * addresses release log. The function accepts the current
30
- * state, updates the state according to the log, and returns
31
- * the updated state.
32
- * @param state - Current state of event subscriber
33
- * @param log - Log released by one of the subscribed addresses
34
- * @returns Updates state of the event subscriber after the log
35
- */
36
- async processLog(state, log) {
37
- try {
38
- const event = this.logDecoder(log);
39
- if (event.name in this.handlers) {
40
- return await this.handlers[event.name](event, state, log);
41
- }
42
- }
43
- catch (e) {
44
- (0, utils_1.catchParseLogError)(e, this.logger);
45
- }
46
- return null;
47
- }
48
- /**
49
- * The function generates state using on-chain calls. This
50
- * function is called to regenerate state if the event based
51
- * system fails to fetch events and the local state is no
52
- * more correct.
53
- * should be generated
54
- * @returns state of the event subscriber at blocknumber
55
- */
56
- async generateState(blockNumber) {
57
- const bmwState = { pools: [] };
58
- let inputs = [];
59
- const poolLength = await this.bmwContract.methods
60
- .poolLength()
61
- .call({}, blockNumber);
62
- for (let i = 0; i < poolLength; i++) {
63
- inputs.push({
64
- target: this.bmwAddress,
65
- callData: WombatBmw.bmwInterface.encodeFunctionData('poolInfo', [i]),
66
- });
67
- }
68
- let returnData = (await this.dexHelper.multiContract.methods
69
- .aggregate(inputs)
70
- .call({}, blockNumber)).returnData;
71
- const lpTokens = returnData.map((data) => WombatBmw.bmwInterface
72
- .decodeFunctionResult('poolInfo', data)[0]
73
- .toLowerCase());
74
- inputs = [];
75
- for (const lpToken of lpTokens) {
76
- inputs.push({
77
- target: lpToken,
78
- callData: WombatBmw.assetInterface.encodeFunctionData('underlyingToken'),
79
- });
80
- inputs.push({
81
- target: lpToken,
82
- callData: WombatBmw.assetInterface.encodeFunctionData('pool'),
83
- });
84
- }
85
- returnData = (await this.dexHelper.multiContract.methods
86
- .aggregate(inputs)
87
- .call({}, blockNumber)).returnData;
88
- const pool2AssetInfo = new Map();
89
- let i = 0;
90
- for (const lpToken of lpTokens) {
91
- const underlyingToken = WombatBmw.assetInterface
92
- .decodeFunctionResult('underlyingToken', returnData[i++])[0]
93
- .toLowerCase();
94
- const pool = WombatBmw.assetInterface
95
- .decodeFunctionResult('pool', returnData[i++])[0]
96
- .toLowerCase();
97
- if (!pool2AssetInfo.has(pool)) {
98
- pool2AssetInfo.set(pool, new Map());
99
- }
100
- pool2AssetInfo.get(pool).set(lpToken, underlyingToken);
101
- }
102
- pool2AssetInfo.forEach((asset2TokenMap, pool) => {
103
- bmwState.pools.push(pool);
104
- this.onAssetAdded(pool, asset2TokenMap, blockNumber);
105
- });
106
- return bmwState;
107
- }
108
- async handleAdd(event, state, log) {
109
- const lpToken = event.args.lpToken.toString().toLowerCase();
110
- let multiCallInputs = [];
111
- multiCallInputs.push({
112
- target: lpToken,
113
- callData: WombatBmw.assetInterface.encodeFunctionData('pool'),
114
- });
115
- multiCallInputs.push({
116
- target: lpToken,
117
- callData: WombatBmw.assetInterface.encodeFunctionData('underlyingToken'),
118
- });
119
- const returnData = (await this.dexHelper.multiContract.methods
120
- .aggregate(multiCallInputs)
121
- .call({}, log.blockNumber)).returnData;
122
- const pool = WombatBmw.assetInterface
123
- .decodeFunctionResult('pool', returnData[0])[0]
124
- .toLowerCase();
125
- const underlyingToken = WombatBmw.assetInterface
126
- .decodeFunctionResult('underlyingToken', returnData[1])[0]
127
- .toLowerCase();
128
- this.onAssetAdded(pool, new Map().set(lpToken, underlyingToken), log.blockNumber);
129
- if (!state.pools.includes(pool)) {
130
- return {
131
- pools: [...state.pools, pool],
132
- };
133
- }
134
- else {
135
- return {
136
- pools: state.pools,
137
- };
138
- }
139
- }
140
- }
141
- exports.WombatBmw = WombatBmw;
142
- WombatBmw.bmwInterface = new abi_1.Interface(bmw_json_1.default);
143
- WombatBmw.assetInterface = new abi_1.Interface(asset_json_1.default);
144
- WombatBmw.poolInterface = new abi_1.Interface(pool_json_1.default);
145
- //# sourceMappingURL=wombat-bmw.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"wombat-bmw.js","sourceRoot":"","sources":["../../../src/dex/wombat/wombat-bmw.ts"],"names":[],"mappings":"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"}
@@ -1,22 +0,0 @@
1
- import { Interface } from '@ethersproject/abi';
2
- import { Address } from '@paraswap/core';
3
- import { MultiCallParams, MultiResult } from '../../lib/multi-wrapper';
4
- import { IDexHelper } from '../../dex-helper';
5
- import { StatefulRpcPoller } from '../../lib/stateful-rpc-poller/stateful-rpc-poller';
6
- import { ObjWithUpdateInfo } from '../../lib/stateful-rpc-poller/types';
7
- import { MulticallResultOutputs, PoolState } from './types';
8
- export declare class WombatPool extends StatefulRpcPoller<PoolState, MulticallResultOutputs> {
9
- protected poolAddress: Address;
10
- protected asset2TokenMap: Map<Address, Address>;
11
- static readonly poolInterface: Interface;
12
- static readonly assetInterface: Interface;
13
- constructor(dexKey: string, poolIdentifier: string, dexHelper: IDexHelper, poolAddress: Address, asset2TokenMap: Map<Address, Address>);
14
- protected _getFetchStateMultiCalls(): MultiCallParams<MulticallResultOutputs>[];
15
- protected _parseStateFromMultiResults(multiOutputs: MulticallResultOutputs[]): PoolState;
16
- fetchLatestStateFromRpc(): Promise<ObjWithUpdateInfo<PoolState> | null>;
17
- parseStateFromMultiResultsWithBlockInfo(multiOutputs: [
18
- MultiResult<number>,
19
- ...MultiResult<MulticallResultOutputs>[]
20
- ], lastUpdatedAtMs: number): ObjWithUpdateInfo<PoolState>;
21
- addAssets(asset2TokenMap: Map<Address, Address>): void;
22
- }
@@ -1,161 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.WombatPool = void 0;
7
- const abi_1 = require("@ethersproject/abi");
8
- const lodash_1 = __importDefault(require("lodash"));
9
- const stateful_rpc_poller_1 = require("../../lib/stateful-rpc-poller/stateful-rpc-poller");
10
- const state_polling_manager_1 = require("../../lib/stateful-rpc-poller/state-polling-manager");
11
- const utils_1 = require("../../lib/stateful-rpc-poller/utils");
12
- const decoders_1 = require("../../lib/decoders");
13
- const pool_json_1 = __importDefault(require("../../abi/wombat/pool.json"));
14
- const asset_json_1 = __importDefault(require("../../abi/wombat/asset.json"));
15
- const utils_2 = require("./utils");
16
- class WombatPool extends stateful_rpc_poller_1.StatefulRpcPoller {
17
- constructor(dexKey, poolIdentifier, dexHelper, poolAddress, asset2TokenMap) {
18
- const callbacks = (0, utils_1.pollingManagerCbExtractor)(state_polling_manager_1.StatePollingManager.getInstance(dexHelper));
19
- super(dexKey, poolIdentifier, dexHelper, 0, 0, false, callbacks);
20
- this.poolAddress = poolAddress;
21
- this.asset2TokenMap = asset2TokenMap;
22
- }
23
- _getFetchStateMultiCalls() {
24
- const params = [];
25
- params.push({
26
- target: this.poolAddress,
27
- callData: WombatPool.poolInterface.encodeFunctionData('paused'),
28
- decodeFunction: decoders_1.booleanDecode,
29
- });
30
- params.push({
31
- target: this.poolAddress,
32
- callData: WombatPool.poolInterface.encodeFunctionData('ampFactor'),
33
- decodeFunction: decoders_1.uint256ToBigInt,
34
- });
35
- params.push({
36
- target: this.poolAddress,
37
- callData: WombatPool.poolInterface.encodeFunctionData('haircutRate'),
38
- decodeFunction: decoders_1.uint256ToBigInt,
39
- });
40
- params.push({
41
- target: this.poolAddress,
42
- callData: WombatPool.poolInterface.encodeFunctionData('startCovRatio'),
43
- decodeFunction: decoders_1.uint256ToBigInt,
44
- });
45
- params.push({
46
- target: this.poolAddress,
47
- callData: WombatPool.poolInterface.encodeFunctionData('endCovRatio'),
48
- decodeFunction: decoders_1.uint256ToBigInt,
49
- });
50
- params.push({
51
- target: this.poolAddress,
52
- callData: WombatPool.poolInterface.encodeFunctionData('getTokens'),
53
- decodeFunction: decoders_1.addressArrayDecode,
54
- });
55
- this.asset2TokenMap.forEach((token, asset) => {
56
- params.push({
57
- target: this.poolAddress,
58
- callData: WombatPool.poolInterface.encodeFunctionData('isPaused', [
59
- token,
60
- ]),
61
- decodeFunction: decoders_1.booleanDecode,
62
- });
63
- params.push({
64
- target: asset,
65
- callData: WombatPool.assetInterface.encodeFunctionData('cash'),
66
- decodeFunction: utils_2.uint120ToBigInt,
67
- });
68
- params.push({
69
- target: asset,
70
- callData: WombatPool.assetInterface.encodeFunctionData('liability'),
71
- decodeFunction: utils_2.uint120ToBigInt,
72
- });
73
- params.push({
74
- target: asset,
75
- callData: WombatPool.assetInterface.encodeFunctionData('underlyingTokenDecimals'),
76
- decodeFunction: decoders_1.uint8ToNumber,
77
- });
78
- params.push({
79
- target: asset,
80
- callData: WombatPool.assetInterface.encodeFunctionData('getRelativePrice'),
81
- decodeFunction: decoders_1.uint256ToBigInt,
82
- });
83
- });
84
- return params;
85
- }
86
- _parseStateFromMultiResults(multiOutputs) {
87
- const [paused, ampFactor, haircutRate, startCovRatio, endCovRatio, tokens, ...remained] = multiOutputs;
88
- const assetTokenArray = Array.from(this.asset2TokenMap.entries());
89
- const token2AssetStates = new Map();
90
- lodash_1.default.chunk(remained, 5).forEach((chunk, i) => {
91
- const [paused, cash, liability, underlyingTokenDecimals, relativePrice] = chunk;
92
- const [asset, token] = assetTokenArray[i];
93
- token2AssetStates.set(token, {
94
- address: asset,
95
- paused,
96
- cash,
97
- liability,
98
- underlyingTokenDecimals,
99
- relativePrice,
100
- });
101
- });
102
- const poolState = {
103
- params: {
104
- paused,
105
- ampFactor,
106
- haircutRate,
107
- startCovRatio,
108
- endCovRatio,
109
- },
110
- underlyingAddresses: tokens,
111
- asset: {},
112
- };
113
- const isMainPool = Array.from(token2AssetStates.values()).filter(assetState => assetState.relativePrice === undefined).length > 0;
114
- for (const token of poolState.underlyingAddresses) {
115
- if (!token2AssetStates.has(token)) {
116
- // this happens when asset has been added to pool but is not added to BMW yet
117
- continue;
118
- }
119
- poolState.asset[token] = token2AssetStates.get(token);
120
- if (isMainPool) {
121
- poolState.asset[token].relativePrice = undefined;
122
- }
123
- }
124
- return poolState;
125
- }
126
- async fetchLatestStateFromRpc() {
127
- const multiCalls = this.getFetchStateWithBlockInfoMultiCalls();
128
- try {
129
- const lastUpdatedAtMs = Date.now();
130
- const aggregatedResults = (await this.dexHelper.multiWrapper.tryAggregate(false, multiCalls));
131
- return this.parseStateFromMultiResultsWithBlockInfo(aggregatedResults, lastUpdatedAtMs);
132
- }
133
- catch (e) {
134
- this._logMessageWithSuppression('ERROR_FETCHING_STATE_FROM_RPC', e);
135
- }
136
- return null;
137
- }
138
- parseStateFromMultiResultsWithBlockInfo(multiOutputs, lastUpdatedAtMs) {
139
- const [blockNumber, ...outputsForAbstract] = multiOutputs.map((m, i) => {
140
- return m.returnData;
141
- });
142
- return {
143
- value: this._parseStateFromMultiResults(outputsForAbstract),
144
- blockNumber,
145
- lastUpdatedAtMs,
146
- };
147
- }
148
- addAssets(asset2TokenMap) {
149
- for (const [asset, token] of asset2TokenMap) {
150
- if (this.asset2TokenMap.has(asset)) {
151
- continue;
152
- }
153
- this.asset2TokenMap.set(asset, token);
154
- this._cachedMultiCallData = undefined;
155
- }
156
- }
157
- }
158
- exports.WombatPool = WombatPool;
159
- WombatPool.poolInterface = new abi_1.Interface(pool_json_1.default);
160
- WombatPool.assetInterface = new abi_1.Interface(asset_json_1.default);
161
- //# sourceMappingURL=wombat-pool.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"wombat-pool.js","sourceRoot":"","sources":["../../../src/dex/wombat/wombat-pool.ts"],"names":[],"mappings":"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"}
@@ -1,16 +0,0 @@
1
- import { AssetState, PoolParams } from './types';
2
- export declare class WombatQuoter {
3
- private readonly ampFactor;
4
- private readonly haircutRate;
5
- private readonly startCovRatio;
6
- private readonly endCovRatio;
7
- constructor(poolParams: PoolParams);
8
- getQuote(fromAsset: AssetState, toAsset: AssetState, fromAmount: bigint): bigint;
9
- private _highCovRatioPoolQuoteFrom;
10
- private _highCovRatioFee;
11
- private _quoteFrom;
12
- private _findUpperBound;
13
- private _quoteFactor;
14
- static solveQuad(b: bigint, c: bigint): bigint;
15
- static swapQuoteFunc(aX: bigint, aY: bigint, lX: bigint, lY: bigint, dX: bigint, a: bigint): bigint;
16
- }