@across-protocol/sdk 4.3.111-alpha.4 → 4.3.111

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 (566) hide show
  1. package/dist/cjs/addressAggregator/adapters/abstract.js +64 -50
  2. package/dist/cjs/addressAggregator/adapters/abstract.js.map +1 -1
  3. package/dist/cjs/addressAggregator/adapters/bybit.js +29 -16
  4. package/dist/cjs/addressAggregator/adapters/bybit.js.map +1 -1
  5. package/dist/cjs/addressAggregator/adapters/env.js +15 -11
  6. package/dist/cjs/addressAggregator/adapters/env.js.map +1 -1
  7. package/dist/cjs/addressAggregator/adapters/file.js +45 -32
  8. package/dist/cjs/addressAggregator/adapters/file.js.map +1 -1
  9. package/dist/cjs/addressAggregator/adapters/index.js +1 -1
  10. package/dist/cjs/addressAggregator/adapters/risklabs.js +36 -22
  11. package/dist/cjs/addressAggregator/adapters/risklabs.js.map +1 -1
  12. package/dist/cjs/addressAggregator/index.js +87 -57
  13. package/dist/cjs/addressAggregator/index.js.map +1 -1
  14. package/dist/cjs/apiClient/abstractClient.js +8 -9
  15. package/dist/cjs/apiClient/abstractClient.js.map +1 -1
  16. package/dist/cjs/apiClient/index.js +1 -1
  17. package/dist/cjs/apiClient/mockedClient.js +29 -23
  18. package/dist/cjs/apiClient/mockedClient.js.map +1 -1
  19. package/dist/cjs/apiClient/productionClient.js +103 -65
  20. package/dist/cjs/apiClient/productionClient.js.map +1 -1
  21. package/dist/cjs/arch/evm/BlockUtils.js +208 -122
  22. package/dist/cjs/arch/evm/BlockUtils.js.map +1 -1
  23. package/dist/cjs/arch/evm/MessageUtils.js +1 -1
  24. package/dist/cjs/arch/evm/MessageUtils.js.map +1 -1
  25. package/dist/cjs/arch/evm/SpokeUtils.js +288 -134
  26. package/dist/cjs/arch/evm/SpokeUtils.js.map +1 -1
  27. package/dist/cjs/arch/evm/index.js +1 -1
  28. package/dist/cjs/arch/evm/utils/index.js +1 -1
  29. package/dist/cjs/arch/evm/utils/wait.js +49 -38
  30. package/dist/cjs/arch/evm/utils/wait.js.map +1 -1
  31. package/dist/cjs/arch/index.js +1 -1
  32. package/dist/cjs/arch/svm/BlockUtils.js +158 -102
  33. package/dist/cjs/arch/svm/BlockUtils.js.map +1 -1
  34. package/dist/cjs/arch/svm/MessageUtils.js +2 -2
  35. package/dist/cjs/arch/svm/MessageUtils.js.map +1 -1
  36. package/dist/cjs/arch/svm/SpokeUtils.js +1147 -708
  37. package/dist/cjs/arch/svm/SpokeUtils.js.map +1 -1
  38. package/dist/cjs/arch/svm/encoders.js +1 -1
  39. package/dist/cjs/arch/svm/encoders.js.map +1 -1
  40. package/dist/cjs/arch/svm/eventsClient.js +236 -174
  41. package/dist/cjs/arch/svm/eventsClient.js.map +1 -1
  42. package/dist/cjs/arch/svm/index.js +1 -1
  43. package/dist/cjs/arch/svm/provider.js +3 -3
  44. package/dist/cjs/arch/svm/provider.js.map +1 -1
  45. package/dist/cjs/arch/svm/utils.js +355 -166
  46. package/dist/cjs/arch/svm/utils.js.map +1 -1
  47. package/dist/cjs/caching/Arweave/ArweaveClient.js +246 -168
  48. package/dist/cjs/caching/Arweave/ArweaveClient.js.map +1 -1
  49. package/dist/cjs/caching/Arweave/index.js +1 -1
  50. package/dist/cjs/caching/IPFS/PinataIPFSClient.js +49 -40
  51. package/dist/cjs/caching/IPFS/PinataIPFSClient.js.map +1 -1
  52. package/dist/cjs/caching/IPFS/index.js +1 -1
  53. package/dist/cjs/caching/Memory/MemoryCacheClient.js +18 -13
  54. package/dist/cjs/caching/Memory/MemoryCacheClient.js.map +1 -1
  55. package/dist/cjs/caching/Memory/index.js +1 -1
  56. package/dist/cjs/caching/index.js +1 -1
  57. package/dist/cjs/clients/AcrossConfigStoreClient/AcrossConfigStoreClient.js +381 -302
  58. package/dist/cjs/clients/AcrossConfigStoreClient/AcrossConfigStoreClient.js.map +1 -1
  59. package/dist/cjs/clients/AcrossConfigStoreClient/index.js +1 -1
  60. package/dist/cjs/clients/BaseAbstractClient.js +83 -58
  61. package/dist/cjs/clients/BaseAbstractClient.js.map +1 -1
  62. package/dist/cjs/clients/BundleDataClient/BundleDataClient.js +900 -709
  63. package/dist/cjs/clients/BundleDataClient/BundleDataClient.js.map +1 -1
  64. package/dist/cjs/clients/BundleDataClient/index.js +1 -1
  65. package/dist/cjs/clients/BundleDataClient/utils/DataworkerUtils.js +128 -95
  66. package/dist/cjs/clients/BundleDataClient/utils/DataworkerUtils.js.map +1 -1
  67. package/dist/cjs/clients/BundleDataClient/utils/FillUtils.js +53 -48
  68. package/dist/cjs/clients/BundleDataClient/utils/FillUtils.js.map +1 -1
  69. package/dist/cjs/clients/BundleDataClient/utils/MerkleTreeUtils.js +8 -10
  70. package/dist/cjs/clients/BundleDataClient/utils/MerkleTreeUtils.js.map +1 -1
  71. package/dist/cjs/clients/BundleDataClient/utils/PoolRebalanceUtils.js +90 -67
  72. package/dist/cjs/clients/BundleDataClient/utils/PoolRebalanceUtils.js.map +1 -1
  73. package/dist/cjs/clients/BundleDataClient/utils/SuperstructUtils.js +24 -46
  74. package/dist/cjs/clients/BundleDataClient/utils/SuperstructUtils.js.map +1 -1
  75. package/dist/cjs/clients/BundleDataClient/utils/index.js +1 -1
  76. package/dist/cjs/clients/HubPoolClient.js +708 -526
  77. package/dist/cjs/clients/HubPoolClient.js.map +1 -1
  78. package/dist/cjs/clients/SpokePoolClient/EVMSpokePoolClient.js +179 -133
  79. package/dist/cjs/clients/SpokePoolClient/EVMSpokePoolClient.js.map +1 -1
  80. package/dist/cjs/clients/SpokePoolClient/SVMSpokePoolClient.js +183 -124
  81. package/dist/cjs/clients/SpokePoolClient/SVMSpokePoolClient.js.map +1 -1
  82. package/dist/cjs/clients/SpokePoolClient/SpokePoolClient.js +389 -357
  83. package/dist/cjs/clients/SpokePoolClient/SpokePoolClient.js.map +1 -1
  84. package/dist/cjs/clients/SpokePoolClient/SpokePoolClientManager.js +8 -9
  85. package/dist/cjs/clients/SpokePoolClient/SpokePoolClientManager.js.map +1 -1
  86. package/dist/cjs/clients/SpokePoolClient/index.js +3 -3
  87. package/dist/cjs/clients/SpokePoolClient/index.js.map +1 -1
  88. package/dist/cjs/clients/index.js +1 -1
  89. package/dist/cjs/clients/mocks/MockConfigStoreClient.js +67 -58
  90. package/dist/cjs/clients/mocks/MockConfigStoreClient.js.map +1 -1
  91. package/dist/cjs/clients/mocks/MockEvents.js +52 -47
  92. package/dist/cjs/clients/mocks/MockEvents.js.map +1 -1
  93. package/dist/cjs/clients/mocks/MockHubPoolClient.js +185 -142
  94. package/dist/cjs/clients/mocks/MockHubPoolClient.js.map +1 -1
  95. package/dist/cjs/clients/mocks/MockSpokePoolClient.js +192 -208
  96. package/dist/cjs/clients/mocks/MockSpokePoolClient.js.map +1 -1
  97. package/dist/cjs/clients/mocks/MockSvmCpiEventsClient.js +143 -140
  98. package/dist/cjs/clients/mocks/MockSvmCpiEventsClient.js.map +1 -1
  99. package/dist/cjs/clients/mocks/MockSvmSpokePoolClient.js +73 -57
  100. package/dist/cjs/clients/mocks/MockSvmSpokePoolClient.js.map +1 -1
  101. package/dist/cjs/clients/mocks/index.js +1 -1
  102. package/dist/cjs/coingecko/Coingecko.js +437 -285
  103. package/dist/cjs/coingecko/Coingecko.js.map +1 -1
  104. package/dist/cjs/coingecko/index.js +1 -1
  105. package/dist/cjs/constants.js +30 -23
  106. package/dist/cjs/constants.js.map +1 -1
  107. package/dist/cjs/contracts/acrossConfigStore.js +48 -27
  108. package/dist/cjs/contracts/acrossConfigStore.js.map +1 -1
  109. package/dist/cjs/contracts/hubPool.js +20 -36
  110. package/dist/cjs/contracts/hubPool.js.map +1 -1
  111. package/dist/cjs/contracts/index.js +1 -1
  112. package/dist/cjs/contracts/utils.js +8 -6
  113. package/dist/cjs/contracts/utils.js.map +1 -1
  114. package/dist/cjs/gasPriceOracle/adapters/arbitrum.js +16 -7
  115. package/dist/cjs/gasPriceOracle/adapters/arbitrum.js.map +1 -1
  116. package/dist/cjs/gasPriceOracle/adapters/ethereum.js +45 -26
  117. package/dist/cjs/gasPriceOracle/adapters/ethereum.js.map +1 -1
  118. package/dist/cjs/gasPriceOracle/adapters/linea-viem.js +28 -16
  119. package/dist/cjs/gasPriceOracle/adapters/linea-viem.js.map +1 -1
  120. package/dist/cjs/gasPriceOracle/adapters/polygon.js +112 -73
  121. package/dist/cjs/gasPriceOracle/adapters/polygon.js.map +1 -1
  122. package/dist/cjs/gasPriceOracle/adapters/solana.js +33 -20
  123. package/dist/cjs/gasPriceOracle/adapters/solana.js.map +1 -1
  124. package/dist/cjs/gasPriceOracle/oracle.js +104 -77
  125. package/dist/cjs/gasPriceOracle/oracle.js.map +1 -1
  126. package/dist/cjs/gasPriceOracle/types.js +3 -3
  127. package/dist/cjs/gasPriceOracle/types.js.map +1 -1
  128. package/dist/cjs/gasPriceOracle/util.js +8 -8
  129. package/dist/cjs/gasPriceOracle/util.js.map +1 -1
  130. package/dist/cjs/index.js +1 -1
  131. package/dist/cjs/interfaces/index.js +1 -1
  132. package/dist/cjs/lpFeeCalculator/index.js +1 -1
  133. package/dist/cjs/lpFeeCalculator/lpFeeCalculator.js +35 -33
  134. package/dist/cjs/lpFeeCalculator/lpFeeCalculator.js.map +1 -1
  135. package/dist/cjs/lpFeeCalculator/rateModel.js +9 -7
  136. package/dist/cjs/lpFeeCalculator/rateModel.js.map +1 -1
  137. package/dist/cjs/merkleDistributor/MerkleDistributor.js +18 -20
  138. package/dist/cjs/merkleDistributor/MerkleDistributor.js.map +1 -1
  139. package/dist/cjs/merkleDistributor/index.js +1 -1
  140. package/dist/cjs/merkleDistributor/model/index.js +1 -1
  141. package/dist/cjs/pool/TransactionManager.js +100 -45
  142. package/dist/cjs/pool/TransactionManager.js.map +1 -1
  143. package/dist/cjs/pool/index.js +1 -1
  144. package/dist/cjs/pool/poolClient.js +731 -464
  145. package/dist/cjs/pool/poolClient.js.map +1 -1
  146. package/dist/cjs/pool/uma/across/index.js +1 -1
  147. package/dist/cjs/pool/uma/across/transactionManager.js +100 -45
  148. package/dist/cjs/pool/uma/across/transactionManager.js.map +1 -1
  149. package/dist/cjs/pool/uma/clients/erc20/client.js +16 -18
  150. package/dist/cjs/pool/uma/clients/erc20/client.js.map +1 -1
  151. package/dist/cjs/pool/uma/clients/erc20/index.js +1 -1
  152. package/dist/cjs/pool/uma/clients/index.js +1 -1
  153. package/dist/cjs/pool/uma/index.js +1 -1
  154. package/dist/cjs/pool/uma/oracle/index.js +1 -1
  155. package/dist/cjs/pool/uma/oracle/utils.js +5 -4
  156. package/dist/cjs/pool/uma/oracle/utils.js.map +1 -1
  157. package/dist/cjs/pool/uma/utils.js +30 -11
  158. package/dist/cjs/pool/uma/utils.js.map +1 -1
  159. package/dist/cjs/priceClient/adapters/acrossApi.js +39 -22
  160. package/dist/cjs/priceClient/adapters/acrossApi.js.map +1 -1
  161. package/dist/cjs/priceClient/adapters/baseAdapter.js +73 -49
  162. package/dist/cjs/priceClient/adapters/baseAdapter.js.map +1 -1
  163. package/dist/cjs/priceClient/adapters/coingecko.js +61 -34
  164. package/dist/cjs/priceClient/adapters/coingecko.js.map +1 -1
  165. package/dist/cjs/priceClient/adapters/default.js +31 -16
  166. package/dist/cjs/priceClient/adapters/default.js.map +1 -1
  167. package/dist/cjs/priceClient/adapters/defiLlama.js +74 -40
  168. package/dist/cjs/priceClient/adapters/defiLlama.js.map +1 -1
  169. package/dist/cjs/priceClient/adapters/index.js +1 -1
  170. package/dist/cjs/priceClient/index.js +1 -1
  171. package/dist/cjs/priceClient/priceClient.js +159 -110
  172. package/dist/cjs/priceClient/priceClient.js.map +1 -1
  173. package/dist/cjs/providers/alchemy.js +19 -17
  174. package/dist/cjs/providers/alchemy.js.map +1 -1
  175. package/dist/cjs/providers/cachedProvider.js +129 -88
  176. package/dist/cjs/providers/cachedProvider.js.map +1 -1
  177. package/dist/cjs/providers/drpc.js +11 -9
  178. package/dist/cjs/providers/drpc.js.map +1 -1
  179. package/dist/cjs/providers/index.js +1 -1
  180. package/dist/cjs/providers/infura.js +12 -10
  181. package/dist/cjs/providers/infura.js.map +1 -1
  182. package/dist/cjs/providers/mocks/MockCachedSolanaRpcFactory.js +15 -7
  183. package/dist/cjs/providers/mocks/MockCachedSolanaRpcFactory.js.map +1 -1
  184. package/dist/cjs/providers/mocks/MockRateLimitedSolanaRpcFactory.js +14 -6
  185. package/dist/cjs/providers/mocks/MockRateLimitedSolanaRpcFactory.js.map +1 -1
  186. package/dist/cjs/providers/mocks/MockRetrySolanaRpcFactory.js +15 -7
  187. package/dist/cjs/providers/mocks/MockRetrySolanaRpcFactory.js.map +1 -1
  188. package/dist/cjs/providers/mocks/MockSolanaRpcFactory.js +66 -42
  189. package/dist/cjs/providers/mocks/MockSolanaRpcFactory.js.map +1 -1
  190. package/dist/cjs/providers/mocks/index.js +1 -1
  191. package/dist/cjs/providers/mocks/mockEthersProvider.js +31 -29
  192. package/dist/cjs/providers/mocks/mockEthersProvider.js.map +1 -1
  193. package/dist/cjs/providers/quicknode.js +21 -19
  194. package/dist/cjs/providers/quicknode.js.map +1 -1
  195. package/dist/cjs/providers/rateLimitedProvider.js +79 -64
  196. package/dist/cjs/providers/rateLimitedProvider.js.map +1 -1
  197. package/dist/cjs/providers/retryProvider.js +246 -163
  198. package/dist/cjs/providers/retryProvider.js.map +1 -1
  199. package/dist/cjs/providers/solana/baseRpcFactories.js +18 -14
  200. package/dist/cjs/providers/solana/baseRpcFactories.js.map +1 -1
  201. package/dist/cjs/providers/solana/cachedRpcFactory.js +112 -70
  202. package/dist/cjs/providers/solana/cachedRpcFactory.js.map +1 -1
  203. package/dist/cjs/providers/solana/defaultRpcFactory.js +15 -8
  204. package/dist/cjs/providers/solana/defaultRpcFactory.js.map +1 -1
  205. package/dist/cjs/providers/solana/index.js +1 -1
  206. package/dist/cjs/providers/solana/quorumFallbackRpcFactory.js +191 -135
  207. package/dist/cjs/providers/solana/quorumFallbackRpcFactory.js.map +1 -1
  208. package/dist/cjs/providers/solana/rateLimitedRpcFactory.js +90 -67
  209. package/dist/cjs/providers/solana/rateLimitedRpcFactory.js.map +1 -1
  210. package/dist/cjs/providers/solana/retryRpcFactory.js +79 -52
  211. package/dist/cjs/providers/solana/retryRpcFactory.js.map +1 -1
  212. package/dist/cjs/providers/solana/utils.js +2 -2
  213. package/dist/cjs/providers/solana/utils.js.map +1 -1
  214. package/dist/cjs/providers/speedProvider.js +53 -31
  215. package/dist/cjs/providers/speedProvider.js.map +1 -1
  216. package/dist/cjs/providers/types.js +1 -1
  217. package/dist/cjs/providers/types.js.map +1 -1
  218. package/dist/cjs/providers/utils.js +28 -26
  219. package/dist/cjs/providers/utils.js.map +1 -1
  220. package/dist/cjs/relayFeeCalculator/chain-queries/baseQuery.js +162 -108
  221. package/dist/cjs/relayFeeCalculator/chain-queries/baseQuery.js.map +1 -1
  222. package/dist/cjs/relayFeeCalculator/chain-queries/customGasToken.js +26 -14
  223. package/dist/cjs/relayFeeCalculator/chain-queries/customGasToken.js.map +1 -1
  224. package/dist/cjs/relayFeeCalculator/chain-queries/factory.js +29 -20
  225. package/dist/cjs/relayFeeCalculator/chain-queries/factory.js.map +1 -1
  226. package/dist/cjs/relayFeeCalculator/chain-queries/index.js +1 -1
  227. package/dist/cjs/relayFeeCalculator/chain-queries/svmQuery.js +137 -88
  228. package/dist/cjs/relayFeeCalculator/chain-queries/svmQuery.js.map +1 -1
  229. package/dist/cjs/relayFeeCalculator/index.js +1 -1
  230. package/dist/cjs/relayFeeCalculator/relayFeeCalculator.js +297 -199
  231. package/dist/cjs/relayFeeCalculator/relayFeeCalculator.js.map +1 -1
  232. package/dist/cjs/typeguards/error.js +7 -5
  233. package/dist/cjs/typeguards/error.js.map +1 -1
  234. package/dist/cjs/typeguards/index.js +1 -1
  235. package/dist/cjs/utils/AddressUtils.js +144 -117
  236. package/dist/cjs/utils/AddressUtils.js.map +1 -1
  237. package/dist/cjs/utils/ArrayUtils.js +78 -21
  238. package/dist/cjs/utils/ArrayUtils.js.map +1 -1
  239. package/dist/cjs/utils/BigNumberUtils.js +10 -9
  240. package/dist/cjs/utils/BigNumberUtils.js.map +1 -1
  241. package/dist/cjs/utils/BlockExplorerUtils.js +30 -26
  242. package/dist/cjs/utils/BlockExplorerUtils.js.map +1 -1
  243. package/dist/cjs/utils/BlockFinder.js +5 -2
  244. package/dist/cjs/utils/BlockFinder.js.map +1 -1
  245. package/dist/cjs/utils/BlockUtils.js +41 -24
  246. package/dist/cjs/utils/BlockUtils.js.map +1 -1
  247. package/dist/cjs/utils/BundleUtils.js +24 -21
  248. package/dist/cjs/utils/BundleUtils.js.map +1 -1
  249. package/dist/cjs/utils/CCTPUtils.js +126 -62
  250. package/dist/cjs/utils/CCTPUtils.js.map +1 -1
  251. package/dist/cjs/utils/CachingUtils.js +42 -20
  252. package/dist/cjs/utils/CachingUtils.js.map +1 -1
  253. package/dist/cjs/utils/ContractUtils.js +5 -5
  254. package/dist/cjs/utils/ContractUtils.js.map +1 -1
  255. package/dist/cjs/utils/DepositUtils.js +99 -122
  256. package/dist/cjs/utils/DepositUtils.js.map +1 -1
  257. package/dist/cjs/utils/EventUtils.js +70 -49
  258. package/dist/cjs/utils/EventUtils.js.map +1 -1
  259. package/dist/cjs/utils/FormattingUtils.js +32 -26
  260. package/dist/cjs/utils/FormattingUtils.js.map +1 -1
  261. package/dist/cjs/utils/HyperLiquidUtils.js +23 -10
  262. package/dist/cjs/utils/HyperLiquidUtils.js.map +1 -1
  263. package/dist/cjs/utils/IPFSUtils.js +34 -16
  264. package/dist/cjs/utils/IPFSUtils.js.map +1 -1
  265. package/dist/cjs/utils/JSONUtils.js +6 -6
  266. package/dist/cjs/utils/JSONUtils.js.map +1 -1
  267. package/dist/cjs/utils/LogUtils.js +12 -10
  268. package/dist/cjs/utils/LogUtils.js.map +1 -1
  269. package/dist/cjs/utils/Multicall.js +115 -56
  270. package/dist/cjs/utils/Multicall.js.map +1 -1
  271. package/dist/cjs/utils/NetworkUtils.js +28 -12
  272. package/dist/cjs/utils/NetworkUtils.js.map +1 -1
  273. package/dist/cjs/utils/NumberUtils.js +3 -1
  274. package/dist/cjs/utils/NumberUtils.js.map +1 -1
  275. package/dist/cjs/utils/ObjectUtils.js +41 -27
  276. package/dist/cjs/utils/ObjectUtils.js.map +1 -1
  277. package/dist/cjs/utils/Profiler.js +83 -80
  278. package/dist/cjs/utils/Profiler.js.map +1 -1
  279. package/dist/cjs/utils/ReviverUtils.js +9 -5
  280. package/dist/cjs/utils/ReviverUtils.js.map +1 -1
  281. package/dist/cjs/utils/SpokeUtils.js +84 -84
  282. package/dist/cjs/utils/SpokeUtils.js.map +1 -1
  283. package/dist/cjs/utils/TokenUtils.js +64 -41
  284. package/dist/cjs/utils/TokenUtils.js.map +1 -1
  285. package/dist/cjs/utils/TypeGuards.js +1 -1
  286. package/dist/cjs/utils/TypeGuards.js.map +1 -1
  287. package/dist/cjs/utils/ValidatorUtils.js +7 -7
  288. package/dist/cjs/utils/ValidatorUtils.js.map +1 -1
  289. package/dist/cjs/utils/abi/contracts/index.js +1 -1
  290. package/dist/cjs/utils/abi/index.js +22 -12
  291. package/dist/cjs/utils/abi/index.js.map +1 -1
  292. package/dist/cjs/utils/abi/typechain/factories/Multicall3__factory.js +12 -9
  293. package/dist/cjs/utils/abi/typechain/factories/Multicall3__factory.js.map +1 -1
  294. package/dist/cjs/utils/abi/typechain/index.js +1 -1
  295. package/dist/cjs/utils/common.js +53 -40
  296. package/dist/cjs/utils/common.js.map +1 -1
  297. package/dist/cjs/utils/index.js +1 -1
  298. package/dist/esm/addressAggregator/adapters/abstract.js +64 -48
  299. package/dist/esm/addressAggregator/adapters/abstract.js.map +1 -1
  300. package/dist/esm/addressAggregator/adapters/bybit.js +29 -15
  301. package/dist/esm/addressAggregator/adapters/bybit.js.map +1 -1
  302. package/dist/esm/addressAggregator/adapters/env.js +14 -9
  303. package/dist/esm/addressAggregator/adapters/env.js.map +1 -1
  304. package/dist/esm/addressAggregator/adapters/file.js +43 -29
  305. package/dist/esm/addressAggregator/adapters/file.js.map +1 -1
  306. package/dist/esm/addressAggregator/adapters/risklabs.js +35 -20
  307. package/dist/esm/addressAggregator/adapters/risklabs.js.map +1 -1
  308. package/dist/esm/addressAggregator/index.js +83 -52
  309. package/dist/esm/addressAggregator/index.js.map +1 -1
  310. package/dist/esm/addressAggregator/types.js +1 -1
  311. package/dist/esm/addressAggregator/types.js.map +1 -1
  312. package/dist/esm/apiClient/abstractClient.js +9 -15
  313. package/dist/esm/apiClient/abstractClient.js.map +1 -1
  314. package/dist/esm/apiClient/mockedClient.js +26 -21
  315. package/dist/esm/apiClient/mockedClient.js.map +1 -1
  316. package/dist/esm/apiClient/productionClient.js +101 -61
  317. package/dist/esm/apiClient/productionClient.js.map +1 -1
  318. package/dist/esm/arch/evm/BlockUtils.js +217 -139
  319. package/dist/esm/arch/evm/BlockUtils.js.map +1 -1
  320. package/dist/esm/arch/evm/SpokeUtils.js +289 -146
  321. package/dist/esm/arch/evm/SpokeUtils.js.map +1 -1
  322. package/dist/esm/arch/evm/utils/wait.js +46 -34
  323. package/dist/esm/arch/evm/utils/wait.js.map +1 -1
  324. package/dist/esm/arch/svm/BlockUtils.js +166 -118
  325. package/dist/esm/arch/svm/BlockUtils.js.map +1 -1
  326. package/dist/esm/arch/svm/SpokeUtils.js +1150 -738
  327. package/dist/esm/arch/svm/SpokeUtils.js.map +1 -1
  328. package/dist/esm/arch/svm/constants.js +1 -1
  329. package/dist/esm/arch/svm/constants.js.map +1 -1
  330. package/dist/esm/arch/svm/eventsClient.js +232 -172
  331. package/dist/esm/arch/svm/eventsClient.js.map +1 -1
  332. package/dist/esm/arch/svm/provider.js +1 -1
  333. package/dist/esm/arch/svm/provider.js.map +1 -1
  334. package/dist/esm/arch/svm/utils.js +345 -155
  335. package/dist/esm/arch/svm/utils.js.map +1 -1
  336. package/dist/esm/caching/Arweave/ArweaveClient.js +256 -182
  337. package/dist/esm/caching/Arweave/ArweaveClient.js.map +1 -1
  338. package/dist/esm/caching/IPFS/PinataIPFSClient.js +48 -47
  339. package/dist/esm/caching/IPFS/PinataIPFSClient.js.map +1 -1
  340. package/dist/esm/caching/Memory/MemoryCacheClient.js +19 -13
  341. package/dist/esm/caching/Memory/MemoryCacheClient.js.map +1 -1
  342. package/dist/esm/clients/AcrossConfigStoreClient/AcrossConfigStoreClient.js +408 -333
  343. package/dist/esm/clients/AcrossConfigStoreClient/AcrossConfigStoreClient.js.map +1 -1
  344. package/dist/esm/clients/BaseAbstractClient.js +92 -66
  345. package/dist/esm/clients/BaseAbstractClient.js.map +1 -1
  346. package/dist/esm/clients/BundleDataClient/BundleDataClient.js +1054 -927
  347. package/dist/esm/clients/BundleDataClient/BundleDataClient.js.map +1 -1
  348. package/dist/esm/clients/BundleDataClient/utils/DataworkerUtils.js +131 -102
  349. package/dist/esm/clients/BundleDataClient/utils/DataworkerUtils.js.map +1 -1
  350. package/dist/esm/clients/BundleDataClient/utils/FillUtils.js +59 -57
  351. package/dist/esm/clients/BundleDataClient/utils/FillUtils.js.map +1 -1
  352. package/dist/esm/clients/BundleDataClient/utils/MerkleTreeUtils.js +5 -7
  353. package/dist/esm/clients/BundleDataClient/utils/MerkleTreeUtils.js.map +1 -1
  354. package/dist/esm/clients/BundleDataClient/utils/PoolRebalanceUtils.js +94 -75
  355. package/dist/esm/clients/BundleDataClient/utils/PoolRebalanceUtils.js.map +1 -1
  356. package/dist/esm/clients/BundleDataClient/utils/SuperstructUtils.js +23 -45
  357. package/dist/esm/clients/BundleDataClient/utils/SuperstructUtils.js.map +1 -1
  358. package/dist/esm/clients/HubPoolClient.js +740 -581
  359. package/dist/esm/clients/HubPoolClient.js.map +1 -1
  360. package/dist/esm/clients/SpokePoolClient/EVMSpokePoolClient.js +178 -133
  361. package/dist/esm/clients/SpokePoolClient/EVMSpokePoolClient.js.map +1 -1
  362. package/dist/esm/clients/SpokePoolClient/SVMSpokePoolClient.js +183 -126
  363. package/dist/esm/clients/SpokePoolClient/SVMSpokePoolClient.js.map +1 -1
  364. package/dist/esm/clients/SpokePoolClient/SpokePoolClient.js +399 -372
  365. package/dist/esm/clients/SpokePoolClient/SpokePoolClient.js.map +1 -1
  366. package/dist/esm/clients/SpokePoolClient/SpokePoolClientManager.js +9 -9
  367. package/dist/esm/clients/SpokePoolClient/SpokePoolClientManager.js.map +1 -1
  368. package/dist/esm/clients/SpokePoolClient/index.js +2 -2
  369. package/dist/esm/clients/SpokePoolClient/index.js.map +1 -1
  370. package/dist/esm/clients/SpokePoolClient/types.js +2 -2
  371. package/dist/esm/clients/SpokePoolClient/types.js.map +1 -1
  372. package/dist/esm/clients/mocks/MockConfigStoreClient.js +64 -53
  373. package/dist/esm/clients/mocks/MockConfigStoreClient.js.map +1 -1
  374. package/dist/esm/clients/mocks/MockEvents.js +49 -42
  375. package/dist/esm/clients/mocks/MockEvents.js.map +1 -1
  376. package/dist/esm/clients/mocks/MockHubPoolClient.js +182 -138
  377. package/dist/esm/clients/mocks/MockHubPoolClient.js.map +1 -1
  378. package/dist/esm/clients/mocks/MockSpokePoolClient.js +188 -202
  379. package/dist/esm/clients/mocks/MockSpokePoolClient.js.map +1 -1
  380. package/dist/esm/clients/mocks/MockSvmCpiEventsClient.js +132 -127
  381. package/dist/esm/clients/mocks/MockSvmCpiEventsClient.js.map +1 -1
  382. package/dist/esm/clients/mocks/MockSvmSpokePoolClient.js +69 -53
  383. package/dist/esm/clients/mocks/MockSvmSpokePoolClient.js.map +1 -1
  384. package/dist/esm/coingecko/Coingecko.js +443 -298
  385. package/dist/esm/coingecko/Coingecko.js.map +1 -1
  386. package/dist/esm/constants.js +47 -40
  387. package/dist/esm/constants.js.map +1 -1
  388. package/dist/esm/contracts/acrossConfigStore.js +46 -24
  389. package/dist/esm/contracts/acrossConfigStore.js.map +1 -1
  390. package/dist/esm/contracts/hubPool.js +18 -34
  391. package/dist/esm/contracts/hubPool.js.map +1 -1
  392. package/dist/esm/contracts/utils.js +5 -3
  393. package/dist/esm/contracts/utils.js.map +1 -1
  394. package/dist/esm/gasPriceOracle/adapters/arbitrum.js +14 -6
  395. package/dist/esm/gasPriceOracle/adapters/arbitrum.js.map +1 -1
  396. package/dist/esm/gasPriceOracle/adapters/ethereum.js +42 -22
  397. package/dist/esm/gasPriceOracle/adapters/ethereum.js.map +1 -1
  398. package/dist/esm/gasPriceOracle/adapters/linea-viem.js +25 -13
  399. package/dist/esm/gasPriceOracle/adapters/linea-viem.js.map +1 -1
  400. package/dist/esm/gasPriceOracle/adapters/polygon.js +108 -72
  401. package/dist/esm/gasPriceOracle/adapters/polygon.js.map +1 -1
  402. package/dist/esm/gasPriceOracle/adapters/solana.js +31 -22
  403. package/dist/esm/gasPriceOracle/adapters/solana.js.map +1 -1
  404. package/dist/esm/gasPriceOracle/oracle.js +96 -70
  405. package/dist/esm/gasPriceOracle/oracle.js.map +1 -1
  406. package/dist/esm/gasPriceOracle/types.js +2 -2
  407. package/dist/esm/gasPriceOracle/types.js.map +1 -1
  408. package/dist/esm/gasPriceOracle/util.js +4 -4
  409. package/dist/esm/gasPriceOracle/util.js.map +1 -1
  410. package/dist/esm/lpFeeCalculator/lpFeeCalculator.js +33 -30
  411. package/dist/esm/lpFeeCalculator/lpFeeCalculator.js.map +1 -1
  412. package/dist/esm/lpFeeCalculator/rateModel.js +9 -7
  413. package/dist/esm/lpFeeCalculator/rateModel.js.map +1 -1
  414. package/dist/esm/merkleDistributor/MerkleDistributor.js +17 -18
  415. package/dist/esm/merkleDistributor/MerkleDistributor.js.map +1 -1
  416. package/dist/esm/pool/TransactionManager.js +100 -45
  417. package/dist/esm/pool/TransactionManager.js.map +1 -1
  418. package/dist/esm/pool/poolClient.js +740 -479
  419. package/dist/esm/pool/poolClient.js.map +1 -1
  420. package/dist/esm/pool/uma/across/constants.js +2 -2
  421. package/dist/esm/pool/uma/across/constants.js.map +1 -1
  422. package/dist/esm/pool/uma/across/transactionManager.js +100 -45
  423. package/dist/esm/pool/uma/across/transactionManager.js.map +1 -1
  424. package/dist/esm/pool/uma/clients/erc20/client.js +13 -15
  425. package/dist/esm/pool/uma/clients/erc20/client.js.map +1 -1
  426. package/dist/esm/pool/uma/oracle/utils.js +3 -2
  427. package/dist/esm/pool/uma/oracle/utils.js.map +1 -1
  428. package/dist/esm/pool/uma/utils.js +28 -9
  429. package/dist/esm/pool/uma/utils.js.map +1 -1
  430. package/dist/esm/priceClient/adapters/acrossApi.js +40 -21
  431. package/dist/esm/priceClient/adapters/acrossApi.js.map +1 -1
  432. package/dist/esm/priceClient/adapters/baseAdapter.js +72 -46
  433. package/dist/esm/priceClient/adapters/baseAdapter.js.map +1 -1
  434. package/dist/esm/priceClient/adapters/coingecko.js +61 -33
  435. package/dist/esm/priceClient/adapters/coingecko.js.map +1 -1
  436. package/dist/esm/priceClient/adapters/default.js +31 -15
  437. package/dist/esm/priceClient/adapters/default.js.map +1 -1
  438. package/dist/esm/priceClient/adapters/defiLlama.js +73 -38
  439. package/dist/esm/priceClient/adapters/defiLlama.js.map +1 -1
  440. package/dist/esm/priceClient/priceClient.js +158 -109
  441. package/dist/esm/priceClient/priceClient.js.map +1 -1
  442. package/dist/esm/providers/alchemy.js +18 -16
  443. package/dist/esm/providers/alchemy.js.map +1 -1
  444. package/dist/esm/providers/cachedProvider.js +134 -99
  445. package/dist/esm/providers/cachedProvider.js.map +1 -1
  446. package/dist/esm/providers/constants.js +3 -3
  447. package/dist/esm/providers/constants.js.map +1 -1
  448. package/dist/esm/providers/drpc.js +10 -8
  449. package/dist/esm/providers/drpc.js.map +1 -1
  450. package/dist/esm/providers/infura.js +11 -9
  451. package/dist/esm/providers/infura.js.map +1 -1
  452. package/dist/esm/providers/mocks/MockCachedSolanaRpcFactory.js +15 -6
  453. package/dist/esm/providers/mocks/MockCachedSolanaRpcFactory.js.map +1 -1
  454. package/dist/esm/providers/mocks/MockRateLimitedSolanaRpcFactory.js +14 -5
  455. package/dist/esm/providers/mocks/MockRateLimitedSolanaRpcFactory.js.map +1 -1
  456. package/dist/esm/providers/mocks/MockRetrySolanaRpcFactory.js +15 -6
  457. package/dist/esm/providers/mocks/MockRetrySolanaRpcFactory.js.map +1 -1
  458. package/dist/esm/providers/mocks/MockSolanaRpcFactory.js +66 -41
  459. package/dist/esm/providers/mocks/MockSolanaRpcFactory.js.map +1 -1
  460. package/dist/esm/providers/mocks/mockEthersProvider.js +30 -27
  461. package/dist/esm/providers/mocks/mockEthersProvider.js.map +1 -1
  462. package/dist/esm/providers/quicknode.js +20 -18
  463. package/dist/esm/providers/quicknode.js.map +1 -1
  464. package/dist/esm/providers/rateLimitedProvider.js +80 -68
  465. package/dist/esm/providers/rateLimitedProvider.js.map +1 -1
  466. package/dist/esm/providers/retryProvider.js +259 -186
  467. package/dist/esm/providers/retryProvider.js.map +1 -1
  468. package/dist/esm/providers/solana/baseRpcFactories.js +19 -13
  469. package/dist/esm/providers/solana/baseRpcFactories.js.map +1 -1
  470. package/dist/esm/providers/solana/cachedRpcFactory.js +112 -75
  471. package/dist/esm/providers/solana/cachedRpcFactory.js.map +1 -1
  472. package/dist/esm/providers/solana/defaultRpcFactory.js +14 -6
  473. package/dist/esm/providers/solana/defaultRpcFactory.js.map +1 -1
  474. package/dist/esm/providers/solana/quorumFallbackRpcFactory.js +202 -149
  475. package/dist/esm/providers/solana/quorumFallbackRpcFactory.js.map +1 -1
  476. package/dist/esm/providers/solana/rateLimitedRpcFactory.js +90 -70
  477. package/dist/esm/providers/solana/rateLimitedRpcFactory.js.map +1 -1
  478. package/dist/esm/providers/solana/retryRpcFactory.js +74 -50
  479. package/dist/esm/providers/solana/retryRpcFactory.js.map +1 -1
  480. package/dist/esm/providers/solana/utils.js +1 -1
  481. package/dist/esm/providers/solana/utils.js.map +1 -1
  482. package/dist/esm/providers/speedProvider.js +51 -28
  483. package/dist/esm/providers/speedProvider.js.map +1 -1
  484. package/dist/esm/providers/types.js +2 -2
  485. package/dist/esm/providers/types.js.map +1 -1
  486. package/dist/esm/providers/utils.js +20 -17
  487. package/dist/esm/providers/utils.js.map +1 -1
  488. package/dist/esm/relayFeeCalculator/chain-queries/baseQuery.js +152 -98
  489. package/dist/esm/relayFeeCalculator/chain-queries/baseQuery.js.map +1 -1
  490. package/dist/esm/relayFeeCalculator/chain-queries/customGasToken.js +26 -13
  491. package/dist/esm/relayFeeCalculator/chain-queries/customGasToken.js.map +1 -1
  492. package/dist/esm/relayFeeCalculator/chain-queries/factory.js +19 -9
  493. package/dist/esm/relayFeeCalculator/chain-queries/factory.js.map +1 -1
  494. package/dist/esm/relayFeeCalculator/chain-queries/svmQuery.js +128 -83
  495. package/dist/esm/relayFeeCalculator/chain-queries/svmQuery.js.map +1 -1
  496. package/dist/esm/relayFeeCalculator/relayFeeCalculator.js +299 -211
  497. package/dist/esm/relayFeeCalculator/relayFeeCalculator.js.map +1 -1
  498. package/dist/esm/typeguards/error.js +5 -3
  499. package/dist/esm/typeguards/error.js.map +1 -1
  500. package/dist/esm/utils/AddressUtils.js +147 -115
  501. package/dist/esm/utils/AddressUtils.js.map +1 -1
  502. package/dist/esm/utils/ArrayUtils.js +78 -21
  503. package/dist/esm/utils/ArrayUtils.js.map +1 -1
  504. package/dist/esm/utils/BigNumberUtils.js +12 -11
  505. package/dist/esm/utils/BigNumberUtils.js.map +1 -1
  506. package/dist/esm/utils/BlockExplorerUtils.js +23 -19
  507. package/dist/esm/utils/BlockExplorerUtils.js.map +1 -1
  508. package/dist/esm/utils/BlockFinder.js +6 -2
  509. package/dist/esm/utils/BlockFinder.js.map +1 -1
  510. package/dist/esm/utils/BlockUtils.js +40 -31
  511. package/dist/esm/utils/BlockUtils.js.map +1 -1
  512. package/dist/esm/utils/BundleUtils.js +24 -21
  513. package/dist/esm/utils/BundleUtils.js.map +1 -1
  514. package/dist/esm/utils/CCTPUtils.js +123 -62
  515. package/dist/esm/utils/CCTPUtils.js.map +1 -1
  516. package/dist/esm/utils/CachingUtils.js +38 -17
  517. package/dist/esm/utils/CachingUtils.js.map +1 -1
  518. package/dist/esm/utils/ContractUtils.js +3 -3
  519. package/dist/esm/utils/ContractUtils.js.map +1 -1
  520. package/dist/esm/utils/DepositUtils.js +98 -121
  521. package/dist/esm/utils/DepositUtils.js.map +1 -1
  522. package/dist/esm/utils/EventUtils.js +69 -52
  523. package/dist/esm/utils/EventUtils.js.map +1 -1
  524. package/dist/esm/utils/FormattingUtils.js +26 -20
  525. package/dist/esm/utils/FormattingUtils.js.map +1 -1
  526. package/dist/esm/utils/HyperLiquidUtils.js +22 -8
  527. package/dist/esm/utils/HyperLiquidUtils.js.map +1 -1
  528. package/dist/esm/utils/IPFSUtils.js +35 -16
  529. package/dist/esm/utils/IPFSUtils.js.map +1 -1
  530. package/dist/esm/utils/JSONUtils.js +4 -4
  531. package/dist/esm/utils/JSONUtils.js.map +1 -1
  532. package/dist/esm/utils/LogUtils.js +12 -8
  533. package/dist/esm/utils/LogUtils.js.map +1 -1
  534. package/dist/esm/utils/Multicall.js +110 -50
  535. package/dist/esm/utils/Multicall.js.map +1 -1
  536. package/dist/esm/utils/NetworkUtils.js +28 -12
  537. package/dist/esm/utils/NetworkUtils.js.map +1 -1
  538. package/dist/esm/utils/NumberUtils.js +3 -1
  539. package/dist/esm/utils/NumberUtils.js.map +1 -1
  540. package/dist/esm/utils/ObjectUtils.js +41 -27
  541. package/dist/esm/utils/ObjectUtils.js.map +1 -1
  542. package/dist/esm/utils/Profiler.js +82 -77
  543. package/dist/esm/utils/Profiler.js.map +1 -1
  544. package/dist/esm/utils/ReviverUtils.js +7 -3
  545. package/dist/esm/utils/ReviverUtils.js.map +1 -1
  546. package/dist/esm/utils/SpokeUtils.js +78 -83
  547. package/dist/esm/utils/SpokeUtils.js.map +1 -1
  548. package/dist/esm/utils/TokenUtils.js +57 -33
  549. package/dist/esm/utils/TokenUtils.js.map +1 -1
  550. package/dist/esm/utils/ValidatorUtils.js +4 -4
  551. package/dist/esm/utils/ValidatorUtils.js.map +1 -1
  552. package/dist/esm/utils/abi/index.js +20 -10
  553. package/dist/esm/utils/abi/index.js.map +1 -1
  554. package/dist/esm/utils/abi/typechain/factories/Multicall3__factory.js +12 -8
  555. package/dist/esm/utils/abi/typechain/factories/Multicall3__factory.js.map +1 -1
  556. package/dist/esm/utils/common.js +52 -38
  557. package/dist/esm/utils/common.js.map +1 -1
  558. package/dist/types/constants.d.ts.map +1 -1
  559. package/dist/types/gasPriceOracle/oracle.d.ts.map +1 -1
  560. package/dist/types/utils/Multicall.d.ts.map +1 -1
  561. package/dist/types/utils/NetworkUtils.d.ts.map +1 -1
  562. package/package.json +3 -3
  563. package/src/constants.ts +1 -0
  564. package/src/gasPriceOracle/oracle.ts +1 -0
  565. package/src/utils/Multicall.ts +1 -0
  566. package/src/utils/NetworkUtils.ts +8 -1
@@ -1,3 +1,4 @@
1
+ import { __awaiter, __generator } from "tslib";
1
2
  import assert from "assert";
2
3
  import { CHAIN_IDs, SPOKEPOOL_UPGRADE_BLOCKS } from "../../constants";
3
4
  import { FillStatus } from "../../interfaces";
@@ -8,9 +9,10 @@ import { bnUint32Max, BigNumber, toBN, bnZero, chunk, getRelayDataHash, isDefine
8
9
  * @param repaymentChainId Optional repaymentChainId (defaults to destinationChainId).
9
10
  * @returns An Ethers UnsignedTransaction instance.
10
11
  */
11
- export function populateV3Relay(spokePool, relayData, repaymentAddress, repaymentChainId = relayData.destinationChainId) {
12
- assert(repaymentAddress.isValidOn(repaymentChainId), `Invalid repayment address for chain ${repaymentChainId}: ${repaymentAddress.toNative()}.`);
13
- const evmRelayData = {
12
+ export function populateV3Relay(spokePool, relayData, repaymentAddress, repaymentChainId) {
13
+ if (repaymentChainId === void 0) { repaymentChainId = relayData.destinationChainId; }
14
+ assert(repaymentAddress.isValidOn(repaymentChainId), "Invalid repayment address for chain ".concat(repaymentChainId, ": ").concat(repaymentAddress.toNative(), "."));
15
+ var evmRelayData = {
14
16
  depositor: relayData.depositor.toBytes32(),
15
17
  recipient: relayData.recipient.toBytes32(),
16
18
  inputToken: relayData.inputToken.toBytes32(),
@@ -36,19 +38,37 @@ export function populateV3Relay(spokePool, relayData, repaymentAddress, repaymen
36
38
  * Retrieves the time from the SpokePool contract at a particular block.
37
39
  * @returns The time at the specified block tag.
38
40
  */
39
- export async function getTimeAt(spokePool, blockNumber) {
40
- const currentTime = await spokePool.getCurrentTime({ blockTag: blockNumber });
41
- assert(BigNumber.isBigNumber(currentTime) && currentTime.lt(bnUint32Max));
42
- return currentTime.toNumber();
41
+ export function getTimeAt(spokePool, blockNumber) {
42
+ return __awaiter(this, void 0, void 0, function () {
43
+ var currentTime;
44
+ return __generator(this, function (_a) {
45
+ switch (_a.label) {
46
+ case 0: return [4 /*yield*/, spokePool.getCurrentTime({ blockTag: blockNumber })];
47
+ case 1:
48
+ currentTime = _a.sent();
49
+ assert(BigNumber.isBigNumber(currentTime) && currentTime.lt(bnUint32Max));
50
+ return [2 /*return*/, currentTime.toNumber()];
51
+ }
52
+ });
53
+ });
43
54
  }
44
55
  /**
45
56
  * Retrieves the chain time at a particular block.
46
57
  * @note This should be the same as getTimeAt() but can differ in test. These two functions should be consolidated.
47
58
  * @returns The chain time at the specified block tag.
48
59
  */
49
- export async function getTimestampForBlock(provider, blockNumber) {
50
- const block = await provider.getBlock(blockNumber);
51
- return block.timestamp;
60
+ export function getTimestampForBlock(provider, blockNumber) {
61
+ return __awaiter(this, void 0, void 0, function () {
62
+ var block;
63
+ return __generator(this, function (_a) {
64
+ switch (_a.label) {
65
+ case 0: return [4 /*yield*/, provider.getBlock(blockNumber)];
66
+ case 1:
67
+ block = _a.sent();
68
+ return [2 /*return*/, block.timestamp];
69
+ }
70
+ });
71
+ });
52
72
  }
53
73
  /**
54
74
  * Return maximum of fill deadline buffer at start and end of block range.
@@ -57,54 +77,95 @@ export async function getTimestampForBlock(provider, blockNumber) {
57
77
  * @param endBlock end block
58
78
  * @returns maximum of fill deadline buffer at start and end block
59
79
  */
60
- export async function getMaxFillDeadlineInRange(spokePool, startBlock, endBlock) {
61
- const fillDeadlineBuffers = await Promise.all([
62
- spokePool.fillDeadlineBuffer({ blockTag: startBlock }),
63
- spokePool.fillDeadlineBuffer({ blockTag: endBlock }),
64
- ]);
65
- return Math.max(fillDeadlineBuffers[0], fillDeadlineBuffers[1]);
80
+ export function getMaxFillDeadlineInRange(spokePool, startBlock, endBlock) {
81
+ return __awaiter(this, void 0, void 0, function () {
82
+ var fillDeadlineBuffers;
83
+ return __generator(this, function (_a) {
84
+ switch (_a.label) {
85
+ case 0: return [4 /*yield*/, Promise.all([
86
+ spokePool.fillDeadlineBuffer({ blockTag: startBlock }),
87
+ spokePool.fillDeadlineBuffer({ blockTag: endBlock }),
88
+ ])];
89
+ case 1:
90
+ fillDeadlineBuffers = _a.sent();
91
+ return [2 /*return*/, Math.max(fillDeadlineBuffers[0], fillDeadlineBuffers[1])];
92
+ }
93
+ });
94
+ });
66
95
  }
67
96
  /**
68
97
  * Finds the deposit id at a specific block number.
69
98
  * @param blockTag The block number to search for the deposit ID at.
70
99
  * @returns The deposit ID.
71
100
  */
72
- export async function getDepositIdAtBlock(contract, blockTag) {
73
- const _depositIdAtBlock = await contract.numberOfDeposits({ blockTag });
74
- const depositIdAtBlock = toBN(_depositIdAtBlock);
75
- // Sanity check to ensure that the deposit ID is greater than or equal to zero.
76
- if (depositIdAtBlock.lt(bnZero)) {
77
- throw new Error("Invalid deposit count");
78
- }
79
- return depositIdAtBlock;
101
+ export function getDepositIdAtBlock(contract, blockTag) {
102
+ return __awaiter(this, void 0, void 0, function () {
103
+ var _depositIdAtBlock, depositIdAtBlock;
104
+ return __generator(this, function (_a) {
105
+ switch (_a.label) {
106
+ case 0: return [4 /*yield*/, contract.numberOfDeposits({ blockTag: blockTag })];
107
+ case 1:
108
+ _depositIdAtBlock = _a.sent();
109
+ depositIdAtBlock = toBN(_depositIdAtBlock);
110
+ // Sanity check to ensure that the deposit ID is greater than or equal to zero.
111
+ if (depositIdAtBlock.lt(bnZero)) {
112
+ throw new Error("Invalid deposit count");
113
+ }
114
+ return [2 /*return*/, depositIdAtBlock];
115
+ }
116
+ });
117
+ });
80
118
  }
81
- export async function findDepositBlock(spokePool, depositId, lowBlock, highBlock) {
82
- // We can only perform this search when we have a safe deposit ID.
83
- if (isUnsafeDepositId(depositId)) {
84
- throw new Error(`Cannot binary search for depositId ${depositId}`);
85
- }
86
- highBlock ??= await spokePool.provider.getBlockNumber();
87
- assert(highBlock > lowBlock, `Block numbers out of range (${lowBlock} >= ${highBlock})`);
88
- // Make sure the deposit occurred within the block range supplied by the caller.
89
- const [nDepositsLow, nDepositsHigh] = (await Promise.all([
90
- spokePool.numberOfDeposits({ blockTag: lowBlock }),
91
- spokePool.numberOfDeposits({ blockTag: highBlock }),
92
- ])).map((n) => toBN(n));
93
- if (nDepositsLow.gt(depositId) || nDepositsHigh.lte(depositId)) {
94
- return undefined; // Deposit did not occur within the specified block range.
95
- }
96
- // Find the lowest block number where numberOfDeposits is greater than the requested depositId.
97
- do {
98
- const midBlock = Math.floor((highBlock + lowBlock) / 2);
99
- const nDeposits = toBN(await spokePool.numberOfDeposits({ blockTag: midBlock }));
100
- if (nDeposits.gt(depositId)) {
101
- highBlock = midBlock; // depositId occurred at or earlier than midBlock.
102
- }
103
- else {
104
- lowBlock = midBlock + 1; // depositId occurred later than midBlock.
105
- }
106
- } while (lowBlock < highBlock);
107
- return lowBlock;
119
+ export function findDepositBlock(spokePool, depositId, lowBlock, highBlock) {
120
+ return __awaiter(this, void 0, void 0, function () {
121
+ var _a, _b, nDepositsLow, nDepositsHigh, midBlock, nDeposits, _c;
122
+ return __generator(this, function (_d) {
123
+ switch (_d.label) {
124
+ case 0:
125
+ // We can only perform this search when we have a safe deposit ID.
126
+ if (isUnsafeDepositId(depositId)) {
127
+ throw new Error("Cannot binary search for depositId ".concat(depositId));
128
+ }
129
+ if (!(highBlock !== null && highBlock !== void 0)) return [3 /*break*/, 1];
130
+ _a = highBlock;
131
+ return [3 /*break*/, 3];
132
+ case 1: return [4 /*yield*/, spokePool.provider.getBlockNumber()];
133
+ case 2:
134
+ _a = (highBlock = _d.sent());
135
+ _d.label = 3;
136
+ case 3:
137
+ _a;
138
+ assert(highBlock > lowBlock, "Block numbers out of range (".concat(lowBlock, " >= ").concat(highBlock, ")"));
139
+ return [4 /*yield*/, Promise.all([
140
+ spokePool.numberOfDeposits({ blockTag: lowBlock }),
141
+ spokePool.numberOfDeposits({ blockTag: highBlock }),
142
+ ])];
143
+ case 4:
144
+ _b = (_d.sent()).map(function (n) { return toBN(n); }), nDepositsLow = _b[0], nDepositsHigh = _b[1];
145
+ if (nDepositsLow.gt(depositId) || nDepositsHigh.lte(depositId)) {
146
+ return [2 /*return*/, undefined]; // Deposit did not occur within the specified block range.
147
+ }
148
+ _d.label = 5;
149
+ case 5:
150
+ midBlock = Math.floor((highBlock + lowBlock) / 2);
151
+ _c = toBN;
152
+ return [4 /*yield*/, spokePool.numberOfDeposits({ blockTag: midBlock })];
153
+ case 6:
154
+ nDeposits = _c.apply(void 0, [_d.sent()]);
155
+ if (nDeposits.gt(depositId)) {
156
+ highBlock = midBlock; // depositId occurred at or earlier than midBlock.
157
+ }
158
+ else {
159
+ lowBlock = midBlock + 1; // depositId occurred later than midBlock.
160
+ }
161
+ _d.label = 7;
162
+ case 7:
163
+ if (lowBlock < highBlock) return [3 /*break*/, 5];
164
+ _d.label = 8;
165
+ case 8: return [2 /*return*/, lowBlock];
166
+ }
167
+ });
168
+ });
108
169
  }
109
170
  /**
110
171
  * Find the amount filled for a deposit at a particular block.
@@ -113,38 +174,71 @@ export async function findDepositBlock(spokePool, depositId, lowBlock, highBlock
113
174
  * @param blockTag Block tag (numeric or "latest") to query at.
114
175
  * @returns The amount filled for the specified deposit at the requested block (or latest).
115
176
  */
116
- export async function relayFillStatus(spokePool, relayData, blockTag = "latest", destinationChainId) {
117
- destinationChainId ??= await spokePool.chainId();
118
- assert(isDefined(destinationChainId));
119
- const hash = getRelayDataHash(relayData, destinationChainId);
120
- const _fillStatus = await spokePool.fillStatuses(hash, { blockTag });
121
- const fillStatus = Number(_fillStatus);
122
- if (![FillStatus.Unfilled, FillStatus.RequestedSlowFill, FillStatus.Filled].includes(fillStatus)) {
123
- const { originChainId, depositId } = relayData;
124
- throw new Error(`relayFillStatus: Unexpected fillStatus for ${originChainId} deposit ${depositId.toString()} (${fillStatus})`);
125
- }
126
- return fillStatus;
127
- }
128
- export async function fillStatusArray(spokePool, relayData, blockTag = "latest") {
129
- const fillStatuses = "fillStatuses";
130
- const destinationChainId = await spokePool.chainId();
131
- const queries = relayData.map((relayData) => {
132
- const hash = getRelayDataHash(relayData, destinationChainId);
133
- return spokePool.interface.encodeFunctionData(fillStatuses, [hash]);
177
+ export function relayFillStatus(spokePool_1, relayData_1) {
178
+ return __awaiter(this, arguments, void 0, function (spokePool, relayData, blockTag, destinationChainId) {
179
+ var _a, hash, _fillStatus, fillStatus, originChainId, depositId;
180
+ if (blockTag === void 0) { blockTag = "latest"; }
181
+ return __generator(this, function (_b) {
182
+ switch (_b.label) {
183
+ case 0:
184
+ if (!(destinationChainId !== null && destinationChainId !== void 0)) return [3 /*break*/, 1];
185
+ _a = destinationChainId;
186
+ return [3 /*break*/, 3];
187
+ case 1: return [4 /*yield*/, spokePool.chainId()];
188
+ case 2:
189
+ _a = (destinationChainId = _b.sent());
190
+ _b.label = 3;
191
+ case 3:
192
+ _a;
193
+ assert(isDefined(destinationChainId));
194
+ hash = getRelayDataHash(relayData, destinationChainId);
195
+ return [4 /*yield*/, spokePool.fillStatuses(hash, { blockTag: blockTag })];
196
+ case 4:
197
+ _fillStatus = _b.sent();
198
+ fillStatus = Number(_fillStatus);
199
+ if (![FillStatus.Unfilled, FillStatus.RequestedSlowFill, FillStatus.Filled].includes(fillStatus)) {
200
+ originChainId = relayData.originChainId, depositId = relayData.depositId;
201
+ throw new Error("relayFillStatus: Unexpected fillStatus for ".concat(originChainId, " deposit ").concat(depositId.toString(), " (").concat(fillStatus, ")"));
202
+ }
203
+ return [2 /*return*/, fillStatus];
204
+ }
205
+ });
134
206
  });
135
- // Chunk the hashes into appropriate sizes to avoid death by rpc.
136
- const chunkSize = 250;
137
- const chunkedQueries = chunk(queries, chunkSize);
138
- const multicalls = await Promise.all(chunkedQueries.map((queries) => spokePool.callStatic.multicall(queries, { blockTag })));
139
- const status = multicalls
140
- .map((multicall) => multicall.map((result) => spokePool.interface.decodeFunctionResult(fillStatuses, result)[0]))
141
- .flat();
142
- const bnUnfilled = toBN(FillStatus.Unfilled);
143
- const bnFilled = toBN(FillStatus.Filled);
144
- return status.map((status) => {
145
- return BigNumber.isBigNumber(status) && status.gte(bnUnfilled) && status.lte(bnFilled)
146
- ? status.toNumber()
147
- : undefined;
207
+ }
208
+ export function fillStatusArray(spokePool_1, relayData_1) {
209
+ return __awaiter(this, arguments, void 0, function (spokePool, relayData, blockTag) {
210
+ var fillStatuses, destinationChainId, queries, chunkSize, chunkedQueries, multicalls, status, bnUnfilled, bnFilled;
211
+ if (blockTag === void 0) { blockTag = "latest"; }
212
+ return __generator(this, function (_a) {
213
+ switch (_a.label) {
214
+ case 0:
215
+ fillStatuses = "fillStatuses";
216
+ return [4 /*yield*/, spokePool.chainId()];
217
+ case 1:
218
+ destinationChainId = _a.sent();
219
+ queries = relayData.map(function (relayData) {
220
+ var hash = getRelayDataHash(relayData, destinationChainId);
221
+ return spokePool.interface.encodeFunctionData(fillStatuses, [hash]);
222
+ });
223
+ chunkSize = 250;
224
+ chunkedQueries = chunk(queries, chunkSize);
225
+ return [4 /*yield*/, Promise.all(chunkedQueries.map(function (queries) { return spokePool.callStatic.multicall(queries, { blockTag: blockTag }); }))];
226
+ case 2:
227
+ multicalls = _a.sent();
228
+ status = multicalls
229
+ .map(function (multicall) {
230
+ return multicall.map(function (result) { return spokePool.interface.decodeFunctionResult(fillStatuses, result)[0]; });
231
+ })
232
+ .flat();
233
+ bnUnfilled = toBN(FillStatus.Unfilled);
234
+ bnFilled = toBN(FillStatus.Filled);
235
+ return [2 /*return*/, status.map(function (status) {
236
+ return BigNumber.isBigNumber(status) && status.gte(bnUnfilled) && status.lte(bnFilled)
237
+ ? status.toNumber()
238
+ : undefined;
239
+ })];
240
+ }
241
+ });
148
242
  });
149
243
  }
150
244
  /**
@@ -156,70 +250,119 @@ export async function fillStatusArray(spokePool, relayData, blockTag = "latest")
156
250
  * @param highBlocknumber Optional upper bound for the search.
157
251
  * @returns The block number at which the relay was completed, or undefined.
158
252
  */
159
- export async function findFillBlock(spokePool, relayData, lowBlockNumber, highBlockNumber) {
160
- const { provider } = spokePool;
161
- // In production the chainId returned from the provider matches 1:1 with the actual chainId. Querying the provider
162
- // object saves an RPC query because the chainId is cached by StaticJsonRpcProvider instances. In hre, the SpokePool
163
- // may be configured with a different chainId than what is returned by the provider.
164
- const destinationChainId = Object.values(CHAIN_IDs).includes(relayData.originChainId)
165
- ? (await provider.getNetwork()).chainId
166
- : Number(await spokePool.chainId());
167
- assert(relayData.originChainId !== destinationChainId, `Origin & destination chain IDs must not be equal (${destinationChainId})`);
168
- // For a subset of older SpokePools, their deployment ABIs did not include the fillStatus mapping.
169
- // Bound any searches by the blocks where fillStatus was added.
170
- lowBlockNumber = Math.max(lowBlockNumber, SPOKEPOOL_UPGRADE_BLOCKS[destinationChainId] ?? lowBlockNumber);
171
- highBlockNumber ??= await provider.getBlockNumber();
172
- assert(highBlockNumber > lowBlockNumber, `Block numbers out of range (${lowBlockNumber} >= ${highBlockNumber})`);
173
- // Make sure the relay was completed within the block range supplied by the caller.
174
- const [initialFillStatus, finalFillStatus] = (await Promise.all([
175
- relayFillStatus(spokePool, relayData, lowBlockNumber, destinationChainId),
176
- relayFillStatus(spokePool, relayData, highBlockNumber, destinationChainId),
177
- ])).map(Number);
178
- if (finalFillStatus !== FillStatus.Filled) {
179
- return undefined; // Wasn't filled within the specified block range.
180
- }
181
- // Was filled earlier than the specified lowBlock. This is an error by the caller.
182
- if (initialFillStatus === FillStatus.Filled) {
183
- const { depositId, originChainId } = relayData;
184
- const [srcChain, dstChain] = [getNetworkName(originChainId), getNetworkName(destinationChainId)];
185
- throw new Error(`${srcChain} deposit ${depositId.toString()} filled on ${dstChain} before block ${lowBlockNumber}`);
186
- }
187
- // Find the leftmost block where filledAmount equals the deposit amount.
188
- do {
189
- const midBlockNumber = Math.floor((highBlockNumber + lowBlockNumber) / 2);
190
- const fillStatus = await relayFillStatus(spokePool, relayData, midBlockNumber, destinationChainId);
191
- if (fillStatus === FillStatus.Filled) {
192
- highBlockNumber = midBlockNumber;
193
- }
194
- else {
195
- lowBlockNumber = midBlockNumber + 1;
196
- }
197
- } while (lowBlockNumber < highBlockNumber);
198
- return lowBlockNumber;
253
+ export function findFillBlock(spokePool, relayData, lowBlockNumber, highBlockNumber) {
254
+ return __awaiter(this, void 0, void 0, function () {
255
+ var provider, destinationChainId, _a, _b, _c, _d, initialFillStatus, finalFillStatus, depositId, originChainId, _e, srcChain, dstChain, midBlockNumber, fillStatus;
256
+ var _f;
257
+ return __generator(this, function (_g) {
258
+ switch (_g.label) {
259
+ case 0:
260
+ provider = spokePool.provider;
261
+ if (!Object.values(CHAIN_IDs).includes(relayData.originChainId)) return [3 /*break*/, 2];
262
+ return [4 /*yield*/, provider.getNetwork()];
263
+ case 1:
264
+ _a = (_g.sent()).chainId;
265
+ return [3 /*break*/, 4];
266
+ case 2:
267
+ _b = Number;
268
+ return [4 /*yield*/, spokePool.chainId()];
269
+ case 3:
270
+ _a = _b.apply(void 0, [_g.sent()]);
271
+ _g.label = 4;
272
+ case 4:
273
+ destinationChainId = _a;
274
+ assert(relayData.originChainId !== destinationChainId, "Origin & destination chain IDs must not be equal (".concat(destinationChainId, ")"));
275
+ // For a subset of older SpokePools, their deployment ABIs did not include the fillStatus mapping.
276
+ // Bound any searches by the blocks where fillStatus was added.
277
+ lowBlockNumber = Math.max(lowBlockNumber, (_f = SPOKEPOOL_UPGRADE_BLOCKS[destinationChainId]) !== null && _f !== void 0 ? _f : lowBlockNumber);
278
+ if (!(highBlockNumber !== null && highBlockNumber !== void 0)) return [3 /*break*/, 5];
279
+ _c = highBlockNumber;
280
+ return [3 /*break*/, 7];
281
+ case 5: return [4 /*yield*/, provider.getBlockNumber()];
282
+ case 6:
283
+ _c = (highBlockNumber = _g.sent());
284
+ _g.label = 7;
285
+ case 7:
286
+ _c;
287
+ assert(highBlockNumber > lowBlockNumber, "Block numbers out of range (".concat(lowBlockNumber, " >= ").concat(highBlockNumber, ")"));
288
+ return [4 /*yield*/, Promise.all([
289
+ relayFillStatus(spokePool, relayData, lowBlockNumber, destinationChainId),
290
+ relayFillStatus(spokePool, relayData, highBlockNumber, destinationChainId),
291
+ ])];
292
+ case 8:
293
+ _d = (_g.sent()).map(Number), initialFillStatus = _d[0], finalFillStatus = _d[1];
294
+ if (finalFillStatus !== FillStatus.Filled) {
295
+ return [2 /*return*/, undefined]; // Wasn't filled within the specified block range.
296
+ }
297
+ // Was filled earlier than the specified lowBlock. This is an error by the caller.
298
+ if (initialFillStatus === FillStatus.Filled) {
299
+ depositId = relayData.depositId, originChainId = relayData.originChainId;
300
+ _e = [getNetworkName(originChainId), getNetworkName(destinationChainId)], srcChain = _e[0], dstChain = _e[1];
301
+ throw new Error("".concat(srcChain, " deposit ").concat(depositId.toString(), " filled on ").concat(dstChain, " before block ").concat(lowBlockNumber));
302
+ }
303
+ _g.label = 9;
304
+ case 9:
305
+ midBlockNumber = Math.floor((highBlockNumber + lowBlockNumber) / 2);
306
+ return [4 /*yield*/, relayFillStatus(spokePool, relayData, midBlockNumber, destinationChainId)];
307
+ case 10:
308
+ fillStatus = _g.sent();
309
+ if (fillStatus === FillStatus.Filled) {
310
+ highBlockNumber = midBlockNumber;
311
+ }
312
+ else {
313
+ lowBlockNumber = midBlockNumber + 1;
314
+ }
315
+ _g.label = 11;
316
+ case 11:
317
+ if (lowBlockNumber < highBlockNumber) return [3 /*break*/, 9];
318
+ _g.label = 12;
319
+ case 12: return [2 /*return*/, lowBlockNumber];
320
+ }
321
+ });
322
+ });
199
323
  }
200
- export async function findFillEvent(spokePool, relayData, lowBlockNumber, highBlockNumber) {
201
- const blockNumber = await findFillBlock(spokePool, relayData, lowBlockNumber, highBlockNumber);
202
- if (!blockNumber)
203
- return undefined;
204
- // We can hardcode this to 0 to instruct paginatedEventQuery to make a single request for the same block number.
205
- const maxLookBack = 0;
206
- const [from, to] = [blockNumber, blockNumber];
207
- const query = (await Promise.all([
208
- paginatedEventQuery(spokePool, spokePool.filters.FilledRelay(null, null, null, null, null, relayData.originChainId, relayData.depositId), { from, to, maxLookBack }),
209
- paginatedEventQuery(spokePool, spokePool.filters.FilledV3Relay(null, null, null, null, null, relayData.originChainId, relayData.depositId), { from, to, maxLookBack }),
210
- ])).flat();
211
- if (query.length === 0) {
212
- const { chainId: destinationChainId } = await spokePool.provider.getNetwork();
213
- const [origin, destination] = [relayData.originChainId, destinationChainId].map(getNetworkName);
214
- throw new Error(`Failed to find fill event on destination chain ${destination} at block ${blockNumber}, for deposit ${relayData.depositId} on origin chain ${origin}`);
215
- }
216
- const event = query[0];
217
- // In production the chainId returned from the provider matches 1:1 with the actual chainId. Querying the provider
218
- // object saves an RPC query because the chainId is cached by StaticJsonRpcProvider instances. In hre, the SpokePool
219
- // may be configured with a different chainId than what is returned by the provider.
220
- const destinationChainId = Object.values(CHAIN_IDs).includes(relayData.originChainId)
221
- ? (await spokePool.provider.getNetwork()).chainId
222
- : Number(await spokePool.chainId());
223
- return unpackFillEvent(spreadEventWithBlockNumber(event), destinationChainId);
324
+ export function findFillEvent(spokePool, relayData, lowBlockNumber, highBlockNumber) {
325
+ return __awaiter(this, void 0, void 0, function () {
326
+ var blockNumber, maxLookBack, _a, from, to, query, destinationChainId_1, _b, origin_1, destination, event, destinationChainId, _c, _d;
327
+ return __generator(this, function (_e) {
328
+ switch (_e.label) {
329
+ case 0: return [4 /*yield*/, findFillBlock(spokePool, relayData, lowBlockNumber, highBlockNumber)];
330
+ case 1:
331
+ blockNumber = _e.sent();
332
+ if (!blockNumber)
333
+ return [2 /*return*/, undefined];
334
+ maxLookBack = 0;
335
+ _a = [blockNumber, blockNumber], from = _a[0], to = _a[1];
336
+ return [4 /*yield*/, Promise.all([
337
+ paginatedEventQuery(spokePool, spokePool.filters.FilledRelay(null, null, null, null, null, relayData.originChainId, relayData.depositId), { from: from, to: to, maxLookBack: maxLookBack }),
338
+ paginatedEventQuery(spokePool, spokePool.filters.FilledV3Relay(null, null, null, null, null, relayData.originChainId, relayData.depositId), { from: from, to: to, maxLookBack: maxLookBack }),
339
+ ])];
340
+ case 2:
341
+ query = (_e.sent()).flat();
342
+ if (!(query.length === 0)) return [3 /*break*/, 4];
343
+ return [4 /*yield*/, spokePool.provider.getNetwork()];
344
+ case 3:
345
+ destinationChainId_1 = (_e.sent()).chainId;
346
+ _b = [relayData.originChainId, destinationChainId_1].map(getNetworkName), origin_1 = _b[0], destination = _b[1];
347
+ throw new Error("Failed to find fill event on destination chain ".concat(destination, " at block ").concat(blockNumber, ", for deposit ").concat(relayData.depositId, " on origin chain ").concat(origin_1));
348
+ case 4:
349
+ event = query[0];
350
+ if (!Object.values(CHAIN_IDs).includes(relayData.originChainId)) return [3 /*break*/, 6];
351
+ return [4 /*yield*/, spokePool.provider.getNetwork()];
352
+ case 5:
353
+ _c = (_e.sent()).chainId;
354
+ return [3 /*break*/, 8];
355
+ case 6:
356
+ _d = Number;
357
+ return [4 /*yield*/, spokePool.chainId()];
358
+ case 7:
359
+ _c = _d.apply(void 0, [_e.sent()]);
360
+ _e.label = 8;
361
+ case 8:
362
+ destinationChainId = _c;
363
+ return [2 /*return*/, unpackFillEvent(spreadEventWithBlockNumber(event), destinationChainId)];
364
+ }
365
+ });
366
+ });
224
367
  }
225
368
  //# sourceMappingURL=SpokeUtils.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"SpokeUtils.js","sourceRoot":"","sources":["../../../../src/arch/evm/SpokeUtils.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"SpokeUtils.js","sourceRoot":"","sources":["../../../../src/arch/evm/SpokeUtils.ts"],"names":[],"mappings":"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"}