@hyperlane-xyz/widgets 1.5.7-beta5 → 1.5.7-beta8

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 (418) hide show
  1. package/dist/cjs/color.d.ts +13 -0
  2. package/dist/cjs/color.d.ts.map +1 -0
  3. package/dist/cjs/color.js +36 -0
  4. package/dist/cjs/color.js.map +1 -0
  5. package/dist/cjs/consts.d.ts +2 -0
  6. package/dist/cjs/consts.d.ts.map +1 -0
  7. package/dist/cjs/consts.js +5 -0
  8. package/dist/cjs/consts.js.map +1 -0
  9. package/dist/cjs/icons/Airplane.d.ts +11 -0
  10. package/dist/cjs/icons/Airplane.d.ts.map +1 -0
  11. package/dist/cjs/icons/Airplane.js +35 -0
  12. package/dist/cjs/icons/Airplane.js.map +1 -0
  13. package/dist/cjs/icons/ChainLogo.d.ts +18 -0
  14. package/dist/cjs/icons/ChainLogo.d.ts.map +1 -0
  15. package/dist/cjs/icons/ChainLogo.js +111 -0
  16. package/dist/cjs/icons/ChainLogo.js.map +1 -0
  17. package/dist/cjs/icons/Circle.d.ts +8 -0
  18. package/dist/cjs/icons/Circle.d.ts.map +1 -0
  19. package/dist/cjs/icons/Circle.js +14 -0
  20. package/dist/cjs/icons/Circle.js.map +1 -0
  21. package/dist/cjs/icons/Envelope.d.ts +11 -0
  22. package/dist/cjs/icons/Envelope.d.ts.map +1 -0
  23. package/dist/cjs/icons/Envelope.js +36 -0
  24. package/dist/cjs/icons/Envelope.js.map +1 -0
  25. package/dist/cjs/icons/Lock.d.ts +11 -0
  26. package/dist/cjs/icons/Lock.d.ts.map +1 -0
  27. package/dist/cjs/icons/Lock.js +34 -0
  28. package/dist/cjs/icons/Lock.js.map +1 -0
  29. package/dist/cjs/icons/QuestionMark.d.ts +11 -0
  30. package/dist/cjs/icons/QuestionMark.d.ts.map +1 -0
  31. package/dist/cjs/icons/QuestionMark.js +34 -0
  32. package/dist/cjs/icons/QuestionMark.js.map +1 -0
  33. package/dist/cjs/icons/Shield.d.ts +11 -0
  34. package/dist/cjs/icons/Shield.d.ts.map +1 -0
  35. package/dist/cjs/icons/Shield.js +35 -0
  36. package/dist/cjs/icons/Shield.js.map +1 -0
  37. package/dist/cjs/icons/WideChevron.d.ts +13 -0
  38. package/dist/cjs/icons/WideChevron.d.ts.map +1 -0
  39. package/dist/cjs/icons/WideChevron.js +57 -0
  40. package/dist/cjs/icons/WideChevron.js.map +1 -0
  41. package/dist/cjs/index.d.ts +13 -0
  42. package/dist/cjs/index.d.ts.map +1 -0
  43. package/dist/cjs/index.js +53 -0
  44. package/dist/cjs/index.js.map +1 -0
  45. package/dist/cjs/logos/black/Arbitrum.d.ts +4 -0
  46. package/dist/cjs/logos/black/Arbitrum.d.ts.map +1 -0
  47. package/dist/cjs/logos/black/Arbitrum.js +33 -0
  48. package/dist/cjs/logos/black/Arbitrum.js.map +1 -0
  49. package/dist/cjs/logos/black/Avalanche.d.ts +4 -0
  50. package/dist/cjs/logos/black/Avalanche.d.ts.map +1 -0
  51. package/dist/cjs/logos/black/Avalanche.js +30 -0
  52. package/dist/cjs/logos/black/Avalanche.js.map +1 -0
  53. package/dist/cjs/logos/black/Base.d.ts +4 -0
  54. package/dist/cjs/logos/black/Base.d.ts.map +1 -0
  55. package/dist/cjs/logos/black/Base.js +30 -0
  56. package/dist/cjs/logos/black/Base.js.map +1 -0
  57. package/dist/cjs/logos/black/Bsc.d.ts +4 -0
  58. package/dist/cjs/logos/black/Bsc.d.ts.map +1 -0
  59. package/dist/cjs/logos/black/Bsc.js +31 -0
  60. package/dist/cjs/logos/black/Bsc.js.map +1 -0
  61. package/dist/cjs/logos/black/Celo.d.ts +4 -0
  62. package/dist/cjs/logos/black/Celo.d.ts.map +1 -0
  63. package/dist/cjs/logos/black/Celo.js +33 -0
  64. package/dist/cjs/logos/black/Celo.js.map +1 -0
  65. package/dist/cjs/logos/black/Eclipse.d.ts +4 -0
  66. package/dist/cjs/logos/black/Eclipse.d.ts.map +1 -0
  67. package/dist/cjs/logos/black/Eclipse.js +30 -0
  68. package/dist/cjs/logos/black/Eclipse.js.map +1 -0
  69. package/dist/cjs/logos/black/Ethereum.d.ts +4 -0
  70. package/dist/cjs/logos/black/Ethereum.d.ts.map +1 -0
  71. package/dist/cjs/logos/black/Ethereum.js +32 -0
  72. package/dist/cjs/logos/black/Ethereum.js.map +1 -0
  73. package/dist/cjs/logos/black/Gnosis.d.ts +4 -0
  74. package/dist/cjs/logos/black/Gnosis.d.ts.map +1 -0
  75. package/dist/cjs/logos/black/Gnosis.js +32 -0
  76. package/dist/cjs/logos/black/Gnosis.js.map +1 -0
  77. package/dist/cjs/logos/black/Hyperlane.d.ts +4 -0
  78. package/dist/cjs/logos/black/Hyperlane.d.ts.map +1 -0
  79. package/dist/cjs/logos/black/Hyperlane.js +32 -0
  80. package/dist/cjs/logos/black/Hyperlane.js.map +1 -0
  81. package/dist/cjs/logos/black/Moonbeam.d.ts +4 -0
  82. package/dist/cjs/logos/black/Moonbeam.d.ts.map +1 -0
  83. package/dist/cjs/logos/black/Moonbeam.js +30 -0
  84. package/dist/cjs/logos/black/Moonbeam.js.map +1 -0
  85. package/dist/cjs/logos/black/Near.d.ts +4 -0
  86. package/dist/cjs/logos/black/Near.d.ts.map +1 -0
  87. package/dist/cjs/logos/black/Near.js +30 -0
  88. package/dist/cjs/logos/black/Near.js.map +1 -0
  89. package/dist/cjs/logos/black/Optimism.d.ts +4 -0
  90. package/dist/cjs/logos/black/Optimism.d.ts.map +1 -0
  91. package/dist/cjs/logos/black/Optimism.js +31 -0
  92. package/dist/cjs/logos/black/Optimism.js.map +1 -0
  93. package/dist/cjs/logos/black/Polygon.d.ts +4 -0
  94. package/dist/cjs/logos/black/Polygon.d.ts.map +1 -0
  95. package/dist/cjs/logos/black/Polygon.js +30 -0
  96. package/dist/cjs/logos/black/Polygon.js.map +1 -0
  97. package/dist/cjs/logos/black/Polygonzkevm.d.ts +4 -0
  98. package/dist/cjs/logos/black/Polygonzkevm.d.ts.map +1 -0
  99. package/dist/cjs/logos/black/Polygonzkevm.js +35 -0
  100. package/dist/cjs/logos/black/Polygonzkevm.js.map +1 -0
  101. package/dist/cjs/logos/black/Scroll.d.ts +4 -0
  102. package/dist/cjs/logos/black/Scroll.d.ts.map +1 -0
  103. package/dist/cjs/logos/black/Scroll.js +31 -0
  104. package/dist/cjs/logos/black/Scroll.js.map +1 -0
  105. package/dist/cjs/logos/black/Solana.d.ts +4 -0
  106. package/dist/cjs/logos/black/Solana.d.ts.map +1 -0
  107. package/dist/cjs/logos/black/Solana.js +30 -0
  108. package/dist/cjs/logos/black/Solana.js.map +1 -0
  109. package/dist/cjs/logos/black/index.d.ts +17 -0
  110. package/dist/cjs/logos/black/index.d.ts.map +1 -0
  111. package/dist/cjs/logos/black/index.js +39 -0
  112. package/dist/cjs/logos/black/index.js.map +1 -0
  113. package/dist/cjs/logos/color/Arbitrum.d.ts +4 -0
  114. package/dist/cjs/logos/color/Arbitrum.d.ts.map +1 -0
  115. package/dist/cjs/logos/color/Arbitrum.js +33 -0
  116. package/dist/cjs/logos/color/Arbitrum.js.map +1 -0
  117. package/dist/cjs/logos/color/Avalanche.d.ts +4 -0
  118. package/dist/cjs/logos/color/Avalanche.d.ts.map +1 -0
  119. package/dist/cjs/logos/color/Avalanche.js +31 -0
  120. package/dist/cjs/logos/color/Avalanche.js.map +1 -0
  121. package/dist/cjs/logos/color/Base.d.ts +4 -0
  122. package/dist/cjs/logos/color/Base.d.ts.map +1 -0
  123. package/dist/cjs/logos/color/Base.js +36 -0
  124. package/dist/cjs/logos/color/Base.js.map +1 -0
  125. package/dist/cjs/logos/color/Bsc.d.ts +4 -0
  126. package/dist/cjs/logos/color/Bsc.d.ts.map +1 -0
  127. package/dist/cjs/logos/color/Bsc.js +32 -0
  128. package/dist/cjs/logos/color/Bsc.js.map +1 -0
  129. package/dist/cjs/logos/color/Celo.d.ts +4 -0
  130. package/dist/cjs/logos/color/Celo.d.ts.map +1 -0
  131. package/dist/cjs/logos/color/Celo.js +32 -0
  132. package/dist/cjs/logos/color/Celo.js.map +1 -0
  133. package/dist/cjs/logos/color/Eclipse.d.ts +4 -0
  134. package/dist/cjs/logos/color/Eclipse.d.ts.map +1 -0
  135. package/dist/cjs/logos/color/Eclipse.js +30 -0
  136. package/dist/cjs/logos/color/Eclipse.js.map +1 -0
  137. package/dist/cjs/logos/color/Ethereum.d.ts +4 -0
  138. package/dist/cjs/logos/color/Ethereum.d.ts.map +1 -0
  139. package/dist/cjs/logos/color/Ethereum.js +36 -0
  140. package/dist/cjs/logos/color/Ethereum.js.map +1 -0
  141. package/dist/cjs/logos/color/Gnosis.d.ts +4 -0
  142. package/dist/cjs/logos/color/Gnosis.d.ts.map +1 -0
  143. package/dist/cjs/logos/color/Gnosis.js +32 -0
  144. package/dist/cjs/logos/color/Gnosis.js.map +1 -0
  145. package/dist/cjs/logos/color/Hyperlane.d.ts +4 -0
  146. package/dist/cjs/logos/color/Hyperlane.d.ts.map +1 -0
  147. package/dist/cjs/logos/color/Hyperlane.js +32 -0
  148. package/dist/cjs/logos/color/Hyperlane.js.map +1 -0
  149. package/dist/cjs/logos/color/Moonbeam.d.ts +4 -0
  150. package/dist/cjs/logos/color/Moonbeam.d.ts.map +1 -0
  151. package/dist/cjs/logos/color/Moonbeam.js +31 -0
  152. package/dist/cjs/logos/color/Moonbeam.js.map +1 -0
  153. package/dist/cjs/logos/color/Optimism.d.ts +4 -0
  154. package/dist/cjs/logos/color/Optimism.d.ts.map +1 -0
  155. package/dist/cjs/logos/color/Optimism.js +31 -0
  156. package/dist/cjs/logos/color/Optimism.js.map +1 -0
  157. package/dist/cjs/logos/color/Polygon.d.ts +4 -0
  158. package/dist/cjs/logos/color/Polygon.d.ts.map +1 -0
  159. package/dist/cjs/logos/color/Polygon.js +30 -0
  160. package/dist/cjs/logos/color/Polygon.js.map +1 -0
  161. package/dist/cjs/logos/color/Polygonzkevm.d.ts +4 -0
  162. package/dist/cjs/logos/color/Polygonzkevm.d.ts.map +1 -0
  163. package/dist/cjs/logos/color/Polygonzkevm.js +35 -0
  164. package/dist/cjs/logos/color/Polygonzkevm.js.map +1 -0
  165. package/dist/cjs/logos/color/Scroll.d.ts +4 -0
  166. package/dist/cjs/logos/color/Scroll.d.ts.map +1 -0
  167. package/dist/cjs/logos/color/Scroll.js +36 -0
  168. package/dist/cjs/logos/color/Scroll.js.map +1 -0
  169. package/dist/cjs/logos/color/Solana.d.ts +4 -0
  170. package/dist/cjs/logos/color/Solana.d.ts.map +1 -0
  171. package/dist/cjs/logos/color/Solana.js +59 -0
  172. package/dist/cjs/logos/color/Solana.js.map +1 -0
  173. package/dist/cjs/logos/color/index.d.ts +16 -0
  174. package/dist/cjs/logos/color/index.d.ts.map +1 -0
  175. package/dist/cjs/logos/color/index.js +37 -0
  176. package/dist/cjs/logos/color/index.js.map +1 -0
  177. package/dist/cjs/messages/MessageTimeline.d.ts +12 -0
  178. package/dist/cjs/messages/MessageTimeline.d.ts.map +1 -0
  179. package/dist/cjs/messages/MessageTimeline.js +123 -0
  180. package/dist/cjs/messages/MessageTimeline.js.map +1 -0
  181. package/dist/cjs/messages/types.d.ts +79 -0
  182. package/dist/cjs/messages/types.d.ts.map +1 -0
  183. package/dist/cjs/messages/types.js +21 -0
  184. package/dist/cjs/messages/types.js.map +1 -0
  185. package/dist/cjs/messages/useMessage.d.ts +14 -0
  186. package/dist/cjs/messages/useMessage.d.ts.map +1 -0
  187. package/dist/cjs/messages/useMessage.js +73 -0
  188. package/dist/cjs/messages/useMessage.js.map +1 -0
  189. package/dist/cjs/messages/useMessageStage.d.ts +14 -0
  190. package/dist/cjs/messages/useMessageStage.d.ts.map +1 -0
  191. package/dist/cjs/messages/useMessageStage.js +172 -0
  192. package/dist/cjs/messages/useMessageStage.js.map +1 -0
  193. package/dist/cjs/messages/useMessageTimeline.d.ts +15 -0
  194. package/dist/cjs/messages/useMessageTimeline.d.ts.map +1 -0
  195. package/dist/cjs/messages/useMessageTimeline.js +18 -0
  196. package/dist/cjs/messages/useMessageTimeline.js.map +1 -0
  197. package/dist/cjs/utils/explorers.d.ts +19 -0
  198. package/dist/cjs/utils/explorers.d.ts.map +1 -0
  199. package/dist/cjs/utils/explorers.js +81 -0
  200. package/dist/cjs/utils/explorers.js.map +1 -0
  201. package/dist/cjs/utils/timeout.d.ts +2 -0
  202. package/dist/cjs/utils/timeout.d.ts.map +1 -0
  203. package/dist/cjs/utils/timeout.js +23 -0
  204. package/dist/cjs/utils/timeout.js.map +1 -0
  205. package/dist/cjs/utils/useInterval.d.ts +2 -0
  206. package/dist/cjs/utils/useInterval.d.ts.map +1 -0
  207. package/dist/cjs/utils/useInterval.js +26 -0
  208. package/dist/cjs/utils/useInterval.js.map +1 -0
  209. package/dist/esm/color.d.ts +13 -0
  210. package/dist/esm/color.d.ts.map +1 -0
  211. package/dist/esm/color.js +32 -0
  212. package/dist/esm/color.js.map +1 -0
  213. package/dist/esm/consts.d.ts +2 -0
  214. package/dist/esm/consts.d.ts.map +1 -0
  215. package/dist/esm/consts.js +2 -0
  216. package/dist/esm/consts.js.map +1 -0
  217. package/dist/esm/icons/Airplane.d.ts +11 -0
  218. package/dist/esm/icons/Airplane.d.ts.map +1 -0
  219. package/dist/esm/icons/Airplane.js +9 -0
  220. package/dist/esm/icons/Airplane.js.map +1 -0
  221. package/dist/esm/icons/ChainLogo.d.ts +18 -0
  222. package/dist/esm/icons/ChainLogo.d.ts.map +1 -0
  223. package/dist/esm/icons/ChainLogo.js +82 -0
  224. package/dist/esm/icons/ChainLogo.js.map +1 -0
  225. package/dist/esm/icons/Circle.d.ts +8 -0
  226. package/dist/esm/icons/Circle.d.ts.map +1 -0
  227. package/dist/esm/icons/Circle.js +7 -0
  228. package/dist/esm/icons/Circle.js.map +1 -0
  229. package/dist/esm/icons/Envelope.d.ts +11 -0
  230. package/dist/esm/icons/Envelope.d.ts.map +1 -0
  231. package/dist/esm/icons/Envelope.js +10 -0
  232. package/dist/esm/icons/Envelope.js.map +1 -0
  233. package/dist/esm/icons/Lock.d.ts +11 -0
  234. package/dist/esm/icons/Lock.d.ts.map +1 -0
  235. package/dist/esm/icons/Lock.js +8 -0
  236. package/dist/esm/icons/Lock.js.map +1 -0
  237. package/dist/esm/icons/QuestionMark.d.ts +11 -0
  238. package/dist/esm/icons/QuestionMark.d.ts.map +1 -0
  239. package/dist/esm/icons/QuestionMark.js +8 -0
  240. package/dist/esm/icons/QuestionMark.js.map +1 -0
  241. package/dist/esm/icons/Shield.d.ts +11 -0
  242. package/dist/esm/icons/Shield.d.ts.map +1 -0
  243. package/dist/esm/icons/Shield.js +9 -0
  244. package/dist/esm/icons/Shield.js.map +1 -0
  245. package/dist/esm/icons/WideChevron.d.ts +13 -0
  246. package/dist/esm/icons/WideChevron.d.ts.map +1 -0
  247. package/dist/esm/icons/WideChevron.js +31 -0
  248. package/dist/esm/icons/WideChevron.js.map +1 -0
  249. package/dist/esm/index.d.ts +13 -0
  250. package/dist/esm/index.d.ts.map +1 -0
  251. package/dist/esm/index.js +13 -0
  252. package/dist/esm/index.js.map +1 -0
  253. package/dist/esm/logos/black/Arbitrum.d.ts +4 -0
  254. package/dist/esm/logos/black/Arbitrum.d.ts.map +1 -0
  255. package/dist/esm/logos/black/Arbitrum.js +8 -0
  256. package/dist/esm/logos/black/Arbitrum.js.map +1 -0
  257. package/dist/esm/logos/black/Avalanche.d.ts +4 -0
  258. package/dist/esm/logos/black/Avalanche.d.ts.map +1 -0
  259. package/dist/esm/logos/black/Avalanche.js +5 -0
  260. package/dist/esm/logos/black/Avalanche.js.map +1 -0
  261. package/dist/esm/logos/black/Base.d.ts +4 -0
  262. package/dist/esm/logos/black/Base.d.ts.map +1 -0
  263. package/dist/esm/logos/black/Base.js +5 -0
  264. package/dist/esm/logos/black/Base.js.map +1 -0
  265. package/dist/esm/logos/black/Bsc.d.ts +4 -0
  266. package/dist/esm/logos/black/Bsc.d.ts.map +1 -0
  267. package/dist/esm/logos/black/Bsc.js +6 -0
  268. package/dist/esm/logos/black/Bsc.js.map +1 -0
  269. package/dist/esm/logos/black/Celo.d.ts +4 -0
  270. package/dist/esm/logos/black/Celo.d.ts.map +1 -0
  271. package/dist/esm/logos/black/Celo.js +8 -0
  272. package/dist/esm/logos/black/Celo.js.map +1 -0
  273. package/dist/esm/logos/black/Eclipse.d.ts +4 -0
  274. package/dist/esm/logos/black/Eclipse.d.ts.map +1 -0
  275. package/dist/esm/logos/black/Eclipse.js +5 -0
  276. package/dist/esm/logos/black/Eclipse.js.map +1 -0
  277. package/dist/esm/logos/black/Ethereum.d.ts +4 -0
  278. package/dist/esm/logos/black/Ethereum.d.ts.map +1 -0
  279. package/dist/esm/logos/black/Ethereum.js +7 -0
  280. package/dist/esm/logos/black/Ethereum.js.map +1 -0
  281. package/dist/esm/logos/black/Gnosis.d.ts +4 -0
  282. package/dist/esm/logos/black/Gnosis.d.ts.map +1 -0
  283. package/dist/esm/logos/black/Gnosis.js +7 -0
  284. package/dist/esm/logos/black/Gnosis.js.map +1 -0
  285. package/dist/esm/logos/black/Hyperlane.d.ts +4 -0
  286. package/dist/esm/logos/black/Hyperlane.d.ts.map +1 -0
  287. package/dist/esm/logos/black/Hyperlane.js +7 -0
  288. package/dist/esm/logos/black/Hyperlane.js.map +1 -0
  289. package/dist/esm/logos/black/Moonbeam.d.ts +4 -0
  290. package/dist/esm/logos/black/Moonbeam.d.ts.map +1 -0
  291. package/dist/esm/logos/black/Moonbeam.js +5 -0
  292. package/dist/esm/logos/black/Moonbeam.js.map +1 -0
  293. package/dist/esm/logos/black/Near.d.ts +4 -0
  294. package/dist/esm/logos/black/Near.d.ts.map +1 -0
  295. package/dist/esm/logos/black/Near.js +5 -0
  296. package/dist/esm/logos/black/Near.js.map +1 -0
  297. package/dist/esm/logos/black/Optimism.d.ts +4 -0
  298. package/dist/esm/logos/black/Optimism.d.ts.map +1 -0
  299. package/dist/esm/logos/black/Optimism.js +6 -0
  300. package/dist/esm/logos/black/Optimism.js.map +1 -0
  301. package/dist/esm/logos/black/Polygon.d.ts +4 -0
  302. package/dist/esm/logos/black/Polygon.d.ts.map +1 -0
  303. package/dist/esm/logos/black/Polygon.js +5 -0
  304. package/dist/esm/logos/black/Polygon.js.map +1 -0
  305. package/dist/esm/logos/black/Polygonzkevm.d.ts +4 -0
  306. package/dist/esm/logos/black/Polygonzkevm.d.ts.map +1 -0
  307. package/dist/esm/logos/black/Polygonzkevm.js +10 -0
  308. package/dist/esm/logos/black/Polygonzkevm.js.map +1 -0
  309. package/dist/esm/logos/black/Scroll.d.ts +4 -0
  310. package/dist/esm/logos/black/Scroll.d.ts.map +1 -0
  311. package/dist/esm/logos/black/Scroll.js +6 -0
  312. package/dist/esm/logos/black/Scroll.js.map +1 -0
  313. package/dist/esm/logos/black/Solana.d.ts +4 -0
  314. package/dist/esm/logos/black/Solana.d.ts.map +1 -0
  315. package/dist/esm/logos/black/Solana.js +5 -0
  316. package/dist/esm/logos/black/Solana.js.map +1 -0
  317. package/dist/esm/logos/black/index.d.ts +17 -0
  318. package/dist/esm/logos/black/index.d.ts.map +1 -0
  319. package/dist/esm/logos/black/index.js +17 -0
  320. package/dist/esm/logos/black/index.js.map +1 -0
  321. package/dist/esm/logos/color/Arbitrum.d.ts +4 -0
  322. package/dist/esm/logos/color/Arbitrum.d.ts.map +1 -0
  323. package/dist/esm/logos/color/Arbitrum.js +8 -0
  324. package/dist/esm/logos/color/Arbitrum.js.map +1 -0
  325. package/dist/esm/logos/color/Avalanche.d.ts +4 -0
  326. package/dist/esm/logos/color/Avalanche.d.ts.map +1 -0
  327. package/dist/esm/logos/color/Avalanche.js +6 -0
  328. package/dist/esm/logos/color/Avalanche.js.map +1 -0
  329. package/dist/esm/logos/color/Base.d.ts +4 -0
  330. package/dist/esm/logos/color/Base.d.ts.map +1 -0
  331. package/dist/esm/logos/color/Base.js +11 -0
  332. package/dist/esm/logos/color/Base.js.map +1 -0
  333. package/dist/esm/logos/color/Bsc.d.ts +4 -0
  334. package/dist/esm/logos/color/Bsc.d.ts.map +1 -0
  335. package/dist/esm/logos/color/Bsc.js +7 -0
  336. package/dist/esm/logos/color/Bsc.js.map +1 -0
  337. package/dist/esm/logos/color/Celo.d.ts +4 -0
  338. package/dist/esm/logos/color/Celo.d.ts.map +1 -0
  339. package/dist/esm/logos/color/Celo.js +7 -0
  340. package/dist/esm/logos/color/Celo.js.map +1 -0
  341. package/dist/esm/logos/color/Eclipse.d.ts +4 -0
  342. package/dist/esm/logos/color/Eclipse.d.ts.map +1 -0
  343. package/dist/esm/logos/color/Eclipse.js +5 -0
  344. package/dist/esm/logos/color/Eclipse.js.map +1 -0
  345. package/dist/esm/logos/color/Ethereum.d.ts +4 -0
  346. package/dist/esm/logos/color/Ethereum.d.ts.map +1 -0
  347. package/dist/esm/logos/color/Ethereum.js +11 -0
  348. package/dist/esm/logos/color/Ethereum.js.map +1 -0
  349. package/dist/esm/logos/color/Gnosis.d.ts +4 -0
  350. package/dist/esm/logos/color/Gnosis.d.ts.map +1 -0
  351. package/dist/esm/logos/color/Gnosis.js +7 -0
  352. package/dist/esm/logos/color/Gnosis.js.map +1 -0
  353. package/dist/esm/logos/color/Hyperlane.d.ts +4 -0
  354. package/dist/esm/logos/color/Hyperlane.d.ts.map +1 -0
  355. package/dist/esm/logos/color/Hyperlane.js +7 -0
  356. package/dist/esm/logos/color/Hyperlane.js.map +1 -0
  357. package/dist/esm/logos/color/Moonbeam.d.ts +4 -0
  358. package/dist/esm/logos/color/Moonbeam.d.ts.map +1 -0
  359. package/dist/esm/logos/color/Moonbeam.js +6 -0
  360. package/dist/esm/logos/color/Moonbeam.js.map +1 -0
  361. package/dist/esm/logos/color/Optimism.d.ts +4 -0
  362. package/dist/esm/logos/color/Optimism.d.ts.map +1 -0
  363. package/dist/esm/logos/color/Optimism.js +6 -0
  364. package/dist/esm/logos/color/Optimism.js.map +1 -0
  365. package/dist/esm/logos/color/Polygon.d.ts +4 -0
  366. package/dist/esm/logos/color/Polygon.d.ts.map +1 -0
  367. package/dist/esm/logos/color/Polygon.js +5 -0
  368. package/dist/esm/logos/color/Polygon.js.map +1 -0
  369. package/dist/esm/logos/color/Polygonzkevm.d.ts +4 -0
  370. package/dist/esm/logos/color/Polygonzkevm.d.ts.map +1 -0
  371. package/dist/esm/logos/color/Polygonzkevm.js +10 -0
  372. package/dist/esm/logos/color/Polygonzkevm.js.map +1 -0
  373. package/dist/esm/logos/color/Scroll.d.ts +4 -0
  374. package/dist/esm/logos/color/Scroll.d.ts.map +1 -0
  375. package/dist/esm/logos/color/Scroll.js +11 -0
  376. package/dist/esm/logos/color/Scroll.js.map +1 -0
  377. package/dist/esm/logos/color/Solana.d.ts +4 -0
  378. package/dist/esm/logos/color/Solana.d.ts.map +1 -0
  379. package/dist/esm/logos/color/Solana.js +34 -0
  380. package/dist/esm/logos/color/Solana.js.map +1 -0
  381. package/dist/esm/logos/color/index.d.ts +16 -0
  382. package/dist/esm/logos/color/index.d.ts.map +1 -0
  383. package/dist/esm/logos/color/index.js +16 -0
  384. package/dist/esm/logos/color/index.js.map +1 -0
  385. package/dist/esm/messages/MessageTimeline.d.ts +12 -0
  386. package/dist/esm/messages/MessageTimeline.d.ts.map +1 -0
  387. package/dist/esm/messages/MessageTimeline.js +116 -0
  388. package/dist/esm/messages/MessageTimeline.js.map +1 -0
  389. package/dist/esm/messages/types.d.ts +79 -0
  390. package/dist/esm/messages/types.d.ts.map +1 -0
  391. package/dist/esm/messages/types.js +18 -0
  392. package/dist/esm/messages/types.js.map +1 -0
  393. package/dist/esm/messages/useMessage.d.ts +14 -0
  394. package/dist/esm/messages/useMessage.d.ts.map +1 -0
  395. package/dist/esm/messages/useMessage.js +69 -0
  396. package/dist/esm/messages/useMessage.js.map +1 -0
  397. package/dist/esm/messages/useMessageStage.d.ts +14 -0
  398. package/dist/esm/messages/useMessageStage.d.ts.map +1 -0
  399. package/dist/esm/messages/useMessageStage.js +168 -0
  400. package/dist/esm/messages/useMessageStage.js.map +1 -0
  401. package/dist/esm/messages/useMessageTimeline.d.ts +15 -0
  402. package/dist/esm/messages/useMessageTimeline.d.ts.map +1 -0
  403. package/dist/esm/messages/useMessageTimeline.js +14 -0
  404. package/dist/esm/messages/useMessageTimeline.js.map +1 -0
  405. package/dist/esm/utils/explorers.d.ts +19 -0
  406. package/dist/esm/utils/explorers.d.ts.map +1 -0
  407. package/dist/esm/utils/explorers.js +72 -0
  408. package/dist/esm/utils/explorers.js.map +1 -0
  409. package/dist/esm/utils/timeout.d.ts +2 -0
  410. package/dist/esm/utils/timeout.d.ts.map +1 -0
  411. package/dist/esm/utils/timeout.js +19 -0
  412. package/dist/esm/utils/timeout.js.map +1 -0
  413. package/dist/esm/utils/useInterval.d.ts +2 -0
  414. package/dist/esm/utils/useInterval.d.ts.map +1 -0
  415. package/dist/esm/utils/useInterval.js +22 -0
  416. package/dist/esm/utils/useInterval.js.map +1 -0
  417. package/dist/styles.css +1 -0
  418. package/package.json +2 -2
@@ -0,0 +1,79 @@
1
+ export declare enum MessageStatus {
2
+ Unknown = "unknown",
3
+ Pending = "pending",
4
+ Delivered = "delivered",
5
+ Failing = "failing"
6
+ }
7
+ export interface MessageTxStub {
8
+ timestamp: number;
9
+ hash: string;
10
+ from: Address;
11
+ }
12
+ export interface MessageTx extends MessageTxStub {
13
+ to: Address;
14
+ blockHash: string;
15
+ blockNumber: number;
16
+ mailbox: Address;
17
+ nonce: number;
18
+ gasLimit: number;
19
+ gasPrice: number;
20
+ effectiveGasPrice: any;
21
+ gasUsed: number;
22
+ cumulativeGasUsed: number;
23
+ maxFeePerGas: number;
24
+ maxPriorityPerGas: number;
25
+ }
26
+ export interface MessageStub {
27
+ status: MessageStatus;
28
+ id: string;
29
+ msgId: string;
30
+ nonce: number;
31
+ sender: Address;
32
+ recipient: Address;
33
+ originChainId: number;
34
+ originDomainId: number;
35
+ destinationChainId: number;
36
+ destinationDomainId: number;
37
+ origin: MessageTxStub;
38
+ destination?: MessageTxStub;
39
+ isPiMsg?: boolean;
40
+ }
41
+ export interface Message extends MessageStub {
42
+ body: string;
43
+ decodedBody?: string;
44
+ origin: MessageTx;
45
+ destination?: MessageTx;
46
+ totalGasAmount?: string;
47
+ totalPayment?: string;
48
+ numPayments?: number;
49
+ }
50
+ export type ApiMessage = Omit<Message, 'msgId' | 'decodedBody'>;
51
+ export interface PartialMessage {
52
+ status: MessageStatus;
53
+ nonce: number;
54
+ originChainId: number;
55
+ originDomainId: number;
56
+ destinationChainId: number;
57
+ destinationDomainId: number;
58
+ origin: {
59
+ blockNumber: number;
60
+ timestamp: number;
61
+ };
62
+ destination?: {
63
+ blockNumber: number;
64
+ timestamp: number;
65
+ };
66
+ }
67
+ export declare enum MessageStage {
68
+ Preparing = 0,
69
+ Sent = 1,
70
+ Finalized = 2,
71
+ Validated = 3,
72
+ Relayed = 4
73
+ }
74
+ export type StageTimings = {
75
+ [MessageStage.Finalized]: number | null;
76
+ [MessageStage.Validated]: number | null;
77
+ [MessageStage.Relayed]: number | null;
78
+ };
79
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/messages/types.ts"],"names":[],"mappings":"AAEA,oBAAY,aAAa;IACvB,OAAO,YAAY;IACnB,OAAO,YAAY;IACnB,SAAS,cAAc;IACvB,OAAO,YAAY;CACpB;AAED,MAAM,WAAW,aAAa;IAC5B,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,OAAO,CAAC;CACf;AAED,MAAM,WAAW,SAAU,SAAQ,aAAa;IAC9C,EAAE,EAAE,OAAO,CAAC;IACZ,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,iBAAiB,MAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,YAAY,EAAE,MAAM,CAAC;IACrB,iBAAiB,EAAE,MAAM,CAAC;CAC3B;AAED,MAAM,WAAW,WAAW;IAC1B,MAAM,EAAE,aAAa,CAAC;IACtB,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,OAAO,CAAC;IAChB,SAAS,EAAE,OAAO,CAAC;IACnB,aAAa,EAAE,MAAM,CAAC;IACtB,cAAc,EAAE,MAAM,CAAC;IACvB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,mBAAmB,EAAE,MAAM,CAAC;IAC5B,MAAM,EAAE,aAAa,CAAC;IACtB,WAAW,CAAC,EAAE,aAAa,CAAC;IAC5B,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,WAAW,OAAQ,SAAQ,WAAW;IAC1C,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,EAAE,SAAS,CAAC;IAClB,WAAW,CAAC,EAAE,SAAS,CAAC;IACxB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,MAAM,UAAU,GAAG,IAAI,CAC3B,OAAO,EACL,OAAO,GACP,aAAa,CAChB,CAAC;AAEF,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,aAAa,CAAC;IACtB,KAAK,EAAE,MAAM,CAAC;IACd,aAAa,EAAE,MAAM,CAAC;IACtB,cAAc,EAAE,MAAM,CAAC;IACvB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,mBAAmB,EAAE,MAAM,CAAC;IAC5B,MAAM,EAAE;QAAE,WAAW,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,CAAC;IACnD,WAAW,CAAC,EAAE;QAAE,WAAW,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,CAAC;CAC1D;AAED,oBAAY,YAAY;IACtB,SAAS,IAAI;IACb,IAAI,IAAI;IACR,SAAS,IAAI;IACb,SAAS,IAAI;IACb,OAAO,IAAI;CACZ;AAED,MAAM,MAAM,YAAY,GAAG;IACzB,CAAC,YAAY,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACxC,CAAC,YAAY,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACxC,CAAC,YAAY,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACvC,CAAC"}
@@ -0,0 +1,18 @@
1
+ // TODO DE-DUPE WITH EXPLORER
2
+ // Mostly copied from explorer src/types.ts
3
+ export var MessageStatus;
4
+ (function (MessageStatus) {
5
+ MessageStatus["Unknown"] = "unknown";
6
+ MessageStatus["Pending"] = "pending";
7
+ MessageStatus["Delivered"] = "delivered";
8
+ MessageStatus["Failing"] = "failing";
9
+ })(MessageStatus || (MessageStatus = {}));
10
+ export var MessageStage;
11
+ (function (MessageStage) {
12
+ MessageStage[MessageStage["Preparing"] = 0] = "Preparing";
13
+ MessageStage[MessageStage["Sent"] = 1] = "Sent";
14
+ MessageStage[MessageStage["Finalized"] = 2] = "Finalized";
15
+ MessageStage[MessageStage["Validated"] = 3] = "Validated";
16
+ MessageStage[MessageStage["Relayed"] = 4] = "Relayed";
17
+ })(MessageStage || (MessageStage = {}));
18
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/messages/types.ts"],"names":[],"mappings":"AAAA,6BAA6B;AAC7B,2CAA2C;AAC3C,MAAM,CAAN,IAAY,aAKX;AALD,WAAY,aAAa;IACvB,oCAAmB,CAAA;IACnB,oCAAmB,CAAA;IACnB,wCAAuB,CAAA;IACvB,oCAAmB,CAAA;AACrB,CAAC,EALW,aAAa,KAAb,aAAa,QAKxB;AAkED,MAAM,CAAN,IAAY,YAMX;AAND,WAAY,YAAY;IACtB,yDAAa,CAAA;IACb,+CAAQ,CAAA;IACR,yDAAa,CAAA;IACb,yDAAa,CAAA;IACb,qDAAW,CAAA;AACb,CAAC,EANW,YAAY,KAAZ,YAAY,QAMvB"}
@@ -0,0 +1,14 @@
1
+ import { ApiMessage } from './types';
2
+ interface Params {
3
+ messageId?: string;
4
+ originTxHash?: string;
5
+ explorerApiUrl?: string;
6
+ retryInterval?: number;
7
+ }
8
+ export declare function useMessage({ messageId, originTxHash, explorerApiUrl, retryInterval, }: Params): {
9
+ data: ApiMessage | null;
10
+ isLoading: boolean;
11
+ error: string | null;
12
+ };
13
+ export {};
14
+ //# sourceMappingURL=useMessage.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useMessage.d.ts","sourceRoot":"","sources":["../../../src/messages/useMessage.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,UAAU,EAAiB,MAAM,SAAS,CAAC;AAEpD,UAAU,MAAM;IACd,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAID,wBAAgB,UAAU,CAAC,EACzB,SAAS,EACT,YAAY,EACZ,cAA2C,EAC3C,aAAoB,GACrB,EAAE,MAAM;;;;EA6BR"}
@@ -0,0 +1,69 @@
1
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
2
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
3
+ return new (P || (P = Promise))(function (resolve, reject) {
4
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
5
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
6
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
7
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
8
+ });
9
+ };
10
+ import { useCallback, useState } from 'react';
11
+ import { HYPERLANE_EXPLORER_API_URL } from '../consts';
12
+ import { executeExplorerQuery } from '../utils/explorers';
13
+ import { useInterval } from '../utils/useInterval';
14
+ import { MessageStatus } from './types';
15
+ // Queries Explorer API to get data for message
16
+ // Requires either messageId or originTxHash
17
+ export function useMessage({ messageId, originTxHash, explorerApiUrl = HYPERLANE_EXPLORER_API_URL, retryInterval = 2000, }) {
18
+ // Tempting to use react-query here as we did in Explorer but
19
+ // avoiding for now to keep dependencies for this lib minimal
20
+ const [isLoading, setIsLoading] = useState(true);
21
+ const [error, setError] = useState(null);
22
+ const [data, setData] = useState(null);
23
+ const fetcher = useCallback(() => {
24
+ // Skip if message is already fetched and delivered
25
+ if ((data === null || data === void 0 ? void 0 : data.status) === MessageStatus.Delivered)
26
+ return;
27
+ setIsLoading(true);
28
+ fetchMessage(explorerApiUrl, messageId, originTxHash)
29
+ .then((result) => {
30
+ setData(result);
31
+ setError(null);
32
+ })
33
+ .catch((e) => setError(e.toString()))
34
+ .finally(() => setIsLoading(false));
35
+ }, [messageId, originTxHash, data]);
36
+ useInterval(fetcher, retryInterval);
37
+ return {
38
+ data,
39
+ isLoading,
40
+ error,
41
+ };
42
+ }
43
+ function fetchMessage(explorerApiUrl, messageId, originTxHash) {
44
+ return __awaiter(this, void 0, void 0, function* () {
45
+ if (!explorerApiUrl)
46
+ throw new Error('Explorer API URL required');
47
+ if (!messageId && !originTxHash)
48
+ throw new Error('Either messageId or originTxHash required');
49
+ let url = `${explorerApiUrl}?module=message&action=get-messages`;
50
+ if (messageId)
51
+ url += `&id=${messageId}`;
52
+ else if (originTxHash)
53
+ url += `&origin-tx-hash=${originTxHash}`;
54
+ const result = yield executeExplorerQuery(url, 5000);
55
+ if (result.length > 1) {
56
+ console.warn('More than one message received, should not occur');
57
+ return result[0];
58
+ }
59
+ else if (result.length === 1) {
60
+ console.debug('Message data found, id:', result[0].id);
61
+ return result[0];
62
+ }
63
+ else {
64
+ console.debug('Message data not found');
65
+ return null;
66
+ }
67
+ });
68
+ }
69
+ //# sourceMappingURL=useMessage.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useMessage.js","sourceRoot":"","sources":["../../../src/messages/useMessage.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAE9C,OAAO,EAAE,0BAA0B,EAAE,MAAM,WAAW,CAAC;AACvD,OAAO,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAC1D,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAEnD,OAAO,EAAc,aAAa,EAAE,MAAM,SAAS,CAAC;AASpD,+CAA+C;AAC/C,4CAA4C;AAC5C,MAAM,UAAU,UAAU,CAAC,EACzB,SAAS,EACT,YAAY,EACZ,cAAc,GAAG,0BAA0B,EAC3C,aAAa,GAAG,IAAI,GACb;IACP,6DAA6D;IAC7D,6DAA6D;IAE7D,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC;IACjD,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,CAAgB,IAAI,CAAC,CAAC;IACxD,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,QAAQ,CAAoB,IAAI,CAAC,CAAC;IAE1D,MAAM,OAAO,GAAG,WAAW,CAAC,GAAG,EAAE;QAC/B,mDAAmD;QACnD,IAAI,CAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,MAAM,MAAK,aAAa,CAAC,SAAS;YAAE,OAAO;QAErD,YAAY,CAAC,IAAI,CAAC,CAAC;QACnB,YAAY,CAAC,cAAc,EAAE,SAAS,EAAE,YAAY,CAAC;aAClD,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE;YACf,OAAO,CAAC,MAAM,CAAC,CAAC;YAChB,QAAQ,CAAC,IAAI,CAAC,CAAC;QACjB,CAAC,CAAC;aACD,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;aACpC,OAAO,CAAC,GAAG,EAAE,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC;IACxC,CAAC,EAAE,CAAC,SAAS,EAAE,YAAY,EAAE,IAAI,CAAC,CAAC,CAAC;IAEpC,WAAW,CAAC,OAAO,EAAE,aAAa,CAAC,CAAC;IAEpC,OAAO;QACL,IAAI;QACJ,SAAS;QACT,KAAK;KACN,CAAC;AACJ,CAAC;AAED,SAAe,YAAY,CACzB,cAAsB,EACtB,SAAkB,EAClB,YAAqB;;QAErB,IAAI,CAAC,cAAc;YAAE,MAAM,IAAI,KAAK,CAAC,2BAA2B,CAAC,CAAC;QAClE,IAAI,CAAC,SAAS,IAAI,CAAC,YAAY;YAAE,MAAM,IAAI,KAAK,CAAC,2CAA2C,CAAC,CAAC;QAE9F,IAAI,GAAG,GAAG,GAAG,cAAc,qCAAqC,CAAC;QACjE,IAAI,SAAS;YAAE,GAAG,IAAI,OAAO,SAAS,EAAE,CAAC;aACpC,IAAI,YAAY;YAAE,GAAG,IAAI,mBAAmB,YAAY,EAAE,CAAC;QAChE,MAAM,MAAM,GAAG,MAAM,oBAAoB,CAAe,GAAG,EAAE,IAAI,CAAC,CAAC;QAEnE,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE;YACrB,OAAO,CAAC,IAAI,CAAC,kDAAkD,CAAC,CAAC;YACjE,OAAO,MAAM,CAAC,CAAC,CAAC,CAAC;SAClB;aAAM,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE;YAC9B,OAAO,CAAC,KAAK,CAAC,yBAAyB,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;YACvD,OAAO,MAAM,CAAC,CAAC,CAAC,CAAC;SAClB;aAAM;YACL,OAAO,CAAC,KAAK,CAAC,wBAAwB,CAAC,CAAC;YACxC,OAAO,IAAI,CAAC;SACb;IACH,CAAC;CAAA"}
@@ -0,0 +1,14 @@
1
+ import { PartialMessage, MessageStage as Stage, StageTimings } from './types';
2
+ interface Params {
3
+ message: PartialMessage | null | undefined;
4
+ explorerApiUrl?: string;
5
+ retryInterval?: number;
6
+ }
7
+ export declare function useMessageStage({ message, explorerApiUrl, retryInterval, }: Params): {
8
+ stage: Stage;
9
+ timings: StageTimings;
10
+ isLoading: boolean;
11
+ error: string | null;
12
+ };
13
+ export {};
14
+ //# sourceMappingURL=useMessageStage.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useMessageStage.d.ts","sourceRoot":"","sources":["../../../src/messages/useMessageStage.ts"],"names":[],"mappings":"AASA,OAAO,EAAiB,cAAc,EAAE,YAAY,IAAI,KAAK,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAI7F,UAAU,MAAM;IACd,OAAO,EAAE,cAAc,GAAG,IAAI,GAAG,SAAS,CAAC;IAC3C,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAQD,wBAAgB,eAAe,CAAC,EAC9B,OAAO,EACP,cAA2C,EAC3C,aAAoB,GACrB,EAAE,MAAM;;;;;EAkCR"}
@@ -0,0 +1,168 @@
1
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
2
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
3
+ return new (P || (P = Promise))(function (resolve, reject) {
4
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
5
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
6
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
7
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
8
+ });
9
+ };
10
+ import { useCallback, useState } from 'react';
11
+ import { chainIdToMetadata } from '@hyperlane-xyz/sdk';
12
+ import { HYPERLANE_EXPLORER_API_URL } from '../consts';
13
+ import { queryExplorerForBlock } from '../utils/explorers';
14
+ import { fetchWithTimeout } from '../utils/timeout';
15
+ import { useInterval } from '../utils/useInterval';
16
+ import { MessageStatus, MessageStage as Stage } from './types';
17
+ const VALIDATION_TIME_EST = 5;
18
+ const defaultTiming = {
19
+ [Stage.Finalized]: null,
20
+ [Stage.Validated]: null,
21
+ [Stage.Relayed]: null,
22
+ };
23
+ export function useMessageStage({ message, explorerApiUrl = HYPERLANE_EXPLORER_API_URL, retryInterval = 2000, }) {
24
+ // Tempting to use react-query here as we did in Explorer but
25
+ // avoiding for now to keep dependencies for this lib minimal
26
+ const [isLoading, setIsLoading] = useState(true);
27
+ const [error, setError] = useState(null);
28
+ const [data, setData] = useState(null);
29
+ const fetcher = useCallback(() => {
30
+ // Skip invalid or placeholder messages
31
+ if (!isValidMessage(message))
32
+ return;
33
+ // Don't re-run for failing messages
34
+ if (message.status === MessageStatus.Failing && data)
35
+ return;
36
+ // Don't re-run for pending, validated messages
37
+ if (message.status === MessageStatus.Pending && (data === null || data === void 0 ? void 0 : data.stage) === Stage.Validated)
38
+ return;
39
+ setIsLoading(true);
40
+ fetchMessageState(message, explorerApiUrl)
41
+ .then((result) => {
42
+ setData(result);
43
+ setError(null);
44
+ })
45
+ .catch((e) => setError(e.toString()))
46
+ .finally(() => setIsLoading(false));
47
+ }, [message, data]);
48
+ useInterval(fetcher, retryInterval);
49
+ return {
50
+ stage: (data === null || data === void 0 ? void 0 : data.stage) ? data.stage : isValidMessage(message) ? Stage.Sent : Stage.Preparing,
51
+ timings: (data === null || data === void 0 ? void 0 : data.timings) ? data.timings : defaultTiming,
52
+ isLoading,
53
+ error,
54
+ };
55
+ }
56
+ function fetchMessageState(message, explorerApiUrl) {
57
+ return __awaiter(this, void 0, void 0, function* () {
58
+ const { status, nonce, originChainId, destinationChainId, origin, destination } = message;
59
+ const { blockNumber: originBlockNumber, timestamp: originTimestamp } = origin;
60
+ const destTimestamp = destination === null || destination === void 0 ? void 0 : destination.timestamp;
61
+ const relayEstimate = Math.floor(getBlockTimeEst(destinationChainId) * 1.5);
62
+ const finalityBlocks = getFinalityBlocks(originChainId);
63
+ const finalityEstimate = finalityBlocks * getBlockTimeEst(originChainId);
64
+ if (status === MessageStatus.Delivered && destTimestamp) {
65
+ // For delivered messages, just to rough estimates for stages
66
+ // This saves us from making extra explorer calls. May want to revisit in future
67
+ const totalDuration = Math.round((destTimestamp - originTimestamp) / 1000);
68
+ const finalityDuration = Math.max(Math.min(finalityEstimate, totalDuration - VALIDATION_TIME_EST), 1);
69
+ const remaining = totalDuration - finalityDuration;
70
+ const validateDuration = Math.max(Math.min(Math.round(remaining * 0.25), VALIDATION_TIME_EST), 1);
71
+ const relayDuration = Math.max(remaining - validateDuration, 1);
72
+ return {
73
+ stage: Stage.Relayed,
74
+ timings: {
75
+ [Stage.Finalized]: finalityDuration,
76
+ [Stage.Validated]: validateDuration,
77
+ [Stage.Relayed]: relayDuration,
78
+ },
79
+ };
80
+ }
81
+ const latestNonce = yield tryFetchLatestNonce(originChainId, explorerApiUrl);
82
+ if (latestNonce && latestNonce >= nonce) {
83
+ return {
84
+ stage: Stage.Validated,
85
+ timings: {
86
+ [Stage.Finalized]: finalityEstimate,
87
+ [Stage.Validated]: VALIDATION_TIME_EST,
88
+ [Stage.Relayed]: relayEstimate,
89
+ },
90
+ };
91
+ }
92
+ const latestBlock = yield tryFetchChainLatestBlock(originChainId);
93
+ const finalizedBlock = originBlockNumber + finalityBlocks;
94
+ if (latestBlock && parseInt(latestBlock.number.toString()) > finalizedBlock) {
95
+ return {
96
+ stage: Stage.Finalized,
97
+ timings: {
98
+ [Stage.Finalized]: finalityEstimate,
99
+ [Stage.Validated]: VALIDATION_TIME_EST,
100
+ [Stage.Relayed]: relayEstimate,
101
+ },
102
+ };
103
+ }
104
+ return {
105
+ stage: Stage.Sent,
106
+ timings: {
107
+ [Stage.Finalized]: finalityEstimate,
108
+ [Stage.Validated]: VALIDATION_TIME_EST,
109
+ [Stage.Relayed]: relayEstimate,
110
+ },
111
+ };
112
+ });
113
+ }
114
+ function getFinalityBlocks(chainId) {
115
+ var _a, _b;
116
+ const finalityBlocks = ((_b = (_a = chainIdToMetadata[chainId]) === null || _a === void 0 ? void 0 : _a.blocks) === null || _b === void 0 ? void 0 : _b.confirmations) || 0;
117
+ return Math.max(finalityBlocks, 1);
118
+ }
119
+ function getBlockTimeEst(chainId) {
120
+ var _a, _b;
121
+ return ((_b = (_a = chainIdToMetadata[chainId]) === null || _a === void 0 ? void 0 : _a.blocks) === null || _b === void 0 ? void 0 : _b.estimateBlockTime) || 3;
122
+ }
123
+ function tryFetchChainLatestBlock(chainId) {
124
+ return __awaiter(this, void 0, void 0, function* () {
125
+ if (!chainId)
126
+ return null;
127
+ console.debug(`Attempting to fetch latest block for:`, chainId);
128
+ try {
129
+ const block = yield queryExplorerForBlock(chainId, 'latest');
130
+ return block;
131
+ }
132
+ catch (error) {
133
+ console.error('Error fetching latest block', error);
134
+ return null;
135
+ }
136
+ });
137
+ }
138
+ function tryFetchLatestNonce(chainId, explorerApiUrl) {
139
+ return __awaiter(this, void 0, void 0, function* () {
140
+ if (!chainId)
141
+ return null;
142
+ console.debug(`Attempting to fetch nonce for:`, chainId);
143
+ try {
144
+ const response = yield fetchWithTimeout(`${explorerApiUrl}/latest-nonce`, {
145
+ method: 'POST',
146
+ headers: {
147
+ 'Content-Type': 'application/json',
148
+ },
149
+ body: JSON.stringify({ chainId }),
150
+ }, 3000);
151
+ const result = yield response.json();
152
+ console.debug(`Found nonce:`, result.nonce);
153
+ return result.nonce;
154
+ }
155
+ catch (error) {
156
+ console.error('Error fetching nonce', error);
157
+ return null;
158
+ }
159
+ });
160
+ }
161
+ function isValidMessage(message) {
162
+ return !!(message &&
163
+ message.originChainId &&
164
+ message.destinationChainId &&
165
+ message.originDomainId &&
166
+ message.destinationDomainId);
167
+ }
168
+ //# sourceMappingURL=useMessageStage.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useMessageStage.js","sourceRoot":"","sources":["../../../src/messages/useMessageStage.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,15 @@
1
+ interface Params {
2
+ messageId?: string;
3
+ originTxHash?: string;
4
+ explorerApiUrl?: string;
5
+ retryInterval?: number;
6
+ }
7
+ export declare function useMessageTimeline(params: Params): {
8
+ message: import("./types").ApiMessage | null;
9
+ stage: import("./types").MessageStage;
10
+ timings: import("./types").StageTimings;
11
+ error: string | null;
12
+ isLoading: boolean;
13
+ };
14
+ export {};
15
+ //# sourceMappingURL=useMessageTimeline.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useMessageTimeline.d.ts","sourceRoot":"","sources":["../../../src/messages/useMessageTimeline.ts"],"names":[],"mappings":"AAGA,UAAU,MAAM;IACd,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,MAAM;;;;;;EAehD"}
@@ -0,0 +1,14 @@
1
+ import { useMessage } from './useMessage';
2
+ import { useMessageStage } from './useMessageStage';
3
+ export function useMessageTimeline(params) {
4
+ const { data: message, error: msgError, isLoading: isMsgLoading } = useMessage(params);
5
+ const { stage, timings, error: stageError, isLoading: isStageLoading, } = useMessageStage({ message, retryInterval: params.retryInterval });
6
+ return {
7
+ message,
8
+ stage,
9
+ timings,
10
+ error: msgError || stageError,
11
+ isLoading: isMsgLoading || isStageLoading,
12
+ };
13
+ }
14
+ //# sourceMappingURL=useMessageTimeline.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useMessageTimeline.js","sourceRoot":"","sources":["../../../src/messages/useMessageTimeline.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AASpD,MAAM,UAAU,kBAAkB,CAAC,MAAc;IAC/C,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,YAAY,EAAE,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC;IACvF,MAAM,EACJ,KAAK,EACL,OAAO,EACP,KAAK,EAAE,UAAU,EACjB,SAAS,EAAE,cAAc,GAC1B,GAAG,eAAe,CAAC,EAAE,OAAO,EAAE,aAAa,EAAE,MAAM,CAAC,aAAa,EAAE,CAAC,CAAC;IACtE,OAAO;QACL,OAAO;QACP,KAAK;QACL,OAAO;QACP,KAAK,EAAE,QAAQ,IAAI,UAAU;QAC7B,SAAS,EAAE,YAAY,IAAI,cAAc;KAC1C,CAAC;AACJ,CAAC"}
@@ -0,0 +1,19 @@
1
+ export interface ExplorerQueryResponse<R> {
2
+ status: string;
3
+ message: string;
4
+ result: R;
5
+ }
6
+ export declare function getExplorerUrl(chainId: number): string | null;
7
+ export declare function getExplorerApiUrl(chainId: number): string | null;
8
+ export declare function getTxExplorerUrl(chainId: number, hash?: string): string | null;
9
+ export declare function queryExplorer<P>(chainId: number, path: string, apiKey?: string, timeout?: number): Promise<NonNullable<P>>;
10
+ export declare function executeExplorerQuery<P>(url: string, timeout?: number): Promise<NonNullable<P>>;
11
+ interface PartialBlock {
12
+ hash: string;
13
+ number: number;
14
+ timestamp: number;
15
+ nonce: string;
16
+ }
17
+ export declare function queryExplorerForBlock(chainId: number, blockNumber?: number | string): Promise<PartialBlock>;
18
+ export {};
19
+ //# sourceMappingURL=explorers.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"explorers.d.ts","sourceRoot":"","sources":["../../../src/utils/explorers.ts"],"names":[],"mappings":"AAIA,MAAM,WAAW,qBAAqB,CAAC,CAAC;IACtC,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,CAAC,CAAC;CACX;AAED,wBAAgB,cAAc,CAAC,OAAO,EAAE,MAAM,iBAI7C;AAED,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,MAAM,iBAIhD;AAED,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,iBAI9D;AAED,wBAAsB,aAAa,CAAC,CAAC,EACnC,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,MAAM,EACZ,MAAM,CAAC,EAAE,MAAM,EACf,OAAO,CAAC,EAAE,MAAM,2BAcjB;AAED,wBAAsB,oBAAoB,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,2BAa1E;AAED,UAAU,YAAY;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;CACf;AAED,wBAAsB,qBAAqB,CAAC,OAAO,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,MAAM,GAAG,MAAM,yBAWzF"}
@@ -0,0 +1,72 @@
1
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
2
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
3
+ return new (P || (P = Promise))(function (resolve, reject) {
4
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
5
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
6
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
7
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
8
+ });
9
+ };
10
+ import { chainIdToMetadata } from '@hyperlane-xyz/sdk';
11
+ import { fetchWithTimeout } from './timeout';
12
+ export function getExplorerUrl(chainId) {
13
+ var _a;
14
+ const chain = chainIdToMetadata[chainId];
15
+ if (!((_a = chain === null || chain === void 0 ? void 0 : chain.blockExplorers) === null || _a === void 0 ? void 0 : _a.length))
16
+ return null;
17
+ return chain.blockExplorers[0].url;
18
+ }
19
+ export function getExplorerApiUrl(chainId) {
20
+ var _a;
21
+ const chain = chainIdToMetadata[chainId];
22
+ if (!((_a = chain === null || chain === void 0 ? void 0 : chain.blockExplorers) === null || _a === void 0 ? void 0 : _a.length))
23
+ return null;
24
+ return chain.blockExplorers[0].apiUrl || chain.blockExplorers[0].url;
25
+ }
26
+ export function getTxExplorerUrl(chainId, hash) {
27
+ const baseUrl = getExplorerUrl(chainId);
28
+ if (!hash || !baseUrl)
29
+ return null;
30
+ return `${baseUrl}/tx/${hash}`;
31
+ }
32
+ export function queryExplorer(chainId, path, apiKey, timeout) {
33
+ return __awaiter(this, void 0, void 0, function* () {
34
+ const baseUrl = getExplorerApiUrl(chainId);
35
+ if (!baseUrl)
36
+ throw new Error(`No URL found for explorer for chain ${chainId}`);
37
+ let url = `${baseUrl}/${path}`;
38
+ console.debug('Querying explorer url:', url);
39
+ if (apiKey) {
40
+ url += `&apikey=${apiKey}`;
41
+ }
42
+ const result = yield executeExplorerQuery(url, timeout);
43
+ return result;
44
+ });
45
+ }
46
+ export function executeExplorerQuery(url, timeout) {
47
+ return __awaiter(this, void 0, void 0, function* () {
48
+ const response = yield fetchWithTimeout(url, undefined, timeout);
49
+ if (!response.ok) {
50
+ throw new Error(`Fetch response not okay: ${response.status}`);
51
+ }
52
+ const json = (yield response.json());
53
+ if (!json.result) {
54
+ const responseText = yield response.text();
55
+ throw new Error(`Invalid result format: ${responseText}`);
56
+ }
57
+ return json.result;
58
+ });
59
+ }
60
+ export function queryExplorerForBlock(chainId, blockNumber) {
61
+ return __awaiter(this, void 0, void 0, function* () {
62
+ const path = `?module=proxy&action=eth_getBlockByNumber&tag=${blockNumber || 'latest'}&boolean=false`;
63
+ const block = yield queryExplorer(chainId, path);
64
+ if (!(block === null || block === void 0 ? void 0 : block.number) || parseInt(block.number.toString()) < 0) {
65
+ const msg = 'Invalid block result';
66
+ console.error(msg, JSON.stringify(block), path);
67
+ throw new Error(msg);
68
+ }
69
+ return block;
70
+ });
71
+ }
72
+ //# sourceMappingURL=explorers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"explorers.js","sourceRoot":"","sources":["../../../src/utils/explorers.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export declare function fetchWithTimeout(resource: RequestInfo, options?: RequestInit, timeout?: number): Promise<Response>;
2
+ //# sourceMappingURL=timeout.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"timeout.d.ts","sourceRoot":"","sources":["../../../src/utils/timeout.ts"],"names":[],"mappings":"AAAA,wBAAsB,gBAAgB,CACpC,QAAQ,EAAE,WAAW,EACrB,OAAO,CAAC,EAAE,WAAW,EACrB,OAAO,SAAQ,qBAUhB"}
@@ -0,0 +1,19 @@
1
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
2
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
3
+ return new (P || (P = Promise))(function (resolve, reject) {
4
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
5
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
6
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
7
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
8
+ });
9
+ };
10
+ export function fetchWithTimeout(resource, options, timeout = 10000) {
11
+ return __awaiter(this, void 0, void 0, function* () {
12
+ const controller = new AbortController();
13
+ const id = setTimeout(() => controller.abort(), timeout);
14
+ const response = yield fetch(resource, Object.assign(Object.assign({}, options), { signal: controller.signal }));
15
+ clearTimeout(id);
16
+ return response;
17
+ });
18
+ }
19
+ //# sourceMappingURL=timeout.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"timeout.js","sourceRoot":"","sources":["../../../src/utils/timeout.ts"],"names":[],"mappings":";;;;;;;;;AAAA,MAAM,UAAgB,gBAAgB,CACpC,QAAqB,EACrB,OAAqB,EACrB,OAAO,GAAG,KAAK;;QAEf,MAAM,UAAU,GAAG,IAAI,eAAe,EAAE,CAAC;QACzC,MAAM,EAAE,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC,KAAK,EAAE,EAAE,OAAO,CAAC,CAAC;QACzD,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,QAAQ,kCAChC,OAAO,KACV,MAAM,EAAE,UAAU,CAAC,MAAM,IACzB,CAAC;QACH,YAAY,CAAC,EAAE,CAAC,CAAC;QACjB,OAAO,QAAQ,CAAC;IAClB,CAAC;CAAA"}
@@ -0,0 +1,2 @@
1
+ export declare function useInterval(callback: () => void, delay: number | null): void;
2
+ //# sourceMappingURL=useInterval.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useInterval.d.ts","sourceRoot":"","sources":["../../../src/utils/useInterval.ts"],"names":[],"mappings":"AAMA,wBAAgB,WAAW,CAAC,QAAQ,EAAE,MAAM,IAAI,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,QAoBrE"}
@@ -0,0 +1,22 @@
1
+ import { useEffect, useRef } from 'react';
2
+ import { useLayoutEffect } from 'react';
3
+ const useIsomorphicLayoutEffect = typeof window !== 'undefined' ? useLayoutEffect : useEffect;
4
+ // https://usehooks-typescript.com/react-hook/use-interval
5
+ export function useInterval(callback, delay) {
6
+ const savedCallback = useRef(callback);
7
+ // Remember the latest callback if it changes.
8
+ useIsomorphicLayoutEffect(() => {
9
+ savedCallback.current = callback;
10
+ }, [callback]);
11
+ // Set up the interval.
12
+ useEffect(() => {
13
+ // Don't schedule if no delay is specified.
14
+ // Note: 0 is a valid value for delay.
15
+ if (!delay && delay !== 0) {
16
+ return;
17
+ }
18
+ const id = setInterval(() => savedCallback.current(), delay);
19
+ return () => clearInterval(id);
20
+ }, [delay]);
21
+ }
22
+ //# sourceMappingURL=useInterval.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useInterval.js","sourceRoot":"","sources":["../../../src/utils/useInterval.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,OAAO,CAAC;AAC1C,OAAO,EAAE,eAAe,EAAE,MAAM,OAAO,CAAC;AAExC,MAAM,yBAAyB,GAAG,OAAO,MAAM,KAAK,WAAW,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,SAAS,CAAC;AAE9F,0DAA0D;AAC1D,MAAM,UAAU,WAAW,CAAC,QAAoB,EAAE,KAAoB;IACpE,MAAM,aAAa,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC;IAEvC,8CAA8C;IAC9C,yBAAyB,CAAC,GAAG,EAAE;QAC7B,aAAa,CAAC,OAAO,GAAG,QAAQ,CAAC;IACnC,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC;IAEf,uBAAuB;IACvB,SAAS,CAAC,GAAG,EAAE;QACb,2CAA2C;QAC3C,sCAAsC;QACtC,IAAI,CAAC,KAAK,IAAI,KAAK,KAAK,CAAC,EAAE;YACzB,OAAO;SACR;QAED,MAAM,EAAE,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC,aAAa,CAAC,OAAO,EAAE,EAAE,KAAK,CAAC,CAAC;QAE7D,OAAO,GAAG,EAAE,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC;IACjC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;AACd,CAAC"}
@@ -0,0 +1 @@
1
+ /*! tailwindcss v3.2.4 | MIT License | https://tailwindcss.com*/*,:after,:before{box-sizing:border-box;border:0 solid #e5e7eb}:after,:before{--tw-content:""}html{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;font-family:Helvetica,Arial,sans-serif;font-feature-settings:normal}body{margin:0;line-height:inherit}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,pre,samp{font-family:Courier New,monospace;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:initial}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;font-weight:inherit;line-height:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button;background-color:initial;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:initial}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dd,dl,figure,h1,h2,h3,h4,h5,h6,hr,p,pre{margin:0}fieldset{margin:0}fieldset,legend{padding:0}menu,ol,ul{list-style:none;margin:0;padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}[role=button],button{cursor:pointer}:disabled{cursor:default}audio,canvas,embed,iframe,img,object,svg,video{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]{display:none}*,::backdrop,:after,:before{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:#2362c080;--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: }.htw-absolute{position:absolute}.htw-relative{position:relative}.htw--left-3{left:-.75rem}.htw-top-0{top:0}.htw--right-3{right:-.75rem}.htw--top-12{top:-3rem}.htw-mt-2\.5{margin-top:.625rem}.htw-mt-2{margin-top:.5rem}.htw-mt-1{margin-top:.25rem}.htw-flex{display:flex}.htw-h-9{height:2.25rem}.htw-h-6{height:1.5rem}.htw-h-3{height:.75rem}.htw-h-4{height:1rem}.htw-w-full{width:100%}.htw-w-9{width:2.25rem}.htw-w-1{width:.25rem}.htw-w-3{width:.75rem}.htw-w-0\.5{width:.125rem}.htw-w-0{width:0}.htw-flex-1{flex:1 1 0%}.htw--rotate-90{--tw-rotate:-90deg}.htw--rotate-90,.htw-rotate-90{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.htw-rotate-90{--tw-rotate:90deg}.htw-rotate-180{--tw-rotate:180deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}@keyframes htw-pulse{50%{opacity:.5}}.htw-animate-pulse-slow{animation:htw-pulse 3s cubic-bezier(.4,0,.6,1) infinite}.htw-flex-col{flex-direction:column}.htw-items-center{align-items:center}.htw-justify-center{justify-content:center}.htw-rounded-full{border-radius:9999px}.htw-rounded-l{border-top-left-radius:.3rem;border-bottom-left-radius:.3rem}.htw-rounded-r{border-top-right-radius:.3rem;border-bottom-right-radius:.3rem}.htw-bg-gray-100{--tw-bg-opacity:1;background-color:rgb(243 244 246/var(--tw-bg-opacity))}.htw-bg-blue-100{--tw-bg-opacity:1;background-color:rgb(205 220 244/var(--tw-bg-opacity))}.htw-bg-pink-200{--tw-bg-opacity:1;background-color:rgb(235 171 224/var(--tw-bg-opacity))}.htw-bg-green-100{--tw-bg-opacity:1;background-color:rgb(190 213 201/var(--tw-bg-opacity))}.htw-bg-orange-200{--tw-bg-opacity:1;background-color:rgb(254 215 170/var(--tw-bg-opacity))}.htw-bg-violet-200{--tw-bg-opacity:1;background-color:rgb(221 214 254/var(--tw-bg-opacity))}.htw-bg-blue-500{--tw-bg-opacity:1;background-color:rgb(35 98 192/var(--tw-bg-opacity))}.htw-bg-white{--tw-bg-opacity:1;background-color:rgb(255 255 255/var(--tw-bg-opacity))}.htw-pt-14{padding-top:3.5rem}.htw-pb-1{padding-bottom:.25rem}.htw-text-center{text-align:center}.htw-text-xs{font-size:.75rem;line-height:1rem}.htw-text-gray-700{--tw-text-opacity:1;color:rgb(55 65 81/var(--tw-text-opacity))}.htw-text-gray-500{--tw-text-opacity:1;color:rgb(107 114 128/var(--tw-text-opacity))}.htw-opacity-50{opacity:.5}.htw-transition-all{transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}@media (min-width:480px){.xs\:htw-w-2{width:.5rem}.xs\:htw-text-sm{font-size:.875rem;line-height:1.25rem}}@media (min-width:640px){.sm\:htw-w-3{width:.75rem}.sm\:htw-px-4{padding-left:1rem;padding-right:1rem}.sm\:htw-text-base{font-size:1rem;line-height:1.5rem}}