@paraswap/dex-lib 4.1.10 → 4.1.11-erc-4626.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 (260) 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/ERC4626.json +757 -0
  5. package/build/abi/{integral/pool.json → inception/inception-ineth-pool.json} +558 -537
  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/usual-m-smart-m/usualM.abi.json +483 -0
  10. package/build/abi/{integral/relayer.json → wombat/pool.json} +474 -721
  11. package/build/dex/aave-v1/aave-v1.d.ts +2 -1
  12. package/build/dex/aave-v1/aave-v1.js +23 -0
  13. package/build/dex/aave-v1/aave-v1.js.map +1 -1
  14. package/build/dex/aave-v2/tokens-avalanche.json +44 -0
  15. package/build/dex/aave-v2/tokens-mainnet.json +188 -0
  16. package/build/dex/aave-v2/tokens-polygon.json +44 -0
  17. package/build/dex/balancer-v3/abi/balancerBatchRouter.d.ts +729 -0
  18. package/build/dex/balancer-v3/abi/balancerBatchRouter.js +732 -0
  19. package/build/dex/balancer-v3/abi/balancerBatchRouter.js.map +1 -0
  20. package/build/dex/balancer-v3/abi/balancerRouter.d.ts +1406 -0
  21. package/build/dex/balancer-v3/abi/balancerRouter.js +1175 -0
  22. package/build/dex/balancer-v3/abi/balancerRouter.js.map +1 -0
  23. package/build/dex/balancer-v3/abi/vaultExtension.V3.d.ts +2081 -0
  24. package/build/dex/balancer-v3/abi/vaultExtension.V3.js +1851 -0
  25. package/build/dex/balancer-v3/abi/vaultExtension.V3.js.map +1 -0
  26. package/build/dex/balancer-v3/balancer-v3-sepolia-pools.d.ts +34 -0
  27. package/build/dex/balancer-v3/balancer-v3-sepolia-pools.js +406 -0
  28. package/build/dex/balancer-v3/balancer-v3-sepolia-pools.js.map +1 -0
  29. package/build/dex/balancer-v3/gyroECLPPool.d.ts +11 -0
  30. package/build/dex/balancer-v3/gyroECLPPool.js +6 -0
  31. package/build/dex/balancer-v3/gyroECLPPool.js.map +1 -0
  32. package/build/dex/balancer-v3/utils.d.ts +2 -0
  33. package/build/dex/balancer-v3/utils.js +11 -0
  34. package/build/dex/balancer-v3/utils.js.map +1 -0
  35. package/build/dex/erc4626/config.d.ts +3 -0
  36. package/build/dex/erc4626/config.js +42 -0
  37. package/build/dex/erc4626/config.js.map +1 -0
  38. package/build/dex/erc4626/constants.d.ts +3 -0
  39. package/build/dex/erc4626/constants.js +7 -0
  40. package/build/dex/erc4626/constants.js.map +1 -0
  41. package/build/dex/erc4626/erc-4626-pool.d.ts +24 -0
  42. package/build/dex/erc4626/erc-4626-pool.js +92 -0
  43. package/build/dex/erc4626/erc-4626-pool.js.map +1 -0
  44. package/build/dex/erc4626/erc4626.d.ts +46 -0
  45. package/build/dex/erc4626/erc4626.js +247 -0
  46. package/build/dex/erc4626/erc4626.js.map +1 -0
  47. package/build/dex/erc4626/scripts/validate-state.d.ts +0 -0
  48. package/build/dex/erc4626/scripts/validate-state.js +146 -0
  49. package/build/dex/erc4626/scripts/validate-state.js.map +1 -0
  50. package/build/dex/erc4626/types.d.ts +18 -0
  51. package/build/dex/erc4626/types.js +11 -0
  52. package/build/dex/erc4626/types.js.map +1 -0
  53. package/build/dex/inception/config.d.ts +4 -0
  54. package/build/dex/inception/config.js +109 -0
  55. package/build/dex/inception/config.js.map +1 -0
  56. package/build/dex/inception/inception-event-pool.d.ts +16 -0
  57. package/build/dex/inception/inception-event-pool.js +49 -0
  58. package/build/dex/inception/inception-event-pool.js.map +1 -0
  59. package/build/dex/inception/inception.d.ts +43 -0
  60. package/build/dex/inception/inception.js +180 -0
  61. package/build/dex/inception/inception.js.map +1 -0
  62. package/build/dex/inception/tokens.d.ts +9 -0
  63. package/build/dex/inception/tokens.js +28 -0
  64. package/build/dex/inception/tokens.js.map +1 -0
  65. package/build/dex/inception/types.d.ts +22 -0
  66. package/build/dex/{m-token → inception}/types.js.map +1 -1
  67. package/build/dex/inception/utils.d.ts +7 -0
  68. package/build/dex/inception/utils.js +58 -0
  69. package/build/dex/inception/utils.js.map +1 -0
  70. package/build/dex/index.js +2 -2
  71. package/build/dex/index.js.map +1 -1
  72. package/build/dex/jarvis.d.ts +2 -1
  73. package/build/dex/jarvis.js +58 -0
  74. package/build/dex/jarvis.js.map +1 -1
  75. package/build/dex/maker-psm/scripts/gem.abi.json +136 -0
  76. package/build/dex/maker-psm/scripts/validate-state.d.ts +0 -0
  77. package/build/dex/maker-psm/scripts/validate-state.js +185 -0
  78. package/build/dex/maker-psm/scripts/validate-state.js.map +1 -0
  79. package/build/dex/maker-psm/scripts/vat.abi.json +243 -0
  80. package/build/dex/platypus/platypus.d.ts +2 -1
  81. package/build/dex/platypus/platypus.js +45 -0
  82. package/build/dex/platypus/platypus.js.map +1 -1
  83. package/build/dex/solidly-v3/scripts/check-event-pool-event.d.ts +1 -0
  84. package/build/dex/solidly-v3/scripts/check-event-pool-event.js +53 -0
  85. package/build/dex/solidly-v3/scripts/check-event-pool-event.js.map +1 -0
  86. package/build/dex/stable-pool.js +1 -8
  87. package/build/dex/stable-pool.js.map +1 -1
  88. package/build/dex/swaap-v1/swaap-v1.d.ts +2 -1
  89. package/build/dex/swaap-v1/swaap-v1.js +14 -0
  90. package/build/dex/swaap-v1/swaap-v1.js.map +1 -1
  91. package/build/dex/uniswap-v3/forks/alien-base-v3/alien-base-v3.d.ts +17 -0
  92. package/build/dex/uniswap-v3/forks/alien-base-v3/alien-base-v3.js +64 -0
  93. package/build/dex/uniswap-v3/forks/alien-base-v3/alien-base-v3.js.map +1 -0
  94. package/build/dex/uniswap-v3/forks/alien-v3/alien-v3.d.ts +17 -0
  95. package/build/dex/uniswap-v3/forks/alien-v3/alien-v3.js +79 -0
  96. package/build/dex/uniswap-v3/forks/alien-v3/alien-v3.js.map +1 -0
  97. package/build/dex/uniswap-v3/uniswap-v3-pricing.d.ts +4 -0
  98. package/build/dex/uniswap-v3/uniswap-v3-pricing.js +43 -0
  99. package/build/dex/uniswap-v3/uniswap-v3-pricing.js.map +1 -0
  100. package/build/dex/uniswap-v3/uniswap-v3-worker.d.ts +1 -0
  101. package/build/dex/uniswap-v3/uniswap-v3-worker.js +10 -0
  102. package/build/dex/uniswap-v3/uniswap-v3-worker.js.map +1 -0
  103. package/build/dex/uniswap-v4/config.js +0 -43
  104. package/build/dex/uniswap-v4/config.js.map +1 -1
  105. package/build/dex/uniswap-v4/encoder.js +2 -12
  106. package/build/dex/uniswap-v4/encoder.js.map +1 -1
  107. package/build/dex/uniswap-v4/types.d.ts +2 -36
  108. package/build/dex/uniswap-v4/uniswap-v4.d.ts +6 -6
  109. package/build/dex/uniswap-v4/uniswap-v4.js +47 -29
  110. package/build/dex/uniswap-v4/uniswap-v4.js.map +1 -1
  111. package/build/dex/usual/usual-m-smart-m.d.ts +17 -0
  112. package/build/dex/usual/usual-m-smart-m.js +50 -0
  113. package/build/dex/usual/usual-m-smart-m.js.map +1 -0
  114. package/build/dex/usual-m-smart-m/config.d.ts +3 -0
  115. package/build/dex/usual-m-smart-m/config.js +13 -0
  116. package/build/dex/usual-m-smart-m/config.js.map +1 -0
  117. package/build/dex/usual-m-smart-m/types.d.ts +7 -0
  118. package/build/dex/usual-m-smart-m/types.js +3 -0
  119. package/build/dex/usual-m-smart-m/types.js.map +1 -0
  120. package/build/dex/usual-m-smart-m/usual-m-smart-m.d.ts +35 -0
  121. package/build/dex/usual-m-smart-m/usual-m-smart-m.js +161 -0
  122. package/build/dex/usual-m-smart-m/usual-m-smart-m.js.map +1 -0
  123. package/build/dex/{m-token → usual-m-usd0}/config.d.ts +2 -2
  124. package/build/dex/usual-m-usd0/config.js +14 -0
  125. package/build/dex/usual-m-usd0/config.js.map +1 -0
  126. package/build/dex/usual-m-usd0/types.d.ts +8 -0
  127. package/build/dex/usual-m-usd0/types.js +3 -0
  128. package/build/dex/usual-m-usd0/types.js.map +1 -0
  129. package/build/dex/usual-m-usd0/usual-m-usd0.d.ts +35 -0
  130. package/build/dex/usual-m-usd0/usual-m-usd0.js +159 -0
  131. package/build/dex/usual-m-usd0/usual-m-usd0.js.map +1 -0
  132. package/build/dex/zerox/index.d.ts +4 -26
  133. package/build/dex/zerox/index.js +50 -42
  134. package/build/dex/zerox/index.js.map +1 -1
  135. package/build/dex/zerox/types.d.ts +29 -0
  136. package/build/dex/zerox/types.js +8 -1
  137. package/build/dex/zerox/types.js.map +1 -1
  138. package/package.json +1 -1
  139. package/src/dex/erc4626/config.ts +41 -0
  140. package/src/dex/{wusdm → erc4626}/constants.ts +2 -0
  141. package/src/dex/{wusdm/wusdm-pool.ts → erc4626/erc-4626-pool.ts} +38 -15
  142. package/src/dex/erc4626/erc4626-event.test.ts +134 -0
  143. package/src/dex/{wusdm/wusdm-integration.test.ts → erc4626/erc4626-integration.test.ts} +3 -3
  144. package/src/dex/{wusdm/wusdm.ts → erc4626/erc4626.ts} +69 -64
  145. package/src/dex/erc4626/old-events.test.ts +249 -0
  146. package/src/dex/erc4626/scripts/validate-state.ts +168 -0
  147. package/src/dex/{wusdm → erc4626}/types.ts +6 -6
  148. package/src/dex/index.ts +2 -2
  149. package/tests/constants-e2e.ts +1 -1
  150. package/.idea/aws.xml +0 -17
  151. package/.idea/codeStyles/Project.xml +0 -19
  152. package/.idea/codeStyles/codeStyleConfig.xml +0 -5
  153. package/.idea/misc.xml +0 -6
  154. package/.idea/modules.xml +0 -8
  155. package/.idea/paraswap-dex-lib.iml +0 -9
  156. package/.idea/prettier.xml +0 -7
  157. package/.idea/vcs.xml +0 -6
  158. package/build/abi/integral/factory.json +0 -333
  159. package/build/abi/integral/oracle.json +0 -501
  160. package/build/abi/uniswap-v4/pool-manager.abi.json +0 -1366
  161. package/build/abi/uniswap-v4/state-view.abi.json +0 -365
  162. package/build/dex/fluid-dex/fluid-dex-generate-pool.d.ts +0 -49
  163. package/build/dex/fluid-dex/fluid-dex-generate-pool.js +0 -104
  164. package/build/dex/fluid-dex/fluid-dex-generate-pool.js.map +0 -1
  165. package/build/dex/integral/config.d.ts +0 -4
  166. package/build/dex/integral/config.js +0 -20
  167. package/build/dex/integral/config.js.map +0 -1
  168. package/build/dex/integral/context.d.ts +0 -40
  169. package/build/dex/integral/context.js +0 -158
  170. package/build/dex/integral/context.js.map +0 -1
  171. package/build/dex/integral/integral-factory.d.ts +0 -24
  172. package/build/dex/integral/integral-factory.js +0 -95
  173. package/build/dex/integral/integral-factory.js.map +0 -1
  174. package/build/dex/integral/integral-pool.d.ts +0 -50
  175. package/build/dex/integral/integral-pool.js +0 -149
  176. package/build/dex/integral/integral-pool.js.map +0 -1
  177. package/build/dex/integral/integral-pricing.d.ts +0 -18
  178. package/build/dex/integral/integral-pricing.js +0 -114
  179. package/build/dex/integral/integral-pricing.js.map +0 -1
  180. package/build/dex/integral/integral-relayer.d.ts +0 -42
  181. package/build/dex/integral/integral-relayer.js +0 -192
  182. package/build/dex/integral/integral-relayer.js.map +0 -1
  183. package/build/dex/integral/integral-token.d.ts +0 -27
  184. package/build/dex/integral/integral-token.js +0 -59
  185. package/build/dex/integral/integral-token.js.map +0 -1
  186. package/build/dex/integral/integral.d.ts +0 -41
  187. package/build/dex/integral/integral.js +0 -376
  188. package/build/dex/integral/integral.js.map +0 -1
  189. package/build/dex/integral/types.d.ts +0 -85
  190. package/build/dex/integral/types.js +0 -9
  191. package/build/dex/integral/types.js.map +0 -1
  192. package/build/dex/integral/utils-e2e.d.ts +0 -9
  193. package/build/dex/integral/utils-e2e.js +0 -131
  194. package/build/dex/integral/utils-e2e.js.map +0 -1
  195. package/build/dex/integral/utils.d.ts +0 -17
  196. package/build/dex/integral/utils.js +0 -94
  197. package/build/dex/integral/utils.js.map +0 -1
  198. package/build/dex/m-token/config.js +0 -19
  199. package/build/dex/m-token/config.js.map +0 -1
  200. package/build/dex/m-token/m-token.d.ts +0 -29
  201. package/build/dex/m-token/m-token.js +0 -145
  202. package/build/dex/m-token/m-token.js.map +0 -1
  203. package/build/dex/m-token/m-wrapped-m.d.ts +0 -17
  204. package/build/dex/m-token/m-wrapped-m.js +0 -50
  205. package/build/dex/m-token/m-wrapped-m.js.map +0 -1
  206. package/build/dex/m-token/types.d.ts +0 -12
  207. package/build/dex/trader-joe-v2.1/optimizer.d.ts +0 -2
  208. package/build/dex/trader-joe-v2.1/optimizer.js +0 -47
  209. package/build/dex/trader-joe-v2.1/optimizer.js.map +0 -1
  210. package/build/dex/uniswap-v4/constants.d.ts +0 -7
  211. package/build/dex/uniswap-v4/constants.js +0 -18
  212. package/build/dex/uniswap-v4/constants.js.map +0 -1
  213. package/build/dex/uniswap-v4/contract-math/BitMath.d.ts +0 -4
  214. package/build/dex/uniswap-v4/contract-math/BitMath.js +0 -93
  215. package/build/dex/uniswap-v4/contract-math/BitMath.js.map +0 -1
  216. package/build/dex/uniswap-v4/contract-math/FixedPoint128.d.ts +0 -3
  217. package/build/dex/uniswap-v4/contract-math/FixedPoint128.js +0 -8
  218. package/build/dex/uniswap-v4/contract-math/FixedPoint128.js.map +0 -1
  219. package/build/dex/uniswap-v4/contract-math/FixedPoint96.d.ts +0 -4
  220. package/build/dex/uniswap-v4/contract-math/FixedPoint96.js +0 -9
  221. package/build/dex/uniswap-v4/contract-math/FixedPoint96.js.map +0 -1
  222. package/build/dex/uniswap-v4/contract-math/FullMath.d.ts +0 -4
  223. package/build/dex/uniswap-v4/contract-math/FullMath.js +0 -19
  224. package/build/dex/uniswap-v4/contract-math/FullMath.js.map +0 -1
  225. package/build/dex/uniswap-v4/contract-math/LiquidityMath.d.ts +0 -3
  226. package/build/dex/uniswap-v4/contract-math/LiquidityMath.js +0 -22
  227. package/build/dex/uniswap-v4/contract-math/LiquidityMath.js.map +0 -1
  228. package/build/dex/uniswap-v4/contract-math/SqrtPriceMath.d.ts +0 -10
  229. package/build/dex/uniswap-v4/contract-math/SqrtPriceMath.js +0 -91
  230. package/build/dex/uniswap-v4/contract-math/SqrtPriceMath.js.map +0 -1
  231. package/build/dex/uniswap-v4/contract-math/SwapMath.d.ts +0 -8
  232. package/build/dex/uniswap-v4/contract-math/SwapMath.js +0 -70
  233. package/build/dex/uniswap-v4/contract-math/SwapMath.js.map +0 -1
  234. package/build/dex/uniswap-v4/contract-math/TickBitMap.d.ts +0 -7
  235. package/build/dex/uniswap-v4/contract-math/TickBitMap.js +0 -86
  236. package/build/dex/uniswap-v4/contract-math/TickBitMap.js.map +0 -1
  237. package/build/dex/uniswap-v4/contract-math/TickMath.d.ts +0 -8
  238. package/build/dex/uniswap-v4/contract-math/TickMath.js +0 -162
  239. package/build/dex/uniswap-v4/contract-math/TickMath.js.map +0 -1
  240. package/build/dex/uniswap-v4/contract-math/UnsafeMath.d.ts +0 -3
  241. package/build/dex/uniswap-v4/contract-math/UnsafeMath.js +0 -10
  242. package/build/dex/uniswap-v4/contract-math/UnsafeMath.js.map +0 -1
  243. package/build/dex/uniswap-v4/contract-math/uniswap-v4-math.d.ts +0 -8
  244. package/build/dex/uniswap-v4/contract-math/uniswap-v4-math.js +0 -12
  245. package/build/dex/uniswap-v4/contract-math/uniswap-v4-math.js.map +0 -1
  246. package/build/dex/uniswap-v4/subgraph.d.ts +0 -5
  247. package/build/dex/uniswap-v4/subgraph.js +0 -80
  248. package/build/dex/uniswap-v4/subgraph.js.map +0 -1
  249. package/build/dex/uniswap-v4/uniswap-v4-pool-manager.d.ts +0 -30
  250. package/build/dex/uniswap-v4/uniswap-v4-pool-manager.js +0 -139
  251. package/build/dex/uniswap-v4/uniswap-v4-pool-manager.js.map +0 -1
  252. package/build/dex/uniswap-v4/utils.d.ts +0 -2
  253. package/build/dex/uniswap-v4/utils.js +0 -15
  254. package/build/dex/uniswap-v4/utils.js.map +0 -1
  255. package/src/dex/wusdm/config.ts +0 -43
  256. package/src/dex/wusdm/wusdm-event.test.ts +0 -104
  257. /package/build/dex/{m-token → inception}/types.js +0 -0
  258. /package/src/abi/{wUSDM.json → ERC4626.json} +0 -0
  259. /package/src/dex/{wusdm/wusdm-e2e.test.ts → erc4626/erc4626-e2e.test.ts} +0 -0
  260. /package/src/dex/{wusdm/wusdm-gas-estimation.test.ts → erc4626/erc4626-gas-estimation.test.ts} +0 -0
@@ -0,0 +1,24 @@
1
+ import { StatefulEventSubscriber } from '../../stateful-event-subscriber';
2
+ import { Interface } from '@ethersproject/abi';
3
+ import type { IDexHelper } from '../../dex-helper';
4
+ import type { DeepReadonly } from 'ts-essentials';
5
+ import type { Address, BlockHeader, Log, Logger } from '../../types';
6
+ import type { ERC4626PoolState } from './types';
7
+ import { Network } from '../../constants';
8
+ export declare class ERC4626EventPool extends StatefulEventSubscriber<ERC4626PoolState> {
9
+ protected dexHelper: IDexHelper;
10
+ private vault;
11
+ private asset;
12
+ private wrapperInterface;
13
+ private depositTopic;
14
+ private withdrawTopic;
15
+ private transferTopic;
16
+ logDecoder: (log: Log) => any;
17
+ constructor(parentName: string, network: Network, poolName: string, dexHelper: IDexHelper, vault: Address, asset: Address, wrapperInterface: Interface, logger: Logger, depositTopic: string, withdrawTopic: string, transferTopic: string);
18
+ protected processLog(state: DeepReadonly<ERC4626PoolState>, log: Readonly<Log>, blockHeader: Readonly<BlockHeader>): Promise<DeepReadonly<ERC4626PoolState> | null>;
19
+ generateState(blockNumber?: number | 'latest'): Promise<DeepReadonly<ERC4626PoolState>>;
20
+ getOrGenerateState(blockNumber: number): Promise<ERC4626PoolState>;
21
+ handleDeposit(event: any, state: DeepReadonly<ERC4626PoolState>, log: Readonly<Log>): Promise<DeepReadonly<ERC4626PoolState>>;
22
+ handleAssetTransferToVault(event: any, state: DeepReadonly<ERC4626PoolState>, log: Readonly<Log>): Promise<DeepReadonly<ERC4626PoolState>>;
23
+ handleWithdraw(event: any, state: DeepReadonly<ERC4626PoolState>, log: Readonly<Log>): Promise<DeepReadonly<ERC4626PoolState>>;
24
+ }
@@ -0,0 +1,92 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ERC4626EventPool = void 0;
4
+ const stateful_event_subscriber_1 = require("../../stateful-event-subscriber");
5
+ const decoders_1 = require("../../lib/decoders");
6
+ class ERC4626EventPool extends stateful_event_subscriber_1.StatefulEventSubscriber {
7
+ dexHelper;
8
+ vault;
9
+ asset;
10
+ wrapperInterface;
11
+ depositTopic;
12
+ withdrawTopic;
13
+ transferTopic;
14
+ logDecoder;
15
+ constructor(parentName, network, poolName, dexHelper, vault, asset, wrapperInterface, logger, depositTopic, withdrawTopic, transferTopic) {
16
+ super(parentName, poolName, dexHelper, logger);
17
+ this.dexHelper = dexHelper;
18
+ this.vault = vault;
19
+ this.asset = asset;
20
+ this.wrapperInterface = wrapperInterface;
21
+ this.depositTopic = depositTopic;
22
+ this.withdrawTopic = withdrawTopic;
23
+ this.transferTopic = transferTopic;
24
+ this.addressesSubscribed = [vault, asset];
25
+ this.vault = vault.toLowerCase();
26
+ this.asset = asset.toLowerCase();
27
+ this.logDecoder = (log) => this.wrapperInterface.parseLog(log);
28
+ }
29
+ async processLog(state, log, blockHeader) {
30
+ const event = this.logDecoder(log);
31
+ if (log.topics[0] === this.transferTopic &&
32
+ log.address.toLowerCase() === this.asset &&
33
+ event.args.to.toLowerCase() === this.vault) {
34
+ return this.handleAssetTransferToVault(event, state, log);
35
+ }
36
+ if (log.topics[0] === this.depositTopic) {
37
+ return this.handleDeposit(event, state, log);
38
+ }
39
+ if (log.topics[0] === this.withdrawTopic) {
40
+ return this.handleWithdraw(event, state, log);
41
+ }
42
+ return null;
43
+ }
44
+ async generateState(blockNumber = 'latest') {
45
+ const calls = [
46
+ {
47
+ target: this.vault,
48
+ callData: this.wrapperInterface.encodeFunctionData('totalAssets', []),
49
+ decodeFunction: decoders_1.uint256ToBigInt,
50
+ },
51
+ {
52
+ target: this.vault,
53
+ callData: this.wrapperInterface.encodeFunctionData('totalSupply', []),
54
+ decodeFunction: decoders_1.uint256ToBigInt,
55
+ },
56
+ ];
57
+ const [totalAssets, totalSupply] = await this.dexHelper.multiWrapper.tryAggregate(true, calls, blockNumber);
58
+ return {
59
+ totalAssets: totalAssets.returnData,
60
+ totalShares: totalSupply.returnData,
61
+ };
62
+ }
63
+ async getOrGenerateState(blockNumber) {
64
+ let state = this.getState(blockNumber);
65
+ if (!state) {
66
+ state = await this.generateState(blockNumber);
67
+ this.setState(state, blockNumber);
68
+ }
69
+ return state;
70
+ }
71
+ async handleDeposit(event, state, log) {
72
+ return {
73
+ // skip assets update, as it should be already handled in handleAssetTransferToVault
74
+ totalAssets: state.totalAssets,
75
+ totalShares: state.totalShares + BigInt(event.args.shares),
76
+ };
77
+ }
78
+ async handleAssetTransferToVault(event, state, log) {
79
+ return {
80
+ totalAssets: state.totalAssets + BigInt(event.args.value),
81
+ totalShares: state.totalShares,
82
+ };
83
+ }
84
+ async handleWithdraw(event, state, log) {
85
+ return {
86
+ totalAssets: BigInt(state.totalAssets) - BigInt(event.args.assets),
87
+ totalShares: BigInt(state.totalShares) - BigInt(event.args.shares),
88
+ };
89
+ }
90
+ }
91
+ exports.ERC4626EventPool = ERC4626EventPool;
92
+ //# sourceMappingURL=erc-4626-pool.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"erc-4626-pool.js","sourceRoot":"","sources":["../../../src/dex/erc4626/erc-4626-pool.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,46 @@
1
+ import { Token, Address, ExchangePrices, PoolPrices, AdapterExchangeParam, SimpleExchangeParam, PoolLiquidity, Logger, NumberAsString, DexExchangeParam } from '../../types';
2
+ import { SwapSide, Network } from '../../constants';
3
+ import { IDex, Context } from '../idex';
4
+ import { IDexHelper } from '../../dex-helper/idex-helper';
5
+ import { ERC4626Data, ERC4626Params, ERC4626PoolState } from './types';
6
+ import { SimpleExchange } from '../simple-exchange';
7
+ import { ERC4626EventPool } from './erc-4626-pool';
8
+ import { Interface } from '@ethersproject/abi';
9
+ export declare class ERC4626 extends SimpleExchange implements IDex<ERC4626Data, ERC4626Params> {
10
+ readonly network: Network;
11
+ readonly dexKey: string;
12
+ readonly dexHelper: IDexHelper;
13
+ readonly vault: string;
14
+ readonly asset: string;
15
+ readonly erc4626Interface: Interface;
16
+ readonly hasConstantPriceLargeAmounts = true;
17
+ readonly isFeeOnTransferSupported = false;
18
+ readonly needWrapNative: boolean;
19
+ static dexKeysWithNetwork: {
20
+ key: string;
21
+ networks: Network[];
22
+ }[];
23
+ readonly eventPool: ERC4626EventPool;
24
+ logger: Logger;
25
+ constructor(network: Network, dexKey: string, dexHelper: IDexHelper, vault?: string, asset?: string, erc4626Interface?: Interface);
26
+ getAdapters(side: SwapSide): {
27
+ name: string;
28
+ index: number;
29
+ }[] | null;
30
+ isAppropriatePair(srcToken: Token, destToken: Token): boolean;
31
+ initializePricing(blockNumber: number): Promise<void>;
32
+ getPoolIdentifiers(srcToken: Token, destToken: Token, side: SwapSide, blockNumber: number): Promise<string[]>;
33
+ isAsset(tokenAddress: Address): boolean;
34
+ isVault(tokenAddress: Address): boolean;
35
+ isWrap(srcToken: Token, destToken: Token, side: SwapSide): boolean;
36
+ getPricesVolume(srcToken: Token, destToken: Token, amounts: bigint[], side: SwapSide, blockNumber: number, limitPools?: string[]): Promise<null | ExchangePrices<ERC4626Data>>;
37
+ getCalldataGasCost(poolPrices: PoolPrices<ERC4626Data>): number | number[];
38
+ getTopPoolsForToken(tokenAddress: Address, limit: number): Promise<PoolLiquidity[]>;
39
+ getSimpleParam(srcToken: string, destToken: string, srcAmount: string, destAmount: string, data: ERC4626Data, side: SwapSide): Promise<SimpleExchangeParam>;
40
+ getDexParam(srcToken: Address, destToken: Address, srcAmount: NumberAsString, destAmount: NumberAsString, recipient: Address, data: ERC4626Data, side: SwapSide, _: Context, executorAddress: Address): DexExchangeParam;
41
+ getAdapterParam(srcToken: string, destToken: string, srcAmount: string, destAmount: string, data: ERC4626Data, side: SwapSide): AdapterExchangeParam;
42
+ previewRedeem(shares: bigint, state: ERC4626PoolState): bigint;
43
+ previewMint(shares: bigint, state: ERC4626PoolState): bigint;
44
+ previewWithdraw(assets: bigint, state: ERC4626PoolState): bigint;
45
+ previewDeposit(assets: bigint, state: ERC4626PoolState): bigint;
46
+ }
@@ -0,0 +1,247 @@
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 () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ var __importDefault = (this && this.__importDefault) || function (mod) {
36
+ return (mod && mod.__esModule) ? mod : { "default": mod };
37
+ };
38
+ Object.defineProperty(exports, "__esModule", { value: true });
39
+ exports.ERC4626 = void 0;
40
+ const constants_1 = require("../../constants");
41
+ const CALLDATA_GAS_COST = __importStar(require("../../calldata-gas-cost"));
42
+ const utils_1 = require("../../utils");
43
+ const types_1 = require("./types");
44
+ const simple_exchange_1 = require("../simple-exchange");
45
+ const config_1 = require("./config");
46
+ const bigint_constants_1 = require("../../bigint-constants");
47
+ const erc_4626_pool_1 = require("./erc-4626-pool");
48
+ const abi_1 = require("@ethersproject/abi");
49
+ const ERC4626_json_1 = __importDefault(require("../../abi/ERC4626.json"));
50
+ const erc20_json_1 = __importDefault(require("../../abi/erc20.json"));
51
+ const constants_2 = require("./constants");
52
+ const utils_2 = require("../../executor/utils");
53
+ class ERC4626 extends simple_exchange_1.SimpleExchange {
54
+ network;
55
+ dexKey;
56
+ dexHelper;
57
+ vault;
58
+ asset;
59
+ erc4626Interface;
60
+ hasConstantPriceLargeAmounts = true;
61
+ isFeeOnTransferSupported = false;
62
+ needWrapNative = true;
63
+ static dexKeysWithNetwork = (0, utils_1.getDexKeysWithNetwork)(config_1.ERC4626Config);
64
+ eventPool;
65
+ logger;
66
+ constructor(network, dexKey, dexHelper, vault = config_1.ERC4626Config[dexKey][network].vault, asset = config_1.ERC4626Config[dexKey][network].asset, erc4626Interface = new abi_1.Interface([
67
+ // Vault abi
68
+ ...ERC4626_json_1.default,
69
+ // asset abi (specifically to handle Transfer to vault event)
70
+ ...erc20_json_1.default,
71
+ ])) {
72
+ super(dexHelper, dexKey);
73
+ this.network = network;
74
+ this.dexKey = dexKey;
75
+ this.dexHelper = dexHelper;
76
+ this.vault = vault;
77
+ this.asset = asset;
78
+ this.erc4626Interface = erc4626Interface;
79
+ this.logger = dexHelper.getLogger(dexKey);
80
+ this.eventPool = new erc_4626_pool_1.ERC4626EventPool(this.dexKey, this.network, `${this.vault}_${this.asset}`, dexHelper, this.vault, this.asset, this.erc4626Interface, this.logger, constants_2.DEPOSIT_TOPIC, constants_2.WITHDRAW_TOPIC, constants_2.TRANSFER_TOPIC);
81
+ }
82
+ getAdapters(side) {
83
+ return null;
84
+ }
85
+ isAppropriatePair(srcToken, destToken) {
86
+ return ((this.isAsset(srcToken.address) && this.isVault(destToken.address)) ||
87
+ (this.isVault(srcToken.address) && this.isAsset(destToken.address)));
88
+ }
89
+ async initializePricing(blockNumber) {
90
+ await this.eventPool.initialize(blockNumber);
91
+ }
92
+ async getPoolIdentifiers(srcToken, destToken, side, blockNumber) {
93
+ const _srcToken = this.dexHelper.config.wrapETH(srcToken);
94
+ const _destToken = this.dexHelper.config.wrapETH(destToken);
95
+ return this.isAppropriatePair(_srcToken, _destToken)
96
+ ? [`${this.dexKey}_${this.vault}`]
97
+ : [];
98
+ }
99
+ isAsset(tokenAddress) {
100
+ return this.asset.toLowerCase() === tokenAddress.toLowerCase();
101
+ }
102
+ isVault(tokenAddress) {
103
+ return this.vault.toLowerCase() === tokenAddress.toLowerCase();
104
+ }
105
+ isWrap(srcToken, destToken, side) {
106
+ if (side === constants_1.SwapSide.SELL) {
107
+ return this.isAsset(srcToken.address) && this.isVault(destToken.address);
108
+ }
109
+ return this.isVault(srcToken.address) && this.isAsset(destToken.address);
110
+ }
111
+ // Returns pool prices for amounts.
112
+ // If limitPools is defined only pools in limitPools
113
+ // should be used. If limitPools is undefined then
114
+ // any pools can be used.
115
+ async getPricesVolume(srcToken, destToken, amounts, side, blockNumber, limitPools) {
116
+ const _srcToken = this.dexHelper.config.wrapETH(srcToken);
117
+ const _destToken = this.dexHelper.config.wrapETH(destToken);
118
+ if (!this.isAppropriatePair(_srcToken, _destToken))
119
+ return null;
120
+ const state = this.eventPool.getState(blockNumber);
121
+ if (!state)
122
+ return null;
123
+ const isSrcAsset = this.isAsset(_srcToken.address);
124
+ const isWrap = this.isWrap(_srcToken, _destToken, side);
125
+ let calcFunction;
126
+ if (side === constants_1.SwapSide.SELL) {
127
+ if (isSrcAsset) {
128
+ calcFunction = this.previewDeposit.bind(this);
129
+ }
130
+ else {
131
+ calcFunction = this.previewRedeem.bind(this);
132
+ }
133
+ }
134
+ else {
135
+ if (isSrcAsset) {
136
+ calcFunction = this.previewMint.bind(this);
137
+ }
138
+ else {
139
+ calcFunction = this.previewWithdraw.bind(this);
140
+ }
141
+ }
142
+ return [
143
+ {
144
+ unit: bigint_constants_1.BI_POWS[18],
145
+ prices: amounts.map(amount => calcFunction(amount, state)),
146
+ gasCost: isWrap ? 60000 : 70000,
147
+ data: { exchange: `${this.vault}` },
148
+ poolAddresses: [this.vault],
149
+ exchange: this.dexKey,
150
+ },
151
+ ];
152
+ }
153
+ // Returns estimated gas cost of calldata for this DEX in multiSwap
154
+ getCalldataGasCost(poolPrices) {
155
+ // TODO: update if there is any payload in getAdapterParam
156
+ return CALLDATA_GAS_COST.DEX_NO_PAYLOAD;
157
+ }
158
+ async getTopPoolsForToken(tokenAddress, limit) {
159
+ if (!this.isAsset(tokenAddress) && !this.isVault(tokenAddress))
160
+ return [];
161
+ return [
162
+ {
163
+ exchange: this.dexKey,
164
+ address: this.vault,
165
+ connectorTokens: [
166
+ {
167
+ decimals: 18,
168
+ address: this.isAsset(tokenAddress) ? this.vault : this.asset,
169
+ },
170
+ ],
171
+ liquidityUSD: 1000000000, // Just returning a big number so this DEX will be preferred
172
+ },
173
+ ];
174
+ }
175
+ async getSimpleParam(srcToken, destToken, srcAmount, destAmount, data, side) {
176
+ const isSell = side === constants_1.SwapSide.SELL;
177
+ const { exchange } = data;
178
+ let swapData;
179
+ if (this.isAsset(srcToken)) {
180
+ swapData = this.erc4626Interface.encodeFunctionData(isSell ? types_1.ERC4626Functions.deposit : types_1.ERC4626Functions.mint, [isSell ? srcAmount : destAmount, this.augustusAddress]);
181
+ }
182
+ else {
183
+ swapData = this.erc4626Interface.encodeFunctionData(isSell ? types_1.ERC4626Functions.redeem : types_1.ERC4626Functions.withdraw, [
184
+ isSell ? srcAmount : destAmount,
185
+ this.augustusAddress,
186
+ this.augustusAddress,
187
+ ]);
188
+ }
189
+ return this.buildSimpleParamWithoutWETHConversion(srcToken, srcAmount, destToken, destAmount, swapData, exchange, undefined, undefined, undefined, isSell && this.isAsset(destToken));
190
+ }
191
+ getDexParam(srcToken, destToken, srcAmount, destAmount, recipient, data, side, _, executorAddress) {
192
+ const isSell = side === constants_1.SwapSide.SELL;
193
+ const { exchange } = data;
194
+ let swapData;
195
+ if (this.isAsset(srcToken)) {
196
+ swapData = this.erc4626Interface.encodeFunctionData(isSell ? types_1.ERC4626Functions.deposit : types_1.ERC4626Functions.mint, [isSell ? srcAmount : destAmount, recipient]);
197
+ }
198
+ else {
199
+ swapData = this.erc4626Interface.encodeFunctionData(isSell ? types_1.ERC4626Functions.redeem : types_1.ERC4626Functions.withdraw, [isSell ? srcAmount : destAmount, recipient, executorAddress]);
200
+ }
201
+ return {
202
+ needWrapNative: this.needWrapNative,
203
+ dexFuncHasRecipient: true,
204
+ exchangeData: swapData,
205
+ targetExchange: exchange,
206
+ returnAmountPos: isSell
207
+ ? (0, utils_2.extractReturnAmountPosition)(this.erc4626Interface, this.isAsset(srcToken)
208
+ ? types_1.ERC4626Functions.deposit
209
+ : types_1.ERC4626Functions.redeem)
210
+ : undefined,
211
+ skipApproval: this.isAsset(destToken),
212
+ };
213
+ }
214
+ // Encode params required by the exchange adapter
215
+ // V5: Used for multiSwap, buy & megaSwap
216
+ // V6: Not used, can be left blank
217
+ // Hint: abiCoder.encodeParameter() could be useful
218
+ getAdapterParam(srcToken, destToken, srcAmount, destAmount, data, side) {
219
+ const { exchange } = data;
220
+ const payload = this.abiCoder.encodeParameter({
221
+ ParentStruct: {
222
+ toStaked: 'bool',
223
+ },
224
+ }, {
225
+ toStaked: this.isAsset(srcToken),
226
+ });
227
+ return {
228
+ targetExchange: exchange,
229
+ payload,
230
+ networkFee: '0',
231
+ };
232
+ }
233
+ previewRedeem(shares, state) {
234
+ return (shares * state.totalAssets) / state.totalShares;
235
+ }
236
+ previewMint(shares, state) {
237
+ return (shares * state.totalAssets) / state.totalShares;
238
+ }
239
+ previewWithdraw(assets, state) {
240
+ return (assets * state.totalShares) / state.totalAssets;
241
+ }
242
+ previewDeposit(assets, state) {
243
+ return (assets * state.totalShares) / state.totalAssets;
244
+ }
245
+ }
246
+ exports.ERC4626 = ERC4626;
247
+ //# sourceMappingURL=erc4626.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"erc4626.js","sourceRoot":"","sources":["../../../src/dex/erc4626/erc4626.ts"],"names":[],"mappings":"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"}
File without changes
@@ -0,0 +1,146 @@
1
+ "use strict";
2
+ // import dotenv from 'dotenv';
3
+ // dotenv.config();
4
+ // import { Network } from '../../../constants';
5
+ // import { DummyDexHelper } from '../../../dex-helper';
6
+ // import { DEPOSIT_TOPIC, TRANSFER_TOPIC, WITHDRAW_TOPIC } from '../constants';
7
+ // import { ERC4626EventPool } from '../erc-4626-pool';
8
+ // import { ERC4626Config } from '../config';
9
+ // import { Interface } from '@ethersproject/abi';
10
+ // import wUSDM_ABI from '../../../abi/ERC4626.json';
11
+ // import ERC20_ABI from '../../../abi/erc20.json';
12
+ // import { BlockHeader } from 'web3-eth';
13
+ // import _ from 'lodash';
14
+ // import { ERC4626PoolState } from '../types';
15
+ // import { ethers } from 'ethers';
16
+ // const blockHeaders: Record<number, BlockHeader> = {};
17
+ // async function fetchPoolState(
18
+ // wusdmPool: ERC4626EventPool,
19
+ // blockNumber: number,
20
+ // ): Promise<ERC4626PoolState> {
21
+ // // const eventState = wusdmPool.getState(blockNumber);
22
+ // // if (eventState) return eventState;
23
+ // const onChainState = await wusdmPool.generateState(blockNumber);
24
+ // wusdmPool.setState(onChainState, blockNumber);
25
+ // return onChainState;
26
+ // }
27
+ // async function checkPoolStateForBlockRange(
28
+ // startBlockNumber: number,
29
+ // endBlockNumber: number,
30
+ // ): Promise<boolean> {
31
+ // console.log(
32
+ // 'startBlockNumber',
33
+ // startBlockNumber,
34
+ // 'endBlockNumber',
35
+ // endBlockNumber,
36
+ // );
37
+ // try {
38
+ // const network = Network.GNOSIS;
39
+ // const dexKey = 'sDAI';
40
+ // const dexHelper = new DummyDexHelper(network);
41
+ // const wUSDMAddress = ERC4626Config[dexKey][network].vault;
42
+ // const USDMAddress = ERC4626Config[dexKey][network].asset;
43
+ // const wUSDMIface = new Interface([...wUSDM_ABI, ...ERC20_ABI]);
44
+ // const logger = dexHelper.getLogger(dexKey);
45
+ // const pool = new ERC4626EventPool(
46
+ // dexKey,
47
+ // network,
48
+ // `wusdm-pool`,
49
+ // dexHelper,
50
+ // wUSDMAddress,
51
+ // USDMAddress,
52
+ // wUSDMIface,
53
+ // logger,
54
+ // DEPOSIT_TOPIC,
55
+ // WITHDRAW_TOPIC,
56
+ // TRANSFER_TOPIC,
57
+ // );
58
+ // const initState = await fetchPoolState(pool, startBlockNumber);
59
+ // console.log('initState', initState);
60
+ // // console.log(await pool.getState(startBlockNumber));
61
+ // const vaultLogs = await dexHelper.provider.getLogs({
62
+ // fromBlock: startBlockNumber,
63
+ // toBlock: endBlockNumber,
64
+ // address: wUSDMAddress,
65
+ // });
66
+ // const assetLogs = await dexHelper.provider.getLogs({
67
+ // fromBlock: startBlockNumber,
68
+ // toBlock: endBlockNumber,
69
+ // address: USDMAddress,
70
+ // });
71
+ // const logsToDispatch = [...vaultLogs, ...assetLogs];
72
+ // console.log(logsToDispatch.length);
73
+ // // group logs by block number
74
+ // const logsByBlockNumber: Record<number, any[]> = {};
75
+ // for (let log of logsToDispatch) {
76
+ // if (!logsByBlockNumber[log.blockNumber]) {
77
+ // logsByBlockNumber[log.blockNumber] = [];
78
+ // }
79
+ // logsByBlockNumber[log.blockNumber].push(log);
80
+ // }
81
+ // Object.keys(logsByBlockNumber).forEach(blockNumber => {
82
+ // logsByBlockNumber[Number(blockNumber)] = logsByBlockNumber[
83
+ // Number(blockNumber)
84
+ // ].sort((a, b) => a.logIndex - b.logIndex);
85
+ // });
86
+ // const sortedBlocks = Object.keys(logsByBlockNumber)
87
+ // .map(Number)
88
+ // .sort((a, b) => Number(a) - Number(b));
89
+ // for (let blockNumber of sortedBlocks) {
90
+ // console.log('blockNumber', blockNumber);
91
+ // if (!blockHeaders[blockNumber]) {
92
+ // blockHeaders[blockNumber] = await dexHelper.web3Provider.eth.getBlock(
93
+ // blockNumber,
94
+ // );
95
+ // }
96
+ // await pool?.update(logsByBlockNumber[blockNumber], {
97
+ // [blockNumber]: blockHeaders[blockNumber],
98
+ // });
99
+ // }
100
+ // const state = pool?.getState(startBlockNumber);
101
+ // const expectedState = await fetchPoolState(pool, endBlockNumber);
102
+ // console.log('state', state, 'expectedState', expectedState);
103
+ // return _.isEqual(state, expectedState);
104
+ // } catch (error) {
105
+ // console.log('error', error);
106
+ // return false;
107
+ // }
108
+ // }
109
+ // //
110
+ // async function makeStaticCall(
111
+ // contractAddress: string,
112
+ // calldata: string,
113
+ // blockNumber: number,
114
+ // ): Promise<string> {
115
+ // const dexHelper = new DummyDexHelper(Network.GNOSIS);
116
+ // const result = await dexHelper.web3Provider.eth.call(
117
+ // {
118
+ // to: contractAddress,
119
+ // data: calldata,
120
+ // },
121
+ // blockNumber,
122
+ // );
123
+ // const resultNumber = ethers.BigNumber.from(result).toBigInt();
124
+ // console.log('result', blockNumber, resultNumber);
125
+ // return result;
126
+ // }
127
+ // // makeStaticCall(
128
+ // // '0xaf204776c7245bf4147c2612bf6e5972ee483701',
129
+ // // '0x01e1d114',
130
+ // // 38964253,
131
+ // // );
132
+ // const brokenBlockNumber = 38964315;
133
+ // checkPoolStateForBlockRange(
134
+ // brokenBlockNumber - 100,
135
+ // brokenBlockNumber + 100,
136
+ // // 38964251,
137
+ // // 38964254,
138
+ // ).then(result => {
139
+ // console.log('isEqual', result);
140
+ // });
141
+ // // makeStaticCall(
142
+ // // '0xDDAfbb505ad214D7b80b1f830fcCc89B60fb7A83',
143
+ // // '0x70a082310000000000000000000000000b338c79644d73d188086c38ff5cc858a76b1162',
144
+ // // 39018709,
145
+ // // );
146
+ //# sourceMappingURL=validate-state.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validate-state.js","sourceRoot":"","sources":["../../../../src/dex/erc4626/scripts/validate-state.ts"],"names":[],"mappings":";AAAA,+BAA+B;AAC/B,mBAAmB;AAEnB,gDAAgD;AAChD,wDAAwD;AACxD,gFAAgF;AAChF,uDAAuD;AACvD,6CAA6C;AAC7C,kDAAkD;AAClD,qDAAqD;AACrD,mDAAmD;AACnD,0CAA0C;AAC1C,0BAA0B;AAC1B,+CAA+C;AAC/C,mCAAmC;AAEnC,wDAAwD;AAExD,iCAAiC;AACjC,iCAAiC;AACjC,yBAAyB;AACzB,iCAAiC;AACjC,2DAA2D;AAC3D,0CAA0C;AAC1C,qEAAqE;AACrE,mDAAmD;AACnD,yBAAyB;AACzB,IAAI;AAEJ,8CAA8C;AAC9C,8BAA8B;AAC9B,4BAA4B;AAC5B,wBAAwB;AACxB,iBAAiB;AACjB,0BAA0B;AAC1B,wBAAwB;AACxB,wBAAwB;AACxB,sBAAsB;AACtB,OAAO;AACP,UAAU;AACV,sCAAsC;AACtC,6BAA6B;AAC7B,qDAAqD;AAErD,iEAAiE;AACjE,gEAAgE;AAChE,sEAAsE;AAEtE,kDAAkD;AAElD,yCAAyC;AACzC,gBAAgB;AAChB,iBAAiB;AACjB,sBAAsB;AACtB,mBAAmB;AACnB,sBAAsB;AACtB,qBAAqB;AACrB,oBAAoB;AACpB,gBAAgB;AAChB,uBAAuB;AACvB,wBAAwB;AACxB,wBAAwB;AACxB,SAAS;AAET,sEAAsE;AACtE,2CAA2C;AAE3C,6DAA6D;AAE7D,2DAA2D;AAC3D,qCAAqC;AACrC,iCAAiC;AACjC,+BAA+B;AAC/B,UAAU;AAEV,2DAA2D;AAC3D,qCAAqC;AACrC,iCAAiC;AACjC,8BAA8B;AAC9B,UAAU;AAEV,2DAA2D;AAE3D,0CAA0C;AAE1C,oCAAoC;AACpC,2DAA2D;AAC3D,wCAAwC;AACxC,mDAAmD;AACnD,mDAAmD;AACnD,UAAU;AACV,sDAAsD;AACtD,QAAQ;AAER,8DAA8D;AAC9D,oEAAoE;AACpE,8BAA8B;AAC9B,mDAAmD;AACnD,UAAU;AAEV,0DAA0D;AAC1D,qBAAqB;AACrB,gDAAgD;AAEhD,8CAA8C;AAC9C,iDAAiD;AACjD,0CAA0C;AAC1C,iFAAiF;AACjF,yBAAyB;AACzB,aAAa;AACb,UAAU;AAEV,6DAA6D;AAC7D,oDAAoD;AACpD,YAAY;AACZ,QAAQ;AAER,sDAAsD;AACtD,wEAAwE;AACxE,mEAAmE;AACnE,8CAA8C;AAC9C,sBAAsB;AACtB,mCAAmC;AACnC,oBAAoB;AACpB,MAAM;AACN,IAAI;AAEJ,KAAK;AAEL,iCAAiC;AACjC,6BAA6B;AAC7B,sBAAsB;AACtB,yBAAyB;AACzB,uBAAuB;AACvB,0DAA0D;AAC1D,0DAA0D;AAC1D,QAAQ;AACR,6BAA6B;AAC7B,wBAAwB;AACxB,SAAS;AACT,mBAAmB;AACnB,OAAO;AACP,mEAAmE;AACnE,sDAAsD;AACtD,mBAAmB;AACnB,IAAI;AAEJ,qBAAqB;AACrB,qDAAqD;AACrD,qBAAqB;AACrB,iBAAiB;AACjB,QAAQ;AAER,sCAAsC;AACtC,+BAA+B;AAC/B,6BAA6B;AAC7B,6BAA6B;AAC7B,mBAAmB;AACnB,mBAAmB;AACnB,qBAAqB;AACrB,oCAAoC;AACpC,MAAM;AAEN,qBAAqB;AACrB,qDAAqD;AACrD,qFAAqF;AACrF,iBAAiB;AACjB,QAAQ"}
@@ -0,0 +1,18 @@
1
+ import { Address } from '../../types';
2
+ export type ERC4626PoolState = {
3
+ totalShares: bigint;
4
+ totalAssets: bigint;
5
+ };
6
+ export type ERC4626Data = {
7
+ exchange: string;
8
+ };
9
+ export declare enum ERC4626Functions {
10
+ deposit = "deposit",
11
+ redeem = "redeem",
12
+ withdraw = "withdraw",
13
+ mint = "mint"
14
+ }
15
+ export type ERC4626Params = {
16
+ vault: Address;
17
+ asset: Address;
18
+ };
@@ -0,0 +1,11 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ERC4626Functions = void 0;
4
+ var ERC4626Functions;
5
+ (function (ERC4626Functions) {
6
+ ERC4626Functions["deposit"] = "deposit";
7
+ ERC4626Functions["redeem"] = "redeem";
8
+ ERC4626Functions["withdraw"] = "withdraw";
9
+ ERC4626Functions["mint"] = "mint";
10
+ })(ERC4626Functions || (exports.ERC4626Functions = ERC4626Functions = {}));
11
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/dex/erc4626/types.ts"],"names":[],"mappings":";;;AAWA,IAAY,gBAKX;AALD,WAAY,gBAAgB;IAC1B,uCAAmB,CAAA;IACnB,qCAAiB,CAAA;IACjB,yCAAqB,CAAA;IACrB,iCAAa,CAAA;AACf,CAAC,EALW,gBAAgB,gCAAhB,gBAAgB,QAK3B"}
@@ -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>;