@across-protocol/sdk 4.1.63 → 4.2.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 (519) hide show
  1. package/dist/cjs/arch/evm/BlockUtils.d.ts +15 -0
  2. package/dist/cjs/arch/evm/BlockUtils.js +218 -0
  3. package/dist/cjs/arch/evm/BlockUtils.js.map +1 -0
  4. package/dist/cjs/arch/evm/SpokeUtils.d.ts +1 -1
  5. package/dist/cjs/arch/evm/SpokeUtils.js +6 -5
  6. package/dist/cjs/arch/evm/SpokeUtils.js.map +1 -1
  7. package/dist/cjs/arch/evm/index.d.ts +1 -0
  8. package/dist/cjs/arch/evm/index.js +1 -0
  9. package/dist/cjs/arch/evm/index.js.map +1 -1
  10. package/dist/cjs/arch/svm/SpokeUtils.d.ts +20 -0
  11. package/dist/cjs/arch/svm/SpokeUtils.js +449 -0
  12. package/dist/cjs/arch/svm/SpokeUtils.js.map +1 -0
  13. package/dist/cjs/arch/svm/constants.d.ts +2 -0
  14. package/dist/cjs/arch/svm/constants.js +7 -0
  15. package/dist/cjs/arch/svm/constants.js.map +1 -0
  16. package/dist/cjs/arch/svm/eventsClient.d.ts +26 -0
  17. package/dist/cjs/arch/svm/eventsClient.js +253 -0
  18. package/dist/cjs/arch/svm/eventsClient.js.map +1 -0
  19. package/dist/cjs/arch/svm/index.d.ts +5 -1
  20. package/dist/cjs/arch/svm/index.js +6 -2
  21. package/dist/cjs/arch/svm/index.js.map +1 -1
  22. package/dist/cjs/{svm → arch/svm}/types.d.ts +9 -4
  23. package/dist/cjs/arch/svm/types.js.map +1 -0
  24. package/dist/cjs/arch/svm/utils.d.ts +18 -0
  25. package/dist/cjs/arch/svm/utils.js +212 -0
  26. package/dist/cjs/arch/svm/utils.js.map +1 -0
  27. package/dist/cjs/clients/AcrossConfigStoreClient/AcrossConfigStoreClient.d.ts +1 -1
  28. package/dist/cjs/clients/AcrossConfigStoreClient/AcrossConfigStoreClient.js +7 -7
  29. package/dist/cjs/clients/AcrossConfigStoreClient/AcrossConfigStoreClient.js.map +1 -1
  30. package/dist/cjs/clients/BaseAbstractClient.d.ts +6 -5
  31. package/dist/cjs/clients/BaseAbstractClient.js +30 -19
  32. package/dist/cjs/clients/BaseAbstractClient.js.map +1 -1
  33. package/dist/cjs/clients/BundleDataClient/BundleDataClient.js +15 -11
  34. package/dist/cjs/clients/BundleDataClient/BundleDataClient.js.map +1 -1
  35. package/dist/cjs/clients/BundleDataClient/utils/PoolRebalanceUtils.js +1 -1
  36. package/dist/cjs/clients/BundleDataClient/utils/PoolRebalanceUtils.js.map +1 -1
  37. package/dist/cjs/clients/BundleDataClient/utils/SuperstructUtils.d.ts +114 -114
  38. package/dist/cjs/clients/HubPoolClient.d.ts +4 -3
  39. package/dist/cjs/clients/HubPoolClient.js +18 -17
  40. package/dist/cjs/clients/HubPoolClient.js.map +1 -1
  41. package/dist/cjs/clients/SpokePoolClient/EVMSpokePoolClient.d.ts +3 -3
  42. package/dist/cjs/clients/SpokePoolClient/EVMSpokePoolClient.js +23 -20
  43. package/dist/cjs/clients/SpokePoolClient/EVMSpokePoolClient.js.map +1 -1
  44. package/dist/cjs/clients/SpokePoolClient/SVMSpokePoolClient.d.ts +23 -0
  45. package/dist/cjs/clients/SpokePoolClient/SVMSpokePoolClient.js +172 -0
  46. package/dist/cjs/clients/SpokePoolClient/SVMSpokePoolClient.js.map +1 -0
  47. package/dist/cjs/clients/SpokePoolClient/SpokePoolClient.d.ts +5 -5
  48. package/dist/cjs/clients/SpokePoolClient/SpokePoolClient.js +54 -57
  49. package/dist/cjs/clients/SpokePoolClient/SpokePoolClient.js.map +1 -1
  50. package/dist/cjs/clients/SpokePoolClient/index.d.ts +3 -0
  51. package/dist/cjs/clients/SpokePoolClient/index.js +8 -1
  52. package/dist/cjs/clients/SpokePoolClient/index.js.map +1 -1
  53. package/dist/cjs/clients/index.d.ts +1 -1
  54. package/dist/cjs/clients/index.js +2 -1
  55. package/dist/cjs/clients/index.js.map +1 -1
  56. package/dist/cjs/clients/mocks/MockConfigStoreClient.d.ts +1 -1
  57. package/dist/cjs/clients/mocks/MockConfigStoreClient.js +2 -2
  58. package/dist/cjs/clients/mocks/MockConfigStoreClient.js.map +1 -1
  59. package/dist/cjs/clients/mocks/MockHubPoolClient.js +2 -2
  60. package/dist/cjs/clients/mocks/MockHubPoolClient.js.map +1 -1
  61. package/dist/cjs/clients/mocks/MockSpokePoolClient.js +7 -4
  62. package/dist/cjs/clients/mocks/MockSpokePoolClient.js.map +1 -1
  63. package/dist/cjs/clients/mocks/MockSvmCpiEventsClient.d.ts +33 -0
  64. package/dist/cjs/clients/mocks/MockSvmCpiEventsClient.js +184 -0
  65. package/dist/cjs/clients/mocks/MockSvmCpiEventsClient.js.map +1 -0
  66. package/dist/cjs/clients/mocks/MockSvmSpokePoolClient.d.ts +30 -0
  67. package/dist/cjs/clients/mocks/MockSvmSpokePoolClient.js +90 -0
  68. package/dist/cjs/clients/mocks/MockSvmSpokePoolClient.js.map +1 -0
  69. package/dist/cjs/clients/mocks/index.d.ts +2 -0
  70. package/dist/cjs/clients/mocks/index.js +2 -0
  71. package/dist/cjs/clients/mocks/index.js.map +1 -1
  72. package/dist/cjs/constants.d.ts +1 -0
  73. package/dist/cjs/constants.js +2 -1
  74. package/dist/cjs/constants.js.map +1 -1
  75. package/dist/cjs/gasPriceOracle/adapters/arbitrum.d.ts +2 -2
  76. package/dist/cjs/gasPriceOracle/adapters/arbitrum.js.map +1 -1
  77. package/dist/cjs/gasPriceOracle/adapters/ethereum.d.ts +4 -4
  78. package/dist/cjs/gasPriceOracle/adapters/ethereum.js.map +1 -1
  79. package/dist/cjs/gasPriceOracle/adapters/linea-viem.js +3 -2
  80. package/dist/cjs/gasPriceOracle/adapters/linea-viem.js.map +1 -1
  81. package/dist/cjs/gasPriceOracle/adapters/polygon.d.ts +3 -3
  82. package/dist/cjs/gasPriceOracle/adapters/solana.d.ts +4 -0
  83. package/dist/cjs/gasPriceOracle/adapters/solana.js +43 -0
  84. package/dist/cjs/gasPriceOracle/adapters/solana.js.map +1 -0
  85. package/dist/cjs/gasPriceOracle/index.d.ts +1 -1
  86. package/dist/cjs/gasPriceOracle/oracle.d.ts +4 -3
  87. package/dist/cjs/gasPriceOracle/oracle.js +16 -9
  88. package/dist/cjs/gasPriceOracle/oracle.js.map +1 -1
  89. package/dist/cjs/gasPriceOracle/types.d.ts +6 -1
  90. package/dist/cjs/index.d.ts +0 -1
  91. package/dist/cjs/index.js +1 -2
  92. package/dist/cjs/index.js.map +1 -1
  93. package/dist/cjs/interfaces/SpokePool.d.ts +13 -0
  94. package/dist/cjs/interfaces/SpokePool.js.map +1 -1
  95. package/dist/cjs/providers/index.d.ts +1 -1
  96. package/dist/cjs/providers/index.js +1 -2
  97. package/dist/cjs/providers/index.js.map +1 -1
  98. package/dist/cjs/providers/mocks/MockCachedSolanaRpcFactory.d.ts +5 -0
  99. package/dist/cjs/providers/mocks/MockCachedSolanaRpcFactory.js +21 -0
  100. package/dist/cjs/providers/mocks/MockCachedSolanaRpcFactory.js.map +1 -0
  101. package/dist/cjs/providers/mocks/MockRateLimitedSolanaRpcFactory.d.ts +5 -0
  102. package/dist/cjs/providers/mocks/MockRateLimitedSolanaRpcFactory.js +20 -0
  103. package/dist/cjs/providers/mocks/MockRateLimitedSolanaRpcFactory.js.map +1 -0
  104. package/dist/cjs/providers/mocks/MockSolanaRpcFactory.d.ts +13 -0
  105. package/dist/cjs/providers/mocks/MockSolanaRpcFactory.js +76 -0
  106. package/dist/cjs/providers/mocks/MockSolanaRpcFactory.js.map +1 -0
  107. package/dist/cjs/providers/mocks/index.d.ts +4 -0
  108. package/dist/cjs/providers/mocks/index.js +8 -0
  109. package/dist/cjs/providers/mocks/index.js.map +1 -0
  110. package/dist/cjs/providers/{mockProvider.js → mocks/mockEthersProvider.js} +2 -2
  111. package/dist/cjs/providers/mocks/mockEthersProvider.js.map +1 -0
  112. package/dist/cjs/relayFeeCalculator/chain-queries/baseQuery.d.ts +1 -1
  113. package/dist/cjs/relayFeeCalculator/chain-queries/baseQuery.js +10 -8
  114. package/dist/cjs/relayFeeCalculator/chain-queries/baseQuery.js.map +1 -1
  115. package/dist/cjs/relayFeeCalculator/chain-queries/factory.d.ts +4 -2
  116. package/dist/cjs/relayFeeCalculator/chain-queries/factory.js +8 -2
  117. package/dist/cjs/relayFeeCalculator/chain-queries/factory.js.map +1 -1
  118. package/dist/cjs/relayFeeCalculator/chain-queries/index.d.ts +1 -0
  119. package/dist/cjs/relayFeeCalculator/chain-queries/index.js +1 -0
  120. package/dist/cjs/relayFeeCalculator/chain-queries/index.js.map +1 -1
  121. package/dist/cjs/relayFeeCalculator/chain-queries/svmQuery.d.ts +37 -0
  122. package/dist/cjs/relayFeeCalculator/chain-queries/svmQuery.js +171 -0
  123. package/dist/cjs/relayFeeCalculator/chain-queries/svmQuery.js.map +1 -0
  124. package/dist/cjs/relayFeeCalculator/relayFeeCalculator.d.ts +2 -0
  125. package/dist/cjs/relayFeeCalculator/relayFeeCalculator.js +9 -3
  126. package/dist/cjs/relayFeeCalculator/relayFeeCalculator.js.map +1 -1
  127. package/dist/cjs/utils/AddressUtils.d.ts +9 -3
  128. package/dist/cjs/utils/AddressUtils.js +36 -6
  129. package/dist/cjs/utils/AddressUtils.js.map +1 -1
  130. package/dist/cjs/utils/ArrayUtils.d.ts +1 -0
  131. package/dist/cjs/utils/ArrayUtils.js +6 -1
  132. package/dist/cjs/utils/ArrayUtils.js.map +1 -1
  133. package/dist/cjs/utils/BlockFinder.d.ts +22 -0
  134. package/dist/cjs/utils/BlockFinder.js +10 -0
  135. package/dist/cjs/utils/BlockFinder.js.map +1 -0
  136. package/dist/cjs/utils/BlockUtils.d.ts +2 -27
  137. package/dist/cjs/utils/BlockUtils.js +2 -208
  138. package/dist/cjs/utils/BlockUtils.js.map +1 -1
  139. package/dist/cjs/utils/EventUtils.d.ts +4 -4
  140. package/dist/cjs/utils/EventUtils.js +7 -4
  141. package/dist/cjs/utils/EventUtils.js.map +1 -1
  142. package/dist/cjs/utils/JSONUtils.js +3 -0
  143. package/dist/cjs/utils/JSONUtils.js.map +1 -1
  144. package/dist/cjs/utils/NumberUtils.d.ts +1 -0
  145. package/dist/cjs/utils/NumberUtils.js +7 -1
  146. package/dist/cjs/utils/NumberUtils.js.map +1 -1
  147. package/dist/cjs/utils/SpokeUtils.js +5 -0
  148. package/dist/cjs/utils/SpokeUtils.js.map +1 -1
  149. package/dist/cjs/utils/index.d.ts +1 -0
  150. package/dist/cjs/utils/index.js +1 -0
  151. package/dist/cjs/utils/index.js.map +1 -1
  152. package/dist/esm/arch/evm/BlockUtils.d.ts +24 -0
  153. package/dist/esm/arch/evm/BlockUtils.js +250 -0
  154. package/dist/esm/arch/evm/BlockUtils.js.map +1 -0
  155. package/dist/esm/arch/evm/SpokeUtils.d.ts +1 -1
  156. package/dist/esm/arch/evm/SpokeUtils.js +6 -5
  157. package/dist/esm/arch/evm/SpokeUtils.js.map +1 -1
  158. package/dist/esm/arch/evm/index.d.ts +1 -0
  159. package/dist/esm/arch/evm/index.js +1 -0
  160. package/dist/esm/arch/evm/index.js.map +1 -1
  161. package/dist/esm/arch/svm/SpokeUtils.d.ts +122 -0
  162. package/dist/esm/arch/svm/SpokeUtils.js +566 -0
  163. package/dist/esm/arch/svm/SpokeUtils.js.map +1 -0
  164. package/dist/esm/arch/svm/constants.d.ts +2 -0
  165. package/dist/esm/arch/svm/constants.js +3 -0
  166. package/dist/esm/arch/svm/constants.js.map +1 -0
  167. package/dist/esm/arch/svm/eventsClient.d.ts +87 -0
  168. package/dist/esm/arch/svm/eventsClient.js +316 -0
  169. package/dist/esm/arch/svm/eventsClient.js.map +1 -0
  170. package/dist/esm/arch/svm/index.d.ts +5 -1
  171. package/dist/esm/arch/svm/index.js +5 -1
  172. package/dist/esm/arch/svm/index.js.map +1 -1
  173. package/dist/esm/{svm → arch/svm}/types.d.ts +9 -4
  174. package/dist/esm/arch/svm/types.js.map +1 -0
  175. package/dist/esm/arch/svm/utils.d.ts +63 -0
  176. package/dist/esm/arch/svm/utils.js +258 -0
  177. package/dist/esm/arch/svm/utils.js.map +1 -0
  178. package/dist/esm/clients/AcrossConfigStoreClient/AcrossConfigStoreClient.d.ts +1 -1
  179. package/dist/esm/clients/AcrossConfigStoreClient/AcrossConfigStoreClient.js +7 -7
  180. package/dist/esm/clients/AcrossConfigStoreClient/AcrossConfigStoreClient.js.map +1 -1
  181. package/dist/esm/clients/BaseAbstractClient.d.ts +6 -5
  182. package/dist/esm/clients/BaseAbstractClient.js +30 -19
  183. package/dist/esm/clients/BaseAbstractClient.js.map +1 -1
  184. package/dist/esm/clients/BundleDataClient/BundleDataClient.js +17 -14
  185. package/dist/esm/clients/BundleDataClient/BundleDataClient.js.map +1 -1
  186. package/dist/esm/clients/BundleDataClient/utils/PoolRebalanceUtils.js +1 -1
  187. package/dist/esm/clients/BundleDataClient/utils/PoolRebalanceUtils.js.map +1 -1
  188. package/dist/esm/clients/BundleDataClient/utils/SuperstructUtils.d.ts +114 -114
  189. package/dist/esm/clients/HubPoolClient.d.ts +4 -3
  190. package/dist/esm/clients/HubPoolClient.js +19 -18
  191. package/dist/esm/clients/HubPoolClient.js.map +1 -1
  192. package/dist/esm/clients/SpokePoolClient/EVMSpokePoolClient.d.ts +3 -3
  193. package/dist/esm/clients/SpokePoolClient/EVMSpokePoolClient.js +23 -20
  194. package/dist/esm/clients/SpokePoolClient/EVMSpokePoolClient.js.map +1 -1
  195. package/dist/esm/clients/SpokePoolClient/SVMSpokePoolClient.d.ts +66 -0
  196. package/dist/esm/clients/SpokePoolClient/SVMSpokePoolClient.js +225 -0
  197. package/dist/esm/clients/SpokePoolClient/SVMSpokePoolClient.js.map +1 -0
  198. package/dist/esm/clients/SpokePoolClient/SpokePoolClient.d.ts +7 -7
  199. package/dist/esm/clients/SpokePoolClient/SpokePoolClient.js +57 -59
  200. package/dist/esm/clients/SpokePoolClient/SpokePoolClient.js.map +1 -1
  201. package/dist/esm/clients/SpokePoolClient/index.d.ts +8 -0
  202. package/dist/esm/clients/SpokePoolClient/index.js +10 -0
  203. package/dist/esm/clients/SpokePoolClient/index.js.map +1 -1
  204. package/dist/esm/clients/index.d.ts +1 -1
  205. package/dist/esm/clients/index.js +1 -1
  206. package/dist/esm/clients/index.js.map +1 -1
  207. package/dist/esm/clients/mocks/MockConfigStoreClient.d.ts +1 -1
  208. package/dist/esm/clients/mocks/MockConfigStoreClient.js +2 -2
  209. package/dist/esm/clients/mocks/MockConfigStoreClient.js.map +1 -1
  210. package/dist/esm/clients/mocks/MockHubPoolClient.js +2 -2
  211. package/dist/esm/clients/mocks/MockHubPoolClient.js.map +1 -1
  212. package/dist/esm/clients/mocks/MockSpokePoolClient.js +8 -5
  213. package/dist/esm/clients/mocks/MockSpokePoolClient.js.map +1 -1
  214. package/dist/esm/clients/mocks/MockSvmCpiEventsClient.d.ts +33 -0
  215. package/dist/esm/clients/mocks/MockSvmCpiEventsClient.js +183 -0
  216. package/dist/esm/clients/mocks/MockSvmCpiEventsClient.js.map +1 -0
  217. package/dist/esm/clients/mocks/MockSvmSpokePoolClient.d.ts +30 -0
  218. package/dist/esm/clients/mocks/MockSvmSpokePoolClient.js +89 -0
  219. package/dist/esm/clients/mocks/MockSvmSpokePoolClient.js.map +1 -0
  220. package/dist/esm/clients/mocks/index.d.ts +2 -0
  221. package/dist/esm/clients/mocks/index.js +2 -0
  222. package/dist/esm/clients/mocks/index.js.map +1 -1
  223. package/dist/esm/constants.d.ts +1 -0
  224. package/dist/esm/constants.js +1 -0
  225. package/dist/esm/constants.js.map +1 -1
  226. package/dist/esm/gasPriceOracle/adapters/arbitrum.d.ts +2 -2
  227. package/dist/esm/gasPriceOracle/adapters/arbitrum.js.map +1 -1
  228. package/dist/esm/gasPriceOracle/adapters/ethereum.d.ts +4 -4
  229. package/dist/esm/gasPriceOracle/adapters/ethereum.js.map +1 -1
  230. package/dist/esm/gasPriceOracle/adapters/linea-viem.js +3 -2
  231. package/dist/esm/gasPriceOracle/adapters/linea-viem.js.map +1 -1
  232. package/dist/esm/gasPriceOracle/adapters/polygon.d.ts +4 -4
  233. package/dist/esm/gasPriceOracle/adapters/polygon.js +1 -1
  234. package/dist/esm/gasPriceOracle/adapters/solana.d.ts +8 -0
  235. package/dist/esm/gasPriceOracle/adapters/solana.js +43 -0
  236. package/dist/esm/gasPriceOracle/adapters/solana.js.map +1 -0
  237. package/dist/esm/gasPriceOracle/index.d.ts +1 -1
  238. package/dist/esm/gasPriceOracle/oracle.d.ts +4 -3
  239. package/dist/esm/gasPriceOracle/oracle.js +18 -9
  240. package/dist/esm/gasPriceOracle/oracle.js.map +1 -1
  241. package/dist/esm/gasPriceOracle/types.d.ts +6 -1
  242. package/dist/esm/index.d.ts +0 -1
  243. package/dist/esm/index.js +0 -2
  244. package/dist/esm/index.js.map +1 -1
  245. package/dist/esm/interfaces/SpokePool.d.ts +13 -0
  246. package/dist/esm/interfaces/SpokePool.js.map +1 -1
  247. package/dist/esm/providers/index.d.ts +1 -1
  248. package/dist/esm/providers/index.js +1 -2
  249. package/dist/esm/providers/index.js.map +1 -1
  250. package/dist/esm/providers/mocks/MockCachedSolanaRpcFactory.d.ts +5 -0
  251. package/dist/esm/providers/mocks/MockCachedSolanaRpcFactory.js +19 -0
  252. package/dist/esm/providers/mocks/MockCachedSolanaRpcFactory.js.map +1 -0
  253. package/dist/esm/providers/mocks/MockRateLimitedSolanaRpcFactory.d.ts +5 -0
  254. package/dist/esm/providers/mocks/MockRateLimitedSolanaRpcFactory.js +18 -0
  255. package/dist/esm/providers/mocks/MockRateLimitedSolanaRpcFactory.js.map +1 -0
  256. package/dist/esm/providers/mocks/MockSolanaRpcFactory.d.ts +13 -0
  257. package/dist/esm/providers/mocks/MockSolanaRpcFactory.js +74 -0
  258. package/dist/esm/providers/mocks/MockSolanaRpcFactory.js.map +1 -0
  259. package/dist/esm/providers/mocks/index.d.ts +4 -0
  260. package/dist/esm/providers/mocks/index.js +5 -0
  261. package/dist/esm/providers/mocks/index.js.map +1 -0
  262. package/dist/esm/providers/{mockProvider.js → mocks/mockEthersProvider.js} +2 -2
  263. package/dist/esm/providers/mocks/mockEthersProvider.js.map +1 -0
  264. package/dist/esm/relayFeeCalculator/chain-queries/baseQuery.d.ts +1 -1
  265. package/dist/esm/relayFeeCalculator/chain-queries/baseQuery.js +10 -8
  266. package/dist/esm/relayFeeCalculator/chain-queries/baseQuery.js.map +1 -1
  267. package/dist/esm/relayFeeCalculator/chain-queries/factory.d.ts +4 -2
  268. package/dist/esm/relayFeeCalculator/chain-queries/factory.js +11 -5
  269. package/dist/esm/relayFeeCalculator/chain-queries/factory.js.map +1 -1
  270. package/dist/esm/relayFeeCalculator/chain-queries/index.d.ts +1 -0
  271. package/dist/esm/relayFeeCalculator/chain-queries/index.js +1 -0
  272. package/dist/esm/relayFeeCalculator/chain-queries/index.js.map +1 -1
  273. package/dist/esm/relayFeeCalculator/chain-queries/svmQuery.d.ts +84 -0
  274. package/dist/esm/relayFeeCalculator/chain-queries/svmQuery.js +216 -0
  275. package/dist/esm/relayFeeCalculator/chain-queries/svmQuery.js.map +1 -0
  276. package/dist/esm/relayFeeCalculator/relayFeeCalculator.d.ts +12 -1
  277. package/dist/esm/relayFeeCalculator/relayFeeCalculator.js +9 -4
  278. package/dist/esm/relayFeeCalculator/relayFeeCalculator.js.map +1 -1
  279. package/dist/esm/utils/AddressUtils.d.ts +9 -3
  280. package/dist/esm/utils/AddressUtils.js +41 -6
  281. package/dist/esm/utils/AddressUtils.js.map +1 -1
  282. package/dist/esm/utils/ArrayUtils.d.ts +6 -0
  283. package/dist/esm/utils/ArrayUtils.js +9 -0
  284. package/dist/esm/utils/ArrayUtils.js.map +1 -1
  285. package/dist/esm/utils/BlockFinder.d.ts +22 -0
  286. package/dist/esm/utils/BlockFinder.js +7 -0
  287. package/dist/esm/utils/BlockFinder.js.map +1 -0
  288. package/dist/esm/utils/BlockUtils.d.ts +2 -36
  289. package/dist/esm/utils/BlockUtils.js +2 -243
  290. package/dist/esm/utils/BlockUtils.js.map +1 -1
  291. package/dist/esm/utils/EventUtils.d.ts +4 -4
  292. package/dist/esm/utils/EventUtils.js +7 -4
  293. package/dist/esm/utils/EventUtils.js.map +1 -1
  294. package/dist/esm/utils/JSONUtils.js +3 -0
  295. package/dist/esm/utils/JSONUtils.js.map +1 -1
  296. package/dist/esm/utils/NumberUtils.d.ts +7 -0
  297. package/dist/esm/utils/NumberUtils.js +11 -0
  298. package/dist/esm/utils/NumberUtils.js.map +1 -1
  299. package/dist/esm/utils/SpokeUtils.js +5 -0
  300. package/dist/esm/utils/SpokeUtils.js.map +1 -1
  301. package/dist/esm/utils/index.d.ts +1 -0
  302. package/dist/esm/utils/index.js +1 -0
  303. package/dist/esm/utils/index.js.map +1 -1
  304. package/dist/types/arch/evm/BlockUtils.d.ts +25 -0
  305. package/dist/types/arch/evm/BlockUtils.d.ts.map +1 -0
  306. package/dist/types/arch/evm/SpokeUtils.d.ts +1 -1
  307. package/dist/types/arch/evm/SpokeUtils.d.ts.map +1 -1
  308. package/dist/types/arch/evm/index.d.ts +1 -0
  309. package/dist/types/arch/evm/index.d.ts.map +1 -1
  310. package/dist/types/arch/svm/SpokeUtils.d.ts +123 -0
  311. package/dist/types/arch/svm/SpokeUtils.d.ts.map +1 -0
  312. package/dist/types/arch/svm/constants.d.ts +3 -0
  313. package/dist/types/arch/svm/constants.d.ts.map +1 -0
  314. package/dist/types/arch/svm/eventsClient.d.ts +88 -0
  315. package/dist/types/arch/svm/eventsClient.d.ts.map +1 -0
  316. package/dist/types/arch/svm/index.d.ts +5 -1
  317. package/dist/types/arch/svm/index.d.ts.map +1 -1
  318. package/dist/types/{svm → arch/svm}/types.d.ts +9 -4
  319. package/dist/types/arch/svm/types.d.ts.map +1 -0
  320. package/dist/types/arch/svm/utils.d.ts +64 -0
  321. package/dist/types/arch/svm/utils.d.ts.map +1 -0
  322. package/dist/types/clients/AcrossConfigStoreClient/AcrossConfigStoreClient.d.ts +1 -1
  323. package/dist/types/clients/AcrossConfigStoreClient/AcrossConfigStoreClient.d.ts.map +1 -1
  324. package/dist/types/clients/BaseAbstractClient.d.ts +6 -5
  325. package/dist/types/clients/BaseAbstractClient.d.ts.map +1 -1
  326. package/dist/types/clients/BundleDataClient/BundleDataClient.d.ts.map +1 -1
  327. package/dist/types/clients/BundleDataClient/utils/SuperstructUtils.d.ts +114 -114
  328. package/dist/types/clients/HubPoolClient.d.ts +4 -3
  329. package/dist/types/clients/HubPoolClient.d.ts.map +1 -1
  330. package/dist/types/clients/SpokePoolClient/EVMSpokePoolClient.d.ts +3 -3
  331. package/dist/types/clients/SpokePoolClient/EVMSpokePoolClient.d.ts.map +1 -1
  332. package/dist/types/clients/SpokePoolClient/SVMSpokePoolClient.d.ts +67 -0
  333. package/dist/types/clients/SpokePoolClient/SVMSpokePoolClient.d.ts.map +1 -0
  334. package/dist/types/clients/SpokePoolClient/SpokePoolClient.d.ts +7 -7
  335. package/dist/types/clients/SpokePoolClient/SpokePoolClient.d.ts.map +1 -1
  336. package/dist/types/clients/SpokePoolClient/index.d.ts +8 -0
  337. package/dist/types/clients/SpokePoolClient/index.d.ts.map +1 -1
  338. package/dist/types/clients/index.d.ts +1 -1
  339. package/dist/types/clients/index.d.ts.map +1 -1
  340. package/dist/types/clients/mocks/MockConfigStoreClient.d.ts +1 -1
  341. package/dist/types/clients/mocks/MockConfigStoreClient.d.ts.map +1 -1
  342. package/dist/types/clients/mocks/MockSpokePoolClient.d.ts.map +1 -1
  343. package/dist/types/clients/mocks/MockSvmCpiEventsClient.d.ts +34 -0
  344. package/dist/types/clients/mocks/MockSvmCpiEventsClient.d.ts.map +1 -0
  345. package/dist/types/clients/mocks/MockSvmSpokePoolClient.d.ts +31 -0
  346. package/dist/types/clients/mocks/MockSvmSpokePoolClient.d.ts.map +1 -0
  347. package/dist/types/clients/mocks/index.d.ts +2 -0
  348. package/dist/types/clients/mocks/index.d.ts.map +1 -1
  349. package/dist/types/constants.d.ts +1 -0
  350. package/dist/types/constants.d.ts.map +1 -1
  351. package/dist/types/gasPriceOracle/adapters/arbitrum.d.ts +2 -2
  352. package/dist/types/gasPriceOracle/adapters/arbitrum.d.ts.map +1 -1
  353. package/dist/types/gasPriceOracle/adapters/ethereum.d.ts +4 -4
  354. package/dist/types/gasPriceOracle/adapters/ethereum.d.ts.map +1 -1
  355. package/dist/types/gasPriceOracle/adapters/linea-viem.d.ts.map +1 -1
  356. package/dist/types/gasPriceOracle/adapters/polygon.d.ts +4 -4
  357. package/dist/types/gasPriceOracle/adapters/polygon.d.ts.map +1 -1
  358. package/dist/types/gasPriceOracle/adapters/solana.d.ts +9 -0
  359. package/dist/types/gasPriceOracle/adapters/solana.d.ts.map +1 -0
  360. package/dist/types/gasPriceOracle/index.d.ts +1 -1
  361. package/dist/types/gasPriceOracle/index.d.ts.map +1 -1
  362. package/dist/types/gasPriceOracle/oracle.d.ts +4 -3
  363. package/dist/types/gasPriceOracle/oracle.d.ts.map +1 -1
  364. package/dist/types/gasPriceOracle/types.d.ts +6 -1
  365. package/dist/types/gasPriceOracle/types.d.ts.map +1 -1
  366. package/dist/types/index.d.ts +0 -1
  367. package/dist/types/index.d.ts.map +1 -1
  368. package/dist/types/interfaces/SpokePool.d.ts +13 -0
  369. package/dist/types/interfaces/SpokePool.d.ts.map +1 -1
  370. package/dist/types/providers/index.d.ts +1 -1
  371. package/dist/types/providers/index.d.ts.map +1 -1
  372. package/dist/types/providers/mocks/MockCachedSolanaRpcFactory.d.ts +6 -0
  373. package/dist/types/providers/mocks/MockCachedSolanaRpcFactory.d.ts.map +1 -0
  374. package/dist/types/providers/mocks/MockRateLimitedSolanaRpcFactory.d.ts +6 -0
  375. package/dist/types/providers/mocks/MockRateLimitedSolanaRpcFactory.d.ts.map +1 -0
  376. package/dist/types/providers/mocks/MockSolanaRpcFactory.d.ts +14 -0
  377. package/dist/types/providers/mocks/MockSolanaRpcFactory.d.ts.map +1 -0
  378. package/dist/types/providers/mocks/index.d.ts +5 -0
  379. package/dist/types/providers/mocks/index.d.ts.map +1 -0
  380. package/dist/types/providers/{mockProvider.d.ts → mocks/mockEthersProvider.d.ts} +1 -1
  381. package/dist/types/providers/mocks/mockEthersProvider.d.ts.map +1 -0
  382. package/dist/types/relayFeeCalculator/chain-queries/baseQuery.d.ts +1 -1
  383. package/dist/types/relayFeeCalculator/chain-queries/baseQuery.d.ts.map +1 -1
  384. package/dist/types/relayFeeCalculator/chain-queries/factory.d.ts +4 -2
  385. package/dist/types/relayFeeCalculator/chain-queries/factory.d.ts.map +1 -1
  386. package/dist/types/relayFeeCalculator/chain-queries/index.d.ts +1 -0
  387. package/dist/types/relayFeeCalculator/chain-queries/index.d.ts.map +1 -1
  388. package/dist/types/relayFeeCalculator/chain-queries/svmQuery.d.ts +85 -0
  389. package/dist/types/relayFeeCalculator/chain-queries/svmQuery.d.ts.map +1 -0
  390. package/dist/types/relayFeeCalculator/relayFeeCalculator.d.ts +12 -1
  391. package/dist/types/relayFeeCalculator/relayFeeCalculator.d.ts.map +1 -1
  392. package/dist/types/utils/AddressUtils.d.ts +9 -3
  393. package/dist/types/utils/AddressUtils.d.ts.map +1 -1
  394. package/dist/types/utils/ArrayUtils.d.ts +6 -0
  395. package/dist/types/utils/ArrayUtils.d.ts.map +1 -1
  396. package/dist/types/utils/BlockFinder.d.ts +23 -0
  397. package/dist/types/utils/BlockFinder.d.ts.map +1 -0
  398. package/dist/types/utils/BlockUtils.d.ts +2 -36
  399. package/dist/types/utils/BlockUtils.d.ts.map +1 -1
  400. package/dist/types/utils/EventUtils.d.ts +4 -4
  401. package/dist/types/utils/EventUtils.d.ts.map +1 -1
  402. package/dist/types/utils/JSONUtils.d.ts.map +1 -1
  403. package/dist/types/utils/NumberUtils.d.ts +7 -0
  404. package/dist/types/utils/NumberUtils.d.ts.map +1 -1
  405. package/dist/types/utils/SpokeUtils.d.ts.map +1 -1
  406. package/dist/types/utils/index.d.ts +1 -0
  407. package/dist/types/utils/index.d.ts.map +1 -1
  408. package/package.json +3 -1
  409. package/src/arch/evm/BlockUtils.ts +209 -0
  410. package/src/arch/evm/SpokeUtils.ts +5 -5
  411. package/src/arch/evm/index.ts +1 -0
  412. package/src/arch/svm/SpokeUtils.ts +581 -0
  413. package/src/arch/svm/constants.ts +2 -0
  414. package/src/arch/svm/eventsClient.ts +342 -0
  415. package/src/arch/svm/index.ts +5 -1
  416. package/src/{svm → arch/svm}/types.ts +21 -4
  417. package/src/arch/svm/utils.ts +233 -0
  418. package/src/clients/AcrossConfigStoreClient/AcrossConfigStoreClient.ts +7 -7
  419. package/src/clients/BaseAbstractClient.ts +20 -13
  420. package/src/clients/BundleDataClient/BundleDataClient.ts +28 -19
  421. package/src/clients/BundleDataClient/utils/PoolRebalanceUtils.ts +1 -1
  422. package/src/clients/HubPoolClient.ts +19 -19
  423. package/src/clients/SpokePoolClient/EVMSpokePoolClient.ts +23 -21
  424. package/src/clients/SpokePoolClient/SVMSpokePoolClient.ts +268 -0
  425. package/src/clients/SpokePoolClient/SpokePoolClient.ts +50 -59
  426. package/src/clients/SpokePoolClient/index.ts +11 -0
  427. package/src/clients/index.ts +1 -1
  428. package/src/clients/mocks/MockConfigStoreClient.ts +2 -2
  429. package/src/clients/mocks/MockHubPoolClient.ts +2 -2
  430. package/src/clients/mocks/MockSpokePoolClient.ts +9 -4
  431. package/src/clients/mocks/MockSvmCpiEventsClient.ts +226 -0
  432. package/src/clients/mocks/MockSvmSpokePoolClient.ts +119 -0
  433. package/src/clients/mocks/index.ts +2 -0
  434. package/src/constants.ts +1 -0
  435. package/src/gasPriceOracle/adapters/arbitrum.ts +5 -2
  436. package/src/gasPriceOracle/adapters/ethereum.ts +7 -4
  437. package/src/gasPriceOracle/adapters/linea-viem.ts +3 -1
  438. package/src/gasPriceOracle/adapters/polygon.ts +6 -6
  439. package/src/gasPriceOracle/adapters/solana.ts +45 -0
  440. package/src/gasPriceOracle/index.ts +1 -1
  441. package/src/gasPriceOracle/oracle.ts +20 -4
  442. package/src/gasPriceOracle/types.ts +7 -1
  443. package/src/index.ts +0 -1
  444. package/src/interfaces/SpokePool.ts +14 -0
  445. package/src/providers/index.ts +1 -1
  446. package/src/providers/mocks/MockCachedSolanaRpcFactory.ts +15 -0
  447. package/src/providers/mocks/MockRateLimitedSolanaRpcFactory.ts +14 -0
  448. package/src/providers/mocks/MockSolanaRpcFactory.ts +55 -0
  449. package/src/providers/mocks/index.ts +4 -0
  450. package/src/providers/{mockProvider.ts → mocks/mockEthersProvider.ts} +1 -1
  451. package/src/relayFeeCalculator/chain-queries/baseQuery.ts +11 -9
  452. package/src/relayFeeCalculator/chain-queries/factory.ts +24 -8
  453. package/src/relayFeeCalculator/chain-queries/index.ts +1 -0
  454. package/src/relayFeeCalculator/chain-queries/svmQuery.ts +225 -0
  455. package/src/relayFeeCalculator/relayFeeCalculator.ts +15 -3
  456. package/src/utils/AddressUtils.ts +49 -6
  457. package/src/utils/ArrayUtils.ts +12 -0
  458. package/src/utils/BlockFinder.ts +26 -0
  459. package/src/utils/BlockUtils.ts +5 -215
  460. package/src/utils/EventUtils.ts +11 -11
  461. package/src/utils/JSONUtils.ts +2 -0
  462. package/src/utils/NumberUtils.ts +10 -0
  463. package/src/utils/SpokeUtils.ts +7 -3
  464. package/src/utils/index.ts +1 -0
  465. package/dist/cjs/providers/mockProvider.js.map +0 -1
  466. package/dist/cjs/svm/eventsClient.d.ts +0 -15
  467. package/dist/cjs/svm/eventsClient.js +0 -157
  468. package/dist/cjs/svm/eventsClient.js.map +0 -1
  469. package/dist/cjs/svm/index.d.ts +0 -3
  470. package/dist/cjs/svm/index.js +0 -8
  471. package/dist/cjs/svm/index.js.map +0 -1
  472. package/dist/cjs/svm/types.js.map +0 -1
  473. package/dist/cjs/svm/utils/events.d.ts +0 -8
  474. package/dist/cjs/svm/utils/events.js +0 -47
  475. package/dist/cjs/svm/utils/events.js.map +0 -1
  476. package/dist/cjs/svm/utils/helpers.d.ts +0 -2
  477. package/dist/cjs/svm/utils/helpers.js +0 -19
  478. package/dist/cjs/svm/utils/helpers.js.map +0 -1
  479. package/dist/cjs/svm/utils/index.d.ts +0 -1
  480. package/dist/cjs/svm/utils/index.js +0 -5
  481. package/dist/cjs/svm/utils/index.js.map +0 -1
  482. package/dist/esm/providers/mockProvider.js.map +0 -1
  483. package/dist/esm/svm/eventsClient.d.ts +0 -51
  484. package/dist/esm/svm/eventsClient.js +0 -195
  485. package/dist/esm/svm/eventsClient.js.map +0 -1
  486. package/dist/esm/svm/index.d.ts +0 -3
  487. package/dist/esm/svm/index.js +0 -5
  488. package/dist/esm/svm/index.js.map +0 -1
  489. package/dist/esm/svm/types.js.map +0 -1
  490. package/dist/esm/svm/utils/events.d.ts +0 -17
  491. package/dist/esm/svm/utils/events.js +0 -55
  492. package/dist/esm/svm/utils/events.js.map +0 -1
  493. package/dist/esm/svm/utils/helpers.d.ts +0 -5
  494. package/dist/esm/svm/utils/helpers.js +0 -18
  495. package/dist/esm/svm/utils/helpers.js.map +0 -1
  496. package/dist/esm/svm/utils/index.d.ts +0 -1
  497. package/dist/esm/svm/utils/index.js +0 -2
  498. package/dist/esm/svm/utils/index.js.map +0 -1
  499. package/dist/types/providers/mockProvider.d.ts.map +0 -1
  500. package/dist/types/svm/eventsClient.d.ts +0 -52
  501. package/dist/types/svm/eventsClient.d.ts.map +0 -1
  502. package/dist/types/svm/index.d.ts +0 -4
  503. package/dist/types/svm/index.d.ts.map +0 -1
  504. package/dist/types/svm/types.d.ts.map +0 -1
  505. package/dist/types/svm/utils/events.d.ts +0 -18
  506. package/dist/types/svm/utils/events.d.ts.map +0 -1
  507. package/dist/types/svm/utils/helpers.d.ts +0 -6
  508. package/dist/types/svm/utils/helpers.d.ts.map +0 -1
  509. package/dist/types/svm/utils/index.d.ts +0 -2
  510. package/dist/types/svm/utils/index.d.ts.map +0 -1
  511. package/src/svm/eventsClient.ts +0 -199
  512. package/src/svm/index.ts +0 -3
  513. package/src/svm/utils/events.ts +0 -58
  514. package/src/svm/utils/helpers.ts +0 -9
  515. package/src/svm/utils/index.ts +0 -1
  516. /package/dist/cjs/{svm → arch/svm}/types.js +0 -0
  517. /package/dist/cjs/providers/{mockProvider.d.ts → mocks/mockEthersProvider.d.ts} +0 -0
  518. /package/dist/esm/{svm → arch/svm}/types.js +0 -0
  519. /package/dist/esm/providers/{mockProvider.d.ts → mocks/mockEthersProvider.d.ts} +0 -0
@@ -0,0 +1,85 @@
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
@@ -0,0 +1 @@
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"}
@@ -11,6 +11,7 @@ export interface QueryInterface {
11
11
  transport: Transport;
12
12
  }>) => Promise<TransactionCostEstimate>;
13
13
  getTokenPrice: (tokenSymbol: string) => Promise<number>;
14
+ getNativeGasCost: (deposit: Omit<Deposit, "messageHash">, relayer: string) => Promise<BigNumber>;
14
15
  }
15
16
  export declare const expectedCapitalCostsKeys: string[];
16
17
  export interface CapitalCostConfig {
@@ -73,6 +74,7 @@ export interface Logger {
73
74
  error: LoggingFunction;
74
75
  }
75
76
  export declare const DEFAULT_LOGGER: Logger;
77
+ export declare function getDefaultSimulatedRelayerAddress(chainId?: number): "0x07aE8551Be970cB1cCa11Dd7a11F47Ae82e70E67" | "FmMK62wrtWVb5SVoTZftSCGw3nEDA79hDbZNTRnC1R6t";
76
78
  export declare class RelayFeeCalculator {
77
79
  private queries;
78
80
  private gasDiscountPercent;
@@ -421,7 +423,16 @@ export declare class RelayFeeCalculator {
421
423
  VLR: {
422
424
  name: string;
423
425
  symbol: string;
424
- decimals: number;
426
+ decimals: number; /**
427
+ * Type guard to check if a config is a CapitalCostConfigOverride or a CapitalCostConfig.
428
+ * @param config CapitalCostConfig or CapitalCostConfigOverride
429
+ * @returns true if the config is a CapitalCostConfigOverride, false otherwise.
430
+ * @private
431
+ * @dev This is a type guard that is used to check if a config is a CapitalCostConfigOverride or a CapitalCostConfig.
432
+ * This is needed because the config can be either a CapitalCostConfig or a CapitalCostConfigOverride. If it's a
433
+ * CapitalCostConfig, then we need to convert it to a CapitalCostConfigOverride with the default config set with no route
434
+ * overrides.
435
+ */
425
436
  addresses: {
426
437
  [x: number]: string;
427
438
  };
@@ -1 +1 @@
1
- {"version":3,"file":"relayFeeCalculator.d.ts","sourceRoot":"","sources":["../../../src/relayFeeCalculator/relayFeeCalculator.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"relayFeeCalculator.d.ts","sourceRoot":"","sources":["../../../src/relayFeeCalculator/relayFeeCalculator.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,6 @@
1
+ /// <reference types="node" />
1
2
  import { providers } from "ethers";
3
+ import { Address as V2Address } from "@solana/kit";
2
4
  import { BigNumber } from "./";
3
5
  /**
4
6
  * Checks if a contract is deployed at the given address
@@ -19,7 +21,7 @@ export declare function isValidEvmAddress(address: string): boolean;
19
21
  * @returns a child `Address` type most fitting for the chain ID.
20
22
  * @todo: Change this to `toAddress` once we remove the other `toAddress` function.
21
23
  */
22
- export declare function toAddressType(address: string, chainId: number): Address | EvmAddress | SvmAddress;
24
+ export declare function toAddressType(address: string): Address | EvmAddress | SvmAddress;
23
25
  export declare class Address {
24
26
  readonly rawAddress: Uint8Array;
25
27
  evmAddress: string | undefined;
@@ -32,24 +34,28 @@ export declare class Address {
32
34
  toBigNumber(): BigNumber;
33
35
  toEvmAddress(): string;
34
36
  toAddress(): string;
37
+ toBuffer(): Buffer;
35
38
  toHexString(): string;
36
39
  isValidEvmAddress(): boolean;
37
40
  isValidOn(chainId: number): boolean;
38
41
  static isAddress(obj: unknown): boolean;
39
42
  toString(): string;
40
43
  isZeroAddress(): boolean;
44
+ forceSvmAddress(): SvmAddress;
45
+ forceEvmAddress(): EvmAddress;
41
46
  eq(other: Address): boolean;
42
47
  compare(otherAddress: Address): 1 | -1 | 0;
43
48
  }
44
49
  export declare class EvmAddress extends Address {
45
50
  constructor(rawAddress: Uint8Array);
46
51
  toAddress(): string;
47
- static from(hexString: string): EvmAddress;
52
+ static from(address: string, encoding?: "base16" | "base58"): EvmAddress;
48
53
  }
49
54
  export declare class SvmAddress extends Address {
50
55
  constructor(rawAddress: Uint8Array);
51
56
  toAddress(): string;
57
+ toV2Address(): V2Address<string>;
52
58
  toEvmAddress(): string;
53
- static from(bs58Address: string): SvmAddress;
59
+ static from(address: string, encoding?: "base58" | "base16"): SvmAddress;
54
60
  }
55
61
  //# sourceMappingURL=AddressUtils.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"AddressUtils.d.ts","sourceRoot":"","sources":["../../../src/utils/AddressUtils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAS,MAAM,QAAQ,CAAC;AAE1C,OAAO,EAAE,SAAS,EAAc,MAAM,IAAI,CAAC;AAE3C;;;;;GAKG;AACH,wBAAsB,2BAA2B,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,SAAS,CAAC,QAAQ,GAAG,OAAO,CAAC,OAAO,CAAC,CASjH;AAED,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAY/E;AAED,wBAAgB,sBAAsB,CAAC,QAAQ,CAAC,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAKpF;AAKD,wBAAgB,SAAS,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAEjD;AAGD,wBAAgB,SAAS,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAInD;AAED,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAc1D;AAED;;;;;;GAMG;AACH,wBAAgB,aAAa,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,GAAG,UAAU,GAAG,UAAU,CAWjG;AAID,qBAAa,OAAO;IAClB,QAAQ,CAAC,UAAU,EAAE,UAAU,CAAC;IAGhC,UAAU,EAAE,MAAM,GAAG,SAAS,CAAa;IAC3C,cAAc,EAAE,MAAM,GAAG,SAAS,CAAa;IAC/C,UAAU,EAAE,MAAM,GAAG,SAAS,CAAa;IAC3C,SAAS,EAAE,SAAS,GAAG,SAAS,CAAa;gBAEjC,WAAW,EAAE,UAAU;IAanC,SAAS,IAAI,MAAM;IAMnB,QAAQ,IAAI,MAAM;IAKlB,WAAW,IAAI,SAAS;IAMxB,YAAY,IAAI,MAAM;IAWtB,SAAS,IAAI,MAAM;IAKnB,WAAW,IAAI,MAAM;IAKrB,iBAAiB,IAAI,OAAO;IAU5B,SAAS,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO;IASnC,MAAM,CAAC,SAAS,CAAC,GAAG,EAAE,OAAO,GAAG,OAAO;IAKvC,QAAQ,IAAI,MAAM;IAKlB,aAAa,IAAI,OAAO;IAKxB,EAAE,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO;IAK3B,OAAO,CAAC,YAAY,EAAE,OAAO,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC;CAa3C;AAGD,qBAAa,UAAW,SAAQ,OAAO;gBAEzB,UAAU,EAAE,UAAU;IASzB,SAAS,IAAI,MAAM;IAK5B,MAAM,CAAC,IAAI,CAAC,SAAS,EAAE,MAAM,GAAG,UAAU;CAG3C;AAGD,qBAAa,UAAW,SAAQ,OAAO;gBAEzB,UAAU,EAAE,UAAU;IAMzB,SAAS,IAAI,MAAM;IAInB,YAAY,IAAI,MAAM;IAK/B,MAAM,CAAC,IAAI,CAAC,WAAW,EAAE,MAAM,GAAG,UAAU;CAG7C"}
1
+ {"version":3,"file":"AddressUtils.d.ts","sourceRoot":"","sources":["../../../src/utils/AddressUtils.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,SAAS,EAAS,MAAM,QAAQ,CAAC;AAE1C,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,aAAa,CAAC;AACnD,OAAO,EAAE,SAAS,EAAc,MAAM,IAAI,CAAC;AAE3C;;;;;GAKG;AACH,wBAAsB,2BAA2B,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,SAAS,CAAC,QAAQ,GAAG,OAAO,CAAC,OAAO,CAAC,CASjH;AAED,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAY/E;AAED,wBAAgB,sBAAsB,CAAC,QAAQ,CAAC,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAKpF;AAKD,wBAAgB,SAAS,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAEjD;AAGD,wBAAgB,SAAS,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAInD;AAED,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAc1D;AAED;;;;;;GAMG;AACH,wBAAgB,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,GAAG,UAAU,GAAG,UAAU,CAWhF;AAID,qBAAa,OAAO;IAClB,QAAQ,CAAC,UAAU,EAAE,UAAU,CAAC;IAGhC,UAAU,EAAE,MAAM,GAAG,SAAS,CAAa;IAC3C,cAAc,EAAE,MAAM,GAAG,SAAS,CAAa;IAC/C,UAAU,EAAE,MAAM,GAAG,SAAS,CAAa;IAC3C,SAAS,EAAE,SAAS,GAAG,SAAS,CAAa;gBAEjC,WAAW,EAAE,UAAU;IAanC,SAAS,IAAI,MAAM;IAMnB,QAAQ,IAAI,MAAM;IAKlB,WAAW,IAAI,SAAS;IAMxB,YAAY,IAAI,MAAM;IAWtB,SAAS,IAAI,MAAM;IAKnB,QAAQ,IAAI,MAAM;IAKlB,WAAW,IAAI,MAAM;IAKrB,iBAAiB,IAAI,OAAO;IAU5B,SAAS,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO;IASnC,MAAM,CAAC,SAAS,CAAC,GAAG,EAAE,OAAO,GAAG,OAAO;IAKvC,QAAQ,IAAI,MAAM;IAKlB,aAAa,IAAI,OAAO;IAKxB,eAAe,IAAI,UAAU;IAK7B,eAAe,IAAI,UAAU;IAK7B,EAAE,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO;IAK3B,OAAO,CAAC,YAAY,EAAE,OAAO,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC;CAa3C;AAGD,qBAAa,UAAW,SAAQ,OAAO;gBAEzB,UAAU,EAAE,UAAU;IASzB,SAAS,IAAI,MAAM;IAK5B,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,GAAE,QAAQ,GAAG,QAAmB,GAAG,UAAU;CAenF;AAGD,qBAAa,UAAW,SAAQ,OAAO;gBAEzB,UAAU,EAAE,UAAU;IAMzB,SAAS,IAAI,MAAM;IAK5B,WAAW,IAAI,SAAS,CAAC,MAAM,CAAC;IAKvB,YAAY,IAAI,MAAM;IAK/B,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,GAAE,QAAQ,GAAG,QAAmB,GAAG,UAAU;CAYnF"}
@@ -96,4 +96,10 @@ export declare function includesAsync<T>(array: T[], predicate: (value: T, index
96
96
  * @note This function uses Array.prototype.every.
97
97
  */
98
98
  export declare function isArrayOf<T>(array: unknown, predicate: (value: unknown) => value is T): array is T[];
99
+ /**
100
+ * Checks if a value is a Uint8Array.
101
+ * @param value The value to check.
102
+ * @returns True if the value is a Uint8Array, false otherwise.
103
+ */
104
+ export declare function isUint8Array(value: unknown): value is Uint8Array;
99
105
  //# sourceMappingURL=ArrayUtils.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ArrayUtils.d.ts","sourceRoot":"","sources":["../../../src/utils/ArrayUtils.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ArrayUtils.d.ts","sourceRoot":"","sources":["../../../src/utils/ArrayUtils.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,23 @@
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
@@ -0,0 +1 @@
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,38 +1,5 @@
1
- import type { Block, Provider } from "@ethersproject/abstract-provider";
2
1
  import { CachingMechanismInterface } from "../interfaces";
3
- type Opts = {
4
- highBlock?: number;
5
- highBlockOffset?: number;
6
- blockRange?: number;
7
- };
8
- type BlockTimeAverage = {
9
- average: number;
10
- blockRange: number;
11
- timestamp: number;
12
- };
13
- /**
14
- * @description Compute the average block time over a block range.
15
- * @returns Average number of seconds per block.
16
- */
17
- export declare function averageBlockTime(provider: Provider, { highBlock, highBlockOffset, blockRange }?: Opts): Promise<Pick<BlockTimeAverage, "average" | "blockRange">>;
18
- export type BlockFinderHints = {
19
- lowBlock?: number;
20
- highBlock?: number;
21
- };
22
- export declare class BlockFinder {
23
- private readonly provider;
24
- private readonly blocks;
25
- constructor(provider: Provider, blocks?: Block[]);
26
- /**
27
- * @notice Gets the latest block whose timestamp is <= the provided timestamp.
28
- * @param number Timestamp timestamp to search.
29
- * @param hints Optional low and high block to bound the search space.
30
- */
31
- getBlockForTimestamp(timestamp: number | string, hints?: BlockFinderHints): Promise<Block>;
32
- private getLatestBlock;
33
- private getBlock;
34
- private findBlock;
35
- }
2
+ import { BlockFinderHints, BlockFinder, Block } from "./BlockFinder";
36
3
  /**
37
4
  * @notice Get the block number for a given timestamp fresh from on-chain data if not found in redis cache.
38
5
  * If redis cache is not available, then requests block from blockFinder.
@@ -42,6 +9,5 @@ export declare class BlockFinder {
42
9
  * or loading from cache. This is useful for testing primarily.
43
10
  * @returns Block number for the requested timestamp.
44
11
  */
45
- export declare function getCachedBlockForTimestamp(chainId: number, timestamp: number, blockFinder: BlockFinder, cache?: CachingMechanismInterface, hints?: BlockFinderHints): Promise<number>;
46
- export {};
12
+ export declare function getCachedBlockForTimestamp<TBlock extends Block>(chainId: number, timestamp: number, blockFinder: BlockFinder<TBlock>, cache?: CachingMechanismInterface, hints?: BlockFinderHints): Promise<number>;
47
13
  //# sourceMappingURL=BlockUtils.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"BlockUtils.d.ts","sourceRoot":"","sources":["../../../src/utils/BlockUtils.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,kCAAkC,CAAC;AAKxE,OAAO,EAAE,yBAAyB,EAAE,MAAM,eAAe,CAAC;AAI1D,KAAK,IAAI,GAAG;IACV,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB,CAAC;AAEF,KAAK,gBAAgB,GAAG;IACtB,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;CACnB,CAAC;AAuBF;;;GAGG;AACH,wBAAsB,gBAAgB,CACpC,QAAQ,EAAE,QAAQ,EAClB,EAAE,SAAS,EAAE,eAAe,EAAE,UAAU,EAAE,GAAE,IAAS,GACpD,OAAO,CAAC,IAAI,CAAC,gBAAgB,EAAE,SAAS,GAAG,YAAY,CAAC,CAAC,CAqC3D;AAQD,MAAM,MAAM,gBAAgB,GAAG;IAC7B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF,qBAAa,WAAW;IAEpB,OAAO,CAAC,QAAQ,CAAC,QAAQ;IACzB,OAAO,CAAC,QAAQ,CAAC,MAAM;gBADN,QAAQ,EAAE,QAAQ,EAClB,MAAM,GAAE,KAAK,EAAO;IAGvC;;;;OAIG;IACU,oBAAoB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,EAAE,KAAK,GAAE,gBAAqB,GAAG,OAAO,CAAC,KAAK,CAAC;YA+C7F,cAAc;YAQd,QAAQ;YAiBR,SAAS;CAgCxB;AAED;;;;;;;;GAQG;AACH,wBAAsB,0BAA0B,CAC9C,OAAO,EAAE,MAAM,EACf,SAAS,EAAE,MAAM,EACjB,WAAW,EAAE,WAAW,EACxB,KAAK,CAAC,EAAE,yBAAyB,EACjC,KAAK,CAAC,EAAE,gBAAgB,GACvB,OAAO,CAAC,MAAM,CAAC,CAkCjB"}
1
+ {"version":3,"file":"BlockUtils.d.ts","sourceRoot":"","sources":["../../../src/utils/BlockUtils.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,yBAAyB,EAAE,MAAM,eAAe,CAAC;AAE1D,OAAO,EAAE,gBAAgB,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AAGrE;;;;;;;;GAQG;AACH,wBAAsB,0BAA0B,CAAC,MAAM,SAAS,KAAK,EACnE,OAAO,EAAE,MAAM,EACf,SAAS,EAAE,MAAM,EACjB,WAAW,EAAE,WAAW,CAAC,MAAM,CAAC,EAChC,KAAK,CAAC,EAAE,yBAAyB,EACjC,KAAK,CAAC,EAAE,gBAAgB,GACvB,OAAO,CAAC,MAAM,CAAC,CAkCjB"}
@@ -5,9 +5,9 @@ export declare function spreadEvent(args: Result | Record<string, unknown>): {
5
5
  [key: string]: any;
6
6
  };
7
7
  export interface EventSearchConfig {
8
- fromBlock: number;
9
- toBlock: number;
10
- maxBlockLookBack?: number;
8
+ from: number;
9
+ to: number;
10
+ maxLookBack?: number;
11
11
  }
12
12
  export declare const eventToLog: (event: Event) => Log;
13
13
  export declare function paginatedEventQuery(contract: Contract, filter: EventFilter, searchConfig: EventSearchConfig, retryCount?: number): Promise<Log[]>;
@@ -25,7 +25,7 @@ export declare function paginatedEventQuery(contract: Contract, filter: EventFil
25
25
  * input range, but can include blocks outside of the desired range, so results should be filtered. Results
26
26
  * are ordered from smallest to largest.
27
27
  */
28
- export declare function getPaginatedBlockRanges({ fromBlock, toBlock, maxBlockLookBack, }: EventSearchConfig): [number, number][];
28
+ export declare function getPaginatedBlockRanges({ from, to, maxLookBack }: EventSearchConfig): [number, number][];
29
29
  export declare function logToSortableEvent(log: Log): SortableEvent;
30
30
  export declare function spreadEventWithBlockNumber(event: Log): SortableEvent;
31
31
  type PartialSortableEvent = Pick<SortableEvent, "blockNumber" | "logIndex">;
@@ -1 +1 @@
1
- {"version":3,"file":"EventUtils.d.ts","sourceRoot":"","sources":["../../../src/utils/EventUtils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAE5C,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,WAAW,EAAE,MAAM,QAAQ,CAAC;AACtD,OAAO,EAAE,GAAG,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAwBnD,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;CAAE,CAuE1F;AAED,MAAM,WAAW,iBAAiB;IAChC,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED,eAAO,MAAM,UAAU,UAAW,KAAK,KAAG,GAA0E,CAAC;AAErH,wBAAsB,mBAAmB,CACvC,QAAQ,EAAE,QAAQ,EAClB,MAAM,EAAE,WAAW,EACnB,YAAY,EAAE,iBAAiB,EAC/B,UAAU,SAAI,GACb,OAAO,CAAC,GAAG,EAAE,CAAC,CAgChB;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,uBAAuB,CAAC,EACtC,SAAS,EACT,OAAO,EACP,gBAAgB,GACjB,EAAE,iBAAiB,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,CAuCxC;AAED,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,GAAG,GAAG,aAAa,CAO1D;AAED,wBAAgB,0BAA0B,CAAC,KAAK,EAAE,GAAG,GAAG,aAAa,CAKpE;AAED,KAAK,oBAAoB,GAAG,IAAI,CAAC,aAAa,EAAE,aAAa,GAAG,UAAU,CAAC,CAAC;AAG5E,wBAAgB,mBAAmB,CAAC,CAAC,SAAS,oBAAoB,EAAE,MAAM,EAAE,CAAC,EAAE,GAAG,CAAC,EAAE,CAEpF;AAID,wBAAgB,0BAA0B,CAAC,CAAC,SAAS,oBAAoB,EAAE,MAAM,EAAE,CAAC,EAAE,GAAG,CAAC,EAAE,CAI3F;AAGD,wBAAgB,oBAAoB,CAAC,CAAC,SAAS,oBAAoB,EAAE,MAAM,EAAE,CAAC,EAAE,GAAG,CAAC,EAAE,CAErF;AAID,wBAAgB,2BAA2B,CAAC,CAAC,SAAS,oBAAoB,EAAE,MAAM,EAAE,CAAC,EAAE,GAAG,CAAC,EAAE,CAI5F;AAGD,wBAAgB,YAAY,CAAC,CAAC,SAAS,oBAAoB,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,GAAG,OAAO,CAElF;AAED,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,aAAa,EAAE,GAAG,MAAM,EAAE,CAEpE;AAED,wBAAgB,cAAc,CAAC,CAAC,EAAE,aAAa,EAAE,CAAC,EAAE,aAAa,GAAG,OAAO,CAE1E"}
1
+ {"version":3,"file":"EventUtils.d.ts","sourceRoot":"","sources":["../../../src/utils/EventUtils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAE5C,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,WAAW,EAAE,MAAM,QAAQ,CAAC;AACtD,OAAO,EAAE,GAAG,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAwBnD,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;CAAE,CAuE1F;AAED,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,EAAE,MAAM,CAAC;IACX,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,eAAO,MAAM,UAAU,UAAW,KAAK,KAAG,GAA0E,CAAC;AAErH,wBAAsB,mBAAmB,CACvC,QAAQ,EAAE,QAAQ,EAClB,MAAM,EAAE,WAAW,EACnB,YAAY,EAAE,iBAAiB,EAC/B,UAAU,SAAI,GACb,OAAO,CAAC,GAAG,EAAE,CAAC,CAgChB;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,uBAAuB,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,WAAW,EAAE,EAAE,iBAAiB,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,CA2CxG;AAED,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,GAAG,GAAG,aAAa,CAO1D;AAED,wBAAgB,0BAA0B,CAAC,KAAK,EAAE,GAAG,GAAG,aAAa,CAKpE;AAED,KAAK,oBAAoB,GAAG,IAAI,CAAC,aAAa,EAAE,aAAa,GAAG,UAAU,CAAC,CAAC;AAG5E,wBAAgB,mBAAmB,CAAC,CAAC,SAAS,oBAAoB,EAAE,MAAM,EAAE,CAAC,EAAE,GAAG,CAAC,EAAE,CAEpF;AAID,wBAAgB,0BAA0B,CAAC,CAAC,SAAS,oBAAoB,EAAE,MAAM,EAAE,CAAC,EAAE,GAAG,CAAC,EAAE,CAI3F;AAGD,wBAAgB,oBAAoB,CAAC,CAAC,SAAS,oBAAoB,EAAE,MAAM,EAAE,CAAC,EAAE,GAAG,CAAC,EAAE,CAErF;AAID,wBAAgB,2BAA2B,CAAC,CAAC,SAAS,oBAAoB,EAAE,MAAM,EAAE,CAAC,EAAE,GAAG,CAAC,EAAE,CAI5F;AAGD,wBAAgB,YAAY,CAAC,CAAC,SAAS,oBAAoB,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,GAAG,OAAO,CAElF;AAED,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,aAAa,EAAE,GAAG,MAAM,EAAE,CAEpE;AAED,wBAAgB,cAAc,CAAC,CAAC,EAAE,aAAa,EAAE,CAAC,EAAE,aAAa,GAAG,OAAO,CAE1E"}
@@ -1 +1 @@
1
- {"version":3,"file":"JSONUtils.d.ts","sourceRoot":"","sources":["../../../src/utils/JSONUtils.ts"],"names":[],"mappings":"AAGA;;;;;;;GAOG;AACH,wBAAgB,0BAA0B,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,GAAG,SAAS,CAWlF;AAED;;;;;;GAMG;AACH,wBAAgB,8BAA8B,CAAC,GAAG,EAAE,OAAO,GAAG,MAAM,CAOnE;AAED;;;;;GAKG;AACH,wBAAgB,0BAA0B,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,GAAG,OAAO,CAoBhF;AAED;;;;;GAKG;AACH,wBAAgB,yBAAyB,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,GAAG,OAAO,CAU/E;AAED;;GAEG;AACH,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,GAAG,OAAO,CAE7E;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,GAAG,OAAO,CAE5E"}
1
+ {"version":3,"file":"JSONUtils.d.ts","sourceRoot":"","sources":["../../../src/utils/JSONUtils.ts"],"names":[],"mappings":"AAGA;;;;;;;GAOG;AACH,wBAAgB,0BAA0B,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,GAAG,SAAS,CAWlF;AAED;;;;;;GAMG;AACH,wBAAgB,8BAA8B,CAAC,GAAG,EAAE,OAAO,GAAG,MAAM,CASnE;AAED;;;;;GAKG;AACH,wBAAgB,0BAA0B,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,GAAG,OAAO,CAoBhF;AAED;;;;;GAKG;AACH,wBAAgB,yBAAyB,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,GAAG,OAAO,CAU/E;AAED;;GAEG;AACH,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,GAAG,OAAO,CAE7E;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,GAAG,OAAO,CAE5E"}
@@ -10,4 +10,11 @@ export declare function isInteger(value: unknown): value is number;
10
10
  * @returns True if the value is a number, an integer, and greater than zero, false otherwise.
11
11
  */
12
12
  export declare function isPositiveInteger(value: unknown): value is number;
13
+ /**
14
+ * Returns a random integer between min (inclusive) and max (exclusive).
15
+ * @param min The minimum value (inclusive).
16
+ * @param max The maximum value (exclusive). Defaults to 1000000.
17
+ * @returns A random integer between min and max.
18
+ */
19
+ export declare function getRandomInt(min?: number, max?: number): number;
13
20
  //# sourceMappingURL=NumberUtils.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"NumberUtils.d.ts","sourceRoot":"","sources":["../../../src/utils/NumberUtils.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,wBAAgB,SAAS,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,MAAM,CAEzD;AAED;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,MAAM,CAEjE"}
1
+ {"version":3,"file":"NumberUtils.d.ts","sourceRoot":"","sources":["../../../src/utils/NumberUtils.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,wBAAgB,SAAS,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,MAAM,CAEzD;AAED;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,MAAM,CAEjE;AAED;;;;;GAKG;AACH,wBAAgB,YAAY,CAAC,GAAG,GAAE,MAAU,EAAE,GAAG,GAAE,MAAgB,UAElE"}
@@ -1 +1 @@
1
- {"version":3,"file":"SpokeUtils.d.ts","sourceRoot":"","sources":["../../../src/utils/SpokeUtils.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAEnD,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAG7C;;;;GAIG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,aAAa,CAAC,GAAG,SAAS,CAepF;AAED;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,SAAS,EAAE,SAAS,EAAE,kBAAkB,EAAE,MAAM,GAAG,MAAM,CAgCzF;AAED,wBAAgB,qBAAqB,CAAC,CAAC,EAAE,SAAS,GAAG;IAAE,kBAAkB,EAAE,MAAM,CAAA;CAAE,GAAG,MAAM,CAE3F;AAED,wBAAgB,iBAAiB,CAAC,SAAS,EAAE,SAAS,GAAG,OAAO,CAQ/D;AAGD,wBAAgB,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAEtD;AAED,wBAAgB,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAEtD"}
1
+ {"version":3,"file":"SpokeUtils.d.ts","sourceRoot":"","sources":["../../../src/utils/SpokeUtils.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAEnD,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAK7C;;;;GAIG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,aAAa,CAAC,GAAG,SAAS,CAepF;AAED;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,SAAS,EAAE,SAAS,EAAE,kBAAkB,EAAE,MAAM,GAAG,MAAM,CAkCzF;AAED,wBAAgB,qBAAqB,CAAC,CAAC,EAAE,SAAS,GAAG;IAAE,kBAAkB,EAAE,MAAM,CAAA;CAAE,GAAG,MAAM,CAE3F;AAED,wBAAgB,iBAAiB,CAAC,SAAS,EAAE,SAAS,GAAG,OAAO,CAQ/D;AAGD,wBAAgB,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAEtD;AAED,wBAAgB,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAEtD"}
@@ -2,6 +2,7 @@ export * from "./common";
2
2
  export * from "./abi";
3
3
  export * from "./ArrayUtils";
4
4
  export * from "./BlockUtils";
5
+ export * from "./BlockFinder";
5
6
  export * from "./EventUtils";
6
7
  export * from "./ObjectUtils";
7
8
  export * from "./TimeUtils";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/utils/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAC;AACzB,cAAc,OAAO,CAAC;AACtB,cAAc,cAAc,CAAC;AAC7B,cAAc,cAAc,CAAC;AAC7B,cAAc,cAAc,CAAC;AAC7B,cAAc,eAAe,CAAC;AAC9B,cAAc,aAAa,CAAC;AAC5B,cAAc,cAAc,CAAC;AAC7B,cAAc,aAAa,CAAC;AAC5B,cAAc,cAAc,CAAC;AAC7B,cAAc,YAAY,CAAC;AAC3B,cAAc,eAAe,CAAC;AAC9B,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,eAAe,CAAC;AAC9B,cAAc,mBAAmB,CAAC;AAClC,cAAc,mBAAmB,CAAC;AAClC,cAAc,sBAAsB,CAAC;AACrC,cAAc,kBAAkB,CAAC;AACjC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC;AAC5B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,kBAAkB,CAAC;AACjC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,cAAc,CAAC;AAC7B,cAAc,WAAW,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/utils/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAC;AACzB,cAAc,OAAO,CAAC;AACtB,cAAc,cAAc,CAAC;AAC7B,cAAc,cAAc,CAAC;AAC7B,cAAc,eAAe,CAAC;AAC9B,cAAc,cAAc,CAAC;AAC7B,cAAc,eAAe,CAAC;AAC9B,cAAc,aAAa,CAAC;AAC5B,cAAc,cAAc,CAAC;AAC7B,cAAc,aAAa,CAAC;AAC5B,cAAc,cAAc,CAAC;AAC7B,cAAc,YAAY,CAAC;AAC3B,cAAc,eAAe,CAAC;AAC9B,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,eAAe,CAAC;AAC9B,cAAc,mBAAmB,CAAC;AAClC,cAAc,mBAAmB,CAAC;AAClC,cAAc,sBAAsB,CAAC;AACrC,cAAc,kBAAkB,CAAC;AACjC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC;AAC5B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,kBAAkB,CAAC;AACjC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,cAAc,CAAC;AAC7B,cAAc,WAAW,CAAC"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@across-protocol/sdk",
3
3
  "author": "UMA Team",
4
- "version": "4.1.63",
4
+ "version": "4.2.0",
5
5
  "license": "AGPL-3.0",
6
6
  "homepage": "https://docs.across.to/reference/sdk",
7
7
  "files": [
@@ -111,6 +111,8 @@
111
111
  "@ethersproject/bignumber": "^5.7.0",
112
112
  "@pinata/sdk": "^2.1.0",
113
113
  "@solana/kit": "^2.1.0",
114
+ "@solana-program/system": "^0.7.0",
115
+ "@solana-program/token-2022": "^0.4.0",
114
116
  "@solana/web3.js": "^1.31.0",
115
117
  "@types/mocha": "^10.0.1",
116
118
  "@uma/sdk": "^0.34.10",
@@ -0,0 +1,209 @@
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
+ }