@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
@@ -1,3 +1,4 @@
1
+ import { __assign, __awaiter, __generator } from "tslib";
1
2
  import _ from "lodash";
2
3
  import assert from "assert";
3
4
  import { providers } from "ethers";
@@ -10,23 +11,23 @@ import { isSlowFill, isValidEvmAddress, isDefined, chainIsEvm, toAddressType } f
10
11
  * @return The chain to send the refund to and the token to use for the refund.
11
12
  */
12
13
  export function getRefundInformationFromFill(relayData, hubPoolClient, bundleEndBlockForMainnet) {
13
- const chainToSendRefundTo = _getRepaymentChainId(relayData, hubPoolClient, bundleEndBlockForMainnet);
14
+ var chainToSendRefundTo = _getRepaymentChainId(relayData, hubPoolClient, bundleEndBlockForMainnet);
14
15
  if (chainToSendRefundTo === relayData.originChainId) {
15
16
  return {
16
- chainToSendRefundTo,
17
+ chainToSendRefundTo: chainToSendRefundTo,
17
18
  repaymentToken: relayData.inputToken,
18
19
  };
19
20
  }
20
21
  // Now figure out the equivalent L2 token for the repayment token. If the inputToken doesn't have a
21
22
  // PoolRebalanceRoute, then the repayment chain would have been the originChainId after the getRepaymentChainId()
22
23
  // call and we would have returned already, so the following call should always return a valid L1 token.
23
- const l1TokenCounterpart = hubPoolClient.getL1TokenForL2TokenAtBlock(relayData.inputToken, relayData.originChainId, bundleEndBlockForMainnet);
24
+ var l1TokenCounterpart = hubPoolClient.getL1TokenForL2TokenAtBlock(relayData.inputToken, relayData.originChainId, bundleEndBlockForMainnet);
24
25
  assert(isDefined(l1TokenCounterpart), "getRefundInformationFromFill: l1TokenCounterpart is undefined");
25
- const repaymentToken = hubPoolClient.getL2TokenForL1TokenAtBlock(l1TokenCounterpart, chainToSendRefundTo, bundleEndBlockForMainnet);
26
+ var repaymentToken = hubPoolClient.getL2TokenForL1TokenAtBlock(l1TokenCounterpart, chainToSendRefundTo, bundleEndBlockForMainnet);
26
27
  assert(isDefined(repaymentToken), "getRefundInformationFromFill: repaymentToken is undefined");
27
28
  return {
28
- chainToSendRefundTo,
29
- repaymentToken,
29
+ chainToSendRefundTo: chainToSendRefundTo,
30
+ repaymentToken: repaymentToken,
30
31
  };
31
32
  }
32
33
  /**
@@ -39,55 +40,56 @@ export function getRefundInformationFromFill(relayData, hubPoolClient, bundleEnd
39
40
  * and applied repayment address, or undefined if the applied repayment address is not valid for the
40
41
  * applied repayment chain.
41
42
  */
42
- export async function verifyFillRepayment(_fill, destinationChainProvider, matchedDeposit, hubPoolClient, bundleEndBlockForMainnet) {
43
- const fill = _.cloneDeep(_fill);
44
- // Slow fills don't result in repayments so they're always valid.
45
- if (isSlowFill(fill)) {
46
- return fill;
47
- }
48
- let repaymentChainId = _getRepaymentChainId({
49
- ...fill,
50
- fromLiteChain: matchedDeposit.fromLiteChain,
51
- }, hubPoolClient, bundleEndBlockForMainnet);
52
- // Repayments will always go to the fill.relayer address so check if its a valid EVM address. If its not, attempt
53
- // to change it to the msg.sender of the FilledRelay.
54
- if (_repaymentAddressNeedsToBeOverwritten(fill)) {
55
- // TODO: Handle case where fill was sent on non-EVM chain, in which case the following call would fail
56
- // or return something unexpected. We'd want to return undefined here.
57
- if (chainIsEvm(fill.destinationChainId)) {
58
- assert(destinationChainProvider instanceof providers.Provider, `BundleDataClient#verifyFillRepayment: unexpected destination chain provider for chain ID ${fill.destinationChainId}`);
59
- const fillTransaction = await destinationChainProvider.getTransaction(fill.txnRef);
60
- const destinationRelayer = fillTransaction?.from;
61
- // Repayment chain is still an EVM chain, but the msg.sender is a bytes32 address, so the fill is invalid.
62
- if (!isDefined(destinationRelayer) || !isValidEvmAddress(destinationRelayer)) {
63
- return undefined;
43
+ export function verifyFillRepayment(_fill, destinationChainProvider, matchedDeposit, hubPoolClient, bundleEndBlockForMainnet) {
44
+ return __awaiter(this, void 0, void 0, function () {
45
+ var fill, repaymentChainId, fillTransaction, destinationRelayer;
46
+ return __generator(this, function (_a) {
47
+ switch (_a.label) {
48
+ case 0:
49
+ fill = _.cloneDeep(_fill);
50
+ // Slow fills don't result in repayments so they're always valid.
51
+ if (isSlowFill(fill)) {
52
+ return [2 /*return*/, fill];
53
+ }
54
+ repaymentChainId = _getRepaymentChainId(__assign(__assign({}, fill), { fromLiteChain: matchedDeposit.fromLiteChain }), hubPoolClient, bundleEndBlockForMainnet);
55
+ if (!_repaymentAddressNeedsToBeOverwritten(fill)) return [3 /*break*/, 3];
56
+ if (!chainIsEvm(fill.destinationChainId)) return [3 /*break*/, 2];
57
+ assert(destinationChainProvider instanceof providers.Provider, "BundleDataClient#verifyFillRepayment: unexpected destination chain provider for chain ID ".concat(fill.destinationChainId));
58
+ return [4 /*yield*/, destinationChainProvider.getTransaction(fill.txnRef)];
59
+ case 1:
60
+ fillTransaction = _a.sent();
61
+ destinationRelayer = fillTransaction === null || fillTransaction === void 0 ? void 0 : fillTransaction.from;
62
+ // Repayment chain is still an EVM chain, but the msg.sender is a bytes32 address, so the fill is invalid.
63
+ if (!isDefined(destinationRelayer) || !isValidEvmAddress(destinationRelayer)) {
64
+ return [2 /*return*/, undefined];
65
+ }
66
+ // If we can switch the repayment chain to the destination chain, then do so. We should only switch if the
67
+ // destination chain has a valid repayment token that is equivalent to the deposited input token. This would
68
+ // also be the same mapping as the repayment token on the repayment chain.
69
+ if (!matchedDeposit.fromLiteChain &&
70
+ hubPoolClient.areTokensEquivalent(fill.inputToken, fill.originChainId, fill.outputToken, fill.destinationChainId)) {
71
+ repaymentChainId = fill.destinationChainId;
72
+ }
73
+ // If we can't switch the chain, then we need to verify that the msg.sender is a valid address on the repayment chain.
74
+ // Because we already checked that the `destinationRelayer` was a valid EVM address above, we only need to check
75
+ // that the repayment chain is an EVM chain.
76
+ else {
77
+ if (!chainIsEvm(repaymentChainId)) {
78
+ return [2 /*return*/, undefined];
79
+ }
80
+ }
81
+ fill.relayer = toAddressType(destinationRelayer, fill.destinationChainId);
82
+ assert(fill.relayer.isValidOn(fill.destinationChainId), "Cannot re-assign fill to msg.sender: ".concat(destinationRelayer));
83
+ return [3 /*break*/, 3];
84
+ case 2: return [2 /*return*/, undefined];
85
+ case 3:
86
+ // Repayment address is now valid and repayment chain is either origin chain for lite chain or the destination
87
+ // chain for cases where the repayment address was invalid. Fill should be valid now.
88
+ fill.repaymentChainId = repaymentChainId;
89
+ return [2 /*return*/, fill];
64
90
  }
65
- // If we can switch the repayment chain to the destination chain, then do so. We should only switch if the
66
- // destination chain has a valid repayment token that is equivalent to the deposited input token. This would
67
- // also be the same mapping as the repayment token on the repayment chain.
68
- if (!matchedDeposit.fromLiteChain &&
69
- hubPoolClient.areTokensEquivalent(fill.inputToken, fill.originChainId, fill.outputToken, fill.destinationChainId)) {
70
- repaymentChainId = fill.destinationChainId;
71
- }
72
- // If we can't switch the chain, then we need to verify that the msg.sender is a valid address on the repayment chain.
73
- // Because we already checked that the `destinationRelayer` was a valid EVM address above, we only need to check
74
- // that the repayment chain is an EVM chain.
75
- else {
76
- if (!chainIsEvm(repaymentChainId)) {
77
- return undefined;
78
- }
79
- }
80
- fill.relayer = toAddressType(destinationRelayer, fill.destinationChainId);
81
- assert(fill.relayer.isValidOn(fill.destinationChainId), `Cannot re-assign fill to msg.sender: ${destinationRelayer}`);
82
- }
83
- else {
84
- return undefined;
85
- }
86
- }
87
- // Repayment address is now valid and repayment chain is either origin chain for lite chain or the destination
88
- // chain for cases where the repayment address was invalid. Fill should be valid now.
89
- fill.repaymentChainId = repaymentChainId;
90
- return fill;
91
+ });
92
+ });
91
93
  }
92
94
  function _getRepaymentChainId(relayData, hubPoolClient, bundleEndBlockForMainnet) {
93
95
  if (relayData.fromLiteChain) {
@@ -100,8 +102,8 @@ function _getRepaymentChainId(relayData, hubPoolClient, bundleEndBlockForMainnet
100
102
  return relayData.destinationChainId;
101
103
  }
102
104
  // Repayment chain is valid if the input token and repayment chain are mapped to the same PoolRebalanceRoute and the repayment chain is not disabled in protocol.
103
- const repaymentTokenIsValid = _repaymentChainTokenIsValid(relayData, hubPoolClient, bundleEndBlockForMainnet);
104
- const repaymentChainIsValid = !hubPoolClient.configStoreClient
105
+ var repaymentTokenIsValid = _repaymentChainTokenIsValid(relayData, hubPoolClient, bundleEndBlockForMainnet);
106
+ var repaymentChainIsValid = !hubPoolClient.configStoreClient
105
107
  .getDisabledChainsForBlock(bundleEndBlockForMainnet)
106
108
  .includes(relayData.repaymentChainId);
107
109
  if (repaymentTokenIsValid && repaymentChainIsValid) {
@@ -114,7 +116,7 @@ function _repaymentChainTokenIsValid(relayData, hubPoolClient, bundleEndBlockFor
114
116
  if (!hubPoolClient.l2TokenHasPoolRebalanceRoute(relayData.inputToken, relayData.originChainId, bundleEndBlockForMainnet)) {
115
117
  return false;
116
118
  }
117
- const l1TokenCounterpart = hubPoolClient.getL1TokenForL2TokenAtBlock(relayData.inputToken, relayData.originChainId, bundleEndBlockForMainnet);
119
+ var l1TokenCounterpart = hubPoolClient.getL1TokenForL2TokenAtBlock(relayData.inputToken, relayData.originChainId, bundleEndBlockForMainnet);
118
120
  if (!l1TokenCounterpart) {
119
121
  return false;
120
122
  }
@@ -1 +1 @@
1
- {"version":3,"file":"FillUtils.js","sourceRoot":"","sources":["../../../../../src/clients/BundleDataClient/utils/FillUtils.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"FillUtils.js","sourceRoot":"","sources":["../../../../../src/clients/BundleDataClient/utils/FillUtils.ts"],"names":[],"mappings":"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"}
@@ -1,8 +1,9 @@
1
+ import { __assign } from "tslib";
1
2
  import { MerkleTree } from "@across-protocol/contracts";
2
3
  import { getParamType } from "../../../utils/ContractUtils";
3
4
  import { utils } from "ethers";
4
5
  export function buildPoolRebalanceLeafTree(poolRebalanceLeaves) {
5
- for (let i = 0; i < poolRebalanceLeaves.length; i++) {
6
+ for (var i = 0; i < poolRebalanceLeaves.length; i++) {
6
7
  // The 4 provided parallel arrays must be of equal length. Running Balances can optionally be 2x the length
7
8
  if (poolRebalanceLeaves[i].l1Tokens.length !== poolRebalanceLeaves[i].bundleLpFees.length ||
8
9
  poolRebalanceLeaves[i].netSendAmounts.length !== poolRebalanceLeaves[i].bundleLpFees.length) {
@@ -13,12 +14,9 @@ export function buildPoolRebalanceLeafTree(poolRebalanceLeaves) {
13
14
  throw new Error("Running balances length unexpected");
14
15
  }
15
16
  }
16
- const paramType = getParamType("MerkleLibTest", "verifyPoolRebalance", "rebalance");
17
- const hashFn = (input) => {
18
- const ethersLeaf = {
19
- ...input,
20
- l1Tokens: input.l1Tokens.map((l1Token) => l1Token.toEvmAddress()),
21
- };
17
+ var paramType = getParamType("MerkleLibTest", "verifyPoolRebalance", "rebalance");
18
+ var hashFn = function (input) {
19
+ var ethersLeaf = __assign(__assign({}, input), { l1Tokens: input.l1Tokens.map(function (l1Token) { return l1Token.toEvmAddress(); }) });
22
20
  return utils.keccak256(utils.defaultAbiCoder.encode([paramType], [ethersLeaf]));
23
21
  };
24
22
  return new MerkleTree(poolRebalanceLeaves, hashFn);
@@ -1 +1 @@
1
- {"version":3,"file":"MerkleTreeUtils.js","sourceRoot":"","sources":["../../../../../src/clients/BundleDataClient/utils/MerkleTreeUtils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;AAExD,OAAO,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;AAC5D,OAAO,EAAE,KAAK,EAAE,MAAM,QAAQ,CAAC;AAE/B,MAAM,UAAU,0BAA0B,CAAC,mBAAwC;IACjF,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,mBAAmB,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACpD,2GAA2G;QAC3G,IACE,mBAAmB,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,KAAK,mBAAmB,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,MAAM;YACrF,mBAAmB,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,MAAM,KAAK,mBAAmB,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,MAAM,EAC3F,CAAC;YACD,MAAM,IAAI,KAAK,CAAC,6CAA6C,CAAC,CAAC;QACjE,CAAC;QACD,IACE,mBAAmB,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,MAAM,KAAK,mBAAmB,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC;YAChG,mBAAmB,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,MAAM,KAAK,mBAAmB,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,MAAM,EAC5F,CAAC;YACD,MAAM,IAAI,KAAK,CAAC,oCAAoC,CAAC,CAAC;QACxD,CAAC;IACH,CAAC;IAED,MAAM,SAAS,GAAG,YAAY,CAAC,eAAe,EAAE,qBAAqB,EAAE,WAAW,CAAC,CAAC;IACpF,MAAM,MAAM,GAAG,CAAC,KAAwB,EAAE,EAAE;QAC1C,MAAM,UAAU,GAAG;YACjB,GAAG,KAAK;YACR,QAAQ,EAAE,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,YAAY,EAAE,CAAC;SAClE,CAAC;QACF,OAAO,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;IAClF,CAAC,CAAC;IACF,OAAO,IAAI,UAAU,CAAoB,mBAAmB,EAAE,MAAM,CAAC,CAAC;AACxE,CAAC"}
1
+ {"version":3,"file":"MerkleTreeUtils.js","sourceRoot":"","sources":["../../../../../src/clients/BundleDataClient/utils/MerkleTreeUtils.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;AAExD,OAAO,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;AAC5D,OAAO,EAAE,KAAK,EAAE,MAAM,QAAQ,CAAC;AAE/B,MAAM,UAAU,0BAA0B,CAAC,mBAAwC;IACjF,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,mBAAmB,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACpD,2GAA2G;QAC3G,IACE,mBAAmB,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,KAAK,mBAAmB,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,MAAM;YACrF,mBAAmB,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,MAAM,KAAK,mBAAmB,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,MAAM,EAC3F,CAAC;YACD,MAAM,IAAI,KAAK,CAAC,6CAA6C,CAAC,CAAC;QACjE,CAAC;QACD,IACE,mBAAmB,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,MAAM,KAAK,mBAAmB,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC;YAChG,mBAAmB,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,MAAM,KAAK,mBAAmB,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,MAAM,EAC5F,CAAC;YACD,MAAM,IAAI,KAAK,CAAC,oCAAoC,CAAC,CAAC;QACxD,CAAC;IACH,CAAC;IAED,IAAM,SAAS,GAAG,YAAY,CAAC,eAAe,EAAE,qBAAqB,EAAE,WAAW,CAAC,CAAC;IACpF,IAAM,MAAM,GAAG,UAAC,KAAwB;QACtC,IAAM,UAAU,yBACX,KAAK,KACR,QAAQ,EAAE,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,UAAC,OAAO,IAAK,OAAA,OAAO,CAAC,YAAY,EAAE,EAAtB,CAAsB,CAAC,GAClE,CAAC;QACF,OAAO,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;IAClF,CAAC,CAAC;IACF,OAAO,IAAI,UAAU,CAAoB,mBAAmB,EAAE,MAAM,CAAC,CAAC;AACxE,CAAC"}
@@ -1,3 +1,4 @@
1
+ import { __awaiter, __generator } from "tslib";
1
2
  import { isSVMSpokePoolClient } from "../../SpokePoolClient";
2
3
  import { bnZero, chainIsEvm, chainIsSvm, compareAddresses, EvmAddress, isDefined } from "../../../utils";
3
4
  import { getLatestFinalizedSlotWithBlock } from "../../../arch/svm";
@@ -6,53 +7,61 @@ import assert from "assert";
6
7
  // when evaluating pending root bundle. The block end numbers must be less than the latest blocks for each chain ID
7
8
  // (because we can't evaluate events in the future), and greater than the expected start blocks, which are the
8
9
  // greater of 0 and the latest bundle end block for an executed root bundle proposal + 1.
9
- export async function getWidestPossibleExpectedBlockRange(chainIds, spokeClients, endBlockBuffers, clients, latestMainnetBlock, enabledChains, optimistic = false) {
10
- // We impose a buffer on the head of the chain to increase the probability that the received blocks are final.
11
- // Reducing the latest block that we query also gives partially filled deposits slightly more buffer for relayers
12
- // to fully fill the deposit and reduces the chance that the data worker includes a slow fill payment that gets
13
- // filled during the challenge period.
14
- const resolveEndBlock = (chainId, idx) => Math.max(spokeClients[chainId].latestHeightSearched - endBlockBuffers[idx], 0);
15
- // Across bundles are bounded by slots on Solana. The UMIP requires that the bundle end slot is backed by a block.
16
- const resolveSVMEndBlock = (chainId, idx) => {
17
- const spokePoolClient = spokeClients[chainId];
18
- assert(isSVMSpokePoolClient(spokePoolClient));
19
- const maxSlot = resolveEndBlock(chainId, idx); // Respect any configured buffer for Solana.
20
- return getLatestFinalizedSlotWithBlock(spokePoolClient.svmEventsClient.getRpc(), spokePoolClient.logger, BigInt(maxSlot));
21
- };
22
- const latestPossibleBundleEndBlockNumbers = await Promise.all(chainIds.map((chainId, idx) => {
23
- if (!enabledChains.includes(chainId) || !isDefined(spokeClients[chainId])) {
24
- return -1; // Chain is disabled; end block is redundant and will be overridden later.
25
- }
26
- if (chainIsEvm(chainId)) {
27
- return Promise.resolve(resolveEndBlock(chainId, idx));
28
- }
29
- if (chainIsSvm(chainId)) {
30
- return resolveSVMEndBlock(chainId, idx);
31
- }
32
- assert(false, `Unsupported chainId: ${chainId}`);
33
- }));
34
- return chainIds.map((chainId, index) => {
35
- const lastEndBlockForChain = clients.hubPoolClient.getLatestBundleEndBlockForChain(chainIds, latestMainnetBlock, chainId);
36
- // If chain is disabled, re-use the latest bundle end block for the chain as both the start
37
- // and end block.
38
- if (!enabledChains.includes(chainId)) {
39
- return [lastEndBlockForChain, lastEndBlockForChain];
40
- }
41
- // If the latest block hasn't advanced enough from the previous proposed end block, then re-use it. It will
42
- // be regarded as disabled by the Dataworker clients. Otherwise, add 1 to the previous proposed end block.
43
- if (lastEndBlockForChain >= latestPossibleBundleEndBlockNumbers[index]) {
44
- // @dev: Without this check, then `getNextBundleStartBlockNumber` could return `latestBlock+1` even when the
45
- // latest block for the chain hasn't advanced, resulting in an invalid range being produced.
46
- return [lastEndBlockForChain, lastEndBlockForChain];
47
- }
48
- // Chain has advanced far enough including the buffer, return range from previous proposed end block + 1 to
49
- // latest block for chain minus buffer.
50
- return [
51
- optimistic
52
- ? clients.hubPoolClient.getOptimisticBundleStartBlockNumber(chainIds, latestMainnetBlock, chainId)
53
- : clients.hubPoolClient.getNextBundleStartBlockNumber(chainIds, latestMainnetBlock, chainId),
54
- latestPossibleBundleEndBlockNumbers[index],
55
- ];
10
+ export function getWidestPossibleExpectedBlockRange(chainIds_1, spokeClients_1, endBlockBuffers_1, clients_1, latestMainnetBlock_1, enabledChains_1) {
11
+ return __awaiter(this, arguments, void 0, function (chainIds, spokeClients, endBlockBuffers, clients, latestMainnetBlock, enabledChains, optimistic) {
12
+ var resolveEndBlock, resolveSVMEndBlock, latestPossibleBundleEndBlockNumbers;
13
+ if (optimistic === void 0) { optimistic = false; }
14
+ return __generator(this, function (_a) {
15
+ switch (_a.label) {
16
+ case 0:
17
+ resolveEndBlock = function (chainId, idx) {
18
+ return Math.max(spokeClients[chainId].latestHeightSearched - endBlockBuffers[idx], 0);
19
+ };
20
+ resolveSVMEndBlock = function (chainId, idx) {
21
+ var spokePoolClient = spokeClients[chainId];
22
+ assert(isSVMSpokePoolClient(spokePoolClient));
23
+ var maxSlot = resolveEndBlock(chainId, idx); // Respect any configured buffer for Solana.
24
+ return getLatestFinalizedSlotWithBlock(spokePoolClient.svmEventsClient.getRpc(), spokePoolClient.logger, BigInt(maxSlot));
25
+ };
26
+ return [4 /*yield*/, Promise.all(chainIds.map(function (chainId, idx) {
27
+ if (!enabledChains.includes(chainId) || !isDefined(spokeClients[chainId])) {
28
+ return -1; // Chain is disabled; end block is redundant and will be overridden later.
29
+ }
30
+ if (chainIsEvm(chainId)) {
31
+ return Promise.resolve(resolveEndBlock(chainId, idx));
32
+ }
33
+ if (chainIsSvm(chainId)) {
34
+ return resolveSVMEndBlock(chainId, idx);
35
+ }
36
+ assert(false, "Unsupported chainId: ".concat(chainId));
37
+ }))];
38
+ case 1:
39
+ latestPossibleBundleEndBlockNumbers = _a.sent();
40
+ return [2 /*return*/, chainIds.map(function (chainId, index) {
41
+ var lastEndBlockForChain = clients.hubPoolClient.getLatestBundleEndBlockForChain(chainIds, latestMainnetBlock, chainId);
42
+ // If chain is disabled, re-use the latest bundle end block for the chain as both the start
43
+ // and end block.
44
+ if (!enabledChains.includes(chainId)) {
45
+ return [lastEndBlockForChain, lastEndBlockForChain];
46
+ }
47
+ // If the latest block hasn't advanced enough from the previous proposed end block, then re-use it. It will
48
+ // be regarded as disabled by the Dataworker clients. Otherwise, add 1 to the previous proposed end block.
49
+ if (lastEndBlockForChain >= latestPossibleBundleEndBlockNumbers[index]) {
50
+ // @dev: Without this check, then `getNextBundleStartBlockNumber` could return `latestBlock+1` even when the
51
+ // latest block for the chain hasn't advanced, resulting in an invalid range being produced.
52
+ return [lastEndBlockForChain, lastEndBlockForChain];
53
+ }
54
+ // Chain has advanced far enough including the buffer, return range from previous proposed end block + 1 to
55
+ // latest block for chain minus buffer.
56
+ return [
57
+ optimistic
58
+ ? clients.hubPoolClient.getOptimisticBundleStartBlockNumber(chainIds, latestMainnetBlock, chainId)
59
+ : clients.hubPoolClient.getNextBundleStartBlockNumber(chainIds, latestMainnetBlock, chainId),
60
+ latestPossibleBundleEndBlockNumbers[index],
61
+ ];
62
+ })];
63
+ }
64
+ });
56
65
  });
57
66
  }
58
67
  export function isChainDisabledAtBlock(chainId, mainnetBlock, configStoreClient) {
@@ -72,7 +81,7 @@ export function computeDesiredTransferAmountToSpoke(runningBalance, spokePoolTar
72
81
  }
73
82
  // We are left with the case where the spoke pool is beyond the threshold.
74
83
  // A transfer needs to be initiated to bring it down to the target.
75
- const transferSize = runningBalance.abs().sub(spokePoolTargetBalance.target);
84
+ var transferSize = runningBalance.abs().sub(spokePoolTargetBalance.target);
76
85
  // If the transferSize is < 0, this indicates that the target is still above the running balance.
77
86
  // This can only happen if the threshold is less than the target. This is likely due to a misconfiguration.
78
87
  // In this case, we transfer nothing until the target is exceeded.
@@ -90,7 +99,7 @@ export function getNetSendAmountForL1Token(spokePoolTargetBalance, runningBalanc
90
99
  return computeDesiredTransferAmountToSpoke(runningBalance, spokePoolTargetBalance);
91
100
  }
92
101
  export function getRunningBalanceForL1Token(spokePoolTargetBalance, runningBalance) {
93
- const desiredTransferAmount = computeDesiredTransferAmountToSpoke(runningBalance, spokePoolTargetBalance);
102
+ var desiredTransferAmount = computeDesiredTransferAmountToSpoke(runningBalance, spokePoolTargetBalance);
94
103
  return runningBalance.sub(desiredTransferAmount);
95
104
  }
96
105
  export function updateRunningBalance(runningBalances, l2ChainId, l1Token, updateAmount) {
@@ -98,7 +107,7 @@ export function updateRunningBalance(runningBalances, l2ChainId, l1Token, update
98
107
  if (!runningBalances[l2ChainId]) {
99
108
  runningBalances[l2ChainId] = {};
100
109
  }
101
- const runningBalance = runningBalances[l2ChainId][l1Token];
110
+ var runningBalance = runningBalances[l2ChainId][l1Token];
102
111
  if (runningBalance) {
103
112
  runningBalances[l2ChainId][l1Token] = runningBalance.add(updateAmount);
104
113
  }
@@ -107,9 +116,9 @@ export function updateRunningBalance(runningBalances, l2ChainId, l1Token, update
107
116
  }
108
117
  }
109
118
  export function addLastRunningBalance(latestMainnetBlock, runningBalances, hubPoolClient) {
110
- Object.keys(runningBalances).forEach((repaymentChainId) => {
111
- Object.keys(runningBalances[Number(repaymentChainId)]).forEach((l1TokenAddress) => {
112
- const { runningBalance } = hubPoolClient.getRunningBalanceBeforeBlockForChain(latestMainnetBlock, Number(repaymentChainId), EvmAddress.from(l1TokenAddress));
119
+ Object.keys(runningBalances).forEach(function (repaymentChainId) {
120
+ Object.keys(runningBalances[Number(repaymentChainId)]).forEach(function (l1TokenAddress) {
121
+ var runningBalance = hubPoolClient.getRunningBalanceBeforeBlockForChain(latestMainnetBlock, Number(repaymentChainId), EvmAddress.from(l1TokenAddress)).runningBalance;
113
122
  if (!runningBalance.eq(bnZero)) {
114
123
  updateRunningBalance(runningBalances, Number(repaymentChainId), l1TokenAddress, runningBalance);
115
124
  }
@@ -117,26 +126,26 @@ export function addLastRunningBalance(latestMainnetBlock, runningBalances, hubPo
117
126
  });
118
127
  }
119
128
  export function updateRunningBalanceForDeposit(runningBalances, hubPoolClient, deposit, updateAmount, mainnetBundleEndBlock) {
120
- const l1TokenCounterpart = hubPoolClient.getL1TokenForL2TokenAtBlock(deposit.inputToken, deposit.originChainId, mainnetBundleEndBlock);
129
+ var l1TokenCounterpart = hubPoolClient.getL1TokenForL2TokenAtBlock(deposit.inputToken, deposit.originChainId, mainnetBundleEndBlock);
121
130
  assert(isDefined(l1TokenCounterpart), "updateRunningBalanceForDeposit: l1TokenCounterpart is undefined");
122
131
  updateRunningBalance(runningBalances, deposit.originChainId, l1TokenCounterpart.toEvmAddress(), updateAmount);
123
132
  }
124
133
  export function constructPoolRebalanceLeaves(latestMainnetBlock, runningBalances, realizedLpFees, chainsWithRefundsOnly, configStoreClient, maxL1TokenCount) {
125
134
  // Add a leaf for each chain ID with no L1 tokens or running balances
126
- assert(chainsWithRefundsOnly.every((chainId) => runningBalances[chainId] === undefined) &&
127
- chainsWithRefundsOnly.every((chainId) => realizedLpFees[chainId] === undefined), "Refund-only chains should not have running balances or realized LP fees.");
135
+ assert(chainsWithRefundsOnly.every(function (chainId) { return runningBalances[chainId] === undefined; }) &&
136
+ chainsWithRefundsOnly.every(function (chainId) { return realizedLpFees[chainId] === undefined; }), "Refund-only chains should not have running balances or realized LP fees.");
128
137
  // Create one leaf per L2 chain ID. First we'll create a leaf with all L1 tokens for each chain ID, and then
129
138
  // we'll split up any leaves with too many L1 tokens.
130
- const leaves = [];
139
+ var leaves = [];
131
140
  Object.keys(runningBalances)
132
- .map((chainId) => Number(chainId))
141
+ .map(function (chainId) { return Number(chainId); })
133
142
  .concat(chainsWithRefundsOnly)
134
143
  // Leaves should be sorted by ascending chain ID
135
- .sort((chainIdA, chainIdB) => chainIdA - chainIdB)
136
- .map((chainId) => {
144
+ .sort(function (chainIdA, chainIdB) { return chainIdA - chainIdB; })
145
+ .map(function (chainId) {
137
146
  if (chainsWithRefundsOnly.includes(chainId)) {
138
147
  leaves.push({
139
- chainId,
148
+ chainId: chainId,
140
149
  bundleLpFees: [],
141
150
  netSendAmounts: [],
142
151
  runningBalances: [],
@@ -147,25 +156,32 @@ export function constructPoolRebalanceLeaves(latestMainnetBlock, runningBalances
147
156
  return;
148
157
  }
149
158
  // Sort addresses.
150
- const sortedL1Tokens = Object.keys(runningBalances[chainId]).sort((addressA, addressB) => {
159
+ var sortedL1Tokens = Object.keys(runningBalances[chainId]).sort(function (addressA, addressB) {
151
160
  return compareAddresses(addressA, addressB);
152
161
  });
153
162
  // This begins at 0 and increments for each leaf for this { chainId, L1Token } combination.
154
- let groupIndexForChainId = 0;
163
+ var groupIndexForChainId = 0;
155
164
  // Split addresses into multiple leaves if there are more L1 tokens than allowed per leaf.
156
- const maxL1TokensPerLeaf = maxL1TokenCount || configStoreClient.getMaxRefundCountForRelayerRefundLeafForBlock(latestMainnetBlock);
157
- for (let i = 0; i < sortedL1Tokens.length; i += maxL1TokensPerLeaf) {
158
- const l1TokensToIncludeInThisLeaf = sortedL1Tokens.slice(i, i + maxL1TokensPerLeaf);
159
- const spokeTargetBalances = l1TokensToIncludeInThisLeaf.map((l1Token) => configStoreClient.getSpokeTargetBalancesForBlock(l1Token, chainId, latestMainnetBlock));
165
+ var maxL1TokensPerLeaf = maxL1TokenCount || configStoreClient.getMaxRefundCountForRelayerRefundLeafForBlock(latestMainnetBlock);
166
+ var _loop_1 = function (i) {
167
+ var l1TokensToIncludeInThisLeaf = sortedL1Tokens.slice(i, i + maxL1TokensPerLeaf);
168
+ var spokeTargetBalances = l1TokensToIncludeInThisLeaf.map(function (l1Token) {
169
+ return configStoreClient.getSpokeTargetBalancesForBlock(l1Token, chainId, latestMainnetBlock);
170
+ });
160
171
  // Build leaves using running balances and realized lp fees data for l1Token + chain, or default to
161
172
  // zero if undefined.
162
- const leafBundleLpFees = l1TokensToIncludeInThisLeaf.map((l1Token) => realizedLpFees[chainId]?.[l1Token] ?? bnZero);
163
- const leafNetSendAmounts = l1TokensToIncludeInThisLeaf.map((l1Token, index) => runningBalances[chainId] && runningBalances[chainId][l1Token]
164
- ? getNetSendAmountForL1Token(spokeTargetBalances[index], runningBalances[chainId][l1Token])
165
- : bnZero);
166
- const leafRunningBalances = l1TokensToIncludeInThisLeaf.map((l1Token, index) => runningBalances[chainId]?.[l1Token]
167
- ? getRunningBalanceForL1Token(spokeTargetBalances[index], runningBalances[chainId][l1Token])
168
- : bnZero);
173
+ var leafBundleLpFees = l1TokensToIncludeInThisLeaf.map(function (l1Token) { var _a, _b; return (_b = (_a = realizedLpFees[chainId]) === null || _a === void 0 ? void 0 : _a[l1Token]) !== null && _b !== void 0 ? _b : bnZero; });
174
+ var leafNetSendAmounts = l1TokensToIncludeInThisLeaf.map(function (l1Token, index) {
175
+ return runningBalances[chainId] && runningBalances[chainId][l1Token]
176
+ ? getNetSendAmountForL1Token(spokeTargetBalances[index], runningBalances[chainId][l1Token])
177
+ : bnZero;
178
+ });
179
+ var leafRunningBalances = l1TokensToIncludeInThisLeaf.map(function (l1Token, index) {
180
+ var _a;
181
+ return ((_a = runningBalances[chainId]) === null || _a === void 0 ? void 0 : _a[l1Token])
182
+ ? getRunningBalanceForL1Token(spokeTargetBalances[index], runningBalances[chainId][l1Token])
183
+ : bnZero;
184
+ });
169
185
  leaves.push({
170
186
  chainId: chainId,
171
187
  bundleLpFees: leafBundleLpFees,
@@ -173,8 +189,11 @@ export function constructPoolRebalanceLeaves(latestMainnetBlock, runningBalances
173
189
  runningBalances: leafRunningBalances,
174
190
  groupIndex: groupIndexForChainId++,
175
191
  leafId: leaves.length,
176
- l1Tokens: l1TokensToIncludeInThisLeaf.map((l1TokenAddr) => EvmAddress.from(l1TokenAddr)),
192
+ l1Tokens: l1TokensToIncludeInThisLeaf.map(function (l1TokenAddr) { return EvmAddress.from(l1TokenAddr); }),
177
193
  });
194
+ };
195
+ for (var i = 0; i < sortedL1Tokens.length; i += maxL1TokensPerLeaf) {
196
+ _loop_1(i);
178
197
  }
179
198
  });
180
199
  return leaves;
@@ -1 +1 @@
1
- {"version":3,"file":"PoolRebalanceUtils.js","sourceRoot":"","sources":["../../../../../src/clients/BundleDataClient/utils/PoolRebalanceUtils.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,oBAAoB,EAAmB,MAAM,uBAAuB,CAAC;AAC9E,OAAO,EAAa,MAAM,EAAE,UAAU,EAAE,UAAU,EAAE,gBAAgB,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AACpH,OAAO,EAAE,+BAA+B,EAAE,MAAM,mBAAmB,CAAC;AAIpE,OAAO,MAAM,MAAM,QAAQ,CAAC;AAS5B,gHAAgH;AAChH,oHAAoH;AACpH,8GAA8G;AAC9G,yFAAyF;AACzF,MAAM,CAAC,KAAK,UAAU,mCAAmC,CACvD,QAAkB,EAClB,YAAoD,EACpD,eAAyB,EACzB,OAAgB,EAChB,kBAA0B,EAC1B,aAAuB,EACvB,aAAsB,KAAK;IAE3B,8GAA8G;IAC9G,iHAAiH;IACjH,+GAA+G;IAC/G,sCAAsC;IACtC,MAAM,eAAe,GAAG,CAAC,OAAe,EAAE,GAAW,EAAU,EAAE,CAC/D,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,oBAAoB,GAAG,eAAe,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;IAEjF,kHAAkH;IAClH,MAAM,kBAAkB,GAAG,CAAC,OAAe,EAAE,GAAW,EAAmB,EAAE;QAC3E,MAAM,eAAe,GAAG,YAAY,CAAC,OAAO,CAAC,CAAC;QAC9C,MAAM,CAAC,oBAAoB,CAAC,eAAe,CAAC,CAAC,CAAC;QAE9C,MAAM,OAAO,GAAG,eAAe,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,CAAC,4CAA4C;QAC3F,OAAO,+BAA+B,CACpC,eAAe,CAAC,eAAe,CAAC,MAAM,EAAE,EACxC,eAAe,CAAC,MAAM,EACtB,MAAM,CAAC,OAAO,CAAC,CAChB,CAAC;IACJ,CAAC,CAAC;IAEF,MAAM,mCAAmC,GAAG,MAAM,OAAO,CAAC,GAAG,CAC3D,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,GAAG,EAAE,EAAE;QAC5B,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC;YAC1E,OAAO,CAAC,CAAC,CAAC,CAAC,0EAA0E;QACvF,CAAC;QAED,IAAI,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;YACxB,OAAO,OAAO,CAAC,OAAO,CAAC,eAAe,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,CAAC;QACxD,CAAC;QAED,IAAI,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;YACxB,OAAO,kBAAkB,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;QAC1C,CAAC;QAED,MAAM,CAAC,KAAK,EAAE,wBAAwB,OAAO,EAAE,CAAC,CAAC;IACnD,CAAC,CAAC,CACH,CAAC;IAEF,OAAO,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAe,EAAE,KAAK,EAAE,EAAE;QAC7C,MAAM,oBAAoB,GAAG,OAAO,CAAC,aAAa,CAAC,+BAA+B,CAChF,QAAQ,EACR,kBAAkB,EAClB,OAAO,CACR,CAAC;QAEF,2FAA2F;QAC3F,iBAAiB;QACjB,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;YACrC,OAAO,CAAC,oBAAoB,EAAE,oBAAoB,CAAC,CAAC;QACtD,CAAC;QAED,2GAA2G;QAC3G,0GAA0G;QAC1G,IAAI,oBAAoB,IAAI,mCAAmC,CAAC,KAAK,CAAC,EAAE,CAAC;YACvE,4GAA4G;YAC5G,4FAA4F;YAC5F,OAAO,CAAC,oBAAoB,EAAE,oBAAoB,CAAC,CAAC;QACtD,CAAC;QAED,2GAA2G;QAC3G,uCAAuC;QACvC,OAAO;YACL,UAAU;gBACR,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC,mCAAmC,CAAC,QAAQ,EAAE,kBAAkB,EAAE,OAAO,CAAC;gBAClG,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC,6BAA6B,CAAC,QAAQ,EAAE,kBAAkB,EAAE,OAAO,CAAC;YAC9F,mCAAmC,CAAC,KAAK,CAAC;SAC3C,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC;AAED,MAAM,UAAU,sBAAsB,CACpC,OAAe,EACf,YAAoB,EACpB,iBAA0C;IAE1C,OAAO,iBAAiB,CAAC,yBAAyB,CAAC,YAAY,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;AACrF,CAAC;AAED,uGAAuG;AACvG,4DAA4D;AAC5D,MAAM,UAAU,mCAAmC,CACjD,cAAyB,EACzB,sBAA8C;IAE9C,gDAAgD;IAChD,IAAI,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;QAC1B,OAAO,cAAc,CAAC;IACxB,CAAC;IAED,4GAA4G;IAC5G,qCAAqC;IACrC,IAAI,cAAc,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,sBAAsB,CAAC,SAAS,CAAC,EAAE,CAAC;QAC9D,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,0EAA0E;IAC1E,mEAAmE;IACnE,MAAM,YAAY,GAAG,cAAc,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,sBAAsB,CAAC,MAAM,CAAC,CAAC;IAE7E,iGAAiG;IACjG,2GAA2G;IAC3G,kEAAkE;IAClE,IAAI,YAAY,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACvB,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,mGAAmG;IACnG,OAAO,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AAC9B,CAAC;AAED,oGAAoG;AACpG,4GAA4G;AAC5G,2GAA2G;AAC3G,iCAAiC;AACjC,MAAM,UAAU,0BAA0B,CACxC,sBAA8C,EAC9C,cAAyB;IAEzB,OAAO,mCAAmC,CAAC,cAAc,EAAE,sBAAsB,CAAC,CAAC;AACrF,CAAC;AAED,MAAM,UAAU,2BAA2B,CACzC,sBAA8C,EAC9C,cAAyB;IAEzB,MAAM,qBAAqB,GAAG,mCAAmC,CAAC,cAAc,EAAE,sBAAsB,CAAC,CAAC;IAC1G,OAAO,cAAc,CAAC,GAAG,CAAC,qBAAqB,CAAC,CAAC;AACnD,CAAC;AAED,MAAM,UAAU,oBAAoB,CAClC,eAAgC,EAChC,SAAiB,EACjB,OAAe,EACf,YAAuB;IAEvB,kCAAkC;IAClC,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,EAAE,CAAC;QAChC,eAAe,CAAC,SAAS,CAAC,GAAG,EAAE,CAAC;IAClC,CAAC;IACD,MAAM,cAAc,GAAG,eAAe,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC,CAAC;IAC3D,IAAI,cAAc,EAAE,CAAC;QACnB,eAAe,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC,GAAG,cAAc,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;IACzE,CAAC;SAAM,CAAC;QACN,eAAe,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC,GAAG,YAAY,CAAC;IACrD,CAAC;AACH,CAAC;AAED,MAAM,UAAU,qBAAqB,CACnC,kBAA0B,EAC1B,eAAgC,EAChC,aAA4B;IAE5B,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,OAAO,CAAC,CAAC,gBAAgB,EAAE,EAAE;QACxD,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,cAAc,EAAE,EAAE;YAChF,MAAM,EAAE,cAAc,EAAE,GAAG,aAAa,CAAC,oCAAoC,CAC3E,kBAAkB,EAClB,MAAM,CAAC,gBAAgB,CAAC,EACxB,UAAU,CAAC,IAAI,CAAC,cAAc,CAAC,CAChC,CAAC;YACF,IAAI,CAAC,cAAc,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC;gBAC/B,oBAAoB,CAAC,eAAe,EAAE,MAAM,CAAC,gBAAgB,CAAC,EAAE,cAAc,EAAE,cAAc,CAAC,CAAC;YAClG,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC;AAED,MAAM,UAAU,8BAA8B,CAC5C,eAAgC,EAChC,aAA4B,EAC5B,OAA2B,EAC3B,YAAuB,EACvB,qBAA6B;IAE7B,MAAM,kBAAkB,GAAG,aAAa,CAAC,2BAA2B,CAClE,OAAO,CAAC,UAAU,EAClB,OAAO,CAAC,aAAa,EACrB,qBAAqB,CACtB,CAAC;IACF,MAAM,CAAC,SAAS,CAAC,kBAAkB,CAAC,EAAE,iEAAiE,CAAC,CAAC;IAEzG,oBAAoB,CAAC,eAAe,EAAE,OAAO,CAAC,aAAa,EAAE,kBAAkB,CAAC,YAAY,EAAE,EAAE,YAAY,CAAC,CAAC;AAChH,CAAC;AAED,MAAM,UAAU,4BAA4B,CAC1C,kBAA0B,EAC1B,eAAgC,EAChC,cAA+B,EAC/B,qBAA+B,EAC/B,iBAA0C,EAC1C,eAAwB;IAExB,qEAAqE;IACrE,MAAM,CACJ,qBAAqB,CAAC,KAAK,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,eAAe,CAAC,OAAO,CAAC,KAAK,SAAS,CAAC;QAC9E,qBAAqB,CAAC,KAAK,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,cAAc,CAAC,OAAO,CAAC,KAAK,SAAS,CAAC,EACjF,0EAA0E,CAC3E,CAAC;IAEF,4GAA4G;IAC5G,qDAAqD;IACrD,MAAM,MAAM,GAAwB,EAAE,CAAC;IACvC,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC;SACzB,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;SACjC,MAAM,CAAC,qBAAqB,CAAC;QAC9B,gDAAgD;SAC/C,IAAI,CAAC,CAAC,QAAQ,EAAE,QAAQ,EAAE,EAAE,CAAC,QAAQ,GAAG,QAAQ,CAAC;SACjD,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE;QACf,IAAI,qBAAqB,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;YAC5C,MAAM,CAAC,IAAI,CAAC;gBACV,OAAO;gBACP,YAAY,EAAE,EAAE;gBAChB,cAAc,EAAE,EAAE;gBAClB,eAAe,EAAE,EAAE;gBACnB,UAAU,EAAE,CAAC;gBACb,MAAM,EAAE,MAAM,CAAC,MAAM;gBACrB,QAAQ,EAAE,EAAE;aACb,CAAC,CAAC;YACH,OAAO;QACT,CAAC;QAED,kBAAkB;QAClB,MAAM,cAAc,GAAG,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,QAAQ,EAAE,EAAE;YACvF,OAAO,gBAAgB,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;QAC9C,CAAC,CAAC,CAAC;QAEH,2FAA2F;QAC3F,IAAI,oBAAoB,GAAG,CAAC,CAAC;QAE7B,0FAA0F;QAC1F,MAAM,kBAAkB,GACtB,eAAe,IAAI,iBAAiB,CAAC,6CAA6C,CAAC,kBAAkB,CAAC,CAAC;QACzG,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,cAAc,CAAC,MAAM,EAAE,CAAC,IAAI,kBAAkB,EAAE,CAAC;YACnE,MAAM,2BAA2B,GAAG,cAAc,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,GAAG,kBAAkB,CAAC,CAAC;YAEpF,MAAM,mBAAmB,GAAG,2BAA2B,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CACtE,iBAAiB,CAAC,8BAA8B,CAAC,OAAO,EAAE,OAAO,EAAE,kBAAkB,CAAC,CACvF,CAAC;YAEF,mGAAmG;YACnG,qBAAqB;YACrB,MAAM,gBAAgB,GAAG,2BAA2B,CAAC,GAAG,CACtD,CAAC,OAAO,EAAE,EAAE,CAAC,cAAc,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC,IAAI,MAAM,CAC1D,CAAC;YACF,MAAM,kBAAkB,GAAG,2BAA2B,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,KAAK,EAAE,EAAE,CAC5E,eAAe,CAAC,OAAO,CAAC,IAAI,eAAe,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC;gBAC3D,CAAC,CAAC,0BAA0B,CAAC,mBAAmB,CAAC,KAAK,CAAC,EAAE,eAAe,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC;gBAC3F,CAAC,CAAC,MAAM,CACX,CAAC;YACF,MAAM,mBAAmB,GAAG,2BAA2B,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,KAAK,EAAE,EAAE,CAC7E,eAAe,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC;gBACjC,CAAC,CAAC,2BAA2B,CAAC,mBAAmB,CAAC,KAAK,CAAC,EAAE,eAAe,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC;gBAC5F,CAAC,CAAC,MAAM,CACX,CAAC;YAEF,MAAM,CAAC,IAAI,CAAC;gBACV,OAAO,EAAE,OAAO;gBAChB,YAAY,EAAE,gBAAgB;gBAC9B,cAAc,EAAE,kBAAkB;gBAClC,eAAe,EAAE,mBAAmB;gBACpC,UAAU,EAAE,oBAAoB,EAAE;gBAClC,MAAM,EAAE,MAAM,CAAC,MAAM;gBACrB,QAAQ,EAAE,2BAA2B,CAAC,GAAG,CAAC,CAAC,WAAmB,EAAE,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;aACjG,CAAC,CAAC;QACL,CAAC;IACH,CAAC,CAAC,CAAC;IAEL,OAAO,MAAM,CAAC;AAChB,CAAC"}
1
+ {"version":3,"file":"PoolRebalanceUtils.js","sourceRoot":"","sources":["../../../../../src/clients/BundleDataClient/utils/PoolRebalanceUtils.ts"],"names":[],"mappings":"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"}