@across-protocol/sdk 4.3.111-alpha.0 → 4.3.111-alpha.2

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 +50 -64
  2. package/dist/cjs/addressAggregator/adapters/abstract.js.map +1 -1
  3. package/dist/cjs/addressAggregator/adapters/bybit.js +16 -29
  4. package/dist/cjs/addressAggregator/adapters/bybit.js.map +1 -1
  5. package/dist/cjs/addressAggregator/adapters/env.js +11 -15
  6. package/dist/cjs/addressAggregator/adapters/env.js.map +1 -1
  7. package/dist/cjs/addressAggregator/adapters/file.js +32 -45
  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 +22 -36
  11. package/dist/cjs/addressAggregator/adapters/risklabs.js.map +1 -1
  12. package/dist/cjs/addressAggregator/index.js +57 -87
  13. package/dist/cjs/addressAggregator/index.js.map +1 -1
  14. package/dist/cjs/apiClient/abstractClient.js +9 -8
  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 +23 -29
  18. package/dist/cjs/apiClient/mockedClient.js.map +1 -1
  19. package/dist/cjs/apiClient/productionClient.js +65 -103
  20. package/dist/cjs/apiClient/productionClient.js.map +1 -1
  21. package/dist/cjs/arch/evm/BlockUtils.js +122 -208
  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 +134 -288
  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 +38 -49
  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 +102 -158
  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 +708 -1147
  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 +174 -236
  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 +166 -355
  46. package/dist/cjs/arch/svm/utils.js.map +1 -1
  47. package/dist/cjs/caching/Arweave/ArweaveClient.js +168 -246
  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 +40 -49
  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 +13 -18
  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 +302 -381
  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 +58 -83
  61. package/dist/cjs/clients/BaseAbstractClient.js.map +1 -1
  62. package/dist/cjs/clients/BundleDataClient/BundleDataClient.js +709 -900
  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 +95 -128
  66. package/dist/cjs/clients/BundleDataClient/utils/DataworkerUtils.js.map +1 -1
  67. package/dist/cjs/clients/BundleDataClient/utils/FillUtils.js +48 -53
  68. package/dist/cjs/clients/BundleDataClient/utils/FillUtils.js.map +1 -1
  69. package/dist/cjs/clients/BundleDataClient/utils/MerkleTreeUtils.js +10 -8
  70. package/dist/cjs/clients/BundleDataClient/utils/MerkleTreeUtils.js.map +1 -1
  71. package/dist/cjs/clients/BundleDataClient/utils/PoolRebalanceUtils.js +67 -90
  72. package/dist/cjs/clients/BundleDataClient/utils/PoolRebalanceUtils.js.map +1 -1
  73. package/dist/cjs/clients/BundleDataClient/utils/SuperstructUtils.js +46 -24
  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 +526 -708
  77. package/dist/cjs/clients/HubPoolClient.js.map +1 -1
  78. package/dist/cjs/clients/SpokePoolClient/EVMSpokePoolClient.js +133 -179
  79. package/dist/cjs/clients/SpokePoolClient/EVMSpokePoolClient.js.map +1 -1
  80. package/dist/cjs/clients/SpokePoolClient/SVMSpokePoolClient.js +124 -183
  81. package/dist/cjs/clients/SpokePoolClient/SVMSpokePoolClient.js.map +1 -1
  82. package/dist/cjs/clients/SpokePoolClient/SpokePoolClient.js +357 -389
  83. package/dist/cjs/clients/SpokePoolClient/SpokePoolClient.js.map +1 -1
  84. package/dist/cjs/clients/SpokePoolClient/SpokePoolClientManager.js +9 -8
  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 +58 -67
  90. package/dist/cjs/clients/mocks/MockConfigStoreClient.js.map +1 -1
  91. package/dist/cjs/clients/mocks/MockEvents.js +47 -52
  92. package/dist/cjs/clients/mocks/MockEvents.js.map +1 -1
  93. package/dist/cjs/clients/mocks/MockHubPoolClient.js +142 -185
  94. package/dist/cjs/clients/mocks/MockHubPoolClient.js.map +1 -1
  95. package/dist/cjs/clients/mocks/MockSpokePoolClient.js +208 -192
  96. package/dist/cjs/clients/mocks/MockSpokePoolClient.js.map +1 -1
  97. package/dist/cjs/clients/mocks/MockSvmCpiEventsClient.js +140 -143
  98. package/dist/cjs/clients/mocks/MockSvmCpiEventsClient.js.map +1 -1
  99. package/dist/cjs/clients/mocks/MockSvmSpokePoolClient.js +57 -73
  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 +285 -437
  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 +23 -30
  106. package/dist/cjs/constants.js.map +1 -1
  107. package/dist/cjs/contracts/acrossConfigStore.js +27 -48
  108. package/dist/cjs/contracts/acrossConfigStore.js.map +1 -1
  109. package/dist/cjs/contracts/hubPool.js +36 -20
  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 +6 -8
  113. package/dist/cjs/contracts/utils.js.map +1 -1
  114. package/dist/cjs/gasPriceOracle/adapters/arbitrum.js +7 -16
  115. package/dist/cjs/gasPriceOracle/adapters/arbitrum.js.map +1 -1
  116. package/dist/cjs/gasPriceOracle/adapters/ethereum.js +26 -45
  117. package/dist/cjs/gasPriceOracle/adapters/ethereum.js.map +1 -1
  118. package/dist/cjs/gasPriceOracle/adapters/linea-viem.js +16 -28
  119. package/dist/cjs/gasPriceOracle/adapters/linea-viem.js.map +1 -1
  120. package/dist/cjs/gasPriceOracle/adapters/polygon.js +73 -112
  121. package/dist/cjs/gasPriceOracle/adapters/polygon.js.map +1 -1
  122. package/dist/cjs/gasPriceOracle/adapters/solana.js +20 -33
  123. package/dist/cjs/gasPriceOracle/adapters/solana.js.map +1 -1
  124. package/dist/cjs/gasPriceOracle/oracle.js +77 -104
  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 +33 -35
  134. package/dist/cjs/lpFeeCalculator/lpFeeCalculator.js.map +1 -1
  135. package/dist/cjs/lpFeeCalculator/rateModel.js +7 -9
  136. package/dist/cjs/lpFeeCalculator/rateModel.js.map +1 -1
  137. package/dist/cjs/merkleDistributor/MerkleDistributor.js +20 -18
  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 +45 -100
  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 +464 -731
  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 +45 -100
  148. package/dist/cjs/pool/uma/across/transactionManager.js.map +1 -1
  149. package/dist/cjs/pool/uma/clients/erc20/client.js +18 -16
  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 +4 -5
  156. package/dist/cjs/pool/uma/oracle/utils.js.map +1 -1
  157. package/dist/cjs/pool/uma/utils.js +11 -30
  158. package/dist/cjs/pool/uma/utils.js.map +1 -1
  159. package/dist/cjs/priceClient/adapters/acrossApi.js +22 -39
  160. package/dist/cjs/priceClient/adapters/acrossApi.js.map +1 -1
  161. package/dist/cjs/priceClient/adapters/baseAdapter.js +49 -73
  162. package/dist/cjs/priceClient/adapters/baseAdapter.js.map +1 -1
  163. package/dist/cjs/priceClient/adapters/coingecko.js +34 -61
  164. package/dist/cjs/priceClient/adapters/coingecko.js.map +1 -1
  165. package/dist/cjs/priceClient/adapters/default.js +16 -31
  166. package/dist/cjs/priceClient/adapters/default.js.map +1 -1
  167. package/dist/cjs/priceClient/adapters/defiLlama.js +40 -74
  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 +110 -159
  172. package/dist/cjs/priceClient/priceClient.js.map +1 -1
  173. package/dist/cjs/providers/alchemy.js +17 -19
  174. package/dist/cjs/providers/alchemy.js.map +1 -1
  175. package/dist/cjs/providers/cachedProvider.js +88 -129
  176. package/dist/cjs/providers/cachedProvider.js.map +1 -1
  177. package/dist/cjs/providers/drpc.js +9 -11
  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 +10 -12
  181. package/dist/cjs/providers/infura.js.map +1 -1
  182. package/dist/cjs/providers/mocks/MockCachedSolanaRpcFactory.js +7 -15
  183. package/dist/cjs/providers/mocks/MockCachedSolanaRpcFactory.js.map +1 -1
  184. package/dist/cjs/providers/mocks/MockRateLimitedSolanaRpcFactory.js +6 -14
  185. package/dist/cjs/providers/mocks/MockRateLimitedSolanaRpcFactory.js.map +1 -1
  186. package/dist/cjs/providers/mocks/MockRetrySolanaRpcFactory.js +7 -15
  187. package/dist/cjs/providers/mocks/MockRetrySolanaRpcFactory.js.map +1 -1
  188. package/dist/cjs/providers/mocks/MockSolanaRpcFactory.js +42 -66
  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 +29 -31
  192. package/dist/cjs/providers/mocks/mockEthersProvider.js.map +1 -1
  193. package/dist/cjs/providers/quicknode.js +19 -21
  194. package/dist/cjs/providers/quicknode.js.map +1 -1
  195. package/dist/cjs/providers/rateLimitedProvider.js +64 -79
  196. package/dist/cjs/providers/rateLimitedProvider.js.map +1 -1
  197. package/dist/cjs/providers/retryProvider.js +163 -246
  198. package/dist/cjs/providers/retryProvider.js.map +1 -1
  199. package/dist/cjs/providers/solana/baseRpcFactories.js +14 -18
  200. package/dist/cjs/providers/solana/baseRpcFactories.js.map +1 -1
  201. package/dist/cjs/providers/solana/cachedRpcFactory.js +70 -112
  202. package/dist/cjs/providers/solana/cachedRpcFactory.js.map +1 -1
  203. package/dist/cjs/providers/solana/defaultRpcFactory.js +8 -15
  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 +135 -191
  207. package/dist/cjs/providers/solana/quorumFallbackRpcFactory.js.map +1 -1
  208. package/dist/cjs/providers/solana/rateLimitedRpcFactory.js +67 -90
  209. package/dist/cjs/providers/solana/rateLimitedRpcFactory.js.map +1 -1
  210. package/dist/cjs/providers/solana/retryRpcFactory.js +52 -79
  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 +31 -53
  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 +26 -28
  219. package/dist/cjs/providers/utils.js.map +1 -1
  220. package/dist/cjs/relayFeeCalculator/chain-queries/baseQuery.js +108 -162
  221. package/dist/cjs/relayFeeCalculator/chain-queries/baseQuery.js.map +1 -1
  222. package/dist/cjs/relayFeeCalculator/chain-queries/customGasToken.js +14 -26
  223. package/dist/cjs/relayFeeCalculator/chain-queries/customGasToken.js.map +1 -1
  224. package/dist/cjs/relayFeeCalculator/chain-queries/factory.js +20 -29
  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 +88 -137
  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 +199 -297
  231. package/dist/cjs/relayFeeCalculator/relayFeeCalculator.js.map +1 -1
  232. package/dist/cjs/typeguards/error.js +5 -7
  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 +117 -144
  236. package/dist/cjs/utils/AddressUtils.js.map +1 -1
  237. package/dist/cjs/utils/ArrayUtils.js +21 -78
  238. package/dist/cjs/utils/ArrayUtils.js.map +1 -1
  239. package/dist/cjs/utils/BigNumberUtils.js +9 -10
  240. package/dist/cjs/utils/BigNumberUtils.js.map +1 -1
  241. package/dist/cjs/utils/BlockExplorerUtils.js +26 -30
  242. package/dist/cjs/utils/BlockExplorerUtils.js.map +1 -1
  243. package/dist/cjs/utils/BlockFinder.js +2 -5
  244. package/dist/cjs/utils/BlockFinder.js.map +1 -1
  245. package/dist/cjs/utils/BlockUtils.js +24 -41
  246. package/dist/cjs/utils/BlockUtils.js.map +1 -1
  247. package/dist/cjs/utils/BundleUtils.js +21 -24
  248. package/dist/cjs/utils/BundleUtils.js.map +1 -1
  249. package/dist/cjs/utils/CCTPUtils.js +62 -126
  250. package/dist/cjs/utils/CCTPUtils.js.map +1 -1
  251. package/dist/cjs/utils/CachingUtils.js +20 -42
  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 +122 -99
  256. package/dist/cjs/utils/DepositUtils.js.map +1 -1
  257. package/dist/cjs/utils/EventUtils.js +49 -70
  258. package/dist/cjs/utils/EventUtils.js.map +1 -1
  259. package/dist/cjs/utils/FormattingUtils.js +26 -32
  260. package/dist/cjs/utils/FormattingUtils.js.map +1 -1
  261. package/dist/cjs/utils/HyperLiquidUtils.js +10 -23
  262. package/dist/cjs/utils/HyperLiquidUtils.js.map +1 -1
  263. package/dist/cjs/utils/IPFSUtils.js +16 -34
  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 +10 -12
  268. package/dist/cjs/utils/LogUtils.js.map +1 -1
  269. package/dist/cjs/utils/Multicall.js +56 -115
  270. package/dist/cjs/utils/Multicall.js.map +1 -1
  271. package/dist/cjs/utils/NetworkUtils.js +12 -28
  272. package/dist/cjs/utils/NetworkUtils.js.map +1 -1
  273. package/dist/cjs/utils/NumberUtils.js +1 -3
  274. package/dist/cjs/utils/NumberUtils.js.map +1 -1
  275. package/dist/cjs/utils/ObjectUtils.js +27 -41
  276. package/dist/cjs/utils/ObjectUtils.js.map +1 -1
  277. package/dist/cjs/utils/Profiler.js +80 -83
  278. package/dist/cjs/utils/Profiler.js.map +1 -1
  279. package/dist/cjs/utils/ReviverUtils.js +5 -9
  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 +41 -64
  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 +12 -22
  291. package/dist/cjs/utils/abi/index.js.map +1 -1
  292. package/dist/cjs/utils/abi/typechain/factories/Multicall3__factory.js +9 -12
  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 +40 -53
  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 +48 -64
  299. package/dist/esm/addressAggregator/adapters/abstract.js.map +1 -1
  300. package/dist/esm/addressAggregator/adapters/bybit.js +15 -29
  301. package/dist/esm/addressAggregator/adapters/bybit.js.map +1 -1
  302. package/dist/esm/addressAggregator/adapters/env.js +9 -14
  303. package/dist/esm/addressAggregator/adapters/env.js.map +1 -1
  304. package/dist/esm/addressAggregator/adapters/file.js +29 -43
  305. package/dist/esm/addressAggregator/adapters/file.js.map +1 -1
  306. package/dist/esm/addressAggregator/adapters/risklabs.js +20 -35
  307. package/dist/esm/addressAggregator/adapters/risklabs.js.map +1 -1
  308. package/dist/esm/addressAggregator/index.js +52 -83
  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 +15 -9
  313. package/dist/esm/apiClient/abstractClient.js.map +1 -1
  314. package/dist/esm/apiClient/mockedClient.js +21 -26
  315. package/dist/esm/apiClient/mockedClient.js.map +1 -1
  316. package/dist/esm/apiClient/productionClient.js +61 -101
  317. package/dist/esm/apiClient/productionClient.js.map +1 -1
  318. package/dist/esm/arch/evm/BlockUtils.js +139 -217
  319. package/dist/esm/arch/evm/BlockUtils.js.map +1 -1
  320. package/dist/esm/arch/evm/SpokeUtils.js +146 -289
  321. package/dist/esm/arch/evm/SpokeUtils.js.map +1 -1
  322. package/dist/esm/arch/evm/utils/wait.js +34 -46
  323. package/dist/esm/arch/evm/utils/wait.js.map +1 -1
  324. package/dist/esm/arch/svm/BlockUtils.js +118 -166
  325. package/dist/esm/arch/svm/BlockUtils.js.map +1 -1
  326. package/dist/esm/arch/svm/SpokeUtils.js +738 -1150
  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 +172 -232
  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 +155 -345
  335. package/dist/esm/arch/svm/utils.js.map +1 -1
  336. package/dist/esm/caching/Arweave/ArweaveClient.js +182 -256
  337. package/dist/esm/caching/Arweave/ArweaveClient.js.map +1 -1
  338. package/dist/esm/caching/IPFS/PinataIPFSClient.js +47 -48
  339. package/dist/esm/caching/IPFS/PinataIPFSClient.js.map +1 -1
  340. package/dist/esm/caching/Memory/MemoryCacheClient.js +13 -19
  341. package/dist/esm/caching/Memory/MemoryCacheClient.js.map +1 -1
  342. package/dist/esm/clients/AcrossConfigStoreClient/AcrossConfigStoreClient.js +333 -408
  343. package/dist/esm/clients/AcrossConfigStoreClient/AcrossConfigStoreClient.js.map +1 -1
  344. package/dist/esm/clients/BaseAbstractClient.js +66 -92
  345. package/dist/esm/clients/BaseAbstractClient.js.map +1 -1
  346. package/dist/esm/clients/BundleDataClient/BundleDataClient.js +927 -1054
  347. package/dist/esm/clients/BundleDataClient/BundleDataClient.js.map +1 -1
  348. package/dist/esm/clients/BundleDataClient/utils/DataworkerUtils.js +102 -131
  349. package/dist/esm/clients/BundleDataClient/utils/DataworkerUtils.js.map +1 -1
  350. package/dist/esm/clients/BundleDataClient/utils/FillUtils.js +57 -59
  351. package/dist/esm/clients/BundleDataClient/utils/FillUtils.js.map +1 -1
  352. package/dist/esm/clients/BundleDataClient/utils/MerkleTreeUtils.js +7 -5
  353. package/dist/esm/clients/BundleDataClient/utils/MerkleTreeUtils.js.map +1 -1
  354. package/dist/esm/clients/BundleDataClient/utils/PoolRebalanceUtils.js +75 -94
  355. package/dist/esm/clients/BundleDataClient/utils/PoolRebalanceUtils.js.map +1 -1
  356. package/dist/esm/clients/BundleDataClient/utils/SuperstructUtils.js +45 -23
  357. package/dist/esm/clients/BundleDataClient/utils/SuperstructUtils.js.map +1 -1
  358. package/dist/esm/clients/HubPoolClient.js +581 -740
  359. package/dist/esm/clients/HubPoolClient.js.map +1 -1
  360. package/dist/esm/clients/SpokePoolClient/EVMSpokePoolClient.js +133 -178
  361. package/dist/esm/clients/SpokePoolClient/EVMSpokePoolClient.js.map +1 -1
  362. package/dist/esm/clients/SpokePoolClient/SVMSpokePoolClient.js +126 -183
  363. package/dist/esm/clients/SpokePoolClient/SVMSpokePoolClient.js.map +1 -1
  364. package/dist/esm/clients/SpokePoolClient/SpokePoolClient.js +372 -399
  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 +53 -64
  373. package/dist/esm/clients/mocks/MockConfigStoreClient.js.map +1 -1
  374. package/dist/esm/clients/mocks/MockEvents.js +42 -49
  375. package/dist/esm/clients/mocks/MockEvents.js.map +1 -1
  376. package/dist/esm/clients/mocks/MockHubPoolClient.js +138 -182
  377. package/dist/esm/clients/mocks/MockHubPoolClient.js.map +1 -1
  378. package/dist/esm/clients/mocks/MockSpokePoolClient.js +202 -188
  379. package/dist/esm/clients/mocks/MockSpokePoolClient.js.map +1 -1
  380. package/dist/esm/clients/mocks/MockSvmCpiEventsClient.js +127 -132
  381. package/dist/esm/clients/mocks/MockSvmCpiEventsClient.js.map +1 -1
  382. package/dist/esm/clients/mocks/MockSvmSpokePoolClient.js +53 -69
  383. package/dist/esm/clients/mocks/MockSvmSpokePoolClient.js.map +1 -1
  384. package/dist/esm/coingecko/Coingecko.js +298 -443
  385. package/dist/esm/coingecko/Coingecko.js.map +1 -1
  386. package/dist/esm/constants.js +40 -47
  387. package/dist/esm/constants.js.map +1 -1
  388. package/dist/esm/contracts/acrossConfigStore.js +24 -46
  389. package/dist/esm/contracts/acrossConfigStore.js.map +1 -1
  390. package/dist/esm/contracts/hubPool.js +34 -18
  391. package/dist/esm/contracts/hubPool.js.map +1 -1
  392. package/dist/esm/contracts/utils.js +3 -5
  393. package/dist/esm/contracts/utils.js.map +1 -1
  394. package/dist/esm/gasPriceOracle/adapters/arbitrum.js +6 -14
  395. package/dist/esm/gasPriceOracle/adapters/arbitrum.js.map +1 -1
  396. package/dist/esm/gasPriceOracle/adapters/ethereum.js +22 -42
  397. package/dist/esm/gasPriceOracle/adapters/ethereum.js.map +1 -1
  398. package/dist/esm/gasPriceOracle/adapters/linea-viem.js +13 -25
  399. package/dist/esm/gasPriceOracle/adapters/linea-viem.js.map +1 -1
  400. package/dist/esm/gasPriceOracle/adapters/polygon.js +72 -108
  401. package/dist/esm/gasPriceOracle/adapters/polygon.js.map +1 -1
  402. package/dist/esm/gasPriceOracle/adapters/solana.js +22 -31
  403. package/dist/esm/gasPriceOracle/adapters/solana.js.map +1 -1
  404. package/dist/esm/gasPriceOracle/oracle.js +70 -96
  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 +30 -33
  411. package/dist/esm/lpFeeCalculator/lpFeeCalculator.js.map +1 -1
  412. package/dist/esm/lpFeeCalculator/rateModel.js +7 -9
  413. package/dist/esm/lpFeeCalculator/rateModel.js.map +1 -1
  414. package/dist/esm/merkleDistributor/MerkleDistributor.js +18 -17
  415. package/dist/esm/merkleDistributor/MerkleDistributor.js.map +1 -1
  416. package/dist/esm/pool/TransactionManager.js +45 -100
  417. package/dist/esm/pool/TransactionManager.js.map +1 -1
  418. package/dist/esm/pool/poolClient.js +479 -740
  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 +45 -100
  423. package/dist/esm/pool/uma/across/transactionManager.js.map +1 -1
  424. package/dist/esm/pool/uma/clients/erc20/client.js +15 -13
  425. package/dist/esm/pool/uma/clients/erc20/client.js.map +1 -1
  426. package/dist/esm/pool/uma/oracle/utils.js +2 -3
  427. package/dist/esm/pool/uma/oracle/utils.js.map +1 -1
  428. package/dist/esm/pool/uma/utils.js +9 -28
  429. package/dist/esm/pool/uma/utils.js.map +1 -1
  430. package/dist/esm/priceClient/adapters/acrossApi.js +21 -40
  431. package/dist/esm/priceClient/adapters/acrossApi.js.map +1 -1
  432. package/dist/esm/priceClient/adapters/baseAdapter.js +46 -72
  433. package/dist/esm/priceClient/adapters/baseAdapter.js.map +1 -1
  434. package/dist/esm/priceClient/adapters/coingecko.js +33 -61
  435. package/dist/esm/priceClient/adapters/coingecko.js.map +1 -1
  436. package/dist/esm/priceClient/adapters/default.js +15 -31
  437. package/dist/esm/priceClient/adapters/default.js.map +1 -1
  438. package/dist/esm/priceClient/adapters/defiLlama.js +38 -73
  439. package/dist/esm/priceClient/adapters/defiLlama.js.map +1 -1
  440. package/dist/esm/priceClient/priceClient.js +109 -158
  441. package/dist/esm/priceClient/priceClient.js.map +1 -1
  442. package/dist/esm/providers/alchemy.js +16 -18
  443. package/dist/esm/providers/alchemy.js.map +1 -1
  444. package/dist/esm/providers/cachedProvider.js +99 -134
  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 +8 -10
  449. package/dist/esm/providers/drpc.js.map +1 -1
  450. package/dist/esm/providers/infura.js +9 -11
  451. package/dist/esm/providers/infura.js.map +1 -1
  452. package/dist/esm/providers/mocks/MockCachedSolanaRpcFactory.js +6 -15
  453. package/dist/esm/providers/mocks/MockCachedSolanaRpcFactory.js.map +1 -1
  454. package/dist/esm/providers/mocks/MockRateLimitedSolanaRpcFactory.js +5 -14
  455. package/dist/esm/providers/mocks/MockRateLimitedSolanaRpcFactory.js.map +1 -1
  456. package/dist/esm/providers/mocks/MockRetrySolanaRpcFactory.js +6 -15
  457. package/dist/esm/providers/mocks/MockRetrySolanaRpcFactory.js.map +1 -1
  458. package/dist/esm/providers/mocks/MockSolanaRpcFactory.js +41 -66
  459. package/dist/esm/providers/mocks/MockSolanaRpcFactory.js.map +1 -1
  460. package/dist/esm/providers/mocks/mockEthersProvider.js +27 -30
  461. package/dist/esm/providers/mocks/mockEthersProvider.js.map +1 -1
  462. package/dist/esm/providers/quicknode.js +18 -20
  463. package/dist/esm/providers/quicknode.js.map +1 -1
  464. package/dist/esm/providers/rateLimitedProvider.js +68 -80
  465. package/dist/esm/providers/rateLimitedProvider.js.map +1 -1
  466. package/dist/esm/providers/retryProvider.js +186 -259
  467. package/dist/esm/providers/retryProvider.js.map +1 -1
  468. package/dist/esm/providers/solana/baseRpcFactories.js +13 -19
  469. package/dist/esm/providers/solana/baseRpcFactories.js.map +1 -1
  470. package/dist/esm/providers/solana/cachedRpcFactory.js +75 -112
  471. package/dist/esm/providers/solana/cachedRpcFactory.js.map +1 -1
  472. package/dist/esm/providers/solana/defaultRpcFactory.js +6 -14
  473. package/dist/esm/providers/solana/defaultRpcFactory.js.map +1 -1
  474. package/dist/esm/providers/solana/quorumFallbackRpcFactory.js +149 -202
  475. package/dist/esm/providers/solana/quorumFallbackRpcFactory.js.map +1 -1
  476. package/dist/esm/providers/solana/rateLimitedRpcFactory.js +70 -90
  477. package/dist/esm/providers/solana/rateLimitedRpcFactory.js.map +1 -1
  478. package/dist/esm/providers/solana/retryRpcFactory.js +50 -74
  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 +28 -51
  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 +17 -20
  487. package/dist/esm/providers/utils.js.map +1 -1
  488. package/dist/esm/relayFeeCalculator/chain-queries/baseQuery.js +98 -152
  489. package/dist/esm/relayFeeCalculator/chain-queries/baseQuery.js.map +1 -1
  490. package/dist/esm/relayFeeCalculator/chain-queries/customGasToken.js +13 -26
  491. package/dist/esm/relayFeeCalculator/chain-queries/customGasToken.js.map +1 -1
  492. package/dist/esm/relayFeeCalculator/chain-queries/factory.js +9 -19
  493. package/dist/esm/relayFeeCalculator/chain-queries/factory.js.map +1 -1
  494. package/dist/esm/relayFeeCalculator/chain-queries/svmQuery.js +83 -128
  495. package/dist/esm/relayFeeCalculator/chain-queries/svmQuery.js.map +1 -1
  496. package/dist/esm/relayFeeCalculator/relayFeeCalculator.js +211 -299
  497. package/dist/esm/relayFeeCalculator/relayFeeCalculator.js.map +1 -1
  498. package/dist/esm/typeguards/error.js +3 -5
  499. package/dist/esm/typeguards/error.js.map +1 -1
  500. package/dist/esm/utils/AddressUtils.js +115 -147
  501. package/dist/esm/utils/AddressUtils.js.map +1 -1
  502. package/dist/esm/utils/ArrayUtils.js +21 -78
  503. package/dist/esm/utils/ArrayUtils.js.map +1 -1
  504. package/dist/esm/utils/BigNumberUtils.js +11 -12
  505. package/dist/esm/utils/BigNumberUtils.js.map +1 -1
  506. package/dist/esm/utils/BlockExplorerUtils.js +19 -23
  507. package/dist/esm/utils/BlockExplorerUtils.js.map +1 -1
  508. package/dist/esm/utils/BlockFinder.js +2 -6
  509. package/dist/esm/utils/BlockFinder.js.map +1 -1
  510. package/dist/esm/utils/BlockUtils.js +31 -40
  511. package/dist/esm/utils/BlockUtils.js.map +1 -1
  512. package/dist/esm/utils/BundleUtils.js +21 -24
  513. package/dist/esm/utils/BundleUtils.js.map +1 -1
  514. package/dist/esm/utils/CCTPUtils.js +62 -123
  515. package/dist/esm/utils/CCTPUtils.js.map +1 -1
  516. package/dist/esm/utils/CachingUtils.js +17 -38
  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 +121 -98
  521. package/dist/esm/utils/DepositUtils.js.map +1 -1
  522. package/dist/esm/utils/EventUtils.js +52 -69
  523. package/dist/esm/utils/EventUtils.js.map +1 -1
  524. package/dist/esm/utils/FormattingUtils.js +20 -26
  525. package/dist/esm/utils/FormattingUtils.js.map +1 -1
  526. package/dist/esm/utils/HyperLiquidUtils.js +8 -22
  527. package/dist/esm/utils/HyperLiquidUtils.js.map +1 -1
  528. package/dist/esm/utils/IPFSUtils.js +16 -35
  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 +8 -12
  533. package/dist/esm/utils/LogUtils.js.map +1 -1
  534. package/dist/esm/utils/Multicall.js +50 -110
  535. package/dist/esm/utils/Multicall.js.map +1 -1
  536. package/dist/esm/utils/NetworkUtils.js +12 -28
  537. package/dist/esm/utils/NetworkUtils.js.map +1 -1
  538. package/dist/esm/utils/NumberUtils.js +1 -3
  539. package/dist/esm/utils/NumberUtils.js.map +1 -1
  540. package/dist/esm/utils/ObjectUtils.js +27 -41
  541. package/dist/esm/utils/ObjectUtils.js.map +1 -1
  542. package/dist/esm/utils/Profiler.js +77 -82
  543. package/dist/esm/utils/Profiler.js.map +1 -1
  544. package/dist/esm/utils/ReviverUtils.js +3 -7
  545. package/dist/esm/utils/ReviverUtils.js.map +1 -1
  546. package/dist/esm/utils/SpokeUtils.js +83 -78
  547. package/dist/esm/utils/SpokeUtils.js.map +1 -1
  548. package/dist/esm/utils/TokenUtils.js +33 -57
  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 +10 -20
  553. package/dist/esm/utils/abi/index.js.map +1 -1
  554. package/dist/esm/utils/abi/typechain/factories/Multicall3__factory.js +8 -12
  555. package/dist/esm/utils/abi/typechain/factories/Multicall3__factory.js.map +1 -1
  556. package/dist/esm/utils/common.js +38 -52
  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 +2 -2
  563. package/src/constants.ts +0 -1
  564. package/src/gasPriceOracle/oracle.ts +0 -1
  565. package/src/utils/Multicall.ts +0 -1
  566. package/src/utils/NetworkUtils.ts +1 -8
@@ -1,4 +1,3 @@
1
- import { __awaiter, __generator } from "tslib";
2
1
  import assert from "assert";
3
2
  import { CHAIN_IDs, SPOKEPOOL_UPGRADE_BLOCKS } from "../../constants";
4
3
  import { FillStatus } from "../../interfaces";
@@ -9,10 +8,9 @@ import { bnUint32Max, BigNumber, toBN, bnZero, chunk, getRelayDataHash, isDefine
9
8
  * @param repaymentChainId Optional repaymentChainId (defaults to destinationChainId).
10
9
  * @returns An Ethers UnsignedTransaction instance.
11
10
  */
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 = {
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 = {
16
14
  depositor: relayData.depositor.toBytes32(),
17
15
  recipient: relayData.recipient.toBytes32(),
18
16
  inputToken: relayData.inputToken.toBytes32(),
@@ -38,37 +36,19 @@ export function populateV3Relay(spokePool, relayData, repaymentAddress, repaymen
38
36
  * Retrieves the time from the SpokePool contract at a particular block.
39
37
  * @returns The time at the specified block tag.
40
38
  */
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
- });
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();
54
43
  }
55
44
  /**
56
45
  * Retrieves the chain time at a particular block.
57
46
  * @note This should be the same as getTimeAt() but can differ in test. These two functions should be consolidated.
58
47
  * @returns The chain time at the specified block tag.
59
48
  */
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
- });
49
+ export async function getTimestampForBlock(provider, blockNumber) {
50
+ const block = await provider.getBlock(blockNumber);
51
+ return block.timestamp;
72
52
  }
73
53
  /**
74
54
  * Return maximum of fill deadline buffer at start and end of block range.
@@ -77,95 +57,54 @@ export function getTimestampForBlock(provider, blockNumber) {
77
57
  * @param endBlock end block
78
58
  * @returns maximum of fill deadline buffer at start and end block
79
59
  */
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
- });
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]);
95
66
  }
96
67
  /**
97
68
  * Finds the deposit id at a specific block number.
98
69
  * @param blockTag The block number to search for the deposit ID at.
99
70
  * @returns The deposit ID.
100
71
  */
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
- });
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;
118
80
  }
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
- });
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;
169
108
  }
170
109
  /**
171
110
  * Find the amount filled for a deposit at a particular block.
@@ -174,71 +113,38 @@ export function findDepositBlock(spokePool, depositId, lowBlock, highBlock) {
174
113
  * @param blockTag Block tag (numeric or "latest") to query at.
175
114
  * @returns The amount filled for the specified deposit at the requested block (or latest).
176
115
  */
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
- });
206
- });
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;
207
127
  }
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
- });
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]);
134
+ });
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;
242
148
  });
243
149
  }
244
150
  /**
@@ -250,119 +156,70 @@ export function fillStatusArray(spokePool_1, relayData_1) {
250
156
  * @param highBlocknumber Optional upper bound for the search.
251
157
  * @returns The block number at which the relay was completed, or undefined.
252
158
  */
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
- });
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;
323
199
  }
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
- });
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);
367
224
  }
368
225
  //# sourceMappingURL=SpokeUtils.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"SpokeUtils.js","sourceRoot":"","sources":["../../../../src/arch/evm/SpokeUtils.ts"],"names":[],"mappings":";AAAA,OAAO,MAAM,MAAM,QAAQ,CAAC;AAE5B,OAAO,EAAE,SAAS,EAAE,wBAAwB,EAAE,MAAM,iBAAiB,CAAC;AACtE,OAAO,EAAW,UAAU,EAA2C,MAAM,kBAAkB,CAAC;AAChG,OAAO,EACL,WAAW,EACX,SAAS,EAET,IAAI,EACJ,MAAM,EACN,KAAK,EACL,gBAAgB,EAChB,SAAS,EACT,iBAAiB,EACjB,cAAc,EACd,mBAAmB,EACnB,0BAA0B,EAE1B,eAAe,GAChB,MAAM,aAAa,CAAC;AAYrB;;;;;GAKG;AACH,MAAM,UAAU,eAAe,CAC7B,SAAmB,EACnB,SAAoB,EACpB,gBAAyB,EACzB,gBAA+C;IAA/C,iCAAA,EAAA,mBAAmB,SAAS,CAAC,kBAAkB;IAE/C,MAAM,CACJ,gBAAgB,CAAC,SAAS,CAAC,gBAAgB,CAAC,EAC5C,8CAAuC,gBAAgB,eAAK,gBAAgB,CAAC,QAAQ,EAAE,MAAG,CAC3F,CAAC;IACF,IAAM,YAAY,GAAG;QACnB,SAAS,EAAE,SAAS,CAAC,SAAS,CAAC,SAAS,EAAE;QAC1C,SAAS,EAAE,SAAS,CAAC,SAAS,CAAC,SAAS,EAAE;QAC1C,UAAU,EAAE,SAAS,CAAC,UAAU,CAAC,SAAS,EAAE;QAC5C,WAAW,EAAE,SAAS,CAAC,WAAW,CAAC,SAAS,EAAE;QAC9C,WAAW,EAAE,SAAS,CAAC,WAAW;QAClC,YAAY,EAAE,SAAS,CAAC,YAAY;QACpC,aAAa,EAAE,SAAS,CAAC,aAAa;QACtC,SAAS,EAAE,SAAS,CAAC,SAAS;QAC9B,YAAY,EAAE,SAAS,CAAC,YAAY;QACpC,mBAAmB,EAAE,SAAS,CAAC,mBAAmB;QAClD,OAAO,EAAE,SAAS,CAAC,OAAO;QAC1B,gBAAgB,EAAE,SAAS,CAAC,gBAAgB,CAAC,SAAS,EAAE;KACzD,CAAC;IAEF,IAAI,SAAS,CAAC,SAAS,CAAC,gBAAgB,CAAC,EAAE,CAAC;QAC1C,MAAM,CAAC,SAAS,CAAC,SAAS,CAAC,gBAAgB,CAAC,IAAI,CAAC,SAAS,CAAC,gBAAgB,CAAC,aAAa,EAAE,CAAC,CAAC;QAC7F,MAAM,CAAC,SAAS,CAAC,SAAS,CAAC,mBAAmB,CAAC,CAAC,CAAC;QACjD,MAAM,CAAC,SAAS,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC,CAAC;QAC5C,OAAO,SAAS,CAAC,mBAAmB,CAAC,2BAA2B,CAC9D,SAAS,EACT,gBAAgB,EAChB,gBAAgB,CAAC,SAAS,EAAE,EAC5B,SAAS,CAAC,mBAAmB,EAC7B,SAAS,CAAC,gBAAgB,CAAC,SAAS,EAAE,EACtC,SAAS,CAAC,cAAc,EACxB,SAAS,CAAC,gBAAgB,CAC3B,CAAC;IACJ,CAAC;IAED,OAAO,SAAS,CAAC,mBAAmB,CAAC,SAAS,CAAC,YAAY,EAAE,gBAAgB,EAAE,gBAAgB,CAAC,SAAS,EAAE,CAAC,CAAC;AAC/G,CAAC;AAED;;;GAGG;AACH,MAAM,UAAgB,SAAS,CAAC,SAAmB,EAAE,WAAmB;;;;;wBAClD,qBAAM,SAAS,CAAC,cAAc,CAAC,EAAE,QAAQ,EAAE,WAAW,EAAE,CAAC,EAAA;;oBAAvE,WAAW,GAAG,SAAyD;oBAC7E,MAAM,CAAC,SAAS,CAAC,WAAW,CAAC,WAAW,CAAC,IAAI,WAAW,CAAC,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC;oBAC1E,sBAAO,WAAW,CAAC,QAAQ,EAAE,EAAC;;;;CAC/B;AAED;;;;GAIG;AACH,MAAM,UAAgB,oBAAoB,CAAC,QAA4B,EAAE,WAAmB;;;;;wBAC5E,qBAAM,QAAQ,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAA;;oBAA5C,KAAK,GAAG,SAAoC;oBAClD,sBAAO,KAAK,CAAC,SAAS,EAAC;;;;CACxB;AAED;;;;;;GAMG;AACH,MAAM,UAAgB,yBAAyB,CAC7C,SAAmB,EACnB,UAAkB,EAClB,QAAgB;;;;;wBAEY,qBAAM,OAAO,CAAC,GAAG,CAAC;wBAC5C,SAAS,CAAC,kBAAkB,CAAC,EAAE,QAAQ,EAAE,UAAU,EAAE,CAAC;wBACtD,SAAS,CAAC,kBAAkB,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC;qBACrD,CAAC,EAAA;;oBAHI,mBAAmB,GAAG,SAG1B;oBACF,sBAAO,IAAI,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC,CAAC,EAAE,mBAAmB,CAAC,CAAC,CAAC,CAAC,EAAC;;;;CACjE;AAED;;;;GAIG;AACH,MAAM,UAAgB,mBAAmB,CAAC,QAAkB,EAAE,QAAgB;;;;;wBAClD,qBAAM,QAAQ,CAAC,gBAAgB,CAAC,EAAE,QAAQ,UAAA,EAAE,CAAC,EAAA;;oBAAjE,iBAAiB,GAAG,SAA6C;oBACjE,gBAAgB,GAAG,IAAI,CAAC,iBAAiB,CAAC,CAAC;oBACjD,+EAA+E;oBAC/E,IAAI,gBAAgB,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC;wBAChC,MAAM,IAAI,KAAK,CAAC,uBAAuB,CAAC,CAAC;oBAC3C,CAAC;oBACD,sBAAO,gBAAgB,EAAC;;;;CACzB;AAED,MAAM,UAAgB,gBAAgB,CACpC,SAAmB,EACnB,SAAoB,EACpB,QAAgB,EAChB,SAAkB;;;;;;oBAElB,kEAAkE;oBAClE,IAAI,iBAAiB,CAAC,SAAS,CAAC,EAAE,CAAC;wBACjC,MAAM,IAAI,KAAK,CAAC,6CAAsC,SAAS,CAAE,CAAC,CAAC;oBACrE,CAAC;0BAED,SAAS,aAAT,SAAS;oBAAT,KAAA,SAAS,CAAA;;wBAAK,qBAAM,SAAS,CAAC,QAAQ,CAAC,cAAc,EAAE,EAAA;;0BAAvD,SAAS,GAAK,SAAyC;;;oBAAvD,GAAwD;oBACxD,MAAM,CAAC,SAAS,GAAG,QAAQ,EAAE,sCAA+B,QAAQ,iBAAO,SAAS,MAAG,CAAC,CAAC;oBAIvF,qBAAM,OAAO,CAAC,GAAG,CAAC;4BAChB,SAAS,CAAC,gBAAgB,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC;4BAClD,SAAS,CAAC,gBAAgB,CAAC,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC;yBACpD,CAAC,EAAA;;oBAJE,KAAgC,CACpC,SAGE,CACH,CAAC,GAAG,CAAC,UAAC,CAAC,IAAK,OAAA,IAAI,CAAC,CAAC,CAAC,EAAP,CAAO,CAAC,EALd,YAAY,QAAA,EAAE,aAAa,QAAA;oBAOlC,IAAI,YAAY,CAAC,EAAE,CAAC,SAAS,CAAC,IAAI,aAAa,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC;wBAC/D,sBAAO,SAAS,EAAC,CAAC,0DAA0D;oBAC9E,CAAC;;;oBAIO,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,SAAS,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC;oBACtC,KAAA,IAAI,CAAA;oBAAC,qBAAM,SAAS,CAAC,gBAAgB,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC,EAAA;;oBAAzE,SAAS,GAAG,kBAAK,SAAwD,EAAC;oBAEhF,IAAI,SAAS,CAAC,EAAE,CAAC,SAAS,CAAC,EAAE,CAAC;wBAC5B,SAAS,GAAG,QAAQ,CAAC,CAAC,kDAAkD;oBAC1E,CAAC;yBAAM,CAAC;wBACN,QAAQ,GAAG,QAAQ,GAAG,CAAC,CAAC,CAAC,0CAA0C;oBACrE,CAAC;;;wBACM,QAAQ,GAAG,SAAS;;wBAE7B,sBAAO,QAAQ,EAAC;;;;CACjB;AAED;;;;;;GAMG;AACH,MAAM,UAAgB,eAAe;wDACnC,SAAmB,EACnB,SAAoB,EACpB,QAA6B,EAC7B,kBAA2B;;QAD3B,yBAAA,EAAA,mBAA6B;;;;0BAG7B,kBAAkB,aAAlB,kBAAkB;oBAAlB,KAAA,kBAAkB,CAAA;;wBAAK,qBAAM,SAAS,CAAC,OAAO,EAAE,EAAA;;0BAAhD,kBAAkB,GAAK,SAAyB;;;oBAAhD,GAAiD;oBACjD,MAAM,CAAC,SAAS,CAAC,kBAAkB,CAAC,CAAC,CAAC;oBAEhC,IAAI,GAAG,gBAAgB,CAAC,SAAS,EAAE,kBAAkB,CAAC,CAAC;oBACzC,qBAAM,SAAS,CAAC,YAAY,CAAC,IAAI,EAAE,EAAE,QAAQ,UAAA,EAAE,CAAC,EAAA;;oBAA9D,WAAW,GAAG,SAAgD;oBAC9D,UAAU,GAAG,MAAM,CAAC,WAAW,CAAC,CAAC;oBAEvC,IAAI,CAAC,CAAC,UAAU,CAAC,QAAQ,EAAE,UAAU,CAAC,iBAAiB,EAAE,UAAU,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC;wBACzF,aAAa,GAAgB,SAAS,cAAzB,EAAE,SAAS,GAAK,SAAS,UAAd,CAAe;wBAC/C,MAAM,IAAI,KAAK,CACb,qDAA8C,aAAa,sBAAY,SAAS,CAAC,QAAQ,EAAE,eAAK,UAAU,MAAG,CAC9G,CAAC;oBACJ,CAAC;oBAED,sBAAO,UAAU,EAAC;;;;CACnB;AAED,MAAM,UAAgB,eAAe;wDACnC,SAAmB,EACnB,SAAsB,EACtB,QAA6B;;QAA7B,yBAAA,EAAA,mBAA6B;;;;oBAEvB,YAAY,GAAG,cAAc,CAAC;oBACT,qBAAM,SAAS,CAAC,OAAO,EAAE,EAAA;;oBAA9C,kBAAkB,GAAG,SAAyB;oBAE9C,OAAO,GAAG,SAAS,CAAC,GAAG,CAAC,UAAC,SAAS;wBACtC,IAAM,IAAI,GAAG,gBAAgB,CAAC,SAAS,EAAE,kBAAkB,CAAC,CAAC;wBAC7D,OAAO,SAAS,CAAC,SAAS,CAAC,kBAAkB,CAAC,YAAY,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC;oBACtE,CAAC,CAAC,CAAC;oBAGG,SAAS,GAAG,GAAG,CAAC;oBAChB,cAAc,GAAG,KAAK,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;oBAE9B,qBAAM,OAAO,CAAC,GAAG,CAClC,cAAc,CAAC,GAAG,CAAC,UAAC,OAAO,IAAK,OAAA,SAAS,CAAC,UAAU,CAAC,SAAS,CAAC,OAAO,EAAE,EAAE,QAAQ,UAAA,EAAE,CAAC,EAArD,CAAqD,CAAC,CACvF,EAAA;;oBAFK,UAAU,GAAG,SAElB;oBACK,MAAM,GAAG,UAAU;yBACtB,GAAG,CAAC,UAAC,SAAsB;wBAC1B,OAAA,SAAS,CAAC,GAAG,CAAC,UAAC,MAAM,IAAK,OAAA,SAAS,CAAC,SAAS,CAAC,oBAAoB,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,EAAjE,CAAiE,CAAC;oBAA5F,CAA4F,CAC7F;yBACA,IAAI,EAAE,CAAC;oBAEJ,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;oBACvC,QAAQ,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;oBAEzC,sBAAO,MAAM,CAAC,GAAG,CAAC,UAAC,MAAe;4BAChC,OAAO,SAAS,CAAC,WAAW,CAAC,MAAM,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;gCACpF,CAAC,CAAC,MAAM,CAAC,QAAQ,EAAE;gCACnB,CAAC,CAAC,SAAS,CAAC;wBAChB,CAAC,CAAC,EAAC;;;;CACJ;AAED;;;;;;;;GAQG;AACH,MAAM,UAAgB,aAAa,CACjC,SAAmB,EACnB,SAAoB,EACpB,cAAsB,EACtB,eAAwB;;;;;;;oBAEhB,QAAQ,GAAK,SAAS,SAAd,CAAe;yBAIJ,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,aAAa,CAAC,EAA1D,wBAA0D;oBAChF,qBAAM,QAAQ,CAAC,UAAU,EAAE,EAAA;;oBAA5B,KAAA,CAAC,SAA2B,CAAC,CAAC,OAAO,CAAA;;;oBACrC,KAAA,MAAM,CAAA;oBAAC,qBAAM,SAAS,CAAC,OAAO,EAAE,EAAA;;oBAAhC,KAAA,kBAAO,SAAyB,EAAC,CAAA;;;oBAF/B,kBAAkB,KAEa;oBACrC,MAAM,CACJ,SAAS,CAAC,aAAa,KAAK,kBAAkB,EAC9C,4DAAqD,kBAAkB,MAAG,CAC3E,CAAC;oBAEF,kGAAkG;oBAClG,+DAA+D;oBAC/D,cAAc,GAAG,IAAI,CAAC,GAAG,CAAC,cAAc,EAAE,MAAA,wBAAwB,CAAC,kBAAkB,CAAC,mCAAI,cAAc,CAAC,CAAC;0BAC1G,eAAe,aAAf,eAAe;oBAAf,KAAA,eAAe,CAAA;;wBAAK,qBAAM,QAAQ,CAAC,cAAc,EAAE,EAAA;;0BAAnD,eAAe,GAAK,SAA+B;;;oBAAnD,GAAoD;oBACpD,MAAM,CAAC,eAAe,GAAG,cAAc,EAAE,sCAA+B,cAAc,iBAAO,eAAe,MAAG,CAAC,CAAC;oBAI/G,qBAAM,OAAO,CAAC,GAAG,CAAC;4BAChB,eAAe,CAAC,SAAS,EAAE,SAAS,EAAE,cAAc,EAAE,kBAAkB,CAAC;4BACzE,eAAe,CAAC,SAAS,EAAE,SAAS,EAAE,eAAe,EAAE,kBAAkB,CAAC;yBAC3E,CAAC,EAAA;;oBAJE,KAAuC,CAC3C,SAGE,CACH,CAAC,GAAG,CAAC,MAAM,CAAC,EALN,iBAAiB,QAAA,EAAE,eAAe,QAAA;oBAOzC,IAAI,eAAe,KAAK,UAAU,CAAC,MAAM,EAAE,CAAC;wBAC1C,sBAAO,SAAS,EAAC,CAAC,kDAAkD;oBACtE,CAAC;oBAED,kFAAkF;oBAClF,IAAI,iBAAiB,KAAK,UAAU,CAAC,MAAM,EAAE,CAAC;wBACpC,SAAS,GAAoB,SAAS,UAA7B,EAAE,aAAa,GAAK,SAAS,cAAd,CAAe;wBACzC,KAAuB,CAAC,cAAc,CAAC,aAAa,CAAC,EAAE,cAAc,CAAC,kBAAkB,CAAC,CAAC,EAAzF,QAAQ,QAAA,EAAE,QAAQ,QAAA,CAAwE;wBACjG,MAAM,IAAI,KAAK,CAAC,UAAG,QAAQ,sBAAY,SAAS,CAAC,QAAQ,EAAE,wBAAc,QAAQ,2BAAiB,cAAc,CAAE,CAAC,CAAC;oBACtH,CAAC;;;oBAIO,cAAc,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,eAAe,GAAG,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC;oBACvD,qBAAM,eAAe,CAAC,SAAS,EAAE,SAAS,EAAE,cAAc,EAAE,kBAAkB,CAAC,EAAA;;oBAA5F,UAAU,GAAG,SAA+E;oBAElG,IAAI,UAAU,KAAK,UAAU,CAAC,MAAM,EAAE,CAAC;wBACrC,eAAe,GAAG,cAAc,CAAC;oBACnC,CAAC;yBAAM,CAAC;wBACN,cAAc,GAAG,cAAc,GAAG,CAAC,CAAC;oBACtC,CAAC;;;wBACM,cAAc,GAAG,eAAe;;yBAEzC,sBAAO,cAAc,EAAC;;;;CACvB;AAED,MAAM,UAAgB,aAAa,CACjC,SAAmB,EACnB,SAAoB,EACpB,cAAsB,EACtB,eAAwB;;;;;wBAEJ,qBAAM,aAAa,CAAC,SAAS,EAAE,SAAS,EAAE,cAAc,EAAE,eAAe,CAAC,EAAA;;oBAAxF,WAAW,GAAG,SAA0E;oBAC9F,IAAI,CAAC,WAAW;wBAAE,sBAAO,SAAS,EAAC;oBAG7B,WAAW,GAAG,CAAC,CAAC;oBAChB,KAAa,CAAC,WAAW,EAAE,WAAW,CAAC,EAAtC,IAAI,QAAA,EAAE,EAAE,QAAA,CAA+B;oBAG5C,qBAAM,OAAO,CAAC,GAAG,CAAC;4BAChB,mBAAmB,CACjB,SAAS,EACT,SAAS,CAAC,OAAO,CAAC,WAAW,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,SAAS,CAAC,aAAa,EAAE,SAAS,CAAC,SAAS,CAAC,EACzG,EAAE,IAAI,MAAA,EAAE,EAAE,IAAA,EAAE,WAAW,aAAA,EAAE,CAC1B;4BACD,mBAAmB,CACjB,SAAS,EACT,SAAS,CAAC,OAAO,CAAC,aAAa,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,SAAS,CAAC,aAAa,EAAE,SAAS,CAAC,SAAS,CAAC,EAC3G,EAAE,IAAI,MAAA,EAAE,EAAE,IAAA,EAAE,WAAW,aAAA,EAAE,CAC1B;yBACF,CAAC,EAAA;;oBAZE,KAAK,GAAG,CACZ,SAWE,CACH,CAAC,IAAI,EAAE;yBACJ,CAAA,KAAK,CAAC,MAAM,KAAK,CAAC,CAAA,EAAlB,wBAAkB;oBACoB,qBAAM,SAAS,CAAC,QAAQ,CAAC,UAAU,EAAE,EAAA;;oBAArE,uBAAgC,CAAA,SAAqC,CAAA,QAA1C;oBAC7B,KAAwB,CAAC,SAAS,CAAC,aAAa,EAAE,oBAAkB,CAAC,CAAC,GAAG,CAAC,cAAc,CAAC,EAAxF,gBAAM,EAAE,WAAW,QAAA,CAAsE;oBAChG,MAAM,IAAI,KAAK,CACb,yDAAkD,WAAW,uBAAa,WAAW,2BAAiB,SAAS,CAAC,SAAS,8BAAoB,QAAM,CAAE,CACtJ,CAAC;;oBAGE,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;yBAII,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,aAAa,CAAC,EAA1D,wBAA0D;oBAChF,qBAAM,SAAS,CAAC,QAAQ,CAAC,UAAU,EAAE,EAAA;;oBAAtC,KAAA,CAAC,SAAqC,CAAC,CAAC,OAAO,CAAA;;;oBAC/C,KAAA,MAAM,CAAA;oBAAC,qBAAM,SAAS,CAAC,OAAO,EAAE,EAAA;;oBAAhC,KAAA,kBAAO,SAAyB,EAAC,CAAA;;;oBAF/B,kBAAkB,KAEa;oBAErC,sBAAO,eAAe,CAAC,0BAA0B,CAAC,KAAK,CAAC,EAAE,kBAAkB,CAAC,EAAC;;;;CAC/E"}
1
+ {"version":3,"file":"SpokeUtils.js","sourceRoot":"","sources":["../../../../src/arch/evm/SpokeUtils.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,QAAQ,CAAC;AAE5B,OAAO,EAAE,SAAS,EAAE,wBAAwB,EAAE,MAAM,iBAAiB,CAAC;AACtE,OAAO,EAAW,UAAU,EAA2C,MAAM,kBAAkB,CAAC;AAChG,OAAO,EACL,WAAW,EACX,SAAS,EAET,IAAI,EACJ,MAAM,EACN,KAAK,EACL,gBAAgB,EAChB,SAAS,EACT,iBAAiB,EACjB,cAAc,EACd,mBAAmB,EACnB,0BAA0B,EAE1B,eAAe,GAChB,MAAM,aAAa,CAAC;AAYrB;;;;;GAKG;AACH,MAAM,UAAU,eAAe,CAC7B,SAAmB,EACnB,SAAoB,EACpB,gBAAyB,EACzB,gBAAgB,GAAG,SAAS,CAAC,kBAAkB;IAE/C,MAAM,CACJ,gBAAgB,CAAC,SAAS,CAAC,gBAAgB,CAAC,EAC5C,uCAAuC,gBAAgB,KAAK,gBAAgB,CAAC,QAAQ,EAAE,GAAG,CAC3F,CAAC;IACF,MAAM,YAAY,GAAG;QACnB,SAAS,EAAE,SAAS,CAAC,SAAS,CAAC,SAAS,EAAE;QAC1C,SAAS,EAAE,SAAS,CAAC,SAAS,CAAC,SAAS,EAAE;QAC1C,UAAU,EAAE,SAAS,CAAC,UAAU,CAAC,SAAS,EAAE;QAC5C,WAAW,EAAE,SAAS,CAAC,WAAW,CAAC,SAAS,EAAE;QAC9C,WAAW,EAAE,SAAS,CAAC,WAAW;QAClC,YAAY,EAAE,SAAS,CAAC,YAAY;QACpC,aAAa,EAAE,SAAS,CAAC,aAAa;QACtC,SAAS,EAAE,SAAS,CAAC,SAAS;QAC9B,YAAY,EAAE,SAAS,CAAC,YAAY;QACpC,mBAAmB,EAAE,SAAS,CAAC,mBAAmB;QAClD,OAAO,EAAE,SAAS,CAAC,OAAO;QAC1B,gBAAgB,EAAE,SAAS,CAAC,gBAAgB,CAAC,SAAS,EAAE;KACzD,CAAC;IAEF,IAAI,SAAS,CAAC,SAAS,CAAC,gBAAgB,CAAC,EAAE,CAAC;QAC1C,MAAM,CAAC,SAAS,CAAC,SAAS,CAAC,gBAAgB,CAAC,IAAI,CAAC,SAAS,CAAC,gBAAgB,CAAC,aAAa,EAAE,CAAC,CAAC;QAC7F,MAAM,CAAC,SAAS,CAAC,SAAS,CAAC,mBAAmB,CAAC,CAAC,CAAC;QACjD,MAAM,CAAC,SAAS,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC,CAAC;QAC5C,OAAO,SAAS,CAAC,mBAAmB,CAAC,2BAA2B,CAC9D,SAAS,EACT,gBAAgB,EAChB,gBAAgB,CAAC,SAAS,EAAE,EAC5B,SAAS,CAAC,mBAAmB,EAC7B,SAAS,CAAC,gBAAgB,CAAC,SAAS,EAAE,EACtC,SAAS,CAAC,cAAc,EACxB,SAAS,CAAC,gBAAgB,CAC3B,CAAC;IACJ,CAAC;IAED,OAAO,SAAS,CAAC,mBAAmB,CAAC,SAAS,CAAC,YAAY,EAAE,gBAAgB,EAAE,gBAAgB,CAAC,SAAS,EAAE,CAAC,CAAC;AAC/G,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,SAAS,CAAC,SAAmB,EAAE,WAAmB;IACtE,MAAM,WAAW,GAAG,MAAM,SAAS,CAAC,cAAc,CAAC,EAAE,QAAQ,EAAE,WAAW,EAAE,CAAC,CAAC;IAC9E,MAAM,CAAC,SAAS,CAAC,WAAW,CAAC,WAAW,CAAC,IAAI,WAAW,CAAC,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC;IAC1E,OAAO,WAAW,CAAC,QAAQ,EAAE,CAAC;AAChC,CAAC;AAED;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,oBAAoB,CAAC,QAA4B,EAAE,WAAmB;IAC1F,MAAM,KAAK,GAAG,MAAM,QAAQ,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;IACnD,OAAO,KAAK,CAAC,SAAS,CAAC;AACzB,CAAC;AAED;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,yBAAyB,CAC7C,SAAmB,EACnB,UAAkB,EAClB,QAAgB;IAEhB,MAAM,mBAAmB,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;QAC5C,SAAS,CAAC,kBAAkB,CAAC,EAAE,QAAQ,EAAE,UAAU,EAAE,CAAC;QACtD,SAAS,CAAC,kBAAkB,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC;KACrD,CAAC,CAAC;IACH,OAAO,IAAI,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC,CAAC,EAAE,mBAAmB,CAAC,CAAC,CAAC,CAAC,CAAC;AAClE,CAAC;AAED;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,mBAAmB,CAAC,QAAkB,EAAE,QAAgB;IAC5E,MAAM,iBAAiB,GAAG,MAAM,QAAQ,CAAC,gBAAgB,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC;IACxE,MAAM,gBAAgB,GAAG,IAAI,CAAC,iBAAiB,CAAC,CAAC;IACjD,+EAA+E;IAC/E,IAAI,gBAAgB,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC;QAChC,MAAM,IAAI,KAAK,CAAC,uBAAuB,CAAC,CAAC;IAC3C,CAAC;IACD,OAAO,gBAAgB,CAAC;AAC1B,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,gBAAgB,CACpC,SAAmB,EACnB,SAAoB,EACpB,QAAgB,EAChB,SAAkB;IAElB,kEAAkE;IAClE,IAAI,iBAAiB,CAAC,SAAS,CAAC,EAAE,CAAC;QACjC,MAAM,IAAI,KAAK,CAAC,sCAAsC,SAAS,EAAE,CAAC,CAAC;IACrE,CAAC;IAED,SAAS,KAAK,MAAM,SAAS,CAAC,QAAQ,CAAC,cAAc,EAAE,CAAC;IACxD,MAAM,CAAC,SAAS,GAAG,QAAQ,EAAE,+BAA+B,QAAQ,OAAO,SAAS,GAAG,CAAC,CAAC;IAEzF,gFAAgF;IAChF,MAAM,CAAC,YAAY,EAAE,aAAa,CAAC,GAAG,CACpC,MAAM,OAAO,CAAC,GAAG,CAAC;QAChB,SAAS,CAAC,gBAAgB,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC;QAClD,SAAS,CAAC,gBAAgB,CAAC,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC;KACpD,CAAC,CACH,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;IAEtB,IAAI,YAAY,CAAC,EAAE,CAAC,SAAS,CAAC,IAAI,aAAa,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC;QAC/D,OAAO,SAAS,CAAC,CAAC,0DAA0D;IAC9E,CAAC;IAED,+FAA+F;IAC/F,GAAG,CAAC;QACF,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,SAAS,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC;QACxD,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,SAAS,CAAC,gBAAgB,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC;QAEjF,IAAI,SAAS,CAAC,EAAE,CAAC,SAAS,CAAC,EAAE,CAAC;YAC5B,SAAS,GAAG,QAAQ,CAAC,CAAC,kDAAkD;QAC1E,CAAC;aAAM,CAAC;YACN,QAAQ,GAAG,QAAQ,GAAG,CAAC,CAAC,CAAC,0CAA0C;QACrE,CAAC;IACH,CAAC,QAAQ,QAAQ,GAAG,SAAS,EAAE;IAE/B,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,eAAe,CACnC,SAAmB,EACnB,SAAoB,EACpB,WAAqB,QAAQ,EAC7B,kBAA2B;IAE3B,kBAAkB,KAAK,MAAM,SAAS,CAAC,OAAO,EAAE,CAAC;IACjD,MAAM,CAAC,SAAS,CAAC,kBAAkB,CAAC,CAAC,CAAC;IAEtC,MAAM,IAAI,GAAG,gBAAgB,CAAC,SAAS,EAAE,kBAAkB,CAAC,CAAC;IAC7D,MAAM,WAAW,GAAG,MAAM,SAAS,CAAC,YAAY,CAAC,IAAI,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAC;IACrE,MAAM,UAAU,GAAG,MAAM,CAAC,WAAW,CAAC,CAAC;IAEvC,IAAI,CAAC,CAAC,UAAU,CAAC,QAAQ,EAAE,UAAU,CAAC,iBAAiB,EAAE,UAAU,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC;QACjG,MAAM,EAAE,aAAa,EAAE,SAAS,EAAE,GAAG,SAAS,CAAC;QAC/C,MAAM,IAAI,KAAK,CACb,8CAA8C,aAAa,YAAY,SAAS,CAAC,QAAQ,EAAE,KAAK,UAAU,GAAG,CAC9G,CAAC;IACJ,CAAC;IAED,OAAO,UAAU,CAAC;AACpB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,eAAe,CACnC,SAAmB,EACnB,SAAsB,EACtB,WAAqB,QAAQ;IAE7B,MAAM,YAAY,GAAG,cAAc,CAAC;IACpC,MAAM,kBAAkB,GAAG,MAAM,SAAS,CAAC,OAAO,EAAE,CAAC;IAErD,MAAM,OAAO,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC,SAAS,EAAE,EAAE;QAC1C,MAAM,IAAI,GAAG,gBAAgB,CAAC,SAAS,EAAE,kBAAkB,CAAC,CAAC;QAC7D,OAAO,SAAS,CAAC,SAAS,CAAC,kBAAkB,CAAC,YAAY,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC;IACtE,CAAC,CAAC,CAAC;IAEH,iEAAiE;IACjE,MAAM,SAAS,GAAG,GAAG,CAAC;IACtB,MAAM,cAAc,GAAG,KAAK,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;IAEjD,MAAM,UAAU,GAAG,MAAM,OAAO,CAAC,GAAG,CAClC,cAAc,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,SAAS,CAAC,UAAU,CAAC,SAAS,CAAC,OAAO,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAC,CACvF,CAAC;IACF,MAAM,MAAM,GAAG,UAAU;SACtB,GAAG,CAAC,CAAC,SAAsB,EAAE,EAAE,CAC9B,SAAS,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,SAAS,CAAC,SAAS,CAAC,oBAAoB,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAC7F;SACA,IAAI,EAAE,CAAC;IAEV,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;IAC7C,MAAM,QAAQ,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;IAEzC,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC,MAAe,EAAE,EAAE;QACpC,OAAO,SAAS,CAAC,WAAW,CAAC,MAAM,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;YACpF,CAAC,CAAC,MAAM,CAAC,QAAQ,EAAE;YACnB,CAAC,CAAC,SAAS,CAAC;IAChB,CAAC,CAAC,CAAC;AACL,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,CAAC,KAAK,UAAU,aAAa,CACjC,SAAmB,EACnB,SAAoB,EACpB,cAAsB,EACtB,eAAwB;IAExB,MAAM,EAAE,QAAQ,EAAE,GAAG,SAAS,CAAC;IAC/B,kHAAkH;IAClH,oHAAoH;IACpH,oFAAoF;IACpF,MAAM,kBAAkB,GAAG,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,aAAa,CAAC;QACnF,CAAC,CAAC,CAAC,MAAM,QAAQ,CAAC,UAAU,EAAE,CAAC,CAAC,OAAO;QACvC,CAAC,CAAC,MAAM,CAAC,MAAM,SAAS,CAAC,OAAO,EAAE,CAAC,CAAC;IACtC,MAAM,CACJ,SAAS,CAAC,aAAa,KAAK,kBAAkB,EAC9C,qDAAqD,kBAAkB,GAAG,CAC3E,CAAC;IAEF,kGAAkG;IAClG,+DAA+D;IAC/D,cAAc,GAAG,IAAI,CAAC,GAAG,CAAC,cAAc,EAAE,wBAAwB,CAAC,kBAAkB,CAAC,IAAI,cAAc,CAAC,CAAC;IAC1G,eAAe,KAAK,MAAM,QAAQ,CAAC,cAAc,EAAE,CAAC;IACpD,MAAM,CAAC,eAAe,GAAG,cAAc,EAAE,+BAA+B,cAAc,OAAO,eAAe,GAAG,CAAC,CAAC;IAEjH,mFAAmF;IACnF,MAAM,CAAC,iBAAiB,EAAE,eAAe,CAAC,GAAG,CAC3C,MAAM,OAAO,CAAC,GAAG,CAAC;QAChB,eAAe,CAAC,SAAS,EAAE,SAAS,EAAE,cAAc,EAAE,kBAAkB,CAAC;QACzE,eAAe,CAAC,SAAS,EAAE,SAAS,EAAE,eAAe,EAAE,kBAAkB,CAAC;KAC3E,CAAC,CACH,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IAEd,IAAI,eAAe,KAAK,UAAU,CAAC,MAAM,EAAE,CAAC;QAC1C,OAAO,SAAS,CAAC,CAAC,kDAAkD;IACtE,CAAC;IAED,kFAAkF;IAClF,IAAI,iBAAiB,KAAK,UAAU,CAAC,MAAM,EAAE,CAAC;QAC5C,MAAM,EAAE,SAAS,EAAE,aAAa,EAAE,GAAG,SAAS,CAAC;QAC/C,MAAM,CAAC,QAAQ,EAAE,QAAQ,CAAC,GAAG,CAAC,cAAc,CAAC,aAAa,CAAC,EAAE,cAAc,CAAC,kBAAkB,CAAC,CAAC,CAAC;QACjG,MAAM,IAAI,KAAK,CAAC,GAAG,QAAQ,YAAY,SAAS,CAAC,QAAQ,EAAE,cAAc,QAAQ,iBAAiB,cAAc,EAAE,CAAC,CAAC;IACtH,CAAC;IAED,wEAAwE;IACxE,GAAG,CAAC;QACF,MAAM,cAAc,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,eAAe,GAAG,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC;QAC1E,MAAM,UAAU,GAAG,MAAM,eAAe,CAAC,SAAS,EAAE,SAAS,EAAE,cAAc,EAAE,kBAAkB,CAAC,CAAC;QAEnG,IAAI,UAAU,KAAK,UAAU,CAAC,MAAM,EAAE,CAAC;YACrC,eAAe,GAAG,cAAc,CAAC;QACnC,CAAC;aAAM,CAAC;YACN,cAAc,GAAG,cAAc,GAAG,CAAC,CAAC;QACtC,CAAC;IACH,CAAC,QAAQ,cAAc,GAAG,eAAe,EAAE;IAE3C,OAAO,cAAc,CAAC;AACxB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,aAAa,CACjC,SAAmB,EACnB,SAAoB,EACpB,cAAsB,EACtB,eAAwB;IAExB,MAAM,WAAW,GAAG,MAAM,aAAa,CAAC,SAAS,EAAE,SAAS,EAAE,cAAc,EAAE,eAAe,CAAC,CAAC;IAC/F,IAAI,CAAC,WAAW;QAAE,OAAO,SAAS,CAAC;IAEnC,gHAAgH;IAChH,MAAM,WAAW,GAAG,CAAC,CAAC;IACtB,MAAM,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC;IAE9C,MAAM,KAAK,GAAG,CACZ,MAAM,OAAO,CAAC,GAAG,CAAC;QAChB,mBAAmB,CACjB,SAAS,EACT,SAAS,CAAC,OAAO,CAAC,WAAW,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,SAAS,CAAC,aAAa,EAAE,SAAS,CAAC,SAAS,CAAC,EACzG,EAAE,IAAI,EAAE,EAAE,EAAE,WAAW,EAAE,CAC1B;QACD,mBAAmB,CACjB,SAAS,EACT,SAAS,CAAC,OAAO,CAAC,aAAa,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,SAAS,CAAC,aAAa,EAAE,SAAS,CAAC,SAAS,CAAC,EAC3G,EAAE,IAAI,EAAE,EAAE,EAAE,WAAW,EAAE,CAC1B;KACF,CAAC,CACH,CAAC,IAAI,EAAE,CAAC;IACT,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACvB,MAAM,EAAE,OAAO,EAAE,kBAAkB,EAAE,GAAG,MAAM,SAAS,CAAC,QAAQ,CAAC,UAAU,EAAE,CAAC;QAC9E,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,GAAG,CAAC,SAAS,CAAC,aAAa,EAAE,kBAAkB,CAAC,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;QAChG,MAAM,IAAI,KAAK,CACb,kDAAkD,WAAW,aAAa,WAAW,iBAAiB,SAAS,CAAC,SAAS,oBAAoB,MAAM,EAAE,CACtJ,CAAC;IACJ,CAAC;IAED,MAAM,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;IACvB,kHAAkH;IAClH,oHAAoH;IACpH,oFAAoF;IACpF,MAAM,kBAAkB,GAAG,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,aAAa,CAAC;QACnF,CAAC,CAAC,CAAC,MAAM,SAAS,CAAC,QAAQ,CAAC,UAAU,EAAE,CAAC,CAAC,OAAO;QACjD,CAAC,CAAC,MAAM,CAAC,MAAM,SAAS,CAAC,OAAO,EAAE,CAAC,CAAC;IAEtC,OAAO,eAAe,CAAC,0BAA0B,CAAC,KAAK,CAAC,EAAE,kBAAkB,CAAC,CAAC;AAChF,CAAC"}