@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,64 +0,0 @@
1
- import { Idl } from "@coral-xyz/anchor";
2
- import { Address, type TransactionSigner } from "@solana/kit";
3
- import { RelayData } from "../../interfaces";
4
- import { EventName, SVMProvider } from "./types";
5
- /**
6
- * Basic void TransactionSigner type
7
- */
8
- export declare const SolanaVoidSigner: (simulationAddress: string) => TransactionSigner<string>;
9
- /**
10
- * Helper to determine if the current RPC network is devnet.
11
- */
12
- export declare function isDevnet(rpc: SVMProvider): Promise<boolean>;
13
- /**
14
- * Parses event data from a transaction.
15
- */
16
- export declare function parseEventData(eventData: any): any;
17
- /**
18
- * Decodes a raw event according to a supplied IDL.
19
- */
20
- export declare function decodeEvent(idl: Idl, rawEvent: string): {
21
- data: unknown;
22
- name: string;
23
- };
24
- /**
25
- * Gets the event name from a raw name.
26
- */
27
- export declare function getEventName(rawName: string): EventName;
28
- /**
29
- * Unwraps any data structure and converts Address types to strings and Uint8Array to hex or BigInt.
30
- * Recursively processes nested objects and arrays.
31
- */
32
- export declare function unwrapEventData(data: unknown, uint8ArrayKeysAsBigInt?: string[], currentKey?: string): unknown;
33
- /**
34
- * Returns the PDA for the State account.
35
- * @param programId The SpokePool program ID.
36
- * @returns The PDA for the State account.
37
- */
38
- export declare function getStatePda(programId: Address): Promise<Address>;
39
- /**
40
- * Returns the fill status PDA for the given relay data.
41
- * @param programId The SpokePool program ID.
42
- * @param relayData The relay data to get the fill status PDA for.
43
- * @param destinationChainId The destination chain ID.
44
- * @returns The PDA for the fill status.
45
- */
46
- export declare function getFillStatusPda(programId: Address, relayData: RelayData, destinationChainId: number): Promise<Address>;
47
- /**
48
- * Returns the PDA for a route account on SVM Spoke.
49
- * @param originToken The origin token address.
50
- * @param seed The seed for the route account.
51
- * @param routeChainId The route chain ID.
52
- * @returns The PDA for the route account.
53
- */
54
- export declare function getRoutePda(originToken: Address, seed: bigint, routeChainId: bigint): Promise<Address>;
55
- /**
56
- * Returns the PDA for the Event Authority.
57
- * @returns The PDA for the Event Authority.
58
- */
59
- export declare const getEventAuthority: () => Promise<Address<string>>;
60
- /**
61
- * Returns a random SVM address.
62
- */
63
- export declare function getRandomSvmAddress(): Address<string>;
64
- //# sourceMappingURL=utils.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../../src/arch/svm/utils.ts"],"names":[],"mappings":"AAEA,OAAO,EAAuB,GAAG,EAAE,MAAM,mBAAmB,CAAC;AAC7D,OAAO,EACL,OAAO,EAMP,KAAK,iBAAiB,EACvB,MAAM,aAAa,CAAC;AAErB,OAAO,EAAY,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAEvD,OAAO,EAAE,SAAS,EAAiB,WAAW,EAAE,MAAM,SAAS,CAAC;AAEhE;;GAEG;AACH,eAAO,MAAM,gBAAgB,EAAE,CAAC,iBAAiB,EAAE,MAAM,KAAK,iBAAiB,CAAC,MAAM,CASrF,CAAC;AAEF;;GAEG;AACH,wBAAsB,QAAQ,CAAC,GAAG,EAAE,WAAW,GAAG,OAAO,CAAC,OAAO,CAAC,CAGjE;AAED;;GAEG;AAEH,wBAAgB,cAAc,CAAC,SAAS,EAAE,GAAG,GAAG,GAAG,CAsBlD;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,GAAG,EAAE,GAAG,EAAE,QAAQ,EAAE,MAAM,GAAG;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAOvF;AASD;;GAEG;AACH,wBAAgB,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,SAAS,CAGvD;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAC7B,IAAI,EAAE,OAAO,EACb,sBAAsB,GAAE,MAAM,EAAkB,EAChD,UAAU,CAAC,EAAE,MAAM,GAClB,OAAO,CAwDT;AAED;;;;GAIG;AACH,wBAAsB,WAAW,CAAC,SAAS,EAAE,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAQtE;AAED;;;;;;GAMG;AACH,wBAAsB,gBAAgB,CACpC,SAAS,EAAE,OAAO,EAClB,SAAS,EAAE,SAAS,EACpB,kBAAkB,EAAE,MAAM,GACzB,OAAO,CAAC,OAAO,CAAC,CAQlB;AAED;;;;;;GAMG;AACH,wBAAsB,WAAW,CAAC,WAAW,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAQ5G;AAED;;;GAGG;AACH,eAAO,MAAM,iBAAiB,gCAM7B,CAAC;AAEF;;GAEG;AACH,wBAAgB,mBAAmB,oBAIlC"}
@@ -1,67 +0,0 @@
1
- import { Address, Rpc, RpcTransport, SolanaRpcApiFromTransport } from "@solana/kit";
2
- import winston from "winston";
3
- import { SvmCpiEventsClient } from "../../arch/svm";
4
- import { FillStatus, RelayData } from "../../interfaces";
5
- import { BigNumber, DepositSearchResult, EventSearchConfig, MakeOptional } from "../../utils";
6
- import { HubPoolClient } from "../HubPoolClient";
7
- import { SpokePoolClient, SpokePoolUpdate } from "./SpokePoolClient";
8
- /**
9
- * SvmSpokePoolClient is a client for the SVM SpokePool program. It extends the base SpokePoolClient
10
- * and implements the abstract methods required for interacting with an SVM Spoke Pool.
11
- */
12
- export declare class SvmSpokePoolClient extends SpokePoolClient {
13
- svmEventsClient: SvmCpiEventsClient;
14
- protected programId: Address;
15
- protected statePda: Address;
16
- /**
17
- * Protected constructor. Use the async create() method to instantiate.
18
- */
19
- protected constructor(logger: winston.Logger, hubPoolClient: HubPoolClient | null, chainId: number, deploymentSlot: bigint, // Using slot instead of block number for SVM
20
- eventSearchConfig: MakeOptional<EventSearchConfig, "to">, svmEventsClient: SvmCpiEventsClient, programId: Address, statePda: Address);
21
- /**
22
- * Factory method to asynchronously create an instance of SvmSpokePoolClient.
23
- */
24
- static create(logger: winston.Logger, hubPoolClient: HubPoolClient | null, chainId: number, deploymentSlot: bigint, eventSearchConfig: MakeOptional<EventSearchConfig, "to"> | undefined, // Provide default
25
- rpc: Rpc<SolanaRpcApiFromTransport<RpcTransport>>): Promise<SvmSpokePoolClient>;
26
- /**
27
- * Factory method to asynchronously create an instance of SvmSpokePoolClient with an existing event client.
28
- */
29
- static createWithExistingEventClient(logger: winston.Logger, hubPoolClient: HubPoolClient | null, chainId: number, deploymentSlot: bigint, eventSearchConfig: MakeOptional<EventSearchConfig, "to"> | undefined, // Provide default
30
- eventClient: SvmCpiEventsClient): Promise<SvmSpokePoolClient>;
31
- _queryableEventNames(): string[];
32
- /**
33
- * Performs an update to refresh the state of this client by querying SVM events.
34
- */
35
- protected _update(eventsToQuery: string[]): Promise<SpokePoolUpdate>;
36
- /**
37
- * Retrieves the fill deadline buffer fetched from the State PDA.
38
- * @note This function assumes that fill deadline buffer is a constant value in svm environments.
39
- */
40
- getMaxFillDeadlineInRange(_startSlot: number, _endSlot: number): Promise<number>;
41
- /**
42
- * Retrieves the timestamp for a given SVM slot number.
43
- */
44
- getTimestampForBlock(slot: number): Promise<number>;
45
- /**
46
- * Retrieves the timestamp for a given SVM slot number.
47
- * @note This function uses the same underlying function as getTimestampForBlock.
48
- * It is kept for consistency with the EVM SpokePoolClient.
49
- */
50
- getTimeAt(slot: number): Promise<number>;
51
- /**
52
- * Finds a deposit based on its deposit ID on the SVM chain.
53
- */
54
- findDeposit(depositId: BigNumber): Promise<DepositSearchResult>;
55
- /**
56
- * Retrieves the fill status for a given relay data from the SVM chain.
57
- */
58
- relayFillStatus(relayData: RelayData, atHeight?: number, destinationChainId?: number): Promise<FillStatus>;
59
- /**
60
- * Retrieves the fill status for an array of given relay data.
61
- * @param relayData The array relay data to retrieve the fill status for.
62
- * @param atHeight The slot at which to query the fill status.
63
- * @returns The fill status for each of the given relay data.
64
- */
65
- fillStatusArray(relayData: RelayData[], atHeight?: number, destinationChainId?: number): Promise<(FillStatus | undefined)[]>;
66
- }
67
- //# sourceMappingURL=SVMSpokePoolClient.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"SVMSpokePoolClient.d.ts","sourceRoot":"","sources":["../../../../src/clients/SpokePoolClient/SVMSpokePoolClient.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,GAAG,EAAE,YAAY,EAAE,yBAAyB,EAAE,MAAM,aAAa,CAAC;AACpF,OAAO,OAAO,MAAM,SAAS,CAAC;AAC9B,OAAO,EAML,kBAAkB,EAInB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,UAAU,EAAE,SAAS,EAAiB,MAAM,kBAAkB,CAAC;AACxE,OAAO,EACL,SAAS,EACT,mBAAmB,EACnB,iBAAiB,EAGjB,YAAY,EAEb,MAAM,aAAa,CAAC;AAErB,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAmB,eAAe,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAEtF;;;GAGG;AACH,qBAAa,kBAAmB,SAAQ,eAAe;IAU5C,eAAe,EAAE,kBAAkB;IAC1C,SAAS,CAAC,SAAS,EAAE,OAAO;IAC5B,SAAS,CAAC,QAAQ,EAAE,OAAO;IAX7B;;OAEG;IACH,SAAS,aACP,MAAM,EAAE,OAAO,CAAC,MAAM,EACtB,aAAa,EAAE,aAAa,GAAG,IAAI,EACnC,OAAO,EAAE,MAAM,EACf,cAAc,EAAE,MAAM,EAAE,6CAA6C;IACrE,iBAAiB,EAAE,YAAY,CAAC,iBAAiB,EAAE,IAAI,CAAC,EACjD,eAAe,EAAE,kBAAkB,EAChC,SAAS,EAAE,OAAO,EAClB,QAAQ,EAAE,OAAO;IAM7B;;OAEG;WACiB,MAAM,CACxB,MAAM,EAAE,OAAO,CAAC,MAAM,EACtB,aAAa,EAAE,aAAa,GAAG,IAAI,EACnC,OAAO,EAAE,MAAM,EACf,cAAc,EAAE,MAAM,EACtB,iBAAiB,mDAAqE,EAAE,kBAAkB;IAC1G,GAAG,EAAE,GAAG,CAAC,yBAAyB,CAAC,YAAY,CAAC,CAAC,GAChD,OAAO,CAAC,kBAAkB,CAAC;IAgB9B;;OAEG;WACiB,6BAA6B,CAC/C,MAAM,EAAE,OAAO,CAAC,MAAM,EACtB,aAAa,EAAE,aAAa,GAAG,IAAI,EACnC,OAAO,EAAE,MAAM,EACf,cAAc,EAAE,MAAM,EACtB,iBAAiB,mDAAqE,EAAE,kBAAkB;IAC1G,WAAW,EAAE,kBAAkB;IAgB1B,oBAAoB,IAAI,MAAM,EAAE;IAQvC;;OAEG;cACa,OAAO,CAAC,aAAa,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,eAAe,CAAC;IA4E1E;;;OAGG;IACa,yBAAyB,CAAC,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAIhG;;OAEG;IACa,oBAAoB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAInE;;;;OAIG;IACI,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAI/C;;OAEG;IACU,WAAW,CAAC,SAAS,EAAE,SAAS,GAAG,OAAO,CAAC,mBAAmB,CAAC;IA0B5E;;OAEG;IACa,eAAe,CAC7B,SAAS,EAAE,SAAS,EACpB,QAAQ,CAAC,EAAE,MAAM,EACjB,kBAAkB,CAAC,EAAE,MAAM,GAC1B,OAAO,CAAC,UAAU,CAAC;IAKtB;;;;;OAKG;IACI,eAAe,CACpB,SAAS,EAAE,SAAS,EAAE,EACtB,QAAQ,CAAC,EAAE,MAAM,EACjB,kBAAkB,CAAC,EAAE,MAAM,GAC1B,OAAO,CAAC,CAAC,UAAU,GAAG,SAAS,CAAC,EAAE,CAAC;CAKvC"}
@@ -1,34 +0,0 @@
1
- import { Address, UnixTimestamp } from "@solana/kit";
2
- import { SvmSpokeClient } from "@across-protocol/contracts";
3
- import { EventName, EventWithData, SvmCpiEventsClient, SVMProvider } from "../../arch/svm";
4
- export declare class MockSvmCpiEventsClient extends SvmCpiEventsClient {
5
- private events;
6
- private slotHeight;
7
- chainId: number;
8
- minBlockRange: number;
9
- numberOfDeposits: import("@ethersproject/bignumber/lib/bignumber").BigNumber;
10
- constructor(programId?: Address<"JAZWcGrpSWNPTBj8QtJ9UyQqhJCDhG9GJkDeMf5NQBiq">, chainId?: number);
11
- setSlotHeight(slotHeight: bigint): void;
12
- setEvents(events: EventWithData[]): void;
13
- clearEvents(name?: EventName): void;
14
- queryEvents(eventName: EventName, fromSlot?: bigint, toSlot?: bigint): Promise<EventWithData[]>;
15
- getRpc(): SVMProvider;
16
- deposit(deposit: SvmSpokeClient.FundsDeposited & Partial<EventWithData>): EventWithData;
17
- fillRelay(fill: SvmSpokeClient.FilledRelay & Partial<EventWithData>): EventWithData;
18
- requestSlowFill(slowFillRequest: SvmSpokeClient.RequestedSlowFill & Partial<EventWithData>): EventWithData;
19
- protected generateEvent(inputs: {
20
- address: Address;
21
- event: EventName;
22
- args: Record<string, unknown>;
23
- slot?: bigint;
24
- }): {
25
- name: "FilledRelay" | "FundsDeposited" | "EnabledDepositRoute" | "RelayedRootBundle" | "ExecutedRelayerRefundRoot" | "BridgedToHubPool" | "PausedDeposits" | "PausedFills" | "SetXDomainAdmin" | "EmergencyDeletedRootBundle" | "RequestedSlowFill" | "ClaimedRelayerRefund" | "TokensBridged" | "TransferredOwnership";
26
- slot: bigint;
27
- signature: import("@solana/kit").Signature;
28
- program: Address;
29
- data: Record<string, unknown>;
30
- confirmationStatus: string;
31
- blockTime: UnixTimestamp;
32
- };
33
- }
34
- //# sourceMappingURL=MockSvmCpiEventsClient.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"MockSvmCpiEventsClient.d.ts","sourceRoot":"","sources":["../../../../src/clients/mocks/MockSvmCpiEventsClient.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,OAAO,EAAE,aAAa,EAAa,MAAM,aAAa,CAAC;AAEhE,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAI5D,OAAO,EAEL,SAAS,EACT,aAAa,EACb,kBAAkB,EAElB,WAAW,EAEZ,MAAM,gBAAgB,CAAC;AAIxB,qBAAa,sBAAuB,SAAQ,kBAAkB;IAC5D,OAAO,CAAC,MAAM,CAAgF;IAC9F,OAAO,CAAC,UAAU,CAAqB;IAChC,OAAO,EAAE,MAAM,CAAC;IAChB,aAAa,SAAM;IACnB,gBAAgB,6DAAU;gBAErB,SAAS,0DAA2C,EAAE,OAAO,SAAmB;IAKrF,aAAa,CAAC,UAAU,EAAE,MAAM;IAIhC,SAAS,CAAC,MAAM,EAAE,aAAa,EAAE;IASjC,WAAW,CAAC,IAAI,CAAC,EAAE,SAAS;IAQnB,WAAW,CAAC,SAAS,EAAE,SAAS,EAAE,QAAQ,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC;IAQ/F,MAAM,IAAI,WAAW;IAM9B,OAAO,CAAC,OAAO,EAAE,cAAc,CAAC,cAAc,GAAG,OAAO,CAAC,aAAa,CAAC,GAAG,aAAa;IAwCvF,SAAS,CAAC,IAAI,EAAE,cAAc,CAAC,WAAW,GAAG,OAAO,CAAC,aAAa,CAAC,GAAG,aAAa;IA8CnF,eAAe,CAAC,eAAe,EAAE,cAAc,CAAC,iBAAiB,GAAG,OAAO,CAAC,aAAa,CAAC,GAAG,aAAa;IA+BjH,SAAS,CAAC,aAAa,CAAC,MAAM,EAAE;QAC9B,OAAO,EAAE,OAAO,CAAC;QACjB,KAAK,EAAE,SAAS,CAAC;QACjB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QAC9B,IAAI,CAAC,EAAE,MAAM,CAAC;KACf;;;;;;;;;CAkCF"}
@@ -1,31 +0,0 @@
1
- import winston from "winston";
2
- import { SvmSpokeClient } from "@across-protocol/contracts";
3
- import { Address } from "@solana/kit";
4
- import { DepositWithBlock, RelayerRefundExecution, SortableEvent, SlowFillLeaf, Log } from "../../interfaces";
5
- import { MakeOptional, EventSearchConfig } from "../../utils";
6
- import { SpokePoolUpdate, SvmSpokePoolClient } from "../SpokePoolClient";
7
- import { HubPoolClient } from "../HubPoolClient";
8
- import { EventOverrides } from "./MockEvents";
9
- import { AcrossConfigStoreClient } from "../AcrossConfigStoreClient";
10
- import { MockSvmCpiEventsClient } from "./MockSvmCpiEventsClient";
11
- import { EventWithData } from "../../arch/svm";
12
- export declare class MockSvmSpokePoolClient extends SvmSpokePoolClient {
13
- mockEventsClient: MockSvmCpiEventsClient;
14
- private destinationTokenForChainOverride;
15
- constructor(logger: winston.Logger, chainId: number, programId?: Address<"JAZWcGrpSWNPTBj8QtJ9UyQqhJCDhG9GJkDeMf5NQBiq">, deploymentBlock?: number, eventSearchConfig?: MakeOptional<EventSearchConfig, "to">, opts?: {
16
- hubPoolClient: HubPoolClient | null;
17
- });
18
- setConfigStoreClient(configStore?: AcrossConfigStoreClient): void;
19
- setDestinationTokenForChain(chainId: number, token: string): void;
20
- getDestinationTokenForDeposit(deposit: DepositWithBlock): string;
21
- setLatestBlockNumber(blockNumber: number): void;
22
- _update(eventsToQuery: string[]): Promise<SpokePoolUpdate>;
23
- deposit(deposit: SvmSpokeClient.FundsDeposited & Partial<EventWithData>): EventWithData;
24
- fillRelay(fill: SvmSpokeClient.FilledRelay & Partial<EventWithData>): EventWithData;
25
- requestSlowFill(request: SvmSpokeClient.RequestedSlowFill & Partial<EventWithData>): EventWithData;
26
- setTokensBridged(_tokensBridged: SvmSpokeClient.TokensBridged & Partial<EventWithData>): EventWithData;
27
- executeSlowRelayLeaf(_leaf: Omit<SlowFillLeaf, "messageHash">): Log;
28
- executeRelayerRefundLeaf(_refund: RelayerRefundExecution & Partial<SortableEvent>): Log;
29
- setEnableRoute(_originToken: string, _destinationChainId: number, _enabled: boolean, _overrides?: EventOverrides): Log;
30
- }
31
- //# sourceMappingURL=MockSvmSpokePoolClient.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"MockSvmSpokePoolClient.d.ts","sourceRoot":"","sources":["../../../../src/clients/mocks/MockSvmSpokePoolClient.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,SAAS,CAAC;AAC9B,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAC5D,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AACtC,OAAO,EAAE,gBAAgB,EAAE,sBAAsB,EAAE,aAAa,EAAE,YAAY,EAAE,GAAG,EAAE,MAAM,kBAAkB,CAAC;AAC9G,OAAO,EAA0B,YAAY,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AACtF,OAAO,EAAE,eAAe,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AACzE,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,EAAE,uBAAuB,EAAE,MAAM,4BAA4B,CAAC;AACrE,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAClE,OAAO,EAAE,aAAa,EAAsD,MAAM,gBAAgB,CAAC;AAInG,qBAAa,sBAAuB,SAAQ,kBAAkB;IACrD,gBAAgB,EAAE,sBAAsB,CAAC;IAChD,OAAO,CAAC,gCAAgC,CAA8B;gBAGpE,MAAM,EAAE,OAAO,CAAC,MAAM,EACtB,OAAO,EAAE,MAAM,EACf,SAAS,0DAA2C,EACpD,eAAe,GAAE,MAAU,EAC3B,iBAAiB,GAAE,YAAY,CAAC,iBAAiB,EAAE,IAAI,CAA+B,EACtF,IAAI,GAAE;QAAE,aAAa,EAAE,aAAa,GAAG,IAAI,CAAA;KAA4B;IAgBzE,oBAAoB,CAAC,WAAW,CAAC,EAAE,uBAAuB,GAAG,IAAI;IAIjE,2BAA2B,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI;IAIjE,6BAA6B,CAAC,OAAO,EAAE,gBAAgB,GAAG,MAAM;IAIhE,oBAAoB,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI;IAIzC,OAAO,CAAC,aAAa,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,eAAe,CAAC;IA8BhE,OAAO,CAAC,OAAO,EAAE,cAAc,CAAC,cAAc,GAAG,OAAO,CAAC,aAAa,CAAC,GAAG,aAAa;IAIvF,SAAS,CAAC,IAAI,EAAE,cAAc,CAAC,WAAW,GAAG,OAAO,CAAC,aAAa,CAAC,GAAG,aAAa;IAInF,eAAe,CAAC,OAAO,EAAE,cAAc,CAAC,iBAAiB,GAAG,OAAO,CAAC,aAAa,CAAC,GAAG,aAAa;IAIlG,gBAAgB,CAAC,cAAc,EAAE,cAAc,CAAC,aAAa,GAAG,OAAO,CAAC,aAAa,CAAC,GAAG,aAAa;IAItG,oBAAoB,CAAC,KAAK,EAAE,IAAI,CAAC,YAAY,EAAE,aAAa,CAAC,GAAG,GAAG;IAInE,wBAAwB,CAAC,OAAO,EAAE,sBAAsB,GAAG,OAAO,CAAC,aAAa,CAAC,GAAG,GAAG;IAIvF,cAAc,CACZ,YAAY,EAAE,MAAM,EACpB,mBAAmB,EAAE,MAAM,EAC3B,QAAQ,EAAE,OAAO,EACjB,UAAU,GAAE,cAAmB,GAC9B,GAAG;CAGP"}
@@ -1,9 +0,0 @@
1
- import { SVMProvider } from "../../arch/svm";
2
- import { GasPriceEstimate } from "../types";
3
- import { GasPriceEstimateOptions } from "../oracle";
4
- /**
5
- * @notice Returns result of getFeeForMessage and getRecentPrioritizationFees RPC calls.
6
- * @returns GasPriceEstimate
7
- */
8
- export declare function messageFee(provider: SVMProvider, opts: GasPriceEstimateOptions): Promise<GasPriceEstimate>;
9
- //# sourceMappingURL=solana.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"solana.d.ts","sourceRoot":"","sources":["../../../../src/gasPriceOracle/adapters/solana.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAE7C,OAAO,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAC5C,OAAO,EAAE,uBAAuB,EAAE,MAAM,WAAW,CAAC;AAGpD;;;GAGG;AACH,wBAAsB,UAAU,CAAC,QAAQ,EAAE,WAAW,EAAE,IAAI,EAAE,uBAAuB,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAkChH"}
@@ -1,6 +0,0 @@
1
- import { CachedSolanaRpcFactory } from "..";
2
- import { MockRateLimitedSolanaRpcFactory } from "./MockRateLimitedSolanaRpcFactory";
3
- export declare class MockCachedSolanaRpcFactory extends CachedSolanaRpcFactory {
4
- constructor(mockRateLimitedSolanaRpcFactory: MockRateLimitedSolanaRpcFactory, ...cachedConstructorParams: ConstructorParameters<typeof CachedSolanaRpcFactory>);
5
- }
6
- //# sourceMappingURL=MockCachedSolanaRpcFactory.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"MockCachedSolanaRpcFactory.d.ts","sourceRoot":"","sources":["../../../../src/providers/mocks/MockCachedSolanaRpcFactory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,IAAI,CAAC;AAC5C,OAAO,EAAE,+BAA+B,EAAE,MAAM,mCAAmC,CAAC;AAGpF,qBAAa,0BAA2B,SAAQ,sBAAsB;gBAElE,+BAA+B,EAAE,+BAA+B,EAChE,GAAG,uBAAuB,EAAE,qBAAqB,CAAC,OAAO,sBAAsB,CAAC;CAOnF"}
@@ -1,6 +0,0 @@
1
- import { RateLimitedSolanaRpcFactory } from "..";
2
- import { MockSolanaRpcFactory } from "./MockSolanaRpcFactory";
3
- export declare class MockRateLimitedSolanaRpcFactory extends RateLimitedSolanaRpcFactory {
4
- constructor(mockSolanaRpcFactory: MockSolanaRpcFactory, ...rateLimitedConstructorParams: ConstructorParameters<typeof RateLimitedSolanaRpcFactory>);
5
- }
6
- //# sourceMappingURL=MockRateLimitedSolanaRpcFactory.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"MockRateLimitedSolanaRpcFactory.d.ts","sourceRoot":"","sources":["../../../../src/providers/mocks/MockRateLimitedSolanaRpcFactory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,2BAA2B,EAAE,MAAM,IAAI,CAAC;AACjD,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAG9D,qBAAa,+BAAgC,SAAQ,2BAA2B;gBAE5E,oBAAoB,EAAE,oBAAoB,EAC1C,GAAG,4BAA4B,EAAE,qBAAqB,CAAC,OAAO,2BAA2B,CAAC;CAM7F"}
@@ -1,14 +0,0 @@
1
- import { RpcTransport } from "@solana/kit";
2
- import { SolanaClusterRpcFactory } from "../solana";
3
- export declare class MockSolanaRpcFactory extends SolanaClusterRpcFactory {
4
- private responseTime;
5
- private responses;
6
- constructor(...clusterConstructorParams: ConstructorParameters<typeof SolanaClusterRpcFactory>);
7
- createTransport(): RpcTransport;
8
- setResult(method: string, params: unknown[], result: unknown): void;
9
- setError(method: string, params: unknown[], error: unknown): void;
10
- setThrow(method: string, params: unknown[], throwError: string): void;
11
- setResponseTime(responseTime: number): void;
12
- private createMockRpcTransport;
13
- }
14
- //# sourceMappingURL=MockSolanaRpcFactory.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"MockSolanaRpcFactory.d.ts","sourceRoot":"","sources":["../../../../src/providers/mocks/MockSolanaRpcFactory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAe,YAAY,EAAE,MAAM,aAAa,CAAC;AACxD,OAAO,EAAE,uBAAuB,EAAE,MAAM,WAAW,CAAC;AAKpD,qBAAa,oBAAqB,SAAQ,uBAAuB;IAC/D,OAAO,CAAC,YAAY,CAAc;IAClC,OAAO,CAAC,SAAS,CAA0C;gBAE/C,GAAG,wBAAwB,EAAE,qBAAqB,CAAC,OAAO,uBAAuB,CAAC;IAIvF,eAAe,IAAI,YAAY;IAM/B,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,MAAM,EAAE,OAAO;IAK5D,QAAQ,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,KAAK,EAAE,OAAO;IAK1D,QAAQ,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,UAAU,EAAE,MAAM;IAK9D,eAAe,CAAC,YAAY,EAAE,MAAM;IAI3C,OAAO,CAAC,sBAAsB;CAe/B"}
@@ -1,5 +0,0 @@
1
- export * from "./mockEthersProvider";
2
- export * from "./MockCachedSolanaRpcFactory";
3
- export * from "./MockRateLimitedSolanaRpcFactory";
4
- export * from "./MockSolanaRpcFactory";
5
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/providers/mocks/index.ts"],"names":[],"mappings":"AAAA,cAAc,sBAAsB,CAAC;AACrC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,mCAAmC,CAAC;AAClD,cAAc,wBAAwB,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"mockEthersProvider.d.ts","sourceRoot":"","sources":["../../../../src/providers/mocks/mockEthersProvider.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AAC9C,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,mBAAmB,EAAE,MAAM,kCAAkC,CAAC;AAGjG;;;GAGG;AACH,qBAAa,cAAe,SAAQ,SAAS,CAAC,qBAAqB;IAI/D,QAAQ,CAAC,oBAAoB,EAAE,SAAS;IACxC,QAAQ,CAAC,uBAAuB,EAAE,SAAS;IAC3C,QAAQ,CAAC,cAAc;IALzB,OAAO,CAAC,YAAY,CAA+C;gBAGxD,oBAAoB,EAAE,SAAS,EAC/B,uBAAuB,EAAE,SAAS,EAClC,cAAc,SAAI;IAK7B,QAAQ,CAAC,oBAAoB,EAAE,QAAQ,GAAG,MAAM,GAAG,OAAO,CAAC,QAAQ,GAAG,MAAM,CAAC,GAAG,OAAO,CAAC,KAAK,CAAC;IAoB9F,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC,GAAG,CAAC;IASvD,UAAU,IAAI,OAAO,CAAC,OAAO,CAAC;IAU9B,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,mBAAmB,CAAC;IAI1D,WAAW,IAAI,OAAO,CAAC,SAAS,CAAC;IAIjC,UAAU,IAAI,OAAO,CAAC;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC;IAOxD,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,mBAAmB;CAG/D"}
@@ -1,85 +0,0 @@
1
- import { SymbolMappingType } from "./";
2
- import { Deposit } from "../../interfaces";
3
- import { BigNumberish, TransactionCostEstimate, BigNumber, SvmAddress } from "../../utils";
4
- import { Logger, QueryInterface } from "../relayFeeCalculator";
5
- import { SVMProvider } from "../../arch/svm";
6
- import { IInstruction } from "@solana/kit";
7
- /**
8
- * A special QueryBase implementation for SVM used for querying gas costs, token prices, and decimals of various tokens
9
- * on Solana.
10
- */
11
- export declare class SvmQuery implements QueryInterface {
12
- readonly provider: SVMProvider;
13
- readonly symbolMapping: SymbolMappingType;
14
- readonly spokePoolAddress: SvmAddress;
15
- readonly simulatedRelayerAddress: SvmAddress;
16
- readonly logger: Logger;
17
- readonly coingeckoProApiKey?: string | undefined;
18
- readonly fixedGasPrice?: BigNumberish | undefined;
19
- readonly coingeckoBaseCurrency: string;
20
- protected computeUnitEstimator: (transactionMessage: import("@solana/kit").CompilableTransactionMessage | (import("@solana/kit").ITransactionMessageWithFeePayer<string> & import("@solana/kit").TransactionMessage), config?: Omit<Readonly<{
21
- abortSignal?: AbortSignal | undefined;
22
- commitment?: import("@solana/kit").Commitment | undefined;
23
- minContextSlot?: bigint | undefined;
24
- rpc: import("@solana/kit").Rpc<import("@solana/kit").SimulateTransactionApi>;
25
- transactionMessage: import("@solana/kit").CompilableTransactionMessage | (import("@solana/kit").ITransactionMessageWithFeePayer<string> & import("@solana/kit").TransactionMessage);
26
- }>, "rpc" | "transactionMessage"> | undefined) => Promise<number>;
27
- /**
28
- * Instantiates a SvmQuery instance
29
- * @param provider A valid solana/kit rpc client.
30
- * @param symbolMapping A mapping to valid ERC20 tokens and their respective characteristics
31
- * @param spokePoolAddress The valid address of the Spoke Pool deployment
32
- * @param simulatedRelayerAddress The address that these queries will reference as the sender. Note: This address must be approved for USDC
33
- * @param logger A logging utility to report logs
34
- * @param coingeckoProApiKey An optional CoinGecko API key that links to a PRO account
35
- * @param fixedGasPrice Overrides the gas price with a fixed value. Note: primarily used for the Boba blockchain
36
- * @param coingeckoBaseCurrency The basis currency that CoinGecko will use to resolve pricing
37
- */
38
- constructor(provider: SVMProvider, symbolMapping: SymbolMappingType, spokePoolAddress: SvmAddress, simulatedRelayerAddress: SvmAddress, logger: Logger, coingeckoProApiKey?: string | undefined, fixedGasPrice?: BigNumberish | undefined, coingeckoBaseCurrency?: string);
39
- /**
40
- * Retrieves the current gas costs of performing a fillRelay contract at the referenced SpokePool.
41
- * @param deposit V3 deposit instance.
42
- * @param relayerAddress Relayer address to simulate with.
43
- * @param options
44
- * @param options.gasPrice Optional gas price to use for the simulation.
45
- * @param options.gasUnits Optional gas units to use for the simulation.
46
- * @param options.transport Optional transport object for custom gas price retrieval.
47
- * @returns The gas estimate for this function call (multiplied with the optional buffer).
48
- */
49
- getGasCosts(deposit: Omit<Deposit, "messageHash">, _relayer?: string, options?: Partial<{
50
- gasPrice: BigNumberish;
51
- gasUnits: BigNumberish;
52
- baseFeeMultiplier: BigNumber;
53
- priorityFeeMultiplier: BigNumber;
54
- }>): Promise<TransactionCostEstimate>;
55
- /**
56
- * @notice Return the gas cost of a simulated transaction
57
- * @param fillRelayTx FillRelay transaction
58
- * @param relayer SVM address of the relayer
59
- * @returns Estimated gas cost in compute units
60
- */
61
- getNativeGasCost(deposit: Omit<Deposit, "messageHash">, _relayer?: string): Promise<BigNumber>;
62
- /**
63
- * @notice Return the fillRelay transaction for a given deposit
64
- * @param deposit
65
- * @param relayer SVM address of the relayer
66
- * @returns FillRelay transaction
67
- */
68
- getFillRelayTx(deposit: Omit<Deposit, "messageHash">, _relayer?: string): Promise<import("@solana/kit").TransactionMessageWithBlockhashLifetime & import("@solana/kit").ITransactionMessageWithFeePayer<string> & Omit<Readonly<{
69
- instructions: readonly IInstruction<string, readonly (import("@solana/kit").IAccountMeta<string> | import("@solana/kit").IAccountLookupMeta<string, string>)[]>[];
70
- version: 0;
71
- }>, "feePayer">>;
72
- /**
73
- * Retrieves the current price of a token
74
- * @param tokenSymbol A valid [CoinGecko-ID](https://api.coingecko.com/api/v3/coins/list)
75
- * @returns The resolved token price within the specified coingeckoBaseCurrency
76
- */
77
- getTokenPrice(tokenSymbol: string): Promise<number>;
78
- /**
79
- * Resolves the number of decimal places a token can have
80
- * @param tokenSymbol A valid Across-Enabled Token ID
81
- * @returns The number of decimals of precision for the corresponding tokenSymbol
82
- */
83
- getTokenDecimals(tokenSymbol: string): number;
84
- }
85
- //# sourceMappingURL=svmQuery.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"svmQuery.d.ts","sourceRoot":"","sources":["../../../../src/relayFeeCalculator/chain-queries/svmQuery.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,iBAAiB,EAAE,MAAM,IAAI,CAAC;AAEvC,OAAO,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAE3C,OAAO,EACL,YAAY,EACZ,uBAAuB,EACvB,SAAS,EACT,UAAU,EAIX,MAAM,aAAa,CAAC;AACrB,OAAO,EAAqC,MAAM,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAClG,OAAO,EAIL,WAAW,EAGZ,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAOL,YAAY,EACb,MAAM,aAAa,CAAC;AAIrB;;;GAGG;AACH,qBAAa,QAAS,YAAW,cAAc;IAe3C,QAAQ,CAAC,QAAQ,EAAE,WAAW;IAC9B,QAAQ,CAAC,aAAa,EAAE,iBAAiB;IACzC,QAAQ,CAAC,gBAAgB,EAAE,UAAU;IACrC,QAAQ,CAAC,uBAAuB,EAAE,UAAU;IAC5C,QAAQ,CAAC,MAAM,EAAE,MAAM;IACvB,QAAQ,CAAC,kBAAkB,CAAC;IAC5B,QAAQ,CAAC,aAAa,CAAC;IACvB,QAAQ,CAAC,qBAAqB,EAAE,MAAM;IArBxC,SAAS,CAAC,oBAAoB;;;;;;sEAAC;IAE/B;;;;;;;;;;OAUG;gBAEQ,QAAQ,EAAE,WAAW,EACrB,aAAa,EAAE,iBAAiB,EAChC,gBAAgB,EAAE,UAAU,EAC5B,uBAAuB,EAAE,UAAU,EACnC,MAAM,EAAE,MAAM,EACd,kBAAkB,CAAC,oBAAQ,EAC3B,aAAa,CAAC,0BAAc,EAC5B,qBAAqB,GAAE,MAAc;IAOhD;;;;;;;;;OASG;IACG,WAAW,CACf,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,aAAa,CAAC,EACrC,QAAQ,SAAgE,EACxE,OAAO,GAAE,OAAO,CAAC;QACf,QAAQ,EAAE,YAAY,CAAC;QACvB,QAAQ,EAAE,YAAY,CAAC;QACvB,iBAAiB,EAAE,SAAS,CAAC;QAC7B,qBAAqB,EAAE,SAAS,CAAC;KAClC,CAAM,GACN,OAAO,CAAC,uBAAuB,CAAC;IA4BnC;;;;;OAKG;IACG,gBAAgB,CACpB,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,aAAa,CAAC,EACrC,QAAQ,SAAgE,GACvE,OAAO,CAAC,SAAS,CAAC;IAMrB;;;;;OAKG;IACG,cAAc,CAClB,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,aAAa,CAAC,EACrC,QAAQ,SAAgE;;;;IA6D1E;;;;OAIG;IACG,aAAa,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAUzD;;;;OAIG;IACH,gBAAgB,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM;CAI9C"}
@@ -1,23 +0,0 @@
1
- export type BlockFinderOpts = {
2
- highBlock?: number;
3
- highBlockOffset?: number;
4
- blockRange?: number;
5
- };
6
- export type BlockTimeAverage = {
7
- average: number;
8
- blockRange: number;
9
- timestamp: number;
10
- };
11
- export interface Block {
12
- hash: string;
13
- number: number;
14
- timestamp: number;
15
- }
16
- export type BlockFinderHints = {
17
- lowBlock?: number;
18
- highBlock?: number;
19
- };
20
- export declare abstract class BlockFinder<TBlock extends Block> {
21
- abstract getBlockForTimestamp(timestamp: number | string, hints: BlockFinderHints): Promise<TBlock>;
22
- }
23
- //# sourceMappingURL=BlockFinder.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"BlockFinder.d.ts","sourceRoot":"","sources":["../../../src/utils/BlockFinder.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,eAAe,GAAG;IAC5B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB,CAAC;AAEF,MAAM,MAAM,gBAAgB,GAAG;IAC7B,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF,MAAM,WAAW,KAAK;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,MAAM,gBAAgB,GAAG;IAC7B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF,8BAAsB,WAAW,CAAC,MAAM,SAAS,KAAK;IACpD,QAAQ,CAAC,oBAAoB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,EAAE,KAAK,EAAE,gBAAgB,GAAG,OAAO,CAAC,MAAM,CAAC;CACpG"}
@@ -1,209 +0,0 @@
1
- import assert from "assert";
2
- import { Provider, Block as EthersBlock } from "@ethersproject/abstract-provider";
3
- import { clamp, sortedIndexBy } from "lodash";
4
- import { chainIsOPStack, getNetworkName } from "../../utils/NetworkUtils";
5
- import { isDefined } from "../../utils/TypeGuards";
6
- import {
7
- BlockFinder,
8
- type Block,
9
- type BlockFinderOpts as Opts,
10
- type BlockTimeAverage,
11
- type BlockFinderHints,
12
- } from "../../utils/BlockFinder";
13
- import { getCurrentTime } from "../../utils/TimeUtils";
14
- import { CHAIN_IDs } from "../../constants";
15
-
16
- // Extension of the EthersBlock type which implements `Block`.
17
- interface EVMBlock extends Block, EthersBlock {}
18
-
19
- // Archive requests typically commence at 128 blocks past the head of the chain.
20
- // Round down to 120 blocks to avoid slipping into archive territory.
21
- const defaultBlockRange = 120;
22
-
23
- // Default offset to the high block number. This is subtracted from the block number of the high block
24
- // when it is queried from the network, rather than having been specified by the caller. This is useful
25
- // since the supplied Provider instance may be backed by multiple RPC providers, which can lead to some
26
- // providers running slower than others and taking time to synchronise on the latest block.
27
- const defaultHighBlockOffset = 10;
28
-
29
- // Retain computations for 15 minutes.
30
- const cacheTTL = 60 * 15;
31
- const now = getCurrentTime(); // Seed the cache with initial values.
32
- const blockTimes: { [chainId: number]: BlockTimeAverage } = {
33
- [CHAIN_IDs.INK]: { average: 1, timestamp: now, blockRange: 1 },
34
- [CHAIN_IDs.LINEA]: { average: 3, timestamp: now, blockRange: 1 },
35
- [CHAIN_IDs.MAINNET]: { average: 12.5, timestamp: now, blockRange: 1 },
36
- [CHAIN_IDs.OPTIMISM]: { average: 2, timestamp: now, blockRange: 1 },
37
- [CHAIN_IDs.UNICHAIN]: { average: 1, timestamp: now, blockRange: 1 },
38
- };
39
-
40
- /**
41
- * @description Compute the average block time over a block range.
42
- * @returns Average number of seconds per block.
43
- */
44
- export async function averageBlockTime(
45
- provider: Provider,
46
- { highBlock, highBlockOffset, blockRange }: Opts = {}
47
- ): Promise<Pick<BlockTimeAverage, "average" | "blockRange">> {
48
- // Does not block for StaticJsonRpcProvider.
49
- const { chainId } = await provider.getNetwork();
50
-
51
- // OP stack chains inherit Optimism block times, but can be overridden.
52
- const cache = blockTimes[chainId] ?? (chainIsOPStack(chainId) ? blockTimes[CHAIN_IDs.OPTIMISM] : undefined);
53
-
54
- const now = getCurrentTime();
55
- if (isDefined(cache) && now < cache.timestamp + cacheTTL) {
56
- return { average: cache.average, blockRange: cache.blockRange };
57
- }
58
-
59
- // If the caller was not specific about highBlock, resolve it via the RPC provider. Subtract an offset
60
- // to account for various RPC provider sync issues that might occur when querting the latest block.
61
- if (!isDefined(highBlock)) {
62
- highBlock = await provider.getBlockNumber();
63
- highBlock -= highBlockOffset ?? defaultHighBlockOffset;
64
- }
65
- blockRange ??= defaultBlockRange;
66
-
67
- const earliestBlockNumber = highBlock - blockRange;
68
- const [firstBlock, lastBlock] = await Promise.all([
69
- provider.getBlock(earliestBlockNumber),
70
- provider.getBlock(highBlock),
71
- ]);
72
- [firstBlock, lastBlock].forEach((block: Block | undefined) => {
73
- if (!isDefined(block?.timestamp)) {
74
- const network = getNetworkName(chainId);
75
- const blockNumber = block === firstBlock ? earliestBlockNumber : highBlock;
76
- throw new Error(`BlockFinder: Failed to fetch block ${blockNumber} on ${network}`);
77
- }
78
- });
79
-
80
- const average = (lastBlock.timestamp - firstBlock.timestamp) / blockRange;
81
- blockTimes[chainId] = { timestamp: now, average, blockRange };
82
-
83
- return { average, blockRange };
84
- }
85
-
86
- async function estimateBlocksElapsed(seconds: number, cushionPercentage = 0.0, provider: Provider): Promise<number> {
87
- const cushionMultiplier = cushionPercentage + 1.0;
88
- const { average } = await averageBlockTime(provider);
89
- return Math.floor((seconds * cushionMultiplier) / average);
90
- }
91
-
92
- export class EVMBlockFinder extends BlockFinder<EVMBlock> {
93
- constructor(
94
- private readonly provider: Provider,
95
- private readonly blocks: EVMBlock[] = []
96
- ) {
97
- super();
98
- }
99
-
100
- /**
101
- * @notice Gets the latest block whose timestamp is <= the provided timestamp.
102
- * @param number Timestamp timestamp to search.
103
- * @param hints Optional low and high block to bound the search space.
104
- */
105
- public async getBlockForTimestamp(timestamp: number | string, hints: BlockFinderHints = {}): Promise<EVMBlock> {
106
- timestamp = Number(timestamp);
107
- assert(timestamp !== undefined && timestamp !== null, "timestamp must be provided");
108
- // If the last block we have stored is too early, grab the latest block.
109
- if (this.blocks.length === 0 || this.blocks[this.blocks.length - 1].timestamp < timestamp) {
110
- const block = await this.getLatestBlock();
111
- if (timestamp >= block.timestamp) return block;
112
- }
113
-
114
- // Prime the BlockFinder cache with any supplied hints.
115
- // If the hint is accurate, then this will bypass the subsequent estimation.
116
- await Promise.all(
117
- Object.values(hints)
118
- .filter((blockNumber) => isDefined(blockNumber))
119
- .map((blockNumber) => this.getBlock(blockNumber))
120
- );
121
-
122
- // Check the first block. If it's greater than our timestamp, we need to find an earlier block.
123
- if (this.blocks[0].timestamp > timestamp) {
124
- const initialBlock = this.blocks[0];
125
- // We use a 2x cushion to reduce the number of iterations in the following loop and increase the chance
126
- // that the first block we find sets a floor for the target timestamp. The loop converges on the correct block
127
- // slower than the following incremental search performed by `findBlock`, so we want to minimize the number of
128
- // loop iterations in favor of searching more blocks over the `findBlock` search.
129
- const cushion = 1;
130
- const incrementDistance = Math.max(
131
- // Ensure the increment block distance is _at least_ a single block to prevent an infinite loop.
132
- await estimateBlocksElapsed(initialBlock.timestamp - timestamp, cushion, this.provider),
133
- 1
134
- );
135
-
136
- // Search backwards by a constant increment until we find a block before the timestamp or hit block 0.
137
- for (let multiplier = 1; ; multiplier++) {
138
- const distance = multiplier * incrementDistance;
139
- const blockNumber = Math.max(0, initialBlock.number - distance);
140
- const block = await this.getBlock(blockNumber);
141
- if (block.timestamp <= timestamp) break; // Found an earlier block.
142
- assert(blockNumber > 0, "timestamp is before block 0"); // Block 0 was not earlier than this timestamp. The row.
143
- }
144
- }
145
-
146
- // Find the index where the block would be inserted and use that as the end block (since it is >= the timestamp).
147
- const index = sortedIndexBy(this.blocks, { timestamp } as Block, "timestamp");
148
- return this.findBlock(this.blocks[index - 1], this.blocks[index], timestamp);
149
- }
150
-
151
- // Grabs the most recent block and caches it.
152
- private async getLatestBlock() {
153
- const block = await this.provider.getBlock("latest");
154
- const index = sortedIndexBy(this.blocks, block, "number");
155
- if (this.blocks[index]?.number !== block.number) this.blocks.splice(index, 0, block);
156
- return this.blocks[index];
157
- }
158
-
159
- // Grabs the block for a particular number and caches it.
160
- private async getBlock(number: number) {
161
- let index = sortedIndexBy(this.blocks, { number } as Block, "number");
162
- if (this.blocks[index]?.number === number) return this.blocks[index]; // Return early if block already exists.
163
- const block = await this.provider.getBlock(number);
164
-
165
- // Recompute the index after the async call since the state of this.blocks could have changed!
166
- index = sortedIndexBy(this.blocks, { number } as Block, "number");
167
-
168
- // Rerun this check to avoid duplicate insertion.
169
- if (this.blocks[index]?.number === number) return this.blocks[index];
170
- this.blocks.splice(index, 0, block); // A simple insert at index.
171
- return block;
172
- }
173
-
174
- // Return the latest block, between startBlock and endBlock, whose timestamp is <= timestamp.
175
- // Effectively, this is an interpolation search algorithm to minimize block requests.
176
- // Note: startBlock and endBlock _must_ be different blocks.
177
- private async findBlock(_startBlock: EVMBlock, _endBlock: EVMBlock, timestamp: number): Promise<EVMBlock> {
178
- const [startBlock, endBlock] = [_startBlock, _endBlock];
179
- // In the case of equality, the endBlock is expected to be passed as the one whose timestamp === the requested
180
- // timestamp.
181
- if (endBlock.timestamp === timestamp) return endBlock;
182
-
183
- // If there's no equality, but the blocks are adjacent, return the startBlock, since we want the returned block's
184
- // timestamp to be <= the requested timestamp.
185
- if (endBlock.number === startBlock.number + 1) return startBlock;
186
-
187
- assert(endBlock.number !== startBlock.number, "startBlock cannot equal endBlock");
188
- assert(
189
- timestamp < endBlock.timestamp && timestamp > startBlock.timestamp,
190
- "timestamp not in between start and end blocks"
191
- );
192
-
193
- // Interpolating the timestamp we're searching for to block numbers.
194
- const totalTimeDifference = endBlock.timestamp - startBlock.timestamp;
195
- const totalBlockDistance = endBlock.number - startBlock.number;
196
- const blockPercentile = (timestamp - startBlock.timestamp) / totalTimeDifference;
197
- const estimatedBlock = startBlock.number + Math.round(blockPercentile * totalBlockDistance);
198
-
199
- // Clamp ensures the estimated block is strictly greater than the start block and strictly less than the end block.
200
- const newBlock = await this.getBlock(clamp(estimatedBlock, startBlock.number + 1, endBlock.number - 1));
201
-
202
- // Depending on whether the new block is below or above the timestamp, narrow the search space accordingly.
203
- if (newBlock.timestamp < timestamp) {
204
- return this.findBlock(newBlock, endBlock, timestamp);
205
- } else {
206
- return this.findBlock(startBlock, newBlock, timestamp);
207
- }
208
- }
209
- }