@across-protocol/sdk 3.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (930) hide show
  1. package/LICENSE +661 -0
  2. package/README.md +116 -0
  3. package/dist/cjs/apiClient/abstractClient.d.ts +13 -0
  4. package/dist/cjs/apiClient/abstractClient.js +17 -0
  5. package/dist/cjs/apiClient/abstractClient.js.map +1 -0
  6. package/dist/cjs/apiClient/index.d.ts +2 -0
  7. package/dist/cjs/apiClient/index.js +11 -0
  8. package/dist/cjs/apiClient/index.js.map +1 -0
  9. package/dist/cjs/apiClient/mockedClient.d.ts +11 -0
  10. package/dist/cjs/apiClient/mockedClient.js +60 -0
  11. package/dist/cjs/apiClient/mockedClient.js.map +1 -0
  12. package/dist/cjs/apiClient/productionClient.d.ts +10 -0
  13. package/dist/cjs/apiClient/productionClient.js +110 -0
  14. package/dist/cjs/apiClient/productionClient.js.map +1 -0
  15. package/dist/cjs/apiClient/types.d.ts +44 -0
  16. package/dist/cjs/apiClient/types.js +3 -0
  17. package/dist/cjs/apiClient/types.js.map +1 -0
  18. package/dist/cjs/caching/Arweave/ArweaveClient.d.ts +20 -0
  19. package/dist/cjs/caching/Arweave/ArweaveClient.js +218 -0
  20. package/dist/cjs/caching/Arweave/ArweaveClient.js.map +1 -0
  21. package/dist/cjs/caching/Arweave/index.d.ts +1 -0
  22. package/dist/cjs/caching/Arweave/index.js +5 -0
  23. package/dist/cjs/caching/Arweave/index.js.map +1 -0
  24. package/dist/cjs/caching/IPFS/PinataIPFSClient.d.ts +11 -0
  25. package/dist/cjs/caching/IPFS/PinataIPFSClient.js +67 -0
  26. package/dist/cjs/caching/IPFS/PinataIPFSClient.js.map +1 -0
  27. package/dist/cjs/caching/IPFS/index.d.ts +1 -0
  28. package/dist/cjs/caching/IPFS/index.js +5 -0
  29. package/dist/cjs/caching/IPFS/index.js.map +1 -0
  30. package/dist/cjs/caching/index.d.ts +2 -0
  31. package/dist/cjs/caching/index.js +6 -0
  32. package/dist/cjs/caching/index.js.map +1 -0
  33. package/dist/cjs/clients/AcrossConfigStoreClient/AcrossConfigStoreClient.d.ts +66 -0
  34. package/dist/cjs/clients/AcrossConfigStoreClient/AcrossConfigStoreClient.js +377 -0
  35. package/dist/cjs/clients/AcrossConfigStoreClient/AcrossConfigStoreClient.js.map +1 -0
  36. package/dist/cjs/clients/AcrossConfigStoreClient/index.d.ts +1 -0
  37. package/dist/cjs/clients/AcrossConfigStoreClient/index.js +5 -0
  38. package/dist/cjs/clients/AcrossConfigStoreClient/index.js.map +1 -0
  39. package/dist/cjs/clients/BaseAbstractClient.d.ts +22 -0
  40. package/dist/cjs/clients/BaseAbstractClient.js +76 -0
  41. package/dist/cjs/clients/BaseAbstractClient.js.map +1 -0
  42. package/dist/cjs/clients/HubPoolClient.d.ts +111 -0
  43. package/dist/cjs/clients/HubPoolClient.js +758 -0
  44. package/dist/cjs/clients/HubPoolClient.js.map +1 -0
  45. package/dist/cjs/clients/SpokePoolClient.d.ts +117 -0
  46. package/dist/cjs/clients/SpokePoolClient.js +553 -0
  47. package/dist/cjs/clients/SpokePoolClient.js.map +1 -0
  48. package/dist/cjs/clients/index.d.ts +4 -0
  49. package/dist/cjs/clients/index.js +14 -0
  50. package/dist/cjs/clients/index.js.map +1 -0
  51. package/dist/cjs/clients/mocks/MockConfigStoreClient.d.ts +20 -0
  52. package/dist/cjs/clients/mocks/MockConfigStoreClient.js +121 -0
  53. package/dist/cjs/clients/mocks/MockConfigStoreClient.js.map +1 -0
  54. package/dist/cjs/clients/mocks/MockEvents.d.ts +27 -0
  55. package/dist/cjs/clients/mocks/MockEvents.js +117 -0
  56. package/dist/cjs/clients/mocks/MockEvents.js.map +1 -0
  57. package/dist/cjs/clients/mocks/MockHubPoolClient.d.ts +35 -0
  58. package/dist/cjs/clients/mocks/MockHubPoolClient.js +222 -0
  59. package/dist/cjs/clients/mocks/MockHubPoolClient.js.map +1 -0
  60. package/dist/cjs/clients/mocks/MockSpokePoolClient.d.ts +38 -0
  61. package/dist/cjs/clients/mocks/MockSpokePoolClient.js +319 -0
  62. package/dist/cjs/clients/mocks/MockSpokePoolClient.js.map +1 -0
  63. package/dist/cjs/clients/mocks/index.d.ts +3 -0
  64. package/dist/cjs/clients/mocks/index.js +7 -0
  65. package/dist/cjs/clients/mocks/index.js.map +1 -0
  66. package/dist/cjs/coingecko/Coingecko.d.ts +40 -0
  67. package/dist/cjs/coingecko/Coingecko.js +277 -0
  68. package/dist/cjs/coingecko/Coingecko.js.map +1 -0
  69. package/dist/cjs/coingecko/index.d.ts +1 -0
  70. package/dist/cjs/coingecko/index.js +5 -0
  71. package/dist/cjs/coingecko/index.js.map +1 -0
  72. package/dist/cjs/constants.d.ts +18 -0
  73. package/dist/cjs/constants.js +27 -0
  74. package/dist/cjs/constants.js.map +1 -0
  75. package/dist/cjs/contracts/acrossConfigStore.d.ts +57 -0
  76. package/dist/cjs/contracts/acrossConfigStore.js +65 -0
  77. package/dist/cjs/contracts/acrossConfigStore.js.map +1 -0
  78. package/dist/cjs/contracts/hubPool.d.ts +17 -0
  79. package/dist/cjs/contracts/hubPool.js +61 -0
  80. package/dist/cjs/contracts/hubPool.js.map +1 -0
  81. package/dist/cjs/contracts/index.d.ts +2 -0
  82. package/dist/cjs/contracts/index.js +7 -0
  83. package/dist/cjs/contracts/index.js.map +1 -0
  84. package/dist/cjs/contracts/utils.d.ts +15 -0
  85. package/dist/cjs/contracts/utils.js +40 -0
  86. package/dist/cjs/contracts/utils.js.map +1 -0
  87. package/dist/cjs/gasPriceOracle/adapters/arbitrum.d.ts +3 -0
  88. package/dist/cjs/gasPriceOracle/adapters/arbitrum.js +25 -0
  89. package/dist/cjs/gasPriceOracle/adapters/arbitrum.js.map +1 -0
  90. package/dist/cjs/gasPriceOracle/adapters/ethereum.d.ts +4 -0
  91. package/dist/cjs/gasPriceOracle/adapters/ethereum.js +46 -0
  92. package/dist/cjs/gasPriceOracle/adapters/ethereum.js.map +1 -0
  93. package/dist/cjs/gasPriceOracle/adapters/index.d.ts +3 -0
  94. package/dist/cjs/gasPriceOracle/adapters/index.js +7 -0
  95. package/dist/cjs/gasPriceOracle/adapters/index.js.map +1 -0
  96. package/dist/cjs/gasPriceOracle/adapters/polygon.d.ts +3 -0
  97. package/dist/cjs/gasPriceOracle/adapters/polygon.js +77 -0
  98. package/dist/cjs/gasPriceOracle/adapters/polygon.js.map +1 -0
  99. package/dist/cjs/gasPriceOracle/index.d.ts +2 -0
  100. package/dist/cjs/gasPriceOracle/index.js +6 -0
  101. package/dist/cjs/gasPriceOracle/index.js.map +1 -0
  102. package/dist/cjs/gasPriceOracle/oracle.d.ts +3 -0
  103. package/dist/cjs/gasPriceOracle/oracle.js +45 -0
  104. package/dist/cjs/gasPriceOracle/oracle.js.map +1 -0
  105. package/dist/cjs/gasPriceOracle/types.d.ts +8 -0
  106. package/dist/cjs/gasPriceOracle/types.js +3 -0
  107. package/dist/cjs/gasPriceOracle/types.js.map +1 -0
  108. package/dist/cjs/gasPriceOracle/util.d.ts +2 -0
  109. package/dist/cjs/gasPriceOracle/util.js +8 -0
  110. package/dist/cjs/gasPriceOracle/util.js.map +1 -0
  111. package/dist/cjs/index.d.ts +15 -0
  112. package/dist/cjs/index.js +20 -0
  113. package/dist/cjs/index.js.map +1 -0
  114. package/dist/cjs/interfaces/Bridge.d.ts +9 -0
  115. package/dist/cjs/interfaces/Bridge.js +3 -0
  116. package/dist/cjs/interfaces/Bridge.js.map +1 -0
  117. package/dist/cjs/interfaces/CachingMechanism.d.ts +5 -0
  118. package/dist/cjs/interfaces/CachingMechanism.js +3 -0
  119. package/dist/cjs/interfaces/CachingMechanism.js.map +1 -0
  120. package/dist/cjs/interfaces/Common.d.ts +10 -0
  121. package/dist/cjs/interfaces/Common.js +3 -0
  122. package/dist/cjs/interfaces/Common.js.map +1 -0
  123. package/dist/cjs/interfaces/ConfigStore.d.ts +81 -0
  124. package/dist/cjs/interfaces/ConfigStore.js +3 -0
  125. package/dist/cjs/interfaces/ConfigStore.js.map +1 -0
  126. package/dist/cjs/interfaces/Error.d.ts +5 -0
  127. package/dist/cjs/interfaces/Error.js +3 -0
  128. package/dist/cjs/interfaces/Error.js.map +1 -0
  129. package/dist/cjs/interfaces/HubPool.d.ts +98 -0
  130. package/dist/cjs/interfaces/HubPool.js +3 -0
  131. package/dist/cjs/interfaces/HubPool.js.map +1 -0
  132. package/dist/cjs/interfaces/SpokePool.d.ts +103 -0
  133. package/dist/cjs/interfaces/SpokePool.js +16 -0
  134. package/dist/cjs/interfaces/SpokePool.js.map +1 -0
  135. package/dist/cjs/interfaces/TypedData.d.ts +19 -0
  136. package/dist/cjs/interfaces/TypedData.js +3 -0
  137. package/dist/cjs/interfaces/TypedData.js.map +1 -0
  138. package/dist/cjs/interfaces/index.d.ts +8 -0
  139. package/dist/cjs/interfaces/index.js +12 -0
  140. package/dist/cjs/interfaces/index.js.map +1 -0
  141. package/dist/cjs/lpFeeCalculator/index.d.ts +1 -0
  142. package/dist/cjs/lpFeeCalculator/index.js +5 -0
  143. package/dist/cjs/lpFeeCalculator/index.js.map +1 -0
  144. package/dist/cjs/lpFeeCalculator/lpFeeCalculator.d.ts +19 -0
  145. package/dist/cjs/lpFeeCalculator/lpFeeCalculator.js +79 -0
  146. package/dist/cjs/lpFeeCalculator/lpFeeCalculator.js.map +1 -0
  147. package/dist/cjs/lpFeeCalculator/rateModel.d.ts +28 -0
  148. package/dist/cjs/lpFeeCalculator/rateModel.js +103 -0
  149. package/dist/cjs/lpFeeCalculator/rateModel.js.map +1 -0
  150. package/dist/cjs/merkleDistributor/MerkleDistributor.d.ts +8 -0
  151. package/dist/cjs/merkleDistributor/MerkleDistributor.js +25 -0
  152. package/dist/cjs/merkleDistributor/MerkleDistributor.js.map +1 -0
  153. package/dist/cjs/merkleDistributor/index.d.ts +2 -0
  154. package/dist/cjs/merkleDistributor/index.js +6 -0
  155. package/dist/cjs/merkleDistributor/index.js.map +1 -0
  156. package/dist/cjs/merkleDistributor/model/Distribution.d.ts +17 -0
  157. package/dist/cjs/merkleDistributor/model/Distribution.js +3 -0
  158. package/dist/cjs/merkleDistributor/model/Distribution.js.map +1 -0
  159. package/dist/cjs/merkleDistributor/model/index.d.ts +1 -0
  160. package/dist/cjs/merkleDistributor/model/index.js +5 -0
  161. package/dist/cjs/merkleDistributor/model/index.js.map +1 -0
  162. package/dist/cjs/package.json +1 -0
  163. package/dist/cjs/pool/TransactionManager.d.ts +12 -0
  164. package/dist/cjs/pool/TransactionManager.js +121 -0
  165. package/dist/cjs/pool/TransactionManager.js.map +1 -0
  166. package/dist/cjs/pool/index.d.ts +1 -0
  167. package/dist/cjs/pool/index.js +5 -0
  168. package/dist/cjs/pool/index.js.map +1 -0
  169. package/dist/cjs/pool/poolClient.d.ts +232 -0
  170. package/dist/cjs/pool/poolClient.js +869 -0
  171. package/dist/cjs/pool/poolClient.js.map +1 -0
  172. package/dist/cjs/priceClient/adapters/acrossApi.d.ts +13 -0
  173. package/dist/cjs/priceClient/adapters/acrossApi.js +48 -0
  174. package/dist/cjs/priceClient/adapters/acrossApi.js.map +1 -0
  175. package/dist/cjs/priceClient/adapters/baseAdapter.d.ts +17 -0
  176. package/dist/cjs/priceClient/adapters/baseAdapter.js +81 -0
  177. package/dist/cjs/priceClient/adapters/baseAdapter.js.map +1 -0
  178. package/dist/cjs/priceClient/adapters/coingecko.d.ts +14 -0
  179. package/dist/cjs/priceClient/adapters/coingecko.js +75 -0
  180. package/dist/cjs/priceClient/adapters/coingecko.js.map +1 -0
  181. package/dist/cjs/priceClient/adapters/defiLlama.d.ts +17 -0
  182. package/dist/cjs/priceClient/adapters/defiLlama.js +95 -0
  183. package/dist/cjs/priceClient/adapters/defiLlama.js.map +1 -0
  184. package/dist/cjs/priceClient/adapters/index.d.ts +3 -0
  185. package/dist/cjs/priceClient/adapters/index.js +8 -0
  186. package/dist/cjs/priceClient/adapters/index.js.map +1 -0
  187. package/dist/cjs/priceClient/index.d.ts +2 -0
  188. package/dist/cjs/priceClient/index.js +7 -0
  189. package/dist/cjs/priceClient/index.js.map +1 -0
  190. package/dist/cjs/priceClient/priceClient.d.ts +32 -0
  191. package/dist/cjs/priceClient/priceClient.js +197 -0
  192. package/dist/cjs/priceClient/priceClient.js.map +1 -0
  193. package/dist/cjs/relayFeeCalculator/chain-queries/baseQuery.d.ts +29 -0
  194. package/dist/cjs/relayFeeCalculator/chain-queries/baseQuery.js +62 -0
  195. package/dist/cjs/relayFeeCalculator/chain-queries/baseQuery.js.map +1 -0
  196. package/dist/cjs/relayFeeCalculator/chain-queries/factory.d.ts +151 -0
  197. package/dist/cjs/relayFeeCalculator/chain-queries/factory.js +35 -0
  198. package/dist/cjs/relayFeeCalculator/chain-queries/factory.js.map +1 -0
  199. package/dist/cjs/relayFeeCalculator/chain-queries/index.d.ts +3 -0
  200. package/dist/cjs/relayFeeCalculator/chain-queries/index.js +7 -0
  201. package/dist/cjs/relayFeeCalculator/chain-queries/index.js.map +1 -0
  202. package/dist/cjs/relayFeeCalculator/chain-queries/polygon.d.ts +152 -0
  203. package/dist/cjs/relayFeeCalculator/chain-queries/polygon.js +43 -0
  204. package/dist/cjs/relayFeeCalculator/chain-queries/polygon.js.map +1 -0
  205. package/dist/cjs/relayFeeCalculator/index.d.ts +2 -0
  206. package/dist/cjs/relayFeeCalculator/index.js +6 -0
  207. package/dist/cjs/relayFeeCalculator/index.js.map +1 -0
  208. package/dist/cjs/relayFeeCalculator/relayFeeCalculator.d.ts +231 -0
  209. package/dist/cjs/relayFeeCalculator/relayFeeCalculator.js +224 -0
  210. package/dist/cjs/relayFeeCalculator/relayFeeCalculator.js.map +1 -0
  211. package/dist/cjs/typechain.d.ts +17 -0
  212. package/dist/cjs/typechain.js +20 -0
  213. package/dist/cjs/typechain.js.map +1 -0
  214. package/dist/cjs/typeguards/error.d.ts +3 -0
  215. package/dist/cjs/typeguards/error.js +11 -0
  216. package/dist/cjs/typeguards/error.js.map +1 -0
  217. package/dist/cjs/typeguards/index.d.ts +1 -0
  218. package/dist/cjs/typeguards/index.js +5 -0
  219. package/dist/cjs/typeguards/index.js.map +1 -0
  220. package/dist/cjs/utils/AddressUtils.d.ts +2 -0
  221. package/dist/cjs/utils/AddressUtils.js +24 -0
  222. package/dist/cjs/utils/AddressUtils.js.map +1 -0
  223. package/dist/cjs/utils/ArrayUtils.d.ts +12 -0
  224. package/dist/cjs/utils/ArrayUtils.js +125 -0
  225. package/dist/cjs/utils/ArrayUtils.js.map +1 -0
  226. package/dist/cjs/utils/BigNumberUtils.d.ts +8 -0
  227. package/dist/cjs/utils/BigNumberUtils.js +26 -0
  228. package/dist/cjs/utils/BigNumberUtils.js.map +1 -0
  229. package/dist/cjs/utils/BlockExplorerUtils.d.ts +3 -0
  230. package/dist/cjs/utils/BlockExplorerUtils.js +52 -0
  231. package/dist/cjs/utils/BlockExplorerUtils.js.map +1 -0
  232. package/dist/cjs/utils/BlockUtils.d.ts +28 -0
  233. package/dist/cjs/utils/BlockUtils.js +251 -0
  234. package/dist/cjs/utils/BlockUtils.js.map +1 -0
  235. package/dist/cjs/utils/BundleUtils.d.ts +5 -0
  236. package/dist/cjs/utils/BundleUtils.js +62 -0
  237. package/dist/cjs/utils/BundleUtils.js.map +1 -0
  238. package/dist/cjs/utils/CachingUtils.d.ts +5 -0
  239. package/dist/cjs/utils/CachingUtils.js +59 -0
  240. package/dist/cjs/utils/CachingUtils.js.map +1 -0
  241. package/dist/cjs/utils/DeploymentUtils.d.ts +1 -0
  242. package/dist/cjs/utils/DeploymentUtils.js +8 -0
  243. package/dist/cjs/utils/DeploymentUtils.js.map +1 -0
  244. package/dist/cjs/utils/DepositUtils.d.ts +19 -0
  245. package/dist/cjs/utils/DepositUtils.js +107 -0
  246. package/dist/cjs/utils/DepositUtils.js.map +1 -0
  247. package/dist/cjs/utils/EventUtils.d.ts +18 -0
  248. package/dist/cjs/utils/EventUtils.js +169 -0
  249. package/dist/cjs/utils/EventUtils.js.map +1 -0
  250. package/dist/cjs/utils/FlowUtils.d.ts +7 -0
  251. package/dist/cjs/utils/FlowUtils.js +42 -0
  252. package/dist/cjs/utils/FlowUtils.js.map +1 -0
  253. package/dist/cjs/utils/FormattingUtils.d.ts +15 -0
  254. package/dist/cjs/utils/FormattingUtils.js +107 -0
  255. package/dist/cjs/utils/FormattingUtils.js.map +1 -0
  256. package/dist/cjs/utils/IPFSUtils.d.ts +4 -0
  257. package/dist/cjs/utils/IPFSUtils.js +48 -0
  258. package/dist/cjs/utils/IPFSUtils.js.map +1 -0
  259. package/dist/cjs/utils/JSONUtils.d.ts +4 -0
  260. package/dist/cjs/utils/JSONUtils.js +53 -0
  261. package/dist/cjs/utils/JSONUtils.js.map +1 -0
  262. package/dist/cjs/utils/LogUtils.d.ts +14 -0
  263. package/dist/cjs/utils/LogUtils.js +18 -0
  264. package/dist/cjs/utils/LogUtils.js.map +1 -0
  265. package/dist/cjs/utils/Multicall.d.ts +13 -0
  266. package/dist/cjs/utils/Multicall.js +73 -0
  267. package/dist/cjs/utils/Multicall.js.map +1 -0
  268. package/dist/cjs/utils/NetworkUtils.d.ts +10 -0
  269. package/dist/cjs/utils/NetworkUtils.js +70 -0
  270. package/dist/cjs/utils/NetworkUtils.js.map +1 -0
  271. package/dist/cjs/utils/NumberUtils.d.ts +2 -0
  272. package/dist/cjs/utils/NumberUtils.js +12 -0
  273. package/dist/cjs/utils/NumberUtils.js.map +1 -0
  274. package/dist/cjs/utils/ObjectUtils.d.ts +5 -0
  275. package/dist/cjs/utils/ObjectUtils.js +65 -0
  276. package/dist/cjs/utils/ObjectUtils.js.map +1 -0
  277. package/dist/cjs/utils/ReviverUtils.d.ts +3 -0
  278. package/dist/cjs/utils/ReviverUtils.js +23 -0
  279. package/dist/cjs/utils/ReviverUtils.js.map +1 -0
  280. package/dist/cjs/utils/SpokeUtils.d.ts +16 -0
  281. package/dist/cjs/utils/SpokeUtils.js +299 -0
  282. package/dist/cjs/utils/SpokeUtils.js.map +1 -0
  283. package/dist/cjs/utils/TimeUtils.d.ts +1 -0
  284. package/dist/cjs/utils/TimeUtils.js +8 -0
  285. package/dist/cjs/utils/TimeUtils.js.map +1 -0
  286. package/dist/cjs/utils/TokenUtils.d.ts +303 -0
  287. package/dist/cjs/utils/TokenUtils.js +74 -0
  288. package/dist/cjs/utils/TokenUtils.js.map +1 -0
  289. package/dist/cjs/utils/TypeGuards.d.ts +3 -0
  290. package/dist/cjs/utils/TypeGuards.js +16 -0
  291. package/dist/cjs/utils/TypeGuards.js.map +1 -0
  292. package/dist/cjs/utils/TypeUtils.d.ts +5 -0
  293. package/dist/cjs/utils/TypeUtils.js +3 -0
  294. package/dist/cjs/utils/TypeUtils.js.map +1 -0
  295. package/dist/cjs/utils/V3Utils.d.ts +4 -0
  296. package/dist/cjs/utils/V3Utils.js +15 -0
  297. package/dist/cjs/utils/V3Utils.js.map +1 -0
  298. package/dist/cjs/utils/ValidatorUtils.d.ts +2 -0
  299. package/dist/cjs/utils/ValidatorUtils.js +39 -0
  300. package/dist/cjs/utils/ValidatorUtils.js.map +1 -0
  301. package/dist/cjs/utils/abi/contracts/Multicall3.json +440 -0
  302. package/dist/cjs/utils/abi/index.d.ts +3 -0
  303. package/dist/cjs/utils/abi/index.js +31 -0
  304. package/dist/cjs/utils/abi/index.js.map +1 -0
  305. package/dist/cjs/utils/common.d.ts +79 -0
  306. package/dist/cjs/utils/common.js +220 -0
  307. package/dist/cjs/utils/common.js.map +1 -0
  308. package/dist/cjs/utils/index.d.ts +29 -0
  309. package/dist/cjs/utils/index.js +33 -0
  310. package/dist/cjs/utils/index.js.map +1 -0
  311. package/dist/esm/apiClient/abstractClient.d.ts +66 -0
  312. package/dist/esm/apiClient/abstractClient.js +31 -0
  313. package/dist/esm/apiClient/abstractClient.js.map +1 -0
  314. package/dist/esm/apiClient/index.d.ts +2 -0
  315. package/dist/esm/apiClient/index.js +3 -0
  316. package/dist/esm/apiClient/index.js.map +1 -0
  317. package/dist/esm/apiClient/mockedClient.d.ts +24 -0
  318. package/dist/esm/apiClient/mockedClient.js +69 -0
  319. package/dist/esm/apiClient/mockedClient.js.map +1 -0
  320. package/dist/esm/apiClient/productionClient.d.ts +16 -0
  321. package/dist/esm/apiClient/productionClient.js +114 -0
  322. package/dist/esm/apiClient/productionClient.js.map +1 -0
  323. package/dist/esm/apiClient/types.d.ts +44 -0
  324. package/dist/esm/apiClient/types.js +2 -0
  325. package/dist/esm/apiClient/types.js.map +1 -0
  326. package/dist/esm/caching/Arweave/ArweaveClient.d.ts +61 -0
  327. package/dist/esm/caching/Arweave/ArweaveClient.js +265 -0
  328. package/dist/esm/caching/Arweave/ArweaveClient.js.map +1 -0
  329. package/dist/esm/caching/Arweave/index.d.ts +1 -0
  330. package/dist/esm/caching/Arweave/index.js +2 -0
  331. package/dist/esm/caching/Arweave/index.js.map +1 -0
  332. package/dist/esm/caching/IPFS/PinataIPFSClient.d.ts +37 -0
  333. package/dist/esm/caching/IPFS/PinataIPFSClient.js +81 -0
  334. package/dist/esm/caching/IPFS/PinataIPFSClient.js.map +1 -0
  335. package/dist/esm/caching/IPFS/index.d.ts +1 -0
  336. package/dist/esm/caching/IPFS/index.js +2 -0
  337. package/dist/esm/caching/IPFS/index.js.map +1 -0
  338. package/dist/esm/caching/index.d.ts +2 -0
  339. package/dist/esm/caching/index.js +3 -0
  340. package/dist/esm/caching/index.js.map +1 -0
  341. package/dist/esm/clients/AcrossConfigStoreClient/AcrossConfigStoreClient.d.ts +108 -0
  342. package/dist/esm/clients/AcrossConfigStoreClient/AcrossConfigStoreClient.js +467 -0
  343. package/dist/esm/clients/AcrossConfigStoreClient/AcrossConfigStoreClient.js.map +1 -0
  344. package/dist/esm/clients/AcrossConfigStoreClient/index.d.ts +1 -0
  345. package/dist/esm/clients/AcrossConfigStoreClient/index.js +2 -0
  346. package/dist/esm/clients/AcrossConfigStoreClient/index.js.map +1 -0
  347. package/dist/esm/clients/BaseAbstractClient.d.ts +51 -0
  348. package/dist/esm/clients/BaseAbstractClient.js +101 -0
  349. package/dist/esm/clients/BaseAbstractClient.js.map +1 -0
  350. package/dist/esm/clients/HubPoolClient.d.ts +134 -0
  351. package/dist/esm/clients/HubPoolClient.js +862 -0
  352. package/dist/esm/clients/HubPoolClient.js.map +1 -0
  353. package/dist/esm/clients/SpokePoolClient.d.ts +318 -0
  354. package/dist/esm/clients/SpokePoolClient.js +780 -0
  355. package/dist/esm/clients/SpokePoolClient.js.map +1 -0
  356. package/dist/esm/clients/index.d.ts +4 -0
  357. package/dist/esm/clients/index.js +6 -0
  358. package/dist/esm/clients/index.js.map +1 -0
  359. package/dist/esm/clients/mocks/MockConfigStoreClient.d.ts +20 -0
  360. package/dist/esm/clients/mocks/MockConfigStoreClient.js +122 -0
  361. package/dist/esm/clients/mocks/MockConfigStoreClient.js.map +1 -0
  362. package/dist/esm/clients/mocks/MockEvents.d.ts +34 -0
  363. package/dist/esm/clients/mocks/MockEvents.js +126 -0
  364. package/dist/esm/clients/mocks/MockEvents.js.map +1 -0
  365. package/dist/esm/clients/mocks/MockHubPoolClient.d.ts +35 -0
  366. package/dist/esm/clients/mocks/MockHubPoolClient.js +223 -0
  367. package/dist/esm/clients/mocks/MockHubPoolClient.js.map +1 -0
  368. package/dist/esm/clients/mocks/MockSpokePoolClient.d.ts +38 -0
  369. package/dist/esm/clients/mocks/MockSpokePoolClient.js +322 -0
  370. package/dist/esm/clients/mocks/MockSpokePoolClient.js.map +1 -0
  371. package/dist/esm/clients/mocks/index.d.ts +3 -0
  372. package/dist/esm/clients/mocks/index.js +4 -0
  373. package/dist/esm/clients/mocks/index.js.map +1 -0
  374. package/dist/esm/coingecko/Coingecko.d.ts +40 -0
  375. package/dist/esm/coingecko/Coingecko.js +283 -0
  376. package/dist/esm/coingecko/Coingecko.js.map +1 -0
  377. package/dist/esm/coingecko/index.d.ts +1 -0
  378. package/dist/esm/coingecko/index.js +2 -0
  379. package/dist/esm/coingecko/index.js.map +1 -0
  380. package/dist/esm/constants.d.ts +29 -0
  381. package/dist/esm/constants.js +34 -0
  382. package/dist/esm/constants.js.map +1 -0
  383. package/dist/esm/contracts/acrossConfigStore.d.ts +57 -0
  384. package/dist/esm/contracts/acrossConfigStore.js +62 -0
  385. package/dist/esm/contracts/acrossConfigStore.js.map +1 -0
  386. package/dist/esm/contracts/hubPool.d.ts +17 -0
  387. package/dist/esm/contracts/hubPool.js +55 -0
  388. package/dist/esm/contracts/hubPool.js.map +1 -0
  389. package/dist/esm/contracts/index.d.ts +2 -0
  390. package/dist/esm/contracts/index.js +5 -0
  391. package/dist/esm/contracts/index.js.map +1 -0
  392. package/dist/esm/contracts/utils.d.ts +23 -0
  393. package/dist/esm/contracts/utils.js +38 -0
  394. package/dist/esm/contracts/utils.js.map +1 -0
  395. package/dist/esm/gasPriceOracle/adapters/arbitrum.d.ts +3 -0
  396. package/dist/esm/gasPriceOracle/adapters/arbitrum.js +25 -0
  397. package/dist/esm/gasPriceOracle/adapters/arbitrum.js.map +1 -0
  398. package/dist/esm/gasPriceOracle/adapters/ethereum.d.ts +4 -0
  399. package/dist/esm/gasPriceOracle/adapters/ethereum.js +41 -0
  400. package/dist/esm/gasPriceOracle/adapters/ethereum.js.map +1 -0
  401. package/dist/esm/gasPriceOracle/adapters/index.d.ts +3 -0
  402. package/dist/esm/gasPriceOracle/adapters/index.js +4 -0
  403. package/dist/esm/gasPriceOracle/adapters/index.js.map +1 -0
  404. package/dist/esm/gasPriceOracle/adapters/polygon.d.ts +3 -0
  405. package/dist/esm/gasPriceOracle/adapters/polygon.js +78 -0
  406. package/dist/esm/gasPriceOracle/adapters/polygon.js.map +1 -0
  407. package/dist/esm/gasPriceOracle/index.d.ts +2 -0
  408. package/dist/esm/gasPriceOracle/index.js +2 -0
  409. package/dist/esm/gasPriceOracle/index.js.map +1 -0
  410. package/dist/esm/gasPriceOracle/oracle.d.ts +10 -0
  411. package/dist/esm/gasPriceOracle/oracle.js +48 -0
  412. package/dist/esm/gasPriceOracle/oracle.js.map +1 -0
  413. package/dist/esm/gasPriceOracle/types.d.ts +8 -0
  414. package/dist/esm/gasPriceOracle/types.js +2 -0
  415. package/dist/esm/gasPriceOracle/types.js.map +1 -0
  416. package/dist/esm/gasPriceOracle/util.d.ts +2 -0
  417. package/dist/esm/gasPriceOracle/util.js +4 -0
  418. package/dist/esm/gasPriceOracle/util.js.map +1 -0
  419. package/dist/esm/index.d.ts +15 -0
  420. package/dist/esm/index.js +31 -0
  421. package/dist/esm/index.js.map +1 -0
  422. package/dist/esm/interfaces/Bridge.d.ts +9 -0
  423. package/dist/esm/interfaces/Bridge.js +2 -0
  424. package/dist/esm/interfaces/Bridge.js.map +1 -0
  425. package/dist/esm/interfaces/CachingMechanism.d.ts +26 -0
  426. package/dist/esm/interfaces/CachingMechanism.js +2 -0
  427. package/dist/esm/interfaces/CachingMechanism.js.map +1 -0
  428. package/dist/esm/interfaces/Common.d.ts +10 -0
  429. package/dist/esm/interfaces/Common.js +2 -0
  430. package/dist/esm/interfaces/Common.js.map +1 -0
  431. package/dist/esm/interfaces/ConfigStore.d.ts +157 -0
  432. package/dist/esm/interfaces/ConfigStore.js +2 -0
  433. package/dist/esm/interfaces/ConfigStore.js.map +1 -0
  434. package/dist/esm/interfaces/Error.d.ts +5 -0
  435. package/dist/esm/interfaces/Error.js +2 -0
  436. package/dist/esm/interfaces/Error.js.map +1 -0
  437. package/dist/esm/interfaces/HubPool.d.ts +98 -0
  438. package/dist/esm/interfaces/HubPool.js +2 -0
  439. package/dist/esm/interfaces/HubPool.js.map +1 -0
  440. package/dist/esm/interfaces/SpokePool.d.ts +103 -0
  441. package/dist/esm/interfaces/SpokePool.js +13 -0
  442. package/dist/esm/interfaces/SpokePool.js.map +1 -0
  443. package/dist/esm/interfaces/TypedData.d.ts +19 -0
  444. package/dist/esm/interfaces/TypedData.js +2 -0
  445. package/dist/esm/interfaces/TypedData.js.map +1 -0
  446. package/dist/esm/interfaces/index.d.ts +8 -0
  447. package/dist/esm/interfaces/index.js +9 -0
  448. package/dist/esm/interfaces/index.js.map +1 -0
  449. package/dist/esm/lpFeeCalculator/index.d.ts +1 -0
  450. package/dist/esm/lpFeeCalculator/index.js +2 -0
  451. package/dist/esm/lpFeeCalculator/index.js.map +1 -0
  452. package/dist/esm/lpFeeCalculator/lpFeeCalculator.d.ts +66 -0
  453. package/dist/esm/lpFeeCalculator/lpFeeCalculator.js +129 -0
  454. package/dist/esm/lpFeeCalculator/lpFeeCalculator.js.map +1 -0
  455. package/dist/esm/lpFeeCalculator/rateModel.d.ts +45 -0
  456. package/dist/esm/lpFeeCalculator/rateModel.js +138 -0
  457. package/dist/esm/lpFeeCalculator/rateModel.js.map +1 -0
  458. package/dist/esm/merkleDistributor/MerkleDistributor.d.ts +20 -0
  459. package/dist/esm/merkleDistributor/MerkleDistributor.js +34 -0
  460. package/dist/esm/merkleDistributor/MerkleDistributor.js.map +1 -0
  461. package/dist/esm/merkleDistributor/index.d.ts +2 -0
  462. package/dist/esm/merkleDistributor/index.js +3 -0
  463. package/dist/esm/merkleDistributor/index.js.map +1 -0
  464. package/dist/esm/merkleDistributor/model/Distribution.d.ts +17 -0
  465. package/dist/esm/merkleDistributor/model/Distribution.js +2 -0
  466. package/dist/esm/merkleDistributor/model/Distribution.js.map +1 -0
  467. package/dist/esm/merkleDistributor/model/index.d.ts +1 -0
  468. package/dist/esm/merkleDistributor/model/index.js +2 -0
  469. package/dist/esm/merkleDistributor/model/index.js.map +1 -0
  470. package/dist/esm/package.json +1 -0
  471. package/dist/esm/pool/TransactionManager.d.ts +12 -0
  472. package/dist/esm/pool/TransactionManager.js +122 -0
  473. package/dist/esm/pool/TransactionManager.js.map +1 -0
  474. package/dist/esm/pool/index.d.ts +1 -0
  475. package/dist/esm/pool/index.js +2 -0
  476. package/dist/esm/pool/index.js.map +1 -0
  477. package/dist/esm/pool/poolClient.d.ts +242 -0
  478. package/dist/esm/pool/poolClient.js +899 -0
  479. package/dist/esm/pool/poolClient.js.map +1 -0
  480. package/dist/esm/priceClient/adapters/acrossApi.d.ts +14 -0
  481. package/dist/esm/priceClient/adapters/acrossApi.js +49 -0
  482. package/dist/esm/priceClient/adapters/acrossApi.js.map +1 -0
  483. package/dist/esm/priceClient/adapters/baseAdapter.d.ts +17 -0
  484. package/dist/esm/priceClient/adapters/baseAdapter.js +78 -0
  485. package/dist/esm/priceClient/adapters/baseAdapter.js.map +1 -0
  486. package/dist/esm/priceClient/adapters/coingecko.d.ts +14 -0
  487. package/dist/esm/priceClient/adapters/coingecko.js +73 -0
  488. package/dist/esm/priceClient/adapters/coingecko.js.map +1 -0
  489. package/dist/esm/priceClient/adapters/defiLlama.d.ts +17 -0
  490. package/dist/esm/priceClient/adapters/defiLlama.js +93 -0
  491. package/dist/esm/priceClient/adapters/defiLlama.js.map +1 -0
  492. package/dist/esm/priceClient/adapters/index.d.ts +3 -0
  493. package/dist/esm/priceClient/adapters/index.js +7 -0
  494. package/dist/esm/priceClient/adapters/index.js.map +1 -0
  495. package/dist/esm/priceClient/index.d.ts +2 -0
  496. package/dist/esm/priceClient/index.js +4 -0
  497. package/dist/esm/priceClient/index.js.map +1 -0
  498. package/dist/esm/priceClient/priceClient.d.ts +32 -0
  499. package/dist/esm/priceClient/priceClient.js +206 -0
  500. package/dist/esm/priceClient/priceClient.js.map +1 -0
  501. package/dist/esm/relayFeeCalculator/chain-queries/baseQuery.d.ts +61 -0
  502. package/dist/esm/relayFeeCalculator/chain-queries/baseQuery.js +91 -0
  503. package/dist/esm/relayFeeCalculator/chain-queries/baseQuery.js.map +1 -0
  504. package/dist/esm/relayFeeCalculator/chain-queries/factory.d.ts +151 -0
  505. package/dist/esm/relayFeeCalculator/chain-queries/factory.js +38 -0
  506. package/dist/esm/relayFeeCalculator/chain-queries/factory.js.map +1 -0
  507. package/dist/esm/relayFeeCalculator/chain-queries/index.d.ts +3 -0
  508. package/dist/esm/relayFeeCalculator/chain-queries/index.js +4 -0
  509. package/dist/esm/relayFeeCalculator/chain-queries/index.js.map +1 -0
  510. package/dist/esm/relayFeeCalculator/chain-queries/polygon.d.ts +152 -0
  511. package/dist/esm/relayFeeCalculator/chain-queries/polygon.js +40 -0
  512. package/dist/esm/relayFeeCalculator/chain-queries/polygon.js.map +1 -0
  513. package/dist/esm/relayFeeCalculator/index.d.ts +2 -0
  514. package/dist/esm/relayFeeCalculator/index.js +3 -0
  515. package/dist/esm/relayFeeCalculator/index.js.map +1 -0
  516. package/dist/esm/relayFeeCalculator/relayFeeCalculator.d.ts +282 -0
  517. package/dist/esm/relayFeeCalculator/relayFeeCalculator.js +298 -0
  518. package/dist/esm/relayFeeCalculator/relayFeeCalculator.js.map +1 -0
  519. package/dist/esm/typechain.d.ts +22 -0
  520. package/dist/esm/typechain.js +9 -0
  521. package/dist/esm/typechain.js.map +1 -0
  522. package/dist/esm/typeguards/error.d.ts +3 -0
  523. package/dist/esm/typeguards/error.js +6 -0
  524. package/dist/esm/typeguards/error.js.map +1 -0
  525. package/dist/esm/typeguards/index.d.ts +1 -0
  526. package/dist/esm/typeguards/index.js +2 -0
  527. package/dist/esm/typeguards/index.js.map +1 -0
  528. package/dist/esm/utils/AddressUtils.d.ts +8 -0
  529. package/dist/esm/utils/AddressUtils.js +28 -0
  530. package/dist/esm/utils/AddressUtils.js.map +1 -0
  531. package/dist/esm/utils/ArrayUtils.d.ts +98 -0
  532. package/dist/esm/utils/ArrayUtils.js +196 -0
  533. package/dist/esm/utils/ArrayUtils.js.map +1 -0
  534. package/dist/esm/utils/BigNumberUtils.d.ts +31 -0
  535. package/dist/esm/utils/BigNumberUtils.js +52 -0
  536. package/dist/esm/utils/BigNumberUtils.js.map +1 -0
  537. package/dist/esm/utils/BlockExplorerUtils.d.ts +21 -0
  538. package/dist/esm/utils/BlockExplorerUtils.js +91 -0
  539. package/dist/esm/utils/BlockExplorerUtils.js.map +1 -0
  540. package/dist/esm/utils/BlockUtils.d.ts +46 -0
  541. package/dist/esm/utils/BlockUtils.js +294 -0
  542. package/dist/esm/utils/BlockUtils.js.map +1 -0
  543. package/dist/esm/utils/BundleUtils.d.ts +29 -0
  544. package/dist/esm/utils/BundleUtils.js +89 -0
  545. package/dist/esm/utils/BundleUtils.js.map +1 -0
  546. package/dist/esm/utils/CachingUtils.d.ts +17 -0
  547. package/dist/esm/utils/CachingUtils.js +66 -0
  548. package/dist/esm/utils/CachingUtils.js.map +1 -0
  549. package/dist/esm/utils/DeploymentUtils.d.ts +1 -0
  550. package/dist/esm/utils/DeploymentUtils.js +2 -0
  551. package/dist/esm/utils/DeploymentUtils.js.map +1 -0
  552. package/dist/esm/utils/DepositUtils.d.ts +46 -0
  553. package/dist/esm/utils/DepositUtils.js +138 -0
  554. package/dist/esm/utils/DepositUtils.js.map +1 -0
  555. package/dist/esm/utils/EventUtils.d.ts +32 -0
  556. package/dist/esm/utils/EventUtils.js +194 -0
  557. package/dist/esm/utils/EventUtils.js.map +1 -0
  558. package/dist/esm/utils/FlowUtils.d.ts +8 -0
  559. package/dist/esm/utils/FlowUtils.js +39 -0
  560. package/dist/esm/utils/FlowUtils.js.map +1 -0
  561. package/dist/esm/utils/FormattingUtils.d.ts +61 -0
  562. package/dist/esm/utils/FormattingUtils.js +167 -0
  563. package/dist/esm/utils/FormattingUtils.js.map +1 -0
  564. package/dist/esm/utils/IPFSUtils.d.ts +24 -0
  565. package/dist/esm/utils/IPFSUtils.js +65 -0
  566. package/dist/esm/utils/IPFSUtils.js.map +1 -0
  567. package/dist/esm/utils/JSONUtils.d.ts +31 -0
  568. package/dist/esm/utils/JSONUtils.js +82 -0
  569. package/dist/esm/utils/JSONUtils.js.map +1 -0
  570. package/dist/esm/utils/LogUtils.d.ts +20 -0
  571. package/dist/esm/utils/LogUtils.js +19 -0
  572. package/dist/esm/utils/LogUtils.js.map +1 -0
  573. package/dist/esm/utils/Multicall.d.ts +13 -0
  574. package/dist/esm/utils/Multicall.js +70 -0
  575. package/dist/esm/utils/Multicall.js.map +1 -0
  576. package/dist/esm/utils/NetworkUtils.d.ts +60 -0
  577. package/dist/esm/utils/NetworkUtils.js +109 -0
  578. package/dist/esm/utils/NetworkUtils.js.map +1 -0
  579. package/dist/esm/utils/NumberUtils.d.ts +12 -0
  580. package/dist/esm/utils/NumberUtils.js +17 -0
  581. package/dist/esm/utils/NumberUtils.js.map +1 -0
  582. package/dist/esm/utils/ObjectUtils.d.ts +10 -0
  583. package/dist/esm/utils/ObjectUtils.js +72 -0
  584. package/dist/esm/utils/ObjectUtils.js.map +1 -0
  585. package/dist/esm/utils/ReviverUtils.d.ts +15 -0
  586. package/dist/esm/utils/ReviverUtils.js +33 -0
  587. package/dist/esm/utils/ReviverUtils.js.map +1 -0
  588. package/dist/esm/utils/SpokeUtils.d.ts +64 -0
  589. package/dist/esm/utils/SpokeUtils.js +370 -0
  590. package/dist/esm/utils/SpokeUtils.js.map +1 -0
  591. package/dist/esm/utils/TimeUtils.d.ts +5 -0
  592. package/dist/esm/utils/TimeUtils.js +8 -0
  593. package/dist/esm/utils/TimeUtils.js.map +1 -0
  594. package/dist/esm/utils/TokenUtils.d.ts +325 -0
  595. package/dist/esm/utils/TokenUtils.js +88 -0
  596. package/dist/esm/utils/TokenUtils.js.map +1 -0
  597. package/dist/esm/utils/TypeGuards.d.ts +3 -0
  598. package/dist/esm/utils/TypeGuards.js +10 -0
  599. package/dist/esm/utils/TypeGuards.js.map +1 -0
  600. package/dist/esm/utils/TypeUtils.d.ts +5 -0
  601. package/dist/esm/utils/TypeUtils.js +2 -0
  602. package/dist/esm/utils/TypeUtils.js.map +1 -0
  603. package/dist/esm/utils/V3Utils.d.ts +4 -0
  604. package/dist/esm/utils/V3Utils.js +10 -0
  605. package/dist/esm/utils/V3Utils.js.map +1 -0
  606. package/dist/esm/utils/ValidatorUtils.d.ts +2 -0
  607. package/dist/esm/utils/ValidatorUtils.js +35 -0
  608. package/dist/esm/utils/ValidatorUtils.js.map +1 -0
  609. package/dist/esm/utils/abi/contracts/Multicall3.json +440 -0
  610. package/dist/esm/utils/abi/index.d.ts +18 -0
  611. package/dist/esm/utils/abi/index.js +41 -0
  612. package/dist/esm/utils/abi/index.js.map +1 -0
  613. package/dist/esm/utils/common.d.ts +204 -0
  614. package/dist/esm/utils/common.js +325 -0
  615. package/dist/esm/utils/common.js.map +1 -0
  616. package/dist/esm/utils/index.d.ts +29 -0
  617. package/dist/esm/utils/index.js +30 -0
  618. package/dist/esm/utils/index.js.map +1 -0
  619. package/dist/types/apiClient/abstractClient.d.ts +67 -0
  620. package/dist/types/apiClient/abstractClient.d.ts.map +1 -0
  621. package/dist/types/apiClient/index.d.ts +3 -0
  622. package/dist/types/apiClient/index.d.ts.map +1 -0
  623. package/dist/types/apiClient/mockedClient.d.ts +25 -0
  624. package/dist/types/apiClient/mockedClient.d.ts.map +1 -0
  625. package/dist/types/apiClient/productionClient.d.ts +17 -0
  626. package/dist/types/apiClient/productionClient.d.ts.map +1 -0
  627. package/dist/types/apiClient/types.d.ts +45 -0
  628. package/dist/types/apiClient/types.d.ts.map +1 -0
  629. package/dist/types/caching/Arweave/ArweaveClient.d.ts +62 -0
  630. package/dist/types/caching/Arweave/ArweaveClient.d.ts.map +1 -0
  631. package/dist/types/caching/Arweave/index.d.ts +2 -0
  632. package/dist/types/caching/Arweave/index.d.ts.map +1 -0
  633. package/dist/types/caching/IPFS/PinataIPFSClient.d.ts +38 -0
  634. package/dist/types/caching/IPFS/PinataIPFSClient.d.ts.map +1 -0
  635. package/dist/types/caching/IPFS/index.d.ts +2 -0
  636. package/dist/types/caching/IPFS/index.d.ts.map +1 -0
  637. package/dist/types/caching/index.d.ts +3 -0
  638. package/dist/types/caching/index.d.ts.map +1 -0
  639. package/dist/types/clients/AcrossConfigStoreClient/AcrossConfigStoreClient.d.ts +109 -0
  640. package/dist/types/clients/AcrossConfigStoreClient/AcrossConfigStoreClient.d.ts.map +1 -0
  641. package/dist/types/clients/AcrossConfigStoreClient/index.d.ts +2 -0
  642. package/dist/types/clients/AcrossConfigStoreClient/index.d.ts.map +1 -0
  643. package/dist/types/clients/BaseAbstractClient.d.ts +52 -0
  644. package/dist/types/clients/BaseAbstractClient.d.ts.map +1 -0
  645. package/dist/types/clients/HubPoolClient.d.ts +135 -0
  646. package/dist/types/clients/HubPoolClient.d.ts.map +1 -0
  647. package/dist/types/clients/SpokePoolClient.d.ts +319 -0
  648. package/dist/types/clients/SpokePoolClient.d.ts.map +1 -0
  649. package/dist/types/clients/index.d.ts +5 -0
  650. package/dist/types/clients/index.d.ts.map +1 -0
  651. package/dist/types/clients/mocks/MockConfigStoreClient.d.ts +21 -0
  652. package/dist/types/clients/mocks/MockConfigStoreClient.d.ts.map +1 -0
  653. package/dist/types/clients/mocks/MockEvents.d.ts +35 -0
  654. package/dist/types/clients/mocks/MockEvents.d.ts.map +1 -0
  655. package/dist/types/clients/mocks/MockHubPoolClient.d.ts +36 -0
  656. package/dist/types/clients/mocks/MockHubPoolClient.d.ts.map +1 -0
  657. package/dist/types/clients/mocks/MockSpokePoolClient.d.ts +39 -0
  658. package/dist/types/clients/mocks/MockSpokePoolClient.d.ts.map +1 -0
  659. package/dist/types/clients/mocks/index.d.ts +4 -0
  660. package/dist/types/clients/mocks/index.d.ts.map +1 -0
  661. package/dist/types/coingecko/Coingecko.d.ts +41 -0
  662. package/dist/types/coingecko/Coingecko.d.ts.map +1 -0
  663. package/dist/types/coingecko/index.d.ts +2 -0
  664. package/dist/types/coingecko/index.d.ts.map +1 -0
  665. package/dist/types/constants.d.ts +30 -0
  666. package/dist/types/constants.d.ts.map +1 -0
  667. package/dist/types/contracts/acrossConfigStore.d.ts +58 -0
  668. package/dist/types/contracts/acrossConfigStore.d.ts.map +1 -0
  669. package/dist/types/contracts/hubPool.d.ts +18 -0
  670. package/dist/types/contracts/hubPool.d.ts.map +1 -0
  671. package/dist/types/contracts/index.d.ts +3 -0
  672. package/dist/types/contracts/index.d.ts.map +1 -0
  673. package/dist/types/contracts/utils.d.ts +24 -0
  674. package/dist/types/contracts/utils.d.ts.map +1 -0
  675. package/dist/types/gasPriceOracle/adapters/arbitrum.d.ts +4 -0
  676. package/dist/types/gasPriceOracle/adapters/arbitrum.d.ts.map +1 -0
  677. package/dist/types/gasPriceOracle/adapters/ethereum.d.ts +5 -0
  678. package/dist/types/gasPriceOracle/adapters/ethereum.d.ts.map +1 -0
  679. package/dist/types/gasPriceOracle/adapters/index.d.ts +4 -0
  680. package/dist/types/gasPriceOracle/adapters/index.d.ts.map +1 -0
  681. package/dist/types/gasPriceOracle/adapters/polygon.d.ts +4 -0
  682. package/dist/types/gasPriceOracle/adapters/polygon.d.ts.map +1 -0
  683. package/dist/types/gasPriceOracle/index.d.ts +3 -0
  684. package/dist/types/gasPriceOracle/index.d.ts.map +1 -0
  685. package/dist/types/gasPriceOracle/oracle.d.ts +11 -0
  686. package/dist/types/gasPriceOracle/oracle.d.ts.map +1 -0
  687. package/dist/types/gasPriceOracle/types.d.ts +9 -0
  688. package/dist/types/gasPriceOracle/types.d.ts.map +1 -0
  689. package/dist/types/gasPriceOracle/util.d.ts +3 -0
  690. package/dist/types/gasPriceOracle/util.d.ts.map +1 -0
  691. package/dist/types/index.d.ts +16 -0
  692. package/dist/types/index.d.ts.map +1 -0
  693. package/dist/types/interfaces/Bridge.d.ts +10 -0
  694. package/dist/types/interfaces/Bridge.d.ts.map +1 -0
  695. package/dist/types/interfaces/CachingMechanism.d.ts +27 -0
  696. package/dist/types/interfaces/CachingMechanism.d.ts.map +1 -0
  697. package/dist/types/interfaces/Common.d.ts +11 -0
  698. package/dist/types/interfaces/Common.d.ts.map +1 -0
  699. package/dist/types/interfaces/ConfigStore.d.ts +158 -0
  700. package/dist/types/interfaces/ConfigStore.d.ts.map +1 -0
  701. package/dist/types/interfaces/Error.d.ts +6 -0
  702. package/dist/types/interfaces/Error.d.ts.map +1 -0
  703. package/dist/types/interfaces/HubPool.d.ts +99 -0
  704. package/dist/types/interfaces/HubPool.d.ts.map +1 -0
  705. package/dist/types/interfaces/SpokePool.d.ts +104 -0
  706. package/dist/types/interfaces/SpokePool.d.ts.map +1 -0
  707. package/dist/types/interfaces/TypedData.d.ts +20 -0
  708. package/dist/types/interfaces/TypedData.d.ts.map +1 -0
  709. package/dist/types/interfaces/index.d.ts +9 -0
  710. package/dist/types/interfaces/index.d.ts.map +1 -0
  711. package/dist/types/lpFeeCalculator/index.d.ts +2 -0
  712. package/dist/types/lpFeeCalculator/index.d.ts.map +1 -0
  713. package/dist/types/lpFeeCalculator/lpFeeCalculator.d.ts +67 -0
  714. package/dist/types/lpFeeCalculator/lpFeeCalculator.d.ts.map +1 -0
  715. package/dist/types/lpFeeCalculator/rateModel.d.ts +46 -0
  716. package/dist/types/lpFeeCalculator/rateModel.d.ts.map +1 -0
  717. package/dist/types/merkleDistributor/MerkleDistributor.d.ts +21 -0
  718. package/dist/types/merkleDistributor/MerkleDistributor.d.ts.map +1 -0
  719. package/dist/types/merkleDistributor/index.d.ts +3 -0
  720. package/dist/types/merkleDistributor/index.d.ts.map +1 -0
  721. package/dist/types/merkleDistributor/model/Distribution.d.ts +18 -0
  722. package/dist/types/merkleDistributor/model/Distribution.d.ts.map +1 -0
  723. package/dist/types/merkleDistributor/model/index.d.ts +2 -0
  724. package/dist/types/merkleDistributor/model/index.d.ts.map +1 -0
  725. package/dist/types/pool/TransactionManager.d.ts +13 -0
  726. package/dist/types/pool/TransactionManager.d.ts.map +1 -0
  727. package/dist/types/pool/index.d.ts +2 -0
  728. package/dist/types/pool/index.d.ts.map +1 -0
  729. package/dist/types/pool/poolClient.d.ts +243 -0
  730. package/dist/types/pool/poolClient.d.ts.map +1 -0
  731. package/dist/types/priceClient/adapters/acrossApi.d.ts +15 -0
  732. package/dist/types/priceClient/adapters/acrossApi.d.ts.map +1 -0
  733. package/dist/types/priceClient/adapters/baseAdapter.d.ts +18 -0
  734. package/dist/types/priceClient/adapters/baseAdapter.d.ts.map +1 -0
  735. package/dist/types/priceClient/adapters/coingecko.d.ts +15 -0
  736. package/dist/types/priceClient/adapters/coingecko.d.ts.map +1 -0
  737. package/dist/types/priceClient/adapters/defiLlama.d.ts +18 -0
  738. package/dist/types/priceClient/adapters/defiLlama.d.ts.map +1 -0
  739. package/dist/types/priceClient/adapters/index.d.ts +4 -0
  740. package/dist/types/priceClient/adapters/index.d.ts.map +1 -0
  741. package/dist/types/priceClient/index.d.ts +3 -0
  742. package/dist/types/priceClient/index.d.ts.map +1 -0
  743. package/dist/types/priceClient/priceClient.d.ts +33 -0
  744. package/dist/types/priceClient/priceClient.d.ts.map +1 -0
  745. package/dist/types/relayFeeCalculator/chain-queries/baseQuery.d.ts +62 -0
  746. package/dist/types/relayFeeCalculator/chain-queries/baseQuery.d.ts.map +1 -0
  747. package/dist/types/relayFeeCalculator/chain-queries/factory.d.ts +152 -0
  748. package/dist/types/relayFeeCalculator/chain-queries/factory.d.ts.map +1 -0
  749. package/dist/types/relayFeeCalculator/chain-queries/index.d.ts +4 -0
  750. package/dist/types/relayFeeCalculator/chain-queries/index.d.ts.map +1 -0
  751. package/dist/types/relayFeeCalculator/chain-queries/polygon.d.ts +153 -0
  752. package/dist/types/relayFeeCalculator/chain-queries/polygon.d.ts.map +1 -0
  753. package/dist/types/relayFeeCalculator/index.d.ts +3 -0
  754. package/dist/types/relayFeeCalculator/index.d.ts.map +1 -0
  755. package/dist/types/relayFeeCalculator/relayFeeCalculator.d.ts +283 -0
  756. package/dist/types/relayFeeCalculator/relayFeeCalculator.d.ts.map +1 -0
  757. package/dist/types/typechain.d.ts +23 -0
  758. package/dist/types/typechain.d.ts.map +1 -0
  759. package/dist/types/typeguards/error.d.ts +4 -0
  760. package/dist/types/typeguards/error.d.ts.map +1 -0
  761. package/dist/types/typeguards/index.d.ts +2 -0
  762. package/dist/types/typeguards/index.d.ts.map +1 -0
  763. package/dist/types/utils/AddressUtils.d.ts +9 -0
  764. package/dist/types/utils/AddressUtils.d.ts.map +1 -0
  765. package/dist/types/utils/ArrayUtils.d.ts +99 -0
  766. package/dist/types/utils/ArrayUtils.d.ts.map +1 -0
  767. package/dist/types/utils/BigNumberUtils.d.ts +32 -0
  768. package/dist/types/utils/BigNumberUtils.d.ts.map +1 -0
  769. package/dist/types/utils/BlockExplorerUtils.d.ts +22 -0
  770. package/dist/types/utils/BlockExplorerUtils.d.ts.map +1 -0
  771. package/dist/types/utils/BlockUtils.d.ts +47 -0
  772. package/dist/types/utils/BlockUtils.d.ts.map +1 -0
  773. package/dist/types/utils/BundleUtils.d.ts +30 -0
  774. package/dist/types/utils/BundleUtils.d.ts.map +1 -0
  775. package/dist/types/utils/CachingUtils.d.ts +18 -0
  776. package/dist/types/utils/CachingUtils.d.ts.map +1 -0
  777. package/dist/types/utils/DeploymentUtils.d.ts +2 -0
  778. package/dist/types/utils/DeploymentUtils.d.ts.map +1 -0
  779. package/dist/types/utils/DepositUtils.d.ts +47 -0
  780. package/dist/types/utils/DepositUtils.d.ts.map +1 -0
  781. package/dist/types/utils/EventUtils.d.ts +33 -0
  782. package/dist/types/utils/EventUtils.d.ts.map +1 -0
  783. package/dist/types/utils/FlowUtils.d.ts +9 -0
  784. package/dist/types/utils/FlowUtils.d.ts.map +1 -0
  785. package/dist/types/utils/FormattingUtils.d.ts +62 -0
  786. package/dist/types/utils/FormattingUtils.d.ts.map +1 -0
  787. package/dist/types/utils/IPFSUtils.d.ts +25 -0
  788. package/dist/types/utils/IPFSUtils.d.ts.map +1 -0
  789. package/dist/types/utils/JSONUtils.d.ts +32 -0
  790. package/dist/types/utils/JSONUtils.d.ts.map +1 -0
  791. package/dist/types/utils/LogUtils.d.ts +21 -0
  792. package/dist/types/utils/LogUtils.d.ts.map +1 -0
  793. package/dist/types/utils/Multicall.d.ts +14 -0
  794. package/dist/types/utils/Multicall.d.ts.map +1 -0
  795. package/dist/types/utils/NetworkUtils.d.ts +61 -0
  796. package/dist/types/utils/NetworkUtils.d.ts.map +1 -0
  797. package/dist/types/utils/NumberUtils.d.ts +13 -0
  798. package/dist/types/utils/NumberUtils.d.ts.map +1 -0
  799. package/dist/types/utils/ObjectUtils.d.ts +11 -0
  800. package/dist/types/utils/ObjectUtils.d.ts.map +1 -0
  801. package/dist/types/utils/ReviverUtils.d.ts +16 -0
  802. package/dist/types/utils/ReviverUtils.d.ts.map +1 -0
  803. package/dist/types/utils/SpokeUtils.d.ts +65 -0
  804. package/dist/types/utils/SpokeUtils.d.ts.map +1 -0
  805. package/dist/types/utils/TimeUtils.d.ts +6 -0
  806. package/dist/types/utils/TimeUtils.d.ts.map +1 -0
  807. package/dist/types/utils/TokenUtils.d.ts +326 -0
  808. package/dist/types/utils/TokenUtils.d.ts.map +1 -0
  809. package/dist/types/utils/TypeGuards.d.ts +4 -0
  810. package/dist/types/utils/TypeGuards.d.ts.map +1 -0
  811. package/dist/types/utils/TypeUtils.d.ts +6 -0
  812. package/dist/types/utils/TypeUtils.d.ts.map +1 -0
  813. package/dist/types/utils/V3Utils.d.ts +5 -0
  814. package/dist/types/utils/V3Utils.d.ts.map +1 -0
  815. package/dist/types/utils/ValidatorUtils.d.ts +3 -0
  816. package/dist/types/utils/ValidatorUtils.d.ts.map +1 -0
  817. package/dist/types/utils/abi/index.d.ts +19 -0
  818. package/dist/types/utils/abi/index.d.ts.map +1 -0
  819. package/dist/types/utils/common.d.ts +205 -0
  820. package/dist/types/utils/common.d.ts.map +1 -0
  821. package/dist/types/utils/index.d.ts +30 -0
  822. package/dist/types/utils/index.d.ts.map +1 -0
  823. package/package.json +144 -0
  824. package/src/apiClient/abstractClient.ts +95 -0
  825. package/src/apiClient/index.ts +2 -0
  826. package/src/apiClient/mockedClient.ts +90 -0
  827. package/src/apiClient/productionClient.ts +98 -0
  828. package/src/apiClient/types.ts +49 -0
  829. package/src/caching/Arweave/ArweaveClient.ts +238 -0
  830. package/src/caching/Arweave/index.ts +1 -0
  831. package/src/caching/IPFS/PinataIPFSClient.ts +92 -0
  832. package/src/caching/IPFS/index.ts +1 -0
  833. package/src/caching/index.ts +2 -0
  834. package/src/clients/AcrossConfigStoreClient/AcrossConfigStoreClient.ts +526 -0
  835. package/src/clients/AcrossConfigStoreClient/index.ts +1 -0
  836. package/src/clients/BaseAbstractClient.ts +94 -0
  837. package/src/clients/HubPoolClient.ts +1010 -0
  838. package/src/clients/SpokePoolClient.ts +894 -0
  839. package/src/clients/index.ts +9 -0
  840. package/src/clients/mocks/MockConfigStoreClient.ts +129 -0
  841. package/src/clients/mocks/MockEvents.ts +156 -0
  842. package/src/clients/mocks/MockHubPoolClient.ts +257 -0
  843. package/src/clients/mocks/MockSpokePoolClient.ts +341 -0
  844. package/src/clients/mocks/index.ts +3 -0
  845. package/src/coingecko/Coingecko.ts +277 -0
  846. package/src/coingecko/index.ts +1 -0
  847. package/src/constants.ts +53 -0
  848. package/src/contracts/acrossConfigStore.ts +49 -0
  849. package/src/contracts/hubPool.ts +90 -0
  850. package/src/contracts/index.ts +2 -0
  851. package/src/contracts/utils.ts +56 -0
  852. package/src/gasPriceOracle/adapters/arbitrum.ts +21 -0
  853. package/src/gasPriceOracle/adapters/ethereum.ts +27 -0
  854. package/src/gasPriceOracle/adapters/index.ts +3 -0
  855. package/src/gasPriceOracle/adapters/polygon.ts +77 -0
  856. package/src/gasPriceOracle/index.ts +2 -0
  857. package/src/gasPriceOracle/oracle.ts +42 -0
  858. package/src/gasPriceOracle/types.ts +10 -0
  859. package/src/gasPriceOracle/util.ts +5 -0
  860. package/src/index.ts +15 -0
  861. package/src/interfaces/Bridge.ts +10 -0
  862. package/src/interfaces/CachingMechanism.ts +37 -0
  863. package/src/interfaces/Common.ts +12 -0
  864. package/src/interfaces/ConfigStore.ts +173 -0
  865. package/src/interfaces/Error.ts +5 -0
  866. package/src/interfaces/HubPool.ts +118 -0
  867. package/src/interfaces/SpokePool.ts +119 -0
  868. package/src/interfaces/TypedData.ts +21 -0
  869. package/src/interfaces/index.ts +8 -0
  870. package/src/lpFeeCalculator/README.md +27 -0
  871. package/src/lpFeeCalculator/index.ts +1 -0
  872. package/src/lpFeeCalculator/lpFeeCalculator.ts +169 -0
  873. package/src/lpFeeCalculator/rateModel.ts +183 -0
  874. package/src/merkleDistributor/MerkleDistributor.ts +37 -0
  875. package/src/merkleDistributor/README.md +30 -0
  876. package/src/merkleDistributor/index.ts +2 -0
  877. package/src/merkleDistributor/model/Distribution.ts +17 -0
  878. package/src/merkleDistributor/model/index.ts +1 -0
  879. package/src/pool/TransactionManager.ts +73 -0
  880. package/src/pool/index.ts +1 -0
  881. package/src/pool/poolClient.ts +840 -0
  882. package/src/priceClient/README.md +36 -0
  883. package/src/priceClient/adapters/acrossApi.ts +44 -0
  884. package/src/priceClient/adapters/baseAdapter.ts +65 -0
  885. package/src/priceClient/adapters/coingecko.ts +67 -0
  886. package/src/priceClient/adapters/defiLlama.ts +96 -0
  887. package/src/priceClient/adapters/index.ts +3 -0
  888. package/src/priceClient/index.ts +2 -0
  889. package/src/priceClient/priceClient.ts +192 -0
  890. package/src/relayFeeCalculator/README.md +34 -0
  891. package/src/relayFeeCalculator/chain-queries/baseQuery.ts +98 -0
  892. package/src/relayFeeCalculator/chain-queries/factory.ts +58 -0
  893. package/src/relayFeeCalculator/chain-queries/index.ts +3 -0
  894. package/src/relayFeeCalculator/chain-queries/polygon.ts +45 -0
  895. package/src/relayFeeCalculator/index.ts +2 -0
  896. package/src/relayFeeCalculator/relayFeeCalculator.ts +410 -0
  897. package/src/typechain.ts +46 -0
  898. package/src/typeguards/error.ts +7 -0
  899. package/src/typeguards/index.ts +1 -0
  900. package/src/utils/AddressUtils.ts +18 -0
  901. package/src/utils/ArrayUtils.ts +170 -0
  902. package/src/utils/BigNumberUtils.ts +58 -0
  903. package/src/utils/BlockExplorerUtils.ts +91 -0
  904. package/src/utils/BlockUtils.ts +265 -0
  905. package/src/utils/BundleUtils.ts +109 -0
  906. package/src/utils/CachingUtils.ts +56 -0
  907. package/src/utils/DeploymentUtils.ts +5 -0
  908. package/src/utils/DepositUtils.ts +144 -0
  909. package/src/utils/EventUtils.ts +227 -0
  910. package/src/utils/FlowUtils.ts +48 -0
  911. package/src/utils/FormattingUtils.ts +186 -0
  912. package/src/utils/IPFSUtils.ts +48 -0
  913. package/src/utils/JSONUtils.ts +85 -0
  914. package/src/utils/LogUtils.ts +38 -0
  915. package/src/utils/Multicall.ts +64 -0
  916. package/src/utils/NetworkUtils.ts +117 -0
  917. package/src/utils/NumberUtils.ts +17 -0
  918. package/src/utils/ObjectUtils.ts +77 -0
  919. package/src/utils/ReviverUtils.ts +31 -0
  920. package/src/utils/SpokeUtils.ts +372 -0
  921. package/src/utils/TimeUtils.ts +7 -0
  922. package/src/utils/TokenUtils.ts +94 -0
  923. package/src/utils/TypeGuards.ts +15 -0
  924. package/src/utils/TypeUtils.ts +9 -0
  925. package/src/utils/V3Utils.ts +12 -0
  926. package/src/utils/ValidatorUtils.ts +38 -0
  927. package/src/utils/abi/contracts/Multicall3.json +440 -0
  928. package/src/utils/abi/index.ts +33 -0
  929. package/src/utils/common.ts +392 -0
  930. package/src/utils/index.ts +29 -0
@@ -0,0 +1,862 @@
1
+ import { __assign, __awaiter, __extends, __generator, __spreadArray } from "tslib";
2
+ import assert from "assert";
3
+ import { BigNumber } from "ethers";
4
+ import _ from "lodash";
5
+ import { DEFAULT_CACHING_SAFE_LAG, DEFAULT_CACHING_TTL } from "../constants";
6
+ import * as lpFeeCalculator from "../lpFeeCalculator";
7
+ import { BlockFinder, bnZero, dedupArray, assign, fetchTokenInfo, getCachedBlockForTimestamp, getCurrentTime, getNetworkName, isDefined, mapAsync, paginatedEventQuery, shouldCache, sortEventsDescending, spreadEvent, spreadEventWithBlockNumber, toBN, } from "../utils";
8
+ import { BaseAbstractClient, isUpdateFailureReason, UpdateFailureReason } from "./BaseAbstractClient";
9
+ var HubPoolClient = /** @class */ (function (_super) {
10
+ __extends(HubPoolClient, _super);
11
+ function HubPoolClient(logger, hubPool, configStoreClient, deploymentBlock, chainId, eventSearchConfig, configOverride, cachingMechanism) {
12
+ if (deploymentBlock === void 0) { deploymentBlock = 0; }
13
+ if (chainId === void 0) { chainId = 1; }
14
+ if (eventSearchConfig === void 0) { eventSearchConfig = { fromBlock: 0, maxBlockLookBack: 0 }; }
15
+ if (configOverride === void 0) { configOverride = {
16
+ ignoredHubExecutedBundles: [],
17
+ ignoredHubProposedBundles: [],
18
+ }; }
19
+ var _this = _super.call(this, eventSearchConfig, cachingMechanism) || this;
20
+ _this.logger = logger;
21
+ _this.hubPool = hubPool;
22
+ _this.configStoreClient = configStoreClient;
23
+ _this.deploymentBlock = deploymentBlock;
24
+ _this.chainId = chainId;
25
+ _this.configOverride = configOverride;
26
+ // L1Token -> destinationChainId -> destinationToken
27
+ _this.l1TokensToDestinationTokens = {};
28
+ _this.l1Tokens = []; // L1Tokens and their associated info.
29
+ _this.lpTokens = {};
30
+ _this.proposedRootBundles = [];
31
+ _this.canceledRootBundles = [];
32
+ _this.disputedRootBundles = [];
33
+ _this.executedRootBundles = [];
34
+ _this.crossChainContracts = {};
35
+ _this.l1TokensToDestinationTokensWithBlock = {};
36
+ _this.latestBlockSearched = Math.min(deploymentBlock - 1, 0);
37
+ _this.firstBlockToSearch = eventSearchConfig.fromBlock;
38
+ var provider = _this.hubPool.provider;
39
+ _this.blockFinder = new BlockFinder(provider);
40
+ return _this;
41
+ }
42
+ HubPoolClient.prototype.hubPoolEventFilters = function () {
43
+ return {
44
+ SetPoolRebalanceRoute: this.hubPool.filters.SetPoolRebalanceRoute(),
45
+ L1TokenEnabledForLiquidityProvision: this.hubPool.filters.L1TokenEnabledForLiquidityProvision(),
46
+ ProposeRootBundle: this.hubPool.filters.ProposeRootBundle(),
47
+ RootBundleCanceled: this.hubPool.filters.RootBundleCanceled(),
48
+ RootBundleDisputed: this.hubPool.filters.RootBundleDisputed(),
49
+ RootBundleExecuted: this.hubPool.filters.RootBundleExecuted(),
50
+ CrossChainContractsSet: this.hubPool.filters.CrossChainContractsSet(),
51
+ };
52
+ };
53
+ HubPoolClient.prototype.hasPendingProposal = function () {
54
+ return this.pendingRootBundle !== undefined;
55
+ };
56
+ HubPoolClient.prototype.getPendingRootBundle = function () {
57
+ return this.pendingRootBundle;
58
+ };
59
+ HubPoolClient.prototype.getProposedRootBundles = function () {
60
+ return this.proposedRootBundles;
61
+ };
62
+ HubPoolClient.prototype.getCancelledRootBundles = function () {
63
+ return this.canceledRootBundles;
64
+ };
65
+ HubPoolClient.prototype.getDisputedRootBundles = function () {
66
+ return this.disputedRootBundles;
67
+ };
68
+ HubPoolClient.prototype.getExecutedRootBundles = function () {
69
+ return this.executedRootBundles;
70
+ };
71
+ HubPoolClient.prototype.getSpokePoolForBlock = function (chain, block) {
72
+ if (block === void 0) { block = Number.MAX_SAFE_INTEGER; }
73
+ if (!this.crossChainContracts[chain]) {
74
+ throw new Error("No cross chain contracts set for ".concat(chain));
75
+ }
76
+ var mostRecentSpokePoolUpdateBeforeBlock = sortEventsDescending(this.crossChainContracts[chain]).find(function (crossChainContract) { return crossChainContract.blockNumber <= block; });
77
+ if (!mostRecentSpokePoolUpdateBeforeBlock) {
78
+ throw new Error("No cross chain contract found before block ".concat(block, " for chain ").concat(chain));
79
+ }
80
+ else {
81
+ return mostRecentSpokePoolUpdateBeforeBlock.spokePool;
82
+ }
83
+ };
84
+ HubPoolClient.prototype.getSpokePoolActivationBlock = function (chain, spokePool) {
85
+ // Return first time that this spoke pool was registered in the HubPool as a cross chain contract. We can use
86
+ // this block as the oldest block that we should query for SpokePoolClient purposes.
87
+ var mostRecentSpokePoolUpdateBeforeBlock = this.crossChainContracts[chain].find(function (crossChainContract) { return crossChainContract.spokePool === spokePool; });
88
+ return mostRecentSpokePoolUpdateBeforeBlock === null || mostRecentSpokePoolUpdateBeforeBlock === void 0 ? void 0 : mostRecentSpokePoolUpdateBeforeBlock.blockNumber;
89
+ };
90
+ // Returns the latest L2 token to use for an L1 token as of the input hub block.
91
+ HubPoolClient.prototype.getL2TokenForL1TokenAtBlock = function (l1Token, destinationChainId, latestHubBlock) {
92
+ var _a, _b, _c, _d;
93
+ if (latestHubBlock === void 0) { latestHubBlock = Number.MAX_SAFE_INTEGER; }
94
+ if (!((_b = (_a = this.l1TokensToDestinationTokensWithBlock) === null || _a === void 0 ? void 0 : _a[l1Token]) === null || _b === void 0 ? void 0 : _b[destinationChainId])) {
95
+ var chain = getNetworkName(destinationChainId);
96
+ var symbol = ((_c = this.l1Tokens.find(function (_a) {
97
+ var address = _a.address;
98
+ return address === l1Token;
99
+ })) !== null && _c !== void 0 ? _c : { symbol: l1Token }).symbol;
100
+ throw new Error("Could not find SpokePool mapping for ".concat(symbol, " on ").concat(chain, " and L1 token ").concat(l1Token));
101
+ }
102
+ // Find the last mapping published before the target block.
103
+ var l2Token = sortEventsDescending(this.l1TokensToDestinationTokensWithBlock[l1Token][destinationChainId]).find(function (mapping) { return mapping.blockNumber <= latestHubBlock; });
104
+ if (!l2Token) {
105
+ var chain = getNetworkName(destinationChainId);
106
+ var symbol = ((_d = this.l1Tokens.find(function (_a) {
107
+ var address = _a.address;
108
+ return address === l1Token;
109
+ })) !== null && _d !== void 0 ? _d : { symbol: l1Token }).symbol;
110
+ throw new Error("Could not find SpokePool mapping for ".concat(symbol, " on ").concat(chain, " at or before HubPool block ").concat(latestHubBlock, "!"));
111
+ }
112
+ return l2Token.l2Token;
113
+ };
114
+ // Returns the latest L1 token to use for an L2 token as of the input hub block.
115
+ HubPoolClient.prototype.getL1TokenForL2TokenAtBlock = function (l2Token, destinationChainId, latestHubBlock) {
116
+ var _this = this;
117
+ if (latestHubBlock === void 0) { latestHubBlock = Number.MAX_SAFE_INTEGER; }
118
+ var l2Tokens = Object.keys(this.l1TokensToDestinationTokensWithBlock)
119
+ .filter(function (l1Token) { return _this.l2TokenEnabledForL1Token(l1Token, destinationChainId); })
120
+ .map(function (l1Token) {
121
+ // Return all matching L2 token mappings that are equal to or earlier than the target block.
122
+ return _this.l1TokensToDestinationTokensWithBlock[l1Token][destinationChainId].filter(function (mapping) { return mapping.l2Token === l2Token && mapping.blockNumber <= latestHubBlock; });
123
+ })
124
+ .flat();
125
+ if (l2Tokens.length === 0) {
126
+ var chain = getNetworkName(destinationChainId);
127
+ throw new Error("Could not find HubPool mapping for ".concat(l2Token, " on ").concat(chain, " at or before HubPool block ").concat(latestHubBlock, "!"));
128
+ }
129
+ // Find the last mapping published before the target block.
130
+ return sortEventsDescending(l2Tokens)[0].l1Token;
131
+ };
132
+ /**
133
+ * Returns the L1 token that should be used for an L2 Bridge event. This function is
134
+ * designed to be used by the caller to associate the L2 token with its mapped L1 token
135
+ * at the HubPool equivalent block number of the L2 event.
136
+ * @param deposit Deposit event
137
+ * @param returns string L1 token counterpart for Deposit
138
+ */
139
+ HubPoolClient.prototype.getL1TokenForDeposit = function (deposit) {
140
+ // L1-->L2 token mappings are set via PoolRebalanceRoutes which occur on mainnet,
141
+ // so we use the latest token mapping. This way if a very old deposit is filled, the relayer can use the
142
+ // latest L2 token mapping to find the L1 token counterpart.
143
+ return this.getL1TokenForL2TokenAtBlock(deposit.inputToken, deposit.originChainId, deposit.quoteBlockNumber);
144
+ };
145
+ /**
146
+ * Returns the L2 token that should be used as a counterpart to a deposit event. For example, the caller
147
+ * might want to know what the refund token will be on l2ChainId for the deposit event.
148
+ * @param l2ChainId Chain where caller wants to get L2 token counterpart for
149
+ * @param event Deposit event
150
+ * @returns string L2 token counterpart on l2ChainId
151
+ */
152
+ HubPoolClient.prototype.getL2TokenForDeposit = function (deposit, l2ChainId) {
153
+ if (l2ChainId === void 0) { l2ChainId = deposit.destinationChainId; }
154
+ var l1Token = this.getL1TokenForDeposit(deposit);
155
+ // Use the latest hub block number to find the L2 token counterpart.
156
+ return this.getL2TokenForL1TokenAtBlock(l1Token, l2ChainId, deposit.quoteBlockNumber);
157
+ };
158
+ HubPoolClient.prototype.l2TokenEnabledForL1Token = function (l1Token, destinationChainId) {
159
+ var _a, _b;
160
+ return ((_b = (_a = this.l1TokensToDestinationTokens) === null || _a === void 0 ? void 0 : _a[l1Token]) === null || _b === void 0 ? void 0 : _b[destinationChainId]) != undefined;
161
+ };
162
+ HubPoolClient.prototype.getBlockNumber = function (timestamp) {
163
+ var hints = { lowBlock: this.deploymentBlock };
164
+ return getCachedBlockForTimestamp(this.chainId, timestamp, this.blockFinder, this.cachingMechanism, hints);
165
+ };
166
+ HubPoolClient.prototype.getCurrentPoolUtilization = function (l1Token) {
167
+ var _a;
168
+ return __awaiter(this, void 0, void 0, function () {
169
+ var blockNumber, _b;
170
+ return __generator(this, function (_c) {
171
+ switch (_c.label) {
172
+ case 0:
173
+ if (!((_a = this.latestBlockSearched) !== null && _a !== void 0)) return [3 /*break*/, 1];
174
+ _b = _a;
175
+ return [3 /*break*/, 3];
176
+ case 1: return [4 /*yield*/, this.hubPool.provider.getBlockNumber()];
177
+ case 2:
178
+ _b = (_c.sent());
179
+ _c.label = 3;
180
+ case 3:
181
+ blockNumber = _b;
182
+ return [4 /*yield*/, this.getUtilization(l1Token, blockNumber, bnZero, getCurrentTime(), 0)];
183
+ case 4: return [2 /*return*/, _c.sent()];
184
+ }
185
+ });
186
+ });
187
+ };
188
+ /**
189
+ * For a HubPool token at a specific block number, compute the relevant utilization.
190
+ * @param hubPoolToken HubPool token to query utilization for.
191
+ * @param blocknumber Block number to query utilization at.
192
+ * @param amount Amount to query. If set to 0, the closing utilization at blockNumber is returned.
193
+ * @param amount timestamp Associated quoteTimestamp for query, used for caching evaluation.
194
+ * @param timeToCache Age at which the response is able to be cached.
195
+ * @returns HubPool utilization at `blockNumber` after optional `amount` increase in utilization.
196
+ */
197
+ HubPoolClient.prototype.getUtilization = function (hubPoolToken, blockNumber, depositAmount, timestamp, timeToCache) {
198
+ return __awaiter(this, void 0, void 0, function () {
199
+ var resolver, cache, key, result, utilization;
200
+ var _this = this;
201
+ return __generator(this, function (_a) {
202
+ switch (_a.label) {
203
+ case 0:
204
+ resolver = function () { return __awaiter(_this, void 0, void 0, function () {
205
+ var overrides;
206
+ return __generator(this, function (_a) {
207
+ switch (_a.label) {
208
+ case 0:
209
+ overrides = { blockTag: blockNumber };
210
+ if (!depositAmount.eq(0)) return [3 /*break*/, 2];
211
+ return [4 /*yield*/, this.hubPool.callStatic.liquidityUtilizationCurrent(hubPoolToken, overrides)];
212
+ case 1:
213
+ // For zero amount, just get the utilisation at `blockNumber`.
214
+ return [2 /*return*/, _a.sent()];
215
+ case 2: return [4 /*yield*/, this.hubPool.callStatic.liquidityUtilizationPostRelay(hubPoolToken, depositAmount, overrides)];
216
+ case 3: return [2 /*return*/, _a.sent()];
217
+ }
218
+ });
219
+ }); };
220
+ cache = this.cachingMechanism;
221
+ // If there is no cache or the timestamp is not old enough to be cached, just resolve the function.
222
+ if (!cache || !shouldCache(getCurrentTime(), timestamp, timeToCache)) {
223
+ return [2 /*return*/, resolver()];
224
+ }
225
+ key = depositAmount.eq(0)
226
+ ? "utilization_".concat(hubPoolToken, "_").concat(blockNumber)
227
+ : "utilization_".concat(hubPoolToken, "_").concat(blockNumber, "_").concat(depositAmount.toString(), "_");
228
+ return [4 /*yield*/, cache.get(key)];
229
+ case 1:
230
+ result = _a.sent();
231
+ if (isDefined(result)) {
232
+ return [2 /*return*/, BigNumber.from(result)];
233
+ }
234
+ return [4 /*yield*/, resolver()];
235
+ case 2:
236
+ utilization = _a.sent();
237
+ if (!(cache && shouldCache(getCurrentTime(), timestamp, timeToCache))) return [3 /*break*/, 4];
238
+ // If we should cache the result, store it for up to DEFAULT_CACHING_TTL.
239
+ return [4 /*yield*/, cache.set(key, "".concat(utilization.toString()), DEFAULT_CACHING_TTL)];
240
+ case 3:
241
+ // If we should cache the result, store it for up to DEFAULT_CACHING_TTL.
242
+ _a.sent();
243
+ _a.label = 4;
244
+ case 4: return [2 /*return*/, utilization];
245
+ }
246
+ });
247
+ });
248
+ };
249
+ HubPoolClient.prototype.computeRealizedLpFeePct = function (deposit) {
250
+ return __awaiter(this, void 0, void 0, function () {
251
+ var lpFee;
252
+ return __generator(this, function (_a) {
253
+ switch (_a.label) {
254
+ case 0: return [4 /*yield*/, this.batchComputeRealizedLpFeePct([deposit])];
255
+ case 1:
256
+ lpFee = (_a.sent())[0];
257
+ return [2 /*return*/, lpFee];
258
+ }
259
+ });
260
+ });
261
+ };
262
+ HubPoolClient.prototype.batchComputeRealizedLpFeePct = function (deposits) {
263
+ var _a;
264
+ return __awaiter(this, void 0, void 0, function () {
265
+ var utilizationTimestamps, utilization, quoteBlocks, hubPoolTokens, getHubPoolToken, getHubPoolTokens, resolveUniqueQuoteTimestamps, resolveTimestampsToBlocks, resolveUtilization, computeRealizedLpFeePct, timeToCache, quoteTimestamps, _b, _c, _d, _e;
266
+ var _this = this;
267
+ return __generator(this, function (_f) {
268
+ switch (_f.label) {
269
+ case 0:
270
+ assert(deposits.length > 0, "No deposits supplied to batchComputeRealizedLpFeePct");
271
+ if (!isDefined(this.currentTime)) {
272
+ throw new Error("HubPoolClient has not set a currentTime");
273
+ }
274
+ utilizationTimestamps = {};
275
+ utilization = {};
276
+ quoteBlocks = {};
277
+ hubPoolTokens = {};
278
+ getHubPoolToken = function (deposit, quoteBlockNumber) {
279
+ var _a;
280
+ var tokenKey = "".concat(deposit.originChainId, "-").concat(deposit.inputToken);
281
+ return ((_a = hubPoolTokens[tokenKey]) !== null && _a !== void 0 ? _a : (hubPoolTokens[tokenKey] = _this.getL1TokenForDeposit(__assign(__assign({}, deposit), { quoteBlockNumber: quoteBlockNumber }))));
282
+ };
283
+ getHubPoolTokens = function () { return dedupArray(Object.values(hubPoolTokens)); };
284
+ resolveUniqueQuoteTimestamps = function (deposit) {
285
+ var _a;
286
+ var quoteTimestamp = deposit.quoteTimestamp;
287
+ // Resolve the HubPool token address for this origin chainId/token pair, if it isn't already known.
288
+ var quoteBlockNumber = quoteBlocks[quoteTimestamp];
289
+ var hubPoolToken = getHubPoolToken(deposit, quoteBlockNumber);
290
+ // Append the quoteTimestamp for this HubPool token, if it isn't already enqueued.
291
+ (_a = utilizationTimestamps[hubPoolToken]) !== null && _a !== void 0 ? _a : (utilizationTimestamps[hubPoolToken] = []);
292
+ if (!utilizationTimestamps[hubPoolToken].includes(quoteTimestamp)) {
293
+ utilizationTimestamps[hubPoolToken].push(quoteTimestamp);
294
+ }
295
+ };
296
+ resolveTimestampsToBlocks = function (quoteTimestamp) { return __awaiter(_this, void 0, void 0, function () {
297
+ var quoteBlock;
298
+ return __generator(this, function (_a) {
299
+ switch (_a.label) {
300
+ case 0: return [4 /*yield*/, this.getBlockNumber(quoteTimestamp)];
301
+ case 1:
302
+ quoteBlock = _a.sent();
303
+ if (!isDefined(quoteBlock)) {
304
+ throw new Error("Could not find block for timestamp ".concat(quoteTimestamp));
305
+ }
306
+ return [2 /*return*/, [quoteTimestamp, quoteBlock]];
307
+ }
308
+ });
309
+ }); };
310
+ resolveUtilization = function (hubPoolToken) { return __awaiter(_this, void 0, void 0, function () {
311
+ var _a, _b;
312
+ var _this = this;
313
+ return __generator(this, function (_c) {
314
+ switch (_c.label) {
315
+ case 0:
316
+ _b = (_a = Object).fromEntries;
317
+ return [4 /*yield*/, mapAsync(utilizationTimestamps[hubPoolToken], function (quoteTimestamp) { return __awaiter(_this, void 0, void 0, function () {
318
+ var blockNumber, utilization;
319
+ return __generator(this, function (_a) {
320
+ switch (_a.label) {
321
+ case 0:
322
+ blockNumber = quoteBlocks[quoteTimestamp];
323
+ return [4 /*yield*/, this.getUtilization(hubPoolToken, blockNumber, bnZero, // amount
324
+ quoteTimestamp, timeToCache)];
325
+ case 1:
326
+ utilization = _a.sent();
327
+ return [2 /*return*/, [blockNumber, utilization]];
328
+ }
329
+ });
330
+ }); })];
331
+ case 1: return [2 /*return*/, _b.apply(_a, [_c.sent()])];
332
+ }
333
+ });
334
+ }); };
335
+ computeRealizedLpFeePct = function (deposit) { return __awaiter(_this, void 0, void 0, function () {
336
+ var originChainId, paymentChainId, inputAmount, quoteTimestamp, quoteBlock, hubPoolToken, rateModel, preUtilization, postUtilization, realizedLpFeePct;
337
+ return __generator(this, function (_a) {
338
+ switch (_a.label) {
339
+ case 0:
340
+ originChainId = deposit.originChainId, paymentChainId = deposit.paymentChainId, inputAmount = deposit.inputAmount, quoteTimestamp = deposit.quoteTimestamp;
341
+ quoteBlock = quoteBlocks[quoteTimestamp];
342
+ if (paymentChainId === undefined) {
343
+ return [2 /*return*/, { quoteBlock: quoteBlock, realizedLpFeePct: bnZero }];
344
+ }
345
+ hubPoolToken = getHubPoolToken(deposit, quoteBlock);
346
+ rateModel = this.configStoreClient.getRateModelForBlockNumber(hubPoolToken, originChainId, paymentChainId, quoteBlock);
347
+ preUtilization = utilization[hubPoolToken][quoteBlock];
348
+ return [4 /*yield*/, this.getUtilization(hubPoolToken, quoteBlock, inputAmount, quoteTimestamp, timeToCache)];
349
+ case 1:
350
+ postUtilization = _a.sent();
351
+ realizedLpFeePct = lpFeeCalculator.calculateRealizedLpFeePct(rateModel, preUtilization, postUtilization);
352
+ return [2 /*return*/, { quoteBlock: quoteBlock, realizedLpFeePct: realizedLpFeePct }];
353
+ }
354
+ });
355
+ }); };
356
+ timeToCache = (_a = this.configOverride.timeToCache) !== null && _a !== void 0 ? _a : DEFAULT_CACHING_SAFE_LAG;
357
+ // Identify the unique hubPoolToken & quoteTimestamp mappings. This is used to optimise subsequent HubPool queries.
358
+ deposits.forEach(function (deposit) { return resolveUniqueQuoteTimestamps(deposit); });
359
+ quoteTimestamps = dedupArray(deposits.map(function (_a) {
360
+ var quoteTimestamp = _a.quoteTimestamp;
361
+ return quoteTimestamp;
362
+ }));
363
+ _c = (_b = Object).fromEntries;
364
+ return [4 /*yield*/, mapAsync(quoteTimestamps, function (quoteTimestamp) { return resolveTimestampsToBlocks(quoteTimestamp); })];
365
+ case 1:
366
+ quoteBlocks = _c.apply(_b, [_f.sent()]);
367
+ _e = (_d = Object).fromEntries;
368
+ return [4 /*yield*/, mapAsync(getHubPoolTokens(), function (hubPoolToken) { return __awaiter(_this, void 0, void 0, function () { var _a; return __generator(this, function (_b) {
369
+ switch (_b.label) {
370
+ case 0:
371
+ _a = [hubPoolToken];
372
+ return [4 /*yield*/, resolveUtilization(hubPoolToken)];
373
+ case 1: return [2 /*return*/, _a.concat([_b.sent()])];
374
+ }
375
+ }); }); })];
376
+ case 2:
377
+ // For each token / quoteBlock pair, resolve the utilisation for each quoted block.
378
+ // This can be reused for each deposit with the same HubPool token and quoteTimestamp pair.
379
+ utilization = _e.apply(_d, [_f.sent()]);
380
+ return [4 /*yield*/, mapAsync(deposits, function (deposit) { return computeRealizedLpFeePct(deposit); })];
381
+ case 3:
382
+ // For each deposit, compute the post-relay HubPool utilisation independently.
383
+ // @dev The caller expects to receive an array in the same length and ordering as the input `deposits`.
384
+ return [2 /*return*/, _f.sent()];
385
+ }
386
+ });
387
+ });
388
+ };
389
+ HubPoolClient.prototype.getL1Tokens = function () {
390
+ return this.l1Tokens;
391
+ };
392
+ HubPoolClient.prototype.getTokenInfoForL1Token = function (l1Token) {
393
+ return this.l1Tokens.find(function (token) { return token.address === l1Token; });
394
+ };
395
+ HubPoolClient.prototype.getLpTokenInfoForL1Token = function (l1Token) {
396
+ return this.lpTokens[l1Token];
397
+ };
398
+ HubPoolClient.prototype.getL1TokenInfoForL2Token = function (l2Token, chainId) {
399
+ var l1TokenCounterpart = this.getL1TokenForL2TokenAtBlock(l2Token, chainId, this.latestBlockSearched);
400
+ return this.getTokenInfoForL1Token(l1TokenCounterpart);
401
+ };
402
+ HubPoolClient.prototype.getTokenInfoForDeposit = function (deposit) {
403
+ return this.getTokenInfoForL1Token(this.getL1TokenForL2TokenAtBlock(deposit.inputToken, deposit.originChainId, this.latestBlockSearched));
404
+ };
405
+ HubPoolClient.prototype.getTokenInfo = function (chainId, tokenAddress) {
406
+ var deposit = { originChainId: parseInt(chainId.toString()), inputToken: tokenAddress };
407
+ return this.getTokenInfoForDeposit(deposit);
408
+ };
409
+ HubPoolClient.prototype.areTokensEquivalent = function (tokenA, chainIdA, tokenB, chainIdB, hubPoolBlock) {
410
+ if (hubPoolBlock === void 0) { hubPoolBlock = this.latestBlockSearched; }
411
+ try {
412
+ // Resolve both SpokePool tokens back to their respective HubPool tokens and verify that they match.
413
+ var l1TokenA = this.getL1TokenForL2TokenAtBlock(tokenA, chainIdA, hubPoolBlock);
414
+ var l1TokenB = this.getL1TokenForL2TokenAtBlock(tokenB, chainIdB, hubPoolBlock);
415
+ if (l1TokenA !== l1TokenB) {
416
+ return false;
417
+ }
418
+ // Resolve both HubPool tokens back to a current SpokePool token and verify that they match.
419
+ var _tokenA = this.getL2TokenForL1TokenAtBlock(l1TokenA, chainIdA, hubPoolBlock);
420
+ var _tokenB = this.getL2TokenForL1TokenAtBlock(l1TokenB, chainIdB, hubPoolBlock);
421
+ return tokenA === _tokenA && tokenB === _tokenB;
422
+ }
423
+ catch (_a) {
424
+ return false; // One or both input tokens were not recognised.
425
+ }
426
+ };
427
+ HubPoolClient.prototype.getSpokeActivationBlockForChain = function (chainId) {
428
+ var _a;
429
+ return (_a = this.getSpokePoolActivationBlock(chainId, this.getSpokePoolForBlock(chainId))) !== null && _a !== void 0 ? _a : 0;
430
+ };
431
+ // Root bundles are valid if all of their pool rebalance leaves have been executed before the next bundle, or the
432
+ // latest mainnet block to search. Whichever comes first.
433
+ HubPoolClient.prototype.isRootBundleValid = function (rootBundle, latestMainnetBlock) {
434
+ var nextRootBundle = this.getFollowingRootBundle(rootBundle);
435
+ var executedLeafCount = this.getExecutedLeavesForRootBundle(rootBundle, nextRootBundle ? Math.min(nextRootBundle.blockNumber, latestMainnetBlock) : latestMainnetBlock);
436
+ return executedLeafCount.length === rootBundle.poolRebalanceLeafCount;
437
+ };
438
+ // This should find the ProposeRootBundle event whose bundle block number for `chain` is closest to the `block`
439
+ // without being smaller. It returns the bundle block number for the chain or undefined if not matched.
440
+ HubPoolClient.prototype.getRootBundleEvalBlockNumberContainingBlock = function (latestMainnetBlock, block, chain, chainIdListOverride) {
441
+ var chainIdList = chainIdListOverride !== null && chainIdListOverride !== void 0 ? chainIdListOverride : this.configStoreClient.getChainIdIndicesForBlock(latestMainnetBlock);
442
+ var endingBlockNumber;
443
+ // Search proposed root bundles in reverse chronological order.
444
+ for (var i = this.proposedRootBundles.length - 1; i >= 0; i--) {
445
+ var rootBundle = this.proposedRootBundles[i];
446
+ var nextRootBundle = this.getFollowingRootBundle(rootBundle);
447
+ if (!this.isRootBundleValid(rootBundle, nextRootBundle ? nextRootBundle.blockNumber : latestMainnetBlock)) {
448
+ continue;
449
+ }
450
+ // 0 is the default value bundleEvalBlockNumber.
451
+ var bundleEvalBlockNumber = this.getBundleEndBlockForChain(rootBundle, chain, chainIdList);
452
+ // Since we're iterating from newest to oldest, bundleEvalBlockNumber is only decreasing, and if the
453
+ // bundleEvalBlockNumber is smaller than the target block, then we should return the last set `endingBlockNumber`.
454
+ if (bundleEvalBlockNumber <= block) {
455
+ if (bundleEvalBlockNumber === block) {
456
+ endingBlockNumber = bundleEvalBlockNumber;
457
+ }
458
+ break;
459
+ }
460
+ endingBlockNumber = bundleEvalBlockNumber;
461
+ }
462
+ return endingBlockNumber;
463
+ };
464
+ // TODO: This might not be necessary since the cumulative root bundle count doesn't grow fast enough, but consider
465
+ // using _.findLast/_.find instead of resorting the arrays if these functions begin to take a lot time.
466
+ HubPoolClient.prototype.getProposedRootBundlesInBlockRange = function (startingBlock, endingBlock) {
467
+ return this.proposedRootBundles.filter(function (bundle) { return bundle.blockNumber >= startingBlock && bundle.blockNumber <= endingBlock; });
468
+ };
469
+ HubPoolClient.prototype.getCancelledRootBundlesInBlockRange = function (startingBlock, endingBlock) {
470
+ return sortEventsDescending(this.canceledRootBundles).filter(function (bundle) { return bundle.blockNumber >= startingBlock && bundle.blockNumber <= endingBlock; });
471
+ };
472
+ HubPoolClient.prototype.getDisputedRootBundlesInBlockRange = function (startingBlock, endingBlock) {
473
+ return sortEventsDescending(this.disputedRootBundles).filter(function (bundle) { return bundle.blockNumber >= startingBlock && bundle.blockNumber <= endingBlock; });
474
+ };
475
+ HubPoolClient.prototype.getLatestProposedRootBundle = function () {
476
+ return this.proposedRootBundles[this.proposedRootBundles.length - 1];
477
+ };
478
+ HubPoolClient.prototype.getFollowingRootBundle = function (currentRootBundle) {
479
+ var index = _.findLastIndex(this.proposedRootBundles, function (bundle) { return bundle.blockNumber === currentRootBundle.blockNumber; });
480
+ // If index of current root bundle is not found or is the last bundle, return undefined.
481
+ if (index === -1 || index === this.proposedRootBundles.length - 1) {
482
+ return undefined;
483
+ }
484
+ return this.proposedRootBundles[index + 1];
485
+ };
486
+ HubPoolClient.prototype.getExecutedLeavesForRootBundle = function (rootBundle, latestMainnetBlockToSearch) {
487
+ return this.executedRootBundles.filter(function (executedLeaf) {
488
+ return executedLeaf.blockNumber <= latestMainnetBlockToSearch &&
489
+ // Note: We can use > instead of >= here because a leaf can never be executed in same block as its root
490
+ // proposal due to bundle liveness enforced by HubPool. This importantly avoids the edge case
491
+ // where the execution all leaves occurs in the same block as the next proposal, leading us to think
492
+ // that the next proposal is fully executed when its not.
493
+ executedLeaf.blockNumber > rootBundle.blockNumber;
494
+ });
495
+ };
496
+ HubPoolClient.prototype.getValidatedRootBundles = function (latestMainnetBlock) {
497
+ var _this = this;
498
+ if (latestMainnetBlock === void 0) { latestMainnetBlock = Number.MAX_SAFE_INTEGER; }
499
+ return this.proposedRootBundles.filter(function (rootBundle) {
500
+ if (rootBundle.blockNumber > latestMainnetBlock) {
501
+ return false;
502
+ }
503
+ return _this.isRootBundleValid(rootBundle, latestMainnetBlock);
504
+ });
505
+ };
506
+ HubPoolClient.prototype.getLatestFullyExecutedRootBundle = function (latestMainnetBlock) {
507
+ var _this = this;
508
+ // Search for latest ProposeRootBundleExecuted event followed by all of its RootBundleExecuted event suggesting
509
+ // that all pool rebalance leaves were executed. This ignores any proposed bundles that were partially executed.
510
+ return _.findLast(this.proposedRootBundles, function (rootBundle) {
511
+ if (rootBundle.blockNumber > latestMainnetBlock) {
512
+ return false;
513
+ }
514
+ return _this.isRootBundleValid(rootBundle, latestMainnetBlock);
515
+ });
516
+ };
517
+ HubPoolClient.prototype.getEarliestFullyExecutedRootBundle = function (latestMainnetBlock, startBlock) {
518
+ var _this = this;
519
+ if (startBlock === void 0) { startBlock = 0; }
520
+ return this.proposedRootBundles.find(function (rootBundle) {
521
+ if (rootBundle.blockNumber > latestMainnetBlock) {
522
+ return false;
523
+ }
524
+ if (rootBundle.blockNumber < startBlock) {
525
+ return false;
526
+ }
527
+ return _this.isRootBundleValid(rootBundle, latestMainnetBlock);
528
+ });
529
+ };
530
+ // If n is negative, then return the Nth latest executed bundle, otherwise return the Nth earliest
531
+ // executed bundle. Latest means most recent, earliest means oldest. N cannot be 0.
532
+ // `startBlock` can be used to set the starting point from which we look forwards or backwards, depending
533
+ // on whether n is positive or negative.
534
+ HubPoolClient.prototype.getNthFullyExecutedRootBundle = function (n, startBlock) {
535
+ if (n === 0) {
536
+ throw new Error("n cannot be 0");
537
+ }
538
+ if (!this.latestBlockSearched) {
539
+ throw new Error("HubPoolClient::getNthFullyExecutedRootBundle client not updated");
540
+ }
541
+ var bundleToReturn;
542
+ // If n is negative, then return the Nth latest executed bundle, otherwise return the Nth earliest
543
+ // executed bundle.
544
+ if (n < 0) {
545
+ var nextLatestMainnetBlock = startBlock !== null && startBlock !== void 0 ? startBlock : this.latestBlockSearched;
546
+ for (var i = 0; i < Math.abs(n); i++) {
547
+ bundleToReturn = this.getLatestFullyExecutedRootBundle(nextLatestMainnetBlock);
548
+ var bundleBlockNumber = bundleToReturn ? bundleToReturn.blockNumber : 0;
549
+ // Subtract 1 so that next `getLatestFullyExecutedRootBundle` call filters out the root bundle we just found
550
+ // because its block number is > nextLatestMainnetBlock.
551
+ nextLatestMainnetBlock = Math.max(0, bundleBlockNumber - 1);
552
+ }
553
+ }
554
+ else {
555
+ var nextStartBlock = startBlock !== null && startBlock !== void 0 ? startBlock : 0;
556
+ for (var i = 0; i < n; i++) {
557
+ bundleToReturn = this.getEarliestFullyExecutedRootBundle(this.latestBlockSearched, nextStartBlock);
558
+ var bundleBlockNumber = bundleToReturn ? bundleToReturn.blockNumber : 0;
559
+ // Add 1 so that next `getEarliestFullyExecutedRootBundle` call filters out the root bundle we just found
560
+ // because its block number is < nextStartBlock.
561
+ nextStartBlock = Math.min(bundleBlockNumber + 1, this.latestBlockSearched);
562
+ }
563
+ }
564
+ return bundleToReturn;
565
+ };
566
+ HubPoolClient.prototype.getLatestBundleEndBlockForChain = function (chainIdList, latestMainnetBlock, chainId) {
567
+ var latestFullyExecutedPoolRebalanceRoot = this.getLatestFullyExecutedRootBundle(latestMainnetBlock);
568
+ // If no event, then we can return a conservative default starting block like 0,
569
+ // or we could throw an Error.
570
+ if (!latestFullyExecutedPoolRebalanceRoot) {
571
+ return 0;
572
+ }
573
+ // Once this proposal event is found, determine its mapping of indices to chainId in its
574
+ // bundleEvaluationBlockNumbers array using CHAIN_ID_LIST. For each chainId, their starting block number is that
575
+ // chain's bundleEvaluationBlockNumber + 1 in this past proposal event.
576
+ return this.getBundleEndBlockForChain(latestFullyExecutedPoolRebalanceRoot, chainId, chainIdList);
577
+ };
578
+ HubPoolClient.prototype.getNextBundleStartBlockNumber = function (chainIdList, latestMainnetBlock, chainId) {
579
+ var endBlock = this.getLatestBundleEndBlockForChain(chainIdList, latestMainnetBlock, chainId);
580
+ // This assumes that chain ID's are only added to the chain ID list over time, and that chains are never
581
+ // deleted.
582
+ return endBlock > 0 ? endBlock + 1 : 0;
583
+ };
584
+ HubPoolClient.prototype.getRunningBalanceBeforeBlockForChain = function (block, chain, l1Token) {
585
+ // Search ExecutedRootBundles in descending block order to find the most recent event before the target block.
586
+ var executedRootBundle = sortEventsDescending(this.executedRootBundles).find(function (executedLeaf) {
587
+ return (executedLeaf.blockNumber <= block &&
588
+ executedLeaf.chainId === chain &&
589
+ executedLeaf.l1Tokens.map(function (l1Token) { return l1Token.toLowerCase(); }).includes(l1Token.toLowerCase()));
590
+ });
591
+ return this.getRunningBalanceForToken(l1Token, executedRootBundle);
592
+ };
593
+ HubPoolClient.prototype.getRunningBalanceForToken = function (l1Token, executedRootBundle) {
594
+ var runningBalance = toBN(0);
595
+ var incentiveBalance = toBN(0);
596
+ if (executedRootBundle) {
597
+ var indexOfL1Token = executedRootBundle.l1Tokens
598
+ .map(function (l1Token) { return l1Token.toLowerCase(); })
599
+ .indexOf(l1Token.toLowerCase());
600
+ runningBalance = executedRootBundle.runningBalances[indexOfL1Token];
601
+ incentiveBalance = executedRootBundle.incentiveBalances[indexOfL1Token];
602
+ }
603
+ return { runningBalance: runningBalance, incentiveBalance: incentiveBalance };
604
+ };
605
+ HubPoolClient.prototype._update = function (eventNames) {
606
+ return __awaiter(this, void 0, void 0, function () {
607
+ var hubPoolEvents, searchConfig, supportedEvents, eventSearchConfigs, timerStart, hubPool, multicallFunctions, _a, multicallOutput, events, _b, currentTime, pendingRootBundleProposal, _events;
608
+ var _this = this;
609
+ return __generator(this, function (_c) {
610
+ switch (_c.label) {
611
+ case 0:
612
+ hubPoolEvents = this.hubPoolEventFilters();
613
+ return [4 /*yield*/, this.updateSearchConfig(this.hubPool.provider)];
614
+ case 1:
615
+ searchConfig = _c.sent();
616
+ if (isUpdateFailureReason(searchConfig)) {
617
+ return [2 /*return*/, { success: false, reason: searchConfig }];
618
+ }
619
+ supportedEvents = Object.keys(hubPoolEvents);
620
+ if (eventNames.some(function (eventName) { return !supportedEvents.includes(eventName); })) {
621
+ return [2 /*return*/, { success: false, reason: UpdateFailureReason.BadRequest }];
622
+ }
623
+ eventSearchConfigs = eventNames.map(function (eventName) {
624
+ var _searchConfig = __assign({}, searchConfig); // shallow copy
625
+ // By default, an event's query range is controlled by the `searchConfig` passed in during
626
+ // instantiation. However, certain events generally must be queried back to HubPool genesis.
627
+ var overrideEvents = ["CrossChainContractsSet", "L1TokenEnabledForLiquidityProvision", "SetPoolRebalanceRoute"];
628
+ if (overrideEvents.includes(eventName) && !_this.isUpdated) {
629
+ _searchConfig.fromBlock = _this.deploymentBlock;
630
+ }
631
+ return {
632
+ eventName: eventName,
633
+ filter: hubPoolEvents[eventName],
634
+ searchConfig: _searchConfig,
635
+ };
636
+ });
637
+ this.logger.debug({
638
+ at: "HubPoolClient",
639
+ message: "Updating HubPool client",
640
+ searchConfig: eventSearchConfigs.map(function (_a) {
641
+ var eventName = _a.eventName, searchConfig = _a.searchConfig;
642
+ return ({ eventName: eventName, searchConfig: searchConfig });
643
+ }),
644
+ });
645
+ timerStart = Date.now();
646
+ hubPool = this.hubPool;
647
+ multicallFunctions = ["getCurrentTime", "rootBundleProposal"];
648
+ return [4 /*yield*/, Promise.all(__spreadArray([
649
+ hubPool.callStatic.multicall(multicallFunctions.map(function (f) { return hubPool.interface.encodeFunctionData(f); }), { blockTag: searchConfig.toBlock })
650
+ ], eventSearchConfigs.map(function (config) { return paginatedEventQuery(hubPool, config.filter, config.searchConfig); }), true))];
651
+ case 2:
652
+ _a = _c.sent(), multicallOutput = _a[0], events = _a.slice(1);
653
+ _b = multicallFunctions.map(function (fn, idx) {
654
+ var output = hubPool.interface.decodeFunctionResult(fn, multicallOutput[idx]);
655
+ return output.length > 1 ? output : output[0];
656
+ }), currentTime = _b[0], pendingRootBundleProposal = _b[1];
657
+ this.logger.debug({
658
+ at: "HubPoolClient#_update",
659
+ message: "Time to query new events from RPC for ".concat(this.chainId, ": ").concat(Date.now() - timerStart, " ms"),
660
+ });
661
+ _events = Object.fromEntries(eventNames.map(function (eventName, idx) { return [eventName, events[idx]]; }));
662
+ return [2 /*return*/, {
663
+ success: true,
664
+ currentTime: currentTime,
665
+ pendingRootBundleProposal: pendingRootBundleProposal,
666
+ searchEndBlock: searchConfig.toBlock,
667
+ events: _events,
668
+ }];
669
+ }
670
+ });
671
+ });
672
+ };
673
+ HubPoolClient.prototype.update = function (eventsToQuery) {
674
+ if (eventsToQuery === void 0) { eventsToQuery = Object.keys(this.hubPoolEventFilters()); }
675
+ return __awaiter(this, void 0, void 0, function () {
676
+ var update, events, currentTime, pendingRootBundleProposal, searchEndBlock, _i, _a, event_1, args, _b, _c, event_2, args, uniqueL1Tokens, _d, tokenInfo, lpTokenInfo_1, _loop_1, this_1, _e, tokenInfo_1, info, _f, _g, event_3, executedRootBundle, l1Tokens, runningBalances, nTokens, mostRecentProposedRootBundle;
677
+ var _h, _j, _k;
678
+ var _this = this;
679
+ return __generator(this, function (_l) {
680
+ switch (_l.label) {
681
+ case 0:
682
+ if (!this.configStoreClient.isUpdated) {
683
+ throw new Error("ConfigStoreClient not updated");
684
+ }
685
+ return [4 /*yield*/, this._update(eventsToQuery)];
686
+ case 1:
687
+ update = _l.sent();
688
+ if (!update.success) {
689
+ if (update.reason !== UpdateFailureReason.AlreadyUpdated) {
690
+ throw new Error("Unable to update HubPoolClient: ".concat(update.reason));
691
+ }
692
+ // No need to touch `this.isUpdated` because it should already be set from a previous update.
693
+ return [2 /*return*/];
694
+ }
695
+ events = update.events, currentTime = update.currentTime, pendingRootBundleProposal = update.pendingRootBundleProposal, searchEndBlock = update.searchEndBlock;
696
+ if (eventsToQuery.includes("CrossChainContractsSet")) {
697
+ for (_i = 0, _a = events["CrossChainContractsSet"]; _i < _a.length; _i++) {
698
+ event_1 = _a[_i];
699
+ args = spreadEventWithBlockNumber(event_1);
700
+ assign(this.crossChainContracts, [args.l2ChainId], [
701
+ {
702
+ spokePool: args.spokePool,
703
+ blockNumber: args.blockNumber,
704
+ transactionIndex: args.transactionIndex,
705
+ logIndex: args.logIndex,
706
+ },
707
+ ]);
708
+ }
709
+ }
710
+ if (eventsToQuery.includes("SetPoolRebalanceRoute")) {
711
+ for (_b = 0, _c = events["SetPoolRebalanceRoute"]; _b < _c.length; _b++) {
712
+ event_2 = _c[_b];
713
+ args = spreadEventWithBlockNumber(event_2);
714
+ assign(this.l1TokensToDestinationTokens, [args.l1Token, args.destinationChainId], args.destinationToken);
715
+ assign(this.l1TokensToDestinationTokensWithBlock, [args.l1Token, args.destinationChainId], [
716
+ {
717
+ l1Token: args.l1Token,
718
+ l2Token: args.destinationToken,
719
+ blockNumber: args.blockNumber,
720
+ transactionIndex: args.transactionIndex,
721
+ logIndex: args.logIndex,
722
+ },
723
+ ]);
724
+ }
725
+ }
726
+ if (!eventsToQuery.includes("L1TokenEnabledForLiquidityProvision")) return [3 /*break*/, 3];
727
+ uniqueL1Tokens = __spreadArray([], Array.from(new Set(events["L1TokenEnabledForLiquidityProvision"].map(function (event) { return spreadEvent(event.args).l1Token; }))), true);
728
+ return [4 /*yield*/, Promise.all([
729
+ Promise.all(uniqueL1Tokens.map(function (l1Token) { return fetchTokenInfo(l1Token, _this.hubPool.provider); })),
730
+ Promise.all(uniqueL1Tokens.map(function (l1Token) { return __awaiter(_this, void 0, void 0, function () { return __generator(this, function (_a) {
731
+ switch (_a.label) {
732
+ case 0: return [4 /*yield*/, this.hubPool.pooledTokens(l1Token, { blockTag: update.searchEndBlock })];
733
+ case 1: return [2 /*return*/, _a.sent()];
734
+ }
735
+ }); }); })),
736
+ ])];
737
+ case 2:
738
+ _d = _l.sent(), tokenInfo = _d[0], lpTokenInfo_1 = _d[1];
739
+ _loop_1 = function (info) {
740
+ if (!this_1.l1Tokens.find(function (token) { return token.symbol === info.symbol; })) {
741
+ if (info.decimals > 0 && info.decimals <= 18) {
742
+ this_1.l1Tokens.push(info);
743
+ }
744
+ else {
745
+ throw new Error("Unsupported HubPool token: ".concat(JSON.stringify(info)));
746
+ }
747
+ }
748
+ };
749
+ this_1 = this;
750
+ for (_e = 0, tokenInfo_1 = tokenInfo; _e < tokenInfo_1.length; _e++) {
751
+ info = tokenInfo_1[_e];
752
+ _loop_1(info);
753
+ }
754
+ uniqueL1Tokens.forEach(function (token, i) {
755
+ _this.lpTokens[token] = {
756
+ lastLpFeeUpdate: lpTokenInfo_1[i].lastLpFeeUpdate,
757
+ liquidReserves: lpTokenInfo_1[i].liquidReserves,
758
+ };
759
+ });
760
+ _l.label = 3;
761
+ case 3:
762
+ if (eventsToQuery.includes("ProposeRootBundle")) {
763
+ (_h = this.proposedRootBundles).push.apply(_h, events["ProposeRootBundle"]
764
+ .filter(function (event) { return !_this.configOverride.ignoredHubProposedBundles.includes(event.blockNumber); })
765
+ .map(function (event) {
766
+ return __assign(__assign({}, spreadEventWithBlockNumber(event)), { transactionHash: event.transactionHash });
767
+ }));
768
+ }
769
+ if (eventsToQuery.includes("RootBundleCanceled")) {
770
+ (_j = this.canceledRootBundles).push.apply(_j, events["RootBundleCanceled"].map(function (event) { return spreadEventWithBlockNumber(event); }));
771
+ }
772
+ if (eventsToQuery.includes("RootBundleDisputed")) {
773
+ (_k = this.disputedRootBundles).push.apply(_k, events["RootBundleDisputed"].map(function (event) { return spreadEventWithBlockNumber(event); }));
774
+ }
775
+ if (eventsToQuery.includes("RootBundleExecuted")) {
776
+ for (_f = 0, _g = events["RootBundleExecuted"]; _f < _g.length; _f++) {
777
+ event_3 = _g[_f];
778
+ if (this.configOverride.ignoredHubExecutedBundles.includes(event_3.blockNumber)) {
779
+ continue;
780
+ }
781
+ executedRootBundle = spreadEventWithBlockNumber(event_3);
782
+ l1Tokens = executedRootBundle.l1Tokens, runningBalances = executedRootBundle.runningBalances;
783
+ nTokens = l1Tokens.length;
784
+ // Safeguard
785
+ if (![nTokens, nTokens * 2].includes(runningBalances.length)) {
786
+ throw new Error("Invalid runningBalances length: ".concat(runningBalances.length, ".") +
787
+ " Expected ".concat(nTokens, " or ").concat(nTokens * 2, " for chain ").concat(this.chainId, " transaction ").concat(event_3.transactionHash));
788
+ }
789
+ executedRootBundle.runningBalances = runningBalances.slice(0, nTokens);
790
+ executedRootBundle.incentiveBalances =
791
+ runningBalances.length > nTokens ? runningBalances.slice(nTokens) : runningBalances.map(function () { return toBN(0); });
792
+ this.executedRootBundles.push(executedRootBundle);
793
+ }
794
+ }
795
+ // If the contract's current rootBundleProposal() value has an unclaimedPoolRebalanceLeafCount > 0, then
796
+ // it means that either the root bundle proposal is in the challenge period and can be disputed, or it has
797
+ // passed the challenge period and pool rebalance leaves can be executed. Once all leaves are executed, the
798
+ // unclaimed count will drop to 0 and at that point there is nothing more that we can do with this root bundle
799
+ // besides proposing another one.
800
+ if (eventsToQuery.includes("ProposeRootBundle")) {
801
+ if (pendingRootBundleProposal.unclaimedPoolRebalanceLeafCount > 0) {
802
+ mostRecentProposedRootBundle = this.proposedRootBundles[this.proposedRootBundles.length - 1];
803
+ this.pendingRootBundle = {
804
+ poolRebalanceRoot: pendingRootBundleProposal.poolRebalanceRoot,
805
+ relayerRefundRoot: pendingRootBundleProposal.relayerRefundRoot,
806
+ slowRelayRoot: pendingRootBundleProposal.slowRelayRoot,
807
+ proposer: pendingRootBundleProposal.proposer,
808
+ unclaimedPoolRebalanceLeafCount: pendingRootBundleProposal.unclaimedPoolRebalanceLeafCount,
809
+ challengePeriodEndTimestamp: pendingRootBundleProposal.challengePeriodEndTimestamp,
810
+ bundleEvaluationBlockNumbers: mostRecentProposedRootBundle.bundleEvaluationBlockNumbers.map(function (block) {
811
+ // Ideally, the HubPool.sol contract should limit the size of the elements within the
812
+ // bundleEvaluationBlockNumbers array. But because it doesn't, we wrap the cast of BN --> Number
813
+ // in a try/catch statement and return some value that would always be disputable.
814
+ // This catches the denial of service attack vector where a malicious proposer proposes with bundle block
815
+ // evaluation block numbers larger than what BigNumber::toNumber() can handle.
816
+ try {
817
+ return block.toNumber();
818
+ }
819
+ catch (_a) {
820
+ return 0;
821
+ }
822
+ }),
823
+ proposalBlockNumber: mostRecentProposedRootBundle.blockNumber,
824
+ };
825
+ }
826
+ else {
827
+ this.pendingRootBundle = undefined;
828
+ }
829
+ }
830
+ this.currentTime = currentTime;
831
+ this.latestBlockSearched = searchEndBlock;
832
+ this.firstBlockToSearch = update.searchEndBlock + 1; // Next iteration should start off from where this one ended.
833
+ this.eventSearchConfig.toBlock = undefined; // Caller can re-set on subsequent updates if necessary.
834
+ this.isUpdated = true;
835
+ this.logger.debug({ at: "HubPoolClient::update", message: "HubPool client updated!", searchEndBlock: searchEndBlock });
836
+ return [2 /*return*/];
837
+ }
838
+ });
839
+ });
840
+ };
841
+ // Returns end block for `chainId` in ProposedRootBundle.bundleBlockEvalNumbers. Looks up chainId
842
+ // in chainId list, gets the index where its located, and returns the value of the index in
843
+ // bundleBlockEvalNumbers. Returns 0 if `chainId` can't be found in `chainIdList` and if index doesn't
844
+ // exist in bundleBlockEvalNumbers.
845
+ HubPoolClient.prototype.getBundleEndBlockForChain = function (proposeRootBundleEvent, chainId, chainIdList) {
846
+ var bundleEvaluationBlockNumbers = proposeRootBundleEvent.bundleEvaluationBlockNumbers;
847
+ var chainIdIndex = chainIdList.indexOf(chainId);
848
+ if (chainIdIndex === -1) {
849
+ return 0;
850
+ }
851
+ // Sometimes, the root bundle event's chain ID list will update from bundle to bundle, so we need to check that
852
+ // the bundle evaluation block number list is long enough to contain this index. We assume that chain ID's
853
+ // are only added to the bundle block list, never deleted.
854
+ if (chainIdIndex >= bundleEvaluationBlockNumbers.length) {
855
+ return 0;
856
+ }
857
+ return bundleEvaluationBlockNumbers[chainIdIndex].toNumber();
858
+ };
859
+ return HubPoolClient;
860
+ }(BaseAbstractClient));
861
+ export { HubPoolClient };
862
+ //# sourceMappingURL=HubPoolClient.js.map