@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,449 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getRelayDataHash = exports.getAssociatedTokenAddress = exports.createApproveInstruction = exports.createTokenAccountsInstruction = exports.fillRelayInstruction = exports.findFillEvent = exports.fillStatusArray = exports.relayFillStatus = exports.findDeposit = exports.getDepositIdAtBlock = exports.getFillDeadline = exports.getTimestampForSlot = exports.SLOT_DURATION_MS = void 0;
4
+ var tslib_1 = require("tslib");
5
+ var contracts_1 = require("@across-protocol/contracts");
6
+ var SvmSpoke_1 = require("@across-protocol/contracts/dist/src/svm/clients/SvmSpoke");
7
+ var web3_v1_1 = require("@across-protocol/contracts/dist/src/svm/web3-v1");
8
+ var token_1 = require("@solana-program/token");
9
+ var kit_1 = require("@solana/kit");
10
+ var assert_1 = tslib_1.__importDefault(require("assert"));
11
+ var utils_1 = require("ethers/lib/utils");
12
+ var constants_1 = require("../../constants");
13
+ var interfaces_1 = require("../../interfaces");
14
+ var utils_2 = require("../../utils");
15
+ var _1 = require("./");
16
+ var types_1 = require("./types");
17
+ exports.SLOT_DURATION_MS = 400;
18
+ function getTimestampForSlot(provider, slotNumber) {
19
+ return tslib_1.__awaiter(this, void 0, void 0, function () {
20
+ var slotTime;
21
+ return tslib_1.__generator(this, function (_a) {
22
+ switch (_a.label) {
23
+ case 0: return [4, provider.getBlockTime(BigInt(slotNumber)).send()];
24
+ case 1:
25
+ slotTime = _a.sent();
26
+ return [2, Number(slotTime)];
27
+ }
28
+ });
29
+ });
30
+ }
31
+ exports.getTimestampForSlot = getTimestampForSlot;
32
+ function getFillDeadline(provider, statePda) {
33
+ return tslib_1.__awaiter(this, void 0, void 0, function () {
34
+ var state;
35
+ return tslib_1.__generator(this, function (_a) {
36
+ switch (_a.label) {
37
+ case 0: return [4, (0, SvmSpoke_1.fetchState)(provider, statePda)];
38
+ case 1:
39
+ state = _a.sent();
40
+ return [2, state.data.fillDeadlineBuffer];
41
+ }
42
+ });
43
+ });
44
+ }
45
+ exports.getFillDeadline = getFillDeadline;
46
+ function getDepositIdAtBlock(_contract, _blockTag) {
47
+ throw new Error("getDepositIdAtBlock: not implemented");
48
+ }
49
+ exports.getDepositIdAtBlock = getDepositIdAtBlock;
50
+ function findDeposit(eventClient, depositId, slot, secondsLookback) {
51
+ var _a;
52
+ if (secondsLookback === void 0) { secondsLookback = 2 * 24 * 60 * 60; }
53
+ return tslib_1.__awaiter(this, void 0, void 0, function () {
54
+ var provider, currentSlot, endSlot, slotsInElapsed, startSlot, depositEvent;
55
+ return tslib_1.__generator(this, function (_b) {
56
+ switch (_b.label) {
57
+ case 0:
58
+ if ((0, utils_2.isUnsafeDepositId)(depositId)) {
59
+ throw new Error("Cannot binary search for depositId ".concat(depositId));
60
+ }
61
+ provider = eventClient.getRpc();
62
+ return [4, provider.getSlot({ commitment: "confirmed" }).send()];
63
+ case 1:
64
+ currentSlot = _b.sent();
65
+ endSlot = slot !== undefined ? BigInt(Math.min(Number(slot), Number(currentSlot))) : currentSlot;
66
+ slotsInElapsed = BigInt(Math.round((secondsLookback * 1000) / exports.SLOT_DURATION_MS));
67
+ startSlot = endSlot - slotsInElapsed;
68
+ return [4, eventClient.queryEvents("FundsDeposited", startSlot, endSlot)];
69
+ case 2:
70
+ depositEvent = (_a = (_b.sent())) === null || _a === void 0 ? void 0 : _a.find(function (event) {
71
+ return depositId.eq(event.data.depositId);
72
+ });
73
+ if (!depositEvent) {
74
+ return [2, undefined];
75
+ }
76
+ return [2, tslib_1.__assign({ txnRef: depositEvent.signature.toString(), blockNumber: Number(depositEvent.slot), txnIndex: 0, logIndex: 0 }, (0, _1.unwrapEventData)(depositEvent.data))];
77
+ }
78
+ });
79
+ });
80
+ }
81
+ exports.findDeposit = findDeposit;
82
+ function relayFillStatus(programId, relayData, destinationChainId, svmEventsClient, atHeight) {
83
+ return tslib_1.__awaiter(this, void 0, void 0, function () {
84
+ var provider, fillStatusPda, currentSlot, _a, fillStatusAccount, currentSlotTimestamp, decodedAccountData, toSlot;
85
+ return tslib_1.__generator(this, function (_b) {
86
+ switch (_b.label) {
87
+ case 0:
88
+ (0, assert_1.default)((0, utils_2.chainIsSvm)(destinationChainId), "Destination chain must be an SVM chain");
89
+ provider = svmEventsClient.getRpc();
90
+ return [4, (0, _1.getFillStatusPda)(programId, relayData, destinationChainId)];
91
+ case 1:
92
+ fillStatusPda = _b.sent();
93
+ return [4, provider.getSlot({ commitment: "confirmed" }).send()];
94
+ case 2:
95
+ currentSlot = _b.sent();
96
+ if (!(atHeight === undefined)) return [3, 4];
97
+ return [4, Promise.all([
98
+ (0, kit_1.fetchEncodedAccount)(provider, fillStatusPda, { commitment: "confirmed" }),
99
+ provider.getBlockTime(currentSlot).send(),
100
+ ])];
101
+ case 3:
102
+ _a = _b.sent(), fillStatusAccount = _a[0], currentSlotTimestamp = _a[1];
103
+ if (fillStatusAccount.exists) {
104
+ decodedAccountData = (0, SvmSpoke_1.decodeFillStatusAccount)(fillStatusAccount);
105
+ return [2, decodedAccountData.data.status];
106
+ }
107
+ else if (Number(currentSlotTimestamp) < relayData.fillDeadline) {
108
+ return [2, interfaces_1.FillStatus.Unfilled];
109
+ }
110
+ _b.label = 4;
111
+ case 4:
112
+ toSlot = atHeight ? BigInt(atHeight) : currentSlot;
113
+ return [2, resolveFillStatusFromPdaEvents(fillStatusPda, toSlot, svmEventsClient)];
114
+ }
115
+ });
116
+ });
117
+ }
118
+ exports.relayFillStatus = relayFillStatus;
119
+ function fillStatusArray(programId, relayData, destinationChainId, svmEventsClient, atHeight, logger) {
120
+ return tslib_1.__awaiter(this, void 0, void 0, function () {
121
+ var provider, chunkSize, chunkedRelayData, fillStatusPdas, fillStatuses, _a, missingStatuses, missingChunked, missingResults, toSlot, _b, _i, missingChunked_1, chunk_1, chunkResults;
122
+ var _this = this;
123
+ return tslib_1.__generator(this, function (_c) {
124
+ switch (_c.label) {
125
+ case 0:
126
+ (0, assert_1.default)((0, utils_2.chainIsSvm)(destinationChainId), "Destination chain must be an SVM chain");
127
+ provider = svmEventsClient.getRpc();
128
+ chunkSize = 100;
129
+ chunkedRelayData = (0, utils_2.chunk)(relayData, chunkSize);
130
+ return [4, Promise.all(chunkedRelayData.map(function (relayDataChunk) {
131
+ return Promise.all(relayDataChunk.map(function (relayData) { return (0, _1.getFillStatusPda)(programId, relayData, destinationChainId); }));
132
+ }))];
133
+ case 1:
134
+ fillStatusPdas = (_c.sent()).flat();
135
+ if (atHeight !== undefined && logger) {
136
+ logger.warn({
137
+ at: "SvmSpokeUtils#fillStatusArray",
138
+ message: "Querying specific slots for large arrays is slow. For current status, omit 'atHeight' param to use latest confirmed slot instead.",
139
+ });
140
+ }
141
+ if (!(atHeight === undefined)) return [3, 3];
142
+ return [4, fetchBatchFillStatusFromPdaAccounts(provider, fillStatusPdas, relayData)];
143
+ case 2:
144
+ _a = _c.sent();
145
+ return [3, 4];
146
+ case 3:
147
+ _a = new Array(relayData.length).fill(undefined);
148
+ _c.label = 4;
149
+ case 4:
150
+ fillStatuses = _a;
151
+ missingStatuses = fillStatuses.reduce(function (acc, status, index) {
152
+ if (status === undefined) {
153
+ acc.push(index);
154
+ }
155
+ return acc;
156
+ }, []);
157
+ missingChunked = (0, utils_2.chunk)(missingStatuses, chunkSize);
158
+ missingResults = [];
159
+ if (!atHeight) return [3, 5];
160
+ _b = BigInt(atHeight);
161
+ return [3, 7];
162
+ case 5: return [4, provider.getSlot({ commitment: "confirmed" }).send()];
163
+ case 6:
164
+ _b = _c.sent();
165
+ _c.label = 7;
166
+ case 7:
167
+ toSlot = _b;
168
+ _i = 0, missingChunked_1 = missingChunked;
169
+ _c.label = 8;
170
+ case 8:
171
+ if (!(_i < missingChunked_1.length)) return [3, 11];
172
+ chunk_1 = missingChunked_1[_i];
173
+ return [4, Promise.all(chunk_1.map(function (missingIndex) { return tslib_1.__awaiter(_this, void 0, void 0, function () {
174
+ var _a;
175
+ return tslib_1.__generator(this, function (_b) {
176
+ switch (_b.label) {
177
+ case 0:
178
+ _a = {
179
+ index: missingIndex
180
+ };
181
+ return [4, resolveFillStatusFromPdaEvents(fillStatusPdas[missingIndex], toSlot, svmEventsClient)];
182
+ case 1: return [2, (_a.fillStatus = _b.sent(),
183
+ _a)];
184
+ }
185
+ });
186
+ }); }))];
187
+ case 9:
188
+ chunkResults = _c.sent();
189
+ missingResults.push.apply(missingResults, chunkResults);
190
+ _c.label = 10;
191
+ case 10:
192
+ _i++;
193
+ return [3, 8];
194
+ case 11:
195
+ missingResults.forEach(function (_a) {
196
+ var index = _a.index, fillStatus = _a.fillStatus;
197
+ fillStatuses[index] = fillStatus;
198
+ });
199
+ return [2, fillStatuses];
200
+ }
201
+ });
202
+ });
203
+ }
204
+ exports.fillStatusArray = fillStatusArray;
205
+ function findFillEvent(relayData, destinationChainId, svmEventsClient, fromSlot, toSlot) {
206
+ return tslib_1.__awaiter(this, void 0, void 0, function () {
207
+ var _a, _b, programId, fillStatusPda, fillEvents, rawFillEvent, parsedFillEvent;
208
+ return tslib_1.__generator(this, function (_c) {
209
+ switch (_c.label) {
210
+ case 0:
211
+ (0, assert_1.default)((0, utils_2.chainIsSvm)(destinationChainId), "Destination chain must be an SVM chain");
212
+ if (!(toSlot !== null && toSlot !== void 0)) return [3, 1];
213
+ _a = toSlot;
214
+ return [3, 3];
215
+ case 1:
216
+ _b = Number;
217
+ return [4, svmEventsClient.getRpc().getSlot({ commitment: "confirmed" }).send()];
218
+ case 2:
219
+ _a = (toSlot = _b.apply(void 0, [_c.sent()]));
220
+ _c.label = 3;
221
+ case 3:
222
+ _a;
223
+ programId = svmEventsClient.getProgramAddress();
224
+ return [4, (0, _1.getFillStatusPda)(programId, relayData, destinationChainId)];
225
+ case 4:
226
+ fillStatusPda = _c.sent();
227
+ return [4, svmEventsClient.queryDerivedAddressEvents(types_1.SVMEventNames.FilledRelay, fillStatusPda, BigInt(fromSlot), BigInt(toSlot), { limit: 10 })];
228
+ case 5:
229
+ fillEvents = _c.sent();
230
+ (0, assert_1.default)(fillEvents.length <= 1, "Expected at most one fill event for ".concat(fillStatusPda, ", got ").concat(fillEvents.length));
231
+ if (fillEvents.length > 0) {
232
+ rawFillEvent = fillEvents[0];
233
+ parsedFillEvent = tslib_1.__assign({ transactionHash: rawFillEvent.signature, blockNumber: Number(rawFillEvent.slot), transactionIndex: 0, logIndex: 0, destinationChainId: destinationChainId }, (0, _1.unwrapEventData)(rawFillEvent.data));
234
+ return [2, parsedFillEvent];
235
+ }
236
+ return [2, undefined];
237
+ }
238
+ });
239
+ });
240
+ }
241
+ exports.findFillEvent = findFillEvent;
242
+ function fillRelayInstruction(spokePool, deposit, relayer, recipientTokenAccount, repaymentChainId) {
243
+ if (repaymentChainId === void 0) { repaymentChainId = deposit.destinationChainId; }
244
+ return tslib_1.__awaiter(this, void 0, void 0, function () {
245
+ var programId, relayerAddress, _a, depositor, recipient, exclusiveRelayer, inputToken, outputToken, _relayDataHash, relayDataHash, relayerTokenAccount, _b, statePda, fillStatusPda, eventAuthority, depositIdBuffer, shortenedBuffer;
246
+ return tslib_1.__generator(this, function (_c) {
247
+ switch (_c.label) {
248
+ case 0:
249
+ programId = spokePool.toBase58();
250
+ relayerAddress = utils_2.SvmAddress.from(relayer.address);
251
+ _a = [
252
+ deposit.depositor,
253
+ deposit.recipient,
254
+ deposit.exclusiveRelayer,
255
+ deposit.inputToken,
256
+ deposit.outputToken,
257
+ ].map(function (addr) { return (0, utils_2.toAddressType)(addr).forceSvmAddress(); }), depositor = _a[0], recipient = _a[1], exclusiveRelayer = _a[2], inputToken = _a[3], outputToken = _a[4];
258
+ _relayDataHash = getRelayDataHash(deposit, deposit.destinationChainId);
259
+ relayDataHash = new Uint8Array(Buffer.from(_relayDataHash.slice(2), "hex"));
260
+ return [4, getAssociatedTokenAddress(relayerAddress, outputToken)];
261
+ case 1:
262
+ relayerTokenAccount = _c.sent();
263
+ return [4, Promise.all([
264
+ (0, _1.getStatePda)(spokePool.toV2Address()),
265
+ (0, _1.getFillStatusPda)(spokePool.toV2Address(), deposit, deposit.destinationChainId),
266
+ (0, _1.getEventAuthority)(),
267
+ ])];
268
+ case 2:
269
+ _b = _c.sent(), statePda = _b[0], fillStatusPda = _b[1], eventAuthority = _b[2];
270
+ depositIdBuffer = new Uint8Array(32);
271
+ shortenedBuffer = new Uint8Array(Buffer.from(deposit.depositId.toHexString().slice(2), "hex"));
272
+ depositIdBuffer.set(shortenedBuffer, 32 - shortenedBuffer.length);
273
+ return [2, contracts_1.SvmSpokeClient.getFillRelayInstruction({
274
+ signer: relayer,
275
+ state: statePda,
276
+ mint: outputToken.toV2Address(),
277
+ relayerTokenAccount: relayerTokenAccount,
278
+ recipientTokenAccount: recipientTokenAccount,
279
+ fillStatus: fillStatusPda,
280
+ eventAuthority: eventAuthority,
281
+ program: (0, kit_1.address)(programId),
282
+ relayHash: relayDataHash,
283
+ relayData: (0, kit_1.some)({
284
+ depositor: depositor.toV2Address(),
285
+ recipient: recipient.toV2Address(),
286
+ exclusiveRelayer: exclusiveRelayer.toV2Address(),
287
+ inputToken: inputToken.toV2Address(),
288
+ outputToken: outputToken.toV2Address(),
289
+ inputAmount: deposit.inputAmount.toBigInt(),
290
+ outputAmount: deposit.outputAmount.toBigInt(),
291
+ originChainId: BigInt(deposit.originChainId),
292
+ fillDeadline: deposit.fillDeadline,
293
+ exclusivityDeadline: deposit.exclusivityDeadline,
294
+ depositId: depositIdBuffer,
295
+ message: new Uint8Array(Buffer.from(deposit.message.slice(2), "hex")),
296
+ }),
297
+ repaymentChainId: (0, kit_1.some)(BigInt(repaymentChainId)),
298
+ repaymentAddress: (0, kit_1.some)(relayerAddress.toV2Address()),
299
+ })];
300
+ }
301
+ });
302
+ });
303
+ }
304
+ exports.fillRelayInstruction = fillRelayInstruction;
305
+ function createTokenAccountsInstruction(mint, relayer) {
306
+ return contracts_1.SvmSpokeClient.getCreateTokenAccountsInstruction({
307
+ signer: relayer,
308
+ mint: mint.toV2Address(),
309
+ });
310
+ }
311
+ exports.createTokenAccountsInstruction = createTokenAccountsInstruction;
312
+ function createApproveInstruction(mint, amount, relayer, spokePool, mintDecimals) {
313
+ var _a;
314
+ return tslib_1.__awaiter(this, void 0, void 0, function () {
315
+ var _b, relayerTokenAccount, statePda;
316
+ return tslib_1.__generator(this, function (_c) {
317
+ switch (_c.label) {
318
+ case 0: return [4, Promise.all([
319
+ getAssociatedTokenAddress(relayer, mint, token_1.TOKEN_PROGRAM_ADDRESS),
320
+ (0, _1.getStatePda)(spokePool.toV2Address()),
321
+ ])];
322
+ case 1:
323
+ _b = _c.sent(), relayerTokenAccount = _b[0], statePda = _b[1];
324
+ mintDecimals !== null && mintDecimals !== void 0 ? mintDecimals : (mintDecimals = (_a = (0, utils_2.getTokenInfo)(mint.toBase58(), constants_1.CHAIN_IDs.SOLANA)) === null || _a === void 0 ? void 0 : _a.decimals);
325
+ if (!(0, utils_2.isDefined)(mintDecimals)) {
326
+ throw new Error("No mint decimals found for token ".concat(mint.toBase58()));
327
+ }
328
+ return [2, (0, token_1.getApproveCheckedInstruction)({
329
+ source: relayerTokenAccount,
330
+ mint: mint.toV2Address(),
331
+ delegate: statePda,
332
+ owner: relayer.toV2Address(),
333
+ amount: amount.toBigInt(),
334
+ decimals: mintDecimals,
335
+ })];
336
+ }
337
+ });
338
+ });
339
+ }
340
+ exports.createApproveInstruction = createApproveInstruction;
341
+ function getAssociatedTokenAddress(owner, mint, tokenProgramId) {
342
+ if (tokenProgramId === void 0) { tokenProgramId = token_1.TOKEN_PROGRAM_ADDRESS; }
343
+ return tslib_1.__awaiter(this, void 0, void 0, function () {
344
+ var associatedToken;
345
+ return tslib_1.__generator(this, function (_a) {
346
+ switch (_a.label) {
347
+ case 0: return [4, (0, kit_1.getProgramDerivedAddress)({
348
+ programAddress: token_1.ASSOCIATED_TOKEN_PROGRAM_ADDRESS,
349
+ seeds: [
350
+ new Uint8Array(owner.toBuffer()),
351
+ new Uint8Array(utils_2.SvmAddress.from(tokenProgramId).toBuffer()),
352
+ new Uint8Array(mint.toBuffer()),
353
+ ],
354
+ })];
355
+ case 1:
356
+ associatedToken = (_a.sent())[0];
357
+ return [2, associatedToken];
358
+ }
359
+ });
360
+ });
361
+ }
362
+ exports.getAssociatedTokenAddress = getAssociatedTokenAddress;
363
+ function getRelayDataHash(relayData, destinationChainId) {
364
+ var addressEncoder = (0, kit_1.getAddressEncoder)();
365
+ var uint64Encoder = (0, kit_1.getU64Encoder)();
366
+ var uint32Encoder = (0, kit_1.getU32Encoder)();
367
+ (0, assert_1.default)(relayData.message.startsWith("0x"), "Message must be a hex string");
368
+ var contentToHash = Buffer.concat([
369
+ Uint8Array.from(addressEncoder.encode(utils_2.SvmAddress.from(relayData.depositor, "base16").toV2Address())),
370
+ Uint8Array.from(addressEncoder.encode(utils_2.SvmAddress.from(relayData.recipient, "base16").toV2Address())),
371
+ Uint8Array.from(addressEncoder.encode(utils_2.SvmAddress.from(relayData.exclusiveRelayer, "base16").toV2Address())),
372
+ Uint8Array.from(addressEncoder.encode(utils_2.SvmAddress.from(relayData.inputToken, "base16").toV2Address())),
373
+ Uint8Array.from(addressEncoder.encode(utils_2.SvmAddress.from(relayData.outputToken, "base16").toV2Address())),
374
+ Uint8Array.from(uint64Encoder.encode(BigInt(relayData.inputAmount.toString()))),
375
+ Uint8Array.from(uint64Encoder.encode(BigInt(relayData.outputAmount.toString()))),
376
+ Uint8Array.from(uint64Encoder.encode(BigInt(relayData.originChainId.toString()))),
377
+ (0, utils_1.arrayify)((0, utils_1.hexZeroPad)((0, utils_1.hexlify)(relayData.depositId), 32)),
378
+ Uint8Array.from(uint32Encoder.encode(relayData.fillDeadline)),
379
+ Uint8Array.from(uint32Encoder.encode(relayData.exclusivityDeadline)),
380
+ (0, web3_v1_1.hashNonEmptyMessage)(Buffer.from((0, utils_1.arrayify)(relayData.message))),
381
+ Uint8Array.from(uint64Encoder.encode(BigInt(destinationChainId))),
382
+ ]);
383
+ return (0, utils_2.keccak256)(contentToHash);
384
+ }
385
+ exports.getRelayDataHash = getRelayDataHash;
386
+ function resolveFillStatusFromPdaEvents(fillStatusPda, toSlot, svmEventsClient) {
387
+ return tslib_1.__awaiter(this, void 0, void 0, function () {
388
+ var eventsToQuery, relevantEvents, fillStatusEvent;
389
+ return tslib_1.__generator(this, function (_a) {
390
+ switch (_a.label) {
391
+ case 0:
392
+ eventsToQuery = [types_1.SVMEventNames.FilledRelay, types_1.SVMEventNames.RequestedSlowFill];
393
+ return [4, Promise.all(eventsToQuery.map(function (eventName) {
394
+ return svmEventsClient.queryDerivedAddressEvents(eventName, fillStatusPda, undefined, toSlot, { limit: 10 });
395
+ }))];
396
+ case 1:
397
+ relevantEvents = (_a.sent()).flat();
398
+ if (relevantEvents.length === 0) {
399
+ return [2, interfaces_1.FillStatus.Unfilled];
400
+ }
401
+ relevantEvents.sort(function (a, b) { return Number(a.slot - b.slot); });
402
+ fillStatusEvent = relevantEvents.pop();
403
+ switch (fillStatusEvent.name) {
404
+ case types_1.SVMEventNames.FilledRelay:
405
+ return [2, interfaces_1.FillStatus.Filled];
406
+ case types_1.SVMEventNames.RequestedSlowFill:
407
+ return [2, interfaces_1.FillStatus.RequestedSlowFill];
408
+ default:
409
+ throw new Error("Unexpected event name: ".concat(fillStatusEvent.name));
410
+ }
411
+ return [2];
412
+ }
413
+ });
414
+ });
415
+ }
416
+ function fetchBatchFillStatusFromPdaAccounts(provider, fillStatusPdas, relayDataArray) {
417
+ return tslib_1.__awaiter(this, void 0, void 0, function () {
418
+ var chunkSize, currentSlot, _a, pdaAccounts, currentSlotTimestamp, fillStatuses;
419
+ return tslib_1.__generator(this, function (_b) {
420
+ switch (_b.label) {
421
+ case 0:
422
+ chunkSize = 100;
423
+ return [4, provider.getSlot({ commitment: "confirmed" }).send()];
424
+ case 1:
425
+ currentSlot = _b.sent();
426
+ return [4, Promise.all([
427
+ Promise.all((0, utils_2.chunk)(fillStatusPdas, chunkSize).map(function (chunk) {
428
+ return (0, kit_1.fetchEncodedAccounts)(provider, chunk, { commitment: "confirmed" });
429
+ })),
430
+ provider.getBlockTime(currentSlot).send(),
431
+ ])];
432
+ case 2:
433
+ _a = _b.sent(), pdaAccounts = _a[0], currentSlotTimestamp = _a[1];
434
+ fillStatuses = pdaAccounts.flat().map(function (account, index) {
435
+ if (account.exists) {
436
+ var decodedAccount = (0, SvmSpoke_1.decodeFillStatusAccount)(account);
437
+ return decodedAccount.data.status;
438
+ }
439
+ else if (Number(currentSlotTimestamp) < relayDataArray[index].fillDeadline) {
440
+ return interfaces_1.FillStatus.Unfilled;
441
+ }
442
+ return undefined;
443
+ });
444
+ return [2, fillStatuses];
445
+ }
446
+ });
447
+ });
448
+ }
449
+ //# sourceMappingURL=SpokeUtils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SpokeUtils.js","sourceRoot":"","sources":["../../../../src/arch/svm/SpokeUtils.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export { SYSTEM_PROGRAM_ADDRESS as SVM_DEFAULT_ADDRESS } from "@solana-program/system";
2
+ export declare const SVM_SPOKE_SEED: bigint;
@@ -0,0 +1,7 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.SVM_SPOKE_SEED = exports.SVM_DEFAULT_ADDRESS = void 0;
4
+ var system_1 = require("@solana-program/system");
5
+ Object.defineProperty(exports, "SVM_DEFAULT_ADDRESS", { enumerable: true, get: function () { return system_1.SYSTEM_PROGRAM_ADDRESS; } });
6
+ exports.SVM_SPOKE_SEED = BigInt(0);
7
+ //# sourceMappingURL=constants.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../../src/arch/svm/constants.ts"],"names":[],"mappings":";;;AAAA,iDAAuF;AAA9E,6GAAA,sBAAsB,OAAuB;AACzC,QAAA,cAAc,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC"}
@@ -0,0 +1,26 @@
1
+ import { Idl } from "@coral-xyz/anchor";
2
+ import { Address, Commitment, GetSignaturesForAddressApi, Signature } from "@solana/kit";
3
+ import { EventName, EventWithData, SVMProvider } from "./types";
4
+ import { DepositWithTime, FillWithTime } from "../../interfaces";
5
+ type GetSignaturesForAddressConfig = Parameters<GetSignaturesForAddressApi["getSignaturesForAddress"]>[1];
6
+ export type DepositEventFromSignature = Omit<DepositWithTime, "fromLiteChain" | "toLiteChain">;
7
+ export type FillEventFromSignature = FillWithTime;
8
+ export declare class SvmCpiEventsClient {
9
+ private rpc;
10
+ private programAddress;
11
+ private programEventAuthority;
12
+ private idl;
13
+ protected constructor(rpc: SVMProvider, address: Address, eventAuthority: Address, idl: Idl);
14
+ static create(rpc: SVMProvider): Promise<SvmCpiEventsClient>;
15
+ static createFor(rpc: SVMProvider, programId: string, idl: Idl): Promise<SvmCpiEventsClient>;
16
+ queryEvents(eventName: EventName, fromSlot?: bigint, toSlot?: bigint, options?: GetSignaturesForAddressConfig): Promise<EventWithData[]>;
17
+ queryDerivedAddressEvents(eventName: string, derivedAddress: Address, fromSlot?: bigint, toSlot?: bigint, options?: GetSignaturesForAddressConfig): Promise<EventWithData[]>;
18
+ private queryAllEvents;
19
+ private readEventsFromSignature;
20
+ private processEventFromTx;
21
+ getDepositEventsFromSignature(originChainId: number, txSignature: Signature, commitment?: Commitment): Promise<DepositEventFromSignature[] | undefined>;
22
+ getFillEventsFromSignature(destinationChainId: number, txSignature: Signature, commitment?: Commitment): Promise<FillEventFromSignature[] | undefined>;
23
+ getProgramAddress(): Address;
24
+ getRpc(): SVMProvider;
25
+ }
26
+ export {};