@across-protocol/sdk 4.1.63 → 4.2.1

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 (536) hide show
  1. package/dist/cjs/arch/evm/BlockUtils.d.ts +15 -0
  2. package/dist/cjs/arch/evm/BlockUtils.js +218 -0
  3. package/dist/cjs/arch/evm/BlockUtils.js.map +1 -0
  4. package/dist/cjs/arch/evm/SpokeUtils.d.ts +1 -1
  5. package/dist/cjs/arch/evm/SpokeUtils.js +6 -5
  6. package/dist/cjs/arch/evm/SpokeUtils.js.map +1 -1
  7. package/dist/cjs/arch/evm/index.d.ts +1 -0
  8. package/dist/cjs/arch/evm/index.js +1 -0
  9. package/dist/cjs/arch/evm/index.js.map +1 -1
  10. package/dist/cjs/arch/svm/SpokeUtils.d.ts +20 -0
  11. package/dist/cjs/arch/svm/SpokeUtils.js +449 -0
  12. package/dist/cjs/arch/svm/SpokeUtils.js.map +1 -0
  13. package/dist/cjs/arch/svm/constants.d.ts +2 -0
  14. package/dist/cjs/arch/svm/constants.js +7 -0
  15. package/dist/cjs/arch/svm/constants.js.map +1 -0
  16. package/dist/cjs/arch/svm/eventsClient.d.ts +26 -0
  17. package/dist/cjs/arch/svm/eventsClient.js +253 -0
  18. package/dist/cjs/arch/svm/eventsClient.js.map +1 -0
  19. package/dist/cjs/arch/svm/index.d.ts +5 -1
  20. package/dist/cjs/arch/svm/index.js +6 -2
  21. package/dist/cjs/arch/svm/index.js.map +1 -1
  22. package/dist/cjs/{svm → arch/svm}/types.d.ts +9 -4
  23. package/dist/cjs/arch/svm/types.js.map +1 -0
  24. package/dist/cjs/arch/svm/utils.d.ts +18 -0
  25. package/dist/cjs/arch/svm/utils.js +212 -0
  26. package/dist/cjs/arch/svm/utils.js.map +1 -0
  27. package/dist/cjs/clients/AcrossConfigStoreClient/AcrossConfigStoreClient.d.ts +1 -1
  28. package/dist/cjs/clients/AcrossConfigStoreClient/AcrossConfigStoreClient.js +7 -7
  29. package/dist/cjs/clients/AcrossConfigStoreClient/AcrossConfigStoreClient.js.map +1 -1
  30. package/dist/cjs/clients/BaseAbstractClient.d.ts +6 -5
  31. package/dist/cjs/clients/BaseAbstractClient.js +30 -19
  32. package/dist/cjs/clients/BaseAbstractClient.js.map +1 -1
  33. package/dist/cjs/clients/BundleDataClient/BundleDataClient.js +15 -11
  34. package/dist/cjs/clients/BundleDataClient/BundleDataClient.js.map +1 -1
  35. package/dist/cjs/clients/BundleDataClient/utils/PoolRebalanceUtils.js +1 -1
  36. package/dist/cjs/clients/BundleDataClient/utils/PoolRebalanceUtils.js.map +1 -1
  37. package/dist/cjs/clients/BundleDataClient/utils/SuperstructUtils.d.ts +114 -114
  38. package/dist/cjs/clients/HubPoolClient.d.ts +4 -3
  39. package/dist/cjs/clients/HubPoolClient.js +18 -17
  40. package/dist/cjs/clients/HubPoolClient.js.map +1 -1
  41. package/dist/cjs/clients/SpokePoolClient/EVMSpokePoolClient.d.ts +3 -3
  42. package/dist/cjs/clients/SpokePoolClient/EVMSpokePoolClient.js +23 -20
  43. package/dist/cjs/clients/SpokePoolClient/EVMSpokePoolClient.js.map +1 -1
  44. package/dist/cjs/clients/SpokePoolClient/SVMSpokePoolClient.d.ts +23 -0
  45. package/dist/cjs/clients/SpokePoolClient/SVMSpokePoolClient.js +172 -0
  46. package/dist/cjs/clients/SpokePoolClient/SVMSpokePoolClient.js.map +1 -0
  47. package/dist/cjs/clients/SpokePoolClient/SpokePoolClient.d.ts +5 -5
  48. package/dist/cjs/clients/SpokePoolClient/SpokePoolClient.js +54 -57
  49. package/dist/cjs/clients/SpokePoolClient/SpokePoolClient.js.map +1 -1
  50. package/dist/cjs/clients/SpokePoolClient/index.d.ts +3 -0
  51. package/dist/cjs/clients/SpokePoolClient/index.js +8 -1
  52. package/dist/cjs/clients/SpokePoolClient/index.js.map +1 -1
  53. package/dist/cjs/clients/index.d.ts +1 -1
  54. package/dist/cjs/clients/index.js +2 -1
  55. package/dist/cjs/clients/index.js.map +1 -1
  56. package/dist/cjs/clients/mocks/MockConfigStoreClient.d.ts +1 -1
  57. package/dist/cjs/clients/mocks/MockConfigStoreClient.js +2 -2
  58. package/dist/cjs/clients/mocks/MockConfigStoreClient.js.map +1 -1
  59. package/dist/cjs/clients/mocks/MockHubPoolClient.js +2 -2
  60. package/dist/cjs/clients/mocks/MockHubPoolClient.js.map +1 -1
  61. package/dist/cjs/clients/mocks/MockSpokePoolClient.js +7 -4
  62. package/dist/cjs/clients/mocks/MockSpokePoolClient.js.map +1 -1
  63. package/dist/cjs/clients/mocks/MockSvmCpiEventsClient.d.ts +33 -0
  64. package/dist/cjs/clients/mocks/MockSvmCpiEventsClient.js +184 -0
  65. package/dist/cjs/clients/mocks/MockSvmCpiEventsClient.js.map +1 -0
  66. package/dist/cjs/clients/mocks/MockSvmSpokePoolClient.d.ts +30 -0
  67. package/dist/cjs/clients/mocks/MockSvmSpokePoolClient.js +90 -0
  68. package/dist/cjs/clients/mocks/MockSvmSpokePoolClient.js.map +1 -0
  69. package/dist/cjs/clients/mocks/index.d.ts +2 -0
  70. package/dist/cjs/clients/mocks/index.js +2 -0
  71. package/dist/cjs/clients/mocks/index.js.map +1 -1
  72. package/dist/cjs/coingecko/Coingecko.d.ts +3 -2
  73. package/dist/cjs/coingecko/Coingecko.js +11 -3
  74. package/dist/cjs/coingecko/Coingecko.js.map +1 -1
  75. package/dist/cjs/constants.d.ts +1 -0
  76. package/dist/cjs/constants.js +2 -1
  77. package/dist/cjs/constants.js.map +1 -1
  78. package/dist/cjs/gasPriceOracle/adapters/arbitrum.d.ts +2 -2
  79. package/dist/cjs/gasPriceOracle/adapters/arbitrum.js.map +1 -1
  80. package/dist/cjs/gasPriceOracle/adapters/ethereum.d.ts +4 -4
  81. package/dist/cjs/gasPriceOracle/adapters/ethereum.js.map +1 -1
  82. package/dist/cjs/gasPriceOracle/adapters/linea-viem.js +3 -2
  83. package/dist/cjs/gasPriceOracle/adapters/linea-viem.js.map +1 -1
  84. package/dist/cjs/gasPriceOracle/adapters/polygon.d.ts +3 -3
  85. package/dist/cjs/gasPriceOracle/adapters/solana.d.ts +4 -0
  86. package/dist/cjs/gasPriceOracle/adapters/solana.js +43 -0
  87. package/dist/cjs/gasPriceOracle/adapters/solana.js.map +1 -0
  88. package/dist/cjs/gasPriceOracle/index.d.ts +1 -1
  89. package/dist/cjs/gasPriceOracle/oracle.d.ts +4 -3
  90. package/dist/cjs/gasPriceOracle/oracle.js +16 -9
  91. package/dist/cjs/gasPriceOracle/oracle.js.map +1 -1
  92. package/dist/cjs/gasPriceOracle/types.d.ts +6 -1
  93. package/dist/cjs/index.d.ts +0 -1
  94. package/dist/cjs/index.js +1 -2
  95. package/dist/cjs/index.js.map +1 -1
  96. package/dist/cjs/interfaces/SpokePool.d.ts +13 -0
  97. package/dist/cjs/interfaces/SpokePool.js.map +1 -1
  98. package/dist/cjs/providers/index.d.ts +1 -1
  99. package/dist/cjs/providers/index.js +1 -2
  100. package/dist/cjs/providers/index.js.map +1 -1
  101. package/dist/cjs/providers/mocks/MockCachedSolanaRpcFactory.d.ts +5 -0
  102. package/dist/cjs/providers/mocks/MockCachedSolanaRpcFactory.js +21 -0
  103. package/dist/cjs/providers/mocks/MockCachedSolanaRpcFactory.js.map +1 -0
  104. package/dist/cjs/providers/mocks/MockRateLimitedSolanaRpcFactory.d.ts +5 -0
  105. package/dist/cjs/providers/mocks/MockRateLimitedSolanaRpcFactory.js +20 -0
  106. package/dist/cjs/providers/mocks/MockRateLimitedSolanaRpcFactory.js.map +1 -0
  107. package/dist/cjs/providers/mocks/MockSolanaRpcFactory.d.ts +13 -0
  108. package/dist/cjs/providers/mocks/MockSolanaRpcFactory.js +76 -0
  109. package/dist/cjs/providers/mocks/MockSolanaRpcFactory.js.map +1 -0
  110. package/dist/cjs/providers/mocks/index.d.ts +4 -0
  111. package/dist/cjs/providers/mocks/index.js +8 -0
  112. package/dist/cjs/providers/mocks/index.js.map +1 -0
  113. package/dist/cjs/providers/{mockProvider.js → mocks/mockEthersProvider.js} +2 -2
  114. package/dist/cjs/providers/mocks/mockEthersProvider.js.map +1 -0
  115. package/dist/cjs/relayFeeCalculator/chain-queries/baseQuery.d.ts +1 -1
  116. package/dist/cjs/relayFeeCalculator/chain-queries/baseQuery.js +10 -8
  117. package/dist/cjs/relayFeeCalculator/chain-queries/baseQuery.js.map +1 -1
  118. package/dist/cjs/relayFeeCalculator/chain-queries/factory.d.ts +4 -2
  119. package/dist/cjs/relayFeeCalculator/chain-queries/factory.js +8 -2
  120. package/dist/cjs/relayFeeCalculator/chain-queries/factory.js.map +1 -1
  121. package/dist/cjs/relayFeeCalculator/chain-queries/index.d.ts +1 -0
  122. package/dist/cjs/relayFeeCalculator/chain-queries/index.js +1 -0
  123. package/dist/cjs/relayFeeCalculator/chain-queries/index.js.map +1 -1
  124. package/dist/cjs/relayFeeCalculator/chain-queries/svmQuery.d.ts +37 -0
  125. package/dist/cjs/relayFeeCalculator/chain-queries/svmQuery.js +171 -0
  126. package/dist/cjs/relayFeeCalculator/chain-queries/svmQuery.js.map +1 -0
  127. package/dist/cjs/relayFeeCalculator/relayFeeCalculator.d.ts +2 -0
  128. package/dist/cjs/relayFeeCalculator/relayFeeCalculator.js +9 -3
  129. package/dist/cjs/relayFeeCalculator/relayFeeCalculator.js.map +1 -1
  130. package/dist/cjs/utils/AddressUtils.d.ts +9 -3
  131. package/dist/cjs/utils/AddressUtils.js +36 -6
  132. package/dist/cjs/utils/AddressUtils.js.map +1 -1
  133. package/dist/cjs/utils/ArrayUtils.d.ts +1 -0
  134. package/dist/cjs/utils/ArrayUtils.js +6 -1
  135. package/dist/cjs/utils/ArrayUtils.js.map +1 -1
  136. package/dist/cjs/utils/BlockFinder.d.ts +22 -0
  137. package/dist/cjs/utils/BlockFinder.js +10 -0
  138. package/dist/cjs/utils/BlockFinder.js.map +1 -0
  139. package/dist/cjs/utils/BlockUtils.d.ts +2 -27
  140. package/dist/cjs/utils/BlockUtils.js +2 -208
  141. package/dist/cjs/utils/BlockUtils.js.map +1 -1
  142. package/dist/cjs/utils/EventUtils.d.ts +4 -4
  143. package/dist/cjs/utils/EventUtils.js +7 -4
  144. package/dist/cjs/utils/EventUtils.js.map +1 -1
  145. package/dist/cjs/utils/JSONUtils.js +3 -0
  146. package/dist/cjs/utils/JSONUtils.js.map +1 -1
  147. package/dist/cjs/utils/NumberUtils.d.ts +1 -0
  148. package/dist/cjs/utils/NumberUtils.js +7 -1
  149. package/dist/cjs/utils/NumberUtils.js.map +1 -1
  150. package/dist/cjs/utils/SpokeUtils.js +5 -0
  151. package/dist/cjs/utils/SpokeUtils.js.map +1 -1
  152. package/dist/cjs/utils/TokenUtils.js +4 -1
  153. package/dist/cjs/utils/TokenUtils.js.map +1 -1
  154. package/dist/cjs/utils/index.d.ts +1 -0
  155. package/dist/cjs/utils/index.js +1 -0
  156. package/dist/cjs/utils/index.js.map +1 -1
  157. package/dist/esm/arch/evm/BlockUtils.d.ts +24 -0
  158. package/dist/esm/arch/evm/BlockUtils.js +250 -0
  159. package/dist/esm/arch/evm/BlockUtils.js.map +1 -0
  160. package/dist/esm/arch/evm/SpokeUtils.d.ts +1 -1
  161. package/dist/esm/arch/evm/SpokeUtils.js +6 -5
  162. package/dist/esm/arch/evm/SpokeUtils.js.map +1 -1
  163. package/dist/esm/arch/evm/index.d.ts +1 -0
  164. package/dist/esm/arch/evm/index.js +1 -0
  165. package/dist/esm/arch/evm/index.js.map +1 -1
  166. package/dist/esm/arch/svm/SpokeUtils.d.ts +122 -0
  167. package/dist/esm/arch/svm/SpokeUtils.js +566 -0
  168. package/dist/esm/arch/svm/SpokeUtils.js.map +1 -0
  169. package/dist/esm/arch/svm/constants.d.ts +2 -0
  170. package/dist/esm/arch/svm/constants.js +3 -0
  171. package/dist/esm/arch/svm/constants.js.map +1 -0
  172. package/dist/esm/arch/svm/eventsClient.d.ts +87 -0
  173. package/dist/esm/arch/svm/eventsClient.js +316 -0
  174. package/dist/esm/arch/svm/eventsClient.js.map +1 -0
  175. package/dist/esm/arch/svm/index.d.ts +5 -1
  176. package/dist/esm/arch/svm/index.js +5 -1
  177. package/dist/esm/arch/svm/index.js.map +1 -1
  178. package/dist/esm/{svm → arch/svm}/types.d.ts +9 -4
  179. package/dist/esm/arch/svm/types.js.map +1 -0
  180. package/dist/esm/arch/svm/utils.d.ts +63 -0
  181. package/dist/esm/arch/svm/utils.js +258 -0
  182. package/dist/esm/arch/svm/utils.js.map +1 -0
  183. package/dist/esm/clients/AcrossConfigStoreClient/AcrossConfigStoreClient.d.ts +1 -1
  184. package/dist/esm/clients/AcrossConfigStoreClient/AcrossConfigStoreClient.js +7 -7
  185. package/dist/esm/clients/AcrossConfigStoreClient/AcrossConfigStoreClient.js.map +1 -1
  186. package/dist/esm/clients/BaseAbstractClient.d.ts +6 -5
  187. package/dist/esm/clients/BaseAbstractClient.js +30 -19
  188. package/dist/esm/clients/BaseAbstractClient.js.map +1 -1
  189. package/dist/esm/clients/BundleDataClient/BundleDataClient.js +17 -14
  190. package/dist/esm/clients/BundleDataClient/BundleDataClient.js.map +1 -1
  191. package/dist/esm/clients/BundleDataClient/utils/PoolRebalanceUtils.js +1 -1
  192. package/dist/esm/clients/BundleDataClient/utils/PoolRebalanceUtils.js.map +1 -1
  193. package/dist/esm/clients/BundleDataClient/utils/SuperstructUtils.d.ts +114 -114
  194. package/dist/esm/clients/HubPoolClient.d.ts +4 -3
  195. package/dist/esm/clients/HubPoolClient.js +19 -18
  196. package/dist/esm/clients/HubPoolClient.js.map +1 -1
  197. package/dist/esm/clients/SpokePoolClient/EVMSpokePoolClient.d.ts +3 -3
  198. package/dist/esm/clients/SpokePoolClient/EVMSpokePoolClient.js +23 -20
  199. package/dist/esm/clients/SpokePoolClient/EVMSpokePoolClient.js.map +1 -1
  200. package/dist/esm/clients/SpokePoolClient/SVMSpokePoolClient.d.ts +66 -0
  201. package/dist/esm/clients/SpokePoolClient/SVMSpokePoolClient.js +225 -0
  202. package/dist/esm/clients/SpokePoolClient/SVMSpokePoolClient.js.map +1 -0
  203. package/dist/esm/clients/SpokePoolClient/SpokePoolClient.d.ts +7 -7
  204. package/dist/esm/clients/SpokePoolClient/SpokePoolClient.js +57 -59
  205. package/dist/esm/clients/SpokePoolClient/SpokePoolClient.js.map +1 -1
  206. package/dist/esm/clients/SpokePoolClient/index.d.ts +8 -0
  207. package/dist/esm/clients/SpokePoolClient/index.js +10 -0
  208. package/dist/esm/clients/SpokePoolClient/index.js.map +1 -1
  209. package/dist/esm/clients/index.d.ts +1 -1
  210. package/dist/esm/clients/index.js +1 -1
  211. package/dist/esm/clients/index.js.map +1 -1
  212. package/dist/esm/clients/mocks/MockConfigStoreClient.d.ts +1 -1
  213. package/dist/esm/clients/mocks/MockConfigStoreClient.js +2 -2
  214. package/dist/esm/clients/mocks/MockConfigStoreClient.js.map +1 -1
  215. package/dist/esm/clients/mocks/MockHubPoolClient.js +2 -2
  216. package/dist/esm/clients/mocks/MockHubPoolClient.js.map +1 -1
  217. package/dist/esm/clients/mocks/MockSpokePoolClient.js +8 -5
  218. package/dist/esm/clients/mocks/MockSpokePoolClient.js.map +1 -1
  219. package/dist/esm/clients/mocks/MockSvmCpiEventsClient.d.ts +33 -0
  220. package/dist/esm/clients/mocks/MockSvmCpiEventsClient.js +183 -0
  221. package/dist/esm/clients/mocks/MockSvmCpiEventsClient.js.map +1 -0
  222. package/dist/esm/clients/mocks/MockSvmSpokePoolClient.d.ts +30 -0
  223. package/dist/esm/clients/mocks/MockSvmSpokePoolClient.js +89 -0
  224. package/dist/esm/clients/mocks/MockSvmSpokePoolClient.js.map +1 -0
  225. package/dist/esm/clients/mocks/index.d.ts +2 -0
  226. package/dist/esm/clients/mocks/index.js +2 -0
  227. package/dist/esm/clients/mocks/index.js.map +1 -1
  228. package/dist/esm/coingecko/Coingecko.d.ts +3 -2
  229. package/dist/esm/coingecko/Coingecko.js +12 -3
  230. package/dist/esm/coingecko/Coingecko.js.map +1 -1
  231. package/dist/esm/constants.d.ts +1 -0
  232. package/dist/esm/constants.js +1 -0
  233. package/dist/esm/constants.js.map +1 -1
  234. package/dist/esm/gasPriceOracle/adapters/arbitrum.d.ts +2 -2
  235. package/dist/esm/gasPriceOracle/adapters/arbitrum.js.map +1 -1
  236. package/dist/esm/gasPriceOracle/adapters/ethereum.d.ts +4 -4
  237. package/dist/esm/gasPriceOracle/adapters/ethereum.js.map +1 -1
  238. package/dist/esm/gasPriceOracle/adapters/linea-viem.js +3 -2
  239. package/dist/esm/gasPriceOracle/adapters/linea-viem.js.map +1 -1
  240. package/dist/esm/gasPriceOracle/adapters/polygon.d.ts +4 -4
  241. package/dist/esm/gasPriceOracle/adapters/polygon.js +1 -1
  242. package/dist/esm/gasPriceOracle/adapters/solana.d.ts +8 -0
  243. package/dist/esm/gasPriceOracle/adapters/solana.js +43 -0
  244. package/dist/esm/gasPriceOracle/adapters/solana.js.map +1 -0
  245. package/dist/esm/gasPriceOracle/index.d.ts +1 -1
  246. package/dist/esm/gasPriceOracle/oracle.d.ts +4 -3
  247. package/dist/esm/gasPriceOracle/oracle.js +18 -9
  248. package/dist/esm/gasPriceOracle/oracle.js.map +1 -1
  249. package/dist/esm/gasPriceOracle/types.d.ts +6 -1
  250. package/dist/esm/index.d.ts +0 -1
  251. package/dist/esm/index.js +0 -2
  252. package/dist/esm/index.js.map +1 -1
  253. package/dist/esm/interfaces/SpokePool.d.ts +13 -0
  254. package/dist/esm/interfaces/SpokePool.js.map +1 -1
  255. package/dist/esm/providers/index.d.ts +1 -1
  256. package/dist/esm/providers/index.js +1 -2
  257. package/dist/esm/providers/index.js.map +1 -1
  258. package/dist/esm/providers/mocks/MockCachedSolanaRpcFactory.d.ts +5 -0
  259. package/dist/esm/providers/mocks/MockCachedSolanaRpcFactory.js +19 -0
  260. package/dist/esm/providers/mocks/MockCachedSolanaRpcFactory.js.map +1 -0
  261. package/dist/esm/providers/mocks/MockRateLimitedSolanaRpcFactory.d.ts +5 -0
  262. package/dist/esm/providers/mocks/MockRateLimitedSolanaRpcFactory.js +18 -0
  263. package/dist/esm/providers/mocks/MockRateLimitedSolanaRpcFactory.js.map +1 -0
  264. package/dist/esm/providers/mocks/MockSolanaRpcFactory.d.ts +13 -0
  265. package/dist/esm/providers/mocks/MockSolanaRpcFactory.js +74 -0
  266. package/dist/esm/providers/mocks/MockSolanaRpcFactory.js.map +1 -0
  267. package/dist/esm/providers/mocks/index.d.ts +4 -0
  268. package/dist/esm/providers/mocks/index.js +5 -0
  269. package/dist/esm/providers/mocks/index.js.map +1 -0
  270. package/dist/esm/providers/{mockProvider.js → mocks/mockEthersProvider.js} +2 -2
  271. package/dist/esm/providers/mocks/mockEthersProvider.js.map +1 -0
  272. package/dist/esm/relayFeeCalculator/chain-queries/baseQuery.d.ts +1 -1
  273. package/dist/esm/relayFeeCalculator/chain-queries/baseQuery.js +10 -8
  274. package/dist/esm/relayFeeCalculator/chain-queries/baseQuery.js.map +1 -1
  275. package/dist/esm/relayFeeCalculator/chain-queries/factory.d.ts +4 -2
  276. package/dist/esm/relayFeeCalculator/chain-queries/factory.js +11 -5
  277. package/dist/esm/relayFeeCalculator/chain-queries/factory.js.map +1 -1
  278. package/dist/esm/relayFeeCalculator/chain-queries/index.d.ts +1 -0
  279. package/dist/esm/relayFeeCalculator/chain-queries/index.js +1 -0
  280. package/dist/esm/relayFeeCalculator/chain-queries/index.js.map +1 -1
  281. package/dist/esm/relayFeeCalculator/chain-queries/svmQuery.d.ts +84 -0
  282. package/dist/esm/relayFeeCalculator/chain-queries/svmQuery.js +216 -0
  283. package/dist/esm/relayFeeCalculator/chain-queries/svmQuery.js.map +1 -0
  284. package/dist/esm/relayFeeCalculator/relayFeeCalculator.d.ts +12 -1
  285. package/dist/esm/relayFeeCalculator/relayFeeCalculator.js +9 -4
  286. package/dist/esm/relayFeeCalculator/relayFeeCalculator.js.map +1 -1
  287. package/dist/esm/utils/AddressUtils.d.ts +9 -3
  288. package/dist/esm/utils/AddressUtils.js +41 -6
  289. package/dist/esm/utils/AddressUtils.js.map +1 -1
  290. package/dist/esm/utils/ArrayUtils.d.ts +6 -0
  291. package/dist/esm/utils/ArrayUtils.js +9 -0
  292. package/dist/esm/utils/ArrayUtils.js.map +1 -1
  293. package/dist/esm/utils/BlockFinder.d.ts +22 -0
  294. package/dist/esm/utils/BlockFinder.js +7 -0
  295. package/dist/esm/utils/BlockFinder.js.map +1 -0
  296. package/dist/esm/utils/BlockUtils.d.ts +2 -36
  297. package/dist/esm/utils/BlockUtils.js +2 -243
  298. package/dist/esm/utils/BlockUtils.js.map +1 -1
  299. package/dist/esm/utils/EventUtils.d.ts +4 -4
  300. package/dist/esm/utils/EventUtils.js +7 -4
  301. package/dist/esm/utils/EventUtils.js.map +1 -1
  302. package/dist/esm/utils/JSONUtils.js +3 -0
  303. package/dist/esm/utils/JSONUtils.js.map +1 -1
  304. package/dist/esm/utils/NumberUtils.d.ts +7 -0
  305. package/dist/esm/utils/NumberUtils.js +11 -0
  306. package/dist/esm/utils/NumberUtils.js.map +1 -1
  307. package/dist/esm/utils/SpokeUtils.js +5 -0
  308. package/dist/esm/utils/SpokeUtils.js.map +1 -1
  309. package/dist/esm/utils/TokenUtils.d.ts +12 -0
  310. package/dist/esm/utils/TokenUtils.js +6 -3
  311. package/dist/esm/utils/TokenUtils.js.map +1 -1
  312. package/dist/esm/utils/index.d.ts +1 -0
  313. package/dist/esm/utils/index.js +1 -0
  314. package/dist/esm/utils/index.js.map +1 -1
  315. package/dist/types/arch/evm/BlockUtils.d.ts +25 -0
  316. package/dist/types/arch/evm/BlockUtils.d.ts.map +1 -0
  317. package/dist/types/arch/evm/SpokeUtils.d.ts +1 -1
  318. package/dist/types/arch/evm/SpokeUtils.d.ts.map +1 -1
  319. package/dist/types/arch/evm/index.d.ts +1 -0
  320. package/dist/types/arch/evm/index.d.ts.map +1 -1
  321. package/dist/types/arch/svm/SpokeUtils.d.ts +123 -0
  322. package/dist/types/arch/svm/SpokeUtils.d.ts.map +1 -0
  323. package/dist/types/arch/svm/constants.d.ts +3 -0
  324. package/dist/types/arch/svm/constants.d.ts.map +1 -0
  325. package/dist/types/arch/svm/eventsClient.d.ts +88 -0
  326. package/dist/types/arch/svm/eventsClient.d.ts.map +1 -0
  327. package/dist/types/arch/svm/index.d.ts +5 -1
  328. package/dist/types/arch/svm/index.d.ts.map +1 -1
  329. package/dist/types/{svm → arch/svm}/types.d.ts +9 -4
  330. package/dist/types/arch/svm/types.d.ts.map +1 -0
  331. package/dist/types/arch/svm/utils.d.ts +64 -0
  332. package/dist/types/arch/svm/utils.d.ts.map +1 -0
  333. package/dist/types/clients/AcrossConfigStoreClient/AcrossConfigStoreClient.d.ts +1 -1
  334. package/dist/types/clients/AcrossConfigStoreClient/AcrossConfigStoreClient.d.ts.map +1 -1
  335. package/dist/types/clients/BaseAbstractClient.d.ts +6 -5
  336. package/dist/types/clients/BaseAbstractClient.d.ts.map +1 -1
  337. package/dist/types/clients/BundleDataClient/BundleDataClient.d.ts.map +1 -1
  338. package/dist/types/clients/BundleDataClient/utils/SuperstructUtils.d.ts +114 -114
  339. package/dist/types/clients/HubPoolClient.d.ts +4 -3
  340. package/dist/types/clients/HubPoolClient.d.ts.map +1 -1
  341. package/dist/types/clients/SpokePoolClient/EVMSpokePoolClient.d.ts +3 -3
  342. package/dist/types/clients/SpokePoolClient/EVMSpokePoolClient.d.ts.map +1 -1
  343. package/dist/types/clients/SpokePoolClient/SVMSpokePoolClient.d.ts +67 -0
  344. package/dist/types/clients/SpokePoolClient/SVMSpokePoolClient.d.ts.map +1 -0
  345. package/dist/types/clients/SpokePoolClient/SpokePoolClient.d.ts +7 -7
  346. package/dist/types/clients/SpokePoolClient/SpokePoolClient.d.ts.map +1 -1
  347. package/dist/types/clients/SpokePoolClient/index.d.ts +8 -0
  348. package/dist/types/clients/SpokePoolClient/index.d.ts.map +1 -1
  349. package/dist/types/clients/index.d.ts +1 -1
  350. package/dist/types/clients/index.d.ts.map +1 -1
  351. package/dist/types/clients/mocks/MockConfigStoreClient.d.ts +1 -1
  352. package/dist/types/clients/mocks/MockConfigStoreClient.d.ts.map +1 -1
  353. package/dist/types/clients/mocks/MockSpokePoolClient.d.ts.map +1 -1
  354. package/dist/types/clients/mocks/MockSvmCpiEventsClient.d.ts +34 -0
  355. package/dist/types/clients/mocks/MockSvmCpiEventsClient.d.ts.map +1 -0
  356. package/dist/types/clients/mocks/MockSvmSpokePoolClient.d.ts +31 -0
  357. package/dist/types/clients/mocks/MockSvmSpokePoolClient.d.ts.map +1 -0
  358. package/dist/types/clients/mocks/index.d.ts +2 -0
  359. package/dist/types/clients/mocks/index.d.ts.map +1 -1
  360. package/dist/types/coingecko/Coingecko.d.ts +3 -2
  361. package/dist/types/coingecko/Coingecko.d.ts.map +1 -1
  362. package/dist/types/constants.d.ts +1 -0
  363. package/dist/types/constants.d.ts.map +1 -1
  364. package/dist/types/gasPriceOracle/adapters/arbitrum.d.ts +2 -2
  365. package/dist/types/gasPriceOracle/adapters/arbitrum.d.ts.map +1 -1
  366. package/dist/types/gasPriceOracle/adapters/ethereum.d.ts +4 -4
  367. package/dist/types/gasPriceOracle/adapters/ethereum.d.ts.map +1 -1
  368. package/dist/types/gasPriceOracle/adapters/linea-viem.d.ts.map +1 -1
  369. package/dist/types/gasPriceOracle/adapters/polygon.d.ts +4 -4
  370. package/dist/types/gasPriceOracle/adapters/polygon.d.ts.map +1 -1
  371. package/dist/types/gasPriceOracle/adapters/solana.d.ts +9 -0
  372. package/dist/types/gasPriceOracle/adapters/solana.d.ts.map +1 -0
  373. package/dist/types/gasPriceOracle/index.d.ts +1 -1
  374. package/dist/types/gasPriceOracle/index.d.ts.map +1 -1
  375. package/dist/types/gasPriceOracle/oracle.d.ts +4 -3
  376. package/dist/types/gasPriceOracle/oracle.d.ts.map +1 -1
  377. package/dist/types/gasPriceOracle/types.d.ts +6 -1
  378. package/dist/types/gasPriceOracle/types.d.ts.map +1 -1
  379. package/dist/types/index.d.ts +0 -1
  380. package/dist/types/index.d.ts.map +1 -1
  381. package/dist/types/interfaces/SpokePool.d.ts +13 -0
  382. package/dist/types/interfaces/SpokePool.d.ts.map +1 -1
  383. package/dist/types/providers/index.d.ts +1 -1
  384. package/dist/types/providers/index.d.ts.map +1 -1
  385. package/dist/types/providers/mocks/MockCachedSolanaRpcFactory.d.ts +6 -0
  386. package/dist/types/providers/mocks/MockCachedSolanaRpcFactory.d.ts.map +1 -0
  387. package/dist/types/providers/mocks/MockRateLimitedSolanaRpcFactory.d.ts +6 -0
  388. package/dist/types/providers/mocks/MockRateLimitedSolanaRpcFactory.d.ts.map +1 -0
  389. package/dist/types/providers/mocks/MockSolanaRpcFactory.d.ts +14 -0
  390. package/dist/types/providers/mocks/MockSolanaRpcFactory.d.ts.map +1 -0
  391. package/dist/types/providers/mocks/index.d.ts +5 -0
  392. package/dist/types/providers/mocks/index.d.ts.map +1 -0
  393. package/dist/types/providers/{mockProvider.d.ts → mocks/mockEthersProvider.d.ts} +1 -1
  394. package/dist/types/providers/mocks/mockEthersProvider.d.ts.map +1 -0
  395. package/dist/types/relayFeeCalculator/chain-queries/baseQuery.d.ts +1 -1
  396. package/dist/types/relayFeeCalculator/chain-queries/baseQuery.d.ts.map +1 -1
  397. package/dist/types/relayFeeCalculator/chain-queries/factory.d.ts +4 -2
  398. package/dist/types/relayFeeCalculator/chain-queries/factory.d.ts.map +1 -1
  399. package/dist/types/relayFeeCalculator/chain-queries/index.d.ts +1 -0
  400. package/dist/types/relayFeeCalculator/chain-queries/index.d.ts.map +1 -1
  401. package/dist/types/relayFeeCalculator/chain-queries/svmQuery.d.ts +85 -0
  402. package/dist/types/relayFeeCalculator/chain-queries/svmQuery.d.ts.map +1 -0
  403. package/dist/types/relayFeeCalculator/relayFeeCalculator.d.ts +12 -1
  404. package/dist/types/relayFeeCalculator/relayFeeCalculator.d.ts.map +1 -1
  405. package/dist/types/utils/AddressUtils.d.ts +9 -3
  406. package/dist/types/utils/AddressUtils.d.ts.map +1 -1
  407. package/dist/types/utils/ArrayUtils.d.ts +6 -0
  408. package/dist/types/utils/ArrayUtils.d.ts.map +1 -1
  409. package/dist/types/utils/BlockFinder.d.ts +23 -0
  410. package/dist/types/utils/BlockFinder.d.ts.map +1 -0
  411. package/dist/types/utils/BlockUtils.d.ts +2 -36
  412. package/dist/types/utils/BlockUtils.d.ts.map +1 -1
  413. package/dist/types/utils/EventUtils.d.ts +4 -4
  414. package/dist/types/utils/EventUtils.d.ts.map +1 -1
  415. package/dist/types/utils/JSONUtils.d.ts.map +1 -1
  416. package/dist/types/utils/NumberUtils.d.ts +7 -0
  417. package/dist/types/utils/NumberUtils.d.ts.map +1 -1
  418. package/dist/types/utils/SpokeUtils.d.ts.map +1 -1
  419. package/dist/types/utils/TokenUtils.d.ts +12 -0
  420. package/dist/types/utils/TokenUtils.d.ts.map +1 -1
  421. package/dist/types/utils/index.d.ts +1 -0
  422. package/dist/types/utils/index.d.ts.map +1 -1
  423. package/package.json +3 -1
  424. package/src/arch/evm/BlockUtils.ts +209 -0
  425. package/src/arch/evm/SpokeUtils.ts +5 -5
  426. package/src/arch/evm/index.ts +1 -0
  427. package/src/arch/svm/SpokeUtils.ts +581 -0
  428. package/src/arch/svm/constants.ts +2 -0
  429. package/src/arch/svm/eventsClient.ts +342 -0
  430. package/src/arch/svm/index.ts +5 -1
  431. package/src/{svm → arch/svm}/types.ts +21 -4
  432. package/src/arch/svm/utils.ts +233 -0
  433. package/src/clients/AcrossConfigStoreClient/AcrossConfigStoreClient.ts +7 -7
  434. package/src/clients/BaseAbstractClient.ts +20 -13
  435. package/src/clients/BundleDataClient/BundleDataClient.ts +28 -19
  436. package/src/clients/BundleDataClient/utils/PoolRebalanceUtils.ts +1 -1
  437. package/src/clients/HubPoolClient.ts +19 -19
  438. package/src/clients/SpokePoolClient/EVMSpokePoolClient.ts +23 -21
  439. package/src/clients/SpokePoolClient/SVMSpokePoolClient.ts +268 -0
  440. package/src/clients/SpokePoolClient/SpokePoolClient.ts +50 -59
  441. package/src/clients/SpokePoolClient/index.ts +11 -0
  442. package/src/clients/index.ts +1 -1
  443. package/src/clients/mocks/MockConfigStoreClient.ts +2 -2
  444. package/src/clients/mocks/MockHubPoolClient.ts +2 -2
  445. package/src/clients/mocks/MockSpokePoolClient.ts +9 -4
  446. package/src/clients/mocks/MockSvmCpiEventsClient.ts +226 -0
  447. package/src/clients/mocks/MockSvmSpokePoolClient.ts +119 -0
  448. package/src/clients/mocks/index.ts +2 -0
  449. package/src/coingecko/Coingecko.ts +12 -3
  450. package/src/constants.ts +1 -0
  451. package/src/gasPriceOracle/adapters/arbitrum.ts +5 -2
  452. package/src/gasPriceOracle/adapters/ethereum.ts +7 -4
  453. package/src/gasPriceOracle/adapters/linea-viem.ts +3 -1
  454. package/src/gasPriceOracle/adapters/polygon.ts +6 -6
  455. package/src/gasPriceOracle/adapters/solana.ts +47 -0
  456. package/src/gasPriceOracle/index.ts +1 -1
  457. package/src/gasPriceOracle/oracle.ts +20 -4
  458. package/src/gasPriceOracle/types.ts +7 -1
  459. package/src/index.ts +0 -1
  460. package/src/interfaces/SpokePool.ts +14 -0
  461. package/src/providers/index.ts +1 -1
  462. package/src/providers/mocks/MockCachedSolanaRpcFactory.ts +15 -0
  463. package/src/providers/mocks/MockRateLimitedSolanaRpcFactory.ts +14 -0
  464. package/src/providers/mocks/MockSolanaRpcFactory.ts +55 -0
  465. package/src/providers/mocks/index.ts +4 -0
  466. package/src/providers/{mockProvider.ts → mocks/mockEthersProvider.ts} +1 -1
  467. package/src/relayFeeCalculator/chain-queries/baseQuery.ts +11 -9
  468. package/src/relayFeeCalculator/chain-queries/factory.ts +24 -8
  469. package/src/relayFeeCalculator/chain-queries/index.ts +1 -0
  470. package/src/relayFeeCalculator/chain-queries/svmQuery.ts +225 -0
  471. package/src/relayFeeCalculator/relayFeeCalculator.ts +15 -3
  472. package/src/utils/AddressUtils.ts +49 -6
  473. package/src/utils/ArrayUtils.ts +12 -0
  474. package/src/utils/BlockFinder.ts +26 -0
  475. package/src/utils/BlockUtils.ts +5 -215
  476. package/src/utils/EventUtils.ts +11 -11
  477. package/src/utils/JSONUtils.ts +2 -0
  478. package/src/utils/NumberUtils.ts +10 -0
  479. package/src/utils/SpokeUtils.ts +7 -3
  480. package/src/utils/TokenUtils.ts +6 -3
  481. package/src/utils/index.ts +1 -0
  482. package/dist/cjs/providers/mockProvider.js.map +0 -1
  483. package/dist/cjs/svm/eventsClient.d.ts +0 -15
  484. package/dist/cjs/svm/eventsClient.js +0 -157
  485. package/dist/cjs/svm/eventsClient.js.map +0 -1
  486. package/dist/cjs/svm/index.d.ts +0 -3
  487. package/dist/cjs/svm/index.js +0 -8
  488. package/dist/cjs/svm/index.js.map +0 -1
  489. package/dist/cjs/svm/types.js.map +0 -1
  490. package/dist/cjs/svm/utils/events.d.ts +0 -8
  491. package/dist/cjs/svm/utils/events.js +0 -47
  492. package/dist/cjs/svm/utils/events.js.map +0 -1
  493. package/dist/cjs/svm/utils/helpers.d.ts +0 -2
  494. package/dist/cjs/svm/utils/helpers.js +0 -19
  495. package/dist/cjs/svm/utils/helpers.js.map +0 -1
  496. package/dist/cjs/svm/utils/index.d.ts +0 -1
  497. package/dist/cjs/svm/utils/index.js +0 -5
  498. package/dist/cjs/svm/utils/index.js.map +0 -1
  499. package/dist/esm/providers/mockProvider.js.map +0 -1
  500. package/dist/esm/svm/eventsClient.d.ts +0 -51
  501. package/dist/esm/svm/eventsClient.js +0 -195
  502. package/dist/esm/svm/eventsClient.js.map +0 -1
  503. package/dist/esm/svm/index.d.ts +0 -3
  504. package/dist/esm/svm/index.js +0 -5
  505. package/dist/esm/svm/index.js.map +0 -1
  506. package/dist/esm/svm/types.js.map +0 -1
  507. package/dist/esm/svm/utils/events.d.ts +0 -17
  508. package/dist/esm/svm/utils/events.js +0 -55
  509. package/dist/esm/svm/utils/events.js.map +0 -1
  510. package/dist/esm/svm/utils/helpers.d.ts +0 -5
  511. package/dist/esm/svm/utils/helpers.js +0 -18
  512. package/dist/esm/svm/utils/helpers.js.map +0 -1
  513. package/dist/esm/svm/utils/index.d.ts +0 -1
  514. package/dist/esm/svm/utils/index.js +0 -2
  515. package/dist/esm/svm/utils/index.js.map +0 -1
  516. package/dist/types/providers/mockProvider.d.ts.map +0 -1
  517. package/dist/types/svm/eventsClient.d.ts +0 -52
  518. package/dist/types/svm/eventsClient.d.ts.map +0 -1
  519. package/dist/types/svm/index.d.ts +0 -4
  520. package/dist/types/svm/index.d.ts.map +0 -1
  521. package/dist/types/svm/types.d.ts.map +0 -1
  522. package/dist/types/svm/utils/events.d.ts +0 -18
  523. package/dist/types/svm/utils/events.d.ts.map +0 -1
  524. package/dist/types/svm/utils/helpers.d.ts +0 -6
  525. package/dist/types/svm/utils/helpers.d.ts.map +0 -1
  526. package/dist/types/svm/utils/index.d.ts +0 -2
  527. package/dist/types/svm/utils/index.d.ts.map +0 -1
  528. package/src/svm/eventsClient.ts +0 -199
  529. package/src/svm/index.ts +0 -3
  530. package/src/svm/utils/events.ts +0 -58
  531. package/src/svm/utils/helpers.ts +0 -9
  532. package/src/svm/utils/index.ts +0 -1
  533. /package/dist/cjs/{svm → arch/svm}/types.js +0 -0
  534. /package/dist/cjs/providers/{mockProvider.d.ts → mocks/mockEthersProvider.d.ts} +0 -0
  535. /package/dist/esm/{svm → arch/svm}/types.js +0 -0
  536. /package/dist/esm/providers/{mockProvider.d.ts → mocks/mockEthersProvider.d.ts} +0 -0
@@ -1,6 +1,7 @@
1
1
  import { providers } from "ethers";
2
2
  import { CachingMechanismInterface } from "../interfaces";
3
3
  import { EventSearchConfig, isDefined, MakeOptional } from "../utils";
4
+ import { SVMProvider } from "../arch/svm";
4
5
 
5
6
  export enum UpdateFailureReason {
6
7
  NotReady,
@@ -18,15 +19,15 @@ export function isUpdateFailureReason(x: EventSearchConfig | UpdateFailureReason
18
19
  */
19
20
  export abstract class BaseAbstractClient {
20
21
  protected _isUpdated: boolean;
21
- public firstBlockToSearch = 0;
22
- public latestBlockSearched = 0;
22
+ public firstHeightToSearch = 0;
23
+ public latestHeightSearched = 0;
23
24
 
24
25
  /**
25
26
  * Creates a new client.
26
27
  * @param cachingMechanism The caching mechanism to use for this client. If not provided, the client will not rely on an external cache.
27
28
  */
28
29
  constructor(
29
- readonly eventSearchConfig: MakeOptional<EventSearchConfig, "toBlock"> = { fromBlock: 0, maxBlockLookBack: 0 },
30
+ readonly eventSearchConfig: MakeOptional<EventSearchConfig, "to"> = { from: 0, maxLookBack: 0 },
30
31
  protected cachingMechanism?: CachingMechanismInterface
31
32
  ) {
32
33
  this._isUpdated = false;
@@ -58,22 +59,28 @@ export abstract class BaseAbstractClient {
58
59
  * @provider Ethers RPC provider instance.
59
60
  * @returns An EventSearchConfig instance if valid, otherwise an UpdateFailureReason.
60
61
  */
61
- public async updateSearchConfig(provider: providers.Provider): Promise<EventSearchConfig | UpdateFailureReason> {
62
- const fromBlock = this.firstBlockToSearch;
63
- let { toBlock } = this.eventSearchConfig;
64
- if (isDefined(toBlock)) {
65
- if (fromBlock > toBlock) {
66
- throw new Error(`Invalid event search config fromBlock (${fromBlock}) > toBlock (${toBlock})`);
62
+ public async updateSearchConfig(
63
+ provider: providers.Provider | SVMProvider
64
+ ): Promise<EventSearchConfig | UpdateFailureReason> {
65
+ const from = this.firstHeightToSearch;
66
+ let { to } = this.eventSearchConfig;
67
+ if (isDefined(to)) {
68
+ if (from > to) {
69
+ throw new Error(`Invalid event search config from (${from}) > to (${to})`);
67
70
  }
68
71
  } else {
69
- toBlock = await provider.getBlockNumber();
70
- if (toBlock < fromBlock) {
72
+ if (provider instanceof providers.Provider) {
73
+ to = await provider.getBlockNumber();
74
+ } else {
75
+ to = Number(await provider.getSlot({ commitment: "confirmed" }).send());
76
+ }
77
+ if (to < from) {
71
78
  return UpdateFailureReason.AlreadyUpdated;
72
79
  }
73
80
  }
74
81
 
75
- const { maxBlockLookBack } = this.eventSearchConfig;
76
- return { fromBlock, toBlock, maxBlockLookBack };
82
+ const { maxLookBack } = this.eventSearchConfig;
83
+ return { from, to, maxLookBack };
77
84
  }
78
85
 
79
86
  /**
@@ -20,7 +20,8 @@ import {
20
20
  DepositWithBlock,
21
21
  } from "../../interfaces";
22
22
  import { SpokePoolClient } from "..";
23
- import { findFillEvent } from "../../arch/evm";
23
+ import { findFillEvent as findEvmFillEvent } from "../../arch/evm";
24
+ import { findFillEvent as findSvmFillEvent } from "../../arch/svm";
24
25
  import {
25
26
  BigNumber,
26
27
  bnZero,
@@ -56,7 +57,7 @@ import {
56
57
  V3FillWithBlock,
57
58
  verifyFillRepayment,
58
59
  } from "./utils";
59
- import { isEVMSpokePoolClient } from "../SpokePoolClient";
60
+ import { isEVMSpokePoolClient, isSvmSpokePoolClient } from "../SpokePoolClient";
60
61
 
61
62
  // max(uint256) - 1
62
63
  export const INFINITE_FILL_DEADLINE = bnUint32Max;
@@ -370,7 +371,7 @@ export class BundleDataClient {
370
371
  }
371
372
 
372
373
  const bundle = this.clients.hubPoolClient.getLatestFullyExecutedRootBundle(
373
- this.clients.hubPoolClient.latestBlockSearched
374
+ this.clients.hubPoolClient.latestHeightSearched
374
375
  );
375
376
  if (bundle !== undefined) {
376
377
  refunds.push(await this.getPendingRefundsFromBundle(bundle));
@@ -383,7 +384,7 @@ export class BundleDataClient {
383
384
  async getPendingRefundsFromBundle(bundle: ProposedRootBundle): Promise<CombinedRefunds> {
384
385
  const nextBundleMainnetStartBlock = this.clients.hubPoolClient.getNextBundleStartBlockNumber(
385
386
  this.chainIdListForBundleEvaluationBlockNumbers,
386
- this.clients.hubPoolClient.latestBlockSearched,
387
+ this.clients.hubPoolClient.latestHeightSearched,
387
388
  this.clients.hubPoolClient.chainId
388
389
  );
389
390
  const chainIds = this.clients.configStoreClient.getChainIdIndicesForBlock(nextBundleMainnetStartBlock);
@@ -517,7 +518,7 @@ export class BundleDataClient {
517
518
  const hubPoolClient = this.clients.hubPoolClient;
518
519
  const nextBundleMainnetStartBlock = hubPoolClient.getNextBundleStartBlockNumber(
519
520
  this.chainIdListForBundleEvaluationBlockNumbers,
520
- hubPoolClient.latestBlockSearched,
521
+ hubPoolClient.latestHeightSearched,
521
522
  hubPoolClient.chainId
522
523
  );
523
524
  const chainIds = this.clients.configStoreClient.getChainIdIndicesForBlock(nextBundleMainnetStartBlock);
@@ -530,8 +531,8 @@ export class BundleDataClient {
530
531
  this.spokePoolClients,
531
532
  getEndBlockBuffers(chainIds, this.blockRangeEndBlockBuffer),
532
533
  this.clients,
533
- this.clients.hubPoolClient.latestBlockSearched,
534
- this.clients.configStoreClient.getEnabledChains(this.clients.hubPoolClient.latestBlockSearched)
534
+ this.clients.hubPoolClient.latestHeightSearched,
535
+ this.clients.configStoreClient.getEnabledChains(this.clients.hubPoolClient.latestHeightSearched)
535
536
  );
536
537
  // Return block ranges for blocks after _pendingBlockRanges and up to widestBlockRanges.
537
538
  // If a chain is disabled or doesn't have a spoke pool client, return a range of 0
@@ -799,7 +800,7 @@ export class BundleDataClient {
799
800
  // hasn't queried. This is because this function will usually be called
800
801
  // in production with block ranges that were validated by
801
802
  // DataworkerUtils.blockRangesAreInvalidForSpokeClients.
802
- Math.min(queryBlock, spokePoolClients[deposit.destinationChainId].latestBlockSearched)
803
+ Math.min(queryBlock, spokePoolClients[deposit.destinationChainId].latestHeightSearched)
803
804
  );
804
805
  };
805
806
 
@@ -1616,16 +1617,24 @@ export class BundleDataClient {
1616
1617
  deposit: DepositWithBlock,
1617
1618
  spokePoolClient: SpokePoolClient
1618
1619
  ): Promise<FillWithBlock | undefined> {
1619
- if (!isEVMSpokePoolClient(spokePoolClient)) {
1620
- // FIXME: Handle non-EVM chains.
1621
- throw new Error("Destination chain is not an EVM chain.");
1620
+ if (isSvmSpokePoolClient(spokePoolClient)) {
1621
+ return await findSvmFillEvent(
1622
+ deposit,
1623
+ spokePoolClient.chainId,
1624
+ spokePoolClient.svmEventsClient,
1625
+ spokePoolClient.deploymentBlock,
1626
+ spokePoolClient.latestHeightSearched
1627
+ );
1628
+ } else if (isEVMSpokePoolClient(spokePoolClient)) {
1629
+ return await findEvmFillEvent(
1630
+ spokePoolClient.spokePool,
1631
+ deposit,
1632
+ spokePoolClient.deploymentBlock,
1633
+ spokePoolClient.latestHeightSearched
1634
+ );
1635
+ } else {
1636
+ throw new Error("Unsupported spoke pool client type");
1622
1637
  }
1623
- return await findFillEvent(
1624
- spokePoolClient.spokePool,
1625
- deposit,
1626
- spokePoolClient.deploymentBlock,
1627
- spokePoolClient.latestBlockSearched
1628
- );
1629
1638
  }
1630
1639
 
1631
1640
  async getBundleBlockTimestamps(
@@ -1652,13 +1661,13 @@ export class BundleDataClient {
1652
1661
  // contain blocks where the spoke pool client hasn't queried. This is because this function
1653
1662
  // will usually be called in production with block ranges that were validated by
1654
1663
  // DataworkerUtils.blockRangesAreInvalidForSpokeClients.
1655
- const startBlockForChain = Math.min(_startBlockForChain, spokePoolClient.latestBlockSearched);
1664
+ const startBlockForChain = Math.min(_startBlockForChain, spokePoolClient.latestHeightSearched);
1656
1665
  // @dev Add 1 to the bundle end block. The thinking here is that there can be a gap between
1657
1666
  // block timestamps in subsequent blocks. The bundle data client assumes that fill deadlines expire
1658
1667
  // in exactly one bundle, therefore we must make sure that the bundle block timestamp for one bundle's
1659
1668
  // end block is exactly equal to the bundle block timestamp for the next bundle's start block. This way
1660
1669
  // there are no gaps in block timestamps between bundles.
1661
- const endBlockForChain = Math.min(_endBlockForChain + 1, spokePoolClient.latestBlockSearched);
1670
+ const endBlockForChain = Math.min(_endBlockForChain + 1, spokePoolClient.latestHeightSearched);
1662
1671
  const [startTime, _endTime] = [
1663
1672
  await spokePoolClient.getTimestampForBlock(startBlockForChain),
1664
1673
  await spokePoolClient.getTimestampForBlock(endBlockForChain),
@@ -32,7 +32,7 @@ export function getWidestPossibleExpectedBlockRange(
32
32
  // filled during the challenge period.
33
33
  const latestPossibleBundleEndBlockNumbers = chainIdListForBundleEvaluationBlockNumbers.map(
34
34
  (chainId: number, index) =>
35
- spokeClients[chainId] && Math.max(spokeClients[chainId].latestBlockSearched - endBlockBuffers[index], 0)
35
+ spokeClients[chainId] && Math.max(spokeClients[chainId].latestHeightSearched - endBlockBuffers[index], 0)
36
36
  );
37
37
  return chainIdListForBundleEvaluationBlockNumbers.map((chainId: number, index) => {
38
38
  const lastEndBlockForChain = clients.hubPoolClient.getLatestBundleEndBlockForChain(
@@ -22,9 +22,9 @@ import {
22
22
  TokenRunningBalance,
23
23
  } from "../interfaces";
24
24
  import * as lpFeeCalculator from "../lpFeeCalculator";
25
+ import { EVMBlockFinder } from "../arch/evm";
25
26
  import {
26
27
  BigNumber,
27
- BlockFinder,
28
28
  bnZero,
29
29
  dedupArray,
30
30
  EventSearchConfig,
@@ -97,7 +97,7 @@ export class HubPoolClient extends BaseAbstractClient {
97
97
  protected pendingRootBundle: PendingRootBundle | undefined;
98
98
 
99
99
  public currentTime: number | undefined;
100
- public readonly blockFinder: BlockFinder;
100
+ public readonly blockFinder: EVMBlockFinder;
101
101
 
102
102
  constructor(
103
103
  readonly logger: winston.Logger,
@@ -105,7 +105,7 @@ export class HubPoolClient extends BaseAbstractClient {
105
105
  public configStoreClient: ConfigStoreClient,
106
106
  public deploymentBlock = 0,
107
107
  readonly chainId: number = 1,
108
- eventSearchConfig: MakeOptional<EventSearchConfig, "toBlock"> = { fromBlock: 0, maxBlockLookBack: 0 },
108
+ eventSearchConfig: MakeOptional<EventSearchConfig, "to"> = { from: 0, maxLookBack: 0 },
109
109
  protected readonly configOverride: {
110
110
  ignoredHubExecutedBundles: number[];
111
111
  ignoredHubProposedBundles: number[];
@@ -117,11 +117,11 @@ export class HubPoolClient extends BaseAbstractClient {
117
117
  cachingMechanism?: CachingMechanismInterface
118
118
  ) {
119
119
  super(eventSearchConfig, cachingMechanism);
120
- this.latestBlockSearched = Math.min(deploymentBlock - 1, 0);
121
- this.firstBlockToSearch = eventSearchConfig.fromBlock;
120
+ this.latestHeightSearched = Math.min(deploymentBlock - 1, 0);
121
+ this.firstHeightToSearch = eventSearchConfig.from;
122
122
 
123
123
  const provider = this.hubPool.provider;
124
- this.blockFinder = new BlockFinder(provider);
124
+ this.blockFinder = new EVMBlockFinder(provider);
125
125
  }
126
126
 
127
127
  protected hubPoolEventFilters(): Record<HubPoolEvent, EventFilter> {
@@ -254,7 +254,7 @@ export class HubPoolClient extends BaseAbstractClient {
254
254
  return l2Token !== undefined;
255
255
  }
256
256
 
257
- l2TokenHasPoolRebalanceRoute(l2Token: string, l2ChainId: number, hubPoolBlock = this.latestBlockSearched): boolean {
257
+ l2TokenHasPoolRebalanceRoute(l2Token: string, l2ChainId: number, hubPoolBlock = this.latestHeightSearched): boolean {
258
258
  return Object.values(this.l1TokensToDestinationTokensWithBlock).some((destinationTokenMapping) => {
259
259
  return Object.entries(destinationTokenMapping).some(([_l2ChainId, setPoolRebalanceRouteEvents]) => {
260
260
  return setPoolRebalanceRouteEvents.some((e) => {
@@ -312,7 +312,7 @@ export class HubPoolClient extends BaseAbstractClient {
312
312
  }
313
313
 
314
314
  async getCurrentPoolUtilization(l1Token: string): Promise<BigNumber> {
315
- const blockNumber = this.latestBlockSearched ?? (await this.hubPool.provider.getBlockNumber());
315
+ const blockNumber = this.latestHeightSearched ?? (await this.hubPool.provider.getBlockNumber());
316
316
  return await this.getUtilization(l1Token, blockNumber, bnZero, getCurrentTime(), 0);
317
317
  }
318
318
 
@@ -523,7 +523,7 @@ export class HubPoolClient extends BaseAbstractClient {
523
523
  chainIdA: number,
524
524
  tokenB: string,
525
525
  chainIdB: number,
526
- hubPoolBlock = this.latestBlockSearched
526
+ hubPoolBlock = this.latestHeightSearched
527
527
  ): boolean {
528
528
  if (
529
529
  !this.l2TokenHasPoolRebalanceRoute(tokenA, chainIdA, hubPoolBlock) ||
@@ -719,7 +719,7 @@ export class HubPoolClient extends BaseAbstractClient {
719
719
  if (n === 0) {
720
720
  throw new Error("n cannot be 0");
721
721
  }
722
- if (!this.latestBlockSearched) {
722
+ if (!this.latestHeightSearched) {
723
723
  throw new Error("HubPoolClient::getNthFullyExecutedRootBundle client not updated");
724
724
  }
725
725
 
@@ -728,7 +728,7 @@ export class HubPoolClient extends BaseAbstractClient {
728
728
  // If n is negative, then return the Nth latest executed bundle, otherwise return the Nth earliest
729
729
  // executed bundle.
730
730
  if (n < 0) {
731
- let nextLatestMainnetBlock = startBlock ?? this.latestBlockSearched;
731
+ let nextLatestMainnetBlock = startBlock ?? this.latestHeightSearched;
732
732
  for (let i = 0; i < Math.abs(n); i++) {
733
733
  bundleToReturn = this.getLatestFullyExecutedRootBundle(nextLatestMainnetBlock);
734
734
  const bundleBlockNumber = bundleToReturn ? bundleToReturn.blockNumber : 0;
@@ -740,12 +740,12 @@ export class HubPoolClient extends BaseAbstractClient {
740
740
  } else {
741
741
  let nextStartBlock = startBlock ?? 0;
742
742
  for (let i = 0; i < n; i++) {
743
- bundleToReturn = this.getEarliestFullyExecutedRootBundle(this.latestBlockSearched, nextStartBlock);
743
+ bundleToReturn = this.getEarliestFullyExecutedRootBundle(this.latestHeightSearched, nextStartBlock);
744
744
  const bundleBlockNumber = bundleToReturn ? bundleToReturn.blockNumber : 0;
745
745
 
746
746
  // Add 1 so that next `getEarliestFullyExecutedRootBundle` call filters out the root bundle we just found
747
747
  // because its block number is < nextStartBlock.
748
- nextStartBlock = Math.min(bundleBlockNumber + 1, this.latestBlockSearched);
748
+ nextStartBlock = Math.min(bundleBlockNumber + 1, this.latestHeightSearched);
749
749
  }
750
750
  }
751
751
 
@@ -831,7 +831,7 @@ export class HubPoolClient extends BaseAbstractClient {
831
831
  // instantiation. However, certain events generally must be queried back to HubPool genesis.
832
832
  const overrideEvents = ["CrossChainContractsSet", "L1TokenEnabledForLiquidityProvision", "SetPoolRebalanceRoute"];
833
833
  if (overrideEvents.includes(eventName) && !this.isUpdated) {
834
- _searchConfig.fromBlock = this.deploymentBlock;
834
+ _searchConfig.from = this.deploymentBlock;
835
835
  }
836
836
 
837
837
  return {
@@ -853,7 +853,7 @@ export class HubPoolClient extends BaseAbstractClient {
853
853
  const [multicallOutput, ...events] = await Promise.all([
854
854
  hubPool.callStatic.multicall(
855
855
  multicallFunctions.map((f) => hubPool.interface.encodeFunctionData(f)),
856
- { blockTag: searchConfig.toBlock }
856
+ { blockTag: searchConfig.to }
857
857
  ),
858
858
  ...eventSearchConfigs.map((config) => paginatedEventQuery(hubPool, config.filter, config.searchConfig)),
859
859
  ]);
@@ -874,7 +874,7 @@ export class HubPoolClient extends BaseAbstractClient {
874
874
  success: true,
875
875
  currentTime,
876
876
  pendingRootBundleProposal,
877
- searchEndBlock: searchConfig.toBlock,
877
+ searchEndBlock: searchConfig.to,
878
878
  events: _events,
879
879
  };
880
880
  }
@@ -1087,9 +1087,9 @@ export class HubPoolClient extends BaseAbstractClient {
1087
1087
  }
1088
1088
 
1089
1089
  this.currentTime = currentTime;
1090
- this.latestBlockSearched = searchEndBlock;
1091
- this.firstBlockToSearch = update.searchEndBlock + 1; // Next iteration should start off from where this one ended.
1092
- this.eventSearchConfig.toBlock = undefined; // Caller can re-set on subsequent updates if necessary.
1090
+ this.latestHeightSearched = searchEndBlock;
1091
+ this.firstHeightToSearch = update.searchEndBlock + 1; // Next iteration should start off from where this one ended.
1092
+ this.eventSearchConfig.to = undefined; // Caller can re-set on subsequent updates if necessary.
1093
1093
 
1094
1094
  this.isUpdated = true;
1095
1095
  this.logger.debug({ at: "HubPoolClient::update", message: "HubPool client updated!", searchEndBlock });
@@ -39,20 +39,17 @@ export class EVMSpokePoolClient extends SpokePoolClient {
39
39
  hubPoolClient: HubPoolClient | null,
40
40
  chainId: number,
41
41
  deploymentBlock: number,
42
- eventSearchConfig: MakeOptional<EventSearchConfig, "toBlock"> = { fromBlock: 0, maxBlockLookBack: 0 }
42
+ eventSearchConfig: MakeOptional<EventSearchConfig, "to"> = { from: 0, maxLookBack: 0 }
43
43
  ) {
44
44
  super(logger, hubPoolClient, chainId, deploymentBlock, eventSearchConfig);
45
45
  }
46
46
 
47
- public override relayFillStatus(relayData: RelayData, blockTag?: number | "latest"): Promise<FillStatus> {
48
- return relayFillStatus(this.spokePool, relayData, blockTag, this.chainId);
47
+ public override relayFillStatus(relayData: RelayData, atHeight?: number): Promise<FillStatus> {
48
+ return relayFillStatus(this.spokePool, relayData, atHeight, this.chainId);
49
49
  }
50
50
 
51
- public override fillStatusArray(
52
- relayData: RelayData[],
53
- blockTag?: number | "latest"
54
- ): Promise<(FillStatus | undefined)[]> {
55
- return fillStatusArray(this.spokePool, relayData, blockTag);
51
+ public override fillStatusArray(relayData: RelayData[], atHeight?: number): Promise<(FillStatus | undefined)[]> {
52
+ return fillStatusArray(this.spokePool, relayData, atHeight);
56
53
  }
57
54
 
58
55
  public override getMaxFillDeadlineInRange(startBlock: number, endBlock: number): Promise<number> {
@@ -89,7 +86,7 @@ export class EVMSpokePoolClient extends SpokePoolClient {
89
86
  // However, certain events have special overriding requirements to their search ranges:
90
87
  // - EnabledDepositRoute: The full history is always required, so override the requested fromBlock.
91
88
  if (eventName === "EnabledDepositRoute" && !this.isUpdated) {
92
- _searchConfig.fromBlock = this.deploymentBlock;
89
+ _searchConfig.from = this.deploymentBlock;
93
90
  }
94
91
 
95
92
  return {
@@ -110,7 +107,7 @@ export class EVMSpokePoolClient extends SpokePoolClient {
110
107
  const [multicallOutput, ...events] = await Promise.all([
111
108
  spokePool.callStatic.multicall(
112
109
  multicallFunctions.map((f) => spokePool.interface.encodeFunctionData(f)),
113
- { blockTag: searchConfig.toBlock }
110
+ { blockTag: searchConfig.to }
114
111
  ),
115
112
  ...eventSearchConfigs.map((config) => paginatedEventQuery(this.spokePool, config.filter, config.searchConfig)),
116
113
  ]);
@@ -124,17 +121,22 @@ export class EVMSpokePoolClient extends SpokePoolClient {
124
121
  const errMsg = BigNumber.isBigNumber(currentTime)
125
122
  ? `currentTime: ${currentTime} < ${toBN(this.currentTime)}`
126
123
  : `currentTime is not a BigNumber: ${JSON.stringify(currentTime)}`;
127
- throw new Error(`SpokePoolClient::update: ${errMsg}`);
124
+ throw new Error(`EVMSpokePoolClient::update: ${errMsg}`);
128
125
  }
129
126
 
130
127
  // Sort all events to ensure they are stored in a consistent order.
131
128
  events.forEach((events) => sortEventsAscendingInPlace(events.map(logToSortableEvent)));
132
129
 
130
+ // Map events to SortableEvent
131
+ const eventsWithBlockNumber = events.map((eventList) =>
132
+ eventList.map((event) => spreadEventWithBlockNumber(event))
133
+ );
134
+
133
135
  return {
134
136
  success: true,
135
137
  currentTime: currentTime.toNumber(), // uint32
136
- searchEndBlock: searchConfig.toBlock,
137
- events,
138
+ searchEndBlock: searchConfig.to,
139
+ events: eventsWithBlockNumber,
138
140
  };
139
141
  }
140
142
 
@@ -149,31 +151,31 @@ export class EVMSpokePoolClient extends SpokePoolClient {
149
151
  }
150
152
 
151
153
  // No deposit found; revert to searching for it.
152
- const upperBound = this.latestBlockSearched || undefined; // Don't permit block 0 as the high block.
153
- const fromBlock = await findDepositBlock(this.spokePool, depositId, this.deploymentBlock, upperBound);
154
+ const upperBound = this.latestHeightSearched || undefined; // Don't permit block 0 as the high block.
155
+ const from = await findDepositBlock(this.spokePool, depositId, this.deploymentBlock, upperBound);
154
156
  const chain = getNetworkName(this.chainId);
155
- if (!fromBlock) {
157
+ if (!from) {
156
158
  const reason =
157
159
  `Unable to find ${chain} depositId ${depositId}` +
158
160
  ` within blocks [${this.deploymentBlock}, ${upperBound ?? "latest"}].`;
159
161
  return { found: false, code: InvalidFill.DepositIdNotFound, reason };
160
162
  }
161
163
 
162
- const toBlock = fromBlock;
164
+ const to = from;
163
165
  const tStart = Date.now();
164
166
  // Check both V3FundsDeposited and FundsDeposited events to look for a specified depositId.
165
- const { maxBlockLookBack } = this.eventSearchConfig;
167
+ const { maxLookBack } = this.eventSearchConfig;
166
168
  const query = (
167
169
  await Promise.all([
168
170
  paginatedEventQuery(
169
171
  this.spokePool,
170
172
  this.spokePool.filters.V3FundsDeposited(null, null, null, null, null, depositId),
171
- { fromBlock, toBlock, maxBlockLookBack }
173
+ { from, to, maxLookBack }
172
174
  ),
173
175
  paginatedEventQuery(
174
176
  this.spokePool,
175
177
  this.spokePool.filters.FundsDeposited(null, null, null, null, null, depositId),
176
- { fromBlock, toBlock, maxBlockLookBack }
178
+ { from, to, maxLookBack }
177
179
  ),
178
180
  ])
179
181
  ).flat();
@@ -184,7 +186,7 @@ export class EVMSpokePoolClient extends SpokePoolClient {
184
186
  return {
185
187
  found: false,
186
188
  code: InvalidFill.DepositIdNotFound,
187
- reason: `${chain} depositId ${depositId} not found at block ${fromBlock}.`,
189
+ reason: `${chain} depositId ${depositId} not found at block ${from}.`,
188
190
  };
189
191
  }
190
192