@across-protocol/sdk 4.1.63-alpha.1 → 4.1.63-beta.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 (358) hide show
  1. package/dist/cjs/arch/evm/SpokeUtils.d.ts +1 -1
  2. package/dist/cjs/arch/evm/SpokeUtils.js +6 -5
  3. package/dist/cjs/arch/evm/SpokeUtils.js.map +1 -1
  4. package/dist/cjs/arch/svm/SpokeUtils.d.ts +20 -0
  5. package/dist/cjs/arch/svm/SpokeUtils.js +428 -0
  6. package/dist/cjs/arch/svm/SpokeUtils.js.map +1 -0
  7. package/dist/cjs/arch/svm/constants.d.ts +1 -0
  8. package/dist/cjs/arch/svm/constants.js +5 -0
  9. package/dist/cjs/arch/svm/constants.js.map +1 -0
  10. package/dist/cjs/arch/svm/eventsClient.d.ts +21 -0
  11. package/dist/cjs/{svm → arch/svm}/eventsClient.js +60 -28
  12. package/dist/cjs/arch/svm/eventsClient.js.map +1 -0
  13. package/dist/cjs/arch/svm/index.d.ts +5 -1
  14. package/dist/cjs/arch/svm/index.js +6 -2
  15. package/dist/cjs/arch/svm/index.js.map +1 -1
  16. package/dist/cjs/{svm → arch/svm}/types.d.ts +9 -4
  17. package/dist/cjs/arch/svm/types.js.map +1 -0
  18. package/dist/cjs/arch/svm/utils.d.ts +17 -0
  19. package/dist/cjs/arch/svm/utils.js +204 -0
  20. package/dist/cjs/arch/svm/utils.js.map +1 -0
  21. package/dist/cjs/clients/AcrossConfigStoreClient/AcrossConfigStoreClient.d.ts +1 -1
  22. package/dist/cjs/clients/AcrossConfigStoreClient/AcrossConfigStoreClient.js +7 -7
  23. package/dist/cjs/clients/AcrossConfigStoreClient/AcrossConfigStoreClient.js.map +1 -1
  24. package/dist/cjs/clients/BaseAbstractClient.d.ts +6 -5
  25. package/dist/cjs/clients/BaseAbstractClient.js +30 -19
  26. package/dist/cjs/clients/BaseAbstractClient.js.map +1 -1
  27. package/dist/cjs/clients/BundleDataClient/BundleDataClient.js +15 -11
  28. package/dist/cjs/clients/BundleDataClient/BundleDataClient.js.map +1 -1
  29. package/dist/cjs/clients/BundleDataClient/utils/PoolRebalanceUtils.js +1 -1
  30. package/dist/cjs/clients/BundleDataClient/utils/PoolRebalanceUtils.js.map +1 -1
  31. package/dist/cjs/clients/BundleDataClient/utils/SuperstructUtils.d.ts +90 -90
  32. package/dist/cjs/clients/HubPoolClient.d.ts +1 -1
  33. package/dist/cjs/clients/HubPoolClient.js +16 -16
  34. package/dist/cjs/clients/HubPoolClient.js.map +1 -1
  35. package/dist/cjs/clients/SpokePoolClient/EVMSpokePoolClient.d.ts +3 -3
  36. package/dist/cjs/clients/SpokePoolClient/EVMSpokePoolClient.js +23 -20
  37. package/dist/cjs/clients/SpokePoolClient/EVMSpokePoolClient.js.map +1 -1
  38. package/dist/cjs/clients/SpokePoolClient/SVMSpokePoolClient.d.ts +23 -0
  39. package/dist/cjs/clients/SpokePoolClient/SVMSpokePoolClient.js +145 -0
  40. package/dist/cjs/clients/SpokePoolClient/SVMSpokePoolClient.js.map +1 -0
  41. package/dist/cjs/clients/SpokePoolClient/SpokePoolClient.d.ts +5 -5
  42. package/dist/cjs/clients/SpokePoolClient/SpokePoolClient.js +50 -54
  43. package/dist/cjs/clients/SpokePoolClient/SpokePoolClient.js.map +1 -1
  44. package/dist/cjs/clients/SpokePoolClient/index.d.ts +3 -0
  45. package/dist/cjs/clients/SpokePoolClient/index.js +8 -1
  46. package/dist/cjs/clients/SpokePoolClient/index.js.map +1 -1
  47. package/dist/cjs/clients/index.d.ts +1 -1
  48. package/dist/cjs/clients/index.js +2 -1
  49. package/dist/cjs/clients/index.js.map +1 -1
  50. package/dist/cjs/clients/mocks/MockConfigStoreClient.d.ts +1 -1
  51. package/dist/cjs/clients/mocks/MockConfigStoreClient.js +2 -2
  52. package/dist/cjs/clients/mocks/MockConfigStoreClient.js.map +1 -1
  53. package/dist/cjs/clients/mocks/MockHubPoolClient.js +2 -2
  54. package/dist/cjs/clients/mocks/MockHubPoolClient.js.map +1 -1
  55. package/dist/cjs/clients/mocks/MockSpokePoolClient.js +7 -4
  56. package/dist/cjs/clients/mocks/MockSpokePoolClient.js.map +1 -1
  57. package/dist/cjs/gasPriceOracle/adapters/arbitrum.d.ts +2 -2
  58. package/dist/cjs/gasPriceOracle/adapters/arbitrum.js.map +1 -1
  59. package/dist/cjs/gasPriceOracle/adapters/ethereum.d.ts +4 -4
  60. package/dist/cjs/gasPriceOracle/adapters/ethereum.js.map +1 -1
  61. package/dist/cjs/gasPriceOracle/adapters/linea-viem.js +3 -2
  62. package/dist/cjs/gasPriceOracle/adapters/linea-viem.js.map +1 -1
  63. package/dist/cjs/gasPriceOracle/adapters/polygon.d.ts +3 -3
  64. package/dist/cjs/gasPriceOracle/adapters/solana.d.ts +4 -0
  65. package/dist/cjs/gasPriceOracle/adapters/solana.js +43 -0
  66. package/dist/cjs/gasPriceOracle/adapters/solana.js.map +1 -0
  67. package/dist/cjs/gasPriceOracle/index.d.ts +1 -1
  68. package/dist/cjs/gasPriceOracle/oracle.d.ts +4 -3
  69. package/dist/cjs/gasPriceOracle/oracle.js +16 -9
  70. package/dist/cjs/gasPriceOracle/oracle.js.map +1 -1
  71. package/dist/cjs/gasPriceOracle/types.d.ts +6 -1
  72. package/dist/cjs/index.d.ts +0 -1
  73. package/dist/cjs/index.js +1 -2
  74. package/dist/cjs/index.js.map +1 -1
  75. package/dist/cjs/interfaces/SpokePool.d.ts +7 -0
  76. package/dist/cjs/relayFeeCalculator/chain-queries/baseQuery.d.ts +1 -1
  77. package/dist/cjs/relayFeeCalculator/chain-queries/baseQuery.js +5 -4
  78. package/dist/cjs/relayFeeCalculator/chain-queries/baseQuery.js.map +1 -1
  79. package/dist/cjs/relayFeeCalculator/chain-queries/factory.d.ts +4 -2
  80. package/dist/cjs/relayFeeCalculator/chain-queries/factory.js +7 -1
  81. package/dist/cjs/relayFeeCalculator/chain-queries/factory.js.map +1 -1
  82. package/dist/cjs/relayFeeCalculator/chain-queries/index.d.ts +1 -0
  83. package/dist/cjs/relayFeeCalculator/chain-queries/index.js +1 -0
  84. package/dist/cjs/relayFeeCalculator/chain-queries/index.js.map +1 -1
  85. package/dist/cjs/relayFeeCalculator/chain-queries/svmQuery.d.ts +31 -0
  86. package/dist/cjs/relayFeeCalculator/chain-queries/svmQuery.js +136 -0
  87. package/dist/cjs/relayFeeCalculator/chain-queries/svmQuery.js.map +1 -0
  88. package/dist/cjs/utils/AddressUtils.d.ts +9 -3
  89. package/dist/cjs/utils/AddressUtils.js +36 -6
  90. package/dist/cjs/utils/AddressUtils.js.map +1 -1
  91. package/dist/cjs/utils/ArrayUtils.d.ts +1 -0
  92. package/dist/cjs/utils/ArrayUtils.js +6 -1
  93. package/dist/cjs/utils/ArrayUtils.js.map +1 -1
  94. package/dist/cjs/utils/EventUtils.d.ts +4 -4
  95. package/dist/cjs/utils/EventUtils.js +7 -4
  96. package/dist/cjs/utils/EventUtils.js.map +1 -1
  97. package/dist/cjs/utils/JSONUtils.js +3 -0
  98. package/dist/cjs/utils/JSONUtils.js.map +1 -1
  99. package/dist/cjs/utils/SpokeUtils.js +5 -0
  100. package/dist/cjs/utils/SpokeUtils.js.map +1 -1
  101. package/dist/esm/arch/evm/SpokeUtils.d.ts +1 -1
  102. package/dist/esm/arch/evm/SpokeUtils.js +6 -5
  103. package/dist/esm/arch/evm/SpokeUtils.js.map +1 -1
  104. package/dist/esm/arch/svm/SpokeUtils.d.ts +94 -0
  105. package/dist/esm/arch/svm/SpokeUtils.js +513 -0
  106. package/dist/esm/arch/svm/SpokeUtils.js.map +1 -0
  107. package/dist/esm/arch/svm/constants.d.ts +1 -0
  108. package/dist/esm/arch/svm/constants.js +2 -0
  109. package/dist/esm/arch/svm/constants.js.map +1 -0
  110. package/dist/esm/arch/svm/eventsClient.d.ts +67 -0
  111. package/dist/esm/{svm → arch/svm}/eventsClient.js +69 -27
  112. package/dist/esm/arch/svm/eventsClient.js.map +1 -0
  113. package/dist/esm/arch/svm/index.d.ts +5 -1
  114. package/dist/esm/arch/svm/index.js +5 -1
  115. package/dist/esm/arch/svm/index.js.map +1 -1
  116. package/dist/{types → esm/arch}/svm/types.d.ts +9 -5
  117. package/dist/esm/arch/svm/types.js.map +1 -0
  118. package/dist/esm/arch/svm/utils.d.ts +59 -0
  119. package/dist/esm/arch/svm/utils.js +248 -0
  120. package/dist/esm/arch/svm/utils.js.map +1 -0
  121. package/dist/esm/clients/AcrossConfigStoreClient/AcrossConfigStoreClient.d.ts +1 -1
  122. package/dist/esm/clients/AcrossConfigStoreClient/AcrossConfigStoreClient.js +7 -7
  123. package/dist/esm/clients/AcrossConfigStoreClient/AcrossConfigStoreClient.js.map +1 -1
  124. package/dist/esm/clients/BaseAbstractClient.d.ts +6 -5
  125. package/dist/esm/clients/BaseAbstractClient.js +30 -19
  126. package/dist/esm/clients/BaseAbstractClient.js.map +1 -1
  127. package/dist/esm/clients/BundleDataClient/BundleDataClient.js +17 -14
  128. package/dist/esm/clients/BundleDataClient/BundleDataClient.js.map +1 -1
  129. package/dist/esm/clients/BundleDataClient/utils/PoolRebalanceUtils.js +1 -1
  130. package/dist/esm/clients/BundleDataClient/utils/PoolRebalanceUtils.js.map +1 -1
  131. package/dist/esm/clients/BundleDataClient/utils/SuperstructUtils.d.ts +90 -90
  132. package/dist/esm/clients/HubPoolClient.d.ts +1 -1
  133. package/dist/esm/clients/HubPoolClient.js +16 -16
  134. package/dist/esm/clients/HubPoolClient.js.map +1 -1
  135. package/dist/esm/clients/SpokePoolClient/EVMSpokePoolClient.d.ts +3 -3
  136. package/dist/esm/clients/SpokePoolClient/EVMSpokePoolClient.js +23 -20
  137. package/dist/esm/clients/SpokePoolClient/EVMSpokePoolClient.js.map +1 -1
  138. package/dist/esm/clients/SpokePoolClient/SVMSpokePoolClient.d.ts +67 -0
  139. package/dist/esm/clients/SpokePoolClient/SVMSpokePoolClient.js +196 -0
  140. package/dist/esm/clients/SpokePoolClient/SVMSpokePoolClient.js.map +1 -0
  141. package/dist/esm/clients/SpokePoolClient/SpokePoolClient.d.ts +7 -7
  142. package/dist/esm/clients/SpokePoolClient/SpokePoolClient.js +51 -55
  143. package/dist/esm/clients/SpokePoolClient/SpokePoolClient.js.map +1 -1
  144. package/dist/esm/clients/SpokePoolClient/index.d.ts +8 -0
  145. package/dist/esm/clients/SpokePoolClient/index.js +10 -0
  146. package/dist/esm/clients/SpokePoolClient/index.js.map +1 -1
  147. package/dist/esm/clients/index.d.ts +1 -1
  148. package/dist/esm/clients/index.js +1 -1
  149. package/dist/esm/clients/index.js.map +1 -1
  150. package/dist/esm/clients/mocks/MockConfigStoreClient.d.ts +1 -1
  151. package/dist/esm/clients/mocks/MockConfigStoreClient.js +2 -2
  152. package/dist/esm/clients/mocks/MockConfigStoreClient.js.map +1 -1
  153. package/dist/esm/clients/mocks/MockHubPoolClient.js +2 -2
  154. package/dist/esm/clients/mocks/MockHubPoolClient.js.map +1 -1
  155. package/dist/esm/clients/mocks/MockSpokePoolClient.js +8 -5
  156. package/dist/esm/clients/mocks/MockSpokePoolClient.js.map +1 -1
  157. package/dist/esm/gasPriceOracle/adapters/arbitrum.d.ts +2 -2
  158. package/dist/esm/gasPriceOracle/adapters/arbitrum.js.map +1 -1
  159. package/dist/esm/gasPriceOracle/adapters/ethereum.d.ts +4 -4
  160. package/dist/esm/gasPriceOracle/adapters/ethereum.js.map +1 -1
  161. package/dist/esm/gasPriceOracle/adapters/linea-viem.js +3 -2
  162. package/dist/esm/gasPriceOracle/adapters/linea-viem.js.map +1 -1
  163. package/dist/esm/gasPriceOracle/adapters/polygon.d.ts +4 -4
  164. package/dist/esm/gasPriceOracle/adapters/polygon.js +1 -1
  165. package/dist/esm/gasPriceOracle/adapters/solana.d.ts +8 -0
  166. package/dist/esm/gasPriceOracle/adapters/solana.js +43 -0
  167. package/dist/esm/gasPriceOracle/adapters/solana.js.map +1 -0
  168. package/dist/esm/gasPriceOracle/index.d.ts +1 -1
  169. package/dist/esm/gasPriceOracle/oracle.d.ts +4 -3
  170. package/dist/esm/gasPriceOracle/oracle.js +18 -9
  171. package/dist/esm/gasPriceOracle/oracle.js.map +1 -1
  172. package/dist/esm/gasPriceOracle/types.d.ts +6 -1
  173. package/dist/esm/index.d.ts +0 -1
  174. package/dist/esm/index.js +0 -2
  175. package/dist/esm/index.js.map +1 -1
  176. package/dist/esm/interfaces/SpokePool.d.ts +7 -0
  177. package/dist/esm/relayFeeCalculator/chain-queries/baseQuery.d.ts +1 -1
  178. package/dist/esm/relayFeeCalculator/chain-queries/baseQuery.js +4 -3
  179. package/dist/esm/relayFeeCalculator/chain-queries/baseQuery.js.map +1 -1
  180. package/dist/esm/relayFeeCalculator/chain-queries/factory.d.ts +4 -2
  181. package/dist/esm/relayFeeCalculator/chain-queries/factory.js +8 -2
  182. package/dist/esm/relayFeeCalculator/chain-queries/factory.js.map +1 -1
  183. package/dist/esm/relayFeeCalculator/chain-queries/index.d.ts +1 -0
  184. package/dist/esm/relayFeeCalculator/chain-queries/index.js +1 -0
  185. package/dist/esm/relayFeeCalculator/chain-queries/index.js.map +1 -1
  186. package/dist/esm/relayFeeCalculator/chain-queries/svmQuery.d.ts +66 -0
  187. package/dist/esm/relayFeeCalculator/chain-queries/svmQuery.js +169 -0
  188. package/dist/esm/relayFeeCalculator/chain-queries/svmQuery.js.map +1 -0
  189. package/dist/esm/utils/AddressUtils.d.ts +9 -3
  190. package/dist/esm/utils/AddressUtils.js +41 -6
  191. package/dist/esm/utils/AddressUtils.js.map +1 -1
  192. package/dist/esm/utils/ArrayUtils.d.ts +6 -0
  193. package/dist/esm/utils/ArrayUtils.js +9 -0
  194. package/dist/esm/utils/ArrayUtils.js.map +1 -1
  195. package/dist/esm/utils/EventUtils.d.ts +4 -4
  196. package/dist/esm/utils/EventUtils.js +7 -4
  197. package/dist/esm/utils/EventUtils.js.map +1 -1
  198. package/dist/esm/utils/JSONUtils.js +3 -0
  199. package/dist/esm/utils/JSONUtils.js.map +1 -1
  200. package/dist/esm/utils/SpokeUtils.js +5 -0
  201. package/dist/esm/utils/SpokeUtils.js.map +1 -1
  202. package/dist/types/arch/evm/SpokeUtils.d.ts +1 -1
  203. package/dist/types/arch/evm/SpokeUtils.d.ts.map +1 -1
  204. package/dist/types/arch/svm/SpokeUtils.d.ts +95 -0
  205. package/dist/types/arch/svm/SpokeUtils.d.ts.map +1 -0
  206. package/dist/types/arch/svm/constants.d.ts +2 -0
  207. package/dist/types/arch/svm/constants.d.ts.map +1 -0
  208. package/dist/types/arch/svm/eventsClient.d.ts +68 -0
  209. package/dist/types/arch/svm/eventsClient.d.ts.map +1 -0
  210. package/dist/types/arch/svm/index.d.ts +5 -1
  211. package/dist/types/arch/svm/index.d.ts.map +1 -1
  212. package/dist/{esm → types/arch}/svm/types.d.ts +10 -4
  213. package/dist/types/arch/svm/types.d.ts.map +1 -0
  214. package/dist/types/arch/svm/utils.d.ts +60 -0
  215. package/dist/types/arch/svm/utils.d.ts.map +1 -0
  216. package/dist/types/clients/AcrossConfigStoreClient/AcrossConfigStoreClient.d.ts +1 -1
  217. package/dist/types/clients/AcrossConfigStoreClient/AcrossConfigStoreClient.d.ts.map +1 -1
  218. package/dist/types/clients/BaseAbstractClient.d.ts +6 -5
  219. package/dist/types/clients/BaseAbstractClient.d.ts.map +1 -1
  220. package/dist/types/clients/BundleDataClient/BundleDataClient.d.ts.map +1 -1
  221. package/dist/types/clients/BundleDataClient/utils/SuperstructUtils.d.ts +90 -90
  222. package/dist/types/clients/HubPoolClient.d.ts +1 -1
  223. package/dist/types/clients/HubPoolClient.d.ts.map +1 -1
  224. package/dist/types/clients/SpokePoolClient/EVMSpokePoolClient.d.ts +3 -3
  225. package/dist/types/clients/SpokePoolClient/EVMSpokePoolClient.d.ts.map +1 -1
  226. package/dist/types/clients/SpokePoolClient/SVMSpokePoolClient.d.ts +68 -0
  227. package/dist/types/clients/SpokePoolClient/SVMSpokePoolClient.d.ts.map +1 -0
  228. package/dist/types/clients/SpokePoolClient/SpokePoolClient.d.ts +7 -7
  229. package/dist/types/clients/SpokePoolClient/SpokePoolClient.d.ts.map +1 -1
  230. package/dist/types/clients/SpokePoolClient/index.d.ts +8 -0
  231. package/dist/types/clients/SpokePoolClient/index.d.ts.map +1 -1
  232. package/dist/types/clients/index.d.ts +1 -1
  233. package/dist/types/clients/index.d.ts.map +1 -1
  234. package/dist/types/clients/mocks/MockConfigStoreClient.d.ts +1 -1
  235. package/dist/types/clients/mocks/MockConfigStoreClient.d.ts.map +1 -1
  236. package/dist/types/clients/mocks/MockSpokePoolClient.d.ts.map +1 -1
  237. package/dist/types/gasPriceOracle/adapters/arbitrum.d.ts +2 -2
  238. package/dist/types/gasPriceOracle/adapters/arbitrum.d.ts.map +1 -1
  239. package/dist/types/gasPriceOracle/adapters/ethereum.d.ts +4 -4
  240. package/dist/types/gasPriceOracle/adapters/ethereum.d.ts.map +1 -1
  241. package/dist/types/gasPriceOracle/adapters/linea-viem.d.ts.map +1 -1
  242. package/dist/types/gasPriceOracle/adapters/polygon.d.ts +4 -4
  243. package/dist/types/gasPriceOracle/adapters/polygon.d.ts.map +1 -1
  244. package/dist/types/gasPriceOracle/adapters/solana.d.ts +9 -0
  245. package/dist/types/gasPriceOracle/adapters/solana.d.ts.map +1 -0
  246. package/dist/types/gasPriceOracle/index.d.ts +1 -1
  247. package/dist/types/gasPriceOracle/index.d.ts.map +1 -1
  248. package/dist/types/gasPriceOracle/oracle.d.ts +4 -3
  249. package/dist/types/gasPriceOracle/oracle.d.ts.map +1 -1
  250. package/dist/types/gasPriceOracle/types.d.ts +6 -1
  251. package/dist/types/gasPriceOracle/types.d.ts.map +1 -1
  252. package/dist/types/index.d.ts +0 -1
  253. package/dist/types/index.d.ts.map +1 -1
  254. package/dist/types/interfaces/SpokePool.d.ts +7 -0
  255. package/dist/types/interfaces/SpokePool.d.ts.map +1 -1
  256. package/dist/types/relayFeeCalculator/chain-queries/baseQuery.d.ts +1 -1
  257. package/dist/types/relayFeeCalculator/chain-queries/baseQuery.d.ts.map +1 -1
  258. package/dist/types/relayFeeCalculator/chain-queries/factory.d.ts +4 -2
  259. package/dist/types/relayFeeCalculator/chain-queries/factory.d.ts.map +1 -1
  260. package/dist/types/relayFeeCalculator/chain-queries/index.d.ts +1 -0
  261. package/dist/types/relayFeeCalculator/chain-queries/index.d.ts.map +1 -1
  262. package/dist/types/relayFeeCalculator/chain-queries/svmQuery.d.ts +67 -0
  263. package/dist/types/relayFeeCalculator/chain-queries/svmQuery.d.ts.map +1 -0
  264. package/dist/types/utils/AddressUtils.d.ts +9 -3
  265. package/dist/types/utils/AddressUtils.d.ts.map +1 -1
  266. package/dist/types/utils/ArrayUtils.d.ts +6 -0
  267. package/dist/types/utils/ArrayUtils.d.ts.map +1 -1
  268. package/dist/types/utils/EventUtils.d.ts +4 -4
  269. package/dist/types/utils/EventUtils.d.ts.map +1 -1
  270. package/dist/types/utils/JSONUtils.d.ts.map +1 -1
  271. package/dist/types/utils/SpokeUtils.d.ts.map +1 -1
  272. package/package.json +5 -2
  273. package/src/arch/evm/SpokeUtils.ts +5 -5
  274. package/src/arch/svm/SpokeUtils.ts +526 -0
  275. package/src/arch/svm/constants.ts +1 -0
  276. package/src/{svm → arch/svm}/eventsClient.ts +67 -45
  277. package/src/arch/svm/index.ts +5 -1
  278. package/src/{svm → arch/svm}/types.ts +21 -4
  279. package/src/arch/svm/utils.ts +222 -0
  280. package/src/clients/AcrossConfigStoreClient/AcrossConfigStoreClient.ts +7 -7
  281. package/src/clients/BaseAbstractClient.ts +20 -13
  282. package/src/clients/BundleDataClient/BundleDataClient.ts +28 -19
  283. package/src/clients/BundleDataClient/utils/PoolRebalanceUtils.ts +1 -1
  284. package/src/clients/HubPoolClient.ts +16 -16
  285. package/src/clients/SpokePoolClient/EVMSpokePoolClient.ts +23 -21
  286. package/src/clients/SpokePoolClient/SVMSpokePoolClient.ts +244 -0
  287. package/src/clients/SpokePoolClient/SpokePoolClient.ts +44 -56
  288. package/src/clients/SpokePoolClient/index.ts +11 -0
  289. package/src/clients/index.ts +1 -1
  290. package/src/clients/mocks/MockConfigStoreClient.ts +2 -2
  291. package/src/clients/mocks/MockHubPoolClient.ts +2 -2
  292. package/src/clients/mocks/MockSpokePoolClient.ts +9 -4
  293. package/src/gasPriceOracle/adapters/arbitrum.ts +5 -2
  294. package/src/gasPriceOracle/adapters/ethereum.ts +7 -4
  295. package/src/gasPriceOracle/adapters/linea-viem.ts +3 -1
  296. package/src/gasPriceOracle/adapters/polygon.ts +6 -6
  297. package/src/gasPriceOracle/adapters/solana.ts +45 -0
  298. package/src/gasPriceOracle/index.ts +1 -1
  299. package/src/gasPriceOracle/oracle.ts +20 -4
  300. package/src/gasPriceOracle/types.ts +7 -1
  301. package/src/index.ts +0 -1
  302. package/src/interfaces/SpokePool.ts +7 -0
  303. package/src/relayFeeCalculator/chain-queries/baseQuery.ts +5 -3
  304. package/src/relayFeeCalculator/chain-queries/factory.ts +21 -5
  305. package/src/relayFeeCalculator/chain-queries/index.ts +1 -0
  306. package/src/relayFeeCalculator/chain-queries/svmQuery.ts +193 -0
  307. package/src/utils/AddressUtils.ts +49 -6
  308. package/src/utils/ArrayUtils.ts +12 -0
  309. package/src/utils/EventUtils.ts +11 -11
  310. package/src/utils/JSONUtils.ts +2 -0
  311. package/src/utils/SpokeUtils.ts +5 -1
  312. package/dist/cjs/svm/eventsClient.d.ts +0 -15
  313. package/dist/cjs/svm/eventsClient.js.map +0 -1
  314. package/dist/cjs/svm/index.d.ts +0 -3
  315. package/dist/cjs/svm/index.js +0 -8
  316. package/dist/cjs/svm/index.js.map +0 -1
  317. package/dist/cjs/svm/types.js.map +0 -1
  318. package/dist/cjs/svm/utils/events.d.ts +0 -8
  319. package/dist/cjs/svm/utils/events.js +0 -47
  320. package/dist/cjs/svm/utils/events.js.map +0 -1
  321. package/dist/cjs/svm/utils/helpers.d.ts +0 -2
  322. package/dist/cjs/svm/utils/helpers.js +0 -19
  323. package/dist/cjs/svm/utils/helpers.js.map +0 -1
  324. package/dist/cjs/svm/utils/index.d.ts +0 -1
  325. package/dist/cjs/svm/utils/index.js +0 -5
  326. package/dist/cjs/svm/utils/index.js.map +0 -1
  327. package/dist/esm/svm/eventsClient.d.ts +0 -51
  328. package/dist/esm/svm/eventsClient.js.map +0 -1
  329. package/dist/esm/svm/index.d.ts +0 -3
  330. package/dist/esm/svm/index.js +0 -5
  331. package/dist/esm/svm/index.js.map +0 -1
  332. package/dist/esm/svm/types.js.map +0 -1
  333. package/dist/esm/svm/utils/events.d.ts +0 -17
  334. package/dist/esm/svm/utils/events.js +0 -55
  335. package/dist/esm/svm/utils/events.js.map +0 -1
  336. package/dist/esm/svm/utils/helpers.d.ts +0 -5
  337. package/dist/esm/svm/utils/helpers.js +0 -18
  338. package/dist/esm/svm/utils/helpers.js.map +0 -1
  339. package/dist/esm/svm/utils/index.d.ts +0 -1
  340. package/dist/esm/svm/utils/index.js +0 -2
  341. package/dist/esm/svm/utils/index.js.map +0 -1
  342. package/dist/types/svm/eventsClient.d.ts +0 -52
  343. package/dist/types/svm/eventsClient.d.ts.map +0 -1
  344. package/dist/types/svm/index.d.ts +0 -4
  345. package/dist/types/svm/index.d.ts.map +0 -1
  346. package/dist/types/svm/types.d.ts.map +0 -1
  347. package/dist/types/svm/utils/events.d.ts +0 -18
  348. package/dist/types/svm/utils/events.d.ts.map +0 -1
  349. package/dist/types/svm/utils/helpers.d.ts +0 -6
  350. package/dist/types/svm/utils/helpers.d.ts.map +0 -1
  351. package/dist/types/svm/utils/index.d.ts +0 -2
  352. package/dist/types/svm/utils/index.d.ts.map +0 -1
  353. package/src/svm/index.ts +0 -3
  354. package/src/svm/utils/events.ts +0 -58
  355. package/src/svm/utils/helpers.ts +0 -9
  356. package/src/svm/utils/index.ts +0 -1
  357. /package/dist/cjs/{svm → arch/svm}/types.js +0 -0
  358. /package/dist/esm/{svm → arch/svm}/types.js +0 -0
@@ -19,10 +19,10 @@ import {
19
19
  import assert from "assert";
20
20
  import { Logger, QueryInterface } from "../relayFeeCalculator";
21
21
  import { Transport } from "viem";
22
- import { getGasPriceEstimate } from "../../gasPriceOracle/oracle";
22
+ import { getGasPriceEstimate, EvmGasPriceEstimate } from "../../gasPriceOracle";
23
23
  type Provider = providers.Provider;
24
24
  type OptimismProvider = L2Provider<Provider>;
25
- type SymbolMappingType = Record<
25
+ export type SymbolMappingType = Record<
26
26
  string,
27
27
  {
28
28
  addresses: Record<number, string>;
@@ -213,7 +213,9 @@ export class QueryBase implements QueryInterface {
213
213
  ? Promise.resolve({ maxFeePerGas: _gasPrice })
214
214
  : getGasPriceEstimate(provider, { chainId, baseFeeMultiplier, priorityFeeMultiplier, transport, unsignedTx }),
215
215
  ] as const;
216
- const [nativeGasCost, { maxFeePerGas: gasPrice }] = await Promise.all(queries);
216
+ const [nativeGasCost, _gasPriceEstimate] = await Promise.all(queries);
217
+ // It should be safe to cast to an EvmGasPriceEstimate here since QueryBase is only used for EVM chains.
218
+ const gasPrice = (_gasPriceEstimate as EvmGasPriceEstimate).maxFeePerGas;
217
219
  assert(nativeGasCost.gt(bnZero), "Gas cost should not be 0");
218
220
  let tokenGasCost: BigNumber;
219
221
 
@@ -4,10 +4,12 @@ import { getDeployedAddress } from "@across-protocol/contracts";
4
4
  import { asL2Provider } from "@eth-optimism/sdk";
5
5
  import { providers } from "ethers";
6
6
  import { DEFAULT_SIMULATED_RELAYER_ADDRESS, CUSTOM_GAS_TOKENS } from "../../constants";
7
- import { chainIsOPStack, isDefined } from "../../utils";
7
+ import { chainIsOPStack, isDefined, chainIsSvm, SvmAddress } from "../../utils";
8
8
  import { QueryBase } from "./baseQuery";
9
+ import { SVMProvider as svmProvider } from "../../arch/svm";
9
10
  import { DEFAULT_LOGGER, Logger } from "../relayFeeCalculator";
10
11
  import { CustomGasTokenQueries } from "./customGasToken";
12
+ import { SvmQuery } from "./svmQuery";
11
13
 
12
14
  /**
13
15
  * Some chains have a fixed gas price that is applied to the gas estimates. We should override
@@ -20,21 +22,21 @@ const fixedGasPrice = {
20
22
  export class QueryBase__factory {
21
23
  static create(
22
24
  chainId: number,
23
- provider: providers.Provider,
25
+ provider: providers.Provider | svmProvider,
24
26
  symbolMapping = TOKEN_SYMBOLS_MAP,
25
27
  spokePoolAddress = getDeployedAddress("SpokePool", chainId),
26
28
  simulatedRelayerAddress = DEFAULT_SIMULATED_RELAYER_ADDRESS,
27
29
  coingeckoProApiKey?: string,
28
30
  logger: Logger = DEFAULT_LOGGER,
29
31
  coingeckoBaseCurrency = "eth"
30
- ): QueryBase {
32
+ ): QueryBase | SvmQuery {
31
33
  assert(isDefined(spokePoolAddress));
32
34
 
33
35
  const customGasTokenSymbol = CUSTOM_GAS_TOKENS[chainId];
34
36
  if (customGasTokenSymbol) {
35
37
  return new CustomGasTokenQueries({
36
38
  queryBaseArgs: [
37
- provider,
39
+ provider as providers.Provider,
38
40
  symbolMapping,
39
41
  spokePoolAddress,
40
42
  simulatedRelayerAddress,
@@ -46,9 +48,23 @@ export class QueryBase__factory {
46
48
  customGasTokenSymbol,
47
49
  });
48
50
  }
51
+ if (chainIsSvm(chainId)) {
52
+ return new SvmQuery(
53
+ provider as svmProvider,
54
+ symbolMapping,
55
+ SvmAddress.from(spokePoolAddress),
56
+ SvmAddress.from(simulatedRelayerAddress),
57
+ logger,
58
+ coingeckoProApiKey,
59
+ fixedGasPrice[chainId],
60
+ coingeckoBaseCurrency
61
+ );
62
+ }
49
63
 
50
64
  // For OPStack chains, we need to wrap the provider in an L2Provider
51
- provider = chainIsOPStack(chainId) ? asL2Provider(provider) : provider;
65
+ provider = chainIsOPStack(chainId)
66
+ ? asL2Provider(provider as providers.Provider)
67
+ : (provider as providers.Provider);
52
68
 
53
69
  return new QueryBase(
54
70
  provider,
@@ -1,3 +1,4 @@
1
1
  export * from "./baseQuery";
2
2
  export * from "./factory";
3
3
  export * from "./customGasToken";
4
+ export * from "./svmQuery";
@@ -0,0 +1,193 @@
1
+ import { pipe } from "@solana/functional";
2
+ import { Coingecko } from "../../coingecko";
3
+ import { SymbolMappingType } from "./";
4
+ import { CHAIN_IDs, DEFAULT_SIMULATED_RELAYER_ADDRESS } from "../../constants";
5
+ import { Deposit } from "../../interfaces";
6
+ import { getGasPriceEstimate, SvmGasPriceEstimate } from "../../gasPriceOracle";
7
+ import {
8
+ BigNumberish,
9
+ TransactionCostEstimate,
10
+ BigNumber,
11
+ SvmAddress,
12
+ toBN,
13
+ isDefined,
14
+ toAddressType,
15
+ } from "../../utils";
16
+ import { Logger, QueryInterface } from "../relayFeeCalculator";
17
+ import {
18
+ fillRelayInstruction,
19
+ createApproveInstruction,
20
+ createTokenAccountsInstruction,
21
+ SVMProvider,
22
+ SolanaVoidSigner,
23
+ getAssociatedTokenAddress,
24
+ } from "../../arch/svm";
25
+ import {
26
+ createTransactionMessage,
27
+ setTransactionMessageFeePayer,
28
+ setTransactionMessageLifetimeUsingBlockhash,
29
+ appendTransactionMessageInstructions,
30
+ getComputeUnitEstimateForTransactionMessageFactory,
31
+ fetchEncodedAccount,
32
+ IInstruction,
33
+ } from "@solana/kit";
34
+ import { TOKEN_PROGRAM_ADDRESS, getMintSize, getInitializeMintInstruction, fetchMint } from "@solana-program/token";
35
+ import { getCreateAccountInstruction } from "@solana-program/system";
36
+
37
+ /**
38
+ * A special QueryBase implementation for SVM used for querying gas costs, token prices, and decimals of various tokens
39
+ * on Solana.
40
+ */
41
+ export class SvmQuery implements QueryInterface {
42
+ protected computeUnitEstimator;
43
+
44
+ /**
45
+ * Instantiates a SvmQuery instance
46
+ * @param provider A valid solana/kit rpc client.
47
+ * @param symbolMapping A mapping to valid ERC20 tokens and their respective characteristics
48
+ * @param spokePoolAddress The valid address of the Spoke Pool deployment
49
+ * @param simulatedRelayerAddress The address that these queries will reference as the sender. Note: This address must be approved for USDC
50
+ * @param logger A logging utility to report logs
51
+ * @param coingeckoProApiKey An optional CoinGecko API key that links to a PRO account
52
+ * @param fixedGasPrice Overrides the gas price with a fixed value. Note: primarily used for the Boba blockchain
53
+ * @param coingeckoBaseCurrency The basis currency that CoinGecko will use to resolve pricing
54
+ */
55
+ constructor(
56
+ readonly provider: SVMProvider,
57
+ readonly symbolMapping: SymbolMappingType,
58
+ readonly spokePoolAddress: SvmAddress,
59
+ readonly simulatedRelayerAddress: SvmAddress,
60
+ readonly logger: Logger,
61
+ readonly coingeckoProApiKey?: string,
62
+ readonly fixedGasPrice?: BigNumberish,
63
+ readonly coingeckoBaseCurrency: string = "eth"
64
+ ) {
65
+ this.computeUnitEstimator = getComputeUnitEstimateForTransactionMessageFactory({
66
+ rpc: provider,
67
+ });
68
+ }
69
+
70
+ /**
71
+ * Retrieves the current gas costs of performing a fillRelay contract at the referenced SpokePool.
72
+ * @param deposit V3 deposit instance.
73
+ * @param relayerAddress Relayer address to simulate with.
74
+ * @param options
75
+ * @param options.gasPrice Optional gas price to use for the simulation.
76
+ * @param options.gasUnits Optional gas units to use for the simulation.
77
+ * @param options.transport Optional transport object for custom gas price retrieval.
78
+ * @returns The gas estimate for this function call (multiplied with the optional buffer).
79
+ */
80
+ async getGasCosts(
81
+ deposit: Omit<Deposit, "messageHash">,
82
+ _relayer = DEFAULT_SIMULATED_RELAYER_ADDRESS,
83
+ options: Partial<{
84
+ gasPrice: BigNumberish;
85
+ gasUnits: BigNumberish;
86
+ baseFeeMultiplier: BigNumber;
87
+ priorityFeeMultiplier: BigNumber;
88
+ }> = {}
89
+ ): Promise<TransactionCostEstimate> {
90
+ // If the user did not have a token account created on destination, then we need to include this as a gas cost.
91
+ const mint = toAddressType(deposit.outputToken).forceSvmAddress();
92
+ const owner = toAddressType(deposit.recipient).forceSvmAddress();
93
+ const associatedToken = await getAssociatedTokenAddress(owner, mint);
94
+ const simulatedSigner = SolanaVoidSigner(this.simulatedRelayerAddress.toBase58());
95
+
96
+ // If the recipient has an associated token account on destination, then skip generating the instruction for creating a new token account.
97
+ let recipientCreateTokenAccountInstructions: IInstruction[] | undefined = undefined;
98
+ const [associatedTokenAccountExists, mintInfo] = await Promise.all([
99
+ (await fetchEncodedAccount(this.provider, associatedToken)).exists,
100
+ fetchMint(this.provider, mint.toV2Address()),
101
+ ]);
102
+ if (!associatedTokenAccountExists) {
103
+ const space = BigInt(getMintSize());
104
+ const rent = await this.provider.getMinimumBalanceForRentExemption(space).send();
105
+ const createAccountIx = getCreateAccountInstruction({
106
+ payer: simulatedSigner,
107
+ newAccount: SolanaVoidSigner(mint.toBase58()),
108
+ lamports: rent,
109
+ space,
110
+ programAddress: TOKEN_PROGRAM_ADDRESS,
111
+ });
112
+
113
+ const initializeMintIx = getInitializeMintInstruction({
114
+ mint: mint.toV2Address(),
115
+ decimals: mintInfo.data.decimals,
116
+ mintAuthority: owner.toV2Address(),
117
+ });
118
+ recipientCreateTokenAccountInstructions = [createAccountIx, initializeMintIx];
119
+ }
120
+
121
+ const [createTokenAccountsIx, approveIx, fillIx] = await Promise.all([
122
+ createTokenAccountsInstruction(mint, simulatedSigner),
123
+ createApproveInstruction(
124
+ mint,
125
+ deposit.outputAmount,
126
+ this.simulatedRelayerAddress,
127
+ this.spokePoolAddress,
128
+ mintInfo.data.decimals
129
+ ),
130
+ fillRelayInstruction(this.spokePoolAddress, deposit, simulatedSigner, associatedToken),
131
+ ]);
132
+
133
+ // Get the most recent confirmed blockhash.
134
+ const recentBlockhash = await this.provider.getLatestBlockhash().send();
135
+ const fillRelayTx = pipe(
136
+ createTransactionMessage({ version: 0 }),
137
+ (tx) => setTransactionMessageFeePayer(this.simulatedRelayerAddress.toV2Address(), tx),
138
+ (tx) => setTransactionMessageLifetimeUsingBlockhash(recentBlockhash.value, tx),
139
+ (tx) =>
140
+ isDefined(recipientCreateTokenAccountInstructions)
141
+ ? appendTransactionMessageInstructions(recipientCreateTokenAccountInstructions, tx)
142
+ : tx,
143
+ (tx) => appendTransactionMessageInstructions([createTokenAccountsIx, approveIx, fillIx], tx)
144
+ );
145
+
146
+ const [computeUnitsConsumed, _gasPriceEstimate] = await Promise.all([
147
+ toBN(await this.computeUnitEstimator(fillRelayTx)),
148
+ getGasPriceEstimate(this.provider, {
149
+ unsignedTx: fillRelayTx,
150
+ baseFeeMultiplier: options.baseFeeMultiplier,
151
+ priorityFeeMultiplier: options.priorityFeeMultiplier,
152
+ }),
153
+ ]);
154
+
155
+ // We can cast the gas price estimate to an SvmGasPriceEstimate here since the oracle should always
156
+ // query the Solana adapter.
157
+ const gasPriceEstimate = _gasPriceEstimate as SvmGasPriceEstimate;
158
+ const gasPrice = gasPriceEstimate.baseFee.add(
159
+ gasPriceEstimate.microLamportsPerComputeUnit.mul(computeUnitsConsumed).div(toBN(1_000_000)) // 1_000_000 microLamports/lamport.
160
+ );
161
+
162
+ return {
163
+ nativeGasCost: computeUnitsConsumed,
164
+ tokenGasCost: gasPrice,
165
+ gasPrice,
166
+ };
167
+ }
168
+
169
+ /**
170
+ * Retrieves the current price of a token
171
+ * @param tokenSymbol A valid [CoinGecko-ID](https://api.coingecko.com/api/v3/coins/list)
172
+ * @returns The resolved token price within the specified coingeckoBaseCurrency
173
+ */
174
+ async getTokenPrice(tokenSymbol: string): Promise<number> {
175
+ if (!this.symbolMapping[tokenSymbol]) throw new Error(`${tokenSymbol} does not exist in mapping`);
176
+ const coingeckoInstance = Coingecko.get(this.logger, this.coingeckoProApiKey);
177
+ const [, price] = await coingeckoInstance.getCurrentPriceByContract(
178
+ this.symbolMapping[tokenSymbol].addresses[CHAIN_IDs.MAINNET],
179
+ this.coingeckoBaseCurrency
180
+ );
181
+ return price;
182
+ }
183
+
184
+ /**
185
+ * Resolves the number of decimal places a token can have
186
+ * @param tokenSymbol A valid Across-Enabled Token ID
187
+ * @returns The number of decimals of precision for the corresponding tokenSymbol
188
+ */
189
+ getTokenDecimals(tokenSymbol: string): number {
190
+ if (!this.symbolMapping[tokenSymbol]) throw new Error(`${tokenSymbol} does not exist in mapping`);
191
+ return this.symbolMapping[tokenSymbol].decimals;
192
+ }
193
+ }
@@ -1,5 +1,6 @@
1
1
  import { providers, utils } from "ethers";
2
2
  import bs58 from "bs58";
3
+ import { Address as V2Address } from "@solana/kit";
3
4
  import { BigNumber, chainIsEvm } from "./";
4
5
 
5
6
  /**
@@ -77,9 +78,9 @@ export function isValidEvmAddress(address: string): boolean {
77
78
  * @returns a child `Address` type most fitting for the chain ID.
78
79
  * @todo: Change this to `toAddress` once we remove the other `toAddress` function.
79
80
  */
80
- export function toAddressType(address: string, chainId: number): Address | EvmAddress | SvmAddress {
81
+ export function toAddressType(address: string): Address | EvmAddress | SvmAddress {
81
82
  try {
82
- if (chainIsEvm(chainId)) {
83
+ if (utils.isHexString(address)) {
83
84
  return EvmAddress.from(address);
84
85
  }
85
86
  return SvmAddress.from(address);
@@ -146,6 +147,11 @@ export class Address {
146
147
  return this.toBytes32();
147
148
  }
148
149
 
150
+ // Converts the address to a Buffer type.
151
+ toBuffer(): Buffer {
152
+ return Buffer.from(this.rawAddress);
153
+ }
154
+
149
155
  // Implements `Hexable` for `Address`. Needed for encoding purposes. This class is treated by default as a bytes32 primitive type, but can change for subclasses.
150
156
  toHexString(): string {
151
157
  return this.toBytes32();
@@ -185,6 +191,16 @@ export class Address {
185
191
  return utils.stripZeros(this.rawAddress).length === 0;
186
192
  }
187
193
 
194
+ // Forces `rawAddress` to become an SvmAddress type. This will only throw if `rawAddress.length > 32`.
195
+ forceSvmAddress(): SvmAddress {
196
+ return SvmAddress.from(this.toBase58());
197
+ }
198
+
199
+ // Forces `rawAddress` to become an EvmAddress type. This will throw if `rawAddress.length > 20`.
200
+ forceEvmAddress(): EvmAddress {
201
+ return EvmAddress.from(this.toEvmAddress());
202
+ }
203
+
188
204
  // Checks if the other address is equivalent to this address.
189
205
  eq(other: Address): boolean {
190
206
  return this.toString() === other.toString();
@@ -223,8 +239,20 @@ export class EvmAddress extends Address {
223
239
  }
224
240
 
225
241
  // Constructs a new EvmAddress type.
226
- static from(hexString: string): EvmAddress {
227
- return new this(utils.arrayify(hexString));
242
+ static from(address: string, encoding: "base16" | "base58" = "base16"): EvmAddress {
243
+ if (encoding === "base16") {
244
+ return new this(utils.arrayify(address));
245
+ }
246
+
247
+ const decodedAddress = bs58.decode(address);
248
+ const padding = decodedAddress.subarray(0, 12);
249
+ const evmAddress = decodedAddress.subarray(12);
250
+
251
+ if (padding.length !== 12 || utils.stripZeros(padding).length !== 0 || evmAddress.length !== 20) {
252
+ throw new Error(`Not a valid base58-encoded EVM address: ${address}`);
253
+ }
254
+
255
+ return new this(evmAddress);
228
256
  }
229
257
  }
230
258
 
@@ -241,12 +269,27 @@ export class SvmAddress extends Address {
241
269
  return this.toBase58();
242
270
  }
243
271
 
272
+ // Small utility to convert an SvmAddress to a Solana Kit branded type.
273
+ toV2Address(): V2Address<string> {
274
+ return this.toBase58() as V2Address<string>;
275
+ }
276
+
277
+ // Forces an SvmAddress to an EVM address string by truncating the leading 12 bytes.
244
278
  override toEvmAddress(): string {
245
279
  return toAddress(`0x${this.toBytes32().slice(-40)}`);
246
280
  }
247
281
 
248
282
  // Constructs a new SvmAddress type.
249
- static from(bs58Address: string): SvmAddress {
250
- return new this(bs58.decode(bs58Address));
283
+ static from(address: string, encoding: "base58" | "base16" = "base58"): SvmAddress {
284
+ if (encoding === "base58") {
285
+ return new this(bs58.decode(address));
286
+ }
287
+
288
+ const decodedAddress = utils.arrayify(address);
289
+ if (decodedAddress.length !== 32) {
290
+ throw new Error(`Not a valid base16-encoded SVM address: ${address}`);
291
+ }
292
+
293
+ return new this(decodedAddress);
251
294
  }
252
295
  }
@@ -168,3 +168,15 @@ export function includesAsync<T>(
168
168
  export function isArrayOf<T>(array: unknown, predicate: (value: unknown) => value is T): array is T[] {
169
169
  return Array.isArray(array) && array.every(predicate);
170
170
  }
171
+
172
+ /**
173
+ * Checks if a value is a Uint8Array.
174
+ * @param value The value to check.
175
+ * @returns True if the value is a Uint8Array, false otherwise.
176
+ */
177
+ export function isUint8Array(value: unknown): value is Uint8Array {
178
+ return (
179
+ Array.isArray(value) &&
180
+ value.every((item) => typeof item === "number" && Number.isInteger(item) && item >= 0 && item < 256)
181
+ );
182
+ }
@@ -99,9 +99,9 @@ export function spreadEvent(args: Result | Record<string, unknown>): { [key: str
99
99
  }
100
100
 
101
101
  export interface EventSearchConfig {
102
- fromBlock: number;
103
- toBlock: number;
104
- maxBlockLookBack?: number;
102
+ from: number;
103
+ to: number;
104
+ maxLookBack?: number;
105
105
  }
106
106
 
107
107
  export const eventToLog = (event: Event): Log => ({ ...event, event: event.event!, args: spreadEvent(event.args!) });
@@ -113,8 +113,8 @@ export async function paginatedEventQuery(
113
113
  retryCount = 0
114
114
  ): Promise<Log[]> {
115
115
  // If the max block look back is set to 0 then we dont need to do any pagination and can query over the whole range.
116
- if (searchConfig.maxBlockLookBack === 0) {
117
- const events = await contract.queryFilter(filter, searchConfig.fromBlock, searchConfig.toBlock);
116
+ if (searchConfig.maxLookBack === 0) {
117
+ const events = await contract.queryFilter(filter, searchConfig.from, searchConfig.to);
118
118
  return events.map(eventToLog);
119
119
  }
120
120
 
@@ -132,7 +132,7 @@ export async function paginatedEventQuery(
132
132
  )
133
133
  .flat()
134
134
  // Filter events by block number because ranges can include blocks that are outside the range specified for caching reasons.
135
- .filter((event) => event.blockNumber >= searchConfig.fromBlock && event.blockNumber <= searchConfig.toBlock)
135
+ .filter((event) => event.blockNumber >= searchConfig.from && event.blockNumber <= searchConfig.to)
136
136
  .map(eventToLog)
137
137
  );
138
138
  } catch (error) {
@@ -159,11 +159,11 @@ export async function paginatedEventQuery(
159
159
  * input range, but can include blocks outside of the desired range, so results should be filtered. Results
160
160
  * are ordered from smallest to largest.
161
161
  */
162
- export function getPaginatedBlockRanges({
163
- fromBlock,
164
- toBlock,
165
- maxBlockLookBack,
166
- }: EventSearchConfig): [number, number][] {
162
+ export function getPaginatedBlockRanges({ from, to, maxLookBack }: EventSearchConfig): [number, number][] {
163
+ const fromBlock = from;
164
+ const toBlock = to;
165
+ const maxBlockLookBack = maxLookBack;
166
+
167
167
  // If the maxBlockLookBack is undefined, we can look back as far as we like. Just return the entire range.
168
168
  if (maxBlockLookBack === undefined) {
169
169
  return [[fromBlock, toBlock]];
@@ -33,6 +33,8 @@ export function stringifyJSONWithNumericString(obj: unknown): string {
33
33
  return JSON.stringify(obj, (_key, value) => {
34
34
  if (typeof value === "object" && value !== null && value.type === "BigNumber") {
35
35
  return BigNumber.from(value).toString();
36
+ } else if (typeof value === "bigint" && value !== null) {
37
+ return value.toString();
36
38
  }
37
39
  return value;
38
40
  });
@@ -4,6 +4,8 @@ import { Deposit, RelayData } from "../interfaces";
4
4
  import { toBytes32 } from "./AddressUtils";
5
5
  import { BigNumber } from "./BigNumberUtils";
6
6
  import { isMessageEmpty } from "./DepositUtils";
7
+ import { chainIsSvm } from "./NetworkUtils";
8
+ import { svm } from "../arch";
7
9
 
8
10
  /**
9
11
  * Produce the RelayData for a Deposit.
@@ -63,7 +65,9 @@ export function getRelayDataHash(relayData: RelayData, destinationChainId: numbe
63
65
  outputToken: toBytes32(relayData.outputToken),
64
66
  exclusiveRelayer: toBytes32(relayData.exclusiveRelayer),
65
67
  };
66
-
68
+ if (chainIsSvm(destinationChainId)) {
69
+ return svm.getRelayDataHash(_relayData, destinationChainId);
70
+ }
67
71
  return keccak256(encodeAbiParameters(abi, [_relayData, destinationChainId]));
68
72
  }
69
73
 
@@ -1,15 +0,0 @@
1
- import web3, { GetSignaturesForAddressApi, RpcTransport } from "@solana/kit";
2
- import { EventData, EventName, EventWithData } from "./types";
3
- type GetSignaturesForAddressConfig = Parameters<GetSignaturesForAddressApi["getSignaturesForAddress"]>[1];
4
- export declare class SvmSpokeEventsClient {
5
- private rpc;
6
- private svmSpokeAddress;
7
- private svmSpokeEventAuthority;
8
- private constructor();
9
- static create(rpc: web3.Rpc<web3.SolanaRpcApiFromTransport<RpcTransport>>): Promise<SvmSpokeEventsClient>;
10
- queryEvents<T extends EventData>(eventName: EventName, fromSlot?: bigint, toSlot?: bigint, options?: GetSignaturesForAddressConfig): Promise<EventWithData<T>[]>;
11
- private queryAllEvents;
12
- private readEventsFromSignature;
13
- private processEventFromTx;
14
- }
15
- export {};
@@ -1 +0,0 @@
1
- {"version":3,"file":"eventsClient.js","sourceRoot":"","sources":["../../../src/svm/eventsClient.ts"],"names":[],"mappings":"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"}
@@ -1,3 +0,0 @@
1
- export * from "./eventsClient";
2
- export * from "./types";
3
- export * as utils from "./utils";
@@ -1,8 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.utils = void 0;
4
- var tslib_1 = require("tslib");
5
- tslib_1.__exportStar(require("./eventsClient"), exports);
6
- tslib_1.__exportStar(require("./types"), exports);
7
- exports.utils = tslib_1.__importStar(require("./utils"));
8
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/svm/index.ts"],"names":[],"mappings":";;;;AAAA,yDAA+B;AAC/B,kDAAwB;AACxB,yDAAiC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/svm/types.ts"],"names":[],"mappings":";;;AAmBA,IAAY,aAeX;AAfD,WAAY,aAAa;IACvB,4CAA2B,CAAA;IAC3B,kDAAiC,CAAA;IACjC,4DAA2C,CAAA;IAC3C,wDAAuC,CAAA;IACvC,wEAAuD,CAAA;IACvD,sDAAqC,CAAA;IACrC,kDAAiC,CAAA;IACjC,4CAA2B,CAAA;IAC3B,oDAAmC,CAAA;IACnC,0EAAyD,CAAA;IACzD,wDAAuC,CAAA;IACvC,8DAA6C,CAAA;IAC7C,gDAA+B,CAAA;IAC/B,8DAA6C,CAAA;AAC/C,CAAC,EAfW,aAAa,6BAAb,aAAa,QAexB"}
@@ -1,8 +0,0 @@
1
- import { Idl } from "@coral-xyz/anchor";
2
- import { EventName, EventData } from "../types";
3
- export declare function parseEventData(eventData: any): any;
4
- export declare function decodeEvent(idl: Idl, rawEvent: string): {
5
- data: EventData;
6
- name: EventName;
7
- };
8
- export declare function getEventName(rawName: string): EventName;
@@ -1,47 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getEventName = exports.decodeEvent = exports.parseEventData = void 0;
4
- var anchor_1 = require("@coral-xyz/anchor");
5
- var kit_1 = require("@solana/kit");
6
- var types_1 = require("../types");
7
- function parseEventData(eventData) {
8
- if (!eventData)
9
- return eventData;
10
- if (Array.isArray(eventData)) {
11
- return eventData.map(parseEventData);
12
- }
13
- if (typeof eventData === "object") {
14
- if (eventData.constructor.name === "PublicKey") {
15
- return (0, kit_1.address)(eventData.toString());
16
- }
17
- if (anchor_1.BN.isBN(eventData)) {
18
- return BigInt(eventData.toString());
19
- }
20
- return Object.fromEntries(Object.entries(eventData).map(function (_a) {
21
- var key = _a[0], value = _a[1];
22
- return [snakeToCamel(key), parseEventData(value)];
23
- }));
24
- }
25
- return eventData;
26
- }
27
- exports.parseEventData = parseEventData;
28
- function decodeEvent(idl, rawEvent) {
29
- var event = new anchor_1.BorshEventCoder(idl).decode(rawEvent);
30
- if (!event)
31
- throw new Error("Malformed rawEvent for IDL ".concat(idl.address, ": ").concat(rawEvent));
32
- return {
33
- name: getEventName(event.name),
34
- data: parseEventData(event.data),
35
- };
36
- }
37
- exports.decodeEvent = decodeEvent;
38
- function snakeToCamel(s) {
39
- return s.replace(/(_\w)/g, function (match) { return match[1].toUpperCase(); });
40
- }
41
- function getEventName(rawName) {
42
- if (Object.values(types_1.SVMEventNames).some(function (name) { return rawName.includes(name); }))
43
- return rawName;
44
- throw new Error("Unknown event name: ".concat(rawName));
45
- }
46
- exports.getEventName = getEventName;
47
- //# sourceMappingURL=events.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"events.js","sourceRoot":"","sources":["../../../../src/svm/utils/events.ts"],"names":[],"mappings":";;;AAAA,4CAA6D;AAC7D,mCAAsC;AACtC,kCAA+D;AAM/D,SAAgB,cAAc,CAAC,SAAc;IAC3C,IAAI,CAAC,SAAS;QAAE,OAAO,SAAS,CAAC;IAEjC,IAAI,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE;QAC5B,OAAO,SAAS,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;KACtC;IAED,IAAI,OAAO,SAAS,KAAK,QAAQ,EAAE;QACjC,IAAI,SAAS,CAAC,WAAW,CAAC,IAAI,KAAK,WAAW,EAAE;YAC9C,OAAO,IAAA,aAAO,EAAC,SAAS,CAAC,QAAQ,EAAE,CAAC,CAAC;SACtC;QACD,IAAI,WAAE,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE;YACtB,OAAO,MAAM,CAAC,SAAS,CAAC,QAAQ,EAAE,CAAC,CAAC;SACrC;QAGD,OAAO,MAAM,CAAC,WAAW,CACvB,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,UAAC,EAAY;gBAAX,GAAG,QAAA,EAAE,KAAK,QAAA;YAAM,OAAA,CAAC,YAAY,CAAC,GAAG,CAAC,EAAE,cAAc,CAAC,KAAK,CAAC,CAAC;QAA1C,CAA0C,CAAC,CAC5F,CAAC;KACH;IAED,OAAO,SAAS,CAAC;AACnB,CAAC;AAtBD,wCAsBC;AAKD,SAAgB,WAAW,CAAC,GAAQ,EAAE,QAAgB;IACpD,IAAM,KAAK,GAAG,IAAI,wBAAe,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IACxD,IAAI,CAAC,KAAK;QAAE,MAAM,IAAI,KAAK,CAAC,qCAA8B,GAAG,CAAC,OAAO,eAAK,QAAQ,CAAE,CAAC,CAAC;IACtF,OAAO;QACL,IAAI,EAAE,YAAY,CAAC,KAAK,CAAC,IAAI,CAAC;QAC9B,IAAI,EAAE,cAAc,CAAC,KAAK,CAAC,IAAI,CAAC;KACjC,CAAC;AACJ,CAAC;AAPD,kCAOC;AAKD,SAAS,YAAY,CAAC,CAAS;IAC7B,OAAO,CAAC,CAAC,OAAO,CAAC,QAAQ,EAAE,UAAC,KAAK,IAAK,OAAA,KAAK,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,EAAtB,CAAsB,CAAC,CAAC;AAChE,CAAC;AAKD,SAAgB,YAAY,CAAC,OAAe;IAC1C,IAAI,MAAM,CAAC,MAAM,CAAC,qBAAa,CAAC,CAAC,IAAI,CAAC,UAAC,IAAI,IAAK,OAAA,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAtB,CAAsB,CAAC;QAAE,OAAO,OAAoB,CAAC;IACrG,MAAM,IAAI,KAAK,CAAC,8BAAuB,OAAO,CAAE,CAAC,CAAC;AACpD,CAAC;AAHD,oCAGC"}
@@ -1,2 +0,0 @@
1
- import web3, { RpcTransport } from "@solana/kit";
2
- export declare function isDevnet(rpc: web3.Rpc<web3.SolanaRpcApiFromTransport<RpcTransport>>): Promise<boolean>;
@@ -1,19 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.isDevnet = void 0;
4
- var tslib_1 = require("tslib");
5
- function isDevnet(rpc) {
6
- return tslib_1.__awaiter(this, void 0, void 0, function () {
7
- var genesisHash;
8
- return tslib_1.__generator(this, function (_a) {
9
- switch (_a.label) {
10
- case 0: return [4, rpc.getGenesisHash().send()];
11
- case 1:
12
- genesisHash = _a.sent();
13
- return [2, genesisHash === "EtWTRABZaYq6iMfeYKouRu166VU2xqa1wcaWoxPkrZBG"];
14
- }
15
- });
16
- });
17
- }
18
- exports.isDevnet = isDevnet;
19
- //# sourceMappingURL=helpers.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"helpers.js","sourceRoot":"","sources":["../../../../src/svm/utils/helpers.ts"],"names":[],"mappings":";;;;AAKA,SAAsB,QAAQ,CAAC,GAA2D;;;;;wBACpE,WAAM,GAAG,CAAC,cAAc,EAAE,CAAC,IAAI,EAAE,EAAA;;oBAA/C,WAAW,GAAG,SAAiC;oBACrD,WAAO,WAAW,KAAK,8CAA8C,EAAC;;;;CACvE;AAHD,4BAGC"}
@@ -1 +0,0 @@
1
- export * from "./events";
@@ -1,5 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- var tslib_1 = require("tslib");
4
- tslib_1.__exportStar(require("./events"), exports);
5
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/svm/utils/index.ts"],"names":[],"mappings":";;;AAAA,mDAAyB"}