@across-protocol/sdk 4.3.111-alpha.3 → 4.3.111

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 (566) hide show
  1. package/dist/cjs/addressAggregator/adapters/abstract.js +64 -50
  2. package/dist/cjs/addressAggregator/adapters/abstract.js.map +1 -1
  3. package/dist/cjs/addressAggregator/adapters/bybit.js +29 -16
  4. package/dist/cjs/addressAggregator/adapters/bybit.js.map +1 -1
  5. package/dist/cjs/addressAggregator/adapters/env.js +15 -11
  6. package/dist/cjs/addressAggregator/adapters/env.js.map +1 -1
  7. package/dist/cjs/addressAggregator/adapters/file.js +45 -32
  8. package/dist/cjs/addressAggregator/adapters/file.js.map +1 -1
  9. package/dist/cjs/addressAggregator/adapters/index.js +1 -1
  10. package/dist/cjs/addressAggregator/adapters/risklabs.js +36 -22
  11. package/dist/cjs/addressAggregator/adapters/risklabs.js.map +1 -1
  12. package/dist/cjs/addressAggregator/index.js +87 -57
  13. package/dist/cjs/addressAggregator/index.js.map +1 -1
  14. package/dist/cjs/apiClient/abstractClient.js +8 -9
  15. package/dist/cjs/apiClient/abstractClient.js.map +1 -1
  16. package/dist/cjs/apiClient/index.js +1 -1
  17. package/dist/cjs/apiClient/mockedClient.js +29 -23
  18. package/dist/cjs/apiClient/mockedClient.js.map +1 -1
  19. package/dist/cjs/apiClient/productionClient.js +103 -65
  20. package/dist/cjs/apiClient/productionClient.js.map +1 -1
  21. package/dist/cjs/arch/evm/BlockUtils.js +208 -122
  22. package/dist/cjs/arch/evm/BlockUtils.js.map +1 -1
  23. package/dist/cjs/arch/evm/MessageUtils.js +1 -1
  24. package/dist/cjs/arch/evm/MessageUtils.js.map +1 -1
  25. package/dist/cjs/arch/evm/SpokeUtils.js +288 -134
  26. package/dist/cjs/arch/evm/SpokeUtils.js.map +1 -1
  27. package/dist/cjs/arch/evm/index.js +1 -1
  28. package/dist/cjs/arch/evm/utils/index.js +1 -1
  29. package/dist/cjs/arch/evm/utils/wait.js +49 -38
  30. package/dist/cjs/arch/evm/utils/wait.js.map +1 -1
  31. package/dist/cjs/arch/index.js +1 -1
  32. package/dist/cjs/arch/svm/BlockUtils.js +158 -102
  33. package/dist/cjs/arch/svm/BlockUtils.js.map +1 -1
  34. package/dist/cjs/arch/svm/MessageUtils.js +2 -2
  35. package/dist/cjs/arch/svm/MessageUtils.js.map +1 -1
  36. package/dist/cjs/arch/svm/SpokeUtils.js +1147 -708
  37. package/dist/cjs/arch/svm/SpokeUtils.js.map +1 -1
  38. package/dist/cjs/arch/svm/encoders.js +1 -1
  39. package/dist/cjs/arch/svm/encoders.js.map +1 -1
  40. package/dist/cjs/arch/svm/eventsClient.js +236 -174
  41. package/dist/cjs/arch/svm/eventsClient.js.map +1 -1
  42. package/dist/cjs/arch/svm/index.js +1 -1
  43. package/dist/cjs/arch/svm/provider.js +3 -3
  44. package/dist/cjs/arch/svm/provider.js.map +1 -1
  45. package/dist/cjs/arch/svm/utils.js +355 -166
  46. package/dist/cjs/arch/svm/utils.js.map +1 -1
  47. package/dist/cjs/caching/Arweave/ArweaveClient.js +246 -168
  48. package/dist/cjs/caching/Arweave/ArweaveClient.js.map +1 -1
  49. package/dist/cjs/caching/Arweave/index.js +1 -1
  50. package/dist/cjs/caching/IPFS/PinataIPFSClient.js +49 -40
  51. package/dist/cjs/caching/IPFS/PinataIPFSClient.js.map +1 -1
  52. package/dist/cjs/caching/IPFS/index.js +1 -1
  53. package/dist/cjs/caching/Memory/MemoryCacheClient.js +18 -13
  54. package/dist/cjs/caching/Memory/MemoryCacheClient.js.map +1 -1
  55. package/dist/cjs/caching/Memory/index.js +1 -1
  56. package/dist/cjs/caching/index.js +1 -1
  57. package/dist/cjs/clients/AcrossConfigStoreClient/AcrossConfigStoreClient.js +381 -302
  58. package/dist/cjs/clients/AcrossConfigStoreClient/AcrossConfigStoreClient.js.map +1 -1
  59. package/dist/cjs/clients/AcrossConfigStoreClient/index.js +1 -1
  60. package/dist/cjs/clients/BaseAbstractClient.js +83 -58
  61. package/dist/cjs/clients/BaseAbstractClient.js.map +1 -1
  62. package/dist/cjs/clients/BundleDataClient/BundleDataClient.js +900 -709
  63. package/dist/cjs/clients/BundleDataClient/BundleDataClient.js.map +1 -1
  64. package/dist/cjs/clients/BundleDataClient/index.js +1 -1
  65. package/dist/cjs/clients/BundleDataClient/utils/DataworkerUtils.js +128 -95
  66. package/dist/cjs/clients/BundleDataClient/utils/DataworkerUtils.js.map +1 -1
  67. package/dist/cjs/clients/BundleDataClient/utils/FillUtils.js +53 -48
  68. package/dist/cjs/clients/BundleDataClient/utils/FillUtils.js.map +1 -1
  69. package/dist/cjs/clients/BundleDataClient/utils/MerkleTreeUtils.js +8 -10
  70. package/dist/cjs/clients/BundleDataClient/utils/MerkleTreeUtils.js.map +1 -1
  71. package/dist/cjs/clients/BundleDataClient/utils/PoolRebalanceUtils.js +90 -67
  72. package/dist/cjs/clients/BundleDataClient/utils/PoolRebalanceUtils.js.map +1 -1
  73. package/dist/cjs/clients/BundleDataClient/utils/SuperstructUtils.js +24 -46
  74. package/dist/cjs/clients/BundleDataClient/utils/SuperstructUtils.js.map +1 -1
  75. package/dist/cjs/clients/BundleDataClient/utils/index.js +1 -1
  76. package/dist/cjs/clients/HubPoolClient.js +708 -526
  77. package/dist/cjs/clients/HubPoolClient.js.map +1 -1
  78. package/dist/cjs/clients/SpokePoolClient/EVMSpokePoolClient.js +179 -133
  79. package/dist/cjs/clients/SpokePoolClient/EVMSpokePoolClient.js.map +1 -1
  80. package/dist/cjs/clients/SpokePoolClient/SVMSpokePoolClient.js +183 -124
  81. package/dist/cjs/clients/SpokePoolClient/SVMSpokePoolClient.js.map +1 -1
  82. package/dist/cjs/clients/SpokePoolClient/SpokePoolClient.js +389 -357
  83. package/dist/cjs/clients/SpokePoolClient/SpokePoolClient.js.map +1 -1
  84. package/dist/cjs/clients/SpokePoolClient/SpokePoolClientManager.js +8 -9
  85. package/dist/cjs/clients/SpokePoolClient/SpokePoolClientManager.js.map +1 -1
  86. package/dist/cjs/clients/SpokePoolClient/index.js +3 -3
  87. package/dist/cjs/clients/SpokePoolClient/index.js.map +1 -1
  88. package/dist/cjs/clients/index.js +1 -1
  89. package/dist/cjs/clients/mocks/MockConfigStoreClient.js +67 -58
  90. package/dist/cjs/clients/mocks/MockConfigStoreClient.js.map +1 -1
  91. package/dist/cjs/clients/mocks/MockEvents.js +52 -47
  92. package/dist/cjs/clients/mocks/MockEvents.js.map +1 -1
  93. package/dist/cjs/clients/mocks/MockHubPoolClient.js +185 -142
  94. package/dist/cjs/clients/mocks/MockHubPoolClient.js.map +1 -1
  95. package/dist/cjs/clients/mocks/MockSpokePoolClient.js +192 -208
  96. package/dist/cjs/clients/mocks/MockSpokePoolClient.js.map +1 -1
  97. package/dist/cjs/clients/mocks/MockSvmCpiEventsClient.js +143 -140
  98. package/dist/cjs/clients/mocks/MockSvmCpiEventsClient.js.map +1 -1
  99. package/dist/cjs/clients/mocks/MockSvmSpokePoolClient.js +73 -57
  100. package/dist/cjs/clients/mocks/MockSvmSpokePoolClient.js.map +1 -1
  101. package/dist/cjs/clients/mocks/index.js +1 -1
  102. package/dist/cjs/coingecko/Coingecko.js +437 -285
  103. package/dist/cjs/coingecko/Coingecko.js.map +1 -1
  104. package/dist/cjs/coingecko/index.js +1 -1
  105. package/dist/cjs/constants.js +30 -23
  106. package/dist/cjs/constants.js.map +1 -1
  107. package/dist/cjs/contracts/acrossConfigStore.js +48 -27
  108. package/dist/cjs/contracts/acrossConfigStore.js.map +1 -1
  109. package/dist/cjs/contracts/hubPool.js +20 -36
  110. package/dist/cjs/contracts/hubPool.js.map +1 -1
  111. package/dist/cjs/contracts/index.js +1 -1
  112. package/dist/cjs/contracts/utils.js +8 -6
  113. package/dist/cjs/contracts/utils.js.map +1 -1
  114. package/dist/cjs/gasPriceOracle/adapters/arbitrum.js +16 -7
  115. package/dist/cjs/gasPriceOracle/adapters/arbitrum.js.map +1 -1
  116. package/dist/cjs/gasPriceOracle/adapters/ethereum.js +45 -26
  117. package/dist/cjs/gasPriceOracle/adapters/ethereum.js.map +1 -1
  118. package/dist/cjs/gasPriceOracle/adapters/linea-viem.js +28 -16
  119. package/dist/cjs/gasPriceOracle/adapters/linea-viem.js.map +1 -1
  120. package/dist/cjs/gasPriceOracle/adapters/polygon.js +112 -73
  121. package/dist/cjs/gasPriceOracle/adapters/polygon.js.map +1 -1
  122. package/dist/cjs/gasPriceOracle/adapters/solana.js +33 -20
  123. package/dist/cjs/gasPriceOracle/adapters/solana.js.map +1 -1
  124. package/dist/cjs/gasPriceOracle/oracle.js +104 -77
  125. package/dist/cjs/gasPriceOracle/oracle.js.map +1 -1
  126. package/dist/cjs/gasPriceOracle/types.js +3 -3
  127. package/dist/cjs/gasPriceOracle/types.js.map +1 -1
  128. package/dist/cjs/gasPriceOracle/util.js +8 -8
  129. package/dist/cjs/gasPriceOracle/util.js.map +1 -1
  130. package/dist/cjs/index.js +1 -1
  131. package/dist/cjs/interfaces/index.js +1 -1
  132. package/dist/cjs/lpFeeCalculator/index.js +1 -1
  133. package/dist/cjs/lpFeeCalculator/lpFeeCalculator.js +35 -33
  134. package/dist/cjs/lpFeeCalculator/lpFeeCalculator.js.map +1 -1
  135. package/dist/cjs/lpFeeCalculator/rateModel.js +9 -7
  136. package/dist/cjs/lpFeeCalculator/rateModel.js.map +1 -1
  137. package/dist/cjs/merkleDistributor/MerkleDistributor.js +18 -20
  138. package/dist/cjs/merkleDistributor/MerkleDistributor.js.map +1 -1
  139. package/dist/cjs/merkleDistributor/index.js +1 -1
  140. package/dist/cjs/merkleDistributor/model/index.js +1 -1
  141. package/dist/cjs/pool/TransactionManager.js +100 -45
  142. package/dist/cjs/pool/TransactionManager.js.map +1 -1
  143. package/dist/cjs/pool/index.js +1 -1
  144. package/dist/cjs/pool/poolClient.js +731 -464
  145. package/dist/cjs/pool/poolClient.js.map +1 -1
  146. package/dist/cjs/pool/uma/across/index.js +1 -1
  147. package/dist/cjs/pool/uma/across/transactionManager.js +100 -45
  148. package/dist/cjs/pool/uma/across/transactionManager.js.map +1 -1
  149. package/dist/cjs/pool/uma/clients/erc20/client.js +16 -18
  150. package/dist/cjs/pool/uma/clients/erc20/client.js.map +1 -1
  151. package/dist/cjs/pool/uma/clients/erc20/index.js +1 -1
  152. package/dist/cjs/pool/uma/clients/index.js +1 -1
  153. package/dist/cjs/pool/uma/index.js +1 -1
  154. package/dist/cjs/pool/uma/oracle/index.js +1 -1
  155. package/dist/cjs/pool/uma/oracle/utils.js +5 -4
  156. package/dist/cjs/pool/uma/oracle/utils.js.map +1 -1
  157. package/dist/cjs/pool/uma/utils.js +30 -11
  158. package/dist/cjs/pool/uma/utils.js.map +1 -1
  159. package/dist/cjs/priceClient/adapters/acrossApi.js +39 -22
  160. package/dist/cjs/priceClient/adapters/acrossApi.js.map +1 -1
  161. package/dist/cjs/priceClient/adapters/baseAdapter.js +73 -49
  162. package/dist/cjs/priceClient/adapters/baseAdapter.js.map +1 -1
  163. package/dist/cjs/priceClient/adapters/coingecko.js +61 -34
  164. package/dist/cjs/priceClient/adapters/coingecko.js.map +1 -1
  165. package/dist/cjs/priceClient/adapters/default.js +31 -16
  166. package/dist/cjs/priceClient/adapters/default.js.map +1 -1
  167. package/dist/cjs/priceClient/adapters/defiLlama.js +74 -40
  168. package/dist/cjs/priceClient/adapters/defiLlama.js.map +1 -1
  169. package/dist/cjs/priceClient/adapters/index.js +1 -1
  170. package/dist/cjs/priceClient/index.js +1 -1
  171. package/dist/cjs/priceClient/priceClient.js +159 -110
  172. package/dist/cjs/priceClient/priceClient.js.map +1 -1
  173. package/dist/cjs/providers/alchemy.js +19 -17
  174. package/dist/cjs/providers/alchemy.js.map +1 -1
  175. package/dist/cjs/providers/cachedProvider.js +129 -88
  176. package/dist/cjs/providers/cachedProvider.js.map +1 -1
  177. package/dist/cjs/providers/drpc.js +11 -9
  178. package/dist/cjs/providers/drpc.js.map +1 -1
  179. package/dist/cjs/providers/index.js +1 -1
  180. package/dist/cjs/providers/infura.js +12 -10
  181. package/dist/cjs/providers/infura.js.map +1 -1
  182. package/dist/cjs/providers/mocks/MockCachedSolanaRpcFactory.js +15 -7
  183. package/dist/cjs/providers/mocks/MockCachedSolanaRpcFactory.js.map +1 -1
  184. package/dist/cjs/providers/mocks/MockRateLimitedSolanaRpcFactory.js +14 -6
  185. package/dist/cjs/providers/mocks/MockRateLimitedSolanaRpcFactory.js.map +1 -1
  186. package/dist/cjs/providers/mocks/MockRetrySolanaRpcFactory.js +15 -7
  187. package/dist/cjs/providers/mocks/MockRetrySolanaRpcFactory.js.map +1 -1
  188. package/dist/cjs/providers/mocks/MockSolanaRpcFactory.js +66 -42
  189. package/dist/cjs/providers/mocks/MockSolanaRpcFactory.js.map +1 -1
  190. package/dist/cjs/providers/mocks/index.js +1 -1
  191. package/dist/cjs/providers/mocks/mockEthersProvider.js +31 -29
  192. package/dist/cjs/providers/mocks/mockEthersProvider.js.map +1 -1
  193. package/dist/cjs/providers/quicknode.js +21 -19
  194. package/dist/cjs/providers/quicknode.js.map +1 -1
  195. package/dist/cjs/providers/rateLimitedProvider.js +79 -64
  196. package/dist/cjs/providers/rateLimitedProvider.js.map +1 -1
  197. package/dist/cjs/providers/retryProvider.js +246 -163
  198. package/dist/cjs/providers/retryProvider.js.map +1 -1
  199. package/dist/cjs/providers/solana/baseRpcFactories.js +18 -14
  200. package/dist/cjs/providers/solana/baseRpcFactories.js.map +1 -1
  201. package/dist/cjs/providers/solana/cachedRpcFactory.js +112 -70
  202. package/dist/cjs/providers/solana/cachedRpcFactory.js.map +1 -1
  203. package/dist/cjs/providers/solana/defaultRpcFactory.js +15 -8
  204. package/dist/cjs/providers/solana/defaultRpcFactory.js.map +1 -1
  205. package/dist/cjs/providers/solana/index.js +1 -1
  206. package/dist/cjs/providers/solana/quorumFallbackRpcFactory.js +191 -135
  207. package/dist/cjs/providers/solana/quorumFallbackRpcFactory.js.map +1 -1
  208. package/dist/cjs/providers/solana/rateLimitedRpcFactory.js +90 -67
  209. package/dist/cjs/providers/solana/rateLimitedRpcFactory.js.map +1 -1
  210. package/dist/cjs/providers/solana/retryRpcFactory.js +79 -52
  211. package/dist/cjs/providers/solana/retryRpcFactory.js.map +1 -1
  212. package/dist/cjs/providers/solana/utils.js +2 -2
  213. package/dist/cjs/providers/solana/utils.js.map +1 -1
  214. package/dist/cjs/providers/speedProvider.js +53 -31
  215. package/dist/cjs/providers/speedProvider.js.map +1 -1
  216. package/dist/cjs/providers/types.js +1 -1
  217. package/dist/cjs/providers/types.js.map +1 -1
  218. package/dist/cjs/providers/utils.js +28 -26
  219. package/dist/cjs/providers/utils.js.map +1 -1
  220. package/dist/cjs/relayFeeCalculator/chain-queries/baseQuery.js +162 -108
  221. package/dist/cjs/relayFeeCalculator/chain-queries/baseQuery.js.map +1 -1
  222. package/dist/cjs/relayFeeCalculator/chain-queries/customGasToken.js +26 -14
  223. package/dist/cjs/relayFeeCalculator/chain-queries/customGasToken.js.map +1 -1
  224. package/dist/cjs/relayFeeCalculator/chain-queries/factory.js +29 -20
  225. package/dist/cjs/relayFeeCalculator/chain-queries/factory.js.map +1 -1
  226. package/dist/cjs/relayFeeCalculator/chain-queries/index.js +1 -1
  227. package/dist/cjs/relayFeeCalculator/chain-queries/svmQuery.js +137 -88
  228. package/dist/cjs/relayFeeCalculator/chain-queries/svmQuery.js.map +1 -1
  229. package/dist/cjs/relayFeeCalculator/index.js +1 -1
  230. package/dist/cjs/relayFeeCalculator/relayFeeCalculator.js +297 -199
  231. package/dist/cjs/relayFeeCalculator/relayFeeCalculator.js.map +1 -1
  232. package/dist/cjs/typeguards/error.js +7 -5
  233. package/dist/cjs/typeguards/error.js.map +1 -1
  234. package/dist/cjs/typeguards/index.js +1 -1
  235. package/dist/cjs/utils/AddressUtils.js +144 -117
  236. package/dist/cjs/utils/AddressUtils.js.map +1 -1
  237. package/dist/cjs/utils/ArrayUtils.js +78 -21
  238. package/dist/cjs/utils/ArrayUtils.js.map +1 -1
  239. package/dist/cjs/utils/BigNumberUtils.js +10 -9
  240. package/dist/cjs/utils/BigNumberUtils.js.map +1 -1
  241. package/dist/cjs/utils/BlockExplorerUtils.js +30 -26
  242. package/dist/cjs/utils/BlockExplorerUtils.js.map +1 -1
  243. package/dist/cjs/utils/BlockFinder.js +5 -2
  244. package/dist/cjs/utils/BlockFinder.js.map +1 -1
  245. package/dist/cjs/utils/BlockUtils.js +41 -24
  246. package/dist/cjs/utils/BlockUtils.js.map +1 -1
  247. package/dist/cjs/utils/BundleUtils.js +24 -21
  248. package/dist/cjs/utils/BundleUtils.js.map +1 -1
  249. package/dist/cjs/utils/CCTPUtils.js +126 -62
  250. package/dist/cjs/utils/CCTPUtils.js.map +1 -1
  251. package/dist/cjs/utils/CachingUtils.js +42 -20
  252. package/dist/cjs/utils/CachingUtils.js.map +1 -1
  253. package/dist/cjs/utils/ContractUtils.js +5 -5
  254. package/dist/cjs/utils/ContractUtils.js.map +1 -1
  255. package/dist/cjs/utils/DepositUtils.js +99 -122
  256. package/dist/cjs/utils/DepositUtils.js.map +1 -1
  257. package/dist/cjs/utils/EventUtils.js +70 -49
  258. package/dist/cjs/utils/EventUtils.js.map +1 -1
  259. package/dist/cjs/utils/FormattingUtils.js +32 -26
  260. package/dist/cjs/utils/FormattingUtils.js.map +1 -1
  261. package/dist/cjs/utils/HyperLiquidUtils.js +23 -10
  262. package/dist/cjs/utils/HyperLiquidUtils.js.map +1 -1
  263. package/dist/cjs/utils/IPFSUtils.js +34 -16
  264. package/dist/cjs/utils/IPFSUtils.js.map +1 -1
  265. package/dist/cjs/utils/JSONUtils.js +6 -6
  266. package/dist/cjs/utils/JSONUtils.js.map +1 -1
  267. package/dist/cjs/utils/LogUtils.js +12 -10
  268. package/dist/cjs/utils/LogUtils.js.map +1 -1
  269. package/dist/cjs/utils/Multicall.js +115 -56
  270. package/dist/cjs/utils/Multicall.js.map +1 -1
  271. package/dist/cjs/utils/NetworkUtils.js +28 -12
  272. package/dist/cjs/utils/NetworkUtils.js.map +1 -1
  273. package/dist/cjs/utils/NumberUtils.js +3 -1
  274. package/dist/cjs/utils/NumberUtils.js.map +1 -1
  275. package/dist/cjs/utils/ObjectUtils.js +41 -27
  276. package/dist/cjs/utils/ObjectUtils.js.map +1 -1
  277. package/dist/cjs/utils/Profiler.js +83 -80
  278. package/dist/cjs/utils/Profiler.js.map +1 -1
  279. package/dist/cjs/utils/ReviverUtils.js +9 -5
  280. package/dist/cjs/utils/ReviverUtils.js.map +1 -1
  281. package/dist/cjs/utils/SpokeUtils.js +84 -84
  282. package/dist/cjs/utils/SpokeUtils.js.map +1 -1
  283. package/dist/cjs/utils/TokenUtils.js +64 -41
  284. package/dist/cjs/utils/TokenUtils.js.map +1 -1
  285. package/dist/cjs/utils/TypeGuards.js +1 -1
  286. package/dist/cjs/utils/TypeGuards.js.map +1 -1
  287. package/dist/cjs/utils/ValidatorUtils.js +7 -7
  288. package/dist/cjs/utils/ValidatorUtils.js.map +1 -1
  289. package/dist/cjs/utils/abi/contracts/index.js +1 -1
  290. package/dist/cjs/utils/abi/index.js +22 -12
  291. package/dist/cjs/utils/abi/index.js.map +1 -1
  292. package/dist/cjs/utils/abi/typechain/factories/Multicall3__factory.js +12 -9
  293. package/dist/cjs/utils/abi/typechain/factories/Multicall3__factory.js.map +1 -1
  294. package/dist/cjs/utils/abi/typechain/index.js +1 -1
  295. package/dist/cjs/utils/common.js +53 -40
  296. package/dist/cjs/utils/common.js.map +1 -1
  297. package/dist/cjs/utils/index.js +1 -1
  298. package/dist/esm/addressAggregator/adapters/abstract.js +64 -48
  299. package/dist/esm/addressAggregator/adapters/abstract.js.map +1 -1
  300. package/dist/esm/addressAggregator/adapters/bybit.js +29 -15
  301. package/dist/esm/addressAggregator/adapters/bybit.js.map +1 -1
  302. package/dist/esm/addressAggregator/adapters/env.js +14 -9
  303. package/dist/esm/addressAggregator/adapters/env.js.map +1 -1
  304. package/dist/esm/addressAggregator/adapters/file.js +43 -29
  305. package/dist/esm/addressAggregator/adapters/file.js.map +1 -1
  306. package/dist/esm/addressAggregator/adapters/risklabs.js +35 -20
  307. package/dist/esm/addressAggregator/adapters/risklabs.js.map +1 -1
  308. package/dist/esm/addressAggregator/index.js +83 -52
  309. package/dist/esm/addressAggregator/index.js.map +1 -1
  310. package/dist/esm/addressAggregator/types.js +1 -1
  311. package/dist/esm/addressAggregator/types.js.map +1 -1
  312. package/dist/esm/apiClient/abstractClient.js +9 -15
  313. package/dist/esm/apiClient/abstractClient.js.map +1 -1
  314. package/dist/esm/apiClient/mockedClient.js +26 -21
  315. package/dist/esm/apiClient/mockedClient.js.map +1 -1
  316. package/dist/esm/apiClient/productionClient.js +101 -61
  317. package/dist/esm/apiClient/productionClient.js.map +1 -1
  318. package/dist/esm/arch/evm/BlockUtils.js +217 -139
  319. package/dist/esm/arch/evm/BlockUtils.js.map +1 -1
  320. package/dist/esm/arch/evm/SpokeUtils.js +289 -146
  321. package/dist/esm/arch/evm/SpokeUtils.js.map +1 -1
  322. package/dist/esm/arch/evm/utils/wait.js +46 -34
  323. package/dist/esm/arch/evm/utils/wait.js.map +1 -1
  324. package/dist/esm/arch/svm/BlockUtils.js +166 -118
  325. package/dist/esm/arch/svm/BlockUtils.js.map +1 -1
  326. package/dist/esm/arch/svm/SpokeUtils.js +1150 -738
  327. package/dist/esm/arch/svm/SpokeUtils.js.map +1 -1
  328. package/dist/esm/arch/svm/constants.js +1 -1
  329. package/dist/esm/arch/svm/constants.js.map +1 -1
  330. package/dist/esm/arch/svm/eventsClient.js +232 -172
  331. package/dist/esm/arch/svm/eventsClient.js.map +1 -1
  332. package/dist/esm/arch/svm/provider.js +1 -1
  333. package/dist/esm/arch/svm/provider.js.map +1 -1
  334. package/dist/esm/arch/svm/utils.js +345 -155
  335. package/dist/esm/arch/svm/utils.js.map +1 -1
  336. package/dist/esm/caching/Arweave/ArweaveClient.js +256 -182
  337. package/dist/esm/caching/Arweave/ArweaveClient.js.map +1 -1
  338. package/dist/esm/caching/IPFS/PinataIPFSClient.js +48 -47
  339. package/dist/esm/caching/IPFS/PinataIPFSClient.js.map +1 -1
  340. package/dist/esm/caching/Memory/MemoryCacheClient.js +19 -13
  341. package/dist/esm/caching/Memory/MemoryCacheClient.js.map +1 -1
  342. package/dist/esm/clients/AcrossConfigStoreClient/AcrossConfigStoreClient.js +408 -333
  343. package/dist/esm/clients/AcrossConfigStoreClient/AcrossConfigStoreClient.js.map +1 -1
  344. package/dist/esm/clients/BaseAbstractClient.js +92 -66
  345. package/dist/esm/clients/BaseAbstractClient.js.map +1 -1
  346. package/dist/esm/clients/BundleDataClient/BundleDataClient.js +1054 -927
  347. package/dist/esm/clients/BundleDataClient/BundleDataClient.js.map +1 -1
  348. package/dist/esm/clients/BundleDataClient/utils/DataworkerUtils.js +131 -102
  349. package/dist/esm/clients/BundleDataClient/utils/DataworkerUtils.js.map +1 -1
  350. package/dist/esm/clients/BundleDataClient/utils/FillUtils.js +59 -57
  351. package/dist/esm/clients/BundleDataClient/utils/FillUtils.js.map +1 -1
  352. package/dist/esm/clients/BundleDataClient/utils/MerkleTreeUtils.js +5 -7
  353. package/dist/esm/clients/BundleDataClient/utils/MerkleTreeUtils.js.map +1 -1
  354. package/dist/esm/clients/BundleDataClient/utils/PoolRebalanceUtils.js +94 -75
  355. package/dist/esm/clients/BundleDataClient/utils/PoolRebalanceUtils.js.map +1 -1
  356. package/dist/esm/clients/BundleDataClient/utils/SuperstructUtils.js +23 -45
  357. package/dist/esm/clients/BundleDataClient/utils/SuperstructUtils.js.map +1 -1
  358. package/dist/esm/clients/HubPoolClient.js +740 -581
  359. package/dist/esm/clients/HubPoolClient.js.map +1 -1
  360. package/dist/esm/clients/SpokePoolClient/EVMSpokePoolClient.js +178 -133
  361. package/dist/esm/clients/SpokePoolClient/EVMSpokePoolClient.js.map +1 -1
  362. package/dist/esm/clients/SpokePoolClient/SVMSpokePoolClient.js +183 -126
  363. package/dist/esm/clients/SpokePoolClient/SVMSpokePoolClient.js.map +1 -1
  364. package/dist/esm/clients/SpokePoolClient/SpokePoolClient.js +399 -372
  365. package/dist/esm/clients/SpokePoolClient/SpokePoolClient.js.map +1 -1
  366. package/dist/esm/clients/SpokePoolClient/SpokePoolClientManager.js +9 -9
  367. package/dist/esm/clients/SpokePoolClient/SpokePoolClientManager.js.map +1 -1
  368. package/dist/esm/clients/SpokePoolClient/index.js +2 -2
  369. package/dist/esm/clients/SpokePoolClient/index.js.map +1 -1
  370. package/dist/esm/clients/SpokePoolClient/types.js +2 -2
  371. package/dist/esm/clients/SpokePoolClient/types.js.map +1 -1
  372. package/dist/esm/clients/mocks/MockConfigStoreClient.js +64 -53
  373. package/dist/esm/clients/mocks/MockConfigStoreClient.js.map +1 -1
  374. package/dist/esm/clients/mocks/MockEvents.js +49 -42
  375. package/dist/esm/clients/mocks/MockEvents.js.map +1 -1
  376. package/dist/esm/clients/mocks/MockHubPoolClient.js +182 -138
  377. package/dist/esm/clients/mocks/MockHubPoolClient.js.map +1 -1
  378. package/dist/esm/clients/mocks/MockSpokePoolClient.js +188 -202
  379. package/dist/esm/clients/mocks/MockSpokePoolClient.js.map +1 -1
  380. package/dist/esm/clients/mocks/MockSvmCpiEventsClient.js +132 -127
  381. package/dist/esm/clients/mocks/MockSvmCpiEventsClient.js.map +1 -1
  382. package/dist/esm/clients/mocks/MockSvmSpokePoolClient.js +69 -53
  383. package/dist/esm/clients/mocks/MockSvmSpokePoolClient.js.map +1 -1
  384. package/dist/esm/coingecko/Coingecko.js +443 -298
  385. package/dist/esm/coingecko/Coingecko.js.map +1 -1
  386. package/dist/esm/constants.js +47 -40
  387. package/dist/esm/constants.js.map +1 -1
  388. package/dist/esm/contracts/acrossConfigStore.js +46 -24
  389. package/dist/esm/contracts/acrossConfigStore.js.map +1 -1
  390. package/dist/esm/contracts/hubPool.js +18 -34
  391. package/dist/esm/contracts/hubPool.js.map +1 -1
  392. package/dist/esm/contracts/utils.js +5 -3
  393. package/dist/esm/contracts/utils.js.map +1 -1
  394. package/dist/esm/gasPriceOracle/adapters/arbitrum.js +14 -6
  395. package/dist/esm/gasPriceOracle/adapters/arbitrum.js.map +1 -1
  396. package/dist/esm/gasPriceOracle/adapters/ethereum.js +42 -22
  397. package/dist/esm/gasPriceOracle/adapters/ethereum.js.map +1 -1
  398. package/dist/esm/gasPriceOracle/adapters/linea-viem.js +25 -13
  399. package/dist/esm/gasPriceOracle/adapters/linea-viem.js.map +1 -1
  400. package/dist/esm/gasPriceOracle/adapters/polygon.js +108 -72
  401. package/dist/esm/gasPriceOracle/adapters/polygon.js.map +1 -1
  402. package/dist/esm/gasPriceOracle/adapters/solana.js +31 -22
  403. package/dist/esm/gasPriceOracle/adapters/solana.js.map +1 -1
  404. package/dist/esm/gasPriceOracle/oracle.js +96 -70
  405. package/dist/esm/gasPriceOracle/oracle.js.map +1 -1
  406. package/dist/esm/gasPriceOracle/types.js +2 -2
  407. package/dist/esm/gasPriceOracle/types.js.map +1 -1
  408. package/dist/esm/gasPriceOracle/util.js +4 -4
  409. package/dist/esm/gasPriceOracle/util.js.map +1 -1
  410. package/dist/esm/lpFeeCalculator/lpFeeCalculator.js +33 -30
  411. package/dist/esm/lpFeeCalculator/lpFeeCalculator.js.map +1 -1
  412. package/dist/esm/lpFeeCalculator/rateModel.js +9 -7
  413. package/dist/esm/lpFeeCalculator/rateModel.js.map +1 -1
  414. package/dist/esm/merkleDistributor/MerkleDistributor.js +17 -18
  415. package/dist/esm/merkleDistributor/MerkleDistributor.js.map +1 -1
  416. package/dist/esm/pool/TransactionManager.js +100 -45
  417. package/dist/esm/pool/TransactionManager.js.map +1 -1
  418. package/dist/esm/pool/poolClient.js +740 -479
  419. package/dist/esm/pool/poolClient.js.map +1 -1
  420. package/dist/esm/pool/uma/across/constants.js +2 -2
  421. package/dist/esm/pool/uma/across/constants.js.map +1 -1
  422. package/dist/esm/pool/uma/across/transactionManager.js +100 -45
  423. package/dist/esm/pool/uma/across/transactionManager.js.map +1 -1
  424. package/dist/esm/pool/uma/clients/erc20/client.js +13 -15
  425. package/dist/esm/pool/uma/clients/erc20/client.js.map +1 -1
  426. package/dist/esm/pool/uma/oracle/utils.js +3 -2
  427. package/dist/esm/pool/uma/oracle/utils.js.map +1 -1
  428. package/dist/esm/pool/uma/utils.js +28 -9
  429. package/dist/esm/pool/uma/utils.js.map +1 -1
  430. package/dist/esm/priceClient/adapters/acrossApi.js +40 -21
  431. package/dist/esm/priceClient/adapters/acrossApi.js.map +1 -1
  432. package/dist/esm/priceClient/adapters/baseAdapter.js +72 -46
  433. package/dist/esm/priceClient/adapters/baseAdapter.js.map +1 -1
  434. package/dist/esm/priceClient/adapters/coingecko.js +61 -33
  435. package/dist/esm/priceClient/adapters/coingecko.js.map +1 -1
  436. package/dist/esm/priceClient/adapters/default.js +31 -15
  437. package/dist/esm/priceClient/adapters/default.js.map +1 -1
  438. package/dist/esm/priceClient/adapters/defiLlama.js +73 -38
  439. package/dist/esm/priceClient/adapters/defiLlama.js.map +1 -1
  440. package/dist/esm/priceClient/priceClient.js +158 -109
  441. package/dist/esm/priceClient/priceClient.js.map +1 -1
  442. package/dist/esm/providers/alchemy.js +18 -16
  443. package/dist/esm/providers/alchemy.js.map +1 -1
  444. package/dist/esm/providers/cachedProvider.js +134 -99
  445. package/dist/esm/providers/cachedProvider.js.map +1 -1
  446. package/dist/esm/providers/constants.js +3 -3
  447. package/dist/esm/providers/constants.js.map +1 -1
  448. package/dist/esm/providers/drpc.js +10 -8
  449. package/dist/esm/providers/drpc.js.map +1 -1
  450. package/dist/esm/providers/infura.js +11 -9
  451. package/dist/esm/providers/infura.js.map +1 -1
  452. package/dist/esm/providers/mocks/MockCachedSolanaRpcFactory.js +15 -6
  453. package/dist/esm/providers/mocks/MockCachedSolanaRpcFactory.js.map +1 -1
  454. package/dist/esm/providers/mocks/MockRateLimitedSolanaRpcFactory.js +14 -5
  455. package/dist/esm/providers/mocks/MockRateLimitedSolanaRpcFactory.js.map +1 -1
  456. package/dist/esm/providers/mocks/MockRetrySolanaRpcFactory.js +15 -6
  457. package/dist/esm/providers/mocks/MockRetrySolanaRpcFactory.js.map +1 -1
  458. package/dist/esm/providers/mocks/MockSolanaRpcFactory.js +66 -41
  459. package/dist/esm/providers/mocks/MockSolanaRpcFactory.js.map +1 -1
  460. package/dist/esm/providers/mocks/mockEthersProvider.js +30 -27
  461. package/dist/esm/providers/mocks/mockEthersProvider.js.map +1 -1
  462. package/dist/esm/providers/quicknode.js +20 -18
  463. package/dist/esm/providers/quicknode.js.map +1 -1
  464. package/dist/esm/providers/rateLimitedProvider.js +80 -68
  465. package/dist/esm/providers/rateLimitedProvider.js.map +1 -1
  466. package/dist/esm/providers/retryProvider.js +259 -186
  467. package/dist/esm/providers/retryProvider.js.map +1 -1
  468. package/dist/esm/providers/solana/baseRpcFactories.js +19 -13
  469. package/dist/esm/providers/solana/baseRpcFactories.js.map +1 -1
  470. package/dist/esm/providers/solana/cachedRpcFactory.js +112 -75
  471. package/dist/esm/providers/solana/cachedRpcFactory.js.map +1 -1
  472. package/dist/esm/providers/solana/defaultRpcFactory.js +14 -6
  473. package/dist/esm/providers/solana/defaultRpcFactory.js.map +1 -1
  474. package/dist/esm/providers/solana/quorumFallbackRpcFactory.js +202 -149
  475. package/dist/esm/providers/solana/quorumFallbackRpcFactory.js.map +1 -1
  476. package/dist/esm/providers/solana/rateLimitedRpcFactory.js +90 -70
  477. package/dist/esm/providers/solana/rateLimitedRpcFactory.js.map +1 -1
  478. package/dist/esm/providers/solana/retryRpcFactory.js +74 -50
  479. package/dist/esm/providers/solana/retryRpcFactory.js.map +1 -1
  480. package/dist/esm/providers/solana/utils.js +1 -1
  481. package/dist/esm/providers/solana/utils.js.map +1 -1
  482. package/dist/esm/providers/speedProvider.js +51 -28
  483. package/dist/esm/providers/speedProvider.js.map +1 -1
  484. package/dist/esm/providers/types.js +2 -2
  485. package/dist/esm/providers/types.js.map +1 -1
  486. package/dist/esm/providers/utils.js +20 -17
  487. package/dist/esm/providers/utils.js.map +1 -1
  488. package/dist/esm/relayFeeCalculator/chain-queries/baseQuery.js +152 -98
  489. package/dist/esm/relayFeeCalculator/chain-queries/baseQuery.js.map +1 -1
  490. package/dist/esm/relayFeeCalculator/chain-queries/customGasToken.js +26 -13
  491. package/dist/esm/relayFeeCalculator/chain-queries/customGasToken.js.map +1 -1
  492. package/dist/esm/relayFeeCalculator/chain-queries/factory.js +19 -9
  493. package/dist/esm/relayFeeCalculator/chain-queries/factory.js.map +1 -1
  494. package/dist/esm/relayFeeCalculator/chain-queries/svmQuery.js +128 -83
  495. package/dist/esm/relayFeeCalculator/chain-queries/svmQuery.js.map +1 -1
  496. package/dist/esm/relayFeeCalculator/relayFeeCalculator.js +299 -211
  497. package/dist/esm/relayFeeCalculator/relayFeeCalculator.js.map +1 -1
  498. package/dist/esm/typeguards/error.js +5 -3
  499. package/dist/esm/typeguards/error.js.map +1 -1
  500. package/dist/esm/utils/AddressUtils.js +147 -115
  501. package/dist/esm/utils/AddressUtils.js.map +1 -1
  502. package/dist/esm/utils/ArrayUtils.js +78 -21
  503. package/dist/esm/utils/ArrayUtils.js.map +1 -1
  504. package/dist/esm/utils/BigNumberUtils.js +12 -11
  505. package/dist/esm/utils/BigNumberUtils.js.map +1 -1
  506. package/dist/esm/utils/BlockExplorerUtils.js +23 -19
  507. package/dist/esm/utils/BlockExplorerUtils.js.map +1 -1
  508. package/dist/esm/utils/BlockFinder.js +6 -2
  509. package/dist/esm/utils/BlockFinder.js.map +1 -1
  510. package/dist/esm/utils/BlockUtils.js +40 -31
  511. package/dist/esm/utils/BlockUtils.js.map +1 -1
  512. package/dist/esm/utils/BundleUtils.js +24 -21
  513. package/dist/esm/utils/BundleUtils.js.map +1 -1
  514. package/dist/esm/utils/CCTPUtils.js +123 -62
  515. package/dist/esm/utils/CCTPUtils.js.map +1 -1
  516. package/dist/esm/utils/CachingUtils.js +38 -17
  517. package/dist/esm/utils/CachingUtils.js.map +1 -1
  518. package/dist/esm/utils/ContractUtils.js +3 -3
  519. package/dist/esm/utils/ContractUtils.js.map +1 -1
  520. package/dist/esm/utils/DepositUtils.js +98 -121
  521. package/dist/esm/utils/DepositUtils.js.map +1 -1
  522. package/dist/esm/utils/EventUtils.js +69 -52
  523. package/dist/esm/utils/EventUtils.js.map +1 -1
  524. package/dist/esm/utils/FormattingUtils.js +26 -20
  525. package/dist/esm/utils/FormattingUtils.js.map +1 -1
  526. package/dist/esm/utils/HyperLiquidUtils.js +22 -8
  527. package/dist/esm/utils/HyperLiquidUtils.js.map +1 -1
  528. package/dist/esm/utils/IPFSUtils.js +35 -16
  529. package/dist/esm/utils/IPFSUtils.js.map +1 -1
  530. package/dist/esm/utils/JSONUtils.js +4 -4
  531. package/dist/esm/utils/JSONUtils.js.map +1 -1
  532. package/dist/esm/utils/LogUtils.js +12 -8
  533. package/dist/esm/utils/LogUtils.js.map +1 -1
  534. package/dist/esm/utils/Multicall.js +110 -50
  535. package/dist/esm/utils/Multicall.js.map +1 -1
  536. package/dist/esm/utils/NetworkUtils.js +28 -12
  537. package/dist/esm/utils/NetworkUtils.js.map +1 -1
  538. package/dist/esm/utils/NumberUtils.js +3 -1
  539. package/dist/esm/utils/NumberUtils.js.map +1 -1
  540. package/dist/esm/utils/ObjectUtils.js +41 -27
  541. package/dist/esm/utils/ObjectUtils.js.map +1 -1
  542. package/dist/esm/utils/Profiler.js +82 -77
  543. package/dist/esm/utils/Profiler.js.map +1 -1
  544. package/dist/esm/utils/ReviverUtils.js +7 -3
  545. package/dist/esm/utils/ReviverUtils.js.map +1 -1
  546. package/dist/esm/utils/SpokeUtils.js +78 -83
  547. package/dist/esm/utils/SpokeUtils.js.map +1 -1
  548. package/dist/esm/utils/TokenUtils.js +57 -33
  549. package/dist/esm/utils/TokenUtils.js.map +1 -1
  550. package/dist/esm/utils/ValidatorUtils.js +4 -4
  551. package/dist/esm/utils/ValidatorUtils.js.map +1 -1
  552. package/dist/esm/utils/abi/index.js +20 -10
  553. package/dist/esm/utils/abi/index.js.map +1 -1
  554. package/dist/esm/utils/abi/typechain/factories/Multicall3__factory.js +12 -8
  555. package/dist/esm/utils/abi/typechain/factories/Multicall3__factory.js.map +1 -1
  556. package/dist/esm/utils/common.js +52 -38
  557. package/dist/esm/utils/common.js.map +1 -1
  558. package/dist/types/constants.d.ts.map +1 -1
  559. package/dist/types/gasPriceOracle/oracle.d.ts.map +1 -1
  560. package/dist/types/utils/Multicall.d.ts.map +1 -1
  561. package/dist/types/utils/NetworkUtils.d.ts.map +1 -1
  562. package/package.json +3 -3
  563. package/src/constants.ts +1 -0
  564. package/src/gasPriceOracle/oracle.ts +1 -0
  565. package/src/utils/Multicall.ts +1 -0
  566. package/src/utils/NetworkUtils.ts +8 -1
@@ -4,216 +4,258 @@ exports.Client = exports.ReadPoolClient = exports.PoolEventState = void 0;
4
4
  exports.calculateRemoval = calculateRemoval;
5
5
  exports.previewRemoval = previewRemoval;
6
6
  exports.validateWithdraw = validateWithdraw;
7
- const tslib_1 = require("tslib");
8
- const assert_1 = tslib_1.__importDefault(require("assert"));
9
- const uma = tslib_1.__importStar(require("./uma"));
10
- const utils_1 = require("../utils");
11
- const ethers_1 = require("ethers");
12
- const set_1 = tslib_1.__importDefault(require("lodash/set"));
13
- const get_1 = tslib_1.__importDefault(require("lodash/get"));
14
- const has_1 = tslib_1.__importDefault(require("lodash/has"));
15
- const lpFeeCalculator_1 = require("../lpFeeCalculator");
16
- const contracts_1 = require("../contracts");
17
- const typechain_1 = require("../typechain");
18
- const { erc20 } = uma.clients;
19
- const { loop } = uma.utils;
20
- const { TransactionManager } = uma.across;
21
- const { SECONDS_PER_YEAR, DEFAULT_BLOCK_DELTA } = uma.across.constants;
22
- const { AddressZero } = ethers_1.ethers.constants;
23
- class PoolState {
24
- contract;
25
- address;
26
- constructor(contract, address) {
7
+ var tslib_1 = require("tslib");
8
+ var assert_1 = tslib_1.__importDefault(require("assert"));
9
+ var uma = tslib_1.__importStar(require("./uma"));
10
+ var utils_1 = require("../utils");
11
+ var ethers_1 = require("ethers");
12
+ var set_1 = tslib_1.__importDefault(require("lodash/set"));
13
+ var get_1 = tslib_1.__importDefault(require("lodash/get"));
14
+ var has_1 = tslib_1.__importDefault(require("lodash/has"));
15
+ var lpFeeCalculator_1 = require("../lpFeeCalculator");
16
+ var contracts_1 = require("../contracts");
17
+ var typechain_1 = require("../typechain");
18
+ var erc20 = uma.clients.erc20;
19
+ var loop = uma.utils.loop;
20
+ var TransactionManager = uma.across.TransactionManager;
21
+ var _a = uma.across.constants, SECONDS_PER_YEAR = _a.SECONDS_PER_YEAR, DEFAULT_BLOCK_DELTA = _a.DEFAULT_BLOCK_DELTA;
22
+ var AddressZero = ethers_1.ethers.constants.AddressZero;
23
+ var PoolState = (function () {
24
+ function PoolState(contract, address) {
27
25
  this.contract = contract;
28
26
  this.address = address;
29
27
  }
30
- async read(l1Token, latestBlock, previousBlock) {
31
- const exchangeRatePrevious = await this.exchangeRateAtBlock(l1Token, previousBlock || latestBlock - 1);
32
- const exchangeRateCurrent = await this.contract.callStatic.exchangeRateCurrent(l1Token);
33
- const pooledToken = await this.contract.pooledTokens(l1Token);
34
- const liquidityUtilizationCurrent = await this.contract.callStatic.liquidityUtilizationCurrent(l1Token);
35
- return {
36
- address: this.address,
37
- l1Token,
38
- latestBlock,
39
- previousBlock,
40
- exchangeRatePrevious,
41
- exchangeRateCurrent,
42
- liquidityUtilizationCurrent,
43
- ...pooledToken,
44
- };
45
- }
46
- exchangeRateAtBlock(l1Token, blockTag) {
47
- return this.contract.callStatic.exchangeRateCurrent(l1Token, { blockTag });
48
- }
49
- }
50
- class PoolEventState {
51
- contract;
52
- startBlock;
53
- seen = new Set();
54
- iface;
55
- events = [];
56
- constructor(contract, startBlock = 0) {
28
+ PoolState.prototype.read = function (l1Token, latestBlock, previousBlock) {
29
+ return tslib_1.__awaiter(this, void 0, void 0, function () {
30
+ var exchangeRatePrevious, exchangeRateCurrent, pooledToken, liquidityUtilizationCurrent;
31
+ return tslib_1.__generator(this, function (_a) {
32
+ switch (_a.label) {
33
+ case 0: return [4, this.exchangeRateAtBlock(l1Token, previousBlock || latestBlock - 1)];
34
+ case 1:
35
+ exchangeRatePrevious = _a.sent();
36
+ return [4, this.contract.callStatic.exchangeRateCurrent(l1Token)];
37
+ case 2:
38
+ exchangeRateCurrent = _a.sent();
39
+ return [4, this.contract.pooledTokens(l1Token)];
40
+ case 3:
41
+ pooledToken = _a.sent();
42
+ return [4, this.contract.callStatic.liquidityUtilizationCurrent(l1Token)];
43
+ case 4:
44
+ liquidityUtilizationCurrent = _a.sent();
45
+ return [2, tslib_1.__assign({ address: this.address, l1Token: l1Token, latestBlock: latestBlock, previousBlock: previousBlock, exchangeRatePrevious: exchangeRatePrevious, exchangeRateCurrent: exchangeRateCurrent, liquidityUtilizationCurrent: liquidityUtilizationCurrent }, pooledToken)];
46
+ }
47
+ });
48
+ });
49
+ };
50
+ PoolState.prototype.exchangeRateAtBlock = function (l1Token, blockTag) {
51
+ return this.contract.callStatic.exchangeRateCurrent(l1Token, { blockTag: blockTag });
52
+ };
53
+ return PoolState;
54
+ }());
55
+ var PoolEventState = (function () {
56
+ function PoolEventState(contract, startBlock) {
57
+ if (startBlock === void 0) { startBlock = 0; }
58
+ var _this = this;
57
59
  this.contract = contract;
58
60
  this.startBlock = startBlock;
61
+ this.seen = new Set();
62
+ this.events = [];
63
+ this.makeId = function (params) {
64
+ return uma.oracle.utils.eventKey(params);
65
+ };
66
+ this.filterSeen = function (params) {
67
+ var seen = _this.hasEvent(params);
68
+ if (!seen)
69
+ _this.addEvent(params);
70
+ return !seen;
71
+ };
72
+ this.processEvent = function (event) {
73
+ if (!_this.filterSeen(event))
74
+ return;
75
+ _this.events = uma.oracle.utils.insertOrderedAscending(_this.events, event, _this.makeId);
76
+ };
77
+ this.processEvents = function (events) {
78
+ events.forEach(_this.processEvent);
79
+ };
80
+ this.makeEventFromLog = function (log) {
81
+ var description = _this.iface.parseLog(log);
82
+ return tslib_1.__assign(tslib_1.__assign(tslib_1.__assign({}, log), description), { event: description.name, eventSignature: description.signature });
83
+ };
59
84
  this.iface = new ethers_1.ethers.utils.Interface(contracts_1.hubPool.Factory.abi);
60
85
  }
61
- makeId = (params) => {
62
- return uma.oracle.utils.eventKey(params);
63
- };
64
- hasEvent(params) {
86
+ PoolEventState.prototype.hasEvent = function (params) {
65
87
  return this.seen.has(this.makeId(params));
66
- }
67
- addEvent(params) {
88
+ };
89
+ PoolEventState.prototype.addEvent = function (params) {
68
90
  this.seen.add(this.makeId(params));
69
- }
70
- filterSeen = (params) => {
71
- const seen = this.hasEvent(params);
72
- if (!seen)
73
- this.addEvent(params);
74
- return !seen;
75
- };
76
- processEvent = (event) => {
77
- if (!this.filterSeen(event))
78
- return;
79
- this.events = uma.oracle.utils.insertOrderedAscending(this.events, event, this.makeId);
80
- };
81
- processEvents = (events) => {
82
- events.forEach(this.processEvent);
83
- };
84
- async read(endBlock, l1TokenAddress, userAddress) {
85
- const events = await Promise.all([
86
- ...(await this.contract.queryFilter(this.contract.filters.LiquidityAdded(l1TokenAddress, undefined, undefined, userAddress), this.startBlock, endBlock)),
87
- ...(await this.contract.queryFilter(this.contract.filters.LiquidityRemoved(l1TokenAddress, undefined, undefined, userAddress), this.startBlock, endBlock)),
88
- ]);
89
- this.processEvents(events);
90
- return contracts_1.hubPool.getEventState(this.events);
91
- }
92
- makeEventFromLog = (log) => {
93
- const description = this.iface.parseLog(log);
94
- return {
95
- ...log,
96
- ...description,
97
- event: description.name,
98
- eventSignature: description.signature,
99
- };
100
91
  };
101
- getL1TokenFromReceipt(receipt) {
102
- const events = receipt.logs
103
- .filter((log) => ethers_1.ethers.utils.getAddress(log.address) === ethers_1.ethers.utils.getAddress(this.contract.address))
92
+ PoolEventState.prototype.read = function (endBlock, l1TokenAddress, userAddress) {
93
+ return tslib_1.__awaiter(this, void 0, void 0, function () {
94
+ var events, _a, _b, _c, _d;
95
+ return tslib_1.__generator(this, function (_e) {
96
+ switch (_e.label) {
97
+ case 0:
98
+ _b = (_a = Promise).all;
99
+ _c = [[]];
100
+ return [4, this.contract.queryFilter(this.contract.filters.LiquidityAdded(l1TokenAddress, undefined, undefined, userAddress), this.startBlock, endBlock)];
101
+ case 1:
102
+ _d = [tslib_1.__spreadArray.apply(void 0, _c.concat([(_e.sent()), true]))];
103
+ return [4, this.contract.queryFilter(this.contract.filters.LiquidityRemoved(l1TokenAddress, undefined, undefined, userAddress), this.startBlock, endBlock)];
104
+ case 2: return [4, _b.apply(_a, [tslib_1.__spreadArray.apply(void 0, _d.concat([(_e.sent()), true]))])];
105
+ case 3:
106
+ events = _e.sent();
107
+ this.processEvents(events);
108
+ return [2, contracts_1.hubPool.getEventState(this.events)];
109
+ }
110
+ });
111
+ });
112
+ };
113
+ PoolEventState.prototype.getL1TokenFromReceipt = function (receipt) {
114
+ var _this = this;
115
+ var events = receipt.logs
116
+ .filter(function (log) { return ethers_1.ethers.utils.getAddress(log.address) === ethers_1.ethers.utils.getAddress(_this.contract.address); })
104
117
  .map(this.makeEventFromLog);
105
118
  this.processEvents(events);
106
- const eventState = contracts_1.hubPool.getEventState(events);
107
- const l1Tokens = Object.keys(eventState);
119
+ var eventState = contracts_1.hubPool.getEventState(events);
120
+ var l1Tokens = Object.keys(eventState);
108
121
  (0, assert_1.default)(l1Tokens.length, "Token not found from events");
109
122
  (0, assert_1.default)(l1Tokens.length === 1, "Multiple tokens found from events");
110
123
  return l1Tokens[0];
111
- }
112
- readTxReceipt(receipt) {
113
- const events = receipt.logs
114
- .filter((log) => ethers_1.ethers.utils.getAddress(log.address) === ethers_1.ethers.utils.getAddress(this.contract.address))
124
+ };
125
+ PoolEventState.prototype.readTxReceipt = function (receipt) {
126
+ var _this = this;
127
+ var events = receipt.logs
128
+ .filter(function (log) { return ethers_1.ethers.utils.getAddress(log.address) === ethers_1.ethers.utils.getAddress(_this.contract.address); })
115
129
  .map(this.makeEventFromLog);
116
130
  this.processEvents(events);
117
131
  return contracts_1.hubPool.getEventState(this.events);
118
- }
119
- }
132
+ };
133
+ return PoolEventState;
134
+ }());
120
135
  exports.PoolEventState = PoolEventState;
121
- class UserState {
122
- contract;
123
- userAddress;
124
- startBlock;
125
- acceleratingDistributorContractAddress;
126
- seen = new Set();
127
- events = [];
128
- constructor(contract, userAddress, startBlock = 0, acceleratingDistributorContractAddress = "") {
136
+ var UserState = (function () {
137
+ function UserState(contract, userAddress, startBlock, acceleratingDistributorContractAddress) {
138
+ if (startBlock === void 0) { startBlock = 0; }
139
+ if (acceleratingDistributorContractAddress === void 0) { acceleratingDistributorContractAddress = ""; }
140
+ var _this = this;
129
141
  this.contract = contract;
130
142
  this.userAddress = userAddress;
131
143
  this.startBlock = startBlock;
132
144
  this.acceleratingDistributorContractAddress = acceleratingDistributorContractAddress;
145
+ this.seen = new Set();
146
+ this.events = [];
147
+ this.filterSeen = function (params) {
148
+ var seen = _this.hasEvent(params);
149
+ if (!seen)
150
+ _this.addEvent(params);
151
+ return !seen;
152
+ };
133
153
  }
134
- makeId(params) {
154
+ UserState.prototype.makeId = function (params) {
135
155
  return uma.oracle.utils.eventKey(params);
136
- }
137
- hasEvent(params) {
156
+ };
157
+ UserState.prototype.hasEvent = function (params) {
138
158
  return this.seen.has(this.makeId(params));
139
- }
140
- addEvent(params) {
159
+ };
160
+ UserState.prototype.addEvent = function (params) {
141
161
  this.seen.add(this.makeId(params));
142
- }
143
- filterSeen = (params) => {
144
- const seen = this.hasEvent(params);
145
- if (!seen)
146
- this.addEvent(params);
147
- return !seen;
148
- };
149
- async readEvents(endBlock) {
150
- if (endBlock <= this.startBlock)
151
- return [];
152
- const { userAddress } = this;
153
- const events = (await Promise.all([
154
- ...(await this.contract.queryFilter(this.contract.filters.Transfer(userAddress, undefined), this.startBlock, endBlock)),
155
- ...(await this.contract.queryFilter(this.contract.filters.Transfer(undefined, userAddress), this.startBlock, endBlock)),
156
- ]))
157
- .filter(this.filterSeen)
158
- .filter((event) => event.args.from !== AddressZero &&
159
- event.args.to !== AddressZero &&
160
- event.args.to !== this.acceleratingDistributorContractAddress &&
161
- event.args.from !== this.acceleratingDistributorContractAddress &&
162
- event.args.from !== event.args.to)
163
- .flat();
164
- this.events = this.events.concat(events).sort((a, b) => {
165
- if (a.blockNumber !== b.blockNumber)
166
- return a.blockNumber - b.blockNumber;
167
- if (a.transactionIndex !== b.transactionIndex)
168
- return a.transactionIndex - b.transactionIndex;
169
- if (a.logIndex !== b.logIndex)
170
- return a.logIndex - b.logIndex;
171
- throw new Error("Duplicate events at tx hash: " + a.transactionHash);
162
+ };
163
+ UserState.prototype.readEvents = function (endBlock) {
164
+ return tslib_1.__awaiter(this, void 0, void 0, function () {
165
+ var userAddress, events, _a, _b, _c, _d;
166
+ var _this = this;
167
+ return tslib_1.__generator(this, function (_e) {
168
+ switch (_e.label) {
169
+ case 0:
170
+ if (endBlock <= this.startBlock)
171
+ return [2, []];
172
+ userAddress = this.userAddress;
173
+ _b = (_a = Promise).all;
174
+ _c = [[]];
175
+ return [4, this.contract.queryFilter(this.contract.filters.Transfer(userAddress, undefined), this.startBlock, endBlock)];
176
+ case 1:
177
+ _d = [tslib_1.__spreadArray.apply(void 0, _c.concat([(_e.sent()), true]))];
178
+ return [4, this.contract.queryFilter(this.contract.filters.Transfer(undefined, userAddress), this.startBlock, endBlock)];
179
+ case 2: return [4, _b.apply(_a, [tslib_1.__spreadArray.apply(void 0, _d.concat([(_e.sent()), true]))])];
180
+ case 3:
181
+ events = (_e.sent())
182
+ .filter(this.filterSeen)
183
+ .filter(function (event) {
184
+ return event.args.from !== AddressZero &&
185
+ event.args.to !== AddressZero &&
186
+ event.args.to !== _this.acceleratingDistributorContractAddress &&
187
+ event.args.from !== _this.acceleratingDistributorContractAddress &&
188
+ event.args.from !== event.args.to;
189
+ })
190
+ .flat();
191
+ this.events = this.events.concat(events).sort(function (a, b) {
192
+ if (a.blockNumber !== b.blockNumber)
193
+ return a.blockNumber - b.blockNumber;
194
+ if (a.transactionIndex !== b.transactionIndex)
195
+ return a.transactionIndex - b.transactionIndex;
196
+ if (a.logIndex !== b.logIndex)
197
+ return a.logIndex - b.logIndex;
198
+ throw new Error("Duplicate events at tx hash: " + a.transactionHash);
199
+ });
200
+ this.startBlock = endBlock + 1;
201
+ return [2, this.events];
202
+ }
203
+ });
172
204
  });
173
- this.startBlock = endBlock + 1;
174
- return this.events;
175
- }
176
- async read(endBlock) {
177
- const { userAddress } = this;
178
- const transferEvents = await this.readEvents(endBlock);
179
- const state = uma.clients.erc20.getEventState(transferEvents);
180
- const balanceTransferred = state?.balances?.[userAddress] || "0";
181
- return {
182
- transferEvents,
183
- balanceTransferred,
184
- address: userAddress,
185
- balanceOf: await this.contract.balanceOf(userAddress),
186
- };
187
- }
188
- }
205
+ };
206
+ UserState.prototype.read = function (endBlock) {
207
+ return tslib_1.__awaiter(this, void 0, void 0, function () {
208
+ var userAddress, transferEvents, state, balanceTransferred;
209
+ var _a;
210
+ var _b;
211
+ return tslib_1.__generator(this, function (_c) {
212
+ switch (_c.label) {
213
+ case 0:
214
+ userAddress = this.userAddress;
215
+ return [4, this.readEvents(endBlock)];
216
+ case 1:
217
+ transferEvents = _c.sent();
218
+ state = uma.clients.erc20.getEventState(transferEvents);
219
+ balanceTransferred = ((_b = state === null || state === void 0 ? void 0 : state.balances) === null || _b === void 0 ? void 0 : _b[userAddress]) || "0";
220
+ _a = {
221
+ transferEvents: transferEvents,
222
+ balanceTransferred: balanceTransferred,
223
+ address: userAddress
224
+ };
225
+ return [4, this.contract.balanceOf(userAddress)];
226
+ case 2: return [2, (_a.balanceOf = _c.sent(),
227
+ _a)];
228
+ }
229
+ });
230
+ });
231
+ };
232
+ return UserState;
233
+ }());
189
234
  function calculateRemoval(amountWei, percentWei) {
190
- const receive = amountWei.mul(percentWei).div(utils_1.fixedPointAdjustment);
191
- const remain = amountWei.sub(receive);
235
+ var receive = amountWei.mul(percentWei).div(utils_1.fixedPointAdjustment);
236
+ var remain = amountWei.sub(receive);
192
237
  return {
193
238
  receive: receive.toString(),
194
239
  remain: remain.toString(),
195
240
  };
196
241
  }
197
242
  function previewRemoval(values, percentFloat) {
198
- const percentWei = (0, utils_1.toBNWei)(percentFloat);
243
+ var percentWei = (0, utils_1.toBNWei)(percentFloat);
199
244
  return {
200
- position: {
201
- ...calculateRemoval(utils_1.BigNumber.from(values.totalDeposited), percentWei),
202
- },
203
- fees: {
204
- ...calculateRemoval(utils_1.BigNumber.from(values.feesEarned), percentWei),
205
- },
206
- total: {
207
- ...calculateRemoval(utils_1.BigNumber.from(values.positionValue), percentWei),
208
- },
245
+ position: tslib_1.__assign({}, calculateRemoval(utils_1.BigNumber.from(values.totalDeposited), percentWei)),
246
+ fees: tslib_1.__assign({}, calculateRemoval(utils_1.BigNumber.from(values.feesEarned), percentWei)),
247
+ total: tslib_1.__assign({}, calculateRemoval(utils_1.BigNumber.from(values.positionValue), percentWei)),
209
248
  };
210
249
  }
211
- function joinUserState(poolState, tokenEventState, userState, transferValue = utils_1.bnZero, cumulativeStakeBalance = utils_1.bnZero, cumulativeStakeClaimBalance = utils_1.bnZero) {
212
- const positionValue = utils_1.BigNumber.from(poolState.exchangeRateCurrent)
250
+ function joinUserState(poolState, tokenEventState, userState, transferValue, cumulativeStakeBalance, cumulativeStakeClaimBalance) {
251
+ if (transferValue === void 0) { transferValue = utils_1.bnZero; }
252
+ if (cumulativeStakeBalance === void 0) { cumulativeStakeBalance = utils_1.bnZero; }
253
+ if (cumulativeStakeClaimBalance === void 0) { cumulativeStakeClaimBalance = utils_1.bnZero; }
254
+ var positionValue = utils_1.BigNumber.from(poolState.exchangeRateCurrent)
213
255
  .mul(userState.balanceOf.add(cumulativeStakeBalance))
214
256
  .div(utils_1.fixedPointAdjustment);
215
- const totalDeposited = utils_1.BigNumber.from(tokenEventState?.tokenBalances[userState.address] || "0").add(cumulativeStakeClaimBalance);
216
- const feesEarned = positionValue.sub(totalDeposited.add(transferValue));
257
+ var totalDeposited = utils_1.BigNumber.from((tokenEventState === null || tokenEventState === void 0 ? void 0 : tokenEventState.tokenBalances[userState.address]) || "0").add(cumulativeStakeClaimBalance);
258
+ var feesEarned = positionValue.sub(totalDeposited.add(transferValue));
217
259
  return {
218
260
  address: userState.address,
219
261
  poolAddress: poolState.address,
@@ -224,15 +266,15 @@ function joinUserState(poolState, tokenEventState, userState, transferValue = ut
224
266
  };
225
267
  }
226
268
  function joinPoolState(poolState, latestBlock, previousBlock, rateModel) {
227
- const totalPoolSize = poolState.liquidReserves.add(poolState.utilizedReserves);
228
- const secondsElapsed = latestBlock.timestamp - previousBlock.timestamp;
229
- const blocksElapsed = latestBlock.number - previousBlock.number;
230
- const exchangeRatePrevious = poolState.exchangeRatePrevious.toString();
231
- const exchangeRateCurrent = poolState.exchangeRateCurrent.toString();
232
- const liquidityUtilizationCurrent = poolState.liquidityUtilizationCurrent.toString();
233
- const estimatedApy = (0, utils_1.calcPeriodicCompoundInterest)(exchangeRatePrevious, exchangeRateCurrent, secondsElapsed, SECONDS_PER_YEAR);
234
- const estimatedApr = (0, utils_1.calcApr)(exchangeRatePrevious, exchangeRateCurrent, secondsElapsed, SECONDS_PER_YEAR);
235
- let projectedApr = "";
269
+ var totalPoolSize = poolState.liquidReserves.add(poolState.utilizedReserves);
270
+ var secondsElapsed = latestBlock.timestamp - previousBlock.timestamp;
271
+ var blocksElapsed = latestBlock.number - previousBlock.number;
272
+ var exchangeRatePrevious = poolState.exchangeRatePrevious.toString();
273
+ var exchangeRateCurrent = poolState.exchangeRateCurrent.toString();
274
+ var liquidityUtilizationCurrent = poolState.liquidityUtilizationCurrent.toString();
275
+ var estimatedApy = (0, utils_1.calcPeriodicCompoundInterest)(exchangeRatePrevious, exchangeRateCurrent, secondsElapsed, SECONDS_PER_YEAR);
276
+ var estimatedApr = (0, utils_1.calcApr)(exchangeRatePrevious, exchangeRateCurrent, secondsElapsed, SECONDS_PER_YEAR);
277
+ var projectedApr = "";
236
278
  if (rateModel) {
237
279
  projectedApr = (0, utils_1.fromWei)((0, lpFeeCalculator_1.calculateInstantaneousRate)(rateModel, liquidityUtilizationCurrent)
238
280
  .mul(liquidityUtilizationCurrent)
@@ -246,56 +288,45 @@ function joinPoolState(poolState, latestBlock, previousBlock, rateModel) {
246
288
  liquidReserves: poolState.liquidReserves.toString(),
247
289
  exchangeRateCurrent: poolState.exchangeRateCurrent.toString(),
248
290
  exchangeRatePrevious: poolState.exchangeRatePrevious.toString(),
249
- estimatedApy,
250
- estimatedApr,
251
- blocksElapsed,
252
- secondsElapsed,
253
- projectedApr,
291
+ estimatedApy: estimatedApy,
292
+ estimatedApr: estimatedApr,
293
+ blocksElapsed: blocksElapsed,
294
+ secondsElapsed: secondsElapsed,
295
+ projectedApr: projectedApr,
254
296
  utilizedReserves: poolState.utilizedReserves.toString(),
255
- liquidityUtilizationCurrent,
297
+ liquidityUtilizationCurrent: liquidityUtilizationCurrent,
256
298
  };
257
299
  }
258
- class ReadPoolClient {
259
- address;
260
- provider;
261
- poolState;
262
- contract;
263
- constructor(address, provider) {
300
+ var ReadPoolClient = (function () {
301
+ function ReadPoolClient(address, provider) {
264
302
  this.address = address;
265
303
  this.provider = provider;
266
304
  this.contract = contracts_1.hubPool.connect(address, this.provider);
267
305
  this.poolState = new PoolState(this.contract, this.address);
268
306
  }
269
- read(tokenAddress, latestBlock) {
307
+ ReadPoolClient.prototype.read = function (tokenAddress, latestBlock) {
270
308
  return this.poolState.read(tokenAddress, latestBlock);
271
- }
272
- }
309
+ };
310
+ return ReadPoolClient;
311
+ }());
273
312
  exports.ReadPoolClient = ReadPoolClient;
274
313
  function validateWithdraw(pool, user, lpTokenAmount) {
275
- const l1TokensToReturn = utils_1.BigNumber.from(lpTokenAmount).mul(pool.exchangeRateCurrent).div(utils_1.fixedPointAdjustment);
314
+ var l1TokensToReturn = utils_1.BigNumber.from(lpTokenAmount).mul(pool.exchangeRateCurrent).div(utils_1.fixedPointAdjustment);
276
315
  (0, assert_1.default)(utils_1.BigNumber.from(l1TokensToReturn).gt("0"), "Must withdraw amount greater than 0");
277
316
  (0, assert_1.default)(utils_1.BigNumber.from(lpTokenAmount).lte(user.lpTokens), "You cannot withdraw more than you have");
278
- return { lpTokenAmount, l1TokensToReturn: l1TokensToReturn.toString() };
317
+ return { lpTokenAmount: lpTokenAmount, l1TokensToReturn: l1TokensToReturn.toString() };
279
318
  }
280
- class Client {
281
- config;
282
- deps;
283
- emit;
284
- transactionManagers = {};
285
- hubPool;
286
- acceleratingDistributor;
287
- merkleDistributor;
288
- state = { pools: {}, users: {}, transactions: {} };
289
- poolEvents;
290
- erc20s = {};
291
- intervalStarted = false;
292
- configStoreClient;
293
- exchangeRateTable = {};
294
- userServices = {};
295
- constructor(config, deps, emit) {
319
+ var Client = (function () {
320
+ function Client(config, deps, emit) {
296
321
  this.config = config;
297
322
  this.deps = deps;
298
323
  this.emit = emit;
324
+ this.transactionManagers = {};
325
+ this.state = { pools: {}, users: {}, transactions: {} };
326
+ this.erc20s = {};
327
+ this.intervalStarted = false;
328
+ this.exchangeRateTable = {};
329
+ this.userServices = {};
299
330
  config.chainId = config.chainId || 1;
300
331
  this.hubPool = this.createHubPoolContract(deps.provider);
301
332
  this.acceleratingDistributor = this.createAcceleratingDistributorContract(deps.provider);
@@ -303,300 +334,536 @@ class Client {
303
334
  this.poolEvents = new PoolEventState(this.hubPool, this.config.hubPoolStartBlock);
304
335
  this.configStoreClient = new contracts_1.acrossConfigStore.Client(config.configStoreAddress, deps.provider);
305
336
  }
306
- getOrCreateErc20Contract(address) {
337
+ Client.prototype.getOrCreateErc20Contract = function (address) {
307
338
  if (this.erc20s[address])
308
339
  return this.erc20s[address];
309
340
  this.erc20s[address] = erc20.connect(address, this.deps.provider);
310
341
  return this.erc20s[address];
311
- }
312
- getOrCreatePoolContract() {
342
+ };
343
+ Client.prototype.getOrCreatePoolContract = function () {
313
344
  return this.hubPool;
314
- }
315
- createHubPoolContract(signerOrProvider) {
345
+ };
346
+ Client.prototype.createHubPoolContract = function (signerOrProvider) {
316
347
  return contracts_1.hubPool.connect(this.config.hubPoolAddress, signerOrProvider);
317
- }
318
- getOrCreatePoolEvents() {
348
+ };
349
+ Client.prototype.getOrCreatePoolEvents = function () {
319
350
  return this.poolEvents;
320
- }
321
- createAcceleratingDistributorContract(signerOrProvider) {
351
+ };
352
+ Client.prototype.createAcceleratingDistributorContract = function (signerOrProvider) {
322
353
  return typechain_1.AcceleratingDistributor__factory.connect(this.config.acceleratingDistributorAddress, signerOrProvider);
323
- }
324
- createMerkleDistributorContract(signerOrProvider) {
354
+ };
355
+ Client.prototype.createMerkleDistributorContract = function (signerOrProvider) {
325
356
  return typechain_1.MerkleDistributor__factory.connect(this.config.merkleDistributorAddress, signerOrProvider);
326
- }
327
- getOrCreateAcceleratingDistributorContract() {
357
+ };
358
+ Client.prototype.getOrCreateAcceleratingDistributorContract = function () {
328
359
  return this.acceleratingDistributor;
329
- }
330
- getOrCreateMerkleDistributorContract() {
360
+ };
361
+ Client.prototype.getOrCreateMerkleDistributorContract = function () {
331
362
  return this.merkleDistributor;
332
- }
333
- getOrCreateUserService(userAddress, tokenAddress) {
363
+ };
364
+ Client.prototype.getOrCreateUserService = function (userAddress, tokenAddress) {
334
365
  if ((0, has_1.default)(this.userServices, [tokenAddress, userAddress]))
335
366
  return (0, get_1.default)(this.userServices, [tokenAddress, userAddress]);
336
- const erc20Contract = this.getOrCreateErc20Contract(tokenAddress);
337
- const userService = new UserState(erc20Contract, userAddress);
367
+ var erc20Contract = this.getOrCreateErc20Contract(tokenAddress);
368
+ var userService = new UserState(erc20Contract, userAddress);
338
369
  (0, set_1.default)(this.userServices, [tokenAddress, userAddress], userService);
339
370
  return userService;
340
- }
341
- updateExchangeRateTable(l1TokenAddress, exchangeRateTable) {
371
+ };
372
+ Client.prototype.updateExchangeRateTable = function (l1TokenAddress, exchangeRateTable) {
342
373
  if (!this.exchangeRateTable[l1TokenAddress])
343
374
  this.exchangeRateTable[l1TokenAddress] = {};
344
- this.exchangeRateTable[l1TokenAddress] = { ...this.exchangeRateTable[l1TokenAddress], ...exchangeRateTable };
375
+ this.exchangeRateTable[l1TokenAddress] = tslib_1.__assign(tslib_1.__assign({}, this.exchangeRateTable[l1TokenAddress]), exchangeRateTable);
345
376
  return this.exchangeRateTable[l1TokenAddress];
346
- }
347
- async resolveStakingData(lpToken, l1TokenAddress, userState) {
348
- (0, assert_1.default)(this.config.acceleratingDistributorAddress, "Must have the accelerating distributor address");
349
- (0, assert_1.default)(this.config.merkleDistributorAddress, "Must have the merkle distributor address");
350
- const acceleratingDistributorContract = this.getOrCreateAcceleratingDistributorContract();
351
- const merkleDistributorContract = this.getOrCreateMerkleDistributorContract();
352
- const poolContract = this.getOrCreatePoolContract();
353
- const claimList = await merkleDistributorContract.queryFilter(merkleDistributorContract.filters.Claimed(undefined, undefined, userState.address, undefined, undefined, lpToken));
354
- const amountOfLPClaimed = (await Promise.all(claimList.map(async (claim) => claim.args.amount.mul(await poolContract.callStatic.exchangeRateCurrent(l1TokenAddress, { blockTag: claim.blockNumber }))))).reduce((prev, acc) => acc.add(prev), utils_1.bnZero);
355
- const { cumulativeBalance } = await acceleratingDistributorContract.getUserStake(lpToken, userState.address);
356
- return {
357
- cumulativeBalance,
358
- amountAirdropped: amountOfLPClaimed,
359
- };
360
- }
361
- async calculateLpTransferValue(l1TokenAddress, userState) {
362
- (0, assert_1.default)(this.config.hasArchive, "Can only calculate historical lp values with archive node");
363
- const contract = this.getOrCreatePoolContract();
364
- const pool = new PoolState(contract, this.config.hubPoolAddress);
365
- const blockNumbers = userState.transferEvents
366
- .map((x) => x.blockNumber)
367
- .filter((blockNumber) => !this.exchangeRateTable?.[l1TokenAddress]?.[blockNumber]);
368
- const exchangeRateTable = this.updateExchangeRateTable(l1TokenAddress, Object.fromEntries(await Promise.all(blockNumbers.map(async (blockNumber) => {
369
- return [blockNumber, await pool.exchangeRateAtBlock(l1TokenAddress, blockNumber)];
370
- }))));
371
- return userState.transferEvents.reduce((result, transfer) => {
372
- const exchangeRate = exchangeRateTable[transfer.blockNumber];
373
- if (transfer.args.to === userState.address) {
374
- return result.add(transfer.args.value.mul(exchangeRate).div(utils_1.fixedPointAdjustment));
375
- }
376
- if (transfer.args.from === userState.address) {
377
- return result.sub(transfer.args.value.mul(exchangeRate).div(utils_1.fixedPointAdjustment));
378
- }
379
- return result;
380
- }, utils_1.bnZero);
381
- }
382
- getOrCreateTransactionManager(signer, address) {
377
+ };
378
+ Client.prototype.resolveStakingData = function (lpToken, l1TokenAddress, userState) {
379
+ return tslib_1.__awaiter(this, void 0, void 0, function () {
380
+ var acceleratingDistributorContract, merkleDistributorContract, poolContract, claimList, amountOfLPClaimed, cumulativeBalance;
381
+ var _this = this;
382
+ return tslib_1.__generator(this, function (_a) {
383
+ switch (_a.label) {
384
+ case 0:
385
+ (0, assert_1.default)(this.config.acceleratingDistributorAddress, "Must have the accelerating distributor address");
386
+ (0, assert_1.default)(this.config.merkleDistributorAddress, "Must have the merkle distributor address");
387
+ acceleratingDistributorContract = this.getOrCreateAcceleratingDistributorContract();
388
+ merkleDistributorContract = this.getOrCreateMerkleDistributorContract();
389
+ poolContract = this.getOrCreatePoolContract();
390
+ return [4, merkleDistributorContract.queryFilter(merkleDistributorContract.filters.Claimed(undefined, undefined, userState.address, undefined, undefined, lpToken))];
391
+ case 1:
392
+ claimList = _a.sent();
393
+ return [4, Promise.all(claimList.map(function (claim) { return tslib_1.__awaiter(_this, void 0, void 0, function () {
394
+ var _a, _b;
395
+ return tslib_1.__generator(this, function (_c) {
396
+ switch (_c.label) {
397
+ case 0:
398
+ _b = (_a = claim.args.amount).mul;
399
+ return [4, poolContract.callStatic.exchangeRateCurrent(l1TokenAddress, { blockTag: claim.blockNumber })];
400
+ case 1: return [2, _b.apply(_a, [_c.sent()])];
401
+ }
402
+ });
403
+ }); }))];
404
+ case 2:
405
+ amountOfLPClaimed = (_a.sent()).reduce(function (prev, acc) { return acc.add(prev); }, utils_1.bnZero);
406
+ return [4, acceleratingDistributorContract.getUserStake(lpToken, userState.address)];
407
+ case 3:
408
+ cumulativeBalance = (_a.sent()).cumulativeBalance;
409
+ return [2, {
410
+ cumulativeBalance: cumulativeBalance,
411
+ amountAirdropped: amountOfLPClaimed,
412
+ }];
413
+ }
414
+ });
415
+ });
416
+ };
417
+ Client.prototype.calculateLpTransferValue = function (l1TokenAddress, userState) {
418
+ return tslib_1.__awaiter(this, void 0, void 0, function () {
419
+ var contract, pool, blockNumbers, exchangeRateTable, _a, _b, _c, _d;
420
+ var _this = this;
421
+ return tslib_1.__generator(this, function (_e) {
422
+ switch (_e.label) {
423
+ case 0:
424
+ (0, assert_1.default)(this.config.hasArchive, "Can only calculate historical lp values with archive node");
425
+ contract = this.getOrCreatePoolContract();
426
+ pool = new PoolState(contract, this.config.hubPoolAddress);
427
+ blockNumbers = userState.transferEvents
428
+ .map(function (x) { return x.blockNumber; })
429
+ .filter(function (blockNumber) { var _a, _b; return !((_b = (_a = _this.exchangeRateTable) === null || _a === void 0 ? void 0 : _a[l1TokenAddress]) === null || _b === void 0 ? void 0 : _b[blockNumber]); });
430
+ _a = this.updateExchangeRateTable;
431
+ _b = [l1TokenAddress];
432
+ _d = (_c = Object).fromEntries;
433
+ return [4, Promise.all(blockNumbers.map(function (blockNumber) { return tslib_1.__awaiter(_this, void 0, void 0, function () {
434
+ var _a;
435
+ return tslib_1.__generator(this, function (_b) {
436
+ switch (_b.label) {
437
+ case 0:
438
+ _a = [blockNumber];
439
+ return [4, pool.exchangeRateAtBlock(l1TokenAddress, blockNumber)];
440
+ case 1: return [2, _a.concat([_b.sent()])];
441
+ }
442
+ });
443
+ }); }))];
444
+ case 1:
445
+ exchangeRateTable = _a.apply(this, _b.concat([_d.apply(_c, [_e.sent()])]));
446
+ return [2, userState.transferEvents.reduce(function (result, transfer) {
447
+ var exchangeRate = exchangeRateTable[transfer.blockNumber];
448
+ if (transfer.args.to === userState.address) {
449
+ return result.add(transfer.args.value.mul(exchangeRate).div(utils_1.fixedPointAdjustment));
450
+ }
451
+ if (transfer.args.from === userState.address) {
452
+ return result.sub(transfer.args.value.mul(exchangeRate).div(utils_1.fixedPointAdjustment));
453
+ }
454
+ return result;
455
+ }, utils_1.bnZero)];
456
+ }
457
+ });
458
+ });
459
+ };
460
+ Client.prototype.getOrCreateTransactionManager = function (signer, address) {
461
+ var _this = this;
383
462
  if (this.transactionManagers[address])
384
463
  return this.transactionManagers[address];
385
- const txman = TransactionManager({ confirmations: this.config.confirmations }, signer, (event, id, data) => {
464
+ var txman = TransactionManager({ confirmations: this.config.confirmations }, signer, function (event, id, data) {
386
465
  if (event === "submitted") {
387
- this.state.transactions[id].state = event;
388
- this.state.transactions[id].hash = data;
389
- this.emit(["transactions", id], { ...this.state.transactions[id] });
466
+ _this.state.transactions[id].state = event;
467
+ _this.state.transactions[id].hash = data;
468
+ _this.emit(["transactions", id], tslib_1.__assign({}, _this.state.transactions[id]));
390
469
  }
391
470
  if (event === "mined") {
392
- const txReceipt = data;
393
- this.state.transactions[id].state = event;
394
- this.state.transactions[id].receipt = txReceipt;
395
- this.emit(["transactions", id], { ...this.state.transactions[id] });
396
- const tx = this.state.transactions[id];
397
- this.updateUserWithTransaction(tx.fromAddress, txReceipt).catch((err) => {
398
- this.emit(["error"], err);
471
+ var txReceipt = data;
472
+ _this.state.transactions[id].state = event;
473
+ _this.state.transactions[id].receipt = txReceipt;
474
+ _this.emit(["transactions", id], tslib_1.__assign({}, _this.state.transactions[id]));
475
+ var tx = _this.state.transactions[id];
476
+ _this.updateUserWithTransaction(tx.fromAddress, txReceipt).catch(function (err) {
477
+ _this.emit(["error"], err);
399
478
  });
400
479
  }
401
480
  if (event === "error") {
402
- this.state.transactions[id].state = event;
403
- this.state.transactions[id].error = data;
404
- this.emit(["transactions", id], { ...this.state.transactions[id] });
481
+ _this.state.transactions[id].state = event;
482
+ _this.state.transactions[id].error = data;
483
+ _this.emit(["transactions", id], tslib_1.__assign({}, _this.state.transactions[id]));
405
484
  }
406
485
  });
407
486
  this.transactionManagers[address] = txman;
408
487
  return txman;
409
- }
410
- async addEthLiquidity(signer, l1TokenAmount, overrides = {}) {
411
- const { hubPoolAddress, wethAddress: l1Token } = this.config;
412
- const userAddress = await signer.getAddress();
413
- const contract = this.getOrCreatePoolContract();
414
- const txman = this.getOrCreateTransactionManager(signer, userAddress);
415
- const request = await contract.populateTransaction.addLiquidity(l1Token, l1TokenAmount, {
416
- ...overrides,
417
- value: l1TokenAmount,
488
+ };
489
+ Client.prototype.addEthLiquidity = function (signer_1, l1TokenAmount_1) {
490
+ return tslib_1.__awaiter(this, arguments, void 0, function (signer, l1TokenAmount, overrides) {
491
+ var _a, hubPoolAddress, l1Token, userAddress, contract, txman, request, id;
492
+ if (overrides === void 0) { overrides = {}; }
493
+ return tslib_1.__generator(this, function (_b) {
494
+ switch (_b.label) {
495
+ case 0:
496
+ _a = this.config, hubPoolAddress = _a.hubPoolAddress, l1Token = _a.wethAddress;
497
+ return [4, signer.getAddress()];
498
+ case 1:
499
+ userAddress = _b.sent();
500
+ contract = this.getOrCreatePoolContract();
501
+ txman = this.getOrCreateTransactionManager(signer, userAddress);
502
+ return [4, contract.populateTransaction.addLiquidity(l1Token, l1TokenAmount, tslib_1.__assign(tslib_1.__assign({}, overrides), { value: l1TokenAmount }))];
503
+ case 2:
504
+ request = _b.sent();
505
+ id = txman.request(request);
506
+ this.state.transactions[id] = {
507
+ id: id,
508
+ state: "requested",
509
+ toAddress: hubPoolAddress,
510
+ fromAddress: userAddress,
511
+ type: "Add Liquidity",
512
+ description: "Adding ETH to pool",
513
+ request: request,
514
+ };
515
+ this.emit(["transactions", id], tslib_1.__assign({}, this.state.transactions[id]));
516
+ return [4, txman.update()];
517
+ case 3:
518
+ _b.sent();
519
+ return [2, id];
520
+ }
521
+ });
418
522
  });
419
- const id = txman.request(request);
420
- this.state.transactions[id] = {
421
- id,
422
- state: "requested",
423
- toAddress: hubPoolAddress,
424
- fromAddress: userAddress,
425
- type: "Add Liquidity",
426
- description: "Adding ETH to pool",
427
- request,
428
- };
429
- this.emit(["transactions", id], { ...this.state.transactions[id] });
430
- await txman.update();
431
- return id;
432
- }
433
- async addTokenLiquidity(signer, l1Token, l1TokenAmount, overrides = {}) {
434
- const { hubPoolAddress } = this.config;
435
- const userAddress = await signer.getAddress();
436
- const contract = this.getOrCreatePoolContract();
437
- const txman = this.getOrCreateTransactionManager(signer, userAddress);
438
- const request = await contract.populateTransaction.addLiquidity(l1Token, l1TokenAmount, overrides);
439
- const id = await txman.request(request);
440
- this.state.transactions[id] = {
441
- id,
442
- state: "requested",
443
- toAddress: hubPoolAddress,
444
- fromAddress: userAddress,
445
- type: "Add Liquidity",
446
- description: "Adding Tokens to pool",
447
- request,
448
- };
449
- this.emit(["transactions", id], { ...this.state.transactions[id] });
450
- await txman.update();
451
- return id;
452
- }
453
- async validateWithdraw(l1Token, userAddress, lpAmount) {
454
- await this.updatePool(l1Token);
455
- const poolState = this.getPoolState(l1Token);
456
- if (!this.hasUserState(l1Token, userAddress)) {
457
- await this.updateUser(l1Token, userAddress);
458
- }
459
- const userState = this.getUserState(poolState.l1Token, userAddress);
460
- return validateWithdraw(poolState, userState, lpAmount);
461
- }
462
- async removeTokenLiquidity(signer, l1Token, lpTokenAmount, overrides = {}) {
463
- const { hubPoolAddress } = this.config;
464
- const userAddress = await signer.getAddress();
465
- await this.validateWithdraw(l1Token, userAddress, lpTokenAmount);
466
- const contract = this.getOrCreatePoolContract();
467
- const txman = this.getOrCreateTransactionManager(signer, userAddress);
468
- const request = await contract.populateTransaction.removeLiquidity(l1Token, lpTokenAmount, false, overrides);
469
- const id = await txman.request(request);
470
- this.state.transactions[id] = {
471
- id,
472
- state: "requested",
473
- toAddress: hubPoolAddress,
474
- fromAddress: userAddress,
475
- type: "Remove Liquidity",
476
- description: "Withdrawing Tokens from pool",
477
- request,
478
- };
479
- this.emit(["transactions", id], { ...this.state.transactions[id] });
480
- await txman.update();
481
- return id;
482
- }
483
- async removeEthliquidity(signer, lpTokenAmount, overrides = {}) {
484
- const { hubPoolAddress, wethAddress: l1Token } = this.config;
485
- const userAddress = await signer.getAddress();
486
- await this.validateWithdraw(l1Token, userAddress, lpTokenAmount);
487
- const contract = this.getOrCreatePoolContract();
488
- const txman = this.getOrCreateTransactionManager(signer, userAddress);
489
- const request = await contract.populateTransaction.removeLiquidity(l1Token, lpTokenAmount, true, overrides);
490
- const id = await txman.request(request);
491
- this.state.transactions[id] = {
492
- id,
493
- state: "requested",
494
- toAddress: hubPoolAddress,
495
- fromAddress: userAddress,
496
- type: "Remove Liquidity",
497
- description: "Withdrawing Eth from pool",
498
- request,
499
- };
500
- this.emit(["transactions", id], { ...this.state.transactions[id] });
501
- await txman.update();
502
- return id;
503
- }
504
- getPoolState(l1TokenAddress) {
523
+ };
524
+ Client.prototype.addTokenLiquidity = function (signer_1, l1Token_1, l1TokenAmount_1) {
525
+ return tslib_1.__awaiter(this, arguments, void 0, function (signer, l1Token, l1TokenAmount, overrides) {
526
+ var hubPoolAddress, userAddress, contract, txman, request, id;
527
+ if (overrides === void 0) { overrides = {}; }
528
+ return tslib_1.__generator(this, function (_a) {
529
+ switch (_a.label) {
530
+ case 0:
531
+ hubPoolAddress = this.config.hubPoolAddress;
532
+ return [4, signer.getAddress()];
533
+ case 1:
534
+ userAddress = _a.sent();
535
+ contract = this.getOrCreatePoolContract();
536
+ txman = this.getOrCreateTransactionManager(signer, userAddress);
537
+ return [4, contract.populateTransaction.addLiquidity(l1Token, l1TokenAmount, overrides)];
538
+ case 2:
539
+ request = _a.sent();
540
+ return [4, txman.request(request)];
541
+ case 3:
542
+ id = _a.sent();
543
+ this.state.transactions[id] = {
544
+ id: id,
545
+ state: "requested",
546
+ toAddress: hubPoolAddress,
547
+ fromAddress: userAddress,
548
+ type: "Add Liquidity",
549
+ description: "Adding Tokens to pool",
550
+ request: request,
551
+ };
552
+ this.emit(["transactions", id], tslib_1.__assign({}, this.state.transactions[id]));
553
+ return [4, txman.update()];
554
+ case 4:
555
+ _a.sent();
556
+ return [2, id];
557
+ }
558
+ });
559
+ });
560
+ };
561
+ Client.prototype.validateWithdraw = function (l1Token, userAddress, lpAmount) {
562
+ return tslib_1.__awaiter(this, void 0, void 0, function () {
563
+ var poolState, userState;
564
+ return tslib_1.__generator(this, function (_a) {
565
+ switch (_a.label) {
566
+ case 0: return [4, this.updatePool(l1Token)];
567
+ case 1:
568
+ _a.sent();
569
+ poolState = this.getPoolState(l1Token);
570
+ if (!!this.hasUserState(l1Token, userAddress)) return [3, 3];
571
+ return [4, this.updateUser(l1Token, userAddress)];
572
+ case 2:
573
+ _a.sent();
574
+ _a.label = 3;
575
+ case 3:
576
+ userState = this.getUserState(poolState.l1Token, userAddress);
577
+ return [2, validateWithdraw(poolState, userState, lpAmount)];
578
+ }
579
+ });
580
+ });
581
+ };
582
+ Client.prototype.removeTokenLiquidity = function (signer_1, l1Token_1, lpTokenAmount_1) {
583
+ return tslib_1.__awaiter(this, arguments, void 0, function (signer, l1Token, lpTokenAmount, overrides) {
584
+ var hubPoolAddress, userAddress, contract, txman, request, id;
585
+ if (overrides === void 0) { overrides = {}; }
586
+ return tslib_1.__generator(this, function (_a) {
587
+ switch (_a.label) {
588
+ case 0:
589
+ hubPoolAddress = this.config.hubPoolAddress;
590
+ return [4, signer.getAddress()];
591
+ case 1:
592
+ userAddress = _a.sent();
593
+ return [4, this.validateWithdraw(l1Token, userAddress, lpTokenAmount)];
594
+ case 2:
595
+ _a.sent();
596
+ contract = this.getOrCreatePoolContract();
597
+ txman = this.getOrCreateTransactionManager(signer, userAddress);
598
+ return [4, contract.populateTransaction.removeLiquidity(l1Token, lpTokenAmount, false, overrides)];
599
+ case 3:
600
+ request = _a.sent();
601
+ return [4, txman.request(request)];
602
+ case 4:
603
+ id = _a.sent();
604
+ this.state.transactions[id] = {
605
+ id: id,
606
+ state: "requested",
607
+ toAddress: hubPoolAddress,
608
+ fromAddress: userAddress,
609
+ type: "Remove Liquidity",
610
+ description: "Withdrawing Tokens from pool",
611
+ request: request,
612
+ };
613
+ this.emit(["transactions", id], tslib_1.__assign({}, this.state.transactions[id]));
614
+ return [4, txman.update()];
615
+ case 5:
616
+ _a.sent();
617
+ return [2, id];
618
+ }
619
+ });
620
+ });
621
+ };
622
+ Client.prototype.removeEthliquidity = function (signer_1, lpTokenAmount_1) {
623
+ return tslib_1.__awaiter(this, arguments, void 0, function (signer, lpTokenAmount, overrides) {
624
+ var _a, hubPoolAddress, l1Token, userAddress, contract, txman, request, id;
625
+ if (overrides === void 0) { overrides = {}; }
626
+ return tslib_1.__generator(this, function (_b) {
627
+ switch (_b.label) {
628
+ case 0:
629
+ _a = this.config, hubPoolAddress = _a.hubPoolAddress, l1Token = _a.wethAddress;
630
+ return [4, signer.getAddress()];
631
+ case 1:
632
+ userAddress = _b.sent();
633
+ return [4, this.validateWithdraw(l1Token, userAddress, lpTokenAmount)];
634
+ case 2:
635
+ _b.sent();
636
+ contract = this.getOrCreatePoolContract();
637
+ txman = this.getOrCreateTransactionManager(signer, userAddress);
638
+ return [4, contract.populateTransaction.removeLiquidity(l1Token, lpTokenAmount, true, overrides)];
639
+ case 3:
640
+ request = _b.sent();
641
+ return [4, txman.request(request)];
642
+ case 4:
643
+ id = _b.sent();
644
+ this.state.transactions[id] = {
645
+ id: id,
646
+ state: "requested",
647
+ toAddress: hubPoolAddress,
648
+ fromAddress: userAddress,
649
+ type: "Remove Liquidity",
650
+ description: "Withdrawing Eth from pool",
651
+ request: request,
652
+ };
653
+ this.emit(["transactions", id], tslib_1.__assign({}, this.state.transactions[id]));
654
+ return [4, txman.update()];
655
+ case 5:
656
+ _b.sent();
657
+ return [2, id];
658
+ }
659
+ });
660
+ });
661
+ };
662
+ Client.prototype.getPoolState = function (l1TokenAddress) {
505
663
  return this.state.pools[l1TokenAddress];
506
- }
507
- hasPoolState(l1TokenAddress) {
664
+ };
665
+ Client.prototype.hasPoolState = function (l1TokenAddress) {
508
666
  return Boolean(this.state.pools[l1TokenAddress]);
509
- }
510
- setUserState(l1TokenAddress, userAddress, state) {
667
+ };
668
+ Client.prototype.setUserState = function (l1TokenAddress, userAddress, state) {
511
669
  (0, set_1.default)(this.state, ["users", userAddress, l1TokenAddress], state);
512
670
  return state;
513
- }
514
- getUserState(l1TokenAddress, userAddress) {
671
+ };
672
+ Client.prototype.getUserState = function (l1TokenAddress, userAddress) {
515
673
  return (0, get_1.default)(this.state, ["users", userAddress, l1TokenAddress]);
516
- }
517
- hasUserState(l1TokenAddress, userAddress) {
674
+ };
675
+ Client.prototype.hasUserState = function (l1TokenAddress, userAddress) {
518
676
  return (0, has_1.default)(this.state, ["users", userAddress, l1TokenAddress]);
519
- }
520
- hasTxState(id) {
677
+ };
678
+ Client.prototype.hasTxState = function (id) {
521
679
  return (0, has_1.default)(this.state, ["transactions", id]);
522
- }
523
- getTxState(id) {
680
+ };
681
+ Client.prototype.getTxState = function (id) {
524
682
  return (0, get_1.default)(this.state, ["transactions", id]);
525
- }
526
- async updateAndEmitUser(userState, poolState, poolEventState) {
527
- const { l1Token: l1TokenAddress, lpToken } = poolState;
528
- const { address: userAddress } = userState;
529
- const transferValue = this.config.hasArchive
530
- ? await this.calculateLpTransferValue(l1TokenAddress, userState)
531
- : utils_1.bnZero;
532
- const stakeData = await this.resolveStakingData(lpToken, l1TokenAddress, userState);
533
- const tokenEventState = poolEventState[l1TokenAddress];
534
- const newUserState = this.setUserState(l1TokenAddress, userAddress, joinUserState(poolState, tokenEventState, userState, transferValue, stakeData.cumulativeBalance, stakeData.amountAirdropped));
535
- this.emit(["users", userAddress, l1TokenAddress], newUserState);
536
- }
537
- async updateUserWithTransaction(userAddress, txReceipt) {
538
- const latestBlock = await this.deps.provider.getBlock("latest");
539
- const getPoolEventState = this.getOrCreatePoolEvents();
540
- const l1TokenAddress = getPoolEventState.getL1TokenFromReceipt(txReceipt);
541
- await this.updatePool(l1TokenAddress, latestBlock);
542
- const poolState = this.getPoolState(l1TokenAddress);
543
- const poolEventState = getPoolEventState.readTxReceipt(txReceipt);
544
- const lpToken = poolState.lpToken;
545
- const getUserState = this.getOrCreateUserService(userAddress, lpToken);
546
- const userState = await getUserState.read(latestBlock.number);
547
- await this.updateAndEmitUser(userState, poolState, poolEventState);
548
- }
549
- async updateUser(userAddress, l1TokenAddress) {
550
- const latestBlock = await this.deps.provider.getBlock("latest");
551
- await this.updatePool(l1TokenAddress, latestBlock);
552
- const poolState = this.getPoolState(l1TokenAddress);
553
- const lpToken = poolState.lpToken;
554
- const getPoolEventState = this.getOrCreatePoolEvents();
555
- const poolEventState = await getPoolEventState.read(latestBlock.number, l1TokenAddress, userAddress);
556
- const getUserState = this.getOrCreateUserService(userAddress, lpToken);
557
- const userState = await getUserState.read(latestBlock.number);
558
- await this.updateAndEmitUser(userState, poolState, poolEventState);
559
- }
560
- async updatePool(l1TokenAddress, overrideLatestBlock) {
561
- const { blockDelta = DEFAULT_BLOCK_DELTA } = this.config;
562
- const contract = this.getOrCreatePoolContract();
563
- const pool = new PoolState(contract, this.config.hubPoolAddress);
564
- const latestBlock = overrideLatestBlock || (await this.deps.provider.getBlock("latest"));
565
- const previousBlock = await this.deps.provider.getBlock(latestBlock.number - blockDelta);
566
- const state = await pool.read(l1TokenAddress, latestBlock.number, previousBlock.number);
567
- let rateModel = undefined;
568
- try {
569
- rateModel = await this.configStoreClient.getRateModel(l1TokenAddress);
570
- }
571
- catch (err) {
572
- this.emit(["error"], err);
573
- }
574
- this.state.pools[l1TokenAddress] = joinPoolState(state, latestBlock, previousBlock, rateModel);
575
- this.emit(["pools", l1TokenAddress], this.state.pools[l1TokenAddress]);
576
- }
577
- async updateTransactions() {
578
- for (const txMan of Object.values(this.transactionManagers)) {
579
- try {
580
- await txMan.update();
581
- }
582
- catch (err) {
583
- this.emit(["error"], err);
584
- }
585
- }
586
- }
587
- startInterval(delayMs = 30000) {
683
+ };
684
+ Client.prototype.updateAndEmitUser = function (userState, poolState, poolEventState) {
685
+ return tslib_1.__awaiter(this, void 0, void 0, function () {
686
+ var l1TokenAddress, lpToken, userAddress, transferValue, _a, stakeData, tokenEventState, newUserState;
687
+ return tslib_1.__generator(this, function (_b) {
688
+ switch (_b.label) {
689
+ case 0:
690
+ l1TokenAddress = poolState.l1Token, lpToken = poolState.lpToken;
691
+ userAddress = userState.address;
692
+ if (!this.config.hasArchive) return [3, 2];
693
+ return [4, this.calculateLpTransferValue(l1TokenAddress, userState)];
694
+ case 1:
695
+ _a = _b.sent();
696
+ return [3, 3];
697
+ case 2:
698
+ _a = utils_1.bnZero;
699
+ _b.label = 3;
700
+ case 3:
701
+ transferValue = _a;
702
+ return [4, this.resolveStakingData(lpToken, l1TokenAddress, userState)];
703
+ case 4:
704
+ stakeData = _b.sent();
705
+ tokenEventState = poolEventState[l1TokenAddress];
706
+ newUserState = this.setUserState(l1TokenAddress, userAddress, joinUserState(poolState, tokenEventState, userState, transferValue, stakeData.cumulativeBalance, stakeData.amountAirdropped));
707
+ this.emit(["users", userAddress, l1TokenAddress], newUserState);
708
+ return [2];
709
+ }
710
+ });
711
+ });
712
+ };
713
+ Client.prototype.updateUserWithTransaction = function (userAddress, txReceipt) {
714
+ return tslib_1.__awaiter(this, void 0, void 0, function () {
715
+ var latestBlock, getPoolEventState, l1TokenAddress, poolState, poolEventState, lpToken, getUserState, userState;
716
+ return tslib_1.__generator(this, function (_a) {
717
+ switch (_a.label) {
718
+ case 0: return [4, this.deps.provider.getBlock("latest")];
719
+ case 1:
720
+ latestBlock = _a.sent();
721
+ getPoolEventState = this.getOrCreatePoolEvents();
722
+ l1TokenAddress = getPoolEventState.getL1TokenFromReceipt(txReceipt);
723
+ return [4, this.updatePool(l1TokenAddress, latestBlock)];
724
+ case 2:
725
+ _a.sent();
726
+ poolState = this.getPoolState(l1TokenAddress);
727
+ poolEventState = getPoolEventState.readTxReceipt(txReceipt);
728
+ lpToken = poolState.lpToken;
729
+ getUserState = this.getOrCreateUserService(userAddress, lpToken);
730
+ return [4, getUserState.read(latestBlock.number)];
731
+ case 3:
732
+ userState = _a.sent();
733
+ return [4, this.updateAndEmitUser(userState, poolState, poolEventState)];
734
+ case 4:
735
+ _a.sent();
736
+ return [2];
737
+ }
738
+ });
739
+ });
740
+ };
741
+ Client.prototype.updateUser = function (userAddress, l1TokenAddress) {
742
+ return tslib_1.__awaiter(this, void 0, void 0, function () {
743
+ var latestBlock, poolState, lpToken, getPoolEventState, poolEventState, getUserState, userState;
744
+ return tslib_1.__generator(this, function (_a) {
745
+ switch (_a.label) {
746
+ case 0: return [4, this.deps.provider.getBlock("latest")];
747
+ case 1:
748
+ latestBlock = _a.sent();
749
+ return [4, this.updatePool(l1TokenAddress, latestBlock)];
750
+ case 2:
751
+ _a.sent();
752
+ poolState = this.getPoolState(l1TokenAddress);
753
+ lpToken = poolState.lpToken;
754
+ getPoolEventState = this.getOrCreatePoolEvents();
755
+ return [4, getPoolEventState.read(latestBlock.number, l1TokenAddress, userAddress)];
756
+ case 3:
757
+ poolEventState = _a.sent();
758
+ getUserState = this.getOrCreateUserService(userAddress, lpToken);
759
+ return [4, getUserState.read(latestBlock.number)];
760
+ case 4:
761
+ userState = _a.sent();
762
+ return [4, this.updateAndEmitUser(userState, poolState, poolEventState)];
763
+ case 5:
764
+ _a.sent();
765
+ return [2];
766
+ }
767
+ });
768
+ });
769
+ };
770
+ Client.prototype.updatePool = function (l1TokenAddress, overrideLatestBlock) {
771
+ return tslib_1.__awaiter(this, void 0, void 0, function () {
772
+ var _a, blockDelta, contract, pool, latestBlock, _b, previousBlock, state, rateModel, err_1;
773
+ return tslib_1.__generator(this, function (_c) {
774
+ switch (_c.label) {
775
+ case 0:
776
+ _a = this.config.blockDelta, blockDelta = _a === void 0 ? DEFAULT_BLOCK_DELTA : _a;
777
+ contract = this.getOrCreatePoolContract();
778
+ pool = new PoolState(contract, this.config.hubPoolAddress);
779
+ _b = overrideLatestBlock;
780
+ if (_b) return [3, 2];
781
+ return [4, this.deps.provider.getBlock("latest")];
782
+ case 1:
783
+ _b = (_c.sent());
784
+ _c.label = 2;
785
+ case 2:
786
+ latestBlock = _b;
787
+ return [4, this.deps.provider.getBlock(latestBlock.number - blockDelta)];
788
+ case 3:
789
+ previousBlock = _c.sent();
790
+ return [4, pool.read(l1TokenAddress, latestBlock.number, previousBlock.number)];
791
+ case 4:
792
+ state = _c.sent();
793
+ rateModel = undefined;
794
+ _c.label = 5;
795
+ case 5:
796
+ _c.trys.push([5, 7, , 8]);
797
+ return [4, this.configStoreClient.getRateModel(l1TokenAddress)];
798
+ case 6:
799
+ rateModel = _c.sent();
800
+ return [3, 8];
801
+ case 7:
802
+ err_1 = _c.sent();
803
+ this.emit(["error"], err_1);
804
+ return [3, 8];
805
+ case 8:
806
+ this.state.pools[l1TokenAddress] = joinPoolState(state, latestBlock, previousBlock, rateModel);
807
+ this.emit(["pools", l1TokenAddress], this.state.pools[l1TokenAddress]);
808
+ return [2];
809
+ }
810
+ });
811
+ });
812
+ };
813
+ Client.prototype.updateTransactions = function () {
814
+ return tslib_1.__awaiter(this, void 0, void 0, function () {
815
+ var _i, _a, txMan, err_2;
816
+ return tslib_1.__generator(this, function (_b) {
817
+ switch (_b.label) {
818
+ case 0:
819
+ _i = 0, _a = Object.values(this.transactionManagers);
820
+ _b.label = 1;
821
+ case 1:
822
+ if (!(_i < _a.length)) return [3, 6];
823
+ txMan = _a[_i];
824
+ _b.label = 2;
825
+ case 2:
826
+ _b.trys.push([2, 4, , 5]);
827
+ return [4, txMan.update()];
828
+ case 3:
829
+ _b.sent();
830
+ return [3, 5];
831
+ case 4:
832
+ err_2 = _b.sent();
833
+ this.emit(["error"], err_2);
834
+ return [3, 5];
835
+ case 5:
836
+ _i++;
837
+ return [3, 1];
838
+ case 6: return [2];
839
+ }
840
+ });
841
+ });
842
+ };
843
+ Client.prototype.startInterval = function (delayMs) {
844
+ var _this = this;
845
+ if (delayMs === void 0) { delayMs = 30000; }
588
846
  (0, assert_1.default)(!this.intervalStarted, "Interval already started, try stopping first");
589
847
  this.intervalStarted = true;
590
- loop(async () => {
591
- (0, assert_1.default)(this.intervalStarted, "HubPool Interval Stopped");
592
- await this.updateTransactions();
593
- }, delayMs).catch((err) => {
594
- this.emit(["error"], err);
848
+ loop(function () { return tslib_1.__awaiter(_this, void 0, void 0, function () {
849
+ return tslib_1.__generator(this, function (_a) {
850
+ switch (_a.label) {
851
+ case 0:
852
+ (0, assert_1.default)(this.intervalStarted, "HubPool Interval Stopped");
853
+ return [4, this.updateTransactions()];
854
+ case 1:
855
+ _a.sent();
856
+ return [2];
857
+ }
858
+ });
859
+ }); }, delayMs).catch(function (err) {
860
+ _this.emit(["error"], err);
595
861
  });
596
- }
597
- stopInterval() {
862
+ };
863
+ Client.prototype.stopInterval = function () {
598
864
  this.intervalStarted = false;
599
- }
600
- }
865
+ };
866
+ return Client;
867
+ }());
601
868
  exports.Client = Client;
602
869
  //# sourceMappingURL=poolClient.js.map