@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 +1 @@
1
- {"version":3,"file":"SpokeUtils.js","sourceRoot":"","sources":["../../../src/utils/SpokeUtils.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"SpokeUtils.js","sourceRoot":"","sources":["../../../src/utils/SpokeUtils.ts"],"names":[],"mappings":"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"}
@@ -77,9 +77,12 @@ exports.isStablecoin = isStablecoin;
77
77
  function getTokenInfo(l2TokenAddress, chainId, tokenMapping) {
78
78
  var _a;
79
79
  if (tokenMapping === void 0) { tokenMapping = TOKEN_SYMBOLS_MAP; }
80
+ var parsedAddress = (0, NetworkUtils_1.chainIsSvm)(chainId)
81
+ ? (0, AddressUtils_1.toAddressType)(l2TokenAddress).toBase58()
82
+ : (0, AddressUtils_1.toAddressType)(l2TokenAddress).toEvmAddress();
80
83
  var tokenObject = Object.values(tokenMapping).find(function (_a) {
81
84
  var addresses = _a.addresses;
82
- return addresses[chainId] === l2TokenAddress;
85
+ return addresses[chainId] === parsedAddress;
83
86
  });
84
87
  if (!tokenObject) {
85
88
  throw new Error("TokenUtils#getTokenInfo: Unable to resolve token in TOKEN_SYMBOLS_MAP for ".concat(l2TokenAddress, " on chain ").concat(chainId));
@@ -1 +1 @@
1
- {"version":3,"file":"TokenUtils.js","sourceRoot":"","sources":["../../../src/utils/TokenUtils.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"TokenUtils.js","sourceRoot":"","sources":["../../../src/utils/TokenUtils.ts"],"names":[],"mappings":"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"}
@@ -2,6 +2,7 @@ export * from "./common";
2
2
  export * from "./abi";
3
3
  export * from "./ArrayUtils";
4
4
  export * from "./BlockUtils";
5
+ export * from "./BlockFinder";
5
6
  export * from "./EventUtils";
6
7
  export * from "./ObjectUtils";
7
8
  export * from "./TimeUtils";
@@ -5,6 +5,7 @@ tslib_1.__exportStar(require("./common"), exports);
5
5
  tslib_1.__exportStar(require("./abi"), exports);
6
6
  tslib_1.__exportStar(require("./ArrayUtils"), exports);
7
7
  tslib_1.__exportStar(require("./BlockUtils"), exports);
8
+ tslib_1.__exportStar(require("./BlockFinder"), exports);
8
9
  tslib_1.__exportStar(require("./EventUtils"), exports);
9
10
  tslib_1.__exportStar(require("./ObjectUtils"), exports);
10
11
  tslib_1.__exportStar(require("./TimeUtils"), exports);
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/utils/index.ts"],"names":[],"mappings":";;;AAAA,mDAAyB;AACzB,gDAAsB;AACtB,uDAA6B;AAC7B,uDAA6B;AAC7B,uDAA6B;AAC7B,wDAA8B;AAC9B,sDAA4B;AAC5B,uDAA6B;AAC7B,sDAA4B;AAC5B,uDAA6B;AAC7B,qDAA2B;AAC3B,wDAA8B;AAC9B,sDAA4B;AAC5B,sDAA4B;AAC5B,wDAA8B;AAC9B,4DAAkC;AAClC,4DAAkC;AAClC,+DAAqC;AACrC,2DAAiC;AACjC,yDAA+B;AAC/B,yDAA+B;AAC/B,qDAA2B;AAC3B,sDAA4B;AAC5B,yDAA+B;AAC/B,yDAA+B;AAC/B,2DAAiC;AACjC,yDAA+B;AAC/B,uDAA6B;AAC7B,oDAA0B"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/utils/index.ts"],"names":[],"mappings":";;;AAAA,mDAAyB;AACzB,gDAAsB;AACtB,uDAA6B;AAC7B,uDAA6B;AAC7B,wDAA8B;AAC9B,uDAA6B;AAC7B,wDAA8B;AAC9B,sDAA4B;AAC5B,uDAA6B;AAC7B,sDAA4B;AAC5B,uDAA6B;AAC7B,qDAA2B;AAC3B,wDAA8B;AAC9B,sDAA4B;AAC5B,sDAA4B;AAC5B,wDAA8B;AAC9B,4DAAkC;AAClC,4DAAkC;AAClC,+DAAqC;AACrC,2DAAiC;AACjC,yDAA+B;AAC/B,yDAA+B;AAC/B,qDAA2B;AAC3B,sDAA4B;AAC5B,yDAA+B;AAC/B,yDAA+B;AAC/B,2DAAiC;AACjC,yDAA+B;AAC/B,uDAA6B;AAC7B,oDAA0B"}
@@ -0,0 +1,24 @@
1
+ import { Provider, Block as EthersBlock } from "@ethersproject/abstract-provider";
2
+ import { BlockFinder, type Block, type BlockFinderOpts as Opts, type BlockTimeAverage, type BlockFinderHints } from "../../utils/BlockFinder";
3
+ interface EVMBlock extends Block, EthersBlock {
4
+ }
5
+ /**
6
+ * @description Compute the average block time over a block range.
7
+ * @returns Average number of seconds per block.
8
+ */
9
+ export declare function averageBlockTime(provider: Provider, { highBlock, highBlockOffset, blockRange }?: Opts): Promise<Pick<BlockTimeAverage, "average" | "blockRange">>;
10
+ export declare class EVMBlockFinder extends BlockFinder<EVMBlock> {
11
+ private readonly provider;
12
+ private readonly blocks;
13
+ constructor(provider: Provider, blocks?: EVMBlock[]);
14
+ /**
15
+ * @notice Gets the latest block whose timestamp is <= the provided timestamp.
16
+ * @param number Timestamp timestamp to search.
17
+ * @param hints Optional low and high block to bound the search space.
18
+ */
19
+ getBlockForTimestamp(timestamp: number | string, hints?: BlockFinderHints): Promise<EVMBlock>;
20
+ private getLatestBlock;
21
+ private getBlock;
22
+ private findBlock;
23
+ }
24
+ export {};
@@ -0,0 +1,250 @@
1
+ var _a;
2
+ import { __awaiter, __extends, __generator } from "tslib";
3
+ import assert from "assert";
4
+ import { clamp, sortedIndexBy } from "lodash";
5
+ import { chainIsOPStack, getNetworkName } from "../../utils/NetworkUtils";
6
+ import { isDefined } from "../../utils/TypeGuards";
7
+ import { BlockFinder, } from "../../utils/BlockFinder";
8
+ import { getCurrentTime } from "../../utils/TimeUtils";
9
+ import { CHAIN_IDs } from "../../constants";
10
+ // Archive requests typically commence at 128 blocks past the head of the chain.
11
+ // Round down to 120 blocks to avoid slipping into archive territory.
12
+ var defaultBlockRange = 120;
13
+ // Default offset to the high block number. This is subtracted from the block number of the high block
14
+ // when it is queried from the network, rather than having been specified by the caller. This is useful
15
+ // since the supplied Provider instance may be backed by multiple RPC providers, which can lead to some
16
+ // providers running slower than others and taking time to synchronise on the latest block.
17
+ var defaultHighBlockOffset = 10;
18
+ // Retain computations for 15 minutes.
19
+ var cacheTTL = 60 * 15;
20
+ var now = getCurrentTime(); // Seed the cache with initial values.
21
+ var blockTimes = (_a = {},
22
+ _a[CHAIN_IDs.INK] = { average: 1, timestamp: now, blockRange: 1 },
23
+ _a[CHAIN_IDs.LINEA] = { average: 3, timestamp: now, blockRange: 1 },
24
+ _a[CHAIN_IDs.MAINNET] = { average: 12.5, timestamp: now, blockRange: 1 },
25
+ _a[CHAIN_IDs.OPTIMISM] = { average: 2, timestamp: now, blockRange: 1 },
26
+ _a[CHAIN_IDs.UNICHAIN] = { average: 1, timestamp: now, blockRange: 1 },
27
+ _a);
28
+ /**
29
+ * @description Compute the average block time over a block range.
30
+ * @returns Average number of seconds per block.
31
+ */
32
+ export function averageBlockTime(provider, _a) {
33
+ var _b;
34
+ var _c = _a === void 0 ? {} : _a, highBlock = _c.highBlock, highBlockOffset = _c.highBlockOffset, blockRange = _c.blockRange;
35
+ return __awaiter(this, void 0, void 0, function () {
36
+ var chainId, cache, now, earliestBlockNumber, _d, firstBlock, lastBlock, average;
37
+ return __generator(this, function (_e) {
38
+ switch (_e.label) {
39
+ case 0: return [4 /*yield*/, provider.getNetwork()];
40
+ case 1:
41
+ chainId = (_e.sent()).chainId;
42
+ cache = (_b = blockTimes[chainId]) !== null && _b !== void 0 ? _b : (chainIsOPStack(chainId) ? blockTimes[CHAIN_IDs.OPTIMISM] : undefined);
43
+ now = getCurrentTime();
44
+ if (isDefined(cache) && now < cache.timestamp + cacheTTL) {
45
+ return [2 /*return*/, { average: cache.average, blockRange: cache.blockRange }];
46
+ }
47
+ if (!!isDefined(highBlock)) return [3 /*break*/, 3];
48
+ return [4 /*yield*/, provider.getBlockNumber()];
49
+ case 2:
50
+ highBlock = _e.sent();
51
+ highBlock -= highBlockOffset !== null && highBlockOffset !== void 0 ? highBlockOffset : defaultHighBlockOffset;
52
+ _e.label = 3;
53
+ case 3:
54
+ blockRange !== null && blockRange !== void 0 ? blockRange : (blockRange = defaultBlockRange);
55
+ earliestBlockNumber = highBlock - blockRange;
56
+ return [4 /*yield*/, Promise.all([
57
+ provider.getBlock(earliestBlockNumber),
58
+ provider.getBlock(highBlock),
59
+ ])];
60
+ case 4:
61
+ _d = _e.sent(), firstBlock = _d[0], lastBlock = _d[1];
62
+ [firstBlock, lastBlock].forEach(function (block) {
63
+ if (!isDefined(block === null || block === void 0 ? void 0 : block.timestamp)) {
64
+ var network = getNetworkName(chainId);
65
+ var blockNumber = block === firstBlock ? earliestBlockNumber : highBlock;
66
+ throw new Error("BlockFinder: Failed to fetch block ".concat(blockNumber, " on ").concat(network));
67
+ }
68
+ });
69
+ average = (lastBlock.timestamp - firstBlock.timestamp) / blockRange;
70
+ blockTimes[chainId] = { timestamp: now, average: average, blockRange: blockRange };
71
+ return [2 /*return*/, { average: average, blockRange: blockRange }];
72
+ }
73
+ });
74
+ });
75
+ }
76
+ function estimateBlocksElapsed(seconds, cushionPercentage, provider) {
77
+ if (cushionPercentage === void 0) { cushionPercentage = 0.0; }
78
+ return __awaiter(this, void 0, void 0, function () {
79
+ var cushionMultiplier, average;
80
+ return __generator(this, function (_a) {
81
+ switch (_a.label) {
82
+ case 0:
83
+ cushionMultiplier = cushionPercentage + 1.0;
84
+ return [4 /*yield*/, averageBlockTime(provider)];
85
+ case 1:
86
+ average = (_a.sent()).average;
87
+ return [2 /*return*/, Math.floor((seconds * cushionMultiplier) / average)];
88
+ }
89
+ });
90
+ });
91
+ }
92
+ var EVMBlockFinder = /** @class */ (function (_super) {
93
+ __extends(EVMBlockFinder, _super);
94
+ function EVMBlockFinder(provider, blocks) {
95
+ if (blocks === void 0) { blocks = []; }
96
+ var _this = _super.call(this) || this;
97
+ _this.provider = provider;
98
+ _this.blocks = blocks;
99
+ return _this;
100
+ }
101
+ /**
102
+ * @notice Gets the latest block whose timestamp is <= the provided timestamp.
103
+ * @param number Timestamp timestamp to search.
104
+ * @param hints Optional low and high block to bound the search space.
105
+ */
106
+ EVMBlockFinder.prototype.getBlockForTimestamp = function (timestamp, hints) {
107
+ if (hints === void 0) { hints = {}; }
108
+ return __awaiter(this, void 0, void 0, function () {
109
+ var block, initialBlock, cushion, incrementDistance, _a, _b, multiplier, distance, blockNumber, block, index;
110
+ var _this = this;
111
+ return __generator(this, function (_c) {
112
+ switch (_c.label) {
113
+ case 0:
114
+ timestamp = Number(timestamp);
115
+ assert(timestamp !== undefined && timestamp !== null, "timestamp must be provided");
116
+ if (!(this.blocks.length === 0 || this.blocks[this.blocks.length - 1].timestamp < timestamp)) return [3 /*break*/, 2];
117
+ return [4 /*yield*/, this.getLatestBlock()];
118
+ case 1:
119
+ block = _c.sent();
120
+ if (timestamp >= block.timestamp)
121
+ return [2 /*return*/, block];
122
+ _c.label = 2;
123
+ case 2:
124
+ // Prime the BlockFinder cache with any supplied hints.
125
+ // If the hint is accurate, then this will bypass the subsequent estimation.
126
+ return [4 /*yield*/, Promise.all(Object.values(hints)
127
+ .filter(function (blockNumber) { return isDefined(blockNumber); })
128
+ .map(function (blockNumber) { return _this.getBlock(blockNumber); }))];
129
+ case 3:
130
+ // Prime the BlockFinder cache with any supplied hints.
131
+ // If the hint is accurate, then this will bypass the subsequent estimation.
132
+ _c.sent();
133
+ if (!(this.blocks[0].timestamp > timestamp)) return [3 /*break*/, 8];
134
+ initialBlock = this.blocks[0];
135
+ cushion = 1;
136
+ _b = (_a = Math).max;
137
+ // Ensure the increment block distance is _at least_ a single block to prevent an infinite loop.
138
+ return [4 /*yield*/, estimateBlocksElapsed(initialBlock.timestamp - timestamp, cushion, this.provider)];
139
+ case 4:
140
+ incrementDistance = _b.apply(_a, [
141
+ // Ensure the increment block distance is _at least_ a single block to prevent an infinite loop.
142
+ _c.sent(), 1]);
143
+ multiplier = 1;
144
+ _c.label = 5;
145
+ case 5:
146
+ distance = multiplier * incrementDistance;
147
+ blockNumber = Math.max(0, initialBlock.number - distance);
148
+ return [4 /*yield*/, this.getBlock(blockNumber)];
149
+ case 6:
150
+ block = _c.sent();
151
+ if (block.timestamp <= timestamp)
152
+ return [3 /*break*/, 8]; // Found an earlier block.
153
+ assert(blockNumber > 0, "timestamp is before block 0"); // Block 0 was not earlier than this timestamp. The row.
154
+ _c.label = 7;
155
+ case 7:
156
+ multiplier++;
157
+ return [3 /*break*/, 5];
158
+ case 8:
159
+ index = sortedIndexBy(this.blocks, { timestamp: timestamp }, "timestamp");
160
+ return [2 /*return*/, this.findBlock(this.blocks[index - 1], this.blocks[index], timestamp)];
161
+ }
162
+ });
163
+ });
164
+ };
165
+ // Grabs the most recent block and caches it.
166
+ EVMBlockFinder.prototype.getLatestBlock = function () {
167
+ var _a;
168
+ return __awaiter(this, void 0, void 0, function () {
169
+ var block, index;
170
+ return __generator(this, function (_b) {
171
+ switch (_b.label) {
172
+ case 0: return [4 /*yield*/, this.provider.getBlock("latest")];
173
+ case 1:
174
+ block = _b.sent();
175
+ index = sortedIndexBy(this.blocks, block, "number");
176
+ if (((_a = this.blocks[index]) === null || _a === void 0 ? void 0 : _a.number) !== block.number)
177
+ this.blocks.splice(index, 0, block);
178
+ return [2 /*return*/, this.blocks[index]];
179
+ }
180
+ });
181
+ });
182
+ };
183
+ // Grabs the block for a particular number and caches it.
184
+ EVMBlockFinder.prototype.getBlock = function (number) {
185
+ var _a, _b;
186
+ return __awaiter(this, void 0, void 0, function () {
187
+ var index, block;
188
+ return __generator(this, function (_c) {
189
+ switch (_c.label) {
190
+ case 0:
191
+ index = sortedIndexBy(this.blocks, { number: number }, "number");
192
+ if (((_a = this.blocks[index]) === null || _a === void 0 ? void 0 : _a.number) === number)
193
+ return [2 /*return*/, this.blocks[index]]; // Return early if block already exists.
194
+ return [4 /*yield*/, this.provider.getBlock(number)];
195
+ case 1:
196
+ block = _c.sent();
197
+ // Recompute the index after the async call since the state of this.blocks could have changed!
198
+ index = sortedIndexBy(this.blocks, { number: number }, "number");
199
+ // Rerun this check to avoid duplicate insertion.
200
+ if (((_b = this.blocks[index]) === null || _b === void 0 ? void 0 : _b.number) === number)
201
+ return [2 /*return*/, this.blocks[index]];
202
+ this.blocks.splice(index, 0, block); // A simple insert at index.
203
+ return [2 /*return*/, block];
204
+ }
205
+ });
206
+ });
207
+ };
208
+ // Return the latest block, between startBlock and endBlock, whose timestamp is <= timestamp.
209
+ // Effectively, this is an interpolation search algorithm to minimize block requests.
210
+ // Note: startBlock and endBlock _must_ be different blocks.
211
+ EVMBlockFinder.prototype.findBlock = function (_startBlock, _endBlock, timestamp) {
212
+ return __awaiter(this, void 0, void 0, function () {
213
+ var _a, startBlock, endBlock, totalTimeDifference, totalBlockDistance, blockPercentile, estimatedBlock, newBlock;
214
+ return __generator(this, function (_b) {
215
+ switch (_b.label) {
216
+ case 0:
217
+ _a = [_startBlock, _endBlock], startBlock = _a[0], endBlock = _a[1];
218
+ // In the case of equality, the endBlock is expected to be passed as the one whose timestamp === the requested
219
+ // timestamp.
220
+ if (endBlock.timestamp === timestamp)
221
+ return [2 /*return*/, endBlock];
222
+ // If there's no equality, but the blocks are adjacent, return the startBlock, since we want the returned block's
223
+ // timestamp to be <= the requested timestamp.
224
+ if (endBlock.number === startBlock.number + 1)
225
+ return [2 /*return*/, startBlock];
226
+ assert(endBlock.number !== startBlock.number, "startBlock cannot equal endBlock");
227
+ assert(timestamp < endBlock.timestamp && timestamp > startBlock.timestamp, "timestamp not in between start and end blocks");
228
+ totalTimeDifference = endBlock.timestamp - startBlock.timestamp;
229
+ totalBlockDistance = endBlock.number - startBlock.number;
230
+ blockPercentile = (timestamp - startBlock.timestamp) / totalTimeDifference;
231
+ estimatedBlock = startBlock.number + Math.round(blockPercentile * totalBlockDistance);
232
+ return [4 /*yield*/, this.getBlock(clamp(estimatedBlock, startBlock.number + 1, endBlock.number - 1))];
233
+ case 1:
234
+ newBlock = _b.sent();
235
+ // Depending on whether the new block is below or above the timestamp, narrow the search space accordingly.
236
+ if (newBlock.timestamp < timestamp) {
237
+ return [2 /*return*/, this.findBlock(newBlock, endBlock, timestamp)];
238
+ }
239
+ else {
240
+ return [2 /*return*/, this.findBlock(startBlock, newBlock, timestamp)];
241
+ }
242
+ return [2 /*return*/];
243
+ }
244
+ });
245
+ });
246
+ };
247
+ return EVMBlockFinder;
248
+ }(BlockFinder));
249
+ export { EVMBlockFinder };
250
+ //# sourceMappingURL=BlockUtils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BlockUtils.js","sourceRoot":"","sources":["../../../../src/arch/evm/BlockUtils.ts"],"names":[],"mappings":"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"}
@@ -42,7 +42,7 @@ export declare function findDepositBlock(spokePool: Contract, depositId: BigNumb
42
42
  * @param blockTag Block tag (numeric or "latest") to query at.
43
43
  * @returns The amount filled for the specified deposit at the requested block (or latest).
44
44
  */
45
- export declare function relayFillStatus(spokePool: Contract, relayData: RelayData, blockTag?: number | "latest", destinationChainId?: number): Promise<FillStatus>;
45
+ export declare function relayFillStatus(spokePool: Contract, relayData: RelayData, blockTag?: BlockTag, destinationChainId?: number): Promise<FillStatus>;
46
46
  export declare function fillStatusArray(spokePool: Contract, relayData: RelayData[], blockTag?: BlockTag): Promise<(FillStatus | undefined)[]>;
47
47
  /**
48
48
  * Find the block at which a fill was completed.
@@ -161,6 +161,7 @@ export function findDepositBlock(spokePool, depositId, lowBlock, highBlock) {
161
161
  * @returns The amount filled for the specified deposit at the requested block (or latest).
162
162
  */
163
163
  export function relayFillStatus(spokePool, relayData, blockTag, destinationChainId) {
164
+ if (blockTag === void 0) { blockTag = "latest"; }
164
165
  return __awaiter(this, void 0, void 0, function () {
165
166
  var _a, hash, _fillStatus, fillStatus, originChainId, depositId;
166
167
  return __generator(this, function (_b) {
@@ -304,7 +305,7 @@ export function findFillBlock(spokePool, relayData, lowBlockNumber, highBlockNum
304
305
  }
305
306
  export function findFillEvent(spokePool, relayData, lowBlockNumber, highBlockNumber) {
306
307
  return __awaiter(this, void 0, void 0, function () {
307
- var blockNumber, maxBlockLookBack, _a, fromBlock, toBlock, query, event, destinationChainId, _b, _c, fill;
308
+ var blockNumber, maxLookBack, _a, from, to, query, event, destinationChainId, _b, _c, fill;
308
309
  return __generator(this, function (_d) {
309
310
  switch (_d.label) {
310
311
  case 0: return [4 /*yield*/, findFillBlock(spokePool, relayData, lowBlockNumber, highBlockNumber)];
@@ -312,11 +313,11 @@ export function findFillEvent(spokePool, relayData, lowBlockNumber, highBlockNum
312
313
  blockNumber = _d.sent();
313
314
  if (!blockNumber)
314
315
  return [2 /*return*/, undefined];
315
- maxBlockLookBack = 0;
316
- _a = [blockNumber, blockNumber], fromBlock = _a[0], toBlock = _a[1];
316
+ maxLookBack = 0;
317
+ _a = [blockNumber, blockNumber], from = _a[0], to = _a[1];
317
318
  return [4 /*yield*/, Promise.all([
318
- paginatedEventQuery(spokePool, spokePool.filters.FilledRelay(null, null, null, null, null, relayData.originChainId, relayData.depositId), { fromBlock: fromBlock, toBlock: toBlock, maxBlockLookBack: maxBlockLookBack }),
319
- paginatedEventQuery(spokePool, spokePool.filters.FilledV3Relay(null, null, null, null, null, relayData.originChainId, relayData.depositId), { fromBlock: fromBlock, toBlock: toBlock, maxBlockLookBack: maxBlockLookBack }),
319
+ paginatedEventQuery(spokePool, spokePool.filters.FilledRelay(null, null, null, null, null, relayData.originChainId, relayData.depositId), { from: from, to: to, maxLookBack: maxLookBack }),
320
+ paginatedEventQuery(spokePool, spokePool.filters.FilledV3Relay(null, null, null, null, null, relayData.originChainId, relayData.depositId), { from: from, to: to, maxLookBack: maxLookBack }),
320
321
  ])];
321
322
  case 2:
322
323
  query = (_d.sent()).flat();
@@ -1 +1 @@
1
- {"version":3,"file":"SpokeUtils.js","sourceRoot":"","sources":["../../../../src/arch/evm/SpokeUtils.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"SpokeUtils.js","sourceRoot":"","sources":["../../../../src/arch/evm/SpokeUtils.ts"],"names":[],"mappings":"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"}
@@ -1 +1,2 @@
1
1
  export * from "./SpokeUtils";
2
+ export * from "./BlockUtils";
@@ -1,2 +1,3 @@
1
1
  export * from "./SpokeUtils";
2
+ export * from "./BlockUtils";
2
3
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/arch/evm/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/arch/evm/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAC;AAC7B,cAAc,cAAc,CAAC"}
@@ -0,0 +1,122 @@
1
+ import { SvmSpokeClient } from "@across-protocol/contracts";
2
+ import { Address, type TransactionSigner } from "@solana/kit";
3
+ import { Logger } from "winston";
4
+ import { Deposit, DepositWithBlock, FillStatus, FillWithBlock, RelayData } from "../../interfaces";
5
+ import { BigNumber, SvmAddress } from "../../utils";
6
+ import { SvmCpiEventsClient } from "./";
7
+ import { SVMProvider } from "./types";
8
+ /**
9
+ * @note: Average Solana slot duration is about 400-500ms. We can be conservative
10
+ * and choose 400 to ensure that the most slots get included in our ranges
11
+ */
12
+ export declare const SLOT_DURATION_MS = 400;
13
+ /**
14
+ * Retrieves the chain time at a particular slot.
15
+ */
16
+ export declare function getTimestampForSlot(provider: SVMProvider, slotNumber: number): Promise<number>;
17
+ /**
18
+ * Returns the current fill deadline buffer.
19
+ * @param provider SVM Provider instance
20
+ * @param statePda Spoke Pool's State PDA
21
+ * @returns fill deadline buffer
22
+ */
23
+ export declare function getFillDeadline(provider: SVMProvider, statePda: Address): Promise<number>;
24
+ /**
25
+ * Finds the deposit id at a specific block number.
26
+ * @param blockTag The block number to search for the deposit ID at.
27
+ * @returns The deposit ID.
28
+ */
29
+ export declare function getDepositIdAtBlock(_contract: unknown, _blockTag: number): Promise<BigNumber>;
30
+ /**
31
+ * Finds deposit events within a 2-day window ending at the specified slot.
32
+ *
33
+ * @remarks
34
+ * This implementation uses a slot-limited search approach because Solana PDA state has
35
+ * limitations that prevent directly referencing old deposit IDs. Unlike EVM chains where
36
+ * we might use binary search across the entire chain history, in Solana we must query within
37
+ * a constrained slot range.
38
+ *
39
+ * The search window is calculated by:
40
+ * 1. Using the provided slot (or current confirmed slot if none is provided)
41
+ * 2. Looking back 2 days worth of slots from that point
42
+ *
43
+ * We use a 2-day window because:
44
+ * 1. Most valid deposits that need to be processed will be recent
45
+ * 2. This covers multiple bundle submission periods
46
+ * 3. It balances performance with practical deposit age
47
+ *
48
+ * @important
49
+ * This function may return `undefined` for valid deposit IDs that are older than the search
50
+ * window (approximately 2 days before the specified slot). This is an acceptable limitation
51
+ * as deposits this old are typically not relevant to current operations.
52
+ *
53
+ * @param eventClient - SvmCpiEventsClient instance
54
+ * @param depositId - The deposit ID to search for
55
+ * @param slot - The slot to search up to (defaults to current slot). The search will look
56
+ * for deposits between (slot - secondsLookback) and slot.
57
+ * @param secondsLookback - The number of seconds to look back for deposits (defaults to 2 days).
58
+ * @returns The deposit if found within the slot window, undefined otherwise
59
+ */
60
+ export declare function findDeposit(eventClient: SvmCpiEventsClient, depositId: BigNumber, slot?: bigint, secondsLookback?: number): Promise<DepositWithBlock | undefined>;
61
+ /**
62
+ * Resolves the fill status of a deposit at a specific slot or at the current confirmed one.
63
+ *
64
+ * If no slot is provided, attempts to solve the fill status using the PDA. Otherwise, it is reconstructed from PDA events.
65
+ *
66
+ * @param programId - The spoke pool program ID.
67
+ * @param relayData - Deposit information used to locate the fill status.
68
+ * @param destinationChainId - Destination chain ID (must be an SVM chain).
69
+ * @param provider - SVM provider instance.
70
+ * @param svmEventsClient - SVM events client for querying events.
71
+ * @param atHeight - (Optional) Specific slot number to query. Defaults to the latest confirmed slot.
72
+ * @returns The fill status for the deposit at the specified or current slot.
73
+ */
74
+ export declare function relayFillStatus(programId: Address, relayData: RelayData, destinationChainId: number, svmEventsClient: SvmCpiEventsClient, atHeight?: number): Promise<FillStatus>;
75
+ /**
76
+ * Resolves fill statuses for multiple deposits at a specific or latest confirmed slot,
77
+ * using PDAs when possible and falling back to events if needed.
78
+ *
79
+ * @param programId The spoke pool program ID.
80
+ * @param relayData An array of relay data to resolve fill statuses for.
81
+ * @param destinationChainId The destination chain ID (must be an SVM chain).
82
+ * @param provider SVM Provider instance.
83
+ * @param svmEventsClient SVM events client instance for querying events.
84
+ * @param atHeight (Optional) The slot number to query at. If omitted, queries the latest confirmed slot.
85
+ * @returns An array of fill statuses for the specified deposits at the requested slot (or at the current confirmed slot).
86
+ */
87
+ export declare function fillStatusArray(programId: Address, relayData: RelayData[], destinationChainId: number, svmEventsClient: SvmCpiEventsClient, atHeight?: number, logger?: Logger): Promise<(FillStatus | undefined)[]>;
88
+ /**
89
+ * Finds the `FilledRelay` event for a given deposit within the provided slot range.
90
+ *
91
+ * @param relayData - Deposit information that is used to complete a fill.
92
+ * @param destinationChainId - Destination chain ID (must be an SVM chain).
93
+ * @param svmEventsClient - SVM events client instance for querying events.
94
+ * @param fromSlot - Starting slot to search.
95
+ * @param toSlot (Optional) Ending slot to search. If not provided, the current confirmed slot will be used.
96
+ * @returns The fill event with block info, or `undefined` if not found.
97
+ */
98
+ export declare function findFillEvent(relayData: RelayData, destinationChainId: number, svmEventsClient: SvmCpiEventsClient, fromSlot: number, toSlot?: number): Promise<FillWithBlock | undefined>;
99
+ /**
100
+ * @param spokePool Address (program ID) of the SvmSpoke.
101
+ * @param deposit V3Deopsit instance.
102
+ * @param relayer Address of the relayer filling the deposit.
103
+ * @param repaymentChainId Optional repaymentChainId (defaults to destinationChainId).
104
+ * @returns An Ethers UnsignedTransaction instance.
105
+ */
106
+ export declare function fillRelayInstruction(spokePool: SvmAddress, deposit: Omit<Deposit, "messageHash">, relayer: TransactionSigner<string>, recipientTokenAccount: Address<string>, repaymentChainId?: number): Promise<SvmSpokeClient.FillRelayInstruction<Address<"JAZWcGrpSWNPTBj8QtJ9UyQqhJCDhG9GJkDeMf5NQBiq">, string, string, string, string, string, string, string, string, string, string, string, string, []>>;
107
+ /**
108
+ * @param mint Address of the token corresponding to the account being made.
109
+ * @param relayer Address of the relayer filling the deposit.
110
+ * @returns An instruction for creating a new token account.
111
+ */
112
+ export declare function createTokenAccountsInstruction(mint: SvmAddress, relayer: TransactionSigner<string>): SvmSpokeClient.CreateTokenAccountsInstruction;
113
+ /**
114
+ * @param mint Address of the token corresponding to the account being made.
115
+ * @param amount Amount of the token to approve.
116
+ * @param relayer Address of the relayer filling the deposit.
117
+ * @param spokePool Address (program ID) of the SvmSpoke.
118
+ * @returns A token approval instruction.
119
+ */
120
+ export declare function createApproveInstruction(mint: SvmAddress, amount: BigNumber, relayer: SvmAddress, spokePool: SvmAddress, mintDecimals?: number): Promise<import("@solana-program/token").ApproveCheckedInstruction<Address<"TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA">, string, string, string, string, []>>;
121
+ export declare function getAssociatedTokenAddress(owner: SvmAddress, mint: SvmAddress, tokenProgramId?: Address<string>): Promise<Address<string>>;
122
+ export declare function getRelayDataHash(relayData: RelayData, destinationChainId: number): string;