@across-protocol/sdk 4.1.63-beta.3 → 4.1.64-alpha.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (510) hide show
  1. package/dist/cjs/arch/evm/SpokeUtils.d.ts +1 -1
  2. package/dist/cjs/arch/evm/SpokeUtils.js +5 -6
  3. package/dist/cjs/arch/evm/SpokeUtils.js.map +1 -1
  4. package/dist/cjs/arch/evm/index.d.ts +0 -1
  5. package/dist/cjs/arch/evm/index.js +0 -1
  6. package/dist/cjs/arch/evm/index.js.map +1 -1
  7. package/dist/cjs/arch/svm/index.d.ts +1 -5
  8. package/dist/cjs/arch/svm/index.js +2 -6
  9. package/dist/cjs/arch/svm/index.js.map +1 -1
  10. package/dist/cjs/clients/AcrossConfigStoreClient/AcrossConfigStoreClient.d.ts +1 -1
  11. package/dist/cjs/clients/AcrossConfigStoreClient/AcrossConfigStoreClient.js +7 -7
  12. package/dist/cjs/clients/AcrossConfigStoreClient/AcrossConfigStoreClient.js.map +1 -1
  13. package/dist/cjs/clients/BaseAbstractClient.d.ts +5 -6
  14. package/dist/cjs/clients/BaseAbstractClient.js +19 -30
  15. package/dist/cjs/clients/BaseAbstractClient.js.map +1 -1
  16. package/dist/cjs/clients/BundleDataClient/BundleDataClient.js +11 -15
  17. package/dist/cjs/clients/BundleDataClient/BundleDataClient.js.map +1 -1
  18. package/dist/cjs/clients/BundleDataClient/utils/PoolRebalanceUtils.js +1 -1
  19. package/dist/cjs/clients/BundleDataClient/utils/PoolRebalanceUtils.js.map +1 -1
  20. package/dist/cjs/clients/BundleDataClient/utils/SuperstructUtils.d.ts +114 -114
  21. package/dist/cjs/clients/HubPoolClient.d.ts +3 -4
  22. package/dist/cjs/clients/HubPoolClient.js +17 -18
  23. package/dist/cjs/clients/HubPoolClient.js.map +1 -1
  24. package/dist/cjs/clients/SpokePoolClient/EVMSpokePoolClient.d.ts +3 -3
  25. package/dist/cjs/clients/SpokePoolClient/EVMSpokePoolClient.js +20 -23
  26. package/dist/cjs/clients/SpokePoolClient/EVMSpokePoolClient.js.map +1 -1
  27. package/dist/cjs/clients/SpokePoolClient/SpokePoolClient.d.ts +5 -5
  28. package/dist/cjs/clients/SpokePoolClient/SpokePoolClient.js +57 -54
  29. package/dist/cjs/clients/SpokePoolClient/SpokePoolClient.js.map +1 -1
  30. package/dist/cjs/clients/SpokePoolClient/index.d.ts +0 -3
  31. package/dist/cjs/clients/SpokePoolClient/index.js +1 -8
  32. package/dist/cjs/clients/SpokePoolClient/index.js.map +1 -1
  33. package/dist/cjs/clients/index.d.ts +1 -1
  34. package/dist/cjs/clients/index.js +1 -2
  35. package/dist/cjs/clients/index.js.map +1 -1
  36. package/dist/cjs/clients/mocks/MockConfigStoreClient.d.ts +1 -1
  37. package/dist/cjs/clients/mocks/MockConfigStoreClient.js +2 -2
  38. package/dist/cjs/clients/mocks/MockConfigStoreClient.js.map +1 -1
  39. package/dist/cjs/clients/mocks/MockHubPoolClient.js +2 -2
  40. package/dist/cjs/clients/mocks/MockHubPoolClient.js.map +1 -1
  41. package/dist/cjs/clients/mocks/MockSpokePoolClient.js +4 -7
  42. package/dist/cjs/clients/mocks/MockSpokePoolClient.js.map +1 -1
  43. package/dist/cjs/clients/mocks/index.d.ts +0 -2
  44. package/dist/cjs/clients/mocks/index.js +0 -2
  45. package/dist/cjs/clients/mocks/index.js.map +1 -1
  46. package/dist/cjs/constants.d.ts +0 -1
  47. package/dist/cjs/constants.js +1 -2
  48. package/dist/cjs/constants.js.map +1 -1
  49. package/dist/cjs/gasPriceOracle/adapters/arbitrum.d.ts +2 -2
  50. package/dist/cjs/gasPriceOracle/adapters/arbitrum.js.map +1 -1
  51. package/dist/cjs/gasPriceOracle/adapters/ethereum.d.ts +4 -4
  52. package/dist/cjs/gasPriceOracle/adapters/ethereum.js.map +1 -1
  53. package/dist/cjs/gasPriceOracle/adapters/linea-viem.js +2 -3
  54. package/dist/cjs/gasPriceOracle/adapters/linea-viem.js.map +1 -1
  55. package/dist/cjs/gasPriceOracle/adapters/polygon.d.ts +3 -3
  56. package/dist/cjs/gasPriceOracle/index.d.ts +1 -1
  57. package/dist/cjs/gasPriceOracle/oracle.d.ts +3 -4
  58. package/dist/cjs/gasPriceOracle/oracle.js +9 -16
  59. package/dist/cjs/gasPriceOracle/oracle.js.map +1 -1
  60. package/dist/cjs/gasPriceOracle/types.d.ts +1 -6
  61. package/dist/cjs/index.d.ts +1 -0
  62. package/dist/cjs/index.js +2 -1
  63. package/dist/cjs/index.js.map +1 -1
  64. package/dist/cjs/interfaces/SpokePool.d.ts +0 -13
  65. package/dist/cjs/interfaces/SpokePool.js.map +1 -1
  66. package/dist/cjs/providers/index.d.ts +1 -1
  67. package/dist/cjs/providers/index.js +2 -1
  68. package/dist/cjs/providers/index.js.map +1 -1
  69. package/dist/cjs/providers/{mocks/mockEthersProvider.js → mockProvider.js} +2 -2
  70. package/dist/cjs/providers/mockProvider.js.map +1 -0
  71. package/dist/cjs/relayFeeCalculator/chain-queries/baseQuery.d.ts +1 -1
  72. package/dist/cjs/relayFeeCalculator/chain-queries/baseQuery.js +8 -10
  73. package/dist/cjs/relayFeeCalculator/chain-queries/baseQuery.js.map +1 -1
  74. package/dist/cjs/relayFeeCalculator/chain-queries/factory.d.ts +2 -4
  75. package/dist/cjs/relayFeeCalculator/chain-queries/factory.js +2 -8
  76. package/dist/cjs/relayFeeCalculator/chain-queries/factory.js.map +1 -1
  77. package/dist/cjs/relayFeeCalculator/chain-queries/index.d.ts +0 -1
  78. package/dist/cjs/relayFeeCalculator/chain-queries/index.js +0 -1
  79. package/dist/cjs/relayFeeCalculator/chain-queries/index.js.map +1 -1
  80. package/dist/cjs/relayFeeCalculator/relayFeeCalculator.d.ts +0 -2
  81. package/dist/cjs/relayFeeCalculator/relayFeeCalculator.js +4 -10
  82. package/dist/cjs/relayFeeCalculator/relayFeeCalculator.js.map +1 -1
  83. package/dist/cjs/svm/eventsClient.d.ts +15 -0
  84. package/dist/cjs/svm/eventsClient.js +157 -0
  85. package/dist/cjs/svm/eventsClient.js.map +1 -0
  86. package/dist/cjs/svm/index.d.ts +3 -0
  87. package/dist/cjs/svm/index.js +8 -0
  88. package/dist/cjs/svm/index.js.map +1 -0
  89. package/dist/cjs/{arch/svm → svm}/types.d.ts +4 -9
  90. package/dist/cjs/svm/types.js.map +1 -0
  91. package/dist/cjs/svm/utils/events.d.ts +8 -0
  92. package/dist/cjs/svm/utils/events.js +47 -0
  93. package/dist/cjs/svm/utils/events.js.map +1 -0
  94. package/dist/cjs/svm/utils/helpers.d.ts +2 -0
  95. package/dist/cjs/svm/utils/helpers.js +19 -0
  96. package/dist/cjs/svm/utils/helpers.js.map +1 -0
  97. package/dist/cjs/svm/utils/index.d.ts +1 -0
  98. package/dist/cjs/svm/utils/index.js +5 -0
  99. package/dist/cjs/svm/utils/index.js.map +1 -0
  100. package/dist/cjs/utils/AddressUtils.d.ts +3 -9
  101. package/dist/cjs/utils/AddressUtils.js +6 -36
  102. package/dist/cjs/utils/AddressUtils.js.map +1 -1
  103. package/dist/cjs/utils/ArrayUtils.d.ts +0 -1
  104. package/dist/cjs/utils/ArrayUtils.js +1 -6
  105. package/dist/cjs/utils/ArrayUtils.js.map +1 -1
  106. package/dist/cjs/utils/BlockUtils.d.ts +27 -2
  107. package/dist/cjs/utils/BlockUtils.js +208 -2
  108. package/dist/cjs/utils/BlockUtils.js.map +1 -1
  109. package/dist/cjs/utils/EventUtils.d.ts +4 -4
  110. package/dist/cjs/utils/EventUtils.js +4 -7
  111. package/dist/cjs/utils/EventUtils.js.map +1 -1
  112. package/dist/cjs/utils/JSONUtils.js +0 -3
  113. package/dist/cjs/utils/JSONUtils.js.map +1 -1
  114. package/dist/cjs/utils/SpokeUtils.js +0 -5
  115. package/dist/cjs/utils/SpokeUtils.js.map +1 -1
  116. package/dist/cjs/utils/index.d.ts +0 -1
  117. package/dist/cjs/utils/index.js +0 -1
  118. package/dist/cjs/utils/index.js.map +1 -1
  119. package/dist/esm/arch/evm/SpokeUtils.d.ts +1 -1
  120. package/dist/esm/arch/evm/SpokeUtils.js +5 -6
  121. package/dist/esm/arch/evm/SpokeUtils.js.map +1 -1
  122. package/dist/esm/arch/evm/index.d.ts +0 -1
  123. package/dist/esm/arch/evm/index.js +0 -1
  124. package/dist/esm/arch/evm/index.js.map +1 -1
  125. package/dist/esm/arch/svm/index.d.ts +1 -5
  126. package/dist/esm/arch/svm/index.js +1 -5
  127. package/dist/esm/arch/svm/index.js.map +1 -1
  128. package/dist/esm/clients/AcrossConfigStoreClient/AcrossConfigStoreClient.d.ts +1 -1
  129. package/dist/esm/clients/AcrossConfigStoreClient/AcrossConfigStoreClient.js +7 -7
  130. package/dist/esm/clients/AcrossConfigStoreClient/AcrossConfigStoreClient.js.map +1 -1
  131. package/dist/esm/clients/BaseAbstractClient.d.ts +5 -6
  132. package/dist/esm/clients/BaseAbstractClient.js +19 -30
  133. package/dist/esm/clients/BaseAbstractClient.js.map +1 -1
  134. package/dist/esm/clients/BundleDataClient/BundleDataClient.js +14 -17
  135. package/dist/esm/clients/BundleDataClient/BundleDataClient.js.map +1 -1
  136. package/dist/esm/clients/BundleDataClient/utils/PoolRebalanceUtils.js +1 -1
  137. package/dist/esm/clients/BundleDataClient/utils/PoolRebalanceUtils.js.map +1 -1
  138. package/dist/esm/clients/BundleDataClient/utils/SuperstructUtils.d.ts +114 -114
  139. package/dist/esm/clients/HubPoolClient.d.ts +3 -4
  140. package/dist/esm/clients/HubPoolClient.js +18 -19
  141. package/dist/esm/clients/HubPoolClient.js.map +1 -1
  142. package/dist/esm/clients/SpokePoolClient/EVMSpokePoolClient.d.ts +3 -3
  143. package/dist/esm/clients/SpokePoolClient/EVMSpokePoolClient.js +20 -23
  144. package/dist/esm/clients/SpokePoolClient/EVMSpokePoolClient.js.map +1 -1
  145. package/dist/esm/clients/SpokePoolClient/SpokePoolClient.d.ts +7 -7
  146. package/dist/esm/clients/SpokePoolClient/SpokePoolClient.js +59 -57
  147. package/dist/esm/clients/SpokePoolClient/SpokePoolClient.js.map +1 -1
  148. package/dist/esm/clients/SpokePoolClient/index.d.ts +0 -8
  149. package/dist/esm/clients/SpokePoolClient/index.js +0 -10
  150. package/dist/esm/clients/SpokePoolClient/index.js.map +1 -1
  151. package/dist/esm/clients/index.d.ts +1 -1
  152. package/dist/esm/clients/index.js +1 -1
  153. package/dist/esm/clients/index.js.map +1 -1
  154. package/dist/esm/clients/mocks/MockConfigStoreClient.d.ts +1 -1
  155. package/dist/esm/clients/mocks/MockConfigStoreClient.js +2 -2
  156. package/dist/esm/clients/mocks/MockConfigStoreClient.js.map +1 -1
  157. package/dist/esm/clients/mocks/MockHubPoolClient.js +2 -2
  158. package/dist/esm/clients/mocks/MockHubPoolClient.js.map +1 -1
  159. package/dist/esm/clients/mocks/MockSpokePoolClient.js +5 -8
  160. package/dist/esm/clients/mocks/MockSpokePoolClient.js.map +1 -1
  161. package/dist/esm/clients/mocks/index.d.ts +0 -2
  162. package/dist/esm/clients/mocks/index.js +0 -2
  163. package/dist/esm/clients/mocks/index.js.map +1 -1
  164. package/dist/esm/constants.d.ts +0 -1
  165. package/dist/esm/constants.js +0 -1
  166. package/dist/esm/constants.js.map +1 -1
  167. package/dist/esm/gasPriceOracle/adapters/arbitrum.d.ts +2 -2
  168. package/dist/esm/gasPriceOracle/adapters/arbitrum.js.map +1 -1
  169. package/dist/esm/gasPriceOracle/adapters/ethereum.d.ts +4 -4
  170. package/dist/esm/gasPriceOracle/adapters/ethereum.js.map +1 -1
  171. package/dist/esm/gasPriceOracle/adapters/linea-viem.js +2 -3
  172. package/dist/esm/gasPriceOracle/adapters/linea-viem.js.map +1 -1
  173. package/dist/esm/gasPriceOracle/adapters/polygon.d.ts +4 -4
  174. package/dist/esm/gasPriceOracle/adapters/polygon.js +1 -1
  175. package/dist/esm/gasPriceOracle/index.d.ts +1 -1
  176. package/dist/esm/gasPriceOracle/oracle.d.ts +3 -4
  177. package/dist/esm/gasPriceOracle/oracle.js +9 -18
  178. package/dist/esm/gasPriceOracle/oracle.js.map +1 -1
  179. package/dist/esm/gasPriceOracle/types.d.ts +1 -6
  180. package/dist/esm/index.d.ts +1 -0
  181. package/dist/esm/index.js +2 -0
  182. package/dist/esm/index.js.map +1 -1
  183. package/dist/esm/interfaces/SpokePool.d.ts +0 -13
  184. package/dist/esm/interfaces/SpokePool.js.map +1 -1
  185. package/dist/esm/providers/index.d.ts +1 -1
  186. package/dist/esm/providers/index.js +2 -1
  187. package/dist/esm/providers/index.js.map +1 -1
  188. package/dist/esm/providers/{mocks/mockEthersProvider.js → mockProvider.js} +2 -2
  189. package/dist/esm/providers/mockProvider.js.map +1 -0
  190. package/dist/esm/relayFeeCalculator/chain-queries/baseQuery.d.ts +1 -1
  191. package/dist/esm/relayFeeCalculator/chain-queries/baseQuery.js +8 -10
  192. package/dist/esm/relayFeeCalculator/chain-queries/baseQuery.js.map +1 -1
  193. package/dist/esm/relayFeeCalculator/chain-queries/factory.d.ts +2 -4
  194. package/dist/esm/relayFeeCalculator/chain-queries/factory.js +5 -11
  195. package/dist/esm/relayFeeCalculator/chain-queries/factory.js.map +1 -1
  196. package/dist/esm/relayFeeCalculator/chain-queries/index.d.ts +0 -1
  197. package/dist/esm/relayFeeCalculator/chain-queries/index.js +0 -1
  198. package/dist/esm/relayFeeCalculator/chain-queries/index.js.map +1 -1
  199. package/dist/esm/relayFeeCalculator/relayFeeCalculator.d.ts +1 -12
  200. package/dist/esm/relayFeeCalculator/relayFeeCalculator.js +5 -10
  201. package/dist/esm/relayFeeCalculator/relayFeeCalculator.js.map +1 -1
  202. package/dist/esm/svm/eventsClient.d.ts +51 -0
  203. package/dist/esm/svm/eventsClient.js +195 -0
  204. package/dist/esm/svm/eventsClient.js.map +1 -0
  205. package/dist/esm/svm/index.d.ts +3 -0
  206. package/dist/esm/svm/index.js +5 -0
  207. package/dist/esm/svm/index.js.map +1 -0
  208. package/dist/esm/{arch/svm → svm}/types.d.ts +4 -9
  209. package/dist/esm/svm/types.js.map +1 -0
  210. package/dist/esm/svm/utils/events.d.ts +17 -0
  211. package/dist/esm/svm/utils/events.js +55 -0
  212. package/dist/esm/svm/utils/events.js.map +1 -0
  213. package/dist/esm/svm/utils/helpers.d.ts +5 -0
  214. package/dist/esm/svm/utils/helpers.js +18 -0
  215. package/dist/esm/svm/utils/helpers.js.map +1 -0
  216. package/dist/esm/svm/utils/index.d.ts +1 -0
  217. package/dist/esm/svm/utils/index.js +2 -0
  218. package/dist/esm/svm/utils/index.js.map +1 -0
  219. package/dist/esm/utils/AddressUtils.d.ts +3 -9
  220. package/dist/esm/utils/AddressUtils.js +6 -41
  221. package/dist/esm/utils/AddressUtils.js.map +1 -1
  222. package/dist/esm/utils/ArrayUtils.d.ts +0 -6
  223. package/dist/esm/utils/ArrayUtils.js +0 -9
  224. package/dist/esm/utils/ArrayUtils.js.map +1 -1
  225. package/dist/esm/utils/BlockUtils.d.ts +36 -2
  226. package/dist/esm/utils/BlockUtils.js +243 -2
  227. package/dist/esm/utils/BlockUtils.js.map +1 -1
  228. package/dist/esm/utils/EventUtils.d.ts +4 -4
  229. package/dist/esm/utils/EventUtils.js +4 -7
  230. package/dist/esm/utils/EventUtils.js.map +1 -1
  231. package/dist/esm/utils/JSONUtils.js +0 -3
  232. package/dist/esm/utils/JSONUtils.js.map +1 -1
  233. package/dist/esm/utils/SpokeUtils.js +0 -5
  234. package/dist/esm/utils/SpokeUtils.js.map +1 -1
  235. package/dist/esm/utils/index.d.ts +0 -1
  236. package/dist/esm/utils/index.js +0 -1
  237. package/dist/esm/utils/index.js.map +1 -1
  238. package/dist/types/arch/evm/SpokeUtils.d.ts +1 -1
  239. package/dist/types/arch/evm/SpokeUtils.d.ts.map +1 -1
  240. package/dist/types/arch/evm/index.d.ts +0 -1
  241. package/dist/types/arch/evm/index.d.ts.map +1 -1
  242. package/dist/types/arch/svm/index.d.ts +1 -5
  243. package/dist/types/arch/svm/index.d.ts.map +1 -1
  244. package/dist/types/clients/AcrossConfigStoreClient/AcrossConfigStoreClient.d.ts +1 -1
  245. package/dist/types/clients/AcrossConfigStoreClient/AcrossConfigStoreClient.d.ts.map +1 -1
  246. package/dist/types/clients/BaseAbstractClient.d.ts +5 -6
  247. package/dist/types/clients/BaseAbstractClient.d.ts.map +1 -1
  248. package/dist/types/clients/BundleDataClient/BundleDataClient.d.ts.map +1 -1
  249. package/dist/types/clients/BundleDataClient/utils/SuperstructUtils.d.ts +114 -114
  250. package/dist/types/clients/HubPoolClient.d.ts +3 -4
  251. package/dist/types/clients/HubPoolClient.d.ts.map +1 -1
  252. package/dist/types/clients/SpokePoolClient/EVMSpokePoolClient.d.ts +3 -3
  253. package/dist/types/clients/SpokePoolClient/EVMSpokePoolClient.d.ts.map +1 -1
  254. package/dist/types/clients/SpokePoolClient/SpokePoolClient.d.ts +7 -7
  255. package/dist/types/clients/SpokePoolClient/SpokePoolClient.d.ts.map +1 -1
  256. package/dist/types/clients/SpokePoolClient/index.d.ts +0 -8
  257. package/dist/types/clients/SpokePoolClient/index.d.ts.map +1 -1
  258. package/dist/types/clients/index.d.ts +1 -1
  259. package/dist/types/clients/index.d.ts.map +1 -1
  260. package/dist/types/clients/mocks/MockConfigStoreClient.d.ts +1 -1
  261. package/dist/types/clients/mocks/MockConfigStoreClient.d.ts.map +1 -1
  262. package/dist/types/clients/mocks/MockSpokePoolClient.d.ts.map +1 -1
  263. package/dist/types/clients/mocks/index.d.ts +0 -2
  264. package/dist/types/clients/mocks/index.d.ts.map +1 -1
  265. package/dist/types/constants.d.ts +0 -1
  266. package/dist/types/constants.d.ts.map +1 -1
  267. package/dist/types/gasPriceOracle/adapters/arbitrum.d.ts +2 -2
  268. package/dist/types/gasPriceOracle/adapters/arbitrum.d.ts.map +1 -1
  269. package/dist/types/gasPriceOracle/adapters/ethereum.d.ts +4 -4
  270. package/dist/types/gasPriceOracle/adapters/ethereum.d.ts.map +1 -1
  271. package/dist/types/gasPriceOracle/adapters/linea-viem.d.ts.map +1 -1
  272. package/dist/types/gasPriceOracle/adapters/polygon.d.ts +4 -4
  273. package/dist/types/gasPriceOracle/adapters/polygon.d.ts.map +1 -1
  274. package/dist/types/gasPriceOracle/index.d.ts +1 -1
  275. package/dist/types/gasPriceOracle/index.d.ts.map +1 -1
  276. package/dist/types/gasPriceOracle/oracle.d.ts +3 -4
  277. package/dist/types/gasPriceOracle/oracle.d.ts.map +1 -1
  278. package/dist/types/gasPriceOracle/types.d.ts +1 -6
  279. package/dist/types/gasPriceOracle/types.d.ts.map +1 -1
  280. package/dist/types/index.d.ts +1 -0
  281. package/dist/types/index.d.ts.map +1 -1
  282. package/dist/types/interfaces/SpokePool.d.ts +0 -13
  283. package/dist/types/interfaces/SpokePool.d.ts.map +1 -1
  284. package/dist/types/providers/index.d.ts +1 -1
  285. package/dist/types/providers/index.d.ts.map +1 -1
  286. package/dist/types/providers/{mocks/mockEthersProvider.d.ts → mockProvider.d.ts} +1 -1
  287. package/dist/types/providers/mockProvider.d.ts.map +1 -0
  288. package/dist/types/relayFeeCalculator/chain-queries/baseQuery.d.ts +1 -1
  289. package/dist/types/relayFeeCalculator/chain-queries/baseQuery.d.ts.map +1 -1
  290. package/dist/types/relayFeeCalculator/chain-queries/factory.d.ts +2 -4
  291. package/dist/types/relayFeeCalculator/chain-queries/factory.d.ts.map +1 -1
  292. package/dist/types/relayFeeCalculator/chain-queries/index.d.ts +0 -1
  293. package/dist/types/relayFeeCalculator/chain-queries/index.d.ts.map +1 -1
  294. package/dist/types/relayFeeCalculator/relayFeeCalculator.d.ts +1 -12
  295. package/dist/types/relayFeeCalculator/relayFeeCalculator.d.ts.map +1 -1
  296. package/dist/types/svm/eventsClient.d.ts +52 -0
  297. package/dist/types/svm/eventsClient.d.ts.map +1 -0
  298. package/dist/types/svm/index.d.ts +4 -0
  299. package/dist/types/svm/index.d.ts.map +1 -0
  300. package/dist/types/{arch/svm → svm}/types.d.ts +4 -9
  301. package/dist/types/svm/types.d.ts.map +1 -0
  302. package/dist/types/svm/utils/events.d.ts +18 -0
  303. package/dist/types/svm/utils/events.d.ts.map +1 -0
  304. package/dist/types/svm/utils/helpers.d.ts +6 -0
  305. package/dist/types/svm/utils/helpers.d.ts.map +1 -0
  306. package/dist/types/svm/utils/index.d.ts +2 -0
  307. package/dist/types/svm/utils/index.d.ts.map +1 -0
  308. package/dist/types/utils/AddressUtils.d.ts +3 -9
  309. package/dist/types/utils/AddressUtils.d.ts.map +1 -1
  310. package/dist/types/utils/ArrayUtils.d.ts +0 -6
  311. package/dist/types/utils/ArrayUtils.d.ts.map +1 -1
  312. package/dist/types/utils/BlockUtils.d.ts +36 -2
  313. package/dist/types/utils/BlockUtils.d.ts.map +1 -1
  314. package/dist/types/utils/EventUtils.d.ts +4 -4
  315. package/dist/types/utils/EventUtils.d.ts.map +1 -1
  316. package/dist/types/utils/JSONUtils.d.ts.map +1 -1
  317. package/dist/types/utils/SpokeUtils.d.ts.map +1 -1
  318. package/dist/types/utils/index.d.ts +0 -1
  319. package/dist/types/utils/index.d.ts.map +1 -1
  320. package/package.json +1 -3
  321. package/src/arch/evm/SpokeUtils.ts +5 -5
  322. package/src/arch/evm/index.ts +0 -1
  323. package/src/arch/svm/index.ts +1 -5
  324. package/src/clients/AcrossConfigStoreClient/AcrossConfigStoreClient.ts +7 -7
  325. package/src/clients/BaseAbstractClient.ts +13 -20
  326. package/src/clients/BundleDataClient/BundleDataClient.ts +19 -28
  327. package/src/clients/BundleDataClient/utils/PoolRebalanceUtils.ts +1 -1
  328. package/src/clients/HubPoolClient.ts +19 -19
  329. package/src/clients/SpokePoolClient/EVMSpokePoolClient.ts +21 -23
  330. package/src/clients/SpokePoolClient/SpokePoolClient.ts +59 -50
  331. package/src/clients/SpokePoolClient/index.ts +0 -11
  332. package/src/clients/index.ts +1 -1
  333. package/src/clients/mocks/MockConfigStoreClient.ts +2 -2
  334. package/src/clients/mocks/MockHubPoolClient.ts +2 -2
  335. package/src/clients/mocks/MockSpokePoolClient.ts +4 -9
  336. package/src/clients/mocks/index.ts +0 -2
  337. package/src/constants.ts +0 -1
  338. package/src/gasPriceOracle/adapters/arbitrum.ts +2 -5
  339. package/src/gasPriceOracle/adapters/ethereum.ts +4 -7
  340. package/src/gasPriceOracle/adapters/linea-viem.ts +1 -3
  341. package/src/gasPriceOracle/adapters/polygon.ts +6 -6
  342. package/src/gasPriceOracle/index.ts +1 -1
  343. package/src/gasPriceOracle/oracle.ts +4 -20
  344. package/src/gasPriceOracle/types.ts +1 -7
  345. package/src/index.ts +1 -0
  346. package/src/interfaces/SpokePool.ts +0 -14
  347. package/src/providers/index.ts +1 -1
  348. package/src/providers/{mocks/mockEthersProvider.ts → mockProvider.ts} +1 -1
  349. package/src/relayFeeCalculator/chain-queries/baseQuery.ts +9 -11
  350. package/src/relayFeeCalculator/chain-queries/factory.ts +8 -24
  351. package/src/relayFeeCalculator/chain-queries/index.ts +0 -1
  352. package/src/relayFeeCalculator/relayFeeCalculator.ts +4 -16
  353. package/src/svm/eventsClient.ts +199 -0
  354. package/src/svm/index.ts +3 -0
  355. package/src/{arch/svm → svm}/types.ts +4 -21
  356. package/src/svm/utils/events.ts +58 -0
  357. package/src/svm/utils/helpers.ts +9 -0
  358. package/src/svm/utils/index.ts +1 -0
  359. package/src/utils/AddressUtils.ts +6 -49
  360. package/src/utils/ArrayUtils.ts +0 -12
  361. package/src/utils/BlockUtils.ts +215 -5
  362. package/src/utils/EventUtils.ts +11 -11
  363. package/src/utils/JSONUtils.ts +0 -2
  364. package/src/utils/SpokeUtils.ts +3 -7
  365. package/src/utils/index.ts +0 -1
  366. package/dist/cjs/arch/evm/BlockUtils.d.ts +0 -15
  367. package/dist/cjs/arch/evm/BlockUtils.js +0 -218
  368. package/dist/cjs/arch/evm/BlockUtils.js.map +0 -1
  369. package/dist/cjs/arch/svm/SpokeUtils.d.ts +0 -21
  370. package/dist/cjs/arch/svm/SpokeUtils.js +0 -454
  371. package/dist/cjs/arch/svm/SpokeUtils.js.map +0 -1
  372. package/dist/cjs/arch/svm/constants.d.ts +0 -2
  373. package/dist/cjs/arch/svm/constants.js +0 -7
  374. package/dist/cjs/arch/svm/constants.js.map +0 -1
  375. package/dist/cjs/arch/svm/eventsClient.d.ts +0 -26
  376. package/dist/cjs/arch/svm/eventsClient.js +0 -253
  377. package/dist/cjs/arch/svm/eventsClient.js.map +0 -1
  378. package/dist/cjs/arch/svm/types.js.map +0 -1
  379. package/dist/cjs/arch/svm/utils.d.ts +0 -18
  380. package/dist/cjs/arch/svm/utils.js +0 -212
  381. package/dist/cjs/arch/svm/utils.js.map +0 -1
  382. package/dist/cjs/clients/SpokePoolClient/SVMSpokePoolClient.d.ts +0 -23
  383. package/dist/cjs/clients/SpokePoolClient/SVMSpokePoolClient.js +0 -172
  384. package/dist/cjs/clients/SpokePoolClient/SVMSpokePoolClient.js.map +0 -1
  385. package/dist/cjs/clients/mocks/MockSvmCpiEventsClient.d.ts +0 -33
  386. package/dist/cjs/clients/mocks/MockSvmCpiEventsClient.js +0 -184
  387. package/dist/cjs/clients/mocks/MockSvmCpiEventsClient.js.map +0 -1
  388. package/dist/cjs/clients/mocks/MockSvmSpokePoolClient.d.ts +0 -30
  389. package/dist/cjs/clients/mocks/MockSvmSpokePoolClient.js +0 -90
  390. package/dist/cjs/clients/mocks/MockSvmSpokePoolClient.js.map +0 -1
  391. package/dist/cjs/gasPriceOracle/adapters/solana.d.ts +0 -4
  392. package/dist/cjs/gasPriceOracle/adapters/solana.js +0 -43
  393. package/dist/cjs/gasPriceOracle/adapters/solana.js.map +0 -1
  394. package/dist/cjs/providers/mocks/MockCachedSolanaRpcFactory.d.ts +0 -5
  395. package/dist/cjs/providers/mocks/MockCachedSolanaRpcFactory.js +0 -21
  396. package/dist/cjs/providers/mocks/MockCachedSolanaRpcFactory.js.map +0 -1
  397. package/dist/cjs/providers/mocks/MockRateLimitedSolanaRpcFactory.d.ts +0 -5
  398. package/dist/cjs/providers/mocks/MockRateLimitedSolanaRpcFactory.js +0 -20
  399. package/dist/cjs/providers/mocks/MockRateLimitedSolanaRpcFactory.js.map +0 -1
  400. package/dist/cjs/providers/mocks/MockSolanaRpcFactory.d.ts +0 -13
  401. package/dist/cjs/providers/mocks/MockSolanaRpcFactory.js +0 -76
  402. package/dist/cjs/providers/mocks/MockSolanaRpcFactory.js.map +0 -1
  403. package/dist/cjs/providers/mocks/index.d.ts +0 -4
  404. package/dist/cjs/providers/mocks/index.js +0 -8
  405. package/dist/cjs/providers/mocks/index.js.map +0 -1
  406. package/dist/cjs/providers/mocks/mockEthersProvider.js.map +0 -1
  407. package/dist/cjs/relayFeeCalculator/chain-queries/svmQuery.d.ts +0 -37
  408. package/dist/cjs/relayFeeCalculator/chain-queries/svmQuery.js +0 -171
  409. package/dist/cjs/relayFeeCalculator/chain-queries/svmQuery.js.map +0 -1
  410. package/dist/cjs/utils/BlockFinder.d.ts +0 -22
  411. package/dist/cjs/utils/BlockFinder.js +0 -10
  412. package/dist/cjs/utils/BlockFinder.js.map +0 -1
  413. package/dist/esm/arch/evm/BlockUtils.d.ts +0 -24
  414. package/dist/esm/arch/evm/BlockUtils.js +0 -250
  415. package/dist/esm/arch/evm/BlockUtils.js.map +0 -1
  416. package/dist/esm/arch/svm/SpokeUtils.d.ts +0 -129
  417. package/dist/esm/arch/svm/SpokeUtils.js +0 -576
  418. package/dist/esm/arch/svm/SpokeUtils.js.map +0 -1
  419. package/dist/esm/arch/svm/constants.d.ts +0 -2
  420. package/dist/esm/arch/svm/constants.js +0 -3
  421. package/dist/esm/arch/svm/constants.js.map +0 -1
  422. package/dist/esm/arch/svm/eventsClient.d.ts +0 -87
  423. package/dist/esm/arch/svm/eventsClient.js +0 -316
  424. package/dist/esm/arch/svm/eventsClient.js.map +0 -1
  425. package/dist/esm/arch/svm/types.js.map +0 -1
  426. package/dist/esm/arch/svm/utils.d.ts +0 -63
  427. package/dist/esm/arch/svm/utils.js +0 -258
  428. package/dist/esm/arch/svm/utils.js.map +0 -1
  429. package/dist/esm/clients/SpokePoolClient/SVMSpokePoolClient.d.ts +0 -66
  430. package/dist/esm/clients/SpokePoolClient/SVMSpokePoolClient.js +0 -225
  431. package/dist/esm/clients/SpokePoolClient/SVMSpokePoolClient.js.map +0 -1
  432. package/dist/esm/clients/mocks/MockSvmCpiEventsClient.d.ts +0 -33
  433. package/dist/esm/clients/mocks/MockSvmCpiEventsClient.js +0 -183
  434. package/dist/esm/clients/mocks/MockSvmCpiEventsClient.js.map +0 -1
  435. package/dist/esm/clients/mocks/MockSvmSpokePoolClient.d.ts +0 -30
  436. package/dist/esm/clients/mocks/MockSvmSpokePoolClient.js +0 -89
  437. package/dist/esm/clients/mocks/MockSvmSpokePoolClient.js.map +0 -1
  438. package/dist/esm/gasPriceOracle/adapters/solana.d.ts +0 -8
  439. package/dist/esm/gasPriceOracle/adapters/solana.js +0 -43
  440. package/dist/esm/gasPriceOracle/adapters/solana.js.map +0 -1
  441. package/dist/esm/providers/mocks/MockCachedSolanaRpcFactory.d.ts +0 -5
  442. package/dist/esm/providers/mocks/MockCachedSolanaRpcFactory.js +0 -19
  443. package/dist/esm/providers/mocks/MockCachedSolanaRpcFactory.js.map +0 -1
  444. package/dist/esm/providers/mocks/MockRateLimitedSolanaRpcFactory.d.ts +0 -5
  445. package/dist/esm/providers/mocks/MockRateLimitedSolanaRpcFactory.js +0 -18
  446. package/dist/esm/providers/mocks/MockRateLimitedSolanaRpcFactory.js.map +0 -1
  447. package/dist/esm/providers/mocks/MockSolanaRpcFactory.d.ts +0 -13
  448. package/dist/esm/providers/mocks/MockSolanaRpcFactory.js +0 -74
  449. package/dist/esm/providers/mocks/MockSolanaRpcFactory.js.map +0 -1
  450. package/dist/esm/providers/mocks/index.d.ts +0 -4
  451. package/dist/esm/providers/mocks/index.js +0 -5
  452. package/dist/esm/providers/mocks/index.js.map +0 -1
  453. package/dist/esm/providers/mocks/mockEthersProvider.js.map +0 -1
  454. package/dist/esm/relayFeeCalculator/chain-queries/svmQuery.d.ts +0 -84
  455. package/dist/esm/relayFeeCalculator/chain-queries/svmQuery.js +0 -216
  456. package/dist/esm/relayFeeCalculator/chain-queries/svmQuery.js.map +0 -1
  457. package/dist/esm/utils/BlockFinder.d.ts +0 -22
  458. package/dist/esm/utils/BlockFinder.js +0 -7
  459. package/dist/esm/utils/BlockFinder.js.map +0 -1
  460. package/dist/types/arch/evm/BlockUtils.d.ts +0 -25
  461. package/dist/types/arch/evm/BlockUtils.d.ts.map +0 -1
  462. package/dist/types/arch/svm/SpokeUtils.d.ts +0 -130
  463. package/dist/types/arch/svm/SpokeUtils.d.ts.map +0 -1
  464. package/dist/types/arch/svm/constants.d.ts +0 -3
  465. package/dist/types/arch/svm/constants.d.ts.map +0 -1
  466. package/dist/types/arch/svm/eventsClient.d.ts +0 -88
  467. package/dist/types/arch/svm/eventsClient.d.ts.map +0 -1
  468. package/dist/types/arch/svm/types.d.ts.map +0 -1
  469. package/dist/types/arch/svm/utils.d.ts +0 -64
  470. package/dist/types/arch/svm/utils.d.ts.map +0 -1
  471. package/dist/types/clients/SpokePoolClient/SVMSpokePoolClient.d.ts +0 -67
  472. package/dist/types/clients/SpokePoolClient/SVMSpokePoolClient.d.ts.map +0 -1
  473. package/dist/types/clients/mocks/MockSvmCpiEventsClient.d.ts +0 -34
  474. package/dist/types/clients/mocks/MockSvmCpiEventsClient.d.ts.map +0 -1
  475. package/dist/types/clients/mocks/MockSvmSpokePoolClient.d.ts +0 -31
  476. package/dist/types/clients/mocks/MockSvmSpokePoolClient.d.ts.map +0 -1
  477. package/dist/types/gasPriceOracle/adapters/solana.d.ts +0 -9
  478. package/dist/types/gasPriceOracle/adapters/solana.d.ts.map +0 -1
  479. package/dist/types/providers/mocks/MockCachedSolanaRpcFactory.d.ts +0 -6
  480. package/dist/types/providers/mocks/MockCachedSolanaRpcFactory.d.ts.map +0 -1
  481. package/dist/types/providers/mocks/MockRateLimitedSolanaRpcFactory.d.ts +0 -6
  482. package/dist/types/providers/mocks/MockRateLimitedSolanaRpcFactory.d.ts.map +0 -1
  483. package/dist/types/providers/mocks/MockSolanaRpcFactory.d.ts +0 -14
  484. package/dist/types/providers/mocks/MockSolanaRpcFactory.d.ts.map +0 -1
  485. package/dist/types/providers/mocks/index.d.ts +0 -5
  486. package/dist/types/providers/mocks/index.d.ts.map +0 -1
  487. package/dist/types/providers/mocks/mockEthersProvider.d.ts.map +0 -1
  488. package/dist/types/relayFeeCalculator/chain-queries/svmQuery.d.ts +0 -85
  489. package/dist/types/relayFeeCalculator/chain-queries/svmQuery.d.ts.map +0 -1
  490. package/dist/types/utils/BlockFinder.d.ts +0 -23
  491. package/dist/types/utils/BlockFinder.d.ts.map +0 -1
  492. package/src/arch/evm/BlockUtils.ts +0 -209
  493. package/src/arch/svm/SpokeUtils.ts +0 -596
  494. package/src/arch/svm/constants.ts +0 -2
  495. package/src/arch/svm/eventsClient.ts +0 -342
  496. package/src/arch/svm/utils.ts +0 -233
  497. package/src/clients/SpokePoolClient/SVMSpokePoolClient.ts +0 -268
  498. package/src/clients/mocks/MockSvmCpiEventsClient.ts +0 -226
  499. package/src/clients/mocks/MockSvmSpokePoolClient.ts +0 -119
  500. package/src/gasPriceOracle/adapters/solana.ts +0 -45
  501. package/src/providers/mocks/MockCachedSolanaRpcFactory.ts +0 -15
  502. package/src/providers/mocks/MockRateLimitedSolanaRpcFactory.ts +0 -14
  503. package/src/providers/mocks/MockSolanaRpcFactory.ts +0 -55
  504. package/src/providers/mocks/index.ts +0 -4
  505. package/src/relayFeeCalculator/chain-queries/svmQuery.ts +0 -225
  506. package/src/utils/BlockFinder.ts +0 -26
  507. /package/dist/cjs/providers/{mocks/mockEthersProvider.d.ts → mockProvider.d.ts} +0 -0
  508. /package/dist/cjs/{arch/svm → svm}/types.js +0 -0
  509. /package/dist/esm/providers/{mocks/mockEthersProvider.d.ts → mockProvider.d.ts} +0 -0
  510. /package/dist/esm/{arch/svm → svm}/types.js +0 -0
@@ -1,250 +0,0 @@
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
@@ -1 +0,0 @@
1
- {"version":3,"file":"BlockUtils.js","sourceRoot":"","sources":["../../../../src/arch/evm/BlockUtils.ts"],"names":[],"mappings":"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"}
@@ -1,129 +0,0 @@
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
- * @param spokePool SpokePool Contract instance.
15
- * @param deposit V3Deopsit instance.
16
- * @param repaymentChainId Optional repaymentChainId (defaults to destinationChainId).
17
- * @returns An Ethers UnsignedTransaction instance.
18
- */
19
- export declare function populateV3Relay(_spokePool: unknown, _deposit: Omit<Deposit, "messageHash">, _relayer: string, _repaymentChainId?: number): Promise<unknown>;
20
- /**
21
- * Retrieves the chain time at a particular slot.
22
- */
23
- export declare function getTimestampForSlot(provider: SVMProvider, slotNumber: number): Promise<number>;
24
- /**
25
- * Returns the current fill deadline buffer.
26
- * @param provider SVM Provider instance
27
- * @param statePda Spoke Pool's State PDA
28
- * @returns fill deadline buffer
29
- */
30
- export declare function getFillDeadline(provider: SVMProvider, statePda: Address): Promise<number>;
31
- /**
32
- * Finds the deposit id at a specific block number.
33
- * @param blockTag The block number to search for the deposit ID at.
34
- * @returns The deposit ID.
35
- */
36
- export declare function getDepositIdAtBlock(_contract: unknown, _blockTag: number): Promise<BigNumber>;
37
- /**
38
- * Finds deposit events within a 2-day window ending at the specified slot.
39
- *
40
- * @remarks
41
- * This implementation uses a slot-limited search approach because Solana PDA state has
42
- * limitations that prevent directly referencing old deposit IDs. Unlike EVM chains where
43
- * we might use binary search across the entire chain history, in Solana we must query within
44
- * a constrained slot range.
45
- *
46
- * The search window is calculated by:
47
- * 1. Using the provided slot (or current confirmed slot if none is provided)
48
- * 2. Looking back 2 days worth of slots from that point
49
- *
50
- * We use a 2-day window because:
51
- * 1. Most valid deposits that need to be processed will be recent
52
- * 2. This covers multiple bundle submission periods
53
- * 3. It balances performance with practical deposit age
54
- *
55
- * @important
56
- * This function may return `undefined` for valid deposit IDs that are older than the search
57
- * window (approximately 2 days before the specified slot). This is an acceptable limitation
58
- * as deposits this old are typically not relevant to current operations.
59
- *
60
- * @param eventClient - SvmCpiEventsClient instance
61
- * @param depositId - The deposit ID to search for
62
- * @param slot - The slot to search up to (defaults to current slot). The search will look
63
- * for deposits between (slot - secondsLookback) and slot.
64
- * @param secondsLookback - The number of seconds to look back for deposits (defaults to 2 days).
65
- * @returns The deposit if found within the slot window, undefined otherwise
66
- */
67
- export declare function findDeposit(eventClient: SvmCpiEventsClient, depositId: BigNumber, slot?: bigint, secondsLookback?: number): Promise<DepositWithBlock | undefined>;
68
- /**
69
- * Resolves the fill status of a deposit at a specific slot or at the current confirmed one.
70
- *
71
- * If no slot is provided, attempts to solve the fill status using the PDA. Otherwise, it is reconstructed from PDA events.
72
- *
73
- * @param programId - The spoke pool program ID.
74
- * @param relayData - Deposit information used to locate the fill status.
75
- * @param destinationChainId - Destination chain ID (must be an SVM chain).
76
- * @param provider - SVM provider instance.
77
- * @param svmEventsClient - SVM events client for querying events.
78
- * @param atHeight - (Optional) Specific slot number to query. Defaults to the latest confirmed slot.
79
- * @returns The fill status for the deposit at the specified or current slot.
80
- */
81
- export declare function relayFillStatus(programId: Address, relayData: RelayData, destinationChainId: number, svmEventsClient: SvmCpiEventsClient, atHeight?: number): Promise<FillStatus>;
82
- /**
83
- * Resolves fill statuses for multiple deposits at a specific or latest confirmed slot,
84
- * using PDAs when possible and falling back to events if needed.
85
- *
86
- * @param programId The spoke pool program ID.
87
- * @param relayData An array of relay data to resolve fill statuses for.
88
- * @param destinationChainId The destination chain ID (must be an SVM chain).
89
- * @param provider SVM Provider instance.
90
- * @param svmEventsClient SVM events client instance for querying events.
91
- * @param atHeight (Optional) The slot number to query at. If omitted, queries the latest confirmed slot.
92
- * @returns An array of fill statuses for the specified deposits at the requested slot (or at the current confirmed slot).
93
- */
94
- export declare function fillStatusArray(programId: Address, relayData: RelayData[], destinationChainId: number, svmEventsClient: SvmCpiEventsClient, atHeight?: number, logger?: Logger): Promise<(FillStatus | undefined)[]>;
95
- /**
96
- * Finds the `FilledRelay` event for a given deposit within the provided slot range.
97
- *
98
- * @param relayData - Deposit information that is used to complete a fill.
99
- * @param destinationChainId - Destination chain ID (must be an SVM chain).
100
- * @param svmEventsClient - SVM events client instance for querying events.
101
- * @param fromSlot - Starting slot to search.
102
- * @param toSlot (Optional) Ending slot to search. If not provided, the current confirmed slot will be used.
103
- * @returns The fill event with block info, or `undefined` if not found.
104
- */
105
- export declare function findFillEvent(relayData: RelayData, destinationChainId: number, svmEventsClient: SvmCpiEventsClient, fromSlot: number, toSlot?: number): Promise<FillWithBlock | undefined>;
106
- /**
107
- * @param spokePool Address (program ID) of the SvmSpoke.
108
- * @param deposit V3Deopsit instance.
109
- * @param relayer Address of the relayer filling the deposit.
110
- * @param repaymentChainId Optional repaymentChainId (defaults to destinationChainId).
111
- * @returns An Ethers UnsignedTransaction instance.
112
- */
113
- 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, []>>;
114
- /**
115
- * @param mint Address of the token corresponding to the account being made.
116
- * @param relayer Address of the relayer filling the deposit.
117
- * @returns An instruction for creating a new token account.
118
- */
119
- export declare function createTokenAccountsInstruction(mint: SvmAddress, relayer: TransactionSigner<string>): SvmSpokeClient.CreateTokenAccountsInstruction;
120
- /**
121
- * @param mint Address of the token corresponding to the account being made.
122
- * @param amount Amount of the token to approve.
123
- * @param relayer Address of the relayer filling the deposit.
124
- * @param spokePool Address (program ID) of the SvmSpoke.
125
- * @returns A token approval instruction.
126
- */
127
- 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, []>>;
128
- export declare function getAssociatedTokenAddress(owner: SvmAddress, mint: SvmAddress, tokenProgramId?: Address<string>): Promise<Address<string>>;
129
- export declare function getRelayDataHash(relayData: RelayData, destinationChainId: number): string;