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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (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 +4 -4
  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, __extends, __generator, __spreadArray } from "tslib";
1
2
  import { isPromiseFulfilled, isPromiseRejected } from "../../utils/TypeGuards";
2
3
  import { compareSvmRpcResults, createSendErrorWithMessage } from "../utils";
3
4
  import { CachedSolanaRpcFactory } from "./cachedRpcFactory";
@@ -6,162 +7,212 @@ import { shouldFailImmediate } from "./utils";
6
7
  // This factory stores multiple Cached RPC factories so that users of this factory can specify multiple RPC providers
7
8
  // and the factory will fallback through them if any RPC calls fail. This factory also implements quorum logic amongst
8
9
  // the RPC providers.
9
- export class QuorumFallbackSolanaRpcFactory extends SolanaBaseRpcFactory {
10
- nodeQuorumThreshold;
11
- logger;
12
- rpcFactories = [];
13
- constructor(factoryConstructorParams, nodeQuorumThreshold, logger) {
14
- super();
15
- this.nodeQuorumThreshold = nodeQuorumThreshold;
16
- this.logger = logger;
17
- factoryConstructorParams.forEach((params) => {
18
- const rpcFactory = new CachedSolanaRpcFactory(...params);
19
- this.rpcFactories.push({
10
+ var QuorumFallbackSolanaRpcFactory = /** @class */ (function (_super) {
11
+ __extends(QuorumFallbackSolanaRpcFactory, _super);
12
+ function QuorumFallbackSolanaRpcFactory(factoryConstructorParams, nodeQuorumThreshold, logger) {
13
+ var _this = _super.call(this) || this;
14
+ _this.nodeQuorumThreshold = nodeQuorumThreshold;
15
+ _this.logger = logger;
16
+ _this.rpcFactories = [];
17
+ factoryConstructorParams.forEach(function (params) {
18
+ var rpcFactory = new (CachedSolanaRpcFactory.bind.apply(CachedSolanaRpcFactory, __spreadArray([void 0], params, false)))();
19
+ _this.rpcFactories.push({
20
20
  transport: rpcFactory.createTransport(),
21
21
  rpcClient: rpcFactory.createRpcClient(),
22
- rpcFactory,
22
+ rpcFactory: rpcFactory,
23
23
  });
24
24
  });
25
- if (this.nodeQuorumThreshold < 1 || !Number.isInteger(this.nodeQuorumThreshold)) {
26
- throw new Error(`nodeQuorum,Threshold cannot be < 1 and must be an integer. Currently set to ${this.nodeQuorumThreshold}`);
25
+ if (_this.nodeQuorumThreshold < 1 || !Number.isInteger(_this.nodeQuorumThreshold)) {
26
+ throw new Error("nodeQuorum,Threshold cannot be < 1 and must be an integer. Currently set to ".concat(_this.nodeQuorumThreshold));
27
27
  }
28
+ return _this;
28
29
  }
29
- createTransport() {
30
- return async (...args) => {
31
- const { method, params } = args[0].payload;
32
- const quorumThreshold = this._getQuorum(method, params ?? []);
33
- const requiredFactories = this.rpcFactories.slice(0, quorumThreshold);
34
- const fallbackFactories = [...this.rpcFactories.slice(quorumThreshold)];
35
- const errors = [];
36
- const tryWithFallback = (factory, ...args) => {
37
- return factory
38
- .transport(...args)
39
- .then((result) => [factory.rpcFactory, result])
40
- .catch((error) => {
41
- // Append the provider and error to the error array.
42
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
43
- errors.push([factory.rpcFactory, error?.stack || error?.toString()]);
44
- // If all fallback providers fail, then return the last received error.
45
- if (fallbackFactories.length === 0) {
46
- throw error;
47
- }
48
- // If one RPC provider reverted, others likely will too. Skip them.
49
- if (quorumThreshold === 1 && shouldFailImmediate(method, error)) {
50
- throw new Error(`RPC provider reverted for method ${method}`);
51
- }
52
- const currentFactory = factory.rpcFactory.clusterUrl;
53
- const nextFactory = fallbackFactories.shift();
54
- this.logger.debug({
55
- at: "FallbackSolanaRpcFactory#createTransport::tryWithFallback",
56
- message: `[${method}] ${currentFactory} failed, falling back to ${nextFactory.rpcFactory.clusterUrl}, new fallback providers length: ${fallbackFactories.length}`,
57
- method,
58
- jsonError: error,
59
- });
60
- return tryWithFallback(nextFactory, ...args);
61
- });
62
- };
63
- const results = await Promise.allSettled(requiredFactories.map((factory) => {
64
- return tryWithFallback(factory, ...args);
65
- }));
66
- const getErrorStrings = () => {
67
- return errors.map(([factory, errorText]) => `Provider ${factory.clusterUrl} failed to call ${method} with error ${errorText}`);
68
- };
69
- if (!results.every(isPromiseFulfilled)) {
70
- // Format the error so that it's very clear which providers failed and succeeded.
71
- const errorTexts = getErrorStrings();
72
- const successfulProviderUrls = results.filter(isPromiseFulfilled).map((result) => result.value[0].clusterUrl);
73
- throw createSendErrorWithMessage(`Not enough providers succeeded on ${method} call. Errors:\n${errorTexts.join("\n")}\n` +
74
- `Successful Providers:\n${successfulProviderUrls.join("\n")}`, results.find(isPromiseRejected)?.reason);
30
+ QuorumFallbackSolanaRpcFactory.prototype.createTransport = function () {
31
+ var _this = this;
32
+ return function () {
33
+ var args = [];
34
+ for (var _i = 0; _i < arguments.length; _i++) {
35
+ args[_i] = arguments[_i];
75
36
  }
76
- const values = results.map((result) => result.value);
77
- // Start at element 1 and begin comparing.
78
- // If _all_ values are equal, we have hit quorum, so return.
79
- if (values.slice(1).every(([, output]) => compareSvmRpcResults(method, values[0][1], output))) {
80
- return values[0][1];
81
- }
82
- const getHighestCountResult = (values) => {
83
- // Group the results by the count of that result.
84
- const counts = [...values].reduce((acc, curr) => {
85
- const [, result] = curr;
86
- // Find the first result that matches the return value.
87
- const existingMatch = acc.find(([existingResult]) => compareSvmRpcResults(method, existingResult, result));
88
- // Increment the count if a match is found, else add a new element to the match array with a count of 1.
89
- if (existingMatch) {
90
- existingMatch[1]++;
91
- }
92
- else {
93
- acc.push([result, 1]);
37
+ return __awaiter(_this, void 0, void 0, function () {
38
+ var _a, method, params, quorumThreshold, requiredFactories, fallbackFactories, errors, tryWithFallback, results, getErrorStrings, errorTexts, successfulProviderUrls_1, values, getHighestCountResult, logQuorumMismatchOrFailureDetails, throwQuorumError, mostFrequentResult, fallbackResults, fallbackValues, _b, quorumResult, count, mismatchedProviders, successfulProviderUrls;
39
+ var _this = this;
40
+ var _c;
41
+ return __generator(this, function (_d) {
42
+ switch (_d.label) {
43
+ case 0:
44
+ _a = args[0].payload, method = _a.method, params = _a.params;
45
+ quorumThreshold = this._getQuorum(method, params !== null && params !== void 0 ? params : []);
46
+ requiredFactories = this.rpcFactories.slice(0, quorumThreshold);
47
+ fallbackFactories = __spreadArray([], this.rpcFactories.slice(quorumThreshold), true);
48
+ errors = [];
49
+ tryWithFallback = function (factory) {
50
+ var args = [];
51
+ for (var _i = 1; _i < arguments.length; _i++) {
52
+ args[_i - 1] = arguments[_i];
53
+ }
54
+ return factory
55
+ .transport.apply(factory, args).then(function (result) { return [factory.rpcFactory, result]; })
56
+ .catch(function (error) {
57
+ // Append the provider and error to the error array.
58
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
59
+ errors.push([factory.rpcFactory, (error === null || error === void 0 ? void 0 : error.stack) || (error === null || error === void 0 ? void 0 : error.toString())]);
60
+ // If all fallback providers fail, then return the last received error.
61
+ if (fallbackFactories.length === 0) {
62
+ throw error;
63
+ }
64
+ // If one RPC provider reverted, others likely will too. Skip them.
65
+ if (quorumThreshold === 1 && shouldFailImmediate(method, error)) {
66
+ throw new Error("RPC provider reverted for method ".concat(method));
67
+ }
68
+ var currentFactory = factory.rpcFactory.clusterUrl;
69
+ var nextFactory = fallbackFactories.shift();
70
+ _this.logger.debug({
71
+ at: "FallbackSolanaRpcFactory#createTransport::tryWithFallback",
72
+ message: "[".concat(method, "] ").concat(currentFactory, " failed, falling back to ").concat(nextFactory.rpcFactory.clusterUrl, ", new fallback providers length: ").concat(fallbackFactories.length),
73
+ method: method,
74
+ jsonError: error,
75
+ });
76
+ return tryWithFallback.apply(void 0, __spreadArray([nextFactory], args, false));
77
+ });
78
+ };
79
+ return [4 /*yield*/, Promise.allSettled(requiredFactories.map(function (factory) {
80
+ return tryWithFallback.apply(void 0, __spreadArray([factory], args, false));
81
+ }))];
82
+ case 1:
83
+ results = _d.sent();
84
+ getErrorStrings = function () {
85
+ return errors.map(function (_a) {
86
+ var factory = _a[0], errorText = _a[1];
87
+ return "Provider ".concat(factory.clusterUrl, " failed to call ").concat(method, " with error ").concat(errorText);
88
+ });
89
+ };
90
+ if (!results.every(isPromiseFulfilled)) {
91
+ errorTexts = getErrorStrings();
92
+ successfulProviderUrls_1 = results.filter(isPromiseFulfilled).map(function (result) { return result.value[0].clusterUrl; });
93
+ throw createSendErrorWithMessage("Not enough providers succeeded on ".concat(method, " call. Errors:\n").concat(errorTexts.join("\n"), "\n") +
94
+ "Successful Providers:\n".concat(successfulProviderUrls_1.join("\n")), (_c = results.find(isPromiseRejected)) === null || _c === void 0 ? void 0 : _c.reason);
95
+ }
96
+ values = results.map(function (result) { return result.value; });
97
+ // Start at element 1 and begin comparing.
98
+ // If _all_ values are equal, we have hit quorum, so return.
99
+ if (values.slice(1).every(function (_a) {
100
+ var output = _a[1];
101
+ return compareSvmRpcResults(method, values[0][1], output);
102
+ })) {
103
+ return [2 /*return*/, values[0][1]];
104
+ }
105
+ getHighestCountResult = function (values) {
106
+ // Group the results by the count of that result.
107
+ var counts = __spreadArray([], values, true).reduce(function (acc, curr) {
108
+ var result = curr[1];
109
+ // Find the first result that matches the return value.
110
+ var existingMatch = acc.find(function (_a) {
111
+ var existingResult = _a[0];
112
+ return compareSvmRpcResults(method, existingResult, result);
113
+ });
114
+ // Increment the count if a match is found, else add a new element to the match array with a count of 1.
115
+ if (existingMatch) {
116
+ existingMatch[1]++;
117
+ }
118
+ else {
119
+ acc.push([result, 1]);
120
+ }
121
+ // Return the same acc object because it was modified in place.
122
+ return acc;
123
+ }, [[undefined, 0]] // Initialize with [undefined, 0] as the first element so something is always returned.
124
+ );
125
+ // Sort so the result with the highest count is first.
126
+ counts.sort(function (_a, _b) {
127
+ var a = _a[1];
128
+ var b = _b[1];
129
+ return b - a;
130
+ });
131
+ // Extract the result by grabbing the first element.
132
+ var _a = counts[0], mostFrequentResult = _a[0], count = _a[1];
133
+ return [mostFrequentResult, count];
134
+ };
135
+ logQuorumMismatchOrFailureDetails = function (method, params, mismatchedProviders, successfulProviders, errors, quorumResult) {
136
+ _this.logger.warn({
137
+ at: "FallbackSolanaRpcFactory#createTransport",
138
+ message: "[".concat(method, "] Some providers mismatched with the quorum result or failed \uD83D\uDEB8"),
139
+ notificationPath: "across-warn",
140
+ method: method,
141
+ params: JSON.stringify(params),
142
+ quorumResult: METHODS_RETURNING_BIGINT.includes(method) ? Number(quorumResult) : undefined,
143
+ mismatchedProviders: mismatchedProviders,
144
+ successfulProviders: successfulProviders,
145
+ erroringProviders: errors.map(function (_a) {
146
+ var factory = _a[0], errorText = _a[1];
147
+ return "Provider ".concat(factory.clusterUrl, " failed with error ").concat(errorText);
148
+ }),
149
+ });
150
+ };
151
+ throwQuorumError = function (mostFrequentResult, allValues) {
152
+ var errorTexts = getErrorStrings();
153
+ var successfulProviderUrls = values.map(function (_a) {
154
+ var provider = _a[0];
155
+ return provider.clusterUrl;
156
+ });
157
+ var mismatchedProviders = allValues
158
+ .filter(function (_a) {
159
+ var result = _a[1];
160
+ return !compareSvmRpcResults(method, result, mostFrequentResult);
161
+ })
162
+ .map(function (_a) {
163
+ var factory = _a[0];
164
+ return factory.clusterUrl;
165
+ });
166
+ logQuorumMismatchOrFailureDetails(method, params !== null && params !== void 0 ? params : [], mismatchedProviders, successfulProviderUrls, errors, mostFrequentResult);
167
+ throw new Error("Not enough providers agreed to meet quorum.\n" +
168
+ "Providers that errored:\n" +
169
+ "".concat(errorTexts.join("\n"), "\n") +
170
+ "Providers that succeeded, but some failed to match:\n" +
171
+ successfulProviderUrls.join("\n"));
172
+ };
173
+ // Exit early if there are no fallback providers left.
174
+ if (fallbackFactories.length === 0) {
175
+ mostFrequentResult = getHighestCountResult(values)[0];
176
+ throwQuorumError(mostFrequentResult, values);
177
+ }
178
+ return [4 /*yield*/, Promise.allSettled(fallbackFactories.map(function (factory) {
179
+ return factory
180
+ .transport.apply(factory, args).then(function (result) { return [factory.rpcFactory, result]; })
181
+ .catch(function (err) {
182
+ errors.push([factory.rpcFactory, (err === null || err === void 0 ? void 0 : err.stack) || (err === null || err === void 0 ? void 0 : err.toString())]);
183
+ throw new Error("Fallback RPC call failed while trying to reach quorum");
184
+ });
185
+ }))];
186
+ case 2:
187
+ fallbackResults = _d.sent();
188
+ fallbackValues = fallbackResults.filter(isPromiseFulfilled).map(function (promise) { return promise.value; });
189
+ _b = getHighestCountResult(__spreadArray(__spreadArray([], values, true), fallbackValues, true)), quorumResult = _b[0], count = _b[1];
190
+ // If this count is less than we need for quorum, throw the quorum error.
191
+ if (count < quorumThreshold) {
192
+ throwQuorumError(quorumResult, __spreadArray(__spreadArray([], values, true), fallbackValues, true));
193
+ }
194
+ mismatchedProviders = __spreadArray(__spreadArray([], values, true), fallbackValues, true).filter(function (_a) {
195
+ var result = _a[1];
196
+ return !compareSvmRpcResults(method, result, quorumResult);
197
+ })
198
+ .map(function (_a) {
199
+ var factory = _a[0];
200
+ return factory.clusterUrl;
201
+ });
202
+ successfulProviderUrls = __spreadArray(__spreadArray([], values, true), fallbackValues, true).map(function (_a) {
203
+ var provider = _a[0];
204
+ return provider.clusterUrl;
205
+ });
206
+ if (mismatchedProviders.length > 0 || errors.length > 0) {
207
+ logQuorumMismatchOrFailureDetails(method, params !== null && params !== void 0 ? params : [], mismatchedProviders, successfulProviderUrls, errors, quorumResult);
208
+ }
209
+ return [2 /*return*/, quorumResult];
94
210
  }
95
- // Return the same acc object because it was modified in place.
96
- return acc;
97
- }, [[undefined, 0]] // Initialize with [undefined, 0] as the first element so something is always returned.
98
- );
99
- // Sort so the result with the highest count is first.
100
- counts.sort(([, a], [, b]) => b - a);
101
- // Extract the result by grabbing the first element.
102
- const [mostFrequentResult, count] = counts[0];
103
- return [mostFrequentResult, count];
104
- };
105
- const logQuorumMismatchOrFailureDetails = (method, params, mismatchedProviders, successfulProviders, errors, quorumResult) => {
106
- this.logger.warn({
107
- at: "FallbackSolanaRpcFactory#createTransport",
108
- message: `[${method}] Some providers mismatched with the quorum result or failed 🚸`,
109
- notificationPath: "across-warn",
110
- method,
111
- params: JSON.stringify(params),
112
- quorumResult: METHODS_RETURNING_BIGINT.includes(method) ? Number(quorumResult) : undefined,
113
- mismatchedProviders,
114
- successfulProviders,
115
- erroringProviders: errors.map(([factory, errorText]) => `Provider ${factory.clusterUrl} failed with error ${errorText}`),
116
- });
117
- };
118
- const throwQuorumError = (mostFrequentResult, allValues) => {
119
- const errorTexts = getErrorStrings();
120
- const successfulProviderUrls = values.map(([provider]) => provider.clusterUrl);
121
- const mismatchedProviders = allValues
122
- .filter(([, result]) => !compareSvmRpcResults(method, result, mostFrequentResult))
123
- .map(([factory]) => factory.clusterUrl);
124
- logQuorumMismatchOrFailureDetails(method, params ?? [], mismatchedProviders, successfulProviderUrls, errors, mostFrequentResult);
125
- throw new Error("Not enough providers agreed to meet quorum.\n" +
126
- "Providers that errored:\n" +
127
- `${errorTexts.join("\n")}\n` +
128
- "Providers that succeeded, but some failed to match:\n" +
129
- successfulProviderUrls.join("\n"));
130
- };
131
- // Exit early if there are no fallback providers left.
132
- if (fallbackFactories.length === 0) {
133
- const [mostFrequentResult] = getHighestCountResult(values);
134
- throwQuorumError(mostFrequentResult, values);
135
- }
136
- // Try each fallback provider in parallel.
137
- const fallbackResults = await Promise.allSettled(fallbackFactories.map((factory) => {
138
- return factory
139
- .transport(...args)
140
- .then((result) => [factory.rpcFactory, result])
141
- .catch((err) => {
142
- errors.push([factory.rpcFactory, err?.stack || err?.toString()]);
143
- throw new Error("Fallback RPC call failed while trying to reach quorum");
144
211
  });
145
- }));
146
- // This filters only the fallbacks that succeeded.
147
- const fallbackValues = fallbackResults.filter(isPromiseFulfilled).map((promise) => promise.value);
148
- const [quorumResult, count] = getHighestCountResult([...values, ...fallbackValues]);
149
- // If this count is less than we need for quorum, throw the quorum error.
150
- if (count < quorumThreshold) {
151
- throwQuorumError(quorumResult, [...values, ...fallbackValues]);
152
- }
153
- // If we've achieved quorum, then we should still log the providers that mismatched with the quorum result.
154
- const mismatchedProviders = [...values, ...fallbackValues]
155
- .filter(([, result]) => !compareSvmRpcResults(method, result, quorumResult))
156
- .map(([factory]) => factory.clusterUrl);
157
- const successfulProviderUrls = [...values, ...fallbackValues].map(([provider]) => provider.clusterUrl);
158
- if (mismatchedProviders.length > 0 || errors.length > 0) {
159
- logQuorumMismatchOrFailureDetails(method, params ?? [], mismatchedProviders, successfulProviderUrls, errors, quorumResult);
160
- }
161
- return quorumResult;
212
+ });
162
213
  };
163
- }
164
- _getQuorum(method, _params) {
214
+ };
215
+ QuorumFallbackSolanaRpcFactory.prototype._getQuorum = function (method, _params) {
165
216
  // Only use quorum if this is a historical query that doesn't depend on the current block number.
166
217
  switch (method) {
167
218
  case "getBlock":
@@ -170,9 +221,11 @@ export class QuorumFallbackSolanaRpcFactory extends SolanaBaseRpcFactory {
170
221
  }
171
222
  // All other calls should use quorum 1 to avoid errors due to sync differences.
172
223
  return 1;
173
- }
174
- }
224
+ };
225
+ return QuorumFallbackSolanaRpcFactory;
226
+ }(SolanaBaseRpcFactory));
227
+ export { QuorumFallbackSolanaRpcFactory };
175
228
  // These methods return a bigint and their results are loggable because they are succinct and can further assist
176
229
  // quorum debugging.
177
- const METHODS_RETURNING_BIGINT = ["getBlockTime", "getSlot"];
230
+ var METHODS_RETURNING_BIGINT = ["getBlockTime", "getSlot"];
178
231
  //# sourceMappingURL=quorumFallbackRpcFactory.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"quorumFallbackRpcFactory.js","sourceRoot":"","sources":["../../../../src/providers/solana/quorumFallbackRpcFactory.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"quorumFallbackRpcFactory.js","sourceRoot":"","sources":["../../../../src/providers/solana/quorumFallbackRpcFactory.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,4 @@
1
+ import { __assign, __awaiter, __extends, __generator, __spreadArray } from "tslib";
1
2
  import { queue } from "async";
2
3
  import winston from "winston";
3
4
  import { SolanaClusterRpcFactory } from "./baseRpcFactories";
@@ -5,90 +6,109 @@ import { SolanaDefaultRpcFactory } from "./defaultRpcFactory";
5
6
  import { getOriginFromURL } from "../../utils";
6
7
  // This factory is a very small addition to the SolanaDefaultRpcFactory that ensures that no more than maxConcurrency
7
8
  // requests are ever in flight. It uses the async/queue library to manage this.
8
- export class RateLimitedSolanaRpcFactory extends SolanaClusterRpcFactory {
9
- pctRpcCallsLogged;
10
- logger;
11
- // The queue object that manages the tasks.
12
- queue;
13
- // Holds the underlying transport that the rate limiter wraps.
14
- defaultTransport;
9
+ var RateLimitedSolanaRpcFactory = /** @class */ (function (_super) {
10
+ __extends(RateLimitedSolanaRpcFactory, _super);
15
11
  // Takes the same arguments as the SolanaDefaultRpcFactory, but it has an additional parameters to control
16
12
  // concurrency and logging at the beginning of the list.
17
- constructor(maxConcurrency, pctRpcCallsLogged, logger = winston.createLogger({
18
- transports: [new winston.transports.Console()],
19
- }), ...defaultConstructorParams) {
20
- super(...defaultConstructorParams);
21
- this.pctRpcCallsLogged = pctRpcCallsLogged;
22
- this.logger = logger;
23
- this.defaultTransport = new SolanaDefaultRpcFactory(...defaultConstructorParams).createTransport();
13
+ function RateLimitedSolanaRpcFactory(maxConcurrency, pctRpcCallsLogged, logger) {
14
+ if (logger === void 0) { logger = winston.createLogger({
15
+ transports: [new winston.transports.Console()],
16
+ }); }
17
+ var defaultConstructorParams = [];
18
+ for (var _i = 3; _i < arguments.length; _i++) {
19
+ defaultConstructorParams[_i - 3] = arguments[_i];
20
+ }
21
+ var _this = _super.apply(this, defaultConstructorParams) || this;
22
+ _this.pctRpcCallsLogged = pctRpcCallsLogged;
23
+ _this.logger = logger;
24
+ _this.defaultTransport = new (SolanaDefaultRpcFactory.bind.apply(SolanaDefaultRpcFactory, __spreadArray([void 0], defaultConstructorParams, false)))().createTransport();
24
25
  // This sets up the queue. Each task is executed by forwarding the RPC request to the underlying base transport.
25
26
  // This queue sends out requests concurrently, but stops once the concurrency limit is reached. The maxConcurrency
26
27
  // is configured here.
27
- this.queue = queue(async ({ rpcArgs, resolve, reject }, callback) => {
28
- await this.wrapSendWithLog(...rpcArgs)
29
- .then(resolve)
30
- .catch(reject);
31
- // we need this for the queue to know that the task is done
32
- // @see: https://caolan.github.io/async/v3/global.html
33
- callback();
34
- }, maxConcurrency);
28
+ _this.queue = queue(function (_a, callback_1) { return __awaiter(_this, [_a, callback_1], void 0, function (_b, callback) {
29
+ var rpcArgs = _b.rpcArgs, resolve = _b.resolve, reject = _b.reject;
30
+ return __generator(this, function (_c) {
31
+ switch (_c.label) {
32
+ case 0: return [4 /*yield*/, this.wrapSendWithLog.apply(this, rpcArgs).then(resolve)
33
+ .catch(reject)];
34
+ case 1:
35
+ _c.sent();
36
+ // we need this for the queue to know that the task is done
37
+ // @see: https://caolan.github.io/async/v3/global.html
38
+ callback();
39
+ return [2 /*return*/];
40
+ }
41
+ });
42
+ }); }, maxConcurrency);
43
+ return _this;
35
44
  }
36
- async wrapSendWithLog(...rpcArgs) {
37
- if (this.pctRpcCallsLogged <= 0 || Math.random() > this.pctRpcCallsLogged / 100) {
38
- // Non sample path: no logging or timing, just issue the request.
39
- return await this.defaultTransport(...rpcArgs);
45
+ RateLimitedSolanaRpcFactory.prototype.wrapSendWithLog = function () {
46
+ var rpcArgs = [];
47
+ for (var _i = 0; _i < arguments.length; _i++) {
48
+ rpcArgs[_i] = arguments[_i];
40
49
  }
41
- else {
42
- const payload = rpcArgs[0].payload;
43
- const loggerArgs = {
44
- at: "SolanaProviderUtils",
45
- message: "Solana provider response sample",
46
- provider: getOriginFromURL(this.clusterUrl),
47
- method: payload.method,
48
- params: payload.params,
49
- chainId: this.chainId,
50
- datadog: true,
51
- };
52
- // In this path we log an rpc response sample.
53
- // Note: use performance.now() to ensure a purely monotonic clock.
54
- const startTime = performance.now();
55
- try {
56
- const result = await this.defaultTransport(...rpcArgs);
57
- const elapsedTimeS = (performance.now() - startTime) / 1000;
58
- this.logger.debug({
59
- ...loggerArgs,
60
- success: true,
61
- timeElapsed: elapsedTimeS,
62
- });
63
- return result;
64
- }
65
- catch (error) {
66
- // Log errors as well.
67
- // For now, to keep logs light, don't log the error itself, just propagate and let it be handled higher up.
68
- const elapsedTimeS = (performance.now() - startTime) / 1000;
69
- this.logger.debug({
70
- ...loggerArgs,
71
- success: false,
72
- timeElapsed: elapsedTimeS,
73
- });
74
- throw error;
50
+ return __awaiter(this, void 0, void 0, function () {
51
+ var payload, loggerArgs, startTime, result, elapsedTimeS, error_1, elapsedTimeS;
52
+ return __generator(this, function (_a) {
53
+ switch (_a.label) {
54
+ case 0:
55
+ if (!(this.pctRpcCallsLogged <= 0 || Math.random() > this.pctRpcCallsLogged / 100)) return [3 /*break*/, 2];
56
+ return [4 /*yield*/, this.defaultTransport.apply(this, rpcArgs)];
57
+ case 1:
58
+ // Non sample path: no logging or timing, just issue the request.
59
+ return [2 /*return*/, _a.sent()];
60
+ case 2:
61
+ payload = rpcArgs[0].payload;
62
+ loggerArgs = {
63
+ at: "SolanaProviderUtils",
64
+ message: "Solana provider response sample",
65
+ provider: getOriginFromURL(this.clusterUrl),
66
+ method: payload.method,
67
+ params: payload.params,
68
+ chainId: this.chainId,
69
+ datadog: true,
70
+ };
71
+ startTime = performance.now();
72
+ _a.label = 3;
73
+ case 3:
74
+ _a.trys.push([3, 5, , 6]);
75
+ return [4 /*yield*/, this.defaultTransport.apply(this, rpcArgs)];
76
+ case 4:
77
+ result = _a.sent();
78
+ elapsedTimeS = (performance.now() - startTime) / 1000;
79
+ this.logger.debug(__assign(__assign({}, loggerArgs), { success: true, timeElapsed: elapsedTimeS }));
80
+ return [2 /*return*/, result];
81
+ case 5:
82
+ error_1 = _a.sent();
83
+ elapsedTimeS = (performance.now() - startTime) / 1000;
84
+ this.logger.debug(__assign(__assign({}, loggerArgs), { success: false, timeElapsed: elapsedTimeS }));
85
+ throw error_1;
86
+ case 6: return [2 /*return*/];
87
+ }
88
+ });
89
+ });
90
+ };
91
+ RateLimitedSolanaRpcFactory.prototype.createTransport = function () {
92
+ var _this = this;
93
+ return function () {
94
+ var args = [];
95
+ for (var _i = 0; _i < arguments.length; _i++) {
96
+ args[_i] = arguments[_i];
75
97
  }
76
- }
77
- }
78
- createTransport() {
79
- return (...args) => {
80
98
  // This simply creates a promise and adds the arguments and resolve and reject handlers to the task.
81
- return new Promise((resolve, reject) => {
82
- const task = {
99
+ return new Promise(function (resolve, reject) {
100
+ var task = {
83
101
  rpcArgs: args,
84
102
  resolve: resolve,
85
- reject,
103
+ reject: reject,
86
104
  };
87
105
  // We didn't previously wait for this push so we can emulate
88
106
  // the same behavior with the `void` keyword.
89
- void this.queue.push(task);
107
+ void _this.queue.push(task);
90
108
  });
91
109
  };
92
- }
93
- }
110
+ };
111
+ return RateLimitedSolanaRpcFactory;
112
+ }(SolanaClusterRpcFactory));
113
+ export { RateLimitedSolanaRpcFactory };
94
114
  //# sourceMappingURL=rateLimitedRpcFactory.js.map