@across-protocol/sdk 4.3.111-alpha.0 → 4.3.111-alpha.2

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 +50 -64
  2. package/dist/cjs/addressAggregator/adapters/abstract.js.map +1 -1
  3. package/dist/cjs/addressAggregator/adapters/bybit.js +16 -29
  4. package/dist/cjs/addressAggregator/adapters/bybit.js.map +1 -1
  5. package/dist/cjs/addressAggregator/adapters/env.js +11 -15
  6. package/dist/cjs/addressAggregator/adapters/env.js.map +1 -1
  7. package/dist/cjs/addressAggregator/adapters/file.js +32 -45
  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 +22 -36
  11. package/dist/cjs/addressAggregator/adapters/risklabs.js.map +1 -1
  12. package/dist/cjs/addressAggregator/index.js +57 -87
  13. package/dist/cjs/addressAggregator/index.js.map +1 -1
  14. package/dist/cjs/apiClient/abstractClient.js +9 -8
  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 +23 -29
  18. package/dist/cjs/apiClient/mockedClient.js.map +1 -1
  19. package/dist/cjs/apiClient/productionClient.js +65 -103
  20. package/dist/cjs/apiClient/productionClient.js.map +1 -1
  21. package/dist/cjs/arch/evm/BlockUtils.js +122 -208
  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 +134 -288
  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 +38 -49
  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 +102 -158
  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 +708 -1147
  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 +174 -236
  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 +166 -355
  46. package/dist/cjs/arch/svm/utils.js.map +1 -1
  47. package/dist/cjs/caching/Arweave/ArweaveClient.js +168 -246
  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 +40 -49
  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 +13 -18
  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 +302 -381
  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 +58 -83
  61. package/dist/cjs/clients/BaseAbstractClient.js.map +1 -1
  62. package/dist/cjs/clients/BundleDataClient/BundleDataClient.js +709 -900
  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 +95 -128
  66. package/dist/cjs/clients/BundleDataClient/utils/DataworkerUtils.js.map +1 -1
  67. package/dist/cjs/clients/BundleDataClient/utils/FillUtils.js +48 -53
  68. package/dist/cjs/clients/BundleDataClient/utils/FillUtils.js.map +1 -1
  69. package/dist/cjs/clients/BundleDataClient/utils/MerkleTreeUtils.js +10 -8
  70. package/dist/cjs/clients/BundleDataClient/utils/MerkleTreeUtils.js.map +1 -1
  71. package/dist/cjs/clients/BundleDataClient/utils/PoolRebalanceUtils.js +67 -90
  72. package/dist/cjs/clients/BundleDataClient/utils/PoolRebalanceUtils.js.map +1 -1
  73. package/dist/cjs/clients/BundleDataClient/utils/SuperstructUtils.js +46 -24
  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 +526 -708
  77. package/dist/cjs/clients/HubPoolClient.js.map +1 -1
  78. package/dist/cjs/clients/SpokePoolClient/EVMSpokePoolClient.js +133 -179
  79. package/dist/cjs/clients/SpokePoolClient/EVMSpokePoolClient.js.map +1 -1
  80. package/dist/cjs/clients/SpokePoolClient/SVMSpokePoolClient.js +124 -183
  81. package/dist/cjs/clients/SpokePoolClient/SVMSpokePoolClient.js.map +1 -1
  82. package/dist/cjs/clients/SpokePoolClient/SpokePoolClient.js +357 -389
  83. package/dist/cjs/clients/SpokePoolClient/SpokePoolClient.js.map +1 -1
  84. package/dist/cjs/clients/SpokePoolClient/SpokePoolClientManager.js +9 -8
  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 +58 -67
  90. package/dist/cjs/clients/mocks/MockConfigStoreClient.js.map +1 -1
  91. package/dist/cjs/clients/mocks/MockEvents.js +47 -52
  92. package/dist/cjs/clients/mocks/MockEvents.js.map +1 -1
  93. package/dist/cjs/clients/mocks/MockHubPoolClient.js +142 -185
  94. package/dist/cjs/clients/mocks/MockHubPoolClient.js.map +1 -1
  95. package/dist/cjs/clients/mocks/MockSpokePoolClient.js +208 -192
  96. package/dist/cjs/clients/mocks/MockSpokePoolClient.js.map +1 -1
  97. package/dist/cjs/clients/mocks/MockSvmCpiEventsClient.js +140 -143
  98. package/dist/cjs/clients/mocks/MockSvmCpiEventsClient.js.map +1 -1
  99. package/dist/cjs/clients/mocks/MockSvmSpokePoolClient.js +57 -73
  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 +285 -437
  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 +23 -30
  106. package/dist/cjs/constants.js.map +1 -1
  107. package/dist/cjs/contracts/acrossConfigStore.js +27 -48
  108. package/dist/cjs/contracts/acrossConfigStore.js.map +1 -1
  109. package/dist/cjs/contracts/hubPool.js +36 -20
  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 +6 -8
  113. package/dist/cjs/contracts/utils.js.map +1 -1
  114. package/dist/cjs/gasPriceOracle/adapters/arbitrum.js +7 -16
  115. package/dist/cjs/gasPriceOracle/adapters/arbitrum.js.map +1 -1
  116. package/dist/cjs/gasPriceOracle/adapters/ethereum.js +26 -45
  117. package/dist/cjs/gasPriceOracle/adapters/ethereum.js.map +1 -1
  118. package/dist/cjs/gasPriceOracle/adapters/linea-viem.js +16 -28
  119. package/dist/cjs/gasPriceOracle/adapters/linea-viem.js.map +1 -1
  120. package/dist/cjs/gasPriceOracle/adapters/polygon.js +73 -112
  121. package/dist/cjs/gasPriceOracle/adapters/polygon.js.map +1 -1
  122. package/dist/cjs/gasPriceOracle/adapters/solana.js +20 -33
  123. package/dist/cjs/gasPriceOracle/adapters/solana.js.map +1 -1
  124. package/dist/cjs/gasPriceOracle/oracle.js +77 -104
  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 +33 -35
  134. package/dist/cjs/lpFeeCalculator/lpFeeCalculator.js.map +1 -1
  135. package/dist/cjs/lpFeeCalculator/rateModel.js +7 -9
  136. package/dist/cjs/lpFeeCalculator/rateModel.js.map +1 -1
  137. package/dist/cjs/merkleDistributor/MerkleDistributor.js +20 -18
  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 +45 -100
  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 +464 -731
  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 +45 -100
  148. package/dist/cjs/pool/uma/across/transactionManager.js.map +1 -1
  149. package/dist/cjs/pool/uma/clients/erc20/client.js +18 -16
  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 +4 -5
  156. package/dist/cjs/pool/uma/oracle/utils.js.map +1 -1
  157. package/dist/cjs/pool/uma/utils.js +11 -30
  158. package/dist/cjs/pool/uma/utils.js.map +1 -1
  159. package/dist/cjs/priceClient/adapters/acrossApi.js +22 -39
  160. package/dist/cjs/priceClient/adapters/acrossApi.js.map +1 -1
  161. package/dist/cjs/priceClient/adapters/baseAdapter.js +49 -73
  162. package/dist/cjs/priceClient/adapters/baseAdapter.js.map +1 -1
  163. package/dist/cjs/priceClient/adapters/coingecko.js +34 -61
  164. package/dist/cjs/priceClient/adapters/coingecko.js.map +1 -1
  165. package/dist/cjs/priceClient/adapters/default.js +16 -31
  166. package/dist/cjs/priceClient/adapters/default.js.map +1 -1
  167. package/dist/cjs/priceClient/adapters/defiLlama.js +40 -74
  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 +110 -159
  172. package/dist/cjs/priceClient/priceClient.js.map +1 -1
  173. package/dist/cjs/providers/alchemy.js +17 -19
  174. package/dist/cjs/providers/alchemy.js.map +1 -1
  175. package/dist/cjs/providers/cachedProvider.js +88 -129
  176. package/dist/cjs/providers/cachedProvider.js.map +1 -1
  177. package/dist/cjs/providers/drpc.js +9 -11
  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 +10 -12
  181. package/dist/cjs/providers/infura.js.map +1 -1
  182. package/dist/cjs/providers/mocks/MockCachedSolanaRpcFactory.js +7 -15
  183. package/dist/cjs/providers/mocks/MockCachedSolanaRpcFactory.js.map +1 -1
  184. package/dist/cjs/providers/mocks/MockRateLimitedSolanaRpcFactory.js +6 -14
  185. package/dist/cjs/providers/mocks/MockRateLimitedSolanaRpcFactory.js.map +1 -1
  186. package/dist/cjs/providers/mocks/MockRetrySolanaRpcFactory.js +7 -15
  187. package/dist/cjs/providers/mocks/MockRetrySolanaRpcFactory.js.map +1 -1
  188. package/dist/cjs/providers/mocks/MockSolanaRpcFactory.js +42 -66
  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 +29 -31
  192. package/dist/cjs/providers/mocks/mockEthersProvider.js.map +1 -1
  193. package/dist/cjs/providers/quicknode.js +19 -21
  194. package/dist/cjs/providers/quicknode.js.map +1 -1
  195. package/dist/cjs/providers/rateLimitedProvider.js +64 -79
  196. package/dist/cjs/providers/rateLimitedProvider.js.map +1 -1
  197. package/dist/cjs/providers/retryProvider.js +163 -246
  198. package/dist/cjs/providers/retryProvider.js.map +1 -1
  199. package/dist/cjs/providers/solana/baseRpcFactories.js +14 -18
  200. package/dist/cjs/providers/solana/baseRpcFactories.js.map +1 -1
  201. package/dist/cjs/providers/solana/cachedRpcFactory.js +70 -112
  202. package/dist/cjs/providers/solana/cachedRpcFactory.js.map +1 -1
  203. package/dist/cjs/providers/solana/defaultRpcFactory.js +8 -15
  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 +135 -191
  207. package/dist/cjs/providers/solana/quorumFallbackRpcFactory.js.map +1 -1
  208. package/dist/cjs/providers/solana/rateLimitedRpcFactory.js +67 -90
  209. package/dist/cjs/providers/solana/rateLimitedRpcFactory.js.map +1 -1
  210. package/dist/cjs/providers/solana/retryRpcFactory.js +52 -79
  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 +31 -53
  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 +26 -28
  219. package/dist/cjs/providers/utils.js.map +1 -1
  220. package/dist/cjs/relayFeeCalculator/chain-queries/baseQuery.js +108 -162
  221. package/dist/cjs/relayFeeCalculator/chain-queries/baseQuery.js.map +1 -1
  222. package/dist/cjs/relayFeeCalculator/chain-queries/customGasToken.js +14 -26
  223. package/dist/cjs/relayFeeCalculator/chain-queries/customGasToken.js.map +1 -1
  224. package/dist/cjs/relayFeeCalculator/chain-queries/factory.js +20 -29
  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 +88 -137
  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 +199 -297
  231. package/dist/cjs/relayFeeCalculator/relayFeeCalculator.js.map +1 -1
  232. package/dist/cjs/typeguards/error.js +5 -7
  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 +117 -144
  236. package/dist/cjs/utils/AddressUtils.js.map +1 -1
  237. package/dist/cjs/utils/ArrayUtils.js +21 -78
  238. package/dist/cjs/utils/ArrayUtils.js.map +1 -1
  239. package/dist/cjs/utils/BigNumberUtils.js +9 -10
  240. package/dist/cjs/utils/BigNumberUtils.js.map +1 -1
  241. package/dist/cjs/utils/BlockExplorerUtils.js +26 -30
  242. package/dist/cjs/utils/BlockExplorerUtils.js.map +1 -1
  243. package/dist/cjs/utils/BlockFinder.js +2 -5
  244. package/dist/cjs/utils/BlockFinder.js.map +1 -1
  245. package/dist/cjs/utils/BlockUtils.js +24 -41
  246. package/dist/cjs/utils/BlockUtils.js.map +1 -1
  247. package/dist/cjs/utils/BundleUtils.js +21 -24
  248. package/dist/cjs/utils/BundleUtils.js.map +1 -1
  249. package/dist/cjs/utils/CCTPUtils.js +62 -126
  250. package/dist/cjs/utils/CCTPUtils.js.map +1 -1
  251. package/dist/cjs/utils/CachingUtils.js +20 -42
  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 +122 -99
  256. package/dist/cjs/utils/DepositUtils.js.map +1 -1
  257. package/dist/cjs/utils/EventUtils.js +49 -70
  258. package/dist/cjs/utils/EventUtils.js.map +1 -1
  259. package/dist/cjs/utils/FormattingUtils.js +26 -32
  260. package/dist/cjs/utils/FormattingUtils.js.map +1 -1
  261. package/dist/cjs/utils/HyperLiquidUtils.js +10 -23
  262. package/dist/cjs/utils/HyperLiquidUtils.js.map +1 -1
  263. package/dist/cjs/utils/IPFSUtils.js +16 -34
  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 +10 -12
  268. package/dist/cjs/utils/LogUtils.js.map +1 -1
  269. package/dist/cjs/utils/Multicall.js +56 -115
  270. package/dist/cjs/utils/Multicall.js.map +1 -1
  271. package/dist/cjs/utils/NetworkUtils.js +12 -28
  272. package/dist/cjs/utils/NetworkUtils.js.map +1 -1
  273. package/dist/cjs/utils/NumberUtils.js +1 -3
  274. package/dist/cjs/utils/NumberUtils.js.map +1 -1
  275. package/dist/cjs/utils/ObjectUtils.js +27 -41
  276. package/dist/cjs/utils/ObjectUtils.js.map +1 -1
  277. package/dist/cjs/utils/Profiler.js +80 -83
  278. package/dist/cjs/utils/Profiler.js.map +1 -1
  279. package/dist/cjs/utils/ReviverUtils.js +5 -9
  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 +41 -64
  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 +12 -22
  291. package/dist/cjs/utils/abi/index.js.map +1 -1
  292. package/dist/cjs/utils/abi/typechain/factories/Multicall3__factory.js +9 -12
  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 +40 -53
  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 +48 -64
  299. package/dist/esm/addressAggregator/adapters/abstract.js.map +1 -1
  300. package/dist/esm/addressAggregator/adapters/bybit.js +15 -29
  301. package/dist/esm/addressAggregator/adapters/bybit.js.map +1 -1
  302. package/dist/esm/addressAggregator/adapters/env.js +9 -14
  303. package/dist/esm/addressAggregator/adapters/env.js.map +1 -1
  304. package/dist/esm/addressAggregator/adapters/file.js +29 -43
  305. package/dist/esm/addressAggregator/adapters/file.js.map +1 -1
  306. package/dist/esm/addressAggregator/adapters/risklabs.js +20 -35
  307. package/dist/esm/addressAggregator/adapters/risklabs.js.map +1 -1
  308. package/dist/esm/addressAggregator/index.js +52 -83
  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 +15 -9
  313. package/dist/esm/apiClient/abstractClient.js.map +1 -1
  314. package/dist/esm/apiClient/mockedClient.js +21 -26
  315. package/dist/esm/apiClient/mockedClient.js.map +1 -1
  316. package/dist/esm/apiClient/productionClient.js +61 -101
  317. package/dist/esm/apiClient/productionClient.js.map +1 -1
  318. package/dist/esm/arch/evm/BlockUtils.js +139 -217
  319. package/dist/esm/arch/evm/BlockUtils.js.map +1 -1
  320. package/dist/esm/arch/evm/SpokeUtils.js +146 -289
  321. package/dist/esm/arch/evm/SpokeUtils.js.map +1 -1
  322. package/dist/esm/arch/evm/utils/wait.js +34 -46
  323. package/dist/esm/arch/evm/utils/wait.js.map +1 -1
  324. package/dist/esm/arch/svm/BlockUtils.js +118 -166
  325. package/dist/esm/arch/svm/BlockUtils.js.map +1 -1
  326. package/dist/esm/arch/svm/SpokeUtils.js +738 -1150
  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 +172 -232
  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 +155 -345
  335. package/dist/esm/arch/svm/utils.js.map +1 -1
  336. package/dist/esm/caching/Arweave/ArweaveClient.js +182 -256
  337. package/dist/esm/caching/Arweave/ArweaveClient.js.map +1 -1
  338. package/dist/esm/caching/IPFS/PinataIPFSClient.js +47 -48
  339. package/dist/esm/caching/IPFS/PinataIPFSClient.js.map +1 -1
  340. package/dist/esm/caching/Memory/MemoryCacheClient.js +13 -19
  341. package/dist/esm/caching/Memory/MemoryCacheClient.js.map +1 -1
  342. package/dist/esm/clients/AcrossConfigStoreClient/AcrossConfigStoreClient.js +333 -408
  343. package/dist/esm/clients/AcrossConfigStoreClient/AcrossConfigStoreClient.js.map +1 -1
  344. package/dist/esm/clients/BaseAbstractClient.js +66 -92
  345. package/dist/esm/clients/BaseAbstractClient.js.map +1 -1
  346. package/dist/esm/clients/BundleDataClient/BundleDataClient.js +927 -1054
  347. package/dist/esm/clients/BundleDataClient/BundleDataClient.js.map +1 -1
  348. package/dist/esm/clients/BundleDataClient/utils/DataworkerUtils.js +102 -131
  349. package/dist/esm/clients/BundleDataClient/utils/DataworkerUtils.js.map +1 -1
  350. package/dist/esm/clients/BundleDataClient/utils/FillUtils.js +57 -59
  351. package/dist/esm/clients/BundleDataClient/utils/FillUtils.js.map +1 -1
  352. package/dist/esm/clients/BundleDataClient/utils/MerkleTreeUtils.js +7 -5
  353. package/dist/esm/clients/BundleDataClient/utils/MerkleTreeUtils.js.map +1 -1
  354. package/dist/esm/clients/BundleDataClient/utils/PoolRebalanceUtils.js +75 -94
  355. package/dist/esm/clients/BundleDataClient/utils/PoolRebalanceUtils.js.map +1 -1
  356. package/dist/esm/clients/BundleDataClient/utils/SuperstructUtils.js +45 -23
  357. package/dist/esm/clients/BundleDataClient/utils/SuperstructUtils.js.map +1 -1
  358. package/dist/esm/clients/HubPoolClient.js +581 -740
  359. package/dist/esm/clients/HubPoolClient.js.map +1 -1
  360. package/dist/esm/clients/SpokePoolClient/EVMSpokePoolClient.js +133 -178
  361. package/dist/esm/clients/SpokePoolClient/EVMSpokePoolClient.js.map +1 -1
  362. package/dist/esm/clients/SpokePoolClient/SVMSpokePoolClient.js +126 -183
  363. package/dist/esm/clients/SpokePoolClient/SVMSpokePoolClient.js.map +1 -1
  364. package/dist/esm/clients/SpokePoolClient/SpokePoolClient.js +372 -399
  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 +53 -64
  373. package/dist/esm/clients/mocks/MockConfigStoreClient.js.map +1 -1
  374. package/dist/esm/clients/mocks/MockEvents.js +42 -49
  375. package/dist/esm/clients/mocks/MockEvents.js.map +1 -1
  376. package/dist/esm/clients/mocks/MockHubPoolClient.js +138 -182
  377. package/dist/esm/clients/mocks/MockHubPoolClient.js.map +1 -1
  378. package/dist/esm/clients/mocks/MockSpokePoolClient.js +202 -188
  379. package/dist/esm/clients/mocks/MockSpokePoolClient.js.map +1 -1
  380. package/dist/esm/clients/mocks/MockSvmCpiEventsClient.js +127 -132
  381. package/dist/esm/clients/mocks/MockSvmCpiEventsClient.js.map +1 -1
  382. package/dist/esm/clients/mocks/MockSvmSpokePoolClient.js +53 -69
  383. package/dist/esm/clients/mocks/MockSvmSpokePoolClient.js.map +1 -1
  384. package/dist/esm/coingecko/Coingecko.js +298 -443
  385. package/dist/esm/coingecko/Coingecko.js.map +1 -1
  386. package/dist/esm/constants.js +40 -47
  387. package/dist/esm/constants.js.map +1 -1
  388. package/dist/esm/contracts/acrossConfigStore.js +24 -46
  389. package/dist/esm/contracts/acrossConfigStore.js.map +1 -1
  390. package/dist/esm/contracts/hubPool.js +34 -18
  391. package/dist/esm/contracts/hubPool.js.map +1 -1
  392. package/dist/esm/contracts/utils.js +3 -5
  393. package/dist/esm/contracts/utils.js.map +1 -1
  394. package/dist/esm/gasPriceOracle/adapters/arbitrum.js +6 -14
  395. package/dist/esm/gasPriceOracle/adapters/arbitrum.js.map +1 -1
  396. package/dist/esm/gasPriceOracle/adapters/ethereum.js +22 -42
  397. package/dist/esm/gasPriceOracle/adapters/ethereum.js.map +1 -1
  398. package/dist/esm/gasPriceOracle/adapters/linea-viem.js +13 -25
  399. package/dist/esm/gasPriceOracle/adapters/linea-viem.js.map +1 -1
  400. package/dist/esm/gasPriceOracle/adapters/polygon.js +72 -108
  401. package/dist/esm/gasPriceOracle/adapters/polygon.js.map +1 -1
  402. package/dist/esm/gasPriceOracle/adapters/solana.js +22 -31
  403. package/dist/esm/gasPriceOracle/adapters/solana.js.map +1 -1
  404. package/dist/esm/gasPriceOracle/oracle.js +70 -96
  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 +30 -33
  411. package/dist/esm/lpFeeCalculator/lpFeeCalculator.js.map +1 -1
  412. package/dist/esm/lpFeeCalculator/rateModel.js +7 -9
  413. package/dist/esm/lpFeeCalculator/rateModel.js.map +1 -1
  414. package/dist/esm/merkleDistributor/MerkleDistributor.js +18 -17
  415. package/dist/esm/merkleDistributor/MerkleDistributor.js.map +1 -1
  416. package/dist/esm/pool/TransactionManager.js +45 -100
  417. package/dist/esm/pool/TransactionManager.js.map +1 -1
  418. package/dist/esm/pool/poolClient.js +479 -740
  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 +45 -100
  423. package/dist/esm/pool/uma/across/transactionManager.js.map +1 -1
  424. package/dist/esm/pool/uma/clients/erc20/client.js +15 -13
  425. package/dist/esm/pool/uma/clients/erc20/client.js.map +1 -1
  426. package/dist/esm/pool/uma/oracle/utils.js +2 -3
  427. package/dist/esm/pool/uma/oracle/utils.js.map +1 -1
  428. package/dist/esm/pool/uma/utils.js +9 -28
  429. package/dist/esm/pool/uma/utils.js.map +1 -1
  430. package/dist/esm/priceClient/adapters/acrossApi.js +21 -40
  431. package/dist/esm/priceClient/adapters/acrossApi.js.map +1 -1
  432. package/dist/esm/priceClient/adapters/baseAdapter.js +46 -72
  433. package/dist/esm/priceClient/adapters/baseAdapter.js.map +1 -1
  434. package/dist/esm/priceClient/adapters/coingecko.js +33 -61
  435. package/dist/esm/priceClient/adapters/coingecko.js.map +1 -1
  436. package/dist/esm/priceClient/adapters/default.js +15 -31
  437. package/dist/esm/priceClient/adapters/default.js.map +1 -1
  438. package/dist/esm/priceClient/adapters/defiLlama.js +38 -73
  439. package/dist/esm/priceClient/adapters/defiLlama.js.map +1 -1
  440. package/dist/esm/priceClient/priceClient.js +109 -158
  441. package/dist/esm/priceClient/priceClient.js.map +1 -1
  442. package/dist/esm/providers/alchemy.js +16 -18
  443. package/dist/esm/providers/alchemy.js.map +1 -1
  444. package/dist/esm/providers/cachedProvider.js +99 -134
  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 +8 -10
  449. package/dist/esm/providers/drpc.js.map +1 -1
  450. package/dist/esm/providers/infura.js +9 -11
  451. package/dist/esm/providers/infura.js.map +1 -1
  452. package/dist/esm/providers/mocks/MockCachedSolanaRpcFactory.js +6 -15
  453. package/dist/esm/providers/mocks/MockCachedSolanaRpcFactory.js.map +1 -1
  454. package/dist/esm/providers/mocks/MockRateLimitedSolanaRpcFactory.js +5 -14
  455. package/dist/esm/providers/mocks/MockRateLimitedSolanaRpcFactory.js.map +1 -1
  456. package/dist/esm/providers/mocks/MockRetrySolanaRpcFactory.js +6 -15
  457. package/dist/esm/providers/mocks/MockRetrySolanaRpcFactory.js.map +1 -1
  458. package/dist/esm/providers/mocks/MockSolanaRpcFactory.js +41 -66
  459. package/dist/esm/providers/mocks/MockSolanaRpcFactory.js.map +1 -1
  460. package/dist/esm/providers/mocks/mockEthersProvider.js +27 -30
  461. package/dist/esm/providers/mocks/mockEthersProvider.js.map +1 -1
  462. package/dist/esm/providers/quicknode.js +18 -20
  463. package/dist/esm/providers/quicknode.js.map +1 -1
  464. package/dist/esm/providers/rateLimitedProvider.js +68 -80
  465. package/dist/esm/providers/rateLimitedProvider.js.map +1 -1
  466. package/dist/esm/providers/retryProvider.js +186 -259
  467. package/dist/esm/providers/retryProvider.js.map +1 -1
  468. package/dist/esm/providers/solana/baseRpcFactories.js +13 -19
  469. package/dist/esm/providers/solana/baseRpcFactories.js.map +1 -1
  470. package/dist/esm/providers/solana/cachedRpcFactory.js +75 -112
  471. package/dist/esm/providers/solana/cachedRpcFactory.js.map +1 -1
  472. package/dist/esm/providers/solana/defaultRpcFactory.js +6 -14
  473. package/dist/esm/providers/solana/defaultRpcFactory.js.map +1 -1
  474. package/dist/esm/providers/solana/quorumFallbackRpcFactory.js +149 -202
  475. package/dist/esm/providers/solana/quorumFallbackRpcFactory.js.map +1 -1
  476. package/dist/esm/providers/solana/rateLimitedRpcFactory.js +70 -90
  477. package/dist/esm/providers/solana/rateLimitedRpcFactory.js.map +1 -1
  478. package/dist/esm/providers/solana/retryRpcFactory.js +50 -74
  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 +28 -51
  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 +17 -20
  487. package/dist/esm/providers/utils.js.map +1 -1
  488. package/dist/esm/relayFeeCalculator/chain-queries/baseQuery.js +98 -152
  489. package/dist/esm/relayFeeCalculator/chain-queries/baseQuery.js.map +1 -1
  490. package/dist/esm/relayFeeCalculator/chain-queries/customGasToken.js +13 -26
  491. package/dist/esm/relayFeeCalculator/chain-queries/customGasToken.js.map +1 -1
  492. package/dist/esm/relayFeeCalculator/chain-queries/factory.js +9 -19
  493. package/dist/esm/relayFeeCalculator/chain-queries/factory.js.map +1 -1
  494. package/dist/esm/relayFeeCalculator/chain-queries/svmQuery.js +83 -128
  495. package/dist/esm/relayFeeCalculator/chain-queries/svmQuery.js.map +1 -1
  496. package/dist/esm/relayFeeCalculator/relayFeeCalculator.js +211 -299
  497. package/dist/esm/relayFeeCalculator/relayFeeCalculator.js.map +1 -1
  498. package/dist/esm/typeguards/error.js +3 -5
  499. package/dist/esm/typeguards/error.js.map +1 -1
  500. package/dist/esm/utils/AddressUtils.js +115 -147
  501. package/dist/esm/utils/AddressUtils.js.map +1 -1
  502. package/dist/esm/utils/ArrayUtils.js +21 -78
  503. package/dist/esm/utils/ArrayUtils.js.map +1 -1
  504. package/dist/esm/utils/BigNumberUtils.js +11 -12
  505. package/dist/esm/utils/BigNumberUtils.js.map +1 -1
  506. package/dist/esm/utils/BlockExplorerUtils.js +19 -23
  507. package/dist/esm/utils/BlockExplorerUtils.js.map +1 -1
  508. package/dist/esm/utils/BlockFinder.js +2 -6
  509. package/dist/esm/utils/BlockFinder.js.map +1 -1
  510. package/dist/esm/utils/BlockUtils.js +31 -40
  511. package/dist/esm/utils/BlockUtils.js.map +1 -1
  512. package/dist/esm/utils/BundleUtils.js +21 -24
  513. package/dist/esm/utils/BundleUtils.js.map +1 -1
  514. package/dist/esm/utils/CCTPUtils.js +62 -123
  515. package/dist/esm/utils/CCTPUtils.js.map +1 -1
  516. package/dist/esm/utils/CachingUtils.js +17 -38
  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 +121 -98
  521. package/dist/esm/utils/DepositUtils.js.map +1 -1
  522. package/dist/esm/utils/EventUtils.js +52 -69
  523. package/dist/esm/utils/EventUtils.js.map +1 -1
  524. package/dist/esm/utils/FormattingUtils.js +20 -26
  525. package/dist/esm/utils/FormattingUtils.js.map +1 -1
  526. package/dist/esm/utils/HyperLiquidUtils.js +8 -22
  527. package/dist/esm/utils/HyperLiquidUtils.js.map +1 -1
  528. package/dist/esm/utils/IPFSUtils.js +16 -35
  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 +8 -12
  533. package/dist/esm/utils/LogUtils.js.map +1 -1
  534. package/dist/esm/utils/Multicall.js +50 -110
  535. package/dist/esm/utils/Multicall.js.map +1 -1
  536. package/dist/esm/utils/NetworkUtils.js +12 -28
  537. package/dist/esm/utils/NetworkUtils.js.map +1 -1
  538. package/dist/esm/utils/NumberUtils.js +1 -3
  539. package/dist/esm/utils/NumberUtils.js.map +1 -1
  540. package/dist/esm/utils/ObjectUtils.js +27 -41
  541. package/dist/esm/utils/ObjectUtils.js.map +1 -1
  542. package/dist/esm/utils/Profiler.js +77 -82
  543. package/dist/esm/utils/Profiler.js.map +1 -1
  544. package/dist/esm/utils/ReviverUtils.js +3 -7
  545. package/dist/esm/utils/ReviverUtils.js.map +1 -1
  546. package/dist/esm/utils/SpokeUtils.js +83 -78
  547. package/dist/esm/utils/SpokeUtils.js.map +1 -1
  548. package/dist/esm/utils/TokenUtils.js +33 -57
  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 +10 -20
  553. package/dist/esm/utils/abi/index.js.map +1 -1
  554. package/dist/esm/utils/abi/typechain/factories/Multicall3__factory.js +8 -12
  555. package/dist/esm/utils/abi/typechain/factories/Multicall3__factory.js.map +1 -1
  556. package/dist/esm/utils/common.js +38 -52
  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 +2 -2
  563. package/src/constants.ts +0 -1
  564. package/src/gasPriceOracle/oracle.ts +0 -1
  565. package/src/utils/Multicall.ts +0 -1
  566. package/src/utils/NetworkUtils.ts +1 -8
@@ -1,4 +1,3 @@
1
- import { __assign, __awaiter, __generator } from "tslib";
2
1
  import _ from "lodash";
3
2
  import assert from "assert";
4
3
  import { providers } from "ethers";
@@ -11,23 +10,23 @@ import { isSlowFill, isValidEvmAddress, isDefined, chainIsEvm, toAddressType } f
11
10
  * @return The chain to send the refund to and the token to use for the refund.
12
11
  */
13
12
  export function getRefundInformationFromFill(relayData, hubPoolClient, bundleEndBlockForMainnet) {
14
- var chainToSendRefundTo = _getRepaymentChainId(relayData, hubPoolClient, bundleEndBlockForMainnet);
13
+ const chainToSendRefundTo = _getRepaymentChainId(relayData, hubPoolClient, bundleEndBlockForMainnet);
15
14
  if (chainToSendRefundTo === relayData.originChainId) {
16
15
  return {
17
- chainToSendRefundTo: chainToSendRefundTo,
16
+ chainToSendRefundTo,
18
17
  repaymentToken: relayData.inputToken,
19
18
  };
20
19
  }
21
20
  // Now figure out the equivalent L2 token for the repayment token. If the inputToken doesn't have a
22
21
  // PoolRebalanceRoute, then the repayment chain would have been the originChainId after the getRepaymentChainId()
23
22
  // call and we would have returned already, so the following call should always return a valid L1 token.
24
- var l1TokenCounterpart = hubPoolClient.getL1TokenForL2TokenAtBlock(relayData.inputToken, relayData.originChainId, bundleEndBlockForMainnet);
23
+ const l1TokenCounterpart = hubPoolClient.getL1TokenForL2TokenAtBlock(relayData.inputToken, relayData.originChainId, bundleEndBlockForMainnet);
25
24
  assert(isDefined(l1TokenCounterpart), "getRefundInformationFromFill: l1TokenCounterpart is undefined");
26
- var repaymentToken = hubPoolClient.getL2TokenForL1TokenAtBlock(l1TokenCounterpart, chainToSendRefundTo, bundleEndBlockForMainnet);
25
+ const repaymentToken = hubPoolClient.getL2TokenForL1TokenAtBlock(l1TokenCounterpart, chainToSendRefundTo, bundleEndBlockForMainnet);
27
26
  assert(isDefined(repaymentToken), "getRefundInformationFromFill: repaymentToken is undefined");
28
27
  return {
29
- chainToSendRefundTo: chainToSendRefundTo,
30
- repaymentToken: repaymentToken,
28
+ chainToSendRefundTo,
29
+ repaymentToken,
31
30
  };
32
31
  }
33
32
  /**
@@ -40,56 +39,55 @@ export function getRefundInformationFromFill(relayData, hubPoolClient, bundleEnd
40
39
  * and applied repayment address, or undefined if the applied repayment address is not valid for the
41
40
  * applied repayment chain.
42
41
  */
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];
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;
90
64
  }
91
- });
92
- });
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;
93
91
  }
94
92
  function _getRepaymentChainId(relayData, hubPoolClient, bundleEndBlockForMainnet) {
95
93
  if (relayData.fromLiteChain) {
@@ -102,8 +100,8 @@ function _getRepaymentChainId(relayData, hubPoolClient, bundleEndBlockForMainnet
102
100
  return relayData.destinationChainId;
103
101
  }
104
102
  // 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.
105
- var repaymentTokenIsValid = _repaymentChainTokenIsValid(relayData, hubPoolClient, bundleEndBlockForMainnet);
106
- var repaymentChainIsValid = !hubPoolClient.configStoreClient
103
+ const repaymentTokenIsValid = _repaymentChainTokenIsValid(relayData, hubPoolClient, bundleEndBlockForMainnet);
104
+ const repaymentChainIsValid = !hubPoolClient.configStoreClient
107
105
  .getDisabledChainsForBlock(bundleEndBlockForMainnet)
108
106
  .includes(relayData.repaymentChainId);
109
107
  if (repaymentTokenIsValid && repaymentChainIsValid) {
@@ -116,7 +114,7 @@ function _repaymentChainTokenIsValid(relayData, hubPoolClient, bundleEndBlockFor
116
114
  if (!hubPoolClient.l2TokenHasPoolRebalanceRoute(relayData.inputToken, relayData.originChainId, bundleEndBlockForMainnet)) {
117
115
  return false;
118
116
  }
119
- var l1TokenCounterpart = hubPoolClient.getL1TokenForL2TokenAtBlock(relayData.inputToken, relayData.originChainId, bundleEndBlockForMainnet);
117
+ const l1TokenCounterpart = hubPoolClient.getL1TokenForL2TokenAtBlock(relayData.inputToken, relayData.originChainId, bundleEndBlockForMainnet);
120
118
  if (!l1TokenCounterpart) {
121
119
  return false;
122
120
  }
@@ -1 +1 @@
1
- {"version":3,"file":"FillUtils.js","sourceRoot":"","sources":["../../../../../src/clients/BundleDataClient/utils/FillUtils.ts"],"names":[],"mappings":";AAAA,OAAO,CAAC,MAAM,QAAQ,CAAC;AACvB,OAAO,MAAM,MAAM,QAAQ,CAAC;AAC5B,OAAO,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AAEnC,OAAO,EAAE,UAAU,EAAE,iBAAiB,EAAE,SAAS,EAAE,UAAU,EAAW,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAU9G;;;;;;GAMG;AACH,MAAM,UAAU,4BAA4B,CAC1C,SAAmC,EACnC,aAA4B,EAC5B,wBAAgC;IAKhC,IAAM,mBAAmB,GAAG,oBAAoB,CAAC,SAAS,EAAE,aAAa,EAAE,wBAAwB,CAAC,CAAC;IACrG,IAAI,mBAAmB,KAAK,SAAS,CAAC,aAAa,EAAE,CAAC;QACpD,OAAO;YACL,mBAAmB,qBAAA;YACnB,cAAc,EAAE,SAAS,CAAC,UAAU;SACrC,CAAC;IACJ,CAAC;IAED,mGAAmG;IACnG,iHAAiH;IACjH,wGAAwG;IACxG,IAAM,kBAAkB,GAAG,aAAa,CAAC,2BAA2B,CAClE,SAAS,CAAC,UAAU,EACpB,SAAS,CAAC,aAAa,EACvB,wBAAwB,CACzB,CAAC;IAEF,MAAM,CAAC,SAAS,CAAC,kBAAkB,CAAC,EAAE,+DAA+D,CAAC,CAAC;IAEvG,IAAM,cAAc,GAAG,aAAa,CAAC,2BAA2B,CAC9D,kBAAkB,EAClB,mBAAmB,EACnB,wBAAwB,CACzB,CAAC;IACF,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,EAAE,2DAA2D,CAAC,CAAC;IAE/F,OAAO;QACL,mBAAmB,qBAAA;QACnB,cAAc,gBAAA;KACf,CAAC;AACJ,CAAC;AACD;;;;;;;;;GASG;AACH,MAAM,UAAgB,mBAAmB,CACvC,KAAoB,EACpB,wBAA0D,EAC1D,cAAgC,EAChC,aAA4B,EAC5B,wBAAgC;;;;;;oBAE1B,IAAI,GAAG,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;oBAEhC,iEAAiE;oBACjE,IAAI,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;wBACrB,sBAAO,IAAI,EAAC;oBACd,CAAC;oBAEG,gBAAgB,GAAG,oBAAoB,uBAEpC,IAAI,KACP,aAAa,EAAE,cAAc,CAAC,aAAa,KAE7C,aAAa,EACb,wBAAwB,CACzB,CAAC;yBAIE,qCAAqC,CAAC,IAAI,CAAC,EAA3C,wBAA2C;yBAGzC,UAAU,CAAC,IAAI,CAAC,kBAAkB,CAAC,EAAnC,wBAAmC;oBACrC,MAAM,CACJ,wBAAwB,YAAY,SAAS,CAAC,QAAQ,EACtD,mGAA4F,IAAI,CAAC,kBAAkB,CAAE,CACtH,CAAC;oBACsB,qBAAM,wBAAwB,CAAC,cAAc,CAAC,IAAI,CAAC,MAAM,CAAC,EAAA;;oBAA5E,eAAe,GAAG,SAA0D;oBAC5E,kBAAkB,GAAG,eAAe,aAAf,eAAe,uBAAf,eAAe,CAAE,IAAI,CAAC;oBACjD,0GAA0G;oBAC1G,IAAI,CAAC,SAAS,CAAC,kBAAkB,CAAC,IAAI,CAAC,iBAAiB,CAAC,kBAAkB,CAAC,EAAE,CAAC;wBAC7E,sBAAO,SAAS,EAAC;oBACnB,CAAC;oBACD,0GAA0G;oBAC1G,4GAA4G;oBAC5G,0EAA0E;oBAC1E,IACE,CAAC,cAAc,CAAC,aAAa;wBAC7B,aAAa,CAAC,mBAAmB,CAC/B,IAAI,CAAC,UAAU,EACf,IAAI,CAAC,aAAa,EAClB,IAAI,CAAC,WAAW,EAChB,IAAI,CAAC,kBAAkB,CACxB,EACD,CAAC;wBACD,gBAAgB,GAAG,IAAI,CAAC,kBAAkB,CAAC;oBAC7C,CAAC;oBACD,sHAAsH;oBACtH,gHAAgH;oBAChH,4CAA4C;yBACvC,CAAC;wBACJ,IAAI,CAAC,UAAU,CAAC,gBAAgB,CAAC,EAAE,CAAC;4BAClC,sBAAO,SAAS,EAAC;wBACnB,CAAC;oBACH,CAAC;oBACD,IAAI,CAAC,OAAO,GAAG,aAAa,CAAC,kBAAkB,EAAE,IAAI,CAAC,kBAAkB,CAAC,CAAC;oBAC1E,MAAM,CACJ,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,kBAAkB,CAAC,EAC/C,+CAAwC,kBAAkB,CAAE,CAC7D,CAAC;;wBAEF,sBAAO,SAAS,EAAC;;oBAIrB,8GAA8G;oBAC9G,qFAAqF;oBACrF,IAAI,CAAC,gBAAgB,GAAG,gBAAgB,CAAC;oBACzC,sBAAO,IAAI,EAAC;;;;CACb;AAED,SAAS,oBAAoB,CAC3B,SAAmC,EACnC,aAA4B,EAC5B,wBAAgC;IAEhC,IAAI,SAAS,CAAC,aAAa,EAAE,CAAC;QAC5B,MAAM,CAAC,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,yEAAyE,CAAC,CAAC;QAC1G,OAAO,SAAS,CAAC,aAAa,CAAC;IACjC,CAAC;IAED,oGAAoG;IACpG,yDAAyD;IACzD,IAAI,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;QAC1B,OAAO,SAAS,CAAC,kBAAkB,CAAC;IACtC,CAAC;IAED,iKAAiK;IACjK,IAAM,qBAAqB,GAAG,2BAA2B,CAAC,SAAS,EAAE,aAAa,EAAE,wBAAwB,CAAC,CAAC;IAC9G,IAAM,qBAAqB,GAAG,CAAC,aAAa,CAAC,iBAAiB;SAC3D,yBAAyB,CAAC,wBAAwB,CAAC;SACnD,QAAQ,CAAC,SAAS,CAAC,gBAAgB,CAAC,CAAC;IACxC,IAAI,qBAAqB,IAAI,qBAAqB,EAAE,CAAC;QACnD,OAAO,SAAS,CAAC,gBAAgB,CAAC;IACpC,CAAC;IAED,iHAAiH;IACjH,OAAO,SAAS,CAAC,aAAa,CAAC;AACjC,CAAC;AAED,SAAS,2BAA2B,CAClC,SAAmC,EACnC,aAA4B,EAC5B,wBAAgC;IAEhC,IACE,CAAC,aAAa,CAAC,4BAA4B,CAAC,SAAS,CAAC,UAAU,EAAE,SAAS,CAAC,aAAa,EAAE,wBAAwB,CAAC,EACpH,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IACD,IAAM,kBAAkB,GAAG,aAAa,CAAC,2BAA2B,CAClE,SAAS,CAAC,UAAU,EACpB,SAAS,CAAC,aAAa,EACvB,wBAAwB,CACzB,CAAC;IACF,IAAI,CAAC,kBAAkB,EAAE,CAAC;QACxB,OAAO,KAAK,CAAC;IACf,CAAC;IACD,IACE,CAAC,aAAa,CAAC,+BAA+B,CAC5C,kBAAkB,EAClB,SAAS,CAAC,gBAAgB,EAC1B,wBAAwB,CACzB,EACD,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAS,qCAAqC,CAAC,IAAU;IACvD,iEAAiE;IACjE,IAAI,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;QACrB,OAAO,KAAK,CAAC;IACf,CAAC;IAED,iGAAiG;IACjG,wGAAwG;IACxG,YAAY;IACZ,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;AACxD,CAAC"}
1
+ {"version":3,"file":"FillUtils.js","sourceRoot":"","sources":["../../../../../src/clients/BundleDataClient/utils/FillUtils.ts"],"names":[],"mappings":"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"}
@@ -1,9 +1,8 @@
1
- import { __assign } from "tslib";
2
1
  import { MerkleTree } from "@across-protocol/contracts";
3
2
  import { getParamType } from "../../../utils/ContractUtils";
4
3
  import { utils } from "ethers";
5
4
  export function buildPoolRebalanceLeafTree(poolRebalanceLeaves) {
6
- for (var i = 0; i < poolRebalanceLeaves.length; i++) {
5
+ for (let i = 0; i < poolRebalanceLeaves.length; i++) {
7
6
  // The 4 provided parallel arrays must be of equal length. Running Balances can optionally be 2x the length
8
7
  if (poolRebalanceLeaves[i].l1Tokens.length !== poolRebalanceLeaves[i].bundleLpFees.length ||
9
8
  poolRebalanceLeaves[i].netSendAmounts.length !== poolRebalanceLeaves[i].bundleLpFees.length) {
@@ -14,9 +13,12 @@ export function buildPoolRebalanceLeafTree(poolRebalanceLeaves) {
14
13
  throw new Error("Running balances length unexpected");
15
14
  }
16
15
  }
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(); }) });
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
+ };
20
22
  return utils.keccak256(utils.defaultAbiCoder.encode([paramType], [ethersLeaf]));
21
23
  };
22
24
  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,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
+ {"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,4 +1,3 @@
1
- import { __awaiter, __generator } from "tslib";
2
1
  import { isSVMSpokePoolClient } from "../../SpokePoolClient";
3
2
  import { bnZero, chainIsEvm, chainIsSvm, compareAddresses, EvmAddress, isDefined } from "../../../utils";
4
3
  import { getLatestFinalizedSlotWithBlock } from "../../../arch/svm";
@@ -7,61 +6,53 @@ import assert from "assert";
7
6
  // when evaluating pending root bundle. The block end numbers must be less than the latest blocks for each chain ID
8
7
  // (because we can't evaluate events in the future), and greater than the expected start blocks, which are the
9
8
  // greater of 0 and the latest bundle end block for an executed root bundle proposal + 1.
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
- });
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
+ ];
65
56
  });
66
57
  }
67
58
  export function isChainDisabledAtBlock(chainId, mainnetBlock, configStoreClient) {
@@ -81,7 +72,7 @@ export function computeDesiredTransferAmountToSpoke(runningBalance, spokePoolTar
81
72
  }
82
73
  // We are left with the case where the spoke pool is beyond the threshold.
83
74
  // A transfer needs to be initiated to bring it down to the target.
84
- var transferSize = runningBalance.abs().sub(spokePoolTargetBalance.target);
75
+ const transferSize = runningBalance.abs().sub(spokePoolTargetBalance.target);
85
76
  // If the transferSize is < 0, this indicates that the target is still above the running balance.
86
77
  // This can only happen if the threshold is less than the target. This is likely due to a misconfiguration.
87
78
  // In this case, we transfer nothing until the target is exceeded.
@@ -99,7 +90,7 @@ export function getNetSendAmountForL1Token(spokePoolTargetBalance, runningBalanc
99
90
  return computeDesiredTransferAmountToSpoke(runningBalance, spokePoolTargetBalance);
100
91
  }
101
92
  export function getRunningBalanceForL1Token(spokePoolTargetBalance, runningBalance) {
102
- var desiredTransferAmount = computeDesiredTransferAmountToSpoke(runningBalance, spokePoolTargetBalance);
93
+ const desiredTransferAmount = computeDesiredTransferAmountToSpoke(runningBalance, spokePoolTargetBalance);
103
94
  return runningBalance.sub(desiredTransferAmount);
104
95
  }
105
96
  export function updateRunningBalance(runningBalances, l2ChainId, l1Token, updateAmount) {
@@ -107,7 +98,7 @@ export function updateRunningBalance(runningBalances, l2ChainId, l1Token, update
107
98
  if (!runningBalances[l2ChainId]) {
108
99
  runningBalances[l2ChainId] = {};
109
100
  }
110
- var runningBalance = runningBalances[l2ChainId][l1Token];
101
+ const runningBalance = runningBalances[l2ChainId][l1Token];
111
102
  if (runningBalance) {
112
103
  runningBalances[l2ChainId][l1Token] = runningBalance.add(updateAmount);
113
104
  }
@@ -116,9 +107,9 @@ export function updateRunningBalance(runningBalances, l2ChainId, l1Token, update
116
107
  }
117
108
  }
118
109
  export function addLastRunningBalance(latestMainnetBlock, runningBalances, hubPoolClient) {
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;
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));
122
113
  if (!runningBalance.eq(bnZero)) {
123
114
  updateRunningBalance(runningBalances, Number(repaymentChainId), l1TokenAddress, runningBalance);
124
115
  }
@@ -126,26 +117,26 @@ export function addLastRunningBalance(latestMainnetBlock, runningBalances, hubPo
126
117
  });
127
118
  }
128
119
  export function updateRunningBalanceForDeposit(runningBalances, hubPoolClient, deposit, updateAmount, mainnetBundleEndBlock) {
129
- var l1TokenCounterpart = hubPoolClient.getL1TokenForL2TokenAtBlock(deposit.inputToken, deposit.originChainId, mainnetBundleEndBlock);
120
+ const l1TokenCounterpart = hubPoolClient.getL1TokenForL2TokenAtBlock(deposit.inputToken, deposit.originChainId, mainnetBundleEndBlock);
130
121
  assert(isDefined(l1TokenCounterpart), "updateRunningBalanceForDeposit: l1TokenCounterpart is undefined");
131
122
  updateRunningBalance(runningBalances, deposit.originChainId, l1TokenCounterpart.toEvmAddress(), updateAmount);
132
123
  }
133
124
  export function constructPoolRebalanceLeaves(latestMainnetBlock, runningBalances, realizedLpFees, chainsWithRefundsOnly, configStoreClient, maxL1TokenCount) {
134
125
  // Add a leaf for each chain ID with no L1 tokens or running balances
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.");
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.");
137
128
  // Create one leaf per L2 chain ID. First we'll create a leaf with all L1 tokens for each chain ID, and then
138
129
  // we'll split up any leaves with too many L1 tokens.
139
- var leaves = [];
130
+ const leaves = [];
140
131
  Object.keys(runningBalances)
141
- .map(function (chainId) { return Number(chainId); })
132
+ .map((chainId) => Number(chainId))
142
133
  .concat(chainsWithRefundsOnly)
143
134
  // Leaves should be sorted by ascending chain ID
144
- .sort(function (chainIdA, chainIdB) { return chainIdA - chainIdB; })
145
- .map(function (chainId) {
135
+ .sort((chainIdA, chainIdB) => chainIdA - chainIdB)
136
+ .map((chainId) => {
146
137
  if (chainsWithRefundsOnly.includes(chainId)) {
147
138
  leaves.push({
148
- chainId: chainId,
139
+ chainId,
149
140
  bundleLpFees: [],
150
141
  netSendAmounts: [],
151
142
  runningBalances: [],
@@ -156,32 +147,25 @@ export function constructPoolRebalanceLeaves(latestMainnetBlock, runningBalances
156
147
  return;
157
148
  }
158
149
  // Sort addresses.
159
- var sortedL1Tokens = Object.keys(runningBalances[chainId]).sort(function (addressA, addressB) {
150
+ const sortedL1Tokens = Object.keys(runningBalances[chainId]).sort((addressA, addressB) => {
160
151
  return compareAddresses(addressA, addressB);
161
152
  });
162
153
  // This begins at 0 and increments for each leaf for this { chainId, L1Token } combination.
163
- var groupIndexForChainId = 0;
154
+ let groupIndexForChainId = 0;
164
155
  // Split addresses into multiple leaves if there are more L1 tokens than allowed per leaf.
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
- });
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));
171
160
  // Build leaves using running balances and realized lp fees data for l1Token + chain, or default to
172
161
  // zero if undefined.
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
- });
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);
185
169
  leaves.push({
186
170
  chainId: chainId,
187
171
  bundleLpFees: leafBundleLpFees,
@@ -189,11 +173,8 @@ export function constructPoolRebalanceLeaves(latestMainnetBlock, runningBalances
189
173
  runningBalances: leafRunningBalances,
190
174
  groupIndex: groupIndexForChainId++,
191
175
  leafId: leaves.length,
192
- l1Tokens: l1TokensToIncludeInThisLeaf.map(function (l1TokenAddr) { return EvmAddress.from(l1TokenAddr); }),
176
+ l1Tokens: l1TokensToIncludeInThisLeaf.map((l1TokenAddr) => EvmAddress.from(l1TokenAddr)),
193
177
  });
194
- };
195
- for (var i = 0; i < sortedL1Tokens.length; i += maxL1TokensPerLeaf) {
196
- _loop_1(i);
197
178
  }
198
179
  });
199
180
  return leaves;
@@ -1 +1 @@
1
- {"version":3,"file":"PoolRebalanceUtils.js","sourceRoot":"","sources":["../../../../../src/clients/BundleDataClient/utils/PoolRebalanceUtils.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"PoolRebalanceUtils.js","sourceRoot":"","sources":["../../../../../src/clients/BundleDataClient/utils/PoolRebalanceUtils.ts"],"names":[],"mappings":"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"}